@ng-util/markdown 20.1.0 → 21.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/README.md CHANGED
@@ -26,8 +26,6 @@ npm install @ng-util/markdown --save
26
26
 
27
27
  ### Simple
28
28
 
29
- **Standalone**
30
-
31
29
  ```ts
32
30
  import { Component } from '@angular/core';
33
31
  import { NuMonacoEditorComponent } from '@ng-util/monaco-editor';
@@ -42,22 +40,6 @@ import { NuMonacoEditorComponent } from '@ng-util/monaco-editor';
42
40
  export class MonacoDemo { }
43
41
  ```
44
42
 
45
- **Module**
46
-
47
- Include `NuMarkdownModule` in Main Module and Feature Modules where you want to use the editor component.(eg: app.module.ts):
48
-
49
- ```ts
50
- import { NgModule } from '@angular/core';
51
- import { NuMarkdownModule } from '@ng-util/markdown';
52
-
53
- @NgModule({
54
- imports: [
55
- NuMarkdownModule // And use `provideNuMarkdownConfig` to modify the global configuration
56
- ],
57
- })
58
- export class AppModule { }
59
- ```
60
-
61
43
  Create markdown options in component.
62
44
 
63
45
  ```ts
@@ -65,7 +47,7 @@ import { Component } from '@angular/core';
65
47
 
66
48
  @Component({
67
49
  selector: 'app-root',
68
- template: `<nu-markdown [(ngModel)]="value"></nu-markdown>`,
50
+ template: `<nu-markdown [(ngModel)]="value" />`,
69
51
  })
70
52
  export class DemoComponent {
71
53
  value = '# Title';
@@ -77,18 +59,17 @@ export class DemoComponent {
77
59
  You can use `nu-markdown-preview` component to render a Markdown preview effect (no editing).
78
60
 
79
61
  ```html
80
- <nu-markdown-preview value="# Title"></nu-markdown-preview>
62
+ <nu-markdown-preview value="# Title" />
81
63
  ```
82
64
 
83
65
  ### How to change cdn?
84
66
 
85
- - If using standalone use `provideNuMarkdownConfig({ libs: [] })` to adjust.
86
- - If using module, use `NuMarkdownModule.forRoot({ libs: [] })` to adjust.
67
+ - Using `provideNuMarkdownConfig({ libs: [] })` to adjust.
87
68
 
88
69
  The libs parameter should contain `index.min.js` and `index.css`, like this:
89
70
 
90
71
  ```ts
91
- provideNuMarkdownConfig({
72
+ provideNuMarkdownConfig({
92
73
  libs: [
93
74
  'https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js',
94
75
  'https://cdn.jsdelivr.net/npm/vditor/dist/index.css'
@@ -110,7 +91,7 @@ In addition, You can also use local path:
110
91
  Then modify the libs path:
111
92
 
112
93
  ```ts
113
- provideNuMarkdownConfig({
94
+ provideNuMarkdownConfig({
114
95
  libs: [
115
96
  './assets/vditor/index.min.js',
116
97
  './assets/vditor/index.css'
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, makeEnvironmentProviders, inject, Injectable, ElementRef, input, numberAttribute, booleanAttribute, Directive, EventEmitter, ChangeDetectionStrategy, Component, forwardRef, NgModule } from '@angular/core';
2
+ import { InjectionToken, makeEnvironmentProviders, inject, Injectable, ElementRef, input, numberAttribute, booleanAttribute, afterNextRender, Directive, EventEmitter, ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';
3
3
  import { Subject } from 'rxjs';
4
4
  import { NuLazyService } from '@ng-util/lazy';
5
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
6
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
- import { CommonModule } from '@angular/common';
7
7
 
8
8
  const NU_MARKDOWN_CONFIG = new InjectionToken('NU_MARKDOWN_CONFIG');
9
9
  function provideNuMarkdownConfig(config) {
@@ -13,19 +13,16 @@ function provideNuMarkdownConfig(config) {
13
13
  class NuMarkdownService {
14
14
  config = inject(NU_MARKDOWN_CONFIG, { optional: true });
15
15
  lazySrv = inject(NuLazyService);
16
- libs;
16
+ libs = this.config?.libs || [
17
+ `https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js`,
18
+ `https://cdn.jsdelivr.net/npm/vditor/dist/index.css`
19
+ ];
17
20
  loading = false;
18
21
  loaded = false;
19
22
  notify$ = new Subject();
20
23
  get notify() {
21
24
  return this.notify$.asObservable();
22
25
  }
23
- constructor() {
24
- this.libs = this.config?.libs || [
25
- `https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js`,
26
- `https://cdn.jsdelivr.net/npm/vditor/dist/index.css`
27
- ];
28
- }
29
26
  load() {
30
27
  if (this.loading) {
31
28
  if (this.loaded) {
@@ -42,52 +39,50 @@ class NuMarkdownService {
42
39
  this.lazySrv.load(libs);
43
40
  return this;
44
41
  }
45
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownService, providedIn: 'root' });
42
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: NuMarkdownService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: NuMarkdownService, providedIn: 'root' });
47
44
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownService, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: NuMarkdownService, decorators: [{
49
46
  type: Injectable,
50
47
  args: [{ providedIn: 'root' }]
51
- }], ctorParameters: () => [] });
48
+ }] });
52
49
 
