Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* @toast-ui/editor : i18n
* @version 3.2.0 | Fri Aug 05 2022
* @author NHN Cloud FE Development Lab
* @license MIT
*/
/**
* @fileoverview Extend the target object from other objects.
* @author NHN FE Development Lab
*/
/**
* @module object
*/
/**
* Extend the target object from other objects.
* @param {object} target - Object that will be extended
* @param {...object} objects - Objects as sources
* @returns {object} Extended object
* @memberof module:object
*/
function extend(target, objects) { // eslint-disable-line no-unused-vars
var hasOwnProp = Object.prototype.hasOwnProperty;
var source, prop, i, len;
for (i = 1, len = arguments.length; i < len; i += 1) {
source = arguments[i];
for (prop in source) {
if (hasOwnProp.call(source, prop)) {
target[prop] = source[prop];
}
}
}
return target;
}
var extend_1 = extend;
/**
* @fileoverview Check whether the given variable is an instance of Array or not.
* @author NHN FE Development Lab
*/
/**
* Check whether the given variable is an instance of Array or not.
* If the given variable is an instance of Array, return true.
* @param {*} obj - Target for checking
* @returns {boolean} Is array instance?
* @memberof module:type
*/
function isArray$1(obj) {
return obj instanceof Array;
}
var isArray_1 = isArray$1;
/* eslint-disable complexity */
var isArray = isArray_1;
/**
* @module array
*/
/**
* Returns the first index at which a given element can be found in the array
* from start index(default 0), or -1 if it is not present.
* It compares searchElement to elements of the Array using strict equality
* (the same method used by the ===, or triple-equals, operator).
* @param {*} searchElement Element to locate in the array
* @param {Array} array Array that will be traversed.
* @param {number} startIndex Start index in array for searching (default 0)
* @returns {number} the First index at which a given element, or -1 if it is not present
* @memberof module:array
* @example
* // ES6
* import inArray from 'tui-code-snippet/array/inArray';
*
* // CommonJS
* const inArray = require('tui-code-snippet/array/inArray');
*
* const arr = ['one', 'two', 'three', 'four'];
* const idx1 = inArray('one', arr, 3); // -1
* const idx2 = inArray('one', arr); // 0
*/
function inArray(searchElement, array, startIndex) {
var i;
var length;
startIndex = startIndex || 0;
if (!isArray(array)) {
return -1;
}
if (Array.prototype.indexOf) {
return Array.prototype.indexOf.call(array, searchElement, startIndex);
}
length = array.length;
for (i = startIndex; startIndex >= 0 && i < length; i += 1) {
if (array[i] === searchElement) {
return i;
}
}
return -1;
}
var inArray_1 = inArray;
/**
* @class
* @ignore
* @classdesc ES6 Map
*/
var Map = /** @class */ (function () {
function Map() {
this.keys = [];
this.values = [];
}
Map.prototype.getKeyIndex = function (key) {
return inArray_1(key, this.keys);
};
Map.prototype.get = function (key) {
return this.values[this.getKeyIndex(key)];
};
Map.prototype.set = function (key, value) {
var keyIndex = this.getKeyIndex(key);
if (keyIndex > -1) {
this.values[keyIndex] = value;
}
else {
this.keys.push(key);
this.values.push(value);
}
return this;
};
Map.prototype.has = function (key) {
return this.getKeyIndex(key) > -1;
};
Map.prototype.delete = function (key) {
var keyIndex = this.getKeyIndex(key);
if (keyIndex > -1) {
this.keys.splice(keyIndex, 1);
this.values.splice(keyIndex, 1);
return true;
}
return false;
};
Map.prototype.forEach = function (callback, thisArg) {
var _this = this;
if (thisArg === void 0) { thisArg = this; }
this.values.forEach(function (value, index) {
if (value && _this.keys[index]) {
callback.call(thisArg, value, _this.keys[index], _this);
}
});
};
Map.prototype.clear = function () {
this.keys = [];
this.values = [];
};
return Map;
}());
/**
* @fileoverview Implements i18n
* @author NHN Cloud FE Development Lab
*/
var DEFAULT_CODE = 'en-US';
/**
* Class I18n
* @ignore
*/
var I18n = /** @class */ (function () {
function I18n() {
this.code = DEFAULT_CODE;
this.langs = new Map();
}
I18n.prototype.setCode = function (code) {
this.code = code || DEFAULT_CODE;
};
/**
* Set language set
* @param {string|string[]} codes locale code
* @param {object} data language set
*/
I18n.prototype.setLanguage = function (codes, data) {
var _this = this;
codes = [].concat(codes);
codes.forEach(function (code) {
if (!_this.langs.has(code)) {
_this.langs.set(code, data);
}
else {
var langData = _this.langs.get(code);
_this.langs.set(code, extend_1(langData, data));
}
});
};
I18n.prototype.get = function (key, code) {
if (!code) {
code = this.code;
}
var langSet = this.langs.get(code);
if (!langSet) {
langSet = this.langs.get(DEFAULT_CODE);
}
var text = langSet[key];
if (!text) {
throw new Error("There is no text key \"" + key + "\" in " + code);
}
return text;
};
return I18n;
}());
var i18n = new I18n();
export { I18n, i18n as default };