@hellkite/pipkin 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/lib/template.d.ts +9 -10
- package/build/src/lib/template.js +75 -40
- package/build/src/lib/template.js.map +1 -1
- package/build/src/lib/types/containers.d.ts +14 -2
- package/build/src/lib/types/containers.js.map +1 -1
- package/build/src/lib/types/hypernode.d.ts +2 -0
- package/build/src/lib/types/hypernode.js +3 -0
- package/build/src/lib/types/hypernode.js.map +1 -0
- package/build/src/lib/types/image.d.ts +5 -0
- package/build/src/lib/types/image.js.map +1 -1
- package/build/src/lib/types/index.d.ts +1 -0
- package/build/src/lib/types/index.js +1 -0
- package/build/src/lib/types/index.js.map +1 -1
- package/build/src/lib/types/text.d.ts +11 -2
- package/build/src/lib/types/text.js +4 -0
- package/build/src/lib/types/text.js.map +1 -1
- package/build/src/lib/utils/container.js +10 -45
- package/build/src/lib/utils/container.js.map +1 -1
- package/build/src/lib/utils/htmlToImage.d.ts +2 -3
- package/build/src/lib/utils/htmlToImage.js.map +1 -1
- package/build/src/lib/utils/index.d.ts +2 -3
- package/build/src/lib/utils/index.js +2 -3
- package/build/src/lib/utils/index.js.map +1 -1
- package/build/src/lib/utils/placeBoundingBox.d.ts +2 -0
- package/build/src/lib/utils/placeBoundingBox.js +21 -0
- package/build/src/lib/utils/placeBoundingBox.js.map +1 -0
- package/build/src/lib/utils/placeImage.d.ts +7 -6
- package/build/src/lib/utils/placeImage.js +20 -20
- package/build/src/lib/utils/placeImage.js.map +1 -1
- package/build/src/lib/utils/placeText.d.ts +14 -0
- package/build/src/lib/utils/placeText.js +69 -0
- package/build/src/lib/utils/placeText.js.map +1 -0
- package/build/src/lib/utils/renderText.js +1 -0
- package/build/src/lib/utils/renderText.js.map +1 -1
- package/build/src/test.js +36 -10
- package/build/src/test.js.map +1 -1
- package/package.json +3 -1
- package/roadmap.md +3 -2
- package/src/lib/template.ts +100 -70
- package/src/lib/types/containers.ts +22 -4
- package/src/lib/types/hypernode.ts +4 -0
- package/src/lib/types/image.ts +6 -0
- package/src/lib/types/index.ts +1 -0
- package/src/lib/types/text.ts +18 -4
- package/src/lib/utils/container.ts +13 -70
- package/src/lib/utils/htmlToImage.ts +3 -3
- package/src/lib/utils/index.ts +2 -3
- package/src/lib/utils/{drawBoundingBox.ts → placeBoundingBox.ts} +3 -9
- package/src/lib/utils/placeImage.ts +34 -27
- package/src/lib/utils/placeText.ts +110 -0
- package/src/lib/utils/buildFontString.ts +0 -17
- package/src/lib/utils/renderText.ts +0 -105
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
|
-
import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef, GridContainerOptions, ContainerOptions } from './types';
|
|
2
|
+
import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef, GridContainerOptions, ContainerOptions, HyperNode, ElementsFn } from './types';
|
|
3
3
|
type RequiredTemplateOptions = {
|
|
4
4
|
height: number;
|
|
5
5
|
width: number;
|
|
@@ -13,7 +13,7 @@ export type TemplateOptions = RequiredTemplateOptions & OptionalTemplateOptions;
|
|
|
13
13
|
export type LayerFnContext = {
|
|
14
14
|
debugMode: boolean;
|
|
15
15
|
};
|
|
16
|
-
export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<
|
|
16
|
+
export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<Array<HyperNode>>;
|
|
17
17
|
export type TemplateLayerFn<EntryType extends Record<string, string>> = (template: Template<EntryType>) => Template<EntryType>;
|
|
18
18
|
export declare class Template<EntryType extends Record<string, string>> {
|
|
19
19
|
private readonly fonts;
|
|
@@ -25,25 +25,24 @@ export declare class Template<EntryType extends Record<string, string>> {
|
|
|
25
25
|
private constructor();
|
|
26
26
|
static new<EntryType extends Record<string, string>>(options?: Partial<TemplateOptions>): Template<EntryType>;
|
|
27
27
|
private shadowTemplate;
|
|
28
|
-
private shadowBackground;
|
|
29
28
|
private get backgroundSize();
|
|
30
29
|
layer(fn: LayerFn<EntryType>): this;
|
|
31
30
|
template: (fn: TemplateLayerFn<EntryType>) => this;
|
|
32
|
-
container: (
|
|
33
|
-
hbox: (
|
|
34
|
-
vbox: (
|
|
35
|
-
grid: (
|
|
31
|
+
container: (elementsFn: ElementsFn, box: BoundingBox, packingFn: PackingFn, options?: ContainerOptions<EntryType>) => this;
|
|
32
|
+
hbox: (elementsFn: ElementsFn, box: BoundingBox, options?: DirectionContainerOptions<EntryType>) => this;
|
|
33
|
+
vbox: (elementsFn: ElementsFn, box: BoundingBox, options?: DirectionContainerOptions<EntryType>) => this;
|
|
34
|
+
grid: (elementsFn: ElementsFn, box: BoundingBox, options?: GridContainerOptions<EntryType>) => this;
|
|
36
35
|
image: (ref: ImageRef<EntryType>, box: BoundingBox, options: ImageLayerOptions<EntryType>) => this;
|
|
37
36
|
loadImage: (imagePath: string | Buffer) => Promise<ImageType>;
|
|
38
37
|
text: (ref: TextRef<EntryType>, box: BoundingBox, options?: TextLayerOptions<EntryType>) => this;
|
|
39
38
|
font(path: fs.PathLike, name: string): this;
|
|
40
39
|
debug(): this;
|
|
41
|
-
|
|
42
|
-
render(entry: EntryType, options?: RenderOptions<EntryType>): Promise<ImageType>;
|
|
40
|
+
render(entry: EntryType): Promise<ImageType>;
|
|
43
41
|
renderAll(entries: Array<EntryType>, options?: RenderOptions<EntryType>): Promise<Array<ImageType>>;
|
|
44
42
|
fromCsv(path: string, options?: RenderOptions<EntryType>): Promise<Array<ImageType>>;
|
|
45
|
-
private
|
|
43
|
+
private imageFromImageRef;
|
|
46
44
|
private textFromTextRef;
|
|
45
|
+
private elementFromElementRef;
|
|
47
46
|
private shouldSkipLayerForEntry;
|
|
48
47
|
}
|
|
49
48
|
export {};
|
|
@@ -55,6 +55,8 @@ const path_1 = __importDefault(require("path"));
|
|
|
55
55
|
const utils_1 = require("./utils");
|
|
56
56
|
const types_1 = require("./types");
|
|
57
57
|
const lodash_merge_1 = __importDefault(require("lodash.merge"));
|
|
58
|
+
const virtual_dom_1 = require("virtual-dom");
|
|
59
|
+
const lodash_flatten_1 = __importDefault(require("lodash.flatten"));
|
|
58
60
|
const DEFAULT_TEMPLATE_OPTIONS = {
|
|
59
61
|
height: 1050,
|
|
60
62
|
width: 750,
|
|
@@ -66,45 +68,52 @@ class Template {
|
|
|
66
68
|
this.fonts = {};
|
|
67
69
|
this.layers = [];
|
|
68
70
|
this.debugMode = false;
|
|
69
|
-
this.template = (fn) => this.layer(entry => {
|
|
71
|
+
this.template = (fn) => this.layer((entry) => __awaiter(this, void 0, void 0, function* () {
|
|
70
72
|
const template = fn(this.shadowTemplate());
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
const image = yield template.render(entry);
|
|
74
|
+
return [
|
|
75
|
+
yield (0, utils_1.placeImage)({
|
|
76
|
+
image,
|
|
77
|
+
box: Object.assign({ left: 0, top: 0 }, this.backgroundSize),
|
|
78
|
+
options: types_1.DEFAULT_IMAGE_LAYER_OPTIONS,
|
|
79
|
+
}),
|
|
80
|
+
];
|
|
81
|
+
}));
|
|
82
|
+
this.container = (elementsFn, box, packingFn, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
|
|
74
83
|
const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_CONTAINER_OPTIONS, options);
|
|
75
84
|
if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
|
|
76
|
-
return
|
|
85
|
+
return [];
|
|
77
86
|
}
|
|
78
|
-
const
|
|
79
|
-
const
|
|
87
|
+
const elementRefs = yield elementsFn(entry);
|
|
88
|
+
const elements = yield Promise.all(elementRefs.map(elementRef => this.elementFromElementRef(entry, elementRef)));
|
|
89
|
+
const result = yield packingFn(box, elements);
|
|
80
90
|
// debug mode
|
|
81
91
|
if (debugMode) {
|
|
82
|
-
const debugImage = yield (0, utils_1.
|
|
83
|
-
return debugImage
|
|
92
|
+
const debugImage = yield (0, utils_1.placeBoundingBox)(box);
|
|
93
|
+
return [result, debugImage];
|
|
84
94
|
}
|
|
85
|
-
return result;
|
|
95
|
+
return [result];
|
|
86
96
|
}));
|
|
87
|
-
this.hbox = (
|
|
88
|
-
this.vbox = (
|
|
89
|
-
this.grid = (
|
|
97
|
+
this.hbox = (elementsFn, box, options) => this.container(elementsFn, box, (0, utils_1.hboxPackingFn)(options), options);
|
|
98
|
+
this.vbox = (elementsFn, box, options) => this.container(elementsFn, box, (0, utils_1.vboxPackingFn)(options), options);
|
|
99
|
+
this.grid = (elementsFn, box, options) => this.container(elementsFn, box, (0, utils_1.gridPackingFn)(options), options);
|
|
90
100
|
this.image = (ref, box, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
|
|
91
101
|
const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_IMAGE_LAYER_OPTIONS, { assetsPath: this.defaultAssetsPath }, options);
|
|
92
102
|
if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
|
|
93
|
-
return
|
|
103
|
+
return [];
|
|
94
104
|
}
|
|
95
|
-
const image = yield this.
|
|
105
|
+
const image = yield this.imageFromImageRef(entry, ref, mergedOptions);
|
|
96
106
|
const result = yield (0, utils_1.placeImage)({
|
|
97
107
|
image,
|
|
98
108
|
box,
|
|
99
|
-
backgroundSize: this.backgroundSize,
|
|
100
109
|
options: mergedOptions,
|
|
101
110
|
});
|
|
102
111
|
// debug mode
|
|
103
112
|
if (debugMode) {
|
|
104
|
-
const debugImage = yield (0, utils_1.
|
|
105
|
-
return debugImage
|
|
113
|
+
const debugImage = yield (0, utils_1.placeBoundingBox)(box);
|
|
114
|
+
return [result, debugImage];
|
|
106
115
|
}
|
|
107
|
-
return result;
|
|
116
|
+
return [result];
|
|
108
117
|
}));
|
|
109
118
|
this.loadImage = (imagePath) => __awaiter(this, void 0, void 0, function* () {
|
|
110
119
|
const image = (yield jimp_1.Jimp.read(imagePath));
|
|
@@ -117,18 +126,22 @@ class Template {
|
|
|
117
126
|
},
|
|
118
127
|
}, options);
|
|
119
128
|
if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
|
|
120
|
-
return
|
|
129
|
+
return [];
|
|
121
130
|
}
|
|
122
131
|
const text = this.textFromTextRef(entry, ref);
|
|
123
|
-
const result = yield (0, utils_1.
|
|
132
|
+
const result = yield (0, utils_1.placeText)({
|
|
133
|
+
text,
|
|
134
|
+
box,
|
|
135
|
+
options: mergedOptions,
|
|
136
|
+
});
|
|
124
137
|
// debug mode
|
|
125
138
|
if (debugMode) {
|
|
126
|
-
const debugImage = yield (0, utils_1.
|
|
127
|
-
return debugImage
|
|
139
|
+
const debugImage = yield (0, utils_1.placeBoundingBox)(box);
|
|
140
|
+
return [result, debugImage];
|
|
128
141
|
}
|
|
129
|
-
return result;
|
|
142
|
+
return [result];
|
|
130
143
|
}));
|
|
131
|
-
this.
|
|
144
|
+
this.imageFromImageRef = (entry, ref, options) => __awaiter(this, void 0, void 0, function* () {
|
|
132
145
|
const pathSegments = [];
|
|
133
146
|
if (options.assetsPath) {
|
|
134
147
|
pathSegments.push(options.assetsPath);
|
|
@@ -168,6 +181,28 @@ class Template {
|
|
|
168
181
|
throw new Error('Unknown TextRef variant');
|
|
169
182
|
}
|
|
170
183
|
};
|
|
184
|
+
this.elementFromElementRef = (entry, ref) => __awaiter(this, void 0, void 0, function* () {
|
|
185
|
+
if ('text' in ref) {
|
|
186
|
+
const options = (0, lodash_merge_1.default)({}, types_1.DEFAULT_TEXT_LAYER_OPTIONS, ref.options);
|
|
187
|
+
return (0, utils_1.prepareText)({
|
|
188
|
+
text: this.textFromTextRef(entry, ref.text),
|
|
189
|
+
options,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
else if ('image' in ref) {
|
|
193
|
+
const options = (0, lodash_merge_1.default)({}, types_1.DEFAULT_IMAGE_LAYER_OPTIONS, ref.options);
|
|
194
|
+
return (0, utils_1.prepareImage)({
|
|
195
|
+
image: yield this.imageFromImageRef(entry, ref.image, options),
|
|
196
|
+
options,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
else if ('node' in ref) {
|
|
200
|
+
return ref.node;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
throw new Error('Unknown TextRef variant');
|
|
204
|
+
}
|
|
205
|
+
});
|
|
171
206
|
this.shouldSkipLayerForEntry = (entry, options) => {
|
|
172
207
|
var _a;
|
|
173
208
|
if (typeof options.skip === 'function') {
|
|
@@ -192,12 +227,6 @@ class Template {
|
|
|
192
227
|
width: this.background.width,
|
|
193
228
|
});
|
|
194
229
|
}
|
|
195
|
-
shadowBackground() {
|
|
196
|
-
return new jimp_1.Jimp({
|
|
197
|
-
width: this.background.width,
|
|
198
|
-
height: this.background.height,
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
230
|
get backgroundSize() {
|
|
202
231
|
return {
|
|
203
232
|
width: this.background.width,
|
|
@@ -217,23 +246,29 @@ class Template {
|
|
|
217
246
|
this.debugMode = true;
|
|
218
247
|
return this;
|
|
219
248
|
}
|
|
220
|
-
|
|
249
|
+
render(entry) {
|
|
221
250
|
return __awaiter(this, void 0, void 0, function* () {
|
|
222
251
|
const results = yield Promise.all(this.layers.map(layerFn => layerFn(entry, {
|
|
223
252
|
debugMode: this.debugMode,
|
|
224
253
|
})));
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
254
|
+
const document = (0, virtual_dom_1.h)('html', [
|
|
255
|
+
(0, virtual_dom_1.h)('head', [
|
|
256
|
+
(0, virtual_dom_1.h)('style', Object.entries(this.fonts)
|
|
257
|
+
.map(([name, data]) => `@font-face {
|
|
258
|
+
font-family: '${name}';
|
|
259
|
+
src: url(data:font/ttf;base64,${data}) format('truetype');
|
|
260
|
+
}`)
|
|
261
|
+
.join('\n')),
|
|
262
|
+
]),
|
|
263
|
+
(0, virtual_dom_1.h)('body', (0, lodash_flatten_1.default)(results)),
|
|
264
|
+
]);
|
|
265
|
+
const renderedLayers = yield (0, utils_1.htmlToImage)(document, this.backgroundSize);
|
|
266
|
+
return this.background.clone().composite(renderedLayers);
|
|
232
267
|
});
|
|
233
268
|
}
|
|
234
269
|
renderAll(entries, options) {
|
|
235
270
|
return __awaiter(this, void 0, void 0, function* () {
|
|
236
|
-
const results = yield Promise.all(entries.map(entry => new Promise(resolve => this.render(entry
|
|
271
|
+
const results = yield Promise.all(entries.map(entry => new Promise(resolve => this.render(entry).then(image => {
|
|
237
272
|
var _a, _b;
|
|
238
273
|
if (!(options === null || options === void 0 ? void 0 : options.duplication)) {
|
|
239
274
|
return resolve([image]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/lib/template.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,yCAA8C;AAC9C,+BAAuC;AACvC,wEAAyC;AACzC,kEAAmC;
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/lib/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { RequiredDeep } from 'type-fest';
|
|
2
2
|
import { BoundingBox } from './boundingBox';
|
|
3
|
-
import {
|
|
3
|
+
import { ImageLayerSpecificOptions, ImageRef } from './image';
|
|
4
4
|
import { ScaleMode } from './scale';
|
|
5
5
|
import { LayerOptions } from './layer';
|
|
6
|
+
import { HyperNode } from './hypernode';
|
|
7
|
+
import { TextLayerSpecificOptions, TextRef } from './text';
|
|
6
8
|
export type ContainerOptions<EntryType extends Record<string, string>> = LayerOptions<EntryType> & {
|
|
7
9
|
/**
|
|
8
10
|
* This is treated as a minimum length of an unit of space
|
|
@@ -33,4 +35,14 @@ export type GridContainerOptions<EntryType extends Record<string, string>> = Con
|
|
|
33
35
|
direction?: 'rows' | 'cols';
|
|
34
36
|
};
|
|
35
37
|
export declare const DEFAULT_GRID_CONTAINER_OPTIONS: RequiredDeep<GridContainerOptions<Record<string, string>>>;
|
|
36
|
-
export type
|
|
38
|
+
export type ElementRef<EntryType extends Record<string, string>> = {
|
|
39
|
+
image: ImageRef<EntryType>;
|
|
40
|
+
options?: ImageLayerSpecificOptions<EntryType>;
|
|
41
|
+
} | {
|
|
42
|
+
text: TextRef<EntryType>;
|
|
43
|
+
options?: TextLayerSpecificOptions<EntryType>;
|
|
44
|
+
} | {
|
|
45
|
+
node: HyperNode;
|
|
46
|
+
};
|
|
47
|
+
export type ElementsFn = <EntryType extends Record<string, string>>(entry: EntryType) => Promise<Array<ElementRef<EntryType>>>;
|
|
48
|
+
export type PackingFn = (box: BoundingBox, elements: Array<HyperNode>) => Promise<HyperNode>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../src/lib/types/containers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../src/lib/types/containers.ts"],"names":[],"mappings":";;;AAwBa,QAAA,yBAAyB,GAElC;IACA,GAAG,EAAE,CAAC;IACN,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;CACd,CAAC;AAQW,QAAA,mCAAmC,mCAGzC,iCAAyB,KAC5B,QAAQ,EAAE,KAAK,IACjB;AAgBW,QAAA,8BAA8B,mCAGpC,iCAAyB,KAC5B,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,MAAM,IACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hypernode.js","sourceRoot":"","sources":["../../../../src/lib/types/hypernode.ts"],"names":[],"mappings":""}
|
|
@@ -3,6 +3,10 @@ import { ScaleMode } from './scale';
|
|
|
3
3
|
import { LayerOptions } from './layer';
|
|
4
4
|
import { RequiredDeep } from 'type-fest';
|
|
5
5
|
export type ImageType = JimpInstance;
|
|
6
|
+
/**
|
|
7
|
+
* Static images -> `buffer`, `path`, `absolutePath`
|
|
8
|
+
* Dynamic images -> `key`, `pathFn`
|
|
9
|
+
*/
|
|
6
10
|
export type ImageRef<EntryType extends Record<string, string>> = {
|
|
7
11
|
buffer: Buffer;
|
|
8
12
|
} | {
|
|
@@ -25,5 +29,6 @@ export type ImageLayerOptions<EntryType extends Record<string, string>> = LayerO
|
|
|
25
29
|
scale?: ScaleMode;
|
|
26
30
|
};
|
|
27
31
|
export declare const DEFAULT_IMAGE_LAYER_OPTIONS: RequiredDeep<ImageLayerOptions<Record<string, string>>>;
|
|
32
|
+
export type ImageLayerSpecificOptions<EntryType extends Record<string, string>> = Omit<ImageLayerOptions<EntryType>, keyof LayerOptions<EntryType>>;
|
|
28
33
|
export type Alignment = 'start' | 'center' | 'end';
|
|
29
34
|
export declare const DEFAULT_IMAGE_ALIGNMENT: Alignment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/lib/types/image.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/lib/types/image.ts"],"names":[],"mappings":";;;AAkCa,QAAA,2BAA2B,GAA4D;IAChG,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;IACX,UAAU,EAAE,EAAE;CACjB,CAAC;AAMW,QAAA,uBAAuB,GAAc,QAAQ,CAAC"}
|
|
@@ -24,4 +24,5 @@ __exportStar(require("./text"), exports);
|
|
|
24
24
|
__exportStar(require("./boundingBox"), exports);
|
|
25
25
|
__exportStar(require("./css"), exports);
|
|
26
26
|
__exportStar(require("./layer"), exports);
|
|
27
|
+
__exportStar(require("./hypernode"), exports);
|
|
27
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB;AACxB,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,yCAAuB;AACvB,gDAA8B;AAC9B,wCAAsB;AACtB,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB;AACxB,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,yCAAuB;AACvB,gDAA8B;AAC9B,wCAAsB;AACtB,0CAAwB;AACxB,8CAA4B"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { RequiredDeep } from 'type-fest';
|
|
2
2
|
import { LayerOptions } from './layer';
|
|
3
3
|
import { ReplacementMap } from './replacement';
|
|
4
|
+
/**
|
|
5
|
+
* Static text -> `text`
|
|
6
|
+
* Dynamic text -> `key`, `textFn`
|
|
7
|
+
*/
|
|
4
8
|
export type TextRef<EntryType> = {
|
|
5
|
-
key: string;
|
|
6
|
-
} | {
|
|
7
9
|
text: string;
|
|
10
|
+
} | {
|
|
11
|
+
key: string;
|
|
8
12
|
} | {
|
|
9
13
|
textFn: (entry: EntryType) => string;
|
|
10
14
|
};
|
|
@@ -30,7 +34,12 @@ export type FontOptions = {
|
|
|
30
34
|
export type TextLayerOptions<EntryType extends Record<string, string>> = LayerOptions<EntryType> & {
|
|
31
35
|
font?: FontOptions;
|
|
32
36
|
color?: string;
|
|
37
|
+
border?: {
|
|
38
|
+
width?: number;
|
|
39
|
+
color?: string;
|
|
40
|
+
};
|
|
33
41
|
replacement?: ReplacementMap;
|
|
34
42
|
};
|
|
35
43
|
export declare const DEFAULT_FONT: Required<FontOptions>;
|
|
44
|
+
export type TextLayerSpecificOptions<EntryType extends Record<string, string>> = Omit<TextLayerOptions<EntryType>, keyof LayerOptions<EntryType>>;
|
|
36
45
|
export declare const DEFAULT_TEXT_LAYER_OPTIONS: RequiredDeep<TextLayerOptions<Record<string, string>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/lib/types/text.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/lib/types/text.ts"],"names":[],"mappings":";;;AAgDa,QAAA,YAAY,GAA0B;IAC/C,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;CAChB,CAAC;AAKW,QAAA,0BAA0B,GAEnC;IACA,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,oBAAY;IAClB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,KAAK;IACX,MAAM,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,OAAO;KACjB;CACJ,CAAC"}
|
|
@@ -17,43 +17,25 @@ const virtual_dom_1 = require("virtual-dom");
|
|
|
17
17
|
const types_1 = require("../types");
|
|
18
18
|
const toPx_1 = require("./toPx");
|
|
19
19
|
const lodash_merge_1 = __importDefault(require("lodash.merge"));
|
|
20
|
-
const htmlToImage_1 = require("./htmlToImage");
|
|
21
20
|
const lodash_chunk_1 = __importDefault(require("lodash.chunk"));
|
|
22
|
-
const vboxPackingFn = (options) => (box,
|
|
21
|
+
const vboxPackingFn = (options) => (box, elements) => directionalPackingFn({
|
|
23
22
|
isVertical: true,
|
|
24
|
-
|
|
25
|
-
images,
|
|
23
|
+
elements,
|
|
26
24
|
box,
|
|
27
25
|
options,
|
|
28
26
|
});
|
|
29
27
|
exports.vboxPackingFn = vboxPackingFn;
|
|
30
|
-
const hboxPackingFn = (options) => (box,
|
|
28
|
+
const hboxPackingFn = (options) => (box, elements) => directionalPackingFn({
|
|
31
29
|
isVertical: false,
|
|
32
|
-
|
|
33
|
-
images,
|
|
30
|
+
elements,
|
|
34
31
|
box,
|
|
35
32
|
options,
|
|
36
33
|
});
|
|
37
34
|
exports.hboxPackingFn = hboxPackingFn;
|
|
38
|
-
const gridPackingFn = (options) => (box,
|
|
35
|
+
const gridPackingFn = (options) => (box, elements) => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
36
|
const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_GRID_CONTAINER_OPTIONS, options);
|
|
40
|
-
const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[mergedOptions.scale];
|
|
41
|
-
const children = yield Promise.all(images.map((image) => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
-
const imageBase64 = yield image.getBase64('image/png');
|
|
43
|
-
return (0, virtual_dom_1.h)('img', {
|
|
44
|
-
style: {
|
|
45
|
-
objectFit,
|
|
46
|
-
flex: '1 1 auto',
|
|
47
|
-
minWidth: 0,
|
|
48
|
-
minHeight: 0,
|
|
49
|
-
maxWidth: '100%',
|
|
50
|
-
maxHeight: '100%',
|
|
51
|
-
},
|
|
52
|
-
src: imageBase64,
|
|
53
|
-
}, []);
|
|
54
|
-
})));
|
|
55
37
|
const items = [];
|
|
56
|
-
for (const subset of (0, lodash_chunk_1.default)(
|
|
38
|
+
for (const subset of (0, lodash_chunk_1.default)(elements)) {
|
|
57
39
|
items.push((0, virtual_dom_1.h)('div', {
|
|
58
40
|
style: {
|
|
59
41
|
display: 'flex',
|
|
@@ -65,32 +47,15 @@ const gridPackingFn = (options) => (box, background, images) => __awaiter(void 0
|
|
|
65
47
|
},
|
|
66
48
|
}, subset));
|
|
67
49
|
}
|
|
68
|
-
|
|
50
|
+
return (0, virtual_dom_1.h)('div', {
|
|
69
51
|
style: Object.assign({ display: 'grid', gridTemplateColumns: `repeat(${mergedOptions.size}, 1fr)`, position: 'absolute', gap: (0, toPx_1.toPx)(mergedOptions.gap) }, (0, toPx_1.boundingBoxToPx)(box)),
|
|
70
52
|
}, items);
|
|
71
|
-
return (0, htmlToImage_1.htmlToImage)(document, background);
|
|
72
53
|
});
|
|
73
54
|
exports.gridPackingFn = gridPackingFn;
|
|
74
|
-
const directionalPackingFn = (_a) => __awaiter(void 0, [_a], void 0, function* ({ isVertical,
|
|
55
|
+
const directionalPackingFn = (_a) => __awaiter(void 0, [_a], void 0, function* ({ isVertical, elements, box, options, }) {
|
|
75
56
|
const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_DIRECTION_CONTAINER_OPTIONS, options);
|
|
76
|
-
|
|
77
|
-
const children = yield Promise.all(images.map((image) => __awaiter(void 0, void 0, void 0, function* () {
|
|
78
|
-
const imageBase64 = yield image.getBase64('image/png');
|
|
79
|
-
return (0, virtual_dom_1.h)('img', {
|
|
80
|
-
style: {
|
|
81
|
-
objectFit,
|
|
82
|
-
flex: '1 1 auto',
|
|
83
|
-
minWidth: 0,
|
|
84
|
-
minHeight: 0,
|
|
85
|
-
maxWidth: '100%',
|
|
86
|
-
maxHeight: '100%',
|
|
87
|
-
},
|
|
88
|
-
src: imageBase64,
|
|
89
|
-
}, []);
|
|
90
|
-
})));
|
|
91
|
-
const document = (0, virtual_dom_1.h)('div', {
|
|
57
|
+
return (0, virtual_dom_1.h)('div', {
|
|
92
58
|
style: Object.assign({ display: 'flex', position: 'absolute', scale: 1, flexDirection: `${isVertical ? 'column' : 'row'}${mergedOptions.reversed ? '-reversed' : ''}`, gap: (0, toPx_1.toPx)(mergedOptions.gap), justifyContent: mergedOptions.justifyContent, alignItems: mergedOptions.alignItems }, (0, toPx_1.boundingBoxToPx)(box)),
|
|
93
|
-
},
|
|
94
|
-
return (0, htmlToImage_1.htmlToImage)(document, background);
|
|
59
|
+
}, elements);
|
|
95
60
|
});
|
|
96
61
|
//# sourceMappingURL=container.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/lib/utils/container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/lib/utils/container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAgC;AAChC,oCASkB;AAClB,iCAA+C;AAC/C,gEAAiC;AACjC,gEAAiC;AAE1B,MAAM,aAAa,GACtB,CACI,OAA8C,EACrC,EAAE,CACf,CAAC,GAAgB,EAAE,QAA0B,EAAE,EAAE,CAC7C,oBAAoB,CAAC;IACjB,UAAU,EAAE,IAAI;IAChB,QAAQ;IACR,GAAG;IACH,OAAO;CACV,CAAC,CAAC;AAVE,QAAA,aAAa,iBAUf;AAEJ,MAAM,aAAa,GACtB,CACI,OAA8C,EACrC,EAAE,CACf,CAAC,GAAgB,EAAE,QAA0B,EAAE,EAAE,CAC7C,oBAAoB,CAAC;IACjB,UAAU,EAAE,KAAK;IACjB,QAAQ;IACR,GAAG;IACH,OAAO;CACV,CAAC,CAAC;AAVE,QAAA,aAAa,iBAUf;AAEJ,MAAM,aAAa,GACtB,CACI,OAAyC,EAChC,EAAE,CACf,CAAO,GAAgB,EAAE,QAA0B,EAAE,EAAE;IACnD,MAAM,aAAa,GAAG,IAAA,sBAAK,EACvB,EAAE,EACF,sCAA8B,EAC9B,OAAO,CACV,CAAC;IAEF,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,MAAM,IAAI,IAAA,sBAAK,EAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CACN,IAAA,eAAC,EACG,KAAK,EACL;YACI,KAAK,EAAE;gBACH,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,KAAK;gBACpB,QAAQ,EAAE,QAAQ;gBAElB,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,GAAG,CAAC;gBAC5B,cAAc,EAAE,aAAa,CAAC,cAAc;gBAC5C,UAAU,EAAE,aAAa,CAAC,UAAU;aACvC;SACJ,EACD,MAAM,CACT,CACJ,CAAC;IACN,CAAC;IACD,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,UAAU,aAAa,CAAC,IAAI,QAAQ,EACzD,QAAQ,EAAE,UAAU,EAEpB,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,GAAG,CAAC,IACzB,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,KAAK,CACR,CAAC;AACN,CAAC,CAAA,CAAC;AA7CO,QAAA,aAAa,iBA6CpB;AAEN,MAAM,oBAAoB,GAAG,KAUN,EAAE,4CAVqD,EAC1E,UAAU,EACV,QAAQ,EACR,GAAG,EACH,OAAO,GAMV;IACG,MAAM,aAAa,GAAG,IAAA,sBAAK,EACvB,EAAE,EACF,2CAAmC,EACnC,OAAO,CACV,CAAC;IAEF,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,CAAC,EAER,aAAa,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAC7F,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,GAAG,CAAC,EAC5B,cAAc,EAAE,aAAa,CAAC,cAAc,EAC5C,UAAU,EAAE,aAAa,CAAC,UAAU,IAEjC,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,QAAQ,CACX,CAAC;AACN,CAAC,CAAA,CAAC"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare const htmlToImage: (document: VNode, backgroundSize: Size) => Promise<ImageType>;
|
|
1
|
+
import { HyperNode, ImageType, Size } from '../types';
|
|
2
|
+
export declare const htmlToImage: (document: HyperNode, backgroundSize: Size) => Promise<ImageType>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlToImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/htmlToImage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"htmlToImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/htmlToImage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAsD;AACtD,4EAAiD;AACjD,+BAA4B;AAGrB,MAAM,WAAW,GAAG,CACvB,QAAmB,EACnB,cAAoB,EACF,EAAE;IACpB,MAAM,IAAI,GAAG,IAAA,oBAAa,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAe,EAAC;QAChC,IAAI;QACJ,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,KAAK;QACX,aAAa,EAAE;YACX,eAAe,EAAE;gBACb,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,iBAAiB,EAAE,CAAC;aACvB;SACJ;KACJ,CAAC,CAAC;IACH,OAAO,WAAI,CAAC,IAAI,CAAC,KAAe,CAAuB,CAAC;AAC5D,CAAC,CAAA,CAAC;AAlBW,QAAA,WAAW,eAkBtB"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export * from './buildFontString';
|
|
2
1
|
export * from './container';
|
|
3
|
-
export * from './
|
|
2
|
+
export * from './placeBoundingBox';
|
|
4
3
|
export * from './placeImage';
|
|
5
|
-
export * from './
|
|
4
|
+
export * from './placeText';
|
|
6
5
|
export * from './htmlToImage';
|
|
7
6
|
export * from './toPx';
|
|
@@ -14,11 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./buildFontString"), exports);
|
|
18
17
|
__exportStar(require("./container"), exports);
|
|
19
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./placeBoundingBox"), exports);
|
|
20
19
|
__exportStar(require("./placeImage"), exports);
|
|
21
|
-
__exportStar(require("./
|
|
20
|
+
__exportStar(require("./placeText"), exports);
|
|
22
21
|
__exportStar(require("./htmlToImage"), exports);
|
|
23
22
|
__exportStar(require("./toPx"), exports);
|
|
24
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,gDAA8B;AAC9B,yCAAuB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.placeBoundingBox = void 0;
|
|
13
|
+
const virtual_dom_1 = require("virtual-dom");
|
|
14
|
+
const toPx_1 = require("./toPx");
|
|
15
|
+
const placeBoundingBox = (box) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
return (0, virtual_dom_1.h)('div', {
|
|
17
|
+
style: Object.assign({ position: 'absolute', border: '2px solid red', background: 'transparent', boxSizing: 'border-box' }, (0, toPx_1.boundingBoxToPx)(box)),
|
|
18
|
+
}, []);
|
|
19
|
+
});
|
|
20
|
+
exports.placeBoundingBox = placeBoundingBox;
|
|
21
|
+
//# sourceMappingURL=placeBoundingBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placeBoundingBox.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeBoundingBox.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAgC;AAChC,iCAAyC;AAGlC,MAAM,gBAAgB,GAAG,CAAO,GAAgB,EAAsB,EAAE;IAC3E,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,kBACD,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,YAAY,IACpB,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,EAAE,CACL,CAAC;AACN,CAAC,CAAA,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
|