53
50
  class NuMarkdownBaseComponent {
54
51
  el = inject(ElementRef);
55
52
  config = inject(NU_MARKDOWN_CONFIG, { optional: true });
56
53
  srv = inject(NuMarkdownService);
57
- notify$;
58
54
  _instance;
59
- delay = input(0, { transform: numberAttribute });
60
- disabled = input(false, { transform: booleanAttribute });
55
+ delay = input(0, ...(ngDevMode ? [{ debugName: "delay", transform: numberAttribute }] : [{ transform: numberAttribute }]));
56
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
61
57
  get instance() {
62
58
  return this._instance;
63
59
  }
60
+ constructor() {
61
+ this.srv.notify.pipe(takeUntilDestroyed()).subscribe(() => this.initDelay());
62
+ afterNextRender(() => {
63
+ if (this.loaded) {
64
+ this.initDelay();
65
+ return;
66
+ }
67
+ this.srv.load();
68
+ });
69
+ }
64
70
  initDelay() {
65
71
  setTimeout(() => this.init(), this.delay());
66
72
  }
67
73
  get loaded() {
68
74
  return !!window.Vditor;
69
75
  }
70
- ngAfterViewInit() {
71
- this.notify$ = this.srv.notify.subscribe(() => this.initDelay());
72
- if (this.loaded) {
73
- this.initDelay();
74
- return;
75
- }
76
- this.srv.load();
77
- }
78
- ngOnDestroy() {
79
- this.notify$?.unsubscribe();
80
- }
81
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
82
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.2", type: NuMarkdownBaseComponent, isStandalone: true, inputs: { delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
76
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: NuMarkdownBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
77
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: NuMarkdownBaseComponent, isStandalone: true, inputs: { delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
83
78
  }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownBaseComponent, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: NuMarkdownBaseComponent, decorators: [{
85
80
  type: Directive
86
- }] });
81
+ }], ctorParameters: () => [], propDecorators: { delay: [{ type: i0.Input, args: [{ isSignal: true, alias: "delay", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
87
82
 
88
83
  class NuMarkdownPreviewComponent extends NuMarkdownBaseComponent {
89
- options = input();
90
- value = input('');
84
+ options = input(...(ngDevMode ? [undefined, { debugName: "options" }] : []));
85
+ value = input('', ...(ngDevMode ? [{ debugName: "value" }] : []));
91
86
  ready = new EventEmitter();
92
87
  async init() {
93
88
  await Vditor.preview(this.el.nativeElement, this.value(), {
@@ -96,10 +91,10 @@ class NuMarkdownPreviewComponent extends NuMarkdownBaseComponent {
96
91
  });
97
92
  this.ready.emit(this.el.nativeElement.innerHTML);
98
93
  }
99
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownPreviewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
100
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.2", type: NuMarkdownPreviewComponent, isStandalone: true, selector: "nu-markdown-preview", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["nuMarkdownPreview"], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
94
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: NuMarkdownPreviewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
95
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: NuMarkdownPreviewComponent, isStandalone: true, selector: "nu-markdown-preview", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["nuMarkdownPreview"], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
96
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownPreviewComponent, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: NuMarkdownPreviewComponent, decorators: [{
103
98
  type: Component,
104
99
  args: [{
105
100
  selector: 'nu-markdown-preview',
@@ -107,10 +102,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
107
102
  exportAs: 'nuMarkdownPreview',
108
103
  changeDetection: ChangeDetectionStrategy.OnPush
109
104
  }]
110
- }] });
105
+ }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] } });
111
106
 
