ngx-ode-sijil 4.6.0-dev.0 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/s5l.component.mjs +52 -0
- package/esm2020/lib/ngx-ode-sijil.module.mjs +42 -0
- package/esm2020/lib/pipes/translate.pipe.mjs +18 -0
- package/esm2020/lib/services/bundles.service.mjs +98 -0
- package/esm2020/lib/services/parser/fragments.parser.mjs +142 -0
- package/esm2020/lib/services/parser/parser.interface.mjs +15 -0
- package/esm2020/lib/services/require/httprequire.service.mjs +23 -0
- package/esm2020/lib/services/require/require.interface.mjs +8 -0
- package/esm2020/lib/services/sijil.opts.mjs +11 -0
- package/esm2020/ngx-ode-sijil.mjs +5 -0
- package/esm2020/public-api.mjs +8 -0
- package/fesm2015/{ngx-ode-sijil.js → ngx-ode-sijil.mjs} +74 -349
- package/fesm2015/ngx-ode-sijil.mjs.map +1 -0
- package/fesm2020/ngx-ode-sijil.mjs +403 -0
- package/fesm2020/ngx-ode-sijil.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/s5l.component.d.ts +3 -0
- package/lib/ngx-ode-sijil.module.d.ts +9 -2
- package/lib/pipes/translate.pipe.d.ts +3 -0
- package/lib/services/require/httprequire.service.d.ts +3 -0
- package/package.json +27 -17
- package/CHANGELOG.md +0 -12
- package/bundles/ngx-ode-sijil.umd.js +0 -1029
- package/bundles/ngx-ode-sijil.umd.js.map +0 -1
- package/bundles/ngx-ode-sijil.umd.min.js +0 -16
- package/bundles/ngx-ode-sijil.umd.min.js.map +0 -1
- package/esm2015/lib/components/s5l.component.js +0 -92
- package/esm2015/lib/ngx-ode-sijil.module.js +0 -51
- package/esm2015/lib/pipes/translate.pipe.js +0 -39
- package/esm2015/lib/services/bundles.service.js +0 -154
- package/esm2015/lib/services/parser/fragments.parser.js +0 -208
- package/esm2015/lib/services/parser/parser.interface.js +0 -40
- package/esm2015/lib/services/require/httprequire.service.js +0 -47
- package/esm2015/lib/services/require/require.interface.js +0 -22
- package/esm2015/lib/services/sijil.opts.js +0 -25
- package/esm2015/ngx-ode-sijil.js +0 -15
- package/esm2015/public-api.js +0 -13
- package/esm5/lib/components/s5l.component.js +0 -98
- package/esm5/lib/ngx-ode-sijil.module.js +0 -64
- package/esm5/lib/pipes/translate.pipe.js +0 -44
- package/esm5/lib/services/bundles.service.js +0 -243
- package/esm5/lib/services/parser/fragments.parser.js +0 -230
- package/esm5/lib/services/parser/parser.interface.js +0 -57
- package/esm5/lib/services/require/httprequire.service.js +0 -50
- package/esm5/lib/services/require/require.interface.js +0 -38
- package/esm5/lib/services/sijil.opts.js +0 -41
- package/esm5/ngx-ode-sijil.js +0 -15
- package/esm5/public-api.js +0 -13
- package/fesm2015/ngx-ode-sijil.js.map +0 -1
- package/fesm5/ngx-ode-sijil.js +0 -829
- package/fesm5/ngx-ode-sijil.js.map +0 -1
- package/ngx-ode-sijil.d.ts +0 -9
- package/ngx-ode-sijil.metadata.json +0 -1
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/services/bundles.service.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Defines a BundlesService, whice is the main entry point for Sijil operations.
|
|
8
|
-
*
|
|
9
|
-
* A BundlesServices has three dependencies :
|
|
10
|
-
* - RequireService : Used to fetch bundles
|
|
11
|
-
* - Parser : Used to parse logic inside bundle values
|
|
12
|
-
* - SijilOpts : An object containing custom settings
|
|
13
|
-
*/
|
|
14
|
-
var /**
|
|
15
|
-
* Defines a BundlesService, whice is the main entry point for Sijil operations.
|
|
16
|
-
*
|
|
17
|
-
* A BundlesServices has three dependencies :
|
|
18
|
-
* - RequireService : Used to fetch bundles
|
|
19
|
-
* - Parser : Used to parse logic inside bundle values
|
|
20
|
-
* - SijilOpts : An object containing custom settings
|
|
21
|
-
*/
|
|
22
|
-
BundlesService = /** @class */ (function () {
|
|
23
|
-
function BundlesService(requireService, parser, sijilOpts) {
|
|
24
|
-
this.requireService = requireService;
|
|
25
|
-
this.parser = parser;
|
|
26
|
-
this.bundles = {};
|
|
27
|
-
this.defaultLanguage = sijilOpts.defaultLanguage;
|
|
28
|
-
if (!this.defaultLanguage && typeof window !== 'undefined') {
|
|
29
|
-
this.defaultLanguage = window.navigator.language.split('-')[0];
|
|
30
|
-
}
|
|
31
|
-
this.currentLanguage = this.defaultLanguage;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Add keys/values to an existing bundle, or create it if missing.
|
|
35
|
-
*
|
|
36
|
-
* @param bundle An object containing translations as key / values.
|
|
37
|
-
* @param lang The language to map the bundle with, or the current langugage if omitted.
|
|
38
|
-
*/
|
|
39
|
-
/**
|
|
40
|
-
* Add keys/values to an existing bundle, or create it if missing.
|
|
41
|
-
*
|
|
42
|
-
* @param {?} bundle An object containing translations as key / values.
|
|
43
|
-
* @param {?=} lang The language to map the bundle with, or the current langugage if omitted.
|
|
44
|
-
* @return {?}
|
|
45
|
-
*/
|
|
46
|
-
BundlesService.prototype.addToBundle = /**
|
|
47
|
-
* Add keys/values to an existing bundle, or create it if missing.
|
|
48
|
-
*
|
|
49
|
-
* @param {?} bundle An object containing translations as key / values.
|
|
50
|
-
* @param {?=} lang The language to map the bundle with, or the current langugage if omitted.
|
|
51
|
-
* @return {?}
|
|
52
|
-
*/
|
|
53
|
-
function (bundle, lang) {
|
|
54
|
-
/** @type {?} */
|
|
55
|
-
var targetLanguage = lang || this.currentLanguage || this.defaultLanguage || 'en';
|
|
56
|
-
if (!this.bundles[targetLanguage]) {
|
|
57
|
-
this.bundles[targetLanguage] = {};
|
|
58
|
-
}
|
|
59
|
-
this.bundles[targetLanguage] = Object.assign({}, this.bundles[targetLanguage], bundle);
|
|
60
|
-
if (!this.currentLanguage) {
|
|
61
|
-
this.currentLanguage = lang;
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Loads a bundle and associates it with a language.
|
|
66
|
-
* If the target language already contains key/values, then we mixin the new bundle and the existing one.
|
|
67
|
-
*
|
|
68
|
-
* @param where The path, or whatever the RequireService needs to fetch the bundle.
|
|
69
|
-
* @param lang The target language, or the current language if omitted.
|
|
70
|
-
* @returns A Promise, because the RequireService can be (is - by default) asynchronous.
|
|
71
|
-
*/
|
|
72
|
-
/**
|
|
73
|
-
* Loads a bundle and associates it with a language.
|
|
74
|
-
* If the target language already contains key/values, then we mixin the new bundle and the existing one.
|
|
75
|
-
*
|
|
76
|
-
* @param {?} where The path, or whatever the RequireService needs to fetch the bundle.
|
|
77
|
-
* @param {?=} lang The target language, or the current language if omitted.
|
|
78
|
-
* @return {?} A Promise, because the RequireService can be (is - by default) asynchronous.
|
|
79
|
-
*/
|
|
80
|
-
BundlesService.prototype.loadBundle = /**
|
|
81
|
-
* Loads a bundle and associates it with a language.
|
|
82
|
-
* If the target language already contains key/values, then we mixin the new bundle and the existing one.
|
|
83
|
-
*
|
|
84
|
-
* @param {?} where The path, or whatever the RequireService needs to fetch the bundle.
|
|
85
|
-
* @param {?=} lang The target language, or the current language if omitted.
|
|
86
|
-
* @return {?} A Promise, because the RequireService can be (is - by default) asynchronous.
|
|
87
|
-
*/
|
|
88
|
-
function (where, lang) {
|
|
89
|
-
var _this = this;
|
|
90
|
-
return this.requireService.load(where)
|
|
91
|
-
.then((/**
|
|
92
|
-
* @param {?} bundle
|
|
93
|
-
* @return {?}
|
|
94
|
-
*/
|
|
95
|
-
function (bundle) {
|
|
96
|
-
_this.addToBundle(bundle, lang);
|
|
97
|
-
}));
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* Loads multiple bundles and associates then with a language.
|
|
101
|
-
*
|
|
102
|
-
* @see {@link loadBundle}
|
|
103
|
-
*/
|
|
104
|
-
/**
|
|
105
|
-
* Loads multiple bundles and associates then with a language.
|
|
106
|
-
*
|
|
107
|
-
* @see {\@link loadBundle}
|
|
108
|
-
* @param {?} specs
|
|
109
|
-
* @return {?}
|
|
110
|
-
*/
|
|
111
|
-
BundlesService.prototype.loadBundles = /**
|
|
112
|
-
* Loads multiple bundles and associates then with a language.
|
|
113
|
-
*
|
|
114
|
-
* @see {\@link loadBundle}
|
|
115
|
-
* @param {?} specs
|
|
116
|
-
* @return {?}
|
|
117
|
-
*/
|
|
118
|
-
function (specs) {
|
|
119
|
-
var _this = this;
|
|
120
|
-
return Promise.all(specs.map((/**
|
|
121
|
-
* @param {?} spec
|
|
122
|
-
* @return {?}
|
|
123
|
-
*/
|
|
124
|
-
function (spec) {
|
|
125
|
-
return _this.loadBundle(spec.where, spec.lang);
|
|
126
|
-
})));
|
|
127
|
-
};
|
|
128
|
-
/**
|
|
129
|
-
* Removes a bundle from the bundles list.
|
|
130
|
-
*
|
|
131
|
-
* @param lang Language to remove.
|
|
132
|
-
*/
|
|
133
|
-
/**
|
|
134
|
-
* Removes a bundle from the bundles list.
|
|
135
|
-
*
|
|
136
|
-
* @param {?} lang Language to remove.
|
|
137
|
-
* @return {?}
|
|
138
|
-
*/
|
|
139
|
-
BundlesService.prototype.unloadBundle = /**
|
|
140
|
-
* Removes a bundle from the bundles list.
|
|
141
|
-
*
|
|
142
|
-
* @param {?} lang Language to remove.
|
|
143
|
-
* @return {?}
|
|
144
|
-
*/
|
|
145
|
-
function (lang) {
|
|
146
|
-
delete this.bundles[lang];
|
|
147
|
-
};
|
|
148
|
-
/**
|
|
149
|
-
* @returns Returns a list of all loaded languages.
|
|
150
|
-
*/
|
|
151
|
-
/**
|
|
152
|
-
* @return {?} Returns a list of all loaded languages.
|
|
153
|
-
*/
|
|
154
|
-
BundlesService.prototype.getLoadedLanguages = /**
|
|
155
|
-
* @return {?} Returns a list of all loaded languages.
|
|
156
|
-
*/
|
|
157
|
-
function () {
|
|
158
|
-
return Object.keys(this.bundles);
|
|
159
|
-
};
|
|
160
|
-
/**
|
|
161
|
-
* Translates a single key into a target language, using the parameters provided if needed.
|
|
162
|
-
*
|
|
163
|
-
* @param key Key to translate
|
|
164
|
-
* @param parameters Parameters to use if the translation contains logic.
|
|
165
|
-
* @param lang Target language, of the current language if omitted.
|
|
166
|
-
* @returns The computed translation, or the key if no match was found in the bundles (including the fallback language bundle).
|
|
167
|
-
*/
|
|
168
|
-
/**
|
|
169
|
-
* Translates a single key into a target language, using the parameters provided if needed.
|
|
170
|
-
*
|
|
171
|
-
* @param {?} key Key to translate
|
|
172
|
-
* @param {?=} parameters Parameters to use if the translation contains logic.
|
|
173
|
-
* @param {?=} lang Target language, of the current language if omitted.
|
|
174
|
-
* @return {?} The computed translation, or the key if no match was found in the bundles (including the fallback language bundle).
|
|
175
|
-
*/
|
|
176
|
-
BundlesService.prototype.translate = /**
|
|
177
|
-
* Translates a single key into a target language, using the parameters provided if needed.
|
|
178
|
-
*
|
|
179
|
-
* @param {?} key Key to translate
|
|
180
|
-
* @param {?=} parameters Parameters to use if the translation contains logic.
|
|
181
|
-
* @param {?=} lang Target language, of the current language if omitted.
|
|
182
|
-
* @return {?} The computed translation, or the key if no match was found in the bundles (including the fallback language bundle).
|
|
183
|
-
*/
|
|
184
|
-
function (key, parameters, lang) {
|
|
185
|
-
/** @type {?} */
|
|
186
|
-
var targetLanguage = lang || this.currentLanguage;
|
|
187
|
-
/** @type {?} */
|
|
188
|
-
var rawTranslation = this.bundles[targetLanguage] &&
|
|
189
|
-
this.bundles[targetLanguage][key] ||
|
|
190
|
-
this.defaultLanguage &&
|
|
191
|
-
this.bundles[this.defaultLanguage] &&
|
|
192
|
-
this.bundles[this.defaultLanguage][key] ||
|
|
193
|
-
key;
|
|
194
|
-
if (rawTranslation !== key && parameters) {
|
|
195
|
-
return this.parser.compile(rawTranslation, parameters, (/**
|
|
196
|
-
* @param {?} e
|
|
197
|
-
* @return {?}
|
|
198
|
-
*/
|
|
199
|
-
function (e) { console.error(e); return key; }));
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
return rawTranslation;
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
return BundlesService;
|
|
206
|
-
}());
|
|
207
|
-
/**
|
|
208
|
-
* Defines a BundlesService, whice is the main entry point for Sijil operations.
|
|
209
|
-
*
|
|
210
|
-
* A BundlesServices has three dependencies :
|
|
211
|
-
* - RequireService : Used to fetch bundles
|
|
212
|
-
* - Parser : Used to parse logic inside bundle values
|
|
213
|
-
* - SijilOpts : An object containing custom settings
|
|
214
|
-
*/
|
|
215
|
-
export { BundlesService };
|
|
216
|
-
if (false) {
|
|
217
|
-
/**
|
|
218
|
-
* @type {?}
|
|
219
|
-
* @private
|
|
220
|
-
*/
|
|
221
|
-
BundlesService.prototype.bundles;
|
|
222
|
-
/**
|
|
223
|
-
* Fallback language.
|
|
224
|
-
* @type {?}
|
|
225
|
-
*/
|
|
226
|
-
BundlesService.prototype.defaultLanguage;
|
|
227
|
-
/**
|
|
228
|
-
* Current language.
|
|
229
|
-
* @type {?}
|
|
230
|
-
*/
|
|
231
|
-
BundlesService.prototype.currentLanguage;
|
|
232
|
-
/**
|
|
233
|
-
* @type {?}
|
|
234
|
-
* @private
|
|
235
|
-
*/
|
|
236
|
-
BundlesService.prototype.requireService;
|
|
237
|
-
/**
|
|
238
|
-
* @type {?}
|
|
239
|
-
* @private
|
|
240
|
-
*/
|
|
241
|
-
BundlesService.prototype.parser;
|
|
242
|
-
}
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW9kZS1zaWppbC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9idW5kbGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQVlBOzs7Ozs7Ozs7SUFFSSx3QkFBb0IsY0FBOEIsRUFBVSxNQUFjLEVBQUUsU0FBb0I7UUFBNUUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVFsRSxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBUHpCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FBQztRQUNqRCxJQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEU7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEQsQ0FBQztJQVlEOzs7OztPQUtHOzs7Ozs7OztJQUNILG9DQUFXOzs7Ozs7O0lBQVgsVUFBWSxNQUFjLEVBQUUsSUFBYTs7WUFDL0IsY0FBYyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSTtRQUVuRixJQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUNyQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV2RixJQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUMvQjtJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HOzs7Ozs7Ozs7SUFDSCxtQ0FBVTs7Ozs7Ozs7SUFBVixVQUFXLEtBQUssRUFBRSxJQUFhO1FBQS9CLGlCQUtDO1FBSkcsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDakMsSUFBSTs7OztRQUFDLFVBQUEsTUFBTTtZQUNSLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUMsRUFBQyxDQUFBO0lBQ1YsQ0FBQztJQUNEOzs7O09BSUc7Ozs7Ozs7O0lBQ0gsb0NBQVc7Ozs7Ozs7SUFBWCxVQUFZLEtBQXFDO1FBQWpELGlCQUlDO1FBSEcsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHOzs7O1FBQUMsVUFBQyxJQUFJO1lBQzlCLE9BQU8sS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDLEVBQUMsQ0FBQyxDQUFBO0lBQ1AsQ0FBQztJQUVEOzs7O09BSUc7Ozs7Ozs7SUFDSCxxQ0FBWTs7Ozs7O0lBQVosVUFBYSxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7Ozs7SUFDSCwyQ0FBa0I7OztJQUFsQjtRQUNJLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7Ozs7Ozs7OztJQUNILGtDQUFTOzs7Ozs7OztJQUFULFVBQVUsR0FBVyxFQUFFLFVBQTJCLEVBQUUsSUFBYTs7WUFDdkQsY0FBYyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZTs7WUFFN0MsY0FBYyxHQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxlQUFlO2dCQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUN2QyxHQUFHO1FBRVAsSUFBRyxjQUFjLEtBQUssR0FBRyxJQUFJLFVBQVUsRUFBRTtZQUNyQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxVQUFVOzs7O1lBQUUsVUFBQyxDQUFDLElBQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7U0FDcEc7YUFBTTtZQUNILE9BQU8sY0FBYyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUNMLHFCQUFDO0FBQUQsQ0FBQyxBQXpHRCxJQXlHQzs7Ozs7Ozs7Ozs7Ozs7O0lBL0ZHLGlDQUE2Qjs7Ozs7SUFJN0IseUNBQXdCOzs7OztJQUl4Qix5Q0FBd0I7Ozs7O0lBaEJaLHdDQUFzQzs7Ozs7SUFBRSxnQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXF1aXJlU2VydmljZSB9IGZyb20gJy4vcmVxdWlyZS9yZXF1aXJlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL3BhcnNlci9wYXJzZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNpamlsT3B0cyB9IGZyb20gJy4vc2lqaWwub3B0cyc7XG5cbi8qKlxuICogRGVmaW5lcyBhIEJ1bmRsZXNTZXJ2aWNlLCB3aGljZSBpcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgU2lqaWwgb3BlcmF0aW9ucy5cbiAqXG4gKiBBIEJ1bmRsZXNTZXJ2aWNlcyBoYXMgdGhyZWUgZGVwZW5kZW5jaWVzIDpcbiAqIC0gUmVxdWlyZVNlcnZpY2UgOiBVc2VkIHRvIGZldGNoIGJ1bmRsZXNcbiAqIC0gUGFyc2VyIDogVXNlZCB0byBwYXJzZSBsb2dpYyBpbnNpZGUgYnVuZGxlIHZhbHVlc1xuICogLSBTaWppbE9wdHMgOiBBbiBvYmplY3QgY29udGFpbmluZyBjdXN0b20gc2V0dGluZ3NcbiAqL1xuZXhwb3J0IGNsYXNzIEJ1bmRsZXNTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVxdWlyZVNlcnZpY2U6IFJlcXVpcmVTZXJ2aWNlLCBwcml2YXRlIHBhcnNlcjogUGFyc2VyLCBzaWppbE9wdHM6IFNpamlsT3B0cykge1xuICAgICAgICB0aGlzLmRlZmF1bHRMYW5ndWFnZSA9IHNpamlsT3B0cy5kZWZhdWx0TGFuZ3VhZ2U7XG4gICAgICAgIGlmKCF0aGlzLmRlZmF1bHRMYW5ndWFnZSAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0TGFuZ3VhZ2UgPSB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlLnNwbGl0KCctJylbMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSB0aGlzLmRlZmF1bHRMYW5ndWFnZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1bmRsZXM6IE9iamVjdCA9IHt9O1xuICAgIC8qKlxuICAgICAqIEZhbGxiYWNrIGxhbmd1YWdlLlxuICAgICAqL1xuICAgIGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgbGFuZ3VhZ2UuXG4gICAgICovXG4gICAgY3VycmVudExhbmd1YWdlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBZGQga2V5cy92YWx1ZXMgdG8gYW4gZXhpc3RpbmcgYnVuZGxlLCBvciBjcmVhdGUgaXQgaWYgbWlzc2luZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBidW5kbGUgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdHJhbnNsYXRpb25zIGFzIGtleSAvIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0gbGFuZyBUaGUgbGFuZ3VhZ2UgdG8gbWFwIHRoZSBidW5kbGUgd2l0aCwgb3IgdGhlIGN1cnJlbnQgbGFuZ3VnYWdlIGlmIG9taXR0ZWQuXG4gICAgICovXG4gICAgYWRkVG9CdW5kbGUoYnVuZGxlOiBPYmplY3QsIGxhbmc/OiBzdHJpbmcpIDogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldExhbmd1YWdlID0gbGFuZyB8fCB0aGlzLmN1cnJlbnRMYW5ndWFnZSB8fCB0aGlzLmRlZmF1bHRMYW5ndWFnZSB8fCAnZW4nO1xuXG4gICAgICAgIGlmKCF0aGlzLmJ1bmRsZXNbdGFyZ2V0TGFuZ3VhZ2VdKSB7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZXNbdGFyZ2V0TGFuZ3VhZ2VdID0ge307XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJ1bmRsZXNbdGFyZ2V0TGFuZ3VhZ2VdID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXSwgYnVuZGxlKTtcblxuICAgICAgICBpZighdGhpcy5jdXJyZW50TGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlID0gbGFuZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWRzIGEgYnVuZGxlIGFuZCBhc3NvY2lhdGVzIGl0IHdpdGggYSBsYW5ndWFnZS5cbiAgICAgKiBJZiB0aGUgdGFyZ2V0IGxhbmd1YWdlIGFscmVhZHkgY29udGFpbnMga2V5L3ZhbHVlcywgdGhlbiB3ZSBtaXhpbiB0aGUgbmV3IGJ1bmRsZSBhbmQgdGhlIGV4aXN0aW5nIG9uZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3aGVyZSBUaGUgcGF0aCwgb3Igd2hhdGV2ZXIgdGhlIFJlcXVpcmVTZXJ2aWNlIG5lZWRzIHRvIGZldGNoIHRoZSBidW5kbGUuXG4gICAgICogQHBhcmFtIGxhbmcgVGhlIHRhcmdldCBsYW5ndWFnZSwgb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgaWYgb21pdHRlZC5cbiAgICAgKiBAcmV0dXJucyBBIFByb21pc2UsIGJlY2F1c2UgdGhlIFJlcXVpcmVTZXJ2aWNlIGNhbiBiZSAoaXMgLSBieSBkZWZhdWx0KSBhc3luY2hyb25vdXMuXG4gICAgICovXG4gICAgbG9hZEJ1bmRsZSh3aGVyZSwgbGFuZz86IHN0cmluZykgOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWlyZVNlcnZpY2UubG9hZCh3aGVyZSlcbiAgICAgICAgICAgIC50aGVuKGJ1bmRsZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRUb0J1bmRsZShidW5kbGUsIGxhbmcpO1xuICAgICAgICAgICAgfSlcbiAgICB9XG4gICAgLyoqXG4gICAgICogTG9hZHMgbXVsdGlwbGUgYnVuZGxlcyBhbmQgYXNzb2NpYXRlcyB0aGVuIHdpdGggYSBsYW5ndWFnZS5cbiAgICAgKlxuICAgICAqIEBzZWUge0BsaW5rIGxvYWRCdW5kbGV9XG4gICAgICovXG4gICAgbG9hZEJ1bmRsZXMoc3BlY3M6IHsgbGFuZzogc3RyaW5nLCB3aGVyZTogYW55IH1bXSk6IFByb21pc2U8dm9pZFtdPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChzcGVjcy5tYXAoKHNwZWMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRCdW5kbGUoc3BlYy53aGVyZSwgc3BlYy5sYW5nKTtcbiAgICAgICAgfSkpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIGJ1bmRsZSBmcm9tIHRoZSBidW5kbGVzIGxpc3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbGFuZyBMYW5ndWFnZSB0byByZW1vdmUuXG4gICAgICovXG4gICAgdW5sb2FkQnVuZGxlKGxhbmc6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBkZWxldGUgdGhpcy5idW5kbGVzW2xhbmddO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIFJldHVybnMgYSBsaXN0IG9mIGFsbCBsb2FkZWQgbGFuZ3VhZ2VzLlxuICAgICAqL1xuICAgIGdldExvYWRlZExhbmd1YWdlcygpIDogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5idW5kbGVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2xhdGVzIGEgc2luZ2xlIGtleSBpbnRvIGEgdGFyZ2V0IGxhbmd1YWdlLCB1c2luZyB0aGUgcGFyYW1ldGVycyBwcm92aWRlZCBpZiBuZWVkZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5IEtleSB0byB0cmFuc2xhdGVcbiAgICAgKiBAcGFyYW0gcGFyYW1ldGVycyBQYXJhbWV0ZXJzIHRvIHVzZSBpZiB0aGUgdHJhbnNsYXRpb24gY29udGFpbnMgbG9naWMuXG4gICAgICogQHBhcmFtIGxhbmcgVGFyZ2V0IGxhbmd1YWdlLCBvZiB0aGUgY3VycmVudCBsYW5ndWFnZSBpZiBvbWl0dGVkLlxuICAgICAqIEByZXR1cm5zIFRoZSBjb21wdXRlZCB0cmFuc2xhdGlvbiwgb3IgdGhlIGtleSBpZiBubyBtYXRjaCB3YXMgZm91bmQgaW4gdGhlIGJ1bmRsZXMgKGluY2x1ZGluZyB0aGUgZmFsbGJhY2sgbGFuZ3VhZ2UgYnVuZGxlKS5cbiAgICAgKi9cbiAgICB0cmFuc2xhdGUoa2V5OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBPYmplY3QgfCBhbnlbXSwgbGFuZz86IHN0cmluZykgOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0YXJnZXRMYW5ndWFnZSA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XG5cbiAgICAgICAgY29uc3QgcmF3VHJhbnNsYXRpb24gOiBzdHJpbmcgPSB0aGlzLmJ1bmRsZXNbdGFyZ2V0TGFuZ3VhZ2VdICYmXG4gICAgICAgICAgICB0aGlzLmJ1bmRsZXNbdGFyZ2V0TGFuZ3VhZ2VdW2tleV0gfHxcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExhbmd1YWdlICYmXG4gICAgICAgICAgICB0aGlzLmJ1bmRsZXNbdGhpcy5kZWZhdWx0TGFuZ3VhZ2VdICYmXG4gICAgICAgICAgICB0aGlzLmJ1bmRsZXNbdGhpcy5kZWZhdWx0TGFuZ3VhZ2VdW2tleV0gfHxcbiAgICAgICAgICAgIGtleTtcblxuICAgICAgICBpZihyYXdUcmFuc2xhdGlvbiAhPT0ga2V5ICYmIHBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlci5jb21waWxlKHJhd1RyYW5zbGF0aW9uLCBwYXJhbWV0ZXJzLCAoZSkgPT4geyBjb25zb2xlLmVycm9yKGUpOyByZXR1cm4ga2V5OyB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiByYXdUcmFuc2xhdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/services/parser/fragments.parser.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { ParserError } from './parser.interface';
|
|
7
|
-
/**
|
|
8
|
-
* The default Sijil parser.
|
|
9
|
-
*
|
|
10
|
-
* - Input : bundle value (translation) + parameters (Object or Array)
|
|
11
|
-
* - Output : compiled translation
|
|
12
|
-
*
|
|
13
|
-
* Logic is contained inside mustache blocks : {{ LOGIC BLOCK }}
|
|
14
|
-
*
|
|
15
|
-
* There are two variants :
|
|
16
|
-
* - A single parameter key (when the params are contained inside an object) or index (params contained inside an array)
|
|
17
|
-
*
|
|
18
|
-
* Examples:
|
|
19
|
-
*
|
|
20
|
-
* {{ key }} + { "key" : "my key" } = my key
|
|
21
|
-
*
|
|
22
|
-
* {{ 1 }} + [1, 2] = 2
|
|
23
|
-
*
|
|
24
|
-
* - A ternary-like condition
|
|
25
|
-
*
|
|
26
|
-
* {{ condition ? trueValue : falseValue }}
|
|
27
|
-
* Where condition may be : a single parameter key/index, or 2 clauses with the following operators : ==, >, =>, <=, <
|
|
28
|
-
*
|
|
29
|
-
* Examples:
|
|
30
|
-
*
|
|
31
|
-
* (the $ sign to refer to a variable is mandatory when a clause contains more than 1 word)
|
|
32
|
-
*
|
|
33
|
-
* {{ count > 1 ? $count cats : 1 cat }} + {"count": 10} = 10 cats
|
|
34
|
-
* {{ 1 < count ? $count cats : 1 cat }} + {"count": 1} = 1 cat
|
|
35
|
-
*
|
|
36
|
-
* @export
|
|
37
|
-
*/
|
|
38
|
-
// @dynamic
|
|
39
|
-
var FragmentsParser = /** @class */ (function () {
|
|
40
|
-
function FragmentsParser() {
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* @private
|
|
44
|
-
* @param {?} parameters
|
|
45
|
-
* @param {?} fragment
|
|
46
|
-
* @param {?=} strict
|
|
47
|
-
* @return {?}
|
|
48
|
-
*/
|
|
49
|
-
FragmentsParser.prototype.getParameter = /**
|
|
50
|
-
* @private
|
|
51
|
-
* @param {?} parameters
|
|
52
|
-
* @param {?} fragment
|
|
53
|
-
* @param {?=} strict
|
|
54
|
-
* @return {?}
|
|
55
|
-
*/
|
|
56
|
-
function (parameters, fragment, strict) {
|
|
57
|
-
/** @type {?} */
|
|
58
|
-
var splittedFrag = fragment.split(/\s+/);
|
|
59
|
-
if (splittedFrag.length === 1) {
|
|
60
|
-
return fragment[0] === '$' ?
|
|
61
|
-
parameters[fragment.substr(1)] :
|
|
62
|
-
strict ?
|
|
63
|
-
fragment :
|
|
64
|
-
parameters[fragment] !== undefined ?
|
|
65
|
-
parameters[fragment] :
|
|
66
|
-
fragment;
|
|
67
|
-
}
|
|
68
|
-
return fragment.split(/\s+/).reduce((/**
|
|
69
|
-
* @param {?} l
|
|
70
|
-
* @param {?} r
|
|
71
|
-
* @return {?}
|
|
72
|
-
*/
|
|
73
|
-
function (l, r) {
|
|
74
|
-
l.push(r[0] === '$' ? parameters[r.substr(1)] : r);
|
|
75
|
-
return l;
|
|
76
|
-
}), []).join(' ');
|
|
77
|
-
};
|
|
78
|
-
/**
|
|
79
|
-
* @private
|
|
80
|
-
* @param {?} fragment
|
|
81
|
-
* @param {?} parameters
|
|
82
|
-
* @return {?}
|
|
83
|
-
*/
|
|
84
|
-
FragmentsParser.prototype.compileFragment = /**
|
|
85
|
-
* @private
|
|
86
|
-
* @param {?} fragment
|
|
87
|
-
* @param {?} parameters
|
|
88
|
-
* @return {?}
|
|
89
|
-
*/
|
|
90
|
-
function (fragment, parameters) {
|
|
91
|
-
fragment = fragment.replace(/{{|}}/g, '');
|
|
92
|
-
/** @type {?} */
|
|
93
|
-
var interrogationIndex;
|
|
94
|
-
/** @type {?} */
|
|
95
|
-
var dotsIndex;
|
|
96
|
-
if ((interrogationIndex = fragment.indexOf('?')) > 0 && (dotsIndex = fragment.lastIndexOf(':')) > 1) {
|
|
97
|
-
/** @type {?} */
|
|
98
|
-
var condition = fragment.substring(0, interrogationIndex).trim();
|
|
99
|
-
/** @type {?} */
|
|
100
|
-
var trueReturn = fragment.substring(interrogationIndex + 1, dotsIndex).trim();
|
|
101
|
-
/** @type {?} */
|
|
102
|
-
var falseReturn = fragment.substring(dotsIndex + 1).trim();
|
|
103
|
-
/** @type {?} */
|
|
104
|
-
var computedTrueReturn = this.getParameter(parameters, trueReturn);
|
|
105
|
-
/** @type {?} */
|
|
106
|
-
var computedFalseReturn = this.getParameter(parameters, falseReturn);
|
|
107
|
-
/** @type {?} */
|
|
108
|
-
var splittedCondition = condition.split(/\s+/);
|
|
109
|
-
if (splittedCondition.length === 1) {
|
|
110
|
-
// Single variable case
|
|
111
|
-
/** @type {?} */
|
|
112
|
-
var variable = parameters[splittedCondition[0]];
|
|
113
|
-
return variable ?
|
|
114
|
-
computedTrueReturn :
|
|
115
|
-
computedFalseReturn;
|
|
116
|
-
}
|
|
117
|
-
else if (splittedCondition.length === 3) {
|
|
118
|
-
// Operator case
|
|
119
|
-
/** @type {?} */
|
|
120
|
-
var leftHandParam = this.getParameter(parameters, splittedCondition[0], parameters instanceof Array);
|
|
121
|
-
/** @type {?} */
|
|
122
|
-
var rightHand = this.getParameter(parameters, splittedCondition[2], parameters instanceof Array);
|
|
123
|
-
/** @type {?} */
|
|
124
|
-
var comparisonOperator = splittedCondition[1];
|
|
125
|
-
switch (comparisonOperator) {
|
|
126
|
-
case '==':
|
|
127
|
-
return leftHandParam === rightHand ?
|
|
128
|
-
computedTrueReturn :
|
|
129
|
-
computedFalseReturn;
|
|
130
|
-
case '>':
|
|
131
|
-
return leftHandParam > rightHand ?
|
|
132
|
-
computedTrueReturn :
|
|
133
|
-
computedFalseReturn;
|
|
134
|
-
case '>=':
|
|
135
|
-
return leftHandParam >= rightHand ?
|
|
136
|
-
computedTrueReturn :
|
|
137
|
-
computedFalseReturn;
|
|
138
|
-
case '<':
|
|
139
|
-
return leftHandParam < rightHand ?
|
|
140
|
-
computedTrueReturn :
|
|
141
|
-
computedFalseReturn;
|
|
142
|
-
case '<=':
|
|
143
|
-
return leftHandParam <= rightHand ?
|
|
144
|
-
computedTrueReturn :
|
|
145
|
-
computedFalseReturn;
|
|
146
|
-
default:
|
|
147
|
-
throw new ParserError("Invalid conditional operator for fragment : " + fragment, fragment);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
throw new ParserError("Invalid condition for fragment : " + fragment, fragment);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
fragment = fragment.trim();
|
|
156
|
-
return parameters[fragment];
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* @param {?} rawTranslation
|
|
161
|
-
* @param {?} parameters
|
|
162
|
-
* @param {?=} onError
|
|
163
|
-
* @return {?}
|
|
164
|
-
*/
|
|
165
|
-
FragmentsParser.prototype.compile = /**
|
|
166
|
-
* @param {?} rawTranslation
|
|
167
|
-
* @param {?} parameters
|
|
168
|
-
* @param {?=} onError
|
|
169
|
-
* @return {?}
|
|
170
|
-
*/
|
|
171
|
-
function (rawTranslation, parameters, onError) {
|
|
172
|
-
/** @type {?} */
|
|
173
|
-
var parts = rawTranslation.split(FragmentsParser.delimRegexp);
|
|
174
|
-
/** @type {?} */
|
|
175
|
-
var fragments = rawTranslation.match(FragmentsParser.delimRegexp);
|
|
176
|
-
/** @type {?} */
|
|
177
|
-
var compiledTranslation = '';
|
|
178
|
-
if (!onError) {
|
|
179
|
-
onError = FragmentsParser.defaultErrorCallback;
|
|
180
|
-
}
|
|
181
|
-
if (!fragments) {
|
|
182
|
-
compiledTranslation += rawTranslation;
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
for (var i = 0; i < parts.length; i++) {
|
|
186
|
-
compiledTranslation += parts[i];
|
|
187
|
-
if (i > fragments.length - 1) {
|
|
188
|
-
continue;
|
|
189
|
-
}
|
|
190
|
-
try {
|
|
191
|
-
compiledTranslation += this.compileFragment(fragments[i], parameters);
|
|
192
|
-
}
|
|
193
|
-
catch (e) {
|
|
194
|
-
compiledTranslation += onError(e);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
return compiledTranslation;
|
|
199
|
-
};
|
|
200
|
-
FragmentsParser.delimiters = ['{{', '}}'];
|
|
201
|
-
FragmentsParser.delimRegexp = new RegExp(FragmentsParser.delimiters[0] + "[^}]+" + FragmentsParser.delimiters[1], 'gm');
|
|
202
|
-
FragmentsParser.defaultErrorCallback = (/**
|
|
203
|
-
* @param {?} e
|
|
204
|
-
* @return {?}
|
|
205
|
-
*/
|
|
206
|
-
function (e) {
|
|
207
|
-
console.error(e);
|
|
208
|
-
return e.fragment;
|
|
209
|
-
});
|
|
210
|
-
return FragmentsParser;
|
|
211
|
-
}());
|
|
212
|
-
export { FragmentsParser };
|
|
213
|
-
if (false) {
|
|
214
|
-
/**
|
|
215
|
-
* @type {?}
|
|
216
|
-
* @private
|
|
217
|
-
*/
|
|
218
|
-
FragmentsParser.delimiters;
|
|
219
|
-
/**
|
|
220
|
-
* @type {?}
|
|
221
|
-
* @private
|
|
222
|
-
*/
|
|
223
|
-
FragmentsParser.delimRegexp;
|
|
224
|
-
/**
|
|
225
|
-
* @type {?}
|
|
226
|
-
* @private
|
|
227
|
-
*/
|
|
228
|
-
FragmentsParser.defaultErrorCallback;
|
|
229
|
-
}
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhZ21lbnRzLnBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtc2lqaWwvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcGFyc2VyL2ZyYWdtZW50cy5wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQTBCLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQ3pFO0lBRUk7SUFBYyxDQUFDOzs7Ozs7OztJQVVQLHNDQUFZOzs7Ozs7O0lBQXBCLFVBQXFCLFVBQTBCLEVBQUUsUUFBZ0IsRUFBRSxNQUFnQjs7WUFDekUsWUFBWSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFDLElBQUcsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ3hCLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLENBQUM7b0JBQ0osUUFBUSxDQUFDLENBQUM7b0JBQ1YsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO3dCQUNoQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzt3QkFDdEIsUUFBUSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU07Ozs7O1FBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25E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QztJQXhIYywwQkFBVSxHQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BDLDJCQUFXLEdBQUcsSUFBSSxNQUFNLENBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBUSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRXhHLG9DQUFvQjs7OztJQUFtQixVQUFDLENBQWM7UUFDakUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDdEIsQ0FBQyxFQUFBO0lBb0hMLHNCQUFDO0NBQUEsQUE5SEQsSUE4SEM7U0E5SFksZUFBZTs7Ozs7O0lBSXhCLDJCQUFtRDs7Ozs7SUFDbkQsNEJBQXVIOzs7OztJQUV2SCxxQ0FHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlciwgUGFyc2VyQ2FsbGJhY2ssIFBhcnNlckVycm9yIH0gZnJvbSAnLi9wYXJzZXIuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBTaWppbCBwYXJzZXIuXG4gKlxuICogLSBJbnB1dCA6IGJ1bmRsZSB2YWx1ZSAodHJhbnNsYXRpb24pICsgcGFyYW1ldGVycyAoT2JqZWN0IG9yIEFycmF5KVxuICogLSBPdXRwdXQgOiBjb21waWxlZCB0cmFuc2xhdGlvblxuICpcbiAqIExvZ2ljIGlzIGNvbnRhaW5lZCBpbnNpZGUgbXVzdGFjaGUgYmxvY2tzIDoge3sgTE9HSUMgQkxPQ0sgfX1cbiAqXG4gKiBUaGVyZSBhcmUgdHdvIHZhcmlhbnRzIDpcbiAqICAtIEEgc2luZ2xlIHBhcmFtZXRlciBrZXkgKHdoZW4gdGhlIHBhcmFtcyBhcmUgY29udGFpbmVkIGluc2lkZSBhbiBvYmplY3QpIG9yIGluZGV4IChwYXJhbXMgY29udGFpbmVkIGluc2lkZSBhbiBhcnJheSlcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiB7eyBrZXkgfX0gKyB7IFwia2V5XCIgOiBcIm15IGtleVwiIH0gPSBteSBrZXlcbiAqXG4gKiB7eyAxIH19ICsgWzEsIDJdID0gMlxuICpcbiAqICAtIEEgdGVybmFyeS1saWtlIGNvbmRpdGlvblxuICpcbiAqIHt7IGNvbmRpdGlvbiA/IHRydWVWYWx1ZSA6IGZhbHNlVmFsdWUgfX1cbiAqIFdoZXJlIGNvbmRpdGlvbiBtYXkgYmUgOiBhIHNpbmdsZSBwYXJhbWV0ZXIga2V5L2luZGV4LCBvciAyIGNsYXVzZXMgd2l0aCB0aGUgZm9sbG93aW5nIG9wZXJhdG9ycyA6ID09LCA+LCA9PiwgPD0sIDxcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAodGhlICQgc2lnbiB0byByZWZlciB0byBhIHZhcmlhYmxlIGlzIG1hbmRhdG9yeSB3aGVuIGEgY2xhdXNlIGNvbnRhaW5zIG1vcmUgdGhhbiAxIHdvcmQpXG4gKlxuICoge3sgY291bnQgPiAxID8gJGNvdW50IGNhdHMgOiAxIGNhdCB9fSArIHtcImNvdW50XCI6IDEwfSA9IDEwIGNhdHNcbiAqIHt7IDEgPCBjb3VudCA/ICRjb3VudCBjYXRzIDogMSBjYXQgfX0gKyB7XCJjb3VudFwiOiAxfSA9IDEgY2F0XG4gKlxuICogQGV4cG9ydFxuICovXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEZyYWdtZW50c1BhcnNlciBpbXBsZW1lbnRzIFBhcnNlciB7XG5cbiAgICBjb25zdHJ1Y3Rvcigpe31cblxuICAgIHByaXZhdGUgc3RhdGljIGRlbGltaXRlcnM6IHN0cmluZ1tdID0gWyd7eycsICd9fSddO1xuICAgIHByaXZhdGUgc3RhdGljIGRlbGltUmVnZXhwID0gbmV3IFJlZ0V4cChgJHtGcmFnbWVudHNQYXJzZXIuZGVsaW1pdGVyc1swXX1bXn1dKyR7RnJhZ21lbnRzUGFyc2VyLmRlbGltaXRlcnNbMV19YCwgJ2dtJyk7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBkZWZhdWx0RXJyb3JDYWxsYmFjazogUGFyc2VyQ2FsbGJhY2sgPSAoZTogUGFyc2VyRXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgcmV0dXJuIGUuZnJhZ21lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXIocGFyYW1ldGVyczogT2JqZWN0IHwgYW55W10sIGZyYWdtZW50OiBzdHJpbmcsIHN0cmljdD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzcGxpdHRlZEZyYWcgPSBmcmFnbWVudC5zcGxpdCgvXFxzKy8pO1xuICAgICAgICBpZihzcGxpdHRlZEZyYWcubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJhZ21lbnRbMF0gPT09ICckJyA/XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1tmcmFnbWVudC5zdWJzdHIoMSldIDpcbiAgICAgICAgICAgICAgICBzdHJpY3QgP1xuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudCA6XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNbZnJhZ21lbnRdICE9PSB1bmRlZmluZWQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyc1tmcmFnbWVudF0gOlxuICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZyYWdtZW50LnNwbGl0KC9cXHMrLykucmVkdWNlKChsLCByKSA9PiB7XG4gICAgICAgICAgICBsLnB1c2goclswXSA9PT0gJyQnID8gcGFyYW1ldGVyc1tyLnN1YnN0cigxKV0gOiByKTtcbiAgICAgICAgICAgIHJldHVybiBsO1xuICAgICAgICB9LCBbXSkuam9pbignICcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tcGlsZUZyYWdtZW50KGZyYWdtZW50OiBzdHJpbmcsIHBhcmFtZXRlcnM6IE9iamVjdCB8IGFueVtdKTogc3RyaW5nIHtcbiAgICAgICAgZnJhZ21lbnQgPSBmcmFnbWVudC5yZXBsYWNlKC97e3x9fS9nLCAnJyk7XG5cbiAgICAgICAgbGV0IGludGVycm9nYXRpb25JbmRleDtcbiAgICAgICAgbGV0IGRvdHNJbmRleDtcbiAgICAgICAgaWYgKChpbnRlcnJvZ2F0aW9uSW5kZXggPSBmcmFnbWVudC5pbmRleE9mKCc/JykpID4gMCAmJiAoZG90c0luZGV4ID0gZnJhZ21lbnQubGFzdEluZGV4T2YoJzonKSkgPiAxKSB7XG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb24gPSBmcmFnbWVudC5zdWJzdHJpbmcoMCwgaW50ZXJyb2dhdGlvbkluZGV4KS50cmltKCk7XG4gICAgICAgICAgICBjb25zdCB0cnVlUmV0dXJuID0gZnJhZ21lbnQuc3Vic3RyaW5nKGludGVycm9nYXRpb25JbmRleCArIDEsIGRvdHNJbmRleCkudHJpbSgpO1xuICAgICAgICAgICAgY29uc3QgZmFsc2VSZXR1cm4gPSBmcmFnbWVudC5zdWJzdHJpbmcoZG90c0luZGV4ICsgMSkudHJpbSgpO1xuICAgICAgICAgICAgY29uc3QgY29tcHV0ZWRUcnVlUmV0dXJuID0gdGhpcy5nZXRQYXJhbWV0ZXIocGFyYW1ldGVycywgdHJ1ZVJldHVybik7XG4gICAgICAgICAgICBjb25zdCBjb21wdXRlZEZhbHNlUmV0dXJuID0gdGhpcy5nZXRQYXJhbWV0ZXIocGFyYW1ldGVycywgZmFsc2VSZXR1cm4pO1xuXG4gICAgICAgICAgICBjb25zdCBzcGxpdHRlZENvbmRpdGlvbiA9IGNvbmRpdGlvbi5zcGxpdCgvXFxzKy8pO1xuXG4gICAgICAgICAgICBpZiAoc3BsaXR0ZWRDb25kaXRpb24ubGVuZ3RoID09PSAxKSB7XG5cbiAgICAgICAgICAgICAgICAvLyBTaW5nbGUgdmFyaWFibGUgY2FzZVxuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGUgPSBwYXJhbWV0ZXJzW3NwbGl0dGVkQ29uZGl0aW9uWzBdXTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYWJsZSA/XG4gICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkVHJ1ZVJldHVybiA6XG4gICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkRmFsc2VSZXR1cm47XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3BsaXR0ZWRDb25kaXRpb24ubGVuZ3RoID09PSAzKSB7XG5cbiAgICAgICAgICAgICAgICAvLyBPcGVyYXRvciBjYXNlXG5cbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0SGFuZFBhcmFtID0gdGhpcy5nZXRQYXJhbWV0ZXIocGFyYW1ldGVycywgc3BsaXR0ZWRDb25kaXRpb25bMF0sIHBhcmFtZXRlcnMgaW5zdGFuY2VvZiBBcnJheSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHRIYW5kID0gdGhpcy5nZXRQYXJhbWV0ZXIocGFyYW1ldGVycywgc3BsaXR0ZWRDb25kaXRpb25bMl0sIHBhcmFtZXRlcnMgaW5zdGFuY2VvZiBBcnJheSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcGFyaXNvbk9wZXJhdG9yID0gc3BsaXR0ZWRDb25kaXRpb25bMV07XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbXBhcmlzb25PcGVyYXRvcikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICc9PSc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGVmdEhhbmRQYXJhbSA9PT0gcmlnaHRIYW5kID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlZFRydWVSZXR1cm4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkRmFsc2VSZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJz4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRIYW5kUGFyYW0gPiByaWdodEhhbmQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkVHJ1ZVJldHVybiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWRGYWxzZVJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnPj0nOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRIYW5kUGFyYW0gPj0gcmlnaHRIYW5kID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlZFRydWVSZXR1cm4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkRmFsc2VSZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJzwnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRIYW5kUGFyYW0gPCByaWdodEhhbmQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkVHJ1ZVJldHVybiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWRGYWxzZVJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnPD0nOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRIYW5kUGFyYW0gPD0gcmlnaHRIYW5kID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlZFRydWVSZXR1cm4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkRmFsc2VSZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VyRXJyb3IoYEludmFsaWQgY29uZGl0aW9uYWwgb3BlcmF0b3IgZm9yIGZyYWdtZW50IDogJHtmcmFnbWVudH1gLCBmcmFnbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZXJFcnJvcihgSW52YWxpZCBjb25kaXRpb24gZm9yIGZyYWdtZW50IDogJHtmcmFnbWVudH1gLCBmcmFnbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmcmFnbWVudCA9IGZyYWdtZW50LnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXJzW2ZyYWdtZW50XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBpbGUocmF3VHJhbnNsYXRpb246IHN0cmluZywgcGFyYW1ldGVyczogT2JqZWN0LCBvbkVycm9yPzogUGFyc2VyQ2FsbGJhY2spOiBzdHJpbmcge1xuXG4gICAgICAgIGNvbnN0IHBhcnRzID0gcmF3VHJhbnNsYXRpb24uc3BsaXQoRnJhZ21lbnRzUGFyc2VyLmRlbGltUmVnZXhwKTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnRzID0gcmF3VHJhbnNsYXRpb24ubWF0Y2goRnJhZ21lbnRzUGFyc2VyLmRlbGltUmVnZXhwKTtcblxuICAgICAgICBsZXQgY29tcGlsZWRUcmFuc2xhdGlvbiA9ICcnO1xuXG4gICAgICAgIGlmICghb25FcnJvcikge1xuICAgICAgICAgICAgb25FcnJvciA9IEZyYWdtZW50c1BhcnNlci5kZWZhdWx0RXJyb3JDYWxsYmFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZnJhZ21lbnRzKSB7XG4gICAgICAgICAgICBjb21waWxlZFRyYW5zbGF0aW9uICs9IHJhd1RyYW5zbGF0aW9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbXBpbGVkVHJhbnNsYXRpb24gKz0gcGFydHNbaV07XG4gICAgICAgICAgICAgICAgaWYgKGkgPiBmcmFnbWVudHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29tcGlsZWRUcmFuc2xhdGlvbiArPSB0aGlzLmNvbXBpbGVGcmFnbWVudChmcmFnbWVudHNbaV0sIHBhcmFtZXRlcnMpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcGlsZWRUcmFuc2xhdGlvbiArPSBvbkVycm9yKGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21waWxlZFRyYW5zbGF0aW9uO1xuXG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/services/parser/parser.interface.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import * as tslib_1 from "tslib";
|
|
7
|
-
var ParserError = /** @class */ (function (_super) {
|
|
8
|
-
tslib_1.__extends(ParserError, _super);
|
|
9
|
-
function ParserError(message, fragment) {
|
|
10
|
-
var _this = _super.call(this, message) || this;
|
|
11
|
-
_this.message = message;
|
|
12
|
-
_this.fragment = fragment;
|
|
13
|
-
return _this;
|
|
14
|
-
}
|
|
15
|
-
return ParserError;
|
|
16
|
-
}(Error));
|
|
17
|
-
export { ParserError };
|
|
18
|
-
if (false) {
|
|
19
|
-
/** @type {?} */
|
|
20
|
-
ParserError.prototype.message;
|
|
21
|
-
/** @type {?} */
|
|
22
|
-
ParserError.prototype.fragment;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Parses logic inside translations.
|
|
26
|
-
*
|
|
27
|
-
* @export
|
|
28
|
-
* @abstract
|
|
29
|
-
*/
|
|
30
|
-
var /**
|
|
31
|
-
* Parses logic inside translations.
|
|
32
|
-
*
|
|
33
|
-
* @export
|
|
34
|
-
* @abstract
|
|
35
|
-
*/
|
|
36
|
-
Parser = /** @class */ (function () {
|
|
37
|
-
function Parser() {
|
|
38
|
-
}
|
|
39
|
-
return Parser;
|
|
40
|
-
}());
|
|
41
|
-
/**
|
|
42
|
-
* Parses logic inside translations.
|
|
43
|
-
*
|
|
44
|
-
* @export
|
|
45
|
-
* @abstract
|
|
46
|
-
*/
|
|
47
|
-
export { Parser };
|
|
48
|
-
if (false) {
|
|
49
|
-
/**
|
|
50
|
-
* Processes a string, isolating logic fragments and compiling them.
|
|
51
|
-
*
|
|
52
|
-
* \@memberOf Parser
|
|
53
|
-
* @type {?}
|
|
54
|
-
*/
|
|
55
|
-
Parser.prototype.compile;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtc2lqaWwvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcGFyc2VyL3BhcnNlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7SUFBaUMsdUNBQUs7SUFDbEMscUJBQW1CLE9BQWUsRUFBUyxRQUFnQjtRQUEzRCxZQUNJLGtCQUFNLE9BQU8sQ0FBQyxTQUNqQjtRQUZrQixhQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVMsY0FBUSxHQUFSLFFBQVEsQ0FBUTs7SUFFM0QsQ0FBQztJQUNMLGtCQUFDO0FBQUQsQ0FBQyxBQUpELENBQWlDLEtBQUssR0FJckM7Ozs7SUFIZSw4QkFBc0I7O0lBQUUsK0JBQXVCOzs7Ozs7OztBQVcvRDs7Ozs7OztJQUFBO0lBT0EsQ0FBQztJQUFELGFBQUM7QUFBRCxDQUFDLEFBUEQsSUFPQzs7Ozs7Ozs7Ozs7Ozs7O0lBREcseUJBQTJFIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFBhcnNlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmcmFnbWVudDogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBQYXJzZXJDYWxsYmFjayA9IChfIDogUGFyc2VyRXJyb3IpID0+IHN0cmluZztcbi8qKlxuICogUGFyc2VzIGxvZ2ljIGluc2lkZSB0cmFuc2xhdGlvbnMuXG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFyc2VyIHtcbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgYSBzdHJpbmcsIGlzb2xhdGluZyBsb2dpYyBmcmFnbWVudHMgYW5kIGNvbXBpbGluZyB0aGVtLlxuICAgICAqXG4gICAgICogQG1lbWJlck9mIFBhcnNlclxuICAgICAqL1xuICAgIGNvbXBpbGU6ICh0ZXh0OiBzdHJpbmcsIHBhcmFtZXRlcnM6IGFueSwgZXJyb3I/OiBQYXJzZXJDYWxsYmFjaykgPT4gc3RyaW5nO1xufVxuIl19
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/services/require/httprequire.service.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Injectable } from '@angular/core';
|
|
7
|
-
import { HttpClient } from '@angular/common/http';
|
|
8
|
-
/**
|
|
9
|
-
* Fetches a bundle from a target url.
|
|
10
|
-
*
|
|
11
|
-
* @export
|
|
12
|
-
*/
|
|
13
|
-
var HttpRequireService = /** @class */ (function () {
|
|
14
|
-
function HttpRequireService(httpClient) {
|
|
15
|
-
this.httpClient = httpClient;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* @param {?} url
|
|
19
|
-
* @return {?}
|
|
20
|
-
*/
|
|
21
|
-
HttpRequireService.prototype.load = /**
|
|
22
|
-
* @param {?} url
|
|
23
|
-
* @return {?}
|
|
24
|
-
*/
|
|
25
|
-
function (url) {
|
|
26
|
-
return this.httpClient.get(url).toPromise()
|
|
27
|
-
.then((/**
|
|
28
|
-
* @param {?} data
|
|
29
|
-
* @return {?}
|
|
30
|
-
*/
|
|
31
|
-
function (data) { return data; }));
|
|
32
|
-
};
|
|
33
|
-
HttpRequireService.decorators = [
|
|
34
|
-
{ type: Injectable }
|
|
35
|
-
];
|
|
36
|
-
/** @nocollapse */
|
|
37
|
-
HttpRequireService.ctorParameters = function () { return [
|
|
38
|
-
{ type: HttpClient }
|
|
39
|
-
]; };
|
|
40
|
-
return HttpRequireService;
|
|
41
|
-
}());
|
|
42
|
-
export { HttpRequireService };
|
|
43
|
-
if (false) {
|
|
44
|
-
/**
|
|
45
|
-
* @type {?}
|
|
46
|
-
* @private
|
|
47
|
-
*/
|
|
48
|
-
HttpRequireService.prototype.httpClient;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cHJlcXVpcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtc2lqaWwvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcmVxdWlyZS9odHRwcmVxdWlyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7Ozs7OztBQU9qRDtJQUdJLDRCQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUUsQ0FBQzs7Ozs7SUFFN0MsaUNBQUk7Ozs7SUFBSixVQUFLLEdBQUc7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRTthQUN0QyxJQUFJOzs7O1FBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLEVBQUosQ0FBSSxFQUFDLENBQUM7SUFDNUIsQ0FBQzs7Z0JBUkosVUFBVTs7OztnQkFQRixVQUFVOztJQWlCbkIseUJBQUM7Q0FBQSxBQVZELElBVUM7U0FUWSxrQkFBa0I7Ozs7OztJQUVmLHdDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcXVpcmVTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1aXJlLmludGVyZmFjZSdcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuXG4vKipcbiAqIEZldGNoZXMgYSBidW5kbGUgZnJvbSBhIHRhcmdldCB1cmwuXG4gKlxuICogQGV4cG9ydFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSHR0cFJlcXVpcmVTZXJ2aWNlIGltcGxlbWVudHMgUmVxdWlyZVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KXt9XG5cbiAgICBsb2FkKHVybCkgOiBQcm9taXNlPE9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwpLnRvUHJvbWlzZSgpXG4gICAgICAgICAgICAudGhlbihkYXRhID0+IGRhdGEpO1xuICAgIH1cblxufVxuIl19
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/services/require/require.interface.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Service used to fetch bundles.
|
|
8
|
-
*
|
|
9
|
-
* @export
|
|
10
|
-
* @abstract
|
|
11
|
-
*/
|
|
12
|
-
var /**
|
|
13
|
-
* Service used to fetch bundles.
|
|
14
|
-
*
|
|
15
|
-
* @export
|
|
16
|
-
* @abstract
|
|
17
|
-
*/
|
|
18
|
-
RequireService = /** @class */ (function () {
|
|
19
|
-
function RequireService() {
|
|
20
|
-
}
|
|
21
|
-
return RequireService;
|
|
22
|
-
}());
|
|
23
|
-
/**
|
|
24
|
-
* Service used to fetch bundles.
|
|
25
|
-
*
|
|
26
|
-
* @export
|
|
27
|
-
* @abstract
|
|
28
|
-
*/
|
|
29
|
-
export { RequireService };
|
|
30
|
-
if (false) {
|
|
31
|
-
/**
|
|
32
|
-
* Fetch a bundle.
|
|
33
|
-
* \@memberOf RequireService
|
|
34
|
-
* @type {?}
|
|
35
|
-
*/
|
|
36
|
-
RequireService.prototype.load;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXNpamlsLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3JlcXVpcmUvcmVxdWlyZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFLQTs7Ozs7OztJQUFBO0lBTUEsQ0FBQztJQUFELHFCQUFDO0FBQUQsQ0FBQyxBQU5ELElBTUM7Ozs7Ozs7Ozs7Ozs7O0lBREcsOEJBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXJ2aWNlIHVzZWQgdG8gZmV0Y2ggYnVuZGxlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXF1aXJlU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogRmV0Y2ggYSBidW5kbGUuXG4gICAgICogQG1lbWJlck9mIFJlcXVpcmVTZXJ2aWNlXG4gICAgICovXG4gICAgbG9hZDogKGZyb206IGFueSkgPT4gUHJvbWlzZTxPYmplY3Q+O1xufVxuIl19
|