angular-phonetic
Version:
A simple component to easily render ruby text.
58 lines • 3.89 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input } from '@angular/core';
export class AngularPhoneticComponent {
constructor() {
this.brackets = '()';
}
/**
* @return {?}
*/
ngOnInit() {
/** @type {?} */
const parsed = this.parseBrackets();
this.left = parsed[0];
this.right = parsed[1];
}
/**
* @private
* @return {?}
*/
parseBrackets() {
switch (this.brackets.length) {
case 0:
return ['', ''];
case 1:
return [this.brackets, this.brackets];
default:
return [this.brackets[0], this.brackets[1]];
}
}
}
AngularPhoneticComponent.decorators = [
{ type: Component, args: [{
selector: 'ng-phonetic',
template: `
<ruby>
<ng-content></ng-content> <rp>{{left}}</rp> <rt>{{phonetic}}</rt><rp>{{right}}</rp>
</ruby>
`
}] }
];
AngularPhoneticComponent.propDecorators = {
phonetic: [{ type: Input }],
brackets: [{ type: Input }]
};
if (false) {
/** @type {?} */
AngularPhoneticComponent.prototype.phonetic;
/** @type {?} */
AngularPhoneticComponent.prototype.brackets;
/** @type {?} */
AngularPhoneticComponent.prototype.left;
/** @type {?} */
AngularPhoneticComponent.prototype.right;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1waG9uZXRpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXBob25ldGljLyIsInNvdXJjZXMiOlsibGliL2FuZ3VsYXItcGhvbmV0aWMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVd6RCxNQUFNLE9BQU8sd0JBQXdCO0lBVHJDO1FBWVcsYUFBUSxHQUFHLElBQUksQ0FBQztJQXFCM0IsQ0FBQzs7OztJQWpCQyxRQUFROztjQUNBLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7Ozs7O0lBRU8sYUFBYTtRQUNuQixRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQzVCLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2xCLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEM7Z0JBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQzs7O1lBL0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsUUFBUSxFQUFFOzs7O0dBSVQ7YUFFRjs7O3VCQUdFLEtBQUs7dUJBQ0wsS0FBSzs7OztJQUROLDRDQUEwQjs7SUFDMUIsNENBQXlCOztJQUN6Qix3Q0FBYTs7SUFDYix5Q0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1waG9uZXRpYycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHJ1Ynk+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+IDxycD57e2xlZnR9fTwvcnA+IDxydD57e3Bob25ldGljfX08L3J0PjxycD57e3JpZ2h0fX08L3JwPlxuICAgIDwvcnVieT5cbiAgYCxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyUGhvbmV0aWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHBob25ldGljOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJyYWNrZXRzID0gJygpJztcbiAgbGVmdDogc3RyaW5nO1xuICByaWdodDogc3RyaW5nO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VCcmFja2V0cygpO1xuICAgIHRoaXMubGVmdCA9IHBhcnNlZFswXTtcbiAgICB0aGlzLnJpZ2h0ID0gcGFyc2VkWzFdO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUJyYWNrZXRzKCk6IFtzdHJpbmcsIHN0cmluZ10ge1xuICAgIHN3aXRjaCAodGhpcy5icmFja2V0cy5sZW5ndGgpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgcmV0dXJuIFsnJywgJyddO1xuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gW3RoaXMuYnJhY2tldHMsIHRoaXMuYnJhY2tldHNdO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFt0aGlzLmJyYWNrZXRzWzBdLCB0aGlzLmJyYWNrZXRzWzFdXTtcbiAgICB9XG4gIH1cblxufVxuIl19