UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

45 lines 6.98 kB
import { combineLatest, isObservable, of } from 'rxjs'; import { map } from 'rxjs/operators'; import { gettext } from '../../i18n'; export class TranslateExtension { constructor(translate, parser) { this.translate = translate; this.parser = parser; } prePopulate(field) { const to = field.props || {}; if (!to.label || to._translated) { return; } to._translated = true; field.expressions = { ...(field.expressions || {}), 'props.label': to.label ? this.translate.stream(to.label) : to.label, 'props.description': to.description ? this.translate.stream(to.description) : to.description, 'props.placeholder': to.placeholder ? combineLatest([ this.translate.stream(to.placeholder), this.translate.stream(gettext('e.g. {{ example }}')), of(Boolean(to.removeExempliGratia)) ]).pipe(map(([placeholder, expression, exempliGratia]) => !exempliGratia ? this.parser.interpolate(expression, { example: placeholder }) : placeholder)) : to.placeholder, 'props.options': (isObservable(to.options) ? to.options : of(to.options)).pipe(map((options) => (options || []).map(option => ({ ...option, label: this.translate.instant(option.label) })))) }; } } export function registerTranslateExtension(translate, parser) { return { extensions: [ { name: 'translate', extension: new TranslateExtension(translate, parser) } ] }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvZHluYW1pYy1mb3Jtcy9pMThuL3RyYW5zbGF0ZS5leHRlbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXJDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBb0IsU0FBMkIsRUFBVSxNQUF1QjtRQUE1RCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWlCO0lBQUcsQ0FBQztJQUNwRixXQUFXLENBQUMsS0FBd0I7UUFDbEMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLE9BQU87UUFDVCxDQUFDO1FBRUQsRUFBRSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDdEIsS0FBSyxDQUFDLFdBQVcsR0FBRztZQUNsQixHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7WUFDNUIsYUFBYSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUs7WUFDcEUsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVztZQUM1RixtQkFBbUIsRUFBRSxFQUFFLENBQUMsV0FBVztnQkFDakMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztvQkFDWixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO29CQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztvQkFDcEQsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztpQkFDcEMsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUMvQyxDQUFDLGFBQWE7b0JBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQztvQkFDL0QsQ0FBQyxDQUFDLFdBQVcsQ0FDaEIsQ0FDRjtnQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVc7WUFDbEIsZUFBZSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDNUUsR0FBRyxDQUFDLENBQUMsT0FBaUMsRUFBRSxFQUFFLENBQ3hDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdCLEdBQUcsTUFBTTtnQkFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUM1QyxDQUFDLENBQUMsQ0FDSixDQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxTQUEyQixFQUFFLE1BQXVCO0lBQzdGLE9BQU87UUFDTCxVQUFVLEVBQUU7WUFDVjtnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsU0FBUyxFQUFFLElBQUksa0JBQWtCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQzthQUNyRDtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGFyc2VyLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBpc09ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vLi4vaTE4bic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVFeHRlbnNpb24ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSBwYXJzZXI6IFRyYW5zbGF0ZVBhcnNlcikge31cbiAgcHJlUG9wdWxhdGUoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSB7XG4gICAgY29uc3QgdG8gPSBmaWVsZC5wcm9wcyB8fCB7fTtcbiAgICBpZiAoIXRvLmxhYmVsIHx8IHRvLl90cmFuc2xhdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdG8uX3RyYW5zbGF0ZWQgPSB0cnVlO1xuICAgIGZpZWxkLmV4cHJlc3Npb25zID0ge1xuICAgICAgLi4uKGZpZWxkLmV4cHJlc3Npb25zIHx8IHt9KSxcbiAgICAgICdwcm9wcy5sYWJlbCc6IHRvLmxhYmVsID8gdGhpcy50cmFuc2xhdGUuc3RyZWFtKHRvLmxhYmVsKSA6IHRvLmxhYmVsLFxuICAgICAgJ3Byb3BzLmRlc2NyaXB0aW9uJzogdG8uZGVzY3JpcHRpb24gPyB0aGlzLnRyYW5zbGF0ZS5zdHJlYW0odG8uZGVzY3JpcHRpb24pIDogdG8uZGVzY3JpcHRpb24sXG4gICAgICAncHJvcHMucGxhY2Vob2xkZXInOiB0by5wbGFjZWhvbGRlclxuICAgICAgICA/IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuc3RyZWFtKHRvLnBsYWNlaG9sZGVyKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLnN0cmVhbShnZXR0ZXh0KCdlLmcuIHt7IGV4YW1wbGUgfX0nKSksXG4gICAgICAgICAgICBvZihCb29sZWFuKHRvLnJlbW92ZUV4ZW1wbGlHcmF0aWEpKVxuICAgICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtwbGFjZWhvbGRlciwgZXhwcmVzc2lvbiwgZXhlbXBsaUdyYXRpYV0pID0+XG4gICAgICAgICAgICAgICFleGVtcGxpR3JhdGlhXG4gICAgICAgICAgICAgICAgPyB0aGlzLnBhcnNlci5pbnRlcnBvbGF0ZShleHByZXNzaW9uLCB7IGV4YW1wbGU6IHBsYWNlaG9sZGVyIH0pXG4gICAgICAgICAgICAgICAgOiBwbGFjZWhvbGRlclxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgOiB0by5wbGFjZWhvbGRlcixcbiAgICAgICdwcm9wcy5vcHRpb25zJzogKGlzT2JzZXJ2YWJsZSh0by5vcHRpb25zKSA/IHRvLm9wdGlvbnMgOiBvZih0by5vcHRpb25zKSkucGlwZShcbiAgICAgICAgbWFwKChvcHRpb25zOiBBcnJheTx7IGxhYmVsOiBzdHJpbmcgfT4pID0+XG4gICAgICAgICAgKG9wdGlvbnMgfHwgW10pLm1hcChvcHRpb24gPT4gKHtcbiAgICAgICAgICAgIC4uLm9wdGlvbixcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG9wdGlvbi5sYWJlbClcbiAgICAgICAgICB9KSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyVHJhbnNsYXRlRXh0ZW5zaW9uKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcGFyc2VyOiBUcmFuc2xhdGVQYXJzZXIpIHtcbiAgcmV0dXJuIHtcbiAgICBleHRlbnNpb25zOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0cmFuc2xhdGUnLFxuICAgICAgICBleHRlbnNpb246IG5ldyBUcmFuc2xhdGVFeHRlbnNpb24odHJhbnNsYXRlLCBwYXJzZXIpXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuIl19