@embedpdf/angular 3.0.0-next.14 → 3.0.0-next.16

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.
Files changed (87) hide show
  1. package/README.md +309 -0
  2. package/dist/README.md +309 -0
  3. package/dist/actions/index.d.ts +34 -16
  4. package/dist/anchored/index.d.ts +67 -0
  5. package/dist/annotation/index.d.ts +602 -0
  6. package/dist/attachment/index.d.ts +29 -0
  7. package/dist/commands/index.d.ts +109 -0
  8. package/dist/fesm2022/embedpdf-angular-actions.mjs +117 -36
  9. package/dist/fesm2022/embedpdf-angular-actions.mjs.map +1 -1
  10. package/dist/fesm2022/embedpdf-angular-anchored.mjs +148 -0
  11. package/dist/fesm2022/embedpdf-angular-anchored.mjs.map +1 -0
  12. package/dist/fesm2022/embedpdf-angular-annotation.mjs +1933 -0
  13. package/dist/fesm2022/embedpdf-angular-annotation.mjs.map +1 -0
  14. package/dist/fesm2022/embedpdf-angular-attachment.mjs +67 -0
  15. package/dist/fesm2022/embedpdf-angular-attachment.mjs.map +1 -0
  16. package/dist/fesm2022/embedpdf-angular-commands.mjs +235 -0
  17. package/dist/fesm2022/embedpdf-angular-commands.mjs.map +1 -0
  18. package/dist/fesm2022/embedpdf-angular-form.mjs +1074 -0
  19. package/dist/fesm2022/embedpdf-angular-form.mjs.map +1 -0
  20. package/dist/fesm2022/embedpdf-angular-history.mjs +54 -0
  21. package/dist/fesm2022/embedpdf-angular-history.mjs.map +1 -0
  22. package/dist/fesm2022/embedpdf-angular-i18n.mjs +100 -0
  23. package/dist/fesm2022/embedpdf-angular-i18n.mjs.map +1 -0
  24. package/dist/fesm2022/embedpdf-angular-interaction.mjs +157 -0
  25. package/dist/fesm2022/embedpdf-angular-interaction.mjs.map +1 -0
  26. package/dist/fesm2022/embedpdf-angular-link.mjs +306 -0
  27. package/dist/fesm2022/embedpdf-angular-link.mjs.map +1 -0
  28. package/dist/fesm2022/embedpdf-angular-measurement.mjs +106 -0
  29. package/dist/fesm2022/embedpdf-angular-measurement.mjs.map +1 -0
  30. package/dist/fesm2022/embedpdf-angular-metadata.mjs +77 -0
  31. package/dist/fesm2022/embedpdf-angular-metadata.mjs.map +1 -0
  32. package/dist/fesm2022/embedpdf-angular-outline.mjs +76 -0
  33. package/dist/fesm2022/embedpdf-angular-outline.mjs.map +1 -0
  34. package/dist/fesm2022/embedpdf-angular-page-edit.mjs +68 -0
  35. package/dist/fesm2022/embedpdf-angular-page-edit.mjs.map +1 -0
  36. package/dist/fesm2022/embedpdf-angular-page-view.mjs +297 -0
  37. package/dist/fesm2022/embedpdf-angular-page-view.mjs.map +1 -0
  38. package/dist/fesm2022/embedpdf-angular-redaction.mjs +93 -0
  39. package/dist/fesm2022/embedpdf-angular-redaction.mjs.map +1 -0
  40. package/dist/fesm2022/embedpdf-angular-render.mjs +331 -69
  41. package/dist/fesm2022/embedpdf-angular-render.mjs.map +1 -1
  42. package/dist/fesm2022/embedpdf-angular-runtime.mjs +1151 -390
  43. package/dist/fesm2022/embedpdf-angular-runtime.mjs.map +1 -1
  44. package/dist/fesm2022/embedpdf-angular-search.mjs +251 -0
  45. package/dist/fesm2022/embedpdf-angular-search.mjs.map +1 -0
  46. package/dist/fesm2022/embedpdf-angular-selection.mjs +477 -0
  47. package/dist/fesm2022/embedpdf-angular-selection.mjs.map +1 -0
  48. package/dist/fesm2022/embedpdf-angular-shell.mjs +177 -0
  49. package/dist/fesm2022/embedpdf-angular-shell.mjs.map +1 -0
  50. package/dist/fesm2022/embedpdf-angular-signature.mjs +120 -0
  51. package/dist/fesm2022/embedpdf-angular-signature.mjs.map +1 -0
  52. package/dist/fesm2022/embedpdf-angular-stage.mjs +688 -288
  53. package/dist/fesm2022/embedpdf-angular-stage.mjs.map +1 -1
  54. package/dist/fesm2022/embedpdf-angular-stamp.mjs +169 -0
  55. package/dist/fesm2022/embedpdf-angular-stamp.mjs.map +1 -0
  56. package/dist/fesm2022/embedpdf-angular-testing.mjs +89 -0
  57. package/dist/fesm2022/embedpdf-angular-testing.mjs.map +1 -0
  58. package/dist/fesm2022/embedpdf-angular-toolbar.mjs +1123 -0
  59. package/dist/fesm2022/embedpdf-angular-toolbar.mjs.map +1 -0
  60. package/dist/fesm2022/embedpdf-angular-view-manager.mjs +69 -0
  61. package/dist/fesm2022/embedpdf-angular-view-manager.mjs.map +1 -0
  62. package/dist/fesm2022/embedpdf-angular.mjs +25 -3
  63. package/dist/fesm2022/embedpdf-angular.mjs.map +1 -1
  64. package/dist/form/index.d.ts +79 -0
  65. package/dist/history/index.d.ts +28 -0
  66. package/dist/i18n/index.d.ts +52 -0
  67. package/dist/index.d.ts +22 -0
  68. package/dist/interaction/index.d.ts +58 -0
  69. package/dist/link/index.d.ts +77 -0
  70. package/dist/measurement/index.d.ts +46 -0
  71. package/dist/metadata/index.d.ts +51 -0
  72. package/dist/outline/index.d.ts +32 -0
  73. package/dist/page-edit/index.d.ts +27 -0
  74. package/dist/page-view/index.d.ts +94 -0
  75. package/dist/redaction/index.d.ts +38 -0
  76. package/dist/render/index.d.ts +45 -6
  77. package/dist/runtime/index.d.ts +579 -199
  78. package/dist/search/index.d.ts +71 -0
  79. package/dist/selection/index.d.ts +141 -0
  80. package/dist/shell/index.d.ts +88 -0
  81. package/dist/signature/index.d.ts +45 -0
  82. package/dist/stage/index.d.ts +242 -141
  83. package/dist/stamp/index.d.ts +58 -0
  84. package/dist/testing/index.d.ts +53 -0
  85. package/dist/toolbar/index.d.ts +257 -0
  86. package/dist/view-manager/index.d.ts +23 -0
  87. package/package.json +145 -14
