@knora/action
Version:
Knora ui module: action
68 lines • 7.07 kB
JavaScript
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=