@univerjs/watermark 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +1 -1
- package/lib/es/index.js +22 -22
- package/lib/umd/index.js +1 -1
- package/package.json +5 -5
package/lib/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var O=Object.defineProperty;var D=(e,t,r)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var l=(e,t,r)=>D(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),U=require("@univerjs/engine-render"),P=require("rxjs"),f="UNIVER_WATERMARK_STORAGE_KEY",N=10,Y=["image/png","image/jpeg","image/jpg","image/bmp"],j={content:"",fontSize:16,color:"rgb(0,0,0)",bold:!1,italic:!1,direction:"ltr",x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},$={url:"",width:100,height:100,maintainAspectRatio:!0,originRatio:1,x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},L={name:!0,email:!1,phone:!1,uid:!1,fontSize:16,color:"rgb(0,0,0)",bold:!1,italic:!1,direction:"ltr",x:60,y:60,repeat:!0,spacingX:200,spacingY:100,rotate:-30,opacity:.15};var c=(e=>(e.UserInfo="userInfo",e.Text="text",e.Image="image",e))(c||{});const b="watermark.config",T={};var K=Object.defineProperty,G=Object.getOwnPropertyDescriptor,X=(e,t,r,i)=>{for(var a=i>1?void 0:i?G(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(a=(i?o(t,r,a):o(a))||a);return i&&a&&K(t,r,a),a},V=(e,t)=>(r,i)=>t(r,i,e);exports.WatermarkService=class extends s.Disposable{constructor(r){super();l(this,"_updateConfig$",new P.Subject);l(this,"updateConfig$",this._updateConfig$.asObservable());l(this,"_refresh$",new P.Subject);l(this,"refresh$",this._refresh$.asObservable());this._localStorageService=r}async getWatermarkConfig(){return await this._localStorageService.getItem(f)}updateWatermarkConfig(r){this._localStorageService.setItem(f,r),this._updateConfig$.next(r)}deleteWatermarkConfig(){this._localStorageService.removeItem(f),this._updateConfig$.next(null)}refresh(){this._refresh$.next(Math.random())}dispose(){this._refresh$.complete(),this._updateConfig$.complete()}};exports.WatermarkService=X([V(0,s.Inject(s.ILocalStorageService))],exports.WatermarkService);function B(e,t,r,i){const a=t.type,n=t.config;a===c.UserInfo&&n.userInfo?H(e,n.userInfo,i):a===c.Image&&n.image?q(e,n.image,r):a===c.Text&&n.text&&z(e,n.text)}function H(e,t,r){const{x:i,y:a,repeat:n,spacingX:o,spacingY:I,rotate:u,opacity:p,name:
|
|
1
|
+
"use strict";var O=Object.defineProperty;var D=(e,t,r)=>t in e?O(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var l=(e,t,r)=>D(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),U=require("@univerjs/engine-render"),P=require("rxjs"),f="UNIVER_WATERMARK_STORAGE_KEY",N=10,Y=["image/png","image/jpeg","image/jpg","image/bmp"],j={content:"",fontSize:16,color:"rgb(0,0,0)",bold:!1,italic:!1,direction:"ltr",x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},$={url:"",width:100,height:100,maintainAspectRatio:!0,originRatio:1,x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},L={name:!0,email:!1,phone:!1,uid:!1,fontSize:16,color:"rgb(0,0,0)",bold:!1,italic:!1,direction:"ltr",x:60,y:60,repeat:!0,spacingX:200,spacingY:100,rotate:-30,opacity:.15};var c=(e=>(e.UserInfo="userInfo",e.Text="text",e.Image="image",e))(c||{});const b="watermark.config",T={};var K=Object.defineProperty,G=Object.getOwnPropertyDescriptor,X=(e,t,r,i)=>{for(var a=i>1?void 0:i?G(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(a=(i?o(t,r,a):o(a))||a);return i&&a&&K(t,r,a),a},V=(e,t)=>(r,i)=>t(r,i,e);exports.WatermarkService=class extends s.Disposable{constructor(r){super();l(this,"_updateConfig$",new P.Subject);l(this,"updateConfig$",this._updateConfig$.asObservable());l(this,"_refresh$",new P.Subject);l(this,"refresh$",this._refresh$.asObservable());this._localStorageService=r}async getWatermarkConfig(){return await this._localStorageService.getItem(f)}updateWatermarkConfig(r){this._localStorageService.setItem(f,r),this._updateConfig$.next(r)}deleteWatermarkConfig(){this._localStorageService.removeItem(f),this._updateConfig$.next(null)}refresh(){this._refresh$.next(Math.random())}dispose(){this._refresh$.complete(),this._updateConfig$.complete()}};exports.WatermarkService=X([V(0,s.Inject(s.ILocalStorageService))],exports.WatermarkService);function B(e,t,r,i){const a=t.type,n=t.config;a===c.UserInfo&&n.userInfo?H(e,n.userInfo,i):a===c.Image&&n.image?q(e,n.image,r):a===c.Text&&n.text&&z(e,n.text)}function H(e,t,r){const{x:i,y:a,repeat:n,spacingX:o,spacingY:I,rotate:u,opacity:p,name:d,fontSize:W,color:y,bold:C,italic:S,direction:g}=t;if(!r)return;let _="";if(d&&(_+=`${r.name} `),!_)return;e.save(),e.globalAlpha=p,e.direction=g;let v="";if(S&&(v+="italic "),C&&(v+="bold "),v+=`${W}px Arial`,e.font=v,e.fillStyle=y,n){const h=e.canvas.width,m=e.canvas.height;for(let k=a;k<m;k+=W+I)for(let A=i;A<h;A+=e.measureText(_).width+o)e.save(),e.translate(A,k),e.rotate(Math.PI/180*u),e.fillText(_,0,0),e.restore()}else e.save(),e.translate(i,a),e.rotate(Math.PI/180*u),e.fillText(_,0,0),e.restore();e.restore()}function z(e,t){const{x:r,y:i,repeat:a,spacingX:n,spacingY:o,rotate:I,opacity:u,content:p,fontSize:d,color:W,bold:y,italic:C,direction:S}=t;e.save(),e.globalAlpha=u,e.direction=S;let g="";if(C&&(g+="italic "),y&&(g+="bold "),g+=`${d}px Arial`,e.font=g,e.fillStyle=W,p)if(a){const _=e.canvas.width,v=e.canvas.height;for(let h=i;h<v;h+=d+o)for(let m=r;m<_;m+=e.measureText(p).width+n)e.save(),e.translate(m,h),e.rotate(Math.PI/180*I),e.fillText(p,0,0),e.restore()}else e.save(),e.translate(r,i),e.rotate(Math.PI/180*I),e.fillText(p,0,0),e.restore();e.restore()}function q(e,t,r){const{x:i,y:a,repeat:n,spacingX:o,spacingY:I,rotate:u,opacity:p,width:d,height:W,maintainAspectRatio:y,originRatio:C}=t;if(!(r!=null&&r.complete))return;e.save(),e.globalAlpha=p;const S=d,g=y?d/C:W;if(n){const _=e.canvas.width,v=e.canvas.height;for(let h=a;h<v;h+=g+I)for(let m=i;m<_;m+=S+o)e.save(),e.translate(m,h),e.rotate(Math.PI/180*u),e.drawImage(r,0,0,S,g),e.restore()}else e.save(),e.translate(i,a),e.rotate(Math.PI/180*u),e.drawImage(r,0,0,S,g),e.restore();e.restore()}class F extends U.Layer{constructor(){super(...arguments);l(this,"_config");l(this,"_image");l(this,"_user")}render(r,i=!1){var n;super.render(r,i);const a=r||((n=this.scene.getEngine())==null?void 0:n.getCanvas().getContext());return a&&a.getId()&&this._renderWatermark(a),this}updateConfig(r,i){var a;this._config=r,((a=this._config)==null?void 0:a.type)===c.Image&&this._config.config.image&&(this._image=new Image,this._image.src=this._config.config.image.url),i&&(this._user=i)}_renderWatermark(r){this._config&&B(r,this._config,this._image,this._user)}}var J=Object.defineProperty,Q=Object.getOwnPropertyDescriptor,Z=(e,t,r,i)=>{for(var a=i>1?void 0:i?Q(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(a=(i?o(t,r,a):o(a))||a);return i&&a&&J(t,r,a),a},w=(e,t)=>(r,i)=>t(r,i,e);let M=class extends s.RxDisposable{constructor(t,r,i,a){super();l(this,"_watermarkLayer");this._context=t,this._watermarkService=r,this._localStorageService=i,this._userManagerService=a,this._watermarkLayer=new F(t.scene,[],N),this._initAddRender(),this._initWatermarkUpdate(),this._initWatermarkConfig()}_initAddRender(){const{scene:t}=this._context;t.addLayer(this._watermarkLayer)}async _initWatermarkConfig(){var r;const t=await this._localStorageService.getItem(f);t&&(this._watermarkService.updateWatermarkConfig(t),(r=this._context.mainComponent)==null||r.makeDirty())}_initWatermarkUpdate(){this.disposeWithMe(this._watermarkService.updateConfig$.subscribe(t=>{var r,i;if(!t){this._watermarkLayer.updateConfig(),(r=this._context.mainComponent)==null||r.makeDirty();return}t.type===c.UserInfo?this._watermarkLayer.updateConfig(t,this._userManagerService.getCurrentUser()):this._watermarkLayer.updateConfig(t),(i=this._context.mainComponent)==null||i.makeDirty()}))}};M=Z([w(1,s.Inject(exports.WatermarkService)),w(2,s.Inject(s.ILocalStorageService)),w(3,s.Inject(s.UserManagerService))],M);var x=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=(e,t,r,i)=>{for(var a=i>1?void 0:i?ee(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(a=(i?o(t,r,a):o(a))||a);return i&&a&&x(t,r,a),a},R=(e,t)=>(r,i)=>t(r,i,e);const re="UNIVER_WATERMARK_PLUGIN";var E;exports.UniverWatermarkPlugin=(E=class extends s.Plugin{constructor(t=T,r,i,a,n){super(),this._config=t,this._injector=r,this._configService=i,this._renderManagerSrv=a,this._localStorageService=n;const{...o}=s.merge({},T,this._config);this._configService.setConfig(b,o),this._initWatermarkStorage(),this._initDependencies()}async _initWatermarkStorage(){const t=this._configService.getConfig(b);if(!t)return;const{userWatermarkSettings:r,textWatermarkSettings:i,imageWatermarkSettings:a}=t;if(r)this._localStorageService.setItem(f,{type:c.UserInfo,config:{userInfo:s.merge({},L,r)}});else if(i)this._localStorageService.setItem(f,{type:c.Text,config:{text:s.merge({},j,i)}});else if(a)this._localStorageService.setItem(f,{type:c.Image,config:{image:s.merge({},$,a)}});else{const n=await this._localStorageService.getItem(f);(n==null?void 0:n.type)===c.UserInfo&&this._localStorageService.removeItem(f)}}_initDependencies(){[[exports.WatermarkService]].forEach(t=>{this._injector.add(t)})}onRendered(){this._injector.get(exports.WatermarkService),this._initRenderDependencies()}_initRenderDependencies(){[[M]].forEach(t=>{this._renderManagerSrv.registerRenderModule(s.UniverInstanceType.UNIVER_SHEET,t),this._renderManagerSrv.registerRenderModule(s.UniverInstanceType.UNIVER_DOC,t)})}},l(E,"pluginName",re),E);exports.UniverWatermarkPlugin=te([R(1,s.Inject(s.Injector)),R(2,s.IConfigService),R(3,U.IRenderManagerService),R(4,s.Inject(s.ILocalStorageService))],exports.UniverWatermarkPlugin);exports.IWatermarkTypeEnum=c;exports.UNIVER_WATERMARK_STORAGE_KEY=f;exports.WATERMARK_IMAGE_ALLOW_IMAGE_LIST=Y;exports.WatermarkImageBaseConfig=$;exports.WatermarkTextBaseConfig=j;exports.WatermarkUserInfoBaseConfig=L;
|
package/lib/es/index.js
CHANGED
|
@@ -49,7 +49,7 @@ const h = "UNIVER_WATERMARK_STORAGE_KEY", F = 10, ue = ["image/png", "image/jpeg
|
|
|
49
49
|
rotate: -30,
|
|
50
50
|
opacity: 0.15
|
|
51
51
|
};
|
|
52
|
-
var
|
|
52
|
+
var f = /* @__PURE__ */ ((e) => (e.UserInfo = "userInfo", e.Text = "text", e.Image = "image", e))(f || {});
|
|
53
53
|
const O = "watermark.config", D = {};
|
|
54
54
|
var Z = Object.defineProperty, x = Object.getOwnPropertyDescriptor, ee = (e, t, r, i) => {
|
|
55
55
|
for (var a = i > 1 ? void 0 : i ? x(t, r) : t, n = e.length - 1, s; n >= 0; n--)
|
|
@@ -86,24 +86,24 @@ R = ee([
|
|
|
86
86
|
], R);
|
|
87
87
|
function re(e, t, r, i) {
|
|
88
88
|
const a = t.type, n = t.config;
|
|
89
|
-
a ===
|
|
89
|
+
a === f.UserInfo && n.userInfo ? ae(e, n.userInfo, i) : a === f.Image && n.image ? ne(e, n.image, r) : a === f.Text && n.text && ie(e, n.text);
|
|
90
90
|
}
|
|
91
91
|
function ae(e, t, r) {
|
|
92
92
|
const { x: i, y: a, repeat: n, spacingX: s, spacingY: S, rotate: v, opacity: p, name: m, fontSize: I, color: C, bold: W, italic: u, direction: o } = t;
|
|
93
93
|
if (!r)
|
|
94
94
|
return;
|
|
95
|
-
let
|
|
96
|
-
if (m && (
|
|
95
|
+
let c = "";
|
|
96
|
+
if (m && (c += `${r.name} `), !c)
|
|
97
97
|
return;
|
|
98
98
|
e.save(), e.globalAlpha = p, e.direction = o;
|
|
99
99
|
let d = "";
|
|
100
100
|
if (u && (d += "italic "), W && (d += "bold "), d += `${I}px Arial`, e.font = d, e.fillStyle = C, n) {
|
|
101
101
|
const g = e.canvas.width, _ = e.canvas.height;
|
|
102
102
|
for (let b = a; b < _; b += I + S)
|
|
103
|
-
for (let P = i; P < g; P += e.measureText(
|
|
104
|
-
e.save(), e.translate(P, b), e.rotate(Math.PI / 180 * v), e.fillText(
|
|
103
|
+
for (let P = i; P < g; P += e.measureText(c).width + s)
|
|
104
|
+
e.save(), e.translate(P, b), e.rotate(Math.PI / 180 * v), e.fillText(c, 0, 0), e.restore();
|
|
105
105
|
} else
|
|
106
|
-
e.save(), e.translate(i, a), e.rotate(Math.PI / 180 * v), e.fillText(
|
|
106
|
+
e.save(), e.translate(i, a), e.rotate(Math.PI / 180 * v), e.fillText(c, 0, 0), e.restore();
|
|
107
107
|
e.restore();
|
|
108
108
|
}
|
|
109
109
|
function ie(e, t) {
|
|
@@ -112,9 +112,9 @@ function ie(e, t) {
|
|
|
112
112
|
let o = "";
|
|
113
113
|
if (W && (o += "italic "), C && (o += "bold "), o += `${m}px Arial`, e.font = o, e.fillStyle = I, p)
|
|
114
114
|
if (a) {
|
|
115
|
-
const
|
|
115
|
+
const c = e.canvas.width, d = e.canvas.height;
|
|
116
116
|
for (let g = i; g < d; g += m + s)
|
|
117
|
-
for (let _ = r; _ <
|
|
117
|
+
for (let _ = r; _ < c; _ += e.measureText(p).width + n)
|
|
118
118
|
e.save(), e.translate(_, g), e.rotate(Math.PI / 180 * S), e.fillText(p, 0, 0), e.restore();
|
|
119
119
|
} else
|
|
120
120
|
e.save(), e.translate(r, i), e.rotate(Math.PI / 180 * S), e.fillText(p, 0, 0), e.restore();
|
|
@@ -127,9 +127,9 @@ function ne(e, t, r) {
|
|
|
127
127
|
e.save(), e.globalAlpha = p;
|
|
128
128
|
const u = m, o = C ? m / W : I;
|
|
129
129
|
if (n) {
|
|
130
|
-
const
|
|
130
|
+
const c = e.canvas.width, d = e.canvas.height;
|
|
131
131
|
for (let g = a; g < d; g += o + S)
|
|
132
|
-
for (let _ = i; _ <
|
|
132
|
+
for (let _ = i; _ < c; _ += u + s)
|
|
133
133
|
e.save(), e.translate(_, g), e.rotate(Math.PI / 180 * v), e.drawImage(r, 0, 0, u, o), e.restore();
|
|
134
134
|
} else
|
|
135
135
|
e.save(), e.translate(i, a), e.rotate(Math.PI / 180 * v), e.drawImage(r, 0, 0, u, o), e.restore();
|
|
@@ -150,13 +150,13 @@ class se extends z {
|
|
|
150
150
|
}
|
|
151
151
|
updateConfig(r, i) {
|
|
152
152
|
var a;
|
|
153
|
-
this._config = r, ((a = this._config) == null ? void 0 : a.type) ===
|
|
153
|
+
this._config = r, ((a = this._config) == null ? void 0 : a.type) === f.Image && this._config.config.image && (this._image = new Image(), this._image.src = this._config.config.image.url), i && (this._user = i);
|
|
154
154
|
}
|
|
155
155
|
_renderWatermark(r) {
|
|
156
156
|
this._config && re(r, this._config, this._image, this._user);
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
var oe = Object.defineProperty, le = Object.getOwnPropertyDescriptor,
|
|
159
|
+
var oe = Object.defineProperty, le = Object.getOwnPropertyDescriptor, fe = (e, t, r, i) => {
|
|
160
160
|
for (var a = i > 1 ? void 0 : i ? le(t, r) : t, n = e.length - 1, s; n >= 0; n--)
|
|
161
161
|
(s = e[n]) && (a = (i ? s(t, r, a) : s(a)) || a);
|
|
162
162
|
return i && a && oe(t, r, a), a;
|
|
@@ -184,20 +184,20 @@ let k = class extends K {
|
|
|
184
184
|
this._watermarkLayer.updateConfig(), (r = this._context.mainComponent) == null || r.makeDirty();
|
|
185
185
|
return;
|
|
186
186
|
}
|
|
187
|
-
t.type ===
|
|
187
|
+
t.type === f.UserInfo ? this._watermarkLayer.updateConfig(t, this._userManagerService.getCurrentUser()) : this._watermarkLayer.updateConfig(t), (i = this._context.mainComponent) == null || i.makeDirty();
|
|
188
188
|
})
|
|
189
189
|
);
|
|
190
190
|
}
|
|
191
191
|
};
|
|
192
|
-
k =
|
|
192
|
+
k = fe([
|
|
193
193
|
M(1, y(R)),
|
|
194
194
|
M(2, y($)),
|
|
195
195
|
M(3, y(X))
|
|
196
196
|
], k);
|
|
197
|
-
var
|
|
197
|
+
var ce = Object.defineProperty, ge = Object.getOwnPropertyDescriptor, _e = (e, t, r, i) => {
|
|
198
198
|
for (var a = i > 1 ? void 0 : i ? ge(t, r) : t, n = e.length - 1, s; n >= 0; n--)
|
|
199
199
|
(s = e[n]) && (a = (i ? s(t, r, a) : s(a)) || a);
|
|
200
|
-
return i && a &&
|
|
200
|
+
return i && a && ce(t, r, a), a;
|
|
201
201
|
}, A = (e, t) => (r, i) => t(r, i, e);
|
|
202
202
|
const he = "UNIVER_WATERMARK_PLUGIN";
|
|
203
203
|
var E;
|
|
@@ -218,28 +218,28 @@ let L = (E = class extends V {
|
|
|
218
218
|
const { userWatermarkSettings: t, textWatermarkSettings: r, imageWatermarkSettings: i } = e;
|
|
219
219
|
if (t)
|
|
220
220
|
this._localStorageService.setItem(h, {
|
|
221
|
-
type:
|
|
221
|
+
type: f.UserInfo,
|
|
222
222
|
config: {
|
|
223
223
|
userInfo: w({}, Q, t)
|
|
224
224
|
}
|
|
225
225
|
});
|
|
226
226
|
else if (r)
|
|
227
227
|
this._localStorageService.setItem(h, {
|
|
228
|
-
type:
|
|
228
|
+
type: f.Text,
|
|
229
229
|
config: {
|
|
230
230
|
text: w({}, q, r)
|
|
231
231
|
}
|
|
232
232
|
});
|
|
233
233
|
else if (i)
|
|
234
234
|
this._localStorageService.setItem(h, {
|
|
235
|
-
type:
|
|
235
|
+
type: f.Image,
|
|
236
236
|
config: {
|
|
237
237
|
image: w({}, J, i)
|
|
238
238
|
}
|
|
239
239
|
});
|
|
240
240
|
else {
|
|
241
241
|
const a = await this._localStorageService.getItem(h);
|
|
242
|
-
(a == null ? void 0 : a.type) ===
|
|
242
|
+
(a == null ? void 0 : a.type) === f.UserInfo && this._localStorageService.removeItem(h);
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
_initDependencies() {
|
|
@@ -265,7 +265,7 @@ L = _e([
|
|
|
265
265
|
A(4, y($))
|
|
266
266
|
], L);
|
|
267
267
|
export {
|
|
268
|
-
|
|
268
|
+
f as IWatermarkTypeEnum,
|
|
269
269
|
h as UNIVER_WATERMARK_STORAGE_KEY,
|
|
270
270
|
L as UniverWatermarkPlugin,
|
|
271
271
|
ue as WATERMARK_IMAGE_ALLOW_IMAGE_LIST,
|
package/lib/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(o,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","rxjs"],n):(o=typeof globalThis<"u"?globalThis:o||self,n(o.UniverWatermark={},o.UniverCore,o.UniverEngineRender,o.rxjs))})(this,function(o,n,S,T){"use strict";var te=Object.defineProperty;var re=(o,n,S)=>n in o?te(o,n,{enumerable:!0,configurable:!0,writable:!0,value:S}):o[n]=S;var _=(o,n,S)=>re(o,typeof n!="symbol"?n+"":n,S);var M;const l="UNIVER_WATERMARK_STORAGE_KEY",D=["image/png","image/jpeg","image/jpg","image/bmp"],j={content:"",fontSize:16,color:"rgb(0,0,0)",bold:!1,italic:!1,direction:"ltr",x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},b={url:"",width:100,height:100,maintainAspectRatio:!0,originRatio:1,x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},L={name:!0,email:!1,phone:!1,uid:!1,fontSize:16,color:"rgb(0,0,0)",bold:!1,italic:!1,direction:"ltr",x:60,y:60,repeat:!0,spacingX:200,spacingY:100,rotate:-30,opacity:.15};var g=(e=>(e.UserInfo="userInfo",e.Text="text",e.Image="image",e))(g||{});const $="watermark.config",O={};var N=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,K=(e,r,t,i)=>{for(var a=i>1?void 0:i?Y(r,t):r,s=e.length-1,f;s>=0;s--)(f=e[s])&&(a=(i?f(r,t,a):f(a))||a);return i&&a&&N(r,t,a),a},G=(e,r)=>(t,i)=>r(t,i,e);o.WatermarkService=class extends n.Disposable{constructor(t){super();_(this,"_updateConfig$",new T.Subject);_(this,"updateConfig$",this._updateConfig$.asObservable());_(this,"_refresh$",new T.Subject);_(this,"refresh$",this._refresh$.asObservable());this._localStorageService=t}async getWatermarkConfig(){return await this._localStorageService.getItem(l)}updateWatermarkConfig(t){this._localStorageService.setItem(l,t),this._updateConfig$.next(t)}deleteWatermarkConfig(){this._localStorageService.removeItem(l),this._updateConfig$.next(null)}refresh(){this._refresh$.next(Math.random())}dispose(){this._refresh$.complete(),this._updateConfig$.complete()}},o.WatermarkService=K([G(0,n.Inject(n.ILocalStorageService))],o.WatermarkService);function X(e,r,t,i){const a=r.type,s=r.config;a===g.UserInfo&&s.userInfo?V(e,s.userInfo,i):a===g.Image&&s.image?H(e,s.image,t):a===g.Text&&s.text&&B(e,s.text)}function V(e,r,t){const{x:i,y:a,repeat:s,spacingX:f,spacingY:R,rotate:I,opacity:
|
|
1
|
+
(function(o,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","rxjs"],n):(o=typeof globalThis<"u"?globalThis:o||self,n(o.UniverWatermark={},o.UniverCore,o.UniverEngineRender,o.rxjs))})(this,function(o,n,S,T){"use strict";var te=Object.defineProperty;var re=(o,n,S)=>n in o?te(o,n,{enumerable:!0,configurable:!0,writable:!0,value:S}):o[n]=S;var _=(o,n,S)=>re(o,typeof n!="symbol"?n+"":n,S);var M;const l="UNIVER_WATERMARK_STORAGE_KEY",D=["image/png","image/jpeg","image/jpg","image/bmp"],j={content:"",fontSize:16,color:"rgb(0,0,0)",bold:!1,italic:!1,direction:"ltr",x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},b={url:"",width:100,height:100,maintainAspectRatio:!0,originRatio:1,x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},L={name:!0,email:!1,phone:!1,uid:!1,fontSize:16,color:"rgb(0,0,0)",bold:!1,italic:!1,direction:"ltr",x:60,y:60,repeat:!0,spacingX:200,spacingY:100,rotate:-30,opacity:.15};var g=(e=>(e.UserInfo="userInfo",e.Text="text",e.Image="image",e))(g||{});const $="watermark.config",O={};var N=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,K=(e,r,t,i)=>{for(var a=i>1?void 0:i?Y(r,t):r,s=e.length-1,f;s>=0;s--)(f=e[s])&&(a=(i?f(r,t,a):f(a))||a);return i&&a&&N(r,t,a),a},G=(e,r)=>(t,i)=>r(t,i,e);o.WatermarkService=class extends n.Disposable{constructor(t){super();_(this,"_updateConfig$",new T.Subject);_(this,"updateConfig$",this._updateConfig$.asObservable());_(this,"_refresh$",new T.Subject);_(this,"refresh$",this._refresh$.asObservable());this._localStorageService=t}async getWatermarkConfig(){return await this._localStorageService.getItem(l)}updateWatermarkConfig(t){this._localStorageService.setItem(l,t),this._updateConfig$.next(t)}deleteWatermarkConfig(){this._localStorageService.removeItem(l),this._updateConfig$.next(null)}refresh(){this._refresh$.next(Math.random())}dispose(){this._refresh$.complete(),this._updateConfig$.complete()}},o.WatermarkService=K([G(0,n.Inject(n.ILocalStorageService))],o.WatermarkService);function X(e,r,t,i){const a=r.type,s=r.config;a===g.UserInfo&&s.userInfo?V(e,s.userInfo,i):a===g.Image&&s.image?H(e,s.image,t):a===g.Text&&s.text&&B(e,s.text)}function V(e,r,t){const{x:i,y:a,repeat:s,spacingX:f,spacingY:R,rotate:I,opacity:v,name:p,fontSize:y,color:C,bold:A,italic:W,direction:c}=r;if(!t)return;let h="";if(p&&(h+=`${t.name} `),!h)return;e.save(),e.globalAlpha=v,e.direction=c;let u="";if(W&&(u+="italic "),A&&(u+="bold "),u+=`${y}px Arial`,e.font=u,e.fillStyle=C,s){const m=e.canvas.width,d=e.canvas.height;for(let U=a;U<d;U+=y+R)for(let P=i;P<m;P+=e.measureText(h).width+f)e.save(),e.translate(P,U),e.rotate(Math.PI/180*I),e.fillText(h,0,0),e.restore()}else e.save(),e.translate(i,a),e.rotate(Math.PI/180*I),e.fillText(h,0,0),e.restore();e.restore()}function B(e,r){const{x:t,y:i,repeat:a,spacingX:s,spacingY:f,rotate:R,opacity:I,content:v,fontSize:p,color:y,bold:C,italic:A,direction:W}=r;e.save(),e.globalAlpha=I,e.direction=W;let c="";if(A&&(c+="italic "),C&&(c+="bold "),c+=`${p}px Arial`,e.font=c,e.fillStyle=y,v)if(a){const h=e.canvas.width,u=e.canvas.height;for(let m=i;m<u;m+=p+f)for(let d=t;d<h;d+=e.measureText(v).width+s)e.save(),e.translate(d,m),e.rotate(Math.PI/180*R),e.fillText(v,0,0),e.restore()}else e.save(),e.translate(t,i),e.rotate(Math.PI/180*R),e.fillText(v,0,0),e.restore();e.restore()}function H(e,r,t){const{x:i,y:a,repeat:s,spacingX:f,spacingY:R,rotate:I,opacity:v,width:p,height:y,maintainAspectRatio:C,originRatio:A}=r;if(!(t!=null&&t.complete))return;e.save(),e.globalAlpha=v;const W=p,c=C?p/A:y;if(s){const h=e.canvas.width,u=e.canvas.height;for(let m=a;m<u;m+=c+R)for(let d=i;d<h;d+=W+f)e.save(),e.translate(d,m),e.rotate(Math.PI/180*I),e.drawImage(t,0,0,W,c),e.restore()}else e.save(),e.translate(i,a),e.rotate(Math.PI/180*I),e.drawImage(t,0,0,W,c),e.restore();e.restore()}class z extends S.Layer{constructor(){super(...arguments);_(this,"_config");_(this,"_image");_(this,"_user")}render(t,i=!1){var s;super.render(t,i);const a=t||((s=this.scene.getEngine())==null?void 0:s.getCanvas().getContext());return a&&a.getId()&&this._renderWatermark(a),this}updateConfig(t,i){var a;this._config=t,((a=this._config)==null?void 0:a.type)===g.Image&&this._config.config.image&&(this._image=new Image,this._image.src=this._config.config.image.url),i&&(this._user=i)}_renderWatermark(t){this._config&&X(t,this._config,this._image,this._user)}}var q=Object.defineProperty,F=Object.getOwnPropertyDescriptor,J=(e,r,t,i)=>{for(var a=i>1?void 0:i?F(r,t):r,s=e.length-1,f;s>=0;s--)(f=e[s])&&(a=(i?f(r,t,a):f(a))||a);return i&&a&&q(r,t,a),a},E=(e,r)=>(t,i)=>r(t,i,e);let w=class extends n.RxDisposable{constructor(r,t,i,a){super();_(this,"_watermarkLayer");this._context=r,this._watermarkService=t,this._localStorageService=i,this._userManagerService=a,this._watermarkLayer=new z(r.scene,[],10),this._initAddRender(),this._initWatermarkUpdate(),this._initWatermarkConfig()}_initAddRender(){const{scene:r}=this._context;r.addLayer(this._watermarkLayer)}async _initWatermarkConfig(){var t;const r=await this._localStorageService.getItem(l);r&&(this._watermarkService.updateWatermarkConfig(r),(t=this._context.mainComponent)==null||t.makeDirty())}_initWatermarkUpdate(){this.disposeWithMe(this._watermarkService.updateConfig$.subscribe(r=>{var t,i;if(!r){this._watermarkLayer.updateConfig(),(t=this._context.mainComponent)==null||t.makeDirty();return}r.type===g.UserInfo?this._watermarkLayer.updateConfig(r,this._userManagerService.getCurrentUser()):this._watermarkLayer.updateConfig(r),(i=this._context.mainComponent)==null||i.makeDirty()}))}};w=J([E(1,n.Inject(o.WatermarkService)),E(2,n.Inject(n.ILocalStorageService)),E(3,n.Inject(n.UserManagerService))],w);var Q=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,x=(e,r,t,i)=>{for(var a=i>1?void 0:i?Z(r,t):r,s=e.length-1,f;s>=0;s--)(f=e[s])&&(a=(i?f(r,t,a):f(a))||a);return i&&a&&Q(r,t,a),a},k=(e,r)=>(t,i)=>r(t,i,e);const ee="UNIVER_WATERMARK_PLUGIN";o.UniverWatermarkPlugin=(M=class extends n.Plugin{constructor(r=O,t,i,a,s){super(),this._config=r,this._injector=t,this._configService=i,this._renderManagerSrv=a,this._localStorageService=s;const{...f}=n.merge({},O,this._config);this._configService.setConfig($,f),this._initWatermarkStorage(),this._initDependencies()}async _initWatermarkStorage(){const r=this._configService.getConfig($);if(!r)return;const{userWatermarkSettings:t,textWatermarkSettings:i,imageWatermarkSettings:a}=r;if(t)this._localStorageService.setItem(l,{type:g.UserInfo,config:{userInfo:n.merge({},L,t)}});else if(i)this._localStorageService.setItem(l,{type:g.Text,config:{text:n.merge({},j,i)}});else if(a)this._localStorageService.setItem(l,{type:g.Image,config:{image:n.merge({},b,a)}});else{const s=await this._localStorageService.getItem(l);(s==null?void 0:s.type)===g.UserInfo&&this._localStorageService.removeItem(l)}}_initDependencies(){[[o.WatermarkService]].forEach(r=>{this._injector.add(r)})}onRendered(){this._injector.get(o.WatermarkService),this._initRenderDependencies()}_initRenderDependencies(){[[w]].forEach(r=>{this._renderManagerSrv.registerRenderModule(n.UniverInstanceType.UNIVER_SHEET,r),this._renderManagerSrv.registerRenderModule(n.UniverInstanceType.UNIVER_DOC,r)})}},_(M,"pluginName",ee),M),o.UniverWatermarkPlugin=x([k(1,n.Inject(n.Injector)),k(2,n.IConfigService),k(3,S.IRenderManagerService),k(4,n.Inject(n.ILocalStorageService))],o.UniverWatermarkPlugin),o.IWatermarkTypeEnum=g,o.UNIVER_WATERMARK_STORAGE_KEY=l,o.WATERMARK_IMAGE_ALLOW_IMAGE_LIST=D,o.WatermarkImageBaseConfig=b,o.WatermarkTextBaseConfig=j,o.WatermarkUserInfoBaseConfig=L,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/watermark",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "univer watermark plugin",
|
|
6
6
|
"author": "DreamNum <developer@univer.ai>",
|
|
@@ -59,15 +59,15 @@
|
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"clsx": "^2.1.1",
|
|
62
|
-
"@univerjs/core": "0.5.
|
|
63
|
-
"@univerjs/engine-render": "0.5.
|
|
62
|
+
"@univerjs/core": "0.5.4",
|
|
63
|
+
"@univerjs/engine-render": "0.5.4"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"rxjs": "^7.8.1",
|
|
67
67
|
"typescript": "^5.7.2",
|
|
68
|
-
"vite": "^6.0.
|
|
68
|
+
"vite": "^6.0.7",
|
|
69
69
|
"vitest": "^2.1.8",
|
|
70
|
-
"@univerjs-infra/shared": "0.5.
|
|
70
|
+
"@univerjs-infra/shared": "0.5.4"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
73
|
"test": "vitest run",
|