@hellkite/pipkin 0.4.1 → 0.5.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.
Files changed (38) hide show
  1. package/build/src/lib/template.js +7 -6
  2. package/build/src/lib/template.js.map +1 -1
  3. package/build/src/lib/types/2d.d.ts +0 -2
  4. package/build/src/lib/types/2d.js +0 -5
  5. package/build/src/lib/types/2d.js.map +1 -1
  6. package/build/src/lib/types/containers.d.ts +10 -25
  7. package/build/src/lib/types/containers.js +5 -5
  8. package/build/src/lib/types/containers.js.map +1 -1
  9. package/build/src/lib/types/css.d.ts +1 -0
  10. package/build/src/lib/types/css.js +6 -0
  11. package/build/src/lib/types/css.js.map +1 -0
  12. package/build/src/lib/types/index.d.ts +1 -0
  13. package/build/src/lib/types/index.js +1 -0
  14. package/build/src/lib/types/index.js.map +1 -1
  15. package/build/src/lib/types/text.d.ts +7 -5
  16. package/build/src/lib/types/text.js +5 -4
  17. package/build/src/lib/types/text.js.map +1 -1
  18. package/build/src/lib/utils/container.js +68 -104
  19. package/build/src/lib/utils/container.js.map +1 -1
  20. package/build/src/lib/utils/index.d.ts +1 -1
  21. package/build/src/lib/utils/index.js +1 -1
  22. package/build/src/lib/utils/index.js.map +1 -1
  23. package/build/src/lib/utils/renderText.d.ts +2 -0
  24. package/build/src/lib/utils/renderText.js +90 -0
  25. package/build/src/lib/utils/renderText.js.map +1 -0
  26. package/build/src/test.js +54 -7
  27. package/build/src/test.js.map +1 -1
  28. package/package.json +6 -2
  29. package/src/lib/template.ts +10 -11
  30. package/src/lib/types/2d.ts +0 -5
  31. package/src/lib/types/containers.ts +22 -33
  32. package/src/lib/types/css.ts +1 -0
  33. package/src/lib/types/index.ts +1 -0
  34. package/src/lib/types/text.ts +21 -7
  35. package/src/lib/utils/container.ts +72 -169
  36. package/src/lib/utils/index.ts +1 -1
  37. package/src/lib/utils/renderText.ts +110 -0
  38. package/src/lib/utils/enhanceTextbox.ts +0 -144
@@ -53,11 +53,10 @@ const lodash_camelcase_1 = __importDefault(require("lodash.camelcase"));
53
53
  const placeImage_1 = require("./utils/placeImage");
54
54
  const drawBoundingBox_1 = require("./utils/drawBoundingBox");
55
55
  const lodash_concat_1 = __importDefault(require("lodash.concat"));
56
- const fabric = __importStar(require("fabric/node"));
57
56
  const canvas_1 = require("canvas");
58
- const enhanceTextbox_1 = require("./utils/enhanceTextbox");
59
57
  const path_1 = __importDefault(require("path"));
60
58
  const container_1 = require("./utils/container");
59
+ const utils_1 = require("./utils");
61
60
  const DEFAULT_TEMPLATE_OPTIONS = {
62
61
  height: 1050,
63
62
  width: 750,
@@ -72,14 +71,13 @@ class Template {
72
71
  const template = fn(this.shadowTemplate());
73
72
  return template.render(entry);
74
73
  });
74
+ // TODO: logic for rendering debug helpers
75
75
  this.container = (imagesFn, packingFn) => this.layer((entry) => __awaiter(this, void 0, void 0, function* () {
76
76
  const images = yield imagesFn(entry);
77
77
  return packingFn(this.shadowBackground(), images);
78
78
  }));
79
79
  this.hbox = (imagesFn, position, options) => this.container(imagesFn, (0, container_1.hboxPackingFn)(position, options));
80
80
  this.vbox = (imagesFn, position, options) => this.container(imagesFn, (0, container_1.vboxPackingFn)(position, options));
81
- // grid = (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>): this =>
82
- // this.container(imagesFn, gridPackingFn(position, options));
83
81
  this.image = ({ key, path, position, options, }) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode, width, height }) {
84
82
  const imagePath = path !== null && path !== void 0 ? path : ((options === null || options === void 0 ? void 0 : options.pathFn) ? options.pathFn(entry[key]) : entry[key]);
85
83
  const image = yield this.loadImage(imagePath, options);
@@ -110,8 +108,11 @@ class Template {
110
108
  this.text = ({ key, position, options }) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode, width, height }) {
111
109
  var _b, _c, _d;
112
110
  const text = entry[key];
113
- const canvas = new fabric.Canvas(undefined, { width, height });
114
- return (0, enhanceTextbox_1.enhanceTextbox)(text, canvas, (_d = (_c = (_b = options === null || options === void 0 ? void 0 : options.font) === null || _b === void 0 ? void 0 : _b.family) !== null && _c !== void 0 ? _c : this.defaultFontFamily) !== null && _d !== void 0 ? _d : 'Arial', debugMode, position, options);
111
+ const fontFamily = (_d = (_c = (_b = options === null || options === void 0 ? void 0 : options.font) === null || _b === void 0 ? void 0 : _b.family) !== null && _c !== void 0 ? _c : this.defaultFontFamily) !== null && _d !== void 0 ? _d : 'Arial';
112
+ return (0, utils_1.renderText)(text, position, {
113
+ width,
114
+ height,
115
+ }, Object.assign(Object.assign({}, options), { font: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.font), { family: fontFamily }) }));
115
116
  }));
