fundamental-ngx
Version:
SAP Fundamentals, implemented in Angular
73 lines • 5.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ElementRef, EventEmitter, HostListener, Output, ViewChild, ViewEncapsulation } from '@angular/core';
/**
* A token is used to represent contextualizing information.
* They can be useful to show applied filters, selected values for form fields or object metadata.
*/
export class TokenComponent {
/**
* @hidden
* @param {?} elRef
*/
constructor(elRef) {
this.elRef = elRef;
/**
* Emitted when the *x* icon is clicked. Specifically, any pseudo-element.
*/
this.onCloseClick = new EventEmitter();
}
/**
* @hidden
* @param {?} event
* @return {?}
*/
clickHandler(event) {
if (this.contentContainer) {
if (this.elRef.nativeElement.contains(event.target) && !this.contentContainer.nativeElement.contains(event.target)) {
this.onCloseClick.emit();
}
}
}
}
TokenComponent.decorators = [
{ type: Component, args: [{
selector: 'fd-token',
template: "<span class=\"fd-token-content\" #contentContainer>\n <ng-content></ng-content>\n</span>\n\n",
host: {
class: 'fd-token',
'role': 'button'
},
encapsulation: ViewEncapsulation.None,
styles: [".fd-token-content{display:inline-block}"]
}] }
];
/** @nocollapse */
TokenComponent.ctorParameters = () => [
{ type: ElementRef }
];
TokenComponent.propDecorators = {
contentContainer: [{ type: ViewChild, args: ['contentContainer',] }],
onCloseClick: [{ type: Output }],
clickHandler: [{ type: HostListener, args: ['click', ['$event'],] }]
};
if (false) {
/**
* @hidden
* @type {?}
*/
TokenComponent.prototype.contentContainer;
/**
* Emitted when the *x* icon is clicked. Specifically, any pseudo-element.
* @type {?}
*/
TokenComponent.prototype.onCloseClick;
/**
* @type {?}
* @private
*/
TokenComponent.prototype.elRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vZnVuZGFtZW50YWwtbmd4LyIsInNvdXJjZXMiOlsibGliL3Rva2VuL3Rva2VuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQWdCeEgsTUFBTSxPQUFPLGNBQWM7Ozs7O0lBV3ZCLFlBQW9CLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7Ozs7UUFINUIsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUlyRSxDQUFDOzs7Ozs7SUFJRCxZQUFZLENBQUMsS0FBSztRQUNkLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDaEgsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUM1QjtTQUNKO0lBQ0wsQ0FBQzs7O1lBaENKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsMkdBQXFDO2dCQUVyQyxJQUFJLEVBQUU7b0JBQ0YsS0FBSyxFQUFFLFVBQVU7b0JBQ2pCLE1BQU0sRUFBRSxRQUFRO2lCQUNuQjtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDeEM7Ozs7WUFmbUIsVUFBVTs7OytCQW1CekIsU0FBUyxTQUFDLGtCQUFrQjsyQkFJNUIsTUFBTTsyQkFRTixZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDOzs7Ozs7O0lBWmpDLDBDQUM2Qjs7Ozs7SUFHN0Isc0NBQ3FFOzs7OztJQUd6RCwrQkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBBIHRva2VuIGlzIHVzZWQgdG8gcmVwcmVzZW50IGNvbnRleHR1YWxpemluZyBpbmZvcm1hdGlvbi5cbiAqIFRoZXkgY2FuIGJlIHVzZWZ1bCB0byBzaG93IGFwcGxpZWQgZmlsdGVycywgc2VsZWN0ZWQgdmFsdWVzIGZvciBmb3JtIGZpZWxkcyBvciBvYmplY3QgbWV0YWRhdGEuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtdG9rZW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b2tlbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9rZW4uY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtdG9rZW4nLFxuICAgICAgICAncm9sZSc6ICdidXR0b24nXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRva2VuQ29tcG9uZW50IHtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnY29udGVudENvbnRhaW5lcicpXG4gICAgY29udGVudENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlICp4KiBpY29uIGlzIGNsaWNrZWQuIFNwZWNpZmljYWxseSwgYW55IHBzZXVkby1lbGVtZW50LiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IG9uQ2xvc2VDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgY2xpY2tIYW5kbGVyKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiAhdGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25DbG9zZUNsaWNrLmVtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5cbiJdfQ==