@knora/viewer
Version:
Knora ui module: viewer
108 lines • 10.2 kB
JavaScript
import * as tslib_1 from "tslib";
import { Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
import { ReadTextValueAsHtml } from '@knora/api';
var TextValueAsHtmlComponent = /** @class */ (function () {
function TextValueAsHtmlComponent(el) {
this.el = el;
this.referredResourceClicked = new EventEmitter();
}
Object.defineProperty(TextValueAsHtmlComponent.prototype, "ontologyInfo", {
get: function () {
return this._ontoInfo;
},
set: function (value) {
this._ontoInfo = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TextValueAsHtmlComponent.prototype, "bindEvents", {
get: function () {
return this._bindEvents;
},
set: function (value) {
this._bindEvents = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TextValueAsHtmlComponent.prototype, "valueObject", {
get: function () {
return this._htmlValueObj;
},
set: function (value) {
this._htmlValueObj = value;
if (this.el.nativeElement.innerHTML) {
this.el.nativeElement.innerHTML = this.valueObject.html;
}
},
enumerable: true,
configurable: true
});
TextValueAsHtmlComponent.prototype.refResClicked = function (refResourceIri) {
this.referredResourceClicked.emit(refResourceIri);
};
/**
* Binds a click event to standoff links that shows the referred resource.
*
* @param targetElement
*/
TextValueAsHtmlComponent.prototype.onClick = function (targetElement) {
if (this._bindEvents && targetElement.nodeName.toLowerCase() === 'a'
&& targetElement.className.toLowerCase().indexOf('salsah-link') >= 0
&& targetElement.href !== undefined) {
this.refResClicked(targetElement.href);
// prevent propagation
return false;
}
else if (this.bindEvents && targetElement.nodeName.toLowerCase() === 'a' && targetElement.href !== undefined) {
// open link in a new window
window.open(targetElement.href, '_blank');
// prevent propagation
return false;
}
else {
// prevent propagation
return false;
}
};
TextValueAsHtmlComponent.ctorParameters = function () { return [
{ type: ElementRef }
]; };
tslib_1.__decorate([
Output(),
tslib_1.__metadata("design:type", EventEmitter)
], TextValueAsHtmlComponent.prototype, "referredResourceClicked", void 0);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", Object),
tslib_1.__metadata("design:paramtypes", [Object])
], TextValueAsHtmlComponent.prototype, "ontologyInfo", null);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", Boolean),
tslib_1.__metadata("design:paramtypes", [Boolean])
], TextValueAsHtmlComponent.prototype, "bindEvents", null);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", ReadTextValueAsHtml),
tslib_1.__metadata("design:paramtypes", [ReadTextValueAsHtml])
], TextValueAsHtmlComponent.prototype, "valueObject", null);
tslib_1.__decorate([
HostListener('click', ['$event.target']),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Object]),
tslib_1.__metadata("design:returntype", void 0)
], TextValueAsHtmlComponent.prototype, "onClick", null);
TextValueAsHtmlComponent = tslib_1.__decorate([
Component({
selector: 'kui-text-value-as-html',
template: "<div>{{valueObject.html}}</div>",
styles: [""]
}),
tslib_1.__metadata("design:paramtypes", [ElementRef])
], TextValueAsHtmlComponent);
return TextValueAsHtmlComponent;
}());
export { TextValueAsHtmlComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC12YWx1ZS1hcy1odG1sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Brbm9yYS92aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvcHJvcGVydHkvdGV4dC12YWx1ZS90ZXh0LXZhbHVlLWFzLWh0bWwvdGV4dC12YWx1ZS1hcy1odG1sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBd0MsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFPdkY7SUF5Q0ksa0NBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBdENsQyw0QkFBdUIsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQXVDbkUsQ0FBQztJQXBDRCxzQkFBSSxrREFBWTthQUloQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDO2FBTkQsVUFBaUIsS0FBMkM7WUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQzs7O09BQUE7SUFPRCxzQkFBSSxnREFBVTthQUlkO1lBQ0ksT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzVCLENBQUM7YUFORCxVQUFlLEtBQWM7WUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDN0IsQ0FBQzs7O09BQUE7SUFPRCxzQkFBSSxpREFBVzthQVFmO1lBQ0ksT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzlCLENBQUM7YUFWRCxVQUFnQixLQUEwQjtZQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUUzQixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2FBQzNEO1FBQ0wsQ0FBQzs7O09BQUE7SUFjRCxnREFBYSxHQUFiLFVBQWMsY0FBc0I7UUFDaEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUVILDBDQUFPLEdBQVAsVUFBUSxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUc7ZUFDN0QsYUFBYSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztlQUNqRSxhQUFhLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxzQkFBc0I7WUFDdEIsT0FBTyxLQUFLLENBQUM7U0FDaEI7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDNUcsNEJBQTRCO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMxQyxzQkFBc0I7WUFDdEIsT0FBTyxLQUFLLENBQUM7U0FDaEI7YUFBTTtZQUNILHNCQUFzQjtZQUN0QixPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNMLENBQUM7O2dCQTdCdUIsVUFBVTs7SUF0Q2xDO1FBREMsTUFBTSxFQUFFOzBDQUNnQixZQUFZOzZFQUE4QjtJQUduRTtRQURDLEtBQUssRUFBRTs7O2dFQUdQO0lBT0Q7UUFEQyxLQUFLLEVBQUU7MENBQ2MsT0FBTztpREFBUCxPQUFPOzhEQUU1QjtJQU9EO1FBREMsS0FBSyxFQUFFOzBDQUNlLG1CQUFtQjtpREFBbkIsbUJBQW1COytEQU16QztJQXdCRDtRQURDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQzs7OzsyREFpQnhDO0lBdEVRLHdCQUF3QjtRQUxwQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsd0JBQXdCO1lBQ2xDLDJDQUFrRDs7U0FFckQsQ0FBQztpREEwQzBCLFVBQVU7T0F6Q3pCLHdCQUF3QixDQXdFcEM7SUFBRCwrQkFBQztDQUFBLEFBeEVELElBd0VDO1NBeEVZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElSZXNvdXJjZUNsYXNzQW5kUHJvcGVydHlEZWZpbml0aW9ucywgUmVhZFRleHRWYWx1ZUFzSHRtbCB9IGZyb20gJ0Brbm9yYS9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2t1aS10ZXh0LXZhbHVlLWFzLWh0bWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXh0LXZhbHVlLWFzLWh0bWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RleHQtdmFsdWUtYXMtaHRtbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRleHRWYWx1ZUFzSHRtbENvbXBvbmVudCB7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWZlcnJlZFJlc291cmNlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBvbnRvbG9neUluZm8odmFsdWU6IElSZXNvdXJjZUNsYXNzQW5kUHJvcGVydHlEZWZpbml0aW9ucykge1xuICAgICAgICB0aGlzLl9vbnRvSW5mbyA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBvbnRvbG9neUluZm8oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vbnRvSW5mbztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBiaW5kRXZlbnRzKHZhbHVlOiBCb29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2JpbmRFdmVudHMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgYmluZEV2ZW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JpbmRFdmVudHM7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWVPYmplY3QodmFsdWU6IFJlYWRUZXh0VmFsdWVBc0h0bWwpIHtcbiAgICAgICAgdGhpcy5faHRtbFZhbHVlT2JqID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpIHtcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlT2JqZWN0Lmh0bWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdmFsdWVPYmplY3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9odG1sVmFsdWVPYmo7XG4gICAgfVxuXG4gICAgaHRtbDogc3RyaW5nO1xuICAgIHByaXZhdGUgX2h0bWxWYWx1ZU9iajogUmVhZFRleHRWYWx1ZUFzSHRtbDtcbiAgICBwcml2YXRlIF9vbnRvSW5mbzogSVJlc291cmNlQ2xhc3NBbmRQcm9wZXJ0eURlZmluaXRpb25zO1xuICAgIHByaXZhdGUgX2JpbmRFdmVudHM6IEJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgfVxuXG4gICAgcmVmUmVzQ2xpY2tlZChyZWZSZXNvdXJjZUlyaTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucmVmZXJyZWRSZXNvdXJjZUNsaWNrZWQuZW1pdChyZWZSZXNvdXJjZUlyaSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQmluZHMgYSBjbGljayBldmVudCB0byBzdGFuZG9mZiBsaW5rcyB0aGF0IHNob3dzIHRoZSByZWZlcnJlZCByZXNvdXJjZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXJnZXRFbGVtZW50XG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcbiAgICBvbkNsaWNrKHRhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2JpbmRFdmVudHMgJiYgdGFyZ2V0RWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYSdcbiAgICAgICAgICAgICYmIHRhcmdldEVsZW1lbnQuY2xhc3NOYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignc2Fsc2FoLWxpbmsnKSA+PSAwXG4gICAgICAgICAgICAmJiB0YXJnZXRFbGVtZW50LmhyZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5yZWZSZXNDbGlja2VkKHRhcmdldEVsZW1lbnQuaHJlZik7XG4gICAgICAgICAgICAvLyBwcmV2ZW50IHByb3BhZ2F0aW9uXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5iaW5kRXZlbnRzICYmIHRhcmdldEVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2EnICYmIHRhcmdldEVsZW1lbnQuaHJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBvcGVuIGxpbmsgaW4gYSBuZXcgd2luZG93XG4gICAgICAgICAgICB3aW5kb3cub3Blbih0YXJnZXRFbGVtZW50LmhyZWYsICdfYmxhbmsnKTtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgcHJvcGFnYXRpb25cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgcHJvcGFnYXRpb25cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19