112
107
  class NuMarkdownComponent extends NuMarkdownBaseComponent {
113
- options = input();
108
+ options = input(...(ngDevMode ? [undefined, { debugName: "options" }] : []));
114
109
  ready = new EventEmitter();
115
110
  value = '';
116
111
  onChange = (_) => { };
@@ -156,8 +151,8 @@ class NuMarkdownComponent extends NuMarkdownBaseComponent {
156
151
  setDisabledState(v) {
157
152
  this.setDisabled(v);
158
153
  }
159
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
160
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.2", type: NuMarkdownComponent, isStandalone: true, selector: "nu-markdown", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
154
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: NuMarkdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
155
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: NuMarkdownComponent, isStandalone: true, selector: "nu-markdown", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
161
156
  {
162
157
  provide: NG_VALUE_ACCESSOR,
163
158
  useExisting: forwardRef((() => NuMarkdownComponent)),
@@ -165,7 +160,7 @@ class NuMarkdownComponent extends NuMarkdownBaseComponent {
165
160
  }
166
161
  ], exportAs: ["nuMarkdown"], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
167
162
  }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownComponent, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: NuMarkdownComponent, decorators: [{
169
164
  type: Component,
170
165
  args: [{
171
166
  selector: 'nu-markdown',
@@ -180,34 +175,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
180
175
  ],
181
176
  changeDetection: ChangeDetectionStrategy.OnPush
182
177
  }]
183
- }] });
184
-
185
- const COMPONENTS = [NuMarkdownComponent, NuMarkdownPreviewComponent];
186
- class NuMarkdownModule {
187
- /**
188
- * Or use `provideNuMarkdownConfig` instead.
189
- */
190
- static forRoot(config) {
191
- return {
192
- ngModule: NuMarkdownModule,
193
- providers: [{ provide: NU_MARKDOWN_CONFIG, useValue: config }]
194
- };
195
- }
196
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
197
- /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownModule, imports: [CommonModule, NuMarkdownComponent, NuMarkdownPreviewComponent], exports: [NuMarkdownComponent, NuMarkdownPreviewComponent] });
198
- /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownModule, imports: [CommonModule] });
199
- }
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMarkdownModule, decorators: [{
201
- type: NgModule,
202
- args: [{
203
- imports: [CommonModule, ...COMPONENTS],
204
- exports: COMPONENTS
205
- }]
206
- }] });
178
+ }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }] } });
207
179
 
208
180
  /**
209
181
  * Generated bundle index. Do not edit.
210
182
  */
211
183
 
212
- export { NU_MARKDOWN_CONFIG, NuMarkdownBaseComponent, NuMarkdownComponent, NuMarkdownModule, NuMarkdownPreviewComponent, NuMarkdownService, provideNuMarkdownConfig };
184
+ export { NU_MARKDOWN_CONFIG, NuMarkdownBaseComponent, NuMarkdownComponent, NuMarkdownPreviewComponent, NuMarkdownService, provideNuMarkdownConfig };
213
185
  //# sourceMappingURL=ng-util-markdown.mjs.map