116
117
  this.background = new jimp_1.Jimp({
117
118
  height: options.height,
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/lib/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/lib/template.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,3 @@ export type Size = {
7
7
  height: number;
8
8
  };
9
9
  export type BoundingBox = Point & Size;
10
- export declare const toPoint: (x: number, y: number) => Point;
11
- export declare const toSize: (w: number, h: number) => Size;
@@ -1,8 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toSize = exports.toPoint = void 0;
4
- const toPoint = (x, y) => ({ x, y });
5
- exports.toPoint = toPoint;
6
- const toSize = (w, h) => ({ width: w, height: h });
7
- exports.toSize = toSize;
8
3
  //# sourceMappingURL=2d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"2d.js","sourceRoot":"","sources":["../../../../src/lib/types/2d.ts"],"names":[],"mappings":";;;AAaO,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAAtD,QAAA,OAAO,WAA+C;AAE5D,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAAnE,QAAA,MAAM,UAA6D"}
1
+ {"version":3,"file":"2d.js","sourceRoot":"","sources":["../../../../src/lib/types/2d.ts"],"names":[],"mappings":""}
@@ -4,9 +4,9 @@ export type ContainerOptions = {
4
4
  /**
5
5
  * Setting a non-default value for justify will cause the alignment to be ignored.
6
6
  *
7
- * Defaults to `no-space`
7
+ * Defaults to `normal`
8
8
  */
9
- justify?: ContainerJustify;
9
+ justifyContent?: ContainerJustifyContent;
10
10
  /**
11
11
  * This is treated as a minimum length of an unit of space
12
12
  * between two items, but it can grow larger than it
@@ -14,41 +14,26 @@ export type ContainerOptions = {
14
14
  * Defaults to 0
15
15
  */
16
16
  gap?: number;
17
- /**
18
- * Render items that do not fit in the container outside of
19
- * its bounding box
20
- *
21
- * Defaults to false
22
- */
23
- overflow?: boolean;
24
- /**
25
- * Defines how the items should be placed
26
- * across the main direction of the container
27
- *
28
- * Defaults to `center`
29
- */
30
- alignment?: Alignment;
31
17
  /**
32
18
  * Defines how the items should be placed
33
19
  * across the secondary direction of the container
34
20
  *
35
21
  * Defaults to `center`
36
22
  */
37
- centering?: Alignment;
23
+ alignItems?: Alignment;
38
24
  /**
39
25
  * Defaults to `none`
40
26
  */
41
27
  scale?: ScaleMode;
42
28
  };
43
- export type DirectionContainerOptions = ContainerOptions;
29
+ export type DirectionContainerOptions = ContainerOptions & {
30
+ reversed?: boolean;
31
+ };
32
+ export declare const DEFAULT_DIRECTION_CONTAINER_OPTIONS: DirectionContainerOptions;
44
33
  /**
45
- * Defines how the remaining space be used
46
- * -> `space-evenly` - around each item is a pair of equal units of space
47
- * -> `space-between` - between each 2 items there is a single units of space
48
- * -> `space-around` - around each item is a unique pair of equal units of space
49
- * -> `no-space` - no space
34
+ * Same as CSS justify-content property
50
35
  */
51
- type ContainerJustify = 'space-evenly' | 'space-between' | 'space-around' | 'no-space';
36
+ type ContainerJustifyContent = 'flex-start' | 'flex-end' | 'center' | 'space-evenly' | 'space-between' | 'space-around' | 'normal';
52
37
  export type GridContainerOptions = ContainerOptions & {
53
38
  rows?: number;
54
39
  cols?: number;
@@ -61,5 +46,5 @@ export type GridContainerOptions = ContainerOptions & {
61
46
  */
62
47
  direction?: 'rows' | 'cols';
63
48
  };
64
- export type PackingFn = (background: ImageType, images: Array<ImageType>) => ImageType;
49
+ export type PackingFn = (background: ImageType, images: Array<ImageType>) => Promise<ImageType>;
65
50
  export {};
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_CONTAINER_OPTIONS = void 0;
3
+ exports.DEFAULT_DIRECTION_CONTAINER_OPTIONS = exports.DEFAULT_CONTAINER_OPTIONS = void 0;
4
4
  exports.DEFAULT_CONTAINER_OPTIONS = {
5
5
  gap: 0,
6
- overflow: false,
7
- justify: 'no-space',
8
- alignment: 'center',
9
- centering: 'center',
6
+ justifyContent: 'normal',
7
+ alignItems: 'center',
10
8
  scale: 'none',
11
9
  };
10
+ // TODO: all required
11
+ exports.DEFAULT_DIRECTION_CONTAINER_OPTIONS = Object.assign(Object.assign({}, exports.DEFAULT_CONTAINER_OPTIONS), { reversed: false });
12
12
  //# sourceMappingURL=containers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../src/lib/types/containers.ts"],"names":[],"mappings":";;;AAEa,QAAA,yBAAyB,GAA+B;IACjE,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,KAAK,EAAE,MAAM;CAChB,CAAC"}
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../src/lib/types/containers.ts"],"names":[],"mappings":";;;AAEa,QAAA,yBAAyB,GAA+B;IACjE,GAAG,EAAE,CAAC;IACN,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;CAChB,CAAC;AAoCF,qBAAqB;AACR,QAAA,mCAAmC,mCACzC,iCAAyB,KAC5B,QAAQ,EAAE,KAAK,IAClB"}
@@ -0,0 +1 @@
1
+ export declare const toPx: (value: number) => string;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toPx = void 0;
4
+ const toPx = (value) => `${value}px`;
5
+ exports.toPx = toPx;
6
+ //# sourceMappingURL=css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css.js","sourceRoot":"","sources":["../../../../src/lib/types/css.ts"],"names":[],"mappings":";;;AAAO,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC;AAA/C,QAAA,IAAI,QAA2C"}
@@ -6,3 +6,4 @@ export * from './render';
6
6
  export * from './replacement';
7
7
  export * from './scale';
8
8
  export * from './text';
9
+ export * from './css';
@@ -22,4 +22,5 @@ __exportStar(require("./render"), exports);
22
22
  __exportStar(require("./replacement"), exports);
23
23
  __exportStar(require("./scale"), exports);
24
24
  __exportStar(require("./text"), exports);
25
+ __exportStar(require("./css"), exports);
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAAqB;AACrB,+CAA6B;AAC7B,0CAAwB;AACxB,iDAA+B;AAC/B,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAAqB;AACrB,+CAA6B;AAC7B,0CAAwB;AACxB,iDAA+B;AAC/B,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,yCAAuB;AACvB,wCAAsB"}
@@ -27,12 +27,14 @@ export type TextLayerOptions = {
27
27
  };
28
28
  color?: string;
29
29
  replacement?: ReplacementMap;
30
- };
31
- export type TextPosition = TextAlignmentProps & BoundingBox;
32
- export type TextAlignmentProps = {
33
30
  /**
34
31
  * default `center`
35
32
  */
36
- textAlign?: 'left' | 'center' | 'right' | 'justify' | 'justify-left' | 'justify-center' | 'justify-right';
33
+ xAlign?: 'left' | 'center' | 'right' | 'justify' | 'justify-left' | 'justify-center' | 'justify-right';
34
+ /**
35
+ * default `center`
36
+ */
37
+ yAlign?: 'left' | 'center' | 'right' | 'justify' | 'justify-left' | 'justify-center' | 'justify-right';
37
38
  };
38
- export declare const DEFAULT_TEXT_ALIGNMENT_PROPS: Required<TextAlignmentProps>;
39
+ export type TextPosition = BoundingBox;
40
+ export declare const DEFAULT_TEXT_LAYER_OPTIONS: TextLayerOptions;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_TEXT_ALIGNMENT_PROPS = void 0;
4
- ;
5
- exports.DEFAULT_TEXT_ALIGNMENT_PROPS = {
6
- textAlign: 'center',
3
+ exports.DEFAULT_TEXT_LAYER_OPTIONS = void 0;
4
+ // TODO: all required
5
+ exports.DEFAULT_TEXT_LAYER_OPTIONS = {
6
+ xAlign: 'center',
7
+ yAlign: 'center',
7
8
  };
8
9
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/lib/types/text.ts"],"names":[],"mappings":";;;AAOE,CAAC;AA2CU,QAAA,4BAA4B,GAAiC;IACtE,SAAS,EAAE,QAAQ;CACtB,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/lib/types/text.ts"],"names":[],"mappings":";;;AA8DA,qBAAqB;AACR,QAAA,0BAA0B,GAAqB;IACxD,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACnB,CAAC"}
@@ -1,8 +1,23 @@
1
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
2
14
  Object.defineProperty(exports, "__esModule", { value: true });
3
15
  exports.hboxPackingFn = exports.vboxPackingFn = void 0;
4
- const _2d_1 = require("../types/2d");
5
16
  const containers_1 = require("../types/containers");
17
+ const virtual_dom_1 = require("virtual-dom");
18
+ const node_html_to_image_1 = __importDefault(require("node-html-to-image"));
19
+ const jimp_1 = require("jimp");
20
+ const types_1 = require("../types");
6
21
  const vboxPackingFn = (position, options) => (background, images) => directionalPackingFn({
7
22
  isVertical: true,
8
23
  background,
@@ -19,108 +34,57 @@ const hboxPackingFn = (position, options) => (background, images) => directional
19
34
  options,
20
35
  });
21
36
  exports.hboxPackingFn = hboxPackingFn;
22
- const directionalPackingFn = ({ isVertical, background, images, position, options, }) => {
23
- const imagesToRender = computeImagesToRender(isVertical, images, position, options);
24
- const renderingCoordinates = computeRenderCoordinatesForImages(isVertical, imagesToRender, position, options);
25
- for (let index = 0; index < Math.min(imagesToRender.length, renderingCoordinates.length); index++) {
26
- const image = imagesToRender[index];
27
- const coordinate = renderingCoordinates[index];
28
- background.composite(image, coordinate.x, coordinate.y);
29
- }
30
- return background;
31
- };
32
- // export const gridPackingFn = (
33
- // background: ImageType,
34
- // images: Array<ImageType>,
35
- // position: BoundingBox,
36
- // options?: GridContainerOptions,
37
- // ): Promise<ImageType> => {
38
- // // TODO: implement
39
- // };
40
- const mainCoordinateFn = (item, isVertical) => (isVertical ? item.y : item.x);
41
- const secondaryCoordinateFn = (item, isVertical) => mainCoordinateFn(item, !isVertical);
42
- const mainSizeFn = (item, isVertical) => (isVertical ? item.height : item.width);
43
- const secondarySizeFn = (item, isVertical) => mainSizeFn(item, !isVertical);
44
- const computeImagesToRender = (isVertical, images, position, options) => {
45
- var _a, _b, _c;
46
- const gap = (_a = options === null || options === void 0 ? void 0 : options.gap) !== null && _a !== void 0 ? _a : containers_1.DEFAULT_CONTAINER_OPTIONS.gap;
47
- const scale = (_b = options === null || options === void 0 ? void 0 : options.scale) !== null && _b !== void 0 ? _b : containers_1.DEFAULT_CONTAINER_OPTIONS.scale;
48
- if (scale !== 'none') {
49
- // TODO: if there are too many gaps, there might still be overflow
50
- // TODO: scale images
51
- return images;
52
- }
53
- const totalSize = images.reduce((acc, image) => acc + mainSizeFn(image, isVertical), 0) +
54
- (images.length - 1) * gap;
55
- const shouldOverflow = (_c = options === null || options === void 0 ? void 0 : options.overflow) !== null && _c !== void 0 ? _c : containers_1.DEFAULT_CONTAINER_OPTIONS.overflow;
56
- const isOverflowing = totalSize > mainSizeFn(position, isVertical) && shouldOverflow;
57
- if (!isOverflowing) {
58
- return images;
59
- }
60
- // TODO: if scaling is enabled, return all scaled down (or up)
61
- const imagesToRender = [];
62
- let currentSize = 0;
63
- for (const image of images) {
64
- if (currentSize + mainSizeFn(image, isVertical) + gap >
65
- mainSizeFn(position, isVertical)) {
66
- return imagesToRender;
67
- }
68
- imagesToRender.push(image);
69
- currentSize += mainSizeFn(image, isVertical) + gap;
70
- }
71
- return imagesToRender;
72
- };
73
- const computeRenderCoordinatesForImages = (isVertical, images, position, options) => {
74
- var _a, _b, _c, _d;
75
- const justify = (_a = options === null || options === void 0 ? void 0 : options.justify) !== null && _a !== void 0 ? _a : containers_1.DEFAULT_CONTAINER_OPTIONS.justify;
76
- const alignment = (_b = options === null || options === void 0 ? void 0 : options.alignment) !== null && _b !== void 0 ? _b : containers_1.DEFAULT_CONTAINER_OPTIONS.alignment;
77
- const centering = (_c = options === null || options === void 0 ? void 0 : options.centering) !== null && _c !== void 0 ? _c : containers_1.DEFAULT_CONTAINER_OPTIONS.centering;
78
- const gap = (_d = options === null || options === void 0 ? void 0 : options.gap) !== null && _d !== void 0 ? _d : containers_1.DEFAULT_CONTAINER_OPTIONS.gap;
79
- // TODO: move main coordinate computation to its own function
80
- // justify?: ContainerJustify;
81
- if (justify !== 'no-space') {
82
- // TODO: handle this without alignment
83
- }
84
- // compute main axis coordinates
85
- const mainCoordinatesInBoundingBox = [];
86
- let currentMainCoordinate = 0;
87
- for (const image of images) {
88
- mainCoordinatesInBoundingBox.push(currentMainCoordinate);
89
- currentMainCoordinate += mainSizeFn(image, isVertical) + gap;
90
- }
91
- const totalMainSize = Math.max(currentMainCoordinate - gap, 0);
92
- let mainCoordinateOffset = mainCoordinateFn(position, isVertical);
93
- if (alignment === 'center') {
94
- mainCoordinateOffset +=
95
- (mainSizeFn(position, isVertical) - totalMainSize) / 2;
96
- }
97
- else if (alignment === 'end') {
98
- mainCoordinateOffset +=
99
- mainSizeFn(position, isVertical) - totalMainSize;
100
- }
101
- const mainCoordinates = mainCoordinatesInBoundingBox.map(coordinate => coordinate + mainCoordinateOffset);
102
- // compute secondary axis coordinates
103
- const secondaryCoordinates = [];
104
- for (const image of images) {
105
- const secondarySize = secondarySizeFn(image, isVertical);
106
- let secondaryCoordinateOffset = secondaryCoordinateFn(position, isVertical);
107
- if (centering === 'center') {
108
- secondaryCoordinateOffset +=
109
- (secondarySizeFn(position, isVertical) - secondarySize) / 2;
110
- }
111
- else if (centering === 'end') {
112
- secondaryCoordinateOffset +=
113
- secondarySizeFn(position, isVertical) - secondarySize;
114
- }
115
- secondaryCoordinates.push(secondaryCoordinateOffset);
116
- }
117
- // compute rendering coordinates for each image
118
- const coordinates = [];
119
- for (let index = 0; index < Math.min(mainCoordinates.length, secondaryCoordinates.length); index++) {
120
- coordinates.push(isVertical
121
- ? (0, _2d_1.toPoint)(mainCoordinates[index], secondaryCoordinates[index])
122
- : (0, _2d_1.toPoint)(secondaryCoordinates[index], mainCoordinates[index]));
123
- }
124
- return coordinates;
37
+ const directionalPackingFn = (_a) => __awaiter(void 0, [_a], void 0, function* ({ isVertical, background, images, position, options, }) {
38
+ var _b, _c, _d, _e;
39
+ const objectFit = SCALE_MODE_TO_OBJECT_FIT[(_b = options === null || options === void 0 ? void 0 : options.scale) !== null && _b !== void 0 ? _b : 'none'];
40
+ const children = yield Promise.all(images.map((image) => __awaiter(void 0, void 0, void 0, function* () {
41
+ const imageBase64 = yield image.getBase64('image/png');
42
+ return (0, virtual_dom_1.h)('img', {
43
+ style: {
44
+ objectFit,
45
+ flex: '1 1 auto',
46
+ minWidth: 0,
47
+ minHeight: 0,
48
+ maxWidth: '100%',
49
+ maxHeight: '100%',
50
+ },
51
+ src: imageBase64,
52
+ }, []);
53
+ })));
54
+ const document = (0, virtual_dom_1.h)('div', {
55
+ style: {
56
+ display: 'flex',
57
+ position: 'absolute',
58
+ scale: 1,
59
+ flexDirection: `${isVertical ? 'column' : 'row'}${(options === null || options === void 0 ? void 0 : options.reversed) ? '-reversed' : ''}`,
60
+ gap: (0, types_1.toPx)((_c = options === null || options === void 0 ? void 0 : options.gap) !== null && _c !== void 0 ? _c : 0),
61
+ // TODO: merge options and defaults
62
+ justifyContent: (_d = options === null || options === void 0 ? void 0 : options.justifyContent) !== null && _d !== void 0 ? _d : containers_1.DEFAULT_DIRECTION_CONTAINER_OPTIONS.justifyContent,
63
+ alignItems: (_e = options === null || options === void 0 ? void 0 : options.alignItems) !== null && _e !== void 0 ? _e : containers_1.DEFAULT_DIRECTION_CONTAINER_OPTIONS.alignItems,
64
+ top: (0, types_1.toPx)(position.y),
65
+ left: (0, types_1.toPx)(position.x),
66
+ height: (0, types_1.toPx)(position.height),
67
+ width: (0, types_1.toPx)(position.width),
68
+ },
69
+ }, children);
70
+ const rootNode = (0, virtual_dom_1.create)(document);
71
+ // TODO: extract this in a dif function
72
+ const image = yield (0, node_html_to_image_1.default)({
73
+ html: rootNode.toString(),
74
+ transparent: true,
75
+ type: 'png',
76
+ puppeteerArgs: {
77
+ defaultViewport: {
78
+ width: background.width,
79
+ height: background.height,
80
+ },
81
+ },
82
+ });
83
+ return jimp_1.Jimp.read(image);
84
+ });
85
+ const SCALE_MODE_TO_OBJECT_FIT = {
86
+ 'keep-ratio': 'contain',
87
+ stretch: 'fill',
88
+ none: 'none',
125
89
  };
126
90
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/lib/utils/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/lib/utils/container.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@ export * from './buildFontString';
2
2
  export * from './canvasToImage';
3
3
  export * from './container';
4
4
  export * from './drawBoundingBox';
5
- export * from './enhanceTextbox';
6
5
  export * from './placeImage';
6
+ export * from './renderText';
@@ -18,6 +18,6 @@ __exportStar(require("./buildFontString"), exports);
18
18
  __exportStar(require("./canvasToImage"), exports);
19
19
  __exportStar(require("./container"), exports);
20
20
  __exportStar(require("./drawBoundingBox"), exports);
21
- __exportStar(require("./enhanceTextbox"), exports);
22
21
  __exportStar(require("./placeImage"), exports);
22
+ __exportStar(require("./renderText"), exports);
23
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,kDAAgC;AAChC,8CAA4B;AAC5B,oDAAkC;AAClC,mDAAiC;AACjC,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,kDAAgC;AAChC,8CAA4B;AAC5B,oDAAkC;AAClC,+CAA6B;AAC7B,+CAA6B"}
@@ -0,0 +1,2 @@
1
+ import { ImageType, Size, TextLayerOptions, TextPosition } from '../types';
2
+ export declare const renderText: (text: string, position: TextPosition, backgroundSize: Size, options?: TextLayerOptions) => Promise<ImageType>;
@@ -0,0 +1,90 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.renderText = void 0;
16
+ const virtual_dom_1 = require("virtual-dom");
17
+ const types_1 = require("../types");
18
+ const node_html_to_image_1 = __importDefault(require("node-html-to-image"));
19
+ const jimp_1 = require("jimp");
20
+ const renderText = (text, position, backgroundSize, options) => __awaiter(void 0, void 0, void 0, function* () {
21
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
22
+ let textChildren = [text];
23
+ for (const [word, image] of Object.entries((_a = options === null || options === void 0 ? void 0 : options.replacement) !== null && _a !== void 0 ? _a : {})) {
24
+ const regex = new RegExp(word, 'gi');
25
+ const imageBase64 = yield image.getBase64('image/png');
26
+ let tmpChildren = [];
27
+ for (const textSegment of textChildren) {
28
+ if (typeof textSegment !== 'string') {
29
+ continue;
30
+ }
31
+ const parts = textSegment.split(regex);
32
+ for (let index = 0; index < parts.length; index++) {
33
+ if (index > 0) {
34
+ tmpChildren.push((0, virtual_dom_1.h)('img', {
35
+ style: {
36
+ display: 'inline',
37
+ verticalAlign: 'middle',
38
+ height: (0, types_1.toPx)((_c = (_b = options === null || options === void 0 ? void 0 : options.font) === null || _b === void 0 ? void 0 : _b.size) !== null && _c !== void 0 ? _c : 28), // TODO: use constant
39
+ width: 'auto',
40
+ },
41
+ src: imageBase64,
42
+ }, []));
43
+ }
44
+ tmpChildren.push(parts[index]);
45
+ }
46
+ }
47
+ textChildren = tmpChildren;
48
+ }
49
+ const document = (0, virtual_dom_1.h)('div', {
50
+ style: {
51
+ display: 'flex',
52
+ overflow: 'visible',
53
+ position: 'absolute',
54
+ top: (0, types_1.toPx)(position.y),
55
+ left: (0, types_1.toPx)(position.x),
56
+ height: (0, types_1.toPx)(position.height),
57
+ width: (0, types_1.toPx)(position.width),
58
+ justifyContent: (_d = options === null || options === void 0 ? void 0 : options.xAlign) !== null && _d !== void 0 ? _d : types_1.DEFAULT_TEXT_LAYER_OPTIONS.xAlign,
59
+ alignItems: (_e = options === null || options === void 0 ? void 0 : options.yAlign) !== null && _e !== void 0 ? _e : types_1.DEFAULT_TEXT_LAYER_OPTIONS.yAlign,
60
+ },
61
+ }, [
62
+ (0, virtual_dom_1.h)('div', {
63
+ style: {
64
+ overflow: 'visible',
65
+ overflowWrap: 'word-wrap',
66
+ whiteSpace: 'normal',
67
+ color: options === null || options === void 0 ? void 0 : options.color,
68
+ fontFamily: (_f = options === null || options === void 0 ? void 0 : options.font) === null || _f === void 0 ? void 0 : _f.family,
69
+ fontSize: (_g = options === null || options === void 0 ? void 0 : options.font) === null || _g === void 0 ? void 0 : _g.size,
70
+ fontStyle: ((_h = options === null || options === void 0 ? void 0 : options.font) === null || _h === void 0 ? void 0 : _h.italic) ? 'italic' : undefined,
71
+ fontWeight: ((_j = options === null || options === void 0 ? void 0 : options.font) === null || _j === void 0 ? void 0 : _j.bold) ? 'bold' : undefined,
72
+ },
73
+ }, textChildren),
74
+ ]);
75
+ const rootNode = (0, virtual_dom_1.create)(document);
76
+ const image = yield (0, node_html_to_image_1.default)({
77
+ html: rootNode.toString(),
78
+ transparent: true,
79
+ type: 'png',
80
+ puppeteerArgs: {
81
+ defaultViewport: {
82
+ width: backgroundSize.width,
83
+ height: backgroundSize.height,
84
+ },
85
+ },
86
+ });
87
+ return jimp_1.Jimp.read(image);
88
+ });
89
+ exports.renderText = renderText;
90
+ //# sourceMappingURL=renderText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderText.js","sourceRoot":"","sources":["../../../../src/lib/utils/renderText.ts"],"names":[],"mappings":"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"}