@@ -0,0 +1,257 @@
1
+ import { CollapsedGroupView as CollapsedGroupView$1, GroupDisclosureView as GroupDisclosureView$1, OverflowMenuView as OverflowMenuView$1, BarSchema } from '@embedpdf/core-ui';
2
+ export { BarChild, BarGroup, BarItem, BarSchema, BarSections, CustomItem, DEFAULT_IMPORTANCE, Importance, OverflowRow, OverflowSection, PINNED, Variant, custom, group, item } from '@embedpdf/core-ui';
3
+ import * as i0 from '@angular/core';
4
+ import { TemplateRef, Signal } from '@angular/core';
5
+ import { ResolvedCommand } from '@embedpdf/plugin-commands/contract';
6
+ import { Orientation } from '@embedpdf/web';
7
+
8
+ /** A command's button: `let-command`, `let-variant="variant"`, `let-run="run"`. */
9
+ interface EpdfToolbarCommandContext {
10
+ /** The command, read live: label, icon, `enabled`, `active`. */
11
+ $implicit: ResolvedCommand;
12
+ /** The variant the toolbar chose for it, such as `'icon+label'` or `'icon'`. */
13
+ variant: string;
14
+ /** Run the command for the toolbar's document. */
15
+ run: () => void;
16
+ }
17
+ /** An item of your own: `let-variant`, and `let-layer="layer"`, `let-measure="measure"`. */
18
+ interface EpdfToolbarCustomContext {
19
+ /** The variant the toolbar chose for it, one of the item's `variants`. */
20
+ $implicit: string;
21
+ /** `'live'` in the toolbar, `'measure'` in the hidden layer that measures every variant. */
22
+ layer: 'live' | 'measure';
23
+ /**
24
+ * Report the item's length yourself (its width, or its height in a vertical toolbar), for
25
+ * content the hidden layer can't draw. The toolbar measures what the template draws without
26
+ * it; a template that draws nothing in the hidden layer (`layer === 'measure'`) is measured
27
+ * where it renders, by what it reports here.
28
+ */
29
+ measure: (length: number) => void;
30
+ }
31
+ /**
32
+ * A group in its folded form (a menu button, or a `<select>`, as the group's `collapse` says):
33
+ * its visible commands, read live, and how to run one.
34
+ */
35
+ type CollapsedGroupView = CollapsedGroupView$1<ResolvedCommand>;
36
+ /**
37
+ * The button behind which a group keeps the items it shed. `commands` are the shed items in
38
+ * bar order. The hidden layer measures it with the whole group behind it, so a trigger that
39
+ * shows a count is measured at its widest.
40
+ */
41
+ type GroupDisclosureView = GroupDisclosureView$1<ResolvedCommand>;
42
+ /** The "More" menu: what didn't fit, in sections, and the calls a menu needs. */
43
+ type OverflowMenuView = OverflowMenuView$1<ResolvedCommand>;
44
+ /** A part that gets one view: `let-view`. */
45
+ interface EpdfToolbarViewContext<View> {
46
+ $implicit: View;
47
+ }
48
+ /** The "More" button: `let-open` (whether the menu is open) and `let-toggle="toggle"`. */
49
+ interface EpdfToolbarOverflowTriggerContext {
50
+ $implicit: boolean;
51
+ toggle: () => void;
52
+ }
53
+ /** A command's button. Without it: a plain `<button>` with the command's label. */
54
+ declare class EpdfToolbarCommandTemplate {
55
+ readonly template: TemplateRef<EpdfToolbarCommandContext>;
56
+ static ngTemplateContextGuard(_directive: EpdfToolbarCommandTemplate, context: unknown): context is EpdfToolbarCommandContext;
57
+ static ɵfac: i0.ɵɵFactoryDeclaration<EpdfToolbarCommandTemplate, never>;
58
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EpdfToolbarCommandTemplate, "ng-template[epdfToolbarCommand]", never, {}, {}, never, never, true, never>;
59
+ }
60
+ /**
61
+ * An item of your own, by the name `custom(name, command)` gave it in the bar. Without one, the
62
+ * item is a `<slot name>`: inside a shadow root your element's children of that `slot` go
63
+ * there; elsewhere it shows its command's button. The first element of the item that takes
64
+ * focus is its stop in the toolbar's arrow-key order.
65
+ */
66
+ declare class EpdfToolbarCustomTemplate {
67
+ /** The item's name in the bar. */
68
+ readonly slot: i0.InputSignal<string>;
69
+ readonly template: TemplateRef<EpdfToolbarCustomContext>;
70
+ static ngTemplateContextGuard(_directive: EpdfToolbarCustomTemplate, context: unknown): context is EpdfToolbarCustomContext;
71
+ static ɵfac: i0.ɵɵFactoryDeclaration<EpdfToolbarCustomTemplate, never>;
72
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EpdfToolbarCustomTemplate, "ng-template[epdfToolbarCustom]", never, { "slot": { "alias": "epdfToolbarCustom"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
73
+ }
74
+ /** A folded group. Without it: a `<select>` for `collapse: 'select'`, a menu button for `'menu'`. */
75
+ declare class EpdfToolbarCollapsedTemplate {
76
+ readonly template: TemplateRef<EpdfToolbarViewContext<CollapsedGroupView>>;
77
+ static ngTemplateContextGuard(_directive: EpdfToolbarCollapsedTemplate, context: unknown): context is EpdfToolbarViewContext<CollapsedGroupView>;
78
+ static ɵfac: i0.ɵɵFactoryDeclaration<EpdfToolbarCollapsedTemplate, never>;
79
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EpdfToolbarCollapsedTemplate, "ng-template[epdfToolbarCollapsed]", never, {}, {}, never, never, true, never>;
80
+ }
81
+ /**
82
+ * The button of a group that sheds items, and its menu: the template keeps its own open state.
83
+ * Without it: a chevron opening a menu of the shed items.
84
+ */
85
+ declare class EpdfToolbarGroupTriggerTemplate {
86
+ readonly template: TemplateRef<EpdfToolbarViewContext<GroupDisclosureView>>;
87
+ static ngTemplateContextGuard(_directive: EpdfToolbarGroupTriggerTemplate, context: unknown): context is EpdfToolbarViewContext<GroupDisclosureView>;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<EpdfToolbarGroupTriggerTemplate, never>;
89
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EpdfToolbarGroupTriggerTemplate, "ng-template[epdfToolbarGroupTrigger]", never, {}, {}, never, never, true, never>;
90
+ }
91
+ /**
92
+ * The line between two groups. Without it: a 1px line across the toolbar. Tell the toolbar its
93
+ * thickness with `[separatorWidth]` when yours is thicker.
94
+ */
95
+ declare class EpdfToolbarSeparatorTemplate {
96
+ readonly template: TemplateRef<void>;
97
+ static ɵfac: i0.ɵɵFactoryDeclaration<EpdfToolbarSeparatorTemplate, never>;
98
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EpdfToolbarSeparatorTemplate, "ng-template[epdfToolbarSeparator]", never, {}, {}, never, never, true, never>;
99
+ }
100
+ /** The "More" button. Without it: a plain ⋯ button. */
101
+ declare class EpdfToolbarOverflowTriggerTemplate {
102
+ readonly template: TemplateRef<EpdfToolbarOverflowTriggerContext>;
103
+ static ngTemplateContextGuard(_directive: EpdfToolbarOverflowTriggerTemplate, context: unknown): context is EpdfToolbarOverflowTriggerContext;
104
+ static ɵfac: i0.ɵɵFactoryDeclaration<EpdfToolbarOverflowTriggerTemplate, never>;
105
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EpdfToolbarOverflowTriggerTemplate, "ng-template[epdfToolbarOverflowTrigger]", never, {}, {}, never, never, true, never>;
106
+ }
107
+ /** The "More" menu, under its button (beside it, standing up). Without it: a plain popover. */
108
+ declare class EpdfToolbarOverflowMenuTemplate {
109
+ readonly template: TemplateRef<EpdfToolbarViewContext<OverflowMenuView>>;
110
+ static ngTemplateContextGuard(_directive: EpdfToolbarOverflowMenuTemplate, context: unknown): context is EpdfToolbarViewContext<OverflowMenuView>;
111
+ static ɵfac: i0.ɵɵFactoryDeclaration<EpdfToolbarOverflowMenuTemplate, never>;
112
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EpdfToolbarOverflowMenuTemplate, "ng-template[epdfToolbarOverflowMenu]", never, {}, {}, never, never, true, never>;
113
+ }
114
+
115
+ /**
116
+ * One thing in a section of the row, or in the measurement layer: a part of core-ui's
117
+ * `layoutToolbar` with its template's context, or a separator. `key` is the key the part is
118
+ * measured under, unique across the toolbar.
119
+ */
120
+ type Entry = {
121
+ readonly kind: 'command';
122
+ readonly key: string;
123
+ readonly context: EpdfToolbarCommandContext;
124
+ } | {
125
+ readonly kind: 'custom';
126
+ readonly key: string;
127
+ readonly template: TemplateRef<EpdfToolbarCustomContext>;
128
+ readonly context: EpdfToolbarCustomContext;
129
+ } | {
130
+ readonly kind: 'socket';
131
+ readonly key: string;
132
+ readonly slot: string;
133
+ readonly context: EpdfToolbarCommandContext | null;
134
+ } | {
135
+ readonly kind: 'collapsed';
136
+ readonly key: string;
137
+ readonly context: EpdfToolbarViewContext<CollapsedGroupView>;
138
+ } | {
139
+ readonly kind: 'trigger';
140
+ readonly key: string;
141
+ readonly context: EpdfToolbarViewContext<GroupDisclosureView>;
142
+ } | {
143
+ readonly kind: 'separator';
144
+ readonly key: string;
145
+ };
146
+ /** The live row, per section. */
147
+ interface Row {
148
+ readonly start: readonly Entry[];
149
+ readonly center: readonly Entry[];
150
+ readonly end: readonly Entry[];
151
+ }
152
+ /** Where the measured lengths go: the toolbar the element is drawn in. */
153
+ interface ToolbarLengthSink {
154
+ /** Which way the toolbar runs: what its elements measure along. */
155
+ readonly orientation: Signal<Orientation>;
156
+ reportLength(key: string, length: number): void;
157
+ }
158
+ /**
159
+ * A toolbar that fits itself to its width, or its height with `orientation="vertical"`: items
160
+ * get smaller, groups fold, and what's left over goes into a "More" menu, the least important
161
+ * first. `[gap]` (8) is the space between items, `[separatorWidth]` (1) your
162
+ * separator's thickness; the element is the toolbar (`role="toolbar"`), so a `class`, `style`
163
+ * or `aria-label` on it is the toolbar's. It is one tab stop, with arrow keys between its
164
+ * items. Draw the parts with the templates in `templates.ts`.
165
+ *
166
+ * <epdf-toolbar [bar]="bar">
167
+ * <ng-template epdfToolbarCommand let-command let-variant="variant" let-run="run">
168
+ * <button (click)="run()" [disabled]="!command.enabled">{{ command.label }}</button>
169
+ * </ng-template>
170
+ * </epdf-toolbar>
171
+ */
172
+ declare class EpdfToolbar implements ToolbarLengthSink {
173
+ /** What the toolbar holds: `{ id, sections: { start, center, end } }` of groups and items. */
174
+ readonly bar: i0.InputSignal<BarSchema>;
175
+ /**
176
+ * Which way the toolbar runs. A vertical toolbar fits the height it's given, so give it one;
177
+ * it stacks its sections top, middle and bottom, and draws every command at `'icon'`, with
178
+ * the label for a tooltip.
179
+ */
180
+ readonly orientation: i0.InputSignal<"horizontal" | "vertical">;
181
+ /** Pixels between neighbouring items; the solver counts the same number. */
182
+ readonly gap: i0.InputSignal<number>;
183
+ /**
184
+ * The thickness of the separator you draw: its width across a horizontal toolbar, its height
185
+ * in a vertical one.
186
+ */
187
+ readonly separatorWidth: i0.InputSignal<number>;
188
+ protected readonly commandTemplate: Signal<EpdfToolbarCommandTemplate | undefined>;
189
+ private readonly customTemplates;
190
+ protected readonly collapsedTemplate: Signal<EpdfToolbarCollapsedTemplate | undefined>;
191
+ protected readonly groupTriggerTemplate: Signal<EpdfToolbarGroupTriggerTemplate | undefined>;
192
+ protected readonly separatorTemplate: Signal<EpdfToolbarSeparatorTemplate | undefined>;
193
+ protected readonly overflowTriggerTemplate: Signal<EpdfToolbarOverflowTriggerTemplate | undefined>;
194
+ protected readonly overflowMenuTemplate: Signal<EpdfToolbarOverflowMenuTemplate | undefined>;
195
+ private readonly host;
196
+ private readonly commands;
197
+ /** The host lens, for this part of the template's document: resolves and finds menus. */
198
+ private readonly registry;
199
+ private readonly lengths;
200
+ /** Goes up whenever a measured length changed by more than half a pixel. */
201
+ private readonly measureVersion;
202
+ /** The room along the toolbar: its width, or its height when vertical. */
203
+ private readonly containerLength;
204
+ private readonly overflowOpen;
205
+ /** The arrow keys along the toolbar, while it's in the page. */
206
+ private roving;
207
+ private readonly vertical;
208
+ private readonly normalized;
209
+ /**
210
+ * What to draw: the bar with what's visible now, fitted and turned into parts. A command's
211
+ * state is derived when it's read, so this reads again after every change of the viewer; the
212
+ * toolbar is small, and a read of every item per change is the simple, correct baseline.
213
+ */
214
+ private readonly layout;
215
+ protected readonly hasOverflow: Signal<boolean>;
216
+ protected readonly row: Signal<Row>;
217
+ /** Every item in every variant, each folded group and each shed group's button. */
218
+ protected readonly measured: Signal<{
219
+ key: string;
220
+ entry: Entry;
221
+ }[]>;
222
+ protected readonly overflowTrigger: Signal<EpdfToolbarOverflowTriggerContext>;
223
+ protected readonly closedTrigger: EpdfToolbarOverflowTriggerContext;
224
+ protected readonly overflowMenu: Signal<EpdfToolbarViewContext<OverflowMenuView>>;
225
+ protected readonly overflowTriggerKey: "t:";
226
+ protected readonly paint: {
227
+ readonly surface: string;
228
+ readonly border: string;
229
+ readonly active: string;
230
+ };
231
+ protected readonly sectionStyle: Signal<string>;
232
+ protected readonly centerStyle: Signal<string>;
233
+ /** A 1px line across the toolbar: upright in a horizontal one, flat in a vertical one. */
234
+ protected readonly separatorStyle: Signal<string>;
235
+ /**
236
+ * A row for a horizontal toolbar, a column for a vertical one, and no height either way, so it
237
+ * never adds to the page. A column keeps each item at its own width, so no text wraps and
238
+ * changes the heights it reports.
239
+ */
240
+ protected readonly measureLayerStyle: Signal<string>;
241
+ protected readonly commandStyle: string;
242
+ constructor();
243
+ /** A measured element's length along the toolbar; a change solves again. */
244
+ reportLength(key: string, length: number): void;
245
+ private resolve;
246
+ private execute;
247
+ private customTemplateFor;
248
+ /** A section's groups, with a separator before every group but the first. */
249
+ private liveEntries;
250
+ /** A part with its template's context; null for an item of your own with no template, when measuring. */
251
+ private entryOf;
252
+ static ɵfac: i0.ɵɵFactoryDeclaration<EpdfToolbar, never>;
253
+ static ɵcmp: i0.ɵɵComponentDeclaration<EpdfToolbar, "epdf-toolbar", never, { "bar": { "alias": "bar"; "required": true; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "separatorWidth": { "alias": "separatorWidth"; "required": false; "isSignal": true; }; }, {}, ["commandTemplate", "customTemplates", "collapsedTemplate", "groupTriggerTemplate", "separatorTemplate", "overflowTriggerTemplate", "overflowMenuTemplate"], never, true, never>;
254
+ }
255
+
256
+ export { EpdfToolbar, EpdfToolbarCollapsedTemplate, EpdfToolbarCommandTemplate, EpdfToolbarCustomTemplate, EpdfToolbarGroupTriggerTemplate, EpdfToolbarOverflowMenuTemplate, EpdfToolbarOverflowTriggerTemplate, EpdfToolbarSeparatorTemplate };
257
+ export type { CollapsedGroupView, EpdfToolbarCommandContext, EpdfToolbarCustomContext, EpdfToolbarOverflowTriggerContext, EpdfToolbarViewContext, GroupDisclosureView, OverflowMenuView };
@@ -0,0 +1,23 @@
1
+ import * as _embedpdf_plugin_view_manager from '@embedpdf/plugin-view-manager';
2
+ export * from '@embedpdf/plugin-view-manager';
3
+ import * as _embedpdf_angular_runtime from '@embedpdf/angular/runtime';
4
+ import { EmbedPdfFeature } from '@embedpdf/angular/runtime';
5
+ import * as i0 from '@angular/core';
6
+
7
+ declare const EpdfViewManager_base: _embedpdf_angular_runtime.PluginServiceClass<_embedpdf_plugin_view_manager.ViewManagerCapability, {
8
+ panes: readonly _embedpdf_plugin_view_manager.PaneInfo[];
9
+ focusedPaneId: string | null;
10
+ }, "listPanes" | "getPane" | "getPaneOrder" | "getFocusedPaneId" | "getPaneOfDocument" | "createPane" | "removePane" | "movePane" | "setFocusedPane" | "splitPane" | "setActiveDocument" | "addDocument" | "removeDocument" | "moveDocumentWithin" | "moveDocumentBetween", "onPaneCreated" | "onPaneRemoved" | "onFocusChanged" | "onDocumentMoved">;
11
+ /**
12
+ * The panes: `panes()` and `focusedPaneId()` as signals, the calls that split, close and move
13
+ * panes and their tabs, and the streams `paneCreated$`, `paneRemoved$`, `focusChanged$` and
14
+ * `documentMoved$`. Without the viewer started, `panes()` is empty.
15
+ */
16
+ declare class EpdfViewManager extends EpdfViewManager_base {
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<EpdfViewManager, never>;
18
+ static ɵprov: i0.ɵɵInjectableDeclaration<EpdfViewManager>;
19
+ }
20
+ /** The view manager, for `provideEmbedPdf()`: every document opens in the focused pane. */
21
+ declare function withViewManager(): EmbedPdfFeature;
22
+
23
+ export { EpdfViewManager, withViewManager };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@embedpdf/angular",
3
- "version": "3.0.0-next.14",
3
+ "version": "3.0.0-next.16",
4
4
  "private": false,
5
- "description": "Angular adapter for EmbedPDF v3: one generic signal binding + structural components (EpdfViewer, EpdfStage) + headless layers & inject functions. The whole framework surface, one secondary entry point per feature.",
5
+ "description": "Angular adapter for EmbedPDF: provideEmbedPdf() with one feature per plugin, one service per plugin with signals and RxJS streams, and standalone components (<epdf-stage>, layers). One secondary entry point per feature.",
6
6
  "sideEffects": false,
7
7
  "module": "./dist/fesm2022/embedpdf-angular.mjs",
8
8
  "types": "./dist/index.d.ts",
@@ -26,6 +26,98 @@
26
26
  "./actions": {
27
27
  "types": "./dist/actions/index.d.ts",
28
28
  "default": "./dist/fesm2022/embedpdf-angular-actions.mjs"
29
+ },
30
+ "./anchored": {
31
+ "types": "./dist/anchored/index.d.ts",
32
+ "default": "./dist/fesm2022/embedpdf-angular-anchored.mjs"
33
+ },
34
+ "./annotation": {
35
+ "types": "./dist/annotation/index.d.ts",
36
+ "default": "./dist/fesm2022/embedpdf-angular-annotation.mjs"
37
+ },
38
+ "./attachment": {
39
+ "types": "./dist/attachment/index.d.ts",
40
+ "default": "./dist/fesm2022/embedpdf-angular-attachment.mjs"
41
+ },
42
+ "./interaction": {
43
+ "types": "./dist/interaction/index.d.ts",
44
+ "default": "./dist/fesm2022/embedpdf-angular-interaction.mjs"
45
+ },
46
+ "./testing": {
47
+ "types": "./dist/testing/index.d.ts",
48
+ "default": "./dist/fesm2022/embedpdf-angular-testing.mjs"
49
+ },
50
+ "./link": {
51
+ "types": "./dist/link/index.d.ts",
52
+ "default": "./dist/fesm2022/embedpdf-angular-link.mjs"
53
+ },
54
+ "./search": {
55
+ "types": "./dist/search/index.d.ts",
56
+ "default": "./dist/fesm2022/embedpdf-angular-search.mjs"
57
+ },
58
+ "./selection": {
59
+ "types": "./dist/selection/index.d.ts",
60
+ "default": "./dist/fesm2022/embedpdf-angular-selection.mjs"
61
+ },
62
+ "./page-view": {
63
+ "types": "./dist/page-view/index.d.ts",
64
+ "default": "./dist/fesm2022/embedpdf-angular-page-view.mjs"
65
+ },
66
+ "./view-manager": {
67
+ "types": "./dist/view-manager/index.d.ts",
68
+ "default": "./dist/fesm2022/embedpdf-angular-view-manager.mjs"
69
+ },
70
+ "./page-edit": {
71
+ "types": "./dist/page-edit/index.d.ts",
72
+ "default": "./dist/fesm2022/embedpdf-angular-page-edit.mjs"
73
+ },
74
+ "./metadata": {
75
+ "types": "./dist/metadata/index.d.ts",
76
+ "default": "./dist/fesm2022/embedpdf-angular-metadata.mjs"
77
+ },
78
+ "./outline": {
79
+ "types": "./dist/outline/index.d.ts",
80
+ "default": "./dist/fesm2022/embedpdf-angular-outline.mjs"
81
+ },
82
+ "./history": {
83
+ "types": "./dist/history/index.d.ts",
84
+ "default": "./dist/fesm2022/embedpdf-angular-history.mjs"
85
+ },
86
+ "./commands": {
87
+ "types": "./dist/commands/index.d.ts",
88
+ "default": "./dist/fesm2022/embedpdf-angular-commands.mjs"
89
+ },
90
+ "./toolbar": {
91
+ "types": "./dist/toolbar/index.d.ts",
92
+ "default": "./dist/fesm2022/embedpdf-angular-toolbar.mjs"
93
+ },
94
+ "./shell": {
95
+ "types": "./dist/shell/index.d.ts",
96
+ "default": "./dist/fesm2022/embedpdf-angular-shell.mjs"
97
+ },
98
+ "./i18n": {
99
+ "types": "./dist/i18n/index.d.ts",
100
+ "default": "./dist/fesm2022/embedpdf-angular-i18n.mjs"
101
+ },
102
+ "./stamp": {
103
+ "types": "./dist/stamp/index.d.ts",
104
+ "default": "./dist/fesm2022/embedpdf-angular-stamp.mjs"
105
+ },
106
+ "./measurement": {
107
+ "types": "./dist/measurement/index.d.ts",
108
+ "default": "./dist/fesm2022/embedpdf-angular-measurement.mjs"
109
+ },
110
+ "./redaction": {
111
+ "types": "./dist/redaction/index.d.ts",
112
+ "default": "./dist/fesm2022/embedpdf-angular-redaction.mjs"
113
+ },
114
+ "./form": {
115
+ "types": "./dist/form/index.d.ts",
116
+ "default": "./dist/fesm2022/embedpdf-angular-form.mjs"
117
+ },
118
+ "./signature": {
119
+ "types": "./dist/signature/index.d.ts",
120
+ "default": "./dist/fesm2022/embedpdf-angular-signature.mjs"
29
121
  }
30
122
  },
31
123
  "files": [
@@ -33,18 +125,50 @@
33
125
  ],
34
126
  "dependencies": {
35
127
  "tslib": "^2.6.0",
36
- "@embedpdf/core-geometry": "3.0.0-next.14",
37
- "@embedpdf/core": "3.0.0-next.14",
38
- "@embedpdf/plugin-stage": "3.0.0-next.14",
39
- "@embedpdf/plugin-render": "3.0.0-next.14",
40
- "@embedpdf/core-stage": "3.0.0-next.14",
41
- "@embedpdf/plugin-actions": "3.0.0-next.14",
42
- "@embedpdf/plugin-interaction": "3.0.0-next.14",
43
- "@embedpdf/web": "3.0.0-next.14"
128
+ "@embedpdf/core": "3.0.0-next.16",
129
+ "@embedpdf/core-stage": "3.0.0-next.16",
130
+ "@embedpdf/plugin-stage": "3.0.0-next.16",
131
+ "@embedpdf/core-geometry": "3.0.0-next.16",
132
+ "@embedpdf/plugin-render": "3.0.0-next.16",
133
+ "@embedpdf/plugin-interaction": "3.0.0-next.16",
134
+ "@embedpdf/web": "3.0.0-next.16",
135
+ "@embedpdf/plugin-actions": "3.0.0-next.16",
136
+ "@embedpdf/core-annotation": "3.0.0-next.16",
137
+ "@embedpdf/plugin-annotation": "3.0.0-next.16",
138
+ "@embedpdf/plugin-attachment": "3.0.0-next.16",
139
+ "@embedpdf/plugin-commands": "3.0.0-next.16",
140
+ "@embedpdf/plugin-i18n": "3.0.0-next.16",
141
+ "@embedpdf/plugin-link": "3.0.0-next.16",
142
+ "@embedpdf/plugin-form": "3.0.0-next.16",
143
+ "@embedpdf/plugin-history": "3.0.0-next.16",
144
+ "@embedpdf/plugin-metadata": "3.0.0-next.16",
145
+ "@embedpdf/plugin-page-edit": "3.0.0-next.16",
146
+ "@embedpdf/plugin-outline": "3.0.0-next.16",
147
+ "@embedpdf/plugin-redaction": "3.0.0-next.16",
148
+ "@embedpdf/plugin-search": "3.0.0-next.16",
149
+ "@embedpdf/plugin-selection": "3.0.0-next.16",
150
+ "@embedpdf/plugin-shell": "3.0.0-next.16",
151
+ "@embedpdf/plugin-signature": "3.0.0-next.16",
152
+ "@embedpdf/plugin-stamp": "3.0.0-next.16",
153
+ "@embedpdf/core-signature": "3.0.0-next.16",
154
+ "@embedpdf/plugin-view-manager": "3.0.0-next.16",
155
+ "@embedpdf/plugin-measurement": "3.0.0-next.16",
156
+ "@embedpdf/core-ui": "3.0.0-next.16"
44
157
  },
45
158
  "peerDependencies": {
159
+ "@angular/cdk": ">=20.2.0 <23.0.0",
46
160
  "@angular/common": ">=20.2.0 <23.0.0",
47
- "@angular/core": ">=20.2.0 <23.0.0"
161
+ "@angular/core": ">=20.2.0 <23.0.0",
162
+ "@angular/forms": ">=20.2.0 <23.0.0",
163
+ "rxjs": "^7.4.0"
164
+ },
165
+ "peerDependenciesMeta": {
166
+ "@angular/cdk": {
167
+ "optional": true
168
+ },
169
+ "@angular/forms": {
170
+ "optional": true
171
+ }
48
172
  },
49
173
  "devDependencies": {
50
174
  "@angular/common": "~20.2.0",
@@ -54,7 +178,13 @@
54
178
  "ng-packagr": "~20.2.0",
55
179
  "rimraf": "^5.0.0",
56
180
  "rxjs": "^7.8.0",
57
- "typescript": "~5.8.3"
181
+ "typescript": "~5.8.3",
182
+ "@angular/platform-browser": "~20.2.0",
183
+ "@angular/forms": "~20.2.0",
184
+ "@angular/cdk": "~20.2.0",
185
+ "happy-dom": "^20.11.0",
186
+ "vitest": "^2.1.9",
187
+ "@embedpdf/engine": "3.0.0-next.16"
58
188
  },
59
189
  "license": "Apache-2.0",
60
190
  "repository": {
@@ -63,8 +193,9 @@
63
193
  "directory": "packages/framework/angular"
64
194
  },
65
195
  "scripts": {
66
- "build": "ng-packagr -p ng-package.json -c tsconfig.lib.json",
196
+ "build": "ng-packagr -p ng-package.json -c tsconfig.lib.json && node ../../../tooling/build/src/drop-entry-manifests.mjs && node scripts/check-declarations.mjs",
67
197
  "clean": "rimraf dist",
68
- "test": "node scripts/check-parity.mjs"
198
+ "typecheck": "ngc -p tsconfig.json && tsc -p tsconfig.spec.json",
199
+ "test": "node scripts/check-parity.mjs && vitest run"
69
200
  }
70
201
  }