@@ -1 +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 { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport type VditorType from 'vditor';\n\nexport const NU_MARKDOWN_CONFIG = new InjectionToken<NuMarkdownConfig>('NU_MARKDOWN_CONFIG');\n\nexport function provideNuMarkdownConfig(config?: NuMarkdownConfig): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: NU_MARKDOWN_CONFIG, useValue: config }]);\n}\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#options)\n */\n defaultOptions?: VditorType['vditor']['options'];\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { NuLazyService } from '@ng-util/lazy';\n\nimport { NU_MARKDOWN_CONFIG } from './markdown.config';\n\n@Injectable({ providedIn: 'root' })\nexport class NuMarkdownService {\n private readonly config = inject(NU_MARKDOWN_CONFIG, { optional: true });\n private readonly lazySrv = inject(NuLazyService);\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() {\n this.libs = this.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 {\n AfterViewInit,\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n input,\n numberAttribute,\n OnDestroy\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport type VditorType from 'vditor';\n\nimport { NU_MARKDOWN_CONFIG } from './markdown.config';\nimport { NuMarkdownService } from './markdown.service';\n\n@Directive()\nexport abstract class NuMarkdownBaseComponent implements AfterViewInit, OnDestroy {\n protected el = inject<ElementRef<HTMLElement>>(ElementRef);\n protected config = inject(NU_MARKDOWN_CONFIG, { optional: true });\n protected srv = inject(NuMarkdownService);\n\n private notify$?: Subscription;\n protected _instance?: VditorType;\n\n delay = input(0, { transform: numberAttribute });\n disabled = input(false, { transform: booleanAttribute });\n\n get instance(): VditorType | undefined {\n return this._instance;\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 this.notify$ = this.srv.notify.subscribe(() => this.initDelay());\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, EventEmitter, input } from '@angular/core';\n\nimport { NuMarkdownBaseComponent } from './markdown-base.component';\n\ndeclare let 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 options = input<any>();\n value = input<string>('');\n readonly ready = new EventEmitter<string>();\n\n protected async init() {\n await Vditor.preview(this.el.nativeElement, this.value(), {\n cdn: 'https://cdn.jsdelivr.net/npm/vditor',\n ...this.options()\n });\n this.ready.emit(this.el.nativeElement.innerHTML);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { NuMarkdownBaseComponent } from './markdown-base.component';\nimport type VditorType from 'vditor';\n\ndeclare let 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 options = input<VditorType['vditor']['options']>();\n readonly ready = new EventEmitter<VditorType>();\n\n private value = '';\n private onChange = (_: string) => {};\n\n protected init(): void {\n const options: VditorType['vditor']['options'] = {\n value: this.value,\n cache: {\n enable: false\n },\n mode: 'sv',\n minHeight: 350,\n input: (value: string) => {\n this.onChange(value);\n },\n after: () => {\n this.setDisabled(this.disabled());\n },\n ...this.config?.defaultOptions,\n ...this.options\n };\n this._instance = new Vditor(this.el.nativeElement, options);\n this.ready.emit(this._instance);\n }\n\n private setDisabled(v: boolean): void {\n const i = this._instance;\n if (i == null) return;\n if (v) {\n i.disabled();\n } else {\n i.enable();\n }\n }\n\n writeValue(value: string): void {\n this.value = value;\n this.instance?.setValue(value);\n }\n\n registerOnChange(fn: (_: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(_: () => void): void {}\n\n setDisabledState(v: boolean): void {\n this.setDisabled(v);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\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, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class NuMarkdownModule {\n /**\n * Or use `provideNuMarkdownConfig` instead.\n */\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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"}
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/ng-util-markdown.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport type VditorType from 'vditor';\n\nexport const NU_MARKDOWN_CONFIG = new InjectionToken<NuMarkdownConfig>('NU_MARKDOWN_CONFIG');\n\nexport function provideNuMarkdownConfig(config?: NuMarkdownConfig): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: NU_MARKDOWN_CONFIG, useValue: config }]);\n}\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#options)\n */\n defaultOptions?: VditorType['vditor']['options'];\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { NuLazyService } from '@ng-util/lazy';\n\nimport { NU_MARKDOWN_CONFIG } from './markdown.config';\n\n@Injectable({ providedIn: 'root' })\nexport class NuMarkdownService {\n private readonly config = inject(NU_MARKDOWN_CONFIG, { optional: true });\n private readonly lazySrv = inject(NuLazyService);\n private libs = this.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 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 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 {\n afterNextRender,\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n input,\n numberAttribute\n} from '@angular/core';\nimport type VditorType from 'vditor';\nimport { NU_MARKDOWN_CONFIG } from './markdown.config';\nimport { NuMarkdownService } from './markdown.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive()\nexport abstract class NuMarkdownBaseComponent {\n protected el = inject<ElementRef<HTMLElement>>(ElementRef);\n protected config = inject(NU_MARKDOWN_CONFIG, { optional: true });\n protected srv = inject(NuMarkdownService);\n\n protected _instance?: VditorType;\n\n delay = input(0, { transform: numberAttribute });\n disabled = input(false, { transform: booleanAttribute });\n\n get instance(): VditorType | undefined {\n return this._instance;\n }\n\n constructor() {\n this.srv.notify.pipe(takeUntilDestroyed()).subscribe(() => this.initDelay());\n\n afterNextRender(() => {\n if (this.loaded) {\n this.initDelay();\n return;\n }\n this.srv.load();\n });\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","import { ChangeDetectionStrategy, Component, EventEmitter, input } from '@angular/core';\n\nimport { NuMarkdownBaseComponent } from './markdown-base.component';\n\ndeclare let 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 options = input<any>();\n value = input<string>('');\n readonly ready = new EventEmitter<string>();\n\n protected async init() {\n await Vditor.preview(this.el.nativeElement, this.value(), {\n cdn: 'https://cdn.jsdelivr.net/npm/vditor',\n ...this.options()\n });\n this.ready.emit(this.el.nativeElement.innerHTML);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { NuMarkdownBaseComponent } from './markdown-base.component';\nimport type VditorType from 'vditor';\n\ndeclare let 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 options = input<VditorType['vditor']['options']>();\n readonly ready = new EventEmitter<VditorType>();\n\n private value = '';\n private onChange = (_: string) => {};\n\n protected init(): void {\n const options: VditorType['vditor']['options'] = {\n value: this.value,\n cache: {\n enable: false\n },\n mode: 'sv',\n minHeight: 350,\n input: (value: string) => {\n this.onChange(value);\n },\n after: () => {\n this.setDisabled(this.disabled());\n },\n ...this.config?.defaultOptions,\n ...this.options\n };\n this._instance = new Vditor(this.el.nativeElement, options);\n this.ready.emit(this._instance);\n }\n\n private setDisabled(v: boolean): void {\n const i = this._instance;\n if (i == null) return;\n if (v) {\n i.disabled();\n } else {\n i.enable();\n }\n }\n\n writeValue(value: string): void {\n this.value = value;\n this.instance?.setValue(value);\n }\n\n registerOnChange(fn: (_: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(_: () => void): void {}\n\n setDisabledState(v: boolean): void {\n this.setDisabled(v);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-util/markdown",
3
- "version": "20.1.0",
3
+ "version": "21.0.0",
4
4
  "author": "cipchk<cipchk@qq.com>",
