@mdzip/editor-ng 1.2.8 → 1.2.9

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.
@@ -0,0 +1,182 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, ViewChild, Output, Input, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { MdzipWorkspaceView } from '@mdzip/editor';
4
+
5
+ class MdzipWorkspaceComponent {
6
+ constructor() {
7
+ this.bytes = null;
8
+ this.workspace = null;
9
+ this.fileName = 'document.mdz';
10
+ this.mode = 'read-only';
11
+ this.controls = 'viewer';
12
+ this.navigationMode = 'editor';
13
+ this.navigationButtonActive = true;
14
+ this.changed = new EventEmitter();
15
+ this.saved = new EventEmitter();
16
+ this.workspaceChanged = new EventEmitter();
17
+ this.documentChanged = new EventEmitter();
18
+ this.assetChanged = new EventEmitter();
19
+ this.manifestChanged = new EventEmitter();
20
+ this.snapshotChanged = new EventEmitter();
21
+ this.selectionChanged = new EventEmitter();
22
+ this.dirtyChanged = new EventEmitter();
23
+ this.validationChanged = new EventEmitter();
24
+ this.colorSchemeChanged = new EventEmitter();
25
+ this.failed = new EventEmitter();
26
+ this.view = null;
27
+ }
28
+ ngAfterViewInit() {
29
+ this.createView();
30
+ this.syncView();
31
+ }
32
+ ngOnChanges(changes) {
33
+ if (this.view && (changes['controls'] || changes['initialLayout']
34
+ || changes['initialColorScheme'] || changes['navigationMode']
35
+ || changes['navigationButtonActive'])) {
36
+ this.createView();
37
+ this.syncView();
38
+ return;
39
+ }
40
+ if (this.view && (changes['bytes'] || changes['workspace'] || changes['mode']
41
+ || changes['sourceFormat'] || changes['fileName'])) {
42
+ this.syncView();
43
+ }
44
+ }
45
+ ngOnDestroy() {
46
+ this.view?.destroy();
47
+ }
48
+ canExecuteCommand(command) {
49
+ return this.view?.canExecuteCommand(command) ?? false;
50
+ }
51
+ executeCommand(command, file) {
52
+ return this.view?.executeCommand(command, file) ?? Promise.resolve(false);
53
+ }
54
+ convertToMdz() {
55
+ return this.view?.convertToMdz() ?? Promise.resolve(false);
56
+ }
57
+ focus() {
58
+ this.view?.focus();
59
+ }
60
+ flush() {
61
+ return this.view?.flush() ?? Promise.resolve(null);
62
+ }
63
+ serialize() {
64
+ return this.view?.serialize() ?? Promise.resolve(null);
65
+ }
66
+ getCurrentSnapshot() {
67
+ return this.view?.getCurrentSnapshot() ?? Promise.resolve(null);
68
+ }
69
+ markPersisted() {
70
+ this.view?.markPersisted();
71
+ }
72
+ addAsset(archivePath, fileBytes) {
73
+ return this.view?.addAsset(archivePath, fileBytes) ?? Promise.resolve();
74
+ }
75
+ replaceAsset(archivePath, fileBytes) {
76
+ return this.view?.replaceAsset(archivePath, fileBytes) ?? Promise.resolve(false);
77
+ }
78
+ removeAsset(archivePath, options) {
79
+ return this.view?.removeAsset(archivePath, options) ?? Promise.resolve(false);
80
+ }
81
+ listAssets() {
82
+ return this.view?.listAssets() ?? [];
83
+ }
84
+ syncView() {
85
+ if (this.view && this.workspace) {
86
+ void this.view.openWorkspace(this.workspace, {
87
+ mode: this.mode,
88
+ sourceFormat: this.sourceFormat,
89
+ fileName: this.fileName
90
+ });
91
+ }
92
+ else if (this.view && this.bytes) {
93
+ void this.view.open(this.bytes, {
94
+ mode: this.mode,
95
+ sourceFormat: this.sourceFormat,
96
+ fileName: this.fileName
97
+ });
98
+ }
99
+ }
100
+ createView() {
101
+ this.view?.destroy();
102
+ this.view = new MdzipWorkspaceView(this.hostRef.nativeElement, {
103
+ controls: this.controls,
104
+ initialLayout: this.initialLayout,
105
+ initialColorScheme: this.initialColorScheme,
106
+ navigationMode: this.navigationMode,
107
+ navigationButtonActive: this.navigationButtonActive,
108
+ onChanged: (bytes, snapshot) => this.changed.emit({ bytes, snapshot }),
109
+ onSaved: (bytes, snapshot) => this.saved.emit({ bytes, snapshot }),
110
+ onWorkspaceChanged: (event) => this.workspaceChanged.emit(event),
111
+ onDocumentChanged: (event) => this.documentChanged.emit(event),
112
+ onAssetChanged: (event) => this.assetChanged.emit(event),
113
+ onManifestChanged: (event) => this.manifestChanged.emit(event),
114
+ onSnapshotChanged: (snapshot) => this.snapshotChanged.emit(snapshot),
115
+ onSelectionChanged: (snapshot) => this.selectionChanged.emit(snapshot),
116
+ onDirtyChanged: (snapshot) => this.dirtyChanged.emit(snapshot),
117
+ onValidationChanged: (snapshot) => this.validationChanged.emit(snapshot),
118
+ onColorSchemeChanged: (colorScheme) => this.colorSchemeChanged.emit(colorScheme),
119
+ onFailed: (e) => this.failed.emit(e),
120
+ });
121
+ }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: MdzipWorkspaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
123
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.24", type: MdzipWorkspaceComponent, isStandalone: true, selector: "mdzip-workspace", inputs: { bytes: "bytes", workspace: "workspace", fileName: "fileName", mode: "mode", sourceFormat: "sourceFormat", controls: "controls", initialLayout: "initialLayout", initialColorScheme: "initialColorScheme", navigationMode: "navigationMode", navigationButtonActive: "navigationButtonActive" }, outputs: { changed: "changed", saved: "saved", workspaceChanged: "workspaceChanged", documentChanged: "documentChanged", assetChanged: "assetChanged", manifestChanged: "manifestChanged", snapshotChanged: "snapshotChanged", selectionChanged: "selectionChanged", dirtyChanged: "dirtyChanged", validationChanged: "validationChanged", colorSchemeChanged: "colorSchemeChanged", failed: "failed" }, viewQueries: [{ propertyName: "hostRef", first: true, predicate: ["host"], descendants: true }], usesOnChanges: true, ngImport: i0, template: '<div #host></div>', isInline: true, styles: [":host{display:block;height:100%}div{height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
124
+ }
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: MdzipWorkspaceComponent, decorators: [{
126
+ type: Component,
127
+ args: [{ selector: 'mdzip-workspace', standalone: true, template: '<div #host></div>', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;height:100%}div{height:100%}\n"] }]
128
+ }], propDecorators: { bytes: [{
129
+ type: Input
130
+ }], workspace: [{
131
+ type: Input
132
+ }], fileName: [{
133
+ type: Input
134
+ }], mode: [{
135
+ type: Input
136
+ }], sourceFormat: [{
137
+ type: Input
138
+ }], controls: [{
139
+ type: Input
140
+ }], initialLayout: [{
141
+ type: Input
142
+ }], initialColorScheme: [{
143
+ type: Input
144
+ }], navigationMode: [{
145
+ type: Input
146
+ }], navigationButtonActive: [{
147
+ type: Input
148
+ }], changed: [{
149
+ type: Output
150
+ }], saved: [{
151
+ type: Output
152
+ }], workspaceChanged: [{
153
+ type: Output
154
+ }], documentChanged: [{
155
+ type: Output
156
+ }], assetChanged: [{
157
+ type: Output
158
+ }], manifestChanged: [{
159
+ type: Output
160
+ }], snapshotChanged: [{
161
+ type: Output
162
+ }], selectionChanged: [{
163
+ type: Output
164
+ }], dirtyChanged: [{
165
+ type: Output
166
+ }], validationChanged: [{
167
+ type: Output
168
+ }], colorSchemeChanged: [{
169
+ type: Output
170
+ }], failed: [{
171
+ type: Output
172
+ }], hostRef: [{
173
+ type: ViewChild,
174
+ args: ['host']
175
+ }] } });
176
+
177
+ /**
178
+ * Generated bundle index. Do not edit.
179
+ */
180
+
181
+ export { MdzipWorkspaceComponent };
182
+ //# sourceMappingURL=mdzip-editor-ng.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdzip-editor-ng.mjs","sources":["../../src/workspace.component.ts","../../src/mdzip-editor-ng.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { MdzipWorkspaceView } from '@mdzip/editor';\nimport type {\n MdzipControlPolicy,\n MdzipControlPreset,\n MdzipColorScheme,\n MdzipEditorCommand,\n MdzipDocumentChangeEvent,\n MdzipEditorSnapshot,\n MdzipNavigationMode,\n MdzipRemoveAssetOptions,\n MdzipSourceFormat,\n MdzWorkspace,\n MdzWorkspaceAsset,\n MdzipWorkspaceChange,\n MdzipWorkspaceLayout,\n MdzipWorkspaceMode,\n MdzipWorkspaceSave,\n MdzipWorkspaceSnapshot,\n} from '@mdzip/editor';\n\n@Component({\n selector: 'mdzip-workspace',\n standalone: true,\n template: '<div #host></div>',\n styles: [':host { display: block; height: 100%; } div { height: 100%; }'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MdzipWorkspaceComponent implements AfterViewInit, OnChanges, OnDestroy {\n @Input() bytes: Uint8Array | null = null;\n @Input() workspace: MdzWorkspace | null = null;\n @Input() fileName = 'document.mdz';\n @Input() mode: MdzipWorkspaceMode = 'read-only';\n @Input() sourceFormat?: MdzipSourceFormat;\n @Input() controls: MdzipControlPreset | MdzipControlPolicy = 'viewer';\n @Input() initialLayout?: MdzipWorkspaceLayout;\n @Input() initialColorScheme?: MdzipColorScheme;\n @Input() navigationMode: MdzipNavigationMode = 'editor';\n @Input() navigationButtonActive = true;\n @Output() readonly changed = new EventEmitter<MdzipWorkspaceChange>();\n @Output() readonly saved = new EventEmitter<MdzipWorkspaceSave>();\n @Output() readonly workspaceChanged = new EventEmitter<MdzipDocumentChangeEvent>();\n @Output() readonly documentChanged = new EventEmitter<MdzipDocumentChangeEvent>();\n @Output() readonly assetChanged = new EventEmitter<MdzipDocumentChangeEvent>();\n @Output() readonly manifestChanged = new EventEmitter<MdzipDocumentChangeEvent>();\n @Output() readonly snapshotChanged = new EventEmitter<MdzipWorkspaceSnapshot>();\n @Output() readonly selectionChanged = new EventEmitter<MdzipWorkspaceSnapshot>();\n @Output() readonly dirtyChanged = new EventEmitter<MdzipWorkspaceSnapshot>();\n @Output() readonly validationChanged = new EventEmitter<MdzipWorkspaceSnapshot>();\n @Output() readonly colorSchemeChanged = new EventEmitter<MdzipColorScheme>();\n @Output() readonly failed = new EventEmitter<unknown>();\n\n @ViewChild('host') private readonly hostRef!: ElementRef<HTMLDivElement>;\n private view: MdzipWorkspaceView | null = null;\n\n ngAfterViewInit(): void {\n this.createView();\n this.syncView();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.view && (changes['controls'] || changes['initialLayout']\n || changes['initialColorScheme'] || changes['navigationMode']\n || changes['navigationButtonActive'])) {\n this.createView();\n this.syncView();\n return;\n }\n if (this.view && (changes['bytes'] || changes['workspace'] || changes['mode']\n || changes['sourceFormat'] || changes['fileName'])) {\n this.syncView();\n }\n }\n\n ngOnDestroy(): void {\n this.view?.destroy();\n }\n\n canExecuteCommand(command: MdzipEditorCommand): boolean {\n return this.view?.canExecuteCommand(command) ?? false;\n }\n\n executeCommand(command: MdzipEditorCommand, file?: File): Promise<boolean> {\n return this.view?.executeCommand(command, file) ?? Promise.resolve(false);\n }\n\n convertToMdz(): Promise<boolean> {\n return this.view?.convertToMdz() ?? Promise.resolve(false);\n }\n\n focus(): void {\n this.view?.focus();\n }\n\n flush(): Promise<MdzipEditorSnapshot | null> {\n return this.view?.flush() ?? Promise.resolve(null);\n }\n\n serialize(): Promise<Blob | null> {\n return this.view?.serialize() ?? Promise.resolve(null);\n }\n\n getCurrentSnapshot(): Promise<MdzipEditorSnapshot | null> {\n return this.view?.getCurrentSnapshot() ?? Promise.resolve(null);\n }\n\n markPersisted(): void {\n this.view?.markPersisted();\n }\n\n addAsset(archivePath: string, fileBytes: Uint8Array): Promise<void> {\n return this.view?.addAsset(archivePath, fileBytes) ?? Promise.resolve();\n }\n\n replaceAsset(archivePath: string, fileBytes: Uint8Array): Promise<boolean> {\n return this.view?.replaceAsset(archivePath, fileBytes) ?? Promise.resolve(false);\n }\n\n removeAsset(archivePath: string, options?: MdzipRemoveAssetOptions): Promise<boolean> {\n return this.view?.removeAsset(archivePath, options) ?? Promise.resolve(false);\n }\n\n listAssets(): MdzWorkspaceAsset[] {\n return this.view?.listAssets() ?? [];\n }\n\n private syncView(): void {\n if (this.view && this.workspace) {\n void this.view.openWorkspace(this.workspace, {\n mode: this.mode,\n sourceFormat: this.sourceFormat,\n fileName: this.fileName\n });\n } else if (this.view && this.bytes) {\n void this.view.open(this.bytes, {\n mode: this.mode,\n sourceFormat: this.sourceFormat,\n fileName: this.fileName\n });\n }\n }\n\n private createView(): void {\n this.view?.destroy();\n this.view = new MdzipWorkspaceView(this.hostRef.nativeElement, {\n controls: this.controls,\n initialLayout: this.initialLayout,\n initialColorScheme: this.initialColorScheme,\n navigationMode: this.navigationMode,\n navigationButtonActive: this.navigationButtonActive,\n onChanged: (bytes, snapshot) => this.changed.emit({ bytes, snapshot }),\n onSaved: (bytes, snapshot) => this.saved.emit({ bytes, snapshot }),\n onWorkspaceChanged: (event) => this.workspaceChanged.emit(event),\n onDocumentChanged: (event) => this.documentChanged.emit(event),\n onAssetChanged: (event) => this.assetChanged.emit(event),\n onManifestChanged: (event) => this.manifestChanged.emit(event),\n onSnapshotChanged: (snapshot) => this.snapshotChanged.emit(snapshot),\n onSelectionChanged: (snapshot: MdzipWorkspaceSnapshot) => this.selectionChanged.emit(snapshot),\n onDirtyChanged: (snapshot: MdzipWorkspaceSnapshot) => this.dirtyChanged.emit(snapshot),\n onValidationChanged: (snapshot: MdzipWorkspaceSnapshot) => this.validationChanged.emit(snapshot),\n onColorSchemeChanged: (colorScheme: MdzipColorScheme) => this.colorSchemeChanged.emit(colorScheme),\n onFailed: (e: unknown) => this.failed.emit(e),\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import * as i0 from '@angular/core';
2
+ import { AfterViewInit, OnChanges, OnDestroy, EventEmitter, SimpleChanges } from '@angular/core';
3
+ import { MdzWorkspace, MdzipWorkspaceMode, MdzipSourceFormat, MdzipControlPreset, MdzipControlPolicy, MdzipWorkspaceLayout, MdzipColorScheme, MdzipNavigationMode, MdzipWorkspaceChange, MdzipWorkspaceSave, MdzipDocumentChangeEvent, MdzipWorkspaceSnapshot, MdzipEditorCommand, MdzipEditorSnapshot, MdzipRemoveAssetOptions, MdzWorkspaceAsset } from '@mdzip/editor';
4
+
5
+ declare class MdzipWorkspaceComponent implements AfterViewInit, OnChanges, OnDestroy {
6
+ bytes: Uint8Array | null;
7
+ workspace: MdzWorkspace | null;
8
+ fileName: string;
9
+ mode: MdzipWorkspaceMode;
10
+ sourceFormat?: MdzipSourceFormat;
11
+ controls: MdzipControlPreset | MdzipControlPolicy;
12
+ initialLayout?: MdzipWorkspaceLayout;
13
+ initialColorScheme?: MdzipColorScheme;
14
+ navigationMode: MdzipNavigationMode;
15
+ navigationButtonActive: boolean;
16
+ readonly changed: EventEmitter<MdzipWorkspaceChange>;
17
+ readonly saved: EventEmitter<MdzipWorkspaceSave>;
18
+ readonly workspaceChanged: EventEmitter<MdzipDocumentChangeEvent>;
19
+ readonly documentChanged: EventEmitter<MdzipDocumentChangeEvent>;
20
+ readonly assetChanged: EventEmitter<MdzipDocumentChangeEvent>;
21
+ readonly manifestChanged: EventEmitter<MdzipDocumentChangeEvent>;
22
+ readonly snapshotChanged: EventEmitter<MdzipWorkspaceSnapshot>;
23
+ readonly selectionChanged: EventEmitter<MdzipWorkspaceSnapshot>;
24
+ readonly dirtyChanged: EventEmitter<MdzipWorkspaceSnapshot>;
25
+ readonly validationChanged: EventEmitter<MdzipWorkspaceSnapshot>;
26
+ readonly colorSchemeChanged: EventEmitter<MdzipColorScheme>;
27
+ readonly failed: EventEmitter<unknown>;
28
+ private readonly hostRef;
29
+ private view;
30
+ ngAfterViewInit(): void;
31
+ ngOnChanges(changes: SimpleChanges): void;
32
+ ngOnDestroy(): void;
33
+ canExecuteCommand(command: MdzipEditorCommand): boolean;
34
+ executeCommand(command: MdzipEditorCommand, file?: File): Promise<boolean>;
35
+ convertToMdz(): Promise<boolean>;
36
+ focus(): void;
37
+ flush(): Promise<MdzipEditorSnapshot | null>;
38
+ serialize(): Promise<Blob | null>;
39
+ getCurrentSnapshot(): Promise<MdzipEditorSnapshot | null>;
40
+ markPersisted(): void;
41
+ addAsset(archivePath: string, fileBytes: Uint8Array): Promise<void>;
42
+ replaceAsset(archivePath: string, fileBytes: Uint8Array): Promise<boolean>;
43
+ removeAsset(archivePath: string, options?: MdzipRemoveAssetOptions): Promise<boolean>;
44
+ listAssets(): MdzWorkspaceAsset[];
45
+ private syncView;
46
+ private createView;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<MdzipWorkspaceComponent, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<MdzipWorkspaceComponent, "mdzip-workspace", never, { "bytes": { "alias": "bytes"; "required": false; }; "workspace": { "alias": "workspace"; "required": false; }; "fileName": { "alias": "fileName"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "sourceFormat": { "alias": "sourceFormat"; "required": false; }; "controls": { "alias": "controls"; "required": false; }; "initialLayout": { "alias": "initialLayout"; "required": false; }; "initialColorScheme": { "alias": "initialColorScheme"; "required": false; }; "navigationMode": { "alias": "navigationMode"; "required": false; }; "navigationButtonActive": { "alias": "navigationButtonActive"; "required": false; }; }, { "changed": "changed"; "saved": "saved"; "workspaceChanged": "workspaceChanged"; "documentChanged": "documentChanged"; "assetChanged": "assetChanged"; "manifestChanged": "manifestChanged"; "snapshotChanged": "snapshotChanged"; "selectionChanged": "selectionChanged"; "dirtyChanged": "dirtyChanged"; "validationChanged": "validationChanged"; "colorSchemeChanged": "colorSchemeChanged"; "failed": "failed"; }, never, never, true, never>;
49
+ }
50
+
51
+ export { MdzipWorkspaceComponent };
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sources":["../src/workspace.component.ts"],"mappings":";;;;AAiCA,cAAA,mCAOqC,aAAW,EAAA,SAAe,EAAA,SAAW;AAC/D,WAAO,UAAU;AACjB,eAAW,YAAY;AACvB;UACM,kBAAkB;mBACT,iBAAiB;AAChC,cAAU,kBAAkB,GAAG,kBAAkB;oBACjC,oBAAoB;yBACf,gBAAgB;oBACrB,mBAAmB;AACnC;sBACiB,YAAA,CAAA,oBAAA;oBACF,YAAA,CAAA,kBAAA;+BACW,YAAA,CAAA,wBAAA;8BACD,YAAA,CAAA,wBAAA;2BACH,YAAA,CAAA,wBAAA;8BACG,YAAA,CAAA,wBAAA;8BACA,YAAA,CAAA,sBAAA;+BACC,YAAA,CAAA,sBAAA;2BACJ,YAAA,CAAA,sBAAA;gCACK,YAAA,CAAA,sBAAA;iCACC,YAAA,CAAA,gBAAA;qBACZ,YAAA;AAEN;;AAGnB;AAKA,yBAAqB,aAAa;AAclC;AAIA,+BAA2B,kBAAkB;AAI7C,4BAAwB,kBAAkB,SAAS,IAAI,GAAG,OAAO;AAIjE,oBAAgB,OAAO;AAIvB;AAIA,aAAS,OAAO,CAAC,mBAAmB;AAIpC,iBAAa,OAAO,CAAC,IAAI;AAIzB,0BAAsB,OAAO,CAAC,mBAAmB;AAIjD;AAIA,6CAAyC,UAAU,GAAG,OAAO;AAI7D,iDAA6C,UAAU,GAAG,OAAO;AAIjE,+CAA2C,uBAAuB,GAAG,OAAO;kBAI9D,iBAAiB;AAI/B;AAgBA;yCAlHW,uBAAuB;2CAAvB,uBAAuB;AAwInC;;;;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mdzip/editor-ng",
3
- "version": "1.2.8",
3
+ "version": "1.2.9",
4
4
  "description": "Angular UI components for the MDZip workspace engine.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -13,9 +13,11 @@
13
13
  "tslib": "^2.8.1"
14
14
  },
