hsu-utils 0.0.13 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +32 -30
- package/dist/hsu-utils.js +2 -2
- package/dist/hsu-utils.min.js +1 -1
- package/dist/hsu-utils.min.js.LICENSE.txt +1 -1
- package/es/GetStrWidth/index.d.ts +1 -1
- package/es/GetStrWidth/index.js +4 -2
- package/lib/GetStrWidth/index.d.ts +1 -1
- package/lib/GetStrWidth/index.js +4 -1
- package/package.json +59 -59
package/es/GetStrWidth/index.js
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
-
export default function get_string_width(str, font = {}) {
|
1
|
+
export default function get_string_width(str, font = {}, letterSpacing = 0) {
|
2
2
|
const { style = 'normal', variant = 'normal', weight = 'normal', size = 12, lineHeight = 1, family: fontFamily = '微软雅黑' } = font;
|
3
3
|
const canvas = document.createElement('canvas');
|
4
4
|
const ctx = canvas.getContext('2d');
|
5
5
|
ctx.font = `${style} ${variant} ${weight} ${size}px/${lineHeight} ${fontFamily}`;
|
6
6
|
const metrics = ctx.measureText(str);
|
7
|
-
|
7
|
+
let width = +(+metrics.width.toFixed(2) + 0.01).toFixed(2);
|
8
|
+
const _letterSpacing = (str.length > 0 ? str.length - 1 : 0) * letterSpacing;
|
9
|
+
width += _letterSpacing;
|
8
10
|
return width;
|
9
11
|
}
|
package/lib/GetStrWidth/index.js
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
function get_string_width(str, font) {
|
3
|
+
function get_string_width(str, font, letterSpacing) {
|
4
4
|
if (font === void 0) { font = {}; }
|
5
|
+
if (letterSpacing === void 0) { letterSpacing = 0; }
|
5
6
|
var _a = font.style, style = _a === void 0 ? 'normal' : _a, _b = font.variant, variant = _b === void 0 ? 'normal' : _b, _c = font.weight, weight = _c === void 0 ? 'normal' : _c, _d = font.size, size = _d === void 0 ? 12 : _d, _e = font.lineHeight, lineHeight = _e === void 0 ? 1 : _e, _f = font.family, fontFamily = _f === void 0 ? '微软雅黑' : _f;
|
6
7
|
var canvas = document.createElement('canvas');
|
7
8
|
var ctx = canvas.getContext('2d');
|
8
9
|
ctx.font = "".concat(style, " ").concat(variant, " ").concat(weight, " ").concat(size, "px/").concat(lineHeight, " ").concat(fontFamily);
|
9
10
|
var metrics = ctx.measureText(str);
|
10
11
|
var width = +(+metrics.width.toFixed(2) + 0.01).toFixed(2);
|
12
|
+
var _letterSpacing = (str.length > 0 ? str.length - 1 : 0) * letterSpacing;
|
13
|
+
width += _letterSpacing;
|
11
14
|
return width;
|
12
15
|
}
|
13
16
|
exports.default = get_string_width;
|
package/package.json
CHANGED
@@ -1,59 +1,59 @@
|
|
1
|
-
{
|
2
|
-
"name": "hsu-utils",
|
3
|
-
"version": "0.0.
|
4
|
-
"description": "some front-end utils",
|
5
|
-
"repository": "git@github.com:VitaTsui/hsu-utils.git",
|
6
|
-
"author": "VitaHsu <vitahsu7@gmail.com>",
|
7
|
-
"license": "MIT",
|
8
|
-
"main": "lib/index.js",
|
9
|
-
"module": "es/index.js",
|
10
|
-
"unpkg": "dist/hsu-utils.min.js",
|
11
|
-
"files": [
|
12
|
-
"es",
|
13
|
-
"lib",
|
14
|
-
"dist",
|
15
|
-
"package.json",
|
16
|
-
"README.md",
|
17
|
-
"LICENSE"
|
18
|
-
],
|
19
|
-
"sideEffects": [
|
20
|
-
"es/*",
|
21
|
-
"lib/*",
|
22
|
-
"dist/*"
|
23
|
-
],
|
24
|
-
"scripts": {
|
25
|
-
"build": "yarn build:es && yarn build:cjs && rimraf dist && yarn build:umd",
|
26
|
-
"build:es": "rimraf es && tsc -p build/tsconfig.es.json",
|
27
|
-
"build:cjs": "rimraf lib && tsc -p build/tsconfig.cjs.json",
|
28
|
-
"build:umd": "rimraf dist && yarn build:dev && yarn build:prod",
|
29
|
-
"build:dev": "cross-env NODE_ENV=development webpack --config build/webpack.config.js",
|
30
|
-
"build:prod": "cross-env NODE_ENV=production webpack --config build/webpack.config.js",
|
31
|
-
"clear": "rimraf lib && rimraf es && rimraf dist",
|
32
|
-
"test": "jest",
|
33
|
-
"publish:patch": "yarn build && yarn publish --new-version patch",
|
34
|
-
"publish:minor": "yarn build && yarn publish --new-version minor",
|
35
|
-
"publish:major": "yarn build && yarn publish --new-version major",
|
36
|
-
"publish:alpha": "yarn build && yarn publish --tag alpha"
|
37
|
-
},
|
38
|
-
"devDependencies": {
|
39
|
-
"@jest/globals": "^29.5.0",
|
40
|
-
"@testing-library/react-hooks": "^8.0.1",
|
41
|
-
"@types/jest": "^29.5.2",
|
42
|
-
"cross-env": "^7.0.3",
|
43
|
-
"jest": "^29.5.0",
|
44
|
-
"jest-canvas-mock": "^2.5.2",
|
45
|
-
"jest-environment-jsdom": "^29.5.0",
|
46
|
-
"jsdom": "^22.1.0",
|
47
|
-
"rimraf": "^5.0.1",
|
48
|
-
"terser-webpack-plugin": "^5.3.0",
|
49
|
-
"ts-jest": "^29.1.0",
|
50
|
-
"ts-loader": "^9.2.6",
|
51
|
-
"ts-node": "^10.9.1",
|
52
|
-
"typescript": "^5.1.3",
|
53
|
-
"webpack": "^5.65.0",
|
54
|
-
"webpack-cli": "^4.9.1"
|
55
|
-
},
|
56
|
-
"dependencies": {
|
57
|
-
"pdfjs-dist": "2.13.216"
|
58
|
-
}
|
59
|
-
}
|
1
|
+
{
|
2
|
+
"name": "hsu-utils",
|
3
|
+
"version": "0.0.15",
|
4
|
+
"description": "some front-end utils",
|
5
|
+
"repository": "git@github.com:VitaTsui/hsu-utils.git",
|
6
|
+
"author": "VitaHsu <vitahsu7@gmail.com>",
|
7
|
+
"license": "MIT",
|
8
|
+
"main": "lib/index.js",
|
9
|
+
"module": "es/index.js",
|
10
|
+
"unpkg": "dist/hsu-utils.min.js",
|
11
|
+
"files": [
|
12
|
+
"es",
|
13
|
+
"lib",
|
14
|
+
"dist",
|
15
|
+
"package.json",
|
16
|
+
"README.md",
|
17
|
+
"LICENSE"
|
18
|
+
],
|
19
|
+
"sideEffects": [
|
20
|
+
"es/*",
|
21
|
+
"lib/*",
|
22
|
+
"dist/*"
|
23
|
+
],
|
24
|
+
"scripts": {
|
25
|
+
"build": "yarn build:es && yarn build:cjs && rimraf dist && yarn build:umd",
|
26
|
+
"build:es": "rimraf es && tsc -p build/tsconfig.es.json",
|
27
|
+
"build:cjs": "rimraf lib && tsc -p build/tsconfig.cjs.json",
|
28
|
+
"build:umd": "rimraf dist && yarn build:dev && yarn build:prod",
|
29
|
+
"build:dev": "cross-env NODE_ENV=development webpack --config build/webpack.config.js",
|
30
|
+
"build:prod": "cross-env NODE_ENV=production webpack --config build/webpack.config.js",
|
31
|
+
"clear": "rimraf lib && rimraf es && rimraf dist",
|
32
|
+
"test": "jest",
|
33
|
+
"publish:patch": "yarn build && yarn publish --new-version patch",
|
34
|
+
"publish:minor": "yarn build && yarn publish --new-version minor",
|
35
|
+
"publish:major": "yarn build && yarn publish --new-version major",
|
36
|
+
"publish:alpha": "yarn build && yarn publish --tag alpha"
|
37
|
+
},
|
38
|
+
"devDependencies": {
|
39
|
+
"@jest/globals": "^29.5.0",
|
40
|
+
"@testing-library/react-hooks": "^8.0.1",
|
41
|
+
"@types/jest": "^29.5.2",
|
42
|
+
"cross-env": "^7.0.3",
|
43
|
+
"jest": "^29.5.0",
|
44
|
+
"jest-canvas-mock": "^2.5.2",
|
45
|
+
"jest-environment-jsdom": "^29.5.0",
|
46
|
+
"jsdom": "^22.1.0",
|
47
|
+
"rimraf": "^5.0.1",
|
48
|
+
"terser-webpack-plugin": "^5.3.0",
|
49
|
+
"ts-jest": "^29.1.0",
|
50
|
+
"ts-loader": "^9.2.6",
|
51
|
+
"ts-node": "^10.9.1",
|
52
|
+
"typescript": "^5.1.3",
|
53
|
+
"webpack": "^5.65.0",
|
54
|
+
"webpack-cli": "^4.9.1"
|
55
|
+
},
|
56
|
+
"dependencies": {
|
57
|
+
"pdfjs-dist": "2.13.216"
|
58
|
+
}
|
59
|
+
}
|