@kushki/ng-suka
Version:
<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>
150 lines • 9.91 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
// tslint:disable: variable-name
import { Directive, HostBinding, Input, ElementRef, Renderer2, Inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { iconDefs } from '../icon/icon-defs';
const ɵ0 = /**
* @param {?} iconDef
* @return {?}
*/
iconDef => iconDef.name === 'arrow-right';
/** @type {?} */
const arrowImg = iconDefs.find((ɵ0)).template;
const ɵ1 = /**
* @param {?} iconDef
* @return {?}
*/
iconDef => iconDef.name === 'external-link';
/** @type {?} */
const externalImg = iconDefs.find((ɵ1)).template;
// tslint:disable-next-line: directive-class-suffix
export class Link {
/**
* @param {?} elementRef
* @param {?} renderer
* @param {?} document
*/
constructor(elementRef, renderer, document) {
this.elementRef = elementRef;
this.renderer = renderer;
this.document = document;
this.baseClass = true;
this.arrow = false;
}
/**
* Set to true to disable link.
* @param {?} disabled
* @return {?}
*/
set disabled(disabled) {
this._disabled = disabled;
this.tabindex = this.disabled ? -1 : null;
}
/**
* @return {?}
*/
get disabled() {
return this._disabled;
}
/**
* @param {?} external
* @return {?}
*/
set external(external) {
this._external = external;
this.target = this.external ? '_blank' : null;
this.ref = this.external ? 'noopener' : null;
}
/**
* @return {?}
*/
get external() {
return this._external;
}
/**
* @return {?}
*/
ngOnInit() {
if (this.arrow || this.external) {
/** @type {?} */
const child = document.createElement('span');
child.className = 'link__icon';
if (this.arrow) {
child.className += ' link__icon--arrow';
child.innerHTML = arrowImg;
}
if (this.external) {
child.innerHTML = externalImg;
}
this.renderer.appendChild(this.elementRef.nativeElement, child);
}
}
}
Link.decorators = [
{ type: Directive, args: [{
selector: '[sukaLink]'
},] }
];
/** @nocollapse */
Link.ctorParameters = () => [
{ type: ElementRef },
{ type: Renderer2 },
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
];
Link.propDecorators = {
baseClass: [{ type: HostBinding, args: ['class.link',] }],
tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],
target: [{ type: HostBinding, args: ['attr.target',] }],
ref: [{ type: HostBinding, args: ['attr.ref',] }],
disabled: [{ type: Input }, { type: HostBinding, args: ['attr.aria-disabled',] }, { type: HostBinding, args: ['class.link--disabled',] }],
arrow: [{ type: HostBinding, args: ['class.link--arrow',] }, { type: Input }],
external: [{ type: Input }, { type: HostBinding, args: ['class.link--external',] }]
};
if (false) {
/** @type {?} */
Link.prototype.baseClass;
/**
* Automatically set to `-1` when link is disabled.
* @type {?}
*/
Link.prototype.tabindex;
/**
* Set target and ref for external links
* @type {?}
*/
Link.prototype.target;
/** @type {?} */
Link.prototype.ref;
/**
* @type {?}
* @private
*/
Link.prototype._disabled;
/** @type {?} */
Link.prototype.arrow;
/**
* @type {?}
* @private
*/
Link.prototype._external;
/**
* @type {?}
* @private
*/
Link.prototype.elementRef;
/**
* @type {?}
* @private
*/
Link.prototype.renderer;
/**
* @type {?}
* @private
*/
Link.prototype.document;
}
export { ɵ0, ɵ1 };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3VzaGtpL25nLXN1a2EvIiwic291cmNlcyI6WyJsaWIvbGluay9saW5rLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUVkLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxhQUFhOztNQUFsRSxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksTUFBMkMsQ0FBQyxRQUFROzs7OztBQUNoRCxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssZUFBZTs7TUFBdkUsV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLE1BQTZDLENBQUMsUUFBUTtBQUt2RixtREFBbUQ7QUFDbkQsTUFBTSxPQUFPLElBQUk7Ozs7OztJQStDZixZQUFvQixVQUFzQixFQUFVLFFBQW1CLEVBQTRCLFFBQVE7UUFBdkYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBNEIsYUFBUSxHQUFSLFFBQVEsQ0FBQTtRQTlDaEYsY0FBUyxHQUFHLElBQUksQ0FBQztRQThCRCxVQUFLLEdBQUcsS0FBSyxDQUFDO0lBZ0JzRCxDQUFDOzs7Ozs7SUE5QmhILElBR0ksUUFBUSxDQUFDLFFBQWlCO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM1QyxDQUFDOzs7O0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBTUQsSUFFSSxRQUFRLENBQUMsUUFBaUI7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM5QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUM7Ozs7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQzs7OztJQU1ELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTs7a0JBQ3pCLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUM1QyxLQUFLLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQztZQUUvQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2QsS0FBSyxDQUFDLFNBQVMsSUFBSSxvQkFBb0IsQ0FBQztnQkFDeEMsS0FBSyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7YUFDNUI7WUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO2FBQy9CO1lBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDOzs7WUFyRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2FBQ3ZCOzs7O1lBYkMsVUFBVTtZQUNWLFNBQVM7NENBNkRpRSxNQUFNLFNBQUMsUUFBUTs7O3dCQTlDeEYsV0FBVyxTQUFDLFlBQVk7dUJBS3hCLFdBQVcsU0FBQyxlQUFlO3FCQUszQixXQUFXLFNBQUMsYUFBYTtrQkFDekIsV0FBVyxTQUFDLFVBQVU7dUJBS3RCLEtBQUssWUFDTCxXQUFXLFNBQUMsb0JBQW9CLGNBQ2hDLFdBQVcsU0FBQyxzQkFBc0I7b0JBWWxDLFdBQVcsU0FBQyxtQkFBbUIsY0FBRyxLQUFLO3VCQUV2QyxLQUFLLFlBQ0wsV0FBVyxTQUFDLHNCQUFzQjs7OztJQWpDbkMseUJBQTRDOzs7OztJQUs1Qyx3QkFBK0M7Ozs7O0lBSy9DLHNCQUEyQzs7SUFDM0MsbUJBQXFDOzs7OztJQWlCckMseUJBQTJCOztJQUUzQixxQkFBeUQ7Ozs7O0lBY3pELHlCQUEyQjs7Ozs7SUFFZiwwQkFBOEI7Ozs7O0lBQUUsd0JBQTJCOzs7OztJQUFFLHdCQUFrQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOiB2YXJpYWJsZS1uYW1lXG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgRWxlbWVudFJlZixcbiAgUmVuZGVyZXIyLFxuICBJbmplY3QsXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGljb25EZWZzIH0gZnJvbSAnLi4vaWNvbi9pY29uLWRlZnMnO1xuXG5jb25zdCBhcnJvd0ltZyA9IGljb25EZWZzLmZpbmQoaWNvbkRlZiA9PiBpY29uRGVmLm5hbWUgPT09ICdhcnJvdy1yaWdodCcpLnRlbXBsYXRlO1xuY29uc3QgZXh0ZXJuYWxJbWcgPSBpY29uRGVmcy5maW5kKGljb25EZWYgPT4gaWNvbkRlZi5uYW1lID09PSAnZXh0ZXJuYWwtbGluaycpLnRlbXBsYXRlO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc3VrYUxpbmtdJ1xufSlcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIExpbmsgaW1wbGVtZW50cyBPbkluaXQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxpbmsnKSBiYXNlQ2xhc3MgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHNldCB0byBgLTFgIHdoZW4gbGluayBpcyBkaXNhYmxlZC5cbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpIHRhYmluZGV4OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNldCB0YXJnZXQgYW5kIHJlZiBmb3IgZXh0ZXJuYWwgbGlua3NcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci50YXJnZXQnKSB0YXJnZXQ6IHN0cmluZztcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJlZicpIHJlZjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gdHJ1ZSB0byBkaXNhYmxlIGxpbmsuXG4gICAqL1xuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kaXNhYmxlZCcpXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGluay0tZGlzYWJsZWQnKVxuICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgIHRoaXMudGFiaW5kZXggPSB0aGlzLmRpc2FibGVkID8gLTEgOiBudWxsO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGluay0tYXJyb3cnKSBASW5wdXQoKSBhcnJvdyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGluay0tZXh0ZXJuYWwnKVxuICBzZXQgZXh0ZXJuYWwoZXh0ZXJuYWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9leHRlcm5hbCA9IGV4dGVybmFsO1xuICAgIHRoaXMudGFyZ2V0ID0gdGhpcy5leHRlcm5hbCA/ICdfYmxhbmsnIDogbnVsbDtcbiAgICB0aGlzLnJlZiA9IHRoaXMuZXh0ZXJuYWwgPyAnbm9vcGVuZXInIDogbnVsbDtcbiAgfVxuXG4gIGdldCBleHRlcm5hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZXh0ZXJuYWw7XG4gIH1cblxuICBwcml2YXRlIF9leHRlcm5hbDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYXJyb3cgfHwgdGhpcy5leHRlcm5hbCkge1xuICAgICAgY29uc3QgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBjaGlsZC5jbGFzc05hbWUgPSAnbGlua19faWNvbic7XG5cbiAgICAgIGlmICh0aGlzLmFycm93KSB7XG4gICAgICAgIGNoaWxkLmNsYXNzTmFtZSArPSAnIGxpbmtfX2ljb24tLWFycm93JztcbiAgICAgICAgY2hpbGQuaW5uZXJIVE1MID0gYXJyb3dJbWc7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmV4dGVybmFsKSB7XG4gICAgICAgIGNoaWxkLmlubmVySFRNTCA9IGV4dGVybmFsSW1nO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjaGlsZCk7XG4gICAgfVxuICB9XG59XG4iXX0=