@qxs-bns/utils 0.0.17 → 0.0.19
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/es/index.js +2 -0
- package/es/index.js.map +1 -0
- package/es/src/argo-log.js +2 -0
- package/es/src/argo-log.js.map +1 -0
- package/es/src/date-transfer.js +2 -0
- package/es/src/date-transfer.js.map +1 -0
- package/es/src/device.js +2 -0
- package/es/src/device.js.map +1 -0
- package/es/src/file-operations.js +2 -0
- package/es/src/file-operations.js.map +1 -0
- package/es/src/json.js +2 -0
- package/es/src/json.js.map +1 -0
- package/es/src/oss-uploader.js +2 -0
- package/es/src/oss-uploader.js.map +1 -0
- package/es/src/set-guid.js +2 -0
- package/es/src/set-guid.js.map +1 -0
- package/es/src/storage.js +2 -0
- package/es/src/storage.js.map +1 -0
- package/es/src/types.js +2 -0
- package/es/src/types.js.map +1 -0
- package/es/src/use-api.js +2 -0
- package/es/src/use-api.js.map +1 -0
- package/es/src/watermark.js +2 -0
- package/es/src/watermark.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/src/argo-log.js +1 -1
- package/lib/src/argo-log.js.map +1 -1
- package/lib/src/date-transfer.js +1 -1
- package/lib/src/date-transfer.js.map +1 -1
- package/lib/src/device.js +1 -1
- package/lib/src/device.js.map +1 -1
- package/lib/src/file-operations.js +1 -1
- package/lib/src/file-operations.js.map +1 -1
- package/lib/src/json.js +1 -1
- package/lib/src/json.js.map +1 -1
- package/lib/src/oss-uploader.js +1 -1
- package/lib/src/oss-uploader.js.map +1 -1
- package/lib/src/set-guid.js +2 -0
- package/lib/src/set-guid.js.map +1 -0
- package/lib/src/storage.js +1 -1
- package/lib/src/storage.js.map +1 -1
- package/lib/src/types.js +1 -1
- package/lib/src/types.js.map +1 -1
- package/lib/src/use-api.js +1 -1
- package/lib/src/use-api.js.map +1 -1
- package/lib/src/watermark.js +1 -31
- package/lib/src/watermark.js.map +1 -1
- package/package.json +34 -27
- package/{es → types}/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -0
- package/{es → types}/src/argo-log.d.ts +1 -0
- package/types/src/argo-log.d.ts.map +1 -0
- package/{es → types}/src/date-transfer.d.ts +1 -0
- package/types/src/date-transfer.d.ts.map +1 -0
- package/types/src/device.d.ts +18 -0
- package/types/src/device.d.ts.map +1 -0
- package/{es → types}/src/file-operations.d.ts +1 -0
- package/types/src/file-operations.d.ts.map +1 -0
- package/{lib → types}/src/json.d.ts +1 -0
- package/types/src/json.d.ts.map +1 -0
- package/{es → types}/src/oss-uploader.d.ts +2 -2
- package/types/src/oss-uploader.d.ts.map +1 -0
- package/types/src/set-guid.d.ts +5 -0
- package/types/src/set-guid.d.ts.map +1 -0
- package/{lib → types}/src/storage.d.ts +1 -0
- package/types/src/storage.d.ts.map +1 -0
- package/{es → types}/src/types.d.ts +1 -0
- package/types/src/types.d.ts.map +1 -0
- package/{es → types}/src/use-api.d.ts +3 -4
- package/types/src/use-api.d.ts.map +1 -0
- package/{es → types}/src/watermark.d.ts +1 -0
- package/types/src/watermark.d.ts.map +1 -0
- package/types/tsconfig.tsbuildinfo +1 -0
- package/README.md +0 -65
- package/es/_virtual/_commonjs-dynamic-modules.mjs +0 -7
- package/es/_virtual/_commonjs-dynamic-modules.mjs.map +0 -1
- package/es/_virtual/_commonjsHelpers.mjs +0 -7
- package/es/_virtual/_commonjsHelpers.mjs.map +0 -1
- package/es/_virtual/ali-oss/dist/aliyun-oss-sdk.mjs +0 -20195
- package/es/_virtual/ali-oss/dist/aliyun-oss-sdk.mjs.map +0 -1
- package/es/_virtual/aliyun-oss-sdk.mjs +0 -8
- package/es/_virtual/aliyun-oss-sdk.mjs.map +0 -1
- package/es/_virtual/aliyun-oss-sdk2.mjs +0 -5
- package/es/_virtual/aliyun-oss-sdk2.mjs.map +0 -1
- package/es/_virtual/ans-javascript-sdk/sdk/AnalysysAgent_JS_SDK.es6.min.mjs +0 -2142
- package/es/_virtual/ans-javascript-sdk/sdk/AnalysysAgent_JS_SDK.es6.min.mjs.map +0 -1
- package/es/_virtual/xlsx/xlsx.mjs +0 -24583
- package/es/_virtual/xlsx/xlsx.mjs.map +0 -1
- package/es/index.mjs +0 -35
- package/es/index.mjs.map +0 -1
- package/es/src/argo-log.mjs +0 -68
- package/es/src/argo-log.mjs.map +0 -1
- package/es/src/date-transfer.mjs +0 -17
- package/es/src/date-transfer.mjs.map +0 -1
- package/es/src/device.d.ts +0 -4
- package/es/src/device.mjs +0 -24
- package/es/src/device.mjs.map +0 -1
- package/es/src/file-operations.mjs +0 -79
- package/es/src/file-operations.mjs.map +0 -1
- package/es/src/json.d.ts +0 -15
- package/es/src/json.mjs +0 -45
- package/es/src/json.mjs.map +0 -1
- package/es/src/oss-uploader.mjs +0 -89
- package/es/src/oss-uploader.mjs.map +0 -1
- package/es/src/storage.d.ts +0 -26
- package/es/src/storage.mjs +0 -81
- package/es/src/storage.mjs.map +0 -1
- package/es/src/types.mjs +0 -37
- package/es/src/types.mjs.map +0 -1
- package/es/src/use-api.mjs +0 -44
- package/es/src/use-api.mjs.map +0 -1
- package/es/src/watermark.mjs +0 -147
- package/es/src/watermark.mjs.map +0 -1
- package/lib/_virtual/_commonjs-dynamic-modules.js +0 -2
- package/lib/_virtual/_commonjs-dynamic-modules.js.map +0 -1
- package/lib/_virtual/_commonjsHelpers.js +0 -2
- package/lib/_virtual/_commonjsHelpers.js.map +0 -1
- package/lib/_virtual/ali-oss/dist/aliyun-oss-sdk.js +0 -85
- package/lib/_virtual/ali-oss/dist/aliyun-oss-sdk.js.map +0 -1
- package/lib/_virtual/aliyun-oss-sdk.js +0 -2
- package/lib/_virtual/aliyun-oss-sdk.js.map +0 -1
- package/lib/_virtual/aliyun-oss-sdk2.js +0 -2
- package/lib/_virtual/aliyun-oss-sdk2.js.map +0 -1
- package/lib/_virtual/ans-javascript-sdk/sdk/AnalysysAgent_JS_SDK.es6.min.js +0 -30
- package/lib/_virtual/ans-javascript-sdk/sdk/AnalysysAgent_JS_SDK.es6.min.js.map +0 -1
- package/lib/_virtual/xlsx/xlsx.js +0 -105
- package/lib/_virtual/xlsx/xlsx.js.map +0 -1
- package/lib/index.d.ts +0 -10
- package/lib/src/argo-log.d.ts +0 -32
- package/lib/src/date-transfer.d.ts +0 -11
- package/lib/src/device.d.ts +0 -4
- package/lib/src/file-operations.d.ts +0 -42
- package/lib/src/oss-uploader.d.ts +0 -43
- package/lib/src/types.d.ts +0 -26
- package/lib/src/use-api.d.ts +0 -47
- package/lib/src/watermark.d.ts +0 -47
package/es/src/use-api.mjs
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
var u = Object.defineProperty;
|
|
2
|
-
var x = (i, s, e) => s in i ? u(i, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[s] = e;
|
|
3
|
-
var a = (i, s, e) => x(i, typeof s != "symbol" ? s + "" : s, e);
|
|
4
|
-
import { isPlainObject as d } from "./types.mjs";
|
|
5
|
-
const r = class r {
|
|
6
|
-
constructor(s, e) {
|
|
7
|
-
a(this, "useApi", async (s, e, h) => {
|
|
8
|
-
let c = null, o = null;
|
|
9
|
-
try {
|
|
10
|
-
const t = {
|
|
11
|
-
...s,
|
|
12
|
-
...["GET"].includes(s.method.toUpperCase()) ? { params: e } : { data: e }
|
|
13
|
-
};
|
|
14
|
-
t.url = (t.proxyPrefix || "") + s.url, delete t.proxyPrefix;
|
|
15
|
-
const n = await this.apiInstance(t);
|
|
16
|
-
c = h ? n.data : n.data.data;
|
|
17
|
-
} catch (t) {
|
|
18
|
-
if (this.axiosInstance.isAxiosError(t)) {
|
|
19
|
-
const { statusText: n = "", status: f } = t.response || {};
|
|
20
|
-
console.log(n ? `${n}:${f}` : JSON.stringify(t));
|
|
21
|
-
} else this.isAxiosResponse(t) ? o = t.data : this.isErrorResponse(t) && (o = t);
|
|
22
|
-
}
|
|
23
|
-
return { res: c, error: o };
|
|
24
|
-
});
|
|
25
|
-
if (this.apiInstance = s, this.axiosInstance = e, r.instance)
|
|
26
|
-
return r.instance;
|
|
27
|
-
r.instance = this;
|
|
28
|
-
}
|
|
29
|
-
isBusinessError(s) {
|
|
30
|
-
return d(s) && typeof s.message == "string" && typeof s.code == "number" && s.code !== 0;
|
|
31
|
-
}
|
|
32
|
-
isAxiosResponse(s) {
|
|
33
|
-
return d(s) && s.data !== void 0 && this.isBusinessError(s.data) && s.status !== void 0 && s.statusText !== void 0 && s.headers !== void 0 && s.config !== void 0 && s.request !== void 0;
|
|
34
|
-
}
|
|
35
|
-
isErrorResponse(s) {
|
|
36
|
-
return "code" in s && "data" in s && "message" in s && s.code !== 0;
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
a(r, "instance");
|
|
40
|
-
let p = r;
|
|
41
|
-
export {
|
|
42
|
-
p as ApiService
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=use-api.mjs.map
|
package/es/src/use-api.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-api.mjs","sources":["../../../../packages/utils/src/use-api.ts"],"sourcesContent":["import type { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosStatic } from 'axios'\nimport { isPlainObject } from './types'\n\nexport interface SuccessResponse<T> {\n code: number\n count: number\n data: T\n message: string\n}\n\nexport interface ErrorResponse {\n code: number\n data: null\n message: string\n}\n\nexport interface UseApiResponse<W extends boolean = false, T = unknown> {\n res: W extends true ? SuccessResponse<T> : T\n error: ErrorResponse | null\n}\n\nexport interface UrlObjectType {\n url: string\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'\n proxyPrefix?: string\n}\n\nexport type ApiTypeMap<U extends UrlObjectType> = {\n [K in U['url']]: {\n request: any\n response: any\n }\n}\n\ntype RequestPayload<T> = T extends { data: any } ? T['data'] : T\ntype RequestParams<T> = T extends { params: any } ? T['params'] : T\n\nexport class ApiService<\n T extends ApiTypeMap<U>,\n U extends UrlObjectType,\n> {\n private static instance: ApiService<any, any>\n\n constructor(\n private apiInstance: AxiosInstance,\n private axiosInstance: AxiosStatic,\n ) {\n if (ApiService.instance) {\n return ApiService.instance as ApiService<T, U>\n }\n ApiService.instance = this\n }\n\n private isBusinessError(obj: ErrorResponse): boolean {\n return isPlainObject(obj)\n && typeof obj.message === 'string'\n && typeof obj.code === 'number'\n && obj.code !== 0\n }\n\n private isAxiosResponse(value: any): value is AxiosResponse {\n return isPlainObject(value)\n && value.data !== undefined\n && this.isBusinessError(value.data)\n && value.status !== undefined\n && value.statusText !== undefined\n && value.headers !== undefined\n && value.config !== undefined\n && value.request !== undefined\n }\n\n private isErrorResponse(value: any): value is ErrorResponse {\n return 'code' in value && 'data' in value && 'message' in value && value.code !== 0\n }\n\n public useApi = async <\n K extends U,\n W extends boolean = false,\n >(\n axiosConfig: Omit<AxiosRequestConfig<RequestPayload<T[K['url']]['request']>>, 'params'> & K & {\n params?: RequestParams<T[K['url']]['request']>\n },\n params?: RequestParams<T[K['url']]['request']>,\n isWholeResponse?: W,\n ): Promise<UseApiResponse<W, T[K['url']]['response']>> => {\n let res: UseApiResponse<W, T[K['url']]['response']>['res'] | null = null\n let error: UseApiResponse['error'] = null\n\n try {\n const config = {\n ...axiosConfig,\n ...(['GET'].includes(axiosConfig.method.toUpperCase()) ? { params } : { data: params }),\n }\n\n config.url = (config.proxyPrefix || '') + axiosConfig.url\n delete config.proxyPrefix\n\n const response = await this.apiInstance<SuccessResponse<T[K['url']]['response']>>(config)\n res = isWholeResponse\n ? response.data\n : response.data.data\n }\n catch (err) {\n if (this.axiosInstance.isAxiosError(err)) {\n const { statusText = '', status } = err.response || {}\n console.log(statusText ? `${statusText}:${status}` : JSON.stringify(err))\n }\n else if (this.isAxiosResponse(err)) {\n error = err.data\n }\n else if (this.isErrorResponse(err)) {\n error = err\n }\n }\n\n return { res: res!, error }\n }\n}\n"],"names":["_ApiService","apiInstance","axiosInstance","__publicField","axiosConfig","params","isWholeResponse","res","error","config","response","err","statusText","status","obj","isPlainObject","value","ApiService"],"mappings":";;;;AAqCO,MAAMA,IAAN,MAAMA,EAGX;AAAA,EAGA,YACUC,GACAC,GACR;AA6BK,IAAAC,EAAA,gBAAS,OAIdC,GAGAC,GACAC,MACwD;AACxD,UAAIC,IAAgE,MAChEC,IAAiC;AAEjC,UAAA;AACF,cAAMC,IAAS;AAAA,UACb,GAAGL;AAAA,UACH,GAAI,CAAC,KAAK,EAAE,SAASA,EAAY,OAAO,YAAa,CAAA,IAAI,EAAE,QAAAC,MAAW,EAAE,MAAMA,EAAO;AAAA,QACvF;AAEA,QAAAI,EAAO,OAAOA,EAAO,eAAe,MAAML,EAAY,KACtD,OAAOK,EAAO;AAEd,cAAMC,IAAW,MAAM,KAAK,YAAsDD,CAAM;AACxF,QAAAF,IAAMD,IACFI,EAAS,OACTA,EAAS,KAAK;AAAA,eAEbC,GAAK;AACV,YAAI,KAAK,cAAc,aAAaA,CAAG,GAAG;AACxC,gBAAM,EAAE,YAAAC,IAAa,IAAI,QAAAC,MAAWF,EAAI,YAAY,CAAC;AAC7C,kBAAA,IAAIC,IAAa,GAAGA,CAAU,IAAIC,CAAM,KAAK,KAAK,UAAUF,CAAG,CAAC;AAAA,QAEjE,MAAA,CAAA,KAAK,gBAAgBA,CAAG,IAC/BH,IAAQG,EAAI,OAEL,KAAK,gBAAgBA,CAAG,MACvBH,IAAAG;AAAA,MACV;AAGK,aAAA,EAAE,KAAAJ,GAAW,OAAAC,EAAM;AAAA,IAC5B;AArEE,QAHQ,KAAA,cAAAP,GACA,KAAA,gBAAAC,GAEJF,EAAW;AACb,aAAOA,EAAW;AAEpB,IAAAA,EAAW,WAAW;AAAA,EAAA;AAAA,EAGhB,gBAAgBc,GAA6B;AACnD,WAAOC,EAAcD,CAAG,KACnB,OAAOA,EAAI,WAAY,YACvB,OAAOA,EAAI,QAAS,YACpBA,EAAI,SAAS;AAAA,EAAA;AAAA,EAGZ,gBAAgBE,GAAoC;AACnD,WAAAD,EAAcC,CAAK,KACrBA,EAAM,SAAS,UACf,KAAK,gBAAgBA,EAAM,IAAI,KAC/BA,EAAM,WAAW,UACjBA,EAAM,eAAe,UACrBA,EAAM,YAAY,UAClBA,EAAM,WAAW,UACjBA,EAAM,YAAY;AAAA,EAAA;AAAA,EAGjB,gBAAgBA,GAAoC;AAC1D,WAAO,UAAUA,KAAS,UAAUA,KAAS,aAAaA,KAASA,EAAM,SAAS;AAAA,EAAA;AA6CtF;AA5EEb,EAJWH,GAII;AAJV,IAAMiB,IAANjB;"}
|
package/es/src/watermark.mjs
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
const $ = {
|
|
2
|
-
id: "wm_div_id",
|
|
3
|
-
prefix: "mask_div_id",
|
|
4
|
-
text: "测试水印",
|
|
5
|
-
x: 0,
|
|
6
|
-
y: 0,
|
|
7
|
-
rows: 0,
|
|
8
|
-
cols: 0,
|
|
9
|
-
width: 0,
|
|
10
|
-
height: 0,
|
|
11
|
-
x_space: 100,
|
|
12
|
-
y_space: 40,
|
|
13
|
-
font: "微软雅黑",
|
|
14
|
-
color: "black",
|
|
15
|
-
fontsize: "18px",
|
|
16
|
-
alpha: 0.15,
|
|
17
|
-
angle: 15,
|
|
18
|
-
parent_width: 0,
|
|
19
|
-
parent_height: 0,
|
|
20
|
-
parent_node: null,
|
|
21
|
-
monitor: !0
|
|
22
|
-
};
|
|
23
|
-
function C(t, c, r) {
|
|
24
|
-
const u = document.createElement("canvas").getContext("2d");
|
|
25
|
-
if (!u)
|
|
26
|
-
return { width: 100, height: 100 };
|
|
27
|
-
u.font = `${r} ${c}`;
|
|
28
|
-
const s = u.measureText(t.trim()), l = Number.parseFloat(r), p = s.actualBoundingBoxAscent !== void 0 && s.actualBoundingBoxDescent !== void 0 ? s.actualBoundingBoxAscent + s.actualBoundingBoxDescent : l;
|
|
29
|
-
return {
|
|
30
|
-
width: Math.ceil(s.width),
|
|
31
|
-
height: Math.ceil(p)
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function M() {
|
|
35
|
-
const t = { ...$ };
|
|
36
|
-
let c = !1;
|
|
37
|
-
const r = new MutationObserver(_), w = new ResizeObserver(() => {
|
|
38
|
-
c || l(t);
|
|
39
|
-
});
|
|
40
|
-
function u(i, e) {
|
|
41
|
-
const h = i - t.x, n = e - t.y, o = t.x_space || 20, d = t.y_space || 20, m = Math.ceil(h / (t.width + o)), f = Math.ceil(n / (t.height + d));
|
|
42
|
-
return {
|
|
43
|
-
cols: m,
|
|
44
|
-
rows: f,
|
|
45
|
-
x_space: o,
|
|
46
|
-
y_space: d
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
function s(i, e, h) {
|
|
50
|
-
const n = document.createElement("div");
|
|
51
|
-
return n.textContent = t.text, n.id = `${t.prefix}${h}`, n.style.cssText = `
|
|
52
|
-
transform: rotate(-${t.angle}deg);
|
|
53
|
-
position: absolute;
|
|
54
|
-
left: ${i}px;
|
|
55
|
-
top: ${e}px;
|
|
56
|
-
overflow: hidden;
|
|
57
|
-
z-index: 9999999;
|
|
58
|
-
opacity: ${t.alpha};
|
|
59
|
-
font-size: ${t.fontsize};
|
|
60
|
-
font-family: ${t.font};
|
|
61
|
-
color: ${t.color};
|
|
62
|
-
text-align: center;
|
|
63
|
-
width: ${t.width}px;
|
|
64
|
-
height: ${t.height}px;
|
|
65
|
-
line-height: ${t.height}px;
|
|
66
|
-
display: flex;
|
|
67
|
-
align-items: center;
|
|
68
|
-
justify-content: center;
|
|
69
|
-
user-select: none;
|
|
70
|
-
visibility: visible;
|
|
71
|
-
`.replace(/\s+/g, " ").trim(), n;
|
|
72
|
-
}
|
|
73
|
-
function l(i) {
|
|
74
|
-
if (p(), Object.assign(t, i), t.width === 0 && t.height === 0 || t.width === 0 || t.height === 0) {
|
|
75
|
-
const a = C(
|
|
76
|
-
t.text,
|
|
77
|
-
t.font,
|
|
78
|
-
t.fontsize
|
|
79
|
-
), g = 10;
|
|
80
|
-
t.width === 0 && (t.width = a.width + g), t.height === 0 && (t.height = a.height + g);
|
|
81
|
-
}
|
|
82
|
-
const e = t.parent_node || document.body, h = Math.max(e.scrollWidth, e.clientWidth), n = Math.max(e.scrollHeight, e.clientHeight), o = document.createElement("div");
|
|
83
|
-
o.id = t.id, e.closest("body") && getComputedStyle(e).position === "static" && (e.style.position = "relative"), o.style.cssText = `
|
|
84
|
-
pointer-events: none;
|
|
85
|
-
display: block;
|
|
86
|
-
position: absolute;
|
|
87
|
-
top: 0;
|
|
88
|
-
left: 0;
|
|
89
|
-
width: 100%;
|
|
90
|
-
height: 100%;
|
|
91
|
-
z-index: 9999999;
|
|
92
|
-
overflow: hidden;
|
|
93
|
-
`.replace(/\s+/g, " ").trim();
|
|
94
|
-
const d = o.attachShadow ? o.attachShadow({ mode: "open" }) : o;
|
|
95
|
-
e.appendChild(o);
|
|
96
|
-
const { cols: m, rows: f, x_space: v, y_space: y } = u(h, n);
|
|
97
|
-
t.cols = m, t.rows = f, t.x_space = v, t.y_space = y;
|
|
98
|
-
const b = document.createDocumentFragment();
|
|
99
|
-
for (let a = 0; a < f; a++) {
|
|
100
|
-
const g = t.y + (t.height + y) * a;
|
|
101
|
-
for (let x = 0; x < m; x++) {
|
|
102
|
-
const k = t.x + (t.width + v) * x;
|
|
103
|
-
b.appendChild(s(k, g, a * m + x));
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
if (d.appendChild(b), t.monitor) {
|
|
107
|
-
w.observe(e);
|
|
108
|
-
const a = {
|
|
109
|
-
attributes: !0,
|
|
110
|
-
// 监听属性变化
|
|
111
|
-
childList: !0,
|
|
112
|
-
// 监听子元素变化
|
|
113
|
-
subtree: !0,
|
|
114
|
-
// 监听子树变化
|
|
115
|
-
characterData: !0
|
|
116
|
-
// 监听文本内容变化
|
|
117
|
-
};
|
|
118
|
-
r.observe(o, a), d !== o && r.observe(d, a);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
function p() {
|
|
122
|
-
var e;
|
|
123
|
-
const i = document.getElementById(t.id);
|
|
124
|
-
r.disconnect(), i && ((e = i.parentNode) == null || e.removeChild(i));
|
|
125
|
-
}
|
|
126
|
-
function _(i) {
|
|
127
|
-
if (c) {
|
|
128
|
-
c = !1;
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
if (!document.getElementById(t.id)) {
|
|
132
|
-
l(t);
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
i.some((n) => n.type === "childList" || n.type === "attributes" || n.type === "characterData") && l(t);
|
|
136
|
-
}
|
|
137
|
-
return {
|
|
138
|
-
addMark: l,
|
|
139
|
-
removeMark: () => {
|
|
140
|
-
c = !0, p();
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
export {
|
|
145
|
-
M as watermark
|
|
146
|
-
};
|
|
147
|
-
//# sourceMappingURL=watermark.mjs.map
|
package/es/src/watermark.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"watermark.mjs","sources":["../../../../packages/utils/src/watermark.ts"],"sourcesContent":["interface SettingsType {\n /** 水印总体的id */\n id?: string\n /** 小水印的id前缀 */\n prefix?: string\n /** 水印文案 */\n text?: string\n /** 水印起始位置x轴坐标 */\n x?: number\n /** 水印起始位置Y轴坐标 */\n y?: number\n /** 水印行数 */\n rows?: number\n /** 水印列数 */\n cols?: number\n /** 水印x轴间隔 */\n x_space?: number\n /** 水印y轴间隔 */\n y_space?: number\n /** 水印字体 */\n font?: string\n /** 水印字体颜色 */\n color?: string\n /** 水印字体大小 */\n fontsize?: string\n /** 水印透明度,要求设置在大于等于0.005 */\n alpha?: number\n /** 水印宽度 */\n width?: number\n /** 水印长度 */\n height?: number\n /** 水印倾斜度数 */\n angle?: number\n /** 水印的总体宽度(默认值:body的scrollWidth和clientWidth的较大值) */\n parent_width?: number\n /** 水印的总体高度(默认值:body的scrollHeight和clientHeight的较大值) */\n parent_height?: number\n /** 水印插件挂载的父元素element,不输入则默认挂在body */\n parent_node?: HTMLElement | null\n /** 是否监控,true: 不可删除水印; false: 可删水印 */\n monitor?: boolean\n}\n\n// 默认配置\nconst initialSettings: Required<SettingsType> = {\n id: 'wm_div_id',\n prefix: 'mask_div_id',\n text: '测试水印',\n x: 0,\n y: 0,\n rows: 0,\n cols: 0,\n width: 0,\n height: 0,\n x_space: 100,\n y_space: 40,\n font: '微软雅黑',\n color: 'black',\n fontsize: '18px',\n alpha: 0.15,\n angle: 15,\n parent_width: 0,\n parent_height: 0,\n parent_node: null,\n monitor: true,\n}\n\nfunction calculateTextDimensions(text: string, font: string, fontSize: string): { width: number, height: number } {\n const canvas = document.createElement('canvas')\n const context = canvas.getContext('2d')\n if (!context) {\n return { width: 100, height: 100 }\n }\n\n context.font = `${fontSize} ${font}`\n const metrics = context.measureText(text.trim())\n const fontSizeNum = Number.parseFloat(fontSize)\n\n // 移除 DPI 缩放,直接使用原始值\n const height = (metrics.actualBoundingBoxAscent !== undefined && metrics.actualBoundingBoxDescent !== undefined)\n ? (metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent)\n : fontSizeNum\n\n return {\n width: Math.ceil(metrics.width),\n height: Math.ceil(height),\n }\n}\n\nexport function watermark() {\n const globalSetting: Required<SettingsType> = { ...initialSettings }\n let forceRemove = false\n const watermarkDom = new MutationObserver(domChangeCallback)\n const resizeObserver = new ResizeObserver(() => {\n if (!forceRemove) {\n loadMark(globalSetting)\n }\n })\n\n // 计算水印布局\n function calculateWatermarkLayout(pageWidth: number, pageHeight: number) {\n const availableWidth = pageWidth - globalSetting.x\n const availableHeight = pageHeight - globalSetting.y\n\n // 使用固定间距\n const x_space = globalSetting.x_space || 20 // 如果未设置则使用默认值\n const y_space = globalSetting.y_space || 20 // 如果未设置则使用默认值\n\n // 计算能容纳的行数和列数\n const cols = Math.ceil(availableWidth / (globalSetting.width + x_space))\n const rows = Math.ceil(availableHeight / (globalSetting.height + y_space))\n\n return {\n cols,\n rows,\n x_space,\n y_space,\n }\n }\n\n // 创建水印元素\n function createWatermarkElement(x: number, y: number, index: number): HTMLElement {\n const maskDiv = document.createElement('div')\n maskDiv.textContent = globalSetting.text\n maskDiv.id = `${globalSetting.prefix}${index}`\n\n maskDiv.style.cssText = `\n transform: rotate(-${globalSetting.angle}deg);\n position: absolute;\n left: ${x}px;\n top: ${y}px;\n overflow: hidden;\n z-index: 9999999;\n opacity: ${globalSetting.alpha};\n font-size: ${globalSetting.fontsize};\n font-family: ${globalSetting.font};\n color: ${globalSetting.color};\n text-align: center;\n width: ${globalSetting.width}px;\n height: ${globalSetting.height}px;\n line-height: ${globalSetting.height}px;\n display: flex;\n align-items: center;\n justify-content: center;\n user-select: none;\n visibility: visible;\n `.replace(/\\s+/g, ' ').trim()\n\n return maskDiv\n }\n\n // 加载水印\n function loadMark(settings: Partial<SettingsType>) {\n removeMark()\n Object.assign(globalSetting, settings)\n\n if ((globalSetting.width === 0 && globalSetting.height === 0) || globalSetting.width === 0 || globalSetting.height === 0) {\n // 计算文本尺寸\n const textDimensions = calculateTextDimensions(\n globalSetting.text,\n globalSetting.font,\n globalSetting.fontsize,\n )\n const padding = 10\n if (globalSetting.width === 0) {\n globalSetting.width = textDimensions.width + padding\n }\n if (globalSetting.height === 0) {\n globalSetting.height = textDimensions.height + padding\n }\n }\n\n const parentElement = globalSetting.parent_node || document.body\n const pageWidth = Math.max(parentElement.scrollWidth, parentElement.clientWidth)\n const pageHeight = Math.max(parentElement.scrollHeight, parentElement.clientHeight)\n\n const watermarkContainer = document.createElement('div')\n watermarkContainer.id = globalSetting.id\n\n // 处理父元素定位\n if (parentElement.closest('body') && getComputedStyle(parentElement).position === 'static') {\n parentElement.style.position = 'relative'\n }\n\n watermarkContainer.style.cssText = `\n pointer-events: none;\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999999;\n overflow: hidden;\n `.replace(/\\s+/g, ' ').trim()\n\n const shadowRoot = watermarkContainer.attachShadow ? watermarkContainer.attachShadow({ mode: 'open' }) : watermarkContainer\n\n parentElement.appendChild(watermarkContainer)\n\n const { cols, rows, x_space, y_space } = calculateWatermarkLayout(pageWidth, pageHeight)\n globalSetting.cols = cols\n globalSetting.rows = rows\n globalSetting.x_space = x_space\n globalSetting.y_space = y_space\n\n const fragment = document.createDocumentFragment()\n for (let i = 0; i < rows; i++) {\n const y = globalSetting.y + (globalSetting.height + y_space) * i\n for (let j = 0; j < cols; j++) {\n const x = globalSetting.x + (globalSetting.width + x_space) * j\n fragment.appendChild(createWatermarkElement(x, y, i * cols + j))\n }\n }\n shadowRoot.appendChild(fragment)\n\n if (globalSetting.monitor) {\n // 监听父元素大小变化\n resizeObserver.observe(parentElement)\n\n // 监听水印容器及其子元素\n const config: MutationObserverInit = {\n attributes: true, // 监听属性变化\n childList: true, // 监听子元素变化\n subtree: true, // 监听子树变化\n characterData: true, // 监听文本内容变化\n }\n\n // 监听水印容器\n watermarkDom.observe(watermarkContainer, config)\n\n // 如果使用了 Shadow DOM,还需要监听 shadowRoot 内的元素\n if (shadowRoot !== watermarkContainer) {\n watermarkDom.observe(shadowRoot, config)\n }\n }\n }\n\n // 移除水印\n function removeMark() {\n const watermarkElement = document.getElementById(globalSetting.id)\n watermarkDom.disconnect()\n if (watermarkElement) {\n watermarkElement.parentNode?.removeChild(watermarkElement)\n }\n }\n\n // 监听DOM变化\n function domChangeCallback(records: MutationRecord[]) {\n if (forceRemove) {\n forceRemove = false\n return\n }\n\n const watermarkElement = document.getElementById(globalSetting.id)\n if (!watermarkElement) {\n // 如果水印容器被删除,重新创建\n loadMark(globalSetting)\n return\n }\n\n // 检查是否有任何修改\n const hasChanges = records.some((record) => {\n // 检查元素是否被删除或添加\n if (record.type === 'childList') {\n return true\n }\n\n // 检查属性是否被修改\n if (record.type === 'attributes') {\n return true\n }\n\n // 检查文本内容是否被修改\n if (record.type === 'characterData') {\n return true\n }\n\n return false\n })\n\n if (hasChanges) {\n loadMark(globalSetting)\n }\n }\n\n return {\n addMark: loadMark,\n removeMark: () => {\n forceRemove = true\n // 删除这行,不重置全局配置\n // Object.assign(globalSetting, initialSettings)\n removeMark()\n },\n }\n}\n"],"names":["initialSettings","calculateTextDimensions","text","font","fontSize","context","metrics","fontSizeNum","height","watermark","globalSetting","forceRemove","watermarkDom","domChangeCallback","resizeObserver","loadMark","calculateWatermarkLayout","pageWidth","pageHeight","availableWidth","availableHeight","x_space","y_space","cols","rows","createWatermarkElement","x","y","index","maskDiv","settings","removeMark","textDimensions","padding","parentElement","watermarkContainer","shadowRoot","fragment","i","j","config","_a","watermarkElement","records","record"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function o(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}exports.commonjsRequire=o;
|
|
2
|
-
//# sourceMappingURL=_commonjs-dynamic-modules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_commonjs-dynamic-modules.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_commonjsHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|