@ng-util/markdown 12.1.2 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/markdown-base.component.mjs +67 -0
- package/esm2020/markdown-preview.component.mjs +24 -0
- package/esm2020/markdown.component.mjs +82 -0
- package/{esm2015/markdown.config.js → esm2020/markdown.config.mjs} +0 -0
- package/esm2020/markdown.module.mjs +27 -0
- package/esm2020/markdown.service.mjs +47 -0
- package/esm2020/ng-util-markdown.mjs +5 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/ng-util-markdown.mjs +235 -0
- package/fesm2015/ng-util-markdown.mjs.map +1 -0
- package/fesm2020/ng-util-markdown.mjs +238 -0
- package/fesm2020/ng-util-markdown.mjs.map +1 -0
- package/markdown-base.component.d.ts +3 -0
- package/markdown-preview.component.d.ts +3 -0
- package/markdown.component.d.ts +3 -0
- package/markdown.module.d.ts +7 -0
- package/markdown.service.d.ts +3 -0
- package/ng-util-markdown.d.ts +1 -2
- package/package.json +20 -8
- package/bundles/ng-util-markdown.umd.js +0 -626
- package/bundles/ng-util-markdown.umd.js.map +0 -1
- package/esm2015/markdown-base.component.js +0 -72
- package/esm2015/markdown-preview.component.js +0 -22
- package/esm2015/markdown.component.js +0 -66
- package/esm2015/markdown.module.js +0 -23
- package/esm2015/markdown.service.js +0 -55
- package/esm2015/ng-util-markdown.js +0 -7
- package/fesm2015/ng-util-markdown.js +0 -233
- package/fesm2015/ng-util-markdown.js.map +0 -1
- package/ng-util-markdown.metadata.json +0 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Directive, ElementRef, EventEmitter, Inject, Input, NgZone, Output } from '@angular/core';
|
|
3
|
+
import { InputNumber } from '@ng-util/util/convert';
|
|
4
|
+
import { NU_MARKDOWN_CONFIG } from './markdown.config';
|
|
5
|
+
import { NuMarkdownService } from './markdown.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./markdown.service";
|
|
8
|
+
export class NuMarkdownBaseComponent {
|
|
9
|
+
constructor(el, config, srv, ngZone) {
|
|
10
|
+
this.el = el;
|
|
11
|
+
this.config = config;
|
|
12
|
+
this.srv = srv;
|
|
13
|
+
this.ngZone = ngZone;
|
|
14
|
+
this.delay = 0;
|
|
15
|
+
this.disabled = false;
|
|
16
|
+
this.ready = new EventEmitter();
|
|
17
|
+
this.notify$ = this.srv.notify.subscribe(() => this.initDelay());
|
|
18
|
+
}
|
|
19
|
+
set value(v) {
|
|
20
|
+
this._value = v;
|
|
21
|
+
if (this.loaded) {
|
|
22
|
+
this.init();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
get instance() {
|
|
26
|
+
return this._instance;
|
|
27
|
+
}
|
|
28
|
+
initDelay() {
|
|
29
|
+
setTimeout(() => this.init(), this.delay);
|
|
30
|
+
}
|
|
31
|
+
get loaded() {
|
|
32
|
+
return !!window.Vditor;
|
|
33
|
+
}
|
|
34
|
+
ngAfterViewInit() {
|
|
35
|
+
if (this.loaded) {
|
|
36
|
+
this.initDelay();
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this.srv.load();
|
|
40
|
+
}
|
|
41
|
+
ngOnDestroy() {
|
|
42
|
+
this.notify$.unsubscribe();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownBaseComponent, deps: [{ token: i0.ElementRef }, { token: NU_MARKDOWN_CONFIG }, { token: i1.NuMarkdownService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
46
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: NuMarkdownBaseComponent, inputs: { delay: "delay", disabled: "disabled", options: "options", value: "value" }, outputs: { ready: "ready" }, ngImport: i0 });
|
|
47
|
+
__decorate([
|
|
48
|
+
InputNumber(),
|
|
49
|
+
__metadata("design:type", Object)
|
|
50
|
+
], NuMarkdownBaseComponent.prototype, "delay", void 0);
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownBaseComponent, decorators: [{
|
|
52
|
+
type: Directive
|
|
53
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
54
|
+
type: Inject,
|
|
55
|
+
args: [NU_MARKDOWN_CONFIG]
|
|
56
|
+
}] }, { type: i1.NuMarkdownService }, { type: i0.NgZone }]; }, propDecorators: { delay: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], disabled: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], options: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], ready: [{
|
|
63
|
+
type: Output
|
|
64
|
+
}], value: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9tYXJrZG93bi9tYXJrZG93bi1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0gsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sRUFBb0Isa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBR3ZELE1BQU0sT0FBZ0IsdUJBQXVCO0lBc0IzQyxZQUNZLEVBQTJCLEVBQ0MsTUFBd0IsRUFDcEQsR0FBc0IsRUFDdEIsTUFBYztRQUhkLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBQ0MsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFDcEQsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXRCRixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFaEIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFxQjNDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFuQkQsSUFDSSxLQUFLLENBQUMsQ0FBUztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQVdPLFNBQVM7UUFDZixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBSUQsSUFBYyxNQUFNO1FBQ2xCLE9BQU8sQ0FBQyxDQUFFLE1BQWMsQ0FBQyxNQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7MEpBbkRtQix1QkFBdUIsNENBd0JqQyxrQkFBa0I7OElBeEJSLHVCQUF1QjtBQUluQjtJQUFkLFdBQVcsRUFBRTs7c0RBQVc7MkZBSmQsdUJBQXVCO2tCQUQ1QyxTQUFTOzswQkF5QkwsTUFBTTsyQkFBQyxrQkFBa0I7aUdBcEJKLEtBQUs7c0JBQTVCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNO2dCQUlILEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dE51bWJlciB9IGZyb20gJ0BuZy11dGlsL3V0aWwvY29udmVydCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE51TWFya2Rvd25Db25maWcsIE5VX01BUktET1dOX0NPTkZJRyB9IGZyb20gJy4vbWFya2Rvd24uY29uZmlnJztcbmltcG9ydCB7IE51TWFya2Rvd25TZXJ2aWNlIH0gZnJvbSAnLi9tYXJrZG93bi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTnVNYXJrZG93bkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIG5vdGlmeSQhOiBTdWJzY3JpcHRpb247XG4gIHByb3RlY3RlZCBfaW5zdGFuY2U6IGFueTtcblxuICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSBkZWxheSA9IDA7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueTtcbiAgQE91dHB1dCgpIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJvdGVjdGVkIF92YWx1ZSE6IHN0cmluZztcbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHY6IHN0cmluZykge1xuICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICBpZiAodGhpcy5sb2FkZWQpIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpbnN0YW5jZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgQEluamVjdChOVV9NQVJLRE9XTl9DT05GSUcpIHByb3RlY3RlZCBjb25maWc6IE51TWFya2Rvd25Db25maWcsXG4gICAgcHJvdGVjdGVkIHNydjogTnVNYXJrZG93blNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG5nWm9uZTogTmdab25lLFxuICApIHtcbiAgICB0aGlzLm5vdGlmeSQgPSB0aGlzLnNydi5ub3RpZnkuc3Vic2NyaWJlKCgpID0+IHRoaXMuaW5pdERlbGF5KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RGVsYXkoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmluaXQoKSwgdGhpcy5kZWxheSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaW5pdCgpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBnZXQgbG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh3aW5kb3cgYXMgYW55KS5WZGl0b3I7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGVkKSB7XG4gICAgICB0aGlzLmluaXREZWxheSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNydi5sb2FkKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmeSQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { NuMarkdownBaseComponent } from './markdown-base.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NuMarkdownPreviewComponent extends NuMarkdownBaseComponent {
|
|
5
|
+
init() {
|
|
6
|
+
this.ngZone.runOutsideAngular(async () => {
|
|
7
|
+
await Vditor.preview(this.el.nativeElement, this._value);
|
|
8
|
+
console.log(this.el.nativeElement.innerHTML);
|
|
9
|
+
this.ngZone.run(() => this.ready.emit(this.el.nativeElement.innerHTML));
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownPreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownPreviewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: NuMarkdownPreviewComponent, selector: "nu-markdown-preview", exportAs: ["nuMarkdownPreview"], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownPreviewComponent, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{
|
|
18
|
+
selector: 'nu-markdown-preview',
|
|
19
|
+
template: ``,
|
|
20
|
+
exportAs: 'nuMarkdownPreview',
|
|
21
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
22
|
+
}]
|
|
23
|
+
}] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9tYXJrZG93bi9tYXJrZG93bi1wcmV2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQVVwRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsdUJBQXVCO0lBQzNELElBQUk7UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3ZDLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NkpBUFUsMEJBQTBCO2lKQUExQiwwQkFBMEIsbUhBSjNCLEVBQUU7MkZBSUQsMEJBQTBCO2tCQU50QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxFQUFFO29CQUNaLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51TWFya2Rvd25CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi1iYXNlLmNvbXBvbmVudCc7XG5cbmRlY2xhcmUgdmFyIFZkaXRvcjogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudS1tYXJrZG93bi1wcmV2aWV3JyxcbiAgdGVtcGxhdGU6IGBgLFxuICBleHBvcnRBczogJ251TWFya2Rvd25QcmV2aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE51TWFya2Rvd25QcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgTnVNYXJrZG93bkJhc2VDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBWZGl0b3IucHJldmlldyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX3ZhbHVlKTtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpO1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMucmVhZHkuZW1pdCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { NuMarkdownBaseComponent } from './markdown-base.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class NuMarkdownComponent extends NuMarkdownBaseComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.onChange = (_) => { };
|
|
9
|
+
}
|
|
10
|
+
init() {
|
|
11
|
+
this.ngZone.runOutsideAngular(() => {
|
|
12
|
+
const options = {
|
|
13
|
+
value: this._value,
|
|
14
|
+
cache: {
|
|
15
|
+
enable: false,
|
|
16
|
+
},
|
|
17
|
+
mode: 'sv',
|
|
18
|
+
minHeight: 350,
|
|
19
|
+
input: (value) => {
|
|
20
|
+
this.ngZone.run(() => {
|
|
21
|
+
this._value = value;
|
|
22
|
+
this.onChange(value);
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
...this.config?.defaultOptions,
|
|
26
|
+
...this.options,
|
|
27
|
+
};
|
|
28
|
+
this._instance = new Vditor(this.el.nativeElement, options);
|
|
29
|
+
this.ngZone.run(() => this.ready.emit(this._instance));
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
setDisabled() {
|
|
33
|
+
if (!this.instance) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (this.disabled) {
|
|
37
|
+
this.instance.disabled();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.instance.enable();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
writeValue(value) {
|
|
44
|
+
this._value = value || '';
|
|
45
|
+
if (this.instance) {
|
|
46
|
+
this.instance.setValue(this._value);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
registerOnChange(fn) {
|
|
50
|
+
this.onChange = fn;
|
|
51
|
+
}
|
|
52
|
+
registerOnTouched(_) { }
|
|
53
|
+
setDisabledState(_isDisabled) {
|
|
54
|
+
this.disabled = _isDisabled;
|
|
55
|
+
this.setDisabled();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: NuMarkdownComponent, selector: "nu-markdown", providers: [
|
|
60
|
+
{
|
|
61
|
+
provide: NG_VALUE_ACCESSOR,
|
|
62
|
+
useExisting: forwardRef((() => NuMarkdownComponent)),
|
|
63
|
+
multi: true,
|
|
64
|
+
},
|
|
65
|
+
], exportAs: ["nuMarkdown"], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownComponent, decorators: [{
|
|
67
|
+
type: Component,
|
|
68
|
+
args: [{
|
|
69
|
+
selector: 'nu-markdown',
|
|
70
|
+
template: ``,
|
|
71
|
+
exportAs: 'nuMarkdown',
|
|
72
|
+
providers: [
|
|
73
|
+
{
|
|
74
|
+
provide: NG_VALUE_ACCESSOR,
|
|
75
|
+
useExisting: forwardRef((() => NuMarkdownComponent)),
|
|
76
|
+
multi: true,
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
80
|
+
}]
|
|
81
|
+
}] });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWFya2Rvd24vbWFya2Rvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFpQnBFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBdUI7SUFiaEU7O1FBY1UsYUFBUSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7S0FxRHRDO0lBbkRXLElBQUk7UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxNQUFNLE9BQU8sR0FBRztnQkFDZCxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ2xCLEtBQUssRUFBRTtvQkFDTCxNQUFNLEVBQUUsS0FBSztpQkFDZDtnQkFDRCxJQUFJLEVBQUUsSUFBSTtnQkFDVixTQUFTLEVBQUUsR0FBRztnQkFDZCxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRTtvQkFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO3dCQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzt3QkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdkIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYztnQkFDOUIsR0FBRyxJQUFJLENBQUMsT0FBTzthQUNoQixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQXVCO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxDQUFhLElBQVMsQ0FBQztJQUV6QyxnQkFBZ0IsQ0FBQyxXQUFvQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQzs7c0pBckRVLG1CQUFtQjswSUFBbkIsbUJBQW1CLHNDQVRuQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixFQUFDO1lBQ2xELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwyRUFSUyxFQUFFOzJGQVdELG1CQUFtQjtrQkFiL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxvQkFBb0IsRUFBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTnVNYXJrZG93bkJhc2VDb21wb25lbnQgfSBmcm9tICcuL21hcmtkb3duLWJhc2UuY29tcG9uZW50JztcblxuZGVjbGFyZSB2YXIgVmRpdG9yOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ251LW1hcmtkb3duJyxcbiAgdGVtcGxhdGU6IGBgLFxuICBleHBvcnRBczogJ251TWFya2Rvd24nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51TWFya2Rvd25Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE51TWFya2Rvd25Db21wb25lbnQgZXh0ZW5kcyBOdU1hcmtkb3duQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9IChfOiBzdHJpbmcpID0+IHt9O1xuXG4gIHByb3RlY3RlZCBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIHZhbHVlOiB0aGlzLl92YWx1ZSxcbiAgICAgICAgY2FjaGU6IHtcbiAgICAgICAgICBlbmFibGU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBtb2RlOiAnc3YnLFxuICAgICAgICBtaW5IZWlnaHQ6IDM1MCxcbiAgICAgICAgaW5wdXQ6ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLi4udGhpcy5jb25maWc/LmRlZmF1bHRPcHRpb25zLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB9O1xuICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgVmRpdG9yKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5yZWFkeS5lbWl0KHRoaXMuX2luc3RhbmNlKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldERpc2FibGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbnN0YW5jZS5kaXNhYmxlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluc3RhbmNlLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWUgfHwgJyc7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChfOiAoKSA9PiB2b2lkKTogdm9pZCB7fVxuXG4gIHNldERpc2FibGVkU3RhdGUoX2lzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gX2lzRGlzYWJsZWQ7XG4gICAgdGhpcy5zZXREaXNhYmxlZCgpO1xuICB9XG59XG4iXX0=
|
|
File without changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { NuMarkdownPreviewComponent } from './markdown-preview.component';
|
|
4
|
+
import { NuMarkdownComponent } from './markdown.component';
|
|
5
|
+
import { NU_MARKDOWN_CONFIG } from './markdown.config';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
const COMPONENTS = [NuMarkdownComponent, NuMarkdownPreviewComponent];
|
|
8
|
+
export class NuMarkdownModule {
|
|
9
|
+
static forRoot(config) {
|
|
10
|
+
return {
|
|
11
|
+
ngModule: NuMarkdownModule,
|
|
12
|
+
providers: [{ provide: NU_MARKDOWN_CONFIG, useValue: config }],
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownModule, declarations: [NuMarkdownComponent, NuMarkdownPreviewComponent], imports: [CommonModule], exports: [NuMarkdownComponent, NuMarkdownPreviewComponent] });
|
|
18
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownModule, imports: [[CommonModule]] });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownModule, decorators: [{
|
|
20
|
+
type: NgModule,
|
|
21
|
+
args: [{
|
|
22
|
+
imports: [CommonModule],
|
|
23
|
+
declarations: COMPONENTS,
|
|
24
|
+
exports: COMPONENTS,
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWFya2Rvd24vbWFya2Rvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQW9CLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXpFLE1BQU0sVUFBVSxHQUFHLENBQUMsbUJBQW1CLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztBQU9yRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBeUI7UUFDdEMsT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQy9ELENBQUM7SUFDSixDQUFDOzttSkFOVSxnQkFBZ0I7b0pBQWhCLGdCQUFnQixpQkFQVCxtQkFBbUIsRUFBRSwwQkFBMEIsYUFHdkQsWUFBWSxhQUhKLG1CQUFtQixFQUFFLDBCQUEwQjtvSkFPdEQsZ0JBQWdCLFlBSmxCLENBQUMsWUFBWSxDQUFDOzJGQUlaLGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUUsVUFBVTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51TWFya2Rvd25QcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi1wcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdU1hcmtkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnVNYXJrZG93bkNvbmZpZywgTlVfTUFSS0RPV05fQ09ORklHIH0gZnJvbSAnLi9tYXJrZG93bi5jb25maWcnO1xuXG5jb25zdCBDT01QT05FTlRTID0gW051TWFya2Rvd25Db21wb25lbnQsIE51TWFya2Rvd25QcmV2aWV3Q29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcbiAgZXhwb3J0czogQ09NUE9ORU5UUyxcbn0pXG5leHBvcnQgY2xhc3MgTnVNYXJrZG93bk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IE51TWFya2Rvd25Db25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE51TWFya2Rvd25Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE51TWFya2Rvd25Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5VX01BUktET1dOX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { NuLazyService } from '@ng-util/lazy';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { NU_MARKDOWN_CONFIG } from './markdown.config';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ng-util/lazy";
|
|
7
|
+
export class NuMarkdownService {
|
|
8
|
+
constructor(config, lazySrv) {
|
|
9
|
+
this.lazySrv = lazySrv;
|
|
10
|
+
this.loading = false;
|
|
11
|
+
this.loaded = false;
|
|
12
|
+
this.notify$ = new Subject();
|
|
13
|
+
this.libs = config?.libs || [
|
|
14
|
+
`https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js`,
|
|
15
|
+
`https://cdn.jsdelivr.net/npm/vditor/dist/index.css`,
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
get notify() {
|
|
19
|
+
return this.notify$.asObservable();
|
|
20
|
+
}
|
|
21
|
+
load() {
|
|
22
|
+
if (this.loading) {
|
|
23
|
+
if (this.loaded) {
|
|
24
|
+
this.notify$.next();
|
|
25
|
+
}
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
this.loading = true;
|
|
29
|
+
const libs = this.libs;
|
|
30
|
+
this.lazySrv.monitor(libs).subscribe(() => {
|
|
31
|
+
this.loaded = true;
|
|
32
|
+
this.notify$.next();
|
|
33
|
+
});
|
|
34
|
+
this.lazySrv.load(libs);
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownService, deps: [{ token: NU_MARKDOWN_CONFIG }, { token: i1.NuLazyService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownService, providedIn: 'root' });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownService, decorators: [{
|
|
41
|
+
type: Injectable,
|
|
42
|
+
args: [{ providedIn: 'root' }]
|
|
43
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
44
|
+
type: Inject,
|
|
45
|
+
args: [NU_MARKDOWN_CONFIG]
|
|
46
|
+
}] }, { type: i1.NuLazyService }]; } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21hcmtkb3duL21hcmtkb3duLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBb0Isa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBR3pFLE1BQU0sT0FBTyxpQkFBaUI7SUFVNUIsWUFBd0MsTUFBd0IsRUFBVSxPQUFzQjtRQUF0QixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBUnhGLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBT3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxFQUFFLElBQUksSUFBSTtZQUMxQix1REFBdUQ7WUFDdkQsb0RBQW9EO1NBQ3JELENBQUM7SUFDSixDQUFDO0lBVEQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFTRCxJQUFJO1FBQ0YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3JCO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztvSkFsQ1UsaUJBQWlCLGtCQVVSLGtCQUFrQjt3SkFWM0IsaUJBQWlCLGNBREosTUFBTTsyRkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBV25CLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdUxhenlTZXJ2aWNlIH0gZnJvbSAnQG5nLXV0aWwvbGF6eSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOdU1hcmtkb3duQ29uZmlnLCBOVV9NQVJLRE9XTl9DT05GSUcgfSBmcm9tICcuL21hcmtkb3duLmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTnVNYXJrZG93blNlcnZpY2Uge1xuICBwcml2YXRlIGxpYnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBsb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBub3RpZnkkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBnZXQgbm90aWZ5KCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLm5vdGlmeSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE5VX01BUktET1dOX0NPTkZJRykgY29uZmlnOiBOdU1hcmtkb3duQ29uZmlnLCBwcml2YXRlIGxhenlTcnY6IE51TGF6eVNlcnZpY2UpIHtcbiAgICB0aGlzLmxpYnMgPSBjb25maWc/LmxpYnMgfHwgW1xuICAgICAgYGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vdmRpdG9yL2Rpc3QvaW5kZXgubWluLmpzYCxcbiAgICAgIGBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3ZkaXRvci9kaXN0L2luZGV4LmNzc2AsXG4gICAgXTtcbiAgfVxuXG4gIGxvYWQoKTogdGhpcyB7XG4gICAgaWYgKHRoaXMubG9hZGluZykge1xuICAgICAgaWYgKHRoaXMubG9hZGVkKSB7XG4gICAgICAgIHRoaXMubm90aWZ5JC5uZXh0KCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxpYnMgPSB0aGlzLmxpYnMhO1xuICAgIHRoaXMubGF6eVNydi5tb25pdG9yKGxpYnMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XG4gICAgICB0aGlzLm5vdGlmeSQubmV4dCgpO1xuICAgIH0pO1xuICAgIHRoaXMubGF6eVNydi5sb2FkKGxpYnMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdXRpbC1tYXJrZG93bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21hcmtkb3duL25nLXV0aWwtbWFya2Rvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
File without changes
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { __decorate, __metadata, __awaiter } from 'tslib';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken, Injectable, Inject, EventEmitter, Directive, Input, Output, Component, ChangeDetectionStrategy, forwardRef, NgModule } from '@angular/core';
|
|
4
|
+
import { InputNumber } from '@ng-util/util/convert';
|
|
5
|
+
import { Subject } from 'rxjs';
|
|
6
|
+
import * as i1 from '@ng-util/lazy';
|
|
7
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
|
+
import { CommonModule } from '@angular/common';
|
|
9
|
+
|
|
10
|
+
const NU_MARKDOWN_CONFIG = new InjectionToken('NU_MARKDOWN_CONFIG');
|
|
11
|
+
|
|
12
|
+
class NuMarkdownService {
|
|
13
|
+
constructor(config, lazySrv) {
|
|
14
|
+
this.lazySrv = lazySrv;
|
|
15
|
+
this.loading = false;
|
|
16
|
+
this.loaded = false;
|
|
17
|
+
this.notify$ = new Subject();
|
|
18
|
+
this.libs = (config === null || config === void 0 ? void 0 : config.libs) || [
|
|
19
|
+
`https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js`,
|
|
20
|
+
`https://cdn.jsdelivr.net/npm/vditor/dist/index.css`,
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
get notify() {
|
|
24
|
+
return this.notify$.asObservable();
|
|
25
|
+
}
|
|
26
|
+
load() {
|
|
27
|
+
if (this.loading) {
|
|
28
|
+
if (this.loaded) {
|
|
29
|
+
this.notify$.next();
|
|
30
|
+
}
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
this.loading = true;
|
|
34
|
+
const libs = this.libs;
|
|
35
|
+
this.lazySrv.monitor(libs).subscribe(() => {
|
|
36
|
+
this.loaded = true;
|
|
37
|
+
this.notify$.next();
|
|
38
|
+
});
|
|
39
|
+
this.lazySrv.load(libs);
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownService, deps: [{ token: NU_MARKDOWN_CONFIG }, { token: i1.NuLazyService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
44
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownService, providedIn: 'root' });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownService, decorators: [{
|
|
46
|
+
type: Injectable,
|
|
47
|
+
args: [{ providedIn: 'root' }]
|
|
48
|
+
}], ctorParameters: function () {
|
|
49
|
+
return [{ type: undefined, decorators: [{
|
|
50
|
+
type: Inject,
|
|
51
|
+
args: [NU_MARKDOWN_CONFIG]
|
|
52
|
+
}] }, { type: i1.NuLazyService }];
|
|
53
|
+
} });
|
|
54
|
+
|
|
55
|
+
class NuMarkdownBaseComponent {
|
|
56
|
+
constructor(el, config, srv, ngZone) {
|
|
57
|
+
this.el = el;
|
|
58
|
+
this.config = config;
|
|
59
|
+
this.srv = srv;
|
|
60
|
+
this.ngZone = ngZone;
|
|
61
|
+
this.delay = 0;
|
|
62
|
+
this.disabled = false;
|
|
63
|
+
this.ready = new EventEmitter();
|
|
64
|
+
this.notify$ = this.srv.notify.subscribe(() => this.initDelay());
|
|
65
|
+
}
|
|
66
|
+
set value(v) {
|
|
67
|
+
this._value = v;
|
|
68
|
+
if (this.loaded) {
|
|
69
|
+
this.init();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
get instance() {
|
|
73
|
+
return this._instance;
|
|
74
|
+
}
|
|
75
|
+
initDelay() {
|
|
76
|
+
setTimeout(() => this.init(), this.delay);
|
|
77
|
+
}
|
|
78
|
+
get loaded() {
|
|
79
|
+
return !!window.Vditor;
|
|
80
|
+
}
|
|
81
|
+
ngAfterViewInit() {
|
|
82
|
+
if (this.loaded) {
|
|
83
|
+
this.initDelay();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.srv.load();
|
|
87
|
+
}
|
|
88
|
+
ngOnDestroy() {
|
|
89
|
+
this.notify$.unsubscribe();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownBaseComponent, deps: [{ token: i0.ElementRef }, { token: NU_MARKDOWN_CONFIG }, { token: NuMarkdownService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
93
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: NuMarkdownBaseComponent, inputs: { delay: "delay", disabled: "disabled", options: "options", value: "value" }, outputs: { ready: "ready" }, ngImport: i0 });
|
|
94
|
+
__decorate([
|
|
95
|
+
InputNumber(),
|
|
96
|
+
__metadata("design:type", Object)
|
|
97
|
+
], NuMarkdownBaseComponent.prototype, "delay", void 0);
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownBaseComponent, decorators: [{
|
|
99
|
+
type: Directive
|
|
100
|
+
}], ctorParameters: function () {
|
|
101
|
+
return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
102
|
+
type: Inject,
|
|
103
|
+
args: [NU_MARKDOWN_CONFIG]
|
|
104
|
+
}] }, { type: NuMarkdownService }, { type: i0.NgZone }];
|
|
105
|
+
}, propDecorators: { delay: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], disabled: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], options: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], ready: [{
|
|
112
|
+
type: Output
|
|
113
|
+
}], value: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}] } });
|
|
116
|
+
|
|
117
|
+
class NuMarkdownPreviewComponent extends NuMarkdownBaseComponent {
|
|
118
|
+
init() {
|
|
119
|
+
this.ngZone.runOutsideAngular(() => __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
yield Vditor.preview(this.el.nativeElement, this._value);
|
|
121
|
+
console.log(this.el.nativeElement.innerHTML);
|
|
122
|
+
this.ngZone.run(() => this.ready.emit(this.el.nativeElement.innerHTML));
|
|
123
|
+
}));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownPreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownPreviewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
127
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: NuMarkdownPreviewComponent, selector: "nu-markdown-preview", exportAs: ["nuMarkdownPreview"], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownPreviewComponent, decorators: [{
|
|
129
|
+
type: Component,
|
|
130
|
+
args: [{
|
|
131
|
+
selector: 'nu-markdown-preview',
|
|
132
|
+
template: ``,
|
|
133
|
+
exportAs: 'nuMarkdownPreview',
|
|
134
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
135
|
+
}]
|
|
136
|
+
}] });
|
|
137
|
+
|
|
138
|
+
class NuMarkdownComponent extends NuMarkdownBaseComponent {
|
|
139
|
+
constructor() {
|
|
140
|
+
super(...arguments);
|
|
141
|
+
this.onChange = (_) => { };
|
|
142
|
+
}
|
|
143
|
+
init() {
|
|
144
|
+
this.ngZone.runOutsideAngular(() => {
|
|
145
|
+
var _a;
|
|
146
|
+
const options = Object.assign(Object.assign({ value: this._value, cache: {
|
|
147
|
+
enable: false,
|
|
148
|
+
}, mode: 'sv', minHeight: 350, input: (value) => {
|
|
149
|
+
this.ngZone.run(() => {
|
|
150
|
+
this._value = value;
|
|
151
|
+
this.onChange(value);
|
|
152
|
+
});
|
|
153
|
+
} }, (_a = this.config) === null || _a === void 0 ? void 0 : _a.defaultOptions), this.options);
|
|
154
|
+
this._instance = new Vditor(this.el.nativeElement, options);
|
|
155
|
+
this.ngZone.run(() => this.ready.emit(this._instance));
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
setDisabled() {
|
|
159
|
+
if (!this.instance) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (this.disabled) {
|
|
163
|
+
this.instance.disabled();
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
this.instance.enable();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
writeValue(value) {
|
|
170
|
+
this._value = value || '';
|
|
171
|
+
if (this.instance) {
|
|
172
|
+
this.instance.setValue(this._value);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
registerOnChange(fn) {
|
|
176
|
+
this.onChange = fn;
|
|
177
|
+
}
|
|
178
|
+
registerOnTouched(_) { }
|
|
179
|
+
setDisabledState(_isDisabled) {
|
|
180
|
+
this.disabled = _isDisabled;
|
|
181
|
+
this.setDisabled();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
185
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: NuMarkdownComponent, selector: "nu-markdown", providers: [
|
|
186
|
+
{
|
|
187
|
+
provide: NG_VALUE_ACCESSOR,
|
|
188
|
+
useExisting: forwardRef((() => NuMarkdownComponent)),
|
|
189
|
+
multi: true,
|
|
190
|
+
},
|
|
191
|
+
], exportAs: ["nuMarkdown"], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
192
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownComponent, decorators: [{
|
|
193
|
+
type: Component,
|
|
194
|
+
args: [{
|
|
195
|
+
selector: 'nu-markdown',
|
|
196
|
+
template: ``,
|
|
197
|
+
exportAs: 'nuMarkdown',
|
|
198
|
+
providers: [
|
|
199
|
+
{
|
|
200
|
+
provide: NG_VALUE_ACCESSOR,
|
|
201
|
+
useExisting: forwardRef((() => NuMarkdownComponent)),
|
|
202
|
+
multi: true,
|
|
203
|
+
},
|
|
204
|
+
],
|
|
205
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
206
|
+
}]
|
|
207
|
+
}] });
|
|
208
|
+
|
|
209
|
+
const COMPONENTS = [NuMarkdownComponent, NuMarkdownPreviewComponent];
|
|
210
|
+
class NuMarkdownModule {
|
|
211
|
+
static forRoot(config) {
|
|
212
|
+
return {
|
|
213
|
+
ngModule: NuMarkdownModule,
|
|
214
|
+
providers: [{ provide: NU_MARKDOWN_CONFIG, useValue: config }],
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
219
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownModule, declarations: [NuMarkdownComponent, NuMarkdownPreviewComponent], imports: [CommonModule], exports: [NuMarkdownComponent, NuMarkdownPreviewComponent] });
|
|
220
|
+
/** @nocollapse */ /** @nocollapse */ NuMarkdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownModule, imports: [[CommonModule]] });
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NuMarkdownModule, decorators: [{
|
|
222
|
+
type: NgModule,
|
|
223
|
+
args: [{
|
|
224
|
+
imports: [CommonModule],
|
|
225
|
+
declarations: COMPONENTS,
|
|
226
|
+
exports: COMPONENTS,
|
|
227
|
+
}]
|
|
228
|
+
}] });
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Generated bundle index. Do not edit.
|
|
232
|
+
*/
|
|
233
|
+
|
|
234
|
+
export { NuMarkdownBaseComponent, NuMarkdownComponent, NuMarkdownModule, NuMarkdownPreviewComponent };
|
|
235
|
+
//# sourceMappingURL=ng-util-markdown.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-util-markdown.mjs","sources":["../../../../packages/markdown/markdown.config.ts","../../../../packages/markdown/markdown.service.ts","../../../../packages/markdown/markdown-base.component.ts","../../../../packages/markdown/markdown-preview.component.ts","../../../../packages/markdown/markdown.component.ts","../../../../packages/markdown/markdown.module.ts","../../../../packages/markdown/ng-util-markdown.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const NU_MARKDOWN_CONFIG = new InjectionToken('NU_MARKDOWN_CONFIG');\n\nexport interface NuMarkdownConfig {\n /**\n * The base URL to [Vditor](https://github.com/Vanessa219/vditor) library, Default: `['https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', 'https://cdn.jsdelivr.net/npm/vditor/dist/index.css']`\n */\n libs?: string[];\n\n /**\n * Equar [IOptions](https://github.com/Vanessa219/vditor/blob/master/types/index.d.ts#L432)\n */\n defaultOptions?: any;\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { NuLazyService } from '@ng-util/lazy';\nimport { Observable, Subject } from 'rxjs';\nimport { NuMarkdownConfig, NU_MARKDOWN_CONFIG } from './markdown.config';\n\n@Injectable({ providedIn: 'root' })\nexport class NuMarkdownService {\n private libs: string[];\n private loading = false;\n private loaded = false;\n private notify$ = new Subject<void>();\n\n get notify(): Observable<void> {\n return this.notify$.asObservable();\n }\n\n constructor(@Inject(NU_MARKDOWN_CONFIG) config: NuMarkdownConfig, private lazySrv: NuLazyService) {\n this.libs = config?.libs || [\n `https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js`,\n `https://cdn.jsdelivr.net/npm/vditor/dist/index.css`,\n ];\n }\n\n load(): this {\n if (this.loading) {\n if (this.loaded) {\n this.notify$.next();\n }\n return this;\n }\n this.loading = true;\n\n const libs = this.libs!;\n this.lazySrv.monitor(libs).subscribe(() => {\n this.loaded = true;\n this.notify$.next();\n });\n this.lazySrv.load(libs);\n\n return this;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Inject, Input, NgZone, OnDestroy, Output } from '@angular/core';\nimport { InputNumber } from '@ng-util/util/convert';\nimport { Subscription } from 'rxjs';\nimport { NuMarkdownConfig, NU_MARKDOWN_CONFIG } from './markdown.config';\nimport { NuMarkdownService } from './markdown.service';\n\n@Directive()\nexport abstract class NuMarkdownBaseComponent implements AfterViewInit, OnDestroy {\n private notify$!: Subscription;\n protected _instance: any;\n\n @Input() @InputNumber() delay = 0;\n @Input() disabled = false;\n @Input() options: any;\n @Output() ready = new EventEmitter<string>();\n\n protected _value!: string;\n @Input()\n set value(v: string) {\n this._value = v;\n if (this.loaded) {\n this.init();\n }\n }\n\n get instance(): any {\n return this._instance;\n }\n\n constructor(\n protected el: ElementRef<HTMLElement>,\n @Inject(NU_MARKDOWN_CONFIG) protected config: NuMarkdownConfig,\n protected srv: NuMarkdownService,\n protected ngZone: NgZone,\n ) {\n this.notify$ = this.srv.notify.subscribe(() => this.initDelay());\n }\n\n private initDelay(): void {\n setTimeout(() => this.init(), this.delay);\n }\n\n protected abstract init(): void;\n\n protected get loaded(): boolean {\n return !!(window as any).Vditor;\n }\n\n ngAfterViewInit(): void {\n if (this.loaded) {\n this.initDelay();\n return;\n }\n this.srv.load();\n }\n\n ngOnDestroy(): void {\n this.notify$.unsubscribe();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NuMarkdownBaseComponent } from './markdown-base.component';\n\ndeclare var Vditor: any;\n\n@Component({\n selector: 'nu-markdown-preview',\n template: ``,\n exportAs: 'nuMarkdownPreview',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NuMarkdownPreviewComponent extends NuMarkdownBaseComponent {\n protected init(): void {\n this.ngZone.runOutsideAngular(async () => {\n await Vditor.preview(this.el.nativeElement, this._value);\n console.log(this.el.nativeElement.innerHTML);\n this.ngZone.run(() => this.ready.emit(this.el.nativeElement.innerHTML));\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NuMarkdownBaseComponent } from './markdown-base.component';\n\ndeclare var Vditor: any;\n\n@Component({\n selector: 'nu-markdown',\n template: ``,\n exportAs: 'nuMarkdown',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NuMarkdownComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NuMarkdownComponent extends NuMarkdownBaseComponent implements ControlValueAccessor {\n private onChange = (_: string) => {};\n\n protected init(): void {\n this.ngZone.runOutsideAngular(() => {\n const options = {\n value: this._value,\n cache: {\n enable: false,\n },\n mode: 'sv',\n minHeight: 350,\n input: (value: string) => {\n this.ngZone.run(() => {\n this._value = value;\n this.onChange(value);\n });\n },\n ...this.config?.defaultOptions,\n ...this.options,\n };\n this._instance = new Vditor(this.el.nativeElement, options);\n this.ngZone.run(() => this.ready.emit(this._instance));\n });\n }\n\n private setDisabled(): void {\n if (!this.instance) {\n return;\n }\n if (this.disabled) {\n this.instance.disabled();\n } else {\n this.instance.enable();\n }\n }\n\n writeValue(value: string): void {\n this._value = value || '';\n if (this.instance) {\n this.instance.setValue(this._value);\n }\n }\n\n registerOnChange(fn: (_: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(_: () => void): void {}\n\n setDisabledState(_isDisabled: boolean): void {\n this.disabled = _isDisabled;\n this.setDisabled();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NuMarkdownPreviewComponent } from './markdown-preview.component';\nimport { NuMarkdownComponent } from './markdown.component';\nimport { NuMarkdownConfig, NU_MARKDOWN_CONFIG } from './markdown.config';\n\nconst COMPONENTS = [NuMarkdownComponent, NuMarkdownPreviewComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS,\n})\nexport class NuMarkdownModule {\n static forRoot(config?: NuMarkdownConfig): ModuleWithProviders<NuMarkdownModule> {\n return {\n ngModule: NuMarkdownModule,\n providers: [{ provide: NU_MARKDOWN_CONFIG, useValue: config }],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|