Improve markdown widget css processing

This commit is contained in:
Igor Kulikov 2021-08-19 19:31:48 +03:00
parent 2f79239167
commit c04747cdd8
2 changed files with 8 additions and 8 deletions

View File

@ -15,4 +15,4 @@
limitations under the License.
-->
<markdown [data]="markdownText" class="tb-markdown-view" (click)="markdownClick($event)"></markdown>
<markdown [data]="markdownText" class="tb-markdown-view {{markdownClass}}" (click)="markdownClick($event)"></markdown>

View File

@ -14,7 +14,7 @@
/// limitations under the License.
///
import { ChangeDetectorRef, Component, ElementRef, Input, OnInit } from '@angular/core';
import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';
import { PageComponent } from '@shared/components/page.component';
import { WidgetContext } from '@home/models/widget-component.models';
import { Store } from '@ngrx/store';
@ -56,8 +56,9 @@ export class MarkdownWidgetComponent extends PageComponent implements OnInit {
markdownText: string;
markdownClass: string;
constructor(protected store: Store<AppState>,
private elementRef: ElementRef,
private cd: ChangeDetectorRef) {
super(store);
}
@ -66,15 +67,14 @@ export class MarkdownWidgetComponent extends PageComponent implements OnInit {
this.ctx.$scope.markdownWidget = this;
this.settings = this.ctx.settings;
this.markdownTextFunction = this.settings.useMarkdownTextFunction ? parseFunction(this.settings.markdownTextFunction, ['data']) : null;
this.markdownClass = 'markdown-widget';
const cssString = this.settings.markdownCss;
if (isNotEmptyStr(cssString)) {
const cssParser = new cssjs();
cssParser.testMode = false;
const namespace = 'entities-hierarchy-' + hashCode(cssString);
cssParser.cssPreviewNamespace = namespace;
cssParser.createStyleElement(namespace, cssString);
$(this.elementRef.nativeElement).addClass(namespace);
this.markdownClass += '-' + hashCode(cssString);
cssParser.cssPreviewNamespace = 'tb-markdown-view.' + this.markdownClass;
cssParser.createStyleElement(this.markdownClass, cssString);
}
}