@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>
170 lines • 11.1 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';
var ɵ0 = /**
* @param {?} iconDef
* @return {?}
*/
function (iconDef) { return iconDef.name === 'arrow-right'; };
/** @type {?} */
var arrowImg = iconDefs.find((ɵ0)).template;
var ɵ1 = /**
* @param {?} iconDef
* @return {?}
*/
function (iconDef) { return iconDef.name === 'external-link'; };
/** @type {?} */
var externalImg = iconDefs.find((ɵ1)).template;
var Link = /** @class */ (function () {
function Link(elementRef, renderer, document) {
this.elementRef = elementRef;
this.renderer = renderer;
this.document = document;
this.baseClass = true;
/**
* Set to `true` to display an arrow next to the link
*/
this.arrow = false;
}
Object.defineProperty(Link.prototype, "disabled", {
get: /**
* @return {?}
*/
function () {
return this._disabled;
},
/**
* Set to `true` to disable the link.
*/
set: /**
* Set to `true` to disable the link.
* @param {?} disabled
* @return {?}
*/
function (disabled) {
this._disabled = disabled;
this.tabindex = this.disabled ? -1 : null;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Link.prototype, "external", {
get: /**
* @return {?}
*/
function () {
return this._external;
},
/**
* Set to `true` to display an icon describing an external link (going to a new page)
*/
set: /**
* Set to `true` to display an icon describing an external link (going to a new page)
* @param {?} external
* @return {?}
*/
function (external) {
this._external = external;
this.target = this.external ? '_blank' : null;
this.ref = this.external ? 'noopener' : null;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
Link.prototype.ngOnInit = /**
* @return {?}
*/
function () {
if (this.arrow || this.external) {
/** @type {?} */
var 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 = function () { return [
{ 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',] }]
};
return Link;
}());
export { Link };
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;
/**
* Set to `true` to display an arrow next to the link
* @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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3VzaGtpL25nLXN1a2EvIiwic291cmNlcyI6WyJsaWIvbGluay9saW5rLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUVkLFVBQUEsT0FBTyxJQUFJLE9BQUEsT0FBTyxDQUFDLElBQUksS0FBSyxhQUFhLEVBQTlCLENBQThCOztJQUFsRSxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksTUFBMkMsQ0FBQyxRQUFROzs7OztBQUNoRCxVQUFBLE9BQU8sSUFBSSxPQUFBLE9BQU8sQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFoQyxDQUFnQzs7SUFBdkUsV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLE1BQTZDLENBQUMsUUFBUTtBQUV2RjtJQXdERSxjQUFvQixVQUFzQixFQUFVLFFBQW1CLEVBQTRCLFFBQVE7UUFBdkYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBNEIsYUFBUSxHQUFSLFFBQVEsQ0FBQTtRQXBEaEYsY0FBUyxHQUFHLElBQUksQ0FBQzs7OztRQWlDRCxVQUFLLEdBQUcsS0FBSyxDQUFDO0lBbUJzRCxDQUFDO0lBcENoSCxzQkFHSSwwQkFBUTs7OztRQUtaO1lBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hCLENBQUM7UUFiRDs7V0FFRzs7Ozs7O1FBQ0gsVUFHYSxRQUFpQjtZQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUMsQ0FBQzs7O09BQUE7SUFnQkQsc0JBRUksMEJBQVE7Ozs7UUFNWjtZQUNFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QixDQUFDO1FBYkQ7O1dBRUc7Ozs7OztRQUNILFVBRWEsUUFBaUI7WUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUM5QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9DLENBQUM7OztPQUFBOzs7O0lBVUQsdUJBQVE7OztJQUFSO1FBQ0UsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7O2dCQUN6QixLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDNUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7WUFFL0IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNkLEtBQUssQ0FBQyxTQUFTLElBQUksb0JBQW9CLENBQUM7Z0JBQ3hDLEtBQUssQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO2FBQzVCO1lBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQzthQUMvQjtZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQzs7Z0JBMUVGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtpQkFDdkI7Ozs7Z0JBYkMsVUFBVTtnQkFDVixTQUFTO2dEQWtFaUUsTUFBTSxTQUFDLFFBQVE7Ozs0QkFwRHhGLFdBQVcsU0FBQyxZQUFZOzJCQUt4QixXQUFXLFNBQUMsZUFBZTt5QkFLM0IsV0FBVyxTQUFDLGFBQWE7c0JBQ3pCLFdBQVcsU0FBQyxVQUFVOzJCQUt0QixLQUFLLFlBQ0wsV0FBVyxTQUFDLG9CQUFvQixjQUNoQyxXQUFXLFNBQUMsc0JBQXNCO3dCQWVsQyxXQUFXLFNBQUMsbUJBQW1CLGNBQUcsS0FBSzsyQkFLdkMsS0FBSyxZQUNMLFdBQVcsU0FBQyxzQkFBc0I7O0lBZ0NyQyxXQUFDO0NBQUEsQUEzRUQsSUEyRUM7U0F4RVksSUFBSTs7O0lBQ2YseUJBQTRDOzs7OztJQUs1Qyx3QkFBK0M7Ozs7O0lBSy9DLHNCQUEyQzs7SUFDM0MsbUJBQXFDOzs7OztJQWlCckMseUJBQTJCOzs7OztJQUszQixxQkFBeUQ7Ozs7O0lBaUJ6RCx5QkFBMkI7Ozs7O0lBRWYsMEJBQThCOzs7OztJQUFFLHdCQUEyQjs7Ozs7SUFBRSx3QkFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTogdmFyaWFibGUtbmFtZVxuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMixcbiAgSW5qZWN0LFxuICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpY29uRGVmcyB9IGZyb20gJy4uL2ljb24vaWNvbi1kZWZzJztcblxuY29uc3QgYXJyb3dJbWcgPSBpY29uRGVmcy5maW5kKGljb25EZWYgPT4gaWNvbkRlZi5uYW1lID09PSAnYXJyb3ctcmlnaHQnKS50ZW1wbGF0ZTtcbmNvbnN0IGV4dGVybmFsSW1nID0gaWNvbkRlZnMuZmluZChpY29uRGVmID0+IGljb25EZWYubmFtZSA9PT0gJ2V4dGVybmFsLWxpbmsnKS50ZW1wbGF0ZTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3N1a2FMaW5rXSdcbn0pXG5leHBvcnQgY2xhc3MgTGluayBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MubGluaycpIGJhc2VDbGFzcyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgc2V0IHRvIGAtMWAgd2hlbiBsaW5rIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgdGFiaW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICogU2V0IHRhcmdldCBhbmQgcmVmIGZvciBleHRlcm5hbCBsaW5rc1xuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhcmdldCcpIHRhcmdldDogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucmVmJykgcmVmOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgbGluay5cbiAgICovXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRpc2FibGVkJylcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5saW5rLS1kaXNhYmxlZCcpXG4gIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgdGhpcy50YWJpbmRleCA9IHRoaXMuZGlzYWJsZWQgPyAtMSA6IG51bGw7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzcGxheSBhbiBhcnJvdyBuZXh0IHRvIHRoZSBsaW5rXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxpbmstLWFycm93JykgQElucHV0KCkgYXJyb3cgPSBmYWxzZTtcblxuICAvKipcbiAgICogU2V0IHRvIGB0cnVlYCB0byBkaXNwbGF5IGFuIGljb24gZGVzY3JpYmluZyBhbiBleHRlcm5hbCBsaW5rIChnb2luZyB0byBhIG5ldyBwYWdlKVxuICAgKi9cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5saW5rLS1leHRlcm5hbCcpXG4gIHNldCBleHRlcm5hbChleHRlcm5hbDogYm9vbGVhbikge1xuICAgIHRoaXMuX2V4dGVybmFsID0gZXh0ZXJuYWw7XG4gICAgdGhpcy50YXJnZXQgPSB0aGlzLmV4dGVybmFsID8gJ19ibGFuaycgOiBudWxsO1xuICAgIHRoaXMucmVmID0gdGhpcy5leHRlcm5hbCA/ICdub29wZW5lcicgOiBudWxsO1xuICB9XG5cbiAgZ2V0IGV4dGVybmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9leHRlcm5hbDtcbiAgfVxuXG4gIHByaXZhdGUgX2V4dGVybmFsOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50KSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5hcnJvdyB8fCB0aGlzLmV4dGVybmFsKSB7XG4gICAgICBjb25zdCBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgIGNoaWxkLmNsYXNzTmFtZSA9ICdsaW5rX19pY29uJztcblxuICAgICAgaWYgKHRoaXMuYXJyb3cpIHtcbiAgICAgICAgY2hpbGQuY2xhc3NOYW1lICs9ICcgbGlua19faWNvbi0tYXJyb3cnO1xuICAgICAgICBjaGlsZC5pbm5lckhUTUwgPSBhcnJvd0ltZztcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZXh0ZXJuYWwpIHtcbiAgICAgICAgY2hpbGQuaW5uZXJIVE1MID0gZXh0ZXJuYWxJbWc7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNoaWxkKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==