ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
124 lines • 8.89 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,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 './locale/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;
}
/**
* @private
* @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 {?}
* @private
*/
LocaleProviderService.prototype._locale;
/**
* @type {?}
* @private
*/
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbImxvY2FsZS1wcm92aWRlci9sb2NhbGUtcHJvdmlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBR25DLE1BQU0sT0FBTyxxQkFBcUI7Ozs7SUFJaEMsWUFBMEMsTUFBVztRQUY3QyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBR3ZELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Ozs7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQzs7Ozs7SUFFRCxjQUFjLENBQUMsT0FBZTs7Y0FDdEIsT0FBTyxHQUFHLG1CQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBVTtRQUNwRSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUMvQixPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7Ozs7SUFFRCxlQUFlLENBQUMsT0FBZTs7Y0FDdkIsT0FBTyxHQUFHLG1CQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBVTtRQUNwRSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUMvQixPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7Ozs7SUFFRCxTQUFTLENBQUMsTUFBVztRQUNuQixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEUsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEUsQ0FBQzs7OztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQzs7Ozs7OztJQUVPLGNBQWMsQ0FBQyxHQUFXLEVBQUUsSUFBWTs7WUFDMUMsR0FBRyxHQUFHLEdBQUc7O2NBQ1AsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDOztjQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU07O1lBQ3RCLEtBQUssR0FBRyxDQUFDO1FBQ2IsT0FBTyxHQUFHLElBQUksS0FBSyxHQUFHLEtBQUssRUFBRTtZQUMzQixHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3RDLENBQUM7OztZQXRERixVQUFVOzs7OzRDQUtJLE1BQU0sU0FBQyxvQkFBb0I7Ozs7Ozs7SUFIeEMsd0NBQXFCOzs7OztJQUNyQix3Q0FBeUQ7Ozs7Ozs7QUFzRDNELE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxLQUE0QixFQUFFLE1BQVc7SUFDdkYsT0FBTyxLQUFLLElBQUksSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwRCxDQUFDOztBQUVELE1BQU0sT0FBTyxnQ0FBZ0MsR0FBYTtJQUN4RCxPQUFPLEVBQUUscUJBQXFCO0lBQzlCLFVBQVUsRUFBRSwrQkFBK0I7SUFDM0MsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUscUJBQXFCLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztDQUN0RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUHJvdmlkZXIsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTE9DQUxfUFJPVklERVJfVE9LRU4gfSBmcm9tICcuL2xvY2FsZS1wcm92aWRlci50b2tlbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB6aF9DTiBmcm9tICcuL2xvY2FsZS96aF9DTic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2NhbGVQcm92aWRlclNlcnZpY2Uge1xuICBwcml2YXRlIF9sb2NhbGU6IGFueTtcbiAgcHJpdmF0ZSBfY2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMuX2xvY2FsZSk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTF9QUk9WSURFUl9UT0tFTikgbG9jYWxlOiBhbnkpIHtcbiAgICB0aGlzLnNldExvY2FsZShsb2NhbGUgfHwgemhfQ04pO1xuICB9XG5cbiAgZ2V0IGxvY2FsZUNoYW5nZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRMb2NhbGVWYWx1ZShrZXlQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9nZXRPYmplY3RQYXRoKHRoaXMuX2xvY2FsZSwga2V5UGF0aCkgYXMgc3RyaW5nO1xuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXRMb2NhbGVTdWJPYmooa2V5UGF0aDogc3RyaW5nKTogb2JqZWN0IHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fZ2V0T2JqZWN0UGF0aCh0aGlzLl9sb2NhbGUsIGtleVBhdGgpIGFzIG9iamVjdDtcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzZXRMb2NhbGUobG9jYWxlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWxvY2FsZSB8fCAodGhpcy5fbG9jYWxlICYmIHRoaXMuX2xvY2FsZS5sb2NhbGUgPT09IGxvY2FsZS5sb2NhbGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2xvY2FsZSA9IGxvY2FsZTtcbiAgICB0aGlzLl9jaGFuZ2UubmV4dChsb2NhbGUpO1xuICB9XG5cbiAgZ2V0TG9jYWxlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbG9jYWxlICYmIHRoaXMuX2xvY2FsZS5sb2NhbGUgPyB0aGlzLl9sb2NhbGUubG9jYWxlIDogJyc7XG4gIH1cblxuICBnZXRMb2NhbGUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0T2JqZWN0UGF0aChvYmo6IG9iamVjdCwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHwgb2JqZWN0IHwgYW55IHtcbiAgICBsZXQgcmVzID0gb2JqO1xuICAgIGNvbnN0IHBhdGhzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGRlcHRoID0gcGF0aHMubGVuZ3RoO1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgd2hpbGUgKHJlcyAmJiBpbmRleCA8IGRlcHRoKSB7XG4gICAgICByZXMgPSByZXNbcGF0aHNbaW5kZXgrK11dO1xuICAgIH1cbiAgICByZXR1cm4gaW5kZXggPT09IGRlcHRoID8gcmVzIDogbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gTE9DQUxFX1BST1ZJREVSX1NFUlZJQ0VfRkFDVE9SWShleGlzdDogTG9jYWxlUHJvdmlkZXJTZXJ2aWNlLCBsb2NhbGU6IGFueSk6IExvY2FsZVByb3ZpZGVyU2VydmljZSB7XG4gIHJldHVybiBleGlzdCB8fCBuZXcgTG9jYWxlUHJvdmlkZXJTZXJ2aWNlKGxvY2FsZSk7XG59XG5cbmV4cG9ydCBjb25zdCBMT0NBTEVfUFJPVklERVJfU0VSVklDRV9QUk9WSURFUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IExvY2FsZVByb3ZpZGVyU2VydmljZSxcbiAgdXNlRmFjdG9yeTogTE9DQUxFX1BST1ZJREVSX1NFUlZJQ0VfRkFDVE9SWSxcbiAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIExvY2FsZVByb3ZpZGVyU2VydmljZV0sIExPQ0FMX1BST1ZJREVSX1RPS0VOXVxufTtcbiJdfQ==