@redneckz/wildless-cms-uni-blocks 0.4.4 → 0.4.5
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/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +38 -11
- package/bundle/bundle.umd.min.js +1 -1
- package/dist/components/BenefitsBlock/BenefitsBlock.js +32 -9
- package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +9 -2
- package/dist/content-page-repository/transformContentPage.js +9 -3
- package/dist/content-page-repository/transformContentPage.js.map +1 -1
- package/dist/content-page-repository/transformImg.d.ts +11 -0
- package/dist/content-page-repository/transformImg.js +100 -0
- package/dist/content-page-repository/transformImg.js.map +1 -0
- package/dist/content-page-repository/transformPicture.js +15 -40
- package/dist/content-page-repository/transformPicture.js.map +1 -1
- package/dist/content-page-repository/transformSrc.d.ts +3 -0
- package/dist/content-page-repository/transformSrc.js +20 -0
- package/dist/content-page-repository/transformSrc.js.map +1 -0
- package/dist/model/ImageSize.d.ts +6 -0
- package/dist/model/ImageSize.js +2 -0
- package/dist/model/ImageSize.js.map +1 -0
- package/dist/model/Picture.d.ts +19 -6
- package/dist/ui-kit/Img/ImgAsPicture.js +6 -2
- package/dist/ui-kit/Img/ImgAsPicture.js.map +1 -1
- package/dist/utils/isPictureSizeEmpty.d.ts +2 -0
- package/dist/utils/isPictureSizeEmpty.js +7 -0
- package/dist/utils/isPictureSizeEmpty.js.map +1 -0
- package/lib/common.css +1 -1
- package/lib/components/BenefitsBlock/BenefitsBlock.fixture.d.ts +2 -0
- package/lib/components/BenefitsBlock/BenefitsBlock.js +32 -9
- package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +9 -2
- package/lib/content-page-repository/transformContentPage.js +9 -3
- package/lib/content-page-repository/transformContentPage.js.map +1 -1
- package/lib/content-page-repository/transformImg.d.ts +11 -0
- package/lib/content-page-repository/transformImg.js +94 -0
- package/lib/content-page-repository/transformImg.js.map +1 -0
- package/lib/content-page-repository/transformPicture.js +15 -40
- package/lib/content-page-repository/transformPicture.js.map +1 -1
- package/lib/content-page-repository/transformSrc.d.ts +3 -0
- package/lib/content-page-repository/transformSrc.js +14 -0
- package/lib/content-page-repository/transformSrc.js.map +1 -0
- package/lib/model/ImageSize.d.ts +6 -0
- package/lib/model/ImageSize.js +2 -0
- package/lib/model/ImageSize.js.map +1 -0
- package/lib/model/Picture.d.ts +19 -6
- package/lib/ui-kit/Img/ImgAsPicture.js +6 -2
- package/lib/ui-kit/Img/ImgAsPicture.js.map +1 -1
- package/lib/utils/isPictureSizeEmpty.d.ts +2 -0
- package/lib/utils/isPictureSizeEmpty.js +4 -0
- package/lib/utils/isPictureSizeEmpty.js.map +1 -0
- package/mobile/bundle/bundle.umd.js +6 -2
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +32 -9
- package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/mobile/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +9 -2
- package/mobile/dist/content-page-repository/transformContentPage.js +9 -3
- package/mobile/dist/content-page-repository/transformContentPage.js.map +1 -1
- package/mobile/dist/content-page-repository/transformImg.d.ts +11 -0
- package/mobile/dist/content-page-repository/transformImg.js +100 -0
- package/mobile/dist/content-page-repository/transformImg.js.map +1 -0
- package/mobile/dist/content-page-repository/transformPicture.js +15 -40
- package/mobile/dist/content-page-repository/transformPicture.js.map +1 -1
- package/mobile/dist/content-page-repository/transformSrc.d.ts +3 -0
- package/mobile/dist/content-page-repository/transformSrc.js +20 -0
- package/mobile/dist/content-page-repository/transformSrc.js.map +1 -0
- package/mobile/dist/model/ImageSize.d.ts +6 -0
- package/mobile/dist/model/ImageSize.js +2 -0
- package/mobile/dist/model/ImageSize.js.map +1 -0
- package/mobile/dist/model/Picture.d.ts +19 -6
- package/mobile/dist/ui-kit/Img/ImgAsPicture.js +6 -2
- package/mobile/dist/ui-kit/Img/ImgAsPicture.js.map +1 -1
- package/mobile/dist/utils/isPictureSizeEmpty.d.ts +2 -0
- package/mobile/dist/utils/isPictureSizeEmpty.js +7 -0
- package/mobile/dist/utils/isPictureSizeEmpty.js.map +1 -0
- package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +32 -9
- package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
- package/mobile/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +9 -2
- package/mobile/lib/content-page-repository/transformContentPage.js +9 -3
- package/mobile/lib/content-page-repository/transformContentPage.js.map +1 -1
- package/mobile/lib/content-page-repository/transformImg.d.ts +11 -0
- package/mobile/lib/content-page-repository/transformImg.js +94 -0
- package/mobile/lib/content-page-repository/transformImg.js.map +1 -0
- package/mobile/lib/content-page-repository/transformPicture.js +15 -40
- package/mobile/lib/content-page-repository/transformPicture.js.map +1 -1
- package/mobile/lib/content-page-repository/transformSrc.d.ts +3 -0
- package/mobile/lib/content-page-repository/transformSrc.js +14 -0
- package/mobile/lib/content-page-repository/transformSrc.js.map +1 -0
- package/mobile/lib/model/ImageSize.d.ts +6 -0
- package/mobile/lib/model/ImageSize.js +2 -0
- package/mobile/lib/model/ImageSize.js.map +1 -0
- package/mobile/lib/model/Picture.d.ts +19 -6
- package/mobile/lib/ui-kit/Img/ImgAsPicture.js +6 -2
- package/mobile/lib/ui-kit/Img/ImgAsPicture.js.map +1 -1
- package/mobile/lib/utils/isPictureSizeEmpty.d.ts +2 -0
- package/mobile/lib/utils/isPictureSizeEmpty.js +4 -0
- package/mobile/lib/utils/isPictureSizeEmpty.js.map +1 -0
- package/mobile/src/components/BenefitsBlock/BenefitsBlock.example.json +1 -0
- package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +78 -28
- package/mobile/src/components/BenefitsBlock/BenefitsBlockContent.ts +10 -2
- package/mobile/src/components/ContentPage/ContentPage.page.json +1 -2
- package/mobile/src/components/__snapshots__/Blocks.spec.tsx.snap +1 -1
- package/mobile/src/content-page-repository/transformContentPage.ts +10 -3
- package/mobile/src/content-page-repository/transformImg.ts +157 -0
- package/mobile/src/content-page-repository/transformPicture.ts +24 -58
- package/mobile/src/content-page-repository/transformSrc.ts +21 -0
- package/mobile/src/model/ImageSize.ts +6 -0
- package/mobile/src/model/Picture.ts +29 -6
- package/mobile/src/ui-kit/Img/ImgAsPicture.tsx +8 -2
- package/mobile/src/utils/isPictureSizeEmpty.ts +5 -0
- package/package.json +2 -1
- package/src/components/BenefitsBlock/BenefitsBlock.example.json +1 -0
- package/src/components/BenefitsBlock/BenefitsBlock.fixture.tsx +94 -1
- package/src/components/BenefitsBlock/BenefitsBlock.tsx +78 -28
- package/src/components/BenefitsBlock/BenefitsBlockContent.ts +10 -2
- package/src/components/ContentPage/ContentPage.page.json +1 -2
- package/src/components/__snapshots__/Blocks.spec.tsx.snap +1 -1
- package/src/content-page-repository/transformContentPage.ts +10 -3
- package/src/content-page-repository/transformImg.ts +157 -0
- package/src/content-page-repository/transformPicture.ts +24 -58
- package/src/content-page-repository/transformSrc.ts +21 -0
- package/src/model/ImageSize.ts +6 -0
- package/src/model/Picture.ts +29 -6
- package/src/ui-kit/Img/ImgAsPicture.tsx +8 -2
- package/src/utils/isPictureSizeEmpty.ts +5 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
|
+
};
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.transformImg = void 0;
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const util_1 = __importDefault(require("util"));
|
|
9
|
+
const sharp_1 = __importDefault(require("sharp"));
|
|
10
|
+
const transformSrc_1 = require("./transformSrc");
|
|
11
|
+
const isPictureSizeEmpty_1 = require("../utils/isPictureSizeEmpty");
|
|
12
|
+
const mkdir = util_1.default.promisify(fs_1.default.mkdir);
|
|
13
|
+
async function transformImg({ pagePath, src, containerSize, transformationOptions, }) {
|
|
14
|
+
if (!src) {
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
const { contentDir, publicDir, format, options, size, alignment } = transformationOptions;
|
|
18
|
+
const pageDir = path_1.default.dirname(pagePath);
|
|
19
|
+
const imgPath = `${pageDir}/${src}`;
|
|
20
|
+
let chain = (0, sharp_1.default)(imgPath);
|
|
21
|
+
const targetSize = getPictureSize(size, containerSize);
|
|
22
|
+
if (targetSize) {
|
|
23
|
+
chain = resizeImg(chain, targetSize, getResizeFit(targetSize));
|
|
24
|
+
}
|
|
25
|
+
if (containerSize) {
|
|
26
|
+
chain = resizeImg(chain, containerSize);
|
|
27
|
+
// Save intermediate transform result to modify further
|
|
28
|
+
const { data } = await chain.toBuffer({ resolveWithObject: true });
|
|
29
|
+
chain = resizeImg((0, sharp_1.default)(data), getCompositionResizeSize(containerSize, targetSize), getResizeFit(targetSize));
|
|
30
|
+
chain = await compositeImg({ chain, containerSize, alignment });
|
|
31
|
+
}
|
|
32
|
+
if (format) {
|
|
33
|
+
chain = chain.toFormat(format, options);
|
|
34
|
+
}
|
|
35
|
+
const transformedSrc = (0, transformSrc_1.transformSrc)(src, transformationOptions);
|
|
36
|
+
const transformedImgPath = `${publicDir}/${path_1.default.relative(contentDir, `${path_1.default.dirname(pagePath)}/${transformedSrc}`)}`;
|
|
37
|
+
await mkdir(path_1.default.dirname(transformedImgPath), { recursive: true });
|
|
38
|
+
try {
|
|
39
|
+
await chain.toFile(transformedImgPath);
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
console.error(e);
|
|
43
|
+
}
|
|
44
|
+
return transformedSrc;
|
|
45
|
+
}
|
|
46
|
+
exports.transformImg = transformImg;
|
|
47
|
+
function createBackgroundImageChain({ width, height }) {
|
|
48
|
+
const channels = 4;
|
|
49
|
+
const rgbaColor = 0x00000000;
|
|
50
|
+
const canvas = Buffer.alloc(width * height * channels, rgbaColor);
|
|
51
|
+
return (0, sharp_1.default)(canvas, { raw: { width, height, channels } });
|
|
52
|
+
}
|
|
53
|
+
function resizeImg(chain, size, options) {
|
|
54
|
+
return chain.resize(size?.width, size?.height, {
|
|
55
|
+
fit: sharp_1.default.fit.fill,
|
|
56
|
+
background: { r: 0, g: 0, b: 0, alpha: 0 },
|
|
57
|
+
...options,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async function compositeImg({ chain, containerSize, alignment, }) {
|
|
61
|
+
const { data } = await chain.toBuffer({ resolveWithObject: true });
|
|
62
|
+
return createBackgroundImageChain(containerSize).composite([
|
|
63
|
+
{
|
|
64
|
+
input: data,
|
|
65
|
+
gravity: alignment,
|
|
66
|
+
},
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
69
|
+
function getPictureSize(size, containerSize) {
|
|
70
|
+
// If containerSize is undefined intrinsic dimensions of image will be used then.
|
|
71
|
+
return (0, isPictureSizeEmpty_1.isPictureSizeEmpty)(size) ? containerSize : size;
|
|
72
|
+
}
|
|
73
|
+
function getCompositionResizeSize(containerSize, size = {}) {
|
|
74
|
+
const { width, height } = size;
|
|
75
|
+
const { width: containerWidth, height: containerHeight } = containerSize;
|
|
76
|
+
let widthRatio = 0;
|
|
77
|
+
let heightRatio = 0;
|
|
78
|
+
if (!(width || height)) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
if (width) {
|
|
82
|
+
widthRatio = containerWidth / width;
|
|
83
|
+
}
|
|
84
|
+
if (height) {
|
|
85
|
+
heightRatio = containerHeight / height;
|
|
86
|
+
}
|
|
87
|
+
return widthRatio > heightRatio
|
|
88
|
+
? { width: Math.min(Number(width), containerWidth) }
|
|
89
|
+
: { height: Math.min(Number(height), containerHeight) };
|
|
90
|
+
}
|
|
91
|
+
function getResizeFit(size) {
|
|
92
|
+
/*
|
|
93
|
+
Editor behaviour with one dimension present: resize by given dimension maintaining aspect ratio. (fit: contain)
|
|
94
|
+
With two dimensions present: resize trying to fill given dimensions (fit: fill)
|
|
95
|
+
*/
|
|
96
|
+
return {
|
|
97
|
+
fit: size?.width && size?.height ? sharp_1.default.fit.fill : sharp_1.default.fit.contain,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=transformImg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformImg.js","sourceRoot":"","sources":["../../src/content-page-repository/transformImg.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,59 +3,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
};
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.transformPicture = void 0;
|
|
6
|
-
const fs_1 = __importDefault(require("fs"));
|
|
7
6
|
const path_1 = __importDefault(require("path"));
|
|
8
7
|
const sharp_1 = __importDefault(require("sharp"));
|
|
9
|
-
const
|
|
10
|
-
const mkdir = util_1.default.promisify(fs_1.default.mkdir);
|
|
8
|
+
const transformImg_1 = require("./transformImg");
|
|
11
9
|
async function transformPicture(pagePath, picture, options) {
|
|
12
10
|
const sources = picture.sources || [];
|
|
13
11
|
const src = picture?.src || '';
|
|
14
|
-
const
|
|
12
|
+
const transformedPicture = await (0, transformImg_1.transformImg)({
|
|
13
|
+
pagePath,
|
|
14
|
+
src,
|
|
15
|
+
transformationOptions: { ...options, ...picture },
|
|
16
|
+
});
|
|
17
|
+
const { width, height } = await (0, sharp_1.default)(path_1.default.resolve(options.publicDir, transformedPicture)).metadata();
|
|
18
|
+
const containerSize = width && height ? { width, height } : undefined;
|
|
19
|
+
const transformedSources = await Promise.all(sources.map((_) => (0, transformImg_1.transformImg)({
|
|
20
|
+
pagePath,
|
|
21
|
+
src,
|
|
22
|
+
containerSize,
|
|
23
|
+
transformationOptions: { ...options, ..._ },
|
|
24
|
+
})));
|
|
15
25
|
return {
|
|
16
26
|
...picture,
|
|
17
27
|
src: transformedPicture,
|
|
18
28
|
sources: transformedSources.map((_, i) => ({
|
|
19
29
|
...sources[i],
|
|
20
30
|
src: _,
|
|
31
|
+
size: { width, height },
|
|
21
32
|
})),
|
|
22
33
|
};
|
|
23
34
|
}
|
|
24
35
|
exports.transformPicture = transformPicture;
|
|
25
|
-
async function transformImg(pagePath, src, transformationOptions) {
|
|
26
|
-
const { contentDir, publicDir, format, options, size } = transformationOptions;
|
|
27
|
-
const pageDir = path_1.default.dirname(pagePath);
|
|
28
|
-
const imgPath = `${pageDir}/${src}`;
|
|
29
|
-
let chain = (0, sharp_1.default)(imgPath);
|
|
30
|
-
if (size) {
|
|
31
|
-
chain = chain.resize(size?.width, size?.height, {
|
|
32
|
-
fit: sharp_1.default.fit.contain,
|
|
33
|
-
background: [0, 0, 0, 0],
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
if (format) {
|
|
37
|
-
chain = chain.toFormat(format, options);
|
|
38
|
-
}
|
|
39
|
-
const transformedSrc = transformSrc(src, transformationOptions);
|
|
40
|
-
const transformedImgPath = `${publicDir}/${path_1.default.relative(contentDir, `${path_1.default.dirname(pagePath)}/${transformedSrc}`)}`;
|
|
41
|
-
await mkdir(path_1.default.dirname(transformedImgPath), { recursive: true });
|
|
42
|
-
try {
|
|
43
|
-
await chain.toFile(transformedImgPath);
|
|
44
|
-
}
|
|
45
|
-
catch (e) {
|
|
46
|
-
console.error(e);
|
|
47
|
-
}
|
|
48
|
-
return transformedSrc;
|
|
49
|
-
}
|
|
50
|
-
function transformSrc(src, { format, size }) {
|
|
51
|
-
const noTransform = !format && !size;
|
|
52
|
-
if (noTransform) {
|
|
53
|
-
return src;
|
|
54
|
-
}
|
|
55
|
-
const fileName = path_1.default.basename(src, path_1.default.extname(src));
|
|
56
|
-
const fileSizes = [size?.width, size?.height].filter(Boolean);
|
|
57
|
-
const suffix = fileSizes.length ? `-${fileSizes.join('-')}` : '';
|
|
58
|
-
const ext = String(format) || path_1.default.extname(src);
|
|
59
|
-
return `${fileName}${suffix}.${ext}`;
|
|
60
|
-
}
|
|
61
36
|
//# sourceMappingURL=transformPicture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformPicture.js","sourceRoot":"","sources":["../../src/content-page-repository/transformPicture.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"transformPicture.js","sourceRoot":"","sources":["../../src/content-page-repository/transformPicture.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,kDAA0B;AAG1B,iDAA8C;AAEvC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAAgB,EAChB,OAA8B;IAE9B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IAE/B,MAAM,kBAAkB,GAAG,MAAM,IAAA,2BAAY,EAAC;QAC5C,QAAQ;QACR,GAAG;QACH,qBAAqB,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE;KAClD,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,eAAK,EACnC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,CACpD,CAAC,QAAQ,EAAE,CAAC;IACb,MAAM,aAAa,GAAG,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChB,IAAA,2BAAY,EAAC;QACX,QAAQ;QACR,GAAG;QACH,aAAa;QACb,qBAAqB,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE;KAC5C,CAAC,CACH,CACF,CAAC;IAEF,OAAO;QACL,GAAG,OAAO;QACV,GAAG,EAAE,kBAAkB;QACvB,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACzC,GAAG,OAAO,CAAC,CAAC,CAAC;YACb,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SACxB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAvCD,4CAuCC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
|
+
};
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.transformSrc = void 0;
|
|
6
|
+
const path_1 = __importDefault(require("path"));
|
|
7
|
+
const isPictureSizeEmpty_1 = require("../utils/isPictureSizeEmpty");
|
|
8
|
+
function transformSrc(src, { format, size }) {
|
|
9
|
+
const noTransform = (0, isPictureSizeEmpty_1.isPictureSizeEmpty)(size) && !format;
|
|
10
|
+
if (noTransform) {
|
|
11
|
+
return src;
|
|
12
|
+
}
|
|
13
|
+
const fileName = path_1.default.basename(src, path_1.default.extname(src));
|
|
14
|
+
const fileSizes = [size?.width, size?.height].filter(Boolean);
|
|
15
|
+
const suffix = fileSizes.length ? `-${fileSizes.join('-')}` : '';
|
|
16
|
+
const ext = format ? String(format) : 'webp';
|
|
17
|
+
return `${fileName}${suffix}.${ext}`;
|
|
18
|
+
}
|
|
19
|
+
exports.transformSrc = transformSrc;
|
|
20
|
+
//# sourceMappingURL=transformSrc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformSrc.js","sourceRoot":"","sources":["../../src/content-page-repository/transformSrc.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AAGxB,oEAAiE;AAEjE,SAAgB,YAAY,CAC1B,GAAW,EACX,EAAE,MAAM,EAAE,IAAI,EAAqC;IAEnD,MAAM,WAAW,GAAG,IAAA,uCAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACxD,IAAI,WAAW,EAAE;QACf,OAAO,GAAG,CAAC;KACZ;IAED,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE7C,OAAO,GAAG,QAAQ,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC;AACvC,CAAC;AAfD,oCAeC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageSize.js","sourceRoot":"","sources":["../../src/model/ImageSize.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import type { IconName } from '../icons/IconName';
|
|
2
2
|
import type { IconVersion } from './IconVersion';
|
|
3
|
+
import { ImageSize } from './ImageSize';
|
|
3
4
|
export declare type ImgFormats = 'jpeg' | 'jpg' | 'png' | 'gif' | 'webp' | 'heif' | 'avif';
|
|
5
|
+
/**
|
|
6
|
+
* @title Позиционирование
|
|
7
|
+
* @enumNames [
|
|
8
|
+
* "Сверху слева",
|
|
9
|
+
* "Сверху по центру",
|
|
10
|
+
* "Сверху справа",
|
|
11
|
+
* "Посередине слева",
|
|
12
|
+
* "Посередине по центру",
|
|
13
|
+
* "Посередине справа",
|
|
14
|
+
* "Снизу слева",
|
|
15
|
+
* "Снизу по центру",
|
|
16
|
+
* "Снизу справа"
|
|
17
|
+
* ]
|
|
18
|
+
* @default "center"
|
|
19
|
+
*/
|
|
20
|
+
export declare type ImgAlignment = 'northwest' | 'north' | 'northeast' | 'west' | 'center' | 'east' | 'southwest' | 'south' | 'southeast';
|
|
4
21
|
export interface Img {
|
|
5
22
|
/** @title Картинка */
|
|
6
23
|
src?: string;
|
|
@@ -15,6 +32,7 @@ export interface Img {
|
|
|
15
32
|
*/
|
|
16
33
|
export declare type MediaQuery = 1919 | 1439 | 1279;
|
|
17
34
|
export interface ImgSource {
|
|
35
|
+
alignment?: ImgAlignment;
|
|
18
36
|
/** @title Иконка */
|
|
19
37
|
icon?: IconName;
|
|
20
38
|
iconVersion?: IconVersion;
|
|
@@ -26,12 +44,7 @@ export interface ImgSource {
|
|
|
26
44
|
options?: Record<string, any>;
|
|
27
45
|
media?: MediaQuery;
|
|
28
46
|
/** @title Размер изображения */
|
|
29
|
-
size?:
|
|
30
|
-
/** @title Ширина */
|
|
31
|
-
width?: number;
|
|
32
|
-
/** @title Высота */
|
|
33
|
-
height?: number;
|
|
34
|
-
};
|
|
47
|
+
size?: Partial<ImageSize>;
|
|
35
48
|
}
|
|
36
49
|
/** @title Изображение */
|
|
37
50
|
export interface Picture extends Img, ImgSource {
|
|
@@ -16,14 +16,18 @@ exports.ImgAsPicture = (0, uni_jsx_1.JSX)(({ className = '', image, imageClassNa
|
|
|
16
16
|
return ((0, jsx_runtime_1.jsxs)("picture", { className: `${pictureStyles} ${className}`, children: [image?.sources?.length
|
|
17
17
|
? image.sources
|
|
18
18
|
.sort(sourcesComparator)
|
|
19
|
-
.map(({ src, format, media
|
|
19
|
+
.map(({ src, format, media }, index) => ((0, jsx_runtime_1.jsx)("source", { srcSet: src, type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...image.size }, `${index}_${src}`)))
|
|
20
20
|
: null, renderImg(image, imageClassName, isMobile)] }));
|
|
21
21
|
});
|
|
22
22
|
const renderImg = (image, imageClassName = '', isMobile = false) => {
|
|
23
|
+
const style = {
|
|
24
|
+
width: image.size?.width ? `${image.size?.width}px` : '100%',
|
|
25
|
+
height: image.size?.height ? `${image.size?.height}px` : '100%',
|
|
26
|
+
};
|
|
23
27
|
const title = image.title || '';
|
|
24
28
|
const alt = image.alt || image.title;
|
|
25
29
|
const imgStyle = isMobile ? 'm-auto' : 'm-0';
|
|
26
|
-
return ((0, jsx_runtime_1.jsx)("img", { src: image.src, className: `${imgStyle} ${imageClassName}`, alt: alt, title: title, ...image.size }));
|
|
30
|
+
return ((0, jsx_runtime_1.jsx)("img", { src: image.src, className: `${imgStyle} ${imageClassName}`, alt: alt, title: title, style: style, ...image.size }));
|
|
27
31
|
};
|
|
28
32
|
function formatToMimeType(format) {
|
|
29
33
|
return format ? `image/${String(format)}` : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImgAsPicture.js","sourceRoot":"","sources":["../../../src/ui-kit/Img/ImgAsPicture.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAIxC,MAAM,iBAAiB,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;IACnD,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE;QACtB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;KAC1B;IAED,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEW,QAAA,YAAY,GAAG,IAAA,aAAG,EAC7B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE;IACnE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;QAC9C,OAAO,IAAI,CAAC;KACb;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;IAEtD,OAAO,CACL,qCAAS,SAAS,EAAE,GAAG,aAAa,IAAI,SAAS,EAAE,aAChD,KAAK,EAAE,OAAO,EAAE,MAAM;gBACrB,CAAC,CAAC,KAAK,CAAC,OAAO;qBACV,IAAI,CAAC,iBAAiB,CAAC;qBACvB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ImgAsPicture.js","sourceRoot":"","sources":["../../../src/ui-kit/Img/ImgAsPicture.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAIxC,MAAM,iBAAiB,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;IACnD,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE;QACtB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;KAC1B;IAED,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEW,QAAA,YAAY,GAAG,IAAA,aAAG,EAC7B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE;IACnE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;QAC9C,OAAO,IAAI,CAAC;KACb;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;IAEtD,OAAO,CACL,qCAAS,SAAS,EAAE,GAAG,aAAa,IAAI,SAAS,EAAE,aAChD,KAAK,EAAE,OAAO,EAAE,MAAM;gBACrB,CAAC,CAAC,KAAK,CAAC,OAAO;qBACV,IAAI,CAAC,iBAAiB,CAAC;qBACvB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CACtC,mCAEE,MAAM,EAAE,GAAG,EACX,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAC9B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KACzC,KAAK,CAAC,IAAI,IAJT,GAAG,KAAK,IAAI,GAAG,EAAE,CAKtB,CACH,CAAC;gBACN,CAAC,CAAC,IAAI,EACP,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,IACnC,CACX,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,cAAc,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE;IAC1E,MAAM,KAAK,GAAG;QACZ,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM;QAC5D,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM;KAChE,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAE7C,OAAO,CACL,gCACE,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,SAAS,EAAE,GAAG,QAAQ,IAAI,cAAc,EAAE,EAC1C,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,KACR,KAAK,CAAC,IAAI,GACd,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,SAAgB,gBAAgB,CAAC,MAA2B;IAC1D,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAFD,4CAEC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.isPictureSizeEmpty = void 0;
|
|
3
|
+
function isPictureSizeEmpty(size) {
|
|
4
|
+
return !(size?.width || size?.height);
|
|
5
|
+
}
|
|
6
|
+
exports.isPictureSizeEmpty = isPictureSizeEmpty;
|
|
7
|
+
//# sourceMappingURL=isPictureSizeEmpty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPictureSizeEmpty.js","sourceRoot":"","sources":["../../src/utils/isPictureSizeEmpty.ts"],"names":[],"mappings":";;AAEA,SAAgB,kBAAkB,CAAC,IAAqB;IACtD,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAFD,gDAEC"}
|
|
@@ -3,22 +3,45 @@ import { JSX } from '@redneckz/uni-jsx';
|
|
|
3
3
|
import { BlockWrapper } from '../../ui-kit/BlockWrapper.js';
|
|
4
4
|
import { Heading } from '../../ui-kit/Heading/Heading.js';
|
|
5
5
|
import { Img } from '../../ui-kit/Img/Img.js';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
const benefitsBlockStyleMap = {
|
|
7
|
+
primary: 'bg-white',
|
|
8
|
+
secondary: 'bg-primary-main',
|
|
9
|
+
};
|
|
10
|
+
const benefitsTextStyleMap = {
|
|
11
|
+
primary: '',
|
|
12
|
+
secondary: 'text-white',
|
|
13
|
+
};
|
|
14
|
+
const benefitsDescriptionStyleMap = {
|
|
15
|
+
primary: 'text-secondary-text',
|
|
16
|
+
secondary: 'text-white opacity-80',
|
|
17
|
+
};
|
|
18
|
+
const benefitsIconStyleMap = {
|
|
19
|
+
primary: 'bg-main-divider text-primary-main',
|
|
20
|
+
secondary: 'bg-white/30 text-black',
|
|
21
|
+
};
|
|
22
|
+
export const BenefitsBlock = JSX(({ className = '', title, benefitList, benefitsBlockVersion = 'primary', ...rest }) => {
|
|
23
|
+
return (_jsxs(BlockWrapper, { className: `font-sans text-primary-text p-12 flex flex-col items-center ${className} ${benefitsBlockStyleMap[benefitsBlockVersion]}`, ...rest, children: [title ? (_jsx(Heading, { headingType: "h3", as: "h2", className: `max-w-[47rem] text-center ${benefitsTextStyleMap[benefitsBlockVersion]}`, title: title })) : null, benefitList?.length ? renderBenefits(benefitList, benefitsBlockVersion) : null] }));
|
|
8
24
|
});
|
|
9
|
-
const renderBenefits = (
|
|
10
|
-
return (_jsx("div", { className: "flex flex-wrap w-full justify-center gap-x-20 mt-8", children:
|
|
25
|
+
const renderBenefits = (benefitList, benefitsBlockVersion) => {
|
|
26
|
+
return (_jsx("div", { className: "flex flex-wrap w-full justify-center gap-x-20 mt-8", children: benefitList.map(renderStep(benefitsBlockVersion)) }));
|
|
27
|
+
};
|
|
28
|
+
const setIconVersion = (benefitIcon, benefitsBlockVersion) => {
|
|
29
|
+
if (!benefitIcon.icon) {
|
|
30
|
+
return benefitIcon;
|
|
31
|
+
}
|
|
32
|
+
benefitIcon.iconVersion = benefitsBlockVersion === 'secondary' ? 'white' : 'normal';
|
|
33
|
+
return benefitIcon;
|
|
11
34
|
};
|
|
12
|
-
const renderStep = (benefit, i) => {
|
|
13
|
-
const description = benefit?.description || undefined;
|
|
14
|
-
return (_jsxs("div", { className: "flex items-center basis-1/2 max-w-[500px] mb-14", children: [benefit?.icon?.icon ? (_jsx(Img, { className:
|
|
35
|
+
const renderStep = (benefitsBlockVersion) => (benefit, i) => {
|
|
36
|
+
const description = (benefit?.description || undefined);
|
|
37
|
+
return (_jsxs("div", { className: "flex items-center basis-1/2 max-w-[500px] mb-14", children: [benefit?.icon?.icon ? (_jsx(Img, { className: `w-[50px] h-[50px] min-w-[50px] p-3 rounded-full ${benefitsIconStyleMap[benefitsBlockVersion]}`, image: setIconVersion(benefit.icon, benefitsBlockVersion), asSVG: true })) : null, benefit?.icon?.src ? _jsx(Img, { image: benefit.icon }) : null, _jsxs("div", { className: "ml-5", children: [benefit?.label ? (_jsx("h3", { className: `text-h6 m-0 ${benefitsTextStyleMap[benefitsBlockVersion]}`, children: benefit.label })) : null, renderDescription(description, benefitsBlockVersion)] })] }, String(i)));
|
|
15
38
|
};
|
|
16
|
-
const renderDescription = (description) => {
|
|
39
|
+
const renderDescription = (description, benefitsBlockVersion) => {
|
|
17
40
|
const benefitType = description ? description?.benefitType : null;
|
|
18
41
|
if (!benefitType) {
|
|
19
42
|
return null;
|
|
20
43
|
}
|
|
21
|
-
return description ? (_jsx("div", { className:
|
|
44
|
+
return description ? (_jsx("div", { className: `text-l-light mt-2 ${benefitsDescriptionStyleMap[benefitsBlockVersion]}`, children: benefitType === 'list'
|
|
22
45
|
? renderListBenefit(description)
|
|
23
46
|
: renderTextBenefit(description) })) : null;
|
|
24
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BenefitsBlock.js","sourceRoot":"","sources":["../../../src/components/BenefitsBlock/BenefitsBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"BenefitsBlock.js","sourceRoot":"","sources":["../../../src/components/BenefitsBlock/BenefitsBlock.tsx"],"names":[],"mappings":"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"}
|
|
@@ -33,13 +33,18 @@ export declare type DescriptionDef = EmptyOption | TextBenefitDef | ListBenefitD
|
|
|
33
33
|
/**
|
|
34
34
|
* @title Преимущество
|
|
35
35
|
*/
|
|
36
|
-
export interface
|
|
36
|
+
export interface BenefitBlockItemProps {
|
|
37
37
|
/** @title Название */
|
|
38
38
|
label?: string;
|
|
39
39
|
/** @title Описание */
|
|
40
40
|
description?: DescriptionDef;
|
|
41
41
|
icon?: Picture;
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* @title Цвет блока
|
|
45
|
+
* @enumNames ["Основная", "Второстепенная"]
|
|
46
|
+
*/
|
|
47
|
+
export declare type BenefitsBlockVersion = 'primary' | 'secondary';
|
|
43
48
|
/**
|
|
44
49
|
* @title Блок преимущества
|
|
45
50
|
*/
|
|
@@ -48,5 +53,7 @@ export declare type BenefitsBlockContent = TitleProps & {
|
|
|
48
53
|
* @title Список преимуществ
|
|
49
54
|
* @maxItems 6
|
|
50
55
|
*/
|
|
51
|
-
benefitList?:
|
|
56
|
+
benefitList?: BenefitBlockItemProps[];
|
|
57
|
+
/** @default primary */
|
|
58
|
+
benefitsBlockVersion?: BenefitsBlockVersion;
|
|
52
59
|
};
|
|
@@ -9,12 +9,17 @@ export async function transformContentPage(pagePath, options) {
|
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
10
10
|
return mapJSON(JSON.parse(content), async (value, [key]) => {
|
|
11
11
|
const isMarkdown = typeof value === 'string' && key?.endsWith('__md');
|
|
12
|
-
const isPicture = value && isLocalPath(value?.src);
|
|
13
12
|
if (isMarkdown) {
|
|
14
13
|
return await transformMarkdown(value);
|
|
15
14
|
}
|
|
16
|
-
else if (isPicture) {
|
|
17
|
-
|
|
15
|
+
else if (isPicture(value)) {
|
|
16
|
+
try {
|
|
17
|
+
return await transformPicture(pagePath, value, options);
|
|
18
|
+
}
|
|
19
|
+
catch (ex) {
|
|
20
|
+
console.warn('Error while transforming picture on page: %s', pagePath);
|
|
21
|
+
console.error(ex);
|
|
22
|
+
}
|
|
18
23
|
}
|
|
19
24
|
return value;
|
|
20
25
|
});
|
|
@@ -22,4 +27,5 @@ export async function transformContentPage(pagePath, options) {
|
|
|
22
27
|
const isLocalPath = (_) => isString(_) && _.length < 512 && !isURL(_);
|
|
23
28
|
const isString = (_) => Boolean(_ && typeof _ === 'string');
|
|
24
29
|
const isURL = (src) => ['data:', 'https:', 'http:'].some((proto) => src.startsWith(proto));
|
|
30
|
+
const isPicture = (_) => Boolean(_ && isLocalPath(_?.src));
|
|
25
31
|
//# sourceMappingURL=transformContentPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformContentPage.js","sourceRoot":"","sources":["../../src/content-page-repository/transformContentPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,OAA8B;IAE9B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEjD,iEAAiE;IACjE,OAAO,OAAO,CAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;QAC9E,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"transformContentPage.js","sourceRoot":"","sources":["../../src/content-page-repository/transformContentPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,OAA8B;IAE9B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEjD,iEAAiE;IACjE,OAAO,OAAO,CAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;QAC9E,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEtE,IAAI,UAAU,EAAE;YACd,OAAO,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACvC;aAAM,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI;gBACF,OAAO,MAAM,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;aACzD;YAAC,OAAO,EAAE,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,QAAQ,CAAC,CAAC;gBACvE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACnB;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,CAAM,EAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AAE9E,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnG,MAAM,SAAS,GAAG,CAAC,CAAM,EAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ImageSize } from '../model/ImageSize';
|
|
2
|
+
import type { TransformationOptions } from './TransformationOptions';
|
|
3
|
+
import type { ImgSource } from '../model/Picture';
|
|
4
|
+
declare type TransformImgParams = {
|
|
5
|
+
pagePath: string;
|
|
6
|
+
src: string;
|
|
7
|
+
containerSize?: ImageSize;
|
|
8
|
+
transformationOptions: TransformationOptions & ImgSource;
|
|
9
|
+
};
|
|
10
|
+
export declare function transformImg({ pagePath, src, containerSize, transformationOptions, }: TransformImgParams): Promise<string>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import util from 'util';
|
|
4
|
+
import sharp from 'sharp';
|
|
5
|
+
import { transformSrc } from './transformSrc.js';
|
|
6
|
+
import { isPictureSizeEmpty } from '../utils/isPictureSizeEmpty.js';
|
|
7
|
+
const mkdir = util.promisify(fs.mkdir);
|
|
8
|
+
export async function transformImg({ pagePath, src, containerSize, transformationOptions, }) {
|
|
9
|
+
if (!src) {
|
|
10
|
+
return '';
|
|
11
|
+
}
|
|
12
|
+
const { contentDir, publicDir, format, options, size, alignment } = transformationOptions;
|
|
13
|
+
const pageDir = path.dirname(pagePath);
|
|
14
|
+
const imgPath = `${pageDir}/${src}`;
|
|
15
|
+
let chain = sharp(imgPath);
|
|
16
|
+
const targetSize = getPictureSize(size, containerSize);
|
|
17
|
+
if (targetSize) {
|
|
18
|
+
chain = resizeImg(chain, targetSize, getResizeFit(targetSize));
|
|
19
|
+
}
|
|
20
|
+
if (containerSize) {
|
|
21
|
+
chain = resizeImg(chain, containerSize);
|
|
22
|
+
// Save intermediate transform result to modify further
|
|
23
|
+
const { data } = await chain.toBuffer({ resolveWithObject: true });
|
|
24
|
+
chain = resizeImg(sharp(data), getCompositionResizeSize(containerSize, targetSize), getResizeFit(targetSize));
|
|
25
|
+
chain = await compositeImg({ chain, containerSize, alignment });
|
|
26
|
+
}
|
|
27
|
+
if (format) {
|
|
28
|
+
chain = chain.toFormat(format, options);
|
|
29
|
+
}
|
|
30
|
+
const transformedSrc = transformSrc(src, transformationOptions);
|
|
31
|
+
const transformedImgPath = `${publicDir}/${path.relative(contentDir, `${path.dirname(pagePath)}/${transformedSrc}`)}`;
|
|
32
|
+
await mkdir(path.dirname(transformedImgPath), { recursive: true });
|
|
33
|
+
try {
|
|
34
|
+
await chain.toFile(transformedImgPath);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
console.error(e);
|
|
38
|
+
}
|
|
39
|
+
return transformedSrc;
|
|
40
|
+
}
|
|
41
|
+
function createBackgroundImageChain({ width, height }) {
|
|
42
|
+
const channels = 4;
|
|
43
|
+
const rgbaColor = 0x00000000;
|
|
44
|
+
const canvas = Buffer.alloc(width * height * channels, rgbaColor);
|
|
45
|
+
return sharp(canvas, { raw: { width, height, channels } });
|
|
46
|
+
}
|
|
47
|
+
function resizeImg(chain, size, options) {
|
|
48
|
+
return chain.resize(size?.width, size?.height, {
|
|
49
|
+
fit: sharp.fit.fill,
|
|
50
|
+
background: { r: 0, g: 0, b: 0, alpha: 0 },
|
|
51
|
+
...options,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
async function compositeImg({ chain, containerSize, alignment, }) {
|
|
55
|
+
const { data } = await chain.toBuffer({ resolveWithObject: true });
|
|
56
|
+
return createBackgroundImageChain(containerSize).composite([
|
|
57
|
+
{
|
|
58
|
+
input: data,
|
|
59
|
+
gravity: alignment,
|
|
60
|
+
},
|
|
61
|
+
]);
|
|
62
|
+
}
|
|
63
|
+
function getPictureSize(size, containerSize) {
|
|
64
|
+
// If containerSize is undefined intrinsic dimensions of image will be used then.
|
|
65
|
+
return isPictureSizeEmpty(size) ? containerSize : size;
|
|
66
|
+
}
|
|
67
|
+
function getCompositionResizeSize(containerSize, size = {}) {
|
|
68
|
+
const { width, height } = size;
|
|
69
|
+
const { width: containerWidth, height: containerHeight } = containerSize;
|
|
70
|
+
let widthRatio = 0;
|
|
71
|
+
let heightRatio = 0;
|
|
72
|
+
if (!(width || height)) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
if (width) {
|
|
76
|
+
widthRatio = containerWidth / width;
|
|
77
|
+
}
|
|
78
|
+
if (height) {
|
|
79
|
+
heightRatio = containerHeight / height;
|
|
80
|
+
}
|
|
81
|
+
return widthRatio > heightRatio
|
|
82
|
+
? { width: Math.min(Number(width), containerWidth) }
|
|
83
|
+
: { height: Math.min(Number(height), containerHeight) };
|
|
84
|
+
}
|
|
85
|
+
function getResizeFit(size) {
|
|
86
|
+
/*
|
|
87
|
+
Editor behaviour with one dimension present: resize by given dimension maintaining aspect ratio. (fit: contain)
|
|
88
|
+
With two dimensions present: resize trying to fill given dimensions (fit: fill)
|
|
89
|
+
*/
|
|
90
|
+
return {
|
|
91
|
+
fit: size?.width && size?.height ? sharp.fit.fill : sharp.fit.contain,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=transformImg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformImg.js","sourceRoot":"","sources":["../../src/content-page-repository/transformImg.ts"],"names":[],"mappings":"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"}
|