UNPKG

@knora/action

Version:
59 lines 6.54 kB
import * as tslib_1 from "tslib"; import { Directive, ElementRef, Input, OnChanges } from '@angular/core'; export class GNDConstants { } GNDConstants.GNDPrefix = '(DE-588)'; GNDConstants.GNDResolver = 'http://d-nb.info/gnd/'; GNDConstants.VIAFPrefix = '(VIAF)'; GNDConstants.VIAFResolver = 'https://viaf.org/viaf/'; /** * This directive renders a GND/IAF or a VIAF identifier as a link to the respective resolver. */ let GndDirective = class GndDirective { constructor(el) { this.el = el; } set kuiGnd(value) { this._gnd = value; } get kuiGnd() { return this._gnd; } ngOnChanges() { if (this._gnd.length < 30) { if (this._gnd.indexOf(GNDConstants.GNDPrefix) === 0) { // GND/IAF identifier this.el.nativeElement.innerHTML = `<a href="${GNDConstants.GNDResolver + this._gnd.replace(GNDConstants.GNDPrefix, '')}" target="_blank">${this._gnd}</a>`; } else if (this._gnd.indexOf(GNDConstants.VIAFPrefix) === 0) { // VIAF identifier this.el.nativeElement.innerHTML = `<a href="${GNDConstants.VIAFResolver + this._gnd.replace(GNDConstants.VIAFPrefix, '')}" target="_blank">${this._gnd}</a>`; } else { // no identifier, leave unchanged this.el.nativeElement.innerHTML = this._gnd; } } else { // no identifier, leave unchanged this.el.nativeElement.innerHTML = this._gnd; } } }; GndDirective.ctorParameters = () => [ { type: ElementRef } ]; tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], GndDirective.prototype, "kuiGnd", null); GndDirective = tslib_1.__decorate([ Directive({ // tslint:disable-next-line:directive-selector selector: '[kuiGnd]' }), tslib_1.__metadata("design:paramtypes", [ElementRef]) ], GndDirective); export { GndDirective }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ25kLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Brbm9yYS9hY3Rpb24vIiwic291cmNlcyI6WyJsaWIvZ25kL2duZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsTUFBTSxPQUFPLFlBQVk7O0FBQ1Asc0JBQVMsR0FBVyxVQUFVLENBQUM7QUFDL0Isd0JBQVcsR0FBVyx1QkFBdUIsQ0FBQztBQUU5Qyx1QkFBVSxHQUFXLFFBQVEsQ0FBQztBQUM5Qix5QkFBWSxHQUFXLHdCQUF3QixDQUFDO0FBR2xFOztHQUVHO0FBS0gsSUFBYSxZQUFZLEdBQXpCLE1BQWEsWUFBWTtJQWVyQixZQUFxQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUVuQyxDQUFDO0lBZEQsSUFBSSxNQUFNLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFVRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFFdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqRCxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxZQUFZLFlBQVksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMscUJBQXFCLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQzthQUM5SjtpQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pELGtCQUFrQjtnQkFDbEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLFlBQVksWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDO2FBQ2hLO2lCQUFNO2dCQUNILGlDQUFpQztnQkFDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDL0M7U0FFSjthQUFNO1lBQ0gsaUNBQWlDO1lBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQy9DO0lBRUwsQ0FBQztDQUdKLENBQUE7O1lBMUI0QixVQUFVOztBQVpuQztJQURDLEtBQUssRUFBRTs7OzBDQUdQO0FBTFEsWUFBWTtJQUp4QixTQUFTLENBQUM7UUFDUCw4Q0FBOEM7UUFDOUMsUUFBUSxFQUFFLFVBQVU7S0FDdkIsQ0FBQzs2Q0FnQjJCLFVBQVU7R0FmMUIsWUFBWSxDQXlDeEI7U0F6Q1ksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgR05EQ29uc3RhbnRzIHtcbiAgICBwdWJsaWMgc3RhdGljIEdORFByZWZpeDogc3RyaW5nID0gJyhERS01ODgpJztcbiAgICBwdWJsaWMgc3RhdGljIEdORFJlc29sdmVyOiBzdHJpbmcgPSAnaHR0cDovL2QtbmIuaW5mby9nbmQvJztcblxuICAgIHB1YmxpYyBzdGF0aWMgVklBRlByZWZpeDogc3RyaW5nID0gJyhWSUFGKSc7XG4gICAgcHVibGljIHN0YXRpYyBWSUFGUmVzb2x2ZXI6IHN0cmluZyA9ICdodHRwczovL3ZpYWYub3JnL3ZpYWYvJztcbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSByZW5kZXJzIGEgR05EL0lBRiBvciBhIFZJQUYgaWRlbnRpZmllciBhcyBhIGxpbmsgdG8gdGhlIHJlc3BlY3RpdmUgcmVzb2x2ZXIuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1trdWlHbmRdJ1xufSlcbmV4cG9ydCBjbGFzcyBHbmREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KClcbiAgICBzZXQga3VpR25kKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZ25kID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGt1aUduZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2duZDtcbiAgICB9XG5cblxuICAgIC8vIHRoZSBHTkQgaWRlbnRpZmllciB0byBiZSByZW5kZXJlZFxuICAgIHByaXZhdGUgX2duZDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IgKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcblxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5fZ25kLmxlbmd0aCA8IDMwKSB7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9nbmQuaW5kZXhPZihHTkRDb25zdGFudHMuR05EUHJlZml4KSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIC8vIEdORC9JQUYgaWRlbnRpZmllclxuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSBgPGEgaHJlZj1cIiR7R05EQ29uc3RhbnRzLkdORFJlc29sdmVyICsgdGhpcy5fZ25kLnJlcGxhY2UoR05EQ29uc3RhbnRzLkdORFByZWZpeCwgJycpfVwiIHRhcmdldD1cIl9ibGFua1wiPiR7dGhpcy5fZ25kfTwvYT5gO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9nbmQuaW5kZXhPZihHTkRDb25zdGFudHMuVklBRlByZWZpeCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICAvLyBWSUFGIGlkZW50aWZpZXJcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gYDxhIGhyZWY9XCIke0dORENvbnN0YW50cy5WSUFGUmVzb2x2ZXIgKyB0aGlzLl9nbmQucmVwbGFjZShHTkRDb25zdGFudHMuVklBRlByZWZpeCwgJycpfVwiIHRhcmdldD1cIl9ibGFua1wiPiR7dGhpcy5fZ25kfTwvYT5gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBubyBpZGVudGlmaWVyLCBsZWF2ZSB1bmNoYW5nZWRcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5fZ25kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBubyBpZGVudGlmaWVyLCBsZWF2ZSB1bmNoYW5nZWRcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLl9nbmQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuXG59XG4iXX0=