@namefully/ng
Version:
namefully for Angular
80 lines • 6.08 kB
JavaScript
/**
* @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=