UNPKG

ng-zorro-antd-mobile

Version:

An enterprise-class mobile UI components based on Ant Design and Angular

118 lines (117 loc) 8.69 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Inject, Injectable, Optional, SkipSelf } from '@angular/core'; import { LOCAL_PROVIDER_TOKEN } from './locale-provider.token'; import { BehaviorSubject } from 'rxjs'; import zh_CN from './languages/zh_CN'; export class LocaleProviderService { /** * @param {?} locale */ constructor(locale) { this._change = new BehaviorSubject(this._locale); this.setLocale(locale || zh_CN); } /** * @return {?} */ get localeChange() { return this._change.asObservable(); } /** * @param {?} keyPath * @return {?} */ getLocaleValue(keyPath) { /** @type {?} */ const content = /** @type {?} */ (this._getObjectPath(this._locale, keyPath)); if (typeof content === 'string') { return content; } return ''; } /** * @param {?} keyPath * @return {?} */ getLocaleSubObj(keyPath) { /** @type {?} */ const content = /** @type {?} */ (this._getObjectPath(this._locale, keyPath)); if (typeof content === 'object') { return content; } return null; } /** * @param {?} locale * @return {?} */ setLocale(locale) { if (!locale || (this._locale && this._locale.locale === locale.locale)) { return; } this._locale = locale; this._change.next(locale); } /** * @return {?} */ getLocaleId() { return this._locale && this._locale.locale ? this._locale.locale : ''; } /** * @return {?} */ getLocale() { return this._locale; } /** * @param {?} obj * @param {?} path * @return {?} */ _getObjectPath(obj, path) { /** @type {?} */ let res = obj; /** @type {?} */ const paths = path.split('.'); /** @type {?} */ const depth = paths.length; /** @type {?} */ let index = 0; while (res && index < depth) { res = res[paths[index++]]; } return index === depth ? res : null; } } LocaleProviderService.decorators = [ { type: Injectable } ]; /** @nocollapse */ LocaleProviderService.ctorParameters = () => [ { type: undefined, decorators: [{ type: Inject, args: [LOCAL_PROVIDER_TOKEN,] }] } ]; if (false) { /** @type {?} */ LocaleProviderService.prototype._locale; /** @type {?} */ LocaleProviderService.prototype._change; } /** * @param {?} exist * @param {?} locale * @return {?} */ export function LOCALE_PROVIDER_SERVICE_FACTORY(exist, locale) { return exist || new LocaleProviderService(locale); } /** @type {?} */ export const LOCALE_PROVIDER_SERVICE_PROVIDER = { provide: LocaleProviderService, useFactory: LOCALE_PROVIDER_SERVICE_FACTORY, deps: [[new Optional(), new SkipSelf(), LocaleProviderService], LOCAL_PROVIDER_TOKEN] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbImxvY2FsZS1wcm92aWRlci9sb2NhbGUtcHJvdmlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBR3RDLE1BQU07Ozs7SUFJSixZQUEwQyxNQUFXO3VCQUZuQyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBR3RELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDO0tBQ2pDOzs7O0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0tBQ3BDOzs7OztJQUVELGNBQWMsQ0FBQyxPQUFlOztRQUM1QixNQUFNLE9BQU8scUJBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBVyxFQUFDO1FBQ3JFLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQy9CLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxFQUFFLENBQUM7S0FDWDs7Ozs7SUFFRCxlQUFlLENBQUMsT0FBZTs7UUFDN0IsTUFBTSxPQUFPLHFCQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVcsRUFBQztRQUNyRSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUMvQixPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0tBQ2I7Ozs7O0lBRUQsU0FBUyxDQUFDLE1BQVc7UUFDbkIsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RFLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzNCOzs7O0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUN2RTs7OztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7S0FDckI7Ozs7OztJQUVPLGNBQWMsQ0FBQyxHQUFXLEVBQUUsSUFBWTs7UUFDOUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDOztRQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7O1FBQzlCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7O1FBQzNCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLE9BQU8sR0FBRyxJQUFJLEtBQUssR0FBRyxLQUFLLEVBQUU7WUFDM0IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs7OztZQXJEdkMsVUFBVTs7Ozs0Q0FLSSxNQUFNLFNBQUMsb0JBQW9COzs7Ozs7Ozs7Ozs7O0FBb0QxQyxNQUFNLDBDQUEwQyxLQUE0QixFQUFFLE1BQVc7SUFDdkYsT0FBTyxLQUFLLElBQUksSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUNuRDs7QUFFRCxhQUFhLGdDQUFnQyxHQUFhO0lBQ3hELE9BQU8sRUFBSyxxQkFBcUI7SUFDakMsVUFBVSxFQUFFLCtCQUErQjtJQUMzQyxJQUFJLEVBQVEsQ0FBRSxDQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxxQkFBcUIsQ0FBRSxFQUFFLG9CQUFvQixDQUFDO0NBQy9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIFByb3ZpZGVyLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExPQ0FMX1BST1ZJREVSX1RPS0VOIH0gZnJvbSAnLi9sb2NhbGUtcHJvdmlkZXIudG9rZW4nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgemhfQ04gZnJvbSAnLi9sYW5ndWFnZXMvemhfQ04nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxlUHJvdmlkZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfbG9jYWxlOiBhbnk7XG4gIHByaXZhdGUgX2NoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLl9sb2NhbGUpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTE9DQUxfUFJPVklERVJfVE9LRU4pIGxvY2FsZTogYW55KSB7XG4gICAgdGhpcy5zZXRMb2NhbGUobG9jYWxlIHx8IHpoX0NOKTtcbiAgfVxuXG4gIGdldCBsb2NhbGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0TG9jYWxlVmFsdWUoa2V5UGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fZ2V0T2JqZWN0UGF0aCh0aGlzLl9sb2NhbGUsIGtleVBhdGgpIGFzIHN0cmluZztcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0TG9jYWxlU3ViT2JqKGtleVBhdGg6IHN0cmluZyk6IG9iamVjdCB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuX2dldE9iamVjdFBhdGgodGhpcy5fbG9jYWxlLCBrZXlQYXRoKSBhcyBvYmplY3Q7XG4gICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc2V0TG9jYWxlKGxvY2FsZTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFsb2NhbGUgfHwgKHRoaXMuX2xvY2FsZSAmJiB0aGlzLl9sb2NhbGUubG9jYWxlID09PSBsb2NhbGUubG9jYWxlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9sb2NhbGUgPSBsb2NhbGU7XG4gICAgdGhpcy5fY2hhbmdlLm5leHQobG9jYWxlKTtcbiAgfVxuXG4gIGdldExvY2FsZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZSAmJiB0aGlzLl9sb2NhbGUubG9jYWxlID8gdGhpcy5fbG9jYWxlLmxvY2FsZSA6ICcnO1xuICB9XG5cbiAgZ2V0TG9jYWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE9iamVjdFBhdGgob2JqOiBvYmplY3QsIHBhdGg6IHN0cmluZyk6IHN0cmluZyB8IG9iamVjdCB8IGFueSB7XG4gICAgbGV0IHJlcyA9IG9iajtcbiAgICBjb25zdCBwYXRocyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBjb25zdCBkZXB0aCA9IHBhdGhzLmxlbmd0aDtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIHdoaWxlIChyZXMgJiYgaW5kZXggPCBkZXB0aCkge1xuICAgICAgcmVzID0gcmVzW3BhdGhzW2luZGV4KytdXTtcbiAgICB9XG4gICAgcmV0dXJuIGluZGV4ID09PSBkZXB0aCA/IHJlcyA6IG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExPQ0FMRV9QUk9WSURFUl9TRVJWSUNFX0ZBQ1RPUlkoZXhpc3Q6IExvY2FsZVByb3ZpZGVyU2VydmljZSwgbG9jYWxlOiBhbnkpOiBMb2NhbGVQcm92aWRlclNlcnZpY2Uge1xuICByZXR1cm4gZXhpc3QgfHwgbmV3IExvY2FsZVByb3ZpZGVyU2VydmljZShsb2NhbGUpO1xufVxuXG5leHBvcnQgY29uc3QgTE9DQUxFX1BST1ZJREVSX1NFUlZJQ0VfUFJPVklERVI6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlICAgOiBMb2NhbGVQcm92aWRlclNlcnZpY2UsXG4gIHVzZUZhY3Rvcnk6IExPQ0FMRV9QUk9WSURFUl9TRVJWSUNFX0ZBQ1RPUlksXG4gIGRlcHMgICAgICA6IFsgWyBuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIExvY2FsZVByb3ZpZGVyU2VydmljZSBdLCBMT0NBTF9QUk9WSURFUl9UT0tFTl1cbn07XG4iXX0=