1 | var __extends = (this && this.__extends) || (function () {
|
2 | var extendStatics = Object.setPrototypeOf ||
|
3 | ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
4 | function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
5 | return function (d, b) {
|
6 | extendStatics(d, b);
|
7 | function __() { this.constructor = d; }
|
8 | d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
9 | };
|
10 | })();
|
11 | import { Injectable } from "@angular/core";
|
12 | import { isDefined } from "./util";
|
13 | var TranslateParser = (function () {
|
14 | function TranslateParser() {
|
15 | }
|
16 | return TranslateParser;
|
17 | }());
|
18 | export { TranslateParser };
|
19 | var TranslateDefaultParser = (function (_super) {
|
20 | __extends(TranslateDefaultParser, _super);
|
21 | function TranslateDefaultParser() {
|
22 | var _this = _super !== null && _super.apply(this, arguments) || this;
|
23 | _this.templateMatcher = /{{\s?([^{}\s]*)\s?}}/g;
|
24 | return _this;
|
25 | }
|
26 | TranslateDefaultParser.prototype.interpolate = function (expr, params) {
|
27 | var result;
|
28 | if (typeof expr === 'string') {
|
29 | result = this.interpolateString(expr, params);
|
30 | }
|
31 | else if (typeof expr === 'function') {
|
32 | result = this.interpolateFunction(expr, params);
|
33 | }
|
34 | else {
|
35 |
|
36 | result = expr;
|
37 | }
|
38 | return result;
|
39 | };
|
40 | TranslateDefaultParser.prototype.getValue = function (target, key) {
|
41 | var keys = key.split('.');
|
42 | key = '';
|
43 | do {
|
44 | key += keys.shift();
|
45 | if (isDefined(target) && isDefined(target[key]) && (typeof target[key] === 'object' || !keys.length)) {
|
46 | target = target[key];
|
47 | key = '';
|
48 | }
|
49 | else if (!keys.length) {
|
50 | target = undefined;
|
51 | }
|
52 | else {
|
53 | key += '.';
|
54 | }
|
55 | } while (keys.length);
|
56 | return target;
|
57 | };
|
58 | TranslateDefaultParser.prototype.interpolateFunction = function (fn, params) {
|
59 | return fn(params);
|
60 | };
|
61 | TranslateDefaultParser.prototype.interpolateString = function (expr, params) {
|
62 | var _this = this;
|
63 | if (!params) {
|
64 | return expr;
|
65 | }
|
66 | return expr.replace(this.templateMatcher, function (substring, b) {
|
67 | var r = _this.getValue(params, b);
|
68 | return isDefined(r) ? r : substring;
|
69 | });
|
70 | };
|
71 | return TranslateDefaultParser;
|
72 | }(TranslateParser));
|
73 | export { TranslateDefaultParser };
|
74 | TranslateDefaultParser.decorators = [
|
75 | { type: Injectable },
|
76 | ];
|
77 |
|
78 | TranslateDefaultParser.ctorParameters = function () { return []; };
|