From 29f1c6e62b585b83ef70e480efce222c1173f6ef Mon Sep 17 00:00:00 2001 From: DCoded <dcoded@live.com> Date: Mon, 18 Mar 2019 16:19:39 -0400 Subject: [PATCH] More ESLint cleaning --- src/js/PenthouseNaming.js | 1 + src/js/SetBellySize.js | 1 + src/js/bugReport.js | 1 + src/js/colorModeJS.js | 1 + src/js/dTree.min.js | 1 + src/js/displayVariables.js | 1 + src/js/food.js | 1 + src/js/foreachMacroJS.js | 1 + src/js/futureSocietyJS.js | 2 + src/js/hTagMacroJS.js | 1 + src/js/heroCreator.js | 1 + src/js/removeActiveSlave.js | 1 + src/js/rulesAssistant.js | 1 + src/js/rulesAutosurgery.js | 1 + src/js/slaveGenerationJS.js | 1 + src/js/spanMacroJS.js | 1 + src/js/summaryWidgets.js | 2 + src/js/textInput.js | 1 + src/js/textboxJS.js | 1 + src/js/utilJS.js | 138 ++++++++++++++++++------------------ src/js/vignettes.js | 1 + 21 files changed, 91 insertions(+), 69 deletions(-) diff --git a/src/js/PenthouseNaming.js b/src/js/PenthouseNaming.js index 398e0f58178..9d84a0be2e1 100644 --- a/src/js/PenthouseNaming.js +++ b/src/js/PenthouseNaming.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ /** * @return {string} */ diff --git a/src/js/SetBellySize.js b/src/js/SetBellySize.js index 546c270af51..963e3948485 100644 --- a/src/js/SetBellySize.js +++ b/src/js/SetBellySize.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ /** @param {App.Entity.SlaveState} slave */ window.SetBellySize = function SetBellySize(slave) { diff --git a/src/js/bugReport.js b/src/js/bugReport.js index b0ace2e4ef7..5302db55a33 100644 --- a/src/js/bugReport.js +++ b/src/js/bugReport.js @@ -1,2 +1,3 @@ +/* eslint-disable */ /*! <<bugreport>> macro for SugarCube 2.x */ !function(){"use strict";if("undefined"==typeof version||"undefined"==typeof version.title||"SugarCube"!==version.title||"undefined"==typeof version.major||version.major<2)throw new Error("<<bugreport>> macro requires SugarCube 2.0 or greater, aborting load");Macro.add("bugreport",{handler:function(){function serializeVariables(varObj,diffObj,doSort){function renderDiff(diff,orig){for(var keys=Object.keys(diff||{}),render=orig?clone(orig):{},i=0,klen=keys.length;klen>i;i++){var p=keys[i],diffP=diff[p];if(diffP===Diff.Op.Delete)delete render[p];else if(Array.isArray(diffP))switch(diffP[0]){case Diff.Op.SpliceArray:try{render.splice(diffP[1],1+(diffP[2]-diffP[1]))}catch(e){}break;case Diff.Op.Copy:render[p]=clone(diffP[1]);break;case Diff.Op.CopyDate:render[p]=new Date(diffP[1])}else{var recurse=renderDiff(diffP,render[p]);0!==Object.keys(recurse).length&&(render[p]=recurse)}}return render}var varList=[],diff=renderDiff(Diff.diff(varObj,diffObj));for(var p in diff){var sName="$"+(-1===p.search(/[^\w]/)?p:'"'+p+'"');varList.push(sName+"="+JSON.stringify(diff[p]))}return doSort&&("function"==typeof doSort?varList.sort(doSort):varList.sort()),0!==varList.length?varList.join(", "):""}var srcMatch,passages,varsPre,varsPost,dialog,dataEl,info=null!=this.args[0]&&Story.has(this.args[0])?Story.get(this.args[0]):null,last=State.length-1,source=unescape(window.location);null!==(srcMatch=/\/([^\/]+)$/.exec(source))&&(source=srcMatch[1]),passages=[];for(var i=0;last>=i;i++)passages.push('"'+State.index(i).title+'"');passages=passages.join(", "),varsPre=serializeVariables(State.index(0).variables,State.index(last).variables),varsPost=serializeVariables(State.index(last).variables,State.variables),dialog=UI.setup("Bug Report","bugreport"),dialog.innerHTML=(null!==info?'<div id="bugreport-info"></div>':"")+'<div><b>Bug report:</b> <a id="bugreport-data-select" class="link-internal macro-bugreport">[Select]</a></div><code id="bugreport-data" tabindex="0"></code>'+(/applewebkit|chrome/.test(Browser.userAgent)?"":'<div class="scroll-pad"> </div>'),dataEl=dialog.querySelector("#bugreport-data"),null!==info&&new Wikifier(dialog.querySelector("#bugreport-info"),info.processText()),addAccessibleClickHandler("#bugreport-data-select",function(self){return function(){jQuery(dataEl).focus(),self.selectData(dataEl)}}(this.self)),insertText(dataEl,"[spoiler][code]"),insertElement(dataEl,"br"),insertText(dataEl,"SOURCE: "+source),insertElement(dataEl,"br"),insertElement(dataEl,"br"),insertText(dataEl,"PASSAGES:"),insertElement(dataEl,"br"),insertText(dataEl,passages),insertElement(dataEl,"br"),insertElement(dataEl,"br"),insertText(dataEl,"VARIABLES (PRE-EXECUTION):"),insertElement(dataEl,"br"),varsPre&&(insertText(dataEl,varsPre),insertElement(dataEl,"br")),insertElement(dataEl,"br"),insertText(dataEl,"VARIABLES (POST-EXECUTION):"),insertElement(dataEl,"br"),varsPost&&(insertText(dataEl,varsPost),insertElement(dataEl,"br")),insertText(dataEl,"[/code][/spoiler]"),UI.open()},selectData:function(e){var s,r;if(window.getSelection){s=window.getSelection();if(s.setBaseAndExtent){var l=(e.innerText.length>1)?e.innerText.length-1:1;try{s.setBaseAndExtent(e,0,e,l)}catch(error){r=document.createRange();r.selectNodeContents(e);s.removeAllRanges();s.addRange(r)}}else{if(window.opera&&e.innerHTML.substring(e.innerHTML.length-4)==='<br>'){e.innerHTML=e.innerHTML+' '}var r=document.createRange();r.selectNodeContents(e);s.removeAllRanges();s.addRange(r)}}else if(document.getSelection){s=document.getSelection();r=document.createRange();r.selectNodeContents(e);s.removeAllRanges();s.addRange(r)}else if(document.selection){r=document.body.createTextRange();r.moveToElementText(e);r.select()}}})}(); diff --git a/src/js/colorModeJS.js b/src/js/colorModeJS.js index a18e3231016..35f346ec526 100644 --- a/src/js/colorModeJS.js +++ b/src/js/colorModeJS.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ window.flipColors = function (lightColorMap) { if (!window.savedColorMap) { window.savedColorMap = setColors(lightColorMap); diff --git a/src/js/dTree.min.js b/src/js/dTree.min.js index b29089b8899..a3c51d890ea 100644 --- a/src/js/dTree.min.js +++ b/src/js/dTree.min.js @@ -1,3 +1,4 @@ +/* eslint-disable */ /* This is the minified version of lodash, d3 and dTree */ ; (function (window, define, exports) { diff --git a/src/js/displayVariables.js b/src/js/displayVariables.js index c153952509e..f78139b5ccf 100644 --- a/src/js/displayVariables.js +++ b/src/js/displayVariables.js @@ -1,2 +1,3 @@ +/* eslint-disable */ /*! <<checkvars>> macro for SugarCube 2.x */ !function(){"use strict";if("undefined"==typeof version||"undefined"==typeof version.title||"SugarCube"!==version.title||"undefined"==typeof version.major||version.major<2)throw new Error("<<checkvars>> macro requires SugarCube 2.0 or greater, aborting load");Macro.add("checkvars",{handler:function(){function toString(value,indent){var baseType=typeof value;switch(baseType){case"number":return isNaN(value)?"NaN":isFinite(value)?String(value):"Infinity";case"string":return JSON.stringify(value);case"function":return"(function)";default:if("object"!==baseType||null==value)return String(value);var objType=Object.prototype.toString.call(value);if("[object Date]"===objType)return'(object: Date, value: "'+value.toISOString()+'")';if("[object RegExp]"===objType)return"(object: RegExp, value: "+value.toString()+")";var opener,closer,result=[],indentText=" ";return indent||(indent=""),("[object Set]"===objType||value instanceof Set)&&(value=Array.from(value)),Array.isArray(value)?(opener="[\n",closer="\n"+indent+"]",value.forEach(function(p,i){result.push(indent+indentText+i+" ⇒ "+toString(value[i],indent+indentText))}),Object.keys(value).forEach(function(p){/^\d+$/.test(p)||result.push(indent+indentText+toString(p)+" ⇒ "+toString(value[p],indent+indentText))})):"[object Map]"===objType||value instanceof Map?(opener="{\n",closer="\n"+indent+"}",Array.from(value).map(function(kv){result.push(indent+indentText+toString(kv[0],indent+indentText)+" ⇒ "+toString(kv[1],indent+indentText))})):(opener="{\n",closer="\n"+indent+"}",Object.keys(value).forEach(function(p){result.push(indent+indentText+toString(p)+" ⇒ "+toString(value[p],indent+indentText))})),opener+result.join(",\n")+closer}}var dialog,sv=State.variables,names=Object.keys(sv);if(dialog=UI.setup("Story $variables","checkvars"),0===names.length)return dialog.innerHTML="<h1>Story $variables (<code>State.variables</code>):</h1><p><em>No $variables currently set…</em></p>",void UI.open();dialog.innerHTML="<h1>Story $variables (<code>State.variables</code>):</h1><table><thead><tr><th>Name</th><th>Value</th></tr></thead><tbody></tbody></table>"+(/applewebkit|chrome/.test(Browser.userAgent)?"":'<div class="scroll-pad"> </div>');var tbody=dialog.querySelector("tbody");names.sort(function(a,b){return Util.isNumeric(a)&&Util.isNumeric(b)?Number(a)-Number(b):a.localeCompare(b)});for(var i=0;i<names.length;i++){var tr=document.createElement("tr"),tdName=document.createElement("td"),tdValue=document.createElement("td");tdName.textContent="$"+names[i],tdValue.textContent = toString(sv[names[i]]),tr.appendChild(tdName),tr.appendChild(tdValue),tbody.appendChild(tr)}UI.open()}})}(); diff --git a/src/js/food.js b/src/js/food.js index 098ff5eb525..e1382fb4cc5 100644 --- a/src/js/food.js +++ b/src/js/food.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ /** @param {App.Entity.SlaveState} slave */ window.foodAmount = function (slave) { const V = State.variables; diff --git a/src/js/foreachMacroJS.js b/src/js/foreachMacroJS.js index be77e940d95..ea5e0afcd3f 100644 --- a/src/js/foreachMacroJS.js +++ b/src/js/foreachMacroJS.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ Macro.add('foreach', { skipArgs : true, tags : null, diff --git a/src/js/futureSocietyJS.js b/src/js/futureSocietyJS.js index 2453c30d7f1..6978059a94e 100644 --- a/src/js/futureSocietyJS.js +++ b/src/js/futureSocietyJS.js @@ -1,3 +1,5 @@ +/* eslint-disable no-console */ +/* eslint-disable no-undef */ window.FutureSocieties = (function() { return { remove: removeFS, diff --git a/src/js/hTagMacroJS.js b/src/js/hTagMacroJS.js index 1f4eaa36511..64681ad4b2d 100644 --- a/src/js/hTagMacroJS.js +++ b/src/js/hTagMacroJS.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ /* * <<htag>> macro * A simple macro which allows to create wrapping html elements with dynamic IDs. diff --git a/src/js/heroCreator.js b/src/js/heroCreator.js index faa919b75ca..5fe425a72ad 100644 --- a/src/js/heroCreator.js +++ b/src/js/heroCreator.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ /** * @param {App.Entity.SlaveState} heroSlave * @param {App.Entity.SlaveState} baseHeroSlave diff --git a/src/js/removeActiveSlave.js b/src/js/removeActiveSlave.js index 9c62e34d070..2844d619479 100644 --- a/src/js/removeActiveSlave.js +++ b/src/js/removeActiveSlave.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ window.removeActiveSlave = function removeActiveSlave() { "use strict"; const V = State.variables; diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js index 6d2db438933..8fd3ac027b6 100644 --- a/src/js/rulesAssistant.js +++ b/src/js/rulesAssistant.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ /** @param {App.Entity.SlaveState} slave */ window.hasSurgeryRule = function (slave, rules) { return rules.some( diff --git a/src/js/rulesAutosurgery.js b/src/js/rulesAutosurgery.js index 86b325ac1a9..0fbe86aef48 100644 --- a/src/js/rulesAutosurgery.js +++ b/src/js/rulesAutosurgery.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ window.rulesAutosurgery = (function() { "use strict"; let V; diff --git a/src/js/slaveGenerationJS.js b/src/js/slaveGenerationJS.js index df933301d9d..f7fa84384cb 100644 --- a/src/js/slaveGenerationJS.js +++ b/src/js/slaveGenerationJS.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ window.nationalityToRace = /** @param {App.Entity.SlaveState} slave */ function nationalityToRace(slave) { slave.race = hashChoice(setup.raceSelector[slave.nationality] || setup.raceSelector[""]); }; diff --git a/src/js/spanMacroJS.js b/src/js/spanMacroJS.js index dead2c13ec4..005e6d1c7b6 100644 --- a/src/js/spanMacroJS.js +++ b/src/js/spanMacroJS.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ /* * <<span>> macro * A minimal macro which allows to create <span> elements with dynamic IDs. diff --git a/src/js/summaryWidgets.js b/src/js/summaryWidgets.js index 215c5b2488b..5c5ccf5b4d1 100644 --- a/src/js/summaryWidgets.js +++ b/src/js/summaryWidgets.js @@ -1,3 +1,5 @@ +/* eslint-disable no-undef */ +/* eslint-disable no-unused-vars */ /** * @param {App.Entity.SlaveState} slave */ diff --git a/src/js/textInput.js b/src/js/textInput.js index 86d6eebae83..2e4cbbe3789 100644 --- a/src/js/textInput.js +++ b/src/js/textInput.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ Macro.add("textinput", { // Signifies that the macro is a container macro. tags: null, diff --git a/src/js/textboxJS.js b/src/js/textboxJS.js index 5dd0388fe6f..e4917d08c54 100644 --- a/src/js/textboxJS.js +++ b/src/js/textboxJS.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ /* Nicked off greyelf, works for replace textboxes */ window.setReplaceTextboxMaxLength = function (storyVarName, maxLength) { var textboxId = '#textbox-' + Util.slugify(storyVarName); diff --git a/src/js/utilJS.js b/src/js/utilJS.js index 6b50a76a7d4..ede3a1c2867 100644 --- a/src/js/utilJS.js +++ b/src/js/utilJS.js @@ -503,91 +503,91 @@ window.Categorizer.prototype.cat = function(val, def) { window.num = function(x) { const V = State.variables; let max = V.showNumbersMax; - - function commaNum(s) { - if (!s) { - return 0; - } - if (State.variables.formatNumbers !== 1) { - return s; - } else { - return s.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); - } + + var ONE_TO_NINETEEN = [ + 'one', 'two', 'three', 'four', 'five', + 'six', 'seven', 'eight', 'nine', 'ten', + 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', + 'sixteen', 'seventeen', 'eighteen', 'nineteen', + ]; + + var TENS = [ + 'ten', 'twenty', 'thirty', 'forty', 'fifty', + 'sixty', 'seventy', 'eighty', 'ninety', + ]; + + var SCALES = ['thousand', 'million', 'billion', 'trillion']; + + // helper function for use with Array.filter + function isTruthy(item) { + return !!item; } - if (V.showNumbers !== 2) { - if (x === 0) { - return 'zero'; - } - - let ONE_TO_NINETEEN = [ - 'one', 'two', 'three', 'four', 'five', - 'six', 'seven', 'eight', 'nine', 'ten', - 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', - 'sixteen', 'seventeen', 'eighteen', 'nineteen', - ]; + // convert a number into "chunks" of 0-999 + function chunk(number) { + let thousands = []; - let TENS = [ - 'ten', 'twenty', 'thirty', 'forty', 'fifty', - 'sixty', 'seventy', 'eighty', 'ninety', - ]; - - let SCALES = ['thousand', 'million', 'billion', 'trillion']; - - // helper function for use with Array.filter - function isTruthy(item) { - return !!item; + while (number > 0) { + thousands.push(number % 1000); + number = Math.floor(number / 1000); } - // convert a number into "chunks" of 0-999 - function chunk(number) { - let thousands = []; + return thousands; + } - while (number > 0) { - thousands.push(number % 1000); - number = Math.floor(number / 1000); - } + // translate a number from 1-999 into English + function inEnglish(number) { + let hundreds; + let tens; + let ones; + let words = []; - return thousands; + if (number < 20) { + return ONE_TO_NINETEEN[number - 1]; // may be undefined } - // translate a number from 1-999 into English - function inEnglish(number) { - let hundreds; - let tens; - let ones; - let words = []; + if (number < 100) { + ones = number % 10; + tens = number / 10 | 0; // equivalent to Math.floor(number / 10) - if (number < 20) { - return ONE_TO_NINETEEN[number - 1]; // may be undefined - } + words.push(TENS[tens - 1]); + words.push(inEnglish(ones)); - if (number < 100) { - ones = number % 10; - tens = number / 10 | 0; // equivalent to Math.floor(number / 10) + return words.filter(isTruthy).join('-'); + } - words.push(TENS[tens - 1]); - words.push(inEnglish(ones)); + hundreds = number / 100 | 0; + words.push(inEnglish(hundreds)); + words.push('hundred'); + words.push(inEnglish(number % 100)); - return words.filter(isTruthy).join('-'); - } + return words.filter(isTruthy).join(' '); + } - hundreds = number / 100 | 0; - words.push(inEnglish(hundreds)); - words.push('hundred'); - words.push(inEnglish(number % 100)); + // append the word for a scale. Made for use with Array.map + function appendScale(chunk, exp) { + let scale; + if (!chunk) { + return null; + } + scale = SCALES[exp - 1]; + return [chunk, scale].filter(isTruthy).join(' '); + } - return words.filter(isTruthy).join(' '); + function commaNum(s) { + if (!s) { + return 0; } + if (State.variables.formatNumbers !== 1) { + return s; + } else { + return s.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); + } + } - // append the word for a scale. Made for use with Array.map - function appendScale(chunk, exp) { - let scale; - if (!chunk) { - return null; - } - scale = SCALES[exp - 1]; - return [chunk, scale].filter(isTruthy).join(' '); + if (V.showNumbers !== 2) { + if (x === 0) { + return 'zero'; } let string = chunk(x) @@ -709,7 +709,7 @@ window.budgetLine = function(category, title) { <td>${title}</td>\ <td>\ <<if (${income}.${category}) > 0>>\ - @@.yellowgreen;<<print cashFormat(${income}.${category})>>@@\ /*please don't put a plus sign in front of income, it's not done on a budget sheet. Safe to assume money is money unless it's in parenthesis or with a - sign.*/ + @@.yellowgreen;<<print cashFormat(${income}.${category})>>@@ /*please don't put a plus sign in front of income, it's not done on a budget sheet. Safe to assume money is money unless it's in parenthesis or with a - sign.*/ <<else>>\ <<print cashFormat(${income}.${category})>>\ <</if>>\ diff --git a/src/js/vignettes.js b/src/js/vignettes.js index 53ae2ddb211..b47ce02d126 100644 --- a/src/js/vignettes.js +++ b/src/js/vignettes.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVignette(slave) { const V = State.variables; let vignettes = []; -- GitLab