@singleton-i18n/angular-client
Version:
Singleton client code for Angular 10.
94 lines • 9.51 kB
JavaScript
/*
* Copyright 2019-2021 VMware, Inc.
* SPDX-License-Identifier: EPL-2.0
*/
import { NgModule } from '@angular/core';
import { VIPLoader, I18nLoader } from './src/loader';
import { VIPService } from './src/services/vip.service';
import { L10nDirective } from './src/l10n.directive';
import { L10nPipe, L10nPipePlus } from './src/l10n.pipe';
import { DateFormatter } from './src/formatters/date.formatter';
import { MessageFormat } from './src/formatters/message.formatter';
import { DateFormatPipe, CurrencyFormatPipe, NumberFormatPipe, PercentFormatPipe, I18nPipe } from './src/i18n.pipe';
import { L10nService } from './src/services/l10n.service';
import { I18nService } from './src/services/i18n.service';
import { LocaleService } from './src/services/locale.service';
import { ResponseParser, VIPResponseParser } from './src/response.parser';
import { DefaultI18nContext, I18nContext } from './src/services/i18n.context';
export function provideRoot(config = {}) {
return [
{
provide: ResponseParser,
useClass: VIPResponseParser
},
config.coreLoader || {
provide: I18nLoader,
useClass: VIPLoader
},
config.i18nContext || {
provide: I18nContext,
useClass: DefaultI18nContext
},
VIPService,
LocaleService,
L10nService,
I18nService,
DateFormatter,
MessageFormat
];
}
export function provideChild(config = {}) {
return [
config.coreLoader || {
provide: I18nLoader,
useClass: VIPLoader
},
VIPService,
L10nService,
I18nService,
MessageFormat
];
}
export class VIPModule {
/**
* Use this method in your root module to provide the VIP Service
* @returns Module instance
* @memberof VipModule
*/
static forRoot(config = {}) {
return {
ngModule: VIPModule,
providers: provideRoot(config)
};
}
static forChild(config = {}) {
return {
ngModule: VIPModule,
providers: provideChild(config)
};
}
}
VIPModule.decorators = [
{ type: NgModule, args: [{
declarations: [
I18nPipe,
L10nPipe,
L10nPipePlus,
L10nDirective,
DateFormatPipe,
CurrencyFormatPipe,
NumberFormatPipe,
PercentFormatPipe
],
exports: [
L10nPipe,
L10nPipePlus,
L10nDirective,
DateFormatPipe,
CurrencyFormatPipe,
NumberFormatPipe,
PercentFormatPipe
]
},] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ybGlnZW5nL1Byb2plY3RzL0Rldm9wcy9DbGllbnRfQW5ndWxhcl9HaXRIdWJfTnBtanMvdmlwL2NpL3B1YjJvcmcvQ2xpZW50X0FuZ3VsYXJfR2l0SHViX05wbWpzL3NpbmdsZXRvbi9wcm9qZWN0cy9hbmd1bGFyLWNsaWVudC8iLCJzb3VyY2VzIjpbInZpcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFFBQVEsRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUNILGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1gsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBTzlFLE1BQU0sVUFBVSxXQUFXLENBQUMsU0FBdUIsRUFBRTtJQUNqRCxPQUFPO1FBQ0g7WUFDSSxPQUFPLEVBQUUsY0FBYztZQUN2QixRQUFRLEVBQUUsaUJBQWlCO1NBQzlCO1FBQ0QsTUFBTSxDQUFDLFVBQVUsSUFBSTtZQUNqQixPQUFPLEVBQUUsVUFBVTtZQUNuQixRQUFRLEVBQUUsU0FBUztTQUN0QjtRQUNELE1BQU0sQ0FBQyxXQUFXLElBQUk7WUFDbEIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsUUFBUSxFQUFFLGtCQUFrQjtTQUMvQjtRQUNELFVBQVU7UUFDVixhQUFhO1FBQ2IsV0FBVztRQUNYLFdBQVc7UUFDWCxhQUFhO1FBQ2IsYUFBYTtLQUNoQixDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsU0FBdUIsRUFBRTtJQUNsRCxPQUFPO1FBQ0gsTUFBTSxDQUFDLFVBQVUsSUFBSTtZQUNqQixPQUFPLEVBQUUsVUFBVTtZQUNuQixRQUFRLEVBQUUsU0FBUztTQUN0QjtRQUNELFVBQVU7UUFDVixXQUFXO1FBQ1gsV0FBVztRQUNYLGFBQWE7S0FDaEIsQ0FBQztBQUNOLENBQUM7QUF3QkQsTUFBTSxPQUFPLFNBQVM7SUFDbEI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBdUIsRUFBRTtRQUNwQyxPQUFPO1lBQ0gsUUFBUSxFQUFFLFNBQVM7WUFDbkIsU0FBUyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUM7U0FDakMsQ0FBQztJQUNOLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQXVCLEVBQUU7UUFDckMsT0FBTztZQUNILFFBQVEsRUFBRSxTQUFTO1lBQ25CLFNBQVMsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDO1NBQ2xDLENBQUM7SUFDTixDQUFDOzs7WUF2Q0osUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRTtvQkFDVixRQUFRO29CQUNSLFFBQVE7b0JBQ1IsWUFBWTtvQkFDWixhQUFhO29CQUNiLGNBQWM7b0JBQ2Qsa0JBQWtCO29CQUNsQixnQkFBZ0I7b0JBQ2hCLGlCQUFpQjtpQkFDcEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLFFBQVE7b0JBQ1IsWUFBWTtvQkFDWixhQUFhO29CQUNiLGNBQWM7b0JBQ2Qsa0JBQWtCO29CQUNsQixnQkFBZ0I7b0JBQ2hCLGlCQUFpQjtpQkFDcEI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxOS0yMDIxIFZNd2FyZSwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFZJUExvYWRlciwgSTE4bkxvYWRlciB9IGZyb20gJy4vc3JjL2xvYWRlcic7XG5pbXBvcnQgeyBWSVBTZXJ2aWNlIH0gZnJvbSAnLi9zcmMvc2VydmljZXMvdmlwLnNlcnZpY2UnO1xuaW1wb3J0IHsgTDEwbkRpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL2wxMG4uZGlyZWN0aXZlJztcbmltcG9ydCB7IEwxMG5QaXBlLCBMMTBuUGlwZVBsdXMgfSBmcm9tICcuL3NyYy9sMTBuLnBpcGUnO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdHRlciB9IGZyb20gJy4vc3JjL2Zvcm1hdHRlcnMvZGF0ZS5mb3JtYXR0ZXInO1xuaW1wb3J0IHsgTWVzc2FnZUZvcm1hdCB9IGZyb20gJy4vc3JjL2Zvcm1hdHRlcnMvbWVzc2FnZS5mb3JtYXR0ZXInO1xuaW1wb3J0IHtcbiAgICBEYXRlRm9ybWF0UGlwZSxcbiAgICBDdXJyZW5jeUZvcm1hdFBpcGUsXG4gICAgTnVtYmVyRm9ybWF0UGlwZSxcbiAgICBQZXJjZW50Rm9ybWF0UGlwZSxcbiAgICBJMThuUGlwZVxufSBmcm9tICcuL3NyYy9pMThuLnBpcGUnO1xuaW1wb3J0IHsgTDEwblNlcnZpY2UgfSBmcm9tICcuL3NyYy9zZXJ2aWNlcy9sMTBuLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuL3NyYy9zZXJ2aWNlcy9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJy4vc3JjL3NlcnZpY2VzL2xvY2FsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlc3BvbnNlUGFyc2VyLCBWSVBSZXNwb25zZVBhcnNlciB9IGZyb20gJy4vc3JjL3Jlc3BvbnNlLnBhcnNlcic7XG5pbXBvcnQgeyBEZWZhdWx0STE4bkNvbnRleHQsIEkxOG5Db250ZXh0IH0gZnJvbSAnLi9zcmMvc2VydmljZXMvaTE4bi5jb250ZXh0JztcblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVDb25maWcge1xuICAgIGNvcmVMb2FkZXI/OiBQcm92aWRlcjtcbiAgICBpMThuQ29udGV4dD86IFByb3ZpZGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVJvb3QoY29uZmlnOiBNb2R1bGVDb25maWcgPSB7fSk6IGFueVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBSZXNwb25zZVBhcnNlcixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBWSVBSZXNwb25zZVBhcnNlclxuICAgICAgICB9LFxuICAgICAgICBjb25maWcuY29yZUxvYWRlciB8fCB7XG4gICAgICAgICAgICBwcm92aWRlOiBJMThuTG9hZGVyLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IFZJUExvYWRlclxuICAgICAgICB9LFxuICAgICAgICBjb25maWcuaTE4bkNvbnRleHQgfHwge1xuICAgICAgICAgICAgcHJvdmlkZTogSTE4bkNvbnRleHQsXG4gICAgICAgICAgICB1c2VDbGFzczogRGVmYXVsdEkxOG5Db250ZXh0XG4gICAgICAgIH0sXG4gICAgICAgIFZJUFNlcnZpY2UsXG4gICAgICAgIExvY2FsZVNlcnZpY2UsXG4gICAgICAgIEwxMG5TZXJ2aWNlLFxuICAgICAgICBJMThuU2VydmljZSxcbiAgICAgICAgRGF0ZUZvcm1hdHRlcixcbiAgICAgICAgTWVzc2FnZUZvcm1hdFxuICAgIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQ2hpbGQoY29uZmlnOiBNb2R1bGVDb25maWcgPSB7fSk6IGFueVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBjb25maWcuY29yZUxvYWRlciB8fCB7XG4gICAgICAgICAgICBwcm92aWRlOiBJMThuTG9hZGVyLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IFZJUExvYWRlclxuICAgICAgICB9LFxuICAgICAgICBWSVBTZXJ2aWNlLFxuICAgICAgICBMMTBuU2VydmljZSxcbiAgICAgICAgSTE4blNlcnZpY2UsXG4gICAgICAgIE1lc3NhZ2VGb3JtYXRcbiAgICBdO1xufVxuXG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEkxOG5QaXBlLFxuICAgICAgICBMMTBuUGlwZSxcbiAgICAgICAgTDEwblBpcGVQbHVzLFxuICAgICAgICBMMTBuRGlyZWN0aXZlLFxuICAgICAgICBEYXRlRm9ybWF0UGlwZSxcbiAgICAgICAgQ3VycmVuY3lGb3JtYXRQaXBlLFxuICAgICAgICBOdW1iZXJGb3JtYXRQaXBlLFxuICAgICAgICBQZXJjZW50Rm9ybWF0UGlwZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBMMTBuUGlwZSxcbiAgICAgICAgTDEwblBpcGVQbHVzLFxuICAgICAgICBMMTBuRGlyZWN0aXZlLFxuICAgICAgICBEYXRlRm9ybWF0UGlwZSxcbiAgICAgICAgQ3VycmVuY3lGb3JtYXRQaXBlLFxuICAgICAgICBOdW1iZXJGb3JtYXRQaXBlLFxuICAgICAgICBQZXJjZW50Rm9ybWF0UGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVklQTW9kdWxlIHtcbiAgICAvKipcbiAgICAgKiBVc2UgdGhpcyBtZXRob2QgaW4geW91ciByb290IG1vZHVsZSB0byBwcm92aWRlIHRoZSBWSVAgU2VydmljZVxuICAgICAqIEByZXR1cm5zIE1vZHVsZSBpbnN0YW5jZVxuICAgICAqIEBtZW1iZXJvZiBWaXBNb2R1bGVcbiAgICAgKi9cbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc6IE1vZHVsZUNvbmZpZyA9IHt9KTogTW9kdWxlV2l0aFByb3ZpZGVyczxWSVBNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBWSVBNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IHByb3ZpZGVSb290KGNvbmZpZylcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZm9yQ2hpbGQoY29uZmlnOiBNb2R1bGVDb25maWcgPSB7fSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VklQTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogVklQTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBwcm92aWRlQ2hpbGQoY29uZmlnKVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==