diff --git a/app/.eslintrc b/app/.eslintrc index cffc9a6..e9c276c 100644 --- a/app/.eslintrc +++ b/app/.eslintrc @@ -2,9 +2,9 @@ "extends": "algolia", "rules": { "no-var": 2, - "algolia/relative-require": 2, - "algolia/force-import-root": 2, + "algolia/relative-require": 1, + "algolia/force-import-root": 1, "algolia/no-require": 1, - "algolia/no-module-exports": 2 + "algolia/no-module-exports": 1 } } diff --git a/docs/documentation.md b/docs/documentation.md index 61a0a33..6f368d9 100644 --- a/docs/documentation.md +++ b/docs/documentation.md @@ -31,6 +31,16 @@ In most cases, this should be enough to have an up-to-date search. However, if you'd rather have it updated right now, like when you add a lot of support articles, you can manually trigger a full reindex. On this page, just click the "Reindex" button in the bottom right corner. A few minutes later, your search index will be updated. +## Adding the Algolia Help Center Theme + +You can use the Algolia Help Center Theme. You can import the theme from the Zendesk Theme Marketplace. +Also, you can download from here: https://cdn.jsdelivr.net/gh/algolia/algoliasearch-zendesk@new_theme/theme/Algolia-search/Algolia-search.zip + +This theme has an admin section where you update your index, keys and other settings +
+ Admin Section +
+ ## Updating your Help Center theme Once your data has been extracted to Algolia, you need to update your Help Center theme in order to replace the search feature by Algolia. diff --git a/theme/Algolia-search/Algolia-search.zip b/theme/Algolia-search/Algolia-search.zip new file mode 100644 index 0000000..3e29d17 Binary files /dev/null and b/theme/Algolia-search/Algolia-search.zip differ diff --git a/theme/Algolia-search/assets/algoliaSearch.js b/theme/Algolia-search/assets/algoliaSearch.js new file mode 100644 index 0000000..4b988c6 --- /dev/null +++ b/theme/Algolia-search/assets/algoliaSearch.js @@ -0,0 +1,70 @@ + +const setupSearch = function(appName, algoliaApiKey, index, useAutocomplete, querySuggestionIndex, useDebounce) { + + const searchClient = algoliasearch(appName, algoliaApiKey); + + // Initialize a Router + // See https://www.algolia.com/doc/api-reference/widgets/history-router/js/ + const historyRouter = instantsearch.routers.history(); + + const search = instantsearch({ + indexName: index, + searchClient, + routing: historyRouter, + }); + + const virtualSearchBox = instantsearch.connectors.connectSearchBox(() => {})({}); + const realSearchBox = instantsearch.widgets.searchBox({ + container: '#searchbox', + }); + const searchBox = (useAutocomplete)? virtualSearchBox : realSearchBox; + + const truncate = (input) => input.length > 50 ? `${input.substring(0, 50)}...` : input; + + + search.addWidgets([ + searchBox, + instantsearch.widgets.hierarchicalMenu({ + container: '#category-list', + attributes: ['category.title', 'section.full_path'], + }), + instantsearch.widgets.refinementList({ + container: '#section-list', + attribute: 'section.title', + }), + instantsearch.widgets.hits({ + container: '#hits', + templates: { + item(hit) { + let createdAt = moment(hit.created_at_iso).fromNow(); + let lastComment = ''; + const body = truncate(hit.body_safe); + const urlLabel = hit.title.replace(/[\s,\?, \!]/g,'-'); + const url = '/hc/en-us/articles/' + hit.id + '-' + urlLabel; + console.log(url); + return `
+
${createdAt} ${lastComment} votes ${hit.vote_sum}
+
${hit.title}
+
${body}
+
${hit.label_names}
+
`; + } + } + }), + instantsearch.widgets.pagination({ + container: '#pagination', + }), + ]); + + search.start(); + + if ( useAutocomplete ) { + const settings = { + articleIndex: index, + querySuggestionIndex: querySuggestionIndex, + useDebounce: useDebounce + } + setupAutocomplete(settings, searchClient, search, historyRouter); + } + +} \ No newline at end of file diff --git a/theme/Algolia-search/assets/autocomplete.js b/theme/Algolia-search/assets/autocomplete.js new file mode 100644 index 0000000..c24a229 --- /dev/null +++ b/theme/Algolia-search/assets/autocomplete.js @@ -0,0 +1,201 @@ +function setupAutocomplete(settings, searchClient, search, historyRouter) { + + function setInstantSearchUiState(indexUiState) { + search.setUiState(uiState => ({ + ...uiState, + [settings.articleIndex]: { + ...uiState[settings.articleIndex], + // We reset the page when the search state changes. + page: 1, + ...indexUiState, + }, + })); + } + + // Return the InstantSearch index UI state. + function getInstantSearchUiState() { + const uiState = historyRouter.read() + + return (uiState && uiState[settings.articleIndex]) || {} + } + + // Build URLs that InstantSearch understands. + function getInstantSearchUrl(indexUiState) { + return search.createURL({ [settings.articleIndex]: indexUiState }); + } + + // Detect when an event is modified with a special key to let the browser + // trigger its default behavior. + function isModifierEvent(event) { + const isMiddleClick = event.button === 1; + + return ( + isMiddleClick || + event.altKey || + event.ctrlKey || + event.metaKey || + event.shiftKey + ); + } + + function onSelect({ setIsOpen, setQuery, event, query }) { + // You want to trigger the default browser behavior if the event is modified. + if (isModifierEvent(event)) { + return; + } + + setQuery(query); + setIsOpen(false); + setInstantSearchUiState({ query }); + } + + function getItemUrl({ query }) { + return getInstantSearchUrl({ query }); + } + + function createItemWrapperTemplate({ query, children, html}) { + const uiState = { query }; + return html` + ${children} + `; + } + + const recentSearchesPlugin = createLocalStorageRecentSearchesPlugin({ + key: 'instantsearch', + limit: 3, + transformSource({ source }) { + return { + ...source, + getItemUrl({ item }) { + return getItemUrl({ + query: item.label, + }); + }, + onSelect({ setIsOpen, setQuery, item, event }) { + onSelect({ + setQuery, + setIsOpen, + event, + query: item.label, + }); + }, + // Update the default `item` template to wrap it with a link + // and plug it to the InstantSearch router. + templates: { + ...source.templates, + item(params) { + const { children } = source.templates.item(params).props; + + return createItemWrapperTemplate({ + query: params.item.label, + children, + html: params.html, + }); + }, + }, + }; + }, + }); + + const querySuggestionsPlugin = createQuerySuggestionsPlugin({ + searchClient, + indexName: settings.querySuggestionIndex, + getSearchParams() { + // This creates a shared `hitsPerPage` value once the duplicates + // between recent searches and Query Suggestions are removed. + return recentSearchesPlugin.data.getAlgoliaSearchParams({ + hitsPerPage: 6, + }); + }, + transformSource({ source }) { + return { + ...source, + sourceId: 'querySuggestionsPlugin', + getItemUrl({ item }) { + return getItemUrl({ + query: item.name, + }); + }, + onSelect({ setIsOpen, setQuery, event, item }) { + onSelect({ + setQuery, + setIsOpen, + event, + query: item.label, + }); + }, + getItems(params) { + // We don't display Query Suggestions when there's no query. + if (!params.state.query) { + return []; + } + return source.getItems(params); + }, + templates: { + ...source.templates, + item(params) { + const { children } = source.templates.item(params).props; + return createItemWrapperTemplate({ + query: params.item.name, + children, + html: params.html, + }); + }, + }, + }; + }, + }); + + const searchPageState = getInstantSearchUiState(); + + function debounce(fn, time) { + let timerId = undefined + + return function(...args) { + if (timerId) { + clearTimeout(timerId) + } + + timerId = setTimeout(() => fn(...args), time) + } + } + + const debouncedSetInstantSearchUiState = debounce(setInstantSearchUiState, 500) + + autocomplete({ + container: '#autocomplete', + placeholder: 'Search for Articles', + detachedMediaQuery: 'none', + openOnFocus: true, + plugins: [recentSearchesPlugin,querySuggestionsPlugin], + initialState: { + query: searchPageState.query || '', + }, + onSubmit({ state }) { + setInstantSearchUiState({ query: state.query }) + }, + onReset() { + setInstantSearchUiState({ query: '' }) + }, + onStateChange({ prevState, state }) { + if (prevState.query !== state.query) { + if ( settings.useDebounce ) { + debouncedSetInstantSearchUiState({ query: state.query }) + } else { + setInstantSearchUiState({ query: state.query }); + } + } + }, + }); +} + diff --git a/theme/Algolia-search/assets/momentjs.js b/theme/Algolia-search/assets/momentjs.js new file mode 100644 index 0000000..cb9b0e2 --- /dev/null +++ b/theme/Algolia-search/assets/momentjs.js @@ -0,0 +1,5689 @@ +//! moment.js +//! version : 2.29.2 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +try { + (function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() + }(this, (function () { 'use strict'; + + var hookCallback; + + function hooks() { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback(callback) { + hookCallback = callback; + } + + function isArray(input) { + return ( + input instanceof Array || + Object.prototype.toString.call(input) === '[object Array]' + ); + } + + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return ( + input != null && + Object.prototype.toString.call(input) === '[object Object]' + ); + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return Object.getOwnPropertyNames(obj).length === 0; + } else { + var k; + for (k in obj) { + if (hasOwnProp(obj, k)) { + return false; + } + } + return true; + } + } + + function isUndefined(input) { + return input === void 0; + } + + function isNumber(input) { + return ( + typeof input === 'number' || + Object.prototype.toString.call(input) === '[object Number]' + ); + } + + function isDate(input) { + return ( + input instanceof Date || + Object.prototype.toString.call(input) === '[object Date]' + ); + } + + function map(arr, fn) { + var res = [], + i, + arrLen = arr.length; + for (i = 0; i < arrLen; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function createUTC(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty: false, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: false, + invalidEra: null, + invalidMonth: null, + invalidFormat: false, + userInvalidated: false, + iso: false, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: false, + weekdayMismatch: false, + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this), + len = t.length >>> 0, + i; + + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m), + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }), + isNowValid = + !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + } + return m._isValid; + } + + function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; + + function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); + } + + function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + + var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }; + + function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); + } + + var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }; + + function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate() { + return this._invalidDate; + } + + var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; + + function ordinal(number) { + return this._ordinal.replace('%d', number); + } + + var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }; + + function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); + } + + function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + var aliases = {}; + + function addUnitAlias(unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + var priorities = {}; + + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + + function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } + + function get(mom, unit) { + return mom.isValid() + ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() + : NaN; + } + + function set$1(mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if ( + unit === 'FullYear' && + isLeapYear(mom.year()) && + mom.month() === 1 && + mom.date() === 29 + ) { + value = toInt(value); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( + value, + mom.month(), + daysInMonth(value, mom.month()) + ); + } else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + } + + // MOMENTS + + function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + regexes; + + regexes = {}; + + function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; + } + + function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; + + function mod(n, x) { + return ((n % x) + x) % x; + } + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PRIORITY + + addUnitPriority('month', 8); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + + function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; + } + + function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; + } + + function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp( + '^' + this.months(mom, '').replace('.', '') + '$', + 'i' + ); + this._shortMonthsParse[i] = new RegExp( + '^' + this.monthsShort(mom, '').replace('.', '') + '$', + 'i' + ); + } + if (!strict && !this._monthsParse[i]) { + regex = + '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'MMMM' && + this._longMonthsParse[i].test(monthName) + ) { + return i; + } else if ( + strict && + format === 'MMM' && + this._shortMonthsParse[i].test(monthName) + ) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth(mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } + + function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); + } + + function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } + } + + function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } + } + + function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PRIORITIES + + addUnitPriority('year', 1); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + // HOOKS + + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', true); + + function getIsLeapYear() { + return isLeapYear(this.year()); + } + + function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; + } + + function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear, + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear, + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PRIORITIES + + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } + ); + + // HELPERS + + // LOCALES + + function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }; + + function localeFirstDayOfWeek() { + return this._week.dow; + } + + function localeFirstDayOfYear() { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } + + var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; + + function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; + } + + function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; + } + + function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } + } + + function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } + } + + function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } + } + + function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PRIORITY + addUnitPriority('hour', 13); + + // PARSING + + function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('k', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); + + function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse, + }; + + // internal storage for locale config files + var locales = {}, + localeFamilies = {}, + globalLocale; + + function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; + } + } + return minl; + } + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; + } + + function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + return name.match('^[^/\\\\]*$') != null; + } + + function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + typeof module !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = require; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } + + return globalLocale._abbr; + } + + function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function listLocales() { + return keys(locales); + } + + function checkOverflow(m) { + var overflow, + a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; + + // date from iso format + function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr + ) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; + } + + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } + + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^)]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); + } + + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; + } + + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } + } + + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } + } + + // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } + } + + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = + config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if ( + config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0 + ) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; + + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; + + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); + } + + function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); + } + + function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + + if (format === true || format === false) { + strict = format; + format = undefined; + } + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min() { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max() { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +new Date(); + }; + + var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', + ]; + + function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } + + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; + } + + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); + } + + function isDuration(obj) { + return obj instanceof Duration; + } + + function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; + } + + // FORMATTING + + function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; + + if (matches === null) { + return null; + } + + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } + + function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; + } + + function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}, + other; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal() { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset() { + return this.isValid() ? this._isUTC : false; + } + + function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } + + return ret; + } + + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; + + function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +base.clone().add(res.months, 'M'); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } + + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + + function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } + + var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); + + function isString(input) { + return typeof input === 'string' || input instanceof String; + } + + // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined + function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); + } + + function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; + } + + function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; + + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; + } + + function calendar$1(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); + } + + function clone() { + return new Moment(this); + } + + function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } + + function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + + function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); + } + + function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } + } + + function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } + + function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); + } + + function diff(input, units, asFloat) { + var that, zoneDelta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + + return asFloat ? output : absFloor(output); + } + + function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } + + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); + } + + function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } + + function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData() { + return this._locale; + } + + var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; + } + + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } + } + + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } + } + + function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; + } + + function unix() { + return Math.floor(this.valueOf() / 1000); + } + + function toDate() { + return new Date(this.valueOf()); + } + + function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; + } + + function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; + } + + function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } + + function isValid$2() { + return isValid(this); + } + + function parsingFlags() { + return extend({}, getParsingFlags(this)); + } + + function invalidAt() { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; + } + + addFormatToken('N', 0, 0, 'eraAbbr'); + addFormatToken('NN', 0, 0, 'eraAbbr'); + addFormatToken('NNN', 0, 0, 'eraAbbr'); + addFormatToken('NNNN', 0, 0, 'eraName'); + addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + + addFormatToken('y', ['y', 1], 'yo', 'eraYear'); + addFormatToken('y', ['yy', 2], 0, 'eraYear'); + addFormatToken('y', ['yyy', 3], 0, 'eraYear'); + addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + + addRegexToken('N', matchEraAbbr); + addRegexToken('NN', matchEraAbbr); + addRegexToken('NNN', matchEraAbbr); + addRegexToken('NNNN', matchEraName); + addRegexToken('NNNNN', matchEraNarrow); + + addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } + ); + + addRegexToken('y', matchUnsigned); + addRegexToken('yy', matchUnsigned); + addRegexToken('yyy', matchUnsigned); + addRegexToken('yyyy', matchUnsigned); + addRegexToken('yo', matchEraYearOrdinal); + + addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); + addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } + }); + + function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = hooks(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } + + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = hooks(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; + } + + function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); + + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); + + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } + } + + function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return hooks(era.since).year(); + } else { + return hooks(era.since).year() + (year - era.offset) * dir; + } + } + + function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } + + return ''; + } + + function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } + + return ''; + } + + function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } + + return ''; + } + + function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; + + // truncate time + val = this.clone().startOf('day').valueOf(); + + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - hooks(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } + + return this.year(); + } + + function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; + } + + function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; + } + + function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; + } + + function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); + } + + function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); + } + + function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); + } + + function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; + } + + function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + eras = this.eras(); + + for (i = 0, l = eras.length; i < l; ++i) { + namePieces.push(regexEscape(eras[i].name)); + abbrPieces.push(regexEscape(eras[i].abbr)); + narrowPieces.push(regexEscape(eras[i].narrow)); + + mixedPieces.push(regexEscape(eras[i].name)); + mixedPieces.push(regexEscape(eras[i].abbr)); + mixedPieces.push(regexEscape(eras[i].narrow)); + } + + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PRIORITY + + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } + ); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy + ); + } + + function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); + } + + function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); + } + + function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); + } + + function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PRIORITY + + addUnitPriority('quarter', 7); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PRIORITY + addUnitPriority('date', 9); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PRIORITY + addUnitPriority('dayOfYear', 4); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); + } + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PRIORITY + + addUnitPriority('minute', 14); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PRIORITY + + addUnitPriority('second', 15); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PRIORITY + + addUnitPriority('millisecond', 16); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token, getSetMillisecond; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + + getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; + } + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.eraName = getEraName; + proto.eraNarrow = getEraNarrow; + proto.eraAbbr = getEraAbbr; + proto.eraYear = getEraYear; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.weeksInWeekYear = getWeeksInWeekYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth + ); + proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth + ); + proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear + ); + proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone + ); + proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted + ); + + function createUnix(input) { + return createLocal(input * 1000); + } + + function createInZone() { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat(string) { + return string; + } + + var proto$1 = Locale.prototype; + + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + proto$1.eras = localeEras; + proto$1.erasParse = localeErasParse; + proto$1.erasConvertYear = localeErasConvertYear; + proto$1.erasAbbrRegex = erasAbbrRegex; + proto$1.erasNameRegex = erasNameRegex; + proto$1.erasNarrowRegex = erasNarrowRegex; + + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } + + function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); + } + + function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } + + function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } + + function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } + + function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } + + getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + // Side effect imports + + hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale + ); + hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale + ); + + var mathAbs = Math.abs; + + function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function add$1(input, value) { + return addSubtract$1(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); + } + + function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; + } + + function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; + } + + function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function valueOf$1() { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs(alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'); + + function clone$1() { + return createDuration(this); + } + + function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; + } + + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; + } + + var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); + + function weeks() { + return absFloor(this.days() / 7); + } + + var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; + } + + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; + } + + function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } + + locale = this.localeData(); + output = relativeTime$1(this, !withSuffix, th, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var abs$1 = Math.abs; + + function sign(x) { + return (x > 0) - (x < 0) || +x; + } + + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000, + days = abs$1(this._days), + months = abs$1(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); + } + + var proto$2 = Duration.prototype; + + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + + proto$2.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString$1 + ); + proto$2.lang = lang; + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + //! moment.js + + hooks.version = '2.29.2'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // + }; + + return hooks; + + }))); +} catch (e) { + console.error(e); +} diff --git a/theme/Algolia-search/assets/sidebar.js b/theme/Algolia-search/assets/sidebar.js new file mode 100644 index 0000000..18dd3c1 --- /dev/null +++ b/theme/Algolia-search/assets/sidebar.js @@ -0,0 +1,44 @@ + + +const searchClient = algoliasearch('TEJIG1OP44', 'ceccf5707ee9c36062d2af126551aa8c'); + +const search = instantsearch({ + indexName: 'zendesk_d3v-algolia-peter_tickets', + searchClient, +}); + +search.addWidgets([ + instantsearch.widgets.searchBox({ + container: '#searchbox', + }), + instantsearch.widgets.clearRefinements({ + container: '#clear-refinements', + }), + instantsearch.widgets.refinementList({ + container: '#brand-list', + attribute: 'channel', + }), + instantsearch.widgets.hits({ + container: '#hits', + templates: { + item: ` +
+
+ From: {{#helpers.highlight}}{ "attribute": "requester" }{{/helpers.highlight}} {{#helpers.highlight}}{ "attribute": "created_at" }{{/helpers.highlight}} +
+
+ {{#helpers.highlight}}{ "attribute": "subject" }{{/helpers.highlight}} +
+
+ {{#helpers.highlight}}{ "attribute": "description" }{{/helpers.highlight}} +
+
+ `, + }, + }), + instantsearch.widgets.pagination({ + container: '#pagination', + }), +]); + +search.start(); diff --git a/theme/Algolia-search/manifest.json b/theme/Algolia-search/manifest.json new file mode 100644 index 0000000..8cde35b --- /dev/null +++ b/theme/Algolia-search/manifest.json @@ -0,0 +1,436 @@ +{ + "name": "Algolia-search", + "author": "Zendesk", + "version": "2.0", + "api_version": 2, + "default_locale": "en-us", + "settings": [ + { + "label": "algolia_search_settings", + "variables": [ + { + "identifier": "application_id", + "type": "text", + "description": "application_id_description", + "label": "application_id_label", + "value": "TEJIG1OP44" + }, + { + "identifier": "search_api_key", + "type": "text", + "description": "search_api_key_description", + "label": "search_api_key_label", + "value": "ceccf5707ee9c36062d2af126551aa8c" + }, + { + "identifier": "index_name", + "type": "text", + "description": "index_name_description", + "label": "index_name_label", + "value": "zendesk_d3v-algolia-peter_articles" + }, + { + "identifier": "query_suggestion_index", + "type": "text", + "description": "query_suggestion_index_description", + "label": "query_suggestion_index_label", + "value": "zendesk_d3v-algolia-peter_articles_query_suggestions" + }, + { + "identifier": "use_autocomplete", + "type": "checkbox", + "description": "use_autocomplete_description", + "label": "use_autocomplete_label", + "value": true + }, + { + "identifier": "use_debounce", + "type": "checkbox", + "description": "use_debounce_description", + "label": "use_debounce_label", + "value": true + } + ] + }, + { + "label": "colors_group_label", + "variables": [ + { + "identifier": "brand_color", + "type": "color", + "description": "brand_color_description", + "label": "brand_color_label", + "value": "#17494D" + }, + { + "identifier": "brand_text_color", + "type": "color", + "description": "brand_text_color_description", + "label": "brand_text_color_label", + "value": "#FFFFFF" + }, + { + "identifier": "text_color", + "type": "color", + "description": "text_color_description", + "label": "text_color_label", + "value": "#2F3941" + }, + { + "identifier": "link_color", + "type": "color", + "description": "link_color_description", + "label": "link_color_label", + "value": "#1F73B7" + }, + { + "identifier": "visited_link_color", + "type": "color", + "description": "visited_link_color_description", + "label": "visited_link_color_label", + "value": "#4B61C3" + }, + { + "identifier": "background_color", + "type": "color", + "description": "background_color_description", + "label": "background_color_label", + "value": "#FFFFFF" + } + ] + }, + { + "label": "fonts_group_label", + "variables": [ + { + "identifier": "heading_font", + "type": "list", + "description": "heading_font_description", + "label": "heading_font_label", + "value": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif", + "options": [ + { + "label": "System", + "value": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" + }, + { + "label": "Arial", + "value": "Arial, 'Helvetica Neue', Helvetica, sans-serif" + }, + { + "label": "Arial Black", + "value": "'Arial Black', Arial, 'Helvetica Neue', Helvetica, sans-serif" + }, + { + "label": "Baskerville", + "value": "Baskerville, 'Times New Roman', Times, serif" + }, + { + "label": "Century Gothic", + "value": "'Century Gothic', AppleGothic, sans-serif" + }, + { + "label": "Copperplate Light", + "value": "'Copperplate Light', 'Copperplate Gothic Light', serif" + }, + { + "label": "Courier New", + "value": "'Courier New', Courier, monospace" + }, + { + "label": "Futura", + "value": "Futura, 'Century Gothic', AppleGothic, sans-serif" + }, + { + "label": "Garamond", + "value": "Garamond, 'Hoefler Text', 'Times New Roman', Times, serif" + }, + { + "label": "Geneva", + "value": "Geneva, 'Lucida Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif" + }, + { + "label": "Georgia", + "value": "Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif" + }, + { + "label": "Helvetica", + "value": "Helvetica, Arial, sans-serif" + }, + { + "label": "Helvetica Neue", + "value": "'Helvetica Neue', Arial, Helvetica, sans-serif" + }, + { + "label": "Impact", + "value": "Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif" + }, + { + "label": "Lucida Grande", + "value": "'Lucida Grande', 'Lucida Sans', 'Lucida Sans Unicode', sans-serif" + }, + { + "label": "Trebuchet MS", + "value": "'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif" + } + ] + }, + { + "identifier": "text_font", + "type": "list", + "description": "text_font_description", + "label": "text_font_label", + "value": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif", + "options": [ + { + "label": "System", + "value": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" + }, + { + "label": "Arial", + "value": "Arial, 'Helvetica Neue', Helvetica, sans-serif" + }, + { + "label": "Arial Black", + "value": "'Arial Black', Arial, 'Helvetica Neue', Helvetica, sans-serif" + }, + { + "label": "Baskerville", + "value": "Baskerville, 'Times New Roman', Times, serif" + }, + { + "label": "Century Gothic", + "value": "'Century Gothic', AppleGothic, sans-serif" + }, + { + "label": "Copperplate Light", + "value": "'Copperplate Light', 'Copperplate Gothic Light', serif" + }, + { + "label": "Courier New", + "value": "'Courier New', Courier, monospace" + }, + { + "label": "Futura", + "value": "Futura, 'Century Gothic', AppleGothic, sans-serif" + }, + { + "label": "Garamond", + "value": "Garamond, 'Hoefler Text', 'Times New Roman', Times, serif" + }, + { + "label": "Geneva", + "value": "Geneva, 'Lucida Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif" + }, + { + "label": "Georgia", + "value": "Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif" + }, + { + "label": "Helvetica", + "value": "Helvetica, Arial, sans-serif" + }, + { + "label": "Helvetica Neue", + "value": "'Helvetica Neue', Arial, Helvetica, sans-serif" + }, + { + "label": "Impact", + "value": "Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif" + }, + { + "label": "Lucida Grande", + "value": "'Lucida Grande', 'Lucida Sans', 'Lucida Sans Unicode', sans-serif" + }, + { + "label": "Trebuchet MS", + "value": "'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif" + } + ] + } + ] + }, + { + "label": "brand_group_label", + "variables": [ + { + "identifier": "logo", + "type": "file", + "description": "logo_description", + "label": "logo_label" + }, + { + "identifier": "show_brand_name", + "type": "checkbox", + "description": "show_brand_name_description", + "label": "show_brand_name_label", + "value": true + }, + { + "identifier": "favicon", + "type": "file", + "description": "favicon_description", + "label": "favicon_label" + } + ] + }, + { + "label": "images_group_label", + "variables": [ + { + "identifier": "homepage_background_image", + "type": "file", + "description": "homepage_background_image_description", + "label": "homepage_background_image_label" + }, + { + "identifier": "community_background_image", + "type": "file", + "description": "community_background_image_description", + "label": "community_background_image_label" + }, + { + "identifier": "community_image", + "type": "file", + "description": "community_image_description", + "label": "community_image_label" + } + ] + }, + { + "label": "search_group_label", + "variables": [ + { + "identifier": "instant_search", + "type": "checkbox", + "description": "instant_search_description", + "label": "instant_search_label", + "value": true + }, + { + "identifier": "scoped_kb_search", + "type": "checkbox", + "description": "scoped_knowledge_base_search_description", + "label": "scoped_knowledge_base_search_label", + "value": true + }, + { + "identifier": "scoped_community_search", + "type": "checkbox", + "description": "scoped_community_search_description", + "label": "scoped_community_search_label", + "value": true + } + ] + }, + { + "label": "home_page_group_label", + "variables": [ + { + "identifier": "show_recent_activity", + "type": "checkbox", + "description": "recent_activity_description", + "label": "recent_activity_label", + "value": true + } + ] + }, + { + "label": "article_page_group_label", + "variables": [ + { + "identifier": "show_articles_in_section", + "type": "checkbox", + "description": "articles_in_section_description", + "label": "articles_in_section_label", + "value": true + }, + { + "identifier": "show_article_author", + "type": "checkbox", + "description": "article_author_description", + "label": "article_author_label", + "value": true + }, + { + "identifier": "show_article_comments", + "type": "checkbox", + "description": "article_comments_description", + "label": "article_comments_label", + "value": true + }, + { + "identifier": "show_follow_article", + "type": "checkbox", + "description": "follow_article_description", + "label": "follow_article_label", + "value": true + }, + { + "identifier": "show_recently_viewed_articles", + "type": "checkbox", + "description": "recently_viewed_articles_description", + "label": "recently_viewed_articles_label", + "value": true + }, + { + "identifier": "show_related_articles", + "type": "checkbox", + "description": "related_articles_description", + "label": "related_articles_label", + "value": true + }, + { + "identifier": "show_article_sharing", + "type": "checkbox", + "description": "article_sharing_description", + "label": "article_sharing_label", + "value": true + } + ] + }, + { + "label": "section_page_group_label", + "variables": [ + { + "identifier": "show_follow_section", + "type": "checkbox", + "description": "follow_section_description", + "label": "follow_section_label", + "value": true + } + ] + }, + { + "label": "community_post_group_label", + "variables": [ + { + "identifier": "show_follow_post", + "type": "checkbox", + "description": "follow_post_description", + "label": "follow_post_label", + "value": true + }, + { + "identifier": "show_post_sharing", + "type": "checkbox", + "description": "post_sharing_description", + "label": "post_sharing_label", + "value": true + } + ] + }, + { + "label": "community_topic_group_label", + "variables": [ + { + "identifier": "show_follow_topic", + "type": "checkbox", + "description": "follow_topic_description", + "label": "follow_topic_label", + "value": true + } + ] + } + ] +} \ No newline at end of file diff --git a/theme/Algolia-search/screenshots/AdminScreen.png b/theme/Algolia-search/screenshots/AdminScreen.png new file mode 100644 index 0000000..a7e7a67 Binary files /dev/null and b/theme/Algolia-search/screenshots/AdminScreen.png differ diff --git a/theme/Algolia-search/script.js b/theme/Algolia-search/script.js new file mode 100644 index 0000000..0f33e7d --- /dev/null +++ b/theme/Algolia-search/script.js @@ -0,0 +1,401 @@ +document.addEventListener('DOMContentLoaded', function() { + // Key map + var ENTER = 13; + var ESCAPE = 27; + var SPACE = 32; + var UP = 38; + var DOWN = 40; + var TAB = 9; + + function closest (element, selector) { + if (Element.prototype.closest) { + return element.closest(selector); + } + do { + if (Element.prototype.matches && element.matches(selector) + || Element.prototype.msMatchesSelector && element.msMatchesSelector(selector) + || Element.prototype.webkitMatchesSelector && element.webkitMatchesSelector(selector)) { + return element; + } + element = element.parentElement || element.parentNode; + } while (element !== null && element.nodeType === 1); + return null; + } + + // social share popups + Array.prototype.forEach.call(document.querySelectorAll('.share a'), function(anchor) { + anchor.addEventListener('click', function(e) { + e.preventDefault(); + window.open(this.href, '', 'height = 500, width = 500'); + }); + }); + + // In some cases we should preserve focus after page reload + function saveFocus() { + var activeElementId = document.activeElement.getAttribute("id"); + sessionStorage.setItem('returnFocusTo', '#' + activeElementId); + } + var returnFocusTo = sessionStorage.getItem('returnFocusTo'); + if (returnFocusTo) { + sessionStorage.removeItem('returnFocusTo'); + var returnFocusToEl = document.querySelector(returnFocusTo); + returnFocusToEl && returnFocusToEl.focus && returnFocusToEl.focus(); + } + + // show form controls when the textarea receives focus or backbutton is used and value exists + var commentContainerTextarea = document.querySelector('.comment-container textarea'), + commentContainerFormControls = document.querySelector('.comment-form-controls, .comment-ccs'); + + if (commentContainerTextarea) { + commentContainerTextarea.addEventListener('focus', function focusCommentContainerTextarea() { + commentContainerFormControls.style.display = 'block'; + commentContainerTextarea.removeEventListener('focus', focusCommentContainerTextarea); + }); + + if (commentContainerTextarea.value !== '') { + commentContainerFormControls.style.display = 'block'; + } + } + + // Expand Request comment form when Add to conversation is clicked + var showRequestCommentContainerTrigger = document.querySelector('.request-container .comment-container .comment-show-container'), + requestCommentFields = document.querySelectorAll('.request-container .comment-container .comment-fields'), + requestCommentSubmit = document.querySelector('.request-container .comment-container .request-submit-comment'); + + if (showRequestCommentContainerTrigger) { + showRequestCommentContainerTrigger.addEventListener('click', function() { + showRequestCommentContainerTrigger.style.display = 'none'; + Array.prototype.forEach.call(requestCommentFields, function(e) { e.style.display = 'block'; }); + requestCommentSubmit.style.display = 'inline-block'; + + if (commentContainerTextarea) { + commentContainerTextarea.focus(); + } + }); + } + + // Mark as solved button + var requestMarkAsSolvedButton = document.querySelector('.request-container .mark-as-solved:not([data-disabled])'), + requestMarkAsSolvedCheckbox = document.querySelector('.request-container .comment-container input[type=checkbox]'), + requestCommentSubmitButton = document.querySelector('.request-container .comment-container input[type=submit]'); + + if (requestMarkAsSolvedButton) { + requestMarkAsSolvedButton.addEventListener('click', function() { + requestMarkAsSolvedCheckbox.setAttribute('checked', true); + requestCommentSubmitButton.disabled = true; + this.setAttribute('data-disabled', true); + // Element.closest is not supported in IE11 + closest(this, 'form').submit(); + }); + } + + // Change Mark as solved text according to whether comment is filled + var requestCommentTextarea = document.querySelector('.request-container .comment-container textarea'); + + var usesWysiwyg = requestCommentTextarea && requestCommentTextarea.dataset.helper === "wysiwyg"; + + function isEmptyPlaintext(s) { + return s.trim() === ''; + } + + function isEmptyHtml(xml) { + var doc = new DOMParser().parseFromString(`<_>${xml}`, "text/xml"); + var img = doc.querySelector("img"); + return img === null && isEmptyPlaintext(doc.children[0].textContent); + }; + + var isEmpty = usesWysiwyg ? isEmptyHtml : isEmptyPlaintext; + + if (requestCommentTextarea) { + requestCommentTextarea.addEventListener('input', function() { + if (isEmpty(requestCommentTextarea.value)) { + if (requestMarkAsSolvedButton) { + requestMarkAsSolvedButton.innerText = requestMarkAsSolvedButton.getAttribute('data-solve-translation'); + } + requestCommentSubmitButton.disabled = true; + } else { + if (requestMarkAsSolvedButton) { + requestMarkAsSolvedButton.innerText = requestMarkAsSolvedButton.getAttribute('data-solve-and-submit-translation'); + } + requestCommentSubmitButton.disabled = false; + } + }); + } + + // Disable submit button if textarea is empty + if (requestCommentTextarea && isEmpty(requestCommentTextarea.value)) { + requestCommentSubmitButton.disabled = true; + } + + // Submit requests filter form on status or organization change in the request list page + Array.prototype.forEach.call(document.querySelectorAll('#request-status-select, #request-organization-select'), function(el) { + el.addEventListener('change', function(e) { + e.stopPropagation(); + saveFocus(); + closest(this, 'form').submit(); + }); + }); + + // Submit requests filter form on search in the request list page + var quickSearch = document.querySelector('#quick-search'); + quickSearch && quickSearch.addEventListener('keyup', function(e) { + if (e.keyCode === ENTER) { + e.stopPropagation(); + saveFocus(); + closest(this, 'form').submit(); + } + }); + + function toggleNavigation(toggle, menu) { + var isExpanded = menu.getAttribute('aria-expanded') === 'true'; + menu.setAttribute('aria-expanded', !isExpanded); + toggle.setAttribute('aria-expanded', !isExpanded); + } + + function closeNavigation(toggle, menu) { + menu.setAttribute('aria-expanded', false); + toggle.setAttribute('aria-expanded', false); + toggle.focus(); + } + + var burgerMenu = document.querySelector('.header .menu-button'); + var userMenu = document.querySelector('#user-nav'); + + burgerMenu.addEventListener('click', function(e) { + e.stopPropagation(); + toggleNavigation(this, userMenu); + }); + + + userMenu.addEventListener('keyup', function(e) { + if (e.keyCode === ESCAPE) { + e.stopPropagation(); + closeNavigation(burgerMenu, this); + } + }); + + if (userMenu.children.length === 0) { + burgerMenu.style.display = 'none'; + } + + // Toggles expanded aria to collapsible elements + var collapsible = document.querySelectorAll('.collapsible-nav, .collapsible-sidebar'); + + Array.prototype.forEach.call(collapsible, function(el) { + var toggle = el.querySelector('.collapsible-nav-toggle, .collapsible-sidebar-toggle'); + + el.addEventListener('click', function(e) { + toggleNavigation(toggle, this); + }); + + el.addEventListener('keyup', function(e) { + if (e.keyCode === ESCAPE) { + closeNavigation(toggle, this); + } + }); + }); + + // Submit organization form in the request page + var requestOrganisationSelect = document.querySelector('#request-organization select'); + + if (requestOrganisationSelect) { + requestOrganisationSelect.addEventListener('change', function() { + closest(this, 'form').submit(); + }); + } + + // If multibrand search has more than 5 help centers or categories collapse the list + var multibrandFilterLists = document.querySelectorAll(".multibrand-filter-list"); + Array.prototype.forEach.call(multibrandFilterLists, function(filter) { + if (filter.children.length > 6) { + // Display the show more button + var trigger = filter.querySelector(".see-all-filters"); + trigger.setAttribute("aria-hidden", false); + + // Add event handler for click + trigger.addEventListener("click", function(e) { + e.stopPropagation(); + trigger.parentNode.removeChild(trigger); + filter.classList.remove("multibrand-filter-list--collapsed") + }) + } + }); + + // If there are any error notifications below an input field, focus that field + var notificationElm = document.querySelector(".notification-error"); + if ( + notificationElm && + notificationElm.previousElementSibling && + typeof notificationElm.previousElementSibling.focus === "function" + ) { + notificationElm.previousElementSibling.focus(); + } + + // Dropdowns + + function Dropdown(toggle, menu) { + this.toggle = toggle; + this.menu = menu; + + this.menuPlacement = { + top: menu.classList.contains("dropdown-menu-top"), + end: menu.classList.contains("dropdown-menu-end") + }; + + this.toggle.addEventListener("click", this.clickHandler.bind(this)); + this.toggle.addEventListener("keydown", this.toggleKeyHandler.bind(this)); + this.menu.addEventListener("keydown", this.menuKeyHandler.bind(this)); + }; + + Dropdown.prototype = { + + get isExpanded() { + return this.menu.getAttribute("aria-expanded") === "true"; + }, + + get menuItems() { + return Array.prototype.slice.call(this.menu.querySelectorAll("[role='menuitem']")); + }, + + dismiss: function() { + if (!this.isExpanded) return; + + this.menu.setAttribute("aria-expanded", false); + this.menu.classList.remove("dropdown-menu-end", "dropdown-menu-top"); + }, + + open: function() { + if (this.isExpanded) return; + + this.menu.setAttribute("aria-expanded", true); + this.handleOverflow(); + }, + + handleOverflow: function() { + var rect = this.menu.getBoundingClientRect(); + + var overflow = { + right: rect.left < 0 || rect.left + rect.width > window.innerWidth, + bottom: rect.top < 0 || rect.top + rect.height > window.innerHeight + }; + + if (overflow.right || this.menuPlacement.end) { + this.menu.classList.add("dropdown-menu-end"); + } + + if (overflow.bottom || this.menuPlacement.top) { + this.menu.classList.add("dropdown-menu-top"); + } + + if (this.menu.getBoundingClientRect().top < 0) { + this.menu.classList.remove("dropdown-menu-top") + } + }, + + focusNextMenuItem: function(currentItem) { + if (!this.menuItems.length) return; + + var currentIndex = this.menuItems.indexOf(currentItem); + var nextIndex = currentIndex === this.menuItems.length - 1 || currentIndex < 0 ? 0 : currentIndex + 1; + + this.menuItems[nextIndex].focus(); + }, + + focusPreviousMenuItem: function(currentItem) { + if (!this.menuItems.length) return; + + var currentIndex = this.menuItems.indexOf(currentItem); + var previousIndex = currentIndex <= 0 ? this.menuItems.length - 1 : currentIndex - 1; + + this.menuItems[previousIndex].focus(); + }, + + clickHandler: function() { + if (this.isExpanded) { + this.dismiss(); + } else { + this.open(); + } + }, + + toggleKeyHandler: function(e) { + switch (e.keyCode) { + case ENTER: + case SPACE: + case DOWN: + e.preventDefault(); + this.open(); + this.focusNextMenuItem(); + break; + case UP: + e.preventDefault(); + this.open(); + this.focusPreviousMenuItem(); + break; + case ESCAPE: + this.dismiss(); + this.toggle.focus(); + break; + } + }, + + menuKeyHandler: function(e) { + var firstItem = this.menuItems[0]; + var lastItem = this.menuItems[this.menuItems.length - 1]; + var currentElement = e.target; + + switch (e.keyCode) { + case ESCAPE: + this.dismiss(); + this.toggle.focus(); + break; + case DOWN: + e.preventDefault(); + this.focusNextMenuItem(currentElement); + break; + case UP: + e.preventDefault(); + this.focusPreviousMenuItem(currentElement); + break; + case TAB: + if (e.shiftKey) { + if (currentElement === firstItem) { + this.dismiss(); + } else { + e.preventDefault(); + this.focusPreviousMenuItem(currentElement); + } + } else if (currentElement === lastItem) { + this.dismiss(); + } else { + e.preventDefault(); + this.focusNextMenuItem(currentElement); + } + break; + case ENTER: + case SPACE: + e.preventDefault(); + currentElement.click(); + break; + } + } + } + + var dropdowns = []; + var dropdownToggles = Array.prototype.slice.call(document.querySelectorAll(".dropdown-toggle")); + + dropdownToggles.forEach(function(toggle) { + var menu = toggle.nextElementSibling; + if (menu && menu.classList.contains("dropdown-menu")) { + dropdowns.push(new Dropdown(toggle, menu)); + } + }); + + document.addEventListener("click", function(evt) { + dropdowns.forEach(function(dropdown) { + if (!dropdown.toggle.contains(evt.target)) { + dropdown.dismiss(); + } + }); + }); +}); diff --git a/theme/Algolia-search/settings/community_background_image.jpg b/theme/Algolia-search/settings/community_background_image.jpg new file mode 100644 index 0000000..6d2cf70 Binary files /dev/null and b/theme/Algolia-search/settings/community_background_image.jpg differ diff --git a/theme/Algolia-search/settings/community_image.jpg b/theme/Algolia-search/settings/community_image.jpg new file mode 100644 index 0000000..3ae3d9b Binary files /dev/null and b/theme/Algolia-search/settings/community_image.jpg differ diff --git a/theme/Algolia-search/settings/favicon.png b/theme/Algolia-search/settings/favicon.png new file mode 100644 index 0000000..5f171b1 Binary files /dev/null and b/theme/Algolia-search/settings/favicon.png differ diff --git a/theme/Algolia-search/settings/homepage_background_image.jpg b/theme/Algolia-search/settings/homepage_background_image.jpg new file mode 100644 index 0000000..b0e09bb Binary files /dev/null and b/theme/Algolia-search/settings/homepage_background_image.jpg differ diff --git a/theme/Algolia-search/settings/logo.png b/theme/Algolia-search/settings/logo.png new file mode 100644 index 0000000..513a61c Binary files /dev/null and b/theme/Algolia-search/settings/logo.png differ diff --git a/theme/Algolia-search/style.css b/theme/Algolia-search/style.css new file mode 100644 index 0000000..a285462 --- /dev/null +++ b/theme/Algolia-search/style.css @@ -0,0 +1,4824 @@ +@charset "UTF-8"; +/***** Normalize.css *****/ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +html { + line-height: 1.15; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +main { + display: block; +} + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +pre { + font-family: monospace, monospace; + font-size: 1em; +} + +a { + background-color: transparent; +} + +abbr[title] { + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted; +} + +b, +strong { + font-weight: bolder; +} + +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +small { + font-size: 80%; +} + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +img { + border-style: none; +} + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + font-size: 100%; + line-height: 1.15; + margin: 0; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +legend { + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +textarea { + overflow: auto; +} + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; + padding: 0; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} + +details { + display: block; +} + +summary { + display: list-item; +} + +template { + display: none; +} + +[hidden] { + display: none; +} + +/***** Base *****/ +* { + box-sizing: border-box; +} + +body { + background-color: $background_color; + color: $text_color; + font-family: $text_font; + font-size: 15px; + line-height: 1.5; + -webkit-font-smoothing: antialiased; +} + +@media (min-width: 1024px) { + body > main { + min-height: 65vh; + } +} + +h1, h2, h3, h4, h5, h6 { + font-family: $heading_font; + margin-top: 0; +} + +h1 { + font-size: 32px; +} + +h2 { + font-size: 22px; +} + +h3 { + font-size: 18px; + font-weight: 600; +} + +h4 { + font-size: 16px; +} + +a { + color: $link_color; + text-decoration: none; +} + +a:hover, a:active, a:focus { + text-decoration: underline; +} + +input, +textarea { + color: #000; + font-size: 14px; +} + +input { + max-width: 100%; + box-sizing: border-box; + transition: border .12s ease-in-out; +} + +input:not([type="checkbox"]) { + outline: none; +} + +input:not([type="checkbox"]):focus { + border: 1px solid $brand_color; +} + +input[disabled] { + background-color: #ddd; +} + +select { + -webkit-appearance: none; + -moz-appearance: none; + background: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23CCC' d='M0 0h10L5 6 0 0z'/%3E%3C/svg%3E%0A") no-repeat #fff; + background-position: right 10px center; + border: 1px solid #ddd; + border-radius: 4px; + padding: 8px 30px 8px 10px; + outline: none; + color: #555; + width: 100%; +} + +select:focus { + border: 1px solid $brand_color; +} + +select::-ms-expand { + display: none; +} + +textarea { + border: 1px solid #ddd; + border-radius: 2px; + resize: vertical; + width: 100%; + outline: none; + padding: 10px; +} + +textarea:focus { + border: 1px solid $brand_color; +} + +.container { + max-width: 1160px; + margin: 0 auto; + padding: 0 5%; +} + +@media (min-width: 1160px) { + .container { + padding: 0; + width: 90%; + } +} + +.container-divider { + border-top: 1px solid #ddd; + margin-bottom: 20px; +} + +ul { + list-style: none; + margin: 0; + padding: 0; +} + +.error-page { + max-width: 1160px; + margin: 0 auto; + padding: 0 5%; +} + +@media (min-width: 1160px) { + .error-page { + padding: 0; + width: 90%; + } +} + +.visibility-hidden { + border: 0; + clip: rect(0 0 0 0); + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + white-space: nowrap; +} + +/***** Buttons *****/ +.button, .split-button button, .section-subscribe button, .article-subscribe button, .community-follow button, .requests-table-toolbar .organization-subscribe button, .subscriptions-subscribe button, .pagination-next-link, .pagination-prev-link, .pagination-first-link, .pagination-last-link { + background-color: transparent; + border: 1px solid $brand_color; + border-radius: 4px; + color: $brand_color; + cursor: pointer; + display: inline-block; + font-size: 12px; + line-height: 2.34; + margin: 0; + padding: 0 20px; + text-align: center; + transition: background-color .12s ease-in-out, border-color .12s ease-in-out, color .15s ease-in-out; + user-select: none; + white-space: nowrap; + width: 100%; + -webkit-touch-callout: none; +} + +@media (min-width: 768px) { + .button, .split-button button, .section-subscribe button, .article-subscribe button, .community-follow button, .requests-table-toolbar .organization-subscribe button, .subscriptions-subscribe button, .pagination-next-link, .pagination-prev-link, .pagination-first-link, .pagination-last-link { + width: auto; + } +} + +.button:hover, .split-button button:hover, .section-subscribe button:hover, .article-subscribe button:hover, .community-follow button:hover, .requests-table-toolbar .organization-subscribe button:hover, .subscriptions-subscribe button:hover, .pagination-next-link:hover, .pagination-prev-link:hover, .pagination-first-link:hover, .pagination-last-link:hover, .button:active, .split-button button:active, .section-subscribe button:active, .article-subscribe button:active, .community-follow button:active, .requests-table-toolbar .organization-subscribe button:active, .subscriptions-subscribe button:active, .pagination-next-link:active, .pagination-prev-link:active, .pagination-first-link:active, .pagination-last-link:active, .button:focus, .split-button button:focus, .section-subscribe button:focus, .article-subscribe button:focus, .community-follow button:focus, .requests-table-toolbar .organization-subscribe button:focus, .subscriptions-subscribe button:focus, .pagination-next-link:focus, .pagination-prev-link:focus, .pagination-first-link:focus, .pagination-last-link:focus, .button.button-primary, .split-button button.button-primary, .section-subscribe button.button-primary, .section-subscribe button[data-selected="true"], .article-subscribe button.button-primary, .article-subscribe button[data-selected="true"], .community-follow button.button-primary, .requests-table-toolbar .organization-subscribe button.button-primary, .requests-table-toolbar .organization-subscribe button[data-selected="true"], .subscriptions-subscribe button.button-primary, .subscriptions-subscribe button[data-selected="true"], .button-primary.pagination-next-link, .button-primary.pagination-prev-link, .button-primary.pagination-first-link, .button-primary.pagination-last-link { + background-color: $brand_color; + color: $brand_text_color; + text-decoration: none; +} + +.button.button-primary:hover, .split-button button:hover, .section-subscribe button.button-primary:hover, .section-subscribe button:hover[data-selected="true"], .article-subscribe button.button-primary:hover, .article-subscribe button:hover[data-selected="true"], .community-follow button.button-primary:hover, .requests-table-toolbar .organization-subscribe button.button-primary:hover, .requests-table-toolbar .organization-subscribe button:hover[data-selected="true"], .subscriptions-subscribe button.button-primary:hover, .subscriptions-subscribe button:hover[data-selected="true"], .button-primary.pagination-next-link:hover, .button-primary.pagination-prev-link:hover, .button-primary.pagination-first-link:hover, .button-primary.pagination-last-link:hover, .button.button-primary:focus, .split-button button.button-primary:focus, .section-subscribe button.button-primary:focus, .section-subscribe button:focus[data-selected="true"], .article-subscribe button.button-primary:focus, .article-subscribe button:focus[data-selected="true"], .community-follow button.button-primary:focus, .requests-table-toolbar .organization-subscribe button.button-primary:focus, .requests-table-toolbar .organization-subscribe button:focus[data-selected="true"], .subscriptions-subscribe button.button-primary:focus, .subscriptions-subscribe button:focus[data-selected="true"], .button-primary.pagination-next-link:focus, .button-primary.pagination-prev-link:focus, .button-primary.pagination-first-link:focus, .button-primary.pagination-last-link:focus, .button.button-primary:active, .split-button button.button-primary:active, .section-subscribe button.button-primary:active, .section-subscribe button:active[data-selected="true"], .article-subscribe button.button-primary:active, .article-subscribe button:active[data-selected="true"], .community-follow button.button-primary:active, .requests-table-toolbar .organization-subscribe button.button-primary:active, .requests-table-toolbar .organization-subscribe button:active[data-selected="true"], .subscriptions-subscribe button.button-primary:active, .subscriptions-subscribe button:active[data-selected="true"], .button-primary.pagination-next-link:active, .button-primary.pagination-prev-link:active, .button-primary.pagination-first-link:active, .button-primary.pagination-last-link:active { + background-color: darken($brand_color, 20%); + border-color: darken($brand_color, 20%); +} + +.button[data-disabled], .split-button button[data-disabled], .section-subscribe button[data-disabled], .article-subscribe button[data-disabled], .community-follow button[data-disabled], .requests-table-toolbar .organization-subscribe button[data-disabled], .subscriptions-subscribe button[data-disabled], .pagination-next-link[data-disabled], .pagination-prev-link[data-disabled], .pagination-first-link[data-disabled], .pagination-last-link[data-disabled] { + cursor: default; +} + +.button-large, input[type="submit"] { + cursor: pointer; + background-color: $brand_color; + border: 0; + border-radius: 4px; + color: $brand_text_color; + font-size: 14px; + line-height: 2.72; + min-width: 190px; + padding: 0 1.9286em; + width: 100%; +} + +@media (min-width: 768px) { + .button-large, input[type="submit"] { + width: auto; + } +} + +.button-large:hover, .button-large:active, .button-large:focus, input[type="submit"]:hover, input[type="submit"]:active, input[type="submit"]:focus { + background-color: darken($brand_color, 20%); +} + +.button-large[disabled], input[type="submit"][disabled] { + background-color: #ddd; +} + +.button-secondary { + color: lighten($text_color, 20%); + border: 1px solid #ddd; + background-color: transparent; +} + +.button-secondary:hover, .button-secondary:focus, .button-secondary:active { + color: $text_color; + border: 1px solid #ddd; + background-color: darken($background_color, 3%); +} + +/***** Split button *****/ +.split-button { + display: flex; +} + +.split-button button { + background-color: $brand_color; + border: 0; + color: $brand_text_color; + height: 32px; + line-height: 16px; + outline-color: $brand_color; +} + +[dir="rtl"] .split-button button:not(:only-child):first-child { + border-left: 1px solid $brand_text_color; + border-top-left-radius: unset; + border-bottom-left-radius: unset; +} + +[dir="ltr"] .split-button button:not(:only-child):first-child { + border-right: 1px solid $brand_text_color; + border-top-right-radius: unset; + border-bottom-right-radius: unset; +} + +.split-button button:not(:only-child):last-child { + display: flex; + justify-content: center; + align-items: center; + width: 26px; + min-width: 26px; + max-width: 26px; + padding: 0; +} + +[dir="rtl"] .split-button button:not(:only-child):last-child { + border-top-right-radius: unset; + border-bottom-right-radius: unset; +} + +[dir="ltr"] .split-button button:not(:only-child):last-child { + border-top-left-radius: unset; + border-bottom-left-radius: unset; +} + +/***** Tables *****/ +.table { + width: 100%; + table-layout: fixed; + border-collapse: collapse; + border-spacing: 0; +} + +@media (min-width: 768px) { + .table { + table-layout: auto; + } +} + +.table th, +.table th a { + color: lighten($text_color, 20%); + font-size: 13px; + text-align: left; +} + +[dir="rtl"] .table th, [dir="rtl"] +.table th a { + text-align: right; +} + +.table tr { + border-bottom: 1px solid #ddd; + display: block; + padding: 20px 0; +} + +@media (min-width: 768px) { + .table tr { + display: table-row; + } +} + +.table td { + display: block; +} + +@media (min-width: 768px) { + .table td { + display: table-cell; + } +} + +@media (min-width: 1024px) { + .table td, .table th { + padding: 20px 30px; + } +} + +@media (min-width: 768px) { + .table td, .table th { + padding: 10px 20px; + height: 60px; + } +} + +/***** Forms *****/ +.form { + max-width: 650px; +} + +.form-field ~ .form-field { + margin-top: 25px; +} + +.form-field label { + display: block; + font-size: 13px; + margin-bottom: 5px; +} + +.form-field input { + border: 1px solid #ddd; + border-radius: 4px; + padding: 10px; + width: 100%; +} + +.form-field input:focus { + border: 1px solid $brand_color; +} + +.form-field input[type="text"] { + border: 1px solid #ddd; + border-radius: 4px; +} + +.form-field input[type="text"]:focus { + border: 1px solid $brand_color; +} + +.form-field input[type="checkbox"] { + width: auto; +} + +.form-field .nesty-input { + border-radius: 4px; + height: 40px; + line-height: 40px; + outline: none; + vertical-align: middle; +} + +.form-field .nesty-input:focus { + border: 1px solid $brand_color; + text-decoration: none; +} + +.form-field .hc-multiselect-toggle:focus { + outline: none; + border: 1px solid $brand_color; + text-decoration: none; +} + +.form-field textarea { + vertical-align: middle; +} + +.form-field input[type="checkbox"] + label { + margin: 0 0 0 10px; +} + +.form-field .optional { + color: lighten($text_color, 20%); + margin-left: 4px; +} + +.form-field p { + color: lighten($text_color, 20%); + font-size: 12px; + margin: 5px 0; +} + +.form footer { + margin-top: 40px; + padding-top: 30px; +} + +.form footer a { + color: lighten($text_color, 20%); + cursor: pointer; + margin-right: 15px; +} + +.form .suggestion-list { + font-size: 13px; + margin-top: 30px; +} + +.form .suggestion-list label { + border-bottom: 1px solid #ddd; + display: block; + padding-bottom: 5px; +} + +.form .suggestion-list li { + padding: 10px 0; +} + +.form .suggestion-list li a:visited { + color: $visited_link_color; +} + +/***** Header *****/ +.header { + max-width: 1160px; + margin: 0 auto; + padding: 0 5%; + position: relative; + align-items: center; + display: flex; + height: 71px; + justify-content: space-between; +} + +@media (min-width: 1160px) { + .header { + padding: 0; + width: 90%; + } +} + +.logo img { + max-height: 37px; + vertical-align: middle; +} + +.logo span { + margin: 0 10px; + color: $brand_color; +} + +.logo a { + display: inline-block; +} + +.logo a:hover, .logo a:focus, .logo a:active { + text-decoration: none; +} + +.user-nav { + display: inline-block; + position: absolute; + white-space: nowrap; +} + +@media (min-width: 768px) { + .user-nav { + position: relative; + } +} + +.user-nav[aria-expanded="true"] { + background-color: #fff; + box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.15), 0 4px 10px 0 rgba(0, 0, 0, 0.1); + border: solid 1px #ddd; + right: 0; + left: 0; + top: 71px; + z-index: 1; +} + +.user-nav[aria-expanded="true"] > a { + display: block; + margin: 20px; +} + +.nav-wrapper a { + border: 0; + color: $link_color; + display: none; + font-size: 14px; + padding: 0 20px 0 0; + width: auto; +} + +@media (min-width: 768px) { + .nav-wrapper a { + display: inline-block; + } +} + +[dir="rtl"] .nav-wrapper a { + padding: 0 0 0 20px; +} + +.nav-wrapper a:hover, .nav-wrapper a:focus, .nav-wrapper a:active { + background-color: transparent; + color: $link_color; + text-decoration: underline; +} + +.nav-wrapper a.sign-in { + display: inline-block; +} + +@media (max-width: 768px) { + .nav-wrapper .hide-on-mobile { + border: 0; + clip: rect(0 0 0 0); + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + white-space: nowrap; + } +} + +.nav-wrapper .menu-button { + background: none; + border: 0; + color: $link_color; + display: inline-block; + margin-right: 10px; + padding: 0; + width: auto; +} + +@media (min-width: 768px) { + .nav-wrapper .menu-button { + display: none; + } +} + +.nav-wrapper .menu-button .icon-menu { + vertical-align: middle; + width: 13px; + height: 13px; +} + +[dir="rtl"] .nav-wrapper .menu-button { + margin-left: 10px; + margin-right: 0; +} + +.nav-wrapper .menu-button:hover, .nav-wrapper .menu-button:focus, .nav-wrapper .menu-button:active { + background-color: transparent; + color: $link_color; +} + +.skip-navigation { + align-items: center; + background-color: black; + color: white; + display: flex; + font-size: 14px; + justify-content: center; + left: -999px; + margin: 20px; + padding: 20px; + overflow: hidden; + position: absolute; + top: auto; + z-index: -999; +} + +[dir="rtl"] .skip-navigation { + left: initial; + right: -999px; +} + +.skip-navigation:focus, .skip-navigation:active { + left: auto; + overflow: auto; + text-align: center; + text-decoration: none; + top: auto; + z-index: 999; +} + +[dir="rtl"] .skip-navigation:focus, [dir="rtl"] .skip-navigation:active { + left: initial; + right: auto; +} + +/***** User info in header *****/ +.user-info { + display: inline-block; +} + +.user-info .dropdown-toggle::after { + display: none; +} + +@media (min-width: 768px) { + .user-info .dropdown-toggle::after { + display: inline-block; + } +} + +.user-info > button { + border: 0; + color: $link_color; + min-width: 0; + padding: 0; + white-space: nowrap; +} + +.user-info > button:hover, .user-info > button:focus { + color: $link_color; + background-color: transparent; +} + +.user-info > button::after { + color: $link_color; + padding-right: 15px; +} + +[dir="rtl"] .user-info > button::after { + padding-left: 15px; + padding-right: 0; +} + +#user #user-name { + display: none; + font-size: 14px; +} + +@media (min-width: 768px) { + #user #user-name { + display: inline-block; + } +} + +#user #user-name:hover { + text-decoration: underline; +} + +/***** User avatar *****/ +.user-avatar { + height: 25px; + width: 25px; + border-radius: 50%; + display: inline-block; + vertical-align: middle; +} + +.avatar { + display: inline-block; + position: relative; +} + +.avatar img { + height: 40px; + width: 40px; +} + +.avatar .icon-agent { + color: $brand_color; + border: 2px solid #fff; + border-radius: 50%; + bottom: -4px; + background-color: $brand_text_color; + font-size: 17px; + height: 17px; + line-height: 17px; + position: absolute; + right: -2px; + text-align: center; + width: 17px; +} + +/***** Footer *****/ +.footer { + border-top: 1px solid #ddd; + margin-top: 60px; + padding: 30px 0; +} + +.footer a { + color: lighten($text_color, 20%); +} + +.footer-inner { + max-width: 1160px; + margin: 0 auto; + padding: 0 5%; + display: flex; + justify-content: space-between; +} + +@media (min-width: 1160px) { + .footer-inner { + padding: 0; + width: 90%; + } +} + +.footer-language-selector button { + color: lighten($text_color, 20%); + display: inline-block; +} + +/***** Breadcrumbs *****/ +.breadcrumbs { + margin: 0 0 15px 0; + padding: 0; +} + +@media (min-width: 768px) { + .breadcrumbs { + margin: 0; + } +} + +.breadcrumbs li { + color: lighten($text_color, 20%); + display: inline; + font-size: 13px; + max-width: 450px; + overflow: hidden; + text-overflow: ellipsis; +} + +.breadcrumbs li + li::before { + content: ">"; + margin: 0 4px; +} + +.breadcrumbs li a:visited { + color: $link_color; +} + +/***** Search field *****/ +.search { + position: relative; +} + +.search input[type="search"] { + border: 1px solid #ddd; + border-radius: 30px; + box-sizing: border-box; + color: #666; + height: 40px; + padding-left: 40px; + padding-right: 20px; + -webkit-appearance: none; + width: 100%; +} + +[dir="rtl"] .search input[type="search"] { + padding-right: 40px; + padding-left: 20px; +} + +.search input[type="search"]:focus { + border: 1px solid $brand_color; + color: #555; +} + +.search-full input[type="search"] { + border: 1px solid #fff; +} + +.search-icon { + position: relative; + top: 50%; + transform: translateY(-50%); + position: absolute; + left: 15px; + z-index: 1; + width: 18px; + height: 18px; + color: #777; +} + +[dir="rtl"] .search-icon { + right: 15px; + left: auto; +} + +.search-container { + position: relative; +} + +/***** Hero component *****/ +.hero { + background-image: url($homepage_background_image); + background-position: center; + background-size: cover; + height: 300px; + padding: 0 20px; + text-align: center; + width: 100%; +} + +.hero-inner { + position: relative; + top: 50%; + transform: translateY(-50%); + max-width: 610px; + margin: 0 auto; +} + +.page-header { + display: flex; + flex-direction: column; + flex-wrap: wrap; + justify-content: space-between; + margin: 10px 0; +} + +@media (min-width: 768px) { + .page-header { + align-items: baseline; + flex-direction: row; + margin: 0; + } +} + +.page-header .section-subscribe { + flex-shrink: 0; + margin-bottom: 10px; +} + +@media (min-width: 768px) { + .page-header .section-subscribe { + margin-bottom: 0; + } +} + +.page-header h1 { + flex-grow: 1; + margin-bottom: 10px; +} + +.page-header-description { + font-style: italic; + margin: 0 0 30px 0; + word-break: break-word; +} + +@media (min-width: 1024px) { + .page-header-description { + flex-basis: 100%; + } +} + +.page-header .icon-lock { + height: 20px; + width: 20px; + position: relative; + left: -5px; + vertical-align: baseline; +} + +.sub-nav { + display: flex; + flex-direction: column; + justify-content: space-between; + margin-bottom: 30px; + min-height: 50px; + padding-bottom: 15px; +} + +@media (min-width: 768px) { + .sub-nav { + align-items: baseline; + flex-direction: row; + } +} + +@media (min-width: 768px) { + .sub-nav input[type="search"] { + min-width: 300px; + } +} + +.sub-nav input[type="search"]::after { + font-size: 15px; +} + +/***** Blocks *****/ +/* Used in Homepage#categories and Community#topics */ +.blocks-list { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + list-style: none; + padding: 0; +} + +@media (min-width: 768px) { + .blocks-list { + margin: 0 -15px; + } +} + +.blocks-item { + border: 1px solid $brand_color; + border-radius: 4px; + box-sizing: border-box; + color: $brand_color; + display: flex; + flex: 1 0 340px; + margin: 0 0 30px; + max-width: 100%; + text-align: center; +} + +@media (min-width: 768px) { + .blocks-item { + margin: 0 15px 30px; + } +} + +.blocks-item:hover, .blocks-item:focus, .blocks-item:active { + background-color: $brand_color; +} + +.blocks-item:hover *, .blocks-item:focus *, .blocks-item:active * { + color: $brand_text_color; + text-decoration: none; +} + +.blocks-item-internal { + background-color: transparent; + border: 1px solid #ddd; +} + +.blocks-item-internal .icon-lock { + height: 15px; + width: 15px; + bottom: 5px; + position: relative; +} + +.blocks-item-internal a { + color: $text_color; +} + +.blocks-item-link { + color: $brand_color; + padding: 20px 30px; + display: flex; + flex-direction: column; + flex: 1; + justify-content: center; + border-radius: inherit; +} + +.blocks-item-link:hover, .blocks-item-link:active { + text-decoration: none; +} + +.blocks-item-link:focus { + outline: 0; + box-shadow: 0 0 0 3px $brand_color; + text-decoration: none; +} + +.blocks-item-title { + margin-bottom: 0; + font-size: 16px; +} + +.blocks-item-description { + margin: 0; +} + +.blocks-item-description:not(:empty) { + margin-top: 10px; +} + +/***** Homepage *****/ +.section { + margin-bottom: 40px; +} + +@media (min-width: 768px) { + .section { + margin-bottom: 60px; + } +} + +.home-section h2 { + margin-bottom: 10px; + text-align: center; +} + +/***** Promoted articles *****/ +.promoted-articles { + display: flex; + flex-direction: column; + flex-wrap: wrap; +} + +@media (min-width: 1024px) { + .promoted-articles { + flex-direction: row; + } +} + +.promoted-articles-item { + flex: 1 0 auto; +} + +@media (min-width: 1024px) { + .promoted-articles-item { + align-self: flex-end; + flex: 0 0 auto; + padding-right: 30px; + width: 33%; + /* Three columns on desktop */ + } + [dir="rtl"] .promoted-articles-item { + padding: 0 0 0 30px; + } +} + +.promoted-articles-item:nth-child(3n) { + padding-right: 0; +} + +.promoted-articles-item a { + display: block; + border-bottom: 1px solid #ddd; + padding: 15px 0; + color: $text_color; +} + +.promoted-articles-item .icon-lock { + vertical-align: baseline; +} + +.promoted-articles-item:last-child a { + border: 0; +} + +@media (min-width: 1024px) { + .promoted-articles-item:last-child a { + border-bottom: 1px solid #ddd; + } +} + +/***** Community section in homepage *****/ +.community { + text-align: center; +} + +.community-image { + min-height: 300px; + margin-top: 32px; + background-image: url($community_image); + background-position: center; + background-repeat: no-repeat; + max-width: 100%; +} + +.community, +.activity { + border-top: 1px solid #ddd; + padding: 30px 0; +} + +/***** Recent activity *****/ +.recent-activity-header { + margin-bottom: 10px; + text-align: center; +} + +.recent-activity-list { + padding: 0; +} + +.recent-activity-item { + border-bottom: 1px solid #ddd; + overflow: auto; + padding: 20px 0; +} + +.recent-activity-item-parent { + font-size: 16px; +} + +.recent-activity-item-parent, .recent-activity-item-link { + margin: 6px 0; + color: $text_color; + display: inline-block; + width: 100%; +} + +@media (min-width: 768px) { + .recent-activity-item-parent, .recent-activity-item-link { + width: 70%; + margin: 0; + } +} + +.recent-activity-item-link { + font-size: 14px; +} + +.recent-activity-item-meta { + margin: 15px 0 0 0; + float: none; +} + +@media (min-width: 768px) { + .recent-activity-item-meta { + margin: 0; + float: right; + } + [dir="rtl"] .recent-activity-item-meta { + float: left; + } +} + +.recent-activity-item-time, .recent-activity-item-comment { + color: lighten($text_color, 20%); + display: inline-block; + font-size: 13px; +} + +.recent-activity-item-comment { + padding-left: 5px; +} + +[dir="rtl"] .recent-activity-item-comment { + padding: 0 5px 0 0; +} + +.recent-activity-item-comment::before { + display: inline-block; +} + +.recent-activity-controls { + padding-top: 15px; +} + +.recent-activity-accessibility-label { + border: 0; + clip: rect(0 0 0 0); + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + white-space: nowrap; +} + +.recent-activity-comment-icon svg { + vertical-align: middle; + color: $brand_color; + width: 16px; + height: 16px; +} + +.recent-activity-comment-icon:after { + content: attr(data-comment-count); + margin-left: 3px; +} + +[dir="rtl"] .recent-activity-comment-icon:after { + margin-left: 0; + margin-right: 3px; +} + +/***** Category pages *****/ +.category-container { + display: flex; + justify-content: flex-end; +} + +.category-content { + flex: 1; +} + +@media (min-width: 1024px) { + .category-content { + flex: 0 0 80%; + } +} + +.section-tree { + display: flex; + flex-direction: column; + flex-wrap: wrap; + justify-content: space-between; +} + +@media (min-width: 768px) { + .section-tree { + flex-direction: row; + } +} + +.section-tree .section { + flex: initial; +} + +@media (min-width: 768px) { + .section-tree .section { + flex: 0 0 45%; + /* Two columns for tablet and desktop. Leaving 5% separation between columns */ + } +} + +.section-tree-title { + margin-bottom: 0; + font-size: 18px; + font-weight: 600; +} + +.section-tree-title a { + color: $text_color; +} + +.section-tree .see-all-articles { + display: block; + padding: 15px 0; +} + +.article-list-item { + font-size: 16px; + padding: 15px 0; +} + +.article-list-item a { + color: $text_color; +} + +.icon-star { + color: $brand_color; + font-size: 18px; +} + +/***** Section pages *****/ +.section-container { + display: flex; + justify-content: flex-end; +} + +.section-content { + flex: 1; +} + +@media (min-width: 1024px) { + .section-content { + flex: 0 0 80%; + } +} + +.section-list { + margin: 40px 0; +} + +.section-list-item { + border-bottom: 1px solid #ddd; + font-size: 16px; + padding: 15px 0; +} + +.section-list-item:first-child { + border-top: 1px solid #ddd; +} + +.section-list-item a { + align-items: center; + color: $text_color; + display: flex; + justify-content: space-between; +} + +.see-all-sections-trigger { + cursor: pointer; + display: block; + padding: 15px; + text-align: center; +} + +.see-all-sections-trigger[aria-hidden="true"] { + display: none; +} + +/***** Article *****/ +.article { + /* + * The article grid is defined this way to optimize readability: + * Sidebar | Content | Free space + * 17% | 66% | 17% + */ + flex: 1 0 auto; +} + +@media (min-width: 1024px) { + .article { + flex: 1 0 66%; + max-width: 66%; + min-width: 640px; + padding: 0 30px; + } +} + +.article-container { + display: flex; + flex-direction: column; +} + +@media (min-width: 1024px) { + .article-container { + flex-direction: row; + } +} + +.article-header { + align-items: flex-start; + display: flex; + flex-direction: column; + flex-wrap: wrap; + justify-content: space-between; + margin-bottom: 40px; + margin-top: 20px; +} + +@media (min-width: 768px) { + .article-header { + flex-direction: row; + margin-top: 0; + } +} + +.article-avatar { + margin-right: 10px; +} + +.article-author { + margin-bottom: 10px; +} + +@media (min-width: 768px) { + .article-title { + flex-basis: 100%; + /* Take entire row */ + } +} + +.article-title .icon-lock { + position: relative; + left: -5px; + vertical-align: baseline; +} + +.article [role="button"] { + flex-shrink: 0; + /*Avoid collapsing elements in Safari (https://github.com/philipwalton/flexbugs#1-minimum-content-sizing-of-flex-items-not-honored)*/ + width: 100%; +} + +@media (min-width: 768px) { + .article [role="button"] { + width: auto; + } +} + +.article-info { + max-width: 100%; +} + +.article-meta { + display: inline-block; + vertical-align: middle; +} + +.article-body img { + height: auto; + max-width: 100%; +} + +.article-body ul, .article-body ol { + padding-left: 20px; + list-style-position: outside; + margin: 20px 0 20px 20px; +} + +[dir="rtl"] .article-body ul, [dir="rtl"] .article-body ol { + padding-right: 20px; + padding-left: 0; + margin-left: 0; + margin-right: 20px; +} + +.article-body ul > ul, .article-body ol > ol, .article-body ol > ul, .article-body ul > ol, .article-body li > ul, .article-body li > ol { + margin: 0; +} + +.article-body ul { + list-style-type: disc; +} + +.article-body a:visited { + color: $visited_link_color; +} + +.article-body code { + background: darken($background_color, 3%); + border: 1px solid #ddd; + border-radius: 3px; + padding: 0 5px; + margin: 0 2px; +} + +.article-body pre { + background: darken($background_color, 3%); + border: 1px solid #ddd; + border-radius: 3px; + padding: 10px 15px; + overflow: auto; + white-space: pre; +} + +.article-body blockquote { + border-left: 1px solid #ddd; + color: lighten($text_color, 20%); + font-style: italic; + padding: 0 15px; +} + +.article-body > p:last-child { + margin-bottom: 0; +} + +.article-content { + line-height: 1.6; + margin: 40px 0; + word-wrap: break-word; +} + +.article-footer { + align-items: center; + display: flex; + justify-content: space-between; + padding-bottom: 20px; +} + +.article-comment-count { + color: lighten($text_color, 20%); +} + +.article-comment-count:hover { + text-decoration: none; +} + +.article-comment-count-icon { + vertical-align: middle; + color: $brand_color; + width: 18px; + height: 18px; +} + +.article-sidebar { + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + flex: 1 0 auto; + margin-bottom: 20px; + padding: 0; +} + +@media (min-width: 1024px) { + .article-sidebar { + border: 0; + flex: 0 0 17%; + height: auto; + } +} + +.article-relatives { + border-top: 1px solid #ddd; + display: flex; + flex-direction: column; + padding: 20px 0; +} + +@media (min-width: 768px) { + .article-relatives { + flex-direction: row; + } +} + +.article-relatives > * { + flex: 1 0 50%; + min-width: 50%; + overflow-wrap: break-word; + margin-right: 0; +} + +.article-relatives > *:last-child { + padding: 0; +} + +@media (min-width: 768px) { + .article-relatives > * { + padding-right: 20px; + } +} + +.article-votes { + border-top: 1px solid #ddd; + padding: 30px 0; + text-align: center; +} + +.article-vote { + margin: 10px 5px; + min-width: 90px; + width: auto; +} + +.article-more-questions { + margin: 10px 0 20px; + text-align: center; +} + +.article-return-to-top { + border-top: 1px solid #ddd; +} + +@media (min-width: 1024px) { + .article-return-to-top { + display: none; + } +} + +.article-return-to-top a { + color: $text_color; + display: block; + padding: 20px 0; +} + +.article-return-to-top a:hover, .article-return-to-top a:focus { + text-decoration: none; +} + +.article-return-to-top-icon { + transform: rotate(0.5turn); +} + +.sidenav-title { + font-size: 15px; + position: relative; + font-weight: 600; +} + +.sidenav-item { + border-radius: 4px; + color: $text_color; + display: block; + margin-bottom: 10px; + padding: 10px; +} + +.sidenav-item.current-article, .sidenav-item:hover { + background-color: $brand_color; + color: $brand_text_color; + text-decoration: none; +} + +.recent-articles li, +.related-articles li { + margin-bottom: 15px; +} + +/***** Attachments *****/ +/* Styles attachments inside posts, articles and comments */ +.attachments .attachment-item { + padding-left: 20px; + position: relative; + margin-bottom: 10px; +} + +.attachments .attachment-item:last-child { + margin-bottom: 0; +} + +.attachments .attachment-item .attachment-icon { + color: $text_color; + left: 0; + position: absolute; + top: 5px; +} + +[dir="rtl"] .attachments .attachment-item { + padding-left: 0; + padding-right: 20px; +} + +[dir="rtl"] .attachments .attachment-item .attachment-icon { + left: auto; + right: 0; +} + +.upload-dropzone span { + color: lighten($text_color, 20%); +} + +/***** Social share links *****/ +.share { + padding: 0; + white-space: nowrap; +} + +.share li, .share a { + display: inline-block; +} + +.share li { + height: 25px; + width: 25px; +} + +.share a { + color: lighten($text_color, 20%); +} + +.share a:hover { + text-decoration: none; + color: $brand_color; +} + +.share a svg { + height: 18px; + width: 18px; + display: block; +} + +/***** Comments *****/ +/* Styles comments inside articles, posts and requests */ +.comment { + border-bottom: 1px solid #ddd; + padding: 20px 0; +} + +.comment-heading, .recent-articles-title, +.related-articles-title { + margin-bottom: 5px; + margin-top: 0; + font-size: 18px; + font-weight: 600; +} + +.comment-overview { + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + padding: 20px 0; +} + +.comment-overview p { + margin-top: 0; +} + +.comment-callout { + color: lighten($text_color, 20%); + display: inline-block; + font-size: 13px; + margin-bottom: 0; +} + +.comment-callout a { + color: $brand_color; +} + +.comment-sorter { + display: inline-block; + float: right; +} + +.comment-sorter .dropdown-toggle { + color: lighten($text_color, 20%); + font-size: 13px; +} + +[dir="rtl"] .comment-sorter { + float: left; +} + +.comment-wrapper { + display: flex; + position: relative; +} + +.comment-wrapper.comment-official { + border: 1px solid $brand_color; + padding: 40px 20px 20px; +} + +@media (min-width: 768px) { + .comment-wrapper.comment-official { + padding-top: 20px; + } +} + +.comment-info { + min-width: 0; + padding-right: 20px; + width: 100%; +} + +[dir="rtl"] .comment-info { + padding-right: 0; + padding-left: 20px; +} + +.comment-author { + align-items: flex-end; + display: flex; + flex-wrap: wrap; + margin-bottom: 20px; +} + +@media (min-width: 768px) { + .comment-author { + justify-content: space-between; + } +} + +.comment-avatar { + margin-right: 10px; +} + +[dir="rtl"] .comment-avatar { + margin-left: 10px; + margin-right: 0; +} + +.comment-meta { + flex: 1 0 auto; +} + +.comment-labels { + flex-basis: 100%; +} + +@media (min-width: 768px) { + .comment-labels { + flex-basis: auto; + } +} + +.comment .status-label:not(.status-label-official) { + margin-top: 10px; +} + +@media (min-width: 768px) { + .comment .status-label:not(.status-label-official) { + margin-top: 0; + } +} + +.comment-form { + display: flex; + padding-top: 30px; + word-wrap: break-word; +} + +.comment-container { + width: 100%; +} + +.comment-form-controls { + display: none; + margin-top: 10px; + text-align: left; +} + +@media (min-width: 768px) { + [dir="ltr"] .comment-form-controls { + text-align: right; + } +} + +.comment-form-controls input[type="submit"] { + margin-top: 15px; +} + +@media (min-width: 1024px) { + .comment-form-controls input[type="submit"] { + margin-left: 15px; + } + [dir="rtl"] .comment-form-controls input[type="submit"] { + margin-left: 0; + margin-right: 15px; + } +} + +.comment-form-controls input[type="checkbox"] { + margin-right: 5px; +} + +.comment-form-controls input[type="checkbox"] [dir="rtl"] { + margin-left: 5px; +} + +.comment-ccs { + display: none; +} + +.comment-ccs + textarea { + margin-top: 10px; +} + +.comment-attachments { + margin-top: 10px; +} + +.comment-attachments a { + color: $brand_color; +} + +.comment-body { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + word-break: break-word; + word-wrap: break-word; + font-family: $text_font; + line-height: 1.6; + overflow-x: auto; +} + +.comment-body img { + height: auto; + max-width: 100%; +} + +.comment-body ul, .comment-body ol { + padding-left: 20px; + list-style-position: outside; + margin: 20px 0 20px 20px; +} + +[dir="rtl"] .comment-body ul, [dir="rtl"] .comment-body ol { + padding-right: 20px; + padding-left: 0; + margin-left: 0; + margin-right: 20px; +} + +.comment-body ul > ul, .comment-body ol > ol, .comment-body ol > ul, .comment-body ul > ol, .comment-body li > ul, .comment-body li > ol { + margin: 0; +} + +.comment-body ul { + list-style-type: disc; +} + +.comment-body a:visited { + color: $visited_link_color; +} + +.comment-body code { + background: darken($background_color, 3%); + border: 1px solid #ddd; + border-radius: 3px; + padding: 0 5px; + margin: 0 2px; +} + +.comment-body pre { + background: darken($background_color, 3%); + border: 1px solid #ddd; + border-radius: 3px; + padding: 10px 15px; + overflow: auto; + white-space: pre; +} + +.comment-body blockquote { + border-left: 1px solid #ddd; + color: lighten($text_color, 20%); + font-style: italic; + padding: 0 15px; +} + +.comment-mark-as-solved { + display: inline-block; +} + +/***** Vote *****/ +/* Used in article comments, post comments and post */ +.vote { + display: flex; + flex-direction: column; + text-align: center; +} + +.vote a:active, .vote a:hover, .vote a:focus { + text-decoration: none; +} + +.vote-sum { + color: lighten($text_color, 20%); + display: block; + margin: 3px 0; +} + +[dir="rtl"] .vote-sum { + direction: ltr; + unicode-bidi: bidi-override; +} + +.vote-up svg { + transform: scale(1, -1); +} + +.vote-up:hover, +.vote-down:hover { + color: $brand_color; +} + +.vote-up, .vote-down { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: transparent; + border: none; + color: lighten($text_color, 20%); + cursor: pointer; + min-height: 35px; + min-width: 35px; + display: flex; + align-items: center; + justify-content: center; +} + +.vote-voted { + color: $brand_color; +} + +.vote-voted:hover { + color: darken($brand_color, 20%); +} + +/***** Actions *****/ +/* Styles admin and en user actions(edit, delete, change status) in comments and posts */ +.actions { + text-align: center; + flex-shrink: 0; + /*Avoid collapsing elements in Safari*/ +} + +.actions button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: transparent; + border: none; + cursor: pointer; + min-height: 35px; + min-width: 35px; + display: flex; + align-items: center; + justify-content: center; +} + +/***** Community *****/ +.community-hero { + background-image: url($community_background_image); + margin-bottom: 10px; +} + +.community-footer { + padding-top: 50px; + text-align: center; +} + +.community-footer-title { + font-size: 16px; + margin-bottom: 20px; +} + +.community-featured-posts .title { + font-size: 18px; + font-weight: 600; +} + +.community-featured-posts, .community-activity { + padding-top: 40px; + width: 100%; +} + +.community-header { + margin-bottom: 30px; +} + +.community-header .title { + margin-bottom: 0; + font-size: 16px; +} + +.post-to-community { + margin-top: 10px; +} + +@media (min-width: 768px) { + .post-to-community { + margin: 0; + } +} + +/* Community topics grid */ +.topics { + max-width: none; + width: 100%; +} + +.topics-item .meta-group { + justify-content: center; + margin-top: 20px; +} + +/* Community topic page */ +.topic-header { + border-bottom: 1px solid #ddd; + font-size: 13px; +} + +@media (min-width: 768px) { + .topic-header { + padding-bottom: 10px; + } +} + +.topic-header .dropdown { + display: block; + border-top: 1px solid #ddd; + padding: 10px 0; +} + +@media (min-width: 768px) { + .topic-header .dropdown { + border-top: 0; + display: inline-block; + margin-right: 20px; + padding: 0; + } +} + +.no-posts-with-filter { + margin-top: 20px; + margin-bottom: 20px; +} + +/* Topic, post and user follow button */ +.community-follow { + margin-bottom: 10px; + width: 100%; +} + +@media (min-width: 768px) { + .community-follow { + margin-bottom: 0; + width: auto; + } +} + +.community-follow button { + line-height: 30px; + padding: 0 10px 0 15px; + position: relative; + width: 100%; +} + +@media (min-width: 768px) { + .community-follow button { + width: auto; + } +} + +.community-follow button:hover { + background-color: $brand_color; +} + +.community-follow button:hover::after, .community-follow button:focus::after { + border-color: $brand_text_color; + color: $brand_text_color; +} + +.community-follow button[data-selected="true"] { + background-color: $brand_color; + color: $brand_text_color; +} + +.community-follow button[data-selected="true"]::after { + border-left: 1px solid $brand_text_color; + color: $brand_text_color; +} + +.community-follow button[data-selected="true"]:hover { + background-color: darken($brand_color, 20%); + border-color: darken($brand_color, 20%); +} + +.community-follow button::after { + border-left: 1px solid $brand_color; + content: attr(data-follower-count); + color: $brand_color; + display: inline-block; + font-family: $heading_font; + margin-left: 15px; + padding-left: 10px; + position: absolute; + right: 10px; +} + +@media (min-width: 768px) { + .community-follow button::after { + position: static; + } +} + +[dir="rtl"] .community-follow button::after { + border-left: 0; + border-right: 1px solid $brand_color; + margin: 0 10px 0 0; + padding: 0 10px 0 0; +} + +/***** Striped list *****/ +/* Used in community posts list and requests list */ +.striped-list { + padding: 0; +} + +.striped-list-item { + align-items: flex-start; + border-bottom: 1px solid #ddd; + display: flex; + flex-direction: column; + justify-content: flex-end; + padding: 20px 0; +} + +@media (min-width: 768px) { + .striped-list-item { + align-items: center; + flex-direction: row; + } +} + +.striped-list-info { + flex: 2; +} + +.striped-list-title { + color: $link_color; + margin-bottom: 10px; + margin-right: 5px; +} + +.striped-list-title:hover, .striped-list-title:focus, .striped-list-title:active { + text-decoration: underline; +} + +.striped-list-title:visited { + color: $visited_link_color; +} + +.striped-list .meta-group { + margin: 5px 0; +} + +.striped-list-count { + color: lighten($text_color, 20%); + font-size: 13px; + justify-content: flex-start; + text-transform: capitalize; +} + +@media (min-width: 768px) { + .striped-list-count { + display: flex; + flex: 1; + justify-content: space-around; + } +} + +.striped-list-count-item::after { + content: "·"; + display: inline-block; + padding: 0 5px; +} + +@media (min-width: 768px) { + .striped-list-count-item::after { + display: none; + } +} + +.striped-list-count-item:last-child::after { + display: none; +} + +.striped-list-number { + text-align: center; +} + +@media (min-width: 768px) { + .striped-list-number { + color: $text_color; + display: block; + } +} + +/***** Status labels *****/ +/* Styles labels used in posts, articles and requests */ +.status-label { + background-color: #038153; + border-radius: 4px; + color: #fff; + font-size: 12px; + font-weight: 600; + margin-right: 2px; + padding: 3px 10px; + vertical-align: middle; + white-space: nowrap; + display: inline-block; +} + +.status-label:hover, .status-label:active, .status-label:focus { + text-decoration: none; +} + +.status-label-pinned, .status-label-featured, .status-label-official { + background-color: $brand_color; +} + +.status-label-official { + border-radius: 0; + margin-right: 0; + position: absolute; + right: 0; + text-align: center; + top: 0; + width: 100%; +} + +@media (min-width: 768px) { + .status-label-official { + border-radius: 0 0 4px 4px; + right: 30px; + width: auto; + } +} + +[dir="rtl"] .status-label-official { + left: 30px; + right: auto; +} + +.status-label-not-planned, .status-label-closed { + background-color: #e9ebed; + color: lighten($text_color, 20%); +} + +.status-label-pending, .status-label-pending-moderation { + background-color: #1f73b7; + text-align: center; +} + +.status-label-open { + background-color: #c72a1c; +} + +.status-label-solved { + background-color: #68737d; +} + +.status-label-new { + background-color: #ffb648; + color: #703b15; +} + +.status-label-hold { + background-color: #000; +} + +/***** Post *****/ +/* +* The post grid is defined this way: +* Content | Sidebar +* 70% | 30% +*/ +.post { + flex: 1; + margin-bottom: 10px; +} + +@media (min-width: 1024px) { + .post { + flex: 1 0 70%; + max-width: 70%; + } +} + +.post-container { + display: flex; + flex-direction: column; +} + +@media (min-width: 1024px) { + .post-container { + flex-direction: row; + } +} + +.post-header { + align-items: center; + display: flex; + flex-direction: column; + justify-content: space-between; + margin-bottom: 10px; +} + +@media (min-width: 768px) { + .post-header { + align-items: baseline; + flex-direction: row; + } +} + +.post-header .status-label { + vertical-align: super; +} + +.post-title { + margin-bottom: 20px; + width: 100%; +} + +@media (min-width: 768px) { + .post-title { + margin-bottom: 0; + padding-right: 10px; + } +} + +.post-title h1 { + display: inline; + vertical-align: middle; +} + +@media (min-width: 768px) { + .post-title h1 { + margin-right: 5px; + } +} + +.post-author { + align-items: flex-start; + display: flex; + justify-content: space-between; +} + +.post-avatar { + margin-bottom: 30px; +} + +.post-content { + font-family: $text_font; + line-height: 1.6; + word-break: break-word; +} + +.post-info-container { + display: flex; + margin-bottom: 40px; +} + +.post-info { + min-width: 0; + padding-right: 20px; + width: 100%; +} + +[dir="rtl"] .post-info { + padding-right: 0; + padding-left: 20px; +} + +.post-meta { + display: inline-block; + flex: 1; + margin-left: 10px; + vertical-align: middle; +} + +[dir="rtl"] .post-meta { + margin-left: 0; + margin-right: 10px; +} + +.post-body img { + height: auto; + max-width: 100%; +} + +.post-body ul, .post-body ol { + padding-left: 20px; + list-style-position: outside; + margin: 20px 0 20px 20px; +} + +[dir="rtl"] .post-body ul, [dir="rtl"] .post-body ol { + padding-right: 20px; + padding-left: 0; + margin-left: 0; + margin-right: 20px; +} + +.post-body ul > ul, .post-body ol > ol, .post-body ol > ul, .post-body ul > ol, .post-body li > ul, .post-body li > ol { + margin: 0; +} + +.post-body ul { + list-style-type: disc; +} + +.post-body a:visited { + color: $visited_link_color; +} + +.post-body code { + background: darken($background_color, 3%); + border: 1px solid #ddd; + border-radius: 3px; + padding: 0 5px; + margin: 0 2px; +} + +.post-body pre { + background: darken($background_color, 3%); + border: 1px solid #ddd; + border-radius: 3px; + padding: 10px 15px; + overflow: auto; + white-space: pre; +} + +.post-body blockquote { + border-left: 1px solid #ddd; + color: lighten($text_color, 20%); + font-style: italic; + padding: 0 15px; +} + +.post-footer { + align-items: center; + display: flex; + justify-content: space-between; + padding-bottom: 20px; +} + +.post-comment-count { + color: lighten($text_color, 20%); +} + +.post-comment-count:hover { + text-decoration: none; +} + +.post-comment-count .icon-comments { + color: $brand_color; + display: inline-block; + width: 18px; + height: 18px; + margin: 5px; + vertical-align: middle; +} + +.post-sidebar { + border-top: 1px solid #ddd; + flex: 1; + padding: 30px 0; + text-align: center; +} + +@media (min-width: 1024px) { + .post-sidebar { + border: 0; + flex: 1 0 30%; + padding: 0 0 0 50px; + text-align: initial; + } + [dir="rtl"] .post-sidebar { + padding: 0 50px 0 0; + } +} + +.post-sidebar-title { + font-size: 18px; + font-weight: 600; +} + +.post-comments { + margin-bottom: 20px; +} + +@media (min-width: 1024px) { + .post-comments { + margin-bottom: 0; + } +} + +/***** Community Badges *****/ +/* Styles labels used next to the authors of article comments, community posts, and community comments */ +.community-badge-title { + background-color: #04444d; + border-radius: 4px; + color: #fff; + font-size: 12px; + font-weight: 600; + padding: 0px 8px; + vertical-align: top; + white-space: nowrap; + display: inline-flex; + line-height: 18px; + vertical-align: middle; +} + +.profile-info .community-badge-title { + padding: 2px 8px; + line-height: 20px; +} + +.community-badge-container-achievements { + display: flex; +} + +.community-badge-container-achievements > .community-badge-titles { + margin-left: calc(28px - 0.5em); +} + +[dir="rtl"] .community-badge-container-achievements > .community-badge-titles { + margin-right: calc(28px - 0.5em); +} + +.community-name-and-title-badges { + display: flex; + flex-wrap: wrap; +} + +.community-badge { + margin: 2px; +} + +.community-badge-achievements { + display: block; + height: 16px; + white-space: nowrap; + width: 16px; +} + +.profile-info .community-badge-achievements { + height: 40px; + width: 40px; +} + +.community-title-badges { + flex-basis: 100%; + margin-top: 15px; +} + +.community-badge-achievements-rest { + font-size: 12px; + font-weight: 600; + line-height: 20px; + text-align: center; + vertical-align: top; +} + +.community-badge-achievements img { + width: 100%; + height: 100%; +} + +.community-badge-titles img { + width: 20px; + height: 20px; +} + +.profile-info .community-badge-achievements-rest { + line-height: 40px; + font-size: 20px; +} + +/* Navigation element that collapses on mobile */ +.collapsible-nav { + flex-direction: column; + font-size: 14px; + position: relative; +} + +@media (min-width: 768px) { + .collapsible-nav { + flex-direction: row; + } +} + +.collapsible-nav-border { + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; +} + +@media (min-width: 768px) { + .collapsible-nav-border { + border-top: 0; + } +} + +.collapsible-nav-toggle { + top: calc(45px / 2); + transform: translateY(-50%); + position: absolute; + right: 0; + padding: 0; + border: 0; + background: none; + width: 25px; + height: 25px; + border-radius: 50%; +} + +@media (min-width: 768px) { + .collapsible-nav-toggle { + display: none; + } +} + +[dir="rtl"] .collapsible-nav-toggle { + left: 0; + right: auto; +} + +.collapsible-nav-toggle-icon { + display: none; +} + +.collapsible-nav-toggle[aria-expanded="false"] .chevron-icon { + display: inline-block; +} + +.collapsible-nav-toggle[aria-expanded="true"] .x-icon { + display: inline-block; +} + +.collapsible-nav-toggle:focus { + outline: none; + border: 1px solid $brand_color; +} + +.collapsible-nav-list { + display: flex; + flex-direction: column; +} + +@media (min-width: 768px) { + .collapsible-nav-list { + flex-direction: row; + } +} + +.collapsible-nav-list li { + color: $text_color; + line-height: 45px; + order: 1; +} + +@media (min-width: 768px) { + .collapsible-nav-list li { + line-height: normal; + margin-right: 30px; + } + [dir="rtl"] .collapsible-nav-list li { + margin-left: 30px; + margin-right: 0; + } + .collapsible-nav-list li a { + text-decoration: none; + padding: 15px 0; + } +} + +.collapsible-nav-list li a { + color: $text_color; + display: block; +} + +@media (min-width: 768px) { + .collapsible-nav-list li:hover { + border-bottom: 4px solid #ddd; + } + .collapsible-nav-list li:hover a:not([aria-current="page"]) { + padding: 15px 0 11px 0; + text-decoration: none; + } +} + +.collapsible-nav-list li:not([aria-selected="true"]), +.collapsible-nav-list li:not(.current) { + display: none; +} + +@media (min-width: 768px) { + .collapsible-nav-list li:not([aria-selected="true"]), + .collapsible-nav-list li:not(.current) { + display: block; + } +} + +@media (min-width: 768px) { + .collapsible-nav-list li[aria-selected="true"] { + padding: 15px 0 11px 0; + } +} + +.collapsible-nav-list li[aria-selected="true"], +.collapsible-nav-list li.current { + order: 0; + position: relative; +} + +@media (min-width: 768px) { + .collapsible-nav-list li[aria-selected="true"], + .collapsible-nav-list li.current { + border-bottom: 4px solid $brand_color; + order: 1; + } +} + +.collapsible-nav-list li[aria-selected="true"] a, +.collapsible-nav-list li.current a { + color: $text_color; +} + +.collapsible-nav[aria-expanded="true"] li:not([aria-selected="true"]), +.collapsible-nav[aria-expanded="true"] li:not(.current) { + display: block; +} + +/* Sidebar navigation that collapses on mobile */ +.collapsible-sidebar { + flex: 1; + max-height: 45px; + overflow: hidden; + padding: 10px 0; + position: relative; +} + +@media (min-width: 1024px) { + .collapsible-sidebar { + max-height: none; + padding: 0; + } +} + +.collapsible-sidebar-title { + margin-top: 0; +} + +.collapsible-sidebar-toggle { + position: absolute; + top: calc(45px / 2); + transform: translateY(-50%); + right: 0; + padding: 0; + border: 0; + background: none; + width: 25px; + height: 25px; + border-radius: 50%; +} + +@media (min-width: 1024px) { + .collapsible-sidebar-toggle { + display: none; + } +} + +[dir="rtl"] .collapsible-sidebar-toggle { + left: 0; + right: auto; +} + +.collapsible-sidebar-toggle-icon { + display: none; +} + +.collapsible-sidebar-toggle[aria-expanded="false"] .chevron-icon { + display: inline-block; +} + +.collapsible-sidebar-toggle[aria-expanded="true"] .x-icon { + display: inline-block; +} + +.collapsible-sidebar-toggle:focus { + outline: none; + border: 1px solid $brand_color; +} + +.collapsible-sidebar-body { + display: none; +} + +@media (min-width: 1024px) { + .collapsible-sidebar-body { + display: block; + } +} + +.collapsible-sidebar[aria-expanded="true"] { + max-height: none; +} + +.collapsible-sidebar[aria-expanded="true"] .collapsible-sidebar-body { + display: block; +} + +/***** My activities *****/ +.my-activities-nav { + background-color: darken($background_color, 5%); + margin-bottom: 20px; +} + +.my-activities-sub-nav { + margin-bottom: 30px; +} + +.my-activities-table .striped-list-title { + /* My activities tables */ + display: block; + margin-bottom: 10px; + max-width: 350px; + white-space: normal; +} + +@media (min-width: 1024px) { + .my-activities-table .striped-list-title { + margin-bottom: 0; + max-width: 500px; + min-width: 350px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } +} + +.my-activities-table thead { + display: none; +} + +@media (min-width: 768px) { + .my-activities-table thead { + display: table-header-group; + } +} + +.my-activities-table th:first-child, +.my-activities-table td:first-child { + padding-left: 0; +} + +@media (min-width: 1024px) { + .my-activities-table th:first-child, + .my-activities-table td:first-child { + width: 500px; + } +} + +.my-activities-table th:last-child, +.my-activities-table td:last-child { + padding-right: 0; +} + +.my-activities-table td:not(:first-child) { + display: none; +} + +@media (min-width: 768px) { + .my-activities-table td:not(:first-child) { + display: table-cell; + } +} + +/* Requests table */ +.requests-search { + width: 100%; +} + +.requests-table-toolbar { + align-items: flex-end; + display: flex; + flex-direction: column; +} + +@media (min-width: 768px) { + .requests-table-toolbar { + flex-direction: row; + } +} + +.requests-table-toolbar .search { + flex: 1; + width: 100%; +} + +.requests-table-toolbar .request-table-filter { + width: 100%; +} + +@media (min-width: 768px) { + .requests-table-toolbar .request-table-filter { + width: auto; + } +} + +.requests-table-toolbar .request-filter { + display: block; +} + +@media (min-width: 768px) { + .requests-table-toolbar .request-filter { + margin: 0 0 0 30px; + } + [dir="rtl"] .requests-table-toolbar .request-filter { + margin: 0 30px 0 0; + } +} + +.requests-table-toolbar .request-filter-label { + font-size: 13px; + margin-top: 30px; +} + +@media (min-width: 768px) { + .requests-table-toolbar .request-filter-label { + margin-top: 0; + } +} + +.requests-table-toolbar select { + max-height: 40px; + margin-bottom: 30px; + width: 100%; +} + +@media (min-width: 768px) { + .requests-table-toolbar select { + margin-bottom: 0; + max-width: 300px; + width: auto; + } +} + +@media (min-width: 768px) { + .requests-table-toolbar .organization-subscribe { + margin-left: 10px; + } + [dir="rtl"] .requests-table-toolbar .organization-subscribe { + margin: 0 10px 0 0; + } +} + +.requests-table-toolbar .organization-subscribe button { + line-height: 40px; + max-height: 40px; + padding: 0 20px; +} + +.requests-table-toolbar + .requests-search-info { + margin-top: 15px; +} + +.requests-table-toolbar + .requests-search-info.meta-data::after { + content: ""; + margin: 0; +} + +.requests-table-toolbar + .requests-search-info + .requests { + margin-top: 20px; +} + +.requests-table-toolbar + .requests { + margin-top: 40px; +} + +.requests .requests-table-meta { + display: block; +} + +@media (min-width: 768px) { + .requests .requests-table-meta { + display: none; + } +} + +.requests .requests-table thead { + display: none; +} + +@media (min-width: 768px) { + .requests .requests-table thead { + display: table-header-group; + } +} + +.requests .requests-table-info { + display: block; +} + +@media (min-width: 768px) { + .requests .requests-table-info { + display: table-cell; + vertical-align: middle; + width: auto; + } +} + +.requests .requests-table .requests-link { + position: relative; +} + +.requests .requests-table .requests-sort-symbol { + position: absolute; + left: calc(100% + 3px); + bottom: 0; + font-size: 10px; +} + +/* Following table */ +@media (min-width: 768px) { + .subscriptions-subscribe button { + width: auto; + } +} + +.subscriptions-table td:last-child { + display: block; +} + +@media (min-width: 768px) { + .subscriptions-table td:last-child { + display: table-cell; + } +} + +.subscriptions-table td:first-child { + display: flex; + align-items: center; +} + +.subscriptions-table .user-avatar { + margin-right: 10px; +} + +.subscriptions .striped-list-title { + display: inline-block; + vertical-align: middle; +} + +/* Contributions table */ +.contributions-table td:last-child { + color: lighten($text_color, 20%); + font-size: 13px; +} + +@media (min-width: 768px) { + .contributions-table td:last-child { + color: inherit; + font-size: inherit; + font-weight: inherit; + } +} + +.no-activities { + color: lighten($text_color, 20%); +} + +/***** Request *****/ +.request-container { + display: flex; + flex-direction: column; + flex-wrap: wrap; + justify-content: space-between; +} + +@media (min-width: 1024px) { + .request-container { + align-items: flex-start; + flex-direction: row; + } +} + +.request-container .comment-container { + min-width: 0; +} + +.request-breadcrumbs { + margin-bottom: 40px; +} + +@media (min-width: 1024px) { + .request-breadcrumbs { + margin-bottom: 60px; + } +} + +.request-main { + flex: 1 0 auto; + order: 1; +} + +.request-main .comment-fields, .request-main .request-submit-comment { + display: none; +} + +.request-main .comment-fields.shown { + display: block; +} + +.request-main .request-submit-comment.shown { + display: inline; +} + +@media (min-width: 1024px) { + .request-main { + flex: 0 0 66%; + order: 0; + min-width: 0; + } +} + +.request-main .comment-form-controls { + display: block; +} + +.request-main .comment-ccs { + display: block; +} + +.request-main .comment-show-container { + border-radius: 2px; + border: 1px solid #ddd; + color: lighten($text_color, 20%); + text-align: inherit; + padding: 8px 25px; + width: 100%; +} + +.request-main .comment-show-container.hidden { + display: none; +} + +.request-main .form-field.comment-ccs > ul { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom: 0; +} + +.request-main .form-field.comment-ccs > ul[data-hc-focus="true"] { + border: 1px solid $brand_color; +} + +.request-main .form-field.comment-ccs > input[type="text"] { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom: 0; +} + +.request-main .comment-ccs + textarea { + border-top-left-radius: 0; + border-top-right-radius: 0; + margin-top: 0; +} + +.request-main .comment-ccs + textarea:focus { + border-top: 1px solid $brand_color; +} + +.request-main input#mark_as_solved { + display: none; +} + +.request-title { + width: 100%; +} + +@media (min-width: 1024px) { + .request-title { + border-bottom: 1px solid #ddd; + margin-bottom: 0; + max-width: 66%; + padding-bottom: 20px; + } +} + +.request-sidebar { + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + flex: 1 0 auto; + order: 0; +} + +@media (min-width: 1024px) { + .request-sidebar { + background-color: darken($background_color, 3%); + border: 0; + font-size: 13px; + flex: 0 0 auto; + padding: 0 20px; + width: 30%; + } +} + +.request-sidebar h2 { + font-size: 15px; + font-weight: 600; + position: relative; +} + +@media (min-width: 1024px) { + .request-sidebar h2 { + display: none; + } +} + +.request-details { + border-bottom: 1px solid #ddd; + font-size: 0; + margin: 0; + padding-bottom: 20px; +} + +.request-details:last-child { + border: 0; +} + +.request-details dt, .request-details dd { + display: inline-block; + vertical-align: top; + font-size: 13px; + margin: 20px 0 0 0; +} + +.request-details dd { + padding: 0 10px; + width: 60%; +} + +.request-details dd::after { + content: "\A"; + white-space: pre; +} + +.request-details dt { + color: lighten($text_color, 20%); + width: 40%; +} + +.request-details .request-collaborators { + display: inline-block; +} + +.request-attachments dt, .request-attachments dd { + width: 100%; +} + +.request-attachments dd { + margin: 10px 0 0 0; +} + +.request-form textarea { + min-height: 120px; +} + +.request-follow-up { + padding-top: 20px; +} + +/***** Pagination *****/ +.pagination { + margin: 20px 0; + text-align: center; +} + +.pagination-next, .pagination-prev, .pagination-first, .pagination-last { + display: inline-block; +} + +.pagination-first-link, .pagination-last-link { + padding: 0 10px; +} + +.pagination-first-text, .pagination-last-text { + border: 0; + clip: rect(0 0 0 0); + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + white-space: nowrap; +} + +.pagination-next-link { + padding-right: 10px; +} + +.pagination-next-text { + margin-right: 10px; +} + +[dir="rtl"] .pagination-next-link { + padding-left: 10px; +} + +[dir="rtl"] .pagination-next-text { + margin-left: 10px; +} + +.pagination-prev-link { + padding-left: 10px; +} + +.pagination-prev-text { + margin-left: 10px; +} + +[dir="rtl"] .pagination-prev-link { + padding-right: 10px; +} + +[dir="rtl"] .pagination-prev-text { + margin-right: 10px; +} + +/***** Metadata *****/ +.meta-group { + display: block; +} + +.meta-group-opposite { + float: right; +} + +[dir="rtl"] .meta-group-opposite { + float: left; +} + +.meta-group * { + display: inline; +} + +.meta-data { + color: lighten($text_color, 20%); + font-size: 13px; +} + +.meta-data:not(:last-child)::after { + content: "\00B7"; + margin: 0 5px; +} + +/* User Profiles */ +.profile-header { + padding: 30px 0; + background-color: darken($background_color, 3%); +} + +.profile-header .container { + display: flex; + flex-wrap: wrap; +} + +@media (min-width: 768px) { + .profile-header .container { + flex-wrap: nowrap; + } +} + +.profile-header .profile-info { + flex-basis: 100%; + display: flex; + flex-wrap: wrap; + min-width: 0; +} + +.profile-avatar { + position: relative; + line-height: 0; + align-self: center; + margin-right: 10px; +} + +[dir="rtl"] .profile-avatar { + margin-left: 10px; + margin-right: 0; +} + +.profile-avatar .user-avatar { + width: 80px; + height: 80px; +} + +.profile-avatar .icon-agent { + bottom: 0; + right: 0; +} + +.profile-header .basic-info { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + word-break: break-word; + word-wrap: break-word; + display: flex; + flex-direction: column; + justify-content: center; + flex-grow: 1; + flex-basis: 0; + min-width: 0; +} + +.profile-header .basic-info .name { + margin: 0; + line-height: 25px; +} + +.profile-header .options { + display: flex; + flex-basis: 100%; + margin-top: 12px; + align-items: flex-start; + flex-wrap: wrap; +} + +@media (min-width: 768px) { + .profile-header .options { + flex-wrap: nowrap; + flex-basis: auto; + margin-top: 0; + margin-left: 10px; + } + [dir="rtl"] .profile-header .options { + margin-left: 0; + margin-right: 10px; + } + .profile-header .options > :not(:last-child) { + margin-bottom: 0; + margin-right: 10px; + } + [dir="rtl"] .profile-header .options > :not(:last-child) { + margin-left: 10px; + margin-right: 0; + } +} + +.user-profile-actions { + width: 100%; + margin-bottom: 15px; +} + +.profile-header .description { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + word-break: break-word; + word-wrap: break-word; + margin: 15px 0; + flex-basis: 100%; +} + +.profile-stats { + font-size: 13px; + display: flex; + flex-direction: column; + flex-basis: 100%; +} + +.profile-stats .stat { + display: flex; + margin-bottom: 10px; +} + +.profile-stats .stat-label { + color: lighten($text_color, 20%); + flex: 0 0 100px; + margin-right: 10px; +} + +[dir="rtl"] .profile-stats .stat-label { + margin-left: 10px; + margin-right: 0; +} + +.profile-stats-activity { + border-top: solid 1px #ddd; + margin-top: 15px; +} + +@media (min-width: 768px) { + .profile-stats-activity { + border-top: 0; + flex-direction: row; + } +} + +@media (min-width: 768px) { + .profile-stats-activity .stat { + flex-direction: column; + } +} + +.profile-stats-activity .stat:first-child { + margin-top: 10px; +} + +@media (min-width: 768px) { + .profile-stats-activity .stat:first-child { + margin-top: 0; + } +} + +@media (min-width: 768px) { + .profile-stats-activity .stat:not(:last-child) { + margin-right: 40px; + } + [dir="rtl"] .profile-stats-activity .stat:not(:last-child) { + margin-left: 40px; + margin-right: 0; + } +} + +@media (min-width: 768px) { + .profile-stats-activity .stat-label { + flex: 0 1 auto; + } +} + +.profile-stats-counters { + border-bottom: solid 1px #ddd; +} + +@media (min-width: 768px) { + .profile-stats-counters { + flex: 0 0 200px; + border-bottom: 0; + margin-left: 40px; + } + [dir="rtl"] .profile-stats-counters { + margin-left: 0; + margin-right: 40px; + } +} + +@media (min-width: 1024px) { + .profile-stats-counters { + flex: 0 0 270px; + margin-left: 60px; + } + [dir="rtl"] .profile-stats-counters { + margin-right: 60px; + margin-left: 0; + } +} + +@media (min-width: 768px) { + .profile-stats-counters .stat { + flex-direction: column; + } +} + +@media (min-width: 1024px) { + .profile-stats-counters .stat { + flex-direction: row; + } +} + +@media (min-width: 768px) { + .profile-stats-counters .stat:not(:last-child) { + margin-bottom: 15px; + } +} + +@media (min-width: 768px) { + .profile-stats-counters .stat-label { + flex: 0 1 auto; + } +} + +@media (min-width: 1024px) { + .profile-stats-counters .stat-label { + flex: 0 0 100px; + } +} + +.profile-private-badge { + flex-basis: 100%; + border: solid 1px $brand_color; + border-radius: 4px; + color: $brand_color; + padding: 5px 20px; + font-size: 12px; + text-align: center; +} + +.profile-private-badge .profile-private-icon { + margin-left: 5px; + line-height: 15px; +} + +@media (min-width: 768px) { + .profile-private-badge { + flex-basis: auto; + } +} + +.profile-nav { + background-color: darken($background_color, 5%); + margin-bottom: 37px; +} + +.profile-section { + width: 100%; +} + +@media (min-width: 1024px) { + .profile-section { + width: calc(100% - 330px); + } +} + +.profile-section-header { + display: flex; + flex-wrap: wrap; +} + +.profile-section-title { + flex-basis: 100%; + margin-bottom: 0; +} + +.profile-section-description { + flex-basis: 100%; + padding: 10px 0; + color: lighten($text_color, 20%); + font-size: 13px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +@media (min-width: 768px) { + .profile-section-description { + flex: 1 0 50%; + padding-bottom: 0; + } +} + +.profile-section-sorter { + flex-basis: 100%; + border-top: solid 1px #eee; + font-size: 13px; +} + +.profile-section-sorter .dropdown-toggle { + padding: 10px 0; + width: 100%; +} + +.profile-section-sorter .dropdown-toggle::after { + position: absolute; + right: 0; +} + +[dir="rtl"] .profile-section-sorter .dropdown-toggle::after { + left: 0; + right: initial; +} + +@media (min-width: 768px) { + .profile-section-sorter .dropdown-toggle::after { + position: relative; + } +} + +@media (min-width: 768px) { + .profile-section-sorter { + flex: 0 1 auto; + padding-top: 0; + border-top: 0; + margin-left: 20px; + } + [dir="rtl"] .profile-section-sorter { + margin-left: 0; + margin-right: 20px; + } +} + +.profile-badges-items { + margin-top: 25px; +} + +.profile-badges-item { + border-top: 1px solid #ddd; + display: flex; + flex: 1; + flex-direction: row; + justify-content: flex-start; + padding: 27px 12px; +} + +.profile-badges-item > div { + padding-right: 12px; + padding-left: 12px; +} + +.profile-badges-item-image { + height: 40px; + width: 40px; + margin-right: 12px; +} + +.profile-badges-item-image img { + max-height: 40px; +} + +[dir="rtl"] .profile-badges-item-image { + margin-left: 12px; + margin-right: 0; +} + +.profile-badges-item-title, .profile-badges-item-metadata-title { + font-size: 15px; + margin-bottom: 10px; +} + +.profile-badges-item-title { + font-weight: 600; +} + +.profile-badges-item-description, .profile-badges-item-metadata-description { + color: lighten($text_color, 20%); + font-size: 13px; + margin: 0; +} + +.profile-badges-item-metadata { + margin-left: auto; + text-align: right; +} + +[dir="rtl"] .profile-badges-item-metadata { + margin-left: 0; + margin-right: auto; + text-align: left; +} + +.profile-contribution { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + word-break: break-word; + word-wrap: break-word; + padding: 20px 0; + position: relative; +} + +.profile-contribution-header { + margin-bottom: 5px; +} + +.profile-contribution-title { + margin: 0 0 5px 0; + display: inline; + line-height: 21px; + font-size: 15px; + vertical-align: middle; +} + +.profile-contribution-body { + margin: 10px 0; +} + +.profile-contribution-list > .profile-contribution { + border-top: 1px solid #eee; +} + +@media (min-width: 768px) { + .profile-contribution-list > .profile-contribution { + padding-left: 30px; + } + [dir="rtl"] .profile-contribution-list > .profile-contribution { + padding-right: 30px; + padding-left: 0; + } +} + +.profile-contribution-list > .profile-contribution:last-child { + border-bottom: 1px solid #eee; +} + +.profile-contribution-icon { + left: 0; + position: absolute; + color: #ccc; + line-height: 25px; +} + +[dir="rtl"] .profile-contribution-icon { + right: 0; +} + +.profile-contribution-icon svg { + vertical-align: middle; +} + +.profile-contribution-list .profile-contribution-header { + margin-left: 30px; +} + +[dir="rtl"] .profile-contribution-list .profile-contribution-header { + padding-right: 30px; + padding-left: 0; +} + +@media (min-width: 768px) { + .profile-contribution-list .profile-contribution-header { + margin-left: 0; + } + [dir="rtl"] .profile-contribution-list .profile-contribution-header { + padding-right: 0; + } +} + +.profile-comments .profile-contribution-breadcrumbs { + margin-left: 30px; +} + +[dir="rtl"] .profile-comments .profile-contribution-breadcrumbs { + padding-right: 30px; + padding-left: 0; +} + +@media (min-width: 768px) { + .profile-comments .profile-contribution-breadcrumbs { + margin-left: 0; + } + [dir="rtl"] .profile-comments .profile-contribution-breadcrumbs { + padding-right: 0; + } +} + +.profile-section .no-activity, +.profile-section .private-activity { + display: block; + margin-top: 40px; + color: #999; +} + +.private-activity-icon { + margin-right: 10px; +} + +[dir="rtl"] .private-activity-icon { + margin-right: 0; + margin-left: 10px; +} + +.profile-activity-list { + margin-top: 25px; +} + +.profile-activity { + position: relative; + padding-bottom: 30px; +} + +@media (min-width: 768px) { + .profile-activity { + padding-left: 20px; + } + [dir="rtl"] .profile-activity { + padding-right: 20px; + padding-left: 0; + } +} + +@media (min-width: 768px) { + .profile-activity:not(:last-child) { + border-left: 1px solid #ddd; + } + [dir="rtl"] .profile-activity:not(:last-child) { + border-left: 0; + border-right: 1px solid #ddd; + } +} + +.profile-activity-header { + display: flex; + align-items: center; + margin-left: 35px; +} + +[dir="rtl"] .profile-activity-header { + margin-left: 0; + margin-right: 35px; +} + +@media (min-width: 768px) { + .profile-activity-header { + margin-left: 0; + } + [dir="rtl"] .profile-activity-header { + margin-right: 0; + } +} + +.profile-activity-header .user-avatar { + width: 40px; + height: 40px; + margin-right: 10px; + min-width: 40px; + align-self: flex-start; +} + +[dir="rtl"] .profile-activity-header .user-avatar { + margin-left: 10px; + margin-right: 0; +} + +.profile-activity-description { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + word-break: break-word; + word-wrap: break-word; + margin: 0; + min-width: 0; + width: 100%; +} + +.profile-activity-description span:first-child { + font-weight: 600; + display: inline; +} + +.profile-activity-contribution { + padding: 20px; + margin-top: 10px; + border-radius: 8px; + background-color: darken($background_color, 3%); +} + +@media (min-width: 768px) { + .profile-activity-contribution { + margin-top: 0; + margin-left: 50px; + } + [dir="rtl"] .profile-activity-contribution { + margin-left: 0; + margin-right: 50px; + } +} + +.profile-activity-icon { + position: absolute; + left: 0; + width: 28px; + height: 28px; + border-radius: 50%; + background-size: 14px 14px; + background-repeat: no-repeat; + background-color: $background_color; + background-position: 50% 50%; + text-align: center; + color: #ccc; +} + +[dir="rtl"] .profile-activity-icon { + right: 0; +} + +@media (min-width: 768px) { + .profile-activity-icon { + left: -14px; + } + [dir="rtl"] .profile-activity-icon { + right: -14px; + } +} + +.profile-activity-icon svg { + position: relative; + top: 50%; + transform: translateY(-50%); + width: 1em; + height: 1em; + margin: auto; +} + +/***** Search results *****/ +.search-results { + display: flex; + flex-direction: column; + flex-wrap: wrap; + justify-content: space-between; +} + +@media (min-width: 1024px) { + .search-results { + flex-direction: row; + } +} + +.search-results-column { + flex: 1; +} + +@media (min-width: 1024px) { + .search-results-column { + flex: 0 0 75%; + } +} + +.search-results-sidebar { + border-top: 1px solid #ddd; + flex: 1 0 auto; + margin-bottom: 20px; + padding: 0; +} + +@media (min-width: 1024px) { + .search-results-sidebar { + border: 0; + flex: 0 0 20%; + height: auto; + } +} + +.search-results-sidebar .sidenav-item:hover, .search-results-sidebar .sidenav-item.current { + background-color: #e9ebed; + color: inherit; + text-decoration: none; +} + +.search-results-sidebar .sidenav-subitem { + unicode-bidi: embed; +} + +.search-results-sidebar .collapsible-sidebar { + margin-bottom: 30px; +} + +.search-results-sidebar .collapsible-sidebar[aria-expanded="false"] .multibrand-filter-list { + display: none; +} + +@media (min-width: 1024px) { + .search-results-sidebar .collapsible-sidebar[aria-expanded="false"] .multibrand-filter-list { + display: block; + } +} + +.search-results-sidebar .multibrand-filter-list--collapsed li:nth-child(1n + 6) { + display: none; +} + +.search-results-sidebar .multibrand-filter-list .doc-count { + color: #666; +} + +.search-results-sidebar .see-all-filters { + background: none; + border: none; + cursor: pointer; + display: block; + padding: 10px; + color: $link_color; +} + +.search-results-sidebar .see-all-filters[aria-hidden="true"] { + display: none; +} + +.search-results-sidebar .see-all-filters:hover { + text-decoration: underline; +} + +.search-results-sidebar .see-all-filters::after { + content: ' \2304'; + font-weight: bold; +} + +.search-results-subheading { + font-size: 18px; + font-weight: 600; +} + +.search-results-list { + margin-bottom: 25px; +} + +.search-results-list > li { + padding: 20px 0; +} + +.search-results-list > li:first-child { + border-top: 1px solid #ddd; +} + +.search-results-list > li h2 { + margin-bottom: 0; +} + +.search-results .meta-group { + display: block; + align-items: center; + clear: both; + color: #666; +} + +@media (min-width: 1024px) { + .search-results .meta-group { + display: flex; + } +} + +.search-results .meta-group > li { + display: block; +} + +@media (min-width: 1024px) { + .search-results .meta-group > li { + display: inline; + } +} + +@media (min-width: 1024px) { + .search-results .meta-group li:first-child { + flex: 1; + } +} + +.search-results .meta-group .meta-data { + color: inherit; +} + +[dir="ltr"] .search-results .meta-group .meta-data:not(:last-child) { + margin-right: 20px; +} + +[dir="rtl"] .search-results .meta-group .meta-data:not(:last-child) { + margin-left: 20px; +} + +.search-results .meta-group .meta-data::after { + content: none; +} + +.search-results-description { + margin-top: 10px; + word-break: break-word; +} + +.search-result-title { + font-size: 16px; + display: inline-block; +} + +[dir="ltr"] .search-result-icons { + float: right; +} + +[dir="rtl"] .search-result-icons { + float: left; +} + +.search-result-votes, .search-result-meta-count { + color: lighten($text_color, 20%); + display: inline-block; + font-size: 13px; + padding: 4px 5px; + position: relative; +} + +.search-result-votes-icon, .search-result-meta-count-icon { + color: $brand_color; + vertical-align: middle; + width: 13px; + height: 13px; +} + +[dir="ltr"] .search-result-votes, [dir="ltr"] .search-result-meta-count { + margin-left: 5px; +} + +[dir="ltr"] .search-result-votes::before, [dir="ltr"] .search-result-meta-count::before { + margin-right: 3px; +} + +[dir="rtl"] .search-result-votes, [dir="rtl"] .search-result-meta-count { + margin-right: 5px; +} + +[dir="rtl"] .search-result-votes::before, [dir="rtl"] .search-result-meta-count::before { + margin-left: 3px; +} + +.search-result .meta-group { + align-items: center; +} + +.search-result-breadcrumbs { + margin: 0; +} + +@media (min-width: 1024px) { + .search-result-breadcrumbs { + display: table-row; + } +} + +@media (min-width: 1024px) { + .search-result-breadcrumbs li { + display: table-cell; + } +} + +.search-result-breadcrumbs li, .search-result-breadcrumbs li a, .search-result-breadcrumbs li a:visited { + color: inherit; +} + +/* By default use bold instead of italic to highlight */ +.search-results-description em { + font-style: normal; + font-weight: bold; +} + +/* Add a yellow background for Chinese */ +html[lang|="zh"] .search-results-description em { + font-style: normal; + background: yellow; +} + +/***** Notifications *****/ +.notification { + border: 1px solid; + display: table; + font-family: sans-serif; + font-size: 12px; + padding: 13px 15px; + transition: height .2s; + width: 100%; + color: #555; +} + +.notification a { + color: #158ec2; +} + +.notification-inner { + margin: 0 auto; + padding: 0 20px; + max-width: 980px; +} + +.notification-icon, .notification-text, .notification-dismiss { + display: table-cell; + vertical-align: middle; +} + +.notification-text { + padding: 0 15px; + width: 100%; +} + +.notification + .notification { + margin-bottom: -1px; + position: relative; + top: -1px; +} + +/* Error */ +.notification-error { + background: #ffeded; + border-color: #f7cbcb; +} + +.notification-error .notification-icon::before, .notification-error .notification-inline.notification-error::before { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' focusable='false' viewBox='0 0 12 12'%3E%3Cg fill='none' stroke='%23555555'%3E%3Ccircle cx='5.5' cy='6.5' r='5'/%3E%3Cpath stroke-linecap='round' d='M5.5 3.5v3'/%3E%3C/g%3E%3Ccircle cx='5.5' cy='9' r='1' fill='%23555555'/%3E%3C/svg%3E"); +} + +/* Notice */ +.notification-notice { + background: #dbf3ff; + border-color: #b5e0f5; +} + +.notification-notice .notification-icon::before, .notification-notice .notification-inline.notification-error::before { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' focusable='false' viewBox='0 0 12 12'%3E%3Cg fill='none' stroke='%23555555'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M3.5 6l2 2L9 4.5'/%3E%3Ccircle cx='6' cy='6' r='5.5'/%3E%3C/g%3E%3C/svg%3E"); +} + +/* Alert / Lock */ +.notification-alert { + color: #ad5e18; + background: #fff8ed; + border-color: #fcdba9; +} + +.notification-alert .notification-icon::before, .notification-alert .notification-inline.notification-error::before { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' focusable='false' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23ad5e18' stroke-linecap='round' d='M5.06 1.27l-4.5 8.5c-.18.33.06.73.44.73h9c.38 0 .62-.4.44-.73l-4.5-8.5a.494.494 0 00-.88 0zM5.5 4v2'/%3E%3Ccircle cx='5.5' cy='8' r='.8' fill='%23ad5e18'/%3E%3C/svg%3E"); +} + +.notification-icon::before, .notification-inline.notification-error::before { + background-size: cover; + content: ""; + display: inline-block; + height: 14px; + width: 14px; + vertical-align: middle; +} + +/* Dismiss button */ +.notification-dismiss, a.notification-dismiss { + color: #555; + cursor: pointer; + opacity: .6; + transition: opacity 100ms ease; + text-decoration: none !important; +} + +.notification-dismiss:hover { + opacity: 1; +} + +/* Inline notifications */ +.notification-inline { + border-radius: 4px; + line-height: 14px; + margin-top: 5px; + padding: 5px; + position: relative; + text-align: left; + vertical-align: middle; +} + +[dir="rtl"] .notification-inline { + text-align: right; +} + +.notification-inline[aria-hidden="true"] { + display: none; +} + +.notification-inline.notification-error::before { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' focusable='false' viewBox='0 0 12 12'%3E%3Cg fill='none' stroke='%23e35b66'%3E%3Ccircle cx='5.5' cy='6.5' r='5'/%3E%3Cpath stroke-linecap='round' d='M5.5 3.5v3'/%3E%3C/g%3E%3Ccircle cx='5.5' cy='9' r='1' fill='%23e35b66'/%3E%3C/svg%3E"); + margin: -2px 5px 0 0; +} + +[dir="rtl"] .notification-inline.notification-error::before { + margin: 0 0 0 5px; +} + +.notification-inline.notification-error { + background-color: #fff0f1; + border: 1px solid #e35b66; + color: #cc3340; +} + +.notification-inline.notification-large { + padding: 13px 15px; + margin-bottom: 25px; +} + +.notification-left-aligned { + text-align: left; + padding-left: 0; +} + +html[dir="rtl"] .notification-left-aligned { + text-align: right; + padding-left: auto; + padding-right: 0; +} + +.dropdown { + position: relative; + display: inline-block; +} + +.dropdown-toggle { + cursor: pointer; + background: none; + border: 0; + display: inline-block; + padding: 0; + text-align: initial; + vertical-align: middle; +} + +.dropdown-toggle:hover { + text-decoration: none; +} + +.dropdown-toggle > * { + display: inline-block; +} + +.dropdown-menu { + background: #fff; + border: 1px solid #d8d8d8; + border-radius: 3px; + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1); + display: none; + font-size: 14px; + font-style: normal; + font-weight: normal; + left: 0; + margin-top: 1px; + min-width: 170px; + padding: 10px 0; + position: absolute; + text-align: left; + z-index: 1000; +} + +[dir="rtl"] .dropdown-menu { + text-align: right; +} + +.dropdown-menu[aria-expanded="true"] { + display: block; +} + +.dropdown-menu [role="separator"] { + border-bottom: 1px solid #d8d8d8; + color: #969696; + display: block; + font-weight: normal; + font-size: 11px; + padding: 5px 0; + margin: 5px 20px 10px 20px; +} + +.dropdown-menu [role="menuitem"] { + color: #333; + cursor: pointer; + display: block; + padding: 7px 40px 7px 20px; + white-space: nowrap; + background-color: transparent; + border: 0; + -webkit-appearance: none; + text-align: start; + line-height: inherit; + width: 100%; +} + +[dir="rtl"] .dropdown-menu [role="menuitem"] { + padding: 7px 20px 7px 40px; +} + +.dropdown-menu [role="menuitem"]:hover, .dropdown-menu [role="menuitem"]:focus { + background: #f3f3f3; + text-decoration: none; + color: #333; +} + +.dropdown-menu [role="menuitem"][aria-selected="true"] { + cursor: default; +} + +.dropdown-menu [role="menuitem"][aria-selected="true"]::after { + content: ""; + background-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M1 7l3 3 7-7'%3E%3C/path%3E%3C/svg%3E"); + display: inline-block; + height: 12px; + margin-left: 10px; + width: 12px; +} + +[dir="rtl"] .dropdown-menu [role="menuitem"][aria-selected="true"]::after { + margin-left: 0; + margin-right: 10px; + float: left; +} + +.dropdown-menu [role="menuitem"][hidden], .dropdown-menu [role="menuitem"][aria-hidden="true"] { + display: none !important; +} + +.dropdown-menu-end { + left: auto; + right: 0; +} + +.dropdown-menu-top { + bottom: 100%; + margin-bottom: 1px; +} + +[dir="rtl"] .dropdown-menu { + left: auto; + right: 0; + text-align: right; +} + +[dir="rtl"] .dropdown-menu-end { + left: 0; + right: auto; +} + +.dropdown-chevron-icon { + vertical-align: middle; +} + + + .ais-ClearRefinements { + margin: 1em 0; + } + + .ais-SearchBox { + margin: 1em 0; + } + + .ais-Pagination { + margin-top: 1em; + } + + .left-panel { + float: left; + width: 250px; + } + + .right-panel { + margin-left: 260px; + } + + .ais-InstantSearch { + max-width: 960px; + overflow: auto; + margin: 0 auto; + height:100%; + } + + .ais-Hits-item { + margin-bottom: 1em; + width: 100% !important; + } + + .ais-Hits-item img { + margin-right: 1em; + } + + .hit-name { + margin-bottom: 0.5em; + } + .hit-name a { + text-decoration: none; + color:#223322; + } + + .hit-description { + color: #888; + font-size: 14px; + margin-bottom: 0.5em; + } + + .ais-header { + background-image: url($homepage_background_image); + background-color:blue; + padding:20px; + padding-left:20%; + padding-right:20%; + } + #autocomplete .aa-Form { + border-radius:10px; + } + diff --git a/theme/Algolia-search/templates/article_page.hbs b/theme/Algolia-search/templates/article_page.hbs new file mode 100644 index 0000000..58e0a79 --- /dev/null +++ b/theme/Algolia-search/templates/article_page.hbs @@ -0,0 +1,321 @@ +
+
+ + +
+ + +
+
+

+ {{article.title}} + {{#if article.internal}} + + + + + {{/if}} +

+ + + + {{#if settings.show_follow_article}} +
{{subscribe}}
+ {{/if}} +
+ + + + + +
+ {{#if settings.show_recently_viewed_articles}} + {{recent_articles}} + {{/if}} + {{#if settings.show_related_articles}} + {{related_articles}} + {{/if}} +
+ {{#if settings.show_article_comments}} +
+
+
+

+ {{t 'comments'}} +

+

{{t 'comments_count' count=article.comment_count}}

+ {{#if comments}} + + {{/if}} +
+ +
    + {{#each comments}} +
  • +
    +
    +
    +
    + {{#if author.agent}} + + + + {{/if}} + +
    +
    + + {{#link 'user_profile' id=author.id}} + {{author.name}} + {{/link}} + + + + {{#each (filter author.badges on="category_slug" equals="titles")}} +
    + {{name}} +
    + {{/each}} +
    + +
      + {{#if editor}} + + + {{else}} + + {{/if}} +
    + +
    + {{#each ( + slice + ( + filter + (filter author.badges on="category_slug" equals="achievements") + on="icon_url" + starts_with="https" + ) + 0 + 4 + ) + }} +
    + {{name}} +
    + {{/each}} + + {{#if (compare (calc author.badges.length "-" 4) ">" 0)}} +
    + {{#link "user_profile" id=author.id filter_by="badges" class="community-badge-achievements-rest"}}{{t 'plus_more' count=(calc author.badges.length "-" 4)}}{{/link}} +
    + {{/if}} +
    +
    +
    + {{#with ticket}} + + {{t 'request'}}{{id}} + + {{/with}} + {{#if pending}} + {{t 'pending_approval'}} + {{/if}} +
    +
    + +
    {{body}}
    +
    + +
    +
    + {{#vote 'up' role='radio' class='vote-up' selected_class='vote-voted'}} + + + + {{/vote}} + {{vote 'sum' class='vote-sum'}} + {{#vote 'down' role='radio' class='vote-down' selected_class='vote-voted'}} + + + + {{/vote}} +
    +
    + {{#actions}} + + + + + {{/actions}} +
    +
    +
    +
  • + {{/each}} +
+ + {{pagination}} + + {{#form 'comment' class='comment-form'}} +
+ {{user_avatar class='user-avatar'}} +
+
+ {{wysiwyg 'body'}} +
+ {{input type='submit' class="button button-large"}} +
+
+ {{/form}} + +

{{comment_callout}}

+
+
+ {{/if}} +
+
+
diff --git a/theme/Algolia-search/templates/category_page.hbs b/theme/Algolia-search/templates/category_page.hbs new file mode 100644 index 0000000..805d72f --- /dev/null +++ b/theme/Algolia-search/templates/category_page.hbs @@ -0,0 +1,63 @@ +
+
+ + +
+
+ + +
+ {{#each sections}} +
+

+ {{name}} +

+ {{#if articles}} +
    + {{#each articles}} +
  • + {{#if promoted}} + + + + {{/if}} + {{title}} + {{#if internal}} + + + + + {{/if}} +
  • + {{/each}} +
+ {{#if more_articles}} + + {{t 'show_all_articles' count=article_count}} + + {{/if}} + {{/if}} +
+ {{else}} + + {{t 'empty'}} + + {{/each}} +
+
+
+
diff --git a/theme/Algolia-search/templates/community_post_list_page.hbs b/theme/Algolia-search/templates/community_post_list_page.hbs new file mode 100644 index 0000000..487a9af --- /dev/null +++ b/theme/Algolia-search/templates/community_post_list_page.hbs @@ -0,0 +1,157 @@ +

{{ t 'community'}}

+ +
+

{{ t 'search'}}

+
+ + {{search submit=false class='search search-full' scoped=settings.scoped_community_search}} +
+
+ +
+ + + + +
+ + + + + {{#each filters}} + + {{name}} + + {{/each}} + + + + + + {{#each sorters}} + + {{name}} + + {{/each}} + + + +
+ +
+ {{#unless posts}} +
+ {{t 'no_posts_with_filter'}} +
+ {{/unless}} + {{#each posts}} +
+
+ + {{title}} + + {{#if pinned}} + {{t 'pinned'}} + {{/if}} + + {{#if featured}} + {{t 'featured'}} + {{/if}} + + {{#is status 'none'}} + {{else}} + {{status_name}} + {{/is}} + + +
    + + {{#if editor}} + + + {{else}} + + {{/if}} +
+
+ +
+ + {{vote_sum}} + {{t 'vote' count=vote_sum}} + + + {{comment_count}} + {{t 'comment' count=comment_count}} + +
+
+
+ {{/each}} +
+ + {{pagination}} + + {{#if featured_posts}} + + {{/if}} + +
+ {{#if help_center.community_enabled}} + {{recent_activity scope='community'}} + {{/if}} +
+ + +
diff --git a/theme/Algolia-search/templates/community_post_page.hbs b/theme/Algolia-search/templates/community_post_page.hbs new file mode 100644 index 0000000..80b6e49 --- /dev/null +++ b/theme/Algolia-search/templates/community_post_page.hbs @@ -0,0 +1,332 @@ +
+
+ + +
+
+
+
+
+

+ {{post.title}} + {{#if post.internal}} + + + + + {{/if}} +

+ {{#if post.pinned}} + {{t 'pinned'}} + {{/if}} + + {{#if post.featured}} + {{t 'featured'}} + {{/if}} + + {{#is post.status 'none'}} + {{else}} + {{post.status_name}} + {{/is}} +
+ {{#if settings.show_follow_post}} +
+ {{subscribe}} +
+ {{/if}} +
+ + + + {{#if settings.show_post_sharing}} + + {{/if}} +
+ +
+

+ {{t 'comments'}} +

+

{{t 'comments_count' count=post.comment_count}}

+ {{#if comments}} + + {{/if}} +
+ +
    + {{#each comments}} +
  • +
    +
    + {{#if official}} + {{t 'official_comment'}} + {{/if}} + +
    +
    + {{#if author.agent}} + + + + {{/if}} + +
    +
    + + {{#link 'user_profile' id=author.id}} + {{author.name}} + {{/link}} + + + + {{#each (filter author.badges on="category_slug" equals="titles")}} +
    + {{name}} +
    + {{/each}} +
    + +
      + {{#if editor}} + + + {{else}} + + {{/if}} +
    + +
    + {{#each ( + slice + ( + filter + (filter author.badges on="category_slug" equals="achievements") + on="icon_url" + starts_with="https" + ) + 0 + 4 + ) + }} +
    + {{name}} +
    + {{/each}} + + {{#if (compare (calc author.badges.length "-" 4) ">" 0)}} +
    + {{#link "user_profile" id=author.id filter_by="badges" class="community-badge-achievements-rest"}}{{t 'plus_more' count=(calc author.badges.length "-" 4)}}{{/link}} +
    + {{/if}} +
    + +
    +
    + {{#with ticket}} + + {{t 'request'}} {{id}} + + {{/with}} + {{#if pending}} + {{t 'pending_approval'}} + {{/if}} +
    +
    + +
    {{body}}
    +
    + +
    + {{#unless official}} +
    + {{#vote 'up' role='radio' class='vote-up' selected_class='vote-voted'}} + + + + {{/vote}} + {{vote 'sum' class='vote-sum'}} + {{#vote 'down' role='radio' class='vote-down' selected_class='vote-voted'}} + + + + {{/vote}} +
    + {{/unless}} +
    + {{#actions}} + + + + + {{/actions}} +
    +
    +
    +
  • + {{/each}} +
+ + {{pagination}} + +
+ {{#form 'comment' class='comment-form'}} +
+ {{user_avatar class='user-avatar'}} +
+
+ {{wysiwyg 'body'}} +
+ {{checkbox 'official'}} + {{label 'official'}} + {{input type='submit' class="button button-large"}} +
+
+ {{/form}} +
+ +

{{comment_callout}}

+
+ + +
+
diff --git a/theme/Algolia-search/templates/community_topic_list_page.hbs b/theme/Algolia-search/templates/community_topic_list_page.hbs new file mode 100644 index 0000000..e1705c3 --- /dev/null +++ b/theme/Algolia-search/templates/community_topic_list_page.hbs @@ -0,0 +1,100 @@ +

{{ t 'community'}}

+ +
+

{{ t 'search'}}

+
+ + {{search submit=false class='search search-full' scoped=settings.scoped_community_search}} +
+
+ +
+ + + + + {{#unless topics}} +

{{t 'no_content'}}

+ {{/unless}} + +
+ +
+ + {{pagination}} + + {{#if featured_posts}} + + {{/if}} + +
+ {{#if help_center.community_enabled}} + {{recent_activity scope='community'}} + {{/if}} +
+ + +
diff --git a/theme/Algolia-search/templates/community_topic_page.hbs b/theme/Algolia-search/templates/community_topic_page.hbs new file mode 100644 index 0000000..86a0bb4 --- /dev/null +++ b/theme/Algolia-search/templates/community_topic_page.hbs @@ -0,0 +1,124 @@ +
+
+ + + +
+

{{topic.description}}

+ {{#if settings.show_follow_topic}} +
+ {{subscribe}} +
+ {{/if}} +
+ +
+ + + + + {{#each filters}} + + {{name}} + + {{/each}} + + + + + + {{#each sorters}} + + {{name}} + + {{/each}} + + + +
+ +
+ {{#each posts}} +
+
+ + {{title}} + + {{#if pinned}} + {{t 'pinned'}} + {{/if}} + + {{#if featured}} + {{t 'featured'}} + {{/if}} + + {{#is status 'none'}} + {{else}} + {{status_name}} + {{/is}} + + +
    + + {{#if editor}} + + + {{else}} + + {{/if}} +
+
+ +
+ + {{vote_sum}} + {{t 'vote' count=vote_sum}} + + + {{comment_count}} + {{t 'comment' count=comment_count}} + +
+
+
+ {{/each}} +
+ {{pagination}} +
+ + diff --git a/theme/Algolia-search/templates/contributions_page.hbs b/theme/Algolia-search/templates/contributions_page.hbs new file mode 100644 index 0000000..7a4d778 --- /dev/null +++ b/theme/Algolia-search/templates/contributions_page.hbs @@ -0,0 +1,91 @@ +
+
+ +
+
+ +
+
+

{{t 'contributions'}}

+ +
+ +
+
+ +
+ {{#if contributions}} + + + + + + + + + + + + {{#each contributions}} + + + + + + + + {{/each}} + +
{{t 'title'}}{{t 'type'}}{{t 'vote_sum'}}{{t 'last_activity'}}{{t 'created'}}
+ + {{excerpt title characters=60}} + + {{type}}{{vote_sum}}{{date last_activity_at}}{{date created_at}}
+ {{else}} +

{{t 'no_contributions'}}

+ {{/if}} +
+ + {{pagination}} + +
diff --git a/theme/Algolia-search/templates/document_head.hbs b/theme/Algolia-search/templates/document_head.hbs new file mode 100644 index 0000000..b0cdbf0 --- /dev/null +++ b/theme/Algolia-search/templates/document_head.hbs @@ -0,0 +1,9 @@ + + + diff --git a/theme/Algolia-search/templates/error_page.hbs b/theme/Algolia-search/templates/error_page.hbs new file mode 100644 index 0000000..6ffb713 --- /dev/null +++ b/theme/Algolia-search/templates/error_page.hbs @@ -0,0 +1,21 @@ +
+
+

{{t 'oops'}}

+ + {{#is error 'unauthorized'}} +

{{link 'sign_in'}}

+ {{/is}} + + {{#is error 'forbidden'}} +

{{t 'not_authorized'}}

+ {{/is}} + + {{#is error 'not_found'}} +

{{t 'nonexistent_page'}}

+

{{t 'mistyped_address_or_moved_page'}}

+ {{/is}} + + {{#link 'help_center'}} + {{t 'back_to_homepage'}} + {{/link}} +
diff --git a/theme/Algolia-search/templates/footer.hbs b/theme/Algolia-search/templates/footer.hbs new file mode 100644 index 0000000..7375be8 --- /dev/null +++ b/theme/Algolia-search/templates/footer.hbs @@ -0,0 +1,25 @@ + diff --git a/theme/Algolia-search/templates/header.hbs b/theme/Algolia-search/templates/header.hbs new file mode 100644 index 0000000..ee0f645 --- /dev/null +++ b/theme/Algolia-search/templates/header.hbs @@ -0,0 +1,47 @@ +{{t 'skip_navigation' }} + +
+ + + +
diff --git a/theme/Algolia-search/templates/home_page.hbs b/theme/Algolia-search/templates/home_page.hbs new file mode 100644 index 0000000..e427951 --- /dev/null +++ b/theme/Algolia-search/templates/home_page.hbs @@ -0,0 +1,65 @@ +

{{ help_center.name }}

+ +
+
+
+
+
+
+
+

Category

+
+

Section

+
+
+
+ +
+ +
+
+ + + + + + + + + + + + +{{!-- + {{search submit=false instant=settings.instant_search class='search search-full'}} --}} +
+ +
+ {{#if help_center.community_enabled}} +
+

{{t 'community'}}

+ {{#link 'community' class='community-link'}} + {{t 'join_conversation'}} + {{/link}} + +
+
+ {{/if}} + +
+ {{#if settings.show_recent_activity}} + {{recent_activity}} + {{/if}} +
+
diff --git a/theme/Algolia-search/templates/new_community_post_page.hbs b/theme/Algolia-search/templates/new_community_post_page.hbs new file mode 100644 index 0000000..b933def --- /dev/null +++ b/theme/Algolia-search/templates/new_community_post_page.hbs @@ -0,0 +1,73 @@ +
+
+ + +

+ {{t 'what_is_your_post_about'}} +

+ +
+ {{#form 'post' class='new_community_post'}} +
+ {{#required 'title'}} + {{label 'title'}} + {{else}} + {{#label 'title'}} + {{t 'title_label'}}({{t 'optional'}}) + {{/label}} + {{/required}} + {{input 'title' autofocus=true}} + {{#validate 'title'}} +
+ {{error 'title'}} +
+ {{/validate}} +
+ + {{suggestion_list class='suggestion-list'}} + +
+ {{#required 'details'}} + {{label 'details'}} + {{else}} + {{#label 'details'}} + {{t 'details_label'}}({{t 'optional'}}) + {{/label}} + {{/required}} + {{wysiwyg 'details'}} + {{#validate 'details'}} +
+ {{error 'details'}} +
+ {{/validate}} +
+ +
+ {{#required 'topic'}} + {{label 'topic'}} + {{else}} + {{#label 'topic'}} + {{t 'topic_label'}}({{t 'optional'}}) + {{/label}} + {{/required}} + {{select 'topic'}} + {{#validate 'topic'}} +
+ {{error 'topic'}} +
+ {{/validate}} +
+ + + {{/form}} +
+
diff --git a/theme/Algolia-search/templates/new_request_page.hbs b/theme/Algolia-search/templates/new_request_page.hbs new file mode 100644 index 0000000..04f2fdf --- /dev/null +++ b/theme/Algolia-search/templates/new_request_page.hbs @@ -0,0 +1,24 @@ +
+
+ + +

+ {{t 'submit_a_request'}} + +

+ +
+ {{request_form wysiwyg=true}} +
+
diff --git a/theme/Algolia-search/templates/request_page.hbs b/theme/Algolia-search/templates/request_page.hbs new file mode 100644 index 0000000..dd49787 --- /dev/null +++ b/theme/Algolia-search/templates/request_page.hbs @@ -0,0 +1,251 @@ +
+
+ +
+
+ +
+
{{breadcrumbs}}
+ +

{{request.subject}}

+ +
+
+ {{satisfaction}} +
    + {{#each comments}} +
  • +
    +
    +
    +
    + {{#if author.agent}} + + + + {{/if}} + +
    + +
    + + {{#link 'user_profile' id=author.id}} + {{author.name}} + {{/link}} + + +
      + +
    +
    +
    + +
    {{body}}
    + + {{#if attachments}} + + {{/if}} +
    +
    +
  • + {{/each}} +
+ + {{pagination}} + +
+ {{comment_callout}} +
+ + {{#form 'comment' class='comment-form'}} +
+ {{user_avatar class='user-avatar'}} +
+ +
+ + +
+ {{#if help_center.request_ccs_enabled}} +
+ {{token_field 'ccs' class='ccs-input'}} +
+ {{/if}} + + {{wysiwyg 'body' rows='7'}} + +
+ {{upload}} +
+
+ +
+ {{checkbox 'mark_as_solved'}} + + {{#if request.can_be_marked_as_solved}} + + {{/if}} + + + {{input type='submit' class="button button-large"}} + +
+
+ {{/form}} +
+ +
+ +

+ {{t 'ticket_details'}} +

+
+ {{#if request.followup_source_id}} +
+
{{t 'followup'}}
+
{{link 'request' id=request.followup_source_id}}
+
+ {{/if}} + +
+
{{t 'requester'}}
+
{{request.requester.name}}
+ +
{{t 'created'}}
+
{{date request.created_at}}
+ +
{{t 'last_activity'}}
+
{{date request.updated_at}}
+ + {{#if collaborators}} +
{{t 'ccs'}}
+
+
    + {{#each collaborators}} +
  • {{name}}
  • + {{/each}} +
+
+ {{/if}} +
+ +
+ {{#if assignee}} +
{{t 'assignee'}}
+
+ {{assignee.name}} +
+ {{/if}} + +
{{t 'id'}}
+
#{{request.id}}
+ + {{#form 'organization' id='request-organization'}} +
{{t 'organization'}}
+
{{select 'organization'}}
+ {{/form}} + + {{#if group}} +
{{t 'group'}}
+
+ {{group.name}} +
+ {{/if}} + +
{{t 'status'}}
+
+ + {{request.status_name}} + +
+ + {{#if request.type}} +
{{request.type_title}}
+
+ {{request.type_name}} + {{#is request.type 'task'}} + {{t 'task_due_date' due_date=request.due_date}} + {{/is}} +
+ {{/if}} + + {{#if request.priority}} +
{{request.priority_title}}
+
+ {{request.priority_name}} +
+ {{/if}} + + {{#each custom_fields}} +
{{title}}
+
+ {{value}} +
+ {{/each}} +
+ + {{#if attachments}} +
+
{{t 'attachments_heading'}}
+
+ +
+
+ {{/if}} +
+
+
+
diff --git a/theme/Algolia-search/templates/requests_page.hbs b/theme/Algolia-search/templates/requests_page.hbs new file mode 100644 index 0000000..008cd78 --- /dev/null +++ b/theme/Algolia-search/templates/requests_page.hbs @@ -0,0 +1,152 @@ +
+
+ +
+
+ +
+
+

{{t 'my_requests'}}

+ +
+ +
+
+ + {{#form 'requests_filter' id="main-content" class='requests-table-toolbar'}} + + {{#if help_center.multiple_organizations_enabled}} +
+ {{label 'organization' for='request-organization-select' class='request-filter request-filter-label'}} + {{select 'organization' id='request-organization-select' class='request-filter'}} +
+ {{/if}} + +
+ {{subscribe}} +
+ +
+ {{label 'status' for='request-status-select' class='request-filter request-filter-label'}} + {{select 'status' id='request-status-select' class='request-filter'}} +
+ {{/form}} + + {{#if query}} +
+ {{t 'requests_search_results_info' count=requests.length query=query}} +
+ {{else}} + {{#unless requests}} +

{{t 'no_requests'}}

+ {{/unless}} + {{/if}} + +
+ {{#if requests}} + + + + + + + + + + + + + {{#each requests}} + + + + + + + + {{/each}} + +
{{t 'subject'}}{{t 'id'}} + {{#is current_filter.identifier 'my'}} + {{#link 'requests' sort_by='created_at'}}{{t 'created'}}{{/link}} + {{else}} + {{t 'requester'}} + {{/is}} + {{#link 'requests' sort_by='updated_at'}}{{t 'last_activity'}}{{/link}} + {{t 'status'}} +
+ + {{#if subject}} + {{subject}} + {{else}} + {{excerpt description characters=50}} + {{/if}} + + + +
+ + + + {{status_name}} + +
+
#{{id}} + {{#is ../current_filter.identifier 'my'}} + {{date created_at timeago=true}} + {{else}} + {{requester.name}} + {{/is}} + {{date updated_at timeago=true}} + + {{status_name}} + +
+ {{/if}} +
+ + {{pagination}} +
diff --git a/theme/Algolia-search/templates/search_results.hbs b/theme/Algolia-search/templates/search_results.hbs new file mode 100644 index 0000000..cf54fdb --- /dev/null +++ b/theme/Algolia-search/templates/search_results.hbs @@ -0,0 +1,199 @@ +
+
+ + +
+ + +
+

+ {{#is current_filter.identifier 'unified'}} + {{t 'results' query=query count=results_count}} + {{else}} + {{#unless current_subfilter.identifier}} + {{t 'results' query=query count=results_count}} + {{else}} + {{t 'results_with_scope' query=query count=results_count scope_name=current_subfilter.name}} + {{/unless}} + {{/is}} +

+ {{#if results}} +
    + {{#each results}} +
  • +

    + + {{title}} + {{#if is_external}} + + + + + {{/if}} + +

    +
    + {{#if vote_sum}} + + + {{t 'votes_sum' count=vote_sum}} + + + + {{/if}} + {{#if comment_count}} + + + {{t 'comments_count' count=comment_count}} + + + + {{/if}} +
    +
    +
      +
    • + +
    • + {{#unless is_external}} + + {{/unless}} + +
    +
    {{text}}
    +
    +
  • + {{/each}} +
+ {{else}} +

+ {{t 'no_results_unified'}} + {{#link 'help_center'}} + {{t 'browse_help_center'}} + {{/link}} +

+ {{/if}} +
+
+ {{pagination}} +
diff --git a/theme/Algolia-search/templates/section_page.hbs b/theme/Algolia-search/templates/section_page.hbs new file mode 100644 index 0000000..d1593e8 --- /dev/null +++ b/theme/Algolia-search/templates/section_page.hbs @@ -0,0 +1,72 @@ +
+
+ + +
+
+ + + {{#if section.sections}} + + {{/if}} + + {{pagination "section.sections"}} + + {{#if section.articles}} +
    + {{#each section.articles}} +
  • + {{#if promoted}} + + + + {{/if}} + {{title}} + {{#if internal}} + + + + + {{/if}} +
  • + {{/each}} +
+ {{else}} + + {{t 'empty'}} + + {{/if}} + + {{pagination "section.articles"}} + +
+
+
diff --git a/theme/Algolia-search/templates/subscriptions_page.hbs b/theme/Algolia-search/templates/subscriptions_page.hbs new file mode 100644 index 0000000..4991f3e --- /dev/null +++ b/theme/Algolia-search/templates/subscriptions_page.hbs @@ -0,0 +1,85 @@ +
+
+ +
+
+ +
+
+

{{t 'following'}}

+
+ +
+ + + + {{#each filters}} + + {{name}} + + {{/each}} + + +
+ +
+ {{#if subscriptions}} + + + + + + + + + + + {{#each subscriptions}} + + + + + + + {{/each}} + +
{{t 'title'}}{{t 'type'}}{{t 'subscription'}}
+ {{#is type 'user'}} + + {{/is}} + + {{excerpt title characters=60}} + + {{name}}{{following}} + {{subscribe}} +
+ + {{pagination}} + {{else}} +

{{t 'not_following'}}

+ {{/if}} +
+
diff --git a/theme/Algolia-search/templates/user_profile_page.hbs b/theme/Algolia-search/templates/user_profile_page.hbs new file mode 100644 index 0000000..55a0fac --- /dev/null +++ b/theme/Algolia-search/templates/user_profile_page.hbs @@ -0,0 +1,441 @@ +
+
+
+
+ {{#if user.agent}} + + + + {{/if}} + +
+
+
+

+ {{#if user.url}} + {{user.name}} + {{else}} + {{user.name}} + {{/if}} +

+ + + {{#each (filter user.badges on="category_slug" equals="titles")}} + + {{name}} + + {{/each}} +
+
+ {{#each ( + slice + ( + filter + (filter user.badges on="category_slug" equals="achievements") + on="icon_url" + starts_with="https" + ) + 0 + 4 + ) + }} +
+ {{name}} +
+ {{/each}} + + {{#if (compare (calc user.badges.length "-" 4) ">" 0)}} +
+ {{#link "user_profile" id=user.id filter_by="badges" class="community-badge-achievements-rest"}}{{t 'plus_more' count=(calc user.badges.length "-" 4)}}{{/link}} +
+ {{/if}} +
+
+
+ {{#if private_profile}} + + {{t 'private'}} + + + + + + {{/if}} + {{actions class='user-profile-actions split-button'}} +
+ {{subscribe}} +
+
+ + {{#if description}} +

{{description}}

+ {{/if}} + +
    +
  • + {{t 'total_activity'}} + {{total_activity}} +
  • +
  • + {{t 'last_activity'}} + + {{#if last_activity_at}} + {{date last_activity_at timeago=true}} + {{else}} + {{t 'no_activity_yet'}} + {{/if}} + +
  • +
  • + {{t 'member_since'}} + + {{#if member_since}} + {{date member_since format='medium'}} + {{else}} + {{t 'no_activity_yet'}} + {{/if}} + +
  • +
+
+ +
+
+ +{{#if visible}} + + {{#if member_since}} + +
+
+ +
+
+ + {{#is current_filter.identifier 'activities'}} +
+
+ + {{#if activities}} + +
+

{{t 'activity_overview'}}

+ {{t 'latest_activity' name=user.name}} +
+ + + + {{/if}} + + {{#unless activities}} + {{t 'no_contributions'}} + {{/unless}} + +
+
+ {{/is}} + + {{#is current_filter.identifier 'badges'}} +
+
+ + {{#if user.badges}} +
+

{{t 'badges'}}

+ {{t 'badges_description' name=user.name}} +
+ + + {{else}} + {{t 'no_badges'}} + {{/if}} +
+
+ + {{/is}} + + {{#isnt current_filter.identifier 'activities'}} + {{#isnt current_filter.identifier 'badges'}} +
+
+ + {{#if contributions}} + +
+

{{t current_filter.identifier}}

+ {{#if sorters}} + {{sorter_description}} + + + + {{#each sorters}} + + {{name}} + + {{/each}} + + + {{/if}} +
+ + + + {{pagination}} + + {{/if}} + + {{#unless contributions}} + {{t 'no_contributions'}} + {{/unless}} + +
+
+ {{/isnt}} + {{/isnt}} + + {{/if}} + + {{#unless member_since}} +
+
+ {{t 'no_content_yet'}} +
+
+ {{/unless}} + +{{/if}} + +{{#unless visible}} +
+
+ + + + + + {{t 'private_activity'}} + +
+
+{{/unless}} diff --git a/theme/Algolia-search/thumbnail.png b/theme/Algolia-search/thumbnail.png new file mode 100644 index 0000000..0ef0974 Binary files /dev/null and b/theme/Algolia-search/thumbnail.png differ diff --git a/theme/Algolia-search/translations/ar.json b/theme/Algolia-search/translations/ar.json new file mode 100644 index 0000000..a4dfaca --- /dev/null +++ b/theme/Algolia-search/translations/ar.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "الألوان", + "brand_color_description": "لون العلامة التجارية لعناصر التصفح الرئيسية", + "brand_color_label": "لون العلامة التجارية", + "brand_text_color_description": "لون العلامة التجارية للمرور الفوقي والحالات النشطة", + "brand_text_color_label": "لون نص العلامة التجارية", + "text_color_description": "لون نص عناصر المحتوى والعناوين", + "text_color_label": "لون النص", + "link_color_description": "لون النص لعناصر الروابط", + "link_color_label": "لون الروابط", + "visited_link_color_description": "لون النص لعناصر الروابط التي تمت زيارتها", + "visited_link_color_label": "لون الروابط التي تمت زيارتها", + "background_color_description": "لون خلفية مركز المساعدة", + "background_color_label": "لون الخلفية", + "fonts_group_label": "الخطوط", + "heading_font_description": "خط العناوين", + "heading_font_label": "خط العناوين", + "text_font_description": "خط نص المحتوى", + "text_font_label": "خط النص", + "brand_group_label": "العلامة التجارية", + "logo_description": "شعار الشركة", + "logo_label": "شعار", + "favicon_description": "أيقونة تظهر في شريط عناوين المتصفح", + "favicon_label": "أيقونة تفضيل", + "images_group_label": "صور", + "homepage_background_image_description": "صورة الخلفية الرئيسية للصفحة الرئيسية", + "homepage_background_image_label": "صورة الخلفية الرئيسية للصفحة الرئيسية", + "community_background_image_description": "صورة الخلفية الرئيسية لصفحة مواضيع المجتمع", + "community_background_image_label": "صورة الخلفية الرئيسية للمجتمع", + "community_image_description": "صورة لقسم المجتمع على الصفحة الرئيسية", + "community_image_label": "شريط المجتمع", + "search_group_label": "إعدادات البحث", + "instant_search_label": "البحث الفوري", + "instant_search_description": "إظهار المقالات المقترحة على البحث", + "scoped_knowledge_base_search_label": "البحث في إطار مجال في قاعدة المعرفة", + "scoped_knowledge_base_search_description": "تقتصر نتائج البحث على الفئة الحالية للمستخدم", + "scoped_community_search_label": "البحث في إطار مجال في المجتمع", + "scoped_community_search_description": "تقتصر نتائج البحث على الموضوع الحالي للمستخدم", + "home_page_group_label": "عناصر الصفحة الرئيسية", + "recent_activity_label": "النشاط الحديث", + "recent_activity_description": "إظهار النشاط الحديث على الصفحة الرئيسية", + "article_page_group_label": "عناصر صفحة المقال", + "articles_in_section_label": "مقالات في الجزء", + "articles_in_section_description": "إظهار العمود الجانبي للمقالات في الجزء", + "article_author_label": "الكاتب", + "article_author_description": "إظهار صورة الكاتب واسمه", + "article_comments_label": "تعليقات", + "article_comments_description": "إظهار التعليقات على المقالات", + "follow_article_label": "تابع", + "follow_article_description": "يمكن للمستخدمين متابعة مقال معين", + "recently_viewed_articles_label": "مقالات شوهدت حديثًا", + "recently_viewed_articles_description": "إظهار المقالات التي شوهدت حديثًا", + "related_articles_label": "مقالات ذات صلة", + "related_articles_description": "إظهار مقالات ذات صلة", + "article_sharing_label": "المشاركة الاجتماعية", + "article_sharing_description": "إظهار مشاركة وسائل التواصل الاجتماعية على المقال", + "section_page_group_label": "عناصر صفحة الجزء", + "follow_section_label": "تابع", + "follow_section_description": "يمكن للمستخدمين متابعة جزء معين", + "community_post_group_label": "عناصر منشورات المجتمع", + "follow_post_label": "تابع", + "follow_post_description": "يمكن للمستخدمين متابعة منشور معين", + "post_sharing_label": "المشاركة الاجتماعية", + "post_sharing_description": "إظهار مشاركة الوسائط الاجتماعية على منشور", + "community_topic_group_label": "عناصر مواضيع المجتمع", + "follow_topic_label": "تابع", + "follow_topic_description": "يمكن للمستخدمين متابعة موضوع معين", + "show_brand_name_label": "إظهار اسم مركز المساعدة", + "show_brand_name_description": "عرض اسم مركز المساعدة إلى جانب الشعار" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/bg.json b/theme/Algolia-search/translations/bg.json new file mode 100644 index 0000000..4bc25c2 --- /dev/null +++ b/theme/Algolia-search/translations/bg.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Цветове", + "brand_color_description": "Брандов цвят за основните навигационни елементи", + "brand_color_label": "Брандов цвят", + "brand_text_color_description": "Брандов цвят при посочване и активни състояния", + "brand_text_color_label": "Брандов цвят за текст", + "text_color_description": "Цвят за елементите – основен текст и заглавки", + "text_color_label": "Цвят на текста", + "link_color_description": "Цвят на текста за елементите-линкове", + "link_color_label": "Цвят на линка", + "visited_link_color_description": "Цвят на текста за посетените линкове", + "visited_link_color_label": "Цвят на посетен линк", + "background_color_description": "Цвят на фона на вашия Помощен център", + "background_color_label": "Цвят на фона", + "fonts_group_label": "Шрифтове", + "heading_font_description": "Шрифт за заглавки", + "heading_font_label": "Шрифт на заглавка", + "text_font_description": "Шрифт за основния текст", + "text_font_label": "Шрифт на текста", + "brand_group_label": "Бранд", + "logo_description": "Лого на компанията", + "logo_label": "Лого", + "favicon_description": "Икона в адресната лента на браузъра", + "favicon_label": "Уеб икона", + "images_group_label": "Изображения", + "homepage_background_image_description": "Главно изображение на началната страница", + "homepage_background_image_label": "Главно изображение на начална страница", + "community_background_image_description": "Главно изображение на страницата с теми на общността", + "community_background_image_label": "Главно изображение на общността", + "community_image_description": "Изображение за раздела за общността на началната страница", + "community_image_label": "Банер за общността", + "search_group_label": "Настройки за търсене", + "instant_search_label": "Незабавно търсене", + "instant_search_description": "Показване на предложения за статии при търсене", + "scoped_knowledge_base_search_label": "Филтрирано търсене в базата знания", + "scoped_knowledge_base_search_description": "Резултатите от търсенето са ограничени до категорията, в която е потребителят", + "scoped_community_search_label": "Филтрирано търсене в общността", + "scoped_community_search_description": "Резултатите от търсенето са ограничени до темата, в която е потребителят", + "home_page_group_label": "Елементи на началната страница", + "recent_activity_label": "Последна активност", + "recent_activity_description": "Показване на последната активност на началната страница", + "article_page_group_label": "Елементи на страницата на статия", + "articles_in_section_label": "Статии в раздела", + "articles_in_section_description": "Показване в страничен панел на статиите в раздела", + "article_author_label": "Автор", + "article_author_description": "Показване на снимка и име на автора", + "article_comments_label": "Коментари", + "article_comments_description": "Показване на коментарите към статиите", + "follow_article_label": "Следене", + "follow_article_description": "Потребителите могат да следят конкретна статия", + "recently_viewed_articles_label": "Последно разглеждани", + "recently_viewed_articles_description": "Показване на последно разглежданите статии", + "related_articles_label": "Сродни статии", + "related_articles_description": "Показване на сродни статии", + "article_sharing_label": "Социални мрежи", + "article_sharing_description": "Показване на икони за споделяне на статията в социални мрежи", + "section_page_group_label": "Елементи на страницата на раздел", + "follow_section_label": "Следене", + "follow_section_description": "Потребителите могат да следят конкретен раздел", + "community_post_group_label": "Елементи на постингите в общността", + "follow_post_label": "Следене", + "follow_post_description": "Потребителите могат да следят конкретен постинг", + "post_sharing_label": "Социални мрежи", + "post_sharing_description": "Показване на икони за споделяне на постинга в социални мрежи", + "community_topic_group_label": "Елементи на темите в общността", + "follow_topic_label": "Следене", + "follow_topic_description": "Потребителите могат да следят конкретна тема", + "show_brand_name_label": "Показване на името на помощния център", + "show_brand_name_description": "Показване на името на помощния център до логото" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/bn.json b/theme/Algolia-search/translations/bn.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/bn.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/bs.json b/theme/Algolia-search/translations/bs.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/bs.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/ca.json b/theme/Algolia-search/translations/ca.json new file mode 100644 index 0000000..4cb729b --- /dev/null +++ b/theme/Algolia-search/translations/ca.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colores", + "brand_color_description": "El color propio de la marca para los elementos importantes de navegación", + "brand_color_label": "Color de marca", + "brand_text_color_description": "El color de la marca cuando está activa y cuando se le pasa el cursor", + "brand_text_color_label": "Color de texto de la marca", + "text_color_description": "El color del texto para los elementos de cuerpo y encabezado", + "text_color_label": "Color de texto", + "link_color_description": "El color del texto para los elementos de vínculos", + "link_color_label": "Color de vínculos", + "background_color_description": "El color de fondo del Centro de ayuda", + "background_color_label": "Color de fondo", + "fonts_group_label": "Fuentes", + "heading_font_description": "La fuente para los encabezados", + "heading_font_label": "Fuente de encabezado", + "text_font_description": "La fuente para el texto del cuerpo", + "text_font_label": "Fuente de texto", + "brand_group_label": "Marca", + "logo_description": "El logotipo de la compañía", + "logo_label": "Logotipo", + "favicon_description": "Icono mostrado en la barra de dirección del navegador", + "favicon_label": "Favicon", + "images_group_label": "Imágenes", + "homepage_background_image_description": "La imagen hero de la página principal", + "homepage_background_image_label": "Imagen hero de página principal", + "community_background_image_description": "Imagen hero en la página de temas de la comunidad", + "community_background_image_label": "Imagen hero de la comunidad", + "community_image_description": "Imagen para la sección de comunidad en la página principal", + "community_image_label": "Pancarta de la comunidad" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/cs.json b/theme/Algolia-search/translations/cs.json new file mode 100644 index 0000000..b20616d --- /dev/null +++ b/theme/Algolia-search/translations/cs.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Barvy", + "brand_color_description": "Barva značky pro hlavní prvky navigace", + "brand_color_label": "Barva značky", + "brand_text_color_description": "Barva značky pro stav při najetí myší a aktivní stav", + "brand_text_color_label": "Barva textu značky", + "text_color_description": "Barva textu pro elementy těla a nadpisu", + "text_color_label": "Barva textu", + "link_color_description": "Barva textu pro elementy odkazů", + "link_color_label": "Barva odkazu", + "visited_link_color_description": "Barva textu pro navštívené elementy odkazů", + "visited_link_color_label": "Barva navštíveného odkazu", + "background_color_description": "Barva pozadí vašeho Centra nápovědy", + "background_color_label": "Barva pozadí", + "fonts_group_label": "Písma", + "heading_font_description": "Písma pro nadpisy", + "heading_font_label": "Písmo nadpisu", + "text_font_description": "Písmo pro text těla", + "text_font_label": "Písmo textu", + "brand_group_label": "Značka", + "logo_description": "Logo společnosti", + "logo_label": "Logo", + "favicon_description": "Ikona zobrazená v řádku adresy prohlížeče", + "favicon_label": "Favikona", + "images_group_label": "Obrázky", + "homepage_background_image_description": "Obrázek na pozadí na domovské stránce", + "homepage_background_image_label": "Obrázek pozadí domovské stránky", + "community_background_image_description": "Obrázek na pozadí stránky témat komunity", + "community_background_image_label": "Obrázek pozadí komunity", + "community_image_description": "Obrázek pro oddíl komunity na domovské stránce", + "community_image_label": "Proužek komunity", + "search_group_label": "Nastavení hledání", + "instant_search_label": "Okamžité hledání", + "instant_search_description": "Při hledání zobrazit navrhované články", + "scoped_knowledge_base_search_label": "Cílené hledání ve znalostní bázi", + "scoped_knowledge_base_search_description": "Výsledky hledání omezit na kategorii, ve které uživatel právě je", + "scoped_community_search_label": "Cílené hledání v komunitě", + "scoped_community_search_description": "Výsledky hledání omezit na téma, ve kterém uživatel právě je", + "home_page_group_label": "Elementy domovské stránky", + "recent_activity_label": "Nedávná aktivita", + "recent_activity_description": "Zobrazit na domovské stránce nedávná aktivita", + "article_page_group_label": "Elementy stránky článku", + "articles_in_section_label": "Články v oddílu", + "articles_in_section_description": "Zobrazit postranní panel s články v oddílu", + "article_author_label": "Autor", + "article_author_description": "Zobrazit obrázek a jméno autora", + "article_comments_label": "Komentáře", + "article_comments_description": "Zobrazit komentáře ke článkům", + "follow_article_label": "Sledovat", + "follow_article_description": "Uživatelé mohou sledovat určitý článek", + "recently_viewed_articles_label": "Nedávno zobrazené", + "recently_viewed_articles_description": "Zobrazit nedávno zobrazené články", + "related_articles_label": "Související články", + "related_articles_description": "Zobrazit související články", + "article_sharing_label": "Sdílení na sociálních sítích", + "article_sharing_description": "Zobrazit u článku sdílení na sociálních sítích", + "section_page_group_label": "Elementy stránky oddílu", + "follow_section_label": "Sledovat", + "follow_section_description": "Uživatelé mohou sledovat určitý oddíl", + "community_post_group_label": "Elementy příspěvku komunity", + "follow_post_label": "Sledovat", + "follow_post_description": "Uživatelé mohou sledovat určitý příspěvek", + "post_sharing_label": "Sdílení na sociálních sítích", + "post_sharing_description": "Zobrazit u příspěvku sdílení na sociálních sítích", + "community_topic_group_label": "Elementy tématu komunity", + "follow_topic_label": "Sledovat", + "follow_topic_description": "Uživatelé mohou sledovat určité téma", + "show_brand_name_label": "Zobrazit název Centra nápovědy", + "show_brand_name_description": "Zobrazit název Centra nápovědy vedle loga" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/cy.json b/theme/Algolia-search/translations/cy.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/cy.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/da.json b/theme/Algolia-search/translations/da.json new file mode 100644 index 0000000..7ab715b --- /dev/null +++ b/theme/Algolia-search/translations/da.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Farver", + "brand_color_description": "Brand-farve for større navigationselementer", + "brand_color_label": "Brand-farve", + "brand_text_color_description": "Brand-farve, når der peges og ved aktive tilstande", + "brand_text_color_label": "Brand-tekstfarve", + "text_color_description": "Tekstfarve til brødtekst og overskriftselementer", + "text_color_label": "Tekstfarve", + "link_color_description": "Tekstfarve til link-elementer", + "link_color_label": "Farve på link", + "visited_link_color_description": "Tekstfarve til besøgte link-elementer", + "visited_link_color_label": "Farve til besøgt link", + "background_color_description": "Baggrundsfarve på dit Help Center", + "background_color_label": "Baggrundsfarve", + "fonts_group_label": "Skrifttyper", + "heading_font_description": "Skrifttype til overskrifter", + "heading_font_label": "Overskriftsskrifttype", + "text_font_description": "Skrifttype til brødtekst", + "text_font_label": "Tekstskrifttype", + "brand_group_label": "Brand", + "logo_description": "Firmalogo", + "logo_label": "Logo", + "favicon_description": "Ikon vist på adresselinjen i din browser", + "favicon_label": "Favicon", + "images_group_label": "Billeder", + "homepage_background_image_description": "Baggrundsbillede på startsiden", + "homepage_background_image_label": "Start-baggrundsbillede", + "community_background_image_description": "Baggrundsbillede på emneside for community", + "community_background_image_label": "Baggrundsbillede for community", + "community_image_description": "Billede til community-sektion på startside", + "community_image_label": "Community-banner", + "search_group_label": "Søgeindstillinger", + "instant_search_label": "Hurtig søgning", + "instant_search_description": "Vis forslag til artikler i søgning", + "scoped_knowledge_base_search_label": "Filtreret søgning i vidensbase", + "scoped_knowledge_base_search_description": "Søgeresultater er begrænset til den kategori, som brugeren befinder sig i", + "scoped_community_search_label": "Filtreret søgning i community", + "scoped_community_search_description": "Søgeresultater er begrænset til det emne, som brugeren befinder sig i", + "home_page_group_label": "Startsideelementer", + "recent_activity_label": "Seneste aktivitet", + "recent_activity_description": "Vis seneste aktivitet på startside", + "article_page_group_label": "Artikelsideelementer", + "articles_in_section_label": "Artikler i sektion", + "articles_in_section_description": "Vis sidepanel med artikler i sektion", + "article_author_label": "Forfatter", + "article_author_description": "Vis forfatters billede og navn", + "article_comments_label": "Kommentarer", + "article_comments_description": "Vis kommentarer til artikler", + "follow_article_label": "Følg", + "follow_article_description": "Brugere kan følge en specifik artikel", + "recently_viewed_articles_label": "Senest vist", + "recently_viewed_articles_description": "Vis seneste viste artikler", + "related_articles_label": "Relaterede artikler", + "related_articles_description": "Vis relaterede artikler", + "article_sharing_label": "Social deling", + "article_sharing_description": "Vis ikoner til deling af artikel på social medier", + "section_page_group_label": "Sektionssideelementer", + "follow_section_label": "Følg", + "follow_section_description": "Brugere kan følge en specifik sektion", + "community_post_group_label": "Community-opslagselementer", + "follow_post_label": "Følg", + "follow_post_description": "Brugere kan følge et specifikt opslag", + "post_sharing_label": "Social deling", + "post_sharing_description": "Vis ikon til deling af opslag på social medier", + "community_topic_group_label": "Community-emneelementer", + "follow_topic_label": "Følg", + "follow_topic_description": "Brugere kan følge et specifikt emne", + "show_brand_name_label": "Vis navn på hjælpecenteret", + "show_brand_name_description": "Vis navnet på hjælpecenteret ved siden af logoet" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/de.json b/theme/Algolia-search/translations/de.json new file mode 100644 index 0000000..607194b --- /dev/null +++ b/theme/Algolia-search/translations/de.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Farben", + "brand_color_description": "Markenspezifische Farbe für die wichtigsten Navigationselemente", + "brand_color_label": "Markenspezifische Farbe", + "brand_text_color_description": "Markenspezifische Farbe für Hover-/Aktivzustand", + "brand_text_color_label": "Markenspezifische Textfarbe", + "text_color_description": "Textfarbe für Text und Überschriften", + "text_color_label": "Textfarbe", + "link_color_description": "Textfarbe für Linkelemente", + "link_color_label": "Linkfarbe", + "visited_link_color_description": "Textfarbe für besuchte Linkelemente", + "visited_link_color_label": "Farbe für besuchte Links", + "background_color_description": "Hintergrundfarbe für Ihr Help Center", + "background_color_label": "Hintergrundfarbe", + "fonts_group_label": "Schriftarten", + "heading_font_description": "Schriftart für Überschriften", + "heading_font_label": "Schriftart für Überschriften", + "text_font_description": "Schriftart für Text", + "text_font_label": "Schriftart für Text", + "brand_group_label": "Marke", + "logo_description": "Firmenlogo", + "logo_label": "Logo", + "favicon_description": "Symbol in der Adressleiste des Browsers", + "favicon_label": "Favicon", + "images_group_label": "Bilder", + "homepage_background_image_description": "Hero-Bild auf der Homepage", + "homepage_background_image_label": "Hero-Bild für die Homepage", + "community_background_image_description": "Hero-Bild auf der Community-Themenseite", + "community_background_image_label": "Hero-Bild für die Community", + "community_image_description": "Bild für den Community-Abschnitt auf der Homepage", + "community_image_label": "Community-Banner", + "search_group_label": "Sucheinstellungen", + "instant_search_label": "Sofortsuche", + "instant_search_description": "Vorgeschlagene Beiträge in Suche anzeigen", + "scoped_knowledge_base_search_label": "Begrenzte Suche in Wissensdatenbank", + "scoped_knowledge_base_search_description": "Suchergebnisse sind auf die jeweilige Kategorie begrenzt", + "scoped_community_search_label": "Begrenzte Suche in Community", + "scoped_community_search_description": "Suchergebnisse sind auf das jeweilige Thema begrenzt", + "home_page_group_label": "Elemente auf Homepage", + "recent_activity_label": "Neueste Aktivität", + "recent_activity_description": "Neueste Aktivität auf Homepage anzeigen", + "article_page_group_label": "Elemente auf Beitragsseiten", + "articles_in_section_label": "Beiträge in Abschnitt", + "articles_in_section_description": "Seitenleiste mit Beiträgen im Abschnitt anzeigen", + "article_author_label": "Autor", + "article_author_description": "Bild und Namen des Autors anzeigen", + "article_comments_label": "Kommentare", + "article_comments_description": "Kommentare zu Beiträgen anzeigen", + "follow_article_label": "Folgen", + "follow_article_description": "Benutzer können einem bestimmten Beitrag folgen", + "recently_viewed_articles_label": "Zuletzt aufgerufene Beiträge", + "recently_viewed_articles_description": "Zuletzt aufgerufene Beiträge anzeigen", + "related_articles_label": "Verwandte Beiträge", + "related_articles_description": "Verwandte Beiträge anzeigen", + "article_sharing_label": "Teilen auf Social Media", + "article_sharing_description": "Funktionen zum Teilen auf Social Media in Beitrag anzeigen", + "section_page_group_label": "Elemente auf Abschnittsseiten", + "follow_section_label": "Folgen", + "follow_section_description": "Benutzer können einem bestimmten Abschnitt folgen", + "community_post_group_label": "Elemente in Community-Posts", + "follow_post_label": "Folgen", + "follow_post_description": "Benutzer können einem bestimmten Post folgen", + "post_sharing_label": "Teilen auf Social Media", + "post_sharing_description": "Funktionen zum Teilen auf Social Media in Post anzeigen", + "community_topic_group_label": "Elemente in Community-Themen", + "follow_topic_label": "Folgen", + "follow_topic_description": "Benutzer können einem bestimmten Thema folgen", + "show_brand_name_label": "Namen des Help Centers anzeigen", + "show_brand_name_description": "Namen des Help Centers neben dem Logo anzeigen" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/el.json b/theme/Algolia-search/translations/el.json new file mode 100644 index 0000000..2688368 --- /dev/null +++ b/theme/Algolia-search/translations/el.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Χρώματα", + "brand_color_description": "Χρώμα επωνυμίας για κύρια στοιχεία πλοήγησης", + "brand_color_label": "Χρώμα επωνυμίας", + "brand_text_color_description": "Χρώμα επωνυμίας για μετακίνηση του δείκτη του ποντικιού και ενεργές καταστάσεις", + "brand_text_color_label": "Χρώμα κειμένου επωνυμίας", + "text_color_description": "Χρώμα κειμένου για στοιχεία κυρίως σώματος και επικεφαλίδων", + "text_color_label": "Χρώμα κειμένου", + "link_color_description": "Χρώμα κειμένου για στοιχεία συνδέσμων", + "link_color_label": "Χρώμα συνδέσμων", + "visited_link_color_description": "Χρώμα κειμένου για στοιχεία συνδέσμων με επισκέψεις", + "visited_link_color_label": "Χρώμα συνδέσμων με επισκέψεις", + "background_color_description": "Χρώμα φόντου του Κέντρου βοήθειας", + "background_color_label": "Χρώμα φόντου", + "fonts_group_label": "Γραμματοσειρές", + "heading_font_description": "Γραμματοσειρά για επικεφαλίδες", + "heading_font_label": "Γραμματοσειρά επικεφαλίδων", + "text_font_description": "Γραμματοσειρά για κείμενο σώματος", + "text_font_label": "Γραμματοσειρά κειμένου", + "brand_group_label": "Επωνυμία", + "logo_description": "Λογότυπο εταιρείας", + "logo_label": "Λογότυπο", + "favicon_description": "Εικονίδιο που εμφανίζεται στη γραμμή διεύθυνσης του προγράμματος περιήγησης", + "favicon_label": "Favicon", + "images_group_label": "Εικόνες", + "homepage_background_image_description": "Εικόνα hero στην αρχική σελίδα", + "homepage_background_image_label": "Εικόνα hero αρχικής σελίδας", + "community_background_image_description": "Εικόνα hero στη σελίδα θεμάτων κοινότητας", + "community_background_image_label": "Εικόνα hero κοινότητας", + "community_image_description": "Εικόνα για την ενότητα κοινότητας στην αρχική σελίδα", + "community_image_label": "Banner κοινότητας", + "search_group_label": "Ρυθμίσεις αναζήτησης", + "instant_search_label": "Αυτόματη αναζήτηση", + "instant_search_description": "Εμφάνιση προτεινόμενων άρθρων στην αναζήτηση", + "scoped_knowledge_base_search_label": "Εστιασμένη αναζήτηση στη Γνωσιακή βάση", + "scoped_knowledge_base_search_description": "Τα αποτελέσματα αναζήτησης περιορίζονται στην κατηγορία στην οποία βρίσκεται ο χρήστης", + "scoped_community_search_label": "Εστιασμένη αναζήτηση στην Κοινότητα", + "scoped_community_search_description": "Τα αποτελέσματα αναζήτησης περιορίζονται στο θέμα στο οποίο βρίσκεται ο χρήστης", + "home_page_group_label": "Στοιχεία αρχικής σελίδας", + "recent_activity_label": "Πρόσφατη δραστηριότητα", + "recent_activity_description": "Εμφάνιση πρόσφατης δραστηριότητας στην αρχική σελίδα", + "article_page_group_label": "Στοιχεία σελίδας άρθρων", + "articles_in_section_label": "Άρθρα σε ενότητα", + "articles_in_section_description": "Εμφάνιση πλευρικής εργαλειοθήκης σε άρθρα σε ενότητα", + "article_author_label": "Συντάκτης", + "article_author_description": "Εμφάνιση εικόνας και ονόματος συντάκτη", + "article_comments_label": "Σχόλια", + "article_comments_description": "Εμφάνιση σχολίων σε άρθρα", + "follow_article_label": "Παρακολούθηση", + "follow_article_description": "Οι χρήστες μπορούν να παρακολουθήσουν ένα συγκεκριμένο άρθρο", + "recently_viewed_articles_label": "Πρόσφατα προβεβλημένα", + "recently_viewed_articles_description": "Εμφάνιση άρθρων που προβλήθηκαν πρόσφατα", + "related_articles_label": "Σχετικά άρθρα", + "related_articles_description": "Εμφάνιση σχετικών άρθρων", + "article_sharing_label": "Κοινοποίηση σε μέσα κοινωνικής δικτύωσης", + "article_sharing_description": "Εμφάνιση κοινοποίησης σε μέσα κοινωνικής δικτύωσης σε άρθρα", + "section_page_group_label": "Στοιχεία σελίδας ενοτήτων", + "follow_section_label": "Παρακολούθηση", + "follow_section_description": "Οι χρήστες μπορούν να παρακολουθούν μια συγκεκριμένη ενότητα", + "community_post_group_label": "Στοιχεία αναρτήσεων κοινότητας", + "follow_post_label": "Παρακολούθηση", + "follow_post_description": "Οι χρήστες μπορούν να παρακολουθούν μια συγκεκριμένη ανάρτηση", + "post_sharing_label": "Κοινοποίηση σε μέσα κοινωνικής δικτύωσης", + "post_sharing_description": "Εμφάνιση κοινοποίησης σε μέσα κοινωνικής δικτύωσης σε αναρτήσεις", + "community_topic_group_label": "Στοιχεία θεμάτων κοινότητας", + "follow_topic_label": "Παρακολούθηση", + "follow_topic_description": "Οι χρήστες μπορούν να παρακολουθούν ένα συγκεκριμένο θέμα", + "show_brand_name_label": "Εμφάνιση ονόματος κέντρου βοήθειας", + "show_brand_name_description": "Εμφάνιση του ονόματος κέντρου βοήθειας δίπλα στο λογότυπο" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/en-ca.json b/theme/Algolia-search/translations/en-ca.json new file mode 100644 index 0000000..e91ef06 --- /dev/null +++ b/theme/Algolia-search/translations/en-ca.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Colours", + "brand_color_description": "Brand colour for major navigational elements", + "brand_color_label": "Brand colour", + "brand_text_color_description": "Brand colour for hover and active states", + "brand_text_color_label": "Brand text colour", + "text_color_description": "Text colour for body and heading elements", + "text_color_label": "Text colour", + "link_color_description": "Text colour for link elements", + "link_color_label": "Link colour", + "visited_link_color_description": "Text colour for visited link elements", + "visited_link_color_label": "Visited link colour", + "background_color_description": "Background colour of your Help Centre", + "background_color_label": "Background colour", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner", + "search_group_label": "Search settings", + "instant_search_label": "Instant search", + "instant_search_description": "Show suggested articles on search", + "scoped_knowledge_base_search_label": "Scoped search in Knowledge Base", + "scoped_knowledge_base_search_description": "Search results are confined to the category the user is in", + "scoped_community_search_label": "Scoped search in Community", + "scoped_community_search_description": "Search results are confined to the topic the user is in", + "home_page_group_label": "Home page elements", + "recent_activity_label": "Recent activity", + "recent_activity_description": "Show recent activity on home page", + "article_page_group_label": "Article page elements", + "articles_in_section_label": "Articles in section", + "articles_in_section_description": "Show sidebar of articles in section", + "article_author_label": "Author", + "article_author_description": "Show author image and name", + "article_comments_label": "Comments", + "article_comments_description": "Show comments on articles", + "follow_article_label": "Follow", + "follow_article_description": "Users can follow a specific article", + "recently_viewed_articles_label": "Recently viewed", + "recently_viewed_articles_description": "Show recently viewed articles", + "related_articles_label": "Related articles", + "related_articles_description": "Show related articles", + "article_sharing_label": "Social sharing", + "article_sharing_description": "Show social media sharing on article", + "section_page_group_label": "Section page elements", + "follow_section_label": "Follow", + "follow_section_description": "Users can follow a specific section", + "community_post_group_label": "Community post elements", + "follow_post_label": "Follow", + "follow_post_description": "Users can follow a specific post", + "post_sharing_label": "Social sharing", + "post_sharing_description": "Show social media sharing on post", + "community_topic_group_label": "Community topic elements", + "follow_topic_label": "Follow", + "follow_topic_description": "Users can follow a specific topic", + "show_brand_name_label": "Show Help Centre name", + "show_brand_name_description": "Display the Help Centre name next to the logo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/en-gb.json b/theme/Algolia-search/translations/en-gb.json new file mode 100644 index 0000000..e91ef06 --- /dev/null +++ b/theme/Algolia-search/translations/en-gb.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Colours", + "brand_color_description": "Brand colour for major navigational elements", + "brand_color_label": "Brand colour", + "brand_text_color_description": "Brand colour for hover and active states", + "brand_text_color_label": "Brand text colour", + "text_color_description": "Text colour for body and heading elements", + "text_color_label": "Text colour", + "link_color_description": "Text colour for link elements", + "link_color_label": "Link colour", + "visited_link_color_description": "Text colour for visited link elements", + "visited_link_color_label": "Visited link colour", + "background_color_description": "Background colour of your Help Centre", + "background_color_label": "Background colour", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner", + "search_group_label": "Search settings", + "instant_search_label": "Instant search", + "instant_search_description": "Show suggested articles on search", + "scoped_knowledge_base_search_label": "Scoped search in Knowledge Base", + "scoped_knowledge_base_search_description": "Search results are confined to the category the user is in", + "scoped_community_search_label": "Scoped search in Community", + "scoped_community_search_description": "Search results are confined to the topic the user is in", + "home_page_group_label": "Home page elements", + "recent_activity_label": "Recent activity", + "recent_activity_description": "Show recent activity on home page", + "article_page_group_label": "Article page elements", + "articles_in_section_label": "Articles in section", + "articles_in_section_description": "Show sidebar of articles in section", + "article_author_label": "Author", + "article_author_description": "Show author image and name", + "article_comments_label": "Comments", + "article_comments_description": "Show comments on articles", + "follow_article_label": "Follow", + "follow_article_description": "Users can follow a specific article", + "recently_viewed_articles_label": "Recently viewed", + "recently_viewed_articles_description": "Show recently viewed articles", + "related_articles_label": "Related articles", + "related_articles_description": "Show related articles", + "article_sharing_label": "Social sharing", + "article_sharing_description": "Show social media sharing on article", + "section_page_group_label": "Section page elements", + "follow_section_label": "Follow", + "follow_section_description": "Users can follow a specific section", + "community_post_group_label": "Community post elements", + "follow_post_label": "Follow", + "follow_post_description": "Users can follow a specific post", + "post_sharing_label": "Social sharing", + "post_sharing_description": "Show social media sharing on post", + "community_topic_group_label": "Community topic elements", + "follow_topic_label": "Follow", + "follow_topic_description": "Users can follow a specific topic", + "show_brand_name_label": "Show Help Centre name", + "show_brand_name_description": "Display the Help Centre name next to the logo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/en-us.json b/theme/Algolia-search/translations/en-us.json new file mode 100644 index 0000000..e70d206 --- /dev/null +++ b/theme/Algolia-search/translations/en-us.json @@ -0,0 +1,83 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "visited_link_color_description": "Text color for visited link elements", + "visited_link_color_label": "Visited link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner", + "search_group_label": "Search settings", + "instant_search_label": "Instant search", + "instant_search_description": "Show suggested articles on search", + "scoped_knowledge_base_search_label": "Scoped search in Knowledge Base", + "scoped_knowledge_base_search_description": "Search results are confined to the category the user is in", + "scoped_community_search_label": "Scoped search in Community", + "scoped_community_search_description": "Search results are confined to the topic the user is in", + "home_page_group_label": "Home page elements", + "recent_activity_label": "Recent activity", + "recent_activity_description": "Show recent activity on home page", + "article_page_group_label": "Article page elements", + "articles_in_section_label": "Articles in section", + "articles_in_section_description": "Show sidebar of articles in section", + "article_author_label": "Author", + "article_author_description": "Show author image and name", + "article_comments_label": "Comments", + "article_comments_description": "Show comments on articles", + "follow_article_label": "Follow", + "follow_article_description": "Users can follow a specific article", + "recently_viewed_articles_label": "Recently viewed", + "recently_viewed_articles_description": "Show recently viewed articles", + "related_articles_label": "Related articles", + "related_articles_description": "Show related articles", + "article_sharing_label": "Social sharing", + "article_sharing_description": "Show social media sharing on article", + "section_page_group_label": "Section page elements", + "follow_section_label": "Follow", + "follow_section_description": "Users can follow a specific section", + "community_post_group_label": "Community post elements", + "follow_post_label": "Follow", + "follow_post_description": "Users can follow a specific post", + "post_sharing_label": "Social sharing", + "post_sharing_description": "Show social media sharing on post", + "community_topic_group_label": "Community topic elements", + "follow_topic_label": "Follow", + "follow_topic_description": "Users can follow a specific topic", + "show_brand_name_label": "Show Help Center name", + "show_brand_name_description": "Display the Help Center name next to the logo", + "algolia_search_settings": "Algolia Search Settings", + "application_id_description": "The Application Id in Algolia", + "application_id_label": "Application Id", + "search_api_key_description": "Search API Key in Algolia", + "search_api_key_label": "Search API Key", + "index_name_description": "Search Index", + "index_name_label": "The name of the Algolia Search Index", + "query_suggestion_index_label":"Query Suggestion Index", + "query_suggestion_index_description": " The index that's used for autocomplete query suggestions", + "use_autocomplete_description": " Whether or not to use the Autocomplete feature", + "use_autocomplete_label": "Use Auto-complete", + "use_debounce_description": "Autocomplete can have multiple queries, due to its nature. Debouncing can help", + "use_debounce_label": "Use Debounce for Auto-complete" +} diff --git a/theme/Algolia-search/translations/en-x-keys.json b/theme/Algolia-search/translations/en-x-keys.json new file mode 100644 index 0000000..affecb0 --- /dev/null +++ b/theme/Algolia-search/translations/en-x-keys.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "txt.help_center_copenhagen_theme.colors_group_label", + "brand_color_description": "txt.help_center_copenhagen_theme.brand_color_description", + "brand_color_label": "txt.help_center_copenhagen_theme.brand_color_label", + "brand_text_color_description": "txt.help_center_copenhagen_theme.brand_text_color_description", + "brand_text_color_label": "txt.help_center_copenhagen_theme.brand_text_color_label", + "text_color_description": "txt.help_center_copenhagen_theme.text_color_description", + "text_color_label": "txt.help_center_copenhagen_theme.text_color_label", + "link_color_description": "txt.help_center_copenhagen_theme.link_color_description", + "link_color_label": "txt.help_center_copenhagen_theme.link_color_label", + "background_color_description": "txt.help_center_copenhagen_theme.background_color_description", + "background_color_label": "txt.help_center_copenhagen_theme.background_color_label", + "fonts_group_label": "txt.help_center_copenhagen_theme.fonts_group_label", + "heading_font_description": "txt.help_center_copenhagen_theme.heading_font_description", + "heading_font_label": "txt.help_center_copenhagen_theme.heading_font_label", + "text_font_description": "txt.help_center_copenhagen_theme.text_font_description", + "text_font_label": "txt.help_center_copenhagen_theme.text_font_label", + "brand_group_label": "txt.help_center_copenhagen_theme.brand_group_label", + "logo_description": "txt.help_center_copenhagen_theme.logo_description", + "logo_label": "txt.help_center_copenhagen_theme.logo_label", + "favicon_description": "txt.help_center_copenhagen_theme.favicon_description", + "favicon_label": "txt.help_center_copenhagen_theme.favicon_label", + "images_group_label": "txt.help_center_copenhagen_theme.images_group_label", + "homepage_background_image_description": "txt.help_center_copenhagen_theme.homepage_background_image_description", + "homepage_background_image_label": "txt.help_center_copenhagen_theme.homepage_background_image_label", + "community_background_image_description": "txt.help_center_copenhagen_theme.community_background_image_description", + "community_background_image_label": "txt.help_center_copenhagen_theme.community_background_image_label", + "community_image_description": "txt.help_center_copenhagen_theme.community_image_description", + "community_image_label": "txt.help_center_copenhagen_theme.community_image_label" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/en-x-pseu.json b/theme/Algolia-search/translations/en-x-pseu.json new file mode 100644 index 0000000..0c02a5d --- /dev/null +++ b/theme/Algolia-search/translations/en-x-pseu.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "[日本Colorséñđ]", + "brand_color_description": "[日本Brand color for major navigational elementséñđ]", + "brand_color_label": "[日本Brand coloréñđ]", + "brand_text_color_description": "[日本Brand color for hover and active stateséñđ]", + "brand_text_color_label": "[日本Brand text coloréñđ]", + "text_color_description": "[日本Text color for body and heading elementséñđ]", + "text_color_label": "[日本Text coloréñđ]", + "link_color_description": "[日本Text color for link elementséñđ]", + "link_color_label": "[日本Link coloréñđ]", + "background_color_description": "[日本Background color of your Help Centeréñđ]", + "background_color_label": "[日本Background coloréñđ]", + "fonts_group_label": "[日本Fontséñđ]", + "heading_font_description": "[日本Font for headingséñđ]", + "heading_font_label": "[日本Heading Fontéñđ]", + "text_font_description": "[日本Font for body textéñđ]", + "text_font_label": "[日本Text Fontéñđ]", + "brand_group_label": "[日本Brandéñđ]", + "logo_description": "[日本Company logoéñđ]", + "logo_label": "[日本Logoéñđ]", + "favicon_description": "[日本Icon displayed in the address bar of your browseréñđ]", + "favicon_label": "[日本Faviconéñđ]", + "images_group_label": "[日本Imageséñđ]", + "homepage_background_image_description": "[日本Hero image on the home pageéñđ]", + "homepage_background_image_label": "[日本Home hero imageéñđ]", + "community_background_image_description": "[日本Hero image on the community topics pageéñđ]", + "community_background_image_label": "[日本Community hero imageéñđ]", + "community_image_description": "[日本Image for the community section on the home pageéñđ]", + "community_image_label": "[日本Community banneréñđ]" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/es-419.json b/theme/Algolia-search/translations/es-419.json new file mode 100644 index 0000000..230deef --- /dev/null +++ b/theme/Algolia-search/translations/es-419.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Colores", + "brand_color_description": "El color propio de la marca para los elementos importantes de navegación", + "brand_color_label": "Color de marca", + "brand_text_color_description": "El color de la marca cuando está activa y cuando se le pasa el cursor", + "brand_text_color_label": "Color de texto de la marca", + "text_color_description": "El color del texto para los elementos de cuerpo y encabezado", + "text_color_label": "Color de texto", + "link_color_description": "El color del texto para los elementos de vínculos", + "link_color_label": "Color de vínculos", + "visited_link_color_description": "El color del texto para los elementos de los vínculos visitados", + "visited_link_color_label": "Color de vínculo visitado", + "background_color_description": "El color de fondo del Centro de ayuda", + "background_color_label": "Color de fondo", + "fonts_group_label": "Fuentes", + "heading_font_description": "La fuente para los encabezados", + "heading_font_label": "Fuente de encabezado", + "text_font_description": "La fuente para el texto del cuerpo", + "text_font_label": "Fuente de texto", + "brand_group_label": "Marca", + "logo_description": "El logotipo de la compañía", + "logo_label": "Logotipo", + "favicon_description": "Icono mostrado en la barra de dirección del navegador", + "favicon_label": "Favicon", + "images_group_label": "Imágenes", + "homepage_background_image_description": "La imagen hero de la página principal", + "homepage_background_image_label": "Imagen hero de página principal", + "community_background_image_description": "Imagen hero en la página de temas de la comunidad", + "community_background_image_label": "Imagen hero de la comunidad", + "community_image_description": "Imagen para la sección de comunidad en la página principal", + "community_image_label": "Pancarta de la comunidad", + "search_group_label": "Configuración de la búsqueda", + "instant_search_label": "Búsqueda inmediata", + "instant_search_description": "Mostrar artículos recomendados en la búsqueda", + "scoped_knowledge_base_search_label": "Búsqueda filtrada en la base de conocimientos", + "scoped_knowledge_base_search_description": "Los resultados de la búsqueda se limitan a la categoría en la que se encuentra el usuario", + "scoped_community_search_label": "Búsqueda filtrada en la comunidad", + "scoped_community_search_description": "Los resultados de la búsqueda se limitan al tema en el que se encuentra el usuario", + "home_page_group_label": "Elementos de página principal", + "recent_activity_label": "Actividad reciente", + "recent_activity_description": "Mostrar actividad reciente en la página principal", + "article_page_group_label": "Elementos de página del artículo", + "articles_in_section_label": "Artículos en la sección", + "articles_in_section_description": "Mostrar barra lateral de artículos en la sección", + "article_author_label": "Autor", + "article_author_description": "Mostrar imagen y nombre del autor", + "article_comments_label": "Comentarios", + "article_comments_description": "Mostrar comentarios en artículos", + "follow_article_label": "Seguir", + "follow_article_description": "Los usuarios pueden seguir un artículo específico", + "recently_viewed_articles_label": "Vistos recientemente", + "recently_viewed_articles_description": "Mostrar artículos vistos recientemente", + "related_articles_label": "Artículos relacionados", + "related_articles_description": "Mostrar artículos relacionados", + "article_sharing_label": "Compartir en redes sociales", + "article_sharing_description": "Mostrar opción para compartir en redes sociales en el artículo", + "section_page_group_label": "Elementos de página de la sección", + "follow_section_label": "Seguir", + "follow_section_description": "Los usuarios pueden seguir una sección específica", + "community_post_group_label": "Elementos de publicación de la comunidad", + "follow_post_label": "Seguir", + "follow_post_description": "Los usuarios pueden seguir una publicación específica", + "post_sharing_label": "Compartir en redes sociales", + "post_sharing_description": "Mostrar opción para compartir en redes sociales en la publicación", + "community_topic_group_label": "Elementos de tema de la comunidad", + "follow_topic_label": "Seguir", + "follow_topic_description": "Los usuarios pueden seguir un tema específico", + "show_brand_name_label": "Mostrar nombre del Centro de ayuda", + "show_brand_name_description": "Muestre el nombre del Centro de ayuda junto al logotipo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/es-es.json b/theme/Algolia-search/translations/es-es.json new file mode 100644 index 0000000..230deef --- /dev/null +++ b/theme/Algolia-search/translations/es-es.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Colores", + "brand_color_description": "El color propio de la marca para los elementos importantes de navegación", + "brand_color_label": "Color de marca", + "brand_text_color_description": "El color de la marca cuando está activa y cuando se le pasa el cursor", + "brand_text_color_label": "Color de texto de la marca", + "text_color_description": "El color del texto para los elementos de cuerpo y encabezado", + "text_color_label": "Color de texto", + "link_color_description": "El color del texto para los elementos de vínculos", + "link_color_label": "Color de vínculos", + "visited_link_color_description": "El color del texto para los elementos de los vínculos visitados", + "visited_link_color_label": "Color de vínculo visitado", + "background_color_description": "El color de fondo del Centro de ayuda", + "background_color_label": "Color de fondo", + "fonts_group_label": "Fuentes", + "heading_font_description": "La fuente para los encabezados", + "heading_font_label": "Fuente de encabezado", + "text_font_description": "La fuente para el texto del cuerpo", + "text_font_label": "Fuente de texto", + "brand_group_label": "Marca", + "logo_description": "El logotipo de la compañía", + "logo_label": "Logotipo", + "favicon_description": "Icono mostrado en la barra de dirección del navegador", + "favicon_label": "Favicon", + "images_group_label": "Imágenes", + "homepage_background_image_description": "La imagen hero de la página principal", + "homepage_background_image_label": "Imagen hero de página principal", + "community_background_image_description": "Imagen hero en la página de temas de la comunidad", + "community_background_image_label": "Imagen hero de la comunidad", + "community_image_description": "Imagen para la sección de comunidad en la página principal", + "community_image_label": "Pancarta de la comunidad", + "search_group_label": "Configuración de la búsqueda", + "instant_search_label": "Búsqueda inmediata", + "instant_search_description": "Mostrar artículos recomendados en la búsqueda", + "scoped_knowledge_base_search_label": "Búsqueda filtrada en la base de conocimientos", + "scoped_knowledge_base_search_description": "Los resultados de la búsqueda se limitan a la categoría en la que se encuentra el usuario", + "scoped_community_search_label": "Búsqueda filtrada en la comunidad", + "scoped_community_search_description": "Los resultados de la búsqueda se limitan al tema en el que se encuentra el usuario", + "home_page_group_label": "Elementos de página principal", + "recent_activity_label": "Actividad reciente", + "recent_activity_description": "Mostrar actividad reciente en la página principal", + "article_page_group_label": "Elementos de página del artículo", + "articles_in_section_label": "Artículos en la sección", + "articles_in_section_description": "Mostrar barra lateral de artículos en la sección", + "article_author_label": "Autor", + "article_author_description": "Mostrar imagen y nombre del autor", + "article_comments_label": "Comentarios", + "article_comments_description": "Mostrar comentarios en artículos", + "follow_article_label": "Seguir", + "follow_article_description": "Los usuarios pueden seguir un artículo específico", + "recently_viewed_articles_label": "Vistos recientemente", + "recently_viewed_articles_description": "Mostrar artículos vistos recientemente", + "related_articles_label": "Artículos relacionados", + "related_articles_description": "Mostrar artículos relacionados", + "article_sharing_label": "Compartir en redes sociales", + "article_sharing_description": "Mostrar opción para compartir en redes sociales en el artículo", + "section_page_group_label": "Elementos de página de la sección", + "follow_section_label": "Seguir", + "follow_section_description": "Los usuarios pueden seguir una sección específica", + "community_post_group_label": "Elementos de publicación de la comunidad", + "follow_post_label": "Seguir", + "follow_post_description": "Los usuarios pueden seguir una publicación específica", + "post_sharing_label": "Compartir en redes sociales", + "post_sharing_description": "Mostrar opción para compartir en redes sociales en la publicación", + "community_topic_group_label": "Elementos de tema de la comunidad", + "follow_topic_label": "Seguir", + "follow_topic_description": "Los usuarios pueden seguir un tema específico", + "show_brand_name_label": "Mostrar nombre del Centro de ayuda", + "show_brand_name_description": "Muestre el nombre del Centro de ayuda junto al logotipo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/es.json b/theme/Algolia-search/translations/es.json new file mode 100644 index 0000000..230deef --- /dev/null +++ b/theme/Algolia-search/translations/es.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Colores", + "brand_color_description": "El color propio de la marca para los elementos importantes de navegación", + "brand_color_label": "Color de marca", + "brand_text_color_description": "El color de la marca cuando está activa y cuando se le pasa el cursor", + "brand_text_color_label": "Color de texto de la marca", + "text_color_description": "El color del texto para los elementos de cuerpo y encabezado", + "text_color_label": "Color de texto", + "link_color_description": "El color del texto para los elementos de vínculos", + "link_color_label": "Color de vínculos", + "visited_link_color_description": "El color del texto para los elementos de los vínculos visitados", + "visited_link_color_label": "Color de vínculo visitado", + "background_color_description": "El color de fondo del Centro de ayuda", + "background_color_label": "Color de fondo", + "fonts_group_label": "Fuentes", + "heading_font_description": "La fuente para los encabezados", + "heading_font_label": "Fuente de encabezado", + "text_font_description": "La fuente para el texto del cuerpo", + "text_font_label": "Fuente de texto", + "brand_group_label": "Marca", + "logo_description": "El logotipo de la compañía", + "logo_label": "Logotipo", + "favicon_description": "Icono mostrado en la barra de dirección del navegador", + "favicon_label": "Favicon", + "images_group_label": "Imágenes", + "homepage_background_image_description": "La imagen hero de la página principal", + "homepage_background_image_label": "Imagen hero de página principal", + "community_background_image_description": "Imagen hero en la página de temas de la comunidad", + "community_background_image_label": "Imagen hero de la comunidad", + "community_image_description": "Imagen para la sección de comunidad en la página principal", + "community_image_label": "Pancarta de la comunidad", + "search_group_label": "Configuración de la búsqueda", + "instant_search_label": "Búsqueda inmediata", + "instant_search_description": "Mostrar artículos recomendados en la búsqueda", + "scoped_knowledge_base_search_label": "Búsqueda filtrada en la base de conocimientos", + "scoped_knowledge_base_search_description": "Los resultados de la búsqueda se limitan a la categoría en la que se encuentra el usuario", + "scoped_community_search_label": "Búsqueda filtrada en la comunidad", + "scoped_community_search_description": "Los resultados de la búsqueda se limitan al tema en el que se encuentra el usuario", + "home_page_group_label": "Elementos de página principal", + "recent_activity_label": "Actividad reciente", + "recent_activity_description": "Mostrar actividad reciente en la página principal", + "article_page_group_label": "Elementos de página del artículo", + "articles_in_section_label": "Artículos en la sección", + "articles_in_section_description": "Mostrar barra lateral de artículos en la sección", + "article_author_label": "Autor", + "article_author_description": "Mostrar imagen y nombre del autor", + "article_comments_label": "Comentarios", + "article_comments_description": "Mostrar comentarios en artículos", + "follow_article_label": "Seguir", + "follow_article_description": "Los usuarios pueden seguir un artículo específico", + "recently_viewed_articles_label": "Vistos recientemente", + "recently_viewed_articles_description": "Mostrar artículos vistos recientemente", + "related_articles_label": "Artículos relacionados", + "related_articles_description": "Mostrar artículos relacionados", + "article_sharing_label": "Compartir en redes sociales", + "article_sharing_description": "Mostrar opción para compartir en redes sociales en el artículo", + "section_page_group_label": "Elementos de página de la sección", + "follow_section_label": "Seguir", + "follow_section_description": "Los usuarios pueden seguir una sección específica", + "community_post_group_label": "Elementos de publicación de la comunidad", + "follow_post_label": "Seguir", + "follow_post_description": "Los usuarios pueden seguir una publicación específica", + "post_sharing_label": "Compartir en redes sociales", + "post_sharing_description": "Mostrar opción para compartir en redes sociales en la publicación", + "community_topic_group_label": "Elementos de tema de la comunidad", + "follow_topic_label": "Seguir", + "follow_topic_description": "Los usuarios pueden seguir un tema específico", + "show_brand_name_label": "Mostrar nombre del Centro de ayuda", + "show_brand_name_description": "Muestre el nombre del Centro de ayuda junto al logotipo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/et.json b/theme/Algolia-search/translations/et.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/et.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/fa.json b/theme/Algolia-search/translations/fa.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/fa.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/fi.json b/theme/Algolia-search/translations/fi.json new file mode 100644 index 0000000..90b7988 --- /dev/null +++ b/theme/Algolia-search/translations/fi.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Värit", + "brand_color_description": "Tärkeiden navigointielementtien brändin väri", + "brand_color_label": "Brändin väri", + "brand_text_color_description": "Yllä leijumisen ja aktiivisen tilan brändin väri", + "brand_text_color_label": "Brändin tekstin väri", + "text_color_description": "Runkotekstin ja otsikkoelementtien tekstin väri", + "text_color_label": "Tekstin väri", + "link_color_description": "Linkkielementtien tekstin väri", + "link_color_label": "Linkin väri", + "visited_link_color_description": "Vierailtujen linkkielementtien tekstin väri", + "visited_link_color_label": "Vierailtujen linkkien väri", + "background_color_description": "Tukiportaalin taustaväri", + "background_color_label": "Taustaväri", + "fonts_group_label": "Fontit", + "heading_font_description": "Otsikoiden fontti", + "heading_font_label": "Otsikon fontti", + "text_font_description": "Runkotekstin fontti", + "text_font_label": "Tekstin fontti", + "brand_group_label": "Brändi", + "logo_description": "Yrityksen logo", + "logo_label": "Logo", + "favicon_description": "Selaimen osoitepalkissa esitetty kuvake", + "favicon_label": "Favicon", + "images_group_label": "Kuvat", + "homepage_background_image_description": "Taustakuva kotisivulla", + "homepage_background_image_label": "Kotisivun taustakuva", + "community_background_image_description": "Yhteisön aihesivun taustakuva", + "community_background_image_label": "Yhteisön taustakuva", + "community_image_description": "Kotisivun yhteisöosan kuva", + "community_image_label": "Yhteisön mainospalkki", + "search_group_label": "Hakutulokset", + "instant_search_label": "Pikahaku", + "instant_search_description": "Näytä ehdotetut artikkelit haussa", + "scoped_knowledge_base_search_label": "Suodatettu haku ratkaisutietokannasta", + "scoped_knowledge_base_search_description": "Hakutulokset rajoitetaan kategoriaan, jossa käyttäjä on", + "scoped_community_search_label": "Suodatettu haku yhteisössä", + "scoped_community_search_description": "Hakutulokset rajoitetaan aiheeseen, jossa käyttäjä on", + "home_page_group_label": "Kotisivun elementit", + "recent_activity_label": "Viimeisin aktiviteetti", + "recent_activity_description": "Näytä viimeisin aktiviteetti kotisivulla", + "article_page_group_label": "Artikkeli-sivun elementit", + "articles_in_section_label": "Artikkelit osiossa", + "articles_in_section_description": "Näytä artikkelien sivupalkki osiossa", + "article_author_label": "Tekijä", + "article_author_description": "Näytä tekijän kuva ja nimi", + "article_comments_label": "Kommentit", + "article_comments_description": "Näytä kommentit artikkeleihin", + "follow_article_label": "Seuraa", + "follow_article_description": "Käyttäjät voivat seurata tiettyä artikkelia", + "recently_viewed_articles_label": "Viimeksi katsotut", + "recently_viewed_articles_description": "Näytä viimeksi katsotut artikkelit", + "related_articles_label": "Aiheeseen liittyvät artikkelit", + "related_articles_description": "Näytä aiheeseen liittyvät artikkelit", + "article_sharing_label": "Sosiaalinen jakaminen", + "article_sharing_description": "Näytä artikkelin jakaminen sosiaalisessa mediassa", + "section_page_group_label": "Osio-sivun elementit", + "follow_section_label": "Seuraa", + "follow_section_description": "Käyttäjät voivat seurata tiettyä osiota", + "community_post_group_label": "Yhteisöviestielementit", + "follow_post_label": "Seuraa", + "follow_post_description": "Käyttäjät voivat seurata tiettyä viestiä", + "post_sharing_label": "Sosiaalinen jakaminen", + "post_sharing_description": "Näytä viestin jakaminen sosiaalisessa mediassa", + "community_topic_group_label": "Yhteisöaihe-elementit", + "follow_topic_label": "Seuraa", + "follow_topic_description": "Käyttäjät voivat seurata tiettyä aihetta", + "show_brand_name_label": "Näytä Tukiportaalin nimi", + "show_brand_name_description": "Näytä Tukiportaalin nimi logon vieressä" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/fil.json b/theme/Algolia-search/translations/fil.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/fil.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/fr-ca.json b/theme/Algolia-search/translations/fr-ca.json new file mode 100644 index 0000000..0099f65 --- /dev/null +++ b/theme/Algolia-search/translations/fr-ca.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Couleurs", + "brand_color_description": "Couleur de la marque pour les principaux éléments de navigation", + "brand_color_label": "Couleur de la marque", + "brand_text_color_description": "Couleur de la marque pour les états Survol et Actif", + "brand_text_color_label": "Couleur du texte de la marque", + "text_color_description": "Couleur du texte pour les éléments du titre et du corps", + "text_color_label": "Couleur du texte", + "link_color_description": "Couleur du texte pour les liens", + "link_color_label": "Couleur des liens", + "visited_link_color_description": "Couleur du texte pour les éléments de liens consultés", + "visited_link_color_label": "Couleur des liens consultés", + "background_color_description": "Couleur d’arrière-plan de votre Centre d’aide", + "background_color_label": "Couleur d’arrière-plan", + "fonts_group_label": "Polices", + "heading_font_description": "Police pour les titres", + "heading_font_label": "Police des titres", + "text_font_description": "Police pour le texte du corps", + "text_font_label": "Police du texte", + "brand_group_label": "Marque", + "logo_description": "Logo de l’entreprise", + "logo_label": "Logo", + "favicon_description": "Icône affichée dans la barre d’adresse de votre navigateur", + "favicon_label": "Favoricône", + "images_group_label": "Images", + "homepage_background_image_description": "Image de premier plan sur la page d’accueil", + "homepage_background_image_label": "Image de premier plan de la page d’accueil", + "community_background_image_description": "Image de premier plan sur la page des sujets de la communauté", + "community_background_image_label": "Image de premier plan pour la communauté", + "community_image_description": "Image pour la section Communauté de la page d’accueil", + "community_image_label": "Bannière Communauté", + "search_group_label": "Paramètres de recherche", + "instant_search_label": "Recherche instantanée", + "instant_search_description": "Afficher les articles suggérés dans la recherche", + "scoped_knowledge_base_search_label": "Recherche limitée dans la base de connaissances", + "scoped_knowledge_base_search_description": "Les résultats de la recherche sont limités à la catégorie dans laquelle se trouve l’utilisateur", + "scoped_community_search_label": "Recherche limitée dans la communauté", + "scoped_community_search_description": "Les résultats de la recherche sont limités au sujet dans lequel se trouve l’utilisateur", + "home_page_group_label": "Éléments de la page d’accueil", + "recent_activity_label": "Activité récente", + "recent_activity_description": "Afficher les activités récentes sur la page d’accueil", + "article_page_group_label": "Éléments de la page d’article", + "articles_in_section_label": "Articles dans la section", + "articles_in_section_description": "Afficher la barre latérale des articles dans la section", + "article_author_label": "Auteur", + "article_author_description": "Afficher la photo et le nom de l’auteur", + "article_comments_label": "Commentaires", + "article_comments_description": "Afficher les commentaires sur les articles", + "follow_article_label": "S’abonner", + "follow_article_description": "Les utilisateurs peuvent s’abonner à un article spécifique", + "recently_viewed_articles_label": "Consultation récente", + "recently_viewed_articles_description": "Afficher les articles consultés récemment", + "related_articles_label": "Articles connexes", + "related_articles_description": "Afficher les articles connexes", + "article_sharing_label": "Partage social", + "article_sharing_description": "Afficher les partages de l’article sur les réseaux sociaux", + "section_page_group_label": "Éléments de la page de section", + "follow_section_label": "S’abonner", + "follow_section_description": "Les utilisateurs peuvent s’abonner à une section spécifique", + "community_post_group_label": "Éléments des publications dans la communauté", + "follow_post_label": "S’abonner", + "follow_post_description": "Les utilisateurs peuvent s’abonner à une publication spécifique", + "post_sharing_label": "Partage social", + "post_sharing_description": "Afficher les partages de la publication sur les réseaux sociaux", + "community_topic_group_label": "Éléments des sujets de la communauté", + "follow_topic_label": "S’abonner", + "follow_topic_description": "Les utilisateurs peuvent s’abonner à un sujet en particulier", + "show_brand_name_label": "Afficher le nom du Centre d’aide", + "show_brand_name_description": "Affichez le nom du Centre d’aide en regard du logo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/fr.json b/theme/Algolia-search/translations/fr.json new file mode 100644 index 0000000..3c4a769 --- /dev/null +++ b/theme/Algolia-search/translations/fr.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Couleurs", + "brand_color_description": "Couleur de la marque pour les principaux éléments de navigation", + "brand_color_label": "Couleur de la marque", + "brand_text_color_description": "Couleur de la marque pour les états Survol et Actif", + "brand_text_color_label": "Couleur du texte de la marque", + "text_color_description": "Couleur du texte pour les éléments du titre et du corps", + "text_color_label": "Couleur du texte", + "link_color_description": "Couleur du texte pour les liens", + "link_color_label": "Couleur des liens", + "visited_link_color_description": "Couleur du texte pour les éléments de liens consultés", + "visited_link_color_label": "Couleur des liens consultés", + "background_color_description": "Couleur d’arrière-plan de votre Centre d’aide", + "background_color_label": "Couleur d’arrière-plan", + "fonts_group_label": "Polices", + "heading_font_description": "Police pour les titres", + "heading_font_label": "Police des titres", + "text_font_description": "Police pour le texte du corps", + "text_font_label": "Police du texte", + "brand_group_label": "Marque", + "logo_description": "Logo de l’entreprise", + "logo_label": "Logo", + "favicon_description": "Icône affichée dans la barre d’adresse de votre navigateur", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Image de héros sur la page d’accueil", + "homepage_background_image_label": "Hero image de la page d’accueil", + "community_background_image_description": "Image de héros sur la page des sujets de la communauté", + "community_background_image_label": "Hero image pour la communauté", + "community_image_description": "Image pour la section Communauté de la page d’accueil", + "community_image_label": "Bannière Communauté", + "search_group_label": "Paramètres de recherche", + "instant_search_label": "Recherche instantanée", + "instant_search_description": "Afficher les articles suggérés dans la recherche", + "scoped_knowledge_base_search_label": "Recherche limitée dans la base de connaissances", + "scoped_knowledge_base_search_description": "Les résultats de la recherche sont limités à la catégorie dans laquelle se trouve l’utilisateur", + "scoped_community_search_label": "Recherche limitée dans la communauté", + "scoped_community_search_description": "Les résultats de la recherche sont limités au sujet dans lequel se trouve l’utilisateur", + "home_page_group_label": "Éléments de la page d’accueil", + "recent_activity_label": "Activité récente", + "recent_activity_description": "Afficher les activités récentes sur la page d’accueil", + "article_page_group_label": "Éléments de la page d’article", + "articles_in_section_label": "Articles dans la section", + "articles_in_section_description": "Afficher la barre latérale des articles dans la section", + "article_author_label": "Auteur", + "article_author_description": "Afficher la photo et le nom de l’auteur", + "article_comments_label": "Commentaires", + "article_comments_description": "Afficher les commentaires sur les articles", + "follow_article_label": "S’abonner", + "follow_article_description": "Les utilisateurs peuvent s’abonner à un article spécifique", + "recently_viewed_articles_label": "Consultation récente", + "recently_viewed_articles_description": "Afficher les articles consultés récemment", + "related_articles_label": "Articles connexes", + "related_articles_description": "Afficher les articles connexes", + "article_sharing_label": "Partage social", + "article_sharing_description": "Afficher les partages de l’article sur les réseaux sociaux", + "section_page_group_label": "Éléments de la page de section", + "follow_section_label": "S’abonner", + "follow_section_description": "Les utilisateurs peuvent s’abonner à une section spécifique", + "community_post_group_label": "Éléments des publications dans la communauté", + "follow_post_label": "S’abonner", + "follow_post_description": "Les utilisateurs peuvent s’abonner à une publication spécifique", + "post_sharing_label": "Partage social", + "post_sharing_description": "Afficher les partages de la publication sur les réseaux sociaux", + "community_topic_group_label": "Éléments des sujets de la communauté", + "follow_topic_label": "S’abonner", + "follow_topic_description": "Les utilisateurs peuvent s’abonner à un sujet spécifique", + "show_brand_name_label": "Afficher le nom du Centre d’aide", + "show_brand_name_description": "Affichez le nom du Centre d’aide en regard du logo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/ga.json b/theme/Algolia-search/translations/ga.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/ga.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/he.json b/theme/Algolia-search/translations/he.json new file mode 100644 index 0000000..a590ae9 --- /dev/null +++ b/theme/Algolia-search/translations/he.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "צבעים", + "brand_color_description": "צבע מותג בשביל רכיבי הניווט החשובים", + "brand_color_label": "צבע מותג", + "brand_text_color_description": "צבע מותג בשביל מצב ריחוף ומצב פעיל", + "brand_text_color_label": "צבע מותג בשביל טקסט", + "text_color_description": "צבע רכיבי גוף הטקסט והכותרות", + "text_color_label": "צבע טקסט", + "link_color_description": "צבע הטקסט בשביל רכיבי קישור", + "link_color_label": "צבע קישור", + "visited_link_color_description": "צבע הטקסט בשביל קישורים שנכנסו אליהם", + "visited_link_color_label": "צבע קישור שנכנסו אליו", + "background_color_description": "צבע הרקע של מרכז התמיכה", + "background_color_label": "צבע רקע", + "fonts_group_label": "גופנים", + "heading_font_description": "גופן בשביל הכותרות", + "heading_font_label": "גופן כותרות", + "text_font_description": "הפונט של גוף הטקסט", + "text_font_label": "פונט הטקסט", + "brand_group_label": "מותג", + "logo_description": "לוגו החברה", + "logo_label": "לוגו", + "favicon_description": "אייקון המוצג בשורת הכתובת בדפדפן", + "favicon_label": "Favicon", + "images_group_label": "תמונות", + "homepage_background_image_description": "התמונה הראשית (hero image) בדף הבית", + "homepage_background_image_label": "תמונה ראשית לדף הבית", + "community_background_image_description": "התמונה הראשית (hero image) בדף הנושאים של הקהילה", + "community_background_image_label": "תמונה ראשית לקהילה", + "community_image_description": "תמונה בשביל חלק הקהילה בדף הבית", + "community_image_label": "באנר הקהילה", + "search_group_label": "הגדרות חיפוש", + "instant_search_label": "חיפוש מיידי", + "instant_search_description": "הצג בחיפוש את המאמרים המוצעים", + "scoped_knowledge_base_search_label": "חיפוש מתוחם במאגר הידע", + "scoped_knowledge_base_search_description": "תוצאות החיפוש מוגבלות לקטגוריה שהמשתמש נמצא בה", + "scoped_community_search_label": "חיפוש מתוחם בקהילה", + "scoped_community_search_description": "תוצאות החיפוש מוגבלות לנושא שהמשתמש נמצא בו", + "home_page_group_label": "רכיבי דף הבית", + "recent_activity_label": "פעילות אחרונה", + "recent_activity_description": "הצג בדף הבית את הפעילויות האחרונות", + "article_page_group_label": "רכיבי דף מאמר", + "articles_in_section_label": "מאמרים בקטגוריית המשנה", + "articles_in_section_description": "הצג בקטגוריית המשנה סרגל צידי של מאמרים", + "article_author_label": "מחבר", + "article_author_description": "הצג את שם המחבר ותמונתו", + "article_comments_label": "הערות", + "article_comments_description": "הצג במאמרים הערות", + "follow_article_label": "עקוב", + "follow_article_description": "המשתמשים יכולים לעקוב אחרי מאמר ספציפי", + "recently_viewed_articles_label": "הוצגו לאחרונה", + "recently_viewed_articles_description": "הצג את המאמרים שהוצגו לאחרונה", + "related_articles_label": "מאמרים קשורים", + "related_articles_description": "הצג מאמרים קשורים", + "article_sharing_label": "שיתוף ברשתות חברתיות", + "article_sharing_description": "הצג במאמר שיתוף ברשתות החברתיות", + "section_page_group_label": "רכיבי דף קטגוריית משנה", + "follow_section_label": "עקוב", + "follow_section_description": "המשתמשים יכולים לעקוב אחרי קטגוריית משנה ספציפית", + "community_post_group_label": "רכיבי פוסט בקהילה​", + "follow_post_label": "עקוב", + "follow_post_description": "המשתמשים יכולים לעקוב אחרי פוסט ספציפי", + "post_sharing_label": "שיתוף ברשתות חברתיות", + "post_sharing_description": "הצג בפוסט שיתוף ברשתות החברתיות", + "community_topic_group_label": "רכיבי נושא בקהילה", + "follow_topic_label": "עקוב", + "follow_topic_description": "המשתמשים יכולים לעקוב אחרי נושא ספציפי", + "show_brand_name_label": "הצג את שם מרכז התמיכה", + "show_brand_name_description": "הצג את שם מרכז התמיכה ליד הלוגו" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/hi.json b/theme/Algolia-search/translations/hi.json new file mode 100644 index 0000000..e8f3fdd --- /dev/null +++ b/theme/Algolia-search/translations/hi.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "रंग", + "brand_color_description": "प्रमुख नेविगेशन तत्वों के लिए ब्रांड का रंग", + "brand_color_label": "ब्रांड का रंग", + "brand_text_color_description": "होवर और सक्रिय स्थितियों के लिए ब्रांड का रंग", + "brand_text_color_label": "ब्रांड पाठ का रंग", + "text_color_description": "मुख्य भाग और शीर्षक तत्वों के लिए पाठ रंग", + "text_color_label": "पाठ रंग", + "link_color_description": "लिंक तत्वों के लिए पाठ रंग", + "link_color_label": "लिंक रंग", + "visited_link_color_description": "विज़िट किए गए लिंक तत्वों के लिए पाठ रंग", + "visited_link_color_label": "विज़िट किए गए लिंक के रंग", + "background_color_description": "आपके सहायता केंद्र की पृष्ठभूमि का रंग", + "background_color_label": "पृष्ठभूमि का रंग", + "fonts_group_label": "फॉन्ट", + "heading_font_description": "शीर्षकों के लिए फॉन्ट", + "heading_font_label": "शीर्षक फॉन्ट", + "text_font_description": "मुख्य पाठ के लिए फॉन्ट", + "text_font_label": "पाठ का फॉन्ट", + "brand_group_label": "ब्रांड", + "logo_description": "कंपनी का लोगो", + "logo_label": "लोगो", + "favicon_description": "आइकन आपके ब्राउज़र के पता बार में प्रदर्शित किया जाता है", + "favicon_label": "फ़ेविकॉन", + "images_group_label": "छवियां", + "homepage_background_image_description": "होम पृष्ठ पर हीरो छवि", + "homepage_background_image_label": "होम हीरो छवि", + "community_background_image_description": "समुदाय विषयों पृष्ठ पर हीरो छवि", + "community_background_image_label": "समुदाय हीरो छवि", + "community_image_description": "होम पृष्ठ पर समुदाय अनुभाग के लिए छवि", + "community_image_label": "समुदाय बैनर", + "search_group_label": "खोज सेटिंग", + "instant_search_label": "त्वरित खोज", + "instant_search_description": "खोज पर सुझाए गए आलेख दिखाएं", + "scoped_knowledge_base_search_label": "जानकारी के आधार में सीमित खोज", + "scoped_knowledge_base_search_description": "खोज परिणाम उस श्रेणी तक ही सीमित हैं, जिसमें उपयोगकर्ता है", + "scoped_community_search_label": "समुदाय में सीमित खोज", + "scoped_community_search_description": "खोज परिणाम उस विषय तक ही सीमित हैं, जिसमें उपयोगकर्ता है", + "home_page_group_label": "होम पेज तत्व", + "recent_activity_label": "हाल ही की गतिविधि", + "recent_activity_description": "होम पेज पर हाल ही की गतिविधि दिखाएं", + "article_page_group_label": "आलेख पृष्ठ तत्व", + "articles_in_section_label": "अनुभाग में आलेख", + "articles_in_section_description": "अनुभाग में आलेखों के साइडबार दिखाएं", + "article_author_label": "लेखक", + "article_author_description": "लेखक छवि और नाम दिखाएं", + "article_comments_label": "टिप्पणियां", + "article_comments_description": "आलेख पर टिप्पणियां दिखाएं", + "follow_article_label": "अनुसरण करें", + "follow_article_description": "उपयोगकर्ता एक विशिष्ट आलेख का अनुसरण कर सकते हैं", + "recently_viewed_articles_label": "हाल में देखे गए", + "recently_viewed_articles_description": "हाल में देखे गए आलेख दिखाएं", + "related_articles_label": "संबंधित आलेख", + "related_articles_description": "संबंधित आलेख दिखाएं", + "article_sharing_label": "सामाजिक साझाकरण", + "article_sharing_description": "आलेख पर सोशल मीडिया साझाकरण दिखाएं", + "section_page_group_label": "अनुभाग पृष्ठ तत्व", + "follow_section_label": "अनुसरण करें", + "follow_section_description": "उपयोगकर्ता एक विशिष्ट अनुभाग का अनुसरण कर सकते हैं", + "community_post_group_label": "समुदाय पोस्ट के तत्व", + "follow_post_label": "अनुसरण करें", + "follow_post_description": "उपयोगकर्ता एक विशिष्ट पोस्ट का अनुसरण कर सकते हैं", + "post_sharing_label": "सामाजिक साझाकरण", + "post_sharing_description": "पोस्ट पर सोशल मीडिया साझाकरण दिखाएं", + "community_topic_group_label": "समुदाय विषय के तत्व", + "follow_topic_label": "अनुसरण करें", + "follow_topic_description": "उपयोगकर्ता एक विशिष्ट विषय का अनुसरण कर सकते हैं", + "show_brand_name_label": "सहायता केंद्र का नाम दिखाएं", + "show_brand_name_description": "लोगो के आगे सहायता केंद्र का नाम दिखाएं" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/hr.json b/theme/Algolia-search/translations/hr.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/hr.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/hu.json b/theme/Algolia-search/translations/hu.json new file mode 100644 index 0000000..c7c4530 --- /dev/null +++ b/theme/Algolia-search/translations/hu.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Színek", + "brand_color_description": "A fontosabb navigációs elemek márkaszíne", + "brand_color_label": "Márkaszín", + "brand_text_color_description": "A rámutatás és az aktív állapotok márkaszíne", + "brand_text_color_label": "Szöveg márkaszíne", + "text_color_description": "Címsorelemek és szövegtörzsek színe", + "text_color_label": "Szöveg színe", + "link_color_description": "Linkek szövegének színe", + "link_color_label": "Link színe", + "visited_link_color_description": "Meglátogatott hivatkozások szövegének színe", + "visited_link_color_label": "Meglátogatott hivatkozás színe", + "background_color_description": "A Súgóközpontja háttérszíne", + "background_color_label": "Háttérszín", + "fonts_group_label": "Betűtípusok", + "heading_font_description": "Címsorok betűtípusa", + "heading_font_label": "Címsor betűtípusa", + "text_font_description": "Szövegtörzs betűtípusa", + "text_font_label": "Szöveg betűtípusa", + "brand_group_label": "Márka", + "logo_description": "Vállalat emblémája", + "logo_label": "Embléma", + "favicon_description": "A böngésző címsorában megjelenített ikon", + "favicon_label": "Favicon", + "images_group_label": "Képek", + "homepage_background_image_description": "A kezdőlap fő képe", + "homepage_background_image_label": "Fő kezdőkép", + "community_background_image_description": "A közösségi témák oldalának fő képe", + "community_background_image_label": "Közösség fő képe", + "community_image_description": "A közösségi rész kezdőlapjának képe", + "community_image_label": "Közösségi banner", + "search_group_label": "Keresési beállítások", + "instant_search_label": "Azonnali keresés", + "instant_search_description": "Javasolt cikkek megjelenítése kereséskor", + "scoped_knowledge_base_search_label": "Célzott keresés a tudásbázisban", + "scoped_knowledge_base_search_description": "A keresési eredmények azokra a kategóriákra korlátozódnak, amelyekben a felhasználó megtalálható", + "scoped_community_search_label": "Célzott keresés a közösségben", + "scoped_community_search_description": "A keresési eredmények azokra a témakörökre korlátozódnak, amelyekben a felhasználó megtalálható", + "home_page_group_label": "Kezdőlap elemei", + "recent_activity_label": "Legutóbbi tevékenységek", + "recent_activity_description": "Legutóbbi tevékenységek megjelenítése a kezdőlapon", + "article_page_group_label": "Cikklap elemei", + "articles_in_section_label": "A szakasz cikkei", + "articles_in_section_description": "Oldalsáv megjelenítése a szakasz cikkeiben", + "article_author_label": "Szerző", + "article_author_description": "Szerző képének és nevének megjelenítése", + "article_comments_label": "Hozzászólások", + "article_comments_description": "Cikk hozzáaszólásainak megjelenítése", + "follow_article_label": "Követés", + "follow_article_description": "A felhasználók követhetnek egy adott cikket", + "recently_viewed_articles_label": "Legutóbb megtekintett cikkek", + "recently_viewed_articles_description": "Legutóbb megtekintett cikkek megjelenítése", + "related_articles_label": "Kapcsolódó cikkek", + "related_articles_description": "Kapcsolódó cikkek megjelenítése", + "article_sharing_label": "Közösségi megosztás", + "article_sharing_description": "Közösségi megosztás lehetőségének megjelenítése a cikkhez", + "section_page_group_label": "Szakaszlap elemei", + "follow_section_label": "Követés", + "follow_section_description": "A felhasználók követhetnek egy adott szakaszt", + "community_post_group_label": "Közösségi bejegyzések elemei", + "follow_post_label": "Követés", + "follow_post_description": "A felhasználók követhetnek egy adott bejegyzést", + "post_sharing_label": "Közösségi megosztás", + "post_sharing_description": "Közösségi megosztás lehetőségének megjelenítése a bejegyzéshez", + "community_topic_group_label": "Közösségi témakörök elemei", + "follow_topic_label": "Követés", + "follow_topic_description": "A felhasználók követhetnek egy adott témakört", + "show_brand_name_label": "Súgóközpont nevének megjelenítése", + "show_brand_name_description": "A Súgóközpont nevének megjelenítése az embléma mellett" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/hy.json b/theme/Algolia-search/translations/hy.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/hy.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/id.json b/theme/Algolia-search/translations/id.json new file mode 100644 index 0000000..fdbbfb7 --- /dev/null +++ b/theme/Algolia-search/translations/id.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Warna", + "brand_color_description": "Warna merek untuk elemen navigasi utama", + "brand_color_label": "Warna merek", + "brand_text_color_description": "Warna merek untuk kondisi melayang dan aktif", + "brand_text_color_label": "Warna teks merek", + "text_color_description": "Warna teks untuk elemen bodi dan judul", + "text_color_label": "Warna teks", + "link_color_description": "Warna teks untuk elemen tautan", + "link_color_label": "Warna tautan", + "visited_link_color_description": "Warna teks untuk elemen tautan yang dikunjungi", + "visited_link_color_label": "Warna tautan yang dikunjungi", + "background_color_description": "Warna latar belakang Pusat Bantuan Anda", + "background_color_label": "Warna latar belakang", + "fonts_group_label": "Font", + "heading_font_description": "Font untuk judul", + "heading_font_label": "Font Judul", + "text_font_description": "Font untuk teks bodi", + "text_font_label": "Font Teks", + "brand_group_label": "Merek", + "logo_description": "Logo perusahaan", + "logo_label": "Logo", + "favicon_description": "Ikon yang ditampilkan pada batang alamat browser Anda", + "favicon_label": "Favicon (Ikon favorit)", + "images_group_label": "Gambar", + "homepage_background_image_description": "Gambar utama pada halaman beranda", + "homepage_background_image_label": "Gambar utama beranda", + "community_background_image_description": "Gambar utama pada halaman topik komunitas", + "community_background_image_label": "Gambar utama komunitas", + "community_image_description": "Gambar bagian komunitas pada halaman beranda", + "community_image_label": "Spanduk komunitas", + "search_group_label": "Pengaturan pencarian", + "instant_search_label": "Pencarian instan", + "instant_search_description": "Tampilkan artikel yang disarankan di pencarian", + "scoped_knowledge_base_search_label": "Pencarian dalam cakupan di Basis Pengetahuan", + "scoped_knowledge_base_search_description": "Hasil pencarian dibatasi untuk kategori yang dimasuki pengguna", + "scoped_community_search_label": "Pencarian dalam cakupan di Komunitas", + "scoped_community_search_description": "Hasil pencarian dibatasi untuk topik yang dimasuki pengguna", + "home_page_group_label": "Elemen halaman beranda", + "recent_activity_label": "Aktivitas terbaru", + "recent_activity_description": "Tampilkan aktivitas terbaru di layar beranda", + "article_page_group_label": "Elemen halaman artikel", + "articles_in_section_label": "Artikel di dalam bagian", + "articles_in_section_description": "Tampilkan bilah samping artikel di dalam bagian", + "article_author_label": "Penulis", + "article_author_description": "Tunjukkan gambar dan nama penulis", + "article_comments_label": "Komentar", + "article_comments_description": "Perlihatkan komentar di artikel", + "follow_article_label": "Ikuti", + "follow_article_description": "Pengguna dapat mengikuti artikel spesifik", + "recently_viewed_articles_label": "Dilihat baru-baru ini", + "recently_viewed_articles_description": "Tampilkan artikel yang dilihat akhir-akhir ini", + "related_articles_label": "Artikel terkait", + "related_articles_description": "Tampilkan artikel terkait", + "article_sharing_label": "Berbagi di media sosial", + "article_sharing_description": "Tampilkan berbagi di media sosial di artikel", + "section_page_group_label": "Elemen halaman bagian", + "follow_section_label": "Ikuti", + "follow_section_description": "Pengguna dapat mengikuti bagian spesifik", + "community_post_group_label": "Elemen posting komunitas", + "follow_post_label": "Ikuti", + "follow_post_description": "Pengguna dapat mengikuti posting spesifik", + "post_sharing_label": "Berbagi di media sosial", + "post_sharing_description": "Tampilkan berbagi di media sosial di posting", + "community_topic_group_label": "Elemen topik komunitas", + "follow_topic_label": "Ikuti", + "follow_topic_description": "Pengguna dapat mengikuti topik spesifik", + "show_brand_name_label": "Tampilkan nama Pusat Bantuan", + "show_brand_name_description": "Tampilkan nama Pusat Bantuan di samping logo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/is.json b/theme/Algolia-search/translations/is.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/is.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/it.json b/theme/Algolia-search/translations/it.json new file mode 100644 index 0000000..c5bcdc1 --- /dev/null +++ b/theme/Algolia-search/translations/it.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Colori", + "brand_color_description": "Colore del brand per i principali elementi di navigazione", + "brand_color_label": "Colore del brand", + "brand_text_color_description": "Colore del brand al passaggio del mouse e per gli stati attivi", + "brand_text_color_label": "Colore testo brand", + "text_color_description": "Colore del corpo del testo e delle intestazioni", + "text_color_label": "Colore testo", + "link_color_description": "Colore del testo per i link", + "link_color_label": "Colore link", + "visited_link_color_description": "Colore del testo per i link selezionati", + "visited_link_color_label": "Colore link selezionati", + "background_color_description": "Colore di sfondo del Centro assistenza", + "background_color_label": "Colore di sfondo", + "fonts_group_label": "Carattere", + "heading_font_description": "Carattere per intestazioni", + "heading_font_label": "Carattere intestazione", + "text_font_description": "Carattere del testo del corpo", + "text_font_label": "Carattere testo", + "brand_group_label": "Brand", + "logo_description": "Logo azienda", + "logo_label": "Logo", + "favicon_description": "Icona visualizzata nella barra dell’indirizzo del browser", + "favicon_label": "Favicon", + "images_group_label": "Immagini", + "homepage_background_image_description": "Hero image della home page", + "homepage_background_image_label": "Hero image home page", + "community_background_image_description": "Hero image della pagina degli argomenti della community", + "community_background_image_label": "Hero image community", + "community_image_description": "Immagine per la sezione community della home page", + "community_image_label": "Banner community", + "search_group_label": "Impostazioni di ricerca", + "instant_search_label": "Ricerca istantanea", + "instant_search_description": "Mostra articoli suggeriti nella ricerca", + "scoped_knowledge_base_search_label": "Ricerca limitata nella Knowledge base", + "scoped_knowledge_base_search_description": "Risultati di ricerca limitati alla categoria visualizzata dall’utente", + "scoped_community_search_label": "Ricerca limitata nella Community", + "scoped_community_search_description": "Risultati di ricerca limitati all’argomento visualizzato dall’utente", + "home_page_group_label": "Elementi home page", + "recent_activity_label": "Attività recente", + "recent_activity_description": "Mostra attività recente nella home page", + "article_page_group_label": "Elementi pagina articoli", + "articles_in_section_label": "Articoli nella sezione", + "articles_in_section_description": "Mostra barra laterale degli articoli nella sezione", + "article_author_label": "Autore", + "article_author_description": "Mostra immagine e nome autore", + "article_comments_label": "Commenti", + "article_comments_description": "Mostra commenti su articoli", + "follow_article_label": "Segui", + "follow_article_description": "Gli utenti possono seguire un articolo specifico", + "recently_viewed_articles_label": "Visti di recente", + "recently_viewed_articles_description": "Mostra articoli visti di recente", + "related_articles_label": "Articoli correlati", + "related_articles_description": "Mostra articoli correlati", + "article_sharing_label": "Condivisione social media", + "article_sharing_description": "Mostra condivisione sui social media nell’articolo", + "section_page_group_label": "Elementi pagina sezione", + "follow_section_label": "Segui", + "follow_section_description": "Gli utenti possono seguire una sezione specifica", + "community_post_group_label": "Elementi post della community", + "follow_post_label": "Segui", + "follow_post_description": "Gli utenti possono seguire un post specifico", + "post_sharing_label": "Condivisione social media", + "post_sharing_description": "Mostra condivisione sui social media nel post", + "community_topic_group_label": "Elementi argomento della community", + "follow_topic_label": "Segui", + "follow_topic_description": "Gli utenti possono seguire un argomento specifico", + "show_brand_name_label": "Mostra nome del centro assistenza", + "show_brand_name_description": "Visualizza il nome del centro assistenza accanto al logo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/ja.json b/theme/Algolia-search/translations/ja.json new file mode 100644 index 0000000..bf9c66c --- /dev/null +++ b/theme/Algolia-search/translations/ja.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "色", + "brand_color_description": "主要なナビゲーション要素のブランドカラー", + "brand_color_label": "ブランドカラー", + "brand_text_color_description": "マウスタッチおよびアクティブ状態のブランドカラー", + "brand_text_color_label": "ブランドのテキストの色", + "text_color_description": "本文および見出し要素のテキストの色", + "text_color_label": "テキストの色", + "link_color_description": "リンク要素のテキストの色", + "link_color_label": "リンクの色", + "visited_link_color_description": "訪問済みリンク要素のテキストの色", + "visited_link_color_label": "訪問済みリンクの色", + "background_color_description": "ヘルプセンターの背景色", + "background_color_label": "背景色", + "fonts_group_label": "フォント", + "heading_font_description": "ヘッダーのフォント", + "heading_font_label": "ヘッダーフォント", + "text_font_description": "本文のテキストのフォント", + "text_font_label": "テキストのフォント", + "brand_group_label": "ブランド", + "logo_description": "会社のロゴ", + "logo_label": "ロゴ", + "favicon_description": "ブラウザのアドレスバーに表示するアイコン", + "favicon_label": "ファビコン", + "images_group_label": "画像", + "homepage_background_image_description": "ホームページのトップイメージ", + "homepage_background_image_label": "ホームページトップイメージ", + "community_background_image_description": "コミュニティのトピックページのトップイメージ", + "community_background_image_label": "コミュニティトップイメージ", + "community_image_description": "ホームページのコミュニティセクションの画像", + "community_image_label": "コミュニティバナー", + "search_group_label": "検索設定", + "instant_search_label": "瞬時に検索", + "instant_search_description": "検索時におすすめの記事を表示します", + "scoped_knowledge_base_search_label": "ナレッジベースの範囲限定検索", + "scoped_knowledge_base_search_description": "検索結果はユーザーが閲覧中のカテゴリに限定されます", + "scoped_community_search_label": "コミュニティの範囲限定検索", + "scoped_community_search_description": "検索結果はユーザーが閲覧中のトピックに限定されます", + "home_page_group_label": "ホームページの要素", + "recent_activity_label": "最近のアクティビティ", + "recent_activity_description": "ホームページに最近のアクティビティを表示します", + "article_page_group_label": "記事のページ要素", + "articles_in_section_label": "このセクションの記事", + "articles_in_section_description": "セクション内の記事をサイドバーに表示します", + "article_author_label": "作成者", + "article_author_description": "作成者の画像と名前を表示します", + "article_comments_label": "コメント", + "article_comments_description": "コメントを記事に表示します", + "follow_article_label": "フォローする", + "follow_article_description": "ユーザーは特定の記事のフォローができます", + "recently_viewed_articles_label": "最近表示した記事", + "recently_viewed_articles_description": "最近表示した記事を表示します", + "related_articles_label": "関連記事", + "related_articles_description": "関連記事を表示します", + "article_sharing_label": "ソーシャルメディアへの共有", + "article_sharing_description": "ソーシャルメディアへの共有を記事に表示します", + "section_page_group_label": "セクションページの要素", + "follow_section_label": "フォローする", + "follow_section_description": "ユーザーは特定のセクションのフォローができます", + "community_post_group_label": "コミュニティ投稿の要素", + "follow_post_label": "フォローする", + "follow_post_description": "ユーザーは特定の投稿のフォローができます", + "post_sharing_label": "ソーシャルメディアへの共有", + "post_sharing_description": "ソーシャルメディアへの共有を投稿に表示します", + "community_topic_group_label": "コミュニティトピックの要素", + "follow_topic_label": "フォローする", + "follow_topic_description": "ユーザーは特定のトピックのフォローができます", + "show_brand_name_label": "ヘルプセンターの名前を表示する", + "show_brand_name_description": "ロゴの横にヘルプセンターの名前を表示します" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/ka.json b/theme/Algolia-search/translations/ka.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/ka.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/ko.json b/theme/Algolia-search/translations/ko.json new file mode 100644 index 0000000..b59c45f --- /dev/null +++ b/theme/Algolia-search/translations/ko.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "색", + "brand_color_description": "주요 탐색 요소의 브랜드 색", + "brand_color_label": "브랜드 색", + "brand_text_color_description": "호버 및 활성 상태의 브랜드 색", + "brand_text_color_label": "브랜드 텍스트 색", + "text_color_description": "본문과 머리글 요소의 텍스트 색", + "text_color_label": "텍스트 색", + "link_color_description": "링크 요소의 텍스트 색", + "link_color_label": "링크 색", + "visited_link_color_description": "방문한 링크 요소의 텍스트 색", + "visited_link_color_label": "방문한 링크 색", + "background_color_description": "헬프 센터 배경 색", + "background_color_label": "배경 색", + "fonts_group_label": "글꼴", + "heading_font_description": "머리글의 글꼴", + "heading_font_label": "머리글 글꼴", + "text_font_description": "본문 텍스트의 글꼴", + "text_font_label": "텍스트 글꼴", + "brand_group_label": "브랜드", + "logo_description": "회사 로고", + "logo_label": "로고", + "favicon_description": "브라우저 주소 표시줄에 표시되는 아이콘", + "favicon_label": "파비콘", + "images_group_label": "이미지", + "homepage_background_image_description": "홈 페이지의 히어로 이미지", + "homepage_background_image_label": "홈 히어로 이미지", + "community_background_image_description": "커뮤니티 주제 페이지의 히어로 이미지", + "community_background_image_label": "커뮤니티 히어로 이미지", + "community_image_description": "홈 페이지 커뮤니티 섹션의 이미지", + "community_image_label": "커뮤니티 배너", + "search_group_label": "검색 설정", + "instant_search_label": "바로 검색", + "instant_search_description": "검색 시 추천 문서 표시", + "scoped_knowledge_base_search_label": "지식창고에서만 검색", + "scoped_knowledge_base_search_description": "검색 결과의 범위를 사용자가 속한 카테고리로 제한", + "scoped_community_search_label": "커뮤니티에서만 검색", + "scoped_community_search_description": "검색 결과의 범위를 사용자가 속한 주제로 제한", + "home_page_group_label": "홈 페이지 요소", + "recent_activity_label": "최근 활동", + "recent_activity_description": "홈 페이지에 최근 활동 표시", + "article_page_group_label": "문서 페이지 요소", + "articles_in_section_label": "섹션의 문서", + "articles_in_section_description": "섹션에서 문서의 사이드바 표시", + "article_author_label": "작성자", + "article_author_description": "작성자 이미지 및 이름 표시", + "article_comments_label": "댓글", + "article_comments_description": "문서에서 댓글 표시", + "follow_article_label": "팔로우", + "follow_article_description": "사용자가 특정 문서를 팔로우할 수 있음", + "recently_viewed_articles_label": "최근 본 문서", + "recently_viewed_articles_description": "최근 본 문서 표시", + "related_articles_label": "관련 문서", + "related_articles_description": "관련 문서 표시", + "article_sharing_label": "소셜 공유", + "article_sharing_description": "문서에 소셜 미디어 공유 표시", + "section_page_group_label": "섹션 페이지 요소", + "follow_section_label": "팔로우", + "follow_section_description": "사용자가 특정 섹션을 팔로우할 수 있음", + "community_post_group_label": "커뮤니티 게시물 요소", + "follow_post_label": "팔로우", + "follow_post_description": "사용자가 특정 게시물을 팔로우할 수 있음", + "post_sharing_label": "소셜 공유", + "post_sharing_description": "게시물에 소셜 미디어 공유 표시", + "community_topic_group_label": "커뮤니티 주제 요소", + "follow_topic_label": "팔로우", + "follow_topic_description": "사용자가 특정 주제를 팔로우할 수 있음", + "show_brand_name_label": "헬프 센터 이름 표시", + "show_brand_name_description": "로고 옆에 헬프 센터 이름 표시" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/lt.json b/theme/Algolia-search/translations/lt.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/lt.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/lv.json b/theme/Algolia-search/translations/lv.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/lv.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/ms.json b/theme/Algolia-search/translations/ms.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/ms.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/nl.json b/theme/Algolia-search/translations/nl.json new file mode 100644 index 0000000..f257f5e --- /dev/null +++ b/theme/Algolia-search/translations/nl.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Kleuren", + "brand_color_description": "Kleur van merk voor belangrijke navigatie-elementen", + "brand_color_label": "Kleur van merk", + "brand_text_color_description": "Kleur van merk bij muisaanwijzer laten rusten en actieve statussen", + "brand_text_color_label": "Kleur van merktekst", + "text_color_description": "Tekstkleur voor hoofdtekst en koptekstelementen", + "text_color_label": "Tekstkleur", + "link_color_description": "Tekstkleur voor linkelementen", + "link_color_label": "Kleur van link", + "visited_link_color_description": "Tekstkleur voor bezochte linkelementen", + "visited_link_color_label": "Kleur van bezochte link", + "background_color_description": "Achtergrondkleur van uw Helpcenter", + "background_color_label": "Achtergrondkleur", + "fonts_group_label": "Lettertypen", + "heading_font_description": "Lettertype voor kopteksten", + "heading_font_label": "Lettertype voor kopteksten", + "text_font_description": "Lettertype voor hoofdtekst", + "text_font_label": "Lettertype voor tekst", + "brand_group_label": "Merk", + "logo_description": "Bedrijfslogo", + "logo_label": "Logo", + "favicon_description": "Pictogram dat wordt weergegeven op de adresbalk van uw browser", + "favicon_label": "Favicon", + "images_group_label": "Afbeeldingen", + "homepage_background_image_description": "Hero image op de startpagina", + "homepage_background_image_label": "Hero image startpagina", + "community_background_image_description": "Hero image op de community pagina met onderwerpen", + "community_background_image_label": "Hero image Community", + "community_image_description": "Afbeelding voor het communitygedeelte op de startpagina", + "community_image_label": "Banner voor community", + "search_group_label": "Zoekinstellingen", + "instant_search_label": "Direct zoeken", + "instant_search_description": "Voorgestelde artikelen bij zoekopdrachten weergeven", + "scoped_knowledge_base_search_label": "Gefilterde zoekopdracht in kennisbank", + "scoped_knowledge_base_search_description": "Zoekresultaten zijn beperkt tot de categorie waarbinnen de gebruiker zich bevindt", + "scoped_community_search_label": "Gefilterde zoekopdracht in community", + "scoped_community_search_description": "Zoekresultaten zijn beperkt tot het onderwerp waarbinnen de gebruiker zich bevindt", + "home_page_group_label": "Elementen van startpagina", + "recent_activity_label": "Recente activiteit", + "recent_activity_description": "Recente activiteit op startpagina weergeven", + "article_page_group_label": "Elementen van artikelpagina", + "articles_in_section_label": "Artikelen in sectie", + "articles_in_section_description": "Zijbalk van artikelen in sectie weergeven", + "article_author_label": "Auteur", + "article_author_description": "Afbeelding en naam van auteur weergeven", + "article_comments_label": "Opmerkingen", + "article_comments_description": "Opmerkingen op artikelen weergeven", + "follow_article_label": "Volgen", + "follow_article_description": "Gebruikers kunnen een bepaald artikel volgen", + "recently_viewed_articles_label": "Onlangs bekeken", + "recently_viewed_articles_description": "Onlangs bekeken artikelen weergeven", + "related_articles_label": "Verwante artikelen", + "related_articles_description": "Verwante artikelen weergeven", + "article_sharing_label": "Delen via sociale netwerken", + "article_sharing_description": "Delen van artikel via sociale media weergeven", + "section_page_group_label": "Elementen op sectiepagina", + "follow_section_label": "Volgen", + "follow_section_description": "Gebruikers kunnen een bepaalde sectie volgen", + "community_post_group_label": "Elementen van communitybericht", + "follow_post_label": "Volgen", + "follow_post_description": "Gebruikers kunnen een bepaald bericht volgen", + "post_sharing_label": "Delen via sociale netwerken", + "post_sharing_description": "Delen van bericht via sociale media weergeven", + "community_topic_group_label": "Elementen van communityonderwerp", + "follow_topic_label": "Volgen", + "follow_topic_description": "Gebruikers kunnen een bepaald onderwerp volgen", + "show_brand_name_label": "Naam van Helpcentrum weergeven", + "show_brand_name_description": "Geef de naam van het Helpcentrum weer naast het logo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/nn.json b/theme/Algolia-search/translations/nn.json new file mode 100644 index 0000000..0d54ff7 --- /dev/null +++ b/theme/Algolia-search/translations/nn.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Farger", + "brand_color_description": "Merkefarge for viktige navigasjonselementer", + "brand_color_label": "Merkefarge", + "brand_text_color_description": "Merkefarge for pekerfølsom og aktiv tilstand", + "brand_text_color_label": "Tekstfarge for merke", + "text_color_description": "Tekstfarge for brødtekst- og topptekstelementer", + "text_color_label": "Tekstfarge", + "link_color_description": "Tekstfarge for lenkeelementer", + "link_color_label": "Lenkefarge", + "background_color_description": "Bakgrunnsfarge i Kundesenter", + "background_color_label": "Bakgrunnsfarge", + "fonts_group_label": "Skrifter", + "heading_font_description": "Skrift for topptekst", + "heading_font_label": "Topptekstskrift", + "text_font_description": "Skrift for brødtekst", + "text_font_label": "Tekstskrift", + "brand_group_label": "Merke", + "logo_description": "Bedriftslogo", + "logo_label": "Logo", + "favicon_description": "Ikon som vises i adresselinjen i nettleseren", + "favicon_label": "Favicon", + "images_group_label": "Bilder", + "homepage_background_image_description": "Bannerbilde på hjemmesiden", + "homepage_background_image_label": "Bannerbilde for hjemmesiden", + "community_background_image_description": "Bannerbilde på siden for nettsamfunnsemner", + "community_background_image_label": "Bannerbilde for nettsamfunn", + "community_image_description": "Bilde for nettsamfunnsdelen på hjemmesiden", + "community_image_label": "Nettsamfunnsfane" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/no.json b/theme/Algolia-search/translations/no.json new file mode 100644 index 0000000..7aa1e50 --- /dev/null +++ b/theme/Algolia-search/translations/no.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Farger", + "brand_color_description": "Merkefarge for viktige navigasjonselementer", + "brand_color_label": "Merkefarge", + "brand_text_color_description": "Merkefarge for pekerfølsom og aktiv tilstand", + "brand_text_color_label": "Tekstfarge for merke", + "text_color_description": "Tekstfarge for brødtekst- og topptekstelementer", + "text_color_label": "Tekstfarge", + "link_color_description": "Tekstfarge for lenkeelementer", + "link_color_label": "Lenkefarge", + "visited_link_color_description": "Tekstfarge for besøkte lenkeelementer", + "visited_link_color_label": "Farge på besøkt lenke", + "background_color_description": "Bakgrunnsfarge i Kundesenter", + "background_color_label": "Bakgrunnsfarge", + "fonts_group_label": "Skrifter", + "heading_font_description": "Skrift for topptekst", + "heading_font_label": "Topptekstskrift", + "text_font_description": "Skrift for brødtekst", + "text_font_label": "Tekstskrift", + "brand_group_label": "Merke", + "logo_description": "Bedriftslogo", + "logo_label": "Logo", + "favicon_description": "Ikon som vises i adresselinjen i nettleseren", + "favicon_label": "Favicon", + "images_group_label": "Bilder", + "homepage_background_image_description": "Bannerbilde på hjemmesiden", + "homepage_background_image_label": "Bannerbilde for hjemmesiden", + "community_background_image_description": "Bannerbilde på siden for nettsamfunnsemner", + "community_background_image_label": "Bannerbilde for nettsamfunn", + "community_image_description": "Bilde for nettsamfunnsdelen på hjemmesiden", + "community_image_label": "Nettsamfunnsfane", + "search_group_label": "Søk-innstillinger", + "instant_search_label": "Øyeblikkelig søk", + "instant_search_description": "Vis foreslåtte artikler i søk", + "scoped_knowledge_base_search_label": "Begrenset søk i Kunnskapsbase", + "scoped_knowledge_base_search_description": "Søkeresultater er begrenset til kategorien brukeren er i", + "scoped_community_search_label": "Begrenset søk i Nettsamfunn", + "scoped_community_search_description": "Søkeresultater er begrenset til emnet brukeren er i", + "home_page_group_label": "Hjemmesideelementer", + "recent_activity_label": "Nylig aktivitet", + "recent_activity_description": "Vis nylig aktivitet på hjemmesiden", + "article_page_group_label": "Artikkelsideelementer", + "articles_in_section_label": "Artikler i seksjonen", + "articles_in_section_description": "Vis sidefelt med artikler i seksjonen", + "article_author_label": "Forfatter", + "article_author_description": "Vis forfatterens bilde og navn", + "article_comments_label": "Kommentarer", + "article_comments_description": "Vis kommentarer på artikler", + "follow_article_label": "Følg", + "follow_article_description": "Brukere kan følge en bestemt artikkel", + "recently_viewed_articles_label": "Nylig vist", + "recently_viewed_articles_description": "Vis nylig viste artikler", + "related_articles_label": "Relaterte artikler", + "related_articles_description": "Vis relaterte artikler", + "article_sharing_label": "Deling i sosiale medier", + "article_sharing_description": "Vis hvordan artikkel er delt i sosiale medier", + "section_page_group_label": "Seksjonssideelementer", + "follow_section_label": "Følg", + "follow_section_description": "Brukere kan følge en bestemt seksjon", + "community_post_group_label": "Elementer for nettsamfunninnlegg", + "follow_post_label": "Følg", + "follow_post_description": "Brukere kan følge et bestemt innlegg", + "post_sharing_label": "Deling i sosiale medier", + "post_sharing_description": "Vis hvordan innlegg er delt i sosiale medier", + "community_topic_group_label": "Elementer for nettsamfunnemner", + "follow_topic_label": "Følg", + "follow_topic_description": "Brukere kan følge et bestemt emne", + "show_brand_name_label": "Vis kundesenternavn", + "show_brand_name_description": "Vis kundesenternavnet ved siden av logoen" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/pl.json b/theme/Algolia-search/translations/pl.json new file mode 100644 index 0000000..b69e685 --- /dev/null +++ b/theme/Algolia-search/translations/pl.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Kolory", + "brand_color_description": "Kolor marki dla najważniejszych elementów nawigacyjnych", + "brand_color_label": "Kolor marki", + "brand_text_color_description": "Kolor marki dla stanu zatrzymania wskaźnika myszy i aktywności", + "brand_text_color_label": "Kolor tekstu marki", + "text_color_description": "Kolor tekstu elementów treści i nagłówków", + "text_color_label": "Kolor tekstu", + "link_color_description": "Kolor tekstu elementów łączy", + "link_color_label": "Kolor łączy", + "visited_link_color_description": "Kolor tekstu elementów użytych łączy", + "visited_link_color_label": "Kolor użytych łączy", + "background_color_description": "Kolor tła Centrum pomocy", + "background_color_label": "Kolor tła", + "fonts_group_label": "Czcionki", + "heading_font_description": "Czcionka nagłówków", + "heading_font_label": "Czcionka nagłówków", + "text_font_description": "Czcionka tekstu treści", + "text_font_label": "Czcionka tekstu", + "brand_group_label": "Marka", + "logo_description": "Logo firmy", + "logo_label": "Logo", + "favicon_description": "Ikona wyświetlana w pasku adresu przeglądarki", + "favicon_label": "Favicon", + "images_group_label": "Obrazy", + "homepage_background_image_description": "Obraz główny na stronie głównej", + "homepage_background_image_label": "Obraz główny strony głównej", + "community_background_image_description": "Obraz główny na stronie tematów społeczności", + "community_background_image_label": "Obraz główny społeczności", + "community_image_description": "Obraz sekcji społeczności na stronie głównej", + "community_image_label": "Baner społeczności", + "search_group_label": "Ustawienia wyszukiwania", + "instant_search_label": "Błyskawiczne wyszukiwanie", + "instant_search_description": "Pokaż proponowane artykuły podczas wyszukiwania", + "scoped_knowledge_base_search_label": "Filtrowane wyszukiwanie w bazie wiedzy", + "scoped_knowledge_base_search_description": "Wyniki wyszukiwania są zawężone do kategorii, w której znajduje się użytkownik", + "scoped_community_search_label": "Filtrowane wyszukiwanie w społeczności", + "scoped_community_search_description": "Wyniki wyszukiwania są zawężone do tematu, w którym znajduje się użytkownik", + "home_page_group_label": "Elementy strony głównej", + "recent_activity_label": "Ostatnia aktywność", + "recent_activity_description": "Pokaż ostatnią aktywność na stronie głównej", + "article_page_group_label": "Elementy strony artykułu", + "articles_in_section_label": "Artykuły w sekcji", + "articles_in_section_description": "Pokaż pasek boczny artykułów w sekcji", + "article_author_label": "Autor", + "article_author_description": "Pokaż obraz oraz imię i nazwisko autora", + "article_comments_label": "Komentarze", + "article_comments_description": "Pokaż komentarze do artykułów", + "follow_article_label": "Obserwuj", + "follow_article_description": "Użytkownicy mogą obserwować wybrany artykuł", + "recently_viewed_articles_label": "Ostatnio wyświetlane", + "recently_viewed_articles_description": "Pokaż ostatnio wyświetlane artykuły", + "related_articles_label": "Powiązane artykuły", + "related_articles_description": "Pokaż powiązane artykuły", + "article_sharing_label": "Udostępnianie społecznościowe", + "article_sharing_description": "Pokaż udostępnienia artykułu w mediach społecznościowych", + "section_page_group_label": "Elementy strony sekcji", + "follow_section_label": "Obserwuj", + "follow_section_description": "Użytkownicy mogą obserwować wybraną sekcję", + "community_post_group_label": "Elementy wpisów w społeczności", + "follow_post_label": "Obserwuj", + "follow_post_description": "Użytkownicy mogą obserwować wybrany wpis", + "post_sharing_label": "Udostępnianie społecznościowe", + "post_sharing_description": "Pokaż udostępnienia wpisu w mediach społecznościowych", + "community_topic_group_label": "Elementy tematów w społeczności", + "follow_topic_label": "Obserwuj", + "follow_topic_description": "Użytkownicy mogą obserwować wybrany temat", + "show_brand_name_label": "Pokaż nazwę Centrum pomocy", + "show_brand_name_description": "Wyświetl nazwę Centrum pomocy obok logo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/pt-br.json b/theme/Algolia-search/translations/pt-br.json new file mode 100644 index 0000000..5074d24 --- /dev/null +++ b/theme/Algolia-search/translations/pt-br.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Cores", + "brand_color_description": "Cor da marca para os principais elementos da navegação", + "brand_color_label": "Cor da marca", + "brand_text_color_description": "Cor da marca para passagem do mouse e outros estados ativos", + "brand_text_color_label": "Cor do texto da marca", + "text_color_description": "Cor do texto para elementos do cabeçalho e corpo", + "text_color_label": "Cor do texto", + "link_color_description": "Cor do texto para elementos de link", + "link_color_label": "Cor do link", + "visited_link_color_description": "Cor do texto para elementos de links visitados", + "visited_link_color_label": "Cor de links visitados", + "background_color_description": "Cor do plano de fundo da sua Central de Ajuda", + "background_color_label": "Cor do plano de fundo", + "fonts_group_label": "Fontes", + "heading_font_description": "Fonte para os cabeçalhos", + "heading_font_label": "Fonte do cabeçalho", + "text_font_description": "Fonte do texto do corpo", + "text_font_label": "Fonte do texto", + "brand_group_label": "Marca", + "logo_description": "Logotipo da empresa", + "logo_label": "Logotipo", + "favicon_description": "Ícone exibido na barra de endereços do seu navegador", + "favicon_label": "Favicon", + "images_group_label": "Imagens", + "homepage_background_image_description": "Imagem principal na página inicial", + "homepage_background_image_label": "Imagem principal inicial", + "community_background_image_description": "Imagem principal na página de tópicos da comunidade", + "community_background_image_label": "Imagem principal da comunidade", + "community_image_description": "Imagem da seção da comunidade na página inicial", + "community_image_label": "Banner da comunidade", + "search_group_label": "Configurações de pesquisa", + "instant_search_label": "Pesquisa instantânea", + "instant_search_description": "Mostrar artigos sugeridos na pesquisa", + "scoped_knowledge_base_search_label": "Pesquisa dentro do escopo na base de conhecimento", + "scoped_knowledge_base_search_description": "Os resultados da pesquisa estão restritos à categoria que o usuário está visitando", + "scoped_community_search_label": "Pesquisa dentro do escopo na Comunidade", + "scoped_community_search_description": "Os resultados da pesquisa estão restritos ao tópico que o usuário está visitando", + "home_page_group_label": "Elementos da página inicial", + "recent_activity_label": "Atividade recente", + "recent_activity_description": "Mostrar atividade recente na página inicial", + "article_page_group_label": "Elementos da página do artigo", + "articles_in_section_label": "Artigos nessa seção", + "articles_in_section_description": "Mostrar barra lateral de artigos na seção", + "article_author_label": "Autor", + "article_author_description": "Mostrar nome e foto do autor", + "article_comments_label": "Comentários", + "article_comments_description": "Mostrar comentários nos artigos", + "follow_article_label": "Seguir", + "follow_article_description": "Os usuários podem seguir um artigo específico", + "recently_viewed_articles_label": "Visualizados recentemente", + "recently_viewed_articles_description": "Mostrar artigos visualizados recentemente", + "related_articles_label": "Artigos relacionados", + "related_articles_description": "Mostrar artigos relacionados", + "article_sharing_label": "Compartilhamento em redes sociais", + "article_sharing_description": "Mostrar opções de compartilhamento em redes sociais no artigo", + "section_page_group_label": "Elementos da página da seção", + "follow_section_label": "Seguir", + "follow_section_description": "Os usuários podem seguir uma seção específica", + "community_post_group_label": "Elementos da publicação da comunidade", + "follow_post_label": "Seguir", + "follow_post_description": "Os usuários podem seguir uma publicação específica", + "post_sharing_label": "Compartilhamento em redes sociais", + "post_sharing_description": "Mostrar opções de compartilhamento em redes sociais na publicação", + "community_topic_group_label": "Elementos do tópico da comunidade", + "follow_topic_label": "Seguir", + "follow_topic_description": "Os usuários podem seguir um tópico específico", + "show_brand_name_label": "Exibir nome da Central de Ajuda", + "show_brand_name_description": "Exibir o nome da Central de Ajuda ao lado do logotipo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/pt.json b/theme/Algolia-search/translations/pt.json new file mode 100644 index 0000000..5074d24 --- /dev/null +++ b/theme/Algolia-search/translations/pt.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Cores", + "brand_color_description": "Cor da marca para os principais elementos da navegação", + "brand_color_label": "Cor da marca", + "brand_text_color_description": "Cor da marca para passagem do mouse e outros estados ativos", + "brand_text_color_label": "Cor do texto da marca", + "text_color_description": "Cor do texto para elementos do cabeçalho e corpo", + "text_color_label": "Cor do texto", + "link_color_description": "Cor do texto para elementos de link", + "link_color_label": "Cor do link", + "visited_link_color_description": "Cor do texto para elementos de links visitados", + "visited_link_color_label": "Cor de links visitados", + "background_color_description": "Cor do plano de fundo da sua Central de Ajuda", + "background_color_label": "Cor do plano de fundo", + "fonts_group_label": "Fontes", + "heading_font_description": "Fonte para os cabeçalhos", + "heading_font_label": "Fonte do cabeçalho", + "text_font_description": "Fonte do texto do corpo", + "text_font_label": "Fonte do texto", + "brand_group_label": "Marca", + "logo_description": "Logotipo da empresa", + "logo_label": "Logotipo", + "favicon_description": "Ícone exibido na barra de endereços do seu navegador", + "favicon_label": "Favicon", + "images_group_label": "Imagens", + "homepage_background_image_description": "Imagem principal na página inicial", + "homepage_background_image_label": "Imagem principal inicial", + "community_background_image_description": "Imagem principal na página de tópicos da comunidade", + "community_background_image_label": "Imagem principal da comunidade", + "community_image_description": "Imagem da seção da comunidade na página inicial", + "community_image_label": "Banner da comunidade", + "search_group_label": "Configurações de pesquisa", + "instant_search_label": "Pesquisa instantânea", + "instant_search_description": "Mostrar artigos sugeridos na pesquisa", + "scoped_knowledge_base_search_label": "Pesquisa dentro do escopo na base de conhecimento", + "scoped_knowledge_base_search_description": "Os resultados da pesquisa estão restritos à categoria que o usuário está visitando", + "scoped_community_search_label": "Pesquisa dentro do escopo na Comunidade", + "scoped_community_search_description": "Os resultados da pesquisa estão restritos ao tópico que o usuário está visitando", + "home_page_group_label": "Elementos da página inicial", + "recent_activity_label": "Atividade recente", + "recent_activity_description": "Mostrar atividade recente na página inicial", + "article_page_group_label": "Elementos da página do artigo", + "articles_in_section_label": "Artigos nessa seção", + "articles_in_section_description": "Mostrar barra lateral de artigos na seção", + "article_author_label": "Autor", + "article_author_description": "Mostrar nome e foto do autor", + "article_comments_label": "Comentários", + "article_comments_description": "Mostrar comentários nos artigos", + "follow_article_label": "Seguir", + "follow_article_description": "Os usuários podem seguir um artigo específico", + "recently_viewed_articles_label": "Visualizados recentemente", + "recently_viewed_articles_description": "Mostrar artigos visualizados recentemente", + "related_articles_label": "Artigos relacionados", + "related_articles_description": "Mostrar artigos relacionados", + "article_sharing_label": "Compartilhamento em redes sociais", + "article_sharing_description": "Mostrar opções de compartilhamento em redes sociais no artigo", + "section_page_group_label": "Elementos da página da seção", + "follow_section_label": "Seguir", + "follow_section_description": "Os usuários podem seguir uma seção específica", + "community_post_group_label": "Elementos da publicação da comunidade", + "follow_post_label": "Seguir", + "follow_post_description": "Os usuários podem seguir uma publicação específica", + "post_sharing_label": "Compartilhamento em redes sociais", + "post_sharing_description": "Mostrar opções de compartilhamento em redes sociais na publicação", + "community_topic_group_label": "Elementos do tópico da comunidade", + "follow_topic_label": "Seguir", + "follow_topic_description": "Os usuários podem seguir um tópico específico", + "show_brand_name_label": "Exibir nome da Central de Ajuda", + "show_brand_name_description": "Exibir o nome da Central de Ajuda ao lado do logotipo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/ro.json b/theme/Algolia-search/translations/ro.json new file mode 100644 index 0000000..08e994e --- /dev/null +++ b/theme/Algolia-search/translations/ro.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Culori", + "brand_color_description": "Culoarea de marcă pentru principalele elemente de navigare", + "brand_color_label": "Culoare de marcă", + "brand_text_color_description": "Culoarea de marcă pentru starea de trecere cu mouse-ul și cea activă", + "brand_text_color_label": "Culoare de marcă text", + "text_color_description": "Culoarea textului pentru elementele tip corp și antet", + "text_color_label": "Culoare text", + "link_color_description": "Culoarea textului pentru elementele tip link", + "link_color_label": "Culoare link", + "visited_link_color_description": "Culoarea textului pentru elementele linkului vizitat", + "visited_link_color_label": "Culoarea linkului vizitat", + "background_color_description": "Culoarea de fundal a Centrului de asistență", + "background_color_label": "Culoare fundal", + "fonts_group_label": "Fonturi", + "heading_font_description": "Font pentru antete", + "heading_font_label": "Font antet", + "text_font_description": "Font pentru corpul textului", + "text_font_label": "Font text", + "brand_group_label": "Marcă", + "logo_description": "Siglă companie", + "logo_label": "Siglă", + "favicon_description": "Pictogramă afișată în bara de adresă a browserului", + "favicon_label": "Favicon", + "images_group_label": "Imagini", + "homepage_background_image_description": "Imagine centrală pe pagina de pornire", + "homepage_background_image_label": "Imagine centrală pornire", + "community_background_image_description": "Imagine centrală pe pagina de subiecte a comunității", + "community_background_image_label": "Imagine centrală comunitate", + "community_image_description": "Imagine pentru secțiunea comunitate de pe pagina de pornire", + "community_image_label": "Banner comunitate", + "search_group_label": "Setări căutare", + "instant_search_label": "Căutare instantanee", + "instant_search_description": "Afișare articole sugerate la căutare", + "scoped_knowledge_base_search_label": "Căutare filtrată în Baza de cunoștințe", + "scoped_knowledge_base_search_description": "Rezultatele căutării sunt limitate la categoria în care se află utilizatorul", + "scoped_community_search_label": "Căutare filtrată în Comunitate", + "scoped_community_search_description": "Rezultatele căutării sunt limitate la subiectul în care se află utilizatorul", + "home_page_group_label": "Elemente pagină de pornire", + "recent_activity_label": "Activitate recentă", + "recent_activity_description": "Afișare activitate recentă pe pagina de pornire", + "article_page_group_label": "Elemente pagină de articol", + "articles_in_section_label": "Articole în secțiune", + "articles_in_section_description": "Afișare bara laterală a articolelor în secțiune", + "article_author_label": "Autor", + "article_author_description": "Afișare fotografie și nume autor", + "article_comments_label": "Comentarii", + "article_comments_description": "Afișare comentarii la articole", + "follow_article_label": "Urmăriți", + "follow_article_description": "Utilizatorii pot urmări un anumit articol", + "recently_viewed_articles_label": "Vizualizate recent", + "recently_viewed_articles_description": "Afișare articole vizualizate recent", + "related_articles_label": "Articole conexe", + "related_articles_description": "Afișare articole conexe", + "article_sharing_label": "Partajare în mediile de socializare", + "article_sharing_description": "Afișare partajare în mediile de socializare la articol", + "section_page_group_label": "Elemente pagină de secțiune", + "follow_section_label": "Urmăriți", + "follow_section_description": "Utilizatorii pot urmări o anumită secțiune", + "community_post_group_label": "Elemente postare în Comunitate", + "follow_post_label": "Urmăriți", + "follow_post_description": "Utilizatorii pot urmări o anumită postare", + "post_sharing_label": "Partajare în mediile de socializare", + "post_sharing_description": "Afișare partajare în mediile de socializare la postare", + "community_topic_group_label": "Elemente subiect în Comunitate", + "follow_topic_label": "Urmăriți", + "follow_topic_description": "Utilizatorii pot urmări un anumit subiect", + "show_brand_name_label": "Afișare nume Centru de asistență", + "show_brand_name_description": "Afișați numele Centrului de asistență lângă siglă" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/ru.json b/theme/Algolia-search/translations/ru.json new file mode 100644 index 0000000..572a840 --- /dev/null +++ b/theme/Algolia-search/translations/ru.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Цвета", + "brand_color_description": "Цвет бренда для основных навигационных элементов", + "brand_color_label": "Цвет бренда", + "brand_text_color_description": "Цвет бренда при наведении и в активном состоянии", + "brand_text_color_label": "Цвет бренда для текста", + "text_color_description": "Цвет элементов основного текста и текста заголовков", + "text_color_label": "Цвет текста", + "link_color_description": "Цвет текста для элементов ссылок", + "link_color_label": "Цвет ссылки", + "visited_link_color_description": "Цвет текста для элементов посещенных ссылок", + "visited_link_color_label": "Цвет посещенной ссылки", + "background_color_description": "Цвет фона Справочного центра", + "background_color_label": "Цвет фона", + "fonts_group_label": "Шрифты", + "heading_font_description": "Шрифт для заголовков", + "heading_font_label": "Шрифт заголовка", + "text_font_description": "Шрифт основного текста", + "text_font_label": "Шрифт текста", + "brand_group_label": "Бренд", + "logo_description": "Логотип компании", + "logo_label": "Логотип", + "favicon_description": "Значок, который отображается в адресной строке браузера", + "favicon_label": "Значок", + "images_group_label": "Изображения", + "homepage_background_image_description": "Изображение героя на главной странице", + "homepage_background_image_label": "Изображение героя — главная", + "community_background_image_description": "Изображение героя на странице тем сообщества", + "community_background_image_label": "Изображение героя — сообщество", + "community_image_description": "Изображение для раздела сообщества на главной странице", + "community_image_label": "Баннер сообщества", + "search_group_label": "Настройки поиска", + "instant_search_label": "Мгновенный поиск", + "instant_search_description": "Показывать рекомендуемые статьи при поиске", + "scoped_knowledge_base_search_label": "Ограниченный поиск в базе знаний", + "scoped_knowledge_base_search_description": "Результаты поиска ограничены категорией, в которой находится пользователь", + "scoped_community_search_label": "Ограниченный поиск в сообществе", + "scoped_community_search_description": "Результаты поиска ограничены темой, в которой находится пользователь", + "home_page_group_label": "Элементы главной страницы", + "recent_activity_label": "Последние действия", + "recent_activity_description": "Показывать последние действия на главной странице", + "article_page_group_label": "Элементы страницы статьи", + "articles_in_section_label": "Статьи в разделе", + "articles_in_section_description": "Показывать боковую панель статей в разделе", + "article_author_label": "Автор", + "article_author_description": "Показывать изображение и имя автора", + "article_comments_label": "Комментарии", + "article_comments_description": "Показывать комментарии к статьям", + "follow_article_label": "Подписаться", + "follow_article_description": "Пользователи могут подписаться на определенную статью", + "recently_viewed_articles_label": "Недавно просмотренные", + "recently_viewed_articles_description": "Показывать недавно просмотренные статьи", + "related_articles_label": "Похожие статьи", + "related_articles_description": "Показывать похожие статьи", + "article_sharing_label": "Социальные сети", + "article_sharing_description": "Показывать, в каких социальных сетях опубликована статья", + "section_page_group_label": "Элементы страницы раздела", + "follow_section_label": "Подписаться", + "follow_section_description": "Пользователи могут подписаться на определенный раздел", + "community_post_group_label": "Элементы публикации в сообществе", + "follow_post_label": "Подписаться", + "follow_post_description": "Пользователи могут подписаться на определенную публикацию", + "post_sharing_label": "Социальные сети", + "post_sharing_description": "Показывать социальные сети, в которых опубликована публикация", + "community_topic_group_label": "Элементы темы в сообществе", + "follow_topic_label": "Подписаться", + "follow_topic_description": "Пользователи могут подписаться на определенную тему", + "show_brand_name_label": "Показывать название Справочного центра", + "show_brand_name_description": "Показывать около логотипа название Справочного центра" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/sk.json b/theme/Algolia-search/translations/sk.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/sk.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/sl.json b/theme/Algolia-search/translations/sl.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/sl.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/sr.json b/theme/Algolia-search/translations/sr.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/sr.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/sv.json b/theme/Algolia-search/translations/sv.json new file mode 100644 index 0000000..49fd236 --- /dev/null +++ b/theme/Algolia-search/translations/sv.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Färger", + "brand_color_description": "Märkets färg för viktiga navigeringselement", + "brand_color_label": "Märkets färg", + "brand_text_color_description": "Märkets färg för hovring och aktiva tillstånd", + "brand_text_color_label": "Märkets textfärg", + "text_color_description": "Textfärg för brödtext- och rubrikelement", + "text_color_label": "Textfärg", + "link_color_description": "Textfärg för länkelement", + "link_color_label": "Länkfärg", + "visited_link_color_description": "Textfärg för besökta länkelement", + "visited_link_color_label": "Färg för besökt länk", + "background_color_description": "Bakgrundsfärg för ditt Helpcenter", + "background_color_label": "Bakgrundsfärg", + "fonts_group_label": "Typsnitt", + "heading_font_description": "Typsnitt för rubriker", + "heading_font_label": "Rubriktypsnitt", + "text_font_description": "Typsnitt för brödtext", + "text_font_label": "Texttypsnitt", + "brand_group_label": "Märke", + "logo_description": "Företagets logotyp", + "logo_label": "Logotyp", + "favicon_description": "Ikon som visas i webbläsarens adressfält", + "favicon_label": "Favikon", + "images_group_label": "Bilder", + "homepage_background_image_description": "Fokusbild på hemsidan", + "homepage_background_image_label": "Hemsidans fokusbild", + "community_background_image_description": "Fokusbild på sidan med communityämnen", + "community_background_image_label": "Communityfokusbild", + "community_image_description": "Bild för hemsidans communityavsnitt", + "community_image_label": "Communitybanér", + "search_group_label": "Sökinställningar", + "instant_search_label": "Omedelbar sökning", + "instant_search_description": "Visa föreslagna artiklar vid sökning", + "scoped_knowledge_base_search_label": "Begränsad sökning i kunskapsbasen", + "scoped_knowledge_base_search_description": "Sökresultaten begränsas till den kategori användaren befinner sig i", + "scoped_community_search_label": "Begränsad sökning i communityn", + "scoped_community_search_description": "Sökresultaten begränsas till det ämne användaren befinner sig i", + "home_page_group_label": "Element på hemsidan", + "recent_activity_label": "Senaste aktiviteter", + "recent_activity_description": "Visa senaste aktiviteter på hemsidan", + "article_page_group_label": "Element på artikelsidan", + "articles_in_section_label": "Artiklar i avsnittet", + "articles_in_section_description": "Visa sidopanel med artiklar i avsnittet", + "article_author_label": "Författare", + "article_author_description": "Visa författarens bild och namn", + "article_comments_label": "Kommentarer", + "article_comments_description": "Visa samtliga artikelkommentarer", + "follow_article_label": "Följ", + "follow_article_description": "Användare kan följa en specifik artikel", + "recently_viewed_articles_label": "Senast visade", + "recently_viewed_articles_description": "Visa senast visade artiklar", + "related_articles_label": "Relaterade artiklar", + "related_articles_description": "Visa relaterade artiklar", + "article_sharing_label": "Social delning", + "article_sharing_description": "Visa delning på sociala medier i artikeln", + "section_page_group_label": "Element på sidavsnitt", + "follow_section_label": "Följ", + "follow_section_description": "Användare kan följa ett specifikt avsnitt", + "community_post_group_label": "Element i communityinlägg", + "follow_post_label": "Följ", + "follow_post_description": "Användare kan följa ett specifikt inlägg", + "post_sharing_label": "Social delning", + "post_sharing_description": "Visa delning på sociala medier i inlägg", + "community_topic_group_label": "Element i communityärenden", + "follow_topic_label": "Följ", + "follow_topic_description": "Användare kan följa ett specifikt ämne", + "show_brand_name_label": "Visa Helpcenter-namn", + "show_brand_name_description": "Visa Helpcenter-namnet bredvid logotypen" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/th.json b/theme/Algolia-search/translations/th.json new file mode 100644 index 0000000..43cbb50 --- /dev/null +++ b/theme/Algolia-search/translations/th.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "สี", + "brand_color_description": "สีแบรนด์สำหรับองค์ประกอบการนำทางหลัก", + "brand_color_label": "สีแบรนด์", + "brand_text_color_description": "สีแบรนด์สำหรับสถานะวางเมาส์และใช้งาน", + "brand_text_color_label": "สีข้อความแบรนด์", + "text_color_description": "สีข้อความสำหรับองค์ประกอบเนื้อหาและส่วนหัว", + "text_color_label": "สีข้อความ", + "link_color_description": "สีข้อความสำหรับองค์ประกอบลิงก์", + "link_color_label": "สีลิงก์", + "visited_link_color_description": "สีข้อความสำหรับองค์ประกอบลิงก์ที่เข้าชม", + "visited_link_color_label": "สีลิงก์ที่เข้าชม", + "background_color_description": "สีพื้นหลังของศูนย์ความช่วยเหลือของคุณ", + "background_color_label": "สีพื้นหลัง", + "fonts_group_label": "ฟอนต์", + "heading_font_description": "ฟอนต์สำหรับส่วนหัว", + "heading_font_label": "ฟอนต์ส่วนหัว", + "text_font_description": "ฟอนต์สำหรับข้อความของเนื้อหา", + "text_font_label": "ฟอนต์ข้อความ", + "brand_group_label": "แบรนด์", + "logo_description": "โลโก้บริษัท", + "logo_label": "โลโก้", + "favicon_description": "ไอคอนที่แสดงในแถบที่อยู่ของเบราว์เซอร์ของคุณ", + "favicon_label": "Favicon", + "images_group_label": "รูปภาพ", + "homepage_background_image_description": "รูปภาพฮีโร่ในหน้าหลัก", + "homepage_background_image_label": "รูปภาพฮีโร่หน้าหลัก", + "community_background_image_description": "รูปภาพฮีโร่ในหน้าหัวข้อของชุมชน", + "community_background_image_label": "รูปภาพฮีโร่ของชุมชน", + "community_image_description": "รูปภาพสำหรับส่วนชุมชนในหน้าหลัก", + "community_image_label": "แบนเนอร์ชุมชน", + "search_group_label": "การตั้งค่าการค้นหา", + "instant_search_label": "การค้นหาโดยทันที", + "instant_search_description": "แสดงบทความที่แนะนำบนการค้นหา", + "scoped_knowledge_base_search_label": "ขอบเขตการค้นหาในฐานความรู้", + "scoped_knowledge_base_search_description": "ผลการค้นหาจะจำกัดเฉพาะหมวดหมู่ที่ผู้ใช้สนใจ", + "scoped_community_search_label": "ขอบเขตการค้นหาในชุมชน", + "scoped_community_search_description": "ผลการค้นหาจะจำกัดเฉพาะหัวข้อที่ผู้ใช้สนใจ", + "home_page_group_label": "องค์ประกอบของหน้าหลัก", + "recent_activity_label": "กิจกรรมเมื่อเร็วๆ นี้", + "recent_activity_description": "แสดงกิจกรรมเมื่อเร็วๆ นี้บนหน้าหลัก", + "article_page_group_label": "องค์ประกอบของหน้าบทความ", + "articles_in_section_label": "บทความในหมวด", + "articles_in_section_description": "แสดงแถบด้านข้างของบทความในหมวด", + "article_author_label": "ผู้เขียน", + "article_author_description": "แสดงรูปและชื่อของผู้เขียน", + "article_comments_label": "ข้อคิดเห็น", + "article_comments_description": "แสดงข้อคิดเห็นบนบทความ", + "follow_article_label": "ติดตาม", + "follow_article_description": "ผู้ใช้สามารถติดตามบทความที่เฉพาะเจาะจงได้", + "recently_viewed_articles_label": "ดูล่าสุด", + "recently_viewed_articles_description": "แสดงบทความที่ดูล่าสุด", + "related_articles_label": "บทความที่เกี่ยวข้อง", + "related_articles_description": "แสดงบทความที่เกี่ยวข้อง", + "article_sharing_label": "การแชร์ทางโซเชียล", + "article_sharing_description": "แสดงการแชร์ทางโซเชียลมีเดียบนบทความ", + "section_page_group_label": "องค์ประกอบของหน้าหมวด", + "follow_section_label": "ติดตาม", + "follow_section_description": "ผู้ใช้สามารถติดตามหมวดที่เฉพาะเจาะจงได้", + "community_post_group_label": "องค์ประกอบหน้าโพสต์ของชุมชน", + "follow_post_label": "ติดตาม", + "follow_post_description": "ผู้ใช้สามารถติดตามโพสต์ที่เฉพาะเจาะจงได้", + "post_sharing_label": "การแชร์ทางโซเชียล", + "post_sharing_description": "แสดงการแชร์ทางโซเชียลมีเดียบนโพสต์", + "community_topic_group_label": "องค์ประกอบหัวข้อของชุมชน", + "follow_topic_label": "ติดตาม", + "follow_topic_description": "ผู้ใช้สามารถติดตามหัวข้อที่เฉพาะเจาะจงได้", + "show_brand_name_label": "แสดงชื่อศูนย์ความช่วยเหลือ", + "show_brand_name_description": "แสดงชื่อศูนย์ความช่วยเหลือถัดจากโลโก้" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/tl.json b/theme/Algolia-search/translations/tl.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/tl.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/tr.json b/theme/Algolia-search/translations/tr.json new file mode 100644 index 0000000..6a98a8e --- /dev/null +++ b/theme/Algolia-search/translations/tr.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Renkler", + "brand_color_description": "Temel gezinti öğeleri için marka rengi", + "brand_color_label": "Marka rengi", + "brand_text_color_description": "Üzerine gelme ve aktif durumlar için marka rengi", + "brand_text_color_label": "Marka metin rengi", + "text_color_description": "Gövde ve başlık öğeleri için metin rengi", + "text_color_label": "Metin rengi", + "link_color_description": "Bağlantı öğeleri için metin rengi", + "link_color_label": "Bağlantı rengi", + "visited_link_color_description": "Ziyaret edilmiş bağlantı öğeleri için metin rengi", + "visited_link_color_label": "Ziyaret edilmiş bağlantı rengi", + "background_color_description": "Yardım Merkezi'nizin arka plan rengi", + "background_color_label": "Arka plan rengi", + "fonts_group_label": "Yazı tipleri", + "heading_font_description": "Başlıklar için yazı tipi", + "heading_font_label": "Başlık Yazı Tipi", + "text_font_description": "Gövde metninin yazı tipi", + "text_font_label": "Metin Yazı Tipi", + "brand_group_label": "Marka", + "logo_description": "Şirket logosu", + "logo_label": "Logo", + "favicon_description": "Tarayıcınızın adres çubuğunda görüntülenen simge", + "favicon_label": "Site simgesi", + "images_group_label": "Resimler", + "homepage_background_image_description": "Ana sayfadaki büyük başlık resmi", + "homepage_background_image_label": "Ana sayfa büyük başlık resmi", + "community_background_image_description": "Topluluk konuları sayfasındaki büyük başlık resmi", + "community_background_image_label": "Topluluk büyük başlık resmi", + "community_image_description": "Ana sayfadaki topluluk bölümü için resim", + "community_image_label": "Topluluk başlık resmi", + "search_group_label": "Arama ayarları", + "instant_search_label": "Anında arama", + "instant_search_description": "Aramada önerilen makaleleri göster", + "scoped_knowledge_base_search_label": "Bilgi Bankasında kapsamı belirli arama", + "scoped_knowledge_base_search_description": "Arama sonuçları, kullanıcının içinde bulunduğu kategoriyle sınırlıdır", + "scoped_community_search_label": "Toplulukta kapsamı belirli arama", + "scoped_community_search_description": "Arama sonuçları, kullanıcının içinde bulunduğu konuyla sınırlıdır", + "home_page_group_label": "Ana sayfa öğeleri", + "recent_activity_label": "Son faaliyet", + "recent_activity_description": "Ana sayfada son faaliyeti göster", + "article_page_group_label": "Makale sayfası öğeleri", + "articles_in_section_label": "Bölümdeki makaleler", + "articles_in_section_description": "Bölümde makaleler yan çubuğunu göster", + "article_author_label": "Yazar", + "article_author_description": "Yazarın resmini ve adını göster", + "article_comments_label": "Yorumlar", + "article_comments_description": "Makalelerde yorumları göster", + "follow_article_label": "Takip et", + "follow_article_description": "Kullanıcılar belirli bir makaleyi takip edebilir", + "recently_viewed_articles_label": "Yakında görüntülenenler", + "recently_viewed_articles_description": "Yakında görüntülenen makaleleri göster", + "related_articles_label": "İlgili makaleler", + "related_articles_description": "İlgili makaleleri göster", + "article_sharing_label": "Sosyal paylaşım", + "article_sharing_description": "Makalede sosyal medya paylaşımını göster", + "section_page_group_label": "Bölüm sayfası öğeleri", + "follow_section_label": "Takip et", + "follow_section_description": "Kullanıcılar belirli bir bölümü takip edebilir", + "community_post_group_label": "Topluluk gönderisi öğeleri", + "follow_post_label": "Takip et", + "follow_post_description": "Kullanıcılar belirli bir gönderiyi takip edebilir", + "post_sharing_label": "Sosyal paylaşım", + "post_sharing_description": "Gönderide sosyal medya paylaşımını göster", + "community_topic_group_label": "Topluluk konu başlığı öğeleri", + "follow_topic_label": "Takip et", + "follow_topic_description": "Kullanıcılar belirli bir konu başlığını takip edebilir", + "show_brand_name_label": "Yardım Merkezi adını göster", + "show_brand_name_description": "Yardım Merkezi adını logonun yanında görüntüleyin" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/uk.json b/theme/Algolia-search/translations/uk.json new file mode 100644 index 0000000..c8c4e91 --- /dev/null +++ b/theme/Algolia-search/translations/uk.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "visited_link_color_description": "Text color for visited link elements", + "visited_link_color_label": "Visited link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner", + "search_group_label": "Search settings", + "instant_search_label": "Instant search", + "instant_search_description": "Show suggested articles on search", + "scoped_knowledge_base_search_label": "Scoped search in Knowledge Base", + "scoped_knowledge_base_search_description": "Search results are confined to the category the user is in", + "scoped_community_search_label": "Scoped search in Community", + "scoped_community_search_description": "Search results are confined to the topic the user is in", + "home_page_group_label": "Home page elements", + "recent_activity_label": "Recent activity", + "recent_activity_description": "Show recent activity on home page", + "article_page_group_label": "Article page elements", + "articles_in_section_label": "Articles in section", + "articles_in_section_description": "Show sidebar of articles in section", + "article_author_label": "Author", + "article_author_description": "Show author image and name", + "article_comments_label": "Comments", + "article_comments_description": "Show comments on articles", + "follow_article_label": "Follow", + "follow_article_description": "Users can follow a specific article", + "recently_viewed_articles_label": "Recently viewed", + "recently_viewed_articles_description": "Show recently viewed articles", + "related_articles_label": "Related articles", + "related_articles_description": "Show related articles", + "article_sharing_label": "Social sharing", + "article_sharing_description": "Show social media sharing on article", + "section_page_group_label": "Section page elements", + "follow_section_label": "Follow", + "follow_section_description": "Users can follow a specific section", + "community_post_group_label": "Community post elements", + "follow_post_label": "Follow", + "follow_post_description": "Users can follow a specific post", + "post_sharing_label": "Social sharing", + "post_sharing_description": "Show social media sharing on post", + "community_topic_group_label": "Community topic elements", + "follow_topic_label": "Follow", + "follow_topic_description": "Users can follow a specific topic", + "show_brand_name_label": "Show Help Center name", + "show_brand_name_description": "Display the Help Center name next to the logo" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/ur.json b/theme/Algolia-search/translations/ur.json new file mode 100644 index 0000000..026d4b0 --- /dev/null +++ b/theme/Algolia-search/translations/ur.json @@ -0,0 +1,30 @@ +{ + "colors_group_label": "Colors", + "brand_color_description": "Brand color for major navigational elements", + "brand_color_label": "Brand color", + "brand_text_color_description": "Brand color for hover and active states", + "brand_text_color_label": "Brand text color", + "text_color_description": "Text color for body and heading elements", + "text_color_label": "Text color", + "link_color_description": "Text color for link elements", + "link_color_label": "Link color", + "background_color_description": "Background color of your Help Center", + "background_color_label": "Background color", + "fonts_group_label": "Fonts", + "heading_font_description": "Font for headings", + "heading_font_label": "Heading Font", + "text_font_description": "Font for body text", + "text_font_label": "Text Font", + "brand_group_label": "Brand", + "logo_description": "Company logo", + "logo_label": "Logo", + "favicon_description": "Icon displayed in the address bar of your browser", + "favicon_label": "Favicon", + "images_group_label": "Images", + "homepage_background_image_description": "Hero image on the home page", + "homepage_background_image_label": "Home hero image", + "community_background_image_description": "Hero image on the community topics page", + "community_background_image_label": "Community hero image", + "community_image_description": "Image for the community section on the home page", + "community_image_label": "Community banner" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/vi.json b/theme/Algolia-search/translations/vi.json new file mode 100644 index 0000000..265b194 --- /dev/null +++ b/theme/Algolia-search/translations/vi.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "Màu sắc", + "brand_color_description": "Màu thương hiệu cho các thành phần điều hướng chính", + "brand_color_label": "Màu thương hiệu", + "brand_text_color_description": "Màu thương hiệu cho các trạng thái di chuột và hoạt động", + "brand_text_color_label": "Màu văn bản thương hiệu", + "text_color_description": "Màu văn bản cho thành phần nội dung và đầu đề", + "text_color_label": "Màu văn bản", + "link_color_description": "Màu văn bản cho các thành phần liên kết", + "link_color_label": "Màu liên kết", + "visited_link_color_description": "Màu văn bản cho các thành phần liên kết đã truy cập", + "visited_link_color_label": "Màu liên kết đã truy cập", + "background_color_description": "Màu nền của Trung tâm Trợ giúp của bạn", + "background_color_label": "Màu nền", + "fonts_group_label": "Phông chữ", + "heading_font_description": "Phông chữ cho đầu đề", + "heading_font_label": "Phông chữ đầu đề", + "text_font_description": "Phông chữ của văn bản nội dung", + "text_font_label": "Phông chữ văn bản", + "brand_group_label": "Thương hiệu", + "logo_description": "Biểu tượng công ty", + "logo_label": "Biểu tượng", + "favicon_description": "Biểu tượng hiển thị trên thanh địa chỉ của trình duyệt của bạn", + "favicon_label": "Favicon", + "images_group_label": "Hình ảnh", + "homepage_background_image_description": "Ảnh đại diện trên trang chủ", + "homepage_background_image_label": "Ảnh đại diện của trang chủ", + "community_background_image_description": "Ảnh đại diện trên trang chủ đề của cộng đồng", + "community_background_image_label": "Ảnh đại diện của cộng đồng", + "community_image_description": "Hình ảnh cho mục cộng đồng trên trang chủ", + "community_image_label": "Biểu ngữ cộng đồng", + "search_group_label": "Thiết lập tìm kiếm", + "instant_search_label": "Tìm kiếm ngay", + "instant_search_description": "Hiển thị các bài viết được đề xuất trên tìm kiếm", + "scoped_knowledge_base_search_label": "Tìm kiếm theo phạm vi trong Thư viện thông tin", + "scoped_knowledge_base_search_description": "Kết quả tìm kiếm được giới hạn trong nhóm hiện tại của người dùng", + "scoped_community_search_label": "Tìm kiếm theo phạm vi trong Cộng đồng", + "scoped_community_search_description": "Kết quả tìm kiếm được giới hạn trong chủ đề hiện tại của người dùng", + "home_page_group_label": "Các phần tử của trang chủ", + "recent_activity_label": "Hoạt động gần đây", + "recent_activity_description": "Hiển thị hoạt động gần đây trên trang chủ", + "article_page_group_label": "Các phần tử của trang bài viết", + "articles_in_section_label": "Các bài viết trong mục", + "articles_in_section_description": "Hiển thị thanh bên của các bài viết trong mục", + "article_author_label": "Tác giả", + "article_author_description": "Hiển thị hình ảnh và tên tác giả", + "article_comments_label": "Bình luận", + "article_comments_description": "Hiển thị các bình luận về bài viết", + "follow_article_label": "Theo dõi", + "follow_article_description": "Người dùng có thể theo dõi một bài viết cụ thể", + "recently_viewed_articles_label": "Đã xem gần đây", + "recently_viewed_articles_description": "Hiển thị các bài viết đã xem gần đây", + "related_articles_label": "Các bài viết liên quan", + "related_articles_description": "Hiển thị bài viết liên quan", + "article_sharing_label": "Chia sẻ lên phương tiện truyền thông xã hội", + "article_sharing_description": "Hiển thị chức năng chia sẻ về bài viết lên phương tiện truyền thông xã hội", + "section_page_group_label": "Các phần tử của trang mục", + "follow_section_label": "Theo dõi", + "follow_section_description": "Người dùng có thể theo dõi một mục cụ thể", + "community_post_group_label": "Các phần tử của bài đăng cộng đồng", + "follow_post_label": "Theo dõi", + "follow_post_description": "Người dùng có thể theo dõi một bài đăng cụ thể", + "post_sharing_label": "Chia sẻ lên phương tiện truyền thông xã hội", + "post_sharing_description": "Hiển thị chức năng chia sẻ về bài đăng lên phương tiện truyền thông xã hội", + "community_topic_group_label": "Các phần tử trong chủ đề cộng đồng", + "follow_topic_label": "Theo dõi", + "follow_topic_description": "Người dùng có thể theo dõi một chủ đề cụ thể", + "show_brand_name_label": "Hiển thị tên Trung tâm trợ giúp", + "show_brand_name_description": "Hiển thị tên Trung tâm trợ giúp bên cạnh biểu tượng" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/zh-cn.json b/theme/Algolia-search/translations/zh-cn.json new file mode 100644 index 0000000..a4e848d --- /dev/null +++ b/theme/Algolia-search/translations/zh-cn.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "颜色", + "brand_color_description": "主要导航元素的品牌颜色", + "brand_color_label": "品牌颜色", + "brand_text_color_description": "悬停和活跃的状态的品牌颜色", + "brand_text_color_label": "品牌文本颜色", + "text_color_description": "正文和标题元素的文本颜色", + "text_color_label": "文本颜色", + "link_color_description": "链接元素的文本颜色", + "link_color_label": "链接颜色", + "visited_link_color_description": "已访问链接元素的文本颜色", + "visited_link_color_label": "已访问链接颜色", + "background_color_description": "您的帮助中心的背景颜色", + "background_color_label": "背景颜色", + "fonts_group_label": "字体", + "heading_font_description": "标题字体", + "heading_font_label": "标题字体", + "text_font_description": "正文文本字体", + "text_font_label": "文本字体", + "brand_group_label": "品牌", + "logo_description": "公司徽标", + "logo_label": "徽标", + "favicon_description": "您的浏览器地址栏中显示的图标", + "favicon_label": "网站头像", + "images_group_label": "图像", + "homepage_background_image_description": "主页上的主页横幅", + "homepage_background_image_label": "主页横幅图像", + "community_background_image_description": "社区主题页面的主页横幅", + "community_background_image_label": "社区主页横幅", + "community_image_description": "主页上社区部分的图像", + "community_image_label": "社区横幅", + "search_group_label": "搜索设置", + "instant_search_label": "即时搜索", + "instant_search_description": "显示搜索的推荐文章", + "scoped_knowledge_base_search_label": "知识库中有范围限制的搜索", + "scoped_knowledge_base_search_description": "搜索结果限制在用户所在的类别内", + "scoped_community_search_label": "社区中有范围限制的搜索", + "scoped_community_search_description": "搜索结果限制在用户所在的主题内", + "home_page_group_label": "主页页面元素", + "recent_activity_label": "最近的活动", + "recent_activity_description": "显示主页最近的活动", + "article_page_group_label": "文章页面元素", + "articles_in_section_label": "组别中的文章", + "articles_in_section_description": "显示组别中的文章侧栏", + "article_author_label": "作者", + "article_author_description": "显示作者图像和姓名", + "article_comments_label": "评论", + "article_comments_description": "显示文章的评论", + "follow_article_label": "关注", + "follow_article_description": "用户可关注特定的文章", + "recently_viewed_articles_label": "最近查看的", + "recently_viewed_articles_description": "显示最近查看的文章", + "related_articles_label": "相关文章", + "related_articles_description": "显示相关文章", + "article_sharing_label": "社交分享", + "article_sharing_description": "显示文章的社交媒体分享", + "section_page_group_label": "组别页面元素", + "follow_section_label": "关注", + "follow_section_description": "用户可关注特定的组别", + "community_post_group_label": "社区帖子元素", + "follow_post_label": "关注", + "follow_post_description": "用户可关注特定的帖子", + "post_sharing_label": "社交分享", + "post_sharing_description": "在帖子显示社交媒体分享功能", + "community_topic_group_label": "社区主题元素", + "follow_topic_label": "关注", + "follow_topic_description": "用户可关注特定的主题", + "show_brand_name_label": "显示帮助中心名称", + "show_brand_name_description": "在徽标旁显示帮助中心名称" +} \ No newline at end of file diff --git a/theme/Algolia-search/translations/zh-tw.json b/theme/Algolia-search/translations/zh-tw.json new file mode 100644 index 0000000..3b3c159 --- /dev/null +++ b/theme/Algolia-search/translations/zh-tw.json @@ -0,0 +1,70 @@ +{ + "colors_group_label": "色彩", + "brand_color_description": "主導覽元素的品牌色彩", + "brand_color_label": "品牌色彩", + "brand_text_color_description": "暫留與作用中狀態的品牌色彩", + "brand_text_color_label": "品牌文字色彩", + "text_color_description": "主體與標題元素文字色彩", + "text_color_label": "文字色彩", + "link_color_description": "連結元素文字色彩", + "link_color_label": "連結色彩", + "visited_link_color_description": "已造訪連結元素文字色彩", + "visited_link_color_label": "已造訪連結色彩", + "background_color_description": "客服中心背景色彩", + "background_color_label": "背景色彩", + "fonts_group_label": "字型", + "heading_font_description": "標題字型", + "heading_font_label": "標題字型", + "text_font_description": "主體文字字型", + "text_font_label": "文字字型", + "brand_group_label": "品牌", + "logo_description": "公司標誌", + "logo_label": "標誌", + "favicon_description": "您的瀏覽器網址列中顯示的圖示", + "favicon_label": "網站圖示", + "images_group_label": "影像", + "homepage_background_image_description": "主頁上的網頁首圖", + "homepage_background_image_label": "主頁網頁首圖", + "community_background_image_description": "社區主題頁面的網頁首圖", + "community_background_image_label": "社區網頁首圖", + "community_image_description": "主頁上的社區部分影像", + "community_image_label": "社區橫幅", + "search_group_label": "搜尋設定值", + "instant_search_label": "即時搜尋", + "instant_search_description": "顯示搜尋推薦文章", + "scoped_knowledge_base_search_label": "知識庫內的限定範圍搜尋", + "scoped_knowledge_base_search_description": "搜尋結果限於使用者所在類別", + "scoped_community_search_label": "社區內的限定範圍搜尋", + "scoped_community_search_description": "搜尋結果限於使用者所在主題", + "home_page_group_label": "主頁元素", + "recent_activity_label": "近期的活動", + "recent_activity_description": "顯示主頁近期的活動", + "article_page_group_label": "文章頁面元素", + "articles_in_section_label": "段落中的文章", + "articles_in_section_description": "顯示段落中的文章側欄", + "article_author_label": "作者", + "article_author_description": "顯示作者影像與姓名", + "article_comments_label": "評論", + "article_comments_description": "顯示文章評論", + "follow_article_label": "追蹤", + "follow_article_description": "使用者可追蹤指定文章", + "recently_viewed_articles_label": "最近檢視", + "recently_viewed_articles_description": "顯示最近檢視的文章", + "related_articles_label": "相關文章", + "related_articles_description": "顯示相關文章", + "article_sharing_label": "社群分享", + "article_sharing_description": "顯示文章社群媒體分享", + "section_page_group_label": "段落頁面元素", + "follow_section_label": "追蹤", + "follow_section_description": "使用者可追蹤指定段落", + "community_post_group_label": "社區貼文元素", + "follow_post_label": "追蹤", + "follow_post_description": "使用者可追蹤指定貼文", + "post_sharing_label": "社群分享", + "post_sharing_description": "在貼文顯示社群媒體分享功能", + "community_topic_group_label": "社區主題元素", + "follow_topic_label": "追蹤", + "follow_topic_description": "使用者可追蹤指定主題", + "show_brand_name_label": "顯示客服中心名稱", + "show_brand_name_description": "在標誌的旁邊顯示客服中心名稱" +} \ No newline at end of file