MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
(randomized footers!)
 
m (isolate Common.js in own block scope, since it's interfering with other MW components. forgot that ES5 var is global by default, ugh)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
const $ = x => document.querySelector(x)
(function () {
const $$ = x => document.querySelectorAll(x)
 
let tagline = $('[data-footer-tagline]')
tagline.addEventListener('click', () => handleTagline())
window.addEventListener('load', () => handleTagline())


function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
var $ = function $(x) {
  return document.querySelector(x);
};
var $$ = function $$(x) {
  return document.querySelectorAll(x);
};
var tagline = $('[data-footer-tagline]');
if (tagline !== undefined) {
  prepareTagline();
} else {
  window.addEventListener('load', function () {
    return prepareTagline();
  });
}
function prepareTagline() {
  var _tagline;
  (_tagline = tagline) !== null && _tagline !== void 0 ? _tagline : tagline = $('[data-footer-tagline]');
  tagline.addEventListener('click', function () {
    return handleTagline();
  });
  handleTagline();
}
function handleTagline() {
function handleTagline() {
    if (tagline === undefined) {
  if (tagline === undefined) {
        return
    return;
    }
  }
    let optChs = [...tagline.dataset.footerTagline]
  var optChs = _toConsumableArray(tagline.dataset.footerTagline);
    let opts = []
  var opts = [];
    let opt = null
  var opt = null;
    while (optChs.length > 0) {
  while (optChs.length > 0) {
        let ch = optChs.shift()
    var _opt;
        if (ch === '\\') {
    var ch = optChs.shift();
            ch = optChs.shift()
    if (ch === '\\') {
        } else if (ch === ';') {
      ch = optChs.shift();
            opts.push(opt)
    } else if (ch === ';') {
            opt = null
      opts.push(opt);
            continue
      opt = null;
        }
      continue;
        opt ??= ''
        opt += ch
     }
     }
     if (opt !== null) {
     (_opt = opt) !== null && _opt !== void 0 ? _opt : opt = '';
        opts.push(opt ?? '')
    opt += ch;
  }
  if (opt !== null) {
    var _opt2;
    opts.push((_opt2 = opt) !== null && _opt2 !== void 0 ? _opt2 : '');
  }
  opts = opts.map(function (i) {
    return i.trim();
  }).filter(function (i) {
    return i !== '';
  });
  var oldOpts = opts;
  opts = opts.filter(function (i) {
    return tagline.textContent !== i;
  });
  if (opts.length === 0) {
    if (oldOpts.length === 0) {
      console.warn('No footer tagline options specified');
    } else {
      console.warn('All footer tagline options are identical');
     }
     }
     opts = opts
     return;
        .map(i => i.trim())
  }
        .filter(i => i !== '')
  var chosen = opts[Math.floor(Math.random() * opts.length)];
    let oldOpts = opts
  tagline.textContent = chosen;
    opts = opts.filter(i => tagline.textContent !== i)
    if (opts.length === 0) {
        if (oldOpts.length === 0) {
            console.warn('No footer tagline options specified')
        } else {
            console.warn('All footer tagline options are identical')
        }
        return
    }
    let chosen = opts[Math.floor(Math.random() * opts.length)]
    console.log(chosen)
    tagline.textContent = chosen
}
}
})()

Latest revision as of 21:35, 1 May 2023

(function () {

function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
var $ = function $(x) {
  return document.querySelector(x);
};
var $$ = function $$(x) {
  return document.querySelectorAll(x);
};
var tagline = $('[data-footer-tagline]');
if (tagline !== undefined) {
  prepareTagline();
} else {
  window.addEventListener('load', function () {
    return prepareTagline();
  });
}
function prepareTagline() {
  var _tagline;
  (_tagline = tagline) !== null && _tagline !== void 0 ? _tagline : tagline = $('[data-footer-tagline]');
  tagline.addEventListener('click', function () {
    return handleTagline();
  });
  handleTagline();
}
function handleTagline() {
  if (tagline === undefined) {
    return;
  }
  var optChs = _toConsumableArray(tagline.dataset.footerTagline);
  var opts = [];
  var opt = null;
  while (optChs.length > 0) {
    var _opt;
    var ch = optChs.shift();
    if (ch === '\\') {
      ch = optChs.shift();
    } else if (ch === ';') {
      opts.push(opt);
      opt = null;
      continue;
    }
    (_opt = opt) !== null && _opt !== void 0 ? _opt : opt = '';
    opt += ch;
  }
  if (opt !== null) {
    var _opt2;
    opts.push((_opt2 = opt) !== null && _opt2 !== void 0 ? _opt2 : '');
  }
  opts = opts.map(function (i) {
    return i.trim();
  }).filter(function (i) {
    return i !== '';
  });
  var oldOpts = opts;
  opts = opts.filter(function (i) {
    return tagline.textContent !== i;
  });
  if (opts.length === 0) {
    if (oldOpts.length === 0) {
      console.warn('No footer tagline options specified');
    } else {
      console.warn('All footer tagline options are identical');
    }
    return;
  }
  var chosen = opts[Math.floor(Math.random() * opts.length)];
  tagline.textContent = chosen;
}

})()