@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
55 lines • 5.91 kB
JavaScript
import { Directive, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core';
import { marked } from 'marked';
import * as i0 from "@angular/core";
/**
*
* @smeDoc {@label Markdown @id sme-markdown-directive}
*
* @overview
* @file {@filepath ./examples/markdown-overview.md}
*
* @example {@label Basic Usage @id basic-usage}
* @file {@filename component.html @filepath ./examples/basic-usage.component.html}
* @file {@filename component.ts @filepath ./examples/basic-usage.component.ts}
*
*/
export class MarkdownDirective {
constructor(host, renderer) {
this.host = host;
this.renderer = renderer;
}
get content() {
return this.renderedContent;
}
ngOnInit() {
this.renderer.addClass(this.host.nativeElement, 'sme-documentation');
}
ngOnChanges(changes) {
if (changes.smeMarkdown) {
this.render();
}
}
render() {
this.renderedContent = '';
if (marked && !MsftSme.isNullOrWhiteSpace(this.smeMarkdown)) {
this.renderedContent = marked.parse(this.smeMarkdown);
}
}
}
/** @nocollapse */ MarkdownDirective.ɵfac = function MarkdownDirective_Factory(t) { return new (t || MarkdownDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2)); };
/** @nocollapse */ MarkdownDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: MarkdownDirective, selectors: [["", "smeMarkdown", ""]], hostVars: 1, hostBindings: function MarkdownDirective_HostBindings(rf, ctx) { if (rf & 2) {
i0.ɵɵhostProperty("innerHtml", ctx.content, i0.ɵɵsanitizeHtml);
} }, inputs: { smeMarkdown: "smeMarkdown" }, features: [i0.ɵɵNgOnChangesFeature] });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MarkdownDirective, [{
type: Directive,
args: [{
// eslint-disable-next-line @angular-eslint/directive-selector
selector: '[smeMarkdown]'
}]
}], function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, { smeMarkdown: [{
type: Input
}], content: [{
type: HostBinding,
args: ['innerHtml']
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvZGlyZWN0aXZlcy9tYXJrZG93bi9tYXJrZG93bi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUVoQzs7Ozs7Ozs7Ozs7R0FXRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFXMUIsWUFBb0IsSUFBZ0IsRUFBVSxRQUFtQjtRQUE3QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUNqRSxDQUFDO0lBUkQsSUFDVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFPTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakI7SUFDTCxDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0wsQ0FBQzs7cUdBN0JRLGlCQUFpQjttR0FBakIsaUJBQWlCOzs7dUZBQWpCLGlCQUFpQjtjQUo3QixTQUFTO2VBQUM7Z0JBQ1AsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsZUFBZTthQUM1QjtxRkFHVSxXQUFXO2tCQURqQixLQUFLO1lBSUssT0FBTztrQkFEakIsV0FBVzttQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFya2VkIH0gZnJvbSAnbWFya2VkJztcclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAc21lRG9jIHtAbGFiZWwgTWFya2Rvd24gQGlkIHNtZS1tYXJrZG93bi1kaXJlY3RpdmV9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhhbXBsZXMvbWFya2Rvd24tb3ZlcnZpZXcubWR9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgQmFzaWMgVXNhZ2UgQGlkIGJhc2ljLXVzYWdlfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2Jhc2ljLXVzYWdlLmNvbXBvbmVudC5odG1sfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9iYXNpYy11c2FnZS5jb21wb25lbnQudHN9XHJcbiAqXHJcbiAqL1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxyXG4gICAgc2VsZWN0b3I6ICdbc21lTWFya2Rvd25dJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFya2Rvd25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNtZU1hcmtkb3duOiBzdHJpbmc7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdpbm5lckh0bWwnKVxyXG4gICAgcHVibGljIGdldCBjb250ZW50KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyZWRDb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVuZGVyZWRDb250ZW50OiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBob3N0OiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwgJ3NtZS1kb2N1bWVudGF0aW9uJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5zbWVNYXJrZG93bikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVuZGVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZWRDb250ZW50ID0gJyc7XHJcbiAgICAgICAgaWYgKG1hcmtlZCAmJiAhTXNmdFNtZS5pc051bGxPcldoaXRlU3BhY2UodGhpcy5zbWVNYXJrZG93bikpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlZENvbnRlbnQgPSBtYXJrZWQucGFyc2UodGhpcy5zbWVNYXJrZG93bik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==