@mts-pjsc/image-optimize 1.0.7 → 1.1.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 (33) hide show
  1. package/dist/{es5/components → components}/Image.d.ts +0 -0
  2. package/dist/{esnext/components → components}/Image.js +8 -6
  3. package/dist/{es5/helpers → helpers}/check-avif-feature.d.ts +0 -0
  4. package/dist/{esnext/helpers → helpers}/check-avif-feature.js +0 -1
  5. package/dist/{es5/helpers → helpers}/check-webp-feature.d.ts +0 -0
  6. package/dist/{esnext/helpers → helpers}/check-webp-feature.js +0 -1
  7. package/dist/{es5/helpers → helpers}/get-format-features.d.ts +0 -0
  8. package/dist/{esnext/helpers → helpers}/get-format-features.js +2 -3
  9. package/dist/index.d.ts +3 -0
  10. package/dist/index.js +5 -0
  11. package/package.json +6 -6
  12. package/dist/es5/components/Image.js +0 -217
  13. package/dist/es5/components/Image.js.map +0 -1
  14. package/dist/es5/helpers/check-avif-feature.js +0 -17
  15. package/dist/es5/helpers/check-avif-feature.js.map +0 -1
  16. package/dist/es5/helpers/check-webp-feature.js +0 -23
  17. package/dist/es5/helpers/check-webp-feature.js.map +0 -1
  18. package/dist/es5/helpers/get-format-features.js +0 -43
  19. package/dist/es5/helpers/get-format-features.js.map +0 -1
  20. package/dist/es5/index.d.ts +0 -3
  21. package/dist/es5/index.js +0 -9
  22. package/dist/es5/index.js.map +0 -1
  23. package/dist/esnext/components/Image.d.ts +0 -60
  24. package/dist/esnext/components/Image.js.map +0 -1
  25. package/dist/esnext/helpers/check-avif-feature.d.ts +0 -1
  26. package/dist/esnext/helpers/check-avif-feature.js.map +0 -1
  27. package/dist/esnext/helpers/check-webp-feature.d.ts +0 -1
  28. package/dist/esnext/helpers/check-webp-feature.js.map +0 -1
  29. package/dist/esnext/helpers/get-format-features.d.ts +0 -3
  30. package/dist/esnext/helpers/get-format-features.js.map +0 -1
  31. package/dist/esnext/index.d.ts +0 -3
  32. package/dist/esnext/index.js +0 -6
  33. package/dist/esnext/index.js.map +0 -1
