angular-l10n
Version:
An Angular library to translate messages, dates and numbers
127 lines • 3.71 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';
import { takeUntil } from 'rxjs/operators';
import { TranslationService } from '../services/translation.service';
import { BaseDirective } from '../models/base-directive';
var TranslateDirective = /** @class */ (function (_super) {
tslib_1.__extends(TranslateDirective, _super);
function TranslateDirective(translation, el, renderer) {
var _this = _super.call(this, el, renderer) || this;
_this.translation = translation;
_this.el = el;
_this.renderer = renderer;
return _this;
}
Object.defineProperty(TranslateDirective.prototype, "l10nTranslate", {
set: /**
* @param {?} params
* @return {?}
*/
function (params) {
this.params = params;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TranslateDirective.prototype, "translate", {
set: /**
* @param {?} params
* @return {?}
*/
function (params) {
this.params = params;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
TranslateDirective.prototype.setup = /**
* @return {?}
*/
function () {
var _this = this;
this.translation.translationChanged().pipe(takeUntil(this.destroy)).subscribe(function () { _this.replace(); });
};
/**
* @return {?}
*/
TranslateDirective.prototype.replace = /**
* @return {?}
*/
function () {
this.replaceText();
this.replaceAttributes();
};
/**
* @return {?}
*/
TranslateDirective.prototype.replaceText = /**
* @return {?}
*/
function () {
if (!!this.key) {
this.setText(this.getValue(this.key));
}
};
/**
* @return {?}
*/
TranslateDirective.prototype.replaceAttributes = /**
* @return {?}
*/
function () {
if (this.attributes.length > 0) {
/** @type {?} */
var keys = this.getAttributesKeys();
/** @type {?} */
var data = this.translation.translate(keys, this.params);
this.setAttributes(data);
}
};
/**
* @param {?} key
* @return {?}
*/
TranslateDirective.prototype.getValue = /**
* @param {?} key
* @return {?}
*/
function (key) {
return this.translation.translate(key, this.params);
};
TranslateDirective.decorators = [
{ type: Directive, args: [{
selector: '[l10nTranslate],[translate]'
},] }
];
/** @nocollapse */
TranslateDirective.ctorParameters = function () { return [
{ type: TranslationService },
{ type: ElementRef },
{ type: Renderer2 }
]; };
TranslateDirective.propDecorators = {
l10nTranslate: [{ type: Input }],
translate: [{ type: Input }],
params: [{ type: Input }]
};
return TranslateDirective;
}(BaseDirective));
export { TranslateDirective };
if (false) {
/** @type {?} */
TranslateDirective.prototype.params;
/** @type {?} */
TranslateDirective.prototype.translation;
/** @type {?} */
TranslateDirective.prototype.el;
/** @type {?} */
TranslateDirective.prototype.renderer;
}
//# sourceMappingURL=translate.directive.js.map