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
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Component, Input, ViewChild, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../services/bundles.service";
|
|
4
|
+
export class S5lComponent {
|
|
5
|
+
constructor(bundlesService) {
|
|
6
|
+
this.bundlesService = bundlesService;
|
|
7
|
+
}
|
|
8
|
+
refreshTranslation() {
|
|
9
|
+
const newDisplayedValue = this.bundlesService.translate(this.value, this.parameters, this.fixedLanguage);
|
|
10
|
+
if (this.displayedValue !== newDisplayedValue) {
|
|
11
|
+
this.displayedValue = newDisplayedValue;
|
|
12
|
+
this.wrapperRef.nativeElement.innerHTML = this.displayedValue;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
ngAfterViewInit() {
|
|
16
|
+
this.value = this.wrapperRef.nativeElement.innerHTML.trim();
|
|
17
|
+
this.loaded = true;
|
|
18
|
+
this.refreshTranslation();
|
|
19
|
+
}
|
|
20
|
+
ngDoCheck() {
|
|
21
|
+
if (!this.loaded) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this.refreshTranslation();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
S5lComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: S5lComponent, deps: [{ token: i1.BundlesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
+
S5lComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: S5lComponent, selector: "s5l", inputs: { parameters: ["s5l-params", "parameters"], fixedLanguage: ["s5l-lang", "fixedLanguage"] }, viewQueries: [{ propertyName: "wrapperRef", first: true, predicate: ["wrapper"], descendants: true }], ngImport: i0, template: `
|
|
29
|
+
<span #wrapper>
|
|
30
|
+
<ng-content></ng-content>
|
|
31
|
+
</span>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: S5lComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{
|
|
35
|
+
selector: 's5l',
|
|
36
|
+
template: `
|
|
37
|
+
<span #wrapper>
|
|
38
|
+
<ng-content></ng-content>
|
|
39
|
+
</span>`,
|
|
40
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i1.BundlesService }]; }, propDecorators: { wrapperRef: [{
|
|
43
|
+
type: ViewChild,
|
|
44
|
+
args: ['wrapper']
|
|
45
|
+
}], parameters: [{
|
|
46
|
+
type: Input,
|
|
47
|
+
args: ["s5l-params"]
|
|
48
|
+
}], fixedLanguage: [{
|
|
49
|
+
type: Input,
|
|
50
|
+
args: ["s5l-lang"]
|
|
51
|
+
}] } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtc2lqaWwvc3JjL2xpYi9jb21wb25lbnRzL3M1bC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsU0FBUyxFQUFpQix1QkFBdUIsRUFBVyxNQUFNLGVBQWUsQ0FBQzs7O0FBV3pILE1BQU0sT0FBTyxZQUFZO0lBRXJCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7SUFXOUMsa0JBQWtCO1FBQ3RCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUN4RyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssaUJBQWlCLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQztZQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUNqRTtJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNkLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7O3lHQWhDUSxZQUFZOzZGQUFaLFlBQVksc1BBTlg7OztZQUdGOzJGQUdDLFlBQVk7a0JBUnhCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsUUFBUSxFQUFFOzs7WUFHRjtvQkFDUixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7cUdBS3lCLFVBQVU7c0JBQS9CLFNBQVM7dUJBQUMsU0FBUztnQkFNQyxVQUFVO3NCQUE5QixLQUFLO3VCQUFDLFlBQVk7Z0JBQ0EsYUFBYTtzQkFBL0IsS0FBSzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgRG9DaGVjayB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnVuZGxlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9idW5kbGVzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3M1bCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8c3BhbiAjd3JhcHBlcj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFM1bENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIERvQ2hlY2sge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBidW5kbGVzU2VydmljZTogQnVuZGxlc1NlcnZpY2UpIHt9XG5cbiAgICBAVmlld0NoaWxkKCd3cmFwcGVyJykgd3JhcHBlclJlZjogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgdmFsdWU6IHN0cmluZztcbiAgICBwcml2YXRlIGxvYWRlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIGRpc3BsYXllZFZhbHVlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoXCJzNWwtcGFyYW1zXCIpIHBhcmFtZXRlcnM6IE9iamVjdCB8IGFueVtdO1xuICAgIEBJbnB1dChcInM1bC1sYW5nXCIpIGZpeGVkTGFuZ3VhZ2U6IHN0cmluZztcblxuICAgIHByaXZhdGUgcmVmcmVzaFRyYW5zbGF0aW9uKCkge1xuICAgICAgICBjb25zdCBuZXdEaXNwbGF5ZWRWYWx1ZSA9IHRoaXMuYnVuZGxlc1NlcnZpY2UudHJhbnNsYXRlKHRoaXMudmFsdWUsIHRoaXMucGFyYW1ldGVycywgdGhpcy5maXhlZExhbmd1YWdlKVxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5ZWRWYWx1ZSAhPT0gbmV3RGlzcGxheWVkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkVmFsdWUgPSBuZXdEaXNwbGF5ZWRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMud3JhcHBlclJlZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuZGlzcGxheWVkVmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLndyYXBwZXJSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwudHJpbSgpO1xuICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMucmVmcmVzaFRyYW5zbGF0aW9uKCk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubG9hZGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWZyZXNoVHJhbnNsYXRpb24oKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { S5lComponent } from './components/s5l.component';
|
|
3
|
+
import { TranslatePipe } from './pipes/translate.pipe';
|
|
4
|
+
import { HttpClientModule } from '@angular/common/http';
|
|
5
|
+
import { RequireService } from './services/require/require.interface';
|
|
6
|
+
import { Parser } from './services/parser/parser.interface';
|
|
7
|
+
import { SijilOpts, defaultSijilOpts } from './services/sijil.opts';
|
|
8
|
+
import { BundlesService } from './services/bundles.service';
|
|
9
|
+
import { HttpRequireService } from './services/require/httprequire.service';
|
|
10
|
+
import { FragmentsParser } from './services/parser/fragments.parser';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class NgxOdeSijilModule {
|
|
13
|
+
static forRoot(require, parser, options) {
|
|
14
|
+
return {
|
|
15
|
+
ngModule: NgxOdeSijilModule,
|
|
16
|
+
providers: [
|
|
17
|
+
{ provide: BundlesService, useClass: BundlesService, deps: [RequireService, Parser, SijilOpts] },
|
|
18
|
+
{ provide: RequireService, useClass: require || HttpRequireService },
|
|
19
|
+
{ provide: Parser, useClass: parser || FragmentsParser },
|
|
20
|
+
{ provide: SijilOpts, useValue: options || defaultSijilOpts }
|
|
21
|
+
]
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
static forChild() {
|
|
25
|
+
return {
|
|
26
|
+
ngModule: NgxOdeSijilModule,
|
|
27
|
+
providers: []
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
NgxOdeSijilModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NgxOdeSijilModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
32
|
+
NgxOdeSijilModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: NgxOdeSijilModule, declarations: [S5lComponent, TranslatePipe], imports: [HttpClientModule], exports: [S5lComponent, TranslatePipe] });
|
|
33
|
+
NgxOdeSijilModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NgxOdeSijilModule, imports: [HttpClientModule] });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NgxOdeSijilModule, decorators: [{
|
|
35
|
+
type: NgModule,
|
|
36
|
+
args: [{
|
|
37
|
+
declarations: [S5lComponent, TranslatePipe],
|
|
38
|
+
imports: [HttpClientModule],
|
|
39
|
+
exports: [S5lComponent, TranslatePipe]
|
|
40
|
+
}]
|
|
41
|
+
}] });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW9kZS1zaWppbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXNpamlsL3NyYy9saWIvbmd4LW9kZS1zaWppbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQU9yRSxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBOEIsRUFBRSxNQUFxQixFQUFFLE9BQW1CO1FBQ3ZGLE9BQU87WUFDSCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRTtnQkFDUCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBRSxFQUFFO2dCQUNsRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sSUFBSSxrQkFBa0IsRUFBRTtnQkFDcEUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLElBQUksZUFBZSxFQUFFO2dCQUN4RCxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRTthQUNoRTtTQUNKLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixPQUFPO1lBQ0gsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUUsRUFBRTtTQUNoQixDQUFDO0lBQ0osQ0FBQzs7OEdBbEJVLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQUpiLFlBQVksRUFBRSxhQUFhLGFBQ2hDLGdCQUFnQixhQUNoQixZQUFZLEVBQUUsYUFBYTsrR0FFMUIsaUJBQWlCLFlBSGxCLGdCQUFnQjsyRkFHZixpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFM1bENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zNWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBSZXF1aXJlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcmVxdWlyZS9yZXF1aXJlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL3NlcnZpY2VzL3BhcnNlci9wYXJzZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNpamlsT3B0cywgZGVmYXVsdFNpamlsT3B0cyB9IGZyb20gJy4vc2VydmljZXMvc2lqaWwub3B0cyc7XG5pbXBvcnQgeyBCdW5kbGVzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYnVuZGxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEh0dHBSZXF1aXJlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcmVxdWlyZS9odHRwcmVxdWlyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZyYWdtZW50c1BhcnNlciB9IGZyb20gJy4vc2VydmljZXMvcGFyc2VyL2ZyYWdtZW50cy5wYXJzZXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTNWxDb21wb25lbnQsIFRyYW5zbGF0ZVBpcGVdLFxuICBpbXBvcnRzOiBbSHR0cENsaWVudE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTNWxDb21wb25lbnQsIFRyYW5zbGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIE5neE9kZVNpamlsTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QocmVxdWlyZT86IFR5cGU8UmVxdWlyZVNlcnZpY2U+LCBwYXJzZXI/OiBUeXBlPFBhcnNlcj4sIG9wdGlvbnM/OiBTaWppbE9wdHMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neE9kZVNpamlsTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmdNb2R1bGU6IE5neE9kZVNpamlsTW9kdWxlLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIHsgcHJvdmlkZTogQnVuZGxlc1NlcnZpY2UsIHVzZUNsYXNzOiBCdW5kbGVzU2VydmljZSwgZGVwczogWyBSZXF1aXJlU2VydmljZSwgUGFyc2VyLCBTaWppbE9wdHMgXSB9LFxuICAgICAgICAgICAgeyBwcm92aWRlOiBSZXF1aXJlU2VydmljZSwgdXNlQ2xhc3M6IHJlcXVpcmUgfHwgSHR0cFJlcXVpcmVTZXJ2aWNlIH0sXG4gICAgICAgICAgICB7IHByb3ZpZGU6IFBhcnNlciwgdXNlQ2xhc3M6IHBhcnNlciB8fCBGcmFnbWVudHNQYXJzZXIgfSxcbiAgICAgICAgICAgIHsgcHJvdmlkZTogU2lqaWxPcHRzLCB1c2VWYWx1ZTogb3B0aW9ucyB8fCBkZWZhdWx0U2lqaWxPcHRzIH1cbiAgICAgICAgXVxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yQ2hpbGQoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hPZGVTaWppbE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5nTW9kdWxlOiBOZ3hPZGVTaWppbE1vZHVsZSxcbiAgICAgICAgcHJvdmlkZXJzOiBbXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../services/bundles.service";
|
|
4
|
+
export class TranslatePipe {
|
|
5
|
+
constructor(bundlesService) {
|
|
6
|
+
this.bundlesService = bundlesService;
|
|
7
|
+
}
|
|
8
|
+
transform(key, parameters, lang) {
|
|
9
|
+
return this.bundlesService.translate(key, parameters, lang);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
TranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TranslatePipe, deps: [{ token: i1.BundlesService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
TranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: TranslatePipe, name: "translate", pure: false });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TranslatePipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{ name: 'translate', pure: false }]
|
|
17
|
+
}], ctorParameters: function () { return [{ type: i1.BundlesService }]; } });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXNpamlsL3NyYy9saWIvcGlwZXMvdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQUdwRCxNQUFNLE9BQU8sYUFBYTtJQUV0QixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRXRELFNBQVMsQ0FBQyxHQUFXLEVBQUUsVUFBMkIsRUFBRSxJQUFhO1FBQzdELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDOzswR0FOUSxhQUFhO3dHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEekIsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1bmRsZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYnVuZGxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe25hbWU6ICd0cmFuc2xhdGUnLCBwdXJlOiBmYWxzZX0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBidW5kbGVzU2VydmljZTogQnVuZGxlc1NlcnZpY2UpIHt9XG5cbiAgICB0cmFuc2Zvcm0oa2V5OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBvYmplY3QgfCBhbnlbXSwgbGFuZz86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1bmRsZXNTZXJ2aWNlLnRyYW5zbGF0ZShrZXksIHBhcmFtZXRlcnMsIGxhbmcpO1xuICAgIH1cblxufVxuIl19
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a BundlesService, whice is the main entry point for Sijil operations.
|
|
3
|
+
*
|
|
4
|
+
* A BundlesServices has three dependencies :
|
|
5
|
+
* - RequireService : Used to fetch bundles
|
|
6
|
+
* - Parser : Used to parse logic inside bundle values
|
|
7
|
+
* - SijilOpts : An object containing custom settings
|
|
8
|
+
*/
|
|
9
|
+
export class BundlesService {
|
|
10
|
+
constructor(requireService, parser, sijilOpts) {
|
|
11
|
+
this.requireService = requireService;
|
|
12
|
+
this.parser = parser;
|
|
13
|
+
this.bundles = {};
|
|
14
|
+
this.defaultLanguage = sijilOpts.defaultLanguage;
|
|
15
|
+
if (!this.defaultLanguage && typeof window !== 'undefined') {
|
|
16
|
+
this.defaultLanguage = window.navigator.language.split('-')[0];
|
|
17
|
+
}
|
|
18
|
+
this.currentLanguage = this.defaultLanguage;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Add keys/values to an existing bundle, or create it if missing.
|
|
22
|
+
*
|
|
23
|
+
* @param bundle An object containing translations as key / values.
|
|
24
|
+
* @param lang The language to map the bundle with, or the current langugage if omitted.
|
|
25
|
+
*/
|
|
26
|
+
addToBundle(bundle, lang) {
|
|
27
|
+
const targetLanguage = lang || this.currentLanguage || this.defaultLanguage || 'en';
|
|
28
|
+
if (!this.bundles[targetLanguage]) {
|
|
29
|
+
this.bundles[targetLanguage] = {};
|
|
30
|
+
}
|
|
31
|
+
this.bundles[targetLanguage] = Object.assign({}, this.bundles[targetLanguage], bundle);
|
|
32
|
+
if (!this.currentLanguage) {
|
|
33
|
+
this.currentLanguage = lang;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Loads a bundle and associates it with a language.
|
|
38
|
+
* If the target language already contains key/values, then we mixin the new bundle and the existing one.
|
|
39
|
+
*
|
|
40
|
+
* @param where The path, or whatever the RequireService needs to fetch the bundle.
|
|
41
|
+
* @param lang The target language, or the current language if omitted.
|
|
42
|
+
* @returns A Promise, because the RequireService can be (is - by default) asynchronous.
|
|
43
|
+
*/
|
|
44
|
+
loadBundle(where, lang) {
|
|
45
|
+
return this.requireService.load(where)
|
|
46
|
+
.then(bundle => {
|
|
47
|
+
this.addToBundle(bundle, lang);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Loads multiple bundles and associates then with a language.
|
|
52
|
+
*
|
|
53
|
+
* @see {@link loadBundle}
|
|
54
|
+
*/
|
|
55
|
+
loadBundles(specs) {
|
|
56
|
+
return Promise.all(specs.map((spec) => {
|
|
57
|
+
return this.loadBundle(spec.where, spec.lang);
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Removes a bundle from the bundles list.
|
|
62
|
+
*
|
|
63
|
+
* @param lang Language to remove.
|
|
64
|
+
*/
|
|
65
|
+
unloadBundle(lang) {
|
|
66
|
+
delete this.bundles[lang];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @returns Returns a list of all loaded languages.
|
|
70
|
+
*/
|
|
71
|
+
getLoadedLanguages() {
|
|
72
|
+
return Object.keys(this.bundles);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Translates a single key into a target language, using the parameters provided if needed.
|
|
76
|
+
*
|
|
77
|
+
* @param key Key to translate
|
|
78
|
+
* @param parameters Parameters to use if the translation contains logic.
|
|
79
|
+
* @param lang Target language, of the current language if omitted.
|
|
80
|
+
* @returns The computed translation, or the key if no match was found in the bundles (including the fallback language bundle).
|
|
81
|
+
*/
|
|
82
|
+
translate(key, parameters, lang) {
|
|
83
|
+
const targetLanguage = lang || this.currentLanguage;
|
|
84
|
+
const rawTranslation = this.bundles[targetLanguage] &&
|
|
85
|
+
this.bundles[targetLanguage][key] ||
|
|
86
|
+
this.defaultLanguage &&
|
|
87
|
+
this.bundles[this.defaultLanguage] &&
|
|
88
|
+
this.bundles[this.defaultLanguage][key] ||
|
|
89
|
+
key;
|
|
90
|
+
if (rawTranslation !== key && parameters) {
|
|
91
|
+
return this.parser.compile(rawTranslation, parameters, (e) => { console.error(e); return key; });
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
return rawTranslation;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS1zaWppbC9zcmMvbGliL3NlcnZpY2VzL2J1bmRsZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFFdkIsWUFBb0IsY0FBOEIsRUFBVSxNQUFjLEVBQUUsU0FBb0I7UUFBNUUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVFsRSxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBUHpCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FBQztRQUNqRCxJQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEU7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEQsQ0FBQztJQVlEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFhO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDO1FBRXBGLElBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXZGLElBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxVQUFVLENBQUMsS0FBSyxFQUFFLElBQWE7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxLQUFxQztRQUM3QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ1AsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsSUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCO1FBQ2QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFNBQVMsQ0FBQyxHQUFXLEVBQUUsVUFBMkIsRUFBRSxJQUFhO1FBQzdELE1BQU0sY0FBYyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO1FBRXBELE1BQU0sY0FBYyxHQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxlQUFlO2dCQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUN2QyxHQUFHLENBQUM7UUFFUixJQUFHLGNBQWMsS0FBSyxHQUFHLElBQUksVUFBVSxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEc7YUFBTTtZQUNILE9BQU8sY0FBYyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVxdWlyZVNlcnZpY2UgfSBmcm9tICcuL3JlcXVpcmUvcmVxdWlyZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi9wYXJzZXIvcGFyc2VyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTaWppbE9wdHMgfSBmcm9tICcuL3NpamlsLm9wdHMnO1xuXG4vKipcbiAqIERlZmluZXMgYSBCdW5kbGVzU2VydmljZSwgd2hpY2UgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIFNpamlsIG9wZXJhdGlvbnMuXG4gKlxuICogQSBCdW5kbGVzU2VydmljZXMgaGFzIHRocmVlIGRlcGVuZGVuY2llcyA6XG4gKiAtIFJlcXVpcmVTZXJ2aWNlIDogVXNlZCB0byBmZXRjaCBidW5kbGVzXG4gKiAtIFBhcnNlciA6IFVzZWQgdG8gcGFyc2UgbG9naWMgaW5zaWRlIGJ1bmRsZSB2YWx1ZXNcbiAqIC0gU2lqaWxPcHRzIDogQW4gb2JqZWN0IGNvbnRhaW5pbmcgY3VzdG9tIHNldHRpbmdzXG4gKi9cbmV4cG9ydCBjbGFzcyBCdW5kbGVzU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcXVpcmVTZXJ2aWNlOiBSZXF1aXJlU2VydmljZSwgcHJpdmF0ZSBwYXJzZXI6IFBhcnNlciwgc2lqaWxPcHRzOiBTaWppbE9wdHMpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0TGFuZ3VhZ2UgPSBzaWppbE9wdHMuZGVmYXVsdExhbmd1YWdlO1xuICAgICAgICBpZighdGhpcy5kZWZhdWx0TGFuZ3VhZ2UgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdExhbmd1YWdlID0gd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlID0gdGhpcy5kZWZhdWx0TGFuZ3VhZ2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidW5kbGVzOiBPYmplY3QgPSB7fTtcbiAgICAvKipcbiAgICAgKiBGYWxsYmFjayBsYW5ndWFnZS5cbiAgICAgKi9cbiAgICBkZWZhdWx0TGFuZ3VhZ2U6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGxhbmd1YWdlLlxuICAgICAqL1xuICAgIGN1cnJlbnRMYW5ndWFnZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQWRkIGtleXMvdmFsdWVzIHRvIGFuIGV4aXN0aW5nIGJ1bmRsZSwgb3IgY3JlYXRlIGl0IGlmIG1pc3NpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYnVuZGxlIEFuIG9iamVjdCBjb250YWluaW5nIHRyYW5zbGF0aW9ucyBhcyBrZXkgLyB2YWx1ZXMuXG4gICAgICogQHBhcmFtIGxhbmcgVGhlIGxhbmd1YWdlIHRvIG1hcCB0aGUgYnVuZGxlIHdpdGgsIG9yIHRoZSBjdXJyZW50IGxhbmd1Z2FnZSBpZiBvbWl0dGVkLlxuICAgICAqL1xuICAgIGFkZFRvQnVuZGxlKGJ1bmRsZTogT2JqZWN0LCBsYW5nPzogc3RyaW5nKSA6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXRMYW5ndWFnZSA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgfHwgdGhpcy5kZWZhdWx0TGFuZ3VhZ2UgfHwgJ2VuJztcblxuICAgICAgICBpZighdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXSkge1xuICAgICAgICAgICAgdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXSA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuYnVuZGxlc1t0YXJnZXRMYW5ndWFnZV0sIGJ1bmRsZSk7XG5cbiAgICAgICAgaWYoIXRoaXMuY3VycmVudExhbmd1YWdlKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IGxhbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyBhIGJ1bmRsZSBhbmQgYXNzb2NpYXRlcyBpdCB3aXRoIGEgbGFuZ3VhZ2UuXG4gICAgICogSWYgdGhlIHRhcmdldCBsYW5ndWFnZSBhbHJlYWR5IGNvbnRhaW5zIGtleS92YWx1ZXMsIHRoZW4gd2UgbWl4aW4gdGhlIG5ldyBidW5kbGUgYW5kIHRoZSBleGlzdGluZyBvbmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2hlcmUgVGhlIHBhdGgsIG9yIHdoYXRldmVyIHRoZSBSZXF1aXJlU2VydmljZSBuZWVkcyB0byBmZXRjaCB0aGUgYnVuZGxlLlxuICAgICAqIEBwYXJhbSBsYW5nIFRoZSB0YXJnZXQgbGFuZ3VhZ2UsIG9yIHRoZSBjdXJyZW50IGxhbmd1YWdlIGlmIG9taXR0ZWQuXG4gICAgICogQHJldHVybnMgQSBQcm9taXNlLCBiZWNhdXNlIHRoZSBSZXF1aXJlU2VydmljZSBjYW4gYmUgKGlzIC0gYnkgZGVmYXVsdCkgYXN5bmNocm9ub3VzLlxuICAgICAqL1xuICAgIGxvYWRCdW5kbGUod2hlcmUsIGxhbmc/OiBzdHJpbmcpIDogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVTZXJ2aWNlLmxvYWQod2hlcmUpXG4gICAgICAgICAgICAudGhlbihidW5kbGUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkVG9CdW5kbGUoYnVuZGxlLCBsYW5nKTtcbiAgICAgICAgICAgIH0pXG4gICAgfVxuICAgIC8qKlxuICAgICAqIExvYWRzIG11bHRpcGxlIGJ1bmRsZXMgYW5kIGFzc29jaWF0ZXMgdGhlbiB3aXRoIGEgbGFuZ3VhZ2UuXG4gICAgICpcbiAgICAgKiBAc2VlIHtAbGluayBsb2FkQnVuZGxlfVxuICAgICAqL1xuICAgIGxvYWRCdW5kbGVzKHNwZWNzOiB7IGxhbmc6IHN0cmluZywgd2hlcmU6IGFueSB9W10pOiBQcm9taXNlPHZvaWRbXT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoc3BlY3MubWFwKChzcGVjKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkQnVuZGxlKHNwZWMud2hlcmUsIHNwZWMubGFuZyk7XG4gICAgICAgIH0pKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYSBidW5kbGUgZnJvbSB0aGUgYnVuZGxlcyBsaXN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGxhbmcgTGFuZ3VhZ2UgdG8gcmVtb3ZlLlxuICAgICAqL1xuICAgIHVubG9hZEJ1bmRsZShsYW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuYnVuZGxlc1tsYW5nXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgbG9hZGVkIGxhbmd1YWdlcy5cbiAgICAgKi9cbiAgICBnZXRMb2FkZWRMYW5ndWFnZXMoKSA6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuYnVuZGxlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJhbnNsYXRlcyBhIHNpbmdsZSBrZXkgaW50byBhIHRhcmdldCBsYW5ndWFnZSwgdXNpbmcgdGhlIHBhcmFtZXRlcnMgcHJvdmlkZWQgaWYgbmVlZGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleSBLZXkgdG8gdHJhbnNsYXRlXG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnMgUGFyYW1ldGVycyB0byB1c2UgaWYgdGhlIHRyYW5zbGF0aW9uIGNvbnRhaW5zIGxvZ2ljLlxuICAgICAqIEBwYXJhbSBsYW5nIFRhcmdldCBsYW5ndWFnZSwgb2YgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgaWYgb21pdHRlZC5cbiAgICAgKiBAcmV0dXJucyBUaGUgY29tcHV0ZWQgdHJhbnNsYXRpb24sIG9yIHRoZSBrZXkgaWYgbm8gbWF0Y2ggd2FzIGZvdW5kIGluIHRoZSBidW5kbGVzIChpbmNsdWRpbmcgdGhlIGZhbGxiYWNrIGxhbmd1YWdlIGJ1bmRsZSkuXG4gICAgICovXG4gICAgdHJhbnNsYXRlKGtleTogc3RyaW5nLCBwYXJhbWV0ZXJzPzogT2JqZWN0IHwgYW55W10sIGxhbmc/OiBzdHJpbmcpIDogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0TGFuZ3VhZ2UgPSBsYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xuXG4gICAgICAgIGNvbnN0IHJhd1RyYW5zbGF0aW9uIDogc3RyaW5nID0gdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXSAmJlxuICAgICAgICAgICAgdGhpcy5idW5kbGVzW3RhcmdldExhbmd1YWdlXVtrZXldIHx8XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRMYW5ndWFnZSAmJlxuICAgICAgICAgICAgdGhpcy5idW5kbGVzW3RoaXMuZGVmYXVsdExhbmd1YWdlXSAmJlxuICAgICAgICAgICAgdGhpcy5idW5kbGVzW3RoaXMuZGVmYXVsdExhbmd1YWdlXVtrZXldIHx8XG4gICAgICAgICAgICBrZXk7XG5cbiAgICAgICAgaWYocmF3VHJhbnNsYXRpb24gIT09IGtleSAmJiBwYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZXIuY29tcGlsZShyYXdUcmFuc2xhdGlvbiwgcGFyYW1ldGVycywgKGUpID0+IHsgY29uc29sZS5lcnJvcihlKTsgcmV0dXJuIGtleTsgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcmF3VHJhbnNsYXRpb247XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { ParserError } from './parser.interface';
|
|
2
|
+
/**
|
|
3
|
+
* The default Sijil parser.
|
|
4
|
+
*
|
|
5
|
+
* - Input : bundle value (translation) + parameters (Object or Array)
|
|
6
|
+
* - Output : compiled translation
|
|
7
|
+
*
|
|
8
|
+
* Logic is contained inside mustache blocks : {{ LOGIC BLOCK }}
|
|
9
|
+
*
|
|
10
|
+
* There are two variants :
|
|
11
|
+
* - A single parameter key (when the params are contained inside an object) or index (params contained inside an array)
|
|
12
|
+
*
|
|
13
|
+
* Examples:
|
|
14
|
+
*
|
|
15
|
+
* {{ key }} + { "key" : "my key" } = my key
|
|
16
|
+
*
|
|
17
|
+
* {{ 1 }} + [1, 2] = 2
|
|
18
|
+
*
|
|
19
|
+
* - A ternary-like condition
|
|
20
|
+
*
|
|
21
|
+
* {{ condition ? trueValue : falseValue }}
|
|
22
|
+
* Where condition may be : a single parameter key/index, or 2 clauses with the following operators : ==, >, =>, <=, <
|
|
23
|
+
*
|
|
24
|
+
* Examples:
|
|
25
|
+
*
|
|
26
|
+
* (the $ sign to refer to a variable is mandatory when a clause contains more than 1 word)
|
|
27
|
+
*
|
|
28
|
+
* {{ count > 1 ? $count cats : 1 cat }} + {"count": 10} = 10 cats
|
|
29
|
+
* {{ 1 < count ? $count cats : 1 cat }} + {"count": 1} = 1 cat
|
|
30
|
+
*
|
|
31
|
+
* @export
|
|
32
|
+
*/
|
|
33
|
+
// @dynamic
|
|
34
|
+
export class FragmentsParser {
|
|
35
|
+
constructor() { }
|
|
36
|
+
getParameter(parameters, fragment, strict) {
|
|
37
|
+
const splittedFrag = fragment.split(/\s+/);
|
|
38
|
+
if (splittedFrag.length === 1) {
|
|
39
|
+
return fragment[0] === '$' ?
|
|
40
|
+
parameters[fragment.substr(1)] :
|
|
41
|
+
strict ?
|
|
42
|
+
fragment :
|
|
43
|
+
parameters[fragment] !== undefined ?
|
|
44
|
+
parameters[fragment] :
|
|
45
|
+
fragment;
|
|
46
|
+
}
|
|
47
|
+
return fragment.split(/\s+/).reduce((l, r) => {
|
|
48
|
+
l.push(r[0] === '$' ? parameters[r.substr(1)] : r);
|
|
49
|
+
return l;
|
|
50
|
+
}, []).join(' ');
|
|
51
|
+
}
|
|
52
|
+
compileFragment(fragment, parameters) {
|
|
53
|
+
fragment = fragment.replace(/{{|}}/g, '');
|
|
54
|
+
let interrogationIndex;
|
|
55
|
+
let dotsIndex;
|
|
56
|
+
if ((interrogationIndex = fragment.indexOf('?')) > 0 && (dotsIndex = fragment.lastIndexOf(':')) > 1) {
|
|
57
|
+
const condition = fragment.substring(0, interrogationIndex).trim();
|
|
58
|
+
const trueReturn = fragment.substring(interrogationIndex + 1, dotsIndex).trim();
|
|
59
|
+
const falseReturn = fragment.substring(dotsIndex + 1).trim();
|
|
60
|
+
const computedTrueReturn = this.getParameter(parameters, trueReturn);
|
|
61
|
+
const computedFalseReturn = this.getParameter(parameters, falseReturn);
|
|
62
|
+
const splittedCondition = condition.split(/\s+/);
|
|
63
|
+
if (splittedCondition.length === 1) {
|
|
64
|
+
// Single variable case
|
|
65
|
+
const variable = parameters[splittedCondition[0]];
|
|
66
|
+
return variable ?
|
|
67
|
+
computedTrueReturn :
|
|
68
|
+
computedFalseReturn;
|
|
69
|
+
}
|
|
70
|
+
else if (splittedCondition.length === 3) {
|
|
71
|
+
// Operator case
|
|
72
|
+
const leftHandParam = this.getParameter(parameters, splittedCondition[0], parameters instanceof Array);
|
|
73
|
+
const rightHand = this.getParameter(parameters, splittedCondition[2], parameters instanceof Array);
|
|
74
|
+
const comparisonOperator = splittedCondition[1];
|
|
75
|
+
switch (comparisonOperator) {
|
|
76
|
+
case '==':
|
|
77
|
+
return leftHandParam === rightHand ?
|
|
78
|
+
computedTrueReturn :
|
|
79
|
+
computedFalseReturn;
|
|
80
|
+
case '>':
|
|
81
|
+
return leftHandParam > rightHand ?
|
|
82
|
+
computedTrueReturn :
|
|
83
|
+
computedFalseReturn;
|
|
84
|
+
case '>=':
|
|
85
|
+
return leftHandParam >= rightHand ?
|
|
86
|
+
computedTrueReturn :
|
|
87
|
+
computedFalseReturn;
|
|
88
|
+
case '<':
|
|
89
|
+
return leftHandParam < rightHand ?
|
|
90
|
+
computedTrueReturn :
|
|
91
|
+
computedFalseReturn;
|
|
92
|
+
case '<=':
|
|
93
|
+
return leftHandParam <= rightHand ?
|
|
94
|
+
computedTrueReturn :
|
|
95
|
+
computedFalseReturn;
|
|
96
|
+
default:
|
|
97
|
+
throw new ParserError(`Invalid conditional operator for fragment : ${fragment}`, fragment);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
throw new ParserError(`Invalid condition for fragment : ${fragment}`, fragment);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
fragment = fragment.trim();
|
|
106
|
+
return parameters[fragment];
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
compile(rawTranslation, parameters, onError) {
|
|
110
|
+
const parts = rawTranslation.split(FragmentsParser.delimRegexp);
|
|
111
|
+
const fragments = rawTranslation.match(FragmentsParser.delimRegexp);
|
|
112
|
+
let compiledTranslation = '';
|
|
113
|
+
if (!onError) {
|
|
114
|
+
onError = FragmentsParser.defaultErrorCallback;
|
|
115
|
+
}
|
|
116
|
+
if (!fragments) {
|
|
117
|
+
compiledTranslation += rawTranslation;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
for (let i = 0; i < parts.length; i++) {
|
|
121
|
+
compiledTranslation += parts[i];
|
|
122
|
+
if (i > fragments.length - 1) {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
try {
|
|
126
|
+
compiledTranslation += this.compileFragment(fragments[i], parameters);
|
|
127
|
+
}
|
|
128
|
+
catch (e) {
|
|
129
|
+
compiledTranslation += onError(e);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return compiledTranslation;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
FragmentsParser.delimiters = ['{{', '}}'];
|
|
137
|
+
FragmentsParser.delimRegexp = new RegExp(`${FragmentsParser.delimiters[0]}[^}]+${FragmentsParser.delimiters[1]}`, 'gm');
|
|
138
|
+
FragmentsParser.defaultErrorCallback = (e) => {
|
|
139
|
+
console.error(e);
|
|
140
|
+
return e.fragment;
|
|
141
|
+
};
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhZ21lbnRzLnBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtc2lqaWwvc3JjL2xpYi9zZXJ2aWNlcy9wYXJzZXIvZnJhZ21lbnRzLnBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBCLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXpFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxXQUFXO0FBQ1gsTUFBTSxPQUFPLGVBQWU7SUFFeEIsZ0JBQWMsQ0FBQztJQVVQLFlBQVksQ0FBQyxVQUEwQixFQUFFLFFBQWdCLEVBQUUsTUFBZ0I7UUFDL0UsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFHLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUN4QixVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxDQUFDO29CQUNKLFFBQVEsQ0FBQyxDQUFDO29CQUNWLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQzt3QkFDaEMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7d0JBQ3RCLFFBQVEsQ0FBQztTQUN4QjtRQUNELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxD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QUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztpQkFDekU7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1IsbUJBQW1CLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNyQzthQUNKO1NBQ0o7UUFFRCxPQUFPLG1CQUFtQixDQUFDO0lBRS9CLENBQUM7O0FBeEhjLDBCQUFVLEdBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDcEMsMkJBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRXhHLG9DQUFvQixHQUFtQixDQUFDLENBQWMsRUFBRSxFQUFFO0lBQ3JFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ3RCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcnNlciwgUGFyc2VyQ2FsbGJhY2ssIFBhcnNlckVycm9yIH0gZnJvbSAnLi9wYXJzZXIuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBTaWppbCBwYXJzZXIuXG4gKlxuICogLSBJbnB1dCA6IGJ1bmRsZSB2YWx1ZSAodHJhbnNsYXRpb24pICsgcGFyYW1ldGVycyAoT2JqZWN0IG9yIEFycmF5KVxuICogLSBPdXRwdXQgOiBjb21waWxlZCB0cmFuc2xhdGlvblxuICpcbiAqIExvZ2ljIGlzIGNvbnRhaW5lZCBpbnNpZGUgbXVzdGFjaGUgYmxvY2tzIDoge3sgTE9HSUMgQkxPQ0sgfX1cbiAqXG4gKiBUaGVyZSBhcmUgdHdvIHZhcmlhbnRzIDpcbiAqICAtIEEgc2luZ2xlIHBhcmFtZXRlciBrZXkgKHdoZW4gdGhlIHBhcmFtcyBhcmUgY29udGFpbmVkIGluc2lkZSBhbiBvYmplY3QpIG9yIGluZGV4IChwYXJhbXMgY29udGFpbmVkIGluc2lkZSBhbiBhcnJheSlcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiB7eyBrZXkgfX0gKyB7IFwia2V5XCIgOiBcIm15IGtleVwiIH0gPSBteSBrZXlcbiAqXG4gKiB7eyAxIH19ICsgWzEsIDJdID0gMlxuICpcbiAqICAtIEEgdGVybmFyeS1saWtlIGNvbmRpdGlvblxuICpcbiAqIHt7IGNvbmRpdGlvbiA/IHRydWVWYWx1ZSA6IGZhbHNlVmFsdWUgfX1cbiAqIFdoZXJlIGNvbmRpdGlvbiBtYXkgYmUgOiBhIHNpbmdsZSBwYXJhbWV0ZXIga2V5L2luZGV4LCBvciAyIGNsYXVzZXMgd2l0aCB0aGUgZm9sbG93aW5nIG9wZXJhdG9ycyA6ID09LCA+LCA9PiwgPD0sIDxcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAodGhlICQgc2lnbiB0byByZWZlciB0byBhIHZhcmlhYmxlIGlzIG1hbmRhdG9yeSB3aGVuIGEgY2xhdXNlIGNvbnRhaW5zIG1vcmUgdGhhbiAxIHdvcmQpXG4gKlxuICoge3sgY291bnQgPiAxID8gJGNvdW50IGNhdHMgOiAxIGNhdCB9fSArIHtcImNvdW50XCI6IDEwfSA9IDEwIGNhdHNcbiAqIHt7IDEgPCBjb3VudCA/ICRjb3VudCBjYXRzIDogMSBjYXQgfX0gKyB7XCJjb3VudFwiOiAxfSA9IDEgY2F0XG4gKlxuICogQGV4cG9ydFxuICovXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEZyYWdtZW50c1BhcnNlciBpbXBsZW1lbnRzIFBhcnNlciB7XG5cbiAgICBjb25zdHJ1Y3Rvcigpe31cblxuICAgIHByaXZhdGUgc3RhdGljIGRlbGltaXRlcnM6IHN0cmluZ1tdID0gWyd7eycsICd9fSddO1xuICAgIHByaXZhdGUgc3RhdGljIGRlbGltUmVnZXhwID0gbmV3IFJlZ0V4cChgJHtGcmFnbWVudHNQYXJzZXIuZGVsaW1pdGVyc1swXX1bXn1dKyR7RnJhZ21lbnRzUGFyc2VyLmRlbGltaXRlcnNbMV19YCwgJ2dtJyk7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBkZWZhdWx0RXJyb3JDYWxsYmFjazogUGFyc2VyQ2FsbGJhY2sgPSAoZTogUGFyc2VyRXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgcmV0dXJuIGUuZnJhZ21lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXIocGFyYW1ldGVyczogT2JqZWN0IHwgYW55W10sIGZyYWdtZW50OiBzdHJpbmcsIHN0cmljdD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzcGxpdHRlZEZyYWcgPSBmcmFnbWVudC5zcGxpdCgvXFxzKy8pO1xuICAgICAgICBpZihzcGxpdHRlZEZyYWcubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJhZ21lbnRbMF0gPT09ICckJyA/XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1tmcmFnbWVudC5zdWJzdHIoMSldIDpcbiAgICAgICAgICAgICAgICBzdHJpY3QgP1xuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudCA6XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNbZnJhZ21lbnRdICE9PSB1bmRlZmluZWQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyc1tmcmFnbWVudF0gOlxuICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZyYWdtZW50LnNwbGl0KC9cXHMrLykucmVkdWNlKChsLCByKSA9PiB7XG4gICAgICAgICAgICBsLnB1c2goclswXSA9PT0gJyQnID8gcGFyYW1ldGVyc1tyLnN1YnN0cigxKV0gOiByKTtcbiAgICAgICAgICAgIHJldHVybiBsO1xuICAgICAgICB9LCBbXSkuam9pbignICcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tcGlsZUZyYWdtZW50KGZyYWdtZW50OiBzdHJpbmcsIHBhcmFtZXRlcnM6IE9iamVjdCB8IGFueVtdKTogc3RyaW5nIHtcbiAgICAgICAgZnJhZ21lbnQgPSBmcmFnbWVudC5yZXBsYWNlKC97e3x9fS9nLCAnJyk7XG5cbiAgICAgICAgbGV0IGludGVycm9nYXRpb25JbmRleDtcbiAgICAgICAgbGV0IGRvdHNJbmRleDtcbiAgICAgICAgaWYgKChpbnRlcnJvZ2F0aW9uSW5kZXggPSBmcmFnbWVudC5pbmRleE9mKCc/JykpID4gMCAmJiAoZG90c0luZGV4ID0gZnJhZ21lbnQubGFzdEluZGV4T2YoJzonKSkgPiAxKSB7XG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb24gPSBmcmFnbWVudC5zdWJzdHJpbmcoMCwgaW50ZXJyb2dhdGlvbkluZGV4KS50cmltKCk7XG4gICAgICAgICAgICBjb25zdCB0cnVlUmV0dXJuID0gZnJhZ21lbnQuc3Vic3RyaW5nKGludGVycm9nYXRpb25JbmRleCArIDEsIGRvdHNJbmRleCkudHJpbSgpO1xuICAgICAgICAgICAgY29uc3QgZmFsc2VSZXR1cm4gPSBmcmFnbWVudC5zdWJzdHJpbmcoZG90c0luZGV4ICsgMSkudHJpbSgpO1xuICAgICAgICAgICAgY29uc3QgY29tcHV0ZWRUcnVlUmV0dXJuID0gdGhpcy5nZXRQYXJhbWV0ZXIocGFyYW1ldGVycywgdHJ1ZVJldHVybik7XG4gICAgICAgICAgICBjb25zdCBjb21wdXRlZEZhbHNlUmV0dXJuID0gdGhpcy5nZXRQYXJhbWV0ZXIocGFyYW1ldGVycywgZmFsc2VSZXR1cm4pO1xuXG4gICAgICAgICAgICBjb25zdCBzcGxpdHRlZENvbmRpdGlvbiA9IGNvbmRpdGlvbi5zcGxpdCgvXFxzKy8pO1xuXG4gICAgICAgICAgICBpZiAoc3BsaXR0ZWRDb25kaXRpb24ubGVuZ3RoID09PSAxKSB7XG5cbiAgICAgICAgICAgICAgICAvLyBTaW5nbGUgdmFyaWFibGUgY2FzZVxuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGUgPSBwYXJhbWV0ZXJzW3NwbGl0dGVkQ29uZGl0aW9uWzBdXTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYWJsZSA/XG4gICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkVHJ1ZVJldHVybiA6XG4gICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkRmFsc2VSZXR1cm47XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3BsaXR0ZWRDb25kaXRpb24ubGVuZ3RoID09PSAzKSB7XG5cbiAgICAgICAgICAgICAgICAvLyBPcGVyYXRvciBjYXNlXG5cbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0SGFuZFBhcmFtID0gdGhpcy5nZXRQYXJhbWV0ZXIocGFyYW1ldGVycywgc3BsaXR0ZWRDb25kaXRpb25bMF0sIHBhcmFtZXRlcnMgaW5zdGFuY2VvZiBBcnJheSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmlnaHRIYW5kID0gdGhpcy5nZXRQYXJhbWV0ZXIocGFyYW1ldGVycywgc3BsaXR0ZWRDb25kaXRpb25bMl0sIHBhcmFtZXRlcnMgaW5zdGFuY2VvZiBBcnJheSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcGFyaXNvbk9wZXJhdG9yID0gc3BsaXR0ZWRDb25kaXRpb25bMV07XG5cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbXBhcmlzb25PcGVyYXRvcikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICc9PSc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGVmdEhhbmRQYXJhbSA9PT0gcmlnaHRIYW5kID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlZFRydWVSZXR1cm4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkRmFsc2VSZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJz4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRIYW5kUGFyYW0gPiByaWdodEhhbmQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkVHJ1ZVJldHVybiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWRGYWxzZVJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnPj0nOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRIYW5kUGFyYW0gPj0gcmlnaHRIYW5kID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlZFRydWVSZXR1cm4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkRmFsc2VSZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJzwnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRIYW5kUGFyYW0gPCByaWdodEhhbmQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkVHJ1ZVJldHVybiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWRGYWxzZVJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnPD0nOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRIYW5kUGFyYW0gPD0gcmlnaHRIYW5kID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlZFRydWVSZXR1cm4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkRmFsc2VSZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VyRXJyb3IoYEludmFsaWQgY29uZGl0aW9uYWwgb3BlcmF0b3IgZm9yIGZyYWdtZW50IDogJHtmcmFnbWVudH1gLCBmcmFnbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZXJFcnJvcihgSW52YWxpZCBjb25kaXRpb24gZm9yIGZyYWdtZW50IDogJHtmcmFnbWVudH1gLCBmcmFnbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmcmFnbWVudCA9IGZyYWdtZW50LnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXJzW2ZyYWdtZW50XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBpbGUocmF3VHJhbnNsYXRpb246IHN0cmluZywgcGFyYW1ldGVyczogT2JqZWN0LCBvbkVycm9yPzogUGFyc2VyQ2FsbGJhY2spOiBzdHJpbmcge1xuXG4gICAgICAgIGNvbnN0IHBhcnRzID0gcmF3VHJhbnNsYXRpb24uc3BsaXQoRnJhZ21lbnRzUGFyc2VyLmRlbGltUmVnZXhwKTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnRzID0gcmF3VHJhbnNsYXRpb24ubWF0Y2goRnJhZ21lbnRzUGFyc2VyLmRlbGltUmVnZXhwKTtcblxuICAgICAgICBsZXQgY29tcGlsZWRUcmFuc2xhdGlvbiA9ICcnO1xuXG4gICAgICAgIGlmICghb25FcnJvcikge1xuICAgICAgICAgICAgb25FcnJvciA9IEZyYWdtZW50c1BhcnNlci5kZWZhdWx0RXJyb3JDYWxsYmFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZnJhZ21lbnRzKSB7XG4gICAgICAgICAgICBjb21waWxlZFRyYW5zbGF0aW9uICs9IHJhd1RyYW5zbGF0aW9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbXBpbGVkVHJhbnNsYXRpb24gKz0gcGFydHNbaV07XG4gICAgICAgICAgICAgICAgaWYgKGkgPiBmcmFnbWVudHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29tcGlsZWRUcmFuc2xhdGlvbiArPSB0aGlzLmNvbXBpbGVGcmFnbWVudChmcmFnbWVudHNbaV0sIHBhcmFtZXRlcnMpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcGlsZWRUcmFuc2xhdGlvbiArPSBvbkVycm9yKGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21waWxlZFRyYW5zbGF0aW9uO1xuXG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class ParserError extends Error {
|
|
2
|
+
constructor(message, fragment) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.message = message;
|
|
5
|
+
this.fragment = fragment;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Parses logic inside translations.
|
|
10
|
+
*
|
|
11
|
+
* @export
|
|
12
|
+
*/
|
|
13
|
+
export class Parser {
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtc2lqaWwvc3JjL2xpYi9zZXJ2aWNlcy9wYXJzZXIvcGFyc2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sV0FBWSxTQUFRLEtBQUs7SUFDbEMsWUFBbUIsT0FBZSxFQUFTLFFBQWdCO1FBQ3ZELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQURDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO0lBRTNELENBQUM7Q0FDSjtBQUdEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQWdCLE1BQU07Q0FPM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUGFyc2VyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZyYWdtZW50OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSlcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFBhcnNlckNhbGxiYWNrID0gKF8gOiBQYXJzZXJFcnJvcikgPT4gc3RyaW5nO1xuLyoqXG4gKiBQYXJzZXMgbG9naWMgaW5zaWRlIHRyYW5zbGF0aW9ucy5cbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYXJzZXIge1xuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhIHN0cmluZywgaXNvbGF0aW5nIGxvZ2ljIGZyYWdtZW50cyBhbmQgY29tcGlsaW5nIHRoZW0uXG4gICAgICpcbiAgICAgKiBAbWVtYmVyT2YgUGFyc2VyXG4gICAgICovXG4gICAgY29tcGlsZTogKHRleHQ6IHN0cmluZywgcGFyYW1ldGVyczogYW55LCBlcnJvcj86IFBhcnNlckNhbGxiYWNrKSA9PiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common/http";
|
|
4
|
+
/**
|
|
5
|
+
* Fetches a bundle from a target url.
|
|
6
|
+
*
|
|
7
|
+
* @export
|
|
8
|
+
*/
|
|
9
|
+
export class HttpRequireService {
|
|
10
|
+
constructor(httpClient) {
|
|
11
|
+
this.httpClient = httpClient;
|
|
12
|
+
}
|
|
13
|
+
load(url) {
|
|
14
|
+
return this.httpClient.get(url).toPromise()
|
|
15
|
+
.then(data => data);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
HttpRequireService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: HttpRequireService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
+
HttpRequireService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: HttpRequireService });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: HttpRequireService, decorators: [{
|
|
21
|
+
type: Injectable
|
|
22
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cHJlcXVpcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtc2lqaWwvc3JjL2xpYi9zZXJ2aWNlcy9yZXF1aXJlL2h0dHByZXF1aXJlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7O0FBRzFDOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBRTNCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRSxDQUFDO0lBRTdDLElBQUksQ0FBQyxHQUFHO1FBQ0osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUU7YUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7K0dBUFEsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcXVpcmVTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1aXJlLmludGVyZmFjZSdcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuXG4vKipcbiAqIEZldGNoZXMgYSBidW5kbGUgZnJvbSBhIHRhcmdldCB1cmwuXG4gKlxuICogQGV4cG9ydFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSHR0cFJlcXVpcmVTZXJ2aWNlIGltcGxlbWVudHMgUmVxdWlyZVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KXt9XG5cbiAgICBsb2FkKHVybCkgOiBQcm9taXNlPE9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwpLnRvUHJvbWlzZSgpXG4gICAgICAgICAgICAudGhlbihkYXRhID0+IGRhdGEpO1xuICAgIH1cblxufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service used to fetch bundles.
|
|
3
|
+
*
|
|
4
|
+
* @export
|
|
5
|
+
*/
|
|
6
|
+
export class RequireService {
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXNpamlsL3NyYy9saWIvc2VydmljZXMvcmVxdWlyZS9yZXF1aXJlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFnQixjQUFjO0NBTW5DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXJ2aWNlIHVzZWQgdG8gZmV0Y2ggYnVuZGxlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXF1aXJlU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogRmV0Y2ggYSBidW5kbGUuXG4gICAgICogQG1lbWJlck9mIFJlcXVpcmVTZXJ2aWNlXG4gICAgICovXG4gICAgbG9hZDogKGZyb206IGFueSkgPT4gUHJvbWlzZTxPYmplY3Q+O1xufVxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contains Sijil options.
|
|
3
|
+
*
|
|
4
|
+
* @export
|
|
5
|
+
*/
|
|
6
|
+
export class SijilOpts {
|
|
7
|
+
}
|
|
8
|
+
export let defaultSijilOpts = {
|
|
9
|
+
defaultLanguage: window ? window.navigator.language.split('-')[0] : undefined
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lqaWwub3B0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtc2lqaWwvc3JjL2xpYi9zZXJ2aWNlcy9zaWppbC5vcHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQWdCLFNBQVM7Q0FHOUI7QUFFRCxNQUFNLENBQUMsSUFBSSxnQkFBZ0IsR0FBZTtJQUN0QyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Q0FDaEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGFpbnMgU2lqaWwgb3B0aW9ucy5cbiAqXG4gKiBAZXhwb3J0XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTaWppbE9wdHMge1xuICAgIC8qKiBGYWxsYmFjayBsYW5ndWFnZSB3aGVuIGEgdHJhbnNsYXRpb24gaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgY3VycmVudCBsYW5ndWFnZS4gKi9cbiAgICBkZWZhdWx0TGFuZ3VhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGxldCBkZWZhdWx0U2lqaWxPcHRzIDogU2lqaWxPcHRzID0ge1xuICAgIGRlZmF1bHRMYW5ndWFnZTogd2luZG93ID8gd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdIDogdW5kZWZpbmVkXG59O1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW9kZS1zaWppbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtc2lqaWwvc3JjL25neC1vZGUtc2lqaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-ode-sijil
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/services/bundles.service';
|
|
5
|
+
export * from './lib/components/s5l.component';
|
|
6
|
+
export * from './lib/pipes/translate.pipe';
|
|
7
|
+
export * from './lib/ngx-ode-sijil.module';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtc2lqaWwvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtb2RlLXNpamlsXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYnVuZGxlcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvczVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtb2RlLXNpamlsLm1vZHVsZSc7XG4iXX0=
|