ngx-i18n-input
Version:
Angular library for internationalized input fields
53 lines • 8.97 kB
JavaScript
import { InjectionToken } from "@angular/core";
import { LANGUAGE_DETAILS } from "./country-iso-code";
export const NgxI18nInputLayouts = ["vertical", "tabs"];
export const NGX_I18N_INPUT_DEFAULT_CONFIGS = {
availableLangs: ["en"],
languageDetails: LANGUAGE_DETAILS,
stringifyLang: function (lang) {
return (this.languageDetails || LANGUAGE_DETAILS)[lang]?.name || lang;
},
formatLabel: function (lang, label) {
const labelStr = typeof label === "string" ? label : (label || {})[lang];
if (!labelStr)
return this.stringifyLang(lang);
return labelStr + " (" + this.stringifyLang(lang) + ")";
},
layout: NgxI18nInputLayouts[0],
labelTemplate: null,
inputTemplate: null,
hideLabels: false,
autofocus: false,
required: false,
label: null,
validators: [],
defaultInputComponent: null,
formatOutput: ngxI18nDefaultFormatOutput
};
// TODO partial ??
export const NGX_I18N_INPUT_CONFIG = new InjectionToken('NGX_I18N_INPUT_CONFIG');
export function mergeNgxI18nConfigs(configs) {
if (!configs)
return NGX_I18N_INPUT_DEFAULT_CONFIGS;
return {
...NGX_I18N_INPUT_DEFAULT_CONFIGS,
...configs
};
}
export function provideNgxI18nConfigs(configs) {
return {
provide: NGX_I18N_INPUT_CONFIG,
useValue: mergeNgxI18nConfigs(configs)
};
}
export function ngxI18nDefaultFormatOutput(formValue) {
return formValue;
}
export function generateUid() {
return Math.random().toString(36).substring(2);
}
export const NGX_I18N_INPUT_CONTEXT = new InjectionToken('NGX_I18N_INPUT_CONTEXT');
export function isNgxI18nInputContext(v) {
return typeof v === "object" && v !== null && "configs" in v && "control" in v;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBT3RELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBVSxDQUFDO0FBb0JqRSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBdUI7SUFDaEUsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3RCLGVBQWUsRUFBRSxnQkFBZ0I7SUFDakMsYUFBYSxFQUFFLFVBQVMsSUFBVTtRQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUM7SUFDeEUsQ0FBQztJQUNELFdBQVcsRUFBRSxVQUFTLElBQVUsRUFBRSxLQUEyQztRQUMzRSxNQUFNLFFBQVEsR0FBVyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakYsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsT0FBTyxRQUFRLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzFELENBQUM7SUFDRCxNQUFNLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQzlCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGFBQWEsRUFBRSxJQUFJO0lBQ25CLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsRUFBRTtJQUNkLHFCQUFxQixFQUFFLElBQUk7SUFDM0IsWUFBWSxFQUFFLDBCQUEwQjtDQUN6QyxDQUFDO0FBRUYsa0JBQWtCO0FBQ2xCLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFxQix1QkFBdUIsQ0FBQyxDQUFDO0FBRXJHLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUF1RDtJQUN6RixJQUFJLENBQUMsT0FBTztRQUFFLE9BQU8sOEJBQThCLENBQUM7SUFFcEQsT0FBTztRQUNMLEdBQUcsOEJBQThCO1FBQ2pDLEdBQUcsT0FBTztLQUNYLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQW9DO0lBQ3hFLE9BQU87UUFDTCxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7S0FDdkMsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUksU0FBaUM7SUFDN0UsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXO0lBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQXVCRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBc0Isd0JBQXdCLENBQUMsQ0FBQztBQUV4RyxNQUFNLFVBQVUscUJBQXFCLENBQUMsQ0FBVTtJQUM5QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLFNBQVMsSUFBSSxDQUFDLElBQUksU0FBUyxJQUFJLENBQUMsQ0FBQztBQUNqRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyLCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBMQU5HVUFHRV9ERVRBSUxTIH0gZnJvbSBcIi4vY291bnRyeS1pc28tY29kZVwiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuZXhwb3J0IHR5cGUgTGFuZyA9IHN0cmluZztcbmV4cG9ydCB0eXBlIExhbmdzID0gTGFuZ1tdO1xuXG5cbmV4cG9ydCBjb25zdCBOZ3hJMThuSW5wdXRMYXlvdXRzID0gW1widmVydGljYWxcIiwgXCJ0YWJzXCJdIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgTmd4STE4bklucHV0TGF5b3V0ID0gdHlwZW9mIE5neEkxOG5JbnB1dExheW91dHNbbnVtYmVyXTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3hJMThuSW5wdXRDb25maWcge1xuICBhdmFpbGFibGVMYW5nczogTGFuZ3M7XG4gIGxhbmd1YWdlRGV0YWlsczogUmVjb3JkPExhbmcsIHsgbmFtZTogc3RyaW5nIH0+O1xuICBzdHJpbmdpZnlMYW5nOiAobGFuZzogc3RyaW5nKSA9PiBzdHJpbmc7XG4gIGZvcm1hdExhYmVsOiAobGFuZzogTGFuZywgbGFiZWw6IHN0cmluZyB8IFJlY29yZDxMYW5nLCBzdHJpbmc+IHwgbnVsbCkgPT4gc3RyaW5nLFxuICBsYXlvdXQ6IE5neEkxOG5JbnB1dExheW91dCxcbiAgbGFiZWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsLFxuICBpbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwsXG4gIGhpZGVMYWJlbHM6IGJvb2xlYW4sXG4gIGF1dG9mb2N1czogYm9vbGVhbiB8IHN0cmluZyxcbiAgcmVxdWlyZWQ6IGJvb2xlYW4sXG4gIGxhYmVsOiBzdHJpbmcgfCBSZWNvcmQ8TGFuZywgc3RyaW5nPiB8IG51bGwsXG4gIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10sXG4gIGRlZmF1bHRJbnB1dENvbXBvbmVudDogVHlwZTxhbnk+IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgZm9ybWF0T3V0cHV0OiAoZm9ybVZhbHVlOiBSZWNvcmQ8TGFuZywgYW55IHwgbnVsbD4pID0+IFJlY29yZDxMYW5nLCBhbnkgfCBudWxsPlxufVxuXG5leHBvcnQgY29uc3QgTkdYX0kxOE5fSU5QVVRfREVGQVVMVF9DT05GSUdTOiBOZ3hJMThuSW5wdXRDb25maWcgPSB7XG4gIGF2YWlsYWJsZUxhbmdzOiBbXCJlblwiXSxcbiAgbGFuZ3VhZ2VEZXRhaWxzOiBMQU5HVUFHRV9ERVRBSUxTLFxuICBzdHJpbmdpZnlMYW5nOiBmdW5jdGlvbihsYW5nOiBMYW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMubGFuZ3VhZ2VEZXRhaWxzIHx8IExBTkdVQUdFX0RFVEFJTFMpW2xhbmddPy5uYW1lIHx8IGxhbmc7XG4gIH0sXG4gIGZvcm1hdExhYmVsOiBmdW5jdGlvbihsYW5nOiBMYW5nLCBsYWJlbDogc3RyaW5nIHwgUmVjb3JkPExhbmcsIHN0cmluZz4gfCBudWxsKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYWJlbFN0cjogc3RyaW5nID0gdHlwZW9mIGxhYmVsID09PSBcInN0cmluZ1wiID8gbGFiZWwgOiAobGFiZWwgfHwge30pW2xhbmddO1xuXG4gICAgaWYgKCFsYWJlbFN0cikgcmV0dXJuIHRoaXMuc3RyaW5naWZ5TGFuZyhsYW5nKTtcblxuICAgIHJldHVybiBsYWJlbFN0ciArIFwiIChcIiArIHRoaXMuc3RyaW5naWZ5TGFuZyhsYW5nKSArIFwiKVwiO1xuICB9LFxuICBsYXlvdXQ6IE5neEkxOG5JbnB1dExheW91dHNbMF0sXG4gIGxhYmVsVGVtcGxhdGU6IG51bGwsXG4gIGlucHV0VGVtcGxhdGU6IG51bGwsXG4gIGhpZGVMYWJlbHM6IGZhbHNlLFxuICBhdXRvZm9jdXM6IGZhbHNlLFxuICByZXF1aXJlZDogZmFsc2UsXG4gIGxhYmVsOiBudWxsLFxuICB2YWxpZGF0b3JzOiBbXSxcbiAgZGVmYXVsdElucHV0Q29tcG9uZW50OiBudWxsLFxuICBmb3JtYXRPdXRwdXQ6IG5neEkxOG5EZWZhdWx0Rm9ybWF0T3V0cHV0XG59O1xuXG4vLyBUT0RPIHBhcnRpYWwgPz9cbmV4cG9ydCBjb25zdCBOR1hfSTE4Tl9JTlBVVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd4STE4bklucHV0Q29uZmlnPignTkdYX0kxOE5fSU5QVVRfQ09ORklHJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZU5neEkxOG5Db25maWdzKGNvbmZpZ3M6IFBhcnRpYWw8Tmd4STE4bklucHV0Q29uZmlnPiB8IG51bGwgfCB1bmRlZmluZWQpOiBOZ3hJMThuSW5wdXRDb25maWcge1xuICBpZiAoIWNvbmZpZ3MpIHJldHVybiBOR1hfSTE4Tl9JTlBVVF9ERUZBVUxUX0NPTkZJR1M7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5OR1hfSTE4Tl9JTlBVVF9ERUZBVUxUX0NPTkZJR1MsXG4gICAgLi4uY29uZmlnc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTmd4STE4bkNvbmZpZ3MoY29uZmlnczogUGFydGlhbDxOZ3hJMThuSW5wdXRDb25maWc+KTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IE5HWF9JMThOX0lOUFVUX0NPTkZJRyxcbiAgICB1c2VWYWx1ZTogbWVyZ2VOZ3hJMThuQ29uZmlncyhjb25maWdzKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZ3hJMThuRGVmYXVsdEZvcm1hdE91dHB1dDxUPihmb3JtVmFsdWU6IFJlY29yZDxMYW5nLCBUIHwgbnVsbD4pOiBSZWNvcmQ8TGFuZywgVCB8IG51bGw+IHtcbiAgcmV0dXJuIGZvcm1WYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVWlkKCk6IHN0cmluZyB7XG4gIHJldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd4STE4bklucHV0Q29udGV4dCB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGlucHV0LlxuICAgKiBJbiBwYXJ0aWNvbGFyLCB5b3UgY2FuIHVzZSB0aGlzIHZhbHVlIGZvciB0aGUgaWQgb2YgdGhlIGlucHV0IGVsZW1lbnQuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG5nLXRlbXBsYXRlICNpbnB1dFRlbXAgbGV0LWNvbnRleHQ+XG4gICAqICAgPGlucHV0IFtpZF09XCJjb250ZXh0LmlkXCI+XG4gICAqIDwvbmctdGVtcGxhdGU+XG4gICAqIFxuICAgKiA8bmd4LWkxOG4taW5wdXQgW2lucHV0VGVtcGxhdGVdPVwiaW5wdXRUZW1wXCI+PC9uZ3gtaTE4bi1pbnB1dD5cbiAgICogYGBgXG4gICAqL1xuICBpZDogc3RyaW5nO1xuICBjb25maWdzOiBOZ3hJMThuSW5wdXRDb25maWc7XG4gIGNvbnRyb2w6IEZvcm1Db250cm9sPGFueT47XG4gIGxhbmc6IExhbmc7XG4gIGVtaXRDdXN0b21FdmVudDogKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgLy8gd3JpdGVWYWx1ZTogKHZhbHVlOiBhbnkpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IE5HWF9JMThOX0lOUFVUX0NPTlRFWFQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd4STE4bklucHV0Q29udGV4dD4oJ05HWF9JMThOX0lOUFVUX0NPTlRFWFQnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTmd4STE4bklucHV0Q29udGV4dCh2OiB1bmtub3duKTogdiBpcyBOZ3hJMThuSW5wdXRDb250ZXh0IHtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSBcIm9iamVjdFwiICYmIHYgIT09IG51bGwgJiYgXCJjb25maWdzXCIgaW4gdiAmJiBcImNvbnRyb2xcIiBpbiB2O1xufSJdfQ==