UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

55 lines 5.91 kB
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==