@hellkite/pipkin 0.6.2 → 0.8.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 (64) hide show
  1. package/build/src/lib/replacement.d.ts +5 -3
  2. package/build/src/lib/replacement.js +6 -3
  3. package/build/src/lib/replacement.js.map +1 -1
  4. package/build/src/lib/template.d.ts +18 -26
  5. package/build/src/lib/template.js +197 -70
  6. package/build/src/lib/template.js.map +1 -1
  7. package/build/src/lib/types/containers.d.ts +14 -2
  8. package/build/src/lib/types/containers.js +2 -7
  9. package/build/src/lib/types/containers.js.map +1 -1
  10. package/build/src/lib/types/hypernode.d.ts +2 -0
  11. package/build/src/lib/types/hypernode.js +3 -0
  12. package/build/src/lib/types/hypernode.js.map +1 -0
  13. package/build/src/lib/types/image.d.ts +11 -5
  14. package/build/src/lib/types/image.js +2 -7
  15. package/build/src/lib/types/image.js.map +1 -1
  16. package/build/src/lib/types/index.d.ts +2 -0
  17. package/build/src/lib/types/index.js +2 -0
  18. package/build/src/lib/types/index.js.map +1 -1
  19. package/build/src/lib/types/layer.d.ts +6 -0
  20. package/build/src/lib/types/layer.js +7 -0
  21. package/build/src/lib/types/layer.js.map +1 -1
  22. package/build/src/lib/types/replacement.d.ts +2 -2
  23. package/build/src/lib/types/template.d.ts +13 -0
  24. package/build/src/lib/types/template.js +10 -0
  25. package/build/src/lib/types/template.js.map +1 -0
  26. package/build/src/lib/types/text.d.ts +9 -4
  27. package/build/src/lib/types/text.js +3 -10
  28. package/build/src/lib/types/text.js.map +1 -1
  29. package/build/src/lib/utils/container.js +10 -45
  30. package/build/src/lib/utils/container.js.map +1 -1
  31. package/build/src/lib/utils/htmlToImage.d.ts +2 -3
  32. package/build/src/lib/utils/htmlToImage.js.map +1 -1
  33. package/build/src/lib/utils/index.d.ts +1 -3
  34. package/build/src/lib/utils/index.js +1 -3
  35. package/build/src/lib/utils/index.js.map +1 -1
  36. package/build/src/lib/utils/placeBoundingBox.d.ts +2 -0
  37. package/build/src/lib/utils/placeBoundingBox.js +21 -0
  38. package/build/src/lib/utils/placeBoundingBox.js.map +1 -0
  39. package/build/src/lib/utils/placeImage.d.ts +7 -6
  40. package/build/src/lib/utils/placeImage.js +20 -20
  41. package/build/src/lib/utils/placeImage.js.map +1 -1
  42. package/build/src/lib/utils/placeText.d.ts +14 -0
  43. package/build/src/lib/utils/placeText.js +69 -0
  44. package/build/src/lib/utils/placeText.js.map +1 -0
  45. package/build/src/test.js +87 -15
  46. package/build/src/test.js.map +1 -1
  47. package/package.json +3 -1
  48. package/roadmap.md +3 -1
  49. package/src/lib/replacement.ts +6 -5
  50. package/src/lib/template.ts +336 -114
  51. package/src/lib/types/containers.ts +24 -8
  52. package/src/lib/types/hypernode.ts +4 -0
  53. package/src/lib/types/image.ts +20 -9
  54. package/src/lib/types/index.ts +2 -0
  55. package/src/lib/types/layer.ts +15 -0
  56. package/src/lib/types/replacement.ts +2 -2
  57. package/src/lib/types/template.ts +22 -0
  58. package/src/lib/types/text.ts +16 -12
  59. package/src/lib/utils/container.ts +13 -70
  60. package/src/lib/utils/htmlToImage.ts +3 -3
  61. package/src/lib/utils/index.ts +1 -3
  62. package/src/lib/utils/{drawBoundingBox.ts → placeBoundingBox.ts} +3 -9
  63. package/src/lib/utils/placeImage.ts +0 -62
  64. package/src/lib/utils/renderText.ts +0 -107
@@ -1 +1 @@
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
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/lib/types/image.ts"],"names":[],"mappings":";;;AAEA,mCAA8D;AAmCjD,QAAA,2BAA2B,mCAGjC,6BAAqB,KACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,EAAE,IAChB;AAQW,QAAA,uBAAuB,GAAc,QAAQ,CAAC"}
@@ -8,3 +8,5 @@ export * from './text';
8
8
  export * from './boundingBox';
9
9
  export * from './css';
10
10
  export * from './layer';
11
+ export * from './hypernode';
12
+ export * from './template';
@@ -24,4 +24,6 @@ __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);
28
+ __exportStar(require("./template"), exports);
27
29
  //# 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;AAC5B,6CAA2B"}
@@ -1,3 +1,4 @@
1
+ import { RequiredDeep } from "type-fest";
1
2
  import { JustifyContent, AlignItems } from "./css";
2
3
  export type LayerOptions<EntryType extends Record<string, string>> = {
3
4
  /**
@@ -12,4 +13,9 @@ export type LayerOptions<EntryType extends Record<string, string>> = {
12
13
  * Decides if a layer should be rendered or not for a certain entry
13
14
  */
14
15
  skip?: boolean | ((entry: EntryType) => boolean);
16
+ /**
17
+ * Control if should render bounding box for this layer
18
+ */
19
+ renderBoundingBox?: boolean;
15
20
  };
21
+ export declare const DEFAULT_LAYER_OPTIONS: RequiredDeep<LayerOptions<Record<string, string>>>;
@@ -1,3 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_LAYER_OPTIONS = void 0;
4
+ exports.DEFAULT_LAYER_OPTIONS = {
5
+ justifyContent: 'center',
6
+ alignItems: 'center',
7
+ skip: false,
8
+ renderBoundingBox: false,
9
+ };
3
10
  //# sourceMappingURL=layer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../../src/lib/types/layer.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../../src/lib/types/layer.ts"],"names":[],"mappings":";;;AAyBa,QAAA,qBAAqB,GAE9B;IACA,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,KAAK;IACX,iBAAiB,EAAE,KAAK;CAC3B,CAAC"}
@@ -1,2 +1,2 @@
1
- import { ImageType } from './image';
2
- export type ReplacementMap = Record<string, ImageType>;
1
+ import { StaticImageRef } from './image';
2
+ export type ReplacementMap = Record<string, StaticImageRef>;
@@ -0,0 +1,13 @@
1
+ type RequiredTemplateOptions = {
2
+ height: number;
3
+ width: number;
4
+ color: number;
5
+ };
6
+ type OptionalTemplateOptions = Partial<{
7
+ defaultFontFamily: string;
8
+ defaultAssetsPath: string;
9
+ debug: boolean;
10
+ }>;
11
+ export type TemplateOptions = RequiredTemplateOptions & OptionalTemplateOptions;
12
+ export declare const DEFAULT_TEMPLATE_OPTIONS: RequiredTemplateOptions;
13
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_TEMPLATE_OPTIONS = void 0;
4
+ const jimp_1 = require("jimp");
5
+ exports.DEFAULT_TEMPLATE_OPTIONS = {
6
+ height: 1050,
7
+ width: 750,
8
+ color: (0, jimp_1.rgbaToInt)(255, 255, 255, 255),
9
+ };
10
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/lib/types/template.ts"],"names":[],"mappings":";;;AAAA,+BAAiC;AAiBpB,QAAA,wBAAwB,GAA4B;IAC7D,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAA,gBAAS,EAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CACvC,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import type { RequiredDeep } from 'type-fest';
2
2
  import { LayerOptions } from './layer';
3
- import { ReplacementMap } from './replacement';
3
+ import { Replacement } 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
  };
@@ -34,7 +38,8 @@ export type TextLayerOptions<EntryType extends Record<string, string>> = LayerOp
34
38
  width?: number;
35
39
  color?: string;
36
40
  };
37
- replacement?: ReplacementMap;
41
+ replacementFn?: (replace: Replacement) => Replacement;
38
42
  };
39
43
  export declare const DEFAULT_FONT: Required<FontOptions>;
44
+ export type TextLayerSpecificOptions<EntryType extends Record<string, string>> = Omit<TextLayerOptions<EntryType>, keyof LayerOptions<EntryType>>;
40
45
  export declare const DEFAULT_TEXT_LAYER_OPTIONS: RequiredDeep<TextLayerOptions<Record<string, string>>>;
@@ -1,22 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_TEXT_LAYER_OPTIONS = exports.DEFAULT_FONT = void 0;
4
+ const layer_1 = require("./layer");
4
5
  exports.DEFAULT_FONT = {
5
6
  size: 28,
6
7
  family: 'Arial',
7
8
  bold: false,
8
9
  italic: false,
9
10
  };