File without changes
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import { getFormatFeatures } from "../helpers/get-format-features";
3
+ import { getFormatFeatures } from "../helpers/get-format-features.js";
4
4
  export class Image extends React.Component {
5
5
  constructor(props) {
6
6
  super(props);
@@ -36,8 +36,9 @@ export class Image extends React.Component {
36
36
  }
37
37
  render() {
38
38
  return (_jsx("img", { alt: this.props.alt, className: this.props.className, onLoad: () => requestAnimationFrame(() => this.checkImage()), ref: (elem) => {
39
+ var _a, _b;
39
40
  this.thisComponent = elem;
40
- this.props.setRef?.(elem);
41
+ (_b = (_a = this.props).setRef) === null || _b === void 0 ? void 0 : _b.call(_a, elem);
41
42
  }, src: this.resultUrl }));
42
43
  }
43
44
  async checkImage(isResize = false) {
@@ -78,6 +79,7 @@ export class Image extends React.Component {
78
79
  return containerSize * window.devicePixelRatio;
79
80
  }
80
81
  getOptimalSize(containerSize) {
82
+ var _a;
81
83
  let index = Image.controlPoints
82
84
  .findIndex((width) => containerSize <= width);
83
85
  // If bigger then maximum size or NaN
@@ -85,7 +87,7 @@ export class Image extends React.Component {
85
87
  index = Image.controlPoints.length - 1;
86
88
  }
87
89
  // Make manual more or less size
88
- index += this.props.offset ?? 0;
90
+ index += (_a = this.props.offset) !== null && _a !== void 0 ? _a : 0;
89
91
  // If offset make out of boundary
90
92
  if (index < 0) {
91
93
  index = 0;
@@ -117,7 +119,7 @@ export class Image extends React.Component {
117
119
  format = "webp";
118
120
  }
119
121
  else {
120
- format = String(match?.[0])
122
+ format = String(match === null || match === void 0 ? void 0 : match[0])
121
123
  .replace(".", "")
122
124
  .replace("jpg", "jpeg");
123
125
  }
@@ -178,5 +180,5 @@ Image.isWebP = null;
178
180
  * https://tb.mts.ru
179
181
  *
180
182
  */
181
- Image.imgOrigin = location.origin;
182
- //# sourceMappingURL=Image.js.map
183
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, no-constant-binary-expression
184
+ Image.imgOrigin = typeof process === void 0 ? location.origin : "";
@@ -10,4 +10,3 @@ export const checkAvifFeature = () => new Promise((resolve) => {
10
10
  // eslint-disable-next-line max-len
11
11
  img.src = "data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=";
12
12
  });
13
- //# sourceMappingURL=check-avif-feature.js.map
@@ -16,4 +16,3 @@ export const checkWebpFeature = () => new Promise((resolve) => {
16
16
  };
17
17
  img.src = `data:image/webp;base64,${kTestImages.lossless}`;
18
18
  });
19
- //# sourceMappingURL=check-webp-feature.js.map
@@ -1,5 +1,5 @@
1
- import { checkAvifFeature } from "./check-avif-feature";
2
- import { checkWebpFeature } from "./check-webp-feature";
1
+ import { checkAvifFeature } from "./check-avif-feature.js";
2
+ import { checkWebpFeature } from "./check-webp-feature.js";
3
3
  const promisesPool = [];
4
4
  const resolvePromises = (format) => {
5
5
  promisesPool.forEach((resolve) => resolve(format));
@@ -25,4 +25,3 @@ export const getFormatFeatures = () => {
25
25
  promisesPool.push(resolve);
26
26
  });
27
27
  };
28
- //# sourceMappingURL=get-format-features.js.map
@@ -0,0 +1,3 @@
1
+ export * from "./components/Image.js";
2
+ export * from "./helpers/check-avif-feature.js";
3
+ export * from "./helpers/check-webp-feature.js";
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ // Components
2
+ export * from "./components/Image.js";
3
+ // Helpers
4
+ export * from "./helpers/check-avif-feature.js";
5
+ export * from "./helpers/check-webp-feature.js";
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@mts-pjsc/image-optimize",
3
- "version": "1.0.7",
3
+ "version": "1.1.0",
4
4
  "description": "React component for image optimizer",
5
5
  "main": "dist/es5/index.js",
6
6
  "module": "dist/esnext/index.js",
7
7
  "esnext": "dist/esnext/index.js",
8
+ "type": "module",
8
9
  "scripts": {
9
- "eslint": "eslint --fix -c .eslintrc.js --ext .tsx,.ts,.jsx,.js ./src/",
10
+ "eslint": "eslint --fix -c .eslintrc.cjs --ext .tsx,.ts,.jsx,.js ./src/",
10
11
  "test": "echo \"Error: no test specified. For test need deployed microservice part\" && exit 1",
11
- "build:esnext": "tsc --project tsconfig.json",
12
- "build:commonjs": "tsc --project tsconfig.es5.json",
13
- "build": "rm -rf dist/ && npm run build:esnext && npm run build:commonjs",
12
+ "test:module": "node ./dist/index.js",
13
+ "build": "rm -rf dist/ && tsc --project tsconfig.json && npm run test:module",
14
14
  "prepare": "husky install"
15
15
  },
16
16
  "repository": {
@@ -23,7 +23,7 @@
23
23
  ],
24
24
  "lint-staged": {
25
25
  "./src/**/*.(ts|tsx|js|jsx)": [
26
- "eslint --fix -c .eslintrc.js --ext .tsx,.ts,.jsx,.js"
26
+ "eslint --fix -c .eslintrc.cjs --ext .tsx,.ts,.jsx,.js"
27
27
  ]
28
28
  },
29
29
  "author": "MobileTeleSystems",
@@ -1,217 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Image = void 0;
4
- var tslib_1 = require("tslib");
5
- var jsx_runtime_1 = require("react/jsx-runtime");
6
- var React = require("react");
7
- var get_format_features_1 = require("../helpers/get-format-features");
8
- var Image = /** @class */ (function (_super) {
9
- tslib_1.__extends(Image, _super);
10
- function Image(props) {
11
- var _this = _super.call(this, props) || this;
12
- _this.resultUrl = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
13
- _this.resizeCheckTimeout = 0;
14
- _this.thisComponent = null;
15
- _this.sourceUrl = "";
16
- _this.extensionsRegexp = /\.\w+$/u;
17
- _this.lastOptimalSize = 0;
18
- /**
19
- * Serves to prevent recursion when resizing images to determine the optimal size.
20
- * This recursion can be caught with poor layout that does not take into account the scaling of images.
21
- */
22
- _this.checks = 0;
23
- _this.windowResizeHandler = function () { return _this.onWindowResize(); };
24
- return _this;
25
- }
26
- Image.prototype.componentDidMount = function () {
27
- this.shouldComponentUpdate(this.props);
28
- window.addEventListener("resize", this.windowResizeHandler);
29
- };
30
- Image.prototype.shouldComponentUpdate = function (props) {
31
- var _this = this;
32
- if (this.sourceUrl !== props.src) {
33
- this.sourceUrl = props.src;
34
- this.checks = 0;
35
- // Raf for correct image position after redraw outer components
36
- requestAnimationFrame(function () { return _this.checkImage(); });
37
- return true;
38
- }
39
- return false;
40
- };
41
- Image.prototype.componentWillUnmount = function () {
42
- window.removeEventListener("resize", this.windowResizeHandler);
43
- };
44
- Image.prototype.render = function () {
45
- var _this = this;
46
- return ((0, jsx_runtime_1.jsx)("img", { alt: this.props.alt, className: this.props.className, onLoad: function () { return requestAnimationFrame(function () { return _this.checkImage(); }); }, ref: function (elem) {
47
- var _a, _b;
48
- _this.thisComponent = elem;
49
- (_b = (_a = _this.props).setRef) === null || _b === void 0 ? void 0 : _b.call(_a, elem);
50
- }, src: this.resultUrl }));
51
- };
52
- Image.prototype.checkImage = function (isResize) {
53
- if (isResize === void 0) { isResize = false; }
54
- return tslib_1.__awaiter(this, void 0, void 0, function () {
55
- return tslib_1.__generator(this, function (_a) {
56
- switch (_a.label) {
57
- case 0:
58
- if (this.checks > 1) {
59
- return [2 /*return*/];
60
- }
61
- this.checks += 1;
62
- if (!(Image.isAvif === null || Image.isWebP === null)) return [3 /*break*/, 2];
63
- return [4 /*yield*/, this.initImageFormats()];
64
- case 1:
65
- _a.sent();
66
- _a.label = 2;
67
- case 2:
68
- this.processImage(isResize);
69
- return [2 /*return*/];
70
- }
71
- });
72
- });
73
- };
74
- Image.prototype.processImage = function (isResize) {
75
- var containerSize = this.getContainerSize();
76
- var optimalSize = this.getOptimalSize(containerSize);
77
- this.showWarningOnResize(isResize, optimalSize);
78
- var url = this.makeResultUrl(optimalSize);
79
- this.applyResultUrl(url);
80
- this.showResultInLog(containerSize, optimalSize);
81
- };
82
- Image.prototype.onWindowResize = function () {
83
- var _this = this;
84
- if (this.resizeCheckTimeout) {
85
- clearTimeout(this.resizeCheckTimeout);
86
- }
87
- this.resizeCheckTimeout = window.setTimeout(function () {
88
- _this.checks = 0;
89
- _this.checkImage(true);
90
- }, 500);
91
- };
92
- Image.prototype.getContainerSize = function () {
93
- var containerSize = 0;
94
- var element = this.thisComponent;
95
- while (containerSize < 2 && element) {
96
- containerSize = element.getBoundingClientRect().width ||
97
- Number.parseFloat(getComputedStyle(element).width) || 0;
98
- element = element.parentElement;
99
- }
100
- return containerSize * window.devicePixelRatio;
101
- };
102
- Image.prototype.getOptimalSize = function (containerSize) {
103
- var _a;
104
- var index = Image.controlPoints
105
- .findIndex(function (width) { return containerSize <= width; });
106
- // If bigger then maximum size or NaN
107
- if (index < 0) {
108
- index = Image.controlPoints.length - 1;
109
- }
110
- // Make manual more or less size
111
- index += (_a = this.props.offset) !== null && _a !== void 0 ? _a : 0;
112
- // If offset make out of boundary
113
- if (index < 0) {
114
- index = 0;
115
- }
116
- else if (index >= Image.controlPoints.length) {
117
- index = Image.controlPoints.length - 1;
118
- }
119
- return Image.controlPoints[index];
120
- };
121
- Image.prototype.makeResultUrl = function (optimalSize) {
122
- var sourceUrl = new URL(this.sourceUrl, Image.imgOrigin);
123
- var url = new URL("/optimizer/optimize", location.origin);
124
- url.searchParams.set("src", sourceUrl.toString());
125
- url.searchParams.set("size", String(optimalSize));
126
- if (typeof this.props.quality === "number") {
127
- url.searchParams.set("quality", String(this.props.quality));
128
- }
129
- var format = this.extractImageFormat(sourceUrl.pathname);
130
- url.searchParams.set("format", format);
131
- return url;
132
- };
133
- Image.prototype.extractImageFormat = function (path) {
134
- var format = "";
135
- var match = this.extensionsRegexp.exec(path);
136
- if (Image.isAvif === true) {
137
- format = "avif";
138
- }
139
- else if (Image.isWebP === true) {
140
- format = "webp";
141
- }
142
- else {
143
- format = String(match === null || match === void 0 ? void 0 : match[0])
144
- .replace(".", "")
145
- .replace("jpg", "jpeg");
146
- }
147
- return format;
148
- };
149
- Image.prototype.applyResultUrl = function (url) {
150
- var resultUrl = url.toString();
151
- if (this.resultUrl !== resultUrl && this.thisComponent) {
152
- this.resultUrl = resultUrl;
153
- this.thisComponent.src = this.resultUrl;
154
- }
155
- };
156
- /**
157
- * This function should motivate the developer to make a layout that does not cause resizing.
158
- *
159
- * @param {boolean} isResize
160
- * @param {number} optimalSize
161
- */
162
- Image.prototype.showWarningOnResize = function (isResize, optimalSize) {
163
- if (!isResize &&
164
- this.lastOptimalSize >= 0 &&
165
- this.lastOptimalSize !== optimalSize) {
166
- // eslint-disable-next-line no-console
167
- console.warn("New image size", this.lastOptimalSize, optimalSize, this.sourceUrl);
168
- }
169
- this.lastOptimalSize = optimalSize;
170
- };
171
- Image.prototype.showResultInLog = function (containerSize, optimalSize) {
172
- if (process.env.NODE_ENV !== "production" && Image.isShowDiagnostic) {
173
- // eslint-disable-next-line no-console
174
- console.log([
175
- "🏄 Image optimization:",
176
- "Container size ".concat(containerSize, "px,"),
177
- "optimal size ".concat(optimalSize, ","),
178
- "image ".concat(this.sourceUrl)
179
- ].join(" "));
180
- }
181
- };
182
- Image.prototype.initImageFormats = function () {
183
- return tslib_1.__awaiter(this, void 0, void 0, function () {
184
- var format;
185
- return tslib_1.__generator(this, function (_a) {
186
- switch (_a.label) {
187
- case 0: return [4 /*yield*/, (0, get_format_features_1.getFormatFeatures)()];
188
- case 1:
189
- format = _a.sent();
190
- if (Image.isAvif === null || Image.isWebP === null) {
191
- Image.isAvif = format === "avif";
192
- Image.isWebP = format === "webp";
193
- }
194
- return [2 /*return*/];
195
- }
196
- });
197
- });
198
- };
199
- Image.isShowDiagnostic = false;
200
- Image.controlPoints = [160, 320, 640, 1280, 1920];
201
- Image.isAvif = null;
202
- Image.isWebP = null;
203
- /**
204
- * Change for local development.
205
- *
206
- * The server microservice will not be able to make a request to your localhost.
207
- * Therefore, when developing locally, you must specify a production or development server origin.
208
- *
209
- * Example:
210
- * https://tb.mts.ru
211
- *
212
- */
213
- Image.imgOrigin = location.origin;
214
- return Image;
215
- }(React.Component));
216
- exports.Image = Image;
217
- //# sourceMappingURL=Image.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/components/Image.tsx"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkAvifFeature = void 0;
4
- var checkAvifFeature = function () { return new Promise(function (resolve) {
5
- var img = new Image();
6
- img.onload = function () {
7
- var result = (img.width > 0) && (img.height > 0);
8
- resolve(result);
9
- };
10
- img.onerror = function () {
11
- resolve(false);
12
- };
13
- // eslint-disable-next-line max-len
14
- img.src = "data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=";
15
- }); };
16
- exports.checkAvifFeature = checkAvifFeature;
17
- //# sourceMappingURL=check-avif-feature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"check-avif-feature.js","sourceRoot":"","sources":["../../../src/helpers/check-avif-feature.ts"],"names":[],"mappings":";;;AACO,IAAM,gBAAgB,GAAG,cAAwB,OAAA,IAAI,OAAO,CAAU,UAAC,OAAkC;IAC5G,IAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IACxB,GAAG,CAAC,MAAM,GAAG;QACT,IAAM,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,GAAG,CAAC,OAAO,GAAG;QACV,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;IACF,mCAAmC;IACnC,GAAG,CAAC,GAAG,GAAG,ybAAyb,CAAC;AACxc,CAAC,CAAC,EAXsD,CAWtD,CAAC;AAXU,QAAA,gBAAgB,oBAW1B"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkWebpFeature = void 0;
4
- var kTestImages = {
5
- lossy: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",
6
- lossless: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",
7
- alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",
8
- animation: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////" +
9
- "AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"
10
- };
11
- var checkWebpFeature = function () { return new Promise(function (resolve) {
12
- var img = new Image();
13
- img.onload = function () {
14
- var result = (img.width > 0) && (img.height > 0);
15
- resolve(result);
16
- };
17
- img.onerror = function () {
18
- resolve(false);
19
- };
20
- img.src = "data:image/webp;base64,".concat(kTestImages.lossless);
21
- }); };
22
- exports.checkWebpFeature = checkWebpFeature;
23
- //# sourceMappingURL=check-webp-feature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"check-webp-feature.js","sourceRoot":"","sources":["../../../src/helpers/check-webp-feature.ts"],"names":[],"mappings":";;;AAAA,IAAM,WAAW,GAAG;IAChB,KAAK,EAAE,0DAA0D;IACjE,QAAQ,EAAE,kDAAkD;IAC5D,KAAK,EAAE,kHAAkH;IACzH,SAAS,EAAE,0DAA0D;QACjE,kEAAkE;CACzE,CAAC;AAEK,IAAM,gBAAgB,GAAG,cAAwB,OAAA,IAAI,OAAO,CAAU,UAAC,OAAkC;IAC5G,IAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IACxB,GAAG,CAAC,MAAM,GAAG;QACT,IAAM,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,GAAG,CAAC,OAAO,GAAG;QACV,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;IACF,GAAG,CAAC,GAAG,GAAG,iCAA0B,WAAW,CAAC,QAAQ,CAAE,CAAC;AAC/D,CAAC,CAAC,EAVsD,CAUtD,CAAC;AAVU,QAAA,gBAAgB,oBAU1B"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFormatFeatures = void 0;
4
- var tslib_1 = require("tslib");
5
- var check_avif_feature_1 = require("./check-avif-feature");
6
- var check_webp_feature_1 = require("./check-webp-feature");
7
- var promisesPool = [];
8
- var resolvePromises = function (format) {
9
- promisesPool.forEach(function (resolve) { return resolve(format); });
10
- };
11
- var checkFormats = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
12
- var isAvif, isWebp;
13
- return tslib_1.__generator(this, function (_a) {
14
- switch (_a.label) {
15
- case 0: return [4 /*yield*/, (0, check_avif_feature_1.checkAvifFeature)()];
16
- case 1:
17
- isAvif = _a.sent();
18
- if (isAvif) {
19
- resolvePromises("avif");
20
- return [2 /*return*/];
21
- }
22
- return [4 /*yield*/, (0, check_webp_feature_1.checkWebpFeature)()];
23
- case 2:
24
- isWebp = _a.sent();
25
- if (isWebp) {
26
- resolvePromises("webp");
27
- return [2 /*return*/];
28
- }
29
- resolvePromises(null);
30
- return [2 /*return*/];
31
- }
32
- });
33
- }); };
34
- var getFormatFeatures = function () {
35
- if (promisesPool.length === 0) {
36
- checkFormats();
37
- }
38
- return new Promise(function (resolve) {
39
- promisesPool.push(resolve);
40
- });
41
- };
42
- exports.getFormatFeatures = getFormatFeatures;
43
- //# sourceMappingURL=get-format-features.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-format-features.js","sourceRoot":"","sources":["../../../src/helpers/get-format-features.ts"],"names":[],"mappings":";;;;AACA,2DAAsD;AACtD,2DAAsD;AAKtD,IAAM,YAAY,GAAoC,EAAE,CAAC;AAEzD,IAAM,eAAe,GAAG,UAAC,MAAkB;IACvC,YAAY,CAAC,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,IAAM,YAAY,GAAG;;;;oBACF,qBAAM,IAAA,qCAAgB,GAAE,EAAA;;gBAAjC,MAAM,GAAG,SAAwB;gBACvC,IAAI,MAAM,EAAE;oBACR,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,sBAAO;iBACV;gBAEc,qBAAM,IAAA,qCAAgB,GAAE,EAAA;;gBAAjC,MAAM,GAAG,SAAwB;gBACvC,IAAI,MAAM,EAAE;oBACR,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,sBAAO;iBACV;gBAED,eAAe,CAAC,IAAI,CAAC,CAAC;;;;KACzB,CAAC;AAEK,IAAM,iBAAiB,GAAG;IAC7B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,YAAY,EAAE,CAAC;KAClB;IAED,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;QACvB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B"}
@@ -1,3 +0,0 @@
1
- export * from "./components/Image";
2
- export * from "./helpers/check-avif-feature";
3
- export * from "./helpers/check-webp-feature";
package/dist/es5/index.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- // Components
5
- tslib_1.__exportStar(require("./components/Image"), exports);
6
- // Helpers
7
- tslib_1.__exportStar(require("./helpers/check-avif-feature"), exports);
8
- tslib_1.__exportStar(require("./helpers/check-webp-feature"), exports);
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,aAAa;AACb,6DAAmC;AAEnC,UAAU;AACV,uEAA6C;AAC7C,uEAA6C"}
@@ -1,60 +0,0 @@
1
- import * as React from "react";
2
- export interface IImageOptions {
3
- src: string;
4
- alt: string;
5
- offset?: number;
6
- quality?: number;
7
- className?: string;
8
- setRef?: (elem: HTMLImageElement | null) => void;
9
- }
10
- export declare class Image<P extends IImageOptions> extends React.Component<P> {
11
- static isShowDiagnostic: boolean;
12
- static controlPoints: number[];
13
- private static isAvif;
14
- private static isWebP;
15
- /**
16
- * Change for local development.
17
- *
18
- * The server microservice will not be able to make a request to your localhost.
19
- * Therefore, when developing locally, you must specify a production or development server origin.
20
- *
21
- * Example:
22
- * https://tb.mts.ru
23
- *
24
- */
25
- static imgOrigin: string;
26
- resultUrl: string;
27
- resizeCheckTimeout: number;
28
- thisComponent: HTMLImageElement | null;
29
- protected sourceUrl: string;
30
- protected readonly extensionsRegexp: RegExp;
31
- protected readonly windowResizeHandler: EventListenerOrEventListenerObject;
32
- protected lastOptimalSize: number;
33
- /**
34
- * Serves to prevent recursion when resizing images to determine the optimal size.
35
- * This recursion can be caught with poor layout that does not take into account the scaling of images.
36
- */
37
- protected checks: number;
38
- constructor(props: P);
39
- componentDidMount(): void;
40
- shouldComponentUpdate(props: P): boolean;
41
- componentWillUnmount(): void;
42
- render(): JSX.Element;
43
- protected checkImage(isResize?: boolean): Promise<void>;
44
- protected processImage(isResize: boolean): void;
45
- protected onWindowResize(): void;
46
- protected getContainerSize(): number;
47
- protected getOptimalSize(containerSize: number): number;
48
- protected makeResultUrl(optimalSize: number): URL;
49
- protected extractImageFormat(path: string): string;
50
- protected applyResultUrl(url: URL): void;
51
- /**
52
- * This function should motivate the developer to make a layout that does not cause resizing.
53
- *
54
- * @param {boolean} isResize
55
- * @param {number} optimalSize
56
- */
57
- protected showWarningOnResize(isResize: boolean, optimalSize: number): void;
58
- protected showResultInLog(containerSize: number, optimalSize: number): void;
59
- protected initImageFormats(): Promise<void>;
60
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/components/Image.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare const checkAvifFeature: () => Promise<boolean>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"check-avif-feature.js","sourceRoot":"","sources":["../../../src/helpers/check-avif-feature.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAqB,EAAE,CAAC,IAAI,OAAO,CAAU,CAAC,OAAkC,EAAE,EAAE;IAChH,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IACxB,GAAG,CAAC,MAAM,GAAG,GAAS,EAAE;QACpB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,GAAG,CAAC,OAAO,GAAG,GAAS,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;IACF,mCAAmC;IACnC,GAAG,CAAC,GAAG,GAAG,ybAAyb,CAAC;AACxc,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export declare const checkWebpFeature: () => Promise<boolean>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"check-webp-feature.js","sourceRoot":"","sources":["../../../src/helpers/check-webp-feature.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAChB,KAAK,EAAE,0DAA0D;IACjE,QAAQ,EAAE,kDAAkD;IAC5D,KAAK,EAAE,kHAAkH;IACzH,SAAS,EAAE,0DAA0D;QACjE,kEAAkE;CACzE,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAqB,EAAE,CAAC,IAAI,OAAO,CAAU,CAAC,OAAkC,EAAE,EAAE;IAChH,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IACxB,GAAG,CAAC,MAAM,GAAG,GAAS,EAAE;QACpB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,GAAG,CAAC,OAAO,GAAG,GAAS,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;IACF,GAAG,CAAC,GAAG,GAAG,0BAA0B,WAAW,CAAC,QAAQ,EAAE,CAAC;AAC/D,CAAC,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- declare type FormatType = "avif" | "webp" | null;
2
- export declare const getFormatFeatures: () => Promise<FormatType>;
3
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-format-features.js","sourceRoot":"","sources":["../../../src/helpers/get-format-features.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAKtD,MAAM,YAAY,GAAoC,EAAE,CAAC;AAEzD,MAAM,eAAe,GAAG,CAAC,MAAkB,EAAQ,EAAE;IACjD,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;IAC3C,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,IAAI,MAAM,EAAE;QACR,eAAe,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO;KACV;IAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,IAAI,MAAM,EAAE;QACR,eAAe,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO;KACV;IAED,eAAe,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAwB,EAAE;IACvD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,YAAY,EAAE,CAAC;KAClB;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from "./components/Image";
2
- export * from "./helpers/check-avif-feature";
3
- export * from "./helpers/check-webp-feature";
@@ -1,6 +0,0 @@
1
- // Components
2
- export * from "./components/Image";
3
- // Helpers
4
- export * from "./helpers/check-avif-feature";
5
- export * from "./helpers/check-webp-feature";
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,cAAc,oBAAoB,CAAC;AAEnC,UAAU;AACV,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}