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,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/services/sijil.opts.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Contains Sijil options.
|
|
8
|
-
*
|
|
9
|
-
* @export
|
|
10
|
-
* @abstract
|
|
11
|
-
*/
|
|
12
|
-
var /**
|
|
13
|
-
* Contains Sijil options.
|
|
14
|
-
*
|
|
15
|
-
* @export
|
|
16
|
-
* @abstract
|
|
17
|
-
*/
|
|
18
|
-
SijilOpts = /** @class */ (function () {
|
|
19
|
-
function SijilOpts() {
|
|
20
|
-
}
|
|
21
|
-
return SijilOpts;
|
|
22
|
-
}());
|
|
23
|
-
/**
|
|
24
|
-
* Contains Sijil options.
|
|
25
|
-
*
|
|
26
|
-
* @export
|
|
27
|
-
* @abstract
|
|
28
|
-
*/
|
|
29
|
-
export { SijilOpts };
|
|
30
|
-
if (false) {
|
|
31
|
-
/**
|
|
32
|
-
* Fallback language when a translation is not available in the current language.
|
|
33
|
-
* @type {?}
|
|
34
|
-
*/
|
|
35
|
-
SijilOpts.prototype.defaultLanguage;
|
|
36
|
-
}
|
|
37
|
-
/** @type {?} */
|
|
38
|
-
export var defaultSijilOpts = {
|
|
39
|
-
defaultLanguage: window ? window.navigator.language.split('-')[0] : undefined
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lqaWwub3B0cy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtc2lqaWwvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc2lqaWwub3B0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUtBOzs7Ozs7O0lBQUE7SUFHQSxDQUFDO0lBQUQsZ0JBQUM7QUFBRCxDQUFDLEFBSEQsSUFHQzs7Ozs7Ozs7Ozs7OztJQURHLG9DQUF3Qjs7O0FBRzVCLE1BQU0sS0FBSyxnQkFBZ0IsR0FBZTtJQUN0QyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Q0FDaEYiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRhaW5zIFNpamlsIG9wdGlvbnMuXG4gKlxuICogQGV4cG9ydFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2lqaWxPcHRzIHtcbiAgICAvKiogRmFsbGJhY2sgbGFuZ3VhZ2Ugd2hlbiBhIHRyYW5zbGF0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuICovXG4gICAgZGVmYXVsdExhbmd1YWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBsZXQgZGVmYXVsdFNpamlsT3B0cyA6IFNpamlsT3B0cyA9IHtcbiAgICBkZWZhdWx0TGFuZ3VhZ2U6IHdpbmRvdyA/IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2Uuc3BsaXQoJy0nKVswXSA6IHVuZGVmaW5lZFxufTtcbiJdfQ==
|
package/esm5/ngx-ode-sijil.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: ngx-ode-sijil.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Generated bundle index. Do not edit.
|
|
8
|
-
*/
|
|
9
|
-
export { BundlesService, S5lComponent, TranslatePipe, NgxOdeSijilModule } from './public-api';
|
|
10
|
-
export { FragmentsParser as ɵf } from './lib/services/parser/fragments.parser';
|
|
11
|
-
export { Parser as ɵb } from './lib/services/parser/parser.interface';
|
|
12
|
-
export { HttpRequireService as ɵe } from './lib/services/require/httprequire.service';
|
|
13
|
-
export { RequireService as ɵa } from './lib/services/require/require.interface';
|
|
14
|
-
export { SijilOpts as ɵc, defaultSijilOpts as ɵd } from './lib/services/sijil.opts';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW9kZS1zaWppbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtc2lqaWwvIiwic291cmNlcyI6WyJuZ3gtb2RlLXNpamlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsK0VBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsU0FBUyxJQUFJLEVBQUUsRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtGcmFnbWVudHNQYXJzZXIgYXMgybVmfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wYXJzZXIvZnJhZ21lbnRzLnBhcnNlcic7XG5leHBvcnQge1BhcnNlciBhcyDJtWJ9IGZyb20gJy4vbGliL3NlcnZpY2VzL3BhcnNlci9wYXJzZXIuaW50ZXJmYWNlJztcbmV4cG9ydCB7SHR0cFJlcXVpcmVTZXJ2aWNlIGFzIMm1ZX0gZnJvbSAnLi9saWIvc2VydmljZXMvcmVxdWlyZS9odHRwcmVxdWlyZS5zZXJ2aWNlJztcbmV4cG9ydCB7UmVxdWlyZVNlcnZpY2UgYXMgybVhfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yZXF1aXJlL3JlcXVpcmUuaW50ZXJmYWNlJztcbmV4cG9ydCB7U2lqaWxPcHRzIGFzIMm1YyxkZWZhdWx0U2lqaWxPcHRzIGFzIMm1ZH0gZnJvbSAnLi9saWIvc2VydmljZXMvc2lqaWwub3B0cyc7Il19
|
package/esm5/public-api.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: public-api.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
/*
|
|
7
|
-
* Public API Surface of ngx-ode-sijil
|
|
8
|
-
*/
|
|
9
|
-
export { BundlesService } from './lib/services/bundles.service';
|
|
10
|
-
export { S5lComponent } from './lib/components/s5l.component';
|
|
11
|
-
export { TranslatePipe } from './lib/pipes/translate.pipe';
|
|
12
|
-
export { NgxOdeSijilModule } from './lib/ngx-ode-sijil.module';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtc2lqaWwvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsK0JBQWMsZ0NBQWdDLENBQUM7QUFDL0MsNkJBQWMsZ0NBQWdDLENBQUM7QUFDL0MsOEJBQWMsNEJBQTRCLENBQUM7QUFDM0Msa0NBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1vZGUtc2lqaWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9idW5kbGVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zNWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1vZGUtc2lqaWwubW9kdWxlJztcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-ode-sijil.js","sources":["ng://ngx-ode-sijil/lib/services/bundles.service.ts","ng://ngx-ode-sijil/lib/components/s5l.component.ts","ng://ngx-ode-sijil/lib/pipes/translate.pipe.ts","ng://ngx-ode-sijil/lib/services/require/require.interface.ts","ng://ngx-ode-sijil/lib/services/parser/parser.interface.ts","ng://ngx-ode-sijil/lib/services/sijil.opts.ts","ng://ngx-ode-sijil/lib/services/require/httprequire.service.ts","ng://ngx-ode-sijil/lib/services/parser/fragments.parser.ts","ng://ngx-ode-sijil/lib/ngx-ode-sijil.module.ts"],"sourcesContent":["import { RequireService } from './require/require.interface';\nimport { Parser } from './parser/parser.interface';\nimport { SijilOpts } from './sijil.opts';\n\n/**\n * Defines a BundlesService, whice is the main entry point for Sijil operations.\n *\n * A BundlesServices has three dependencies :\n * - RequireService : Used to fetch bundles\n * - Parser : Used to parse logic inside bundle values\n * - SijilOpts : An object containing custom settings\n */\nexport class BundlesService {\n\n constructor(private requireService: RequireService, private parser: Parser, sijilOpts: SijilOpts) {\n this.defaultLanguage = sijilOpts.defaultLanguage;\n if(!this.defaultLanguage && typeof window !== 'undefined') {\n this.defaultLanguage = window.navigator.language.split('-')[0];\n }\n this.currentLanguage = this.defaultLanguage;\n }\n\n private bundles: Object = {};\n /**\n * Fallback language.\n */\n defaultLanguage: string;\n /**\n * Current language.\n */\n currentLanguage: string;\n\n /**\n * Add keys/values to an existing bundle, or create it if missing.\n *\n * @param bundle An object containing translations as key / values.\n * @param lang The language to map the bundle with, or the current langugage if omitted.\n */\n addToBundle(bundle: Object, lang?: string) : void {\n const targetLanguage = lang || this.currentLanguage || this.defaultLanguage || 'en';\n\n if(!this.bundles[targetLanguage]) {\n this.bundles[targetLanguage] = {};\n }\n\n this.bundles[targetLanguage] = Object.assign({}, this.bundles[targetLanguage], bundle);\n\n if(!this.currentLanguage) {\n this.currentLanguage = lang;\n }\n }\n\n /**\n * Loads a bundle and associates it with a language.\n * If the target language already contains key/values, then we mixin the new bundle and the existing one.\n *\n * @param where The path, or whatever the RequireService needs to fetch the bundle.\n * @param lang The target language, or the current language if omitted.\n * @returns A Promise, because the RequireService can be (is - by default) asynchronous.\n */\n loadBundle(where, lang?: string) : Promise<void> {\n return this.requireService.load(where)\n .then(bundle => {\n this.addToBundle(bundle, lang);\n })\n }\n /**\n * Loads multiple bundles and associates then with a language.\n *\n * @see {@link loadBundle}\n */\n loadBundles(specs: { lang: string, where: any }[]): Promise<void[]> {\n return Promise.all(specs.map((spec) => {\n return this.loadBundle(spec.where, spec.lang);\n }))\n }\n\n /**\n * Removes a bundle from the bundles list.\n *\n * @param lang Language to remove.\n */\n unloadBundle(lang: string): void {\n delete this.bundles[lang];\n }\n\n /**\n * @returns Returns a list of all loaded languages.\n */\n getLoadedLanguages() : string[] {\n return Object.keys(this.bundles);\n }\n\n /**\n * Translates a single key into a target language, using the parameters provided if needed.\n *\n * @param key Key to translate\n * @param parameters Parameters to use if the translation contains logic.\n * @param lang Target language, of the current language if omitted.\n * @returns The computed translation, or the key if no match was found in the bundles (including the fallback language bundle).\n */\n translate(key: string, parameters?: Object | any[], lang?: string) : string {\n const targetLanguage = lang || this.currentLanguage;\n\n const rawTranslation : string = this.bundles[targetLanguage] &&\n this.bundles[targetLanguage][key] ||\n this.defaultLanguage &&\n this.bundles[this.defaultLanguage] &&\n this.bundles[this.defaultLanguage][key] ||\n key;\n\n if(rawTranslation !== key && parameters) {\n return this.parser.compile(rawTranslation, parameters, (e) => { console.error(e); return key; });\n } else {\n return rawTranslation;\n }\n }\n}\n","import { Component, Input, ElementRef, ViewChild, AfterViewInit, ChangeDetectionStrategy, DoCheck } from '@angular/core';\nimport { BundlesService } from '../services/bundles.service';\n\n@Component({\n selector: 's5l',\n template: `\n <span #wrapper>\n <ng-content></ng-content>\n </span>`,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class S5lComponent implements AfterViewInit, DoCheck {\n\n constructor(private bundlesService: BundlesService) {}\n\n @ViewChild('wrapper', { static: false }) wrapperRef: ElementRef;\n\n private value: string;\n private loaded: boolean;\n private displayedValue: string;\n\n @Input(\"s5l-params\") parameters: Object | any[];\n @Input(\"s5l-lang\") fixedLanguage: string;\n\n private refreshTranslation() {\n const newDisplayedValue = this.bundlesService.translate(this.value, this.parameters, this.fixedLanguage)\n if (this.displayedValue !== newDisplayedValue) {\n this.displayedValue = newDisplayedValue;\n this.wrapperRef.nativeElement.innerHTML = this.displayedValue;\n }\n }\n\n ngAfterViewInit(): void {\n this.value = this.wrapperRef.nativeElement.innerHTML.trim();\n this.loaded = true;\n this.refreshTranslation();\n }\n\n ngDoCheck(): void {\n if (!this.loaded) {\n return;\n }\n this.refreshTranslation();\n }\n}\n","import { BundlesService } from '../services/bundles.service';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'translate', pure: false})\nexport class TranslatePipe implements PipeTransform {\n\n constructor(private bundlesService: BundlesService) {}\n\n transform(key: string, parameters?: object | any[], lang?: string): string {\n return this.bundlesService.translate(key, parameters, lang);\n }\n\n}\n","/**\n * Service used to fetch bundles.\n *\n * @export\n */\nexport abstract class RequireService {\n /**\n * Fetch a bundle.\n * @memberOf RequireService\n */\n load: (from: any) => Promise<Object>;\n}\n","export class ParserError extends Error {\n constructor(public message: string, public fragment: string) {\n super(message)\n }\n}\n\nexport type ParserCallback = (_ : ParserError) => string;\n/**\n * Parses logic inside translations.\n *\n * @export\n */\nexport abstract class Parser {\n /**\n * Processes a string, isolating logic fragments and compiling them.\n *\n * @memberOf Parser\n */\n compile: (text: string, parameters: any, error?: ParserCallback) => string;\n}\n","/**\n * Contains Sijil options.\n *\n * @export\n */\nexport abstract class SijilOpts {\n /** Fallback language when a translation is not available in the current language. */\n defaultLanguage: string;\n}\n\nexport let defaultSijilOpts : SijilOpts = {\n defaultLanguage: window ? window.navigator.language.split('-')[0] : undefined\n};\n","import { RequireService } from './require.interface'\nimport { Injectable } from '@angular/core'\nimport { HttpClient } from '@angular/common/http'\n\n/**\n * Fetches a bundle from a target url.\n *\n * @export\n */\n@Injectable()\nexport class HttpRequireService implements RequireService {\n\n constructor(private httpClient: HttpClient){}\n\n load(url) : Promise<Object> {\n return this.httpClient.get(url).toPromise()\n .then(data => data);\n }\n\n}\n","import { Parser, ParserCallback, ParserError } from './parser.interface';\n\n/**\n * The default Sijil parser.\n *\n * - Input : bundle value (translation) + parameters (Object or Array)\n * - Output : compiled translation\n *\n * Logic is contained inside mustache blocks : {{ LOGIC BLOCK }}\n *\n * There are two variants :\n * - A single parameter key (when the params are contained inside an object) or index (params contained inside an array)\n *\n * Examples:\n *\n * {{ key }} + { \"key\" : \"my key\" } = my key\n *\n * {{ 1 }} + [1, 2] = 2\n *\n * - A ternary-like condition\n *\n * {{ condition ? trueValue : falseValue }}\n * Where condition may be : a single parameter key/index, or 2 clauses with the following operators : ==, >, =>, <=, <\n *\n * Examples:\n *\n * (the $ sign to refer to a variable is mandatory when a clause contains more than 1 word)\n *\n * {{ count > 1 ? $count cats : 1 cat }} + {\"count\": 10} = 10 cats\n * {{ 1 < count ? $count cats : 1 cat }} + {\"count\": 1} = 1 cat\n *\n * @export\n */\n// @dynamic\nexport class FragmentsParser implements Parser {\n\n constructor(){}\n\n private static delimiters: string[] = ['{{', '}}'];\n private static delimRegexp = new RegExp(`${FragmentsParser.delimiters[0]}[^}]+${FragmentsParser.delimiters[1]}`, 'gm');\n\n private static defaultErrorCallback: ParserCallback = (e: ParserError) => {\n console.error(e);\n return e.fragment;\n }\n\n private getParameter(parameters: Object | any[], fragment: string, strict?: boolean): string {\n const splittedFrag = fragment.split(/\\s+/);\n if(splittedFrag.length === 1) {\n return fragment[0] === '$' ?\n parameters[fragment.substr(1)] :\n strict ?\n fragment :\n parameters[fragment] !== undefined ?\n parameters[fragment] :\n fragment;\n }\n return fragment.split(/\\s+/).reduce((l, r) => {\n l.push(r[0] === '$' ? parameters[r.substr(1)] : r);\n return l;\n }, []).join(' ');\n }\n\n private compileFragment(fragment: string, parameters: Object | any[]): string {\n fragment = fragment.replace(/{{|}}/g, '');\n\n let interrogationIndex;\n let dotsIndex;\n if ((interrogationIndex = fragment.indexOf('?')) > 0 && (dotsIndex = fragment.lastIndexOf(':')) > 1) {\n const condition = fragment.substring(0, interrogationIndex).trim();\n const trueReturn = fragment.substring(interrogationIndex + 1, dotsIndex).trim();\n const falseReturn = fragment.substring(dotsIndex + 1).trim();\n const computedTrueReturn = this.getParameter(parameters, trueReturn);\n const computedFalseReturn = this.getParameter(parameters, falseReturn);\n\n const splittedCondition = condition.split(/\\s+/);\n\n if (splittedCondition.length === 1) {\n\n // Single variable case\n\n const variable = parameters[splittedCondition[0]];\n\n return variable ?\n computedTrueReturn :\n computedFalseReturn;\n\n } else if (splittedCondition.length === 3) {\n\n // Operator case\n\n const leftHandParam = this.getParameter(parameters, splittedCondition[0], parameters instanceof Array);\n const rightHand = this.getParameter(parameters, splittedCondition[2], parameters instanceof Array);\n const comparisonOperator = splittedCondition[1];\n\n switch (comparisonOperator) {\n case '==':\n return leftHandParam === rightHand ?\n computedTrueReturn :\n computedFalseReturn;\n case '>':\n return leftHandParam > rightHand ?\n computedTrueReturn :\n computedFalseReturn;\n case '>=':\n return leftHandParam >= rightHand ?\n computedTrueReturn :\n computedFalseReturn;\n case '<':\n return leftHandParam < rightHand ?\n computedTrueReturn :\n computedFalseReturn;\n case '<=':\n return leftHandParam <= rightHand ?\n computedTrueReturn :\n computedFalseReturn;\n default:\n throw new ParserError(`Invalid conditional operator for fragment : ${fragment}`, fragment);\n }\n\n } else {\n throw new ParserError(`Invalid condition for fragment : ${fragment}`, fragment);\n }\n } else {\n fragment = fragment.trim();\n return parameters[fragment];\n }\n }\n\n compile(rawTranslation: string, parameters: Object, onError?: ParserCallback): string {\n\n const parts = rawTranslation.split(FragmentsParser.delimRegexp);\n const fragments = rawTranslation.match(FragmentsParser.delimRegexp);\n\n let compiledTranslation = '';\n\n if (!onError) {\n onError = FragmentsParser.defaultErrorCallback;\n }\n\n if (!fragments) {\n compiledTranslation += rawTranslation;\n } else {\n for (let i = 0; i < parts.length; i++) {\n compiledTranslation += parts[i];\n if (i > fragments.length - 1) {\n continue;\n }\n try {\n compiledTranslation += this.compileFragment(fragments[i], parameters);\n } catch (e) {\n compiledTranslation += onError(e);\n }\n }\n }\n\n return compiledTranslation;\n\n }\n\n}\n","import { NgModule, ModuleWithProviders, Type } from '@angular/core';\nimport { S5lComponent } from './components/s5l.component';\nimport { TranslatePipe } from './pipes/translate.pipe';\nimport { HttpClientModule } from '@angular/common/http';\nimport { RequireService } from './services/require/require.interface';\nimport { Parser } from './services/parser/parser.interface';\nimport { SijilOpts, defaultSijilOpts } from './services/sijil.opts';\nimport { BundlesService } from './services/bundles.service';\nimport { HttpRequireService } from './services/require/httprequire.service';\nimport { FragmentsParser } from './services/parser/fragments.parser';\n\n@NgModule({\n declarations: [S5lComponent, TranslatePipe],\n imports: [HttpClientModule],\n exports: [S5lComponent, TranslatePipe]\n})\nexport class NgxOdeSijilModule {\n static forRoot(require?: Type<RequireService>, parser?: Type<Parser>, options?: SijilOpts): ModuleWithProviders {\n return {\n ngModule: NgxOdeSijilModule,\n providers: [\n { provide: BundlesService, useClass: BundlesService, deps: [ RequireService, Parser, SijilOpts ] },\n { provide: RequireService, useClass: require || HttpRequireService },\n { provide: Parser, useClass: parser || FragmentsParser },\n { provide: SijilOpts, useValue: options || defaultSijilOpts }\n ]\n };\n }\n\n static forChild(): ModuleWithProviders {\n return {\n ngModule: NgxOdeSijilModule,\n providers: []\n };\n }\n}\n"],"names":[],"mappings":"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"}
|