/**
* Functions for loading and setting site data, such as MediaWiki messages and configuration, and
* setting date formats based on it.
*
* The code of this module, together with {@link module:timestamp}, is based on parts of
* {@link https://github.com/wikimedia/mediawiki-extensions-DiscussionTools/ DiscussionTools} code.
*
* @author Bartosz Dziewoński <matma.rex@gmail.com>
* @author Jack who built the house
* @license MIT
* @module siteData
*/
/**
* Get a regexp that matches timestamps (without timezone at the end) generated using the given date
* format.
*
* This only supports format characters that are used by the default date format in any of
* MediaWiki's languages, namely: D, d, F, G, H, i, j, l, M, n, Y, xg, xkY (and escape characters),
* and only dates when MediaWiki existed, let's say 2000 onwards (Thai dates before 1941 are
* complicated).
*
* @param {string} language `'content'` or `'user'`.
* @returns {string} Pattern to be a part of a regular expression.
* @private
* @author Bartosz Dziewoński <matma.rex@gmail.com>
* @author Jack who built the house
* @license MIT
*/
/**
* Get codes of date components for the function that parses timestamps in the local date format
* based on the result of matching the regexp set by `setTimestampRegexps()`.
*
* @param {string} format
* @returns {string[]}
* @private
* @author Bartosz Dziewoński <matma.rex@gmail.com>
* @author Jack who built the house
* @license MIT
*/
/**
* Parse a timestamp, accepting a regexp match and returning a date.
*
* @param {Array} match Regexp match data.
* @param {string|number} [timezone] Timezone standard name or offset in minutes. If set, it is
* implied that the timestamp is in the user (interface) language, not in the content language.
* @returns {Date}
* @author Bartosz Dziewoński <matma.rex@gmail.com>
* @author Jack who built the house
* @license MIT
*/
/**
* Tribute.js
* Native ES6 JavaScript @mention Plugin
* Improved and adapted for use in the Convenient Discussions script. (There shoudln't be
* any hardcode related to CD here.)
*
* @license
* The MIT License (MIT)
*
* Copyright (c) 2020 Jack who built the house
* Copyright (c) 2017-2020 ZURB, Inc.
* Copyright (c) 2014 Jeff Collins
* Copyright (c) 2012 Matt York
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
* and associated documentation files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or
* substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**/