diff --git a/client/src/view-helper.js b/client/src/view-helper.js index 4309e31612..96be44cbc3 100644 --- a/client/src/view-helper.js +++ b/client/src/view-helper.js @@ -34,227 +34,223 @@ import Handlebars from "lib!handlebars"; /** * A view helper. - * - * @class */ -const ViewHelper = function () { - this._registerHandlebarsHelpers(); +class ViewHelper { - /** - * @private - */ - this.mdBeforeList = [ - { - regex: /```\n?([\s\S]*?)```/g, - value: function (s, string) { - return '
' +string.replace(/\*/g, '*').replace(/~/g, '~') +
- '';
- }
- },
- {
- regex: /`([\s\S]*?)`/g,
- value: function (s, string) {
- return '' + string.replace(/\*/g, '*').replace(/~/g, '~') + '';
- }
- }
- ];
+ constructor() {
+ this._registerHandlebarsHelpers();
- marked.setOptions({
- breaks: true,
- tables: false,
- });
+ /** @private */
+ this.mdBeforeList = [
+ {
+ regex: /```\n?([\s\S]*?)```/g,
+ value: function (s, string) {
+ return '' +string.replace(/\*/g, '*').replace(/~/g, '~') +
+ '';
+ }
+ },
+ {
+ regex: /`([\s\S]*?)`/g,
+ value: function (s, string) {
+ return '' + string.replace(/\*/g, '*').replace(/~/g, '~') + '';
+ }
+ }
+ ];
- DOMPurify.addHook('beforeSanitizeAttributes', function (node) {
- if (node instanceof HTMLAnchorElement) {
- if (node.getAttribute('target')) {
- node.targetBlank = true;
- }
- else {
- node.targetBlank = false;
- }
- }
- });
+ marked.setOptions({
+ breaks: true,
+ tables: false,
+ });
- DOMPurify.addHook('afterSanitizeAttributes', function (node) {
- if (node instanceof HTMLAnchorElement) {
- if (node.targetBlank) {
- node.setAttribute('target', '_blank');
- node.setAttribute('rel', 'noopener noreferrer');
+ DOMPurify.addHook('beforeSanitizeAttributes', function (node) {
+ if (node instanceof HTMLAnchorElement) {
+ if (node.getAttribute('target')) {
+ node.targetBlank = true;
+ }
+ else {
+ node.targetBlank = false;
+ }
}
- else {
- node.removeAttribute('rel');
- }
- }
- });
-};
+ });
-_.extend(ViewHelper.prototype, /** @lends ViewHelper# */{
+ DOMPurify.addHook('afterSanitizeAttributes', function (node) {
+ if (node instanceof HTMLAnchorElement) {
+ if (node.targetBlank) {
+ node.setAttribute('target', '_blank');
+ node.setAttribute('rel', 'noopener noreferrer');
+ }
+ else {
+ node.removeAttribute('rel');
+ }
+ }
+ });
+ }
/**
* A layout manager.
*
* @type {module:layout-manager}
*/
- layoutManager: null,
+ layoutManager = null
/**
* A config.
*
* @type {module:models/settings}
*/
- settings: null,
+ settings = null
/**
* A config.
*
* @type {module:models/settings}
*/
- config: null,
+ config = null
/**
* A current user.
*
* @type {module:models/user}
*/
- user: null,
+ user = null
/**
* A preferences.
*
* @type {module:models/preferences}
*/
- preferences: null,
+ preferences = null
/**
* An ACL manager.
*
* @type {module:acl-manager}
*/
- acl: null,
+ acl = null
/**
* A model factory.
*
* @type {module:model-factory}
*/
- modelFactory: null,
+ modelFactory = null
/**
* A collection factory.
*
* @type {module:collection-factory}
*/
- collectionFactory: null,
+ collectionFactory = null
/**
* A router.
*
* @type {module:router}
*/
- router: null,
+ router = null
/**
* A storage.
*
* @type {module:storage}
*/
- storage: null,
+ storage = null
/**
* A session storage.
*
* @type {module:session-storage}
*/
- sessionStorage: null,
+ sessionStorage = null
/**
* A date-time util.
*
* @type {module:date-time}
*/
- dateTime: null,
+ dateTime = null
/**
* A language.
*
* @type {module:language}
*/
- language: null,
+ language = null
/**
* A metadata.
*
* @type {module:metadata}
*/
- metadata: null,
+ metadata = null
/**
* A field-manager util.
*
* @type {module:field-manager}
*/
- fieldManager: null,
+ fieldManager = null
/**
* A cache.
*
* @type {module:cache}
*/
- cache: null,
+ cache = null
/**
* A theme manager.
*
* @type {module:theme-manager}
*/
- themeManager: null,
+ themeManager = null
/**
* A web-socket manager. Null if not enabled.
*
* @type {?module:web-socket-manager}
*/
- webSocketManager: null,
+ webSocketManager = null
/**
* A number util.
*
* @type {module:number}
*/
- numberUtil: null,
+ numberUtil = null
/**
* A page-title util.
*
* @type {module:page-title}
*/
- pageTitle: null,
+ pageTitle = null
/**
* A broadcast channel.
*
* @type {?module:broadcast-channel}
*/
- broadcastChannel: null,
+ broadcastChannel = null
/**
* A base path.
*
* @type {string}
*/
- basePath: '',
+ basePath = ''
/**
* Application parameters.
*
* @type {Object}
*/
- appParams: null,
+ appParams = null
/**
* @private
*/
- _registerHandlebarsHelpers: function () {
+ _registerHandlebarsHelpers() {
Handlebars.registerHelper('img', img => {
return new Handlebars.SafeString("