@doxi/angular 0.11.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/LICENSE +21 -0
- package/README.md +70 -0
- package/dist/doxiva-doxiva-editor.component.d.ts +118 -0
- package/dist/doxiva-doxiva-editor.component.d.ts.map +1 -0
- package/dist/doxiva-doxiva-editor.component.js +1095 -0
- package/dist/doxiva-doxiva-editor.component.js.map +1 -0
- package/dist/doxiva-editor.component.d.ts +23 -0
- package/dist/doxiva-editor.component.d.ts.map +1 -0
- package/dist/doxiva-editor.component.js +92 -0
- package/dist/doxiva-editor.component.js.map +1 -0
- package/dist/doxiva-toolbar.component.d.ts +118 -0
- package/dist/doxiva-toolbar.component.d.ts.map +1 -0
- package/dist/doxiva-toolbar.component.js +339 -0
- package/dist/doxiva-toolbar.component.js.map +1 -0
- package/dist/doxiva.types.d.ts +71 -0
- package/dist/doxiva.types.d.ts.map +1 -0
- package/dist/doxiva.types.js +28 -0
- package/dist/doxiva.types.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/toolbar-builders/alignment.d.ts +4 -0
- package/dist/toolbar-builders/alignment.d.ts.map +1 -0
- package/dist/toolbar-builders/alignment.js +56 -0
- package/dist/toolbar-builders/alignment.js.map +1 -0
- package/dist/toolbar-builders/blocks.d.ts +4 -0
- package/dist/toolbar-builders/blocks.d.ts.map +1 -0
- package/dist/toolbar-builders/blocks.js +39 -0
- package/dist/toolbar-builders/blocks.js.map +1 -0
- package/dist/toolbar-builders/font-size.d.ts +4 -0
- package/dist/toolbar-builders/font-size.d.ts.map +1 -0
- package/dist/toolbar-builders/font-size.js +35 -0
- package/dist/toolbar-builders/font-size.js.map +1 -0
- package/dist/toolbar-builders/headings.d.ts +4 -0
- package/dist/toolbar-builders/headings.d.ts.map +1 -0
- package/dist/toolbar-builders/headings.js +18 -0
- package/dist/toolbar-builders/headings.js.map +1 -0
- package/dist/toolbar-builders/history.d.ts +3 -0
- package/dist/toolbar-builders/history.d.ts.map +1 -0
- package/dist/toolbar-builders/history.js +13 -0
- package/dist/toolbar-builders/history.js.map +1 -0
- package/dist/toolbar-builders/images.d.ts +4 -0
- package/dist/toolbar-builders/images.d.ts.map +1 -0
- package/dist/toolbar-builders/images.js +8 -0
- package/dist/toolbar-builders/images.js.map +1 -0
- package/dist/toolbar-builders/line-height.d.ts +4 -0
- package/dist/toolbar-builders/line-height.d.ts.map +1 -0
- package/dist/toolbar-builders/line-height.js +46 -0
- package/dist/toolbar-builders/line-height.js.map +1 -0
- package/dist/toolbar-builders/links.d.ts +4 -0
- package/dist/toolbar-builders/links.d.ts.map +1 -0
- package/dist/toolbar-builders/links.js +19 -0
- package/dist/toolbar-builders/links.js.map +1 -0
- package/dist/toolbar-builders/lists.d.ts +4 -0
- package/dist/toolbar-builders/lists.d.ts.map +1 -0
- package/dist/toolbar-builders/lists.js +38 -0
- package/dist/toolbar-builders/lists.js.map +1 -0
- package/dist/toolbar-builders/marks.d.ts +4 -0
- package/dist/toolbar-builders/marks.d.ts.map +1 -0
- package/dist/toolbar-builders/marks.js +41 -0
- package/dist/toolbar-builders/marks.js.map +1 -0
- package/dist/toolbar-builders/system.d.ts +12 -0
- package/dist/toolbar-builders/system.d.ts.map +1 -0
- package/dist/toolbar-builders/system.js +28 -0
- package/dist/toolbar-builders/system.js.map +1 -0
- package/dist/toolbar-builders/tables.d.ts +4 -0
- package/dist/toolbar-builders/tables.d.ts.map +1 -0
- package/dist/toolbar-builders/tables.js +212 -0
- package/dist/toolbar-builders/tables.js.map +1 -0
- package/dist/toolbar-builders/typography.d.ts +4 -0
- package/dist/toolbar-builders/typography.d.ts.map +1 -0
- package/dist/toolbar-builders/typography.js +118 -0
- package/dist/toolbar-builders/typography.js.map +1 -0
- package/package.json +50 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Mahbub Hasan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# @doxi/angular
|
|
2
|
+
|
|
3
|
+
Angular adapter for [`@doxi/core`](../core). Ships a standalone `<dx-editor>` component wrapping the underlying `EditorView`.
|
|
4
|
+
|
|
5
|
+
> **Status:** v0.10.x preview. Public API may evolve until v1.0.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pnpm add @doxi/angular @doxi/core @angular/core @angular/common rxjs
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Peer-deps: `@angular/core` ≥ 18 (works under 19), `@angular/common` ≥ 18, `rxjs` ≥ 7, `@doxi/core`. Zero runtime deps beyond the peers.
|
|
14
|
+
|
|
15
|
+
## Quickstart
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { Component } from '@angular/core'
|
|
19
|
+
import { DoxivaEditorComponent } from '@doxi/angular'
|
|
20
|
+
import {
|
|
21
|
+
defaultRenderer,
|
|
22
|
+
defaultSchema,
|
|
23
|
+
EditorState,
|
|
24
|
+
historyPlugin,
|
|
25
|
+
} from '@doxi/core'
|
|
26
|
+
|
|
27
|
+
@Component({
|
|
28
|
+
selector: 'app-root',
|
|
29
|
+
standalone: true,
|
|
30
|
+
imports: [DoxivaEditorComponent],
|
|
31
|
+
template: `
|
|
32
|
+
<dx-editor
|
|
33
|
+
[state]="state"
|
|
34
|
+
[renderer]="renderer"
|
|
35
|
+
[ariaLabel]="'Dokumentredigerer'"
|
|
36
|
+
(dispatch)="onDispatch($event)"
|
|
37
|
+
/>
|
|
38
|
+
`,
|
|
39
|
+
})
|
|
40
|
+
export class AppComponent {
|
|
41
|
+
state = EditorState.create({
|
|
42
|
+
schema: defaultSchema,
|
|
43
|
+
plugins: [historyPlugin().plugin],
|
|
44
|
+
})
|
|
45
|
+
renderer = defaultRenderer
|
|
46
|
+
|
|
47
|
+
onDispatch(tr: any) {
|
|
48
|
+
this.state = this.state.apply(tr)
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Don't forget to import the stylesheets in your global styles:
|
|
54
|
+
|
|
55
|
+
```scss
|
|
56
|
+
@import '@doxi/core/styles/base.css';
|
|
57
|
+
@import '@doxi/core/styles/light.css';
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Change-detection model
|
|
61
|
+
|
|
62
|
+
`<dx-editor>` runs the underlying `EditorView` **outside** `NgZone` to avoid Angular's change-detection thrashing on high-frequency editor updates. Dispatched transactions re-enter the zone so consumer handlers run in-zone as normal.
|
|
63
|
+
|
|
64
|
+
## Toolbar
|
|
65
|
+
|
|
66
|
+
`@doxi/angular` ships a default toolbar; consumers can compose their own from the per-group builders. See the [example app](../example-angular) for a full reference setup.
|
|
67
|
+
|
|
68
|
+
## License
|
|
69
|
+
|
|
70
|
+
[MIT](LICENSE)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { EventEmitter, TemplateRef, type AfterViewInit, type OnChanges, type OnDestroy, type OnInit, type SimpleChanges } from '@angular/core';
|
|
2
|
+
import { EditorState, type DxNode, type EditorView, type PageConfig, type Renderer, type Transaction } from '@doxi/core';
|
|
3
|
+
import type { ImportWarning } from '@doxi/docx';
|
|
4
|
+
import { type ToolbarItem, type ToolbarPopoverContext } from './doxiva-toolbar.component.js';
|
|
5
|
+
import { type FeatureFlags, type PageSizePreset, type Theme } from './doxiva.types.js';
|
|
6
|
+
/**
|
|
7
|
+
* The bundled Doxiva editor — a single Angular standalone component that
|
|
8
|
+
* internally orchestrates the toolbar, popovers (link / table / image /
|
|
9
|
+
* header-footer / page-settings), keymap, print bridge, DOCX import/export,
|
|
10
|
+
* page chrome, and theme handling. Hosts pass `features` to disable parts
|
|
11
|
+
* of the UX and `theme` to switch palettes. The low-level
|
|
12
|
+
* `DoxivaEditorComponent` (`<dx-editor>`), `DoxivaToolbarComponent`
|
|
13
|
+
* (`<dx-toolbar>`), and `defaultToolbarActions` remain exported for power
|
|
14
|
+
* users.
|
|
15
|
+
*/
|
|
16
|
+
export declare class DxDoxivaEditorComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {
|
|
17
|
+
initialDoc?: DxNode;
|
|
18
|
+
theme: Theme;
|
|
19
|
+
features?: FeatureFlags;
|
|
20
|
+
paginated: boolean;
|
|
21
|
+
defaultPageSize: PageSizePreset;
|
|
22
|
+
editable: boolean;
|
|
23
|
+
ariaLabel?: string;
|
|
24
|
+
/**
|
|
25
|
+
* When set to `null`, suppresses the default warnings panel entirely.
|
|
26
|
+
* Otherwise the panel renders inline and (if `importWarnings` is also
|
|
27
|
+
* subscribed to) the host can mirror them.
|
|
28
|
+
*/
|
|
29
|
+
onImportWarnings?: ((warnings: ReadonlyArray<ImportWarning>) => void) | null;
|
|
30
|
+
change: EventEmitter<DxNode>;
|
|
31
|
+
stateChange: EventEmitter<EditorState>;
|
|
32
|
+
importWarnings: EventEmitter<readonly ImportWarning[]>;
|
|
33
|
+
/** Emitted once the underlying EditorView is mounted (and again on remount). */
|
|
34
|
+
ready: EventEmitter<EditorView>;
|
|
35
|
+
private readonly cdr;
|
|
36
|
+
private readonly host;
|
|
37
|
+
private readonly history;
|
|
38
|
+
readonly renderer: Renderer;
|
|
39
|
+
state: EditorState;
|
|
40
|
+
effectiveFeatures: Required<FeatureFlags>;
|
|
41
|
+
actions: ToolbarItem[];
|
|
42
|
+
pageSize: PageSizePreset;
|
|
43
|
+
pageOrientation: 'portrait' | 'landscape';
|
|
44
|
+
pageMargins: 'normal' | 'narrow' | 'wide';
|
|
45
|
+
editorVisible: boolean;
|
|
46
|
+
chromeHeaderEnabled: boolean;
|
|
47
|
+
chromeFooterEnabled: boolean;
|
|
48
|
+
chromeHeaderHeightPx: number;
|
|
49
|
+
chromeFooterHeightPx: number;
|
|
50
|
+
headerText: string;
|
|
51
|
+
footerText: string;
|
|
52
|
+
headerPageNum: boolean;
|
|
53
|
+
footerPageNum: boolean;
|
|
54
|
+
imageSrc: string;
|
|
55
|
+
imageAlt: string;
|
|
56
|
+
readonly tablePickerRows: ReadonlyArray<number>;
|
|
57
|
+
readonly tablePickerCols: ReadonlyArray<number>;
|
|
58
|
+
tableHover: {
|
|
59
|
+
r: number;
|
|
60
|
+
c: number;
|
|
61
|
+
} | null;
|
|
62
|
+
view: EditorView | null;
|
|
63
|
+
importWarningsList: ReadonlyArray<ImportWarning>;
|
|
64
|
+
resolvedTheme: 'light' | 'dark';
|
|
65
|
+
private mediaQuery;
|
|
66
|
+
private mediaListener;
|
|
67
|
+
private onPrintListener;
|
|
68
|
+
linkTpl: TemplateRef<ToolbarPopoverContext>;
|
|
69
|
+
tableTpl: TemplateRef<ToolbarPopoverContext>;
|
|
70
|
+
imageTpl: TemplateRef<ToolbarPopoverContext>;
|
|
71
|
+
pageSettingsTpl: TemplateRef<ToolbarPopoverContext>;
|
|
72
|
+
headerFooterTpl: TemplateRef<ToolbarPopoverContext>;
|
|
73
|
+
popoverTemplates: Record<string, TemplateRef<ToolbarPopoverContext>>;
|
|
74
|
+
ngOnInit(): void;
|
|
75
|
+
ngAfterViewInit(): void;
|
|
76
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
77
|
+
ngOnDestroy(): void;
|
|
78
|
+
get showTopRow(): boolean;
|
|
79
|
+
get showWarningsPanel(): boolean;
|
|
80
|
+
get paginatedConfig(): PageConfig;
|
|
81
|
+
private recomputeFeatures;
|
|
82
|
+
private recomputeActions;
|
|
83
|
+
private buildPopoverTemplates;
|
|
84
|
+
private resolveTheme;
|
|
85
|
+
private installMediaListener;
|
|
86
|
+
private uninstallMediaListener;
|
|
87
|
+
onDispatch(tr: Transaction): void;
|
|
88
|
+
onReady(view: EditorView): void;
|
|
89
|
+
onPrintClick(): void;
|
|
90
|
+
onDownloadPdfClick(): void;
|
|
91
|
+
onExportDocxClick(): Promise<void>;
|
|
92
|
+
onImportFile(event: Event): Promise<void>;
|
|
93
|
+
applyPageSettings(close: () => void): void;
|
|
94
|
+
private remountEditor;
|
|
95
|
+
setChromeHeaderEnabled(v: boolean): void;
|
|
96
|
+
setChromeFooterEnabled(v: boolean): void;
|
|
97
|
+
setChromeHeaderHeight(raw: string | number): void;
|
|
98
|
+
setChromeFooterHeight(raw: string | number): void;
|
|
99
|
+
private clampChromeHeight;
|
|
100
|
+
private fragmentFromText;
|
|
101
|
+
private fragmentWithPageNumbers;
|
|
102
|
+
applyHeaderFooter(state: EditorState, dispatch: (tr: Transaction) => void, close: () => void): void;
|
|
103
|
+
clearHeaderFooter(state: EditorState, dispatch: (tr: Transaction) => void, close: () => void): void;
|
|
104
|
+
applyImage(state: EditorState, dispatch: (tr: Transaction) => void, close: () => void): void;
|
|
105
|
+
onImageKeydown(event: KeyboardEvent, state: EditorState, dispatch: (tr: Transaction) => void, close: () => void): void;
|
|
106
|
+
setTableHover(r: number, c: number): void;
|
|
107
|
+
resetTableHover(): void;
|
|
108
|
+
isTableCellOn(r: number, c: number): boolean;
|
|
109
|
+
tablePickerLabel(): string;
|
|
110
|
+
pickTable(state: EditorState, dispatch: (tr: Transaction) => void, close: () => void, r: number, c: number): void;
|
|
111
|
+
private get linkType();
|
|
112
|
+
hasExistingLink(state: EditorState): boolean;
|
|
113
|
+
linkInitialHref(state: EditorState): string;
|
|
114
|
+
applyLink(state: EditorState, dispatch: (tr: Transaction) => void, close: () => void, rawHref: string): void;
|
|
115
|
+
removeLink(state: EditorState, dispatch: (tr: Transaction) => void, close: () => void): void;
|
|
116
|
+
onLinkKeydown(event: KeyboardEvent, state: EditorState, dispatch: (tr: Transaction) => void, close: () => void, rawHref: string): void;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=doxiva-doxiva-editor.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doxiva-doxiva-editor.component.d.ts","sourceRoot":"","sources":["../src/doxiva-doxiva-editor.component.ts"],"names":[],"mappings":"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"}
|