@jacktea/pdf-viewer-component 0.1.5
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 +45 -0
- package/dist/annotations/annotation-layer.d.ts +40 -0
- package/dist/annotations/annotation-layer.d.ts.map +1 -0
- package/dist/annotations/annotation-layer.test.d.ts +2 -0
- package/dist/annotations/annotation-layer.test.d.ts.map +1 -0
- package/dist/annotations/interaction/annotation-interaction-controller.d.ts +59 -0
- package/dist/annotations/interaction/annotation-interaction-controller.d.ts.map +1 -0
- package/dist/annotations/interaction/tool-utils.d.ts +11 -0
- package/dist/annotations/interaction/tool-utils.d.ts.map +1 -0
- package/dist/annotations/rendering/annotation-svg-renderer.d.ts +28 -0
- package/dist/annotations/rendering/annotation-svg-renderer.d.ts.map +1 -0
- package/dist/annotations/rendering/annotation-svg-renderer.test.d.ts +2 -0
- package/dist/annotations/rendering/annotation-svg-renderer.test.d.ts.map +1 -0
- package/dist/annotations/rendering/geometry-utils.d.ts +6 -0
- package/dist/annotations/rendering/geometry-utils.d.ts.map +1 -0
- package/dist/annotations/rendering/hit-testing.d.ts +10 -0
- package/dist/annotations/rendering/hit-testing.d.ts.map +1 -0
- package/dist/annotations/rendering/index.d.ts +3 -0
- package/dist/annotations/rendering/index.d.ts.map +1 -0
- package/dist/annotations/settings.d.ts +46 -0
- package/dist/annotations/settings.d.ts.map +1 -0
- package/dist/annotations/types.d.ts +3 -0
- package/dist/annotations/types.d.ts.map +1 -0
- package/dist/annotations/ui/annotation-metadata.d.ts +12 -0
- package/dist/annotations/ui/annotation-metadata.d.ts.map +1 -0
- package/dist/annotations/ui/appearance-editor.d.ts +16 -0
- package/dist/annotations/ui/appearance-editor.d.ts.map +1 -0
- package/dist/annotations/ui/arrow-style-editor.d.ts +17 -0
- package/dist/annotations/ui/arrow-style-editor.d.ts.map +1 -0
- package/dist/annotations/ui/header-card.d.ts +4 -0
- package/dist/annotations/ui/header-card.d.ts.map +1 -0
- package/dist/annotations/ui/index.d.ts +8 -0
- package/dist/annotations/ui/index.d.ts.map +1 -0
- package/dist/annotations/ui/popup-toolbar.d.ts +53 -0
- package/dist/annotations/ui/popup-toolbar.d.ts.map +1 -0
- package/dist/annotations/ui/popup-toolbar.test.d.ts +2 -0
- package/dist/annotations/ui/popup-toolbar.test.d.ts.map +1 -0
- package/dist/annotations/ui/stroke-style-editor.d.ts +16 -0
- package/dist/annotations/ui/stroke-style-editor.d.ts.map +1 -0
- package/dist/annotations/ui/style-pickers.d.ts +82 -0
- package/dist/annotations/ui/style-pickers.d.ts.map +1 -0
- package/dist/annotations/ui/text-style-editor.d.ts +22 -0
- package/dist/annotations/ui/text-style-editor.d.ts.map +1 -0
- package/dist/annotations/ui/tool-selector.d.ts +8 -0
- package/dist/annotations/ui/tool-selector.d.ts.map +1 -0
- package/dist/components/popover.d.ts +25 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/tooltip.d.ts +28 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/coordinators/annotation-coordinator.d.ts +281 -0
- package/dist/coordinators/annotation-coordinator.d.ts.map +1 -0
- package/dist/coordinators/annotation-coordinator.test.d.ts +2 -0
- package/dist/coordinators/annotation-coordinator.test.d.ts.map +1 -0
- package/dist/coordinators/event-dispatcher.d.ts +93 -0
- package/dist/coordinators/event-dispatcher.d.ts.map +1 -0
- package/dist/coordinators/index.d.ts +20 -0
- package/dist/coordinators/index.d.ts.map +1 -0
- package/dist/coordinators/mode-coordinator.d.ts +74 -0
- package/dist/coordinators/mode-coordinator.d.ts.map +1 -0
- package/dist/coordinators/panel-coordinator-v2.d.ts +138 -0
- package/dist/coordinators/panel-coordinator-v2.d.ts.map +1 -0
- package/dist/coordinators/state-sync-manager.d.ts +37 -0
- package/dist/coordinators/state-sync-manager.d.ts.map +1 -0
- package/dist/coordinators/state-tracker.d.ts +48 -0
- package/dist/coordinators/state-tracker.d.ts.map +1 -0
- package/dist/coordinators/state-types.d.ts +56 -0
- package/dist/coordinators/state-types.d.ts.map +1 -0
- package/dist/coordinators/ui-initializer.d.ts +130 -0
- package/dist/coordinators/ui-initializer.d.ts.map +1 -0
- package/dist/di/container.d.ts +77 -0
- package/dist/di/container.d.ts.map +1 -0
- package/dist/di/container.test.d.ts +5 -0
- package/dist/di/container.test.d.ts.map +1 -0
- package/dist/di/index.d.ts +11 -0
- package/dist/di/index.d.ts.map +1 -0
- package/dist/di/tokens.d.ts +88 -0
- package/dist/di/tokens.d.ts.map +1 -0
- package/dist/domains/annotation/index.d.ts +9 -0
- package/dist/domains/annotation/index.d.ts.map +1 -0
- package/dist/domains/annotation/styles.d.ts +23 -0
- package/dist/domains/annotation/styles.d.ts.map +1 -0
- package/dist/domains/annotation/sync.d.ts +68 -0
- package/dist/domains/annotation/sync.d.ts.map +1 -0
- package/dist/domains/annotation/sync.test.d.ts +2 -0
- package/dist/domains/annotation/sync.test.d.ts.map +1 -0
- package/dist/domains/export/index.d.ts +10 -0
- package/dist/domains/export/index.d.ts.map +1 -0
- package/dist/domains/export/metadata.d.ts +31 -0
- package/dist/domains/export/metadata.d.ts.map +1 -0
- package/dist/domains/export/metadata.test.d.ts +2 -0
- package/dist/domains/export/metadata.test.d.ts.map +1 -0
- package/dist/domains/export/pdf-export.d.ts +70 -0
- package/dist/domains/export/pdf-export.d.ts.map +1 -0
- package/dist/domains/export/pdf-export.test.d.ts +2 -0
- package/dist/domains/export/pdf-export.test.d.ts.map +1 -0
- package/dist/domains/export/watermark.d.ts +24 -0
- package/dist/domains/export/watermark.d.ts.map +1 -0
- package/dist/domains/export/watermark.test.d.ts +2 -0
- package/dist/domains/export/watermark.test.d.ts.map +1 -0
- package/dist/domains/index.d.ts +18 -0
- package/dist/domains/index.d.ts.map +1 -0
- package/dist/domains/ui/dialogs.d.ts +49 -0
- package/dist/domains/ui/dialogs.d.ts.map +1 -0
- package/dist/domains/ui/dialogs.test.d.ts +2 -0
- package/dist/domains/ui/dialogs.test.d.ts.map +1 -0
- package/dist/domains/ui/editors.d.ts +120 -0
- package/dist/domains/ui/editors.d.ts.map +1 -0
- package/dist/domains/ui/index.d.ts +9 -0
- package/dist/domains/ui/index.d.ts.map +1 -0
- package/dist/domains/viewer/actions.d.ts +90 -0
- package/dist/domains/viewer/actions.d.ts.map +1 -0
- package/dist/domains/viewer/actions.test.d.ts +2 -0
- package/dist/domains/viewer/actions.test.d.ts.map +1 -0
- package/dist/domains/viewer/index.d.ts +10 -0
- package/dist/domains/viewer/index.d.ts.map +1 -0
- package/dist/domains/viewer/persistence.d.ts +122 -0
- package/dist/domains/viewer/persistence.d.ts.map +1 -0
- package/dist/domains/viewer/persistence.test.d.ts +2 -0
- package/dist/domains/viewer/persistence.test.d.ts.map +1 -0
- package/dist/domains/viewer/types.d.ts +42 -0
- package/dist/domains/viewer/types.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +77 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/locales/en.d.ts +3 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.d.ts +3 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/i18n/types.d.ts +231 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/icons/icon-registry.d.ts +69 -0
- package/dist/icons/icon-registry.d.ts.map +1 -0
- package/dist/icons/toolbar-icons.d.ts +38 -0
- package/dist/icons/toolbar-icons.d.ts.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +1 -0
- package/dist/layers/canvas-layer.d.ts +44 -0
- package/dist/layers/canvas-layer.d.ts.map +1 -0
- package/dist/layers/canvas-layer.test.d.ts +2 -0
- package/dist/layers/canvas-layer.test.d.ts.map +1 -0
- package/dist/layers/canvas-utils.d.ts +80 -0
- package/dist/layers/canvas-utils.d.ts.map +1 -0
- package/dist/layers/template-layer.d.ts +41 -0
- package/dist/layers/template-layer.d.ts.map +1 -0
- package/dist/panels/annotation-comments-panel.d.ts +80 -0
- package/dist/panels/annotation-comments-panel.d.ts.map +1 -0
- package/dist/panels/annotation-settings-panel.d.ts +60 -0
- package/dist/panels/annotation-settings-panel.d.ts.map +1 -0
- package/dist/panels/annotation-summary-panel.d.ts +127 -0
- package/dist/panels/annotation-summary-panel.d.ts.map +1 -0
- package/dist/panels/annotation-summary-panel.test.d.ts +2 -0
- package/dist/panels/annotation-summary-panel.test.d.ts.map +1 -0
- package/dist/panels/comment-input.d.ts +34 -0
- package/dist/panels/comment-input.d.ts.map +1 -0
- package/dist/panels/comment-input.test.d.ts +2 -0
- package/dist/panels/comment-input.test.d.ts.map +1 -0
- package/dist/panels/container-panel.d.ts +136 -0
- package/dist/panels/container-panel.d.ts.map +1 -0
- package/dist/panels/content-panel.d.ts +95 -0
- package/dist/panels/content-panel.d.ts.map +1 -0
- package/dist/panels/document-properties-panel.d.ts +54 -0
- package/dist/panels/document-properties-panel.d.ts.map +1 -0
- package/dist/panels/index.d.ts +26 -0
- package/dist/panels/index.d.ts.map +1 -0
- package/dist/panels/outline-panel.d.ts +32 -0
- package/dist/panels/outline-panel.d.ts.map +1 -0
- package/dist/panels/panel-factory.d.ts +37 -0
- package/dist/panels/panel-factory.d.ts.map +1 -0
- package/dist/panels/panel-integration-example.d.ts +49 -0
- package/dist/panels/panel-integration-example.d.ts.map +1 -0
- package/dist/panels/panel-manager.d.ts +98 -0
- package/dist/panels/panel-manager.d.ts.map +1 -0
- package/dist/panels/template-field-panel.d.ts +27 -0
- package/dist/panels/template-field-panel.d.ts.map +1 -0
- package/dist/panels/template-property-panel.d.ts +30 -0
- package/dist/panels/template-property-panel.d.ts.map +1 -0
- package/dist/panels/template-ui-helpers.d.ts +32 -0
- package/dist/panels/template-ui-helpers.d.ts.map +1 -0
- package/dist/panels/thumbnail-panel.d.ts +49 -0
- package/dist/panels/thumbnail-panel.d.ts.map +1 -0
- package/dist/pdfjs.d.ts +15 -0
- package/dist/pdfjs.d.ts.map +1 -0
- package/dist/plugins/examples/custom-tool-plugin.d.ts +12 -0
- package/dist/plugins/examples/custom-tool-plugin.d.ts.map +1 -0
- package/dist/plugins/index.d.ts +9 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/plugin-manager.d.ts +108 -0
- package/dist/plugins/plugin-manager.d.ts.map +1 -0
- package/dist/plugins/plugin-manager.test.d.ts +5 -0
- package/dist/plugins/plugin-manager.test.d.ts.map +1 -0
- package/dist/plugins/types.d.ts +167 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/render/page-renderer.d.ts +16 -0
- package/dist/render/page-renderer.d.ts.map +1 -0
- package/dist/render/scale.d.ts +3 -0
- package/dist/render/scale.d.ts.map +1 -0
- package/dist/render/text-layer.d.ts +4 -0
- package/dist/render/text-layer.d.ts.map +1 -0
- package/dist/render/thumb-renderer.d.ts +3 -0
- package/dist/render/thumb-renderer.d.ts.map +1 -0
- package/dist/toolbar/button-registry.d.ts +56 -0
- package/dist/toolbar/button-registry.d.ts.map +1 -0
- package/dist/toolbar/toolbar-helpers.d.ts +168 -0
- package/dist/toolbar/toolbar-helpers.d.ts.map +1 -0
- package/dist/toolbar/toolbar-icons.d.ts +3 -0
- package/dist/toolbar/toolbar-icons.d.ts.map +1 -0
- package/dist/toolbar/toolbar.d.ts +116 -0
- package/dist/toolbar/toolbar.d.ts.map +1 -0
- package/dist/ui/color-picker.d.ts +72 -0
- package/dist/ui/color-picker.d.ts.map +1 -0
- package/dist/ui/slider.d.ts +25 -0
- package/dist/ui/slider.d.ts.map +1 -0
- package/dist/utils/annotation-utils.d.ts +13 -0
- package/dist/utils/annotation-utils.d.ts.map +1 -0
- package/dist/utils/color-utils.d.ts +42 -0
- package/dist/utils/color-utils.d.ts.map +1 -0
- package/dist/utils/confirm-dialog.d.ts +10 -0
- package/dist/utils/confirm-dialog.d.ts.map +1 -0
- package/dist/utils/deep-equal.d.ts +2 -0
- package/dist/utils/deep-equal.d.ts.map +1 -0
- package/dist/utils/deep-equal.test.d.ts +2 -0
- package/dist/utils/deep-equal.test.d.ts.map +1 -0
- package/dist/utils/document-utils.d.ts +63 -0
- package/dist/utils/document-utils.d.ts.map +1 -0
- package/dist/utils/id-generator.d.ts +41 -0
- package/dist/utils/id-generator.d.ts.map +1 -0
- package/dist/utils/image-preview.d.ts +7 -0
- package/dist/utils/image-preview.d.ts.map +1 -0
- package/dist/utils/timestamp.d.ts +3 -0
- package/dist/utils/timestamp.d.ts.map +1 -0
- package/dist/viewer/collaboration-runtime.d.ts +29 -0
- package/dist/viewer/collaboration-runtime.d.ts.map +1 -0
- package/dist/viewer/config.d.ts +481 -0
- package/dist/viewer/config.d.ts.map +1 -0
- package/dist/viewer/document-load-pipeline.d.ts +43 -0
- package/dist/viewer/document-load-pipeline.d.ts.map +1 -0
- package/dist/viewer/document-load-pipeline.test.d.ts +2 -0
- package/dist/viewer/document-load-pipeline.test.d.ts.map +1 -0
- package/dist/viewer/element.d.ts +174 -0
- package/dist/viewer/element.d.ts.map +1 -0
- package/dist/viewer/element.test.d.ts +2 -0
- package/dist/viewer/element.test.d.ts.map +1 -0
- package/dist/viewer/events.d.ts +212 -0
- package/dist/viewer/events.d.ts.map +1 -0
- package/dist/viewer/export-orchestrator.d.ts +9 -0
- package/dist/viewer/export-orchestrator.d.ts.map +1 -0
- package/dist/viewer/headless.d.ts +108 -0
- package/dist/viewer/headless.d.ts.map +1 -0
- package/dist/viewer/internal-event-bindings.d.ts +26 -0
- package/dist/viewer/internal-event-bindings.d.ts.map +1 -0
- package/dist/viewer/internal-event-bindings.test.d.ts +2 -0
- package/dist/viewer/internal-event-bindings.test.d.ts.map +1 -0
- package/dist/viewer/modal.d.ts +22 -0
- package/dist/viewer/modal.d.ts.map +1 -0
- package/dist/viewer/page-indicator.d.ts +56 -0
- package/dist/viewer/page-indicator.d.ts.map +1 -0
- package/dist/viewer/pdfjs-resources.d.ts +12 -0
- package/dist/viewer/pdfjs-resources.d.ts.map +1 -0
- package/dist/viewer/server-writeback.d.ts +23 -0
- package/dist/viewer/server-writeback.d.ts.map +1 -0
- package/dist/viewer/server-writeback.test.d.ts +2 -0
- package/dist/viewer/server-writeback.test.d.ts.map +1 -0
- package/dist/viewer/ui-handler-helpers.d.ts +19 -0
- package/dist/viewer/ui-handler-helpers.d.ts.map +1 -0
- package/dist/viewer/ui-handler-helpers.test.d.ts +2 -0
- package/dist/viewer/ui-handler-helpers.test.d.ts.map +1 -0
- package/dist/viewer/viewer-header.d.ts +67 -0
- package/dist/viewer/viewer-header.d.ts.map +1 -0
- package/dist/virtual/page-position-cache.d.ts +24 -0
- package/dist/virtual/page-position-cache.d.ts.map +1 -0
- package/dist/virtual/render-pool.d.ts +23 -0
- package/dist/virtual/render-pool.d.ts.map +1 -0
- package/dist/virtual/render-pool.test.d.ts +2 -0
- package/dist/virtual/render-pool.test.d.ts.map +1 -0
- package/dist/virtual/types.d.ts +16 -0
- package/dist/virtual/types.d.ts.map +1 -0
- package/dist/virtual/virtual-page-manager.d.ts +54 -0
- package/dist/virtual/virtual-page-manager.d.ts.map +1 -0
- package/dist/watermark/watermark-layer.d.ts +58 -0
- package/dist/watermark/watermark-layer.d.ts.map +1 -0
- package/dist/watermark/watermark-settings.d.ts +79 -0
- package/dist/watermark/watermark-settings.d.ts.map +1 -0
- package/dist/watermark/watermark-ui-helpers.d.ts +78 -0
- package/dist/watermark/watermark-ui-helpers.d.ts.map +1 -0
- package/package.json +29 -0
package/README.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# @jacktea/pdf-viewer-component
|
|
2
|
+
|
|
3
|
+
基于 Vanilla Web Components 标准实现的 PDF 预览与批注组件。
|
|
4
|
+
|
|
5
|
+
## 简介
|
|
6
|
+
|
|
7
|
+
这是一个轻量、高性能、高度可定制的 PDF 浏览器组件。由于采用原生 Web Components 构建,所以可以在**任何前端框架(Vue、React、Angular、Svelte 等)或纯 HTML 环境下无缝运行**。
|
|
8
|
+
|
|
9
|
+
## 特性
|
|
10
|
+
|
|
11
|
+
- 📝 **开箱即用的批注功能**:支持高亮、下划线、画笔、文本标签等多种注释。
|
|
12
|
+
- ⚡ **原生级性能**:基于底层 WebAssembly 及原生 Web Components 的优秀渲染性能。
|
|
13
|
+
- 🎨 **主题定制**:方便灵活地配置组件主题与工具栏样式。
|
|
14
|
+
- 🌐 **框架无关**。
|
|
15
|
+
|
|
16
|
+
## 安装
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install @jacktea/pdf-viewer-component
|
|
20
|
+
```
|
|
21
|
+
```bash
|
|
22
|
+
yarn add @jacktea/pdf-viewer-component
|
|
23
|
+
```
|
|
24
|
+
```bash
|
|
25
|
+
pnpm add @jacktea/pdf-viewer-component
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 基础用法
|
|
29
|
+
|
|
30
|
+
如果你是原生 HTML / 原生 JS 开发者:
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
<!DOCTYPE html>
|
|
34
|
+
<html lang="en">
|
|
35
|
+
<head>
|
|
36
|
+
<meta charset="UTF-8">
|
|
37
|
+
<!-- 引入组件库打包后的产物 -->
|
|
38
|
+
<script type="module" src="node_modules/@jacktea/pdf-viewer-component/dist/index.js"></script>
|
|
39
|
+
</head>
|
|
40
|
+
<body>
|
|
41
|
+
<!-- 直接使用自定义标签 -->
|
|
42
|
+
<pdf-viewer src="/path/to/your/document.pdf" style="width: 100%; height: 100vh;"></pdf-viewer>
|
|
43
|
+
</body>
|
|
44
|
+
</html>
|
|
45
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Annotation, AnnotationGeometry, AnnotationStyle, AnnotationType } from '@jacktea/pdf-viewer-core';
|
|
2
|
+
import { AnnotationTool } from './types';
|
|
3
|
+
import { CreateAnnotationInput } from '../utils/id-generator';
|
|
4
|
+
export interface AnnotationLayerOptions {
|
|
5
|
+
root: HTMLElement;
|
|
6
|
+
getAnnotations: () => Annotation[];
|
|
7
|
+
getStyle: (type: AnnotationType) => AnnotationStyle;
|
|
8
|
+
getTextContent?: () => string;
|
|
9
|
+
createAnnotation?: (input: CreateAnnotationInput) => Annotation;
|
|
10
|
+
onAdd: (annotation: Annotation) => void;
|
|
11
|
+
onUpdate: (annotation: Annotation) => void;
|
|
12
|
+
onSelect: (annotationId: string | null) => void;
|
|
13
|
+
canEdit: (annotation: Annotation) => boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare class AnnotationLayer {
|
|
16
|
+
private options;
|
|
17
|
+
private root;
|
|
18
|
+
private tool;
|
|
19
|
+
private selectedId;
|
|
20
|
+
private enabled;
|
|
21
|
+
private readOnly;
|
|
22
|
+
private interaction;
|
|
23
|
+
private remoteDrags;
|
|
24
|
+
constructor(options: AnnotationLayerOptions);
|
|
25
|
+
destroy(): void;
|
|
26
|
+
setEnabled(enabled: boolean): void;
|
|
27
|
+
setReadOnly(readOnly: boolean): void;
|
|
28
|
+
setTool(tool: AnnotationTool): void;
|
|
29
|
+
setSelected(annotationId: string | null): void;
|
|
30
|
+
render(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Update a remote user's drag state
|
|
33
|
+
*/
|
|
34
|
+
updateRemoteDrag(userId: string, annotationId: string, geometry: AnnotationGeometry): void;
|
|
35
|
+
/**
|
|
36
|
+
* Clear a remote user's drag state (when they finish dragging)
|
|
37
|
+
*/
|
|
38
|
+
clearRemoteDrag(userId: string): void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=annotation-layer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-layer.d.ts","sourceRoot":"","sources":["../../src/annotations/annotation-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,EAAE,MAAM,UAAU,EAAE,CAAC;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,eAAe,CAAC;IACpD,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,UAAU,CAAC;IAChE,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;CAC9C;AAED,qBAAa,eAAe;IAWd,OAAO,CAAC,OAAO;IAV3B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAkC;IAGrD,OAAO,CAAC,WAAW,CAA6E;gBAE5E,OAAO,EAAE,sBAAsB;IAsBnD,OAAO,IAAI,IAAI;IAIf,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKlC,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIpC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAMnC,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAK9C,MAAM,IAAI,IAAI;IAiBd;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB;IAKnF;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM;CAM/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-layer.test.d.ts","sourceRoot":"","sources":["../../src/annotations/annotation-layer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Annotation, AnnotationGeometry, AnnotationStyle, AnnotationType, NormalizedPoint } from '@jacktea/pdf-viewer-core';
|
|
2
|
+
import { CreateAnnotationInput } from '../../utils/id-generator';
|
|
3
|
+
import { AnnotationTool } from '../types';
|
|
4
|
+
export interface DraftAnnotation {
|
|
5
|
+
pageIndex: number;
|
|
6
|
+
type: AnnotationType;
|
|
7
|
+
geometry: AnnotationGeometry;
|
|
8
|
+
style: AnnotationStyle;
|
|
9
|
+
startPoint?: NormalizedPoint;
|
|
10
|
+
}
|
|
11
|
+
export interface DragState {
|
|
12
|
+
annotation: Annotation;
|
|
13
|
+
originGeometry: AnnotationGeometry;
|
|
14
|
+
startPoint: NormalizedPoint;
|
|
15
|
+
lastPoint: NormalizedPoint;
|
|
16
|
+
}
|
|
17
|
+
export interface AnnotationInteractionContext {
|
|
18
|
+
root: HTMLElement;
|
|
19
|
+
getEnabled: () => boolean;
|
|
20
|
+
getReadOnly: () => boolean;
|
|
21
|
+
getTool: () => AnnotationTool;
|
|
22
|
+
getSelectedId: () => string | null;
|
|
23
|
+
setSelectedId: (annotationId: string | null) => void;
|
|
24
|
+
getAnnotations: () => Annotation[];
|
|
25
|
+
getStyle: (type: AnnotationType) => AnnotationStyle;
|
|
26
|
+
createAnnotation?: (input: CreateAnnotationInput) => Annotation;
|
|
27
|
+
canEdit: (annotation: Annotation) => boolean;
|
|
28
|
+
onAdd: (annotation: Annotation) => void;
|
|
29
|
+
onUpdate: (annotation: Annotation) => void;
|
|
30
|
+
onSelect: (annotationId: string | null) => void;
|
|
31
|
+
render: () => void;
|
|
32
|
+
}
|
|
33
|
+
export declare class AnnotationInteractionController {
|
|
34
|
+
private readonly context;
|
|
35
|
+
private draft?;
|
|
36
|
+
private drag?;
|
|
37
|
+
private activePointerId?;
|
|
38
|
+
private pointerCaptureTarget?;
|
|
39
|
+
private lastClickTime;
|
|
40
|
+
private lastClickId;
|
|
41
|
+
private lastDragEmitTime;
|
|
42
|
+
constructor(context: AnnotationInteractionContext);
|
|
43
|
+
destroy(): void;
|
|
44
|
+
getDraft(): DraftAnnotation | undefined;
|
|
45
|
+
getDrag(): DragState | undefined;
|
|
46
|
+
clearDraft(): void;
|
|
47
|
+
private handlePointerDown;
|
|
48
|
+
private handlePointerMove;
|
|
49
|
+
private handlePointerUp;
|
|
50
|
+
private handlePointerCancel;
|
|
51
|
+
private findPageElement;
|
|
52
|
+
private findAnnotationId;
|
|
53
|
+
private getNormalizedPoint;
|
|
54
|
+
private createAnnotation;
|
|
55
|
+
private hitTestAnnotation;
|
|
56
|
+
private capturePointer;
|
|
57
|
+
private releasePointer;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=annotation-interaction-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-interaction-controller.d.ts","sourceRoot":"","sources":["../../../src/annotations/interaction/annotation-interaction-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAc/C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,kBAAkB,CAAC;IACnC,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,cAAc,CAAC;IAC9B,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD,cAAc,EAAE,MAAM,UAAU,EAAE,CAAC;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,eAAe,CAAC;IACpD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,UAAU,CAAC;IAChE,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;IAC7C,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,qBAAa,+BAA+B;IAU9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IATpC,OAAO,CAAC,KAAK,CAAC,CAAkB;IAChC,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,oBAAoB,CAAC,CAAU;IAEvC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,gBAAgB,CAAK;gBAEA,OAAO,EAAE,4BAA4B;IAalE,OAAO,IAAI,IAAI;IAQf,QAAQ,IAAI,eAAe,GAAG,SAAS;IAIvC,OAAO,IAAI,SAAS,GAAG,SAAS;IAIhC,UAAU,IAAI,IAAI;IAOlB,OAAO,CAAC,iBAAiB;IAiKzB,OAAO,CAAC,iBAAiB;IA4DzB,OAAO,CAAC,eAAe;IA0DvB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;CAWvB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AnnotationGeometry, AnnotationType } from '@jacktea/pdf-viewer-core';
|
|
2
|
+
import { AnnotationTool } from '../types';
|
|
3
|
+
export interface DraftAnnotationLike {
|
|
4
|
+
geometry: AnnotationGeometry;
|
|
5
|
+
}
|
|
6
|
+
export declare const TOOL_TYPE: Record<AnnotationTool, AnnotationType | "cursor">;
|
|
7
|
+
export declare function isTextMarkTool(tool: AnnotationTool): boolean;
|
|
8
|
+
export declare function isDrawingTool(tool: AnnotationTool): boolean;
|
|
9
|
+
export declare function isTextSelectionTarget(event: PointerEvent, textLayer: HTMLElement | null): boolean;
|
|
10
|
+
export declare function isDraftValid(draft: DraftAnnotationLike): boolean;
|
|
11
|
+
//# sourceMappingURL=tool-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-utils.d.ts","sourceRoot":"","sources":["../../../src/annotations/interaction/tool-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,cAAc,GAAG,QAAQ,CAWvE,CAAC;AAEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAE5D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAQ3D;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,WAAW,GAAG,IAAI,GAC5B,OAAO,CAQT;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAkBhE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Annotation, AnnotationGeometry, AnnotationStyle } from '@jacktea/pdf-viewer-core';
|
|
2
|
+
import { AnnotationTool } from '../types';
|
|
3
|
+
export interface RenderDraftAnnotation {
|
|
4
|
+
pageIndex: number;
|
|
5
|
+
type: Annotation["type"];
|
|
6
|
+
geometry: AnnotationGeometry;
|
|
7
|
+
style: AnnotationStyle;
|
|
8
|
+
}
|
|
9
|
+
export interface RenderDragState {
|
|
10
|
+
annotation: Annotation;
|
|
11
|
+
}
|
|
12
|
+
export interface RemoteDragGeometry {
|
|
13
|
+
annotationId: string;
|
|
14
|
+
geometry: AnnotationGeometry;
|
|
15
|
+
}
|
|
16
|
+
export interface RenderAnnotationLayersOptions {
|
|
17
|
+
root: HTMLElement;
|
|
18
|
+
annotations: Annotation[];
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
readOnly: boolean;
|
|
21
|
+
tool: AnnotationTool;
|
|
22
|
+
selectedId: string | null;
|
|
23
|
+
draft?: RenderDraftAnnotation;
|
|
24
|
+
drag?: RenderDragState;
|
|
25
|
+
remoteDrags: Iterable<RemoteDragGeometry>;
|
|
26
|
+
}
|
|
27
|
+
export declare function renderAnnotationLayers(options: RenderAnnotationLayersOptions): void;
|
|
28
|
+
//# sourceMappingURL=annotation-svg-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-svg-renderer.d.ts","sourceRoot":"","sources":["../../../src/annotations/rendering/annotation-svg-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,eAAe,EAGhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO/C,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CAC3C;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,IAAI,CAyBnF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-svg-renderer.test.d.ts","sourceRoot":"","sources":["../../../src/annotations/rendering/annotation-svg-renderer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AnnotationGeometry, NormalizedPoint, NormalizedRect } from '@jacktea/pdf-viewer-core';
|
|
2
|
+
export declare function translateGeometry(geometry: AnnotationGeometry, delta: NormalizedPoint): AnnotationGeometry;
|
|
3
|
+
export declare function toRectFromPoints(start: NormalizedPoint, current: NormalizedPoint): NormalizedRect;
|
|
4
|
+
export declare function isGeometryEqual(a: AnnotationGeometry, b: AnnotationGeometry): boolean;
|
|
5
|
+
export declare function getBounds(geometry: AnnotationGeometry): NormalizedRect | null;
|
|
6
|
+
//# sourceMappingURL=geometry-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry-utils.d.ts","sourceRoot":"","sources":["../../../src/annotations/rendering/geometry-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACf,MAAM,0BAA0B,CAAC;AAMlC,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,eAAe,GACrB,kBAAkB,CAyCpB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAMjG;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,GAAG,OAAO,CA4BrF;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,cAAc,GAAG,IAAI,CAkC7E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Annotation, NormalizedPoint, NormalizedRect } from '@jacktea/pdf-viewer-core';
|
|
2
|
+
export declare function pointIntersectsAnnotation(point: NormalizedPoint, annotation: Annotation): boolean;
|
|
3
|
+
export declare function pointNearRect(point: NormalizedPoint, rect: NormalizedRect, strokeWidth: number): boolean;
|
|
4
|
+
export declare function pointNearEllipse(point: NormalizedPoint, rect: NormalizedRect, strokeWidth: number): boolean;
|
|
5
|
+
export declare function pointInRect(point: NormalizedPoint, rect: NormalizedRect): boolean;
|
|
6
|
+
export declare function pointInEllipse(point: NormalizedPoint, rect: NormalizedRect): boolean;
|
|
7
|
+
export declare function pointNearPath(point: NormalizedPoint, points: NormalizedPoint[], strokeWidth: number): boolean;
|
|
8
|
+
export declare function distancePointToSegment(point: NormalizedPoint, a: NormalizedPoint, b: NormalizedPoint): number;
|
|
9
|
+
export declare function distance(a: NormalizedPoint, b: NormalizedPoint): number;
|
|
10
|
+
//# sourceMappingURL=hit-testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hit-testing.d.ts","sourceRoot":"","sources":["../../../src/annotations/rendering/hit-testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE5F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAcjG;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAcxG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAwB3G;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAOjF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CASpF;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,eAAe,EAAE,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAUT;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,CAAC,EAAE,eAAe,EAClB,CAAC,EAAE,eAAe,GACjB,MAAM,CAYR;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAIvE"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { translateGeometry, toRectFromPoints, isGeometryEqual, getBounds, } from './geometry-utils';
|
|
2
|
+
export { pointIntersectsAnnotation, pointInRect, pointInEllipse, pointNearPath, distancePointToSegment, distance, } from './hit-testing';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/annotations/rendering/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,SAAS,GACV,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,QAAQ,GACT,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AnnotationTool } from './types';
|
|
2
|
+
export type { AnnotationTool };
|
|
3
|
+
export type LineStyle = "solid" | "dash" | "dot";
|
|
4
|
+
export interface ShapeToolSettings {
|
|
5
|
+
strokeColor: string;
|
|
6
|
+
strokeOpacity: number;
|
|
7
|
+
strokeWidth: number;
|
|
8
|
+
dash: LineStyle;
|
|
9
|
+
fillColor: string;
|
|
10
|
+
fillOpacity: number;
|
|
11
|
+
arrowStyle?: "none" | "standard" | "tapered" | "hollow";
|
|
12
|
+
}
|
|
13
|
+
export interface HighlightSettings {
|
|
14
|
+
color: string;
|
|
15
|
+
opacity: number;
|
|
16
|
+
}
|
|
17
|
+
export interface LineMarkSettings {
|
|
18
|
+
color: string;
|
|
19
|
+
opacity: number;
|
|
20
|
+
width: number;
|
|
21
|
+
dash: LineStyle;
|
|
22
|
+
}
|
|
23
|
+
export interface TextToolSettings {
|
|
24
|
+
color: string;
|
|
25
|
+
opacity: number;
|
|
26
|
+
fontSize: number;
|
|
27
|
+
fontWeight: number;
|
|
28
|
+
fontFamily: string;
|
|
29
|
+
content: string;
|
|
30
|
+
}
|
|
31
|
+
export interface AnnotationSettings {
|
|
32
|
+
tool: AnnotationTool;
|
|
33
|
+
shape: ShapeToolSettings;
|
|
34
|
+
highlight: HighlightSettings;
|
|
35
|
+
lineMark: LineMarkSettings;
|
|
36
|
+
text: TextToolSettings;
|
|
37
|
+
}
|
|
38
|
+
export declare const DEFAULT_ANNOTATION_SETTINGS: AnnotationSettings;
|
|
39
|
+
export declare const FILL_COLOR_PRESETS: string[];
|
|
40
|
+
export declare const STROKE_COLOR_PRESETS: string[];
|
|
41
|
+
export declare const TEXT_COLOR_PRESETS: string[];
|
|
42
|
+
export declare const FONT_FAMILY_OPTIONS: {
|
|
43
|
+
value: string;
|
|
44
|
+
label: string;
|
|
45
|
+
}[];
|
|
46
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/annotations/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;CACzD;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,eAAO,MAAM,2BAA2B,EAAE,kBA4BzC,CAAC;AAGF,eAAO,MAAM,kBAAkB,UAW9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAWhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAQ9B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;GAK/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/annotations/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,WAAW,GACX,WAAW,GACX,QAAQ,GACR,MAAM,GACN,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Annotation } from '@jacktea/pdf-viewer-core';
|
|
2
|
+
export interface MetadataElements {
|
|
3
|
+
createdByEl: HTMLDivElement;
|
|
4
|
+
createdAtEl: HTMLSpanElement;
|
|
5
|
+
lockedToggle: HTMLInputElement;
|
|
6
|
+
}
|
|
7
|
+
export declare function createMetadataSection(): {
|
|
8
|
+
section: HTMLDivElement;
|
|
9
|
+
elements: MetadataElements;
|
|
10
|
+
};
|
|
11
|
+
export declare function updateMetadata(elements: MetadataElements, annotation: Annotation | null): void;
|
|
12
|
+
//# sourceMappingURL=annotation-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-metadata.d.ts","sourceRoot":"","sources":["../../../src/annotations/ui/annotation-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAG3D,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,cAAc,CAAC;IAC5B,WAAW,EAAE,eAAe,CAAC;IAC7B,YAAY,EAAE,gBAAgB,CAAC;CAChC;AAED,wBAAgB,qBAAqB,IAAI;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAkD/F;AAWD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAsB9F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AnnotationSettings } from '../settings';
|
|
2
|
+
export interface AppearanceElements {
|
|
3
|
+
section: HTMLDivElement;
|
|
4
|
+
fillColorRow: HTMLDivElement;
|
|
5
|
+
updateFillColor?: (color: string, opacity: number) => void;
|
|
6
|
+
updateStrokeColor?: (color: string, opacity?: number) => void;
|
|
7
|
+
strokeColorRow: HTMLDivElement;
|
|
8
|
+
}
|
|
9
|
+
export interface AppearanceCallbacks {
|
|
10
|
+
onFillColorChange: (color: string, opacity: number) => void;
|
|
11
|
+
onStrokeColorChange: (color: string) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function createAppearanceSection(callbacks: AppearanceCallbacks): AppearanceElements;
|
|
14
|
+
export declare function applyAppearanceSettings(elements: AppearanceElements, settings: AnnotationSettings): void;
|
|
15
|
+
export declare function loadAnnotationAppearance(elements: AppearanceElements, style: any, type: string): void;
|
|
16
|
+
//# sourceMappingURL=appearance-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appearance-editor.d.ts","sourceRoot":"","sources":["../../../src/annotations/ui/appearance-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAiBtD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,cAAc,CAAC;IAE7B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,kBAAkB,CA6D1F;AAID,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAcxG;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAkCrG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AnnotationSettings } from '../settings';
|
|
2
|
+
import { ArrowStyle } from '../types';
|
|
3
|
+
import { Slider } from '../../ui/slider';
|
|
4
|
+
export interface ArrowStyleElements {
|
|
5
|
+
section: HTMLDivElement;
|
|
6
|
+
thicknessSlider: Slider;
|
|
7
|
+
styleButtons: Map<ArrowStyle, HTMLButtonElement>;
|
|
8
|
+
}
|
|
9
|
+
export interface ArrowStyleCallbacks {
|
|
10
|
+
onThicknessChange: (thickness: number) => void;
|
|
11
|
+
onStyleChange: (style: ArrowStyle) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function createArrowStyleSection(callbacks: ArrowStyleCallbacks): ArrowStyleElements;
|
|
14
|
+
export declare function updateArrowStyleSelection(elements: ArrowStyleElements, type: ArrowStyle): void;
|
|
15
|
+
export declare function applyArrowStyleSettings(elements: ArrowStyleElements, settings: AnnotationSettings): void;
|
|
16
|
+
export declare function loadAnnotationArrowStyle(elements: ArrowStyleElements, style: any): void;
|
|
17
|
+
//# sourceMappingURL=arrow-style-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrow-style-editor.d.ts","sourceRoot":"","sources":["../../../src/annotations/ui/arrow-style-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,kBAAkB,CAiE1F;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAI9F;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAMxG;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAMvF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-card.d.ts","sourceRoot":"","sources":["../../../src/annotations/ui/header-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAsB/C,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,cAAuB,GAAG,cAAc,CA0B9E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAYjF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { createHeaderCard, updateHeaderCard } from './header-card';
|
|
2
|
+
export { createMetadataSection, updateMetadata, type MetadataElements } from './annotation-metadata';
|
|
3
|
+
export { createToolSection, updateToolSelection, type ToolSelectorElements } from './tool-selector';
|
|
4
|
+
export { createAppearanceSection, applyAppearanceSettings, loadAnnotationAppearance, type AppearanceElements, type AppearanceCallbacks, } from './appearance-editor';
|
|
5
|
+
export { createStrokeStyleSection, updateStrokeStyleSelection, applyStrokeStyleSettings, loadAnnotationStrokeStyle, type StrokeStyleElements, type StrokeStyleCallbacks, } from './stroke-style-editor';
|
|
6
|
+
export { createTextStyleSection, applyTextStyleSettings, loadAnnotationTextStyle, type TextStyleElements, type TextStyleCallbacks, } from './text-style-editor';
|
|
7
|
+
export { createArrowStyleSection, updateArrowStyleSelection, applyArrowStyleSettings, loadAnnotationArrowStyle, type ArrowStyleElements, type ArrowStyleCallbacks, } from './arrow-style-editor';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/annotations/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EACL,uBAAuB,EAEvB,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Annotation, AnnotationStyle } from '@jacktea/pdf-viewer-core';
|
|
2
|
+
export interface PopupToolbarOptions {
|
|
3
|
+
container: HTMLElement;
|
|
4
|
+
styleRoot?: Node;
|
|
5
|
+
eventTarget?: EventTarget;
|
|
6
|
+
getAnnotation: (id: string) => Annotation | undefined;
|
|
7
|
+
canEdit?: (annotation: Annotation) => boolean;
|
|
8
|
+
canDelete?: (annotation: Annotation) => boolean;
|
|
9
|
+
canComment?: (annotation: Annotation) => boolean;
|
|
10
|
+
onStyleChange: (id: string, style: Partial<AnnotationStyle>) => void;
|
|
11
|
+
onDelete: (id: string) => void;
|
|
12
|
+
onComment: (id: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare class PopupToolbar {
|
|
15
|
+
private options;
|
|
16
|
+
private element;
|
|
17
|
+
private currentAnnotationId;
|
|
18
|
+
private isDragging;
|
|
19
|
+
private positionJobId;
|
|
20
|
+
private pendingPositionRaf;
|
|
21
|
+
private pendingVisibility;
|
|
22
|
+
private throttle;
|
|
23
|
+
private colorPicker;
|
|
24
|
+
private lineStylePicker;
|
|
25
|
+
private arrowStylePicker;
|
|
26
|
+
private strokeWidthPicker;
|
|
27
|
+
private fontSizePicker;
|
|
28
|
+
private fontWeightPicker;
|
|
29
|
+
private deleteBtn;
|
|
30
|
+
private commentBtn;
|
|
31
|
+
constructor(options: PopupToolbarOptions);
|
|
32
|
+
private injectStyles;
|
|
33
|
+
private bindEvents;
|
|
34
|
+
private handleSelect;
|
|
35
|
+
private handleDrag;
|
|
36
|
+
private show;
|
|
37
|
+
private hide;
|
|
38
|
+
updatePosition(): void;
|
|
39
|
+
private shouldShowToolbar;
|
|
40
|
+
private cancelPendingPositioning;
|
|
41
|
+
private schedulePositioning;
|
|
42
|
+
private findAnnotationAnchor;
|
|
43
|
+
private updatePositionInternal;
|
|
44
|
+
private renderTools;
|
|
45
|
+
private handleStyleChange;
|
|
46
|
+
private handleCommentClick;
|
|
47
|
+
private handleDeleteClick;
|
|
48
|
+
private updateTools;
|
|
49
|
+
private setItemDisabled;
|
|
50
|
+
private createButton;
|
|
51
|
+
private addDivider;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=popup-toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popup-toolbar.d.ts","sourceRoot":"","sources":["../../../src/annotations/ui/popup-toolbar.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAC;AAalC,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAC;IACtD,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;IAC9C,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;IAChD,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;IACjD,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IACrE,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,qBAAa,YAAY;IA8BX,OAAO,CAAC,OAAO;IA7B3B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,iBAAiB,CAAS;IAGlC,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,UAAU,CAA4B;gBAE1B,OAAO,EAAE,mBAAmB;IAUhD,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,UAAU;IAiClB,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,IAAI;IAOL,cAAc,IAAI,IAAI;IAW7B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,mBAAmB;IAwC3B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,sBAAsB;IA+D9B,OAAO,CAAC,WAAW;IAwJnB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,UAAU;CAKnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popup-toolbar.test.d.ts","sourceRoot":"","sources":["../../../src/annotations/ui/popup-toolbar.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AnnotationSettings, LineStyle } from '../settings';
|
|
2
|
+
import { Slider } from '../../ui/slider';
|
|
3
|
+
export interface StrokeStyleElements {
|
|
4
|
+
section: HTMLDivElement;
|
|
5
|
+
thicknessSlider: Slider;
|
|
6
|
+
lineTypeButtons: Map<LineStyle, HTMLButtonElement>;
|
|
7
|
+
}
|
|
8
|
+
export interface StrokeStyleCallbacks {
|
|
9
|
+
onThicknessChange: (thickness: number) => void;
|
|
10
|
+
onLineTypeChange: (type: LineStyle) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function createStrokeStyleSection(callbacks: StrokeStyleCallbacks): StrokeStyleElements;
|
|
13
|
+
export declare function updateStrokeStyleSelection(elements: StrokeStyleElements, type: LineStyle): void;
|
|
14
|
+
export declare function applyStrokeStyleSettings(elements: StrokeStyleElements, settings: AnnotationSettings): void;
|
|
15
|
+
export declare function loadAnnotationStrokeStyle(elements: StrokeStyleElements, style: any, type: string): void;
|
|
16
|
+
//# sourceMappingURL=stroke-style-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stroke-style-editor.d.ts","sourceRoot":"","sources":["../../../src/annotations/ui/stroke-style-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,gBAAgB,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CAC7C;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,GAAG,mBAAmB,CAgE7F;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAI/F;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAc1G;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CA2BvG"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common interface for picker events
|
|
3
|
+
*/
|
|
4
|
+
export interface PickerChangeEvent<T> {
|
|
5
|
+
value: T;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Base class for toolbar popovers/pickers
|
|
9
|
+
*/
|
|
10
|
+
declare abstract class BasePicker<T> {
|
|
11
|
+
protected element: HTMLElement;
|
|
12
|
+
protected trigger: HTMLElement;
|
|
13
|
+
protected popover: HTMLElement;
|
|
14
|
+
protected value: T;
|
|
15
|
+
protected options: any;
|
|
16
|
+
protected isOpen: boolean;
|
|
17
|
+
protected onChange: (value: T) => void;
|
|
18
|
+
constructor(value: T, onChange: (value: T) => void, options?: any);
|
|
19
|
+
abstract updateSameValue(value: T): void;
|
|
20
|
+
getElement(): HTMLElement;
|
|
21
|
+
setValue(value: T): void;
|
|
22
|
+
protected toggle(): void;
|
|
23
|
+
protected open(): void;
|
|
24
|
+
protected close(): void;
|
|
25
|
+
private closeAllPickers;
|
|
26
|
+
private handleOutsideClick;
|
|
27
|
+
protected updatePosition(): void;
|
|
28
|
+
protected abstract updateTrigger(): void;
|
|
29
|
+
protected abstract renderPopover(): void;
|
|
30
|
+
protected abstract updatePopoverContent(): void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Line Style Picker
|
|
34
|
+
*/
|
|
35
|
+
export type LineStyle = "solid" | "dash" | "dot";
|
|
36
|
+
export declare class LineStylePicker extends BasePicker<LineStyle> {
|
|
37
|
+
constructor(value: LineStyle, onChange: (value: LineStyle) => void, options?: any);
|
|
38
|
+
protected updateTrigger(): void;
|
|
39
|
+
updateSameValue(value: LineStyle): void;
|
|
40
|
+
protected renderPopover(): void;
|
|
41
|
+
protected updatePopoverContent(): void;
|
|
42
|
+
private getLabelKey;
|
|
43
|
+
private getIcon;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Arrow Style Picker
|
|
47
|
+
*/
|
|
48
|
+
export type ArrowStyle = "none" | "standard" | "tapered" | "hollow";
|
|
49
|
+
export declare class ArrowStylePicker extends BasePicker<ArrowStyle> {
|
|
50
|
+
constructor(value: ArrowStyle, onChange: (value: ArrowStyle) => void, options?: any);
|
|
51
|
+
protected updateTrigger(): void;
|
|
52
|
+
updateSameValue(value: ArrowStyle): void;
|
|
53
|
+
protected renderPopover(): void;
|
|
54
|
+
protected updatePopoverContent(): void;
|
|
55
|
+
private getLabelKey;
|
|
56
|
+
private getIcon;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Slider Picker (Width, Size, Weight)
|
|
60
|
+
*/
|
|
61
|
+
export declare class SliderPicker extends BasePicker<number> {
|
|
62
|
+
private label;
|
|
63
|
+
private min;
|
|
64
|
+
private max;
|
|
65
|
+
private step;
|
|
66
|
+
private suffix;
|
|
67
|
+
private sliderComponent;
|
|
68
|
+
constructor(value: number, onChange: (val: number) => void, opts: {
|
|
69
|
+
label: string;
|
|
70
|
+
min: number;
|
|
71
|
+
max: number;
|
|
72
|
+
step?: number;
|
|
73
|
+
suffix?: string;
|
|
74
|
+
mountNode?: Node;
|
|
75
|
+
});
|
|
76
|
+
protected updateTrigger(): void;
|
|
77
|
+
updateSameValue(value: number): void;
|
|
78
|
+
protected renderPopover(): void;
|
|
79
|
+
protected updatePopoverContent(): void;
|
|
80
|
+
}
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=style-pickers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-pickers.d.ts","sourceRoot":"","sources":["../../../src/annotations/ui/style-pickers.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC;CACV;AAID;;GAEG;AACH,uBAAe,UAAU,CAAC,CAAC;IACzB,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACnB,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,MAAM,UAAS;IACzB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;gBAE3B,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,OAAO,GAAE,GAAQ;IA2BrE,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAEjC,UAAU,IAAI,WAAW;IAIzB,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAM/B,SAAS,CAAC,MAAM,IAAI,IAAI;IAQxB,SAAS,CAAC,IAAI,IAAI,IAAI;IAYtB,SAAS,CAAC,KAAK,IAAI,IAAI;IAOvB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,kBAAkB;IAS1B,SAAS,CAAC,cAAc,IAAI,IAAI;IAkBhC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IACxC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IACxC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,IAAI;CAChD;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AACjD,qBAAa,eAAgB,SAAQ,UAAU,CAAC,SAAS,CAAC;gBAC5C,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,EAAE,OAAO,GAAE,GAAQ;IAKrF,SAAS,CAAC,aAAa,IAAI,IAAI;IAMxB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAM9C,SAAS,CAAC,aAAa,IAAI,IAAI;IAmB/B,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAItC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,OAAO;CAGhB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AACpE,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,UAAU,CAAC;gBAC9C,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EAAE,OAAO,GAAE,GAAQ;IAKvF,SAAS,CAAC,aAAa,IAAI,IAAI;IAKxB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAM/C,SAAS,CAAC,aAAa,IAAI,IAAI;IAoB/B,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAItC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,OAAO;CAGhB;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU,CAAC,MAAM,CAAC;IAChD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAuB;gBAG1C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC/B,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE;IAWvG,SAAS,CAAC,aAAa,IAAI,IAAI;IAMxB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM3C,SAAS,CAAC,aAAa,IAAI,IAAI;IA2B/B,SAAS,CAAC,oBAAoB,IAAI,IAAI;CASzC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AnnotationSettings } from '../settings';
|
|
2
|
+
import { Slider } from '../../ui/slider';
|
|
3
|
+
import { ColorInput } from '../../ui/color-picker';
|
|
4
|
+
export interface TextStyleElements {
|
|
5
|
+
section: HTMLDivElement;
|
|
6
|
+
colorInput: ColorInput;
|
|
7
|
+
fontSizeSlider: Slider;
|
|
8
|
+
fontWeightSlider: Slider;
|
|
9
|
+
fontFamilySelect: HTMLSelectElement;
|
|
10
|
+
contentInput: HTMLTextAreaElement;
|
|
11
|
+
}
|
|
12
|
+
export interface TextStyleCallbacks {
|
|
13
|
+
onTextColorChange: (color: string) => void;
|
|
14
|
+
onFontSizeChange: (size: number) => void;
|
|
15
|
+
onFontWeightChange: (weight: number) => void;
|
|
16
|
+
onFontFamilyChange: (family: string) => void;
|
|
17
|
+
onContentChange: (content: string) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function createTextStyleSection(callbacks: TextStyleCallbacks): TextStyleElements;
|
|
20
|
+
export declare function applyTextStyleSettings(elements: TextStyleElements, settings: AnnotationSettings): void;
|
|
21
|
+
export declare function loadAnnotationTextStyle(elements: TextStyleElements, style: any, content?: string): void;
|
|
22
|
+
//# sourceMappingURL=text-style-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-style-editor.d.ts","sourceRoot":"","sources":["../../../src/annotations/ui/text-style-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,kBAAkB,GAAG,iBAAiB,CAoGvF;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAQtG;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAgBvG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AnnotationTool } from '../types';
|
|
2
|
+
export interface ToolSelectorElements {
|
|
3
|
+
section: HTMLDivElement;
|
|
4
|
+
buttons: Map<AnnotationTool, HTMLButtonElement>;
|
|
5
|
+
}
|
|
6
|
+
export declare function createToolSection(onToolSelect: (tool: AnnotationTool) => void): ToolSelectorElements;
|
|
7
|
+
export declare function updateToolSelection(buttons: Map<AnnotationTool, HTMLButtonElement>, tool: AnnotationTool): void;
|
|
8
|
+
//# sourceMappingURL=tool-selector.d.ts.map
|