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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-ode-sijil.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","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":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","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":["Component","ChangeDetectionStrategy","ViewChild","Input","Pipe","tslib_1.__extends","Injectable","HttpClient","NgModule","HttpClientModule"],"mappings":";;;;;;IAAA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;IACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;IACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;;AAEF,IAAO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;IAChC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;;AAED,IAAO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;IACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS;IACT,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IAC1D,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;;AAED,IAAO,SAAS,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE;IAC/C,IAAI,OAAO,UAAU,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE;IACzE,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;IACvD,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;;AAED,IAAO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;IAC7D,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;IAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IACvJ,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,CAAC;IACP,CAAC;;AAED,IAAO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;IAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;IACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;IACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;IAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IACjE,gBAAgB;IAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;IAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;IAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;IACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IAC3C,aAAa;IACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzF,KAAK;IACL,CAAC;;AAED,IAAO,SAAS,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IACzC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;;AAED,IAAO,SAAS,QAAQ,CAAC,CAAC,EAAE;IAC5B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO;IACX,QAAQ,IAAI,EAAE,YAAY;IAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACpD,SAAS;IACT,KAAK,CAAC;IACN,CAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI;IACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,KAAK;IACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3C,YAAY;IACZ,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS;IACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IACzC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,QAAQ,GAAG;IAC3B,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,cAAc,GAAG;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IACpD,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IACzE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;;AAEF,IAAO,SAAS,OAAO,CAAC,CAAC,EAAE;IAC3B,IAAI,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;IACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1H,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9I,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACtF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC5H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,CAAC,EAAE;IACpC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChJ,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;;AAED,IAAO,SAAS,aAAa,CAAC,CAAC,EAAE;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IACpK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;;AAED,IAAO,SAAS,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE;IAClD,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE;IACnH,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;;AAEF,IAAO,SAAS,YAAY,CAAC,GAAG,EAAE;IAClC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACzB,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;;AAED,IAAO,SAAS,eAAe,CAAC,GAAG,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;;;;;;;;;;;;;;;ACvLD;;;;;;;;;QAEI,wBAAoB,cAA8B,EAAU,MAAc,EAAE,SAAoB;YAA5E,mBAAc,GAAd,cAAc,CAAgB;YAAU,WAAM,GAAN,MAAM,CAAQ;YAQlE,YAAO,GAAW,EAAE,CAAC;YAPzB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;YACjD,IAAG,CAAC,IAAI,CAAC,eAAe,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACvD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAClE;YACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;SAC/C;;;;;;;;;;;;;;QAkBD,oCAAW;;;;;;;QAAX,UAAY,MAAc,EAAE,IAAa;;gBAC/B,cAAc,GAAG,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;YAEnF,IAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;gBAC9B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;aACrC;YAED,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;YAEvF,IAAG,CAAC,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC/B;SACJ;;;;;;;;;;;;;;;;;QAUD,mCAAU;;;;;;;;QAAV,UAAW,KAAK,EAAE,IAAa;YAA/B,iBAKC;YAJG,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;iBACjC,IAAI;;;;YAAC,UAAA,MAAM;gBACR,KAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aAClC,EAAC,CAAA;SACT;;;;;;;;;;;;;QAMD,oCAAW;;;;;;;QAAX,UAAY,KAAqC;YAAjD,iBAIC;YAHG,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG;;;;YAAC,UAAC,IAAI;gBAC9B,OAAO,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aACjD,EAAC,CAAC,CAAA;SACN;;;;;;;;;;;;QAOD,qCAAY;;;;;;QAAZ,UAAa,IAAY;YACrB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7B;;;;;;;QAKD,2CAAkB;;;QAAlB;YACI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpC;;;;;;;;;;;;;;;;;QAUD,kCAAS;;;;;;;;QAAT,UAAU,GAAW,EAAE,UAA2B,EAAE,IAAa;;gBACvD,cAAc,GAAG,IAAI,IAAI,IAAI,CAAC,eAAe;;gBAE7C,cAAc,GAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC;gBACjC,IAAI,CAAC,eAAe;oBACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;oBAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC;gBACvC,GAAG;YAEP,IAAG,cAAc,KAAK,GAAG,IAAI,UAAU,EAAE;gBACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU;;;;gBAAE,UAAC,CAAC,IAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,EAAC,CAAC;aACpG;iBAAM;gBACH,OAAO,cAAc,CAAC;aACzB;SACJ;QACL,qBAAC;KAAA,IAAA;;;;;;QA/FG,iCAA6B;;;;;QAI7B,yCAAwB;;;;;QAIxB,yCAAwB;;;;;QAhBZ,wCAAsC;;;;;QAAE,gCAAsB;;;;;;;;ACd9E;QAaI,sBAAoB,cAA8B;YAA9B,mBAAc,GAAd,cAAc,CAAgB;SAAI;;;;;QAW9C,yCAAkB;;;;QAA1B;;gBACU,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC;YACxG,IAAI,IAAI,CAAC,cAAc,KAAK,iBAAiB,EAAE;gBAC3C,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;aACjE;SACJ;;;;QAED,sCAAe;;;QAAf;YACI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;;;;QAED,gCAAS;;;QAAT;YACI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACd,OAAO;aACV;YACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;;oBAxCJA,cAAS,SAAC;wBACP,QAAQ,EAAE,KAAK;wBACf,QAAQ,EAAE,uEAGF;wBACR,eAAe,EAAEC,4BAAuB,CAAC,MAAM;qBAClD;;;;oBATQ,cAAc;;;iCAclBC,cAAS,SAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;iCAMtCC,UAAK,SAAC,YAAY;oCAClBA,UAAK,SAAC,UAAU;;QAsBrB,mBAAC;KAzCD,IAyCC;;;QA7BG,kCAAgE;;;;;QAEhE,6BAAsB;;;;;QACtB,8BAAwB;;;;;QACxB,sCAA+B;;QAE/B,kCAAgD;;QAChD,qCAAyC;;;;;QAT7B,sCAAsC;;;;;;;;ACbtD;QAMI,uBAAoB,cAA8B;YAA9B,mBAAc,GAAd,cAAc,CAAgB;SAAI;;;;;;;QAEtD,iCAAS;;;;;;QAAT,UAAU,GAAW,EAAE,UAA2B,EAAE,IAAa;YAC7D,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;SAC/D;;oBAPJC,SAAI,SAAC,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAC;;;;oBAH7B,cAAc;;QAYvB,oBAAC;KATD,IASC;;;;;;QANe,uCAAsC;;;;;;;;;;;;;;ACDtD;;;;;;;QAAA;SAMC;QAAD,qBAAC;KAAA,IAAA;;;;;;;QADG,8BAAqC;;;;;;;;ICVzC;QAAiCC,+BAAK;QAClC,qBAAmB,OAAe,EAAS,QAAgB;YAA3D,YACI,kBAAM,OAAO,CAAC,SACjB;YAFkB,aAAO,GAAP,OAAO,CAAQ;YAAS,cAAQ,GAAR,QAAQ,CAAQ;;SAE1D;QACL,kBAAC;KAJD,CAAiC,KAAK,GAIrC;;;QAHe,8BAAsB;;QAAE,+BAAuB;;;;;;;;AAW/D;;;;;;;QAAA;SAOC;QAAD,aAAC;KAAA,IAAA;;;;;;;;QADG,yBAA2E;;;;;;;;;;;;;;ACb/E;;;;;;;QAAA;SAGC;QAAD,gBAAC;KAAA,IAAA;;;;;;QADG,oCAAwB;;;AAG5B,QAAW,gBAAgB,GAAe;QACtC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;KAChF;;;;;;;ICXD;;;;;AAQA;QAGI,4BAAoB,UAAsB;YAAtB,eAAU,GAAV,UAAU,CAAY;SAAG;;;;;QAE7C,iCAAI;;;;QAAJ,UAAK,GAAG;YACJ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE;iBACtC,IAAI;;;;YAAC,UAAA,IAAI,IAAI,OAAA,IAAI,GAAA,EAAC,CAAC;SAC3B;;oBARJC,eAAU;;;;oBAPFC,eAAU;;QAiBnB,yBAAC;KAVD,IAUC;;;;;;QAPe,wCAA8B;;;;;;;;ICZ9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA;QAEI;SAAe;;;;;;;;QAUP,sCAAY;;;;;;;QAApB,UAAqB,UAA0B,EAAE,QAAgB,EAAE,MAAgB;;gBACzE,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1C,IAAG,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG;oBACtB,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC9B,MAAM;wBACF,QAAQ;wBACR,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS;4BAC9B,UAAU,CAAC,QAAQ,CAAC;4BACpB,QAAQ,CAAC;aACxB;YACD,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;;;;;YAAC,UAAC,CAAC,EAAE,CAAC;gBACrC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,OAAO,CAAC,CAAC;aACZ,GAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACpB;;;;;;;QAEO,yCAAe;;;;;;QAAvB,UAAwB,QAAgB,EAAE,UAA0B;YAChE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;;gBAEtC,kBAAkB;;gBAClB,SAAS;YACb,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;oBAC3F,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,IAAI,EAAE;;oBAC5D,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,kBAAkB,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE;;oBACzE,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;;oBACtD,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;;oBAC9D,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC;;oBAEhE,iBAAiB,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;gBAEhD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;;;wBAI1B,QAAQ,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBAEjD,OAAO,QAAQ;wBACX,kBAAkB;wBAClB,mBAAmB,CAAC;iBAE3B;qBAAM,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;;;wBAIjC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,YAAY,KAAK,CAAC;;wBAChG,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,YAAY,KAAK,CAAC;;wBAC5F,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,CAAC;oBAE/C,QAAQ,kBAAkB;wBACtB,KAAK,IAAI;4BACL,OAAO,aAAa,KAAK,SAAS;gCAC9B,kBAAkB;gCAClB,mBAAmB,CAAC;wBAC5B,KAAK,GAAG;4BACJ,OAAO,aAAa,GAAG,SAAS;gCAC5B,kBAAkB;gCAClB,mBAAmB,CAAC;wBAC5B,KAAK,IAAI;4BACL,OAAO,aAAa,IAAI,SAAS;gCAC7B,kBAAkB;gCAClB,mBAAmB,CAAC;wBAC5B,KAAK,GAAG;4BACJ,OAAO,aAAa,GAAG,SAAS;gCAC5B,kBAAkB;gCAClB,mBAAmB,CAAC;wBAC5B,KAAK,IAAI;4BACL,OAAO,aAAa,IAAI,SAAS;gCAC7B,kBAAkB;gCAClB,mBAAmB,CAAC;wBAC5B;4BACI,MAAM,IAAI,WAAW,CAAC,iDAA+C,QAAU,EAAE,QAAQ,CAAC,CAAC;qBAClG;iBAEJ;qBAAM;oBACH,MAAM,IAAI,WAAW,CAAC,sCAAoC,QAAU,EAAE,QAAQ,CAAC,CAAC;iBACnF;aACJ;iBAAM;gBACH,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC3B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;aAC/B;SACJ;;;;;;;QAED,iCAAO;;;;;;QAAP,UAAQ,cAAsB,EAAE,UAAkB,EAAE,OAAwB;;gBAElE,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC;;gBACzD,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC;;gBAE/D,mBAAmB,GAAG,EAAE;YAE5B,IAAI,CAAC,OAAO,EAAE;gBACV,OAAO,GAAG,eAAe,CAAC,oBAAoB,CAAC;aAClD;YAED,IAAI,CAAC,SAAS,EAAE;gBACZ,mBAAmB,IAAI,cAAc,CAAC;aACzC;iBAAM;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnC,mBAAmB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1B,SAAS;qBACZ;oBACD,IAAI;wBACA,mBAAmB,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;qBACzE;oBAAC,OAAO,CAAC,EAAE;wBACR,mBAAmB,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;qBACrC;iBACJ;aACJ;YAED,OAAO,mBAAmB,CAAC;SAE9B;QAxHc,0BAAU,GAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,2BAAW,GAAG,IAAI,MAAM,CAAI,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,aAAQ,eAAe,CAAC,UAAU,CAAC,CAAC,CAAG,EAAE,IAAI,CAAC,CAAC;QAExG,oCAAoB;;;;QAAmB,UAAC,CAAc;YACjE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC,QAAQ,CAAC;SACrB,EAAA;QAoHL,sBAAC;KA9HD,IA8HC;;;;;;QA1HG,2BAAmD;;;;;QACnD,4BAAuH;;;;;QAEvH,qCAGC;;;;;;;;AC5CL;QAWA;SAwBC;;;;;;;QAlBQ,yBAAO;;;;;;QAAd,UAAe,OAA8B,EAAE,MAAqB,EAAE,OAAmB;YACvF,OAAO;gBACH,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE;oBACP,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAE,cAAc,EAAE,MAAM,EAAE,SAAS,CAAE,EAAE;oBAClG,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,IAAI,kBAAkB,EAAE;oBACpE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,eAAe,EAAE;oBACxD,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,IAAI,gBAAgB,EAAE;iBAChE;aACJ,CAAC;SACH;;;;QAEM,0BAAQ;;;QAAf;YACE,OAAO;gBACH,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE,EAAE;aAChB,CAAC;SACH;;oBAvBFC,aAAQ,SAAC;wBACR,YAAY,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;wBAC3C,OAAO,EAAE,CAACC,qBAAgB,CAAC;wBAC3B,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;qBACvC;;QAoBD,wBAAC;KAxBD;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common/http")):"function"==typeof define&&define.amd?define("ngx-ode-sijil",["exports","@angular/core","@angular/common/http"],t):t((e=e||self)["ngx-ode-sijil"]={},e.ng.core,e.ng.common.http)}(this,(function(e,t,n){"use strict";
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
5
|
-
this file except in compliance with the License. You may obtain a copy of the
|
|
6
|
-
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
|
|
8
|
-
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
9
|
-
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
10
|
-
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
11
|
-
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
12
|
-
|
|
13
|
-
See the Apache Version 2.0 License for specific language governing permissions
|
|
14
|
-
and limitations under the License.
|
|
15
|
-
***************************************************************************** */var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};var a=function(){function e(e,t,n){this.requireService=e,this.parser=t,this.bundles={},this.defaultLanguage=n.defaultLanguage,this.defaultLanguage||"undefined"==typeof window||(this.defaultLanguage=window.navigator.language.split("-")[0]),this.currentLanguage=this.defaultLanguage}return e.prototype.addToBundle=function(e,t){var n=t||this.currentLanguage||this.defaultLanguage||"en";this.bundles[n]||(this.bundles[n]={}),this.bundles[n]=Object.assign({},this.bundles[n],e),this.currentLanguage||(this.currentLanguage=t)},e.prototype.loadBundle=function(e,t){var n=this;return this.requireService.load(e).then((function(e){n.addToBundle(e,t)}))},e.prototype.loadBundles=function(e){var t=this;return Promise.all(e.map((function(e){return t.loadBundle(e.where,e.lang)})))},e.prototype.unloadBundle=function(e){delete this.bundles[e]},e.prototype.getLoadedLanguages=function(){return Object.keys(this.bundles)},e.prototype.translate=function(e,t,n){var r=n||this.currentLanguage,a=this.bundles[r]&&this.bundles[r][e]||this.defaultLanguage&&this.bundles[this.defaultLanguage]&&this.bundles[this.defaultLanguage][e]||e;return a!==e&&t?this.parser.compile(a,t,(function(t){return console.error(t),e})):a},e}();var i=function(){function e(e){this.bundlesService=e}return e.prototype.refreshTranslation=function(){var e=this.bundlesService.translate(this.value,this.parameters,this.fixedLanguage);this.displayedValue!==e&&(this.displayedValue=e,this.wrapperRef.nativeElement.innerHTML=this.displayedValue)},e.prototype.ngAfterViewInit=function(){this.value=this.wrapperRef.nativeElement.innerHTML.trim(),this.loaded=!0,this.refreshTranslation()},e.prototype.ngDoCheck=function(){this.loaded&&this.refreshTranslation()},e.decorators=[{type:t.Component,args:[{selector:"s5l",template:"\n <span #wrapper>\n <ng-content></ng-content>\n </span>",changeDetection:t.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:a}]},e.propDecorators={wrapperRef:[{type:t.ViewChild,args:["wrapper",{static:!1}]}],parameters:[{type:t.Input,args:["s5l-params"]}],fixedLanguage:[{type:t.Input,args:["s5l-lang"]}]},e}();var o=function(){function e(e){this.bundlesService=e}return e.prototype.transform=function(e,t,n){return this.bundlesService.translate(e,t,n)},e.decorators=[{type:t.Pipe,args:[{name:"translate",pure:!1}]}],e.ctorParameters=function(){return[{type:a}]},e}();var s=function(){};var u=function(e){function t(t,n){var r=e.call(this,t)||this;return r.message=t,r.fragment=n,r}return function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(t,e),t}(Error);var l=function(){};var c=function(){};var p={defaultLanguage:window?window.navigator.language.split("-")[0]:void 0},d=function(){function e(e){this.httpClient=e}return e.prototype.load=function(e){return this.httpClient.get(e).toPromise().then((function(e){return e}))},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:n.HttpClient}]},e}();var f=function(){function e(){}return e.prototype.getParameter=function(e,t,n){return 1===t.split(/\s+/).length?"$"===t[0]?e[t.substr(1)]:n?t:void 0!==e[t]?e[t]:t:t.split(/\s+/).reduce((function(t,n){return t.push("$"===n[0]?e[n.substr(1)]:n),t}),[]).join(" ")},e.prototype.compileFragment=function(e,t){var n,r;if(!((n=(e=e.replace(/{{|}}/g,"")).indexOf("?"))>0&&(r=e.lastIndexOf(":"))>1))return t[e=e.trim()];var a=e.substring(0,n).trim(),i=e.substring(n+1,r).trim(),o=e.substring(r+1).trim(),s=this.getParameter(t,i),l=this.getParameter(t,o),c=a.split(/\s+/);if(1===c.length)return t[c[0]]?s:l;if(3!==c.length)throw new u("Invalid condition for fragment : "+e,e);var p=this.getParameter(t,c[0],t instanceof Array),d=this.getParameter(t,c[2],t instanceof Array);switch(c[1]){case"==":return p===d?s:l;case">":return p>d?s:l;case">=":return p>=d?s:l;case"<":return p<d?s:l;case"<=":return p<=d?s:l;default:throw new u("Invalid conditional operator for fragment : "+e,e)}},e.prototype.compile=function(t,n,r){var a=t.split(e.delimRegexp),i=t.match(e.delimRegexp),o="";if(r||(r=e.defaultErrorCallback),i){for(var s=0;s<a.length;s++)if(o+=a[s],!(s>i.length-1))try{o+=this.compileFragment(i[s],n)}catch(e){o+=r(e)}}else o+=t;return o},e.delimiters=["{{","}}"],e.delimRegexp=new RegExp(e.delimiters[0]+"[^}]+"+e.delimiters[1],"gm"),e.defaultErrorCallback=function(e){return console.error(e),e.fragment},e}();var g=function(){function e(){}return e.forRoot=function(t,n,r){return{ngModule:e,providers:[{provide:a,useClass:a,deps:[s,l,c]},{provide:s,useClass:t||d},{provide:l,useClass:n||f},{provide:c,useValue:r||p}]}},e.forChild=function(){return{ngModule:e,providers:[]}},e.decorators=[{type:t.NgModule,args:[{declarations:[i,o],imports:[n.HttpClientModule],exports:[i,o]}]}],e}();e.BundlesService=a,e.NgxOdeSijilModule=g,e.S5lComponent=i,e.TranslatePipe=o,e.ɵa=s,e.ɵb=l,e.ɵc=c,e.ɵd=p,e.ɵe=d,e.ɵf=f,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
|
-
//# sourceMappingURL=ngx-ode-sijil.umd.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","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"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","BundlesService","requireService","parser","sijilOpts","this","bundles","defaultLanguage","window","navigator","language","split","currentLanguage","prototype","addToBundle","bundle","lang","targetLanguage","assign","loadBundle","where","_this","load","then","loadBundles","specs","Promise","all","map","spec","unloadBundle","getLoadedLanguages","keys","translate","key","parameters","rawTranslation","compile","e","console","error","S5lComponent","bundlesService","refreshTranslation","newDisplayedValue","value","fixedLanguage","displayedValue","wrapperRef","nativeElement","innerHTML","ngAfterViewInit","trim","loaded","ngDoCheck","Component","args","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","ViewChild","static","Input","TranslatePipe","transform","Pipe","name","pure","ParserError","_super","message","fragment","call","__","constructor","create","tslib_1.__extends","Error","defaultSijilOpts","undefined","HttpRequireService","httpClient","url","get","toPromise","data","Injectable","HttpClient","FragmentsParser","getParameter","strict","length","substr","reduce","l","r","push","join","compileFragment","interrogationIndex","dotsIndex","replace","indexOf","lastIndexOf","condition","substring","trueReturn","falseReturn","computedTrueReturn","computedFalseReturn","splittedCondition","leftHandParam","rightHand","onError","parts","delimRegexp","fragments","match","compiledTranslation","defaultErrorCallback","i","delimiters","RegExp","NgxOdeSijilModule","forRoot","require","options","ngModule","providers","provide","useClass","deps","RequireService","Parser","SijilOpts","useValue","forChild","NgModule","declarations","imports","HttpClientModule","exports"],"mappings":";;;;;;;;;;;;;;oFAgBA,IAAIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,KAAIN,EAAEM,GAAKL,EAAEK,MACpDN,EAAGC,ICR5B,iBAEI,SAAAO,EAAoBC,EAAwCC,EAAgBC,GAAxDC,KAAAH,eAAAA,EAAwCG,KAAAF,OAAAA,EAQpDE,KAAAC,QAAkB,GAPtBD,KAAKE,gBAAkBH,EAAUG,gBAC7BF,KAAKE,iBAAqC,oBAAXC,SAC/BH,KAAKE,gBAAkBC,OAAOC,UAAUC,SAASC,MAAM,KAAK,IAEhEN,KAAKO,gBAAkBP,KAAKE,gBAkGpC,OA/EIN,EAAAY,UAAAC,YAAA,SAAYC,EAAgBC,OAClBC,EAAiBD,GAAQX,KAAKO,iBAAmBP,KAAKE,iBAAmB,KAE3EF,KAAKC,QAAQW,KACbZ,KAAKC,QAAQW,GAAkB,IAGnCZ,KAAKC,QAAQW,GAAkBtB,OAAOuB,OAAO,GAAIb,KAAKC,QAAQW,GAAiBF,GAE3EV,KAAKO,kBACLP,KAAKO,gBAAkBI,IAY/Bf,EAAAY,UAAAM,WAAA,SAAWC,EAAOJ,GAAlB,IAAAK,EAAAhB,KACI,OAAOA,KAAKH,eAAeoB,KAAKF,GAC3BG,MAAI,SAACR,GACFM,EAAKP,YAAYC,EAAQC,OAQrCf,EAAAY,UAAAW,YAAA,SAAYC,GAAZ,IAAAJ,EAAAhB,KACI,OAAOqB,QAAQC,IAAIF,EAAMG,KAAG,SAAEC,GAC1B,OAAOR,EAAKF,WAAWU,EAAKT,MAAOS,EAAKb,WAShDf,EAAAY,UAAAiB,aAAA,SAAad,UACFX,KAAKC,QAAQU,IAMxBf,EAAAY,UAAAkB,mBAAA,WACI,OAAOpC,OAAOqC,KAAK3B,KAAKC,UAW5BL,EAAAY,UAAAoB,UAAA,SAAUC,EAAaC,EAA6BnB,OAC1CC,EAAiBD,GAAQX,KAAKO,gBAE9BwB,EAA0B/B,KAAKC,QAAQW,IACzCZ,KAAKC,QAAQW,GAAgBiB,IAC7B7B,KAAKE,iBACLF,KAAKC,QAAQD,KAAKE,kBAClBF,KAAKC,QAAQD,KAAKE,iBAAiB2B,IACnCA,EAEJ,OAAGE,IAAmBF,GAAOC,EAClB9B,KAAKF,OAAOkC,QAAQD,EAAgBD,GAAU,SAAGG,GAA0B,OAAlBC,QAAQC,MAAMF,GAAWJ,KAElFE,GAGnBnC,KCrHA,IAAAwC,EAAA,WAaI,SAAAA,EAAoBC,GAAArC,KAAAqC,eAAAA,EA+BxB,OApBYD,EAAA5B,UAAA8B,mBAAR,eACUC,EAAoBvC,KAAKqC,eAAeT,UAAU5B,KAAKwC,MAAOxC,KAAK8B,WAAY9B,KAAKyC,eACtFzC,KAAK0C,iBAAmBH,IACxBvC,KAAK0C,eAAiBH,EACtBvC,KAAK2C,WAAWC,cAAcC,UAAY7C,KAAK0C,iBAIvDN,EAAA5B,UAAAsC,gBAAA,WACI9C,KAAKwC,MAAQxC,KAAK2C,WAAWC,cAAcC,UAAUE,OACrD/C,KAAKgD,QAAS,EACdhD,KAAKsC,sBAGTF,EAAA5B,UAAAyC,UAAA,WACSjD,KAAKgD,QAGVhD,KAAKsC,0CAvCZY,EAAAA,UAASC,KAAA,CAAC,CACPC,SAAU,MACVC,SAAU,wEAIVC,gBAAiBC,EAAAA,wBAAwBC,oDARpC5D,yCAcJ6D,EAAAA,UAASN,KAAA,CAAC,UAAW,CAAEO,QAAQ,wBAM/BC,EAAAA,MAAKR,KAAA,CAAC,qCACNQ,EAAAA,MAAKR,KAAA,CAAC,eAsBXf,EA5CA,GCAA,IAAAwB,EAAA,WAMI,SAAAA,EAAoBvB,GAAArC,KAAAqC,eAAAA,EAMxB,OAJIuB,EAAApD,UAAAqD,UAAA,SAAUhC,EAAaC,EAA6BnB,GAChD,OAAOX,KAAKqC,eAAeT,UAAUC,EAAKC,EAAYnB,wBAN7DmD,EAAAA,KAAIX,KAAA,CAAC,CAACY,KAAM,YAAaC,MAAM,+CAHvBpE,KAYTgE,EAZA,GCKA,MAAA,aCLA,IAAAK,EAAA,SAAAC,GACI,SAAAD,EAAmBE,EAAwBC,GAA3C,IAAApD,EACIkD,EAAAG,KAAArE,KAAMmE,IAAQnE,YADCgB,EAAAmD,QAAAA,EAAwBnD,EAAAoD,SAAAA,IAG/C,OLmBO,SAAmBhF,EAAGC,GAEzB,SAASiF,IAAOtE,KAAKuE,YAAcnF,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEoB,UAAkB,OAANnB,EAAaC,OAAOkF,OAAOnF,IAAMiF,EAAG9D,UAAYnB,EAAEmB,UAAW,IAAI8D,GK1BlDG,CAAAA,EAAAA,GAIjCR,EAJA,CAAiCS,OAYjC,MAAA,aCPA,MAAA,aAKA,IAAWC,EAA+B,CACtCzE,gBAAiBC,OAASA,OAAOC,UAAUC,SAASC,MAAM,KAAK,QAAKsE,GCFxEC,EAAA,WAGI,SAAAA,EAAoBC,GAAA9E,KAAA8E,WAAAA,EAOxB,OALID,EAAArE,UAAAS,KAAA,SAAK8D,GACD,OAAO/E,KAAK8E,WAAWE,IAAID,GAAKE,YAC3B/D,MAAI,SAACgE,GAAQ,OAAAA,0BAPzBC,EAAAA,sDAPQC,EAAAA,cAiBTP,EAVA,GCyBA,IAAAQ,EAAA,WAEI,SAAAA,KA4HJ,OAlHYA,EAAA7E,UAAA8E,aAAR,SAAqBxD,EAA4BsC,EAAkBmB,GAE/D,OAA2B,IADNnB,EAAS9D,MAAM,OACpBkF,OACW,MAAhBpB,EAAS,GACZtC,EAAWsC,EAASqB,OAAO,IAC3BF,EACInB,OACyBQ,IAAzB9C,EAAWsC,GACPtC,EAAWsC,GACXA,EAETA,EAAS9D,MAAM,OAAOoF,QAAM,SAAEC,EAAGC,GAEpC,OADAD,EAAEE,KAAc,MAATD,EAAE,GAAa9D,EAAW8D,EAAEH,OAAO,IAAMG,GACzCD,IACR,IAAIG,KAAK,MAGRT,EAAA7E,UAAAuF,gBAAR,SAAwB3B,EAAkBtC,OAGlCkE,EACAC,EACJ,MAAKD,GAJL5B,EAAWA,EAAS8B,QAAQ,SAAU,KAIHC,QAAQ,MAAQ,IAAMF,EAAY7B,EAASgC,YAAY,MAAQ,GAyD9F,OAAOtE,EADPsC,EAAWA,EAASrB,YAvDdsD,EAAYjC,EAASkC,UAAU,EAAGN,GAAoBjD,OACtDwD,EAAanC,EAASkC,UAAUN,EAAqB,EAAGC,GAAWlD,OACnEyD,EAAcpC,EAASkC,UAAUL,EAAY,GAAGlD,OAChD0D,EAAqBzG,KAAKsF,aAAaxD,EAAYyE,GACnDG,EAAsB1G,KAAKsF,aAAaxD,EAAY0E,GAEpDG,EAAoBN,EAAU/F,MAAM,OAE1C,GAAiC,IAA7BqG,EAAkBnB,OAMlB,OAFiB1D,EAAW6E,EAAkB,IAG1CF,EACAC,EAED,GAAiC,IAA7BC,EAAkBnB,OAkCzB,MAAM,IAAIvB,EAAY,oCAAoCG,EAAYA,OA9BhEwC,EAAgB5G,KAAKsF,aAAaxD,EAAY6E,EAAkB,GAAI7E,aAAsBrC,OAC1FoH,EAAY7G,KAAKsF,aAAaxD,EAAY6E,EAAkB,GAAI7E,aAAsBrC,OAG5F,OAF2BkH,EAAkB,IAGzC,IAAK,KACD,OAAOC,IAAkBC,EACrBJ,EACAC,EACR,IAAK,IACD,OAAOE,EAAgBC,EACnBJ,EACAC,EACR,IAAK,KACD,OAAOE,GAAiBC,EACpBJ,EACAC,EACR,IAAK,IACD,OAAOE,EAAgBC,EACnBJ,EACAC,EACR,IAAK,KACD,OAAOE,GAAiBC,EACpBJ,EACAC,EACR,QACI,MAAM,IAAIzC,EAAY,+CAA+CG,EAAYA,KAYrGiB,EAAA7E,UAAAwB,QAAA,SAAQD,EAAwBD,EAAoBgF,OAE1CC,EAAQhF,EAAezB,MAAM+E,EAAgB2B,aAC7CC,EAAYlF,EAAemF,MAAM7B,EAAgB2B,aAEnDG,EAAsB,GAM1B,GAJKL,IACDA,EAAUzB,EAAgB+B,sBAGzBH,GAGD,IAAK,IAAII,EAAI,EAAGA,EAAIN,EAAMvB,OAAQ6B,IAE9B,GADAF,GAAuBJ,EAAMM,KACzBA,EAAIJ,EAAUzB,OAAS,GAG3B,IACI2B,GAAuBnH,KAAK+F,gBAAgBkB,EAAUI,GAAIvF,GAC5D,MAAOG,GACLkF,GAAuBL,EAAQ7E,SAVvCkF,GAAuBpF,EAe3B,OAAOoF,GAtHI9B,EAAAiC,WAAuB,CAAC,KAAM,MAC9BjC,EAAA2B,YAAc,IAAIO,OAAUlC,EAAgBiC,WAAW,GAAE,QAAQjC,EAAgBiC,WAAW,GAAM,MAElGjC,EAAA+B,qBAAoB,SAAoBnF,GAEnD,OADAC,QAAQC,MAAMF,GACPA,EAAEmC,UAqHjBiB,EA9HA,GClCA,IAAAmC,EAAA,WAWA,SAAAA,KAwBA,OAlBSA,EAAAC,QAAP,SAAeC,EAAgC5H,EAAuB6H,GACpE,MAAO,CACHC,SAAUJ,EACVK,UAAW,CACP,CAAEC,QAASlI,EAAgBmI,SAAUnI,EAAgBoI,KAAM,CAAEC,EAAgBC,EAAQC,IACrF,CAAEL,QAASG,EAAgBF,SAAUL,GAAW7C,GAChD,CAAEiD,QAASI,EAAQH,SAAUjI,GAAUuF,GACvC,CAAEyC,QAASK,EAAWC,SAAUT,GAAWhD,MAK9C6C,EAAAa,SAAP,WACE,MAAO,CACHT,SAAUJ,EACVK,UAAW,yBArBlBS,EAAAA,SAAQnF,KAAA,CAAC,CACRoF,aAAc,CAACnG,EAAcwB,GAC7B4E,QAAS,CAACC,EAAAA,kBACVC,QAAS,CAACtG,EAAcwB,OAqB1B4D,EAnCA","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","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"]}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/components/s5l.component.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Component, Input, ElementRef, ViewChild, ChangeDetectionStrategy } from '@angular/core';
|
|
7
|
-
import { BundlesService } from '../services/bundles.service';
|
|
8
|
-
export class S5lComponent {
|
|
9
|
-
/**
|
|
10
|
-
* @param {?} bundlesService
|
|
11
|
-
*/
|
|
12
|
-
constructor(bundlesService) {
|
|
13
|
-
this.bundlesService = bundlesService;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* @private
|
|
17
|
-
* @return {?}
|
|
18
|
-
*/
|
|
19
|
-
refreshTranslation() {
|
|
20
|
-
/** @type {?} */
|
|
21
|
-
const newDisplayedValue = this.bundlesService.translate(this.value, this.parameters, this.fixedLanguage);
|
|
22
|
-
if (this.displayedValue !== newDisplayedValue) {
|
|
23
|
-
this.displayedValue = newDisplayedValue;
|
|
24
|
-
this.wrapperRef.nativeElement.innerHTML = this.displayedValue;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* @return {?}
|
|
29
|
-
*/
|
|
30
|
-
ngAfterViewInit() {
|
|
31
|
-
this.value = this.wrapperRef.nativeElement.innerHTML.trim();
|
|
32
|
-
this.loaded = true;
|
|
33
|
-
this.refreshTranslation();
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* @return {?}
|
|
37
|
-
*/
|
|
38
|
-
ngDoCheck() {
|
|
39
|
-
if (!this.loaded) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
this.refreshTranslation();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
S5lComponent.decorators = [
|
|
46
|
-
{ type: Component, args: [{
|
|
47
|
-
selector: 's5l',
|
|
48
|
-
template: `
|
|
49
|
-
<span #wrapper>
|
|
50
|
-
<ng-content></ng-content>
|
|
51
|
-
</span>`,
|
|
52
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
53
|
-
}] }
|
|
54
|
-
];
|
|
55
|
-
/** @nocollapse */
|
|
56
|
-
S5lComponent.ctorParameters = () => [
|
|
57
|
-
{ type: BundlesService }
|
|
58
|
-
];
|
|
59
|
-
S5lComponent.propDecorators = {
|
|
60
|
-
wrapperRef: [{ type: ViewChild, args: ['wrapper', { static: false },] }],
|
|
61
|
-
parameters: [{ type: Input, args: ["s5l-params",] }],
|
|
62
|
-
fixedLanguage: [{ type: Input, args: ["s5l-lang",] }]
|
|
63
|
-
};
|
|
64
|
-
if (false) {
|
|
65
|
-
/** @type {?} */
|
|
66
|
-
S5lComponent.prototype.wrapperRef;
|
|
67
|
-
/**
|
|
68
|
-
* @type {?}
|
|
69
|
-
* @private
|
|
70
|
-
*/
|
|
71
|
-
S5lComponent.prototype.value;
|
|
72
|
-
/**
|
|
73
|
-
* @type {?}
|
|
74
|
-
* @private
|
|
75
|
-
*/
|
|
76
|
-
S5lComponent.prototype.loaded;
|
|
77
|
-
/**
|
|
78
|
-
* @type {?}
|
|
79
|
-
* @private
|
|
80
|
-
*/
|
|
81
|
-
S5lComponent.prototype.displayedValue;
|
|
82
|
-
/** @type {?} */
|
|
83
|
-
S5lComponent.prototype.parameters;
|
|
84
|
-
/** @type {?} */
|
|
85
|
-
S5lComponent.prototype.fixedLanguage;
|
|
86
|
-
/**
|
|
87
|
-
* @type {?}
|
|
88
|
-
* @private
|
|
89
|
-
*/
|
|
90
|
-
S5lComponent.prototype.bundlesService;
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtc2lqaWwvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zNWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBaUIsdUJBQXVCLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBVTdELE1BQU0sT0FBTyxZQUFZOzs7O0lBRXJCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7Ozs7O0lBVzlDLGtCQUFrQjs7Y0FDaEIsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDeEcsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLGlCQUFpQixFQUFFO1lBQzNDLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUM7WUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDakU7SUFDTCxDQUFDOzs7O0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7Ozs7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDOzs7WUF4Q0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRTs7O1lBR0Y7Z0JBQ1IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7Ozs7WUFUUSxjQUFjOzs7eUJBY2xCLFNBQVMsU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3lCQU10QyxLQUFLLFNBQUMsWUFBWTs0QkFDbEIsS0FBSyxTQUFDLFVBQVU7Ozs7SUFQakIsa0NBQWdFOzs7OztJQUVoRSw2QkFBc0I7Ozs7O0lBQ3RCLDhCQUF3Qjs7Ozs7SUFDeEIsc0NBQStCOztJQUUvQixrQ0FBZ0Q7O0lBQ2hELHFDQUF5Qzs7Ozs7SUFUN0Isc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgRG9DaGVjayB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnVuZGxlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9idW5kbGVzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3M1bCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8c3BhbiAjd3JhcHBlcj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFM1bENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIERvQ2hlY2sge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBidW5kbGVzU2VydmljZTogQnVuZGxlc1NlcnZpY2UpIHt9XG5cbiAgICBAVmlld0NoaWxkKCd3cmFwcGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHdyYXBwZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICBwcml2YXRlIHZhbHVlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBsb2FkZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBkaXNwbGF5ZWRWYWx1ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KFwiczVsLXBhcmFtc1wiKSBwYXJhbWV0ZXJzOiBPYmplY3QgfCBhbnlbXTtcbiAgICBASW5wdXQoXCJzNWwtbGFuZ1wiKSBmaXhlZExhbmd1YWdlOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHJlZnJlc2hUcmFuc2xhdGlvbigpIHtcbiAgICAgICAgY29uc3QgbmV3RGlzcGxheWVkVmFsdWUgPSB0aGlzLmJ1bmRsZXNTZXJ2aWNlLnRyYW5zbGF0ZSh0aGlzLnZhbHVlLCB0aGlzLnBhcmFtZXRlcnMsIHRoaXMuZml4ZWRMYW5ndWFnZSlcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheWVkVmFsdWUgIT09IG5ld0Rpc3BsYXllZFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZFZhbHVlID0gbmV3RGlzcGxheWVkVmFsdWU7XG4gICAgICAgICAgICB0aGlzLndyYXBwZXJSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmRpc3BsYXllZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy53cmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MLnRyaW0oKTtcbiAgICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlZnJlc2hUcmFuc2xhdGlvbigpO1xuICAgIH1cblxuICAgIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmxvYWRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVmcmVzaFRyYW5zbGF0aW9uKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/ngx-ode-sijil.module.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { NgModule } from '@angular/core';
|
|
7
|
-
import { S5lComponent } from './components/s5l.component';
|
|
8
|
-
import { TranslatePipe } from './pipes/translate.pipe';
|
|
9
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
10
|
-
import { RequireService } from './services/require/require.interface';
|
|
11
|
-
import { Parser } from './services/parser/parser.interface';
|
|
12
|
-
import { SijilOpts, defaultSijilOpts } from './services/sijil.opts';
|
|
13
|
-
import { BundlesService } from './services/bundles.service';
|
|
14
|
-
import { HttpRequireService } from './services/require/httprequire.service';
|
|
15
|
-
import { FragmentsParser } from './services/parser/fragments.parser';
|
|
16
|
-
export class NgxOdeSijilModule {
|
|
17
|
-
/**
|
|
18
|
-
* @param {?=} require
|
|
19
|
-
* @param {?=} parser
|
|
20
|
-
* @param {?=} options
|
|
21
|
-
* @return {?}
|
|
22
|
-
*/
|
|
23
|
-
static forRoot(require, parser, options) {
|
|
24
|
-
return {
|
|
25
|
-
ngModule: NgxOdeSijilModule,
|
|
26
|
-
providers: [
|
|
27
|
-
{ provide: BundlesService, useClass: BundlesService, deps: [RequireService, Parser, SijilOpts] },
|
|
28
|
-
{ provide: RequireService, useClass: require || HttpRequireService },
|
|
29
|
-
{ provide: Parser, useClass: parser || FragmentsParser },
|
|
30
|
-
{ provide: SijilOpts, useValue: options || defaultSijilOpts }
|
|
31
|
-
]
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* @return {?}
|
|
36
|
-
*/
|
|
37
|
-
static forChild() {
|
|
38
|
-
return {
|
|
39
|
-
ngModule: NgxOdeSijilModule,
|
|
40
|
-
providers: []
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
NgxOdeSijilModule.decorators = [
|
|
45
|
-
{ type: NgModule, args: [{
|
|
46
|
-
declarations: [S5lComponent, TranslatePipe],
|
|
47
|
-
imports: [HttpClientModule],
|
|
48
|
-
exports: [S5lComponent, TranslatePipe]
|
|
49
|
-
},] }
|
|
50
|
-
];
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW9kZS1zaWppbC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXNpamlsLyIsInNvdXJjZXMiOlsibGliL25neC1vZGUtc2lqaWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBT3JFLE1BQU0sT0FBTyxpQkFBaUI7Ozs7Ozs7SUFDNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUE4QixFQUFFLE1BQXFCLEVBQUUsT0FBbUI7UUFDdkYsT0FBTztZQUNILFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNQLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFFLEVBQUU7Z0JBQ2xHLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsT0FBTyxJQUFJLGtCQUFrQixFQUFFO2dCQUNwRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxlQUFlLEVBQUU7Z0JBQ3hELEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxJQUFJLGdCQUFnQixFQUFFO2FBQ2hFO1NBQ0osQ0FBQztJQUNKLENBQUM7Ozs7SUFFRCxNQUFNLENBQUMsUUFBUTtRQUNiLE9BQU87WUFDSCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRSxFQUFFO1NBQ2hCLENBQUM7SUFDSixDQUFDOzs7WUF2QkYsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7Z0JBQzNDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUMzQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO2FBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFM1bENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zNWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBSZXF1aXJlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcmVxdWlyZS9yZXF1aXJlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL3NlcnZpY2VzL3BhcnNlci9wYXJzZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNpamlsT3B0cywgZGVmYXVsdFNpamlsT3B0cyB9IGZyb20gJy4vc2VydmljZXMvc2lqaWwub3B0cyc7XG5pbXBvcnQgeyBCdW5kbGVzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYnVuZGxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEh0dHBSZXF1aXJlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcmVxdWlyZS9odHRwcmVxdWlyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZyYWdtZW50c1BhcnNlciB9IGZyb20gJy4vc2VydmljZXMvcGFyc2VyL2ZyYWdtZW50cy5wYXJzZXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTNWxDb21wb25lbnQsIFRyYW5zbGF0ZVBpcGVdLFxuICBpbXBvcnRzOiBbSHR0cENsaWVudE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTNWxDb21wb25lbnQsIFRyYW5zbGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIE5neE9kZVNpamlsTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QocmVxdWlyZT86IFR5cGU8UmVxdWlyZVNlcnZpY2U+LCBwYXJzZXI/OiBUeXBlPFBhcnNlcj4sIG9wdGlvbnM/OiBTaWppbE9wdHMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBuZ01vZHVsZTogTmd4T2RlU2lqaWxNb2R1bGUsXG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgeyBwcm92aWRlOiBCdW5kbGVzU2VydmljZSwgdXNlQ2xhc3M6IEJ1bmRsZXNTZXJ2aWNlLCBkZXBzOiBbIFJlcXVpcmVTZXJ2aWNlLCBQYXJzZXIsIFNpamlsT3B0cyBdIH0sXG4gICAgICAgICAgICB7IHByb3ZpZGU6IFJlcXVpcmVTZXJ2aWNlLCB1c2VDbGFzczogcmVxdWlyZSB8fCBIdHRwUmVxdWlyZVNlcnZpY2UgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogUGFyc2VyLCB1c2VDbGFzczogcGFyc2VyIHx8IEZyYWdtZW50c1BhcnNlciB9LFxuICAgICAgICAgICAgeyBwcm92aWRlOiBTaWppbE9wdHMsIHVzZVZhbHVlOiBvcHRpb25zIHx8IGRlZmF1bHRTaWppbE9wdHMgfVxuICAgICAgICBdXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JDaGlsZCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBuZ01vZHVsZTogTmd4T2RlU2lqaWxNb2R1bGUsXG4gICAgICAgIHByb3ZpZGVyczogW11cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/pipes/translate.pipe.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { BundlesService } from '../services/bundles.service';
|
|
7
|
-
import { Pipe } from '@angular/core';
|
|
8
|
-
export class TranslatePipe {
|
|
9
|
-
/**
|
|
10
|
-
* @param {?} bundlesService
|
|
11
|
-
*/
|
|
12
|
-
constructor(bundlesService) {
|
|
13
|
-
this.bundlesService = bundlesService;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* @param {?} key
|
|
17
|
-
* @param {?=} parameters
|
|
18
|
-
* @param {?=} lang
|
|
19
|
-
* @return {?}
|
|
20
|
-
*/
|
|
21
|
-
transform(key, parameters, lang) {
|
|
22
|
-
return this.bundlesService.translate(key, parameters, lang);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
TranslatePipe.decorators = [
|
|
26
|
-
{ type: Pipe, args: [{ name: 'translate', pure: false },] }
|
|
27
|
-
];
|
|
28
|
-
/** @nocollapse */
|
|
29
|
-
TranslatePipe.ctorParameters = () => [
|
|
30
|
-
{ type: BundlesService }
|
|
31
|
-
];
|
|
32
|
-
if (false) {
|
|
33
|
-
/**
|
|
34
|
-
* @type {?}
|
|
35
|
-
* @private
|
|
36
|
-
*/
|
|
37
|
-
TranslatePipe.prototype.bundlesService;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXNpamlsLyIsInNvdXJjZXMiOlsibGliL3BpcGVzL3RyYW5zbGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3BELE1BQU0sT0FBTyxhQUFhOzs7O0lBRXRCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7Ozs7Ozs7SUFFdEQsU0FBUyxDQUFDLEdBQVcsRUFBRSxVQUEyQixFQUFFLElBQWE7UUFDN0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7OztZQVBKLElBQUksU0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBQzs7OztZQUg3QixjQUFjOzs7Ozs7O0lBTVAsdUNBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVuZGxlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9idW5kbGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7bmFtZTogJ3RyYW5zbGF0ZScsIHB1cmU6IGZhbHNlfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJ1bmRsZXNTZXJ2aWNlOiBCdW5kbGVzU2VydmljZSkge31cblxuICAgIHRyYW5zZm9ybShrZXk6IHN0cmluZywgcGFyYW1ldGVycz86IG9iamVjdCB8IGFueVtdLCBsYW5nPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVuZGxlc1NlcnZpY2UudHJhbnNsYXRlKGtleSwgcGFyYW1ldGVycywgbGFuZyk7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -1,154 +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
|
-
export class BundlesService {
|
|
15
|
-
/**
|
|
16
|
-
* @param {?} requireService
|
|
17
|
-
* @param {?} parser
|
|
18
|
-
* @param {?} sijilOpts
|
|
19
|
-
*/
|
|
20
|
-
constructor(requireService, parser, sijilOpts) {
|
|
21
|
-
this.requireService = requireService;
|
|
22
|
-
this.parser = parser;
|
|
23
|
-
this.bundles = {};
|
|
24
|
-
this.defaultLanguage = sijilOpts.defaultLanguage;
|
|
25
|
-
if (!this.defaultLanguage && typeof window !== 'undefined') {
|
|
26
|
-
this.defaultLanguage = window.navigator.language.split('-')[0];
|
|
27
|
-
}
|
|
28
|
-
this.currentLanguage = this.defaultLanguage;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Add keys/values to an existing bundle, or create it if missing.
|
|
32
|
-
*
|
|
33
|
-
* @param {?} bundle An object containing translations as key / values.
|
|
34
|
-
* @param {?=} lang The language to map the bundle with, or the current langugage if omitted.
|
|
35
|
-
* @return {?}
|
|
36
|
-
*/
|
|
37
|
-
addToBundle(bundle, lang) {
|
|
38
|
-
/** @type {?} */
|
|
39
|
-
const targetLanguage = lang || this.currentLanguage || this.defaultLanguage || 'en';
|
|
40
|
-
if (!this.bundles[targetLanguage]) {
|
|
41
|
-
this.bundles[targetLanguage] = {};
|
|
42
|
-
}
|
|
43
|
-
this.bundles[targetLanguage] = Object.assign({}, this.bundles[targetLanguage], bundle);
|
|
44
|
-
if (!this.currentLanguage) {
|
|
45
|
-
this.currentLanguage = lang;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Loads a bundle and associates it with a language.
|
|
50
|
-
* If the target language already contains key/values, then we mixin the new bundle and the existing one.
|
|
51
|
-
*
|
|
52
|
-
* @param {?} where The path, or whatever the RequireService needs to fetch the bundle.
|
|
53
|
-
* @param {?=} lang The target language, or the current language if omitted.
|
|
54
|
-
* @return {?} A Promise, because the RequireService can be (is - by default) asynchronous.
|
|
55
|
-
*/
|
|
56
|
-
loadBundle(where, lang) {
|
|
57
|
-
return this.requireService.load(where)
|
|
58
|
-
.then((/**
|
|
59
|
-
* @param {?} bundle
|
|
60
|
-
* @return {?}
|
|
61
|
-
*/
|
|
62
|
-
bundle => {
|
|
63
|
-
this.addToBundle(bundle, lang);
|
|
64
|
-
}));
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Loads multiple bundles and associates then with a language.
|
|
68
|
-
*
|
|
69
|
-
* @see {\@link loadBundle}
|
|
70
|
-
* @param {?} specs
|
|
71
|
-
* @return {?}
|
|
72
|
-
*/
|
|
73
|
-
loadBundles(specs) {
|
|
74
|
-
return Promise.all(specs.map((/**
|
|
75
|
-
* @param {?} spec
|
|
76
|
-
* @return {?}
|
|
77
|
-
*/
|
|
78
|
-
(spec) => {
|
|
79
|
-
return this.loadBundle(spec.where, spec.lang);
|
|
80
|
-
})));
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Removes a bundle from the bundles list.
|
|
84
|
-
*
|
|
85
|
-
* @param {?} lang Language to remove.
|
|
86
|
-
* @return {?}
|
|
87
|
-
*/
|
|
88
|
-
unloadBundle(lang) {
|
|
89
|
-
delete this.bundles[lang];
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* @return {?} Returns a list of all loaded languages.
|
|
93
|
-
*/
|
|
94
|
-
getLoadedLanguages() {
|
|
95
|
-
return Object.keys(this.bundles);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Translates a single key into a target language, using the parameters provided if needed.
|
|
99
|
-
*
|
|
100
|
-
* @param {?} key Key to translate
|
|
101
|
-
* @param {?=} parameters Parameters to use if the translation contains logic.
|
|
102
|
-
* @param {?=} lang Target language, of the current language if omitted.
|
|
103
|
-
* @return {?} The computed translation, or the key if no match was found in the bundles (including the fallback language bundle).
|
|
104
|
-
*/
|
|
105
|
-
translate(key, parameters, lang) {
|
|
106
|
-
/** @type {?} */
|
|
107
|
-
const targetLanguage = lang || this.currentLanguage;
|
|
108
|
-
/** @type {?} */
|
|
109
|
-
const rawTranslation = this.bundles[targetLanguage] &&
|
|
110
|
-
this.bundles[targetLanguage][key] ||
|
|
111
|
-
this.defaultLanguage &&
|
|
112
|
-
this.bundles[this.defaultLanguage] &&
|
|
113
|
-
this.bundles[this.defaultLanguage][key] ||
|
|
114
|
-
key;
|
|
115
|
-
if (rawTranslation !== key && parameters) {
|
|
116
|
-
return this.parser.compile(rawTranslation, parameters, (/**
|
|
117
|
-
* @param {?} e
|
|
118
|
-
* @return {?}
|
|
119
|
-
*/
|
|
120
|
-
(e) => { console.error(e); return key; }));
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
return rawTranslation;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if (false) {
|
|
128
|
-
/**
|
|
129
|
-
* @type {?}
|
|
130
|
-
* @private
|
|
131
|
-
*/
|
|
132
|
-
BundlesService.prototype.bundles;
|
|
133
|
-
/**
|
|
134
|
-
* Fallback language.
|
|
135
|
-
* @type {?}
|
|
136
|
-
*/
|
|
137
|
-
BundlesService.prototype.defaultLanguage;
|
|
138
|
-
/**
|
|
139
|
-
* Current language.
|
|
140
|
-
* @type {?}
|
|
141
|
-
*/
|
|
142
|
-
BundlesService.prototype.currentLanguage;
|
|
143
|
-
/**
|
|
144
|
-
* @type {?}
|
|
145
|
-
* @private
|
|
146
|
-
*/
|
|
147
|
-
BundlesService.prototype.requireService;
|
|
148
|
-
/**
|
|
149
|
-
* @type {?}
|
|
150
|
-
* @private
|
|
151
|
-
*/
|
|
152
|
-
BundlesService.prototype.parser;
|
|
153
|
-
}
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW9kZS1zaWppbC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9idW5kbGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQVlBLE1BQU0sT0FBTyxjQUFjOzs7Ozs7SUFFdkIsWUFBb0IsY0FBOEIsRUFBVSxNQUFjLEVBQUUsU0FBb0I7UUFBNUUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVFsRSxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBUHpCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FBQztRQUNqRCxJQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEU7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEQsQ0FBQzs7Ozs7Ozs7SUFrQkQsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFhOztjQUMvQixjQUFjLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJO1FBRW5GLElBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXZGLElBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1NBQy9CO0lBQ0wsQ0FBQzs7Ozs7Ozs7O0lBVUQsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ2pDLElBQUk7Ozs7UUFBQyxNQUFNLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUMsRUFBQyxDQUFBO0lBQ1YsQ0FBQzs7Ozs7Ozs7SUFNRCxXQUFXLENBQUMsS0FBcUM7UUFDN0MsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHOzs7O1FBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxFQUFDLENBQUMsQ0FBQTtJQUNQLENBQUM7Ozs7Ozs7SUFPRCxZQUFZLENBQUMsSUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7OztJQUtELGtCQUFrQjtRQUNkLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7Ozs7Ozs7O0lBVUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxVQUEyQixFQUFFLElBQWE7O2NBQ3ZELGNBQWMsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWU7O2NBRTdDLGNBQWMsR0FBWSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNqQyxJQUFJLENBQUMsZUFBZTtnQkFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDdkMsR0FBRztRQUVQLElBQUcsY0FBYyxLQUFLLEdBQUcsSUFBSSxVQUFVLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVTs7OztZQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztTQUNwRzthQUFNO1lBQ0gsT0FBTyxjQUFjLENBQUM7U0FDekI7SUFDTCxDQUFDO0NBQ0o7Ozs7OztJQS9GRyxpQ0FBNkI7Ozs7O0lBSTdCLHlDQUF3Qjs7Ozs7SUFJeEIseUNBQXdCOzs7OztJQWhCWix3Q0FBc0M7Ozs7O0lBQUUsZ0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVxdWlyZVNlcnZpY2UgfSBmcm9tICcuL3JlcXVpcmUvcmVxdWlyZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi9wYXJzZXIvcGFyc2VyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTaWppbE9wdHMgfSBmcm9tICcuL3NpamlsLm9wdHMnO1xuXG4vKipcbiAqIERlZmluZXMgYSBCdW5kbGVzU2VydmljZSwgd2hpY2UgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIFNpamlsIG9wZXJhdGlvbnMuXG4gKlxuICogQSBCdW5kbGVzU2VydmljZXMgaGFzIHRocmVlIGRlcGVuZGVuY2llcyA6XG4gKiAtIFJlcXVpcmVTZXJ2aWNlIDogVXNlZCB0byBmZXRjaCBidW5kbGVzXG4gKiAtIFBhcnNlciA6IFVzZWQgdG8gcGFyc2UgbG9naWMgaW5zaWRlIGJ1bmRsZSB2YWx1ZXNcbiAqIC0gU2lqaWxPcHRzIDogQW4gb2JqZWN0IGNvbnRhaW5pbmcgY3VzdG9tIHNldHRpbmdzXG4gKi9cbmV4cG9ydCBjbGFzcyBCdW5kbGVzU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcXVpcmVTZXJ2aWNlOiBSZXF1aXJlU2VydmljZSwgcHJpdmF0ZSBwYXJzZXI6IFBhcnNlciwgc2lqaWxPcHRzOiBTaWppbE9wdHMpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0TGFuZ3VhZ2UgPSBzaWppbE9wdHMuZGVmYXVsdExhbmd1YWdlO1xuICAgICAgICBpZighdGhpcy5kZWZhdWx0TGFuZ3VhZ2UgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExhbmd1YWdlID0gd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlID0gdGhpcy5kZWZhdWx0TGFuZ3VhZ2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidW5kbGVzOiBPYmplY3QgPSB7fTtcbiAgICAvKipcbiAgICAgKiBGYWxsYmFjayBsYW5ndWFnZS5cbiAgICAgKi9cbiAgICBkZWZhdWx0TGFuZ3VhZ2U6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGxhbmd1YWdlLlxuICAgICAqL1xuICAgIGN1cnJlbnRMYW5ndWFnZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQWRkIGtleXMvdmFsdWVzIHRvIGFuIGV4aXN0aW5nIGJ1bmRsZSwgb3IgY3JlYXRlIGl0IGlmIG1pc3NpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYnVuZGxlIEFuIG9iamVjdCBjb250YWluaW5nIHRyYW5zbGF0aW9ucyBhcyBrZXkgLyB2YWx1ZXMuXG4gICAgICogQHBhcmFtIGxhbmcgVGhlIGxhbmd1YWdlIHRvIG1hcCB0aGUgYnVuZGxlIHdpdGgsIG9yIHRoZSBjdXJyZW50IGxhbmd1Z2FnZSBpZiBvbWl0dGVkLlxuICAgICAqL1xuICAgIGFkZFRvQnVuZGxlKGJ1bmRsZTogT2JqZWN0LCBsYW5nPzogc3RyaW5nKSA6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXRMYW5ndWFnZSA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgfHwgdGhpcy5kZWZhdWx0TGFuZ3VhZ2UgfHwgJ2VuJztcblxuICAgICAgICBpZighdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXSkge1xuICAgICAgICAgICAgdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXSA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuYnVuZGxlc1t0YXJnZXRMYW5ndWFnZV0sIGJ1bmRsZSk7XG5cbiAgICAgICAgaWYoIXRoaXMuY3VycmVudExhbmd1YWdlKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IGxhbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyBhIGJ1bmRsZSBhbmQgYXNzb2NpYXRlcyBpdCB3aXRoIGEgbGFuZ3VhZ2UuXG4gICAgICogSWYgdGhlIHRhcmdldCBsYW5ndWFnZSBhbHJlYWR5IGNvbnRhaW5zIGtleS92YWx1ZXMsIHRoZW4gd2UgbWl4aW4gdGhlIG5ldyBidW5kbGUgYW5kIHRoZSBleGlzdGluZyBvbmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2hlcmUgVGhlIHBhdGgsIG9yIHdoYXRldmVyIHRoZSBSZXF1aXJlU2VydmljZSBuZWVkcyB0byBmZXRjaCB0aGUgYnVuZGxlLlxuICAgICAqIEBwYXJhbSBsYW5nIFRoZSB0YXJnZXQgbGFuZ3VhZ2UsIG9yIHRoZSBjdXJyZW50IGxhbmd1YWdlIGlmIG9taXR0ZWQuXG4gICAgICogQHJldHVybnMgQSBQcm9taXNlLCBiZWNhdXNlIHRoZSBSZXF1aXJlU2VydmljZSBjYW4gYmUgKGlzIC0gYnkgZGVmYXVsdCkgYXN5bmNocm9ub3VzLlxuICAgICAqL1xuICAgIGxvYWRCdW5kbGUod2hlcmUsIGxhbmc/OiBzdHJpbmcpIDogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVTZXJ2aWNlLmxvYWQod2hlcmUpXG4gICAgICAgICAgICAudGhlbihidW5kbGUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkVG9CdW5kbGUoYnVuZGxlLCBsYW5nKTtcbiAgICAgICAgICAgIH0pXG4gICAgfVxuICAgIC8qKlxuICAgICAqIExvYWRzIG11bHRpcGxlIGJ1bmRsZXMgYW5kIGFzc29jaWF0ZXMgdGhlbiB3aXRoIGEgbGFuZ3VhZ2UuXG4gICAgICpcbiAgICAgKiBAc2VlIHtAbGluayBsb2FkQnVuZGxlfVxuICAgICAqL1xuICAgIGxvYWRCdW5kbGVzKHNwZWNzOiB7IGxhbmc6IHN0cmluZywgd2hlcmU6IGFueSB9W10pOiBQcm9taXNlPHZvaWRbXT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoc3BlY3MubWFwKChzcGVjKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkQnVuZGxlKHNwZWMud2hlcmUsIHNwZWMubGFuZyk7XG4gICAgICAgIH0pKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYSBidW5kbGUgZnJvbSB0aGUgYnVuZGxlcyBsaXN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGxhbmcgTGFuZ3VhZ2UgdG8gcmVtb3ZlLlxuICAgICAqL1xuICAgIHVubG9hZEJ1bmRsZShsYW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuYnVuZGxlc1tsYW5nXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgbG9hZGVkIGxhbmd1YWdlcy5cbiAgICAgKi9cbiAgICBnZXRMb2FkZWRMYW5ndWFnZXMoKSA6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuYnVuZGxlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJhbnNsYXRlcyBhIHNpbmdsZSBrZXkgaW50byBhIHRhcmdldCBsYW5ndWFnZSwgdXNpbmcgdGhlIHBhcmFtZXRlcnMgcHJvdmlkZWQgaWYgbmVlZGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleSBLZXkgdG8gdHJhbnNsYXRlXG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnMgUGFyYW1ldGVycyB0byB1c2UgaWYgdGhlIHRyYW5zbGF0aW9uIGNvbnRhaW5zIGxvZ2ljLlxuICAgICAqIEBwYXJhbSBsYW5nIFRhcmdldCBsYW5ndWFnZSwgb2YgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgaWYgb21pdHRlZC5cbiAgICAgKiBAcmV0dXJucyBUaGUgY29tcHV0ZWQgdHJhbnNsYXRpb24sIG9yIHRoZSBrZXkgaWYgbm8gbWF0Y2ggd2FzIGZvdW5kIGluIHRoZSBidW5kbGVzIChpbmNsdWRpbmcgdGhlIGZhbGxiYWNrIGxhbmd1YWdlIGJ1bmRsZSkuXG4gICAgICovXG4gICAgdHJhbnNsYXRlKGtleTogc3RyaW5nLCBwYXJhbWV0ZXJzPzogT2JqZWN0IHwgYW55W10sIGxhbmc/OiBzdHJpbmcpIDogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0TGFuZ3VhZ2UgPSBsYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xuXG4gICAgICAgIGNvbnN0IHJhd1RyYW5zbGF0aW9uIDogc3RyaW5nID0gdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXSAmJlxuICAgICAgICAgICAgdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXVtrZXldIHx8XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMYW5ndWFnZSAmJlxuICAgICAgICAgICAgdGhpcy5idW5kbGVzW3RoaXMuZGVmYXVsdExhbmd1YWdlXSAmJlxuICAgICAgICAgICAgdGhpcy5idW5kbGVzW3RoaXMuZGVmYXVsdExhbmd1YWdlXVtrZXldIHx8XG4gICAgICAgICAgICBrZXk7XG5cbiAgICAgICAgaWYocmF3VHJhbnNsYXRpb24gIT09IGtleSAmJiBwYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZXIuY29tcGlsZShyYXdUcmFuc2xhdGlvbiwgcGFyYW1ldGVycywgKGUpID0+IHsgY29uc29sZS5lcnJvcihlKTsgcmV0dXJuIGtleTsgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcmF3VHJhbnNsYXRpb247XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|