10
- exports.DEFAULT_TEXT_LAYER_OPTIONS = {
11
- justifyContent: 'center',
12
- alignItems: 'center',
13
- font: exports.DEFAULT_FONT,
14
- color: 'black',
15
- replacement: {},
16
- skip: false,
17
- border: {
11
+ exports.DEFAULT_TEXT_LAYER_OPTIONS = Object.assign(Object.assign({}, layer_1.DEFAULT_LAYER_OPTIONS), { font: exports.DEFAULT_FONT, color: 'black', replacementFn: replacement => replacement, border: {
18
12
  width: 0,
19
13
  color: 'black',
20
- }
21
- };
14
+ } });
22
15
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/lib/types/text.ts"],"names":[],"mappings":";;;AA4Ca,QAAA,YAAY,GAErB;IACA,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;CAChB,CAAC;AAEW,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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/lib/types/text.ts"],"names":[],"mappings":";;;AACA,mCAA8D;AAgDjD,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,mCAGhC,6BAAqB,KACxB,IAAI,EAAE,oBAAY,EAClB,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC,WAAW,EACzC,MAAM,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,OAAO;KACjB,IACH"}
@@ -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, background, images) => directionalPackingFn({
21
+ const vboxPackingFn = (options) => (box, elements) => directionalPackingFn({
23
22
  isVertical: true,
24
- backgroundSize: background,
25
- images,
23
+ elements,
26
24
  box,
27
25
  options,
28
26
  });
29
27
  exports.vboxPackingFn = vboxPackingFn;
30
- const hboxPackingFn = (options) => (box, background, images) => directionalPackingFn({
28
+ const hboxPackingFn = (options) => (box, elements) => directionalPackingFn({
31
29
  isVertical: false,
32
- backgroundSize: background,
33
- images,
30
+ elements,
34
31
  box,
35
32
  options,
36
33
  });
37
34
  exports.hboxPackingFn = hboxPackingFn;
38
- const gridPackingFn = (options) => (box, background, images) => __awaiter(void 0, void 0, void 0, function* () {
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)(children)) {
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
- const document = (0, virtual_dom_1.h)('div', {
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, backgroundSize: background, images, box, options, }) {
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
- const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[mergedOptions.scale];
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
- }, children);
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":"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"}
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 { VNode } from 'virtual-dom';
2
- import { ImageType, Size } from '../types';
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,6CAA6D;AAC7D,4EAAiD;AACjD,+BAA4B;AAGrB,MAAM,WAAW,GAAG,CACvB,QAAe,EACf,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
+ {"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,6 +1,4 @@
1
1
  export * from './container';
2
- export * from './drawBoundingBox';
3
- export * from './placeImage';
4
- export * from './renderText';
2
+ export * from './placeBoundingBox';
5
3
  export * from './htmlToImage';
6
4
  export * from './toPx';
@@ -15,9 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./container"), exports);
18
- __exportStar(require("./drawBoundingBox"), exports);
19
- __exportStar(require("./placeImage"), exports);
20
- __exportStar(require("./renderText"), exports);
18
+ __exportStar(require("./placeBoundingBox"), exports);
21
19
  __exportStar(require("./htmlToImage"), exports);
22
20
  __exportStar(require("./toPx"), exports);
23
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,oDAAkC;AAClC,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,qDAAmC;AACnC,gDAA8B;AAC9B,yCAAuB"}
@@ -0,0 +1,2 @@
1
+ import { BoundingBox, HyperNode } from '../types';
2
+ export declare const placeBoundingBox: (box: BoundingBox) => Promise<HyperNode>;
@@ -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"}
@@ -1,13 +1,14 @@
1
- import { ImageLayerOptions, ImageType, BoundingBox } from '../types';
1
+ import { ImageLayerOptions, ImageType, BoundingBox, HyperNode, ImageLayerSpecificOptions } from '../types';
2
2
  import { RequiredDeep } from 'type-fest';
3
3
  type PlaceImageProps<EntryType extends Record<string, string>> = {
4
4
  image: ImageType;
5
5
  box: BoundingBox;
6
- backgroundSize: {
7
- width: number;
8
- height: number;
9
- };
10
6
  options: RequiredDeep<ImageLayerOptions<EntryType>>;
11
7
  };
12
- export declare const placeImage: <EntryType extends Record<string, string>>({ image, box, backgroundSize, options, }: PlaceImageProps<EntryType>) => Promise<ImageType>;
8
+ export declare const placeImage: <EntryType extends Record<string, string>>({ image, box, options, }: PlaceImageProps<EntryType>) => Promise<HyperNode>;
9
+ type PrepareImageProps<EntryType extends Record<string, string>> = {
10
+ image: ImageType;
11
+ options: RequiredDeep<ImageLayerSpecificOptions<EntryType>>;
12
+ };
13
+ export declare const prepareImage: <EntryType extends Record<string, string>>({ image, options, }: PrepareImageProps<EntryType>) => Promise<HyperNode>;
13
14
  export {};
@@ -9,30 +9,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.placeImage = void 0;
12
+ exports.prepareImage = exports.placeImage = void 0;
13
13
  const virtual_dom_1 = require("virtual-dom");
14
14
  const toPx_1 = require("./toPx");
15
15
  const types_1 = require("../types");
16
- const htmlToImage_1 = require("./htmlToImage");
17
- const placeImage = (_a) => __awaiter(void 0, [_a], void 0, function* ({ image, box, backgroundSize, options, }) {
18
- const imageBase64 = yield image.getBase64('image/png');
19
- const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[options.scale];
20
- const document = (0, virtual_dom_1.h)('div', {
16
+ const placeImage = (_a) => __awaiter(void 0, [_a], void 0, function* ({ image, box, options, }) {
17
+ return (0, virtual_dom_1.h)('div', {
21
18
  style: Object.assign({ display: 'flex', position: 'absolute', scale: 1, justifyContent: options.justifyContent, alignItems: options.alignItems }, (0, toPx_1.boundingBoxToPx)(box)),
22
- }, [
23
- (0, virtual_dom_1.h)('img', {
24
- style: {
25
- objectFit,
26
- flex: '1 1 auto',
27
- minWidth: 0,
28
- minHeight: 0,
29
- maxWidth: '100%',
30
- maxHeight: '100%',
31
- },
32
- src: imageBase64,
33
- }, []),
34
- ]);
35
- return (0, htmlToImage_1.htmlToImage)(document, backgroundSize);
19
+ }, [yield (0, exports.prepareImage)({ image, options })]);
36
20
  });
37
21
  exports.placeImage = placeImage;
22
+ const prepareImage = (_a) => __awaiter(void 0, [_a], void 0, function* ({ image, options, }) {
23
+ const imageBase64 = yield image.getBase64('image/png');
24
+ const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[options.scale];
25
+ return (0, virtual_dom_1.h)('img', {
26
+ style: {
27
+ objectFit,
28
+ flex: '1 1 auto',
29
+ minWidth: 0,
30
+ minHeight: 0,
31
+ maxWidth: '100%',
32
+ maxHeight: '100%',
33
+ },
34
+ src: imageBase64,
35
+ }, []);
36
+ });
37
+ exports.prepareImage = prepareImage;
38
38
  //# sourceMappingURL=placeImage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"placeImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeImage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAgC;AAChC,iCAAyC;AACzC,oCAKkB;AAClB,+CAA4C;AAUrC,MAAM,UAAU,GAAG,KAKyB,EAAE,4CALsB,EACvE,KAAK,EACL,GAAG,EACH,cAAc,EACd,OAAO,GACkB;IACzB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,gCAAwB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,QAAQ,GAAG,IAAA,eAAC,EACd,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,CAAC,EAER,cAAc,EAAE,OAAO,CAAC,cAAc,EACtC,UAAU,EAAE,OAAO,CAAC,UAAU,IAE3B,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD;QACI,IAAA,eAAC,EACG,KAAK,EACL;YACI,KAAK,EAAE;gBACH,SAAS;gBACT,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,MAAM;aACpB;YACD,GAAG,EAAE,WAAW;SACnB,EACD,EAAE,CACL;KACJ,CACJ,CAAC;IAEF,OAAO,IAAA,yBAAW,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACjD,CAAC,CAAA,CAAA;AA3CY,QAAA,UAAU,cA2CtB"}
1
+ {"version":3,"file":"placeImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeImage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAgC;AAChC,iCAAyC;AACzC,oCAOkB;AASX,MAAM,UAAU,GAAG,KAIyB,EAAE,4CAJsB,EACvE,KAAK,EACL,GAAG,EACH,OAAO,GACkB;IACzB,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,CAAC,EAER,cAAc,EAAE,OAAO,CAAC,cAAc,EACtC,UAAU,EAAE,OAAO,CAAC,UAAU,IAE3B,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,CAAC,MAAM,IAAA,oBAAY,EAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAC3C,CAAC;AACN,CAAC,CAAA,CAAC;AArBW,QAAA,UAAU,cAqBrB;AAOK,MAAM,YAAY,GAAG,KAGyB,EAAE,4CAHsB,EACzE,KAAK,EACL,OAAO,GACoB;IAC3B,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,gCAAwB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE1D,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;QACI,KAAK,EAAE;YACH,SAAS;YACT,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,MAAM;SACpB;QACD,GAAG,EAAE,WAAW;KACnB,EACD,EAAE,CACL,CAAC;AACN,CAAC,CAAA,CAAC;AAtBW,QAAA,YAAY,gBAsBvB"}
@@ -0,0 +1,14 @@
1
+ import { BoundingBox, TextLayerOptions, HyperNode, TextLayerSpecificOptions } from '../types';
2
+ import { RequiredDeep } from 'type-fest';
3
+ type PlaceTextProps<EntryType extends Record<string, string>> = {
4
+ text: string;
5
+ box: BoundingBox;
6
+ options: RequiredDeep<TextLayerOptions<EntryType>>;
7
+ };
8
+ export declare const placeText: <EntryType extends Record<string, string>>({ text, box, options, }: PlaceTextProps<EntryType>) => Promise<HyperNode>;
9
+ type PrepareTextProps<EntryType extends Record<string, string>> = {
10
+ text: string;
11
+ options: RequiredDeep<TextLayerSpecificOptions<EntryType>>;
12
+ };
13
+ export declare const prepareText: <EntryType extends Record<string, string>>({ text, options, }: PrepareTextProps<EntryType>) => Promise<HyperNode>;
14
+ export {};
@@ -0,0 +1,69 @@
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.prepareText = exports.placeText = void 0;
13
+ const virtual_dom_1 = require("virtual-dom");
14
+ const toPx_1 = require("./toPx");
15
+ const placeText = (_a) => __awaiter(void 0, [_a], void 0, function* ({ text, box, options, }) {
16
+ return (0, virtual_dom_1.h)('div', {
17
+ style: Object.assign({ display: 'flex', overflow: 'visible', position: 'absolute', justifyContent: options.justifyContent, alignItems: options.alignItems }, (0, toPx_1.boundingBoxToPx)(box)),
18
+ }, [
19
+ yield (0, exports.prepareText)({
20
+ text,
21
+ options,
22
+ }),
23
+ ]);
24
+ });
25
+ exports.placeText = placeText;
26
+ const prepareText = (_a) => __awaiter(void 0, [_a], void 0, function* ({ text, options, }) {
27
+ let textChildren = [text];
28
+ for (const [word, image] of Object.entries(options.replacement)) {
29
+ const regex = new RegExp(word, 'gi');
30
+ const imageBase64 = yield image.getBase64('image/png');
31
+ let tmpChildren = [];
32
+ for (const textSegment of textChildren) {
33
+ if (typeof textSegment !== 'string') {
34
+ continue;
35
+ }
36
+ const parts = textSegment.split(regex);
37
+ for (let index = 0; index < parts.length; index++) {
38
+ if (index > 0) {
39
+ tmpChildren.push((0, virtual_dom_1.h)('img', {
40
+ style: {
41
+ display: 'inline',
42
+ verticalAlign: 'middle',
43
+ height: (0, toPx_1.toPx)(options.font.size),
44
+ width: 'auto',
45
+ },
46
+ src: imageBase64,
47
+ }, []));
48
+ }
49
+ tmpChildren.push(parts[index]);
50
+ }
51
+ }
52
+ textChildren = tmpChildren;
53
+ }
54
+ return (0, virtual_dom_1.h)('div', {
55
+ style: {
56
+ overflow: 'visible',
57
+ overflowWrap: 'word-wrap',
58
+ whiteSpace: 'normal',
59
+ color: options.color,
60
+ fontFamily: options.font.family,
61
+ fontSize: options.font.size,
62
+ fontStyle: options.font.italic ? 'italic' : undefined,
63
+ fontWeight: options.font.bold ? 'bold' : undefined,
64
+ '-webkit-text-stroke': `${options.border.width}px ${options.border.color}`,
65
+ },
66
+ }, textChildren);
67
+ });
68
+ exports.prepareText = prepareText;
69
+ //# sourceMappingURL=placeText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeText.js","sourceRoot":"","sources":["../../../../src/lib/utils/placeText.ts"],"names":[],"mappings":"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"}