UNPKG

@namefully/ng

Version:
80 lines 6.08 kB
/** * @fileoverview added by tsickle * Generated from: namefully.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, Inject } from '@angular/core'; import { Namefully, Config } from 'namefully'; import { CONFIG_TOKEN } from './namefully-config'; import * as i0 from "@angular/core"; import * as i1 from "./namefully-config"; /** * Inject this service into your Angular component to handle person names * * \@usageNotes * - import the module first to your app * - then use it with the following props bindings * // in the AppModule for example: * ```ts * import { NamefullyModule } from '\@namefully/ng' * * \@NgModule({ * imports: [BrowserModule, NamefullyModule.forRoot(...)], * declarations: [AppComponent], * bootstrap: [AppComponent] * }) * export class AppModule {} * ``` * * // in the AppComponent.ts * ```ts * \@Component({ template: `<p>{{ superName.shorten() }}</p>` }) * class AppComponent implements OnInit { * name = 'Mr Smith John Joe PhD'; * superName: Namefully; * * constructor(private service: NamefullyService) {} * * ngOnInit(): void { * this.superName = this.service.build( * this.name, * // override forRoot config here * ); * } * } * ``` */ export class NamefullyService { /** * @param {?} config */ constructor(config) { this.config = !!config.custom ? Config.merge(config.custom) : config.default; } /** * Constructs `Namefully` * @param {?} raw data to construct the name parts of a full name * @param {?=} options fallback config to override preset forRoot(config) * @return {?} */ build(raw, options) { return new Namefully(raw, options || this.config); } } NamefullyService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ NamefullyService.ctorParameters = () => [ { type: undefined, decorators: [{ type: Inject, args: [CONFIG_TOKEN,] }] } ]; /** @nocollapse */ NamefullyService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NamefullyService_Factory() { return new NamefullyService(i0.ɵɵinject(i1.CONFIG_TOKEN)); }, token: NamefullyService, providedIn: "root" }); if (false) { /** * Holds a json-like copy of the preset configuration injected by Angular * @type {?} * @private */ NamefullyService.prototype.config; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWZ1bGx5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmFtZWZ1bGx5L25nLyIsInNvdXJjZXMiOlsibmFtZWZ1bGx5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBMEIsTUFBTSxXQUFXLENBQUE7QUFDckUsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QzlELE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUFNekIsWUFBa0MsTUFBbUI7UUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUE7SUFDaEYsQ0FBQzs7Ozs7OztJQU9ELEtBQUssQ0FBQyxHQUFtRCxFQUFFLE9BQXlCO1FBQ2hGLE9BQU8sSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDckQsQ0FBQzs7O1lBbEJKLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7Ozs7NENBT2pCLE1BQU0sU0FBQyxZQUFZOzs7Ozs7Ozs7SUFGaEMsa0NBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5hbWVmdWxseSwgQ29uZmlnLCBOYW1lLCBKc29uTmFtZSwgUGFyc2VyIH0gZnJvbSAnbmFtZWZ1bGx5J1xuaW1wb3J0IHsgQ29uZmlnVG9rZW4sIENPTkZJR19UT0tFTiB9IGZyb20gJy4vbmFtZWZ1bGx5LWNvbmZpZydcblxuLyoqXG4gKiBJbmplY3QgdGhpcyBzZXJ2aWNlIGludG8geW91ciBBbmd1bGFyIGNvbXBvbmVudCB0byBoYW5kbGUgcGVyc29uIG5hbWVzXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqIC0gaW1wb3J0IHRoZSBtb2R1bGUgZmlyc3QgdG8geW91ciBhcHBcbiAqIC0gdGhlbiB1c2UgaXQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BzIGJpbmRpbmdzXG4gKiAvLyBpbiB0aGUgQXBwTW9kdWxlIGZvciBleGFtcGxlOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IE5hbWVmdWxseU1vZHVsZSB9IGZyb20gJ0BuYW1lZnVsbHkvbmcnXG4gKlxuICogQE5nTW9kdWxlKHtcbiAqICAgaW1wb3J0czogW0Jyb3dzZXJNb2R1bGUsIE5hbWVmdWxseU1vZHVsZS5mb3JSb290KC4uLildLFxuICogICBkZWNsYXJhdGlvbnM6IFtBcHBDb21wb25lbnRdLFxuICogICBib290c3RyYXA6IFtBcHBDb21wb25lbnRdXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7fVxuICogYGBgXG4gKlxuICogLy8gaW4gdGhlIEFwcENvbXBvbmVudC50c1xuICogYGBgdHNcbiAqIEBDb21wb25lbnQoeyB0ZW1wbGF0ZTogYDxwPnt7IHN1cGVyTmFtZS5zaG9ydGVuKCkgfX08L3A+YCB9KVxuICogY2xhc3MgQXBwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAqICAgbmFtZSA9ICdNciBTbWl0aCBKb2huIEpvZSBQaEQnO1xuICogICBzdXBlck5hbWU6IE5hbWVmdWxseTtcbiAqXG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogTmFtZWZ1bGx5U2VydmljZSkge31cbiAqXG4gKiAgIG5nT25Jbml0KCk6IHZvaWQge1xuICogICAgICAgdGhpcy5zdXBlck5hbWUgPSB0aGlzLnNlcnZpY2UuYnVpbGQoXG4gKiAgICAgICAgICAgdGhpcy5uYW1lLFxuICogICAgICAgICAgICAvLyBvdmVycmlkZSBmb3JSb290IGNvbmZpZyBoZXJlXG4gKiAgICAgICAgICAgKTtcbiAqICAgICAgIH1cbiAqICAgfVxuICogIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5hbWVmdWxseVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEhvbGRzIGEganNvbi1saWtlIGNvcHkgb2YgdGhlIHByZXNldCBjb25maWd1cmF0aW9uIGluamVjdGVkIGJ5IEFuZ3VsYXJcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogQ29uZmlnXG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KENPTkZJR19UT0tFTikgY29uZmlnOiBDb25maWdUb2tlbikge1xuICAgICAgICB0aGlzLmNvbmZpZyA9ICEhY29uZmlnLmN1c3RvbSA/IENvbmZpZy5tZXJnZShjb25maWcuY3VzdG9tKSA6IGNvbmZpZy5kZWZhdWx0XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBgTmFtZWZ1bGx5YFxuICAgICAqIEBwYXJhbSByYXcgZGF0YSB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgcGFydHMgb2YgYSBmdWxsIG5hbWVcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBmYWxsYmFjayBjb25maWcgdG8gb3ZlcnJpZGUgcHJlc2V0IGZvclJvb3QoY29uZmlnKVxuICAgICAqL1xuICAgIGJ1aWxkKHJhdzogc3RyaW5nIHwgc3RyaW5nW10gfCBOYW1lW10gfCBKc29uTmFtZSB8IFBhcnNlciwgb3B0aW9ucz86IFBhcnRpYWw8Q29uZmlnPik6IE5hbWVmdWxseSB7XG4gICAgICAgIHJldHVybiBuZXcgTmFtZWZ1bGx5KHJhdywgb3B0aW9ucyB8fCB0aGlzLmNvbmZpZylcbiAgICB9XG59XG4iXX0=