@draggable/i18n 1.0.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/i18n.cjs.min.js +3 -3
- package/dist/i18n.cjs.min.js.gz +0 -0
- package/dist/i18n.es.min.js +93 -50
- package/dist/i18n.es.min.js.gz +0 -0
- package/dist/i18n.iife.min.js +3 -3
- package/dist/i18n.iife.min.js.gz +0 -0
- package/dist/i18n.umd.min.js +3 -3
- package/dist/i18n.umd.min.js.gz +0 -0
- package/package.json +3 -2
package/dist/i18n.cjs.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
3
|
@draggable/i18n - https://github.com/Draggable/i18n
|
|
4
|
-
Version: 1.0.
|
|
4
|
+
Version: 1.0.8
|
|
5
5
|
Author: Draggable https://draggable.io
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5janMubWluLmpzIiwic291cmNlcyI6WyIuLi9zcmMvbWkxOG4uanMiLCIuLi9zcmMvZmV0Y2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hEYXRhIH0gZnJvbSAnLi9mZXRjaC5qcydcblxuY29uc3QgREVGQVVMVF9DT05GSUcgPSB7XG4gIGV4dGVuc2lvbjogJy5sYW5nJyxcbiAgLy8gbG9jYWwgb3IgcmVtb3RlIGRpcmVjdG9yeSBjb250YWluaW5nIGxhbmd1YWdlIGZpbGVzXG4gIGxvY2F0aW9uOiAnYXNzZXRzL2xhbmcvJyxcbiAgLy8gbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcywgaGFuZHkgZm9yIHBvcHVsYXRpbmcgc2VsZWN0b3IuXG4gIGxhbmdzOiBbJ2VuLVVTJ10sXG4gIGxvY2FsZTogJ2VuLVVTJywgLy8gaW5pdCB3aXRoIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VcbiAgb3ZlcnJpZGU6IHt9LFxufVxuXG4vKipcbiAqIE1haW4gaTE4biBjbGFzc1xuICogQGNsYXNzIEkxOE5cbiAqIEBjbGFzc2Rlc2MgbWV0aG9kcyBhbmQgZGF0YSBzdG9yZSBmb3IgaTE4blxuICovXG5leHBvcnQgY2xhc3MgSTE4TiB7XG4gIC8qKlxuICAgKiBQcm9jZXNzIG9wdGlvbnMgYW5kIHN0YXJ0IHRoZSBtb2R1bGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSBERUZBVUxUX0NPTkZJRykge1xuICAgIHRoaXMubGFuZ3MgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgdGhpcy5sb2FkZWQgPSBbXVxuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyhvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIHBhcnNlIGFuZCBmb3JtYXQgY29uZmlnXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBwcm9jZXNzQ29uZmlnKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGxvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9ID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4ub3B0aW9ucyB9XG4gICAgY29uc3QgcGFyc2VkTG9jYXRpb24gPSBsb2NhdGlvbi5yZXBsYWNlKC9cXC8/JC8sICcvJylcbiAgICB0aGlzLmNvbmZpZyA9IHsgbG9jYXRpb246IHBhcnNlZExvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9XG4gICAgY29uc3QgeyBvdmVycmlkZSwgcHJlbG9hZGVkID0ge30gfSA9IHRoaXMuY29uZmlnXG4gICAgY29uc3QgYWxsTGFuZ3MgPSBPYmplY3QuZW50cmllcyh0aGlzLmxhbmdzKS5jb25jYXQoT2JqZWN0LmVudHJpZXMob3ZlcnJpZGUgfHwgcHJlbG9hZGVkKSlcbiAgICB0aGlzLmxhbmdzID0gYWxsTGFuZ3MucmVkdWNlKChhY2MsIFtsb2NhbGUsIGxhbmddKSA9PiB7XG4gICAgICBhY2NbbG9jYWxlXSA9IHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwge30pXG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLmNvbmZpZy5sb2NhbGUgfHwgdGhpcy5jb25maWcubGFuZ3NbMF1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGxhbmd1YWdlIGFuZCBzZXQgZGVmYXVsdFxuICAgKiBAcGFyYW0gIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgIHJlc29sdmVzIGxhbmd1YWdlXG4gICAqL1xuICBpbml0KG9wdGlvbnMpIHtcbiAgICB0aGlzLnByb2Nlc3NDb25maWcoeyAuLi50aGlzLmNvbmZpZywgLi4ub3B0aW9ucyB9KVxuICAgIHJldHVybiB0aGlzLnNldEN1cnJlbnQodGhpcy5sb2NhbGUpXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGxhbmd1YWdlIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGxhbmdcbiAgICovXG4gIGFkZExhbmd1YWdlKGxvY2FsZSwgbGFuZyA9IHt9KSB7XG4gICAgbGFuZyA9IHR5cGVvZiBsYW5nID09PSAnc3RyaW5nJyA/IEkxOE4ucHJvY2Vzc0ZpbGUobGFuZykgOiBsYW5nXG4gICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZylcbiAgICB0aGlzLmNvbmZpZy5sYW5ncy5wdXNoKCdsb2NhbGUnKVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBhIHN0cmluZyBmcm9tIGEgbG9hZGVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIC0gdGhlIGtleSBmb3IgdGhlIHN0cmluZyB3ZSBhcmUgdHJ5aW5nIHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlIC0gbG9jYWxlIHRvIGNoZWNrIGZvciB2YWx1ZVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGxhbmd1YWdlIHN0cmluZyBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldFZhbHVlKGtleSwgbG9jYWxlID0gdGhpcy5sb2NhbGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubGFuZ3NbbG9jYWxlXT8uW2tleV1cbiAgICByZXR1cm4gdmFsdWUgfHwgdGhpcy5nZXRGYWxsYmFja1ZhbHVlKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGEgbGFuZ3VhZ2UgdGhhdCBoYXMgZGVzaXJlZCBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSB2YWx1ZSBrZXlcbiAgICogQHJldHVybiB7U3RyaW5nfSBmb3VuZCB2YWx1ZSBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldEZhbGxiYWNrVmFsdWUoa2V5KSB7XG4gICAgY29uc3QgZmFsbGJhY2tMYW5nID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxhbmdzKS5maW5kKGxhbmcgPT4gbGFuZ1trZXldKVxuICAgIHJldHVybiBmYWxsYmFja0xhbmc/LltrZXldXG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIHZhcmlhYmxlIHN5bnRheFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0clxuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICBlc2NhcGVkIHN0clxuICAgKi9cbiAgbWFrZVNhZmUoc3RyKSB7XG4gICAgY29uc3QgbWFwT2JqID0ge1xuICAgICAgJ3snOiAnXFxcXHsnLFxuICAgICAgJ30nOiAnXFxcXH0nLFxuICAgICAgJ3wnOiAnXFxcXHwnLFxuICAgIH1cblxuICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9be318XS9nLCBtYXRjaGVkID0+IG1hcE9ialttYXRjaGVkXSlcblxuICAgIHJldHVybiBuZXcgUmVnRXhwKHN0ciwgJ2cnKVxuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyaWx5IHB1dCBhIHN0cmluZyBpbnRvIHRoZSBjdXJyZW50bHkgbG9hZGVkIGxhbmd1YWdlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyaW5nXG4gICAqIEByZXR1cm4ge1N0cmluZ30gc3RyaW5nIGluIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICovXG4gIHB1dChrZXksIHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudFtrZXldID0gc3RyaW5nXG5cbiAgICByZXR1cm4gc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYXJndW1lbnRzIGZvciB0aGUgcmVxdWVzdGVkIHN0cmluZ1xuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgdGhlIGtleSB3ZSB1c2UgdG8gbG9va3VwIG91ciB0cmFuc2xhdGlvblxuICAgKiBAcGFyYW0gIHttdWx0aX0gIGFyZ3MgIHN0cmluZywgbnVtYmVyIG9yIG9iamVjdCBjb250YWluaW5nIG91ciBhcmd1bWVudHNcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgIHVwZGF0ZWQgc3RyaW5nIHRyYW5zbGF0aW9uXG4gICAqL1xuICBnZXQoa2V5LCBhcmdzKSB7XG4gICAgY29uc3QgX3RoaXMgPSB0aGlzXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShrZXkpXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW5zID0gdmFsdWUubWF0Y2goL1xce1tefV0rP1xcfS9nKVxuXG4gICAgaWYgKGFyZ3MgJiYgdG9rZW5zKSB7XG4gICAgICBpZiAoJ29iamVjdCcgPT09IHR5cGVvZiBhcmdzKSB7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5zKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gdG9rZW4uc3Vic3RyaW5nKDEsIHRva2VuLmxlbmd0aCAtIDEpXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKF90aGlzLm1ha2VTYWZlKHRva2VuKSwgYXJnc1trZXldIHx8ICcnKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xce1tefV0rP1xcfS9nLCBhcmdzKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFByb2Nlc3MgYSBsYW5ndWFnZSBmaWxlIGZyb20gcmF3IHRleHRcbiAgICogQHBhcmFtICB7U3RyaW5nfSByZXNwb25zZVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IHByb2Nlc3NlZCBsYW5ndWFnZVxuICAgKi9cbiAgc3RhdGljIHByb2Nlc3NGaWxlKHJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIEkxOE4uZnJvbUZpbGUocmVzcG9uc2UucmVwbGFjZSgvXFxuXFxuL2csICdcXG4nKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBUdXJuIHJhdyB0ZXh0IGZyb20gdGhlIGxhbmd1YWdlIGZpbGVzIGludG8gZmFuY3kgSlNPTlxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHJhd1RleHRcbiAgICogQHJldHVybiB7T2JqZWN0fSBjb252ZXJ0ZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlKHJhd1RleHQpIHtcbiAgICBjb25zdCBsaW5lcyA9IHJhd1RleHQuc3BsaXQoJ1xcbicpXG4gICAgY29uc3QgbGFuZyA9IHt9XG5cbiAgICBmb3IgKGxldCBtYXRjaGVzLCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCByZWdleCA9IC9eKC4rPykgKj89ICo/KFteXFxuXSspL1xuICAgICAgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMobGluZXNbaV0pXG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICBsYW5nW21hdGNoZXNbMV1dID0gbWF0Y2hlc1syXS5yZXBsYWNlKC8oXlxccyt8XFxzKyQpL2csICcnKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsYW5nXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhIHJlbW90ZWx5IHN0b3JlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSAge0Jvb2xlYW59IHVzZUNhY2hlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgIHJlc29sdmVzIHJlc3BvbnNlXG4gICAqL1xuICBsb2FkTGFuZyhsb2NhbGUsIHVzZUNhY2hlID0gdHJ1ZSkge1xuICAgIGNvbnN0IF90aGlzID0gdGhpc1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBpZiAoX3RoaXMubG9hZGVkLmluZGV4T2YobG9jYWxlKSAhPT0gLTEgJiYgdXNlQ2FjaGUpIHtcbiAgICAgICAgX3RoaXMuYXBwbHlMYW5ndWFnZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgICByZXR1cm4gcmVzb2x2ZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbGFuZ0ZpbGUgPSBbX3RoaXMuY29uZmlnLmxvY2F0aW9uLCBsb2NhbGUsIF90aGlzLmNvbmZpZy5leHRlbnNpb25dLmpvaW4oJycpXG4gICAgICAgIHJldHVybiBmZXRjaERhdGEobGFuZ0ZpbGUpXG4gICAgICAgICAgLnRoZW4obGFuZyA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRGaWxlID0gSTE4Ti5wcm9jZXNzRmlsZShsYW5nKVxuICAgICAgICAgICAgX3RoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIHByb2Nlc3NlZEZpbGUpXG4gICAgICAgICAgICBfdGhpcy5sb2FkZWQucHVzaChsb2NhbGUpXG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICAgIGNvbnN0IGxhbmcgPSBfdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSlcbiAgICAgICAgICAgIHJlc29sdmUobGFuZylcbiAgICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogYXBwbGllcyBvdmVycmlkZXMgZnJvbSBjb25maWdcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gbGFuZ1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IG92ZXJyaWRlbiBsYW5ndWFnZVxuICAgKi9cbiAgYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGNvbnN0IG92ZXJyaWRlID0gdGhpcy5jb25maWcub3ZlcnJpZGVbbG9jYWxlXSB8fCB7fVxuICAgIGNvbnN0IGV4aXN0aW5nTGFuZyA9IHRoaXMubGFuZ3NbbG9jYWxlXSB8fCB7fVxuICAgIHRoaXMubGFuZ3NbbG9jYWxlXSA9IHsgLi4uZXhpc3RpbmdMYW5nLCAuLi5sYW5nLCAuLi5vdmVycmlkZSB9XG4gICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiBjdXJyZW50bHkgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IGFsbCBjb25maWd1cmVkIGxhbmd1YWdlc1xuICAgKi9cbiAgZ2V0IGdldExhbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5sYW5nc1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHQgdG8gc2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIHRvIHRoZSBsb2NhbCBwcm92aWRlZFxuICAgKiBAcGFyYW0ge1N0cmluZ30gICBsb2NhbGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gbGFuZ3VhZ2VcbiAgICovXG4gIGFzeW5jIHNldEN1cnJlbnQobG9jYWxlID0gJ2VuLVVTJykge1xuICAgIGF3YWl0IHRoaXMubG9hZExhbmcobG9jYWxlKVxuICAgIHRoaXMubG9jYWxlID0gbG9jYWxlXG4gICAgdGhpcy5jdXJyZW50ID0gdGhpcy5sYW5nc1tsb2NhbGVdXG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IEkxOE4oKVxuIiwiY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHsgbWV0aG9kOiAnR0VUJywgYm9keTogJycgfSlcbi8qKlxuICogRmV0Y2hlcyBhIHJlc291cmNlIGZyb20gdGhlIG5ldHdvcmsuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZmV0Y2guXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucz17fV0gLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucy5oZWFkZXJzXSAtIEhlYWRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZmV0Y2hPcHRpb25zLm1ldGhvZF0gLSBUaGUgSFRUUCBtZXRob2QgdG8gdXNlIChlLmcuLCAnR0VUJywgJ1BPU1QnKS5cbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gW2ZldGNoT3B0aW9ucy5ib2R5XSAtIFRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybiB7UHJvbWlzZTxPYmplY3Q+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn0gcmV0dXJuLm9rIC0gSW5kaWNhdGVzIGlmIHRoZSByZXNwb25zZSBzdGF0dXMgaXMgaW4gdGhlIHJhbmdlIDIwMC0yOTkuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IHJldHVybi5zdGF0dXMgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHJldHVybi5zdGF0dXNUZXh0IC0gVGhlIEhUVFAgc3RhdHVzIG1lc3NhZ2Ugb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7TWFwPHN0cmluZywgc3RyaW5nPn0gcmV0dXJuLmhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHJldHVybi5ib2R5IC0gVGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlIGFzIGEgQnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxCdWZmZXI+fSByZXR1cm4uYXJyYXlCdWZmZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IGFzIGFuIEFycmF5QnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxPYmplY3Q+fSByZXR1cm4uanNvbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgcGFyc2VkIGFzIEpTT04uXG4gKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlciA9IHVybC5lbmRzV2l0aCgnLmxhbmcnKSA/ICd0ZXh0JyA6ICdqc29uJ1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZVtoYW5kbGVyXSgpXG4gICAgcmV0dXJuIGRhdGFcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBoYXMgYmVlbiBhIHByb2JsZW0gd2l0aCB5b3VyIGZldGNoIG9wZXJhdGlvbjonLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iXSwibmFtZXMiOlsiREVGQVVMVF9DT05GSUciLCJleHRlbnNpb24iLCJsb2NhdGlvbiIsImxhbmdzIiwibG9jYWxlIiwib3ZlcnJpZGUiLCJJMThOIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwidGhpcyIsIk9iamVjdCIsImNyZWF0ZSIsImxvYWRlZCIsInByb2Nlc3NDb25maWciLCJyZXN0T3B0aW9ucyIsInBhcnNlZExvY2F0aW9uIiwicmVwbGFjZSIsImNvbmZpZyIsInByZWxvYWRlZCIsImFsbExhbmdzIiwiZW50cmllcyIsImNvbmNhdCIsInJlZHVjZSIsImFjYyIsImxhbmciLCJhcHBseUxhbmd1YWdlIiwiaW5pdCIsInNldEN1cnJlbnQiLCJhZGRMYW5ndWFnZSIsInByb2Nlc3NGaWxlIiwicHVzaCIsImdldFZhbHVlIiwia2V5IiwiX2EiLCJnZXRGYWxsYmFja1ZhbHVlIiwiZmFsbGJhY2tMYW5nIiwidmFsdWVzIiwiZmluZCIsIm1ha2VTYWZlIiwic3RyIiwibWFwT2JqIiwibWF0Y2hlZCIsIlJlZ0V4cCIsInB1dCIsInN0cmluZyIsImN1cnJlbnQiLCJnZXQiLCJhcmdzIiwiX3RoaXMiLCJ2YWx1ZSIsInRva2VucyIsIm1hdGNoIiwidG9rZW4iLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJyZXNwb25zZSIsImZyb21GaWxlIiwicmF3VGV4dCIsImxpbmVzIiwic3BsaXQiLCJtYXRjaGVzIiwiaSIsImV4ZWMiLCJsb2FkTGFuZyIsInVzZUNhY2hlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJpbmRleE9mIiwiYXN5bmMiLCJ1cmwiLCJmZXRjaCIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJoYW5kbGVyIiwiZW5kc1dpdGgiLCJlcnJvciIsImZldGNoRGF0YSIsImpvaW4iLCJ0aGVuIiwicHJvY2Vzc2VkRmlsZSIsImNhdGNoIiwiZXJyIiwiZXhpc3RpbmdMYW5nIiwiZ2V0TGFuZ3MiLCJtaTE4biJdLCJtYXBwaW5ncyI6IjRHQUVBLE1BQU1BLEVBQWlCLENBQ3JCQyxVQUFXLFFBRVhDLFNBQVUsZUFFVkMsTUFBTyxDQUFDLFNBQ1JDLE9BQVEsUUFDUkMsU0FBVSxDQUFFLEdBUVAsTUFBTUMsRUFLWCxXQUFBQyxDQUFZQyxFQUFVUixHQUNmUyxLQUFBTixNQUFlTyxPQUFBQyxPQUFPLE1BQzNCRixLQUFLRyxPQUFTLEdBQ2RILEtBQUtJLGNBQWNMLEVBQ3BCLENBTUQsYUFBQUssQ0FBY0wsR0FDTixNQUFBTixTQUFFQSxLQUFhWSxHQUFnQixJQUFLZCxLQUFtQlEsR0FDdkRPLEVBQWlCYixFQUFTYyxRQUFRLE9BQVEsS0FDaERQLEtBQUtRLE9BQVMsQ0FBRWYsU0FBVWEsS0FBbUJELEdBQzdDLE1BQU1ULFNBQUVBLEVBQVVhLFVBQUFBLEVBQVksQ0FBQSxHQUFPVCxLQUFLUSxPQUNwQ0UsRUFBV1QsT0FBT1UsUUFBUVgsS0FBS04sT0FBT2tCLE9BQU9YLE9BQU9VLFFBQVFmLEdBQVlhLElBQ3pFVCxLQUFBTixNQUFRZ0IsRUFBU0csUUFBTyxDQUFDQyxHQUFNbkIsRUFBUW9CLE1BQzFDRCxFQUFJbkIsR0FBVUssS0FBS2dCLGNBQWNyQixFQUFRb0IsR0FDbENELElBQ04sSUFDSGQsS0FBS0wsT0FBU0ssS0FBS1EsT0FBT2IsUUFBVUss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
|
|
8
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}};let e=null;class n{constructor(e=t){this.langs=Object.create(null),this.loaded=[],this.processConfig(e)}processConfig(e){const{location:n,...s}={...t,...e},a=n.endsWith("/")?n:`${n}/`;this.config={location:a,...s};const{preloaded:i={},override:r={}}=this.config,l=new Set([...Object.keys(i),...Object.keys(r)]);for(const t of l){const e={...i[t]||{},...r[t]||{}};this.applyLanguage(t,e)}this.locale=this.config.locale||this.config.langs[0]}init(t){return this.processConfig({...this.config,...t}),this.setCurrent(this.locale)}addLanguage(t,e={}){e="string"==typeof e?n.processFile(e):e,this.applyLanguage(t,e),this.loaded.push(t),this.config.langs.push(t)}getValue(t,e=this.locale){var n;return(null==(n=this.langs[e])?void 0:n[t])||this.getFallbackValue(t)}getFallbackValue(t){const e=Object.values(this.langs).find((e=>e[t]));return null==e?void 0:e[t]}makeSafe(t){const e={"{":String.raw`\{`,"}":String.raw`\}`,"|":String.raw`\|`},n=t.replaceAll(/[{}|]/g,(t=>e[t]));return new RegExp(n,"g")}put(t,e){return this.current[t]=e,e}get(t,e){let n=this.getValue(t);if(!n)return;if(!e)return n;const s=n.match(/\{[^}]+?\}/g);if(!s)return n;if("object"==typeof e)for(const a of s){const t=a.slice(1,-1);n=n.replace(this.makeSafe(a),e[t]??"")}else n=n.replaceAll(/\{[^}]+?\}/g,e);return n}static processFile(t){return s.fromFile(t.replaceAll("\n\n","\n"))}static fromFile(t){const e=t.split("\n"),n={};for(let s,a=0;a<e.length;a++){s=/^(.+?) *?= *?([^\n]+)/.exec(e[a]),s&&(n[s[1]]=s[2].trim())}return n}static getInstance(t){return e||(e=new n(t)),e}static resetInstance(){e=null}async loadLang(t,e=!0){if(this.loaded.includes(t)&&e)return this.langs[t];const s=`${this.config.location}${t}${this.config.extension}`;try{const e=await async function(t){try{const e=await fetch(t);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const n=t.endsWith(".lang")?"text":"json";return await e[n]()}catch(e){throw e}}(s),a=n.processFile(e);return this.applyLanguage(t,a),this.langs[t]}catch(a){return this.applyLanguage(t)}}applyLanguage(t,e={}){const n=this.config.override[t]||{},s=this.langs[t]||{};return this.langs[t]={...s,...e,...n},this.loaded.push(t),this.langs[t]}get getLangs(){return this.config.langs}async setCurrent(t="en-US"){return this.loaded.includes(t)||await this.loadLang(t),this.locale=t,this.current=this.langs[t],this.current}}const s=new Proxy(n,{apply:(t,e,n)=>t.getInstance(...n),construct:(t,e)=>new t(...e),get:(t,e)=>t[e]}),a=s.getInstance();exports.I18N=s,exports.default=a;
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5janMubWluLmpzIiwic291cmNlcyI6WyIuLi9zcmMvbWkxOG4uanMiLCIuLi9zcmMvZmV0Y2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hEYXRhIH0gZnJvbSAnLi9mZXRjaC5qcydcblxuY29uc3QgREVGQVVMVF9DT05GSUcgPSB7XG4gIGV4dGVuc2lvbjogJy5sYW5nJyxcbiAgLy8gbG9jYWwgb3IgcmVtb3RlIGRpcmVjdG9yeSBjb250YWluaW5nIGxhbmd1YWdlIGZpbGVzXG4gIGxvY2F0aW9uOiAnYXNzZXRzL2xhbmcvJyxcbiAgLy8gbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcywgaGFuZHkgZm9yIHBvcHVsYXRpbmcgc2VsZWN0b3IuXG4gIGxhbmdzOiBbJ2VuLVVTJ10sXG4gIGxvY2FsZTogJ2VuLVVTJywgLy8gaW5pdCB3aXRoIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VcbiAgb3ZlcnJpZGU6IHt9LFxufVxuXG4vLyBTaW5nbGV0b24gaW5zdGFuY2UgaG9sZGVyXG5sZXQgaW5zdGFuY2UgPSBudWxsXG5cbi8qKlxuICogTWFpbiBpMThuIGNsYXNzXG4gKiBAY2xhc3MgSTE4TkJhc2VcbiAqIEBjbGFzc2Rlc2MgbWV0aG9kcyBhbmQgZGF0YSBzdG9yZSBmb3IgaTE4blxuICovXG5jbGFzcyBJMThOQmFzZSB7XG4gIC8qKlxuICAgKiBQcm9jZXNzIG9wdGlvbnMgYW5kIHN0YXJ0IHRoZSBtb2R1bGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSBERUZBVUxUX0NPTkZJRykge1xuICAgIHRoaXMubGFuZ3MgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgdGhpcy5sb2FkZWQgPSBbXVxuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyhvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIHBhcnNlIGFuZCBmb3JtYXQgY29uZmlnXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBwcm9jZXNzQ29uZmlnKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGxvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9ID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4ub3B0aW9ucyB9XG4gICAgLy8gRW5zdXJlIGxvY2F0aW9uIGVuZHMgd2l0aCBhIHNsYXNoXG4gICAgY29uc3QgcGFyc2VkTG9jYXRpb24gPSBsb2NhdGlvbi5lbmRzV2l0aCgnLycpID8gbG9jYXRpb24gOiBgJHtsb2NhdGlvbn0vYFxuICAgIHRoaXMuY29uZmlnID0geyBsb2NhdGlvbjogcGFyc2VkTG9jYXRpb24sIC4uLnJlc3RPcHRpb25zIH1cblxuICAgIGNvbnN0IHsgcHJlbG9hZGVkID0ge30sIG92ZXJyaWRlID0ge30gfSA9IHRoaXMuY29uZmlnXG5cbiAgICAvLyBNZXJnZSBsb2NhbGVzIGZyb20gYm90aCBwcmVsb2FkZWQgYW5kIG92ZXJyaWRlXG4gICAgLy8gVGhpcyBzdXBwb3J0cyBsZWdhY3kgdXNhZ2Ugd2hlcmUgb3ZlcnJpZGUgZGVmaW5lZCBlbnRpcmUgbGFuZ3VhZ2VzXG4gICAgY29uc3QgYWxsTG9jYWxlcyA9IG5ldyBTZXQoWy4uLk9iamVjdC5rZXlzKHByZWxvYWRlZCksIC4uLk9iamVjdC5rZXlzKG92ZXJyaWRlKV0pXG5cbiAgICAvLyBBcHBseSBsYW5ndWFnZXMgZnJvbSBib3RoIHByZWxvYWRlZCBhbmQgb3ZlcnJpZGVcbiAgICAvLyBhcHBseUxhbmd1YWdlIHdpbGwgbWVyZ2UgdGhlbSBwcm9wZXJseSAoZXhpc3RpbmcgKyBwcmVsb2FkZWQgKyBvdmVycmlkZSlcbiAgICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBhbGxMb2NhbGVzKSB7XG4gICAgICBjb25zdCBwcmVsb2FkZWRMYW5nID0gcHJlbG9hZGVkW2xvY2FsZV0gfHwge31cbiAgICAgIGNvbnN0IG92ZXJyaWRlTGFuZyA9IG92ZXJyaWRlW2xvY2FsZV0gfHwge31cbiAgICAgIC8vIE1lcmdlIHByZWxvYWRlZCBhbmQgb3ZlcnJpZGUgZm9yIHRoaXMgbG9jYWxlXG4gICAgICBjb25zdCBtZXJnZWRMYW5nID0geyAuLi5wcmVsb2FkZWRMYW5nLCAuLi5vdmVycmlkZUxhbmcgfVxuICAgICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbWVyZ2VkTGFuZylcbiAgICB9XG5cbiAgICB0aGlzLmxvY2FsZSA9IHRoaXMuY29uZmlnLmxvY2FsZSB8fCB0aGlzLmNvbmZpZy5sYW5nc1swXVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgbGFuZ3VhZ2UgYW5kIHNldCBkZWZhdWx0XG4gICAqIEBwYXJhbSAge09iamVjdH0gb3B0aW9uc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgICAgICAgcmVzb2x2ZXMgbGFuZ3VhZ2VcbiAgICovXG4gIGluaXQob3B0aW9ucykge1xuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyh7IC4uLnRoaXMuY29uZmlnLCAuLi5vcHRpb25zIH0pXG4gICAgcmV0dXJuIHRoaXMuc2V0Q3VycmVudCh0aGlzLmxvY2FsZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbGFuZ3VhZ2UgdG8gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gbGFuZ1xuICAgKi9cbiAgYWRkTGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBsYW5nID0gdHlwZW9mIGxhbmcgPT09ICdzdHJpbmcnID8gSTE4TkJhc2UucHJvY2Vzc0ZpbGUobGFuZykgOiBsYW5nXG4gICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZylcbiAgICB0aGlzLmxvYWRlZC5wdXNoKGxvY2FsZSlcbiAgICB0aGlzLmNvbmZpZy5sYW5ncy5wdXNoKGxvY2FsZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgYSBzdHJpbmcgZnJvbSBhIGxvYWRlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICAtIHRoZSBrZXkgZm9yIHRoZSBzdHJpbmcgd2UgYXJlIHRyeWluZyB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZSAtIGxvY2FsZSB0byBjaGVjayBmb3IgdmFsdWVcbiAgICogQHJldHVybiB7U3RyaW5nfSBsYW5ndWFnZSBzdHJpbmcgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRWYWx1ZShrZXksIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmxhbmdzW2xvY2FsZV0/LltrZXldXG4gICAgcmV0dXJuIHZhbHVlIHx8IHRoaXMuZ2V0RmFsbGJhY2tWYWx1ZShrZXkpXG4gIH1cblxuICAvKipcbiAgICogRmluZCBhIGxhbmd1YWdlIHRoYXQgaGFzIGRlc2lyZWQga2V5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgdmFsdWUga2V5XG4gICAqIEByZXR1cm4ge1N0cmluZ30gZm91bmQgdmFsdWUgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRGYWxsYmFja1ZhbHVlKGtleSkge1xuICAgIGNvbnN0IGZhbGxiYWNrTGFuZyA9IE9iamVjdC52YWx1ZXModGhpcy5sYW5ncykuZmluZChsYW5nID0+IGxhbmdba2V5XSlcbiAgICByZXR1cm4gZmFsbGJhY2tMYW5nPy5ba2V5XVxuICB9XG5cbiAgLyoqXG4gICAqIEVzY2FwZSB2YXJpYWJsZSBzeW50YXhcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgZXNjYXBlZCBzdHJcbiAgICovXG4gIG1ha2VTYWZlKHN0cikge1xuICAgIGNvbnN0IG1hcE9iaiA9IHtcbiAgICAgICd7JzogU3RyaW5nLnJhd2BcXHtgLFxuICAgICAgJ30nOiBTdHJpbmcucmF3YFxcfWAsXG4gICAgICAnfCc6IFN0cmluZy5yYXdgXFx8YCxcbiAgICB9XG5cbiAgICBjb25zdCBlc2NhcGVkU3RyID0gc3RyLnJlcGxhY2VBbGwoL1t7fXxdL2csIG1hdGNoZWQgPT4gbWFwT2JqW21hdGNoZWRdKVxuXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoZXNjYXBlZFN0ciwgJ2cnKVxuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyaWx5IHB1dCBhIHN0cmluZyBpbnRvIHRoZSBjdXJyZW50bHkgbG9hZGVkIGxhbmd1YWdlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyaW5nXG4gICAqIEByZXR1cm4ge1N0cmluZ30gc3RyaW5nIGluIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICovXG4gIHB1dChrZXksIHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudFtrZXldID0gc3RyaW5nXG5cbiAgICByZXR1cm4gc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYXJndW1lbnRzIGZvciB0aGUgcmVxdWVzdGVkIHN0cmluZ1xuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgdGhlIGtleSB3ZSB1c2UgdG8gbG9va3VwIG91ciB0cmFuc2xhdGlvblxuICAgKiBAcGFyYW0gIHttdWx0aX0gIGFyZ3MgIHN0cmluZywgbnVtYmVyIG9yIG9iamVjdCBjb250YWluaW5nIG91ciBhcmd1bWVudHNcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgIHVwZGF0ZWQgc3RyaW5nIHRyYW5zbGF0aW9uXG4gICAqL1xuICBnZXQoa2V5LCBhcmdzKSB7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShrZXkpXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gTm8gcmVwbGFjZW1lbnQgbmVlZGVkIGlmIG5vIGFyZ3MgcHJvdmlkZWRcbiAgICBpZiAoIWFyZ3MpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIGNvbnN0IHRva2VucyA9IHZhbHVlLm1hdGNoKC9cXHtbXn1dKz9cXH0vZylcblxuICAgIC8vIE5vIHRva2VucyB0byByZXBsYWNlXG4gICAgaWYgKCF0b2tlbnMpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIC8vIE9iamVjdCBhcmdzOiByZXBsYWNlIGVhY2ggdG9rZW4gd2l0aCBjb3JyZXNwb25kaW5nIGtleVxuICAgIGlmICh0eXBlb2YgYXJncyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5zKSB7XG4gICAgICAgIGNvbnN0IHRva2VuS2V5ID0gdG9rZW4uc2xpY2UoMSwgLTEpXG4gICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSh0aGlzLm1ha2VTYWZlKHRva2VuKSwgYXJnc1t0b2tlbktleV0gPz8gJycpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFByaW1pdGl2ZSBhcmdzOiByZXBsYWNlIGFsbCB0b2tlbnMgd2l0aCBzYW1lIHZhbHVlXG4gICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2VBbGwoL1xce1tefV0rP1xcfS9nLCBhcmdzKVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFByb2Nlc3MgYSBsYW5ndWFnZSBmaWxlIGZyb20gcmF3IHRleHRcbiAgICogQHBhcmFtICB7U3RyaW5nfSByZXNwb25zZVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IHByb2Nlc3NlZCBsYW5ndWFnZVxuICAgKi9cbiAgc3RhdGljIHByb2Nlc3NGaWxlKHJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIEkxOE4uZnJvbUZpbGUocmVzcG9uc2UucmVwbGFjZUFsbCgnXFxuXFxuJywgJ1xcbicpKVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFR1cm4gcmF3IHRleHQgZnJvbSB0aGUgbGFuZ3VhZ2UgZmlsZXMgaW50byBmYW5jeSBKU09OXG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmF3VGV4dFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IGNvbnZlcnRlZCBsYW5ndWFnZSBmaWxlXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGUocmF3VGV4dCkge1xuICAgIGNvbnN0IGxpbmVzID0gcmF3VGV4dC5zcGxpdCgnXFxuJylcbiAgICBjb25zdCBsYW5nID0ge31cblxuICAgIGZvciAobGV0IG1hdGNoZXMsIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gL14oLis/KSAqPz0gKj8oW15cXG5dKykvXG4gICAgICBtYXRjaGVzID0gcmVnZXguZXhlYyhsaW5lc1tpXSlcbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIGxhbmdbbWF0Y2hlc1sxXV0gPSBtYXRjaGVzWzJdLnRyaW0oKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsYW5nXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHJldHVybiB7STE4TkJhc2V9IHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGdldEluc3RhbmNlKG9wdGlvbnMpIHtcbiAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICBpbnN0YW5jZSA9IG5ldyBJMThOQmFzZShvcHRpb25zKVxuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgc2luZ2xldG9uIGluc3RhbmNlICh1c2VmdWwgZm9yIHRlc3RpbmcpXG4gICAqL1xuICBzdGF0aWMgcmVzZXRJbnN0YW5jZSgpIHtcbiAgICBpbnN0YW5jZSA9IG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGEgcmVtb3RlbHkgc3RvcmVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtICB7Qm9vbGVhbn0gdXNlQ2FjaGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgcmVzb2x2ZXMgcmVzcG9uc2VcbiAgICovXG4gIGFzeW5jIGxvYWRMYW5nKGxvY2FsZSwgdXNlQ2FjaGUgPSB0cnVlKSB7XG4gICAgLy8gUmV0dXJuIGNhY2hlZCBsYW5ndWFnZSBpZiBhbHJlYWR5IGxvYWRlZFxuICAgIGlmICh0aGlzLmxvYWRlZC5pbmNsdWRlcyhsb2NhbGUpICYmIHVzZUNhY2hlKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYW5nc1tsb2NhbGVdXG4gICAgfVxuICAgIC8vIEZldGNoIGFuZCBwcm9jZXNzIGxhbmd1YWdlIGZpbGVcbiAgICBjb25zdCBsYW5nRmlsZSA9IGAke3RoaXMuY29uZmlnLmxvY2F0aW9ufSR7bG9jYWxlfSR7dGhpcy5jb25maWcuZXh0ZW5zaW9ufWBcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBsYW5nID0gYXdhaXQgZmV0Y2hEYXRhKGxhbmdGaWxlKVxuICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZSA9IEkxOE5CYXNlLnByb2Nlc3NGaWxlKGxhbmcpXG4gICAgICB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBwcm9jZXNzZWRGaWxlKVxuICAgICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICByZXR1cm4gdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogYXBwbGllcyBvdmVycmlkZXMgZnJvbSBjb25maWdcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gbGFuZ1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IG92ZXJyaWRlbiBsYW5ndWFnZVxuICAgKi9cbiAgYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGNvbnN0IG92ZXJyaWRlID0gdGhpcy5jb25maWcub3ZlcnJpZGVbbG9jYWxlXSB8fCB7fVxuICAgIGNvbnN0IGV4aXN0aW5nTGFuZyA9IHRoaXMubGFuZ3NbbG9jYWxlXSB8fCB7fVxuICAgIHRoaXMubGFuZ3NbbG9jYWxlXSA9IHsgLi4uZXhpc3RpbmdMYW5nLCAuLi5sYW5nLCAuLi5vdmVycmlkZSB9XG4gICAgdGhpcy5sb2FkZWQucHVzaChsb2NhbGUpXG4gICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiBjdXJyZW50bHkgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IGFsbCBjb25maWd1cmVkIGxhbmd1YWdlc1xuICAgKi9cbiAgZ2V0IGdldExhbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5sYW5nc1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHQgdG8gc2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIHRvIHRoZSBsb2NhbCBwcm92aWRlZFxuICAgKiBAcGFyYW0ge1N0cmluZ30gICBsb2NhbGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gbGFuZ3VhZ2VcbiAgICovXG4gIGFzeW5jIHNldEN1cnJlbnQobG9jYWxlID0gJ2VuLVVTJykge1xuICAgIGlmICghdGhpcy5sb2FkZWQuaW5jbHVkZXMobG9jYWxlKSkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkTGFuZyhsb2NhbGUpXG4gICAgfVxuXG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGVcbiAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLmxhbmdzW2xvY2FsZV1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRcbiAgfVxufVxuXG4vKipcbiAqIFByb3h5IHdyYXBwZXIgdGhhdCBlbmFibGVzIHNpbmdsZXRvbiBwYXR0ZXJuOlxuICogLSBJMThOKCkgcmV0dXJucyB0aGUgc2luZ2xldG9uIGluc3RhbmNlXG4gKiAtIG5ldyBJMThOKCkgY3JlYXRlcyBhIG5ldyBpbnN0YW5jZVxuICovXG5leHBvcnQgY29uc3QgSTE4TiA9IG5ldyBQcm94eShJMThOQmFzZSwge1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gSTE4TigpIGlzIGludm9rZWQgYXMgYSBmdW5jdGlvbiAod2l0aG91dCBuZXcpXG4gICAqIFJldHVybnMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKi9cbiAgYXBwbHkodGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7XG4gICAgcmV0dXJuIHRhcmdldC5nZXRJbnN0YW5jZSguLi5hcmdzKVxuICB9LFxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBuZXcgSTE4TigpIGlzIGludm9rZWRcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZVxuICAgKi9cbiAgY29uc3RydWN0KHRhcmdldCwgYXJncykge1xuICAgIHJldHVybiBuZXcgdGFyZ2V0KC4uLmFyZ3MpXG4gIH0sXG5cbiAgLyoqXG4gICAqIFByb3h5IHByb3BlcnR5IGFjY2VzcyB0byB0aGUgYmFzZSBjbGFzc1xuICAgKi9cbiAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgIHJldHVybiB0YXJnZXRbcHJvcF1cbiAgfSxcbn0pXG5cbmV4cG9ydCBkZWZhdWx0IEkxOE4uZ2V0SW5zdGFuY2UoKVxuIiwiY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHsgbWV0aG9kOiAnR0VUJywgYm9keTogJycgfSlcbi8qKlxuICogRmV0Y2hlcyBhIHJlc291cmNlIGZyb20gdGhlIG5ldHdvcmsuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZmV0Y2guXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucz17fV0gLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucy5oZWFkZXJzXSAtIEhlYWRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZmV0Y2hPcHRpb25zLm1ldGhvZF0gLSBUaGUgSFRUUCBtZXRob2QgdG8gdXNlIChlLmcuLCAnR0VUJywgJ1BPU1QnKS5cbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gW2ZldGNoT3B0aW9ucy5ib2R5XSAtIFRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybiB7UHJvbWlzZTxPYmplY3Q+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn0gcmV0dXJuLm9rIC0gSW5kaWNhdGVzIGlmIHRoZSByZXNwb25zZSBzdGF0dXMgaXMgaW4gdGhlIHJhbmdlIDIwMC0yOTkuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IHJldHVybi5zdGF0dXMgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHJldHVybi5zdGF0dXNUZXh0IC0gVGhlIEhUVFAgc3RhdHVzIG1lc3NhZ2Ugb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7TWFwPHN0cmluZywgc3RyaW5nPn0gcmV0dXJuLmhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHJldHVybi5ib2R5IC0gVGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlIGFzIGEgQnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxCdWZmZXI+fSByZXR1cm4uYXJyYXlCdWZmZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IGFzIGFuIEFycmF5QnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxPYmplY3Q+fSByZXR1cm4uanNvbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgcGFyc2VkIGFzIEpTT04uXG4gKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlciA9IHVybC5lbmRzV2l0aCgnLmxhbmcnKSA/ICd0ZXh0JyA6ICdqc29uJ1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZVtoYW5kbGVyXSgpXG4gICAgcmV0dXJuIGRhdGFcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBoYXMgYmVlbiBhIHByb2JsZW0gd2l0aCB5b3VyIGZldGNoIG9wZXJhdGlvbjonLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iXSwibmFtZXMiOlsiREVGQVVMVF9DT05GSUciLCJleHRlbnNpb24iLCJsb2NhdGlvbiIsImxhbmdzIiwibG9jYWxlIiwib3ZlcnJpZGUiLCJpbnN0YW5jZSIsIkkxOE5CYXNlIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwidGhpcyIsIk9iamVjdCIsImNyZWF0ZSIsImxvYWRlZCIsInByb2Nlc3NDb25maWciLCJyZXN0T3B0aW9ucyIsInBhcnNlZExvY2F0aW9uIiwiZW5kc1dpdGgiLCJjb25maWciLCJwcmVsb2FkZWQiLCJhbGxMb2NhbGVzIiwiU2V0Iiwia2V5cyIsIm1lcmdlZExhbmciLCJhcHBseUxhbmd1YWdlIiwiaW5pdCIsInNldEN1cnJlbnQiLCJhZGRMYW5ndWFnZSIsImxhbmciLCJwcm9jZXNzRmlsZSIsInB1c2giLCJnZXRWYWx1ZSIsImtleSIsIl9hIiwiZ2V0RmFsbGJhY2tWYWx1ZSIsImZhbGxiYWNrTGFuZyIsInZhbHVlcyIsImZpbmQiLCJtYWtlU2FmZSIsInN0ciIsIm1hcE9iaiIsIlN0cmluZyIsInJhdyIsImVzY2FwZWRTdHIiLCJyZXBsYWNlQWxsIiwibWF0Y2hlZCIsIlJlZ0V4cCIsInB1dCIsInN0cmluZyIsImN1cnJlbnQiLCJnZXQiLCJhcmdzIiwidmFsdWUiLCJ0b2tlbnMiLCJtYXRjaCIsInRva2VuIiwidG9rZW5LZXkiLCJzbGljZSIsInJlcGxhY2UiLCJyZXNwb25zZSIsIkkxOE4iLCJmcm9tRmlsZSIsInJhd1RleHQiLCJsaW5lcyIsInNwbGl0IiwibWF0Y2hlcyIsImkiLCJsZW5ndGgiLCJleGVjIiwidHJpbSIsImdldEluc3RhbmNlIiwicmVzZXRJbnN0YW5jZSIsImxvYWRMYW5nIiwidXNlQ2FjaGUiLCJpbmNsdWRlcyIsImxhbmdGaWxlIiwiYXN5bmMiLCJ1cmwiLCJmZXRjaCIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJoYW5kbGVyIiwiZXJyb3IiLCJmZXRjaERhdGEiLCJwcm9jZXNzZWRGaWxlIiwiZXJyIiwiZXhpc3RpbmdMYW5nIiwiZ2V0TGFuZ3MiLCJQcm94eSIsImFwcGx5IiwidGFyZ2V0IiwidGhpc0FyZyIsImNvbnN0cnVjdCIsInByb3AiLCJtaTE4biJdLCJtYXBwaW5ncyI6IjRHQUVBLE1BQU1BLEVBQWlCLENBQ3JCQyxVQUFXLFFBRVhDLFNBQVUsZUFFVkMsTUFBTyxDQUFDLFNBQ1JDLE9BQVEsUUFDUkMsU0FBVSxDQUFFLEdBSWQsSUFBSUMsRUFBVyxLQU9mLE1BQU1DLEVBS0osV0FBQUMsQ0FBWUMsRUFBVVQsR0FDZlUsS0FBQVAsTUFBZVEsT0FBQUMsT0FBTyxNQUMzQkYsS0FBS0csT0FBUyxHQUNkSCxLQUFLSSxjQUFjTCxFQUNwQixDQU1ELGFBQUFLLENBQWNMLEdBQ04sTUFBQVAsU0FBRUEsS0FBYWEsR0FBZ0IsSUFBS2YsS0FBbUJTLEdBRXZETyxFQUFpQmQsRUFBU2UsU0FBUyxLQUFPZixFQUFXLEdBQUdBLEtBQzlEUSxLQUFLUSxPQUFTLENBQUVoQixTQUFVYyxLQUFtQkQsR0FFdkMsTUFBQUksVUFBRUEsRUFBWSxDQUFFLEVBQUFkLFNBQUVBLEVBQVcsQ0FBRSxHQUFLSyxLQUFLUSxPQUl6Q0UsRUFBYSxJQUFJQyxJQUFJLElBQUlWLE9BQU9XLEtBQUtILE1BQWVSLE9BQU9XLEtBQUtqQixLQUl0RSxJQUFBLE1BQVdELEtBQVVnQixFQUFZLENBQy9CLE1BR01HLEVBQWEsSUFIR0osRUFBVWYsSUFBVyxD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
|
package/dist/i18n.cjs.min.js.gz
CHANGED
|
Binary file
|
package/dist/i18n.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
3
|
@draggable/i18n - https://github.com/Draggable/i18n
|
|
4
|
-
Version: 1.0.
|
|
4
|
+
Version: 1.0.8
|
|
5
5
|
Author: Draggable https://draggable.io
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -29,7 +29,8 @@ const DEFAULT_CONFIG = {
|
|
|
29
29
|
// init with user's preferred language
|
|
30
30
|
override: {}
|
|
31
31
|
};
|
|
32
|
-
|
|
32
|
+
let instance = null;
|
|
33
|
+
class I18NBase {
|
|
33
34
|
/**
|
|
34
35
|
* Process options and start the module
|
|
35
36
|
* @param {Object} options
|
|
@@ -45,14 +46,16 @@ class I18N {
|
|
|
45
46
|
*/
|
|
46
47
|
processConfig(options) {
|
|
47
48
|
const { location, ...restOptions } = { ...DEFAULT_CONFIG, ...options };
|
|
48
|
-
const parsedLocation = location.
|
|
49
|
+
const parsedLocation = location.endsWith("/") ? location : `${location}/`;
|
|
49
50
|
this.config = { location: parsedLocation, ...restOptions };
|
|
50
|
-
const {
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
const { preloaded = {}, override = {} } = this.config;
|
|
52
|
+
const allLocales = /* @__PURE__ */ new Set([...Object.keys(preloaded), ...Object.keys(override)]);
|
|
53
|
+
for (const locale of allLocales) {
|
|
54
|
+
const preloadedLang = preloaded[locale] || {};
|
|
55
|
+
const overrideLang = override[locale] || {};
|
|
56
|
+
const mergedLang = { ...preloadedLang, ...overrideLang };
|
|
57
|
+
this.applyLanguage(locale, mergedLang);
|
|
58
|
+
}
|
|
56
59
|
this.locale = this.config.locale || this.config.langs[0];
|
|
57
60
|
}
|
|
58
61
|
/**
|
|
@@ -70,9 +73,10 @@ class I18N {
|
|
|
70
73
|
* @param {String|Object} lang
|
|
71
74
|
*/
|
|
72
75
|
addLanguage(locale, lang = {}) {
|
|
73
|
-
lang = typeof lang === "string" ?
|
|
76
|
+
lang = typeof lang === "string" ? I18NBase.processFile(lang) : lang;
|
|
74
77
|
this.applyLanguage(locale, lang);
|
|
75
|
-
this.
|
|
78
|
+
this.loaded.push(locale);
|
|
79
|
+
this.config.langs.push(locale);
|
|
76
80
|
}
|
|
77
81
|
/**
|
|
78
82
|
* get a string from a loaded language file
|
|
@@ -101,12 +105,12 @@ class I18N {
|
|
|
101
105
|
*/
|
|
102
106
|
makeSafe(str) {
|
|
103
107
|
const mapObj = {
|
|
104
|
-
"{":
|
|
105
|
-
"}":
|
|
106
|
-
"|":
|
|
108
|
+
"{": String.raw`\{`,
|
|
109
|
+
"}": String.raw`\}`,
|
|
110
|
+
"|": String.raw`\|`
|
|
107
111
|
};
|
|
108
|
-
|
|
109
|
-
return new RegExp(
|
|
112
|
+
const escapedStr = str.replaceAll(/[{}|]/g, (matched) => mapObj[matched]);
|
|
113
|
+
return new RegExp(escapedStr, "g");
|
|
110
114
|
}
|
|
111
115
|
/**
|
|
112
116
|
* Temporarily put a string into the currently loaded language
|
|
@@ -125,21 +129,24 @@ class I18N {
|
|
|
125
129
|
* @return {String} updated string translation
|
|
126
130
|
*/
|
|
127
131
|
get(key, args) {
|
|
128
|
-
const _this = this;
|
|
129
132
|
let value = this.getValue(key);
|
|
130
133
|
if (!value) {
|
|
131
134
|
return;
|
|
132
135
|
}
|
|
136
|
+
if (!args) {
|
|
137
|
+
return value;
|
|
138
|
+
}
|
|
133
139
|
const tokens = value.match(/\{[^}]+?\}/g);
|
|
134
|
-
if (
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
value = value.replace(/\{[^}]+?\}/g, args);
|
|
140
|
+
if (!tokens) {
|
|
141
|
+
return value;
|
|
142
|
+
}
|
|
143
|
+
if (typeof args === "object") {
|
|
144
|
+
for (const token of tokens) {
|
|
145
|
+
const tokenKey = token.slice(1, -1);
|
|
146
|
+
value = value.replace(this.makeSafe(token), args[tokenKey] ?? "");
|
|
142
147
|
}
|
|
148
|
+
} else {
|
|
149
|
+
value = value.replaceAll(/\{[^}]+?\}/g, args);
|
|
143
150
|
}
|
|
144
151
|
return value;
|
|
145
152
|
}
|
|
@@ -149,7 +156,7 @@ class I18N {
|
|
|
149
156
|
* @return {Object} processed language
|
|
150
157
|
*/
|
|
151
158
|
static processFile(response) {
|
|
152
|
-
return I18N.fromFile(response.
|
|
159
|
+
return I18N.fromFile(response.replaceAll("\n\n", "\n"));
|
|
153
160
|
}
|
|
154
161
|
/**
|
|
155
162
|
* Static method: Turn raw text from the language files into fancy JSON
|
|
@@ -163,37 +170,48 @@ class I18N {
|
|
|
163
170
|
const regex = /^(.+?) *?= *?([^\n]+)/;
|
|
164
171
|
matches = regex.exec(lines[i]);
|
|
165
172
|
if (matches) {
|
|
166
|
-
lang[matches[1]] = matches[2].
|
|
173
|
+
lang[matches[1]] = matches[2].trim();
|
|
167
174
|
}
|
|
168
175
|
}
|
|
169
176
|
return lang;
|
|
170
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Get the singleton instance
|
|
180
|
+
* @param {Object} options
|
|
181
|
+
* @return {I18NBase} singleton instance
|
|
182
|
+
*/
|
|
183
|
+
static getInstance(options) {
|
|
184
|
+
if (!instance) {
|
|
185
|
+
instance = new I18NBase(options);
|
|
186
|
+
}
|
|
187
|
+
return instance;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Reset the singleton instance (useful for testing)
|
|
191
|
+
*/
|
|
192
|
+
static resetInstance() {
|
|
193
|
+
instance = null;
|
|
194
|
+
}
|
|
171
195
|
/**
|
|
172
196
|
* Load a remotely stored language file
|
|
173
197
|
* @param {String} locale
|
|
174
198
|
* @param {Boolean} useCache
|
|
175
199
|
* @return {Promise} resolves response
|
|
176
200
|
*/
|
|
177
|
-
loadLang(locale, useCache = true) {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
console.error(err);
|
|
192
|
-
const lang = _this.applyLanguage(locale);
|
|
193
|
-
resolve(lang);
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
});
|
|
201
|
+
async loadLang(locale, useCache = true) {
|
|
202
|
+
if (this.loaded.includes(locale) && useCache) {
|
|
203
|
+
return this.langs[locale];
|
|
204
|
+
}
|
|
205
|
+
const langFile = `${this.config.location}${locale}${this.config.extension}`;
|
|
206
|
+
try {
|
|
207
|
+
const lang = await fetchData(langFile);
|
|
208
|
+
const processedFile = I18NBase.processFile(lang);
|
|
209
|
+
this.applyLanguage(locale, processedFile);
|
|
210
|
+
return this.langs[locale];
|
|
211
|
+
} catch (err) {
|
|
212
|
+
console.error(err);
|
|
213
|
+
return this.applyLanguage(locale);
|
|
214
|
+
}
|
|
197
215
|
}
|
|
198
216
|
/**
|
|
199
217
|
* applies overrides from config
|
|
@@ -205,6 +223,7 @@ class I18N {
|
|
|
205
223
|
const override = this.config.override[locale] || {};
|
|
206
224
|
const existingLang = this.langs[locale] || {};
|
|
207
225
|
this.langs[locale] = { ...existingLang, ...lang, ...override };
|
|
226
|
+
this.loaded.push(locale);
|
|
208
227
|
return this.langs[locale];
|
|
209
228
|
}
|
|
210
229
|
/**
|
|
@@ -220,15 +239,39 @@ class I18N {
|
|
|
220
239
|
* @return {Promise} language
|
|
221
240
|
*/
|
|
222
241
|
async setCurrent(locale = "en-US") {
|
|
223
|
-
|
|
242
|
+
if (!this.loaded.includes(locale)) {
|
|
243
|
+
await this.loadLang(locale);
|
|
244
|
+
}
|
|
224
245
|
this.locale = locale;
|
|
225
246
|
this.current = this.langs[locale];
|
|
226
247
|
return this.current;
|
|
227
248
|
}
|
|
228
249
|
}
|
|
229
|
-
const
|
|
250
|
+
const I18N = new Proxy(I18NBase, {
|
|
251
|
+
/**
|
|
252
|
+
* Called when I18N() is invoked as a function (without new)
|
|
253
|
+
* Returns the singleton instance
|
|
254
|
+
*/
|
|
255
|
+
apply(target, thisArg, args) {
|
|
256
|
+
return target.getInstance(...args);
|
|
257
|
+
},
|
|
258
|
+
/**
|
|
259
|
+
* Called when new I18N() is invoked
|
|
260
|
+
* Creates a new instance
|
|
261
|
+
*/
|
|
262
|
+
construct(target, args) {
|
|
263
|
+
return new target(...args);
|
|
264
|
+
},
|
|
265
|
+
/**
|
|
266
|
+
* Proxy property access to the base class
|
|
267
|
+
*/
|
|
268
|
+
get(target, prop) {
|
|
269
|
+
return target[prop];
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
const mi18n = I18N.getInstance();
|
|
230
273
|
export {
|
|
231
274
|
I18N,
|
|
232
275
|
mi18n as default
|
|
233
276
|
};
|
|
234
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5lcy5taW4uanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9mZXRjaC5qcyIsIi4uL3NyYy9taTE4bi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBkZWZhdWx0T3B0aW9ucyA9IE9iamVjdC5mcmVlemUoeyBtZXRob2Q6ICdHRVQnLCBib2R5OiAnJyB9KVxuLyoqXG4gKiBGZXRjaGVzIGEgcmVzb3VyY2UgZnJvbSB0aGUgbmV0d29yay5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCB0byBmZXRjaC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbZmV0Y2hPcHRpb25zPXt9XSAtIFRoZSBvcHRpb25zIGZvciB0aGUgZmV0Y2ggcmVxdWVzdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbZmV0Y2hPcHRpb25zLmhlYWRlcnNdIC0gSGVhZGVycyB0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0LlxuICogQHBhcmFtIHtzdHJpbmd9IFtmZXRjaE9wdGlvbnMubWV0aG9kXSAtIFRoZSBIVFRQIG1ldGhvZCB0byB1c2UgKGUuZy4sICdHRVQnLCAnUE9TVCcpLlxuICogQHBhcmFtIHtzdHJpbmd8QnVmZmVyfSBbZmV0Y2hPcHRpb25zLmJvZHldIC0gVGhlIGJvZHkgb2YgdGhlIHJlcXVlc3QuXG4gKiBAcmV0dXJuIHtQcm9taXNlPE9iamVjdD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXNwb25zZSBvYmplY3QuXG4gKiBAcmV0dXJuIHtib29sZWFufSByZXR1cm4ub2sgLSBJbmRpY2F0ZXMgaWYgdGhlIHJlc3BvbnNlIHN0YXR1cyBpcyBpbiB0aGUgcmFuZ2UgMjAwLTI5OS5cbiAqIEByZXR1cm4ge251bWJlcn0gcmV0dXJuLnN0YXR1cyAtIFRoZSBIVFRQIHN0YXR1cyBjb2RlIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge3N0cmluZ30gcmV0dXJuLnN0YXR1c1RleHQgLSBUaGUgSFRUUCBzdGF0dXMgbWVzc2FnZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtNYXA8c3RyaW5nLCBzdHJpbmc+fSByZXR1cm4uaGVhZGVycyAtIFRoZSBoZWFkZXJzIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge0J1ZmZlcn0gcmV0dXJuLmJvZHkgLSBUaGUgYm9keSBvZiB0aGUgcmVzcG9uc2UgYXMgYSBCdWZmZXIuXG4gKiBAcmV0dXJuIHtmdW5jdGlvbigpOiBQcm9taXNlPEJ1ZmZlcj59IHJldHVybi5hcnJheUJ1ZmZlciAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgYXMgYW4gQXJyYXlCdWZmZXIuXG4gKiBAcmV0dXJuIHtmdW5jdGlvbigpOiBQcm9taXNlPE9iamVjdD59IHJldHVybi5qc29uIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgYm9keSBwYXJzZWQgYXMgSlNPTi5cbiAqL1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hEYXRhKHVybCkge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKVxuICAgIH1cbiAgICBjb25zdCBoYW5kbGVyID0gdXJsLmVuZHNXaXRoKCcubGFuZycpID8gJ3RleHQnIDogJ2pzb24nXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlW2hhbmRsZXJdKClcbiAgICByZXR1cm4gZGF0YVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIGhhcyBiZWVuIGEgcHJvYmxlbSB3aXRoIHlvdXIgZmV0Y2ggb3BlcmF0aW9uOicsIGVycm9yKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cbiIsImltcG9ydCB7IGZldGNoRGF0YSB9IGZyb20gJy4vZmV0Y2guanMnXG5cbmNvbnN0IERFRkFVTFRfQ09ORklHID0ge1xuICBleHRlbnNpb246ICcubGFuZycsXG4gIC8vIGxvY2FsIG9yIHJlbW90ZSBkaXJlY3RvcnkgY29udGFpbmluZyBsYW5ndWFnZSBmaWxlc1xuICBsb2NhdGlvbjogJ2Fzc2V0cy9sYW5nLycsXG4gIC8vIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMsIGhhbmR5IGZvciBwb3B1bGF0aW5nIHNlbGVjdG9yLlxuICBsYW5nczogWydlbi1VUyddLFxuICBsb2NhbGU6ICdlbi1VUycsIC8vIGluaXQgd2l0aCB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlXG4gIG92ZXJyaWRlOiB7fSxcbn1cblxuLyoqXG4gKiBNYWluIGkxOG4gY2xhc3NcbiAqIEBjbGFzcyBJMThOXG4gKiBAY2xhc3NkZXNjIG1ldGhvZHMgYW5kIGRhdGEgc3RvcmUgZm9yIGkxOG5cbiAqL1xuZXhwb3J0IGNsYXNzIEkxOE4ge1xuICAvKipcbiAgICogUHJvY2VzcyBvcHRpb25zIGFuZCBzdGFydCB0aGUgbW9kdWxlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0gREVGQVVMVF9DT05GSUcpIHtcbiAgICB0aGlzLmxhbmdzID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIHRoaXMubG9hZGVkID0gW11cbiAgICB0aGlzLnByb2Nlc3NDb25maWcob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJzZSBhbmQgZm9ybWF0IGNvbmZpZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgcHJvY2Vzc0NvbmZpZyhvcHRpb25zKSB7XG4gICAgY29uc3QgeyBsb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfSA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLm9wdGlvbnMgfVxuICAgIGNvbnN0IHBhcnNlZExvY2F0aW9uID0gbG9jYXRpb24ucmVwbGFjZSgvXFwvPyQvLCAnLycpXG4gICAgdGhpcy5jb25maWcgPSB7IGxvY2F0aW9uOiBwYXJzZWRMb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfVxuICAgIGNvbnN0IHsgb3ZlcnJpZGUsIHByZWxvYWRlZCA9IHt9IH0gPSB0aGlzLmNvbmZpZ1xuICAgIGNvbnN0IGFsbExhbmdzID0gT2JqZWN0LmVudHJpZXModGhpcy5sYW5ncykuY29uY2F0KE9iamVjdC5lbnRyaWVzKG92ZXJyaWRlIHx8IHByZWxvYWRlZCkpXG4gICAgdGhpcy5sYW5ncyA9IGFsbExhbmdzLnJlZHVjZSgoYWNjLCBbbG9jYWxlLCBsYW5nXSkgPT4ge1xuICAgICAgYWNjW2xvY2FsZV0gPSB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIHt9KVxuICAgIHRoaXMubG9jYWxlID0gdGhpcy5jb25maWcubG9jYWxlIHx8IHRoaXMuY29uZmlnLmxhbmdzWzBdXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBsYW5ndWFnZSBhbmQgc2V0IGRlZmF1bHRcbiAgICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgICByZXNvbHZlcyBsYW5ndWFnZVxuICAgKi9cbiAgaW5pdChvcHRpb25zKSB7XG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKHsgLi4udGhpcy5jb25maWcsIC4uLm9wdGlvbnMgfSlcbiAgICByZXR1cm4gdGhpcy5zZXRDdXJyZW50KHRoaXMubG9jYWxlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsYW5ndWFnZSB0byB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBsYW5nXG4gICAqL1xuICBhZGRMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGxhbmcgPSB0eXBlb2YgbGFuZyA9PT0gJ3N0cmluZycgPyBJMThOLnByb2Nlc3NGaWxlKGxhbmcpIDogbGFuZ1xuICAgIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgdGhpcy5jb25maWcubGFuZ3MucHVzaCgnbG9jYWxlJylcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgYSBzdHJpbmcgZnJvbSBhIGxvYWRlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICAtIHRoZSBrZXkgZm9yIHRoZSBzdHJpbmcgd2UgYXJlIHRyeWluZyB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZSAtIGxvY2FsZSB0byBjaGVjayBmb3IgdmFsdWVcbiAgICogQHJldHVybiB7U3RyaW5nfSBsYW5ndWFnZSBzdHJpbmcgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRWYWx1ZShrZXksIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmxhbmdzW2xvY2FsZV0/LltrZXldXG4gICAgcmV0dXJuIHZhbHVlIHx8IHRoaXMuZ2V0RmFsbGJhY2tWYWx1ZShrZXkpXG4gIH1cblxuICAvKipcbiAgICogRmluZCBhIGxhbmd1YWdlIHRoYXQgaGFzIGRlc2lyZWQga2V5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgdmFsdWUga2V5XG4gICAqIEByZXR1cm4ge1N0cmluZ30gZm91bmQgdmFsdWUgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRGYWxsYmFja1ZhbHVlKGtleSkge1xuICAgIGNvbnN0IGZhbGxiYWNrTGFuZyA9IE9iamVjdC52YWx1ZXModGhpcy5sYW5ncykuZmluZChsYW5nID0+IGxhbmdba2V5XSlcbiAgICByZXR1cm4gZmFsbGJhY2tMYW5nPy5ba2V5XVxuICB9XG5cbiAgLyoqXG4gICAqIEVzY2FwZSB2YXJpYWJsZSBzeW50YXhcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgZXNjYXBlZCBzdHJcbiAgICovXG4gIG1ha2VTYWZlKHN0cikge1xuICAgIGNvbnN0IG1hcE9iaiA9IHtcbiAgICAgICd7JzogJ1xcXFx7JyxcbiAgICAgICd9JzogJ1xcXFx9JyxcbiAgICAgICd8JzogJ1xcXFx8JyxcbiAgICB9XG5cbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvW3t9fF0vZywgbWF0Y2hlZCA9PiBtYXBPYmpbbWF0Y2hlZF0pXG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChzdHIsICdnJylcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3JhcmlseSBwdXQgYSBzdHJpbmcgaW50byB0aGUgY3VycmVudGx5IGxvYWRlZCBsYW5ndWFnZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0cmluZ1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHN0cmluZyBpbiBjdXJyZW50IGxhbmd1YWdlXG4gICAqL1xuICBwdXQoa2V5LCBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRba2V5XSA9IHN0cmluZ1xuXG4gICAgcmV0dXJuIHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGFyZ3VtZW50cyBmb3IgdGhlIHJlcXVlc3RlZCBzdHJpbmdcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIHRoZSBrZXkgd2UgdXNlIHRvIGxvb2t1cCBvdXIgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtICB7bXVsdGl9ICBhcmdzICBzdHJpbmcsIG51bWJlciBvciBvYmplY3QgY29udGFpbmluZyBvdXIgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgICB1cGRhdGVkIHN0cmluZyB0cmFuc2xhdGlvblxuICAgKi9cbiAgZ2V0KGtleSwgYXJncykge1xuICAgIGNvbnN0IF90aGlzID0gdGhpc1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoa2V5KVxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHRva2VucyA9IHZhbHVlLm1hdGNoKC9cXHtbXn1dKz9cXH0vZylcblxuICAgIGlmIChhcmdzICYmIHRva2Vucykge1xuICAgICAgaWYgKCdvYmplY3QnID09PSB0eXBlb2YgYXJncykge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgICAgICAgIGNvbnN0IGtleSA9IHRva2VuLnN1YnN0cmluZygxLCB0b2tlbi5sZW5ndGggLSAxKVxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZShfdGhpcy5tYWtlU2FmZSh0b2tlbiksIGFyZ3Nba2V5XSB8fCAnJylcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXHtbXn1dKz9cXH0vZywgYXJncylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBQcm9jZXNzIGEgbGFuZ3VhZ2UgZmlsZSBmcm9tIHJhdyB0ZXh0XG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmVzcG9uc2VcbiAgICogQHJldHVybiB7T2JqZWN0fSBwcm9jZXNzZWQgbGFuZ3VhZ2VcbiAgICovXG4gIHN0YXRpYyBwcm9jZXNzRmlsZShyZXNwb25zZSkge1xuICAgIHJldHVybiBJMThOLmZyb21GaWxlKHJlc3BvbnNlLnJlcGxhY2UoL1xcblxcbi9nLCAnXFxuJykpXG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZDogVHVybiByYXcgdGV4dCBmcm9tIHRoZSBsYW5ndWFnZSBmaWxlcyBpbnRvIGZhbmN5IEpTT05cbiAgICogQHBhcmFtICB7U3RyaW5nfSByYXdUZXh0XG4gICAqIEByZXR1cm4ge09iamVjdH0gY29udmVydGVkIGxhbmd1YWdlIGZpbGVcbiAgICovXG4gIHN0YXRpYyBmcm9tRmlsZShyYXdUZXh0KSB7XG4gICAgY29uc3QgbGluZXMgPSByYXdUZXh0LnNwbGl0KCdcXG4nKVxuICAgIGNvbnN0IGxhbmcgPSB7fVxuXG4gICAgZm9yIChsZXQgbWF0Y2hlcywgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcmVnZXggPSAvXiguKz8pICo/PSAqPyhbXlxcbl0rKS9cbiAgICAgIG1hdGNoZXMgPSByZWdleC5leGVjKGxpbmVzW2ldKVxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgbGFuZ1ttYXRjaGVzWzFdXSA9IG1hdGNoZXNbMl0ucmVwbGFjZSgvKF5cXHMrfFxccyskKS9nLCAnJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGFuZ1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYSByZW1vdGVseSBzdG9yZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0gIHtCb29sZWFufSB1c2VDYWNoZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgICAgICByZXNvbHZlcyByZXNwb25zZVxuICAgKi9cbiAgbG9hZExhbmcobG9jYWxlLCB1c2VDYWNoZSA9IHRydWUpIHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXNcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgaWYgKF90aGlzLmxvYWRlZC5pbmRleE9mKGxvY2FsZSkgIT09IC0xICYmIHVzZUNhY2hlKSB7XG4gICAgICAgIF90aGlzLmFwcGx5TGFuZ3VhZ2UoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxhbmdGaWxlID0gW190aGlzLmNvbmZpZy5sb2NhdGlvbiwgbG9jYWxlLCBfdGhpcy5jb25maWcuZXh0ZW5zaW9uXS5qb2luKCcnKVxuICAgICAgICByZXR1cm4gZmV0Y2hEYXRhKGxhbmdGaWxlKVxuICAgICAgICAgIC50aGVuKGxhbmcgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZSA9IEkxOE4ucHJvY2Vzc0ZpbGUobGFuZylcbiAgICAgICAgICAgIF90aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBwcm9jZXNzZWRGaWxlKVxuICAgICAgICAgICAgX3RoaXMubG9hZGVkLnB1c2gobG9jYWxlKVxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgICAgICBjb25zdCBsYW5nID0gX3RoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUpXG4gICAgICAgICAgICByZXNvbHZlKGxhbmcpXG4gICAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGFwcGxpZXMgb3ZlcnJpZGVzIGZyb20gY29uZmlnXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGxhbmdcbiAgICogQHJldHVybiB7T2JqZWN0fSBvdmVycmlkZW4gbGFuZ3VhZ2VcbiAgICovXG4gIGFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBjb25zdCBvdmVycmlkZSA9IHRoaXMuY29uZmlnLm92ZXJyaWRlW2xvY2FsZV0gfHwge31cbiAgICBjb25zdCBleGlzdGluZ0xhbmcgPSB0aGlzLmxhbmdzW2xvY2FsZV0gfHwge31cbiAgICB0aGlzLmxhbmdzW2xvY2FsZV0gPSB7IC4uLmV4aXN0aW5nTGFuZywgLi4ubGFuZywgLi4ub3ZlcnJpZGUgfVxuICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gY3VycmVudGx5IGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHJldHVybiB7T2JqZWN0fSBhbGwgY29uZmlndXJlZCBsYW5ndWFnZXNcbiAgICovXG4gIGdldCBnZXRMYW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubGFuZ3NcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIHNldCB0aGUgY3VycmVudCBsYW5ndWFnZSB0byB0aGUgbG9jYWwgcHJvdmlkZWRcbiAgICogQHBhcmFtIHtTdHJpbmd9ICAgbG9jYWxlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGxhbmd1YWdlXG4gICAqL1xuICBhc3luYyBzZXRDdXJyZW50KGxvY2FsZSA9ICdlbi1VUycpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRMYW5nKGxvY2FsZSlcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVxuICAgIHRoaXMuY3VycmVudCA9IHRoaXMubGFuZ3NbbG9jYWxlXVxuXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBJMThOKClcbiJdLCJuYW1lcyI6WyJrZXkiXSwibWFwcGluZ3MiOiJBQW1CTyxlQUFlLFVBQVUsS0FBSztBQUNuQyxNQUFJO0FBQ0YsVUFBTSxXQUFXLE1BQU0sTUFBTSxHQUFHO0FBQ2hDLFFBQUksQ0FBQyxTQUFTLElBQUk7QUFDaEIsWUFBTSxJQUFJLE1BQU0sdUJBQXVCLFNBQVMsTUFBTSxFQUFFO0FBQUEsSUFDekQ7QUFDRCxVQUFNLFVBQVUsSUFBSSxTQUFTLE9BQU8sSUFBSSxTQUFTO0FBQ2pELFVBQU0sT0FBTyxNQUFNLFNBQVMsT0FBTyxFQUFHO0FBQ3RDLFdBQU87QUFBQSxFQUNSLFNBQVEsT0FBTztBQUNkLFlBQVEsTUFBTSx1REFBdUQsS0FBSztBQUMxRSxVQUFNO0FBQUEsRUFDUDtBQUNIO0FDOUJBLE1BQU0saUJBQWlCO0FBQUEsRUFDckIsV0FBVztBQUFBO0FBQUEsRUFFWCxVQUFVO0FBQUE7QUFBQSxFQUVWLE9BQU8sQ0FBQyxPQUFPO0FBQUEsRUFDZixRQUFRO0FBQUE7QUFBQSxFQUNSLFVBQVUsQ0FBRTtBQUNkO0FBT08sTUFBTSxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtoQixZQUFZLFVBQVUsZ0JBQWdCO0FBQ3BDLFNBQUssUUFB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
|
|
277
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5lcy5taW4uanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9mZXRjaC5qcyIsIi4uL3NyYy9taTE4bi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBkZWZhdWx0T3B0aW9ucyA9IE9iamVjdC5mcmVlemUoeyBtZXRob2Q6ICdHRVQnLCBib2R5OiAnJyB9KVxuLyoqXG4gKiBGZXRjaGVzIGEgcmVzb3VyY2UgZnJvbSB0aGUgbmV0d29yay5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCB0byBmZXRjaC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbZmV0Y2hPcHRpb25zPXt9XSAtIFRoZSBvcHRpb25zIGZvciB0aGUgZmV0Y2ggcmVxdWVzdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbZmV0Y2hPcHRpb25zLmhlYWRlcnNdIC0gSGVhZGVycyB0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0LlxuICogQHBhcmFtIHtzdHJpbmd9IFtmZXRjaE9wdGlvbnMubWV0aG9kXSAtIFRoZSBIVFRQIG1ldGhvZCB0byB1c2UgKGUuZy4sICdHRVQnLCAnUE9TVCcpLlxuICogQHBhcmFtIHtzdHJpbmd8QnVmZmVyfSBbZmV0Y2hPcHRpb25zLmJvZHldIC0gVGhlIGJvZHkgb2YgdGhlIHJlcXVlc3QuXG4gKiBAcmV0dXJuIHtQcm9taXNlPE9iamVjdD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXNwb25zZSBvYmplY3QuXG4gKiBAcmV0dXJuIHtib29sZWFufSByZXR1cm4ub2sgLSBJbmRpY2F0ZXMgaWYgdGhlIHJlc3BvbnNlIHN0YXR1cyBpcyBpbiB0aGUgcmFuZ2UgMjAwLTI5OS5cbiAqIEByZXR1cm4ge251bWJlcn0gcmV0dXJuLnN0YXR1cyAtIFRoZSBIVFRQIHN0YXR1cyBjb2RlIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge3N0cmluZ30gcmV0dXJuLnN0YXR1c1RleHQgLSBUaGUgSFRUUCBzdGF0dXMgbWVzc2FnZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtNYXA8c3RyaW5nLCBzdHJpbmc+fSByZXR1cm4uaGVhZGVycyAtIFRoZSBoZWFkZXJzIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge0J1ZmZlcn0gcmV0dXJuLmJvZHkgLSBUaGUgYm9keSBvZiB0aGUgcmVzcG9uc2UgYXMgYSBCdWZmZXIuXG4gKiBAcmV0dXJuIHtmdW5jdGlvbigpOiBQcm9taXNlPEJ1ZmZlcj59IHJldHVybi5hcnJheUJ1ZmZlciAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgYXMgYW4gQXJyYXlCdWZmZXIuXG4gKiBAcmV0dXJuIHtmdW5jdGlvbigpOiBQcm9taXNlPE9iamVjdD59IHJldHVybi5qc29uIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgYm9keSBwYXJzZWQgYXMgSlNPTi5cbiAqL1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hEYXRhKHVybCkge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKVxuICAgIH1cbiAgICBjb25zdCBoYW5kbGVyID0gdXJsLmVuZHNXaXRoKCcubGFuZycpID8gJ3RleHQnIDogJ2pzb24nXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlW2hhbmRsZXJdKClcbiAgICByZXR1cm4gZGF0YVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIGhhcyBiZWVuIGEgcHJvYmxlbSB3aXRoIHlvdXIgZmV0Y2ggb3BlcmF0aW9uOicsIGVycm9yKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cbiIsImltcG9ydCB7IGZldGNoRGF0YSB9IGZyb20gJy4vZmV0Y2guanMnXG5cbmNvbnN0IERFRkFVTFRfQ09ORklHID0ge1xuICBleHRlbnNpb246ICcubGFuZycsXG4gIC8vIGxvY2FsIG9yIHJlbW90ZSBkaXJlY3RvcnkgY29udGFpbmluZyBsYW5ndWFnZSBmaWxlc1xuICBsb2NhdGlvbjogJ2Fzc2V0cy9sYW5nLycsXG4gIC8vIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMsIGhhbmR5IGZvciBwb3B1bGF0aW5nIHNlbGVjdG9yLlxuICBsYW5nczogWydlbi1VUyddLFxuICBsb2NhbGU6ICdlbi1VUycsIC8vIGluaXQgd2l0aCB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlXG4gIG92ZXJyaWRlOiB7fSxcbn1cblxuLy8gU2luZ2xldG9uIGluc3RhbmNlIGhvbGRlclxubGV0IGluc3RhbmNlID0gbnVsbFxuXG4vKipcbiAqIE1haW4gaTE4biBjbGFzc1xuICogQGNsYXNzIEkxOE5CYXNlXG4gKiBAY2xhc3NkZXNjIG1ldGhvZHMgYW5kIGRhdGEgc3RvcmUgZm9yIGkxOG5cbiAqL1xuY2xhc3MgSTE4TkJhc2Uge1xuICAvKipcbiAgICogUHJvY2VzcyBvcHRpb25zIGFuZCBzdGFydCB0aGUgbW9kdWxlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0gREVGQVVMVF9DT05GSUcpIHtcbiAgICB0aGlzLmxhbmdzID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIHRoaXMubG9hZGVkID0gW11cbiAgICB0aGlzLnByb2Nlc3NDb25maWcob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJzZSBhbmQgZm9ybWF0IGNvbmZpZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgcHJvY2Vzc0NvbmZpZyhvcHRpb25zKSB7XG4gICAgY29uc3QgeyBsb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfSA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLm9wdGlvbnMgfVxuICAgIC8vIEVuc3VyZSBsb2NhdGlvbiBlbmRzIHdpdGggYSBzbGFzaFxuICAgIGNvbnN0IHBhcnNlZExvY2F0aW9uID0gbG9jYXRpb24uZW5kc1dpdGgoJy8nKSA/IGxvY2F0aW9uIDogYCR7bG9jYXRpb259L2BcbiAgICB0aGlzLmNvbmZpZyA9IHsgbG9jYXRpb246IHBhcnNlZExvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9XG5cbiAgICBjb25zdCB7IHByZWxvYWRlZCA9IHt9LCBvdmVycmlkZSA9IHt9IH0gPSB0aGlzLmNvbmZpZ1xuXG4gICAgLy8gTWVyZ2UgbG9jYWxlcyBmcm9tIGJvdGggcHJlbG9hZGVkIGFuZCBvdmVycmlkZVxuICAgIC8vIFRoaXMgc3VwcG9ydHMgbGVnYWN5IHVzYWdlIHdoZXJlIG92ZXJyaWRlIGRlZmluZWQgZW50aXJlIGxhbmd1YWdlc1xuICAgIGNvbnN0IGFsbExvY2FsZXMgPSBuZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhwcmVsb2FkZWQpLCAuLi5PYmplY3Qua2V5cyhvdmVycmlkZSldKVxuXG4gICAgLy8gQXBwbHkgbGFuZ3VhZ2VzIGZyb20gYm90aCBwcmVsb2FkZWQgYW5kIG92ZXJyaWRlXG4gICAgLy8gYXBwbHlMYW5ndWFnZSB3aWxsIG1lcmdlIHRoZW0gcHJvcGVybHkgKGV4aXN0aW5nICsgcHJlbG9hZGVkICsgb3ZlcnJpZGUpXG4gICAgZm9yIChjb25zdCBsb2NhbGUgb2YgYWxsTG9jYWxlcykge1xuICAgICAgY29uc3QgcHJlbG9hZGVkTGFuZyA9IHByZWxvYWRlZFtsb2NhbGVdIHx8IHt9XG4gICAgICBjb25zdCBvdmVycmlkZUxhbmcgPSBvdmVycmlkZVtsb2NhbGVdIHx8IHt9XG4gICAgICAvLyBNZXJnZSBwcmVsb2FkZWQgYW5kIG92ZXJyaWRlIGZvciB0aGlzIGxvY2FsZVxuICAgICAgY29uc3QgbWVyZ2VkTGFuZyA9IHsgLi4ucHJlbG9hZGVkTGFuZywgLi4ub3ZlcnJpZGVMYW5nIH1cbiAgICAgIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIG1lcmdlZExhbmcpXG4gICAgfVxuXG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLmNvbmZpZy5sb2NhbGUgfHwgdGhpcy5jb25maWcubGFuZ3NbMF1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGxhbmd1YWdlIGFuZCBzZXQgZGVmYXVsdFxuICAgKiBAcGFyYW0gIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgIHJlc29sdmVzIGxhbmd1YWdlXG4gICAqL1xuICBpbml0KG9wdGlvbnMpIHtcbiAgICB0aGlzLnByb2Nlc3NDb25maWcoeyAuLi50aGlzLmNvbmZpZywgLi4ub3B0aW9ucyB9KVxuICAgIHJldHVybiB0aGlzLnNldEN1cnJlbnQodGhpcy5sb2NhbGUpXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGxhbmd1YWdlIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGxhbmdcbiAgICovXG4gIGFkZExhbmd1YWdlKGxvY2FsZSwgbGFuZyA9IHt9KSB7XG4gICAgbGFuZyA9IHR5cGVvZiBsYW5nID09PSAnc3RyaW5nJyA/IEkxOE5CYXNlLnByb2Nlc3NGaWxlKGxhbmcpIDogbGFuZ1xuICAgIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgdGhpcy5sb2FkZWQucHVzaChsb2NhbGUpXG4gICAgdGhpcy5jb25maWcubGFuZ3MucHVzaChsb2NhbGUpXG4gIH1cblxuICAvKipcbiAgICogZ2V0IGEgc3RyaW5nIGZyb20gYSBsb2FkZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgLSB0aGUga2V5IGZvciB0aGUgc3RyaW5nIHdlIGFyZSB0cnlpbmcgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGUgLSBsb2NhbGUgdG8gY2hlY2sgZm9yIHZhbHVlXG4gICAqIEByZXR1cm4ge1N0cmluZ30gbGFuZ3VhZ2Ugc3RyaW5nIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0VmFsdWUoa2V5LCBsb2NhbGUgPSB0aGlzLmxvY2FsZSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5sYW5nc1tsb2NhbGVdPy5ba2V5XVxuICAgIHJldHVybiB2YWx1ZSB8fCB0aGlzLmdldEZhbGxiYWNrVmFsdWUoa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgYSBsYW5ndWFnZSB0aGF0IGhhcyBkZXNpcmVkIGtleVxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IHZhbHVlIGtleVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGZvdW5kIHZhbHVlIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0RmFsbGJhY2tWYWx1ZShrZXkpIHtcbiAgICBjb25zdCBmYWxsYmFja0xhbmcgPSBPYmplY3QudmFsdWVzKHRoaXMubGFuZ3MpLmZpbmQobGFuZyA9PiBsYW5nW2tleV0pXG4gICAgcmV0dXJuIGZhbGxiYWNrTGFuZz8uW2tleV1cbiAgfVxuXG4gIC8qKlxuICAgKiBFc2NhcGUgdmFyaWFibGUgc3ludGF4XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgIGVzY2FwZWQgc3RyXG4gICAqL1xuICBtYWtlU2FmZShzdHIpIHtcbiAgICBjb25zdCBtYXBPYmogPSB7XG4gICAgICAneyc6IFN0cmluZy5yYXdgXFx7YCxcbiAgICAgICd9JzogU3RyaW5nLnJhd2BcXH1gLFxuICAgICAgJ3wnOiBTdHJpbmcucmF3YFxcfGAsXG4gICAgfVxuXG4gICAgY29uc3QgZXNjYXBlZFN0ciA9IHN0ci5yZXBsYWNlQWxsKC9be318XS9nLCBtYXRjaGVkID0+IG1hcE9ialttYXRjaGVkXSlcblxuICAgIHJldHVybiBuZXcgUmVnRXhwKGVzY2FwZWRTdHIsICdnJylcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3JhcmlseSBwdXQgYSBzdHJpbmcgaW50byB0aGUgY3VycmVudGx5IGxvYWRlZCBsYW5ndWFnZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0cmluZ1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHN0cmluZyBpbiBjdXJyZW50IGxhbmd1YWdlXG4gICAqL1xuICBwdXQoa2V5LCBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRba2V5XSA9IHN0cmluZ1xuXG4gICAgcmV0dXJuIHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGFyZ3VtZW50cyBmb3IgdGhlIHJlcXVlc3RlZCBzdHJpbmdcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIHRoZSBrZXkgd2UgdXNlIHRvIGxvb2t1cCBvdXIgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtICB7bXVsdGl9ICBhcmdzICBzdHJpbmcsIG51bWJlciBvciBvYmplY3QgY29udGFpbmluZyBvdXIgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgICB1cGRhdGVkIHN0cmluZyB0cmFuc2xhdGlvblxuICAgKi9cbiAgZ2V0KGtleSwgYXJncykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoa2V5KVxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIE5vIHJlcGxhY2VtZW50IG5lZWRlZCBpZiBubyBhcmdzIHByb3ZpZGVkXG4gICAgaWYgKCFhcmdzKSB7XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbnMgPSB2YWx1ZS5tYXRjaCgvXFx7W159XSs/XFx9L2cpXG5cbiAgICAvLyBObyB0b2tlbnMgdG8gcmVwbGFjZVxuICAgIGlmICghdG9rZW5zKSB7XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9XG5cbiAgICAvLyBPYmplY3QgYXJnczogcmVwbGFjZSBlYWNoIHRva2VuIHdpdGggY29ycmVzcG9uZGluZyBrZXlcbiAgICBpZiAodHlwZW9mIGFyZ3MgPT09ICdvYmplY3QnKSB7XG4gICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgICAgICBjb25zdCB0b2tlbktleSA9IHRva2VuLnNsaWNlKDEsIC0xKVxuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UodGhpcy5tYWtlU2FmZSh0b2tlbiksIGFyZ3NbdG9rZW5LZXldID8/ICcnKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQcmltaXRpdmUgYXJnczogcmVwbGFjZSBhbGwgdG9rZW5zIHdpdGggc2FtZSB2YWx1ZVxuICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlQWxsKC9cXHtbXn1dKz9cXH0vZywgYXJncylcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBQcm9jZXNzIGEgbGFuZ3VhZ2UgZmlsZSBmcm9tIHJhdyB0ZXh0XG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmVzcG9uc2VcbiAgICogQHJldHVybiB7T2JqZWN0fSBwcm9jZXNzZWQgbGFuZ3VhZ2VcbiAgICovXG4gIHN0YXRpYyBwcm9jZXNzRmlsZShyZXNwb25zZSkge1xuICAgIHJldHVybiBJMThOLmZyb21GaWxlKHJlc3BvbnNlLnJlcGxhY2VBbGwoJ1xcblxcbicsICdcXG4nKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBUdXJuIHJhdyB0ZXh0IGZyb20gdGhlIGxhbmd1YWdlIGZpbGVzIGludG8gZmFuY3kgSlNPTlxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHJhd1RleHRcbiAgICogQHJldHVybiB7T2JqZWN0fSBjb252ZXJ0ZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlKHJhd1RleHQpIHtcbiAgICBjb25zdCBsaW5lcyA9IHJhd1RleHQuc3BsaXQoJ1xcbicpXG4gICAgY29uc3QgbGFuZyA9IHt9XG5cbiAgICBmb3IgKGxldCBtYXRjaGVzLCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCByZWdleCA9IC9eKC4rPykgKj89ICo/KFteXFxuXSspL1xuICAgICAgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMobGluZXNbaV0pXG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICBsYW5nW21hdGNoZXNbMV1dID0gbWF0Y2hlc1syXS50cmltKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGFuZ1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2luZ2xldG9uIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEByZXR1cm4ge0kxOE5CYXNlfSBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBnZXRJbnN0YW5jZShvcHRpb25zKSB7XG4gICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgaW5zdGFuY2UgPSBuZXcgSTE4TkJhc2Uob3B0aW9ucylcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlXG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSAodXNlZnVsIGZvciB0ZXN0aW5nKVxuICAgKi9cbiAgc3RhdGljIHJlc2V0SW5zdGFuY2UoKSB7XG4gICAgaW5zdGFuY2UgPSBudWxsXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhIHJlbW90ZWx5IHN0b3JlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSAge0Jvb2xlYW59IHVzZUNhY2hlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgIHJlc29sdmVzIHJlc3BvbnNlXG4gICAqL1xuICBhc3luYyBsb2FkTGFuZyhsb2NhbGUsIHVzZUNhY2hlID0gdHJ1ZSkge1xuICAgIC8vIFJldHVybiBjYWNoZWQgbGFuZ3VhZ2UgaWYgYWxyZWFkeSBsb2FkZWRcbiAgICBpZiAodGhpcy5sb2FkZWQuaW5jbHVkZXMobG9jYWxlKSAmJiB1c2VDYWNoZSkge1xuICAgICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICAgIH1cbiAgICAvLyBGZXRjaCBhbmQgcHJvY2VzcyBsYW5ndWFnZSBmaWxlXG4gICAgY29uc3QgbGFuZ0ZpbGUgPSBgJHt0aGlzLmNvbmZpZy5sb2NhdGlvbn0ke2xvY2FsZX0ke3RoaXMuY29uZmlnLmV4dGVuc2lvbn1gXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgbGFuZyA9IGF3YWl0IGZldGNoRGF0YShsYW5nRmlsZSlcbiAgICAgIGNvbnN0IHByb2Nlc3NlZEZpbGUgPSBJMThOQmFzZS5wcm9jZXNzRmlsZShsYW5nKVxuICAgICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgcHJvY2Vzc2VkRmlsZSlcbiAgICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxuICAgICAgcmV0dXJuIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGFwcGxpZXMgb3ZlcnJpZGVzIGZyb20gY29uZmlnXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGxhbmdcbiAgICogQHJldHVybiB7T2JqZWN0fSBvdmVycmlkZW4gbGFuZ3VhZ2VcbiAgICovXG4gIGFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBjb25zdCBvdmVycmlkZSA9IHRoaXMuY29uZmlnLm92ZXJyaWRlW2xvY2FsZV0gfHwge31cbiAgICBjb25zdCBleGlzdGluZ0xhbmcgPSB0aGlzLmxhbmdzW2xvY2FsZV0gfHwge31cbiAgICB0aGlzLmxhbmdzW2xvY2FsZV0gPSB7IC4uLmV4aXN0aW5nTGFuZywgLi4ubGFuZywgLi4ub3ZlcnJpZGUgfVxuICAgIHRoaXMubG9hZGVkLnB1c2gobG9jYWxlKVxuICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gY3VycmVudGx5IGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHJldHVybiB7T2JqZWN0fSBhbGwgY29uZmlndXJlZCBsYW5ndWFnZXNcbiAgICovXG4gIGdldCBnZXRMYW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubGFuZ3NcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIHNldCB0aGUgY3VycmVudCBsYW5ndWFnZSB0byB0aGUgbG9jYWwgcHJvdmlkZWRcbiAgICogQHBhcmFtIHtTdHJpbmd9ICAgbG9jYWxlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGxhbmd1YWdlXG4gICAqL1xuICBhc3luYyBzZXRDdXJyZW50KGxvY2FsZSA9ICdlbi1VUycpIHtcbiAgICBpZiAoIXRoaXMubG9hZGVkLmluY2x1ZGVzKGxvY2FsZSkpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZExhbmcobG9jYWxlKVxuICAgIH1cblxuICAgIHRoaXMubG9jYWxlID0gbG9jYWxlXG4gICAgdGhpcy5jdXJyZW50ID0gdGhpcy5sYW5nc1tsb2NhbGVdXG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50XG4gIH1cbn1cblxuLyoqXG4gKiBQcm94eSB3cmFwcGVyIHRoYXQgZW5hYmxlcyBzaW5nbGV0b24gcGF0dGVybjpcbiAqIC0gSTE4TigpIHJldHVybnMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZVxuICogLSBuZXcgSTE4TigpIGNyZWF0ZXMgYSBuZXcgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IEkxOE4gPSBuZXcgUHJveHkoSTE4TkJhc2UsIHtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIEkxOE4oKSBpcyBpbnZva2VkIGFzIGEgZnVuY3Rpb24gKHdpdGhvdXQgbmV3KVxuICAgKiBSZXR1cm5zIHRoZSBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICovXG4gIGFwcGx5KHRhcmdldCwgdGhpc0FyZywgYXJncykge1xuICAgIHJldHVybiB0YXJnZXQuZ2V0SW5zdGFuY2UoLi4uYXJncylcbiAgfSxcblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gbmV3IEkxOE4oKSBpcyBpbnZva2VkXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdCh0YXJnZXQsIGFyZ3MpIHtcbiAgICByZXR1cm4gbmV3IHRhcmdldCguLi5hcmdzKVxuICB9LFxuXG4gIC8qKlxuICAgKiBQcm94eSBwcm9wZXJ0eSBhY2Nlc3MgdG8gdGhlIGJhc2UgY2xhc3NcbiAgICovXG4gIGdldCh0YXJnZXQsIHByb3ApIHtcbiAgICByZXR1cm4gdGFyZ2V0W3Byb3BdXG4gIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBJMThOLmdldEluc3RhbmNlKClcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQk8sZUFBZSxVQUFVLEtBQUs7QUFDbkMsTUFBSTtBQUNGLFVBQU0sV0FBVyxNQUFNLE1BQU0sR0FBRztBQUNoQyxRQUFJLENBQUMsU0FBUyxJQUFJO0FBQ2hCLFlBQU0sSUFBSSxNQUFNLHVCQUF1QixTQUFTLE1BQU0sRUFBRTtBQUFBLElBQ3pEO0FBQ0QsVUFBTSxVQUFVLElBQUksU0FBUyxPQUFPLElBQUksU0FBUztBQUNqRCxVQUFNLE9BQU8sTUFBTSxTQUFTLE9BQU8sRUFBRztBQUN0QyxXQUFPO0FBQUEsRUFDUixTQUFRLE9BQU87QUFDZCxZQUFRLE1BQU0sdURBQXVELEtBQUs7QUFDMUUsVUFBTTtBQUFBLEVBQ1A7QUFDSDtBQzlCQSxNQUFNLGlCQUFpQjtBQUFBLEVBQ3JCLFdBQVc7QUFBQTtBQUFBLEVBRVgsVUFBVTtBQUFBO0FBQUEsRUFFVixPQUFPLENBQUMsT0FBTztBQUFBLEVBQ2YsUUFBUTtBQUFBO0FBQUEsRUFDUixVQUFVLENBQUU7QUFDZDtBQUdBLElBQUksV0FBVztBQU9mLE1BQU0sU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLYixZQUFZLFVBQVUsZ0JBQWdCO0FBQ3BDLFNBQUssUUFBUSx1QkFBTyxPQUFPLElBQUk7QUFDL0IsU0FBSyxTQUFTLENBQUU7QUFDaEIsU0FBSyxjQUFjLE9BQU87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
|
package/dist/i18n.es.min.js.gz
CHANGED
|
Binary file
|
package/dist/i18n.iife.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
3
|
@draggable/i18n - https://github.com/Draggable/i18n
|
|
4
|
-
Version: 1.0.
|
|
4
|
+
Version: 1.0.8
|
|
5
5
|
Author: Draggable https://draggable.io
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
var i18n=function(t){"use strict";const e={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}};class
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5paWZlLm1pbi5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL21pMThuLmpzIiwiLi4vc3JjL2ZldGNoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZldGNoRGF0YSB9IGZyb20gJy4vZmV0Y2guanMnXG5cbmNvbnN0IERFRkFVTFRfQ09ORklHID0ge1xuICBleHRlbnNpb246ICcubGFuZycsXG4gIC8vIGxvY2FsIG9yIHJlbW90ZSBkaXJlY3RvcnkgY29udGFpbmluZyBsYW5ndWFnZSBmaWxlc1xuICBsb2NhdGlvbjogJ2Fzc2V0cy9sYW5nLycsXG4gIC8vIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMsIGhhbmR5IGZvciBwb3B1bGF0aW5nIHNlbGVjdG9yLlxuICBsYW5nczogWydlbi1VUyddLFxuICBsb2NhbGU6ICdlbi1VUycsIC8vIGluaXQgd2l0aCB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlXG4gIG92ZXJyaWRlOiB7fSxcbn1cblxuLyoqXG4gKiBNYWluIGkxOG4gY2xhc3NcbiAqIEBjbGFzcyBJMThOXG4gKiBAY2xhc3NkZXNjIG1ldGhvZHMgYW5kIGRhdGEgc3RvcmUgZm9yIGkxOG5cbiAqL1xuZXhwb3J0IGNsYXNzIEkxOE4ge1xuICAvKipcbiAgICogUHJvY2VzcyBvcHRpb25zIGFuZCBzdGFydCB0aGUgbW9kdWxlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0gREVGQVVMVF9DT05GSUcpIHtcbiAgICB0aGlzLmxhbmdzID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIHRoaXMubG9hZGVkID0gW11cbiAgICB0aGlzLnByb2Nlc3NDb25maWcob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJzZSBhbmQgZm9ybWF0IGNvbmZpZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgcHJvY2Vzc0NvbmZpZyhvcHRpb25zKSB7XG4gICAgY29uc3QgeyBsb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfSA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLm9wdGlvbnMgfVxuICAgIGNvbnN0IHBhcnNlZExvY2F0aW9uID0gbG9jYXRpb24ucmVwbGFjZSgvXFwvPyQvLCAnLycpXG4gICAgdGhpcy5jb25maWcgPSB7IGxvY2F0aW9uOiBwYXJzZWRMb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfVxuICAgIGNvbnN0IHsgb3ZlcnJpZGUsIHByZWxvYWRlZCA9IHt9IH0gPSB0aGlzLmNvbmZpZ1xuICAgIGNvbnN0IGFsbExhbmdzID0gT2JqZWN0LmVudHJpZXModGhpcy5sYW5ncykuY29uY2F0KE9iamVjdC5lbnRyaWVzKG92ZXJyaWRlIHx8IHByZWxvYWRlZCkpXG4gICAgdGhpcy5sYW5ncyA9IGFsbExhbmdzLnJlZHVjZSgoYWNjLCBbbG9jYWxlLCBsYW5nXSkgPT4ge1xuICAgICAgYWNjW2xvY2FsZV0gPSB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIHt9KVxuICAgIHRoaXMubG9jYWxlID0gdGhpcy5jb25maWcubG9jYWxlIHx8IHRoaXMuY29uZmlnLmxhbmdzWzBdXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBsYW5ndWFnZSBhbmQgc2V0IGRlZmF1bHRcbiAgICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgICByZXNvbHZlcyBsYW5ndWFnZVxuICAgKi9cbiAgaW5pdChvcHRpb25zKSB7XG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKHsgLi4udGhpcy5jb25maWcsIC4uLm9wdGlvbnMgfSlcbiAgICByZXR1cm4gdGhpcy5zZXRDdXJyZW50KHRoaXMubG9jYWxlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsYW5ndWFnZSB0byB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBsYW5nXG4gICAqL1xuICBhZGRMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGxhbmcgPSB0eXBlb2YgbGFuZyA9PT0gJ3N0cmluZycgPyBJMThOLnByb2Nlc3NGaWxlKGxhbmcpIDogbGFuZ1xuICAgIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgdGhpcy5jb25maWcubGFuZ3MucHVzaCgnbG9jYWxlJylcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgYSBzdHJpbmcgZnJvbSBhIGxvYWRlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICAtIHRoZSBrZXkgZm9yIHRoZSBzdHJpbmcgd2UgYXJlIHRyeWluZyB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZSAtIGxvY2FsZSB0byBjaGVjayBmb3IgdmFsdWVcbiAgICogQHJldHVybiB7U3RyaW5nfSBsYW5ndWFnZSBzdHJpbmcgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRWYWx1ZShrZXksIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmxhbmdzW2xvY2FsZV0/LltrZXldXG4gICAgcmV0dXJuIHZhbHVlIHx8IHRoaXMuZ2V0RmFsbGJhY2tWYWx1ZShrZXkpXG4gIH1cblxuICAvKipcbiAgICogRmluZCBhIGxhbmd1YWdlIHRoYXQgaGFzIGRlc2lyZWQga2V5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgdmFsdWUga2V5XG4gICAqIEByZXR1cm4ge1N0cmluZ30gZm91bmQgdmFsdWUgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRGYWxsYmFja1ZhbHVlKGtleSkge1xuICAgIGNvbnN0IGZhbGxiYWNrTGFuZyA9IE9iamVjdC52YWx1ZXModGhpcy5sYW5ncykuZmluZChsYW5nID0+IGxhbmdba2V5XSlcbiAgICByZXR1cm4gZmFsbGJhY2tMYW5nPy5ba2V5XVxuICB9XG5cbiAgLyoqXG4gICAqIEVzY2FwZSB2YXJpYWJsZSBzeW50YXhcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgZXNjYXBlZCBzdHJcbiAgICovXG4gIG1ha2VTYWZlKHN0cikge1xuICAgIGNvbnN0IG1hcE9iaiA9IHtcbiAgICAgICd7JzogJ1xcXFx7JyxcbiAgICAgICd9JzogJ1xcXFx9JyxcbiAgICAgICd8JzogJ1xcXFx8JyxcbiAgICB9XG5cbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvW3t9fF0vZywgbWF0Y2hlZCA9PiBtYXBPYmpbbWF0Y2hlZF0pXG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChzdHIsICdnJylcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3JhcmlseSBwdXQgYSBzdHJpbmcgaW50byB0aGUgY3VycmVudGx5IGxvYWRlZCBsYW5ndWFnZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0cmluZ1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHN0cmluZyBpbiBjdXJyZW50IGxhbmd1YWdlXG4gICAqL1xuICBwdXQoa2V5LCBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRba2V5XSA9IHN0cmluZ1xuXG4gICAgcmV0dXJuIHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGFyZ3VtZW50cyBmb3IgdGhlIHJlcXVlc3RlZCBzdHJpbmdcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIHRoZSBrZXkgd2UgdXNlIHRvIGxvb2t1cCBvdXIgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtICB7bXVsdGl9ICBhcmdzICBzdHJpbmcsIG51bWJlciBvciBvYmplY3QgY29udGFpbmluZyBvdXIgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgICB1cGRhdGVkIHN0cmluZyB0cmFuc2xhdGlvblxuICAgKi9cbiAgZ2V0KGtleSwgYXJncykge1xuICAgIGNvbnN0IF90aGlzID0gdGhpc1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoa2V5KVxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHRva2VucyA9IHZhbHVlLm1hdGNoKC9cXHtbXn1dKz9cXH0vZylcblxuICAgIGlmIChhcmdzICYmIHRva2Vucykge1xuICAgICAgaWYgKCdvYmplY3QnID09PSB0eXBlb2YgYXJncykge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgICAgICAgIGNvbnN0IGtleSA9IHRva2VuLnN1YnN0cmluZygxLCB0b2tlbi5sZW5ndGggLSAxKVxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZShfdGhpcy5tYWtlU2FmZSh0b2tlbiksIGFyZ3Nba2V5XSB8fCAnJylcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXHtbXn1dKz9cXH0vZywgYXJncylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBQcm9jZXNzIGEgbGFuZ3VhZ2UgZmlsZSBmcm9tIHJhdyB0ZXh0XG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmVzcG9uc2VcbiAgICogQHJldHVybiB7T2JqZWN0fSBwcm9jZXNzZWQgbGFuZ3VhZ2VcbiAgICovXG4gIHN0YXRpYyBwcm9jZXNzRmlsZShyZXNwb25zZSkge1xuICAgIHJldHVybiBJMThOLmZyb21GaWxlKHJlc3BvbnNlLnJlcGxhY2UoL1xcblxcbi9nLCAnXFxuJykpXG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZDogVHVybiByYXcgdGV4dCBmcm9tIHRoZSBsYW5ndWFnZSBmaWxlcyBpbnRvIGZhbmN5IEpTT05cbiAgICogQHBhcmFtICB7U3RyaW5nfSByYXdUZXh0XG4gICAqIEByZXR1cm4ge09iamVjdH0gY29udmVydGVkIGxhbmd1YWdlIGZpbGVcbiAgICovXG4gIHN0YXRpYyBmcm9tRmlsZShyYXdUZXh0KSB7XG4gICAgY29uc3QgbGluZXMgPSByYXdUZXh0LnNwbGl0KCdcXG4nKVxuICAgIGNvbnN0IGxhbmcgPSB7fVxuXG4gICAgZm9yIChsZXQgbWF0Y2hlcywgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcmVnZXggPSAvXiguKz8pICo/PSAqPyhbXlxcbl0rKS9cbiAgICAgIG1hdGNoZXMgPSByZWdleC5leGVjKGxpbmVzW2ldKVxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgbGFuZ1ttYXRjaGVzWzFdXSA9IG1hdGNoZXNbMl0ucmVwbGFjZSgvKF5cXHMrfFxccyskKS9nLCAnJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGFuZ1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYSByZW1vdGVseSBzdG9yZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0gIHtCb29sZWFufSB1c2VDYWNoZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgICAgICByZXNvbHZlcyByZXNwb25zZVxuICAgKi9cbiAgbG9hZExhbmcobG9jYWxlLCB1c2VDYWNoZSA9IHRydWUpIHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXNcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgaWYgKF90aGlzLmxvYWRlZC5pbmRleE9mKGxvY2FsZSkgIT09IC0xICYmIHVzZUNhY2hlKSB7XG4gICAgICAgIF90aGlzLmFwcGx5TGFuZ3VhZ2UoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxhbmdGaWxlID0gW190aGlzLmNvbmZpZy5sb2NhdGlvbiwgbG9jYWxlLCBfdGhpcy5jb25maWcuZXh0ZW5zaW9uXS5qb2luKCcnKVxuICAgICAgICByZXR1cm4gZmV0Y2hEYXRhKGxhbmdGaWxlKVxuICAgICAgICAgIC50aGVuKGxhbmcgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZSA9IEkxOE4ucHJvY2Vzc0ZpbGUobGFuZylcbiAgICAgICAgICAgIF90aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBwcm9jZXNzZWRGaWxlKVxuICAgICAgICAgICAgX3RoaXMubG9hZGVkLnB1c2gobG9jYWxlKVxuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoX3RoaXMubGFuZ3NbbG9jYWxlXSlcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgICAgICBjb25zdCBsYW5nID0gX3RoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUpXG4gICAgICAgICAgICByZXNvbHZlKGxhbmcpXG4gICAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGFwcGxpZXMgb3ZlcnJpZGVzIGZyb20gY29uZmlnXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGxhbmdcbiAgICogQHJldHVybiB7T2JqZWN0fSBvdmVycmlkZW4gbGFuZ3VhZ2VcbiAgICovXG4gIGFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBjb25zdCBvdmVycmlkZSA9IHRoaXMuY29uZmlnLm92ZXJyaWRlW2xvY2FsZV0gfHwge31cbiAgICBjb25zdCBleGlzdGluZ0xhbmcgPSB0aGlzLmxhbmdzW2xvY2FsZV0gfHwge31cbiAgICB0aGlzLmxhbmdzW2xvY2FsZV0gPSB7IC4uLmV4aXN0aW5nTGFuZywgLi4ubGFuZywgLi4ub3ZlcnJpZGUgfVxuICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gY3VycmVudGx5IGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHJldHVybiB7T2JqZWN0fSBhbGwgY29uZmlndXJlZCBsYW5ndWFnZXNcbiAgICovXG4gIGdldCBnZXRMYW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubGFuZ3NcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIHNldCB0aGUgY3VycmVudCBsYW5ndWFnZSB0byB0aGUgbG9jYWwgcHJvdmlkZWRcbiAgICogQHBhcmFtIHtTdHJpbmd9ICAgbG9jYWxlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGxhbmd1YWdlXG4gICAqL1xuICBhc3luYyBzZXRDdXJyZW50KGxvY2FsZSA9ICdlbi1VUycpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRMYW5nKGxvY2FsZSlcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVxuICAgIHRoaXMuY3VycmVudCA9IHRoaXMubGFuZ3NbbG9jYWxlXVxuXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBJMThOKClcbiIsImNvbnN0IGRlZmF1bHRPcHRpb25zID0gT2JqZWN0LmZyZWV6ZSh7IG1ldGhvZDogJ0dFVCcsIGJvZHk6ICcnIH0pXG4vKipcbiAqIEZldGNoZXMgYSByZXNvdXJjZSBmcm9tIHRoZSBuZXR3b3JrLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBUaGUgVVJMIHRvIGZldGNoLlxuICogQHBhcmFtIHtPYmplY3R9IFtmZXRjaE9wdGlvbnM9e31dIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBmZXRjaCByZXF1ZXN0LlxuICogQHBhcmFtIHtPYmplY3R9IFtmZXRjaE9wdGlvbnMuaGVhZGVyc10gLSBIZWFkZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2ZldGNoT3B0aW9ucy5tZXRob2RdIC0gVGhlIEhUVFAgbWV0aG9kIHRvIHVzZSAoZS5nLiwgJ0dFVCcsICdQT1NUJykuXG4gKiBAcGFyYW0ge3N0cmluZ3xCdWZmZXJ9IFtmZXRjaE9wdGlvbnMuYm9keV0gLSBUaGUgYm9keSBvZiB0aGUgcmVxdWVzdC5cbiAqIEByZXR1cm4ge1Byb21pc2U8T2JqZWN0Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IHJldHVybi5vayAtIEluZGljYXRlcyBpZiB0aGUgcmVzcG9uc2Ugc3RhdHVzIGlzIGluIHRoZSByYW5nZSAyMDAtMjk5LlxuICogQHJldHVybiB7bnVtYmVyfSByZXR1cm4uc3RhdHVzIC0gVGhlIEhUVFAgc3RhdHVzIGNvZGUgb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7c3RyaW5nfSByZXR1cm4uc3RhdHVzVGV4dCAtIFRoZSBIVFRQIHN0YXR1cyBtZXNzYWdlIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge01hcDxzdHJpbmcsIHN0cmluZz59IHJldHVybi5oZWFkZXJzIC0gVGhlIGhlYWRlcnMgb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7QnVmZmVyfSByZXR1cm4uYm9keSAtIFRoZSBib2R5IG9mIHRoZSByZXNwb25zZSBhcyBhIEJ1ZmZlci5cbiAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6IFByb21pc2U8QnVmZmVyPn0gcmV0dXJuLmFycmF5QnVmZmVyIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgYm9keSBhcyBhbiBBcnJheUJ1ZmZlci5cbiAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6IFByb21pc2U8T2JqZWN0Pn0gcmV0dXJuLmpzb24gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IHBhcnNlZCBhcyBKU09OLlxuICovXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEodXJsKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBIVFRQIGVycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApXG4gICAgfVxuICAgIGNvbnN0IGhhbmRsZXIgPSB1cmwuZW5kc1dpdGgoJy5sYW5nJykgPyAndGV4dCcgOiAnanNvbidcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2VbaGFuZGxlcl0oKVxuICAgIHJldHVybiBkYXRhXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignVGhlcmUgaGFzIGJlZW4gYSBwcm9ibGVtIHdpdGggeW91ciBmZXRjaCBvcGVyYXRpb246JywgZXJyb3IpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkRFRkFVTFRfQ09ORklHIiwiZXh0ZW5zaW9uIiwibG9jYXRpb24iLCJsYW5ncyIsImxvY2FsZSIsIm92ZXJyaWRlIiwiSTE4TiIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsInRoaXMiLCJPYmplY3QiLCJjcmVhdGUiLCJsb2FkZWQiLCJwcm9jZXNzQ29uZmlnIiwicmVzdE9wdGlvbnMiLCJwYXJzZWRMb2NhdGlvbiIsInJlcGxhY2UiLCJjb25maWciLCJwcmVsb2FkZWQiLCJhbGxMYW5ncyIsImVudHJpZXMiLCJjb25jYXQiLCJyZWR1Y2UiLCJhY2MiLCJsYW5nIiwiYXBwbHlMYW5ndWFnZSIsImluaXQiLCJzZXRDdXJyZW50IiwiYWRkTGFuZ3VhZ2UiLCJwcm9jZXNzRmlsZSIsInB1c2giLCJnZXRWYWx1ZSIsImtleSIsIl9hIiwiZ2V0RmFsbGJhY2tWYWx1ZSIsImZhbGxiYWNrTGFuZyIsInZhbHVlcyIsImZpbmQiLCJtYWtlU2FmZSIsInN0ciIsIm1hcE9iaiIsIm1hdGNoZWQiLCJSZWdFeHAiLCJwdXQiLCJzdHJpbmciLCJjdXJyZW50IiwiZ2V0IiwiYXJncyIsIl90aGlzIiwidmFsdWUiLCJ0b2tlbnMiLCJtYXRjaCIsInRva2VuIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwicmVzcG9uc2UiLCJmcm9tRmlsZSIsInJhd1RleHQiLCJsaW5lcyIsInNwbGl0IiwibWF0Y2hlcyIsImkiLCJleGVjIiwibG9hZExhbmciLCJ1c2VDYWNoZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiaW5kZXhPZiIsImFzeW5jIiwidXJsIiwiZmV0Y2giLCJvayIsIkVycm9yIiwic3RhdHVzIiwiaGFuZGxlciIsImVuZHNXaXRoIiwiZXJyb3IiLCJmZXRjaERhdGEiLCJqb2luIiwidGhlbiIsInByb2Nlc3NlZEZpbGUiLCJjYXRjaCIsImVyciIsImV4aXN0aW5nTGFuZyIsImdldExhbmdzIiwibWkxOG4iXSwibWFwcGluZ3MiOiJrQ0FFQSxNQUFNQSxFQUFpQixDQUNyQkMsVUFBVyxRQUVYQyxTQUFVLGVBRVZDLE1BQU8sQ0FBQyxTQUNSQyxPQUFRLFFBQ1JDLFNBQVUsQ0FBRSxHQVFQLE1BQU1DLEVBS1gsV0FBQUMsQ0FBWUMsRUFBVVIsR0FDZlMsS0FBQU4sTUFBZU8sT0FBQUMsT0FBTyxNQUMzQkYsS0FBS0csT0FBUyxHQUNkSCxLQUFLSSxjQUFjTCxFQUNwQixDQU1ELGFBQUFLLENBQWNMLEdBQ04sTUFBQU4sU0FBRUEsS0FBYVksR0FBZ0IsSUFBS2QsS0FBbUJRLEdBQ3ZETyxFQUFpQmIsRUFBU2MsUUFBUSxPQUFRLEtBQ2hEUCxLQUFLUSxPQUFTLENBQUVmLFNBQVVhLEtBQW1CRCxHQUM3QyxNQUFNVCxTQUFFQSxFQUFVYSxVQUFBQSxFQUFZLENBQUEsR0FBT1QsS0FBS1EsT0FDcENFLEVBQVdULE9BQU9VLFFBQVFYLEtBQUtOLE9BQU9rQixPQUFPWCxPQUFPVSxRQUFRZixHQUFZYSxJQUN6RVQsS0FBQU4sTUFBUWdCLEVBQVNHLFFBQU8sQ0FBQ0MsR0FBTW5CLEVBQVFvQixNQUMxQ0QsRUFBSW5CLEdBQVVLLEtBQUtnQixjQUFjckIsRUFBUW9CLEdBQ2xDRCxJQUNOLElBQ0hkLEtBQUtMLE9BQVNLLEtBQUtRLE9BQU9iLFFBQVVL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
|
|
8
|
+
var i18n=function(t){"use strict";const e={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}};let n=null;class s{constructor(t=e){this.langs=Object.create(null),this.loaded=[],this.processConfig(t)}processConfig(t){const{location:n,...s}={...e,...t},a=n.endsWith("/")?n:`${n}/`;this.config={location:a,...s};const{preloaded:i={},override:r={}}=this.config,l=new Set([...Object.keys(i),...Object.keys(r)]);for(const e of l){const t={...i[e]||{},...r[e]||{}};this.applyLanguage(e,t)}this.locale=this.config.locale||this.config.langs[0]}init(t){return this.processConfig({...this.config,...t}),this.setCurrent(this.locale)}addLanguage(t,e={}){e="string"==typeof e?s.processFile(e):e,this.applyLanguage(t,e),this.loaded.push(t),this.config.langs.push(t)}getValue(t,e=this.locale){var n;return(null==(n=this.langs[e])?void 0:n[t])||this.getFallbackValue(t)}getFallbackValue(t){const e=Object.values(this.langs).find((e=>e[t]));return null==e?void 0:e[t]}makeSafe(t){const e={"{":String.raw`\{`,"}":String.raw`\}`,"|":String.raw`\|`},n=t.replaceAll(/[{}|]/g,(t=>e[t]));return new RegExp(n,"g")}put(t,e){return this.current[t]=e,e}get(t,e){let n=this.getValue(t);if(!n)return;if(!e)return n;const s=n.match(/\{[^}]+?\}/g);if(!s)return n;if("object"==typeof e)for(const a of s){const t=a.slice(1,-1);n=n.replace(this.makeSafe(a),e[t]??"")}else n=n.replaceAll(/\{[^}]+?\}/g,e);return n}static processFile(t){return a.fromFile(t.replaceAll("\n\n","\n"))}static fromFile(t){const e=t.split("\n"),n={};for(let s,a=0;a<e.length;a++){s=/^(.+?) *?= *?([^\n]+)/.exec(e[a]),s&&(n[s[1]]=s[2].trim())}return n}static getInstance(t){return n||(n=new s(t)),n}static resetInstance(){n=null}async loadLang(t,e=!0){if(this.loaded.includes(t)&&e)return this.langs[t];const n=`${this.config.location}${t}${this.config.extension}`;try{const e=await async function(t){try{const e=await fetch(t);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const n=t.endsWith(".lang")?"text":"json";return await e[n]()}catch(e){throw e}}(n),a=s.processFile(e);return this.applyLanguage(t,a),this.langs[t]}catch(a){return this.applyLanguage(t)}}applyLanguage(t,e={}){const n=this.config.override[t]||{},s=this.langs[t]||{};return this.langs[t]={...s,...e,...n},this.loaded.push(t),this.langs[t]}get getLangs(){return this.config.langs}async setCurrent(t="en-US"){return this.loaded.includes(t)||await this.loadLang(t),this.locale=t,this.current=this.langs[t],this.current}}const a=new Proxy(s,{apply:(t,e,n)=>t.getInstance(...n),construct:(t,e)=>new t(...e),get:(t,e)=>t[e]}),i=a.getInstance();return t.I18N=a,t.default=i,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),t}({});
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5paWZlLm1pbi5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL21pMThuLmpzIiwiLi4vc3JjL2ZldGNoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZldGNoRGF0YSB9IGZyb20gJy4vZmV0Y2guanMnXG5cbmNvbnN0IERFRkFVTFRfQ09ORklHID0ge1xuICBleHRlbnNpb246ICcubGFuZycsXG4gIC8vIGxvY2FsIG9yIHJlbW90ZSBkaXJlY3RvcnkgY29udGFpbmluZyBsYW5ndWFnZSBmaWxlc1xuICBsb2NhdGlvbjogJ2Fzc2V0cy9sYW5nLycsXG4gIC8vIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMsIGhhbmR5IGZvciBwb3B1bGF0aW5nIHNlbGVjdG9yLlxuICBsYW5nczogWydlbi1VUyddLFxuICBsb2NhbGU6ICdlbi1VUycsIC8vIGluaXQgd2l0aCB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlXG4gIG92ZXJyaWRlOiB7fSxcbn1cblxuLy8gU2luZ2xldG9uIGluc3RhbmNlIGhvbGRlclxubGV0IGluc3RhbmNlID0gbnVsbFxuXG4vKipcbiAqIE1haW4gaTE4biBjbGFzc1xuICogQGNsYXNzIEkxOE5CYXNlXG4gKiBAY2xhc3NkZXNjIG1ldGhvZHMgYW5kIGRhdGEgc3RvcmUgZm9yIGkxOG5cbiAqL1xuY2xhc3MgSTE4TkJhc2Uge1xuICAvKipcbiAgICogUHJvY2VzcyBvcHRpb25zIGFuZCBzdGFydCB0aGUgbW9kdWxlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0gREVGQVVMVF9DT05GSUcpIHtcbiAgICB0aGlzLmxhbmdzID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIHRoaXMubG9hZGVkID0gW11cbiAgICB0aGlzLnByb2Nlc3NDb25maWcob3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJzZSBhbmQgZm9ybWF0IGNvbmZpZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgcHJvY2Vzc0NvbmZpZyhvcHRpb25zKSB7XG4gICAgY29uc3QgeyBsb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfSA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLm9wdGlvbnMgfVxuICAgIC8vIEVuc3VyZSBsb2NhdGlvbiBlbmRzIHdpdGggYSBzbGFzaFxuICAgIGNvbnN0IHBhcnNlZExvY2F0aW9uID0gbG9jYXRpb24uZW5kc1dpdGgoJy8nKSA/IGxvY2F0aW9uIDogYCR7bG9jYXRpb259L2BcbiAgICB0aGlzLmNvbmZpZyA9IHsgbG9jYXRpb246IHBhcnNlZExvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9XG5cbiAgICBjb25zdCB7IHByZWxvYWRlZCA9IHt9LCBvdmVycmlkZSA9IHt9IH0gPSB0aGlzLmNvbmZpZ1xuXG4gICAgLy8gTWVyZ2UgbG9jYWxlcyBmcm9tIGJvdGggcHJlbG9hZGVkIGFuZCBvdmVycmlkZVxuICAgIC8vIFRoaXMgc3VwcG9ydHMgbGVnYWN5IHVzYWdlIHdoZXJlIG92ZXJyaWRlIGRlZmluZWQgZW50aXJlIGxhbmd1YWdlc1xuICAgIGNvbnN0IGFsbExvY2FsZXMgPSBuZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhwcmVsb2FkZWQpLCAuLi5PYmplY3Qua2V5cyhvdmVycmlkZSldKVxuXG4gICAgLy8gQXBwbHkgbGFuZ3VhZ2VzIGZyb20gYm90aCBwcmVsb2FkZWQgYW5kIG92ZXJyaWRlXG4gICAgLy8gYXBwbHlMYW5ndWFnZSB3aWxsIG1lcmdlIHRoZW0gcHJvcGVybHkgKGV4aXN0aW5nICsgcHJlbG9hZGVkICsgb3ZlcnJpZGUpXG4gICAgZm9yIChjb25zdCBsb2NhbGUgb2YgYWxsTG9jYWxlcykge1xuICAgICAgY29uc3QgcHJlbG9hZGVkTGFuZyA9IHByZWxvYWRlZFtsb2NhbGVdIHx8IHt9XG4gICAgICBjb25zdCBvdmVycmlkZUxhbmcgPSBvdmVycmlkZVtsb2NhbGVdIHx8IHt9XG4gICAgICAvLyBNZXJnZSBwcmVsb2FkZWQgYW5kIG92ZXJyaWRlIGZvciB0aGlzIGxvY2FsZVxuICAgICAgY29uc3QgbWVyZ2VkTGFuZyA9IHsgLi4ucHJlbG9hZGVkTGFuZywgLi4ub3ZlcnJpZGVMYW5nIH1cbiAgICAgIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIG1lcmdlZExhbmcpXG4gICAgfVxuXG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLmNvbmZpZy5sb2NhbGUgfHwgdGhpcy5jb25maWcubGFuZ3NbMF1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGxhbmd1YWdlIGFuZCBzZXQgZGVmYXVsdFxuICAgKiBAcGFyYW0gIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgIHJlc29sdmVzIGxhbmd1YWdlXG4gICAqL1xuICBpbml0KG9wdGlvbnMpIHtcbiAgICB0aGlzLnByb2Nlc3NDb25maWcoeyAuLi50aGlzLmNvbmZpZywgLi4ub3B0aW9ucyB9KVxuICAgIHJldHVybiB0aGlzLnNldEN1cnJlbnQodGhpcy5sb2NhbGUpXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGxhbmd1YWdlIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGxhbmdcbiAgICovXG4gIGFkZExhbmd1YWdlKGxvY2FsZSwgbGFuZyA9IHt9KSB7XG4gICAgbGFuZyA9IHR5cGVvZiBsYW5nID09PSAnc3RyaW5nJyA/IEkxOE5CYXNlLnByb2Nlc3NGaWxlKGxhbmcpIDogbGFuZ1xuICAgIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgdGhpcy5sb2FkZWQucHVzaChsb2NhbGUpXG4gICAgdGhpcy5jb25maWcubGFuZ3MucHVzaChsb2NhbGUpXG4gIH1cblxuICAvKipcbiAgICogZ2V0IGEgc3RyaW5nIGZyb20gYSBsb2FkZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgLSB0aGUga2V5IGZvciB0aGUgc3RyaW5nIHdlIGFyZSB0cnlpbmcgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGUgLSBsb2NhbGUgdG8gY2hlY2sgZm9yIHZhbHVlXG4gICAqIEByZXR1cm4ge1N0cmluZ30gbGFuZ3VhZ2Ugc3RyaW5nIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0VmFsdWUoa2V5LCBsb2NhbGUgPSB0aGlzLmxvY2FsZSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5sYW5nc1tsb2NhbGVdPy5ba2V5XVxuICAgIHJldHVybiB2YWx1ZSB8fCB0aGlzLmdldEZhbGxiYWNrVmFsdWUoa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgYSBsYW5ndWFnZSB0aGF0IGhhcyBkZXNpcmVkIGtleVxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IHZhbHVlIGtleVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGZvdW5kIHZhbHVlIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0RmFsbGJhY2tWYWx1ZShrZXkpIHtcbiAgICBjb25zdCBmYWxsYmFja0xhbmcgPSBPYmplY3QudmFsdWVzKHRoaXMubGFuZ3MpLmZpbmQobGFuZyA9PiBsYW5nW2tleV0pXG4gICAgcmV0dXJuIGZhbGxiYWNrTGFuZz8uW2tleV1cbiAgfVxuXG4gIC8qKlxuICAgKiBFc2NhcGUgdmFyaWFibGUgc3ludGF4XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgIGVzY2FwZWQgc3RyXG4gICAqL1xuICBtYWtlU2FmZShzdHIpIHtcbiAgICBjb25zdCBtYXBPYmogPSB7XG4gICAgICAneyc6IFN0cmluZy5yYXdgXFx7YCxcbiAgICAgICd9JzogU3RyaW5nLnJhd2BcXH1gLFxuICAgICAgJ3wnOiBTdHJpbmcucmF3YFxcfGAsXG4gICAgfVxuXG4gICAgY29uc3QgZXNjYXBlZFN0ciA9IHN0ci5yZXBsYWNlQWxsKC9be318XS9nLCBtYXRjaGVkID0+IG1hcE9ialttYXRjaGVkXSlcblxuICAgIHJldHVybiBuZXcgUmVnRXhwKGVzY2FwZWRTdHIsICdnJylcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3JhcmlseSBwdXQgYSBzdHJpbmcgaW50byB0aGUgY3VycmVudGx5IGxvYWRlZCBsYW5ndWFnZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0cmluZ1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHN0cmluZyBpbiBjdXJyZW50IGxhbmd1YWdlXG4gICAqL1xuICBwdXQoa2V5LCBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRba2V5XSA9IHN0cmluZ1xuXG4gICAgcmV0dXJuIHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGFyZ3VtZW50cyBmb3IgdGhlIHJlcXVlc3RlZCBzdHJpbmdcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIHRoZSBrZXkgd2UgdXNlIHRvIGxvb2t1cCBvdXIgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtICB7bXVsdGl9ICBhcmdzICBzdHJpbmcsIG51bWJlciBvciBvYmplY3QgY29udGFpbmluZyBvdXIgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1N0cmluZ30gICAgICB1cGRhdGVkIHN0cmluZyB0cmFuc2xhdGlvblxuICAgKi9cbiAgZ2V0KGtleSwgYXJncykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoa2V5KVxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIE5vIHJlcGxhY2VtZW50IG5lZWRlZCBpZiBubyBhcmdzIHByb3ZpZGVkXG4gICAgaWYgKCFhcmdzKSB7XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbnMgPSB2YWx1ZS5tYXRjaCgvXFx7W159XSs/XFx9L2cpXG5cbiAgICAvLyBObyB0b2tlbnMgdG8gcmVwbGFjZVxuICAgIGlmICghdG9rZW5zKSB7XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9XG5cbiAgICAvLyBPYmplY3QgYXJnczogcmVwbGFjZSBlYWNoIHRva2VuIHdpdGggY29ycmVzcG9uZGluZyBrZXlcbiAgICBpZiAodHlwZW9mIGFyZ3MgPT09ICdvYmplY3QnKSB7XG4gICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgICAgICBjb25zdCB0b2tlbktleSA9IHRva2VuLnNsaWNlKDEsIC0xKVxuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UodGhpcy5tYWtlU2FmZSh0b2tlbiksIGFyZ3NbdG9rZW5LZXldID8/ICcnKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQcmltaXRpdmUgYXJnczogcmVwbGFjZSBhbGwgdG9rZW5zIHdpdGggc2FtZSB2YWx1ZVxuICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlQWxsKC9cXHtbXn1dKz9cXH0vZywgYXJncylcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBQcm9jZXNzIGEgbGFuZ3VhZ2UgZmlsZSBmcm9tIHJhdyB0ZXh0XG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmVzcG9uc2VcbiAgICogQHJldHVybiB7T2JqZWN0fSBwcm9jZXNzZWQgbGFuZ3VhZ2VcbiAgICovXG4gIHN0YXRpYyBwcm9jZXNzRmlsZShyZXNwb25zZSkge1xuICAgIHJldHVybiBJMThOLmZyb21GaWxlKHJlc3BvbnNlLnJlcGxhY2VBbGwoJ1xcblxcbicsICdcXG4nKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBUdXJuIHJhdyB0ZXh0IGZyb20gdGhlIGxhbmd1YWdlIGZpbGVzIGludG8gZmFuY3kgSlNPTlxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHJhd1RleHRcbiAgICogQHJldHVybiB7T2JqZWN0fSBjb252ZXJ0ZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlKHJhd1RleHQpIHtcbiAgICBjb25zdCBsaW5lcyA9IHJhd1RleHQuc3BsaXQoJ1xcbicpXG4gICAgY29uc3QgbGFuZyA9IHt9XG5cbiAgICBmb3IgKGxldCBtYXRjaGVzLCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCByZWdleCA9IC9eKC4rPykgKj89ICo/KFteXFxuXSspL1xuICAgICAgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMobGluZXNbaV0pXG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICBsYW5nW21hdGNoZXNbMV1dID0gbWF0Y2hlc1syXS50cmltKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGFuZ1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2luZ2xldG9uIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEByZXR1cm4ge0kxOE5CYXNlfSBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBnZXRJbnN0YW5jZShvcHRpb25zKSB7XG4gICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgaW5zdGFuY2UgPSBuZXcgSTE4TkJhc2Uob3B0aW9ucylcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlXG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSAodXNlZnVsIGZvciB0ZXN0aW5nKVxuICAgKi9cbiAgc3RhdGljIHJlc2V0SW5zdGFuY2UoKSB7XG4gICAgaW5zdGFuY2UgPSBudWxsXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhIHJlbW90ZWx5IHN0b3JlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSAge0Jvb2xlYW59IHVzZUNhY2hlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgIHJlc29sdmVzIHJlc3BvbnNlXG4gICAqL1xuICBhc3luYyBsb2FkTGFuZyhsb2NhbGUsIHVzZUNhY2hlID0gdHJ1ZSkge1xuICAgIC8vIFJldHVybiBjYWNoZWQgbGFuZ3VhZ2UgaWYgYWxyZWFkeSBsb2FkZWRcbiAgICBpZiAodGhpcy5sb2FkZWQuaW5jbHVkZXMobG9jYWxlKSAmJiB1c2VDYWNoZSkge1xuICAgICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICAgIH1cbiAgICAvLyBGZXRjaCBhbmQgcHJvY2VzcyBsYW5ndWFnZSBmaWxlXG4gICAgY29uc3QgbGFuZ0ZpbGUgPSBgJHt0aGlzLmNvbmZpZy5sb2NhdGlvbn0ke2xvY2FsZX0ke3RoaXMuY29uZmlnLmV4dGVuc2lvbn1gXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgbGFuZyA9IGF3YWl0IGZldGNoRGF0YShsYW5nRmlsZSlcbiAgICAgIGNvbnN0IHByb2Nlc3NlZEZpbGUgPSBJMThOQmFzZS5wcm9jZXNzRmlsZShsYW5nKVxuICAgICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgcHJvY2Vzc2VkRmlsZSlcbiAgICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxuICAgICAgcmV0dXJuIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGFwcGxpZXMgb3ZlcnJpZGVzIGZyb20gY29uZmlnXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGxhbmdcbiAgICogQHJldHVybiB7T2JqZWN0fSBvdmVycmlkZW4gbGFuZ3VhZ2VcbiAgICovXG4gIGFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBjb25zdCBvdmVycmlkZSA9IHRoaXMuY29uZmlnLm92ZXJyaWRlW2xvY2FsZV0gfHwge31cbiAgICBjb25zdCBleGlzdGluZ0xhbmcgPSB0aGlzLmxhbmdzW2xvY2FsZV0gfHwge31cbiAgICB0aGlzLmxhbmdzW2xvY2FsZV0gPSB7IC4uLmV4aXN0aW5nTGFuZywgLi4ubGFuZywgLi4ub3ZlcnJpZGUgfVxuICAgIHRoaXMubG9hZGVkLnB1c2gobG9jYWxlKVxuICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gY3VycmVudGx5IGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHJldHVybiB7T2JqZWN0fSBhbGwgY29uZmlndXJlZCBsYW5ndWFnZXNcbiAgICovXG4gIGdldCBnZXRMYW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubGFuZ3NcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIHNldCB0aGUgY3VycmVudCBsYW5ndWFnZSB0byB0aGUgbG9jYWwgcHJvdmlkZWRcbiAgICogQHBhcmFtIHtTdHJpbmd9ICAgbG9jYWxlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGxhbmd1YWdlXG4gICAqL1xuICBhc3luYyBzZXRDdXJyZW50KGxvY2FsZSA9ICdlbi1VUycpIHtcbiAgICBpZiAoIXRoaXMubG9hZGVkLmluY2x1ZGVzKGxvY2FsZSkpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZExhbmcobG9jYWxlKVxuICAgIH1cblxuICAgIHRoaXMubG9jYWxlID0gbG9jYWxlXG4gICAgdGhpcy5jdXJyZW50ID0gdGhpcy5sYW5nc1tsb2NhbGVdXG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50XG4gIH1cbn1cblxuLyoqXG4gKiBQcm94eSB3cmFwcGVyIHRoYXQgZW5hYmxlcyBzaW5nbGV0b24gcGF0dGVybjpcbiAqIC0gSTE4TigpIHJldHVybnMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZVxuICogLSBuZXcgSTE4TigpIGNyZWF0ZXMgYSBuZXcgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IEkxOE4gPSBuZXcgUHJveHkoSTE4TkJhc2UsIHtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIEkxOE4oKSBpcyBpbnZva2VkIGFzIGEgZnVuY3Rpb24gKHdpdGhvdXQgbmV3KVxuICAgKiBSZXR1cm5zIHRoZSBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICovXG4gIGFwcGx5KHRhcmdldCwgdGhpc0FyZywgYXJncykge1xuICAgIHJldHVybiB0YXJnZXQuZ2V0SW5zdGFuY2UoLi4uYXJncylcbiAgfSxcblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gbmV3IEkxOE4oKSBpcyBpbnZva2VkXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdCh0YXJnZXQsIGFyZ3MpIHtcbiAgICByZXR1cm4gbmV3IHRhcmdldCguLi5hcmdzKVxuICB9LFxuXG4gIC8qKlxuICAgKiBQcm94eSBwcm9wZXJ0eSBhY2Nlc3MgdG8gdGhlIGJhc2UgY2xhc3NcbiAgICovXG4gIGdldCh0YXJnZXQsIHByb3ApIHtcbiAgICByZXR1cm4gdGFyZ2V0W3Byb3BdXG4gIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBJMThOLmdldEluc3RhbmNlKClcbiIsImNvbnN0IGRlZmF1bHRPcHRpb25zID0gT2JqZWN0LmZyZWV6ZSh7IG1ldGhvZDogJ0dFVCcsIGJvZHk6ICcnIH0pXG4vKipcbiAqIEZldGNoZXMgYSByZXNvdXJjZSBmcm9tIHRoZSBuZXR3b3JrLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBUaGUgVVJMIHRvIGZldGNoLlxuICogQHBhcmFtIHtPYmplY3R9IFtmZXRjaE9wdGlvbnM9e31dIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBmZXRjaCByZXF1ZXN0LlxuICogQHBhcmFtIHtPYmplY3R9IFtmZXRjaE9wdGlvbnMuaGVhZGVyc10gLSBIZWFkZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2ZldGNoT3B0aW9ucy5tZXRob2RdIC0gVGhlIEhUVFAgbWV0aG9kIHRvIHVzZSAoZS5nLiwgJ0dFVCcsICdQT1NUJykuXG4gKiBAcGFyYW0ge3N0cmluZ3xCdWZmZXJ9IFtmZXRjaE9wdGlvbnMuYm9keV0gLSBUaGUgYm9keSBvZiB0aGUgcmVxdWVzdC5cbiAqIEByZXR1cm4ge1Byb21pc2U8T2JqZWN0Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IHJldHVybi5vayAtIEluZGljYXRlcyBpZiB0aGUgcmVzcG9uc2Ugc3RhdHVzIGlzIGluIHRoZSByYW5nZSAyMDAtMjk5LlxuICogQHJldHVybiB7bnVtYmVyfSByZXR1cm4uc3RhdHVzIC0gVGhlIEhUVFAgc3RhdHVzIGNvZGUgb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7c3RyaW5nfSByZXR1cm4uc3RhdHVzVGV4dCAtIFRoZSBIVFRQIHN0YXR1cyBtZXNzYWdlIG9mIHRoZSByZXNwb25zZS5cbiAqIEByZXR1cm4ge01hcDxzdHJpbmcsIHN0cmluZz59IHJldHVybi5oZWFkZXJzIC0gVGhlIGhlYWRlcnMgb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7QnVmZmVyfSByZXR1cm4uYm9keSAtIFRoZSBib2R5IG9mIHRoZSByZXNwb25zZSBhcyBhIEJ1ZmZlci5cbiAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6IFByb21pc2U8QnVmZmVyPn0gcmV0dXJuLmFycmF5QnVmZmVyIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgYm9keSBhcyBhbiBBcnJheUJ1ZmZlci5cbiAqIEByZXR1cm4ge2Z1bmN0aW9uKCk6IFByb21pc2U8T2JqZWN0Pn0gcmV0dXJuLmpzb24gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IHBhcnNlZCBhcyBKU09OLlxuICovXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEodXJsKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBIVFRQIGVycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApXG4gICAgfVxuICAgIGNvbnN0IGhhbmRsZXIgPSB1cmwuZW5kc1dpdGgoJy5sYW5nJykgPyAndGV4dCcgOiAnanNvbidcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2VbaGFuZGxlcl0oKVxuICAgIHJldHVybiBkYXRhXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignVGhlcmUgaGFzIGJlZW4gYSBwcm9ibGVtIHdpdGggeW91ciBmZXRjaCBvcGVyYXRpb246JywgZXJyb3IpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkRFRkFVTFRfQ09ORklHIiwiZXh0ZW5zaW9uIiwibG9jYXRpb24iLCJsYW5ncyIsImxvY2FsZSIsIm92ZXJyaWRlIiwiaW5zdGFuY2UiLCJJMThOQmFzZSIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsInRoaXMiLCJPYmplY3QiLCJjcmVhdGUiLCJsb2FkZWQiLCJwcm9jZXNzQ29uZmlnIiwicmVzdE9wdGlvbnMiLCJwYXJzZWRMb2NhdGlvbiIsImVuZHNXaXRoIiwiY29uZmlnIiwicHJlbG9hZGVkIiwiYWxsTG9jYWxlcyIsIlNldCIsImtleXMiLCJtZXJnZWRMYW5nIiwiYXBwbHlMYW5ndWFnZSIsImluaXQiLCJzZXRDdXJyZW50IiwiYWRkTGFuZ3VhZ2UiLCJsYW5nIiwicHJvY2Vzc0ZpbGUiLCJwdXNoIiwiZ2V0VmFsdWUiLCJrZXkiLCJfYSIsImdldEZhbGxiYWNrVmFsdWUiLCJmYWxsYmFja0xhbmciLCJ2YWx1ZXMiLCJmaW5kIiwibWFrZVNhZmUiLCJzdHIiLCJtYXBPYmoiLCJTdHJpbmciLCJyYXciLCJlc2NhcGVkU3RyIiwicmVwbGFjZUFsbCIsIm1hdGNoZWQiLCJSZWdFeHAiLCJwdXQiLCJzdHJpbmciLCJjdXJyZW50IiwiZ2V0IiwiYXJncyIsInZhbHVlIiwidG9rZW5zIiwibWF0Y2giLCJ0b2tlbiIsInRva2VuS2V5Iiwic2xpY2UiLCJyZXBsYWNlIiwicmVzcG9uc2UiLCJJMThOIiwiZnJvbUZpbGUiLCJyYXdUZXh0IiwibGluZXMiLCJzcGxpdCIsIm1hdGNoZXMiLCJpIiwibGVuZ3RoIiwiZXhlYyIsInRyaW0iLCJnZXRJbnN0YW5jZSIsInJlc2V0SW5zdGFuY2UiLCJsb2FkTGFuZyIsInVzZUNhY2hlIiwiaW5jbHVkZXMiLCJsYW5nRmlsZSIsImFzeW5jIiwidXJsIiwiZmV0Y2giLCJvayIsIkVycm9yIiwic3RhdHVzIiwiaGFuZGxlciIsImVycm9yIiwiZmV0Y2hEYXRhIiwicHJvY2Vzc2VkRmlsZSIsImVyciIsImV4aXN0aW5nTGFuZyIsImdldExhbmdzIiwiUHJveHkiLCJhcHBseSIsInRhcmdldCIsInRoaXNBcmciLCJjb25zdHJ1Y3QiLCJwcm9wIiwibWkxOG4iXSwibWFwcGluZ3MiOiJrQ0FFQSxNQUFNQSxFQUFpQixDQUNyQkMsVUFBVyxRQUVYQyxTQUFVLGVBRVZDLE1BQU8sQ0FBQyxTQUNSQyxPQUFRLFFBQ1JDLFNBQVUsQ0FBRSxHQUlkLElBQUlDLEVBQVcsS0FPZixNQUFNQyxFQUtKLFdBQUFDLENBQVlDLEVBQVVULEdBQ2ZVLEtBQUFQLE1BQWVRLE9BQUFDLE9BQU8sTUFDM0JGLEtBQUtHLE9BQVMsR0FDZEgsS0FBS0ksY0FBY0wsRUFDcEIsQ0FNRCxhQUFBSyxDQUFjTCxHQUNOLE1BQUFQLFNBQUVBLEtBQWFhLEdBQWdCLElBQUtmLEtBQW1CUyxHQUV2RE8sRUFBaUJkLEVBQVNlLFNBQVMsS0FBT2YsRUFBVyxHQUFHQSxLQUM5RFEsS0FBS1EsT0FBUyxDQUFFaEIsU0FBVWMsS0FBbUJELEdBRXZDLE1BQUFJLFVBQUVBLEVBQVksQ0FBRSxFQUFBZCxTQUFFQSxFQUFXLENBQUUsR0FBS0ssS0FBS1EsT0FJekNFLEVBQWEsSUFBSUMsSUFBSSxJQUFJVixPQUFPVyxLQUFLSCxNQUFlUixPQUFPVyxLQUFLakIsS0FJdEUsSUFBQSxNQUFXRCxLQUFVZ0IsRUFBWSxDQUMvQixNQUdNRyxFQUFhLElBSEdKLEVBQVVmLElBQVcs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
|
package/dist/i18n.iife.min.js.gz
CHANGED
|
Binary file
|
package/dist/i18n.umd.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
3
|
@draggable/i18n - https://github.com/Draggable/i18n
|
|
4
|
-
Version: 1.0.
|
|
4
|
+
Version: 1.0.8
|
|
5
5
|
Author: Draggable https://draggable.io
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(e
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51bWQubWluLmpzIiwic291cmNlcyI6WyIuLi9zcmMvbWkxOG4uanMiLCIuLi9zcmMvZmV0Y2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hEYXRhIH0gZnJvbSAnLi9mZXRjaC5qcydcblxuY29uc3QgREVGQVVMVF9DT05GSUcgPSB7XG4gIGV4dGVuc2lvbjogJy5sYW5nJyxcbiAgLy8gbG9jYWwgb3IgcmVtb3RlIGRpcmVjdG9yeSBjb250YWluaW5nIGxhbmd1YWdlIGZpbGVzXG4gIGxvY2F0aW9uOiAnYXNzZXRzL2xhbmcvJyxcbiAgLy8gbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcywgaGFuZHkgZm9yIHBvcHVsYXRpbmcgc2VsZWN0b3IuXG4gIGxhbmdzOiBbJ2VuLVVTJ10sXG4gIGxvY2FsZTogJ2VuLVVTJywgLy8gaW5pdCB3aXRoIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VcbiAgb3ZlcnJpZGU6IHt9LFxufVxuXG4vKipcbiAqIE1haW4gaTE4biBjbGFzc1xuICogQGNsYXNzIEkxOE5cbiAqIEBjbGFzc2Rlc2MgbWV0aG9kcyBhbmQgZGF0YSBzdG9yZSBmb3IgaTE4blxuICovXG5leHBvcnQgY2xhc3MgSTE4TiB7XG4gIC8qKlxuICAgKiBQcm9jZXNzIG9wdGlvbnMgYW5kIHN0YXJ0IHRoZSBtb2R1bGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSBERUZBVUxUX0NPTkZJRykge1xuICAgIHRoaXMubGFuZ3MgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgdGhpcy5sb2FkZWQgPSBbXVxuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyhvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIHBhcnNlIGFuZCBmb3JtYXQgY29uZmlnXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBwcm9jZXNzQ29uZmlnKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGxvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9ID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4ub3B0aW9ucyB9XG4gICAgY29uc3QgcGFyc2VkTG9jYXRpb24gPSBsb2NhdGlvbi5yZXBsYWNlKC9cXC8/JC8sICcvJylcbiAgICB0aGlzLmNvbmZpZyA9IHsgbG9jYXRpb246IHBhcnNlZExvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9XG4gICAgY29uc3QgeyBvdmVycmlkZSwgcHJlbG9hZGVkID0ge30gfSA9IHRoaXMuY29uZmlnXG4gICAgY29uc3QgYWxsTGFuZ3MgPSBPYmplY3QuZW50cmllcyh0aGlzLmxhbmdzKS5jb25jYXQoT2JqZWN0LmVudHJpZXMob3ZlcnJpZGUgfHwgcHJlbG9hZGVkKSlcbiAgICB0aGlzLmxhbmdzID0gYWxsTGFuZ3MucmVkdWNlKChhY2MsIFtsb2NhbGUsIGxhbmddKSA9PiB7XG4gICAgICBhY2NbbG9jYWxlXSA9IHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwge30pXG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLmNvbmZpZy5sb2NhbGUgfHwgdGhpcy5jb25maWcubGFuZ3NbMF1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGxhbmd1YWdlIGFuZCBzZXQgZGVmYXVsdFxuICAgKiBAcGFyYW0gIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgIHJlc29sdmVzIGxhbmd1YWdlXG4gICAqL1xuICBpbml0KG9wdGlvbnMpIHtcbiAgICB0aGlzLnByb2Nlc3NDb25maWcoeyAuLi50aGlzLmNvbmZpZywgLi4ub3B0aW9ucyB9KVxuICAgIHJldHVybiB0aGlzLnNldEN1cnJlbnQodGhpcy5sb2NhbGUpXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGxhbmd1YWdlIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGxhbmdcbiAgICovXG4gIGFkZExhbmd1YWdlKGxvY2FsZSwgbGFuZyA9IHt9KSB7XG4gICAgbGFuZyA9IHR5cGVvZiBsYW5nID09PSAnc3RyaW5nJyA/IEkxOE4ucHJvY2Vzc0ZpbGUobGFuZykgOiBsYW5nXG4gICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZylcbiAgICB0aGlzLmNvbmZpZy5sYW5ncy5wdXNoKCdsb2NhbGUnKVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBhIHN0cmluZyBmcm9tIGEgbG9hZGVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIC0gdGhlIGtleSBmb3IgdGhlIHN0cmluZyB3ZSBhcmUgdHJ5aW5nIHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlIC0gbG9jYWxlIHRvIGNoZWNrIGZvciB2YWx1ZVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGxhbmd1YWdlIHN0cmluZyBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldFZhbHVlKGtleSwgbG9jYWxlID0gdGhpcy5sb2NhbGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubGFuZ3NbbG9jYWxlXT8uW2tleV1cbiAgICByZXR1cm4gdmFsdWUgfHwgdGhpcy5nZXRGYWxsYmFja1ZhbHVlKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGEgbGFuZ3VhZ2UgdGhhdCBoYXMgZGVzaXJlZCBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSB2YWx1ZSBrZXlcbiAgICogQHJldHVybiB7U3RyaW5nfSBmb3VuZCB2YWx1ZSBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldEZhbGxiYWNrVmFsdWUoa2V5KSB7XG4gICAgY29uc3QgZmFsbGJhY2tMYW5nID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxhbmdzKS5maW5kKGxhbmcgPT4gbGFuZ1trZXldKVxuICAgIHJldHVybiBmYWxsYmFja0xhbmc/LltrZXldXG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIHZhcmlhYmxlIHN5bnRheFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0clxuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICBlc2NhcGVkIHN0clxuICAgKi9cbiAgbWFrZVNhZmUoc3RyKSB7XG4gICAgY29uc3QgbWFwT2JqID0ge1xuICAgICAgJ3snOiAnXFxcXHsnLFxuICAgICAgJ30nOiAnXFxcXH0nLFxuICAgICAgJ3wnOiAnXFxcXHwnLFxuICAgIH1cblxuICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9be318XS9nLCBtYXRjaGVkID0+IG1hcE9ialttYXRjaGVkXSlcblxuICAgIHJldHVybiBuZXcgUmVnRXhwKHN0ciwgJ2cnKVxuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyaWx5IHB1dCBhIHN0cmluZyBpbnRvIHRoZSBjdXJyZW50bHkgbG9hZGVkIGxhbmd1YWdlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyaW5nXG4gICAqIEByZXR1cm4ge1N0cmluZ30gc3RyaW5nIGluIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICovXG4gIHB1dChrZXksIHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudFtrZXldID0gc3RyaW5nXG5cbiAgICByZXR1cm4gc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYXJndW1lbnRzIGZvciB0aGUgcmVxdWVzdGVkIHN0cmluZ1xuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgdGhlIGtleSB3ZSB1c2UgdG8gbG9va3VwIG91ciB0cmFuc2xhdGlvblxuICAgKiBAcGFyYW0gIHttdWx0aX0gIGFyZ3MgIHN0cmluZywgbnVtYmVyIG9yIG9iamVjdCBjb250YWluaW5nIG91ciBhcmd1bWVudHNcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgIHVwZGF0ZWQgc3RyaW5nIHRyYW5zbGF0aW9uXG4gICAqL1xuICBnZXQoa2V5LCBhcmdzKSB7XG4gICAgY29uc3QgX3RoaXMgPSB0aGlzXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShrZXkpXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW5zID0gdmFsdWUubWF0Y2goL1xce1tefV0rP1xcfS9nKVxuXG4gICAgaWYgKGFyZ3MgJiYgdG9rZW5zKSB7XG4gICAgICBpZiAoJ29iamVjdCcgPT09IHR5cGVvZiBhcmdzKSB7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5zKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gdG9rZW4uc3Vic3RyaW5nKDEsIHRva2VuLmxlbmd0aCAtIDEpXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKF90aGlzLm1ha2VTYWZlKHRva2VuKSwgYXJnc1trZXldIHx8ICcnKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xce1tefV0rP1xcfS9nLCBhcmdzKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFByb2Nlc3MgYSBsYW5ndWFnZSBmaWxlIGZyb20gcmF3IHRleHRcbiAgICogQHBhcmFtICB7U3RyaW5nfSByZXNwb25zZVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IHByb2Nlc3NlZCBsYW5ndWFnZVxuICAgKi9cbiAgc3RhdGljIHByb2Nlc3NGaWxlKHJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIEkxOE4uZnJvbUZpbGUocmVzcG9uc2UucmVwbGFjZSgvXFxuXFxuL2csICdcXG4nKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBUdXJuIHJhdyB0ZXh0IGZyb20gdGhlIGxhbmd1YWdlIGZpbGVzIGludG8gZmFuY3kgSlNPTlxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHJhd1RleHRcbiAgICogQHJldHVybiB7T2JqZWN0fSBjb252ZXJ0ZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlKHJhd1RleHQpIHtcbiAgICBjb25zdCBsaW5lcyA9IHJhd1RleHQuc3BsaXQoJ1xcbicpXG4gICAgY29uc3QgbGFuZyA9IHt9XG5cbiAgICBmb3IgKGxldCBtYXRjaGVzLCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCByZWdleCA9IC9eKC4rPykgKj89ICo/KFteXFxuXSspL1xuICAgICAgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMobGluZXNbaV0pXG4gICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICBsYW5nW21hdGNoZXNbMV1dID0gbWF0Y2hlc1syXS5yZXBsYWNlKC8oXlxccyt8XFxzKyQpL2csICcnKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsYW5nXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhIHJlbW90ZWx5IHN0b3JlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSAge0Jvb2xlYW59IHVzZUNhY2hlXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgIHJlc29sdmVzIHJlc3BvbnNlXG4gICAqL1xuICBsb2FkTGFuZyhsb2NhbGUsIHVzZUNhY2hlID0gdHJ1ZSkge1xuICAgIGNvbnN0IF90aGlzID0gdGhpc1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBpZiAoX3RoaXMubG9hZGVkLmluZGV4T2YobG9jYWxlKSAhPT0gLTEgJiYgdXNlQ2FjaGUpIHtcbiAgICAgICAgX3RoaXMuYXBwbHlMYW5ndWFnZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgICByZXR1cm4gcmVzb2x2ZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbGFuZ0ZpbGUgPSBbX3RoaXMuY29uZmlnLmxvY2F0aW9uLCBsb2NhbGUsIF90aGlzLmNvbmZpZy5leHRlbnNpb25dLmpvaW4oJycpXG4gICAgICAgIHJldHVybiBmZXRjaERhdGEobGFuZ0ZpbGUpXG4gICAgICAgICAgLnRoZW4obGFuZyA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRGaWxlID0gSTE4Ti5wcm9jZXNzRmlsZShsYW5nKVxuICAgICAgICAgICAgX3RoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIHByb2Nlc3NlZEZpbGUpXG4gICAgICAgICAgICBfdGhpcy5sb2FkZWQucHVzaChsb2NhbGUpXG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShfdGhpcy5sYW5nc1tsb2NhbGVdKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICAgIGNvbnN0IGxhbmcgPSBfdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSlcbiAgICAgICAgICAgIHJlc29sdmUobGFuZylcbiAgICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogYXBwbGllcyBvdmVycmlkZXMgZnJvbSBjb25maWdcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gbGFuZ1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IG92ZXJyaWRlbiBsYW5ndWFnZVxuICAgKi9cbiAgYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGNvbnN0IG92ZXJyaWRlID0gdGhpcy5jb25maWcub3ZlcnJpZGVbbG9jYWxlXSB8fCB7fVxuICAgIGNvbnN0IGV4aXN0aW5nTGFuZyA9IHRoaXMubGFuZ3NbbG9jYWxlXSB8fCB7fVxuICAgIHRoaXMubGFuZ3NbbG9jYWxlXSA9IHsgLi4uZXhpc3RpbmdMYW5nLCAuLi5sYW5nLCAuLi5vdmVycmlkZSB9XG4gICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiBjdXJyZW50bHkgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IGFsbCBjb25maWd1cmVkIGxhbmd1YWdlc1xuICAgKi9cbiAgZ2V0IGdldExhbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5sYW5nc1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHQgdG8gc2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIHRvIHRoZSBsb2NhbCBwcm92aWRlZFxuICAgKiBAcGFyYW0ge1N0cmluZ30gICBsb2NhbGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gbGFuZ3VhZ2VcbiAgICovXG4gIGFzeW5jIHNldEN1cnJlbnQobG9jYWxlID0gJ2VuLVVTJykge1xuICAgIGF3YWl0IHRoaXMubG9hZExhbmcobG9jYWxlKVxuICAgIHRoaXMubG9jYWxlID0gbG9jYWxlXG4gICAgdGhpcy5jdXJyZW50ID0gdGhpcy5sYW5nc1tsb2NhbGVdXG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IEkxOE4oKVxuIiwiY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHsgbWV0aG9kOiAnR0VUJywgYm9keTogJycgfSlcbi8qKlxuICogRmV0Y2hlcyBhIHJlc291cmNlIGZyb20gdGhlIG5ldHdvcmsuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZmV0Y2guXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucz17fV0gLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucy5oZWFkZXJzXSAtIEhlYWRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZmV0Y2hPcHRpb25zLm1ldGhvZF0gLSBUaGUgSFRUUCBtZXRob2QgdG8gdXNlIChlLmcuLCAnR0VUJywgJ1BPU1QnKS5cbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gW2ZldGNoT3B0aW9ucy5ib2R5XSAtIFRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybiB7UHJvbWlzZTxPYmplY3Q+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn0gcmV0dXJuLm9rIC0gSW5kaWNhdGVzIGlmIHRoZSByZXNwb25zZSBzdGF0dXMgaXMgaW4gdGhlIHJhbmdlIDIwMC0yOTkuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IHJldHVybi5zdGF0dXMgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHJldHVybi5zdGF0dXNUZXh0IC0gVGhlIEhUVFAgc3RhdHVzIG1lc3NhZ2Ugb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7TWFwPHN0cmluZywgc3RyaW5nPn0gcmV0dXJuLmhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHJldHVybi5ib2R5IC0gVGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlIGFzIGEgQnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxCdWZmZXI+fSByZXR1cm4uYXJyYXlCdWZmZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IGFzIGFuIEFycmF5QnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxPYmplY3Q+fSByZXR1cm4uanNvbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgcGFyc2VkIGFzIEpTT04uXG4gKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlciA9IHVybC5lbmRzV2l0aCgnLmxhbmcnKSA/ICd0ZXh0JyA6ICdqc29uJ1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZVtoYW5kbGVyXSgpXG4gICAgcmV0dXJuIGRhdGFcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBoYXMgYmVlbiBhIHByb2JsZW0gd2l0aCB5b3VyIGZldGNoIG9wZXJhdGlvbjonLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iXSwibmFtZXMiOlsiREVGQVVMVF9DT05GSUciLCJleHRlbnNpb24iLCJsb2NhdGlvbiIsImxhbmdzIiwibG9jYWxlIiwib3ZlcnJpZGUiLCJJMThOIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwidGhpcyIsIk9iamVjdCIsImNyZWF0ZSIsImxvYWRlZCIsInByb2Nlc3NDb25maWciLCJyZXN0T3B0aW9ucyIsInBhcnNlZExvY2F0aW9uIiwicmVwbGFjZSIsImNvbmZpZyIsInByZWxvYWRlZCIsImFsbExhbmdzIiwiZW50cmllcyIsImNvbmNhdCIsInJlZHVjZSIsImFjYyIsImxhbmciLCJhcHBseUxhbmd1YWdlIiwiaW5pdCIsInNldEN1cnJlbnQiLCJhZGRMYW5ndWFnZSIsInByb2Nlc3NGaWxlIiwicHVzaCIsImdldFZhbHVlIiwia2V5IiwiX2EiLCJnZXRGYWxsYmFja1ZhbHVlIiwiZmFsbGJhY2tMYW5nIiwidmFsdWVzIiwiZmluZCIsIm1ha2VTYWZlIiwic3RyIiwibWFwT2JqIiwibWF0Y2hlZCIsIlJlZ0V4cCIsInB1dCIsInN0cmluZyIsImN1cnJlbnQiLCJnZXQiLCJhcmdzIiwiX3RoaXMiLCJ2YWx1ZSIsInRva2VucyIsIm1hdGNoIiwidG9rZW4iLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJyZXNwb25zZSIsImZyb21GaWxlIiwicmF3VGV4dCIsImxpbmVzIiwic3BsaXQiLCJtYXRjaGVzIiwiaSIsImV4ZWMiLCJsb2FkTGFuZyIsInVzZUNhY2hlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJpbmRleE9mIiwiYXN5bmMiLCJ1cmwiLCJmZXRjaCIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJoYW5kbGVyIiwiZW5kc1dpdGgiLCJlcnJvciIsImZldGNoRGF0YSIsImpvaW4iLCJ0aGVuIiwicHJvY2Vzc2VkRmlsZSIsImNhdGNoIiwiZXJyIiwiZXhpc3RpbmdMYW5nIiwiZ2V0TGFuZ3MiLCJtaTE4biJdLCJtYXBwaW5ncyI6IjRPQUVBLE1BQU1BLEVBQWlCLENBQ3JCQyxVQUFXLFFBRVhDLFNBQVUsZUFFVkMsTUFBTyxDQUFDLFNBQ1JDLE9BQVEsUUFDUkMsU0FBVSxDQUFFLEdBUVAsTUFBTUMsRUFLWCxXQUFBQyxDQUFZQyxFQUFVUixHQUNmUyxLQUFBTixNQUFlTyxPQUFBQyxPQUFPLE1BQzNCRixLQUFLRyxPQUFTLEdBQ2RILEtBQUtJLGNBQWNMLEVBQ3BCLENBTUQsYUFBQUssQ0FBY0wsR0FDTixNQUFBTixTQUFFQSxLQUFhWSxHQUFnQixJQUFLZCxLQUFtQlEsR0FDdkRPLEVBQWlCYixFQUFTYyxRQUFRLE9BQVEsS0FDaERQLEtBQUtRLE9BQVMsQ0FBRWYsU0FBVWEsS0FBbUJELEdBQzdDLE1BQU1ULFNBQUVBLEVBQVVhLFVBQUFBLEVBQVksQ0FBQSxHQUFPVCxLQUFLUSxPQUNwQ0UsRUFBV1QsT0FBT1UsUUFBUVgsS0FBS04sT0FBT2tCLE9BQU9YLE9BQU9VLFFBQVFmLEdBQVlhLElBQ3pFVCxLQUFBTixNQUFRZ0IsRUFBU0csUUFBTyxDQUFDQyxHQUFNbkIsRUFBUW9CLE1BQzFDRCxFQUFJbkIsR0FBVUssS0FBS2dCLGNBQWNyQixFQUFRb0IsR0FDbENELElBQ04sSUFDSGQsS0FBS0wsT0FBU0ssS0FBS1EsT0FBT2IsUUFBVUss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
|
|
8
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).i18n={})}(this,(function(t){"use strict";const e={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}};let n=null;class s{constructor(t=e){this.langs=Object.create(null),this.loaded=[],this.processConfig(t)}processConfig(t){const{location:n,...s}={...e,...t},i=n.endsWith("/")?n:`${n}/`;this.config={location:i,...s};const{preloaded:a={},override:o={}}=this.config,l=new Set([...Object.keys(a),...Object.keys(o)]);for(const e of l){const t={...a[e]||{},...o[e]||{}};this.applyLanguage(e,t)}this.locale=this.config.locale||this.config.langs[0]}init(t){return this.processConfig({...this.config,...t}),this.setCurrent(this.locale)}addLanguage(t,e={}){e="string"==typeof e?s.processFile(e):e,this.applyLanguage(t,e),this.loaded.push(t),this.config.langs.push(t)}getValue(t,e=this.locale){var n;return(null==(n=this.langs[e])?void 0:n[t])||this.getFallbackValue(t)}getFallbackValue(t){const e=Object.values(this.langs).find((e=>e[t]));return null==e?void 0:e[t]}makeSafe(t){const e={"{":String.raw`\{`,"}":String.raw`\}`,"|":String.raw`\|`},n=t.replaceAll(/[{}|]/g,(t=>e[t]));return new RegExp(n,"g")}put(t,e){return this.current[t]=e,e}get(t,e){let n=this.getValue(t);if(!n)return;if(!e)return n;const s=n.match(/\{[^}]+?\}/g);if(!s)return n;if("object"==typeof e)for(const i of s){const t=i.slice(1,-1);n=n.replace(this.makeSafe(i),e[t]??"")}else n=n.replaceAll(/\{[^}]+?\}/g,e);return n}static processFile(t){return i.fromFile(t.replaceAll("\n\n","\n"))}static fromFile(t){const e=t.split("\n"),n={};for(let s,i=0;i<e.length;i++){s=/^(.+?) *?= *?([^\n]+)/.exec(e[i]),s&&(n[s[1]]=s[2].trim())}return n}static getInstance(t){return n||(n=new s(t)),n}static resetInstance(){n=null}async loadLang(t,e=!0){if(this.loaded.includes(t)&&e)return this.langs[t];const n=`${this.config.location}${t}${this.config.extension}`;try{const e=await async function(t){try{const e=await fetch(t);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const n=t.endsWith(".lang")?"text":"json";return await e[n]()}catch(e){throw e}}(n),i=s.processFile(e);return this.applyLanguage(t,i),this.langs[t]}catch(i){return this.applyLanguage(t)}}applyLanguage(t,e={}){const n=this.config.override[t]||{},s=this.langs[t]||{};return this.langs[t]={...s,...e,...n},this.loaded.push(t),this.langs[t]}get getLangs(){return this.config.langs}async setCurrent(t="en-US"){return this.loaded.includes(t)||await this.loadLang(t),this.locale=t,this.current=this.langs[t],this.current}}const i=new Proxy(s,{apply:(t,e,n)=>t.getInstance(...n),construct:(t,e)=>new t(...e),get:(t,e)=>t[e]}),a=i.getInstance();t.I18N=i,t.default=a,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51bWQubWluLmpzIiwic291cmNlcyI6WyIuLi9zcmMvbWkxOG4uanMiLCIuLi9zcmMvZmV0Y2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hEYXRhIH0gZnJvbSAnLi9mZXRjaC5qcydcblxuY29uc3QgREVGQVVMVF9DT05GSUcgPSB7XG4gIGV4dGVuc2lvbjogJy5sYW5nJyxcbiAgLy8gbG9jYWwgb3IgcmVtb3RlIGRpcmVjdG9yeSBjb250YWluaW5nIGxhbmd1YWdlIGZpbGVzXG4gIGxvY2F0aW9uOiAnYXNzZXRzL2xhbmcvJyxcbiAgLy8gbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcywgaGFuZHkgZm9yIHBvcHVsYXRpbmcgc2VsZWN0b3IuXG4gIGxhbmdzOiBbJ2VuLVVTJ10sXG4gIGxvY2FsZTogJ2VuLVVTJywgLy8gaW5pdCB3aXRoIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VcbiAgb3ZlcnJpZGU6IHt9LFxufVxuXG4vLyBTaW5nbGV0b24gaW5zdGFuY2UgaG9sZGVyXG5sZXQgaW5zdGFuY2UgPSBudWxsXG5cbi8qKlxuICogTWFpbiBpMThuIGNsYXNzXG4gKiBAY2xhc3MgSTE4TkJhc2VcbiAqIEBjbGFzc2Rlc2MgbWV0aG9kcyBhbmQgZGF0YSBzdG9yZSBmb3IgaTE4blxuICovXG5jbGFzcyBJMThOQmFzZSB7XG4gIC8qKlxuICAgKiBQcm9jZXNzIG9wdGlvbnMgYW5kIHN0YXJ0IHRoZSBtb2R1bGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSBERUZBVUxUX0NPTkZJRykge1xuICAgIHRoaXMubGFuZ3MgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgdGhpcy5sb2FkZWQgPSBbXVxuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyhvcHRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIHBhcnNlIGFuZCBmb3JtYXQgY29uZmlnXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqL1xuICBwcm9jZXNzQ29uZmlnKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGxvY2F0aW9uLCAuLi5yZXN0T3B0aW9ucyB9ID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4ub3B0aW9ucyB9XG4gICAgLy8gRW5zdXJlIGxvY2F0aW9uIGVuZHMgd2l0aCBhIHNsYXNoXG4gICAgY29uc3QgcGFyc2VkTG9jYXRpb24gPSBsb2NhdGlvbi5lbmRzV2l0aCgnLycpID8gbG9jYXRpb24gOiBgJHtsb2NhdGlvbn0vYFxuICAgIHRoaXMuY29uZmlnID0geyBsb2NhdGlvbjogcGFyc2VkTG9jYXRpb24sIC4uLnJlc3RPcHRpb25zIH1cblxuICAgIGNvbnN0IHsgcHJlbG9hZGVkID0ge30sIG92ZXJyaWRlID0ge30gfSA9IHRoaXMuY29uZmlnXG5cbiAgICAvLyBNZXJnZSBsb2NhbGVzIGZyb20gYm90aCBwcmVsb2FkZWQgYW5kIG92ZXJyaWRlXG4gICAgLy8gVGhpcyBzdXBwb3J0cyBsZWdhY3kgdXNhZ2Ugd2hlcmUgb3ZlcnJpZGUgZGVmaW5lZCBlbnRpcmUgbGFuZ3VhZ2VzXG4gICAgY29uc3QgYWxsTG9jYWxlcyA9IG5ldyBTZXQoWy4uLk9iamVjdC5rZXlzKHByZWxvYWRlZCksIC4uLk9iamVjdC5rZXlzKG92ZXJyaWRlKV0pXG5cbiAgICAvLyBBcHBseSBsYW5ndWFnZXMgZnJvbSBib3RoIHByZWxvYWRlZCBhbmQgb3ZlcnJpZGVcbiAgICAvLyBhcHBseUxhbmd1YWdlIHdpbGwgbWVyZ2UgdGhlbSBwcm9wZXJseSAoZXhpc3RpbmcgKyBwcmVsb2FkZWQgKyBvdmVycmlkZSlcbiAgICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBhbGxMb2NhbGVzKSB7XG4gICAgICBjb25zdCBwcmVsb2FkZWRMYW5nID0gcHJlbG9hZGVkW2xvY2FsZV0gfHwge31cbiAgICAgIGNvbnN0IG92ZXJyaWRlTGFuZyA9IG92ZXJyaWRlW2xvY2FsZV0gfHwge31cbiAgICAgIC8vIE1lcmdlIHByZWxvYWRlZCBhbmQgb3ZlcnJpZGUgZm9yIHRoaXMgbG9jYWxlXG4gICAgICBjb25zdCBtZXJnZWRMYW5nID0geyAuLi5wcmVsb2FkZWRMYW5nLCAuLi5vdmVycmlkZUxhbmcgfVxuICAgICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbWVyZ2VkTGFuZylcbiAgICB9XG5cbiAgICB0aGlzLmxvY2FsZSA9IHRoaXMuY29uZmlnLmxvY2FsZSB8fCB0aGlzLmNvbmZpZy5sYW5nc1swXVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgbGFuZ3VhZ2UgYW5kIHNldCBkZWZhdWx0XG4gICAqIEBwYXJhbSAge09iamVjdH0gb3B0aW9uc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgICAgICAgcmVzb2x2ZXMgbGFuZ3VhZ2VcbiAgICovXG4gIGluaXQob3B0aW9ucykge1xuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyh7IC4uLnRoaXMuY29uZmlnLCAuLi5vcHRpb25zIH0pXG4gICAgcmV0dXJuIHRoaXMuc2V0Q3VycmVudCh0aGlzLmxvY2FsZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbGFuZ3VhZ2UgdG8gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gbGFuZ1xuICAgKi9cbiAgYWRkTGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBsYW5nID0gdHlwZW9mIGxhbmcgPT09ICdzdHJpbmcnID8gSTE4TkJhc2UucHJvY2Vzc0ZpbGUobGFuZykgOiBsYW5nXG4gICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZylcbiAgICB0aGlzLmxvYWRlZC5wdXNoKGxvY2FsZSlcbiAgICB0aGlzLmNvbmZpZy5sYW5ncy5wdXNoKGxvY2FsZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgYSBzdHJpbmcgZnJvbSBhIGxvYWRlZCBsYW5ndWFnZSBmaWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICAtIHRoZSBrZXkgZm9yIHRoZSBzdHJpbmcgd2UgYXJlIHRyeWluZyB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZSAtIGxvY2FsZSB0byBjaGVjayBmb3IgdmFsdWVcbiAgICogQHJldHVybiB7U3RyaW5nfSBsYW5ndWFnZSBzdHJpbmcgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRWYWx1ZShrZXksIGxvY2FsZSA9IHRoaXMubG9jYWxlKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmxhbmdzW2xvY2FsZV0/LltrZXldXG4gICAgcmV0dXJuIHZhbHVlIHx8IHRoaXMuZ2V0RmFsbGJhY2tWYWx1ZShrZXkpXG4gIH1cblxuICAvKipcbiAgICogRmluZCBhIGxhbmd1YWdlIHRoYXQgaGFzIGRlc2lyZWQga2V5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgdmFsdWUga2V5XG4gICAqIEByZXR1cm4ge1N0cmluZ30gZm91bmQgdmFsdWUgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRGYWxsYmFja1ZhbHVlKGtleSkge1xuICAgIGNvbnN0IGZhbGxiYWNrTGFuZyA9IE9iamVjdC52YWx1ZXModGhpcy5sYW5ncykuZmluZChsYW5nID0+IGxhbmdba2V5XSlcbiAgICByZXR1cm4gZmFsbGJhY2tMYW5nPy5ba2V5XVxuICB9XG5cbiAgLyoqXG4gICAqIEVzY2FwZSB2YXJpYWJsZSBzeW50YXhcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgZXNjYXBlZCBzdHJcbiAgICovXG4gIG1ha2VTYWZlKHN0cikge1xuICAgIGNvbnN0IG1hcE9iaiA9IHtcbiAgICAgICd7JzogU3RyaW5nLnJhd2BcXHtgLFxuICAgICAgJ30nOiBTdHJpbmcucmF3YFxcfWAsXG4gICAgICAnfCc6IFN0cmluZy5yYXdgXFx8YCxcbiAgICB9XG5cbiAgICBjb25zdCBlc2NhcGVkU3RyID0gc3RyLnJlcGxhY2VBbGwoL1t7fXxdL2csIG1hdGNoZWQgPT4gbWFwT2JqW21hdGNoZWRdKVxuXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoZXNjYXBlZFN0ciwgJ2cnKVxuICB9XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyaWx5IHB1dCBhIHN0cmluZyBpbnRvIHRoZSBjdXJyZW50bHkgbG9hZGVkIGxhbmd1YWdlXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSAge1N0cmluZ30gc3RyaW5nXG4gICAqIEByZXR1cm4ge1N0cmluZ30gc3RyaW5nIGluIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICovXG4gIHB1dChrZXksIHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudFtrZXldID0gc3RyaW5nXG5cbiAgICByZXR1cm4gc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYXJndW1lbnRzIGZvciB0aGUgcmVxdWVzdGVkIHN0cmluZ1xuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgdGhlIGtleSB3ZSB1c2UgdG8gbG9va3VwIG91ciB0cmFuc2xhdGlvblxuICAgKiBAcGFyYW0gIHttdWx0aX0gIGFyZ3MgIHN0cmluZywgbnVtYmVyIG9yIG9iamVjdCBjb250YWluaW5nIG91ciBhcmd1bWVudHNcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgIHVwZGF0ZWQgc3RyaW5nIHRyYW5zbGF0aW9uXG4gICAqL1xuICBnZXQoa2V5LCBhcmdzKSB7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShrZXkpXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gTm8gcmVwbGFjZW1lbnQgbmVlZGVkIGlmIG5vIGFyZ3MgcHJvdmlkZWRcbiAgICBpZiAoIWFyZ3MpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIGNvbnN0IHRva2VucyA9IHZhbHVlLm1hdGNoKC9cXHtbXn1dKz9cXH0vZylcblxuICAgIC8vIE5vIHRva2VucyB0byByZXBsYWNlXG4gICAgaWYgKCF0b2tlbnMpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIC8vIE9iamVjdCBhcmdzOiByZXBsYWNlIGVhY2ggdG9rZW4gd2l0aCBjb3JyZXNwb25kaW5nIGtleVxuICAgIGlmICh0eXBlb2YgYXJncyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5zKSB7XG4gICAgICAgIGNvbnN0IHRva2VuS2V5ID0gdG9rZW4uc2xpY2UoMSwgLTEpXG4gICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSh0aGlzLm1ha2VTYWZlKHRva2VuKSwgYXJnc1t0b2tlbktleV0gPz8gJycpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFByaW1pdGl2ZSBhcmdzOiByZXBsYWNlIGFsbCB0b2tlbnMgd2l0aCBzYW1lIHZhbHVlXG4gICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2VBbGwoL1xce1tefV0rP1xcfS9nLCBhcmdzKVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFByb2Nlc3MgYSBsYW5ndWFnZSBmaWxlIGZyb20gcmF3IHRleHRcbiAgICogQHBhcmFtICB7U3RyaW5nfSByZXNwb25zZVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IHByb2Nlc3NlZCBsYW5ndWFnZVxuICAgKi9cbiAgc3RhdGljIHByb2Nlc3NGaWxlKHJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIEkxOE4uZnJvbUZpbGUocmVzcG9uc2UucmVwbGFjZUFsbCgnXFxuXFxuJywgJ1xcbicpKVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFR1cm4gcmF3IHRleHQgZnJvbSB0aGUgbGFuZ3VhZ2UgZmlsZXMgaW50byBmYW5jeSBKU09OXG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmF3VGV4dFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IGNvbnZlcnRlZCBsYW5ndWFnZSBmaWxlXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGUocmF3VGV4dCkge1xuICAgIGNvbnN0IGxpbmVzID0gcmF3VGV4dC5zcGxpdCgnXFxuJylcbiAgICBjb25zdCBsYW5nID0ge31cblxuICAgIGZvciAobGV0IG1hdGNoZXMsIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gL14oLis/KSAqPz0gKj8oW15cXG5dKykvXG4gICAgICBtYXRjaGVzID0gcmVnZXguZXhlYyhsaW5lc1tpXSlcbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIGxhbmdbbWF0Y2hlc1sxXV0gPSBtYXRjaGVzWzJdLnRyaW0oKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsYW5nXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHJldHVybiB7STE4TkJhc2V9IHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGdldEluc3RhbmNlKG9wdGlvbnMpIHtcbiAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICBpbnN0YW5jZSA9IG5ldyBJMThOQmFzZShvcHRpb25zKVxuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgc2luZ2xldG9uIGluc3RhbmNlICh1c2VmdWwgZm9yIHRlc3RpbmcpXG4gICAqL1xuICBzdGF0aWMgcmVzZXRJbnN0YW5jZSgpIHtcbiAgICBpbnN0YW5jZSA9IG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGEgcmVtb3RlbHkgc3RvcmVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtICB7Qm9vbGVhbn0gdXNlQ2FjaGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgcmVzb2x2ZXMgcmVzcG9uc2VcbiAgICovXG4gIGFzeW5jIGxvYWRMYW5nKGxvY2FsZSwgdXNlQ2FjaGUgPSB0cnVlKSB7XG4gICAgLy8gUmV0dXJuIGNhY2hlZCBsYW5ndWFnZSBpZiBhbHJlYWR5IGxvYWRlZFxuICAgIGlmICh0aGlzLmxvYWRlZC5pbmNsdWRlcyhsb2NhbGUpICYmIHVzZUNhY2hlKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYW5nc1tsb2NhbGVdXG4gICAgfVxuICAgIC8vIEZldGNoIGFuZCBwcm9jZXNzIGxhbmd1YWdlIGZpbGVcbiAgICBjb25zdCBsYW5nRmlsZSA9IGAke3RoaXMuY29uZmlnLmxvY2F0aW9ufSR7bG9jYWxlfSR7dGhpcy5jb25maWcuZXh0ZW5zaW9ufWBcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBsYW5nID0gYXdhaXQgZmV0Y2hEYXRhKGxhbmdGaWxlKVxuICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZSA9IEkxOE5CYXNlLnByb2Nlc3NGaWxlKGxhbmcpXG4gICAgICB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBwcm9jZXNzZWRGaWxlKVxuICAgICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICByZXR1cm4gdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogYXBwbGllcyBvdmVycmlkZXMgZnJvbSBjb25maWdcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gbGFuZ1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IG92ZXJyaWRlbiBsYW5ndWFnZVxuICAgKi9cbiAgYXBwbHlMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGNvbnN0IG92ZXJyaWRlID0gdGhpcy5jb25maWcub3ZlcnJpZGVbbG9jYWxlXSB8fCB7fVxuICAgIGNvbnN0IGV4aXN0aW5nTGFuZyA9IHRoaXMubGFuZ3NbbG9jYWxlXSB8fCB7fVxuICAgIHRoaXMubGFuZ3NbbG9jYWxlXSA9IHsgLi4uZXhpc3RpbmdMYW5nLCAuLi5sYW5nLCAuLi5vdmVycmlkZSB9XG4gICAgdGhpcy5sb2FkZWQucHVzaChsb2NhbGUpXG4gICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiBjdXJyZW50bHkgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IGFsbCBjb25maWd1cmVkIGxhbmd1YWdlc1xuICAgKi9cbiAgZ2V0IGdldExhbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5sYW5nc1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHQgdG8gc2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIHRvIHRoZSBsb2NhbCBwcm92aWRlZFxuICAgKiBAcGFyYW0ge1N0cmluZ30gICBsb2NhbGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gbGFuZ3VhZ2VcbiAgICovXG4gIGFzeW5jIHNldEN1cnJlbnQobG9jYWxlID0gJ2VuLVVTJykge1xuICAgIGlmICghdGhpcy5sb2FkZWQuaW5jbHVkZXMobG9jYWxlKSkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkTGFuZyhsb2NhbGUpXG4gICAgfVxuXG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGVcbiAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLmxhbmdzW2xvY2FsZV1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRcbiAgfVxufVxuXG4vKipcbiAqIFByb3h5IHdyYXBwZXIgdGhhdCBlbmFibGVzIHNpbmdsZXRvbiBwYXR0ZXJuOlxuICogLSBJMThOKCkgcmV0dXJucyB0aGUgc2luZ2xldG9uIGluc3RhbmNlXG4gKiAtIG5ldyBJMThOKCkgY3JlYXRlcyBhIG5ldyBpbnN0YW5jZVxuICovXG5leHBvcnQgY29uc3QgSTE4TiA9IG5ldyBQcm94eShJMThOQmFzZSwge1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gSTE4TigpIGlzIGludm9rZWQgYXMgYSBmdW5jdGlvbiAod2l0aG91dCBuZXcpXG4gICAqIFJldHVybnMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKi9cbiAgYXBwbHkodGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7XG4gICAgcmV0dXJuIHRhcmdldC5nZXRJbnN0YW5jZSguLi5hcmdzKVxuICB9LFxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBuZXcgSTE4TigpIGlzIGludm9rZWRcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZVxuICAgKi9cbiAgY29uc3RydWN0KHRhcmdldCwgYXJncykge1xuICAgIHJldHVybiBuZXcgdGFyZ2V0KC4uLmFyZ3MpXG4gIH0sXG5cbiAgLyoqXG4gICAqIFByb3h5IHByb3BlcnR5IGFjY2VzcyB0byB0aGUgYmFzZSBjbGFzc1xuICAgKi9cbiAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgIHJldHVybiB0YXJnZXRbcHJvcF1cbiAgfSxcbn0pXG5cbmV4cG9ydCBkZWZhdWx0IEkxOE4uZ2V0SW5zdGFuY2UoKVxuIiwiY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHsgbWV0aG9kOiAnR0VUJywgYm9keTogJycgfSlcbi8qKlxuICogRmV0Y2hlcyBhIHJlc291cmNlIGZyb20gdGhlIG5ldHdvcmsuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZmV0Y2guXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucz17fV0gLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucy5oZWFkZXJzXSAtIEhlYWRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZmV0Y2hPcHRpb25zLm1ldGhvZF0gLSBUaGUgSFRUUCBtZXRob2QgdG8gdXNlIChlLmcuLCAnR0VUJywgJ1BPU1QnKS5cbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gW2ZldGNoT3B0aW9ucy5ib2R5XSAtIFRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybiB7UHJvbWlzZTxPYmplY3Q+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn0gcmV0dXJuLm9rIC0gSW5kaWNhdGVzIGlmIHRoZSByZXNwb25zZSBzdGF0dXMgaXMgaW4gdGhlIHJhbmdlIDIwMC0yOTkuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IHJldHVybi5zdGF0dXMgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHJldHVybi5zdGF0dXNUZXh0IC0gVGhlIEhUVFAgc3RhdHVzIG1lc3NhZ2Ugb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7TWFwPHN0cmluZywgc3RyaW5nPn0gcmV0dXJuLmhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHJldHVybi5ib2R5IC0gVGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlIGFzIGEgQnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxCdWZmZXI+fSByZXR1cm4uYXJyYXlCdWZmZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IGFzIGFuIEFycmF5QnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxPYmplY3Q+fSByZXR1cm4uanNvbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgcGFyc2VkIGFzIEpTT04uXG4gKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlciA9IHVybC5lbmRzV2l0aCgnLmxhbmcnKSA/ICd0ZXh0JyA6ICdqc29uJ1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZVtoYW5kbGVyXSgpXG4gICAgcmV0dXJuIGRhdGFcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBoYXMgYmVlbiBhIHByb2JsZW0gd2l0aCB5b3VyIGZldGNoIG9wZXJhdGlvbjonLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iXSwibmFtZXMiOlsiREVGQVVMVF9DT05GSUciLCJleHRlbnNpb24iLCJsb2NhdGlvbiIsImxhbmdzIiwibG9jYWxlIiwib3ZlcnJpZGUiLCJpbnN0YW5jZSIsIkkxOE5CYXNlIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwidGhpcyIsIk9iamVjdCIsImNyZWF0ZSIsImxvYWRlZCIsInByb2Nlc3NDb25maWciLCJyZXN0T3B0aW9ucyIsInBhcnNlZExvY2F0aW9uIiwiZW5kc1dpdGgiLCJjb25maWciLCJwcmVsb2FkZWQiLCJhbGxMb2NhbGVzIiwiU2V0Iiwia2V5cyIsIm1lcmdlZExhbmciLCJhcHBseUxhbmd1YWdlIiwiaW5pdCIsInNldEN1cnJlbnQiLCJhZGRMYW5ndWFnZSIsImxhbmciLCJwcm9jZXNzRmlsZSIsInB1c2giLCJnZXRWYWx1ZSIsImtleSIsIl9hIiwiZ2V0RmFsbGJhY2tWYWx1ZSIsImZhbGxiYWNrTGFuZyIsInZhbHVlcyIsImZpbmQiLCJtYWtlU2FmZSIsInN0ciIsIm1hcE9iaiIsIlN0cmluZyIsInJhdyIsImVzY2FwZWRTdHIiLCJyZXBsYWNlQWxsIiwibWF0Y2hlZCIsIlJlZ0V4cCIsInB1dCIsInN0cmluZyIsImN1cnJlbnQiLCJnZXQiLCJhcmdzIiwidmFsdWUiLCJ0b2tlbnMiLCJtYXRjaCIsInRva2VuIiwidG9rZW5LZXkiLCJzbGljZSIsInJlcGxhY2UiLCJyZXNwb25zZSIsIkkxOE4iLCJmcm9tRmlsZSIsInJhd1RleHQiLCJsaW5lcyIsInNwbGl0IiwibWF0Y2hlcyIsImkiLCJsZW5ndGgiLCJleGVjIiwidHJpbSIsImdldEluc3RhbmNlIiwicmVzZXRJbnN0YW5jZSIsImxvYWRMYW5nIiwidXNlQ2FjaGUiLCJpbmNsdWRlcyIsImxhbmdGaWxlIiwiYXN5bmMiLCJ1cmwiLCJmZXRjaCIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJoYW5kbGVyIiwiZXJyb3IiLCJmZXRjaERhdGEiLCJwcm9jZXNzZWRGaWxlIiwiZXJyIiwiZXhpc3RpbmdMYW5nIiwiZ2V0TGFuZ3MiLCJQcm94eSIsImFwcGx5IiwidGFyZ2V0IiwidGhpc0FyZyIsImNvbnN0cnVjdCIsInByb3AiLCJtaTE4biJdLCJtYXBwaW5ncyI6IjRPQUVBLE1BQU1BLEVBQWlCLENBQ3JCQyxVQUFXLFFBRVhDLFNBQVUsZUFFVkMsTUFBTyxDQUFDLFNBQ1JDLE9BQVEsUUFDUkMsU0FBVSxDQUFFLEdBSWQsSUFBSUMsRUFBVyxLQU9mLE1BQU1DLEVBS0osV0FBQUMsQ0FBWUMsRUFBVVQsR0FDZlUsS0FBQVAsTUFBZVEsT0FBQUMsT0FBTyxNQUMzQkYsS0FBS0csT0FBUyxHQUNkSCxLQUFLSSxjQUFjTCxFQUNwQixDQU1ELGFBQUFLLENBQWNMLEdBQ04sTUFBQVAsU0FBRUEsS0FBYWEsR0FBZ0IsSUFBS2YsS0FBbUJTLEdBRXZETyxFQUFpQmQsRUFBU2UsU0FBUyxLQUFPZixFQUFXLEdBQUdBLEtBQzlEUSxLQUFLUSxPQUFTLENBQUVoQixTQUFVYyxLQUFtQkQsR0FFdkMsTUFBQUksVUFBRUEsRUFBWSxDQUFFLEVBQUFkLFNBQUVBLEVBQVcsQ0FBRSxHQUFLSyxLQUFLUSxPQUl6Q0UsRUFBYSxJQUFJQyxJQUFJLElBQUlWLE9BQU9XLEtBQUtILE1BQWVSLE9BQU9XLEtBQUtqQixLQUl0RSxJQUFBLE1BQVdELEtBQVVnQixFQUFZLENBQy9CLE1BR01HLEVBQWEsSUFIR0osRUFBVWYsSUFBVyxDQUFFLEtBQ3hCQyxFQUFTRCxJQUFXLENBQUUsR0FHdENNLEtBQUFjLGNBQWNwQixFQUFRbUIsRUFDNUIsQ0FFRGIsS0FBS04sT0FBU00sS0FBS1EsT0FBT2QsUUFBVU0sS0FBS1EsT0FBT2YsTUFBTSxFQUN2RCxDQU9ELElBQUFzQixDQUFLaEIsR0FFSSxPQURQQyxLQUFLSSxjQUFjLElBQUtKLEtBQUtRLFVBQVdULElBQ2pDQyxLQUFLZ0IsV0FBV2hCLEtBQUtOLE9BQzdCLENBT0QsV0FBQXVCLENBQVl2QixFQUFRd0IsRUFBTyxJQUN6QkEsRUFBdUIsaUJBQVRBLEVBQW9CckIsRUFBU3NCLFlBQVlELEdBQVFBLEVBQzFEbEIsS0FBQWMsY0FBY3BCLEVBQVF3QixHQUN0QmxCLEtBQUFHLE9BQU9pQixLQUFLMUIsR0FDWk0sS0FBQVEsT0FBT2YsTUFBTTJCLEtBQUsxQixFQUN4QixDQVFELFFBQUEyQixDQUFTQyxFQUFLNUIsRUFBU00sS0FBS04sY0FFbkIsT0FETyxPQUFBNkIsRUFBQXZCLEtBQUtQLE1BQU1DLFNBQVUsRUFBQTZCLEVBQUFELEtBQ25CdEIsS0FBS3dCLGlCQUFpQkYsRUFDdkMsQ0FPRCxnQkFBQUUsQ0FBaUJGLEdBQ1QsTUFBQUcsRUFBZXhCLE9BQU95QixPQUFPMUIsS0FBS1AsT0FBT2tDLE1BQUtULEdBQVFBLEVBQUtJLEtBQ2pFLE9BQXNCLE1BQWZHLE9BQWUsRUFBQUEsRUFBQUgsRUFDdkIsQ0FPRCxRQUFBTSxDQUFTQyxHQUNQLE1BQU1DLEVBQVMsQ0FDYixJQUFLQyxPQUFPQyxHQUFBLEtBQ1osSUFBS0QsT0FBT0MsR0FBQSxLQUNaLElBQUtELE9BQU9DLEdBQUEsTUFHUkMsRUFBYUosRUFBSUssV0FBVyxVQUFxQkMsR0FBQUwsRUFBT0ssS0FFdkQsT0FBQSxJQUFJQyxPQUFPSCxFQUFZLElBQy9CLENBUUQsR0FBQUksQ0FBSWYsRUFBS2dCLEdBR0EsT0FGRnRDLEtBQUF1QyxRQUFRakIsR0FBT2dCLEVBRWJBLENBQ1IsQ0FRRCxHQUFBRSxDQUFJbEIsRUFBS21CLEdBQ0gsSUFBQUMsRUFBUTFDLEtBQUtxQixTQUFTQyxHQUMxQixJQUFLb0IsRUFDSCxPQUlGLElBQUtELEVBQ0ksT0FBQUMsRUFHSCxNQUFBQyxFQUFTRCxFQUFNRSxNQUFNLGVBRzNCLElBQUtELEVBQ0ksT0FBQUQsRUFJTCxHQUFnQixpQkFBVEQsRUFDVCxJQUFBLE1BQVdJLEtBQVNGLEVBQVEsQ0FDMUIsTUFBTUcsRUFBV0QsRUFBTUUsTUFBTSxHQUFLLEdBQzFCTCxFQUFBQSxFQUFNTSxRQUFRaEQsS0FBSzRCLFNBQVNpQixHQUFRSixFQUFLSyxJQUFhLEdBQy9ELE1BR09KLEVBQUFBLEVBQU1SLFdBQVcsY0FBZU8sR0FHbkMsT0FBQUMsQ0FDUixDQU9ELGtCQUFPdkIsQ0FBWThCLEdBQ2pCLE9BQU9DLEVBQUtDLFNBQVNGLEVBQVNmLFdBQVcsT0FBUSxNQUNsRCxDQU9ELGVBQU9pQixDQUFTQyxHQUNSLE1BQUFDLEVBQVFELEVBQVFFLE1BQU0sTUFDdEJwQyxFQUFPLENBQUUsRUFFZixJQUFBLElBQVNxQyxFQUFTQyxFQUFJLEVBQUdBLEVBQUlILEVBQU1JLE9BQVFELElBQUssQ0FFOUNELEVBRGMsd0JBQ0VHLEtBQUtMLEVBQU1HLElBQ3ZCRCxJQUNGckMsRUFBS3FDLEVBQVEsSUFBTUEsRUFBUSxHQUFHSSxPQUVqQyxDQUVNLE9BQUF6QyxDQUNSLENBT0Qsa0JBQU8wQyxDQUFZN0QsR0FJVixPQUhGSCxJQUNRQSxFQUFBLElBQUlDLEVBQVNFLElBRW5CSCxDQUNSLENBS0Qsb0JBQU9pRSxHQUNNakUsRUFBQSxJQUNaLENBUUQsY0FBTWtFLENBQVNwRSxFQUFRcUUsR0FBVyxHQUVoQyxHQUFJL0QsS0FBS0csT0FBTzZELFNBQVN0RSxJQUFXcUUsRUFDM0IsT0FBQS9ELEtBQUtQLE1BQU1DLEdBR2QsTUFBQXVFLEVBQVcsR0FBR2pFLEtBQUtRLE9BQU9oQixXQUFXRSxJQUFTTSxLQUFLUSxPQUFPakIsWUFFNUQsSUFDSSxNQUFBMkIsUUN0TkxnRCxlQUF5QkMsR0FDMUIsSUFDSSxNQUFBbEIsUUFBaUJtQixNQUFNRCxHQUN6QixJQUFDbEIsRUFBU29CLEdBQ1osTUFBTSxJQUFJQyxNQUFNLHVCQUF1QnJCLEVBQVNzQixVQUVsRCxNQUFNQyxFQUFVTCxFQUFJNUQsU0FBUyxTQUFXLE9BQVMsT0FFMUMsYUFEWTBDLEVBQVN1QixJQUU3QixPQUFRQyxHQUVELE1BQUFBLENBQ1AsQ0FDSCxDRHlNeUJDLENBQVVULEdBQ3ZCVSxFQUFnQjlFLEVBQVNzQixZQUFZRCxHQUVwQyxPQURGbEIsS0FBQWMsY0FBY3BCLEVBQVFpRixHQUNwQjNFLEtBQUtQLE1BQU1DLEVBQ25CLE9BQVFrRixHQUVBLE9BQUE1RSxLQUFLYyxjQUFjcEIsRUFDM0IsQ0FDRixDQVFELGFBQUFvQixDQUFjcEIsRUFBUXdCLEVBQU8sSUFDM0IsTUFBTXZCLEVBQVdLLEtBQUtRLE9BQU9iLFNBQVNELElBQVcsQ0FBRSxFQUM3Q21GLEVBQWU3RSxLQUFLUCxNQUFNQyxJQUFXLENBQUUsRUFHdEMsT0FGRk0sS0FBQVAsTUFBTUMsR0FBVSxJQUFLbUYsS0FBaUIzRCxLQUFTdkIsR0FDL0NLLEtBQUFHLE9BQU9pQixLQUFLMUIsR0FDVk0sS0FBS1AsTUFBTUMsRUFDbkIsQ0FNRCxZQUFJb0YsR0FDRixPQUFPOUUsS0FBS1EsT0FBT2YsS0FDcEIsQ0FPRCxnQkFBTXVCLENBQVd0QixFQUFTLFNBUXhCLE9BUEtNLEtBQUtHLE9BQU82RCxTQUFTdEUsVUFDbEJNLEtBQUs4RCxTQUFTcEUsR0FHdEJNLEtBQUtOLE9BQVNBLEVBQ1RNLEtBQUF1QyxRQUFVdkMsS0FBS1AsTUFBTUMsR0FFbkJNLEtBQUt1QyxPQUNiLEVBUVUsTUFBQVcsRUFBTyxJQUFJNkIsTUFBTWxGLEVBQVUsQ0FLdENtRixNQUFBLENBQU1DLEVBQVFDLEVBQVN6QyxJQUNkd0MsRUFBT3JCLGVBQWVuQixHQU8vQjBDLFVBQUEsQ0FBVUYsRUFBUXhDLElBQ1QsSUFBSXdDLEtBQVV4QyxHQU12QkQsSUFBQSxDQUFJeUMsRUFBUUcsSUFDSEgsRUFBT0csS0FJSEMsRUFBQW5DLEVBQUtVIn0=
|
package/dist/i18n.umd.min.js.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@draggable/i18n",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "A simple yet robust i18n solution for universal JavaScript apps.",
|
|
5
5
|
"main": "dist/i18n.es.min.js",
|
|
6
6
|
"type": "module",
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"scripts": {
|
|
14
14
|
"test": "node --test src/**/*.test.js",
|
|
15
15
|
"test:watch": "yarn test -- --reporter min --watch",
|
|
16
|
-
"lint": "
|
|
16
|
+
"lint": "biome lint ./src",
|
|
17
|
+
"lint:fix": "biome format ./src --write",
|
|
17
18
|
"start": "webpack-dev-server --mode development",
|
|
18
19
|
"semantic-release": "semantic-release",
|
|
19
20
|
"dev": "vite",
|