5
5
  "description": "Vditor for Angular",
6
6
  "license": "MIT",
@@ -21,18 +21,17 @@
21
21
  "angular standalone library"
22
22
  ],
23
23
  "dependencies": {
24
- "@ng-util/util": "^14.0.0",
25
- "@ng-util/lazy": "^14.0.0",
24
+ "@ng-util/lazy": "^20.0.0",
26
25
  "tslib": "^2.3.0"
27
26
  },
28
27
  "module": "fesm2022/ng-util-markdown.mjs",
29
- "typings": "index.d.ts",
28
+ "typings": "types/ng-util-markdown.d.ts",
30
29
  "exports": {
31
30
  "./package.json": {
32
31
  "default": "./package.json"
33
32
  },
34
33
  ".": {
35
- "types": "./index.d.ts",
34
+ "types": "./types/ng-util-markdown.d.ts",
36
35
  "default": "./fesm2022/ng-util-markdown.mjs"
37
36
  }
38
37
  },
@@ -1,10 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { AfterViewInit, OnDestroy, ElementRef, EventEmitter, InjectionToken, EnvironmentProviders, ModuleWithProviders } from '@angular/core';
2
+ import { ElementRef, EventEmitter, InjectionToken, EnvironmentProviders } from '@angular/core';
3
3
  import * as _ng_util_markdown from '@ng-util/markdown';
