@comet/cms-api 8.6.0-canary-20251107090531 → 8.6.0-canary-20251110073404
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/lib/dam/images/images.util.d.ts +12 -0
- package/lib/dam/images/images.util.d.ts.map +1 -0
- package/lib/dam/images/images.util.js +23 -0
- package/lib/dam/images/images.util.js.map +1 -0
- package/lib/dam/images/validators/is-valid-aspect-ratio.validator.d.ts.map +1 -1
- package/lib/dam/images/validators/is-valid-aspect-ratio.validator.js +1 -1
- package/lib/dam/images/validators/is-valid-aspect-ratio.validator.js.map +1 -1
- package/lib/file-utils/images.util.d.ts +0 -7
- package/lib/file-utils/images.util.d.ts.map +1 -1
- package/lib/file-utils/images.util.js +0 -12
- package/lib/file-utils/images.util.js.map +1 -1
- package/lib/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type DamFileImage } from "../files/entities/file-image.entity";
|
|
2
|
+
import { type ImageCropArea } from "./entities/image-crop-area.entity";
|
|
3
|
+
/**
|
|
4
|
+
* Calculate a DAM image's aspect ratio based on a specified crop area.
|
|
5
|
+
* The crop area can be specified by an image's usage (e.g., in a PixelImageBlock) or in the DAM.
|
|
6
|
+
*
|
|
7
|
+
* @param image the DAM image
|
|
8
|
+
* @param cropArea the crop area
|
|
9
|
+
* @returns the calculated aspect ratio
|
|
10
|
+
*/
|
|
11
|
+
export declare function calculateInheritAspectRatio(image: DamFileImage, cropArea: ImageCropArea): number;
|
|
12
|
+
//# sourceMappingURL=images.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"images.util.d.ts","sourceRoot":"","sources":["../../../src/dam/images/images.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAUhG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateInheritAspectRatio = calculateInheritAspectRatio;
|
|
4
|
+
/**
|
|
5
|
+
* Calculate a DAM image's aspect ratio based on a specified crop area.
|
|
6
|
+
* The crop area can be specified by an image's usage (e.g., in a PixelImageBlock) or in the DAM.
|
|
7
|
+
*
|
|
8
|
+
* @param image the DAM image
|
|
9
|
+
* @param cropArea the crop area
|
|
10
|
+
* @returns the calculated aspect ratio
|
|
11
|
+
*/
|
|
12
|
+
function calculateInheritAspectRatio(image, cropArea) {
|
|
13
|
+
if (cropArea.focalPoint === "SMART") {
|
|
14
|
+
return image.width / image.height;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
if (cropArea.width === undefined || cropArea.height === undefined) {
|
|
18
|
+
throw new Error("Missing crop dimensions");
|
|
19
|
+
}
|
|
20
|
+
return (cropArea.width * image.width) / 100 / ((cropArea.height * image.height) / 100);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=images.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"images.util.js","sourceRoot":"","sources":["../../../src/dam/images/images.util.ts"],"names":[],"mappings":";;AAWA,kEAUC;AAlBD;;;;;;;GAOG;AACH,SAAgB,2BAA2B,CAAC,KAAmB,EAAE,QAAuB;IACpF,IAAI,QAAQ,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IACtC,CAAC;SAAM,CAAC;QACJ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAC3F,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-valid-aspect-ratio.validator.d.ts","sourceRoot":"","sources":["../../../../src/dam/images/validators/is-valid-aspect-ratio.validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,iBAAiB,EAAuB,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"is-valid-aspect-ratio.validator.d.ts","sourceRoot":"","sources":["../../../../src/dam/images/validators/is-valid-aspect-ratio.validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,iBAAiB,EAAuB,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,eAAO,MAAM,uBAAuB,GAAI,oBAAoB,iBAAiB,MAEjE,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,MAAM,KAAG,IAS/D,CAAC;AAEF,qBAEa,iCAAkC,YAAW,4BAA4B;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADQ,MAAM,EAAE,SAAS,EACrC,YAAY,EAAE,YAAY;IAGzC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBzF,cAAc,IAAI,MAAM;CAG3B"}
|
|
@@ -24,9 +24,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
24
24
|
exports.IsValidImageAspectRatioConstraint = exports.IsValidImageAspectRatio = void 0;
|
|
25
25
|
const common_1 = require("@nestjs/common");
|
|
26
26
|
const class_validator_1 = require("class-validator");
|
|
27
|
-
const images_util_1 = require("../../../file-utils/images.util");
|
|
28
27
|
const dam_constants_1 = require("../../dam.constants");
|
|
29
28
|
const files_service_1 = require("../../files/files.service");
|
|
29
|
+
const images_util_1 = require("../images.util");
|
|
30
30
|
const IsValidImageAspectRatio = (validationOptions) => {
|
|
31
31
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
32
|
return (object, propertyName) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-valid-aspect-ratio.validator.js","sourceRoot":"","sources":["../../../../src/dam/images/validators/is-valid-aspect-ratio.validator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,qDAA0H;
|
|
1
|
+
{"version":3,"file":"is-valid-aspect-ratio.validator.js","sourceRoot":"","sources":["../../../../src/dam/images/validators/is-valid-aspect-ratio.validator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,qDAA0H;AAI1H,uDAAiD;AACjD,6DAAyD;AAEzD,gDAA6D;AAEtD,MAAM,uBAAuB,GAAG,CAAC,iBAAqC,EAAE,EAAE;IAC7E,8DAA8D;IAC9D,OAAO,CAAC,MAA2B,EAAE,YAAoB,EAAQ,EAAE;QAC/D,IAAA,mCAAiB,EAAC;YACd,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,iCAAiC;YAC5C,WAAW,EAAE,EAAE;SAClB,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC,CAAC;AAXW,QAAA,uBAAuB,2BAWlC;AAIK,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAC1C,YACyC,MAAiB,EACrC,YAA0B;QADN,WAAM,GAAN,MAAM,CAAW;QACrC,iBAAY,GAAZ,YAAY,CAAc;IAC5C,CAAC;IAEE,QAAQ,CAAC,KAAa,EAAE,mBAAwC;;;YAClE,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAqB,CAAC;YAEzD,KAAK,MAAM,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBACrE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxE,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,CAAC;gBAC1C,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC,CAAC;gBAEhF,IAAI,KAAK,KAAK,oBAAoB,EAAE,CAAC;oBACjC,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEhE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,kBAAkB,GAAG,IAAA,yCAA2B,EAAC,IAAI,CAAC,KAAK,EAAE,MAAA,MAAM,CAAC,QAAQ,mCAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3G,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC,CAAC;YAEhF,OAAO,KAAK,KAAK,oBAAoB,CAAC;QAC1C,CAAC;KAAA;IAED,cAAc;QACV,OAAO,yBAAyB,CAAC;IACrC,CAAC;CACJ,CAAA;AAlCY,8EAAiC;4CAAjC,iCAAiC;IAF7C,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;IACxD,IAAA,mBAAU,GAAE;IAGJ,WAAA,IAAA,eAAM,EAAC,0BAAU,CAAC,CAAA;6CACY,4BAAY;GAHtC,iCAAiC,CAkC7C"}
|
|
@@ -11,13 +11,6 @@ export interface ImageDimensionsAndCoordinates extends ImageDimensions, ImageCoo
|
|
|
11
11
|
}
|
|
12
12
|
export declare function getMaxDimensionsFromArea(area: ImageDimensions, aspectRatio: number): ImageDimensions;
|
|
13
13
|
export declare function getCenteredPosition(crop: ImageDimensions, area: ImageDimensionsAndCoordinates, focalPointPosition: FocalPoint): ImageCoordinates;
|
|
14
|
-
export declare function calculateInheritAspectRatio(imageDimensions: ImageDimensions, cropArea: {
|
|
15
|
-
focalPoint: "SMART" | "CENTER" | "NORTHWEST" | "NORTHEAST" | "SOUTHWEST" | "SOUTHEAST";
|
|
16
|
-
width?: number;
|
|
17
|
-
height?: number;
|
|
18
|
-
x?: number;
|
|
19
|
-
y?: number;
|
|
20
|
-
}): number;
|
|
21
14
|
export declare function getSupportedMimeType(options: string[], accept?: string): string;
|
|
22
15
|
export {};
|
|
23
16
|
//# sourceMappingURL=images.util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.util.d.ts","sourceRoot":"","sources":["../../src/file-utils/images.util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,UAAU,eAAe;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,gBAAgB;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,6BAA8B,SAAQ,eAAe,EAAE,gBAAgB;CAAG;AAE3F,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,CAcpG;AA2BD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,UAAU,GAAG,gBAAgB,CAYhJ;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"images.util.d.ts","sourceRoot":"","sources":["../../src/file-utils/images.util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,UAAU,eAAe;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,gBAAgB;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,6BAA8B,SAAQ,eAAe,EAAE,gBAAgB;CAAG;AAE3F,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,CAcpG;AA2BD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,UAAU,GAAG,gBAAgB,CAYhJ;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,SAAK,GAAG,MAAM,CAG3E"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getMaxDimensionsFromArea = getMaxDimensionsFromArea;
|
|
4
4
|
exports.getCenteredPosition = getCenteredPosition;
|
|
5
|
-
exports.calculateInheritAspectRatio = calculateInheritAspectRatio;
|
|
6
5
|
exports.getSupportedMimeType = getSupportedMimeType;
|
|
7
6
|
const accept_1 = require("@hapi/accept");
|
|
8
7
|
const focal_point_enum_1 = require("./focal-point.enum");
|
|
@@ -62,17 +61,6 @@ function getCenteredPosition(crop, area, focalPointPosition) {
|
|
|
62
61
|
y = 0; // Can happen because height is rounded and y not
|
|
63
62
|
return { x: x + area.x, y: y + area.y };
|
|
64
63
|
}
|
|
65
|
-
function calculateInheritAspectRatio(imageDimensions, cropArea) {
|
|
66
|
-
if (cropArea.focalPoint === "SMART") {
|
|
67
|
-
return imageDimensions.width / imageDimensions.height;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
if (cropArea.width === undefined || cropArea.height === undefined) {
|
|
71
|
-
throw new Error("Missing crop dimensions");
|
|
72
|
-
}
|
|
73
|
-
return (cropArea.width * imageDimensions.width) / 100 / ((cropArea.height * imageDimensions.height) / 100);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
64
|
function getSupportedMimeType(options, accept = "") {
|
|
77
65
|
const mimeType = (0, accept_1.mediaType)(accept, options);
|
|
78
66
|
return accept.includes(mimeType) ? mimeType : "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.util.js","sourceRoot":"","sources":["../../src/file-utils/images.util.ts"],"names":[],"mappings":";;AAgBA,4DAcC;AA2BD,kDAYC;AAED,
|
|
1
|
+
{"version":3,"file":"images.util.js","sourceRoot":"","sources":["../../src/file-utils/images.util.ts"],"names":[],"mappings":"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"}
|