UNPKG

@knora/action

Version:
68 lines 7.07 kB
import * as tslib_1 from "tslib"; import { Directive, ElementRef, Input, OnChanges } from '@angular/core'; var GNDConstants = /** @class */ (function () { function GNDConstants() { } GNDConstants.GNDPrefix = '(DE-588)'; GNDConstants.GNDResolver = 'http://d-nb.info/gnd/'; GNDConstants.VIAFPrefix = '(VIAF)'; GNDConstants.VIAFResolver = 'https://viaf.org/viaf/'; return GNDConstants; }()); export { GNDConstants }; /** * This directive renders a GND/IAF or a VIAF identifier as a link to the respective resolver. */ var GndDirective = /** @class */ (function () { function GndDirective(el) { this.el = el; } Object.defineProperty(GndDirective.prototype, "kuiGnd", { get: function () { return this._gnd; }, set: function (value) { this._gnd = value; }, enumerable: true, configurable: true }); GndDirective.prototype.ngOnChanges = function () { 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 = function () { return [ { 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); return GndDirective; }()); export { GndDirective }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ25kLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Brbm9yYS9hY3Rpb24vIiwic291cmNlcyI6WyJsaWIvZ25kL2duZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEU7SUFBQTtJQU1BLENBQUM7SUFMaUIsc0JBQVMsR0FBVyxVQUFVLENBQUM7SUFDL0Isd0JBQVcsR0FBVyx1QkFBdUIsQ0FBQztJQUU5Qyx1QkFBVSxHQUFXLFFBQVEsQ0FBQztJQUM5Qix5QkFBWSxHQUFXLHdCQUF3QixDQUFDO0lBQ2xFLG1CQUFDO0NBQUEsQUFORCxJQU1DO1NBTlksWUFBWTtBQVF6Qjs7R0FFRztBQUtIO0lBZUksc0JBQXFCLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBRW5DLENBQUM7SUFkRCxzQkFBSSxnQ0FBTTthQUlWO1lBQ0ksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JCLENBQUM7YUFORCxVQUFXLEtBQWE7WUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQzs7O09BQUE7SUFjRCxrQ0FBVyxHQUFYO1FBQ0ksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFFdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqRCxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxnQkFBWSxZQUFZLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLDhCQUFxQixJQUFJLENBQUMsSUFBSSxTQUFNLENBQUM7YUFDOUo7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6RCxrQkFBa0I7Z0JBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxnQkFBWSxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLDhCQUFxQixJQUFJLENBQUMsSUFBSSxTQUFNLENBQUM7YUFDaEs7aUJBQU07Z0JBQ0gsaUNBQWlDO2dCQUNqQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQzthQUMvQztTQUVKO2FBQU07WUFDSCxpQ0FBaUM7WUFDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDL0M7SUFFTCxDQUFDOztnQkF2QndCLFVBQVU7O0lBWm5DO1FBREMsS0FBSyxFQUFFOzs7OENBR1A7SUFMUSxZQUFZO1FBSnhCLFNBQVMsQ0FBQztZQUNQLDhDQUE4QztZQUM5QyxRQUFRLEVBQUUsVUFBVTtTQUN2QixDQUFDO2lEQWdCMkIsVUFBVTtPQWYxQixZQUFZLENBeUN4QjtJQUFELG1CQUFDO0NBQUEsQUF6Q0QsSUF5Q0M7U0F6Q1ksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgR05EQ29uc3RhbnRzIHtcbiAgICBwdWJsaWMgc3RhdGljIEdORFByZWZpeDogc3RyaW5nID0gJyhERS01ODgpJztcbiAgICBwdWJsaWMgc3RhdGljIEdORFJlc29sdmVyOiBzdHJpbmcgPSAnaHR0cDovL2QtbmIuaW5mby9nbmQvJztcblxuICAgIHB1YmxpYyBzdGF0aWMgVklBRlByZWZpeDogc3RyaW5nID0gJyhWSUFGKSc7XG4gICAgcHVibGljIHN0YXRpYyBWSUFGUmVzb2x2ZXI6IHN0cmluZyA9ICdodHRwczovL3ZpYWYub3JnL3ZpYWYvJztcbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSByZW5kZXJzIGEgR05EL0lBRiBvciBhIFZJQUYgaWRlbnRpZmllciBhcyBhIGxpbmsgdG8gdGhlIHJlc3BlY3RpdmUgcmVzb2x2ZXIuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1trdWlHbmRdJ1xufSlcbmV4cG9ydCBjbGFzcyBHbmREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KClcbiAgICBzZXQga3VpR25kKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZ25kID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGt1aUduZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2duZDtcbiAgICB9XG5cblxuICAgIC8vIHRoZSBHTkQgaWRlbnRpZmllciB0byBiZSByZW5kZXJlZFxuICAgIHByaXZhdGUgX2duZDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IgKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcblxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5fZ25kLmxlbmd0aCA8IDMwKSB7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9nbmQuaW5kZXhPZihHTkRDb25zdGFudHMuR05EUHJlZml4KSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIC8vIEdORC9JQUYgaWRlbnRpZmllclxuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSBgPGEgaHJlZj1cIiR7R05EQ29uc3RhbnRzLkdORFJlc29sdmVyICsgdGhpcy5fZ25kLnJlcGxhY2UoR05EQ29uc3RhbnRzLkdORFByZWZpeCwgJycpfVwiIHRhcmdldD1cIl9ibGFua1wiPiR7dGhpcy5fZ25kfTwvYT5gO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9nbmQuaW5kZXhPZihHTkRDb25zdGFudHMuVklBRlByZWZpeCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICAvLyBWSUFGIGlkZW50aWZpZXJcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gYDxhIGhyZWY9XCIke0dORENvbnN0YW50cy5WSUFGUmVzb2x2ZXIgKyB0aGlzLl9nbmQucmVwbGFjZShHTkRDb25zdGFudHMuVklBRlByZWZpeCwgJycpfVwiIHRhcmdldD1cIl9ibGFua1wiPiR7dGhpcy5fZ25kfTwvYT5gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBubyBpZGVudGlmaWVyLCBsZWF2ZSB1bmNoYW5nZWRcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5fZ25kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBubyBpZGVudGlmaWVyLCBsZWF2ZSB1bmNoYW5nZWRcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLl9nbmQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuXG59XG4iXX0=