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.
Files changed (53) hide show
  1. package/esm2020/lib/components/s5l.component.mjs +52 -0
  2. package/esm2020/lib/ngx-ode-sijil.module.mjs +42 -0
  3. package/esm2020/lib/pipes/translate.pipe.mjs +18 -0
  4. package/esm2020/lib/services/bundles.service.mjs +98 -0
  5. package/esm2020/lib/services/parser/fragments.parser.mjs +142 -0
  6. package/esm2020/lib/services/parser/parser.interface.mjs +15 -0
  7. package/esm2020/lib/services/require/httprequire.service.mjs +23 -0
  8. package/esm2020/lib/services/require/require.interface.mjs +8 -0
  9. package/esm2020/lib/services/sijil.opts.mjs +11 -0
  10. package/esm2020/ngx-ode-sijil.mjs +5 -0
  11. package/esm2020/public-api.mjs +8 -0
  12. package/fesm2015/{ngx-ode-sijil.js → ngx-ode-sijil.mjs} +74 -349
  13. package/fesm2015/ngx-ode-sijil.mjs.map +1 -0
  14. package/fesm2020/ngx-ode-sijil.mjs +403 -0
  15. package/fesm2020/ngx-ode-sijil.mjs.map +1 -0
  16. package/index.d.ts +5 -0
  17. package/lib/components/s5l.component.d.ts +3 -0
  18. package/lib/ngx-ode-sijil.module.d.ts +9 -2
  19. package/lib/pipes/translate.pipe.d.ts +3 -0
  20. package/lib/services/require/httprequire.service.d.ts +3 -0
  21. package/package.json +27 -17
  22. package/CHANGELOG.md +0 -12
  23. package/bundles/ngx-ode-sijil.umd.js +0 -1029
  24. package/bundles/ngx-ode-sijil.umd.js.map +0 -1
  25. package/bundles/ngx-ode-sijil.umd.min.js +0 -16
  26. package/bundles/ngx-ode-sijil.umd.min.js.map +0 -1
  27. package/esm2015/lib/components/s5l.component.js +0 -92
  28. package/esm2015/lib/ngx-ode-sijil.module.js +0 -51
  29. package/esm2015/lib/pipes/translate.pipe.js +0 -39
  30. package/esm2015/lib/services/bundles.service.js +0 -154
  31. package/esm2015/lib/services/parser/fragments.parser.js +0 -208
  32. package/esm2015/lib/services/parser/parser.interface.js +0 -40
  33. package/esm2015/lib/services/require/httprequire.service.js +0 -47
  34. package/esm2015/lib/services/require/require.interface.js +0 -22
  35. package/esm2015/lib/services/sijil.opts.js +0 -25
  36. package/esm2015/ngx-ode-sijil.js +0 -15
  37. package/esm2015/public-api.js +0 -13
  38. package/esm5/lib/components/s5l.component.js +0 -98
  39. package/esm5/lib/ngx-ode-sijil.module.js +0 -64
  40. package/esm5/lib/pipes/translate.pipe.js +0 -44
  41. package/esm5/lib/services/bundles.service.js +0 -243
  42. package/esm5/lib/services/parser/fragments.parser.js +0 -230
  43. package/esm5/lib/services/parser/parser.interface.js +0 -57
  44. package/esm5/lib/services/require/httprequire.service.js +0 -50
  45. package/esm5/lib/services/require/require.interface.js +0 -38
  46. package/esm5/lib/services/sijil.opts.js +0 -41
  47. package/esm5/ngx-ode-sijil.js +0 -15
  48. package/esm5/public-api.js +0 -13
  49. package/fesm2015/ngx-ode-sijil.js.map +0 -1
  50. package/fesm5/ngx-ode-sijil.js +0 -829
  51. package/fesm5/ngx-ode-sijil.js.map +0 -1
  52. package/ngx-ode-sijil.d.ts +0 -9
  53. package/ngx-ode-sijil.metadata.json +0 -1
