@antsoo-lib/utils 0.0.1

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/dist/index.cjs ADDED
@@ -0,0 +1,286 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ addFn: () => addFn,
34
+ computeGoodsNumFn: () => computeGoodsNumFn,
35
+ computeGoodsWeightFn: () => computeGoodsWeightFn,
36
+ computeNoTaxAmount2Fn: () => computeNoTaxAmount2Fn,
37
+ computeNoTaxAmountFn: () => computeNoTaxAmountFn,
38
+ computeNoTaxPrice2Fn: () => computeNoTaxPrice2Fn,
39
+ computeNoTaxPriceFn: () => computeNoTaxPriceFn,
40
+ computePrice2Fn: () => computePrice2Fn,
41
+ computePriceFn: () => computePriceFn,
42
+ computeTaxAmount2Fn: () => computeTaxAmount2Fn,
43
+ computeTaxAmountFn: () => computeTaxAmountFn,
44
+ computeTaxFn: () => computeTaxFn,
45
+ computeTaxRateFn: () => computeTaxRateFn,
46
+ computeWeightFn: () => computeWeightFn,
47
+ divideFn: () => divideFn,
48
+ formatNumber: () => formatNumber,
49
+ getCookie: () => getCookie,
50
+ hasCookie: () => hasCookie,
51
+ isSameOrAfterDay: () => isSameOrAfterDay,
52
+ isSameOrBeforeDay: () => isSameOrBeforeDay,
53
+ multiplyFn: () => multiplyFn,
54
+ removeCookie: () => removeCookie,
55
+ setCookie: () => setCookie,
56
+ subtractFn: () => subtractFn,
57
+ sumBy: () => sumBy,
58
+ toThousands: () => toThousands
59
+ });
60
+ module.exports = __toCommonJS(index_exports);
61
+
62
+ // src/date.ts
63
+ var import_dayjs = __toESM(require("dayjs"), 1);
64
+ function isSameOrAfterDay(date, day) {
65
+ return (0, import_dayjs.default)(date).isSame((0, import_dayjs.default)(day), "day") || (0, import_dayjs.default)(date).isAfter((0, import_dayjs.default)(day), "day");
66
+ }
67
+ function isSameOrBeforeDay(date, day) {
68
+ return (0, import_dayjs.default)(date).isSame((0, import_dayjs.default)(day), "day") || (0, import_dayjs.default)(date).isBefore((0, import_dayjs.default)(day), "day");
69
+ }
70
+
71
+ // src/math.ts
72
+ var import_lodash_es = require("lodash-es");
73
+ var import_mathjs = require("mathjs");
74
+ var computeTaxAmountFn = (weight, price) => {
75
+ if (!(0, import_lodash_es.isFinite)(price) || !(0, import_lodash_es.isFinite)(weight)) return 0;
76
+ const weightBig = (0, import_mathjs.bignumber)(weight);
77
+ const priceBig = (0, import_mathjs.bignumber)(price);
78
+ const value = Number((0, import_mathjs.multiply)(weightBig, priceBig));
79
+ return value;
80
+ };
81
+ var computeTaxAmount2Fn = (weight, price) => {
82
+ if (!(0, import_lodash_es.isFinite)(price) || !(0, import_lodash_es.isFinite)(weight)) return 0;
83
+ const weightBig = (0, import_mathjs.bignumber)(weight);
84
+ const priceBig = (0, import_mathjs.bignumber)(price);
85
+ const value = Number((0, import_mathjs.multiply)(weightBig, priceBig));
86
+ return value;
87
+ };
88
+ var computePriceFn = (taxAmount, weight) => {
89
+ if (!(0, import_lodash_es.isFinite)(taxAmount) || !(0, import_lodash_es.isFinite)(weight) || weight <= 0) return 0;
90
+ const taxAmountBig = (0, import_mathjs.bignumber)(taxAmount);
91
+ const weightBig = (0, import_mathjs.bignumber)(weight);
92
+ const value = Number((0, import_mathjs.divide)(taxAmountBig, weightBig));
93
+ return value;
94
+ };
95
+ var computeWeightFn = (taxAmount, price) => {
96
+ if (!(0, import_lodash_es.isFinite)(taxAmount) || !(0, import_lodash_es.isFinite)(price) || price <= 0) return 0;
97
+ const taxAmountBig = (0, import_mathjs.bignumber)(taxAmount);
98
+ const priceBig = (0, import_mathjs.bignumber)(price);
99
+ const value = Number((0, import_mathjs.divide)(taxAmountBig, priceBig));
100
+ return value;
101
+ };
102
+ var computePrice2Fn = (noTaxPrice, taxRate) => {
103
+ if (!(0, import_lodash_es.isFinite)(noTaxPrice) || !(0, import_lodash_es.isFinite)(taxRate)) return 0;
104
+ const noTaxPriceBig = (0, import_mathjs.bignumber)(noTaxPrice);
105
+ const taxRateBig = (0, import_mathjs.divide)(taxRate, 100);
106
+ const value = Number((0, import_mathjs.multiply)(noTaxPriceBig, (0, import_mathjs.add)(1, taxRateBig)));
107
+ return value;
108
+ };
109
+ var computeNoTaxPriceFn = (price, taxRate) => {
110
+ if (!(0, import_lodash_es.isFinite)(price) || !(0, import_lodash_es.isFinite)(taxRate)) return 0;
111
+ const priceBig = (0, import_mathjs.bignumber)(price);
112
+ const taxRateBig = (0, import_mathjs.divide)(taxRate, 100);
113
+ const value = Number((0, import_mathjs.divide)(priceBig, (0, import_mathjs.add)(1, taxRateBig)));
114
+ return value;
115
+ };
116
+ var computeTaxRateFn = (price, noTaxPrice) => {
117
+ if (!(0, import_lodash_es.isFinite)(price) || !(0, import_lodash_es.isFinite)(noTaxPrice)) return 0;
118
+ const priceBig = (0, import_mathjs.bignumber)(price);
119
+ const noTaxPriceBig = (0, import_mathjs.bignumber)(noTaxPrice);
120
+ const value = Number((0, import_mathjs.subtract)((0, import_mathjs.divide)(priceBig, noTaxPriceBig), 1));
121
+ return value;
122
+ };
123
+ var computeNoTaxPrice2Fn = (noTaxAmount, weight) => {
124
+ if (!(0, import_lodash_es.isFinite)(noTaxAmount) || !(0, import_lodash_es.isFinite)(weight) || weight <= 0) return 0;
125
+ const noTaxAmountBig = (0, import_mathjs.bignumber)(noTaxAmount);
126
+ const weightBig = (0, import_mathjs.bignumber)(weight);
127
+ const value = Number((0, import_mathjs.divide)(noTaxAmountBig, weightBig));
128
+ return value;
129
+ };
130
+ var computeNoTaxAmountFn = (weight, noTaxPrice) => {
131
+ if (!(0, import_lodash_es.isFinite)(noTaxPrice) || !(0, import_lodash_es.isFinite)(weight)) return 0;
132
+ const weightBig = (0, import_mathjs.bignumber)(weight);
133
+ const noTaxPriceBig = (0, import_mathjs.bignumber)(noTaxPrice);
134
+ const value = Number((0, import_mathjs.multiply)(weightBig, noTaxPriceBig));
135
+ return value;
136
+ };
137
+ var computeNoTaxAmount2Fn = (taxAmount, taxRate) => {
138
+ if (!(0, import_lodash_es.isFinite)(taxAmount) || !(0, import_lodash_es.isFinite)(taxRate)) return 0;
139
+ const taxAmountBig = (0, import_mathjs.bignumber)(taxAmount);
140
+ const taxRateBig = (0, import_mathjs.divide)(taxRate, 100);
141
+ const value = Number((0, import_mathjs.divide)(taxAmountBig, (0, import_mathjs.add)(1, taxRateBig)));
142
+ return value;
143
+ };
144
+ var computeTaxFn = (taxAmount, noTaxAmount) => {
145
+ const taxAmountBig = (0, import_mathjs.bignumber)(taxAmount || 0);
146
+ const noTaxAmountBig = (0, import_mathjs.bignumber)(noTaxAmount || 0);
147
+ const value = Number((0, import_mathjs.subtract)(taxAmountBig, noTaxAmountBig));
148
+ return value;
149
+ };
150
+ var computeGoodsNumFn = (weight, weight1) => {
151
+ if (!(0, import_lodash_es.isFinite)(weight1) || !(0, import_lodash_es.isFinite)(weight) || weight1 <= 0) return 0;
152
+ const weightBig = (0, import_mathjs.bignumber)(weight);
153
+ const weight1Big = (0, import_mathjs.bignumber)(weight1);
154
+ const value = Number((0, import_mathjs.divide)(weightBig, weight1Big));
155
+ return value;
156
+ };
157
+ var computeGoodsWeightFn = (num, weight1) => {
158
+ if (!(0, import_lodash_es.isFinite)(weight1) || !(0, import_lodash_es.isFinite)(num) || weight1 <= 0) return 0;
159
+ const numBig = (0, import_mathjs.bignumber)(num);
160
+ const weight1Big = (0, import_mathjs.bignumber)(weight1);
161
+ const value = Number((0, import_mathjs.multiply)(numBig, weight1Big));
162
+ return value;
163
+ };
164
+ var addFn = (a, b) => {
165
+ if (!(0, import_lodash_es.isFinite)(a) || !(0, import_lodash_es.isFinite)(b)) return 0;
166
+ const aBig = (0, import_mathjs.bignumber)(a);
167
+ const bBig = (0, import_mathjs.bignumber)(b);
168
+ return Number((0, import_mathjs.add)(aBig, bBig));
169
+ };
170
+ function sumBy(arr, key) {
171
+ return arr.reduce((acc, cur) => addFn(acc, Number(cur[key])), 0);
172
+ }
173
+ var subtractFn = (a, b) => {
174
+ if (!(0, import_lodash_es.isFinite)(a) || !(0, import_lodash_es.isFinite)(b)) return 0;
175
+ const aBig = (0, import_mathjs.bignumber)(a);
176
+ const bBig = (0, import_mathjs.bignumber)(b);
177
+ return Number((0, import_mathjs.subtract)(aBig, bBig));
178
+ };
179
+ var multiplyFn = (a, b) => {
180
+ if (!(0, import_lodash_es.isFinite)(a) || !(0, import_lodash_es.isFinite)(b)) return 0;
181
+ const aBig = (0, import_mathjs.bignumber)(a);
182
+ const bBig = (0, import_mathjs.bignumber)(b);
183
+ return Number((0, import_mathjs.multiply)(aBig, bBig));
184
+ };
185
+ var divideFn = (a, b) => {
186
+ if (!(0, import_lodash_es.isFinite)(a) || !(0, import_lodash_es.isFinite)(b) || b === 0) return 0;
187
+ const aBig = (0, import_mathjs.bignumber)(a);
188
+ const bBig = (0, import_mathjs.bignumber)(b);
189
+ return Number((0, import_mathjs.divide)(aBig, bBig));
190
+ };
191
+
192
+ // src/format.ts
193
+ function formatNumber(number, decimals = 2, thousands_sep = ",") {
194
+ if (number === null || number === void 0 || number === "") return "";
195
+ let num = Number.parseFloat(String(number));
196
+ if (Number.isNaN(num)) return "";
197
+ num = Math.round(num * 10 ** decimals) / 10 ** decimals;
198
+ const numStr = num.toFixed(decimals);
199
+ const parts = numStr.split(".");
200
+ if (thousands_sep) {
201
+ const re = /(-?\d+)(\d{3})/;
202
+ while (re.test(parts[0])) {
203
+ parts[0] = parts[0].replace(re, `$1${thousands_sep}$2`);
204
+ }
205
+ }
206
+ return parts.join(".");
207
+ }
208
+ function toThousands(number) {
209
+ if (number === null || number === void 0 || number === "") return "";
210
+ const n = Number(number);
211
+ if (Number.isNaN(n)) return "";
212
+ return n.toLocaleString("en-US");
213
+ }
214
+
215
+ // src/cookie.ts
216
+ function setCookie(name, value, days = 1, path = "/", domain, secure = false) {
217
+ let expires = "";
218
+ if (days) {
219
+ const date = /* @__PURE__ */ new Date();
220
+ date.setTime(date.getTime() + days * 24 * 60 * 60 * 1e3);
221
+ expires = `; expires=${date.toUTCString()}`;
222
+ }
223
+ let cookieString = `${name}=${encodeURIComponent(value)}${expires}; path=${path}`;
224
+ if (domain) {
225
+ cookieString += `; domain=${domain}`;
226
+ }
227
+ if (secure) {
228
+ cookieString += "; secure";
229
+ }
230
+ cookieString += "; SameSite=Lax";
231
+ document.cookie = cookieString;
232
+ }
233
+ function getCookie(name) {
234
+ const nameEQ = `${name}=`;
235
+ const ca = document.cookie.split(";");
236
+ for (let i = 0; i < ca.length; i++) {
237
+ let c = ca[i];
238
+ while (c.charAt(0) === " ") {
239
+ c = c.substring(1, c.length);
240
+ }
241
+ if (c.indexOf(nameEQ) === 0) {
242
+ return decodeURIComponent(c.substring(nameEQ.length, c.length));
243
+ }
244
+ }
245
+ return null;
246
+ }
247
+ function removeCookie(name, path = "/", domain) {
248
+ let cookieString = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${path}`;
249
+ if (domain) {
250
+ cookieString += `; domain=${domain}`;
251
+ }
252
+ document.cookie = cookieString;
253
+ }
254
+ function hasCookie(name) {
255
+ return getCookie(name) !== null;
256
+ }
257
+ // Annotate the CommonJS export names for ESM import in node:
258
+ 0 && (module.exports = {
259
+ addFn,
260
+ computeGoodsNumFn,
261
+ computeGoodsWeightFn,
262
+ computeNoTaxAmount2Fn,
263
+ computeNoTaxAmountFn,
264
+ computeNoTaxPrice2Fn,
265
+ computeNoTaxPriceFn,
266
+ computePrice2Fn,
267
+ computePriceFn,
268
+ computeTaxAmount2Fn,
269
+ computeTaxAmountFn,
270
+ computeTaxFn,
271
+ computeTaxRateFn,
272
+ computeWeightFn,
273
+ divideFn,
274
+ formatNumber,
275
+ getCookie,
276
+ hasCookie,
277
+ isSameOrAfterDay,
278
+ isSameOrBeforeDay,
279
+ multiplyFn,
280
+ removeCookie,
281
+ setCookie,
282
+ subtractFn,
283
+ sumBy,
284
+ toThousands
285
+ });
286
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../index.ts","../src/date.ts","../src/math.ts","../src/format.ts","../src/cookie.ts"],"sourcesContent":["export * from './src/date'\nexport * from './src/math'\nexport * from './src/format'\nexport * from './src/cookie'\n","import dayjs from 'dayjs'\nimport type { Dayjs } from 'dayjs'\n\n/**\n * 校验日期是否与指定日期相同或晚于指定日期\n * @param date 日期\n * @param day 指定日期\n * @returns 是否相同或晚于指定日期\n */\nexport function isSameOrAfterDay(date: string | Dayjs, day: string | Dayjs) {\n return dayjs(date).isSame(dayjs(day), 'day') || dayjs(date).isAfter(dayjs(day), 'day')\n}\n\n/**\n * 校验日期是否与指定日期相同或早于指定日期\n * @param date 日期\n * @param day 指定日期\n * @returns 是否相同或早于指定日期\n */\nexport function isSameOrBeforeDay(date: string | Dayjs, day: string | Dayjs) {\n return dayjs(date).isSame(dayjs(day), 'day') || dayjs(date).isBefore(dayjs(day), 'day')\n}\n","import { isFinite } from 'lodash-es'\nimport { add, bignumber, divide, multiply, subtract } from 'mathjs'\n\n// 含税金额 = 重量 * 含税单价\nexport const computeTaxAmountFn = (weight: number, price: number): number => {\n if (!isFinite(price) || !isFinite(weight)) return 0\n const weightBig = bignumber(weight)\n const priceBig = bignumber(price)\n const value = Number(multiply(weightBig, priceBig))\n return value\n}\n\n// 含税金额 = 重量 * 含税单价(负数反向四舍五入)\nexport const computeTaxAmount2Fn = (weight: number, price: number): number => {\n if (!isFinite(price) || !isFinite(weight)) return 0\n const weightBig = bignumber(weight)\n const priceBig = bignumber(price)\n const value = Number(multiply(weightBig, priceBig))\n return value\n}\n\n// 含税单价 = 含税金额 / 重量\nexport const computePriceFn = (taxAmount: number, weight: number): number => {\n if (!isFinite(taxAmount) || !isFinite(weight) || weight <= 0) return 0\n const taxAmountBig = bignumber(taxAmount)\n const weightBig = bignumber(weight)\n const value = Number(divide(taxAmountBig, weightBig))\n return value\n}\n\n// 重量 = 含税金额 / 含税单价\nexport const computeWeightFn = (taxAmount: number, price: number): number => {\n if (!isFinite(taxAmount) || !isFinite(price) || price <= 0) return 0\n const taxAmountBig = bignumber(taxAmount)\n const priceBig = bignumber(price)\n const value = Number(divide(taxAmountBig, priceBig))\n return value\n}\n\n// 含税单价 = 无税单价 * (1 + 税率)\nexport const computePrice2Fn = (noTaxPrice: number, taxRate: number): number => {\n if (!isFinite(noTaxPrice) || !isFinite(taxRate)) return 0\n const noTaxPriceBig = bignumber(noTaxPrice)\n const taxRateBig = divide(taxRate, 100)\n const value = Number(multiply(noTaxPriceBig, add(1, taxRateBig)))\n return value\n}\n\n// 无税单价 = 含税单价 / (1 + 税率)\nexport const computeNoTaxPriceFn = (price: number, taxRate: number): number => {\n if (!isFinite(price) || !isFinite(taxRate)) return 0\n const priceBig = bignumber(price)\n const taxRateBig = divide(taxRate, 100)\n const value = Number(divide(priceBig, add(1, taxRateBig)))\n return value\n}\n\n// 税率 = 含税单价 / 无税单价 - 1\nexport const computeTaxRateFn = (price: number, noTaxPrice: number): number => {\n if (!isFinite(price) || !isFinite(noTaxPrice)) return 0\n const priceBig = bignumber(price)\n const noTaxPriceBig = bignumber(noTaxPrice)\n const value = Number(subtract(divide(priceBig, noTaxPriceBig), 1))\n return value\n}\n\n// 无税单价 = 无税金额 / 重量\nexport const computeNoTaxPrice2Fn = (noTaxAmount: number, weight: number): number => {\n if (!isFinite(noTaxAmount) || !isFinite(weight) || weight <= 0) return 0\n const noTaxAmountBig = bignumber(noTaxAmount)\n const weightBig = bignumber(weight)\n const value = Number(divide(noTaxAmountBig, weightBig))\n return value\n}\n\n// 无税金额 = 重量 * 无税单价\nexport const computeNoTaxAmountFn = (weight: number, noTaxPrice: number): number => {\n if (!isFinite(noTaxPrice) || !isFinite(weight)) return 0\n const weightBig = bignumber(weight)\n const noTaxPriceBig = bignumber(noTaxPrice)\n const value = Number(multiply(weightBig, noTaxPriceBig))\n return value\n}\n\n// 无税金额 = 含税金额 / (1 + 税率)\nexport const computeNoTaxAmount2Fn = (taxAmount: number, taxRate: number): number => {\n if (!isFinite(taxAmount) || !isFinite(taxRate)) return 0\n const taxAmountBig = bignumber(taxAmount)\n const taxRateBig = divide(taxRate, 100)\n const value = Number(divide(taxAmountBig, add(1, taxRateBig)))\n return value\n}\n\n// 税额 = 含税金额 - 无税金额\nexport const computeTaxFn = (taxAmount: number, noTaxAmount: number): number => {\n const taxAmountBig = bignumber(taxAmount || 0)\n const noTaxAmountBig = bignumber(noTaxAmount || 0)\n const value = Number(subtract(taxAmountBig, noTaxAmountBig))\n return value\n}\n\n// 数量 = 重量 / 单重\nexport const computeGoodsNumFn = (weight: number, weight1: number): number => {\n if (!isFinite(weight1) || !isFinite(weight) || weight1 <= 0) return 0\n const weightBig = bignumber(weight)\n const weight1Big = bignumber(weight1)\n const value = Number(divide(weightBig, weight1Big))\n return value\n}\n\n// 重量 = 数量 * 单重\nexport const computeGoodsWeightFn = (num: number, weight1: number): number => {\n if (!isFinite(weight1) || !isFinite(num) || weight1 <= 0) return 0\n const numBig = bignumber(num)\n const weight1Big = bignumber(weight1)\n const value = Number(multiply(numBig, weight1Big))\n return value\n}\n\n// ==================== 通用:加减乘除(BigNumber 计算) ====================\n// 加法:a + b\nexport const addFn = (a: number, b: number): number => {\n if (!isFinite(a) || !isFinite(b)) return 0\n const aBig = bignumber(a)\n const bBig = bignumber(b)\n return Number(add(aBig, bBig))\n}\n\n/**\n * 合计\n * @param arr 数组\n * @param key 键名\n * @returns 合计值\n */\nexport function sumBy<T>(arr: T[], key: keyof T): number {\n return arr.reduce((acc, cur) => addFn(acc, Number(cur[key])), 0)\n}\n\n// 减法:a - b\nexport const subtractFn = (a: number, b: number): number => {\n if (!isFinite(a) || !isFinite(b)) return 0\n const aBig = bignumber(a)\n const bBig = bignumber(b)\n return Number(subtract(aBig, bBig))\n}\n\n// 乘法:a × b\nexport const multiplyFn = (a: number, b: number): number => {\n if (!isFinite(a) || !isFinite(b)) return 0\n const aBig = bignumber(a)\n const bBig = bignumber(b)\n return Number(multiply(aBig, bBig))\n}\n\n// 除法:a ÷ b(b <= 0 时返回 0)\nexport const divideFn = (a: number, b: number): number => {\n if (!isFinite(a) || !isFinite(b) || b === 0) return 0\n const aBig = bignumber(a)\n const bBig = bignumber(b)\n return Number(divide(aBig, bBig))\n}\n","/**\n * 格式化数字\n * @param number 输入的数字\n * @param decimals 保留小数位数\n * @param thousands_sep 千分位分隔符\n * @returns 格式化后的字符串\n */\nexport function formatNumber(\n number: number | string | null | undefined,\n decimals = 2,\n thousands_sep = ',',\n): string {\n if (number === null || number === undefined || number === '') return ''\n\n let num = Number.parseFloat(String(number))\n if (Number.isNaN(num)) return ''\n\n num = Math.round(num * 10 ** decimals) / 10 ** decimals\n const numStr = num.toFixed(decimals)\n\n const parts = numStr.split('.')\n if (thousands_sep) {\n const re = /(-?\\d+)(\\d{3})/\n while (re.test(parts[0])) {\n parts[0] = parts[0].replace(re, `$1${thousands_sep}$2`)\n }\n }\n\n return parts.join('.')\n}\n\n/**\n * 格式化数字\n * @param number 输入的数字\n */\nexport function toThousands(number: number | string): string {\n if (number === null || number === undefined || number === '') return ''\n\n const n = Number(number)\n if (Number.isNaN(n)) return ''\n\n return n.toLocaleString('en-US')\n}\n","/**\n * 设置 Cookie\n * @param name Cookie 名称\n * @param value Cookie 值\n * @param days 过期天数,默认 7 天\n * @param path 路径,默认 '/'\n * @param domain 域名\n * @param secure 是否仅在 HTTPS 下传输\n */\nexport function setCookie(\n name: string,\n value: string,\n days: number = 1,\n path: string = '/',\n domain?: string,\n secure: boolean = false,\n): void {\n let expires = ''\n if (days) {\n const date = new Date()\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000)\n expires = `; expires=${date.toUTCString()}`\n }\n let cookieString = `${name}=${encodeURIComponent(value)}${expires}; path=${path}`\n if (domain) {\n cookieString += `; domain=${domain}`\n }\n if (secure) {\n cookieString += '; secure'\n }\n // 添加 SameSite 属性以提高安全性\n cookieString += '; SameSite=Lax'\n document.cookie = cookieString\n}\n\n/**\n * 获取 Cookie\n * @param name Cookie 名称\n * @returns Cookie 值,如果不存在则返回 null\n */\nexport function getCookie(name: string): string | null {\n const nameEQ = `${name}=`\n const ca = document.cookie.split(';')\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n}\n\n/**\n * 删除 Cookie\n * @param name Cookie 名称\n * @param path 路径,默认 '/'\n * @param domain 域名\n */\nexport function removeCookie(name: string, path: string = '/', domain?: string): void {\n let cookieString = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${path}`\n\n if (domain) {\n cookieString += `; domain=${domain}`\n }\n\n document.cookie = cookieString\n}\n\n/**\n * 检查 Cookie 是否存在\n * @param name Cookie 名称\n * @returns 是否存在\n */\nexport function hasCookie(name: string): boolean {\n return getCookie(name) !== null\n}\n"],"mappings":"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","names":["dayjs"]}
@@ -0,0 +1,87 @@
1
+ import { Dayjs } from 'dayjs';
2
+
3
+ /**
4
+ * 校验日期是否与指定日期相同或晚于指定日期
5
+ * @param date 日期
6
+ * @param day 指定日期
7
+ * @returns 是否相同或晚于指定日期
8
+ */
9
+ declare function isSameOrAfterDay(date: string | Dayjs, day: string | Dayjs): boolean;
10
+ /**
11
+ * 校验日期是否与指定日期相同或早于指定日期
12
+ * @param date 日期
13
+ * @param day 指定日期
14
+ * @returns 是否相同或早于指定日期
15
+ */
16
+ declare function isSameOrBeforeDay(date: string | Dayjs, day: string | Dayjs): boolean;
17
+
18
+ declare const computeTaxAmountFn: (weight: number, price: number) => number;
19
+ declare const computeTaxAmount2Fn: (weight: number, price: number) => number;
20
+ declare const computePriceFn: (taxAmount: number, weight: number) => number;
21
+ declare const computeWeightFn: (taxAmount: number, price: number) => number;
22
+ declare const computePrice2Fn: (noTaxPrice: number, taxRate: number) => number;
23
+ declare const computeNoTaxPriceFn: (price: number, taxRate: number) => number;
24
+ declare const computeTaxRateFn: (price: number, noTaxPrice: number) => number;
25
+ declare const computeNoTaxPrice2Fn: (noTaxAmount: number, weight: number) => number;
26
+ declare const computeNoTaxAmountFn: (weight: number, noTaxPrice: number) => number;
27
+ declare const computeNoTaxAmount2Fn: (taxAmount: number, taxRate: number) => number;
28
+ declare const computeTaxFn: (taxAmount: number, noTaxAmount: number) => number;
29
+ declare const computeGoodsNumFn: (weight: number, weight1: number) => number;
30
+ declare const computeGoodsWeightFn: (num: number, weight1: number) => number;
31
+ declare const addFn: (a: number, b: number) => number;
32
+ /**
33
+ * 合计
34
+ * @param arr 数组
35
+ * @param key 键名
36
+ * @returns 合计值
37
+ */
38
+ declare function sumBy<T>(arr: T[], key: keyof T): number;
39
+ declare const subtractFn: (a: number, b: number) => number;
40
+ declare const multiplyFn: (a: number, b: number) => number;
41
+ declare const divideFn: (a: number, b: number) => number;
42
+
43
+ /**
44
+ * 格式化数字
45
+ * @param number 输入的数字
46
+ * @param decimals 保留小数位数
47
+ * @param thousands_sep 千分位分隔符
48
+ * @returns 格式化后的字符串
49
+ */
50
+ declare function formatNumber(number: number | string | null | undefined, decimals?: number, thousands_sep?: string): string;
51
+ /**
52
+ * 格式化数字
53
+ * @param number 输入的数字
54
+ */
55
+ declare function toThousands(number: number | string): string;
56
+
57
+ /**
58
+ * 设置 Cookie
59
+ * @param name Cookie 名称
60
+ * @param value Cookie 值
61
+ * @param days 过期天数,默认 7 天
62
+ * @param path 路径,默认 '/'
63
+ * @param domain 域名
64
+ * @param secure 是否仅在 HTTPS 下传输
65
+ */
66
+ declare function setCookie(name: string, value: string, days?: number, path?: string, domain?: string, secure?: boolean): void;
67
+ /**
68
+ * 获取 Cookie
69
+ * @param name Cookie 名称
70
+ * @returns Cookie 值,如果不存在则返回 null
71
+ */
72
+ declare function getCookie(name: string): string | null;
73
+ /**
74
+ * 删除 Cookie
75
+ * @param name Cookie 名称
76
+ * @param path 路径,默认 '/'
77
+ * @param domain 域名
78
+ */
79
+ declare function removeCookie(name: string, path?: string, domain?: string): void;
80
+ /**
81
+ * 检查 Cookie 是否存在
82
+ * @param name Cookie 名称
83
+ * @returns 是否存在
84
+ */
85
+ declare function hasCookie(name: string): boolean;
86
+
87
+ export { addFn, computeGoodsNumFn, computeGoodsWeightFn, computeNoTaxAmount2Fn, computeNoTaxAmountFn, computeNoTaxPrice2Fn, computeNoTaxPriceFn, computePrice2Fn, computePriceFn, computeTaxAmount2Fn, computeTaxAmountFn, computeTaxFn, computeTaxRateFn, computeWeightFn, divideFn, formatNumber, getCookie, hasCookie, isSameOrAfterDay, isSameOrBeforeDay, multiplyFn, removeCookie, setCookie, subtractFn, sumBy, toThousands };
@@ -0,0 +1,87 @@
1
+ import { Dayjs } from 'dayjs';
2
+
3
+ /**
4
+ * 校验日期是否与指定日期相同或晚于指定日期
5
+ * @param date 日期
6
+ * @param day 指定日期
7
+ * @returns 是否相同或晚于指定日期
8
+ */
9
+ declare function isSameOrAfterDay(date: string | Dayjs, day: string | Dayjs): boolean;
10
+ /**
11
+ * 校验日期是否与指定日期相同或早于指定日期
12
+ * @param date 日期
13
+ * @param day 指定日期
14
+ * @returns 是否相同或早于指定日期
15
+ */
16
+ declare function isSameOrBeforeDay(date: string | Dayjs, day: string | Dayjs): boolean;
17
+
18
+ declare const computeTaxAmountFn: (weight: number, price: number) => number;
19
+ declare const computeTaxAmount2Fn: (weight: number, price: number) => number;
20
+ declare const computePriceFn: (taxAmount: number, weight: number) => number;
21
+ declare const computeWeightFn: (taxAmount: number, price: number) => number;
22
+ declare const computePrice2Fn: (noTaxPrice: number, taxRate: number) => number;
23
+ declare const computeNoTaxPriceFn: (price: number, taxRate: number) => number;
24
+ declare const computeTaxRateFn: (price: number, noTaxPrice: number) => number;
25
+ declare const computeNoTaxPrice2Fn: (noTaxAmount: number, weight: number) => number;
26
+ declare const computeNoTaxAmountFn: (weight: number, noTaxPrice: number) => number;
27
+ declare const computeNoTaxAmount2Fn: (taxAmount: number, taxRate: number) => number;
28
+ declare const computeTaxFn: (taxAmount: number, noTaxAmount: number) => number;
29
+ declare const computeGoodsNumFn: (weight: number, weight1: number) => number;
30
+ declare const computeGoodsWeightFn: (num: number, weight1: number) => number;
31
+ declare const addFn: (a: number, b: number) => number;
32
+ /**
33
+ * 合计
34
+ * @param arr 数组
35
+ * @param key 键名
36
+ * @returns 合计值
37
+ */
38
+ declare function sumBy<T>(arr: T[], key: keyof T): number;
39
+ declare const subtractFn: (a: number, b: number) => number;
40
+ declare const multiplyFn: (a: number, b: number) => number;
41
+ declare const divideFn: (a: number, b: number) => number;
42
+
43
+ /**
44
+ * 格式化数字
45
+ * @param number 输入的数字
46
+ * @param decimals 保留小数位数
47
+ * @param thousands_sep 千分位分隔符
48
+ * @returns 格式化后的字符串
49
+ */
50
+ declare function formatNumber(number: number | string | null | undefined, decimals?: number, thousands_sep?: string): string;
51
+ /**
52
+ * 格式化数字
53
+ * @param number 输入的数字
54
+ */
55
+ declare function toThousands(number: number | string): string;
56
+
57
+ /**
58
+ * 设置 Cookie
59
+ * @param name Cookie 名称
60
+ * @param value Cookie 值
61
+ * @param days 过期天数,默认 7 天
62
+ * @param path 路径,默认 '/'
63
+ * @param domain 域名
64
+ * @param secure 是否仅在 HTTPS 下传输
65
+ */
66
+ declare function setCookie(name: string, value: string, days?: number, path?: string, domain?: string, secure?: boolean): void;
67
+ /**
68
+ * 获取 Cookie
69
+ * @param name Cookie 名称
70
+ * @returns Cookie 值,如果不存在则返回 null
71
+ */
72
+ declare function getCookie(name: string): string | null;
73
+ /**
74
+ * 删除 Cookie
75
+ * @param name Cookie 名称
76
+ * @param path 路径,默认 '/'
77
+ * @param domain 域名
78
+ */
79
+ declare function removeCookie(name: string, path?: string, domain?: string): void;
80
+ /**
81
+ * 检查 Cookie 是否存在
82
+ * @param name Cookie 名称
83
+ * @returns 是否存在
84
+ */
85
+ declare function hasCookie(name: string): boolean;
86
+
87
+ export { addFn, computeGoodsNumFn, computeGoodsWeightFn, computeNoTaxAmount2Fn, computeNoTaxAmountFn, computeNoTaxPrice2Fn, computeNoTaxPriceFn, computePrice2Fn, computePriceFn, computeTaxAmount2Fn, computeTaxAmountFn, computeTaxFn, computeTaxRateFn, computeWeightFn, divideFn, formatNumber, getCookie, hasCookie, isSameOrAfterDay, isSameOrBeforeDay, multiplyFn, removeCookie, setCookie, subtractFn, sumBy, toThousands };
package/dist/index.js ADDED
@@ -0,0 +1,224 @@
1
+ // src/date.ts
2
+ import dayjs from "dayjs";
3
+ function isSameOrAfterDay(date, day) {
4
+ return dayjs(date).isSame(dayjs(day), "day") || dayjs(date).isAfter(dayjs(day), "day");
5
+ }
6
+ function isSameOrBeforeDay(date, day) {
7
+ return dayjs(date).isSame(dayjs(day), "day") || dayjs(date).isBefore(dayjs(day), "day");
8
+ }
9
+
10
+ // src/math.ts
11
+ import { isFinite } from "lodash-es";
12
+ import { add, bignumber, divide, multiply, subtract } from "mathjs";
13
+ var computeTaxAmountFn = (weight, price) => {
14
+ if (!isFinite(price) || !isFinite(weight)) return 0;
15
+ const weightBig = bignumber(weight);
16
+ const priceBig = bignumber(price);
17
+ const value = Number(multiply(weightBig, priceBig));
18
+ return value;
19
+ };
20
+ var computeTaxAmount2Fn = (weight, price) => {
21
+ if (!isFinite(price) || !isFinite(weight)) return 0;
22
+ const weightBig = bignumber(weight);
23
+ const priceBig = bignumber(price);
24
+ const value = Number(multiply(weightBig, priceBig));
25
+ return value;
26
+ };
27
+ var computePriceFn = (taxAmount, weight) => {
28
+ if (!isFinite(taxAmount) || !isFinite(weight) || weight <= 0) return 0;
29
+ const taxAmountBig = bignumber(taxAmount);
30
+ const weightBig = bignumber(weight);
31
+ const value = Number(divide(taxAmountBig, weightBig));
32
+ return value;
33
+ };
34
+ var computeWeightFn = (taxAmount, price) => {
35
+ if (!isFinite(taxAmount) || !isFinite(price) || price <= 0) return 0;
36
+ const taxAmountBig = bignumber(taxAmount);
37
+ const priceBig = bignumber(price);
38
+ const value = Number(divide(taxAmountBig, priceBig));
39
+ return value;
40
+ };
41
+ var computePrice2Fn = (noTaxPrice, taxRate) => {
42
+ if (!isFinite(noTaxPrice) || !isFinite(taxRate)) return 0;
43
+ const noTaxPriceBig = bignumber(noTaxPrice);
44
+ const taxRateBig = divide(taxRate, 100);
45
+ const value = Number(multiply(noTaxPriceBig, add(1, taxRateBig)));
46
+ return value;
47
+ };
48
+ var computeNoTaxPriceFn = (price, taxRate) => {
49
+ if (!isFinite(price) || !isFinite(taxRate)) return 0;
50
+ const priceBig = bignumber(price);
51
+ const taxRateBig = divide(taxRate, 100);
52
+ const value = Number(divide(priceBig, add(1, taxRateBig)));
53
+ return value;
54
+ };
55
+ var computeTaxRateFn = (price, noTaxPrice) => {
56
+ if (!isFinite(price) || !isFinite(noTaxPrice)) return 0;
57
+ const priceBig = bignumber(price);
58
+ const noTaxPriceBig = bignumber(noTaxPrice);
59
+ const value = Number(subtract(divide(priceBig, noTaxPriceBig), 1));
60
+ return value;
61
+ };
62
+ var computeNoTaxPrice2Fn = (noTaxAmount, weight) => {
63
+ if (!isFinite(noTaxAmount) || !isFinite(weight) || weight <= 0) return 0;
64
+ const noTaxAmountBig = bignumber(noTaxAmount);
65
+ const weightBig = bignumber(weight);
66
+ const value = Number(divide(noTaxAmountBig, weightBig));
67
+ return value;
68
+ };
69
+ var computeNoTaxAmountFn = (weight, noTaxPrice) => {
70
+ if (!isFinite(noTaxPrice) || !isFinite(weight)) return 0;
71
+ const weightBig = bignumber(weight);
72
+ const noTaxPriceBig = bignumber(noTaxPrice);
73
+ const value = Number(multiply(weightBig, noTaxPriceBig));
74
+ return value;
75
+ };
76
+ var computeNoTaxAmount2Fn = (taxAmount, taxRate) => {
77
+ if (!isFinite(taxAmount) || !isFinite(taxRate)) return 0;
78
+ const taxAmountBig = bignumber(taxAmount);
79
+ const taxRateBig = divide(taxRate, 100);
80
+ const value = Number(divide(taxAmountBig, add(1, taxRateBig)));
81
+ return value;
82
+ };
83
+ var computeTaxFn = (taxAmount, noTaxAmount) => {
84
+ const taxAmountBig = bignumber(taxAmount || 0);
85
+ const noTaxAmountBig = bignumber(noTaxAmount || 0);
86
+ const value = Number(subtract(taxAmountBig, noTaxAmountBig));
87
+ return value;
88
+ };
89
+ var computeGoodsNumFn = (weight, weight1) => {
90
+ if (!isFinite(weight1) || !isFinite(weight) || weight1 <= 0) return 0;
91
+ const weightBig = bignumber(weight);
92
+ const weight1Big = bignumber(weight1);
93
+ const value = Number(divide(weightBig, weight1Big));
94
+ return value;
95
+ };
96
+ var computeGoodsWeightFn = (num, weight1) => {
97
+ if (!isFinite(weight1) || !isFinite(num) || weight1 <= 0) return 0;
98
+ const numBig = bignumber(num);
99
+ const weight1Big = bignumber(weight1);
100
+ const value = Number(multiply(numBig, weight1Big));
101
+ return value;
102
+ };
103
+ var addFn = (a, b) => {
104
+ if (!isFinite(a) || !isFinite(b)) return 0;
105
+ const aBig = bignumber(a);
106
+ const bBig = bignumber(b);
107
+ return Number(add(aBig, bBig));
108
+ };
109
+ function sumBy(arr, key) {
110
+ return arr.reduce((acc, cur) => addFn(acc, Number(cur[key])), 0);
111
+ }
112
+ var subtractFn = (a, b) => {
113
+ if (!isFinite(a) || !isFinite(b)) return 0;
114
+ const aBig = bignumber(a);
115
+ const bBig = bignumber(b);
116
+ return Number(subtract(aBig, bBig));
117
+ };
118
+ var multiplyFn = (a, b) => {
119
+ if (!isFinite(a) || !isFinite(b)) return 0;
120
+ const aBig = bignumber(a);
121
+ const bBig = bignumber(b);
122
+ return Number(multiply(aBig, bBig));
123
+ };
124
+ var divideFn = (a, b) => {
125
+ if (!isFinite(a) || !isFinite(b) || b === 0) return 0;
126
+ const aBig = bignumber(a);
127
+ const bBig = bignumber(b);
128
+ return Number(divide(aBig, bBig));
129
+ };
130
+
131
+ // src/format.ts
132
+ function formatNumber(number, decimals = 2, thousands_sep = ",") {
133
+ if (number === null || number === void 0 || number === "") return "";
134
+ let num = Number.parseFloat(String(number));
135
+ if (Number.isNaN(num)) return "";
136
+ num = Math.round(num * 10 ** decimals) / 10 ** decimals;
137
+ const numStr = num.toFixed(decimals);
138
+ const parts = numStr.split(".");
139
+ if (thousands_sep) {
140
+ const re = /(-?\d+)(\d{3})/;
141
+ while (re.test(parts[0])) {
142
+ parts[0] = parts[0].replace(re, `$1${thousands_sep}$2`);
143
+ }
144
+ }
145
+ return parts.join(".");
146
+ }
147
+ function toThousands(number) {
148
+ if (number === null || number === void 0 || number === "") return "";
149
+ const n = Number(number);
150
+ if (Number.isNaN(n)) return "";
151
+ return n.toLocaleString("en-US");
152
+ }
153
+
154
+ // src/cookie.ts
155
+ function setCookie(name, value, days = 1, path = "/", domain, secure = false) {
156
+ let expires = "";
157
+ if (days) {
158
+ const date = /* @__PURE__ */ new Date();
159
+ date.setTime(date.getTime() + days * 24 * 60 * 60 * 1e3);
160
+ expires = `; expires=${date.toUTCString()}`;
161
+ }
162
+ let cookieString = `${name}=${encodeURIComponent(value)}${expires}; path=${path}`;
163
+ if (domain) {
164
+ cookieString += `; domain=${domain}`;
165
+ }
166
+ if (secure) {
167
+ cookieString += "; secure";
168
+ }
169
+ cookieString += "; SameSite=Lax";
170
+ document.cookie = cookieString;
171
+ }
172
+ function getCookie(name) {
173
+ const nameEQ = `${name}=`;
174
+ const ca = document.cookie.split(";");
175
+ for (let i = 0; i < ca.length; i++) {
176
+ let c = ca[i];
177
+ while (c.charAt(0) === " ") {
178
+ c = c.substring(1, c.length);
179
+ }
180
+ if (c.indexOf(nameEQ) === 0) {
181
+ return decodeURIComponent(c.substring(nameEQ.length, c.length));
182
+ }
183
+ }
184
+ return null;
185
+ }
186
+ function removeCookie(name, path = "/", domain) {
187
+ let cookieString = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${path}`;
188
+ if (domain) {
189
+ cookieString += `; domain=${domain}`;
190
+ }
191
+ document.cookie = cookieString;
192
+ }
193
+ function hasCookie(name) {
194
+ return getCookie(name) !== null;
195
+ }
196
+ export {
197
+ addFn,
198
+ computeGoodsNumFn,
199
+ computeGoodsWeightFn,
200
+ computeNoTaxAmount2Fn,
201
+ computeNoTaxAmountFn,
202
+ computeNoTaxPrice2Fn,
203
+ computeNoTaxPriceFn,
204
+ computePrice2Fn,
205
+ computePriceFn,
206
+ computeTaxAmount2Fn,
207
+ computeTaxAmountFn,
208
+ computeTaxFn,
209
+ computeTaxRateFn,
210
+ computeWeightFn,
211
+ divideFn,
212
+ formatNumber,
213
+ getCookie,
214
+ hasCookie,
215
+ isSameOrAfterDay,
216
+ isSameOrBeforeDay,
217
+ multiplyFn,
218
+ removeCookie,
219
+ setCookie,
220
+ subtractFn,
221
+ sumBy,
222
+ toThousands
223
+ };
224
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/date.ts","../src/math.ts","../src/format.ts","../src/cookie.ts"],"sourcesContent":["import dayjs from 'dayjs'\nimport type { Dayjs } from 'dayjs'\n\n/**\n * 校验日期是否与指定日期相同或晚于指定日期\n * @param date 日期\n * @param day 指定日期\n * @returns 是否相同或晚于指定日期\n */\nexport function isSameOrAfterDay(date: string | Dayjs, day: string | Dayjs) {\n return dayjs(date).isSame(dayjs(day), 'day') || dayjs(date).isAfter(dayjs(day), 'day')\n}\n\n/**\n * 校验日期是否与指定日期相同或早于指定日期\n * @param date 日期\n * @param day 指定日期\n * @returns 是否相同或早于指定日期\n */\nexport function isSameOrBeforeDay(date: string | Dayjs, day: string | Dayjs) {\n return dayjs(date).isSame(dayjs(day), 'day') || dayjs(date).isBefore(dayjs(day), 'day')\n}\n","import { isFinite } from 'lodash-es'\nimport { add, bignumber, divide, multiply, subtract } from 'mathjs'\n\n// 含税金额 = 重量 * 含税单价\nexport const computeTaxAmountFn = (weight: number, price: number): number => {\n if (!isFinite(price) || !isFinite(weight)) return 0\n const weightBig = bignumber(weight)\n const priceBig = bignumber(price)\n const value = Number(multiply(weightBig, priceBig))\n return value\n}\n\n// 含税金额 = 重量 * 含税单价(负数反向四舍五入)\nexport const computeTaxAmount2Fn = (weight: number, price: number): number => {\n if (!isFinite(price) || !isFinite(weight)) return 0\n const weightBig = bignumber(weight)\n const priceBig = bignumber(price)\n const value = Number(multiply(weightBig, priceBig))\n return value\n}\n\n// 含税单价 = 含税金额 / 重量\nexport const computePriceFn = (taxAmount: number, weight: number): number => {\n if (!isFinite(taxAmount) || !isFinite(weight) || weight <= 0) return 0\n const taxAmountBig = bignumber(taxAmount)\n const weightBig = bignumber(weight)\n const value = Number(divide(taxAmountBig, weightBig))\n return value\n}\n\n// 重量 = 含税金额 / 含税单价\nexport const computeWeightFn = (taxAmount: number, price: number): number => {\n if (!isFinite(taxAmount) || !isFinite(price) || price <= 0) return 0\n const taxAmountBig = bignumber(taxAmount)\n const priceBig = bignumber(price)\n const value = Number(divide(taxAmountBig, priceBig))\n return value\n}\n\n// 含税单价 = 无税单价 * (1 + 税率)\nexport const computePrice2Fn = (noTaxPrice: number, taxRate: number): number => {\n if (!isFinite(noTaxPrice) || !isFinite(taxRate)) return 0\n const noTaxPriceBig = bignumber(noTaxPrice)\n const taxRateBig = divide(taxRate, 100)\n const value = Number(multiply(noTaxPriceBig, add(1, taxRateBig)))\n return value\n}\n\n// 无税单价 = 含税单价 / (1 + 税率)\nexport const computeNoTaxPriceFn = (price: number, taxRate: number): number => {\n if (!isFinite(price) || !isFinite(taxRate)) return 0\n const priceBig = bignumber(price)\n const taxRateBig = divide(taxRate, 100)\n const value = Number(divide(priceBig, add(1, taxRateBig)))\n return value\n}\n\n// 税率 = 含税单价 / 无税单价 - 1\nexport const computeTaxRateFn = (price: number, noTaxPrice: number): number => {\n if (!isFinite(price) || !isFinite(noTaxPrice)) return 0\n const priceBig = bignumber(price)\n const noTaxPriceBig = bignumber(noTaxPrice)\n const value = Number(subtract(divide(priceBig, noTaxPriceBig), 1))\n return value\n}\n\n// 无税单价 = 无税金额 / 重量\nexport const computeNoTaxPrice2Fn = (noTaxAmount: number, weight: number): number => {\n if (!isFinite(noTaxAmount) || !isFinite(weight) || weight <= 0) return 0\n const noTaxAmountBig = bignumber(noTaxAmount)\n const weightBig = bignumber(weight)\n const value = Number(divide(noTaxAmountBig, weightBig))\n return value\n}\n\n// 无税金额 = 重量 * 无税单价\nexport const computeNoTaxAmountFn = (weight: number, noTaxPrice: number): number => {\n if (!isFinite(noTaxPrice) || !isFinite(weight)) return 0\n const weightBig = bignumber(weight)\n const noTaxPriceBig = bignumber(noTaxPrice)\n const value = Number(multiply(weightBig, noTaxPriceBig))\n return value\n}\n\n// 无税金额 = 含税金额 / (1 + 税率)\nexport const computeNoTaxAmount2Fn = (taxAmount: number, taxRate: number): number => {\n if (!isFinite(taxAmount) || !isFinite(taxRate)) return 0\n const taxAmountBig = bignumber(taxAmount)\n const taxRateBig = divide(taxRate, 100)\n const value = Number(divide(taxAmountBig, add(1, taxRateBig)))\n return value\n}\n\n// 税额 = 含税金额 - 无税金额\nexport const computeTaxFn = (taxAmount: number, noTaxAmount: number): number => {\n const taxAmountBig = bignumber(taxAmount || 0)\n const noTaxAmountBig = bignumber(noTaxAmount || 0)\n const value = Number(subtract(taxAmountBig, noTaxAmountBig))\n return value\n}\n\n// 数量 = 重量 / 单重\nexport const computeGoodsNumFn = (weight: number, weight1: number): number => {\n if (!isFinite(weight1) || !isFinite(weight) || weight1 <= 0) return 0\n const weightBig = bignumber(weight)\n const weight1Big = bignumber(weight1)\n const value = Number(divide(weightBig, weight1Big))\n return value\n}\n\n// 重量 = 数量 * 单重\nexport const computeGoodsWeightFn = (num: number, weight1: number): number => {\n if (!isFinite(weight1) || !isFinite(num) || weight1 <= 0) return 0\n const numBig = bignumber(num)\n const weight1Big = bignumber(weight1)\n const value = Number(multiply(numBig, weight1Big))\n return value\n}\n\n// ==================== 通用:加减乘除(BigNumber 计算) ====================\n// 加法:a + b\nexport const addFn = (a: number, b: number): number => {\n if (!isFinite(a) || !isFinite(b)) return 0\n const aBig = bignumber(a)\n const bBig = bignumber(b)\n return Number(add(aBig, bBig))\n}\n\n/**\n * 合计\n * @param arr 数组\n * @param key 键名\n * @returns 合计值\n */\nexport function sumBy<T>(arr: T[], key: keyof T): number {\n return arr.reduce((acc, cur) => addFn(acc, Number(cur[key])), 0)\n}\n\n// 减法:a - b\nexport const subtractFn = (a: number, b: number): number => {\n if (!isFinite(a) || !isFinite(b)) return 0\n const aBig = bignumber(a)\n const bBig = bignumber(b)\n return Number(subtract(aBig, bBig))\n}\n\n// 乘法:a × b\nexport const multiplyFn = (a: number, b: number): number => {\n if (!isFinite(a) || !isFinite(b)) return 0\n const aBig = bignumber(a)\n const bBig = bignumber(b)\n return Number(multiply(aBig, bBig))\n}\n\n// 除法:a ÷ b(b <= 0 时返回 0)\nexport const divideFn = (a: number, b: number): number => {\n if (!isFinite(a) || !isFinite(b) || b === 0) return 0\n const aBig = bignumber(a)\n const bBig = bignumber(b)\n return Number(divide(aBig, bBig))\n}\n","/**\n * 格式化数字\n * @param number 输入的数字\n * @param decimals 保留小数位数\n * @param thousands_sep 千分位分隔符\n * @returns 格式化后的字符串\n */\nexport function formatNumber(\n number: number | string | null | undefined,\n decimals = 2,\n thousands_sep = ',',\n): string {\n if (number === null || number === undefined || number === '') return ''\n\n let num = Number.parseFloat(String(number))\n if (Number.isNaN(num)) return ''\n\n num = Math.round(num * 10 ** decimals) / 10 ** decimals\n const numStr = num.toFixed(decimals)\n\n const parts = numStr.split('.')\n if (thousands_sep) {\n const re = /(-?\\d+)(\\d{3})/\n while (re.test(parts[0])) {\n parts[0] = parts[0].replace(re, `$1${thousands_sep}$2`)\n }\n }\n\n return parts.join('.')\n}\n\n/**\n * 格式化数字\n * @param number 输入的数字\n */\nexport function toThousands(number: number | string): string {\n if (number === null || number === undefined || number === '') return ''\n\n const n = Number(number)\n if (Number.isNaN(n)) return ''\n\n return n.toLocaleString('en-US')\n}\n","/**\n * 设置 Cookie\n * @param name Cookie 名称\n * @param value Cookie 值\n * @param days 过期天数,默认 7 天\n * @param path 路径,默认 '/'\n * @param domain 域名\n * @param secure 是否仅在 HTTPS 下传输\n */\nexport function setCookie(\n name: string,\n value: string,\n days: number = 1,\n path: string = '/',\n domain?: string,\n secure: boolean = false,\n): void {\n let expires = ''\n if (days) {\n const date = new Date()\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000)\n expires = `; expires=${date.toUTCString()}`\n }\n let cookieString = `${name}=${encodeURIComponent(value)}${expires}; path=${path}`\n if (domain) {\n cookieString += `; domain=${domain}`\n }\n if (secure) {\n cookieString += '; secure'\n }\n // 添加 SameSite 属性以提高安全性\n cookieString += '; SameSite=Lax'\n document.cookie = cookieString\n}\n\n/**\n * 获取 Cookie\n * @param name Cookie 名称\n * @returns Cookie 值,如果不存在则返回 null\n */\nexport function getCookie(name: string): string | null {\n const nameEQ = `${name}=`\n const ca = document.cookie.split(';')\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i]\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length)\n }\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length))\n }\n }\n return null\n}\n\n/**\n * 删除 Cookie\n * @param name Cookie 名称\n * @param path 路径,默认 '/'\n * @param domain 域名\n */\nexport function removeCookie(name: string, path: string = '/', domain?: string): void {\n let cookieString = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${path}`\n\n if (domain) {\n cookieString += `; domain=${domain}`\n }\n\n document.cookie = cookieString\n}\n\n/**\n * 检查 Cookie 是否存在\n * @param name Cookie 名称\n * @returns 是否存在\n */\nexport function hasCookie(name: string): boolean {\n return getCookie(name) !== null\n}\n"],"mappings":"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","names":[]}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@antsoo-lib/utils",
3
+ "type": "module",
4
+ "version": "0.0.1",
5
+ "private": false,
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "license": "MIT",
10
+ "sideEffects": false,
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js",
15
+ "require": "./dist/index.cjs"
16
+ }
17
+ },
18
+ "main": "./dist/index.cjs",
19
+ "module": "./dist/index.js",
20
+ "types": "./dist/index.d.ts",
21
+ "files": [
22
+ "dist"
23
+ ],
24
+ "dependencies": {
25
+ "dayjs": "^1.11.15",
26
+ "lodash-es": "^4.17.21",
27
+ "mathjs": "^14.2.1"
28
+ },
29
+ "devDependencies": {
30
+ "@types/lodash-es": "^4.17.12"
31
+ },
32
+ "scripts": {
33
+ "build": "tsup",
34
+ "dev": "tsup --watch"
35
+ }
36
+ }