15
15
  "scripts": {
16
- "build": "ng build @mdzip/editor-ng",
17
- "publish": "npm publish ../../dist/packages/editor-ng"
16
+ "build": "ng build @mdzip/editor-ng"
18
17
  },
18
+ "files": [
19
+ "dist"
20
+ ],
19
21
  "publishConfig": {
20
22
  "access": "public"
21
23
  }
package/ng-package.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
- "dest": "../../dist/packages/editor-ng",
4
- "lib": {
5
- "entryFile": "src/public-api.ts"
6
- },
7
- "allowedNonPeerDependencies": ["tslib"]
8
- }
package/src/public-api.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './workspace.component';
2
-
@@ -1,2 +0,0 @@
1
- :host { display: block; height: 100%; }
2
- div { height: 100%; }
@@ -1 +0,0 @@
1
- <div #host></div>
@@ -1,177 +0,0 @@
1
- import {
2
- AfterViewInit,
3
- ChangeDetectionStrategy,
4
- Component,
5
- ElementRef,
6
- EventEmitter,
7
- Input,
8
- OnChanges,
9
- OnDestroy,
10
- Output,
11
- SimpleChanges,
12
- ViewChild,
13
- } from '@angular/core';
14
- import { MdzipWorkspaceView } from '@mdzip/editor';
15
- import type {
16
- MdzipControlPolicy,
17
- MdzipControlPreset,
18
- MdzipColorScheme,
19
- MdzipEditorCommand,
20
- MdzipDocumentChangeEvent,
21
- MdzipEditorSnapshot,
22
- MdzipNavigationMode,
23
- MdzipRemoveAssetOptions,
24
- MdzipSourceFormat,
25
- MdzWorkspace,
26
- MdzWorkspaceAsset,
27
- MdzipWorkspaceChange,
28
- MdzipWorkspaceLayout,
29
- MdzipWorkspaceMode,
30
- MdzipWorkspaceSave,
31
- MdzipWorkspaceSnapshot,
32
- } from '@mdzip/editor';
33
-
34
- @Component({
35
- selector: 'mdzip-workspace',
36
- standalone: true,
37
- template: '<div #host></div>',
38
- styles: [':host { display: block; height: 100%; } div { height: 100%; }'],
39
- changeDetection: ChangeDetectionStrategy.OnPush,
40
- })
41
- export class MdzipWorkspaceComponent implements AfterViewInit, OnChanges, OnDestroy {
42
- @Input() bytes: Uint8Array | null = null;
43
- @Input() workspace: MdzWorkspace | null = null;
44
- @Input() fileName = 'document.mdz';
45
- @Input() mode: MdzipWorkspaceMode = 'read-only';
46
- @Input() sourceFormat?: MdzipSourceFormat;
47
- @Input() controls: MdzipControlPreset | MdzipControlPolicy = 'viewer';
48
- @Input() initialLayout?: MdzipWorkspaceLayout;
49
- @Input() initialColorScheme?: MdzipColorScheme;
50
- @Input() navigationMode: MdzipNavigationMode = 'editor';
51
- @Input() navigationButtonActive = true;
52
- @Output() readonly changed = new EventEmitter<MdzipWorkspaceChange>();
53
- @Output() readonly saved = new EventEmitter<MdzipWorkspaceSave>();
54
- @Output() readonly workspaceChanged = new EventEmitter<MdzipDocumentChangeEvent>();
55
- @Output() readonly documentChanged = new EventEmitter<MdzipDocumentChangeEvent>();
56
- @Output() readonly assetChanged = new EventEmitter<MdzipDocumentChangeEvent>();
57
- @Output() readonly manifestChanged = new EventEmitter<MdzipDocumentChangeEvent>();
58
- @Output() readonly snapshotChanged = new EventEmitter<MdzipWorkspaceSnapshot>();
59
- @Output() readonly selectionChanged = new EventEmitter<MdzipWorkspaceSnapshot>();
60
- @Output() readonly dirtyChanged = new EventEmitter<MdzipWorkspaceSnapshot>();
61
- @Output() readonly validationChanged = new EventEmitter<MdzipWorkspaceSnapshot>();
62
- @Output() readonly colorSchemeChanged = new EventEmitter<MdzipColorScheme>();
63
- @Output() readonly failed = new EventEmitter<unknown>();
64
-
65
- @ViewChild('host') private readonly hostRef!: ElementRef<HTMLDivElement>;
66
- private view: MdzipWorkspaceView | null = null;
67
-
68
- ngAfterViewInit(): void {
69
- this.createView();
70
- this.syncView();
71
- }
72
-
73
- ngOnChanges(changes: SimpleChanges): void {
74
- if (this.view && (changes['controls'] || changes['initialLayout']
75
- || changes['initialColorScheme'] || changes['navigationMode']
76
- || changes['navigationButtonActive'])) {
77
- this.createView();
78
- this.syncView();
79
- return;
80
- }
81
- if (this.view && (changes['bytes'] || changes['workspace'] || changes['mode']
82
- || changes['sourceFormat'] || changes['fileName'])) {
83
- this.syncView();
84
- }
85
- }
86
-
87
- ngOnDestroy(): void {
88
- this.view?.destroy();
89
- }
90
-
91
- canExecuteCommand(command: MdzipEditorCommand): boolean {
92
- return this.view?.canExecuteCommand(command) ?? false;
93
- }
94
-
95
- executeCommand(command: MdzipEditorCommand, file?: File): Promise<boolean> {
96
- return this.view?.executeCommand(command, file) ?? Promise.resolve(false);
97
- }
98
-
99
- convertToMdz(): Promise<boolean> {
100
- return this.view?.convertToMdz() ?? Promise.resolve(false);
101
- }
102
-
103
- focus(): void {
104
- this.view?.focus();
105
- }
106
-
107
- flush(): Promise<MdzipEditorSnapshot | null> {
108
- return this.view?.flush() ?? Promise.resolve(null);
109
- }
110
-
111
- serialize(): Promise<Blob | null> {
112
- return this.view?.serialize() ?? Promise.resolve(null);
113
- }
114
-
115
- getCurrentSnapshot(): Promise<MdzipEditorSnapshot | null> {
116
- return this.view?.getCurrentSnapshot() ?? Promise.resolve(null);
117
- }
118
-
119
- markPersisted(): void {
120
- this.view?.markPersisted();
121
- }
122
-
123
- addAsset(archivePath: string, fileBytes: Uint8Array): Promise<void> {
124
- return this.view?.addAsset(archivePath, fileBytes) ?? Promise.resolve();
125
- }
126
-
127
- replaceAsset(archivePath: string, fileBytes: Uint8Array): Promise<boolean> {
128
- return this.view?.replaceAsset(archivePath, fileBytes) ?? Promise.resolve(false);
129
- }
130
-
131
- removeAsset(archivePath: string, options?: MdzipRemoveAssetOptions): Promise<boolean> {
132
- return this.view?.removeAsset(archivePath, options) ?? Promise.resolve(false);
133
- }
134
-
135
- listAssets(): MdzWorkspaceAsset[] {
136
- return this.view?.listAssets() ?? [];
137
- }
138
-
139
- private syncView(): void {
140
- if (this.view && this.workspace) {
141
- void this.view.openWorkspace(this.workspace, {
142
- mode: this.mode,
143
- sourceFormat: this.sourceFormat,
144
- fileName: this.fileName
145
- });
146
- } else if (this.view && this.bytes) {
147
- void this.view.open(this.bytes, {
148
- mode: this.mode,
149
- sourceFormat: this.sourceFormat,
150
- fileName: this.fileName
151
- });
152
- }
153
- }
154
-
155
- private createView(): void {
156
- this.view?.destroy();
157
- this.view = new MdzipWorkspaceView(this.hostRef.nativeElement, {
158
- controls: this.controls,
159
- initialLayout: this.initialLayout,
160
- initialColorScheme: this.initialColorScheme,
161
- navigationMode: this.navigationMode,
162
- navigationButtonActive: this.navigationButtonActive,
163
- onChanged: (bytes, snapshot) => this.changed.emit({ bytes, snapshot }),
164
- onSaved: (bytes, snapshot) => this.saved.emit({ bytes, snapshot }),
165
- onWorkspaceChanged: (event) => this.workspaceChanged.emit(event),
166
- onDocumentChanged: (event) => this.documentChanged.emit(event),
167
- onAssetChanged: (event) => this.assetChanged.emit(event),
168
- onManifestChanged: (event) => this.manifestChanged.emit(event),
169
- onSnapshotChanged: (snapshot) => this.snapshotChanged.emit(snapshot),
170
- onSelectionChanged: (snapshot: MdzipWorkspaceSnapshot) => this.selectionChanged.emit(snapshot),
171
- onDirtyChanged: (snapshot: MdzipWorkspaceSnapshot) => this.dirtyChanged.emit(snapshot),
172
- onValidationChanged: (snapshot: MdzipWorkspaceSnapshot) => this.validationChanged.emit(snapshot),
173
- onColorSchemeChanged: (colorScheme: MdzipColorScheme) => this.colorSchemeChanged.emit(colorScheme),
174
- onFailed: (e: unknown) => this.failed.emit(e),
175
- });
176
- }
177
- }
package/tsconfig.lib.json DELETED
@@ -1,19 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../out-tsc/lib",
5
- "declaration": true,
6
- "declarationMap": true,
7
- "inlineSources": true,
8
- "paths": {
9
- "@mdzip/editor": ["../editor/dist/index.d.ts"]
10
- },
11
- "types": []
12
- },
13
- "angularCompilerOptions": {
14
- "strictTemplates": true,
15
- "compilationMode": "partial"
16
- },
17
- "exclude": ["**/*.spec.ts"],
18
- "include": ["src/**/*.ts"]
19
- }