MediaWiki:Gadget-CzyWiesz.js

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Naciśnij klawisze Ctrl+F5.
// <nowiki>
/**
 * Nominacje do Czy-Wiesza aka DYKnomination (Did You Know).
 * 
 * Instrukcja:
 * [[Wikipedia:Narzędzia/CzyWiesz]]
 * 
 * Repozytorium i historia zmian:
 * https://github.com/Eccenux/wiki-DYKCzyWiesz
 * 
 * Wdrożone za pomocą: [[Wikipedia:Wikiploy]]
 */
(function(){function d(n,s,r){function l(t,e){if(!s[t]){if(!n[t]){var i="function"==typeof require&&require;if(!e&&i)return i(t,!0);if(c)return c(t,!0);var a=new Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}var o=s[t]={exports:{}};n[t][0].call(o.exports,function(e){var i=n[t][1][e];return l(i||e)},o,o.exports,d,n,s,r)}return s[t].exports}for(var c="function"==typeof require&&require,e=0;e<r.length;e++)l(r[e]);return l}return d})()({1:[function(t,e,i){var a={};const{versionInfo:o}=t("./build/version");a.about={version:`${o.version}-${o.buildDay}`+(window.DYKnomination_is_beta===true?"beta":""),beta:window.DYKnomination_is_beta===true?true:false,author:"Kaligula",authorlink:"[[w:pl:user:Kaligula]]",homepage:"[[w:pl:Wikipedia:Narzędzia/CzyWiesz]]",credits:"Matma Rex (for HUGE help), Tomasz Wachowski (for testing)"};function n(o){const{ErrorInfo:e}=t("./ErrorInfo");const{apiAsync:n}=t("./asyncAjax");const{config:s}=t("./config");o.config=s;o.options={enabledClose:false};o.getBaseNew=function(){return this.debugmode?s.debugBase+"/propozycje":"Wikiprojekt:Czy wiesz/propozycje"};o.getBaseDone=function(){return this.debugmode?s.debugBase+"/ocenione":"Wikiprojekt:Czy wiesz/ocenione"};o.getNominationPage=function(e,i){const t=`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}`;const a=this.getBaseNew();return a+"/"+t+"/"+i};o.logs=[];o.log=function(){var e=Array.from(arguments);var i=(new Date).toISOString();o.logs.push({dt:i,log:e});if(this.debugmode&&typeof console!=="undefined"){e.unshift("[DYK]");console.log.apply(console,e)}};o.debugmode=false;o.getEditToken=async function(e){var i=o;var t=mw.user.tokens.get("csrfToken");if(!e&&typeof t==="string"&&t.length===34){i.edittoken=t;i.log("DYKnomination.edittoken :",i.edittoken);return i.edittoken}try{let e=await n({url:"/w/api.php?action=query&meta=tokens&format=json&type=csrf",cache:false});i.log("DYKnomination.edittoken :",i.edittoken,"data token :",e.query.tokens.csrftoken);i.edittoken=e.query.tokens.csrftoken}catch(e){i.errors.push("Błąd pobierania tokena: "+e+".");i.errors.show();console.error("Błąd pobierania tokena: ",e)}return i.edittoken};o.emailauthor=async function(i){var t=o;var e=prompt("Opisz, co się stało. Bez tego twórca nie będzie wiedział, co naprawiać.","");if(!e){alert("Nic nie wyślę twórcy, dopóki nie opiszesz błędu swoimi słowami. Bez Twojego opisu twórca nie będzie wiedział co naprawiać.");return}t.log("DYKnomination.errors: ",t.errors);var a=e+"\n\n"+JSON.stringify(t.logs);$(".CzyWieszEmailDoAutoraWyslano").html('<img src="https://upload.wikimedia.org/wikipedia/commons/1/1a/Denken.gif" width="10" height="10">');$("#CzyWieszErrorDialog, #CzyWieszSuccess").addClass("wait-im-sending-email");i.classList.add("dyk-button-off");if(!t.edittoken){t.log("Pobranie tokena.");await t.getEditToken(false)}n({url:"/w/api.php",type:"POST",data:{action:"emailuser",format:"json",target:s.supportUser,subject:s.supportEmailTopic,text:a,token:t.edittoken}}).then(function(){$("#CzyWieszErrorDialog, #CzyWieszSuccess").removeClass("wait-im-sending-email");$(".CzyWieszEmailDoAutoraWyslano").html(" <strong>Wysłano!</strong>")}).catch(function(e){i.classList.remove("dyk-button-off");t.errors.push(`Błąd wysyłania e-maila do twórcy: ${e}.`);t.errors.show();console.error("Błąd wysyłania e-maila do twórcy: ",e)})};o.errors=new e(e=>{o.emailauthor(e)},s.supportUser)}function s(e){n(e);const{DykMain:i}=t("./DykMain");e.main=new i(e)}e.exports={DYKnomination:a,createDyk:n,createFullDyk:s}},{"./DykMain":5,"./ErrorInfo":7,"./asyncAjax":11,"./build/version":12,"./config":13}],2:[function(e,i,t){class a{constructor(e,i){this.title=e;this.info=i;this.doneDialogInternal=false;this.elInfo=false;this.elWarnings=false;this.elWarningsList=false}open(){if(!this.doneDialogInternal){this.init()}this.windowManager.openWindow(this.doneDialogInternal)}update(e,i,t=true){if(!i){this.elInfo.innerHTML=e}else{const a=document.createElement("div");a.innerHTML=e;this.elInfo.appendChild(a)}if(i||t){this.forceResize()}}warn(e,i=true,t=true){this.elWarnings.style.display=e.length?"block":"none";if(!e.length||!i){this.elWarningsList.innerHTML=""}if(e.length){const a=document.createElement("li");a.innerHTML=e;this.elWarningsList.appendChild(a)}if(t){this.forceResize()}}forceResize(){this.windowManager.updateWindowSize(this.doneDialogInternal)}init(){const e=this;function t(e){t.super.call(this,e)}OO.inheritClass(t,OO.ui.ProcessDialog);t.static.name="doneDialogInternal";t.static.title=this.title;t.static.actions=[{action:"save",label:"Zamknij",flags:"primary"}];t.prototype.initialize=function(){t.super.prototype.initialize.call(this);this.content=new OO.ui.PanelLayout({padded:true,expanded:false});this.content.$element.append(`<div class="info">${e.info}</div>`);this.content.$element.append(`<div class="warnings" style="display:none"><strong>Ostrzeżenia:</strong><ul></ul></div>`);this.$body.append(this.content.$element);e.elInfo=this.content.$element[0].querySelector(".info");e.elWarnings=this.content.$element[0].querySelector(".warnings");e.elWarningsList=e.elWarnings.querySelector("ul")};t.prototype.getActionProcess=function(e){var i=this;if(e){return new OO.ui.Process(function(){i.close({action:e})})}return t.super.prototype.getActionProcess.call(this,e)};var i=new t;var a=new OO.ui.WindowManager;$(document.body).append(a.$element);a.addWindows([i]);this.windowManager=a;this.doneDialogInternal=i}}i.exports={DoneDialog:a}},{}],3:[function(e,i,t){const{DoneDialog:l}=e("./DoneDialog");const{apiAsync:r}=e("./asyncAjax");const{stdConfirm:c}=e("./simpleDialogs");const{htmlspecialchars:d}=e("./stringOps");class a{constructor(e,i){this.pageName=e;this.core=i;this.doneSelector=".dyk-done";this.movedSelector=".template-done";this.statusSelector=".dyk-status";this.statusMovedRe=/zako.{1,2}czone/}init(){const i=document.querySelectorAll(this.doneSelector);let e=false;let t;if(i.length){t=i.length==1&&this.canBeSubpage(this.pageName);e=true;if(t&&this.setupArchived()){e=false}}if(e){mw.loader.using("oojs-ui-core").done(()=>{for(const e of i){this.initItem(e,t)}mw.hook("userjs.DYKnomination.DoneHandling.ready").fire(this)})}}canBeSubpage(e){return e.includes("/propozycje/2")}setupArchived(){if(document.querySelector(".dyk-arch")){$(".dyk-end-return, .dyk-end-info").hide();return true}return false}checkItemDone(e,i){if(i){const a=document.querySelector(this.movedSelector);if(a){return true}}const t=e.querySelector(this.statusSelector);if(t&&t.textContent.search(this.statusMovedRe)>=0){return true}return false}initItem(e,t){let i=this.checkItemDone(e,t);let a=mw.config.get("wgUserGroups").includes("sysop");let o=a&&i;let n=this.core.options.enabledClose&&!i;if(!n&&!o){return false}const s=e.querySelector("a:not(.new)");if(!s){this.core.log("No article link.");return false}let r=s.textContent;if(n){let i=this.createButton(e,"Zakończ",()=>{if(i.isDisabled()){OO.ui.alert("Akcja już wykonana. Możesz spróbować ponownie po odświeżeniu strony.");return}this.handleDone(e,r,t).then(e=>{if(e){i.setDisabled(true)}})})}if(o){let i=this.createButton(e,"Cofnij do nominacji",()=>{if(i.isDisabled()){OO.ui.alert("Akcja już wykonana. Możesz spróbować ponownie po odświeżeniu strony.");return}this.handleRollback(e,r,t).then(e=>{if(e){i.setDisabled(true)}})})}return true}getSubpageTitle(e,i){if(i){return mw.config.get("wgPageName")}const t=e.querySelector(".dyk-self-page");let a=t?t.textContent.trim():"";return a}async handleDone(i,t,a){const o=this.core;let e=`
			<p>Czy na pewno chcesz zakończyć dyskusję dla ${d(t)}?
			<p>Jeśli są wątpliwości, to możesz poczekać na więcej ocen.
		`;if(await c(e)){const n=new l("Przenoszenie wpisu","Start...");const s=mw.config.get("wgUserName");const r="/wiki/Special:Contributions/"+encodeURIComponent(s);let e=this.getSubpageTitle(i,a);if(!e.length){console.error("subpageTitle failed",{isSubpage:a,item:i});n.update(`
					<p>❌ Przenoszenie zostało przerwane (nie wykonano żadnych zmian).</p>
					<p>Wygląda na to, że szablon weryfikacji dla „${t}” jest nieprawidłowo wypełniony.
					Wejdź na podstronę zgłoszenia i dodaj parametr <code>| strona = {{subst:FULLPAGENAME}}</code>.</p>
				`,true);return}try{await this.move(t,e,n)}catch(e){console.error(e);let i=typeof e=="string"?d(e):"<code>"+d(e)+"</code>";n.update(`
					<p>❌ Przenoszenie nie udało się: ${i}</p>
					<p><a href="${r}" class="czywiesz-external" target="_blank">Sprawdź swój wkład</a>, żeby obejrzeć co już zostało zrobione (czy w ogóle coś).
					<p>Możesz wejść na stronę zgłoszenia lub ją odświeżyć i spróbować ponownie.
						Jeśli zgłoszenie nadal nie jest zakończone i nie da się go zakończyć, to być <strong>może musisz zakończyć zgłoszenie ręcznie</strong>:
					<ol>
						<li>Usuń zgłoszenie <a href="${mw.util.getUrl(o.getBaseNew(),{action:"edit"})}" class="czywiesz-external" target="_blank">z listy propozycji</a>.
						<li>Dodaj zgłoszenie <a href="${mw.util.getUrl(o.getBaseDone(),{action:"edit"})}" class="czywiesz-external" target="_blank">do listy ocenionych</a>.
						<li>W treści zgłoszenia:
							<ul>
								<li>W szablonie <code>CW/weryfikacja</code> ustaw parametr <code>status=zakończone</code>.
								<li>W szablonie <code>licznik czasu</code> zmniejsz liczbę dni (możesz ustawić <code>dni=1</code>).
								<li>Dopisz komentarz wpisując <code>{{Załatwione}}</code>.
							</ul>
						</li>
					</ol>
				`,true);return}n.update(`
				<p>✅ Przenoszenie <a href="${mw.util.getUrl(e)}">strony zgłoszenia</a> zakończone.</p>
				<p><small>Dla pewności możesz sprawdzić <a href="${r}" class="czywiesz-external" target="_blank">swój wkład</a>.</small></p>
			`);n.forceResize();return true}}async handleRollback(i,t,a){let e=`
			<p>Czy na pewno chcesz cofnąć ${d(t)} do bieżących nominacji?
		`;if(await c(e)){const o=new l("Cofnięcie do propozycji","Start...");const n=mw.config.get("wgUserName");const s="/wiki/Special:Contributions/"+encodeURIComponent(n);let e=this.getSubpageTitle(i,a);if(!e.length){console.error("subpageTitle failed",{isSubpage:a,item:i});o.update(`
					<p>❌ Przenoszenie zostało przerwane (nie wykonano żadnych zmian).</p>
					<p>Wygląda na to, że szablon weryfikacji dla „${t}” jest nieprawidłowo wypełniony.
					Wejdź na podstronę zgłoszenia i dodaj parametr <code>| strona = {{subst:FULLPAGENAME}}</code>.</p>
				`,true);return}try{await this.unmove(t,e,o)}catch(e){console.error(e);let i=typeof e=="string"?d(e):"<code>"+d(e)+"</code>";o.update(`
					<p>❌ Wycofanie nie udało się: ${i}</p>
					<p><a href="${s}" class="czywiesz-external" target="_blank">Sprawdź swój wkład</a>, żeby obejrzeć co już zostało zrobione (czy w ogóle coś).
				`,true);return}o.update(`
				<p>✅ Cofnięcie udane. <a href="${mw.util.getUrl(e,{action:"edit"})}">Dodaj powód otwarcia zgłoszenia</a> (możesz też ustawić status na „problemy”).</p>
				<p><small>Możesz też sprawdzić <a href="${s}" class="czywiesz-external" target="_blank">swój wkład</a></small>.</p>
			`);o.forceResize();return true}}removeNomination(e,i){const t=e=>e.replace(/_/g," ").trim();let a=t(i);let o=e.replace(/\{\{(.+\/propozycje\/[0-9-]+\/([^}]+))\}\}\s*/g,(e,i)=>a===t(i)?"":e);return o===e?false:o}async stepRemove(e,i,t,a){const o=this.core;o.log("Pobranie wikitekstu listy zgłoszeń.");let n=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(i),cache:false});o.log("Usunięcie wpisu z wikitekstu listy zgłoszeń.");let s=this.removeNomination(n,t);if(!s){e.warn(`Nie udało się znaleźć nominacji „${t}” na stronie „${i}”. Pominięto usuwanie wpisu.`)}else{o.log("Usunięcie wpisu ze zgłoszeń.");await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:i,text:s,summary:a,watchlist:"nochange",token:o.edittoken}})}}async stepAppend(e,i,t,a){const o=this.core;let n=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(i),cache:false});let s=this.removeNomination(n,t);if(s){e.warn(`Nominacja „${t}” jest już na stronie „${i}”. Pominięto dodawanie wpisu.`);return false}await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:i,appendtext:`\n{{${t}}}`,summary:a,watchlist:"nochange",token:o.edittoken}});return true}async move(e,i,t){const a=this.core;t.open();const o=e=>`🚴 Krok ${e}/${n}: `;const n=3;let s=1;if(!a.edittoken){a.log("Pobranie tokena.");await this.core.getEditToken(false)}let r=`[[${i}|${e}]]`;let l=a.config.summary_done.replace("TITLE",r);t.update(o(s++)+"Usunięcie z listy propozycji.");await this.stepRemove(t,a.getBaseNew(),i,l);t.update(o(s++)+"Oznaczenie jako załatwione.");await this.markDone(i,l);t.update(o(s++)+"Dopisanie na koniec ocenionych.");await this.stepAppend(t,a.getBaseDone(),i,l);return i}async unmove(e,i,t){const a=this.core;t.open();const o=e=>`🚴 Krok ${e}/${n}: `;const n=3;let s=1;if(!a.edittoken){a.log("Pobranie tokena.");await this.core.getEditToken(false)}let r=`[[${i}|${e}]]`;let l=a.config.summary_rollback.replace("TITLE",r);t.update(o(s++)+"Usunięcie z listy propozycji.");await this.stepRemove(t,a.getBaseDone(),i,l);t.update(o(s++)+"Usunięcie oznaczenia jako załatwione.");await this.markUnDone(i,l);t.update(o(s++)+"Dopisanie na koniec propozycji.");await this.stepAppend(t,a.getBaseNew(),i,l);return i}statusChange(e,c){e=e.replace(/(\{\{CW\/weryfikacja)([^}]+)(\}\})/g,(e,i,t,a)=>{t=t.replace(/ *\| *status *=[^|}]+/g,"");let o=t.indexOf("|");let n=t.indexOf("=",o);let s=n-o;let r="| status".padEnd(s," ")+"= "+c;let l=t.indexOf("| 1. sprawdzenie");if(l>0){t=t.slice(0,l)+r+"\n"+t.slice(l)}else{t=t.replace(/\n+$/,"")+"\n"+r+"\n"}return`${i}${t}${a}`});return e}async markDone(e,i){const t=this.core;let a=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(e),cache:false});a=a.replace(/(\{\{licznik czasu)([^/][^}]+)(\}\})/,(e,i,t,a)=>{t=t.replace(/\|\s*koniec\s*=[^|}]*/,"");return`${i}/koniec${t}|koniec={{subst:#timel:Y-m-d H:i:s}}${a}`});a=this.statusChange(a,"zakończone");a+="\n\n{{Załatwione}} artykuł oceniony ~~~~.";await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:e,text:a,summary:i,watchlist:"nochange",token:t.edittoken}})}async markUnDone(e,i){const t=this.core;let a=await r({url:"/w/index.php?action=raw&title="+encodeURIComponent(e),cache:false});a=this.statusChange(a,"");a=a.replace(/(\{\{licznik czasu)\/koniec([^}]+)(\}\})/,(e,i,t,a)=>{t=t.replace(/\|\s*koniec\s*=[^|}]*/,"");return`${i}${t}${a}`});a=a.replace(/\{\{(Załatwione|Zrobione)\}\}/gi,"{{s|$1}}");await r({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:e,text:a,summary:i,watchlist:"nochange",token:t.edittoken}})}createButton(e,i,t){const a=new OO.ui.ButtonWidget({label:i,flags:["primary","progressive"]});const o=a.$element[0];o.addEventListener("click",t);e.insertAdjacentElement("afterend",o);return a}}i.exports={DoneHandling:a}},{"./DoneDialog":2,"./asyncAjax":11,"./simpleDialogs":15,"./stringOps":16}],4:[function(e,i,t){const{RevisionList:a}=e("./RevisionList");function w(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}class o{constructor(e){this.core=e;this.revisionList=new a}askuser(){var e=this.core;var i=e.debugmode;e.errors.clear();e.wgUserName=mw.config.get("wgUserName");e.wgTitle=mw.config.get("wgTitle");var t=$(`
			.infobox span[typeof="mw:File"] a.mw-file-description img
			,figure[typeof="mw:File/Thumb"] img
			,.gallery span[typeof="mw:File"] img
		`,$("#mw-content-text"));var a=t.length;var o={warn:e.config.no+'&nbsp;&nbsp;<strong style="color: red;">Brak źródeł dyskwalifikuje artykuł ze zgłoszenia!</strong> <small>(<a href="#" role="button">info</a>)</small>',ar1:[""],ar2:["Bibliografia","Przypisy"]};$(".mw-headline").each(function(){o.ar1.push($(this).html().replace(/<span class="mw-headline-number"[^>]*>\d+<\/span> */,""))});o.ar1=o.ar1.join("#")+"#";e.sourced=false;for(var n=0;n<o.ar2.length;n++){if(o.ar1.match("#"+o.ar2[n]+"#")){e.sourced=true;break}}var s=e.wgUserName?{name:e.wgUserName,disabled:" disabled"}:{name:"~~"+"~",disabled:" disabled"};var r=$("<p></p>").html('Tytuł artykułu: &nbsp;&nbsp;<input type="text" id="CzyWieszTitle" name="CzyWieszTitle" value="'+e.wgTitle+'" style="width: 476px;" disabled>');var l=$(`<p><strong>Dokończ pytanie: „Czy wiesz…”</strong></p>
			<p style="font-size:90%">Zalecamy zadanie 2-3 pytań, żeby łatwiej było wybrać ekspozycję (jedno pytanie per wiersz). 
			Pytania zacznij od: „…ile”, „…kto”, „…jak”, „…co”, „…po co”, „…kiedy”, „…dlaczego”, „…gdzie”, „…skąd”, „…że” itp.</p>
		`);var c=$("<p></p>").html(`
				<textarea id="CzyWieszQuestion" style="width: 570px;" rows="2" value="" 
					placeholder="Możesz wpisać kilka pytań, każde w osobnej linijce. Pamiętaj, żeby w każdym dodać pogrubiony link."
					autofocus
				></textarea>
			`);var d=$('<tr id="CzyWieszRefs"></tr>').html("<td>Źródła: </td>"+"<td>"+(e.sourced?e.config.yes:o.warn)+"</td>");if(e.sourced){d.css({display:"none"})}var p=$("<tr></tr>").html("<td>Liczba grafik w artykule: </td>"+'<td><input type="number" min="0" id="CzyWieszImages" name="CzyWieszImages" value="'+a+'"'+'style="width: 3.5em;">'+'<span id="CzyWieszGalleryToggler" style="display: none;"> &nbsp;<small><a href="#" role="button">(zaproponuj grafikę z artykułu)</a></small></span>');var u=$("<tr></tr>").html('<td style="width: 30%;"><input type="checkbox" id="CzyWieszFile1" name="CzyWieszFile1" style="vertical-align: middle;"><label for="CzyWieszFile1"> Zaproponuj grafikę: </label></td>'+'<td><tt>[[Plik:</tt><input type="text" id="CzyWieszFile2" name="CzyWieszFile2" style="width: 52%; vertical-align: middle;" disabled><tt>|100px|right]]</tt></td>');var z=$(`
			<tr id="CzyWieszAuthorRow">
				<td>Główna autor(-ka) artykułu<span class="czywiesz-tip" title="Gadżet ustala autorstwo wg największej edycji w ciągu ostatnich 10 dni (sprawdź zmiany w ostatnich dniach)."><sup>(?)</sup></span>: </td>
				<td><input type="text" id="CzyWieszAuthor" name="CzyWieszAuthor" style="width: 50%;margin-left: 2px;vertical-align: middle;">
				&nbsp;&nbsp;<input type="checkbox" checked id="CzyWieszAuthorInf" name="CzyWieszAuthorInf" style="vertical-align: middle;"><label for="CzyWieszAuthorInf"> wysłać powiadomienia?</label></td>
			</tr>
			<tr id="CzyWieszAuthor2Row">
				<td>Druga autor(-ka) artykułu<span class="czywiesz-tip" title="Użyj listy zmian, żeby sprawdzić, czy ktoś jeszcze wprowadzał duże zmiany."><sup>(?)</sup></span>: </td>
				<td><input type="text" id="CzyWieszAuthor2" name="CzyWieszAuthor2" style="width: 50%;margin-left: 2px;vertical-align: middle;">
				</td>
			</tr>
			<tr id="CzyWieszAuthorInfo">
				<td colspan=2></td>
			</tr>
		`.replace(/\n\t+/g,"").trim());var y=$("<tr></tr>").html("<td>Twój podpis: </td>"+'<td><input type="text" id="CzyWieszSignature" name="CzyWieszSignature" value="'+s.name+'" style="width: 50%;margin-left: 2px;"'+s.disabled+"></td>");var g=$('<span id="CzyWieszWikiprojectContainer"><small>(trwa ładowanie…)</small></span>');g=$("<td></td>").append(g).append('<a id="CzyWieszWikiprojectAdd">(+)</a>');g=$("<tr></tr>").append("<td>Powiadom wikiprojekt(y): </td>").append(g);var m=$('<input type="checkbox" id="CzyWieszCommentCheckbox" name="CzyWieszCommentCheckbox" style="vertical-align: middle;">').click(function(){var e=$("#CzyWieszGadget");if($(this).prop("checked")){e.height(e.height+30);e.parent().height(e.parent().height+20)}else{e.height(e.height-30);e.parent().height(e.parent().height-20)}});var h=$("<p></p>").append(m).append('<label for="CzyWieszCommentCheckbox"> Potrzebujesz zamieścić dodatkowy komentarz? (Twój podpis zostanie dodany automatycznie)</label>');var w=$('<p id="CzyWieszCommentContainer" style="display: none;"></p>').html('<textarea id="CzyWieszComment" style="width: 570px;" rows="2" value=""></textarea>');var f=$('<p id="CzyWieszRules"></p>').html(`<small>Reguły: Zgłaszaj hasła, które powstały lub zostały rozbudowane nie dawniej niż 10 dni temu.
				Hasła muszą posiadać źródła (najlepiej w formie przypisów) oraz muszą zawierać co najmniej 2 kB samej treści.</small>`).css({border:"1px solid #F0F080",backgroundColor:"#FFFFE0",paddingLeft:"5px"});var k=$('<div id="CzyWieszLoaderBar"></div>').css({width:"100%",backgroundColor:"rgb(220, 220, 220)",border:"1px solid rgb(187, 187, 187)",borderRadius:"3px",boxSizing:"border-box"}).html('<p id="CzyWieszLoaderBarParagraph" style="margin: 0 0 0 7px; position: absolute;">&nbsp;</p>'+'<div id="CzyWieszLoaderBarInner" style="width: 0; height: 20px; background-color: #ABEC46; border: none; border-radius: 3px;"></div>');var b=$("<table></table>").css("width","100%").append(d).append(p).append(u).append(z).append(y).append(g);b=$('<div id="CzyWieszGadget"></div>').append(r).append(l).append(c).append(b).append(h).append(w).append(f).append(k);var C={"Zgłoś":function(){if(e.sourced){e.main.checkForm()}else{alert("Artykuł bez źródeł jest zdyskwalifikowany z nominacji. (Jeśli źródła są, to zwróć uwagę, czy tytuł sekcji jest prawidłowy, tzn. „Przypisy” lub „Bibliografia”.)")}},Anuluj:function(){$(this).dialog("close")}};b.dialog({width:600,modal:true,title:(window.DYKnomination_is_beta===true?"BETA: ":"")+"Zgłoszenie artykułu do rubryki „Czy wiesz…”"+(i?' &nbsp; (<small id="CzyWieszDialogDebug" style="color: red;">TRYB DEBUG</small>)':""),draggable:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()},buttons:C});if(e.debugmode){$("#CzyWieszQuestion").val(`jak testować '''[[${e.wgTitle}]]'''?`)}e.wikiprojects.load();this.pagerevs();if($("#CzyWieszStyleTag").length==0){e.config.styletag.appendTo("head")}$("#CzyWieszFile1").change(function(){var e=$("#CzyWieszFile2");e.prop("disabled",!e.prop("disabled"))});if(a>0){$("#CzyWieszGalleryToggler").toggle();$("#CzyWieszGalleryToggler a").click(function(){var e='<div id="CzyWieszGalleryHolder">'+`<div id="CzyWieszGallery">`;for(var i=0;i<t.length;i++){e+="<fig>";e+=t[i].outerHTML.replace(/\swidth=\"\d+\"/,"").replace(/\sheight=\"[^\"]*\"/,"").replace(/\sclass=\"[^\"]*\"/g,"");e+="</fig>"}e+="</div> </div>";$(e).dialog({width:547,modal:true,title:"Wybierz grafikę:",draggable:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()},buttons:{Wybierz:function(){if($("#CzyWieszFile1").length>0){$("#CzyWieszFile1").prop("checked",true);$("#CzyWieszFile2").prop("disabled",false);$("#CzyWieszFile2").val($(".czy-wiesz-gallery-chosen").length==0?"":decodeURIComponent($(".czy-wiesz-gallery-chosen")[0].src.match(/\/\/upload\.wikimedia\.org\/wikipedia\/commons(\/thumb)?\/.\/..\/([^\/]+)\/?/)[2]).replace(/_/g," "))}$(this).dialog("destroy");$(this).remove()},Anuluj:function(){$(this).dialog("close")}}});$("#CzyWieszGallery img").each(function(){$(this).click(function(){$(".czy-wiesz-gallery-chosen").each(function(){$(this).toggleClass("czy-wiesz-gallery-chosen")});$(this).toggleClass("czy-wiesz-gallery-chosen")})})})}$("#CzyWieszRefs small a").click(function(){$(`<div>
				<div class="floatright">${e.config.CWicon}</div>
				<p style="margin-left: 10px;">Zgodnie z wytycznymi <a class="czywiesz-external" target="_blank" href="/wiki/Wikiprojekt:Czy_wiesz" title="Wikiprojekt:Czy wiesz">Wikiprojektu Czy wiesz</a> zgłaszane hasło powinno posiadać źródła w formie bibliografii lub przypisów.
				<a class="czywiesz-external" target="_blank" href="/wiki/Wikiprojekt:Czy_wiesz/pomoc#Zg.C5.82aszanie_propozycji_i_poprawa_hase.C5.82" title="Wikiprojekt:Czy wiesz/pomoc#Zgłaszanie propozycji i poprawa haseł">Więcej informacji w instrukcji</a>
				<br /><small>Możliwe, że w artykule sekcje ze źródłami są błędnie nazwane – w takim wypadku popraw je.</small></p>
			</div>`).dialog({modal:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()}})});$("#CzyWieszWikiprojectAdd").click(function(){$("#CzyWieszWikiprojectContainer").append(e.wikiprojects.$select.clone());$("#CzyWieszLoaderBar").parent().css({height:"+=24"})});$("#CzyWieszCommentCheckbox").change(function(){$("#CzyWieszCommentContainer").toggle()});$("#CzyWieszQuestion").focus()}async pagerevs(){const t=this.core;const a=2048;const{revisions:o,records:n}=await this.revisionList.readRevs(t.wgTitle,10);t.log("revisions in last 10 days + 1 edit:",o.length);t.log("day-users in last 10 days:",n.length);let s=0;if(n.length>0){let{record:e,size:i}=this.revisionList.findWinner(n,a);t.log(JSON.stringify(e),i);s=i;if(e){$("#CzyWieszAuthor").val(e.user);$("#CzyWieszAuthor").after('&nbsp;<small id="CzyWieszAuthorTip"><span class="czywiesz-tip" title="Autorstwo ustalone wg największej lub najnowszej dużej edycji z ostatnich 10 dni (dodane '+e.added+" znaków, data: "+e.day+').">(!)</span></small>&nbsp;')}else{alert(`
					⚠️ W ciągu ostatnich 10 dni ''nie dokonano wystarczająco dużych zmian''.
					Skumulowany rozmiar: ${s} bajtów, edycje: ${o.length-1}.

					Jeszcze raz rozważ zgłaszanie tego artykułu, gdyż może to być niezgodne z regulaminem.
				`.replace(/\n\t+/g,"\n"))}}else{t.log(JSON.stringify(o));s=o[0].size;alert(`
				⚠️ W ciągu ostatnich 10 dni ''nie wykonano żadnych zmian''.

				Jeszcze raz rozważ zgłaszanie tego artykułu, gdyż może to być niezgodne z regulaminem.
			`.replace(/\n\t+/g,"\n"))}t.articlesize={size:s,enough:s>=a,warn:s>=a?"":t.config.no+'&nbsp;&nbsp;<strong style="color: red;">Rozmiar '+s+' b dyskwalifikuje artykuł ze zgłoszenia!</strong> \x3c!--small>(<a class="czywiesz-external">info</a>)</small--\x3e'};if(n&&n.length){let e=`<table class="wikitable">`;e+=`<tr>
				<th>Data</th>
				<th>Dodane</th>
				<th>Usunięte</th>
				<th>Edycje</th>
				<th>Autor(ka)</th>
			</tr>`;for(const c of n){e+=`<tr>
					<td>${c.day}</td>
					<td>+${c.added}</td>
					<td>-${c.removed}</td>
					<td>${c.edits}${c.isNew?" (nowy art.)":""}</td>
					<td>${c.user}</td>
				</tr>`}e+=`</table>`;const i=mw.util.getUrl(null,{action:"history"});const r=document.querySelector("#CzyWieszAuthorInfo td");r.innerHTML=`
						<a class="dyk-toggle" role="button" href="#">(pokaż zmiany w ostatnich dniach)</a>
						<div style="display:none" class="dyk-toggle-content">
							${e}
							<a href="${i}" class="czywiesz-external" target="_blank">zobacz historię</a>
						</div>
			`;const l=$(".dyk-toggle-content",r);$(".dyk-toggle",r).click(function(e){e.preventDefault();l.toggle()})}$('<tr id="CzyWieszSize"></tr>').insertAfter($("#CzyWieszRefs")).html("<td>Rozmiar (>2 kb): </td>"+"<td>"+(t.articlesize.enough?t.config.yes:t.articlesize.warn)+"</td>").css(t.articlesize.enough?{display:"none"}:{});$("#CzyWieszGadget .czywiesz-tip").click(function(){alert(this.title)})}prepareValues(){var i=this.core;var e=$("#CzyWieszQuestion").val();var t=$("#CzyWieszFile1").prop("checked")?$("#CzyWieszFile2").val().trim():"";var a=$("#CzyWieszImages").val().trim();var o=i.sourced?"+":" ";var n=$("#CzyWieszAuthor").val().trim();var s=$("#CzyWieszAuthorInf").prop("checked")?true:false;var r=$("#CzyWieszAuthor2").val().trim();var l=$("#CzyWieszSignature").val().trim();var c=new Set;$(".czywiesz-wikiproject").each(function(){var e=$(this).val();if(e!="none"){c.add(e)}});var d=Array.from(c).map(e=>i.wikiprojects.list[e]);var p=$("#CzyWieszCommentCheckbox").prop("checked")?$("#CzyWieszComment").val().trim():false;var u={is:false,fields:[],alert:[]};const z=i.wgTitle[0].toLowerCase()+i.wgTitle.substr(1);const y="Przykład:\n   '''[["+i.wgTitle+"]]''' lub '''[["+z+"]]'''\n lub\n   '''[["+i.wgTitle+"|nazwa do wyświetlenia, jeśli inna niż tytuł]]'''.";if(typeof e!="string"||e===""){u.is=true;u.fields.push("Question");u.alert.push("Wpisz pytanie.")}else{e=e.trim().replace(/[\r\n]/g,"\n").replace(/\n\s+/g,"\n").replace(/(--)?~{3,5}$/,"").trim().replace(/(^|\n)[.…]+/g,"$1").replace(/(^|\n)czy wiesz[\s,\.]*/gi,"$1").replace(/\?($|\n)/g,"$1").trim();if(e.length<10){u.is=true;u.fields.push("Question");u.alert.push("Zadaj poprawne pytanie – to jest za krótkie.\n"+y);return u}const m=new RegExp("'''\\s*\\[\\[("+w(i.wgTitle)+"|"+w(z)+")(\\]\\]|\\|.*?\\]\\])\\s*'''");const h=e.split("\n").some(e=>!e.match(m));if(h){u.is=true;u.fields.push("Question");u.alert.push("Pytanie musi zawierać link do artykułu. Pogrubiony.\n"+y)}else{e=e.split("\n").map(e=>`…${e}?`).join("\n\n")+"\n"}}if(typeof t=="string"&&t!=""){t="[[Plik:"+(t.match(/^(Plik:|File:)/i)?t.replace(/^(Plik:|File:)/i,""):t)+"|100px|right]]\n"}if(typeof a!="string"||a===""){u.is=true;u.fields.push("Images");u.alert.push("Podaj liczbę grafik w artykule.")}if(typeof n!="string"||n===""){u.is=true;u.fields.push("Author");u.alert.push("Podaj autora artykułu.")}if(typeof l!="string"||l===""){u.is=true;u.fields.push("Signature");u.alert.push("Podpisz się.")}if(typeof p!="string"&&typeof p!="boolean"||typeof p=="string"&&(p===""||p.match(/^[^A-ZĘÓĄŚŁŻŹĆŃa-zęóąśłżźćń]+$/))||typeof p=="string"&&p==true){u.is=true;u.fields.push("Comment");u.alert.push("Jeśli musisz podać jakiś komentarz to podaj jakiś sensowny, jeśli nie – wyłącz to pole. Nie wstawiaj w tym polu samego podpisu (lecz w przypadku komentarza – podpisz się).")}const g={question:e,file:t,images:a,refs:o,author:n,authorInf:s,author2:r,signature:l,comment:p,wikiproject:d};return{invalid:u,values:g}}}i.exports={DykForm:o}},{"./RevisionList":9}],5:[function(e,i,t){const{DykProcess:a}=e("./DykProcess");const{DykForm:o}=e("./DykForm");const{Wikiprojects:n}=e("./Wikiprojects");class s{constructor(e){this.core=e;this.dykProcess=new a(e);this.dykForm=new o(e);this.wikiprojects=new n;this.core.askuser=()=>this.askuser();this.core.debug=()=>this.debug();this.core.wikiprojects=this.wikiprojects}askuser(){this.dykForm.askuser()}debug(){this.core.debugmode=true;this.dykForm.askuser()}checkForm(){const{values:e,invalid:i}=this.dykForm.prepareValues();if(i.is){$(i.fields).each(function(){$("#CzyWiesz"+this).css({border:"solid 2px red"}).change(function(){$(this).css({border:"none"})})});alert(i.alert.join("\n"));$("#CzyWiesz"+i.fields[0]).focus()}else{this.dykProcess.prepare(e)}}}i.exports={DykMain:s}},{"./DykForm":4,"./DykProcess":6,"./Wikiprojects":10}],6:[function(e,i,t){const{Loadbar:a}=e("./Loadbar");const{apiAsync:d}=e("./asyncAjax");const{config:p}=e("./config");class o{constructor(e){this.core=e;this.values={}}async prepare(e){this.values=e;this.wgTitle=this.core.wgTitle;var i=this.values;this.errors=this.core.errors;this.errors.clear();this.loadbar=new a(4+i.wikiproject.length+(i.authorInf?1:0));this.loadbar.next();this.setupNominationPage();let t;try{t=await this.checkNominationExists()}catch(e){this.errors.push("Błąd sprawdzania istniejących zgłoszeń: "+e+".");this.errors.show();console.error("Błąd sprawdzania istniejących zgłoszeń: ",e)}if(t){this.errors.show()}else{await this.core.getEditToken(false);await this.runNominate()}}setupNominationPage(){if(!this.nominationDate){this.nominationDate=new Date}this.nominationPage=this.core.getNominationPage(this.nominationDate,this.wgTitle);return this.nominationPage}async checkNominationExists(){let e=await d({url:"/w/api.php?action=parse&format=json&page="+encodeURIComponent(this.core.getBaseNew())+"&prop=sections",cache:false});let i=e.parse.sections;this.core.log("Sekcje na stronie nominacji:",i);let t=i.filter(e=>e.level==2&&e.line==this.wgTitle);if(t.length){const s="/wiki/"+encodeURIComponent(this.setupNominationPage())+"#"+t[0].anchor;this.errors.push(`
				Podany artykuł jest zgłoszony do rubryki „Czy wiesz…”.<br />
				<a href="${s}" class="czywiesz-external" target="_blank">Sprawdź</a>.
			`);return true}let a=this.setupNominationPage();let o=await d({url:"/w/api.php?action=query&format=json&prop=&titles="+encodeURIComponent(a)+"&formatversion=2",cache:false});let n=o.query.pages.pop();if(!n.missing){const s="/wiki/"+encodeURIComponent(a);this.errors.push(`
				Podany artykuł był już zgłoszony do rubryki „Czy wiesz…” w tym miesiącu.<br />
				<a href="${s}" class="czywiesz-external" target="_blank">Sprawdź</a>.
			`);return true}return false}async runNominate(){var e=this.core;var i=this.values;let t=this.setupNominationPage();let a=e.config.summary.replace("TITLE",`[[${t}|${e.wgTitle}]]`);this.loadbar.next();let o="{{subst:#timel:Y-m-d H:i:s}}";let n=`{{CW/weryfikacja
		| artykuł        = ${e.wgTitle}
		| przypisy       = ${i.refs}
		| ilustracje     = ${i.images}
		| 1. autorstwo   = ${i.author}
		| 2. autorstwo   = ${i.author2}
		| strona         = ${t}
		| nominacja      = ${i.signature}
		| status         = 
		| 1. sprawdzenie = 
		| 2. sprawdzenie = 
		| 3. sprawdzenie = 
		| 4. sprawdzenie = 
		}}`.replace(/\n\t+/g,"\n");let s=`== [[${t}|${e.wgTitle}]] ==\n`+"\x3c!-- artykuł zgłoszony za pomocą gadżetu CzyWiesz --\x3e\n"+`{{licznik czasu|start=${o}|zdarzenie=Dyskusja|rgz=ż|dni=30|nie archiwizuj=tak}}\n`+i.file+i.question+n+"\n"+"\x3c!--\n"+"\tUwaga! Jeśli artykuł ma istotne błędy, to w CW/weryfikacja ustaw:\n"+"\tstatus = problemy \n"+"--\x3e\n"+(i.comment?i.comment+" ":"")+"~~"+"~~";e.log("input:",s);await this.createNomination(s,a);await this.inform_r();await this.inform_a();await this.inform_w();this.success()}async createNomination(i,t){var a=this.core;var e=this.values;a.log("DYKnomination.values:",e);this.loadbar.next();try{let e=this.setupNominationPage();await d({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:e,text:i,summary:t,watchlist:"watch",token:a.edittoken}});this.loadbar.next();await d({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:a.getBaseNew(),appendtext:"\n{"+"{"+e+"}}",summary:t,watchlist:"nochange",token:a.edittoken}})}catch(e){a.errors.push("Błąd zgłaszania do rubryki: "+e+".");a.errors.show();console.error("Błąd zgłaszania do rubryki: ",e)}}async inform_r(){var i=this.core;var e=i.debugmode;let t=this.setupNominationPage();if(e){i.log(`edit: ${i.wgTitle}, subpage: ${t}`);return}try{await d({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:i.wgTitle,prependtext:"{"+"{Czy wiesz do artykułu|s="+t+"}"+"}\n",summary:i.config.summary_r,watchlist:"nochange",token:i.edittoken}})}catch(e){i.errors.push("Błąd informowania w artykule: "+e);i.errors.show();console.error("Błąd informowania w artykule:",e)}}async inform_a(){var i=this.core;var e=this.values;var t=i.debugmode;var a,o;if(!e.authorInf){return}let n=this.setupNominationPage();try{a=i.config.sectionTitle_a.replace("TITLE",i.wgTitle);o=i.config.summary_a.replace("TITLE",i.wgTitle);const s=e=>({url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:t?p.debugBase+"/autor":"Dyskusja wikipedysty:"+e,section:"new",sectiontitle:a,text:(t?"debug: '''"+e+"'''\n":"")+"{"+"{subst:Czy wiesz - autor0|tytuł strony="+i.wgTitle+"|s="+n+"}} ~~"+"~~",summary:o,watchlist:"nochange",token:i.edittoken}});if(e.author.length>1){await d(s(e.author))}if(e.author2.length>1){await d(s(e.author2))}}catch(e){i.errors.push("Błąd informowania autora: "+e);i.errors.show();console.error("Błąd informowania autora:",e)}}async inform_w(){var t=this.core;var a=this.values;var e,o,n;if(a.wikiproject.length==0){return}else{n=t.config.sectionTitle_w.replace("TITLE",t.wgTitle);e=t.config.summary_w_newsection.replace("TITLE",t.wgTitle);o=t.config.summary_w.replace("TITLE",t.wgTitle);for(let i=0;i<a.wikiproject.length;i++){const s=a.wikiproject[i];try{await this.inform_wLoop(n,e,o,s)}catch(e){t.errors.push("Błąd informowania projektu: "+s.name+": "+e.toString()+".");t.errors.show();console.error("Błąd informowania projektu: "+s.name+": "+e.toString()+".");throw new Error(`Błąd informowania projektów (${i} / ${a.wikiproject.length}).`)}this.loadbar.next()}}}async inform_wLoop(e,i,t,a){var o=this.core;var n=o.debugmode;var s=a.page;o.log("curWikiproject:",a,"pageToEdit:",s);let r;let l=this.setupNominationPage();let c=`{{Czy wiesz - wikiprojekt|${o.wgTitle}|s=${l}}}`;if(!n){let e;try{e=await d({url:"/w/index.php?action=raw&title="+encodeURIComponent(s),cache:false})}catch(e){throw new Error(`Nieudany odczyt strony '${s}' (${e}).`)}if(!e.match(o.config.dykSectionIndicator)){e=e.replace("[[Kategoria:","== Czy wiesz ==\n"+o.config.dykSectionIndicator+"\n\n[[Kategoria:")}e=e.replace(o.config.dykSectionIndicator,o.config.dykSectionIndicator+"\n"+c);o.log("curWikiproject (2):",a,"pageToEdit (2):",s);r={url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:s,text:e,summary:t,watchlist:"nochange",token:o.edittoken}}}else{r={url:"/w/api.php",type:"POST",data:{action:"edit",format:"json",title:p.debugBase+"/wikiprojekt",section:"new",sectiontitle:e+" • "+a.name,text:"debug: '''"+s+"'''\n"+c,summary:i,watchlist:"nochange",token:o.edittoken}}}await d(r)}success(){var i=this.core;var e=this.values;if(!i.errors.isEmpty()){i.errors.show();return false}this.loadbar.next("done");i.log("Zgłoszenie zakończone sukcesem!");let t=this.setupNominationPage();$(`
			<div id="CzyWieszSuccess">
				<div class="floatright">${i.config.CWicon}</div>
				<p style="margin-left: 10px;">Dziękujemy za 
				<a id="CzyWieszLinkAfter" href="/wiki/${encodeURIComponent(t)}" class="czywiesz-external" target="_blank">zgłoszenie</a>.
				<br /><br />
				Dla pewności możesz sprawdzić 
				<a href="/wiki/Specjalna:Wk%C5%82ad/${encodeURIComponent(e.signature)}" class="czywiesz-external" target="_blank">swój wkład</a>,
				czy wszystko poszło zgodnie z planem.<br />
				<small><a class="CzyWieszEmailDoAutoraToggle">(Coś nie działa?)</a></small>
				<div class="CzyWieszEmailDoAutoraInfo" style="display:none;">
					Jeśli coś poszło nie tak, to <a href="#" role="button" class="CzyWieszEmailDoAutoraWyslij">kliknij tutaj</a>,
					aby wysłać twórcy gadżetu e-mail z opisem błędu, a gadżet dołączy do niego szczegóły techniczne.
					<span class="CzyWieszEmailDoAutoraWyslano"></span>
				</div>
			<br />
			<a href="/wiki/Wikiprojekt:Czy_wiesz" title="Wikiprojekt:Czy wiesz">Wikiprojekt Czy wiesz</a></p></div>
		`).dialog({modal:true,dialogClass:"wikiEditor-toolbar-dialog",title:i.config.tmpldone,close:function(){$(this).dialog("destroy");$(this).remove();$("#CzyWieszGadget").dialog("destroy");$("#CzyWieszGadget").remove()}});$("#CzyWieszSuccess a.CzyWieszEmailDoAutoraToggle").click(function(){$("#CzyWieszSuccess .CzyWieszEmailDoAutoraInfo").toggle()});$("#CzyWieszSuccess a.CzyWieszEmailDoAutoraWyslij").click(function(e){e.preventDefault();i.emailauthor(this)});return true}}i.exports={DykProcess:o}},{"./Loadbar":8,"./asyncAjax":11,"./config":13}],7:[function(e,i,t){class a{constructor(e,i){this.emailSupport=e;this.supportUser=i;this.errors=[]}clear(){this.errors.length=0}push(e){this.errors.push(e)}isEmpty(){return this.errors.length<1}show(){let i=$("<ul></ul>");for(let e=0;e<this.errors.length;e++){i.append($("<li></li>").html(this.errors[e]))}let e=$('<div id="CzyWieszErrorDialog"></div>').append(i).append($(`
				<p>Coś poszło nie tak. Jeśli powyższa lista nie wyjaśnia problemu, to więcej informacji jest w konsoli przeglądarki.</p>
				<p>Jeśli problem jest nietypowy, to <a href="#" role="button" class="CzyWieszEmailDoAutoraWyslij">wyślij e-mail programiście z danymi błędu</a> (szybka wysyłka logów mailem).<span class="CzyWieszEmailDoAutoraWyslano"></span></p>
				<p>Możesz też opisać co się stało na <a href="https://pl.wikipedia.org/wiki/WP:BAR:TE" class="czywiesz-external" target="_blank">w kawiarence technicznej</a>.</p>
			`));e.dialog({width:400,modal:true,title:"Wystąpił błąd",draggable:true,dialogClass:"wikiEditor-toolbar-dialog",close:function(){$(this).dialog("destroy");$(this).remove()}});const t=this;$("#CzyWieszErrorDialog a.CzyWieszEmailDoAutoraWyslij").click(function(e){e.preventDefault();t.emailSupport(this)})}}i.exports={ErrorInfo:a}},{}],8:[function(e,i,t){class a{constructor(e){this.task=-1;this.tasks=e}next(e){if(typeof e!="string"){this.task++;e=Math.min(this.task,4)}var i=this.tasks;var t;switch(e){case 0:t="Sprawdzam stronę zgłoszeń…";break;case 1:t="Pobieram dane z formularza…";break;case 2:t="Przygotowuję dane do wysłania…";break;case 3:t="Zgłaszam propozycję…";break;case 4:t="Informuję o zgłoszeniu…";break;case"done":t="Zakończono!";e=i;break;case"error":t="Wystąpił błąd!";break;default:t=""}$("#CzyWieszLoaderBarParagraph").text(t);if(e!="error"){$("#CzyWieszLoaderBarInner").css({width:100*e/i+"%"})}else{$("#CzyWieszLoaderBarInner").css({backgroundColor:"red"})}}}i.exports={Loadbar:a}},{}],9:[function(e,i,t){class a{constructor(){this.api=false;this.readLimit=100}getApi(){if(!this.api){this.api=new mw.Api}return this.api}firstPage(e){let i;for(i in e.query.pages){break}return e.query.pages[i]}async readRevs(e,i){const t=new Date;t.setDate(t.getDate()-i);const a=t.toISOString();console.log({from:a});let o;o=await this.getApi().get({action:"query",prop:"revisions",format:"json",rvprop:["ids"],rvend:a,rvlimit:"max",titles:e});const n=this.firstPage(o).revisions;o=await this.getApi().get({action:"query",prop:"revisions",format:"json",rvprop:["timestamp","user","size"],rvlimit:!n?1:n.length+1,titles:e});const s=this.firstPage(o).revisions;if(n&&n.length){const r=this.prepareData(s,t);console.log({data:o,revisions:s,records:r});return{revisions:s,records:r}}else{return{revisions:s,records:[]}}}prepareData(e,i){e.sort((e,i)=>new Date(i.timestamp)-new Date(e.timestamp));let s=0;if(i){if(i instanceof Date){s=i}else{s=new Date;s.setDate(s.getDate()-i)}}const r={};let l=false;let c=false;let d=false;e.some(e=>{const i=new Date(e.timestamp);if(c){const n=c.size-e.size;if(n>0){d.added+=n}else{d.removed+=Math.abs(n)}d.edits++}if(c&&i<s){l=true;return true}const t=e.timestamp.split("T")[0];const a=`${t}:${e.user}`;if(!r[a]){r[a]={day:t,user:e.user,added:0,removed:0,edits:0}}const o=r[a];c=e;d=o});if(!l){d.added+=c.size;d.edits++;d.isNew=true}const t=Object.values(r);return t}findWinner(e,i){for(const n of e){if(n.added>=i){return{record:n,size:n.added}}}let t;let a=0;let o=0;for(const n of e){if(n.added>0){if(n.added>a){a=n.added;t=n}o+=n.added;if(o>=i){return{record:t,size:o}}}}return{record:false,size:o}}}i.exports={RevisionList:a}},{}],10:[function(e,i,t){class a{constructor(){this.list=[];this.$select=null}load(){gadget.getWikiprojects().then(e=>{const i=e.wikiprojects.map(e=>({name:e.name,page:e.page}));this.list=i;this.$select=$('<select class="czywiesz-wikiproject"></select>').css("vertical-align","middle");this.$select.append('<option value="none">-- (żaden) --</option>');for(var t=0;t<this.list.length;t++){if(typeof this.list[t]=="function")continue;$("<option>").attr("value",t).text(this.list[t].name).appendTo(this.$select)}$("#CzyWieszWikiprojectContainer small").remove();$("#CzyWieszWikiprojectContainer").append(this.$select.clone())})}}i.exports={Wikiprojects:a}},{}],11:[function(e,i,t){function a(e){var i=$.Deferred();$.ajax(e).done(function(e){if(e.error){i.reject(e.error.info,e)}else{i.resolve(e)}}).fail(function(e){i.reject("$.ajax.fail()",e)});return i.promise()}function o(e){return new Promise((i,t)=>{a(e).done(function(e){i(e)}).fail(function(e,i){console.error(e,i);t(e)})})}i.exports={apiAjax:a,apiAsync:o}},{}],12:[function(e,i,t){let a={version:"6.7.0",buildDay:"2024-04-07"};i.exports={versionInfo:a}},{}],13:[function(e,i,t){var a={interp:".,:;!?…-–—()[]{}⟨⟩'\"„”«»/\\",miesiacArr:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],debugBase:"Wikipedysta:Nux/CzyWieszTest",supportUser:"Nux",supportEmailTopic:"Błąd w Gadżecie Czy wiesz",portlet_title:"Zgłoś do „Czy wiesz…”",dykSectionIndicator:"\x3c!-- Nowe zgłoszenia CzyWiesza wstawiaj poniżej tej linii. Nie zmieniaj i nie usuwaj tej linii --\x3e",summary:"TITLE nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_done:"TITLE ozn. jako ocenione za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_rollback:"TITLE wraca do propozycji za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_r:"Nominacja artykułu do rubryki „[[Szablon:Czy wiesz|Czy wiesz]]” za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_a:"/* Czy wiesz – [[TITLE]] */ nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",sectionTitle_a:"Czy wiesz – [[TITLE]]",summary_w:"/* Czy wiesz */ [[TITLE]] – nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",summary_w_newsection:"/* Czy wiesz – [[TITLE]] */ nowe zgłoszenie za pomocą [[Wikipedia:Narzędzia/CzyWiesz|gadżetu CzyWiesz]]",sectionTitle_w:"Czy wiesz – [[TITLE]]",styletag:$('<style id="CzyWieszStyleTag">'+`
						.wikiEditor-toolbar-dialog .czy-wiesz-gallery-chosen { border: solid 2px red; }
						#CzyWieszWikiprojectAdd {cursor: pointer; }
						#CzyWieszGadget .czywiesz-tip {
							cursor: help;
							color: #d05700;
						}
						a.czywiesz-external { 
							color: #0645AD;
							text-decoration: underline;
							cursor: pointer;
							padding-right: 13px; 
							background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=)
								center right no-repeat; 
						}
						.dyk-button-off {
							pointer-events: none;
							opacity: .5;
						}
						#CzyWieszErrorDialog.wait-im-sending-email, #CzyWieszSuccess.wait-im-sending-email {
							cursor: wait; 
						}
					`+"</style>"),yes:'<img alt="Crystal Clear app clean.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/20px-Crystal_Clear_app_clean.png" width="20" height="20">',no:'<img alt="Crystal Clear action button cancel.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/20px-Crystal_Clear_action_button_cancel.png" width="20" height="20">',CWicon:'<img alt="PL Wiki CzyWiesz ikona.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/80px-PL_Wiki_CzyWiesz_ikona.svg.png" width="80" height="80" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/120px-PL_Wiki_CzyWiesz_ikona.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f4/PL_Wiki_CzyWiesz_ikona.svg/160px-PL_Wiki_CzyWiesz_ikona.svg.png 2x">',tmpldone:'<span class="template-done"><img alt="Crystal Clear app clean.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/20px-Crystal_Clear_app_clean.png" width="20" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/30px-Crystal_Clear_app_clean.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/40px-Crystal_Clear_app_clean.png 2x"><span style="display:none">T</span> <b>Załatwione</b></span>',tmplndone:'<span class="template-not-done"><img alt="Crystal Clear action button cancel.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/20px-Crystal_Clear_action_button_cancel.png" width="20" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/30px-Crystal_Clear_action_button_cancel.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Crystal_Clear_action_button_cancel.png/40px-Crystal_Clear_action_button_cancel.png 2x"><span style="display:none">N</span> <b>Niezałatwione</b></span>'};i.exports={config:a}},{}],14:[function(e,i,t){const{DYKnomination:a,createDyk:o,createFullDyk:n}=e("./CzyWiesz");const{DoneHandling:s}=e("./DoneHandling");const r=mw.config.get("wgNamespaceNumber");const l=mw.config.get("wgPageName");if(r===0){n(a);mw.hook("userjs.DYKnomination.loaded").fire(a);mw.loader.using(["mediawiki.util"]).then(function(){$(document).ready(function(){const e=mw.util.addPortletLink("p-tb","#",(window.DYKnomination_is_beta===true?"BETA: ":"")+a.config.portlet_title,"t-DYKnomination");$(e).click(e=>{e.preventDefault();a.askuser()}).attr("title",`Nominacje do WP:CW v${a.about.version}`);mw.hook("userjs.DYKnomination.ready").fire(a)})})}else if(l=="Wikipedia:Narzędzia/CzyWiesz"){$(".DYKnomination-version").html(a.about.version)}if(l.indexOf("/propozycje")>0||l.indexOf("/ocenione")>0){o(a);mw.hook("userjs.DYKnomination.loaded").fire(a,{DoneHandling:s});let e=mw.config.get("wgUserGroups").includes("editor");if(e){const c=new s(l,a);$(document).ready(function(){c.init()})}else{console.warn("[DYK]","Brak uprawnień redaktorskich, nie można zarządzać propozycjami.")}}window.DYKnomination=a},{"./CzyWiesz":1,"./DoneHandling":3}],15:[function(e,i,t){function a(e,i){const t=i?e:$("<div>"+e+"</div>");return new Promise(i=>{OO.ui.confirm(t).done(function(e){i(e)})})}i.exports={stdConfirm:a}},{}],16:[function(e,i,t){function a(e){return e.toString().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}i.exports={htmlspecialchars:a}},{}]},{},[14]);
// </nowiki>