4
4
  import VditorType from 'vditor';
5
5
  import { Observable } from 'rxjs';
6
6
  import { ControlValueAccessor } from '@angular/forms';
7
- import * as i1 from '@angular/common';
8
7
 
9
8
  declare class NuMarkdownService {
10
9
  private readonly config;
@@ -14,26 +13,23 @@ declare class NuMarkdownService {
14
13
  private loaded;
15
14
  private notify$;
16
15
  get notify(): Observable<void>;
17
- constructor();
18
16
  load(): this;
19
17
  static ɵfac: i0.ɵɵFactoryDeclaration<NuMarkdownService, never>;
20
18
  static ɵprov: i0.ɵɵInjectableDeclaration<NuMarkdownService>;
21
19
  }
22
20
 
23
- declare abstract class NuMarkdownBaseComponent implements AfterViewInit, OnDestroy {
21
+ declare abstract class NuMarkdownBaseComponent {
24
22
  protected el: ElementRef<HTMLElement>;
25
23
  protected config: _ng_util_markdown.NuMarkdownConfig | null;
26
24
  protected srv: NuMarkdownService;
27
- private notify$?;
28
25
  protected _instance?: VditorType;
29
26
  delay: i0.InputSignalWithTransform<number, unknown>;
30
27
  disabled: i0.InputSignalWithTransform<boolean, unknown>;
31
28
  get instance(): VditorType | undefined;
29
+ constructor();
32
30
  private initDelay;
33
31
  protected abstract init(): void;
34
32
  protected get loaded(): boolean;
35
- ngAfterViewInit(): void;
36
- ngOnDestroy(): void;
37
33
  static ɵfac: i0.ɵɵFactoryDeclaration<NuMarkdownBaseComponent, never>;
38
34
  static ɵdir: i0.ɵɵDirectiveDeclaration<NuMarkdownBaseComponent, never, never, { "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
39
35
  }
@@ -75,15 +71,5 @@ interface NuMarkdownConfig {
75
71
  defaultOptions?: VditorType['vditor']['options'];
76
72
  }
77
73
 
78
- declare class NuMarkdownModule {
79
- /**
80
- * Or use `provideNuMarkdownConfig` instead.
81
- */
82
- static forRoot(config?: NuMarkdownConfig): ModuleWithProviders<NuMarkdownModule>;
83
- static ɵfac: i0.ɵɵFactoryDeclaration<NuMarkdownModule, never>;
84
- static ɵmod: i0.ɵɵNgModuleDeclaration<NuMarkdownModule, never, [typeof i1.CommonModule, typeof NuMarkdownComponent, typeof NuMarkdownPreviewComponent], [typeof NuMarkdownComponent, typeof NuMarkdownPreviewComponent]>;
85
- static ɵinj: i0.ɵɵInjectorDeclaration<NuMarkdownModule>;
86
- }
87
-
88
- export { NU_MARKDOWN_CONFIG, NuMarkdownBaseComponent, NuMarkdownComponent, NuMarkdownModule, NuMarkdownPreviewComponent, NuMarkdownService, provideNuMarkdownConfig };
74
+ export { NU_MARKDOWN_CONFIG, NuMarkdownBaseComponent, NuMarkdownComponent, NuMarkdownPreviewComponent, NuMarkdownService, provideNuMarkdownConfig };
89
75
  export type { NuMarkdownConfig };