@@ -1,829 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, ViewChild, Input, Pipe, Injectable, NgModule } from '@angular/core';
2
- import { HttpClient, HttpClientModule } from '@angular/common/http';
3
- import { __extends } from 'tslib';
4
-
5
- /**
6
- * @fileoverview added by tsickle
7
- * Generated from: lib/services/bundles.service.ts
8
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
9
- */
10
- /**
11
- * Defines a BundlesService, whice is the main entry point for Sijil operations.
12
- *
13
- * A BundlesServices has three dependencies :
14
- * - RequireService : Used to fetch bundles
15
- * - Parser : Used to parse logic inside bundle values
16
- * - SijilOpts : An object containing custom settings
17
- */
18
- var /**
19
- * Defines a BundlesService, whice is the main entry point for Sijil operations.
20
- *
21
- * A BundlesServices has three dependencies :
22
- * - RequireService : Used to fetch bundles
23
- * - Parser : Used to parse logic inside bundle values
24
- * - SijilOpts : An object containing custom settings
25
- */
26
- BundlesService = /** @class */ (function () {
27
- function BundlesService(requireService, parser, sijilOpts) {
28
- this.requireService = requireService;
29
- this.parser = parser;
30
- this.bundles = {};
31
- this.defaultLanguage = sijilOpts.defaultLanguage;
32
- if (!this.defaultLanguage && typeof window !== 'undefined') {
33
- this.defaultLanguage = window.navigator.language.split('-')[0];
34
- }
35
- this.currentLanguage = this.defaultLanguage;
36
- }
37
- /**
38
- * Add keys/values to an existing bundle, or create it if missing.
39
- *
40
- * @param bundle An object containing translations as key / values.
41
- * @param lang The language to map the bundle with, or the current langugage if omitted.
42
- */
43
- /**
44
- * Add keys/values to an existing bundle, or create it if missing.
45
- *
46
- * @param {?} bundle An object containing translations as key / values.
47
- * @param {?=} lang The language to map the bundle with, or the current langugage if omitted.
48
- * @return {?}
49
- */
50
- BundlesService.prototype.addToBundle = /**
51
- * Add keys/values to an existing bundle, or create it if missing.
52
- *
53
- * @param {?} bundle An object containing translations as key / values.
54
- * @param {?=} lang The language to map the bundle with, or the current langugage if omitted.
55
- * @return {?}
56
- */
57
- function (bundle, lang) {
58
- /** @type {?} */
59
- var targetLanguage = lang || this.currentLanguage || this.defaultLanguage || 'en';
60
- if (!this.bundles[targetLanguage]) {
61
- this.bundles[targetLanguage] = {};
62
- }
63
- this.bundles[targetLanguage] = Object.assign({}, this.bundles[targetLanguage], bundle);
64
- if (!this.currentLanguage) {
65
- this.currentLanguage = lang;
66
- }
67
- };
68
- /**
69
- * Loads a bundle and associates it with a language.
70
- * If the target language already contains key/values, then we mixin the new bundle and the existing one.
71
- *
72
- * @param where The path, or whatever the RequireService needs to fetch the bundle.
73
- * @param lang The target language, or the current language if omitted.
74
- * @returns A Promise, because the RequireService can be (is - by default) asynchronous.
75
- */
76
- /**
77
- * Loads a bundle and associates it with a language.
78
- * If the target language already contains key/values, then we mixin the new bundle and the existing one.
79
- *
80
- * @param {?} where The path, or whatever the RequireService needs to fetch the bundle.
81
- * @param {?=} lang The target language, or the current language if omitted.
82
- * @return {?} A Promise, because the RequireService can be (is - by default) asynchronous.
83
- */
84
- BundlesService.prototype.loadBundle = /**
85
- * Loads a bundle and associates it with a language.
86
- * If the target language already contains key/values, then we mixin the new bundle and the existing one.
87
- *
88
- * @param {?} where The path, or whatever the RequireService needs to fetch the bundle.
89
- * @param {?=} lang The target language, or the current language if omitted.
90
- * @return {?} A Promise, because the RequireService can be (is - by default) asynchronous.
91
- */
92
- function (where, lang) {
93
- var _this = this;
94
- return this.requireService.load(where)
95
- .then((/**
96
- * @param {?} bundle
97
- * @return {?}
98
- */
99
- function (bundle) {
100
- _this.addToBundle(bundle, lang);
101
- }));
102
- };
103
- /**
104
- * Loads multiple bundles and associates then with a language.
105
- *
106
- * @see {@link loadBundle}
107
- */
108
- /**
109
- * Loads multiple bundles and associates then with a language.
110
- *
111
- * @see {\@link loadBundle}
112
- * @param {?} specs
113
- * @return {?}
114
- */
115
- BundlesService.prototype.loadBundles = /**
116
- * Loads multiple bundles and associates then with a language.
117
- *
118
- * @see {\@link loadBundle}
119
- * @param {?} specs
120
- * @return {?}
121
- */
122
- function (specs) {
123
- var _this = this;
124
- return Promise.all(specs.map((/**
125
- * @param {?} spec
126
- * @return {?}
127
- */
128
- function (spec) {
129
- return _this.loadBundle(spec.where, spec.lang);
130
- })));
131
- };
132
- /**
133
- * Removes a bundle from the bundles list.
134
- *
135
- * @param lang Language to remove.
136
- */
137
- /**
138
- * Removes a bundle from the bundles list.
139
- *
140
- * @param {?} lang Language to remove.
141
- * @return {?}
142
- */
143
- BundlesService.prototype.unloadBundle = /**
144
- * Removes a bundle from the bundles list.
145
- *
146
- * @param {?} lang Language to remove.
147
- * @return {?}
148
- */
149
- function (lang) {
150
- delete this.bundles[lang];
151
- };
152
- /**
153
- * @returns Returns a list of all loaded languages.
154
- */
155
- /**
156
- * @return {?} Returns a list of all loaded languages.
157
- */
158
- BundlesService.prototype.getLoadedLanguages = /**
159
- * @return {?} Returns a list of all loaded languages.
160
- */
161
- function () {
162
- return Object.keys(this.bundles);
163
- };
164
- /**
165
- * Translates a single key into a target language, using the parameters provided if needed.
166
- *
167
- * @param key Key to translate
168
- * @param parameters Parameters to use if the translation contains logic.
169
- * @param lang Target language, of the current language if omitted.
170
- * @returns The computed translation, or the key if no match was found in the bundles (including the fallback language bundle).
171
- */
172
- /**
173
- * Translates a single key into a target language, using the parameters provided if needed.
174
- *
175
- * @param {?} key Key to translate
176
- * @param {?=} parameters Parameters to use if the translation contains logic.
177
- * @param {?=} lang Target language, of the current language if omitted.
178
- * @return {?} The computed translation, or the key if no match was found in the bundles (including the fallback language bundle).
179
- */
180
- BundlesService.prototype.translate = /**
181
- * Translates a single key into a target language, using the parameters provided if needed.
182
- *
183
- * @param {?} key Key to translate
184
- * @param {?=} parameters Parameters to use if the translation contains logic.
185
- * @param {?=} lang Target language, of the current language if omitted.
186
- * @return {?} The computed translation, or the key if no match was found in the bundles (including the fallback language bundle).
187
- */
188
- function (key, parameters, lang) {
189
- /** @type {?} */
190
- var targetLanguage = lang || this.currentLanguage;
191
- /** @type {?} */
192
- var rawTranslation = this.bundles[targetLanguage] &&
193
- this.bundles[targetLanguage][key] ||
194
- this.defaultLanguage &&
195
- this.bundles[this.defaultLanguage] &&
196
- this.bundles[this.defaultLanguage][key] ||
197
- key;
198
- if (rawTranslation !== key && parameters) {
199
- return this.parser.compile(rawTranslation, parameters, (/**
200
- * @param {?} e
201
- * @return {?}
202
- */
203
- function (e) { console.error(e); return key; }));
204
- }
205
- else {
206
- return rawTranslation;
207
- }
208
- };
209
- return BundlesService;
210
- }());
211
- if (false) {
212
- /**
213
- * @type {?}
214
- * @private
215
- */
216
- BundlesService.prototype.bundles;
217
- /**
218
- * Fallback language.
219
- * @type {?}
220
- */
221
- BundlesService.prototype.defaultLanguage;
222
- /**
223
- * Current language.
224
- * @type {?}
225
- */
226
- BundlesService.prototype.currentLanguage;
227
- /**
228
- * @type {?}
229
- * @private
230
- */
231
- BundlesService.prototype.requireService;
232
- /**
233
- * @type {?}
234
- * @private
235
- */
236
- BundlesService.prototype.parser;
237
- }
238
-
239
- /**
240
- * @fileoverview added by tsickle
241
- * Generated from: lib/components/s5l.component.ts
242
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
243
- */
244
- var S5lComponent = /** @class */ (function () {
245
- function S5lComponent(bundlesService) {
246
- this.bundlesService = bundlesService;
247
- }
248
- /**
249
- * @private
250
- * @return {?}
251
- */
252
- S5lComponent.prototype.refreshTranslation = /**
253
- * @private
254
- * @return {?}
255
- */
256
- function () {
257
- /** @type {?} */
258
- var newDisplayedValue = this.bundlesService.translate(this.value, this.parameters, this.fixedLanguage);
259
- if (this.displayedValue !== newDisplayedValue) {
260
- this.displayedValue = newDisplayedValue;
261
- this.wrapperRef.nativeElement.innerHTML = this.displayedValue;
262
- }
263
- };
264
- /**
265
- * @return {?}
266
- */
267
- S5lComponent.prototype.ngAfterViewInit = /**
268
- * @return {?}
269
- */
270
- function () {
271
- this.value = this.wrapperRef.nativeElement.innerHTML.trim();
272
- this.loaded = true;
273
- this.refreshTranslation();
274
- };
275
- /**
276
- * @return {?}
277
- */
278
- S5lComponent.prototype.ngDoCheck = /**
279
- * @return {?}
280
- */
281
- function () {
282
- if (!this.loaded) {
283
- return;
284
- }
285
- this.refreshTranslation();
286
- };
287
- S5lComponent.decorators = [
288
- { type: Component, args: [{
289
- selector: 's5l',
290
- template: "\n <span #wrapper>\n <ng-content></ng-content>\n </span>",
291
- changeDetection: ChangeDetectionStrategy.OnPush
292
- }] }
293
- ];
294
- /** @nocollapse */
295
- S5lComponent.ctorParameters = function () { return [
296
- { type: BundlesService }
297
- ]; };
298
- S5lComponent.propDecorators = {
299
- wrapperRef: [{ type: ViewChild, args: ['wrapper', { static: false },] }],
300
- parameters: [{ type: Input, args: ["s5l-params",] }],
301
- fixedLanguage: [{ type: Input, args: ["s5l-lang",] }]
302
- };
303
- return S5lComponent;
304
- }());
305
- if (false) {
306
- /** @type {?} */
307
- S5lComponent.prototype.wrapperRef;
308
- /**
309
- * @type {?}
310
- * @private
311
- */
312
- S5lComponent.prototype.value;
313
- /**
314
- * @type {?}
315
- * @private
316
- */
317
- S5lComponent.prototype.loaded;
318
- /**
319
- * @type {?}
320
- * @private
321
- */
322
- S5lComponent.prototype.displayedValue;
323
- /** @type {?} */
324
- S5lComponent.prototype.parameters;
325
- /** @type {?} */
326
- S5lComponent.prototype.fixedLanguage;
327
- /**
328
- * @type {?}
329
- * @private
330
- */
331
- S5lComponent.prototype.bundlesService;
332
- }
333
-
334
- /**
335
- * @fileoverview added by tsickle
336
- * Generated from: lib/pipes/translate.pipe.ts
337
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
338
- */
339
- var TranslatePipe = /** @class */ (function () {
340
- function TranslatePipe(bundlesService) {
341
- this.bundlesService = bundlesService;
342
- }
343
- /**
344
- * @param {?} key
345
- * @param {?=} parameters
346
- * @param {?=} lang
347
- * @return {?}
348
- */
349
- TranslatePipe.prototype.transform = /**
350
- * @param {?} key
351
- * @param {?=} parameters
352
- * @param {?=} lang
353
- * @return {?}
354
- */
355
- function (key, parameters, lang) {
356
- return this.bundlesService.translate(key, parameters, lang);
357
- };
358
- TranslatePipe.decorators = [
359
- { type: Pipe, args: [{ name: 'translate', pure: false },] }
360
- ];
361
- /** @nocollapse */
362
- TranslatePipe.ctorParameters = function () { return [
363
- { type: BundlesService }
364
- ]; };
365
- return TranslatePipe;
366
- }());
367
- if (false) {
368
- /**
369
- * @type {?}
370
- * @private
371
- */
372
- TranslatePipe.prototype.bundlesService;
373
- }
374
-
375
- /**
376
- * @fileoverview added by tsickle
377
- * Generated from: lib/services/require/require.interface.ts
378
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
379
- */
380
- /**
381
- * Service used to fetch bundles.
382
- *
383
- * @export
384
- * @abstract
385
- */
386
- var /**
387
- * Service used to fetch bundles.
388
- *
389
- * @export
390
- * @abstract
391
- */
392
- RequireService = /** @class */ (function () {
393
- function RequireService() {
394
- }
395
- return RequireService;
396
- }());
397
- if (false) {
398
- /**
399
- * Fetch a bundle.
400
- * \@memberOf RequireService
401
- * @type {?}
402
- */
403
- RequireService.prototype.load;
404
- }
405
-
406
- /**
407
- * @fileoverview added by tsickle
408
- * Generated from: lib/services/parser/parser.interface.ts
409
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
410
- */
411
- var ParserError = /** @class */ (function (_super) {
412
- __extends(ParserError, _super);
413
- function ParserError(message, fragment) {
414
- var _this = _super.call(this, message) || this;
415
- _this.message = message;
416
- _this.fragment = fragment;
417
- return _this;
418
- }
419
- return ParserError;
420
- }(Error));
421
- if (false) {
422
- /** @type {?} */
423
- ParserError.prototype.message;
424
- /** @type {?} */
425
- ParserError.prototype.fragment;
426
- }
427
- /**
428
- * Parses logic inside translations.
429
- *
430
- * @export
431
- * @abstract
432
- */
433
- var /**
434
- * Parses logic inside translations.
435
- *
436
- * @export
437
- * @abstract
438
- */
439
- Parser = /** @class */ (function () {
440
- function Parser() {
441
- }
442
- return Parser;
443
- }());
444
- if (false) {
445
- /**
446
- * Processes a string, isolating logic fragments and compiling them.
447
- *
448
- * \@memberOf Parser
449
- * @type {?}
450
- */
451
- Parser.prototype.compile;
452
- }
453
-
454
- /**
455
- * @fileoverview added by tsickle
456
- * Generated from: lib/services/sijil.opts.ts
457
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
458
- */
459
- /**
460
- * Contains Sijil options.
461
- *
462
- * @export
463
- * @abstract
464
- */
465
- var /**
466
- * Contains Sijil options.
467
- *
468
- * @export
469
- * @abstract
470
- */
471
- SijilOpts = /** @class */ (function () {
472
- function SijilOpts() {
473
- }
474
- return SijilOpts;
475
- }());
476
- if (false) {
477
- /**
478
- * Fallback language when a translation is not available in the current language.
479
- * @type {?}
480
- */
481
- SijilOpts.prototype.defaultLanguage;
482
- }
483
- /** @type {?} */
484
- var defaultSijilOpts = {
485
- defaultLanguage: window ? window.navigator.language.split('-')[0] : undefined
486
- };
487
-
488
- /**
489
- * @fileoverview added by tsickle
490
- * Generated from: lib/services/require/httprequire.service.ts
491
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
492
- */
493
- /**
494
- * Fetches a bundle from a target url.
495
- *
496
- * @export
497
- */
498
- var HttpRequireService = /** @class */ (function () {
499
- function HttpRequireService(httpClient) {
500
- this.httpClient = httpClient;
501
- }
502
- /**
503
- * @param {?} url
504
- * @return {?}
505
- */
506
- HttpRequireService.prototype.load = /**
507
- * @param {?} url
508
- * @return {?}
509
- */
510
- function (url) {
511
- return this.httpClient.get(url).toPromise()
512
- .then((/**
513
- * @param {?} data
514
- * @return {?}
515
- */
516
- function (data) { return data; }));
517
- };
518
- HttpRequireService.decorators = [
519
- { type: Injectable }
520
- ];
521
- /** @nocollapse */
522
- HttpRequireService.ctorParameters = function () { return [
523
- { type: HttpClient }
524
- ]; };
525
- return HttpRequireService;
526
- }());
527
- if (false) {
528
- /**
529
- * @type {?}
530
- * @private
531
- */
532
- HttpRequireService.prototype.httpClient;
533
- }
534
-
535
- /**
536
- * @fileoverview added by tsickle
537
- * Generated from: lib/services/parser/fragments.parser.ts
538
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
539
- */
540
- /**
541
- * The default Sijil parser.
542
- *
543
- * - Input : bundle value (translation) + parameters (Object or Array)
544
- * - Output : compiled translation
545
- *
546
- * Logic is contained inside mustache blocks : {{ LOGIC BLOCK }}
547
- *
548
- * There are two variants :
549
- * - A single parameter key (when the params are contained inside an object) or index (params contained inside an array)
550
- *
551
- * Examples:
552
- *
553
- * {{ key }} + { "key" : "my key" } = my key
554
- *
555
- * {{ 1 }} + [1, 2] = 2
556
- *
557
- * - A ternary-like condition
558
- *
559
- * {{ condition ? trueValue : falseValue }}
560
- * Where condition may be : a single parameter key/index, or 2 clauses with the following operators : ==, >, =>, <=, <
561
- *
562
- * Examples:
563
- *
564
- * (the $ sign to refer to a variable is mandatory when a clause contains more than 1 word)
565
- *
566
- * {{ count > 1 ? $count cats : 1 cat }} + {"count": 10} = 10 cats
567
- * {{ 1 < count ? $count cats : 1 cat }} + {"count": 1} = 1 cat
568
- *
569
- * @export
570
- */
571
- // @dynamic
572
- var FragmentsParser = /** @class */ (function () {
573
- function FragmentsParser() {
574
- }
575
- /**
576
- * @private
577
- * @param {?} parameters
578
- * @param {?} fragment
579
- * @param {?=} strict
580
- * @return {?}
581
- */
582
- FragmentsParser.prototype.getParameter = /**
583
- * @private
584
- * @param {?} parameters
585
- * @param {?} fragment
586
- * @param {?=} strict
587
- * @return {?}
588
- */
589
- function (parameters, fragment, strict) {
590
- /** @type {?} */
591
- var splittedFrag = fragment.split(/\s+/);
592
- if (splittedFrag.length === 1) {
593
- return fragment[0] === '$' ?
594
- parameters[fragment.substr(1)] :
595
- strict ?
596
- fragment :
597
- parameters[fragment] !== undefined ?
598
- parameters[fragment] :
599
- fragment;
600
- }
601
- return fragment.split(/\s+/).reduce((/**
602
- * @param {?} l
603
- * @param {?} r
604
- * @return {?}
605
- */
606
- function (l, r) {
607
- l.push(r[0] === '$' ? parameters[r.substr(1)] : r);
608
- return l;
609
- }), []).join(' ');
610
- };
611
- /**
612
- * @private
613
- * @param {?} fragment
614
- * @param {?} parameters
615
- * @return {?}
616
- */
617
- FragmentsParser.prototype.compileFragment = /**
618
- * @private
619
- * @param {?} fragment
620
- * @param {?} parameters
621
- * @return {?}
622
- */
623
- function (fragment, parameters) {
624
- fragment = fragment.replace(/{{|}}/g, '');
625
- /** @type {?} */
626
- var interrogationIndex;
627
- /** @type {?} */
628
- var dotsIndex;
629
- if ((interrogationIndex = fragment.indexOf('?')) > 0 && (dotsIndex = fragment.lastIndexOf(':')) > 1) {
630
- /** @type {?} */
631
- var condition = fragment.substring(0, interrogationIndex).trim();
632
- /** @type {?} */
633
- var trueReturn = fragment.substring(interrogationIndex + 1, dotsIndex).trim();
634
- /** @type {?} */
635
- var falseReturn = fragment.substring(dotsIndex + 1).trim();
636
- /** @type {?} */
637
- var computedTrueReturn = this.getParameter(parameters, trueReturn);
638
- /** @type {?} */
639
- var computedFalseReturn = this.getParameter(parameters, falseReturn);
640
- /** @type {?} */
641
- var splittedCondition = condition.split(/\s+/);
642
- if (splittedCondition.length === 1) {
643
- // Single variable case
644
- /** @type {?} */
645
- var variable = parameters[splittedCondition[0]];
646
- return variable ?
647
- computedTrueReturn :
648
- computedFalseReturn;
649
- }
650
- else if (splittedCondition.length === 3) {
651
- // Operator case
652
- /** @type {?} */
653
- var leftHandParam = this.getParameter(parameters, splittedCondition[0], parameters instanceof Array);
654
- /** @type {?} */
655
- var rightHand = this.getParameter(parameters, splittedCondition[2], parameters instanceof Array);
656
- /** @type {?} */
657
- var comparisonOperator = splittedCondition[1];
658
- switch (comparisonOperator) {
659
- case '==':
660
- return leftHandParam === rightHand ?
661
- computedTrueReturn :
662
- computedFalseReturn;
663
- case '>':
664
- return leftHandParam > rightHand ?
665
- computedTrueReturn :
666
- computedFalseReturn;
667
- case '>=':
668
- return leftHandParam >= rightHand ?
669
- computedTrueReturn :
670
- computedFalseReturn;
671
- case '<':
672
- return leftHandParam < rightHand ?
673
- computedTrueReturn :
674
- computedFalseReturn;
675
- case '<=':
676
- return leftHandParam <= rightHand ?
677
- computedTrueReturn :
678
- computedFalseReturn;
679
- default:
680
- throw new ParserError("Invalid conditional operator for fragment : " + fragment, fragment);
681
- }
682
- }
683
- else {
684
- throw new ParserError("Invalid condition for fragment : " + fragment, fragment);
685
- }
686
- }
687
- else {
688
- fragment = fragment.trim();
689
- return parameters[fragment];
690
- }
691
- };
692
- /**
693
- * @param {?} rawTranslation
694
- * @param {?} parameters
695
- * @param {?=} onError
696
- * @return {?}
697
- */
698
- FragmentsParser.prototype.compile = /**
699
- * @param {?} rawTranslation
700
- * @param {?} parameters
701
- * @param {?=} onError
702
- * @return {?}
703
- */
704
- function (rawTranslation, parameters, onError) {
705
- /** @type {?} */
706
- var parts = rawTranslation.split(FragmentsParser.delimRegexp);
707
- /** @type {?} */
708
- var fragments = rawTranslation.match(FragmentsParser.delimRegexp);
709
- /** @type {?} */
710
- var compiledTranslation = '';
711
- if (!onError) {
712
- onError = FragmentsParser.defaultErrorCallback;
713
- }
714
- if (!fragments) {
715
- compiledTranslation += rawTranslation;
716
- }
717
- else {
718
- for (var i = 0; i < parts.length; i++) {
719
- compiledTranslation += parts[i];
720
- if (i > fragments.length - 1) {
721
- continue;
722
- }
723
- try {
724
- compiledTranslation += this.compileFragment(fragments[i], parameters);
725
- }
726
- catch (e) {
727
- compiledTranslation += onError(e);
728
- }
729
- }
730
- }
731
- return compiledTranslation;
732
- };
733
- FragmentsParser.delimiters = ['{{', '}}'];
734
- FragmentsParser.delimRegexp = new RegExp(FragmentsParser.delimiters[0] + "[^}]+" + FragmentsParser.delimiters[1], 'gm');
735
- FragmentsParser.defaultErrorCallback = (/**
736
- * @param {?} e
737
- * @return {?}
738
- */
739
- function (e) {
740
- console.error(e);
741
- return e.fragment;
742
- });
743
- return FragmentsParser;
744
- }());
745
- if (false) {
746
- /**
747
- * @type {?}
748
- * @private
749
- */
750
- FragmentsParser.delimiters;
751
- /**
752
- * @type {?}
753
- * @private
754
- */
755
- FragmentsParser.delimRegexp;
756
- /**
757
- * @type {?}
758
- * @private
759
- */
760
- FragmentsParser.defaultErrorCallback;
761
- }
762
-
763
- /**
764
- * @fileoverview added by tsickle
765
- * Generated from: lib/ngx-ode-sijil.module.ts
766
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
767
- */
768
- var NgxOdeSijilModule = /** @class */ (function () {
769
- function NgxOdeSijilModule() {
770
- }
771
- /**
772
- * @param {?=} require
773
- * @param {?=} parser
774
- * @param {?=} options
775
- * @return {?}
776
- */
777
- NgxOdeSijilModule.forRoot = /**
778
- * @param {?=} require
779
- * @param {?=} parser
780
- * @param {?=} options
781
- * @return {?}
782
- */
783
- function (require, parser, options) {
784
- return {
785
- ngModule: NgxOdeSijilModule,
786
- providers: [
787
- { provide: BundlesService, useClass: BundlesService, deps: [RequireService, Parser, SijilOpts] },
788
- { provide: RequireService, useClass: require || HttpRequireService },
789
- { provide: Parser, useClass: parser || FragmentsParser },
790
- { provide: SijilOpts, useValue: options || defaultSijilOpts }
791
- ]
792
- };
793
- };
794
- /**
795
- * @return {?}
796
- */
797
- NgxOdeSijilModule.forChild = /**
798
- * @return {?}
799
- */
800
- function () {
801
- return {
802
- ngModule: NgxOdeSijilModule,
803
- providers: []
804
- };
805
- };
806
- NgxOdeSijilModule.decorators = [
807
- { type: NgModule, args: [{
808
- declarations: [S5lComponent, TranslatePipe],
809
- imports: [HttpClientModule],
810
- exports: [S5lComponent, TranslatePipe]
811
- },] }
812
- ];
813
- return NgxOdeSijilModule;
814
- }());
815
-
816
- /**
817
- * @fileoverview added by tsickle
818
- * Generated from: public-api.ts
819
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
820
- */
821
-
822
- /**
823
- * @fileoverview added by tsickle
824
- * Generated from: ngx-ode-sijil.ts
825
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
826
- */
827
-
828
- export { BundlesService, NgxOdeSijilModule, S5lComponent, TranslatePipe, RequireService as ɵa, Parser as ɵb, SijilOpts as ɵc, defaultSijilOpts as ɵd, HttpRequireService as ɵe, FragmentsParser as ɵf };
829
- //# sourceMappingURL=ngx-ode-sijil.js.map