UNPKG

@js-sugar/angular

Version:

JS-Sugar core package (Angular)

68 lines 9.66 kB
export class Locale { constructor(data) { this._data = data; Object.freeze(data); } get name() { return this._data.name; } get rtl() { return this._data.rtl === true; } get data() { return this._data; } clone(newProps) { const configs = { name: newProps?.name ?? this._data.name, rtl: newProps?.rtl ?? this._data.rtl, dictionary: newProps?.dictionary ?? this._data.dictionary, form: newProps?.form ?? this._data.form, }; return new Locale(configs); } extend(values) { return this.clone({ dictionary: { ...this._data.dictionary, ...values?.dictionary }, form: { validation: { error: { defaultMessage: this._data?.form?.validation?.error?.defaultMessage, translators: { ...this._data?.form?.validation?.error?.translators, ...values.errorTranslators } } } } }); } translateError(key, value) { const e = this._data?.form?.validation?.error; const translatorFunc = e?.translators ? e.translators[key] : undefined; return typeof translatorFunc === 'function' ? translatorFunc(value) : e?.defaultMessage; } translateErrors(errors) { const result = {}; for (const key in errors) { if (Object.prototype.hasOwnProperty.call(errors, key)) { result[key] = { key: key, value: errors[key], text: this.translateError(key, errors[key]) }; } } return result; } translateFirstError(errors) { const key = Object.keys(errors)[0]; const value = errors[key]; return { key, value, text: this.translateError(key, value) }; } lookup(dictionaryKey) { return this._data.dictionary ? this._data.dictionary[dictionaryKey] : undefined; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2xvY2FsaXphdGlvbi9sb2NhbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLE1BQU07SUFHakIsWUFBWSxJQUFnQjtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBSXRCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFHRCxLQUFLLENBQUMsUUFBOEI7UUFDbEMsTUFBTSxPQUFPLEdBQWU7WUFDMUIsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3ZDLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztZQUNwQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7WUFDekQsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1NBQ3hDLENBQUM7UUFFRixPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFHRCxNQUFNLENBQUMsTUFHTjtRQUNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNoQixVQUFVLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsTUFBTSxFQUFFLFVBQVUsRUFBRTtZQUMvRCxJQUFJLEVBQUU7Z0JBQ0osVUFBVSxFQUFFO29CQUNWLEtBQUssRUFBRTt3QkFDTCxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxjQUFjO3dCQUNuRSxXQUFXLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFO3FCQUNqRztpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELGNBQWMsQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUNwQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDO1FBQzlDLE1BQU0sY0FBYyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN2RSxPQUFPLE9BQU8sY0FBYyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFBO0lBQ3pGLENBQUM7SUFHRCxlQUFlLENBQUMsTUFBVztRQUN6QixNQUFNLE1BQU0sR0FBZ0QsRUFBRSxDQUFDO1FBQy9ELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFO1lBQ3hCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDckQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHO29CQUNaLEdBQUcsRUFBRSxHQUFHO29CQUNSLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDO29CQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUM1QyxDQUFDO2FBQ0g7U0FDRjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxNQUFXO1FBQzdCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLE9BQU87WUFDTCxHQUFHO1lBQ0gsS0FBSztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7U0FDdEMsQ0FBQztJQUNKLENBQUM7SUFHRCxNQUFNLENBQUMsYUFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsRixDQUFDO0NBS0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbGVEYXRhLCBMb2NhbGVEaWN0aW9uYXJ5LCBMb2NhbGVFcnJvclRyYW5zbGF0b3JzIH0gZnJvbSBcIi4vbG9jYWxlLWRhdGFcIjtcclxuaW1wb3J0IHsgTG9jYWxpemVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbi8qKiBMb2NhbGUgKEltbXV0YWJsZSkgKi9cclxuZXhwb3J0IGNsYXNzIExvY2FsZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGF0YTogTG9jYWxlRGF0YTtcclxuXHJcbiAgY29uc3RydWN0b3IoZGF0YTogTG9jYWxlRGF0YSkge1xyXG4gICAgdGhpcy5fZGF0YSA9IGRhdGE7XHJcbiAgICBPYmplY3QuZnJlZXplKGRhdGEpO1xyXG4gICAgLy8gT2JqZWN0LmZyZWV6ZShkYXRhLmRpY3Rpb25hcnkpO1xyXG4gICAgLy8gT2JqZWN0LmZyZWV6ZShkYXRhLmZvcm0udmFsaWRhdGlvbi5lcnJvcik7XHJcbiAgICAvLyBPYmplY3QuZnJlZXplKGRhdGEuZm9ybS52YWxpZGF0aW9uLmVycm9yLnRyYW5zbGF0b3JzKTtcclxuICB9XHJcblxyXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5uYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJ0bCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhLnJ0bCA9PT0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldCBkYXRhKCk6IExvY2FsZURhdGEge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICAvKiogQ2xvbmVzIHRoaXMgbG9jYWxlICovXHJcbiAgY2xvbmUobmV3UHJvcHM/OiBQYXJ0aWFsPExvY2FsZURhdGE+KTogTG9jYWxlIHtcclxuICAgIGNvbnN0IGNvbmZpZ3M6IExvY2FsZURhdGEgPSB7XHJcbiAgICAgIG5hbWU6IG5ld1Byb3BzPy5uYW1lID8/IHRoaXMuX2RhdGEubmFtZSxcclxuICAgICAgcnRsOiBuZXdQcm9wcz8ucnRsID8/IHRoaXMuX2RhdGEucnRsLFxyXG4gICAgICBkaWN0aW9uYXJ5OiBuZXdQcm9wcz8uZGljdGlvbmFyeSA/PyB0aGlzLl9kYXRhLmRpY3Rpb25hcnksXHJcbiAgICAgIGZvcm06IG5ld1Byb3BzPy5mb3JtID8/IHRoaXMuX2RhdGEuZm9ybSxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG5ldyBMb2NhbGUoY29uZmlncyk7XHJcbiAgfVxyXG5cclxuICAvKiogRXh0ZW5kcyB0aGlzIG9iamVjdCBhbmQgcmV0dXJucyBhIG5ldyBMb2NhbGUgKi9cclxuICBleHRlbmQodmFsdWVzOiB7XHJcbiAgICBkaWN0aW9uYXJ5PzogTG9jYWxlRGljdGlvbmFyeSxcclxuICAgIGVycm9yVHJhbnNsYXRvcnM/OiBMb2NhbGVFcnJvclRyYW5zbGF0b3JzXHJcbiAgfSk6IExvY2FsZSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbG9uZSh7XHJcbiAgICAgIGRpY3Rpb25hcnk6IHsgLi4udGhpcy5fZGF0YS5kaWN0aW9uYXJ5LCAuLi52YWx1ZXM/LmRpY3Rpb25hcnkgfSxcclxuICAgICAgZm9ybToge1xyXG4gICAgICAgIHZhbGlkYXRpb246IHtcclxuICAgICAgICAgIGVycm9yOiB7XHJcbiAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlOiB0aGlzLl9kYXRhPy5mb3JtPy52YWxpZGF0aW9uPy5lcnJvcj8uZGVmYXVsdE1lc3NhZ2UsXHJcbiAgICAgICAgICAgIHRyYW5zbGF0b3JzOiB7IC4uLnRoaXMuX2RhdGE/LmZvcm0/LnZhbGlkYXRpb24/LmVycm9yPy50cmFuc2xhdG9ycywgLi4udmFsdWVzLmVycm9yVHJhbnNsYXRvcnMgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogVHJhbnNsYXRlcyBhIHZhbGlkYXRpb24gZXJyb3IgKi9cclxuICB0cmFuc2xhdGVFcnJvcihrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCBlID0gdGhpcy5fZGF0YT8uZm9ybT8udmFsaWRhdGlvbj8uZXJyb3I7XHJcbiAgICBjb25zdCB0cmFuc2xhdG9yRnVuYyA9IGU/LnRyYW5zbGF0b3JzID8gZS50cmFuc2xhdG9yc1trZXldIDogdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIHR5cGVvZiB0cmFuc2xhdG9yRnVuYyA9PT0gJ2Z1bmN0aW9uJyA/IHRyYW5zbGF0b3JGdW5jKHZhbHVlKSA6IGU/LmRlZmF1bHRNZXNzYWdlXHJcbiAgfVxyXG5cclxuICAvKiogVHJhbnNsYXRlcyB2YWxpZGF0aW9uIGVycm9ycyAqL1xyXG4gIHRyYW5zbGF0ZUVycm9ycyhlcnJvcnM6IGFueSk6IHsgW2tleTogc3RyaW5nXTogTG9jYWxpemVkVmFsaWRhdGlvbkVycm9yIH0ge1xyXG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IExvY2FsaXplZFZhbGlkYXRpb25FcnJvciB9ID0ge307XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBlcnJvcnMpIHtcclxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlcnJvcnMsIGtleSkpIHtcclxuICAgICAgICByZXN1bHRba2V5XSA9IHtcclxuICAgICAgICAgIGtleToga2V5LFxyXG4gICAgICAgICAgdmFsdWU6IGVycm9yc1trZXldLFxyXG4gICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVFcnJvcihrZXksIGVycm9yc1trZXldKVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqIFRyYW5zbGF0ZXMgZmlyc3QgdmFsaWRhdGlvbiBlcnJvciAqL1xyXG4gIHRyYW5zbGF0ZUZpcnN0RXJyb3IoZXJyb3JzOiBhbnkpOiBMb2NhbGl6ZWRWYWxpZGF0aW9uRXJyb3IgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoZXJyb3JzKVswXTtcclxuICAgIGNvbnN0IHZhbHVlID0gZXJyb3JzW2tleV07XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBrZXksXHJcbiAgICAgIHZhbHVlLFxyXG4gICAgICB0ZXh0OiB0aGlzLnRyYW5zbGF0ZUVycm9yKGtleSwgdmFsdWUpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqIExvb2tzIHVwIGEga2V5IGluIHRoZSBsb2NhbGUgZGljdGlvbmFyeSAqL1xyXG4gIGxvb2t1cChkaWN0aW9uYXJ5S2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZGljdGlvbmFyeSA/IHRoaXMuX2RhdGEuZGljdGlvbmFyeVtkaWN0aW9uYXJ5S2V5XSA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8vIGZvcm1hdERhdGUoZGF0ZVRpbWU6IERhdGVUaW1lLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgLy8gICByZXR1cm4gJ2Zvcm1hdGVkIERhdGVUaW1lJztcclxuICAvLyB9XHJcbn1cclxuIl19