@hellkite/pipkin 0.5.0 → 0.5.2
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/bundler.d.ts +1 -2
- package/build/src/lib/bundler.js.map +1 -1
- package/build/src/lib/replacement.d.ts +1 -2
- package/build/src/lib/replacement.js.map +1 -1
- package/build/src/lib/template.d.ts +13 -14
- package/build/src/lib/template.js +102 -37
- package/build/src/lib/template.js.map +1 -1
- package/build/src/lib/types/2d.d.ts +4 -5
- package/build/src/lib/types/boundingBox.d.ts +19 -0
- package/build/src/lib/types/boundingBox.js +3 -0
- package/build/src/lib/types/boundingBox.js.map +1 -0
- package/build/src/lib/types/containers.d.ts +13 -27
- package/build/src/lib/types/containers.js +3 -2
- package/build/src/lib/types/containers.js.map +1 -1
- package/build/src/lib/types/css.d.ts +4 -1
- package/build/src/lib/types/css.js +6 -3
- package/build/src/lib/types/css.js.map +1 -1
- package/build/src/lib/types/image.d.ts +17 -38
- package/build/src/lib/types/image.js +8 -2
- package/build/src/lib/types/image.js.map +1 -1
- package/build/src/lib/types/index.d.ts +3 -2
- package/build/src/lib/types/index.js +3 -2
- package/build/src/lib/types/index.js.map +1 -1
- package/build/src/lib/types/layer.d.ts +15 -0
- package/build/src/lib/types/layer.js +3 -0
- package/build/src/lib/types/layer.js.map +1 -0
- package/build/src/lib/types/position.d.ts +21 -0
- package/build/src/lib/types/position.js +42 -0
- package/build/src/lib/types/position.js.map +1 -0
- package/build/src/lib/types/scale.d.ts +9 -1
- package/build/src/lib/types/scale.js +2 -0
- package/build/src/lib/types/scale.js.map +1 -1
- package/build/src/lib/types/size.d.ts +4 -0
- package/build/src/lib/types/size.js +3 -0
- package/build/src/lib/types/size.js.map +1 -0
- package/build/src/lib/types/text.d.ts +29 -33
- package/build/src/lib/types/text.js +13 -4
- package/build/src/lib/types/text.js.map +1 -1
- package/build/src/lib/utils/buildFontString.d.ts +2 -2
- package/build/src/lib/utils/buildFontString.js.map +1 -1
- package/build/src/lib/utils/canvasToImage.d.ts +1 -1
- package/build/src/lib/utils/container.d.ts +4 -4
- package/build/src/lib/utils/container.js +52 -46
- package/build/src/lib/utils/container.js.map +1 -1
- package/build/src/lib/utils/drawBoundingBox.d.ts +1 -2
- package/build/src/lib/utils/drawBoundingBox.js +7 -47
- package/build/src/lib/utils/drawBoundingBox.js.map +1 -1
- package/build/src/lib/utils/htmlToImage.d.ts +3 -0
- package/build/src/lib/utils/htmlToImage.js +36 -0
- package/build/src/lib/utils/htmlToImage.js.map +1 -0
- package/build/src/lib/utils/index.d.ts +2 -1
- package/build/src/lib/utils/index.js +2 -1
- package/build/src/lib/utils/index.js.map +1 -1
- package/build/src/lib/utils/placeImage.d.ts +10 -5
- package/build/src/lib/utils/placeImage.js +25 -36
- package/build/src/lib/utils/placeImage.js.map +1 -1
- package/build/src/lib/utils/renderText.d.ts +3 -2
- package/build/src/lib/utils/renderText.js +12 -39
- package/build/src/lib/utils/renderText.js.map +1 -1
- package/build/src/lib/utils/toPx.d.ts +3 -0
- package/build/src/lib/utils/toPx.js +12 -0
- package/build/src/lib/utils/toPx.js.map +1 -0
- package/build/src/lib/utils/vNodeToImage.d.ts +4 -0
- package/build/src/lib/utils/vNodeToImage.js +36 -0
- package/build/src/lib/utils/vNodeToImage.js.map +1 -0
- package/build/src/test.js +55 -69
- package/build/src/test.js.map +1 -1
- package/package.json +6 -3
- package/roadmap.md +0 -1
- package/src/lib/bundler.ts +1 -2
- package/src/lib/replacement.ts +1 -2
- package/src/lib/template.ts +190 -68
- package/src/lib/types/boundingBox.ts +28 -0
- package/src/lib/types/containers.ts +55 -60
- package/src/lib/types/css.ts +32 -1
- package/src/lib/types/image.ts +32 -57
- package/src/lib/types/index.ts +3 -2
- package/src/lib/types/layer.ts +18 -0
- package/src/lib/types/scale.ts +11 -0
- package/src/lib/types/size.ts +4 -0
- package/src/lib/types/text.ts +47 -56
- package/src/lib/utils/buildFontString.ts +2 -2
- package/src/lib/utils/container.ts +118 -57
- package/src/lib/utils/drawBoundingBox.ts +19 -16
- package/src/lib/utils/htmlToImage.ts +24 -0
- package/src/lib/utils/index.ts +2 -1
- package/src/lib/utils/placeImage.ts +55 -58
- package/src/lib/utils/renderText.ts +19 -43
- package/src/lib/utils/toPx.ts +11 -0
- package/src/lib/types/2d.ts +0 -11
- package/src/lib/types/omitArgument.ts +0 -17
- package/src/lib/utils/canvasToImage.ts +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/lib/bundler.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;
|
|
1
|
+
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/lib/bundler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replacement.js","sourceRoot":"","sources":["../../../src/lib/replacement.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"replacement.js","sourceRoot":"","sources":["../../../src/lib/replacement.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,WAAW;IAAxB;QAEqB,mBAAc,GAAmB,EAAE,CAAC;IAYzD,CAAC;IAVG,OAAO,CAAC,KAAoB,EAAE,MAAiB;QAC3C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;CACJ;AAdD,kCAcC"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
|
-
import {
|
|
3
|
-
import { TextLayerProps } from './types/text';
|
|
4
|
-
import { RenderOptions } from './types/render';
|
|
5
|
-
import { DirectionContainerOptions, PackingFn } from './types/containers';
|
|
6
|
-
import { BoundingBox } from './types/2d';
|
|
2
|
+
import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef, GridContainerOptions, ContainerOptions } from './types';
|
|
7
3
|
type RequiredTemplateOptions = {
|
|
8
4
|
height: number;
|
|
9
5
|
width: number;
|
|
@@ -15,11 +11,9 @@ type OptionalTemplateOptions = Partial<{
|
|
|
15
11
|
}>;
|
|
16
12
|
export type TemplateOptions = RequiredTemplateOptions & OptionalTemplateOptions;
|
|
17
13
|
export type LayerFnContext = {
|
|
18
|
-
width: number;
|
|
19
|
-
height: number;
|
|
20
14
|
debugMode: boolean;
|
|
21
15
|
};
|
|
22
|
-
export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<ImageType>;
|
|
16
|
+
export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<ImageType | undefined>;
|
|
23
17
|
export type TemplateLayerFn<EntryType extends Record<string, string>> = (template: Template<EntryType>) => Template<EntryType>;
|
|
24
18
|
export declare class Template<EntryType extends Record<string, string>> {
|
|
25
19
|
private readonly layers;
|
|
@@ -31,19 +25,24 @@ export declare class Template<EntryType extends Record<string, string>> {
|
|
|
31
25
|
static new<EntryType extends Record<string, string>>(options?: Partial<TemplateOptions>): Template<EntryType>;
|
|
32
26
|
private shadowTemplate;
|
|
33
27
|
private shadowBackground;
|
|
28
|
+
private get backgroundSize();
|
|
34
29
|
layer(fn: LayerFn<EntryType>): this;
|
|
35
30
|
template: (fn: TemplateLayerFn<EntryType>) => this;
|
|
36
|
-
container: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, packingFn: PackingFn) => this;
|
|
37
|
-
hbox: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>,
|
|
38
|
-
vbox: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
31
|
+
container: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, packingFn: PackingFn, options?: ContainerOptions<EntryType>) => this;
|
|
32
|
+
hbox: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: DirectionContainerOptions<EntryType>) => this;
|
|
33
|
+
vbox: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: DirectionContainerOptions<EntryType>) => this;
|
|
34
|
+
grid: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: GridContainerOptions<EntryType>) => this;
|
|
35
|
+
image: (ref: ImageRef<EntryType>, box: BoundingBox, options: ImageLayerOptions<EntryType>) => this;
|
|
36
|
+
loadImage: (imagePath: string | Buffer) => Promise<ImageType>;
|
|
37
|
+
text: (ref: TextRef<EntryType>, box: BoundingBox, options?: TextLayerOptions<EntryType>) => this;
|
|
42
38
|
font(path: fs.PathLike, name: string): this;
|
|
43
39
|
debug(): this;
|
|
44
40
|
private renderLayers;
|
|
45
41
|
render(entry: EntryType, options?: RenderOptions<EntryType>): Promise<ImageType>;
|
|
46
42
|
renderAll(entries: Array<EntryType>, options?: RenderOptions<EntryType>): Promise<Array<ImageType>>;
|
|
47
43
|
fromCsv(path: string, options?: RenderOptions<EntryType>): Promise<Array<ImageType>>;
|
|
44
|
+
private pathFromImageRef;
|
|
45
|
+
private textFromTextRef;
|
|
46
|
+
private shouldSkipLayerForEntry;
|
|
48
47
|
}
|
|
49
48
|
export {};
|
|
@@ -50,13 +50,12 @@ const fs = __importStar(require("fs"));
|
|
|
50
50
|
const papaparse_1 = require("papaparse");
|
|
51
51
|
const jimp_1 = require("jimp");
|
|
52
52
|
const lodash_camelcase_1 = __importDefault(require("lodash.camelcase"));
|
|
53
|
-
const placeImage_1 = require("./utils/placeImage");
|
|
54
|
-
const drawBoundingBox_1 = require("./utils/drawBoundingBox");
|
|
55
53
|
const lodash_concat_1 = __importDefault(require("lodash.concat"));
|
|
56
54
|
const canvas_1 = require("canvas");
|
|
57
55
|
const path_1 = __importDefault(require("path"));
|
|
58
|
-
const container_1 = require("./utils/container");
|
|
59
56
|
const utils_1 = require("./utils");
|
|
57
|
+
const types_1 = require("./types");
|
|
58
|
+
const lodash_merge_1 = __importDefault(require("lodash.merge"));
|
|
60
59
|
const DEFAULT_TEMPLATE_OPTIONS = {
|
|
61
60
|
height: 1050,
|
|
62
61
|
width: 750,
|
|
@@ -71,49 +70,111 @@ class Template {
|
|
|
71
70
|
const template = fn(this.shadowTemplate());
|
|
72
71
|
return template.render(entry);
|
|
73
72
|
});
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
this.container = (imagesFn, box, packingFn, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
|
|
74
|
+
const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_CONTAINER_OPTIONS, options);
|
|
75
|
+
if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
76
78
|
const images = yield imagesFn(entry);
|
|
77
|
-
|
|
79
|
+
const result = yield packingFn(box, this.shadowBackground(), images);
|
|
80
|
+
// debug mode
|
|
81
|
+
if (debugMode) {
|
|
82
|
+
const debugImage = yield (0, utils_1.drawBoundingBox)(box, this.backgroundSize);
|
|
83
|
+
return debugImage.composite(result);
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
78
86
|
}));
|
|
79
|
-
this.hbox = (imagesFn,
|
|
80
|
-
this.vbox = (imagesFn,
|
|
81
|
-
this.
|
|
82
|
-
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
87
|
+
this.hbox = (imagesFn, box, options) => this.container(imagesFn, box, (0, utils_1.hboxPackingFn)(options), options);
|
|
88
|
+
this.vbox = (imagesFn, box, options) => this.container(imagesFn, box, (0, utils_1.vboxPackingFn)(options), options);
|
|
89
|
+
this.grid = (imagesFn, box, options) => this.container(imagesFn, box, (0, utils_1.gridPackingFn)(options), options);
|
|
90
|
+
this.image = (ref, box, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
|
|
91
|
+
const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_IMAGE_LAYER_OPTIONS, { assetsPath: this.defaultAssetsPath }, options);
|
|
92
|
+
if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
const image = yield this.pathFromImageRef(entry, ref, mergedOptions);
|
|
96
|
+
const result = yield (0, utils_1.placeImage)({
|
|
86
97
|
image,
|
|
87
|
-
|
|
98
|
+
box,
|
|
99
|
+
backgroundSize: this.backgroundSize,
|
|
100
|
+
options: mergedOptions,
|
|
88
101
|
});
|
|
89
102
|
// debug mode
|
|
90
103
|
if (debugMode) {
|
|
91
|
-
const debugImage = yield (0,
|
|
92
|
-
width,
|
|
93
|
-
height,
|
|
94
|
-
});
|
|
104
|
+
const debugImage = yield (0, utils_1.drawBoundingBox)(box, this.backgroundSize);
|
|
95
105
|
return debugImage.composite(result);
|
|
96
106
|
}
|
|
97
107
|
return result;
|
|
98
108
|
}));
|
|
99
|
-
this.loadImage = (imagePath
|
|
100
|
-
|
|
101
|
-
const assetsPath = (_a = options === null || options === void 0 ? void 0 : options.assetsPath) !== null && _a !== void 0 ? _a : this.defaultAssetsPath;
|
|
102
|
-
const imageCompletePath = assetsPath
|
|
103
|
-
? path_1.default.join(assetsPath, imagePath)
|
|
104
|
-
: imagePath;
|
|
105
|
-
const image = (yield jimp_1.Jimp.read(imageCompletePath));
|
|
109
|
+
this.loadImage = (imagePath) => __awaiter(this, void 0, void 0, function* () {
|
|
110
|
+
const image = (yield jimp_1.Jimp.read(imagePath));
|
|
106
111
|
return image;
|
|
107
112
|
});
|
|
108
|
-
this.text = (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
this.text = (ref, box, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
|
|
114
|
+
const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_TEXT_LAYER_OPTIONS, {
|
|
115
|
+
font: {
|
|
116
|
+
family: this.defaultFontFamily,
|
|
117
|
+
},
|
|
118
|
+
}, options);
|
|
119
|
+
if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
const text = this.textFromTextRef(entry, ref);
|
|
123
|
+
const result = yield (0, utils_1.renderText)(text, box, this.backgroundSize, mergedOptions);
|
|
124
|
+
// debug mode
|
|
125
|
+
if (debugMode) {
|
|
126
|
+
const debugImage = yield (0, utils_1.drawBoundingBox)(box, this.backgroundSize);
|
|
127
|
+
return debugImage.composite(result);
|
|
128
|
+
}
|
|
129
|
+
return result;
|
|
116
130
|
}));
|
|
131
|
+
this.pathFromImageRef = (entry, ref, options) => __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
const pathSegments = [];
|
|
133
|
+
if (options.assetsPath) {
|
|
134
|
+
pathSegments.push(options.assetsPath);
|
|
135
|
+
}
|
|
136
|
+
if ('buffer' in ref) {
|
|
137
|
+
return this.loadImage(ref.buffer);
|
|
138
|
+
}
|
|
139
|
+
else if ('path' in ref) {
|
|
140
|
+
return this.loadImage(path_1.default.join(...pathSegments, ref.path));
|
|
141
|
+
}
|
|
142
|
+
else if ('absolutePath' in ref) {
|
|
143
|
+
return this.loadImage(ref.absolutePath);
|
|
144
|
+
}
|
|
145
|
+
else if ('key' in ref) {
|
|
146
|
+
const fileName = entry[ref.key];
|
|
147
|
+
return this.loadImage(path_1.default.join(...pathSegments, fileName));
|
|
148
|
+
}
|
|
149
|
+
else if ('pathFn' in ref) {
|
|
150
|
+
const fileName = ref.pathFn(entry);
|
|
151
|
+
return this.loadImage(path_1.default.join(...pathSegments, fileName));
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
throw new Error('Unknown ImageRef variant');
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
this.textFromTextRef = (entry, ref) => {
|
|
158
|
+
if ('key' in ref) {
|
|
159
|
+
return entry[ref.key];
|
|
160
|
+
}
|
|
161
|
+
else if ('text' in ref) {
|
|
162
|
+
return ref.text;
|
|
163
|
+
}
|
|
164
|
+
else if ('textFn' in ref) {
|
|
165
|
+
return ref.textFn(entry);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
throw new Error('Unknown TextRef variant');
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
this.shouldSkipLayerForEntry = (entry, options) => {
|
|
172
|
+
var _a;
|
|
173
|
+
if (typeof options.skip === 'function') {
|
|
174
|
+
return options.skip(entry);
|
|
175
|
+
}
|
|
176
|
+
return (_a = options.skip) !== null && _a !== void 0 ? _a : false;
|
|
177
|
+
};
|
|
117
178
|
this.background = new jimp_1.Jimp({
|
|
118
179
|
height: options.height,
|
|
119
180
|
width: options.width,
|
|
@@ -137,6 +198,12 @@ class Template {
|
|
|
137
198
|
height: this.background.height,
|
|
138
199
|
});
|
|
139
200
|
}
|
|
201
|
+
get backgroundSize() {
|
|
202
|
+
return {
|
|
203
|
+
width: this.background.width,
|
|
204
|
+
height: this.background.height,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
140
207
|
layer(fn) {
|
|
141
208
|
this.layers.push(fn);
|
|
142
209
|
return this;
|
|
@@ -153,11 +220,10 @@ class Template {
|
|
|
153
220
|
}
|
|
154
221
|
renderLayers(entry) {
|
|
155
222
|
return __awaiter(this, void 0, void 0, function* () {
|
|
156
|
-
|
|
223
|
+
const results = yield Promise.all(this.layers.map(layerFn => layerFn(entry, {
|
|
157
224
|
debugMode: this.debugMode,
|
|
158
|
-
width: this.background.width,
|
|
159
|
-
height: this.background.height,
|
|
160
225
|
})));
|
|
226
|
+
return results.filter(result => !!result);
|
|
161
227
|
});
|
|
162
228
|
}
|
|
163
229
|
render(entry, options) {
|
|
@@ -207,5 +273,4 @@ class Template {
|
|
|
207
273
|
}
|
|
208
274
|
}
|
|
209
275
|
exports.Template = Template;
|
|
210
|
-
// TODO: Ledger of actions applied to the image like a logging feed
|
|
211
276
|
//# sourceMappingURL=template.js.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/lib/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type BoundingBox = ({
|
|
2
|
+
top: number;
|
|
3
|
+
height: number;
|
|
4
|
+
} | {
|
|
5
|
+
bottom: number;
|
|
6
|
+
height: number;
|
|
7
|
+
} | {
|
|
8
|
+
top: number;
|
|
9
|
+
bottom: number;
|
|
10
|
+
}) & ({
|
|
11
|
+
left: number;
|
|
12
|
+
width: number;
|
|
13
|
+
} | {
|
|
14
|
+
right: number;
|
|
15
|
+
width: number;
|
|
16
|
+
} | {
|
|
17
|
+
left: number;
|
|
18
|
+
right: number;
|
|
19
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boundingBox.js","sourceRoot":"","sources":["../../../../src/lib/types/boundingBox.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* Defaults to `normal`
|
|
8
|
-
*/
|
|
9
|
-
justifyContent?: ContainerJustifyContent;
|
|
1
|
+
import { RequiredDeep } from 'type-fest';
|
|
2
|
+
import { BoundingBox } from './boundingBox';
|
|
3
|
+
import { ImageType } from './image';
|
|
4
|
+
import { ScaleMode } from './scale';
|
|
5
|
+
import { LayerOptions } from './layer';
|
|
6
|
+
export type ContainerOptions<EntryType extends Record<string, string>> = LayerOptions<EntryType> & {
|
|
10
7
|
/**
|
|
11
8
|
* This is treated as a minimum length of an unit of space
|
|
12
9
|
* between two items, but it can grow larger than it
|
|
@@ -14,29 +11,18 @@ export type ContainerOptions = {
|
|
|
14
11
|
* Defaults to 0
|
|
15
12
|
*/
|
|
16
13
|
gap?: number;
|
|
17
|
-
/**
|
|
18
|
-
* Defines how the items should be placed
|
|
19
|
-
* across the secondary direction of the container
|
|
20
|
-
*
|
|
21
|
-
* Defaults to `center`
|
|
22
|
-
*/
|
|
23
|
-
alignItems?: Alignment;
|
|
24
14
|
/**
|
|
25
15
|
* Defaults to `none`
|
|
26
16
|
*/
|
|
27
17
|
scale?: ScaleMode;
|
|
28
18
|
};
|
|
29
|
-
export
|
|
19
|
+
export declare const DEFAULT_CONTAINER_OPTIONS: RequiredDeep<ContainerOptions<Record<string, string>>>;
|
|
20
|
+
export type DirectionContainerOptions<EntryType extends Record<string, string>> = ContainerOptions<EntryType> & {
|
|
30
21
|
reversed?: boolean;
|
|
31
22
|
};
|
|
32
|
-
export declare const DEFAULT_DIRECTION_CONTAINER_OPTIONS: DirectionContainerOptions
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
*/
|
|
36
|
-
type ContainerJustifyContent = 'flex-start' | 'flex-end' | 'center' | 'space-evenly' | 'space-between' | 'space-around' | 'normal';
|
|
37
|
-
export type GridContainerOptions = ContainerOptions & {
|
|
38
|
-
rows?: number;
|
|
39
|
-
cols?: number;
|
|
23
|
+
export declare const DEFAULT_DIRECTION_CONTAINER_OPTIONS: RequiredDeep<DirectionContainerOptions<Record<string, string>>>;
|
|
24
|
+
export type GridContainerOptions<EntryType extends Record<string, string>> = ContainerOptions<EntryType> & {
|
|
25
|
+
size?: number;
|
|
40
26
|
/**
|
|
41
27
|
* Defines what is considered the main direction of the container.
|
|
42
28
|
* -> `rows` - the items would be placed to fill each row before starting the next
|
|
@@ -46,5 +32,5 @@ export type GridContainerOptions = ContainerOptions & {
|
|
|
46
32
|
*/
|
|
47
33
|
direction?: 'rows' | 'cols';
|
|
48
34
|
};
|
|
49
|
-
export
|
|
50
|
-
export
|
|
35
|
+
export declare const DEFAULT_GRID_CONTAINER_OPTIONS: RequiredDeep<GridContainerOptions<Record<string, string>>>;
|
|
36
|
+
export type PackingFn = (box: BoundingBox, background: ImageType, images: Array<ImageType>) => Promise<ImageType>;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_DIRECTION_CONTAINER_OPTIONS = exports.DEFAULT_CONTAINER_OPTIONS = void 0;
|
|
3
|
+
exports.DEFAULT_GRID_CONTAINER_OPTIONS = exports.DEFAULT_DIRECTION_CONTAINER_OPTIONS = exports.DEFAULT_CONTAINER_OPTIONS = void 0;
|
|
4
4
|
exports.DEFAULT_CONTAINER_OPTIONS = {
|
|
5
5
|
gap: 0,
|
|
6
6
|
justifyContent: 'normal',
|
|
7
7
|
alignItems: 'center',
|
|
8
8
|
scale: 'none',
|
|
9
|
+
skip: false,
|
|
9
10
|
};
|
|
10
|
-
// TODO: all required
|
|
11
11
|
exports.DEFAULT_DIRECTION_CONTAINER_OPTIONS = Object.assign(Object.assign({}, exports.DEFAULT_CONTAINER_OPTIONS), { reversed: false });
|
|
12
|
+
exports.DEFAULT_GRID_CONTAINER_OPTIONS = Object.assign(Object.assign({}, exports.DEFAULT_CONTAINER_OPTIONS), { size: 3, direction: 'rows' });
|
|
12
13
|
//# sourceMappingURL=containers.js.map
|
|
@@ -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":";;;AAsBa,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"}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { ScaleMode } from './scale';
|
|
2
|
+
export type JustifyContent = 'flex-start' | 'flex-end' | 'center' | 'space-evenly' | 'space-between' | 'space-around' | 'normal';
|
|
3
|
+
export type AlignItems = 'normal' | 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'self-start' | 'self-end' | 'baseline' | 'first baseline' | 'last baseline' | 'safe center' | 'unsafe center';
|
|
4
|
+
export declare const SCALE_MODE_TO_OBJECT_FIT: Record<ScaleMode, string>;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
exports.SCALE_MODE_TO_OBJECT_FIT = void 0;
|
|
4
|
+
exports.SCALE_MODE_TO_OBJECT_FIT = {
|
|
5
|
+
'keep-ratio': 'contain',
|
|
6
|
+
stretch: 'fill',
|
|
7
|
+
none: 'none',
|
|
8
|
+
};
|
|
6
9
|
//# sourceMappingURL=css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css.js","sourceRoot":"","sources":["../../../../src/lib/types/css.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"css.js","sourceRoot":"","sources":["../../../../src/lib/types/css.ts"],"names":[],"mappings":";;;AA2Ba,QAAA,wBAAwB,GAA8B;IAC/D,YAAY,EAAE,SAAS;IACvB,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,MAAM;CACf,CAAC"}
|
|
@@ -1,50 +1,29 @@
|
|
|
1
1
|
import { JimpInstance } from 'jimp';
|
|
2
|
-
import {
|
|
2
|
+
import { ScaleMode } from './scale';
|
|
3
|
+
import { LayerOptions } from './layer';
|
|
4
|
+
import { RequiredDeep } from 'type-fest';
|
|
3
5
|
export type ImageType = JimpInstance;
|
|
4
|
-
export type
|
|
5
|
-
|
|
6
|
-
path?: undefined;
|
|
6
|
+
export type ImageRef<EntryType extends Record<string, string>> = {
|
|
7
|
+
buffer: Buffer;
|
|
7
8
|
} | {
|
|
8
|
-
key?: undefined;
|
|
9
9
|
path: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
pathFn?: (path: string) => string;
|
|
10
|
+
} | {
|
|
11
|
+
absolutePath: string;
|
|
12
|
+
} | {
|
|
13
|
+
key: keyof EntryType;
|
|
14
|
+
} | {
|
|
15
|
+
pathFn: (entry: EntryType) => string;
|
|
17
16
|
};
|
|
18
|
-
export type
|
|
19
|
-
export type ImageAlignmentProps = {
|
|
20
|
-
/**
|
|
21
|
-
* Overridden by xAlignment and/or yAlignment if provided.
|
|
22
|
-
* default `center`
|
|
23
|
-
*/
|
|
24
|
-
alignment?: Alignment;
|
|
17
|
+
export type ImageLayerOptions<EntryType extends Record<string, string>> = LayerOptions<EntryType> & {
|
|
25
18
|
/**
|
|
26
|
-
*
|
|
19
|
+
* Base path for the assets. Overrides the more global property of the template `defaultAssetsPath`.
|
|
27
20
|
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* default `center`
|
|
31
|
-
*/
|
|
32
|
-
yAlignment?: Alignment;
|
|
33
|
-
};
|
|
34
|
-
export type Alignment = 'start' | 'center' | 'end';
|
|
35
|
-
export declare const DEFAULT_IMAGE_ALIGNMENT: Alignment;
|
|
36
|
-
/**
|
|
37
|
-
* Behavior of the content around a space
|
|
38
|
-
* that is bigger or smaller than necessary
|
|
39
|
-
* -> `none`: no scaling
|
|
40
|
-
* -> `keep-ration`: scale while preserving aspect ration
|
|
41
|
-
* -> `stretch`: scale without preserving aspect ration
|
|
42
|
-
*/
|
|
43
|
-
export type ScaleMode = 'none' | 'keep-ratio' | 'stretch';
|
|
44
|
-
export declare const DEFAULT_SCALE_MODE: ScaleMode;
|
|
45
|
-
export type ScaleProps = {
|
|
21
|
+
assetsPath?: string;
|
|
46
22
|
/**
|
|
47
23
|
* Defaults to `none`
|
|
48
24
|
*/
|
|
49
25
|
scale?: ScaleMode;
|
|
50
26
|
};
|
|
27
|
+
export declare const DEFAULT_IMAGE_LAYER_OPTIONS: RequiredDeep<ImageLayerOptions<Record<string, string>>>;
|
|
28
|
+
export type Alignment = 'start' | 'center' | 'end';
|
|
29
|
+
export declare const DEFAULT_IMAGE_ALIGNMENT: Alignment;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DEFAULT_IMAGE_ALIGNMENT = exports.DEFAULT_IMAGE_LAYER_OPTIONS = void 0;
|
|
4
|
+
exports.DEFAULT_IMAGE_LAYER_OPTIONS = {
|
|
5
|
+
justifyContent: 'center',
|
|
6
|
+
alignItems: 'center',
|
|
7
|
+
scale: 'none',
|
|
8
|
+
skip: false,
|
|
9
|
+
assetsPath: ''
|
|
10
|
+
};
|
|
4
11
|
exports.DEFAULT_IMAGE_ALIGNMENT = 'center';
|
|
5
|
-
exports.DEFAULT_SCALE_MODE = 'none';
|
|
6
12
|
//# sourceMappingURL=image.js.map
|
|
@@ -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":";;;AA8Ba,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;AAIW,QAAA,uBAAuB,GAAc,QAAQ,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './size';
|
|
2
2
|
export * from './containers';
|
|
3
3
|
export * from './image';
|
|
4
|
-
export * from './omitArgument';
|
|
5
4
|
export * from './render';
|
|
6
5
|
export * from './replacement';
|
|
7
6
|
export * from './scale';
|
|
8
7
|
export * from './text';
|
|
8
|
+
export * from './boundingBox';
|
|
9
9
|
export * from './css';
|
|
10
|
+
export * from './layer';
|
|
@@ -14,13 +14,14 @@ 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("./
|
|
17
|
+
__exportStar(require("./size"), exports);
|
|
18
18
|
__exportStar(require("./containers"), exports);
|
|
19
19
|
__exportStar(require("./image"), exports);
|
|
20
|
-
__exportStar(require("./omitArgument"), exports);
|
|
21
20
|
__exportStar(require("./render"), exports);
|
|
22
21
|
__exportStar(require("./replacement"), exports);
|
|
23
22
|
__exportStar(require("./scale"), exports);
|
|
24
23
|
__exportStar(require("./text"), exports);
|
|
24
|
+
__exportStar(require("./boundingBox"), exports);
|
|
25
25
|
__exportStar(require("./css"), exports);
|
|
26
|
+
__exportStar(require("./layer"), exports);
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
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"}
|