@hprint/plugins 0.0.10 → 0.0.11-alpha.1
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/dist/index.js +55 -55
- package/dist/index.mjs +10668 -10171
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/plugins/ActualContentLayoutPlugin.d.ts.map +1 -1
- package/dist/src/plugins/TablePlugin.d.ts +95 -0
- package/dist/src/plugins/TablePlugin.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/index.ts +21 -11
- package/src/plugins/ActualContentLayoutPlugin.ts +11 -3
- package/src/plugins/TablePlugin.ts +872 -0
package/dist/src/index.d.ts
CHANGED
|
@@ -5,4 +5,6 @@ declare const pluginsObject: {
|
|
|
5
5
|
};
|
|
6
6
|
declare const pluginsList: IPluginTempl[];
|
|
7
7
|
export { pluginsObject, pluginsList, SelectEvent, SelectMode };
|
|
8
|
+
export type { ITableItem, TableColumn, TableOptions, TableGroup, } from './plugins/TablePlugin';
|
|
9
|
+
export { normalizeTableColumns } from './plugins/TablePlugin';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA2C5D,QAAA,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;CAwCjD,CAAC;AAGF,QAAA,MAAM,WAAW,EAAE,YAAY,EAwC9B,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC/D,YAAY,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,UAAU,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActualContentLayoutPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/ActualContentLayoutPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IACxC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACpC;AAED,KAAK,OAAO,GAAG,IAAI,CAAC,yBAAyB,EAAE,0BAA0B,CAAC,CAAC;AAE3E,OAAO,QAAQ,cAAc,CAAC;IAC1B,UAAU,OAAQ,SAAQ,OAAO;KAAG;CACvC;AASD,cAAM,yBAA0B,YAAW,YAAY;IAKxC,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,MAAM,EAAE,OAAO;IAL1B,MAAM,CAAC,UAAU,SAA+B;IAChD,MAAM,CAAC,IAAI,WAAgC;gBAGhC,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,MAAM,EAAE,OAAO;IAG1B,OAAO,CAAC,aAAa,CAGjB;IAEE,sBAAsB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAkB/C,wBAAwB,CAAC,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"ActualContentLayoutPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/ActualContentLayoutPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IACxC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACpC;AAED,KAAK,OAAO,GAAG,IAAI,CAAC,yBAAyB,EAAE,0BAA0B,CAAC,CAAC;AAE3E,OAAO,QAAQ,cAAc,CAAC;IAC1B,UAAU,OAAQ,SAAQ,OAAO;KAAG;CACvC;AASD,cAAM,yBAA0B,YAAW,YAAY;IAKxC,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,MAAM,EAAE,OAAO;IAL1B,MAAM,CAAC,UAAU,SAA+B;IAChD,MAAM,CAAC,IAAI,WAAgC;gBAGhC,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,MAAM,EAAE,OAAO;IAG1B,OAAO,CAAC,aAAa,CAGjB;IAEE,sBAAsB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAkB/C,wBAAwB,CAAC,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM;IAoHrE,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,qBAAqB;CAyBhC;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { fabric, IEditor, IPluginTempl } from '@hprint/core';
|
|
2
|
+
export interface TableColumn {
|
|
3
|
+
title: string;
|
|
4
|
+
field: string;
|
|
5
|
+
width: number | `${number}%`;
|
|
6
|
+
}
|
|
7
|
+
export interface ITableItem {
|
|
8
|
+
type: 'table';
|
|
9
|
+
key: string;
|
|
10
|
+
title: string;
|
|
11
|
+
columns: TableColumn[];
|
|
12
|
+
data?: Array<Record<string, unknown>>;
|
|
13
|
+
headerHeight?: number;
|
|
14
|
+
rowHeight?: number;
|
|
15
|
+
height?: number;
|
|
16
|
+
heightAllocationMode?: 'stretch' | 'grow';
|
|
17
|
+
cellPaddingHorizontal?: number;
|
|
18
|
+
cellPaddingVertical?: number;
|
|
19
|
+
textOverflow?: 'wrap' | 'ellipsis';
|
|
20
|
+
textAlign?: 'left' | 'center' | 'right' | 'justify';
|
|
21
|
+
}
|
|
22
|
+
export interface TableOptions {
|
|
23
|
+
width?: number;
|
|
24
|
+
height?: number;
|
|
25
|
+
headerHeight?: number;
|
|
26
|
+
rowHeight?: number;
|
|
27
|
+
heightAllocationMode?: 'stretch' | 'grow';
|
|
28
|
+
borderWidth?: number;
|
|
29
|
+
fontFamily?: string;
|
|
30
|
+
fontSize?: number;
|
|
31
|
+
fontWeight?: string;
|
|
32
|
+
fontStyle?: string;
|
|
33
|
+
underline?: boolean | string;
|
|
34
|
+
linethrough?: boolean | string;
|
|
35
|
+
textOverflow?: 'wrap' | 'ellipsis';
|
|
36
|
+
textAlign?: 'left' | 'center' | 'right' | 'justify';
|
|
37
|
+
lineHeight?: number;
|
|
38
|
+
charSpacing?: number;
|
|
39
|
+
color?: string;
|
|
40
|
+
cellPadding?: number;
|
|
41
|
+
cellPaddingHorizontal?: number;
|
|
42
|
+
cellPaddingVertical?: number;
|
|
43
|
+
data?: Array<Record<string, unknown>>;
|
|
44
|
+
_field_?: string;
|
|
45
|
+
_renderRows?: Array<Record<string, unknown>>;
|
|
46
|
+
_clipContent?: boolean;
|
|
47
|
+
_actualContentLayout?: boolean;
|
|
48
|
+
[key: string]: any;
|
|
49
|
+
}
|
|
50
|
+
export type TableGroup = fabric.Group & {
|
|
51
|
+
extensionType?: string;
|
|
52
|
+
extension?: TableOptions & {
|
|
53
|
+
columns: TableColumn[];
|
|
54
|
+
};
|
|
55
|
+
_originSize?: Record<string, any>;
|
|
56
|
+
setExtension?: (fields: Record<string, any>) => Promise<void>;
|
|
57
|
+
setExtensionByUnit?: (fields: Record<string, any>) => Promise<void>;
|
|
58
|
+
setByUnit?: (field: string, value: any) => Promise<any>;
|
|
59
|
+
__tableModified?: () => void;
|
|
60
|
+
};
|
|
61
|
+
type IPlugin = Pick<TablePlugin, 'createTable' | 'initTableEvents' | 'refreshTable'>;
|
|
62
|
+
declare module '@hprint/core' {
|
|
63
|
+
interface IEditor extends IPlugin {
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export declare function normalizeTableColumns(columns: TableColumn[]): {
|
|
67
|
+
ratio: number;
|
|
68
|
+
title: string;
|
|
69
|
+
field: string;
|
|
70
|
+
width: number | `${number}%`;
|
|
71
|
+
}[];
|
|
72
|
+
declare class TablePlugin implements IPluginTempl {
|
|
73
|
+
canvas: fabric.Canvas;
|
|
74
|
+
editor: IEditor;
|
|
75
|
+
static pluginName: string;
|
|
76
|
+
static apis: string[];
|
|
77
|
+
constructor(canvas: fabric.Canvas, editor: IEditor);
|
|
78
|
+
hookTransform(object: any): Promise<void>;
|
|
79
|
+
hookTransformObjectEnd(...args: unknown[]): Promise<void>;
|
|
80
|
+
createTable(columns: TableColumn[], options?: TableOptions): TableGroup;
|
|
81
|
+
initTableEvents(group: TableGroup): void;
|
|
82
|
+
refreshTable(group: TableGroup): Promise<void>;
|
|
83
|
+
private normalizeOptions;
|
|
84
|
+
private positiveNumber;
|
|
85
|
+
private nonNegativeNumber;
|
|
86
|
+
private toPx;
|
|
87
|
+
private buildGroup;
|
|
88
|
+
private createCellText;
|
|
89
|
+
private measureCellTextHeight;
|
|
90
|
+
private ellipsizeCellText;
|
|
91
|
+
private updateOriginSize;
|
|
92
|
+
destroy(): void;
|
|
93
|
+
}
|
|
94
|
+
export default TablePlugin;
|
|
95
|
+
//# sourceMappingURL=TablePlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TablePlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/TablePlugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hprint/plugins",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11-alpha.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"qs": "~6.12.3",
|
|
23
23
|
"socket.io-client": "^4.8.1",
|
|
24
24
|
"uuid": "~8.3.2",
|
|
25
|
-
"@hprint/
|
|
26
|
-
"@hprint/
|
|
25
|
+
"@hprint/core": "0.0.11-alpha.1",
|
|
26
|
+
"@hprint/shared": "0.0.11-alpha.1"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/bwip-js": "^3.2.3",
|
package/src/index.ts
CHANGED
|
@@ -36,9 +36,10 @@ import ResizePlugin from './plugins/ResizePlugin';
|
|
|
36
36
|
import LockPlugin from './plugins/LockPlugin';
|
|
37
37
|
import AddBaseTypePlugin from './plugins/AddBaseTypePlugin';
|
|
38
38
|
import PrintPlugin from './plugins/PrintPlugin';
|
|
39
|
-
import CreateElementPlugin from './plugins/CreateElementPlugin';
|
|
40
|
-
import ImageTextListPlugin from './plugins/ImageTextListPlugin';
|
|
41
|
-
import ActualContentLayoutPlugin from './plugins/ActualContentLayoutPlugin';
|
|
39
|
+
import CreateElementPlugin from './plugins/CreateElementPlugin';
|
|
40
|
+
import ImageTextListPlugin from './plugins/ImageTextListPlugin';
|
|
41
|
+
import ActualContentLayoutPlugin from './plugins/ActualContentLayoutPlugin';
|
|
42
|
+
import TablePlugin from './plugins/TablePlugin';
|
|
42
43
|
|
|
43
44
|
// 对象形式导出所有插件
|
|
44
45
|
const pluginsObject: { [key: string]: IPluginTempl } = {
|
|
@@ -77,10 +78,11 @@ const pluginsObject: { [key: string]: IPluginTempl } = {
|
|
|
77
78
|
LockPlugin,
|
|
78
79
|
AddBaseTypePlugin,
|
|
79
80
|
PrintPlugin,
|
|
80
|
-
CreateElementPlugin,
|
|
81
|
-
ImageTextListPlugin,
|
|
82
|
-
ActualContentLayoutPlugin,
|
|
83
|
-
|
|
81
|
+
CreateElementPlugin,
|
|
82
|
+
ImageTextListPlugin,
|
|
83
|
+
ActualContentLayoutPlugin,
|
|
84
|
+
TablePlugin,
|
|
85
|
+
};
|
|
84
86
|
|
|
85
87
|
// 数组形式导出所有插件
|
|
86
88
|
const pluginsList: IPluginTempl[] = [
|
|
@@ -119,9 +121,17 @@ const pluginsList: IPluginTempl[] = [
|
|
|
119
121
|
LockPlugin,
|
|
120
122
|
AddBaseTypePlugin,
|
|
121
123
|
PrintPlugin,
|
|
122
|
-
CreateElementPlugin,
|
|
123
|
-
ImageTextListPlugin,
|
|
124
|
-
ActualContentLayoutPlugin,
|
|
125
|
-
|
|
124
|
+
CreateElementPlugin,
|
|
125
|
+
ImageTextListPlugin,
|
|
126
|
+
ActualContentLayoutPlugin,
|
|
127
|
+
TablePlugin,
|
|
128
|
+
];
|
|
126
129
|
|
|
127
130
|
export { pluginsObject, pluginsList, SelectEvent, SelectMode };
|
|
131
|
+
export type {
|
|
132
|
+
ITableItem,
|
|
133
|
+
TableColumn,
|
|
134
|
+
TableOptions,
|
|
135
|
+
TableGroup,
|
|
136
|
+
} from './plugins/TablePlugin';
|
|
137
|
+
export { normalizeTableColumns } from './plugins/TablePlugin';
|
|
@@ -60,7 +60,9 @@ class ActualContentLayoutPlugin implements IPluginTempl {
|
|
|
60
60
|
.getObjects()
|
|
61
61
|
.filter(this.isPrintableObject);
|
|
62
62
|
const mmPerPx = Number(this.editor.getSizeByUnit?.(1, 'mm')) || 1;
|
|
63
|
-
const sourceObjects = this.getTemplateSourceObjects(templateContent);
|
|
63
|
+
const sourceObjects = this.getTemplateSourceObjects(templateContent);
|
|
64
|
+
const unitFactor = mmPerPx;
|
|
65
|
+
const tolerance = 0.01;
|
|
64
66
|
|
|
65
67
|
fabricObjects.forEach((object) => this.preparePrintLayoutObject(object));
|
|
66
68
|
|
|
@@ -143,8 +145,14 @@ class ActualContentLayoutPlugin implements IPluginTempl {
|
|
|
143
145
|
});
|
|
144
146
|
|
|
145
147
|
this.canvas.requestRenderAll();
|
|
148
|
+
const hasExpandedTable = entries.some(
|
|
149
|
+
(entry) =>
|
|
150
|
+
(entry.object as any)?.extensionType === 'table' &&
|
|
151
|
+
this.getActualLayoutHeight(entry.object) * unitFactor >
|
|
152
|
+
entry.originalBottom - entry.originalTop + tolerance
|
|
153
|
+
);
|
|
146
154
|
if (
|
|
147
|
-
settings.overflowMode !== 'expand' ||
|
|
155
|
+
(!hasExpandedTable && settings.overflowMode !== 'expand') ||
|
|
148
156
|
previousActualBottom === undefined
|
|
149
157
|
) {
|
|
150
158
|
return templateHeight;
|
|
@@ -232,7 +240,7 @@ class ActualContentLayoutPlugin implements IPluginTempl {
|
|
|
232
240
|
}
|
|
233
241
|
|
|
234
242
|
private preparePrintLayoutObject(object: any) {
|
|
235
|
-
if (object?.extensionType
|
|
243
|
+
if (!['imageTextList', 'table'].includes(object?.extensionType)) return;
|
|
236
244
|
if (object.extension?._clipContent === true) return;
|
|
237
245
|
|
|
238
246
|
// Design canvases can opt into clipping, but print/layout canvases should
|