@univerjs/watermark 0.6.0 → 0.6.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/lib/cjs/facade.js CHANGED
@@ -1 +1 @@
1
- "use strict";const i=require("@univerjs/core/facade"),e=require("@univerjs/watermark");class n extends i.FUniver{addWatermark(r,a){const t=this._injector.get(e.WatermarkService);if(r===e.IWatermarkTypeEnum.Text)t.updateWatermarkConfig({type:e.IWatermarkTypeEnum.Text,config:{text:{...e.WatermarkTextBaseConfig,...a}}});else if(r===e.IWatermarkTypeEnum.Image)t.updateWatermarkConfig({type:e.IWatermarkTypeEnum.Image,config:{image:{...e.WatermarkImageBaseConfig,...a}}});else throw new Error("Unknown watermark type");return this}deleteWatermark(){return this._injector.get(e.WatermarkService).deleteWatermarkConfig(),this}}i.FUniver.extend(n);
1
+ "use strict";const t=require("@univerjs/core/facade"),e=require("@univerjs/engine-render"),r=require("@univerjs/watermark");class k extends t.FUniver{addWatermark(a,n){const m=this._injector.get(r.WatermarkService);if(a===e.IWatermarkTypeEnum.Text)m.updateWatermarkConfig({type:e.IWatermarkTypeEnum.Text,config:{text:{...r.WatermarkTextBaseConfig,...n}}});else if(a===e.IWatermarkTypeEnum.Image)m.updateWatermarkConfig({type:e.IWatermarkTypeEnum.Image,config:{image:{...r.WatermarkImageBaseConfig,...n}}});else throw new Error("Unknown watermark type");return this}deleteWatermark(){return this._injector.get(r.WatermarkService).deleteWatermarkConfig(),this}}class s{get IWatermarkTypeEnum(){return e.IWatermarkTypeEnum}}t.FUniver.extend(k);t.FEnum.extend(s);
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"),P=require("@univerjs/engine-render"),T=require("rxjs"),f="UNIVER_WATERMARK_STORAGE_KEY",N=10,Y=["image/png","image/jpeg","image/jpg","image/bmp"],L={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},j={url:"",width:100,height:100,maintainAspectRatio:!0,originRatio:1,x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},$={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 U="watermark.config",b={};var K=Object.getOwnPropertyDescriptor,G=(e,t,r,a)=>{for(var i=a>1?void 0:a?K(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},X=(e,t)=>(r,a)=>t(r,a,e);exports.WatermarkService=class extends s.Disposable{constructor(r){super();l(this,"_updateConfig$",new T.Subject);l(this,"updateConfig$",this._updateConfig$.asObservable());l(this,"_refresh$",new T.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=G([X(0,s.Inject(s.ILocalStorageService))],exports.WatermarkService);function V(e,t,r,a){const i=t.type,n=t.config;i===c.UserInfo&&n.userInfo?B(e,n.userInfo,a):i===c.Image&&n.image?z(e,n.image,r):i===c.Text&&n.text&&H(e,n.text)}function B(e,t,r){const{x:a,y:i,repeat:n,spacingX:o,spacingY:I,rotate:u,opacity:p,name:d,fontSize:W,color:k,bold:y,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 "),y&&(v+="bold "),v+=`${W}px Arial`,e.font=v,e.fillStyle=k,n){const h=e.canvas.width,m=e.canvas.height;for(let R=i;R<m;R+=W+I)for(let A=a;A<h;A+=e.measureText(_).width+o)e.save(),e.translate(A,R),e.rotate(Math.PI/180*u),e.fillText(_,0,0),e.restore()}else e.save(),e.translate(a,i),e.rotate(Math.PI/180*u),e.fillText(_,0,0),e.restore();e.restore()}function H(e,t){const{x:r,y:a,repeat:i,spacingX:n,spacingY:o,rotate:I,opacity:u,content:p,fontSize:d,color:W,bold:k,italic:y,direction:S}=t;e.save(),e.globalAlpha=u,e.direction=S;let g="";if(y&&(g+="italic "),k&&(g+="bold "),g+=`${d}px Arial`,e.font=g,e.fillStyle=W,p)if(i){const _=e.canvas.width,v=e.canvas.height;for(let h=a;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,a),e.rotate(Math.PI/180*I),e.fillText(p,0,0),e.restore();e.restore()}function z(e,t,r){const{x:a,y:i,repeat:n,spacingX:o,spacingY:I,rotate:u,opacity:p,width:d,height:W,maintainAspectRatio:k,originRatio:y}=t;if(!(r!=null&&r.complete))return;e.save(),e.globalAlpha=p;const S=d,g=k?d/y:W;if(n){const _=e.canvas.width,v=e.canvas.height;for(let h=i;h<v;h+=g+I)for(let m=a;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(a,i),e.rotate(Math.PI/180*u),e.drawImage(r,0,0,S,g),e.restore();e.restore()}class q extends P.Layer{constructor(){super(...arguments);l(this,"_config");l(this,"_image");l(this,"_user")}render(r,a=!1){var n;super.render(r,a);const i=r||((n=this.scene.getEngine())==null?void 0:n.getCanvas().getContext());return i&&i.getId()&&this._renderWatermark(i),this}updateConfig(r,a){var i;this._config=r,((i=this._config)==null?void 0:i.type)===c.Image&&this._config.config.image&&(this._image=new Image,this._image.src=this._config.config.image.url),a&&(this._user=a)}_renderWatermark(r){this._config&&V(r,this._config,this._image,this._user)}}var F=Object.getOwnPropertyDescriptor,J=(e,t,r,a)=>{for(var i=a>1?void 0:a?F(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},w=(e,t)=>(r,a)=>t(r,a,e);let M=class extends s.RxDisposable{constructor(t,r,a,i){super();l(this,"_watermarkLayer");this._context=t,this._watermarkService=r,this._localStorageService=a,this._userManagerService=i,this._watermarkLayer=new q(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,a;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),(a=this._context.mainComponent)==null||a.makeDirty()}))}};M=J([w(1,s.Inject(exports.WatermarkService)),w(2,s.Inject(s.ILocalStorageService)),w(3,s.Inject(s.UserManagerService))],M);var Q=Object.getOwnPropertyDescriptor,Z=(e,t,r,a)=>{for(var i=a>1?void 0:a?Q(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},C=(e,t)=>(r,a)=>t(r,a,e);const x="UNIVER_WATERMARK_PLUGIN";var E;exports.UniverWatermarkPlugin=(E=class extends s.Plugin{constructor(t=b,r,a,i,n){super(),this._config=t,this._injector=r,this._configService=a,this._renderManagerSrv=i,this._localStorageService=n;const{...o}=s.merge({},b,this._config);this._configService.setConfig(U,o),this._initWatermarkStorage(),this._initDependencies()}async _initWatermarkStorage(){const t=this._configService.getConfig(U);if(!t)return;const{userWatermarkSettings:r,textWatermarkSettings:a,imageWatermarkSettings:i}=t;if(r)this._localStorageService.setItem(f,{type:c.UserInfo,config:{userInfo:s.merge({},$,r)}});else if(a)this._localStorageService.setItem(f,{type:c.Text,config:{text:s.merge({},L,a)}});else if(i)this._localStorageService.setItem(f,{type:c.Image,config:{image:s.merge({},j,i)}});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",x),E);exports.UniverWatermarkPlugin=Z([C(1,s.Inject(s.Injector)),C(2,s.IConfigService),C(3,P.IRenderManagerService),C(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=j;exports.WatermarkTextBaseConfig=L;exports.WatermarkUserInfoBaseConfig=$;
1
+ "use strict";var E=Object.defineProperty;var I=(a,e,r)=>e in a?E(a,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[e]=r;var _=(a,e,r)=>I(a,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@univerjs/core"),o=require("@univerjs/engine-render"),f=require("rxjs"),d=["image/png","image/jpeg","image/jpg","image/bmp"],v={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},u={url:"",width:100,height:100,maintainAspectRatio:!0,originRatio:1,x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},R={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},p="watermark.config",h={};var W=Object.getOwnPropertyDescriptor,A=(a,e,r,t)=>{for(var i=t>1?void 0:t?W(e,r):e,s=a.length-1,c;s>=0;s--)(c=a[s])&&(i=c(i)||i);return i},k=(a,e)=>(r,t)=>e(r,t,a);exports.WatermarkService=class extends n.Disposable{constructor(r){super();_(this,"_updateConfig$",new f.Subject);_(this,"updateConfig$",this._updateConfig$.asObservable());_(this,"_refresh$",new f.Subject);_(this,"refresh$",this._refresh$.asObservable());this._localStorageService=r}async getWatermarkConfig(){return await this._localStorageService.getItem(o.UNIVER_WATERMARK_STORAGE_KEY)}updateWatermarkConfig(r){this._localStorageService.setItem(o.UNIVER_WATERMARK_STORAGE_KEY,r),this._updateConfig$.next(r)}deleteWatermarkConfig(){this._localStorageService.removeItem(o.UNIVER_WATERMARK_STORAGE_KEY),this._updateConfig$.next(null)}refresh(){this._refresh$.next(Math.random())}dispose(){this._refresh$.complete(),this._updateConfig$.complete()}};exports.WatermarkService=A([k(0,n.Inject(n.ILocalStorageService))],exports.WatermarkService);var y=Object.getOwnPropertyDescriptor,T=(a,e,r,t)=>{for(var i=t>1?void 0:t?y(e,r):e,s=a.length-1,c;s>=0;s--)(c=a[s])&&(i=c(i)||i);return i},m=(a,e)=>(r,t)=>e(r,t,a);let S=class extends n.RxDisposable{constructor(e,r,t,i){super();_(this,"_watermarkLayer");this._context=e,this._watermarkService=r,this._localStorageService=t,this._userManagerService=i,this._watermarkLayer=new o.WatermarkLayer(e.scene,[],o.UNIVER_WATERMARK_LAYER_INDEX),this._initAddRender(),this._initWatermarkUpdate(),this._initWatermarkConfig()}_initAddRender(){const{scene:e}=this._context;e.addLayer(this._watermarkLayer)}async _initWatermarkConfig(){var r;const e=await this._localStorageService.getItem(o.UNIVER_WATERMARK_STORAGE_KEY);e&&(this._watermarkService.updateWatermarkConfig(e),(r=this._context.mainComponent)==null||r.makeDirty())}_initWatermarkUpdate(){this.disposeWithMe(this._watermarkService.updateConfig$.subscribe(e=>{var r,t;if(!e){this._watermarkLayer.updateConfig(),(r=this._context.mainComponent)==null||r.makeDirty();return}e.type===o.IWatermarkTypeEnum.UserInfo?this._watermarkLayer.updateConfig(e,this._userManagerService.getCurrentUser()):this._watermarkLayer.updateConfig(e),(t=this._context.mainComponent)==null||t.makeDirty()}))}};S=T([m(1,n.Inject(exports.WatermarkService)),m(2,n.Inject(n.ILocalStorageService)),m(3,n.Inject(n.UserManagerService))],S);var C=Object.getOwnPropertyDescriptor,M=(a,e,r,t)=>{for(var i=t>1?void 0:t?C(e,r):e,s=a.length-1,c;s>=0;s--)(c=a[s])&&(i=c(i)||i);return i},g=(a,e)=>(r,t)=>e(r,t,a);const U="UNIVER_WATERMARK_PLUGIN";var l;exports.UniverWatermarkPlugin=(l=class extends n.Plugin{constructor(e=h,r,t,i,s){super(),this._config=e,this._injector=r,this._configService=t,this._renderManagerSrv=i,this._localStorageService=s;const{...c}=n.merge({},h,this._config);this._configService.setConfig(p,c),this._initWatermarkStorage(),this._initDependencies()}async _initWatermarkStorage(){const e=this._configService.getConfig(p);if(!e)return;const{userWatermarkSettings:r,textWatermarkSettings:t,imageWatermarkSettings:i}=e;if(r)this._localStorageService.setItem(o.UNIVER_WATERMARK_STORAGE_KEY,{type:o.IWatermarkTypeEnum.UserInfo,config:{userInfo:n.merge({},R,r)}});else if(t)this._localStorageService.setItem(o.UNIVER_WATERMARK_STORAGE_KEY,{type:o.IWatermarkTypeEnum.Text,config:{text:n.merge({},v,t)}});else if(i)this._localStorageService.setItem(o.UNIVER_WATERMARK_STORAGE_KEY,{type:o.IWatermarkTypeEnum.Image,config:{image:n.merge({},u,i)}});else{const s=await this._localStorageService.getItem(o.UNIVER_WATERMARK_STORAGE_KEY);(s==null?void 0:s.type)===o.IWatermarkTypeEnum.UserInfo&&this._localStorageService.removeItem(o.UNIVER_WATERMARK_STORAGE_KEY)}}_initDependencies(){[[exports.WatermarkService]].forEach(e=>{this._injector.add(e)})}onRendered(){this._injector.get(exports.WatermarkService),this._initRenderDependencies()}_initRenderDependencies(){[[S]].forEach(e=>{this._renderManagerSrv.registerRenderModule(n.UniverInstanceType.UNIVER_SHEET,e),this._renderManagerSrv.registerRenderModule(n.UniverInstanceType.UNIVER_DOC,e)})}},_(l,"pluginName",U),l);exports.UniverWatermarkPlugin=M([g(1,n.Inject(n.Injector)),g(2,n.IConfigService),g(3,o.IRenderManagerService),g(4,n.Inject(n.ILocalStorageService))],exports.UniverWatermarkPlugin);exports.WATERMARK_IMAGE_ALLOW_IMAGE_LIST=d;exports.WatermarkImageBaseConfig=u;exports.WatermarkTextBaseConfig=v;exports.WatermarkUserInfoBaseConfig=R;
package/lib/es/facade.js CHANGED
@@ -1,14 +1,15 @@
1
- import { FUniver as m } from "@univerjs/core/facade";
2
- import { WatermarkService as i, IWatermarkTypeEnum as e, WatermarkTextBaseConfig as n, WatermarkImageBaseConfig as o } from "@univerjs/watermark";
3
- class k extends m {
1
+ import { FUniver as n, FEnum as o } from "@univerjs/core/facade";
2
+ import { IWatermarkTypeEnum as e } from "@univerjs/engine-render";
3
+ import { WatermarkService as m, WatermarkTextBaseConfig as k, WatermarkImageBaseConfig as s } from "@univerjs/watermark";
4
+ class g extends n {
4
5
  addWatermark(r, t) {
5
- const a = this._injector.get(i);
6
+ const a = this._injector.get(m);
6
7
  if (r === e.Text)
7
8
  a.updateWatermarkConfig({
8
9
  type: e.Text,
9
10
  config: {
10
11
  text: {
11
- ...n,
12
+ ...k,
12
13
  ...t
13
14
  }
14
15
  }
@@ -18,7 +19,7 @@ class k extends m {
18
19
  type: e.Image,
19
20
  config: {
20
21
  image: {
21
- ...o,
22
+ ...s,
22
23
  ...t
23
24
  }
24
25
  }
@@ -28,7 +29,13 @@ class k extends m {
28
29
  return this;
29
30
  }
30
31
  deleteWatermark() {
31
- return this._injector.get(i).deleteWatermarkConfig(), this;
32
+ return this._injector.get(m).deleteWatermarkConfig(), this;
32
33
  }
33
34
  }
34
- m.extend(k);
35
+ class W {
36
+ get IWatermarkTypeEnum() {
37
+ return e;
38
+ }
39
+ }
40
+ n.extend(g);
41
+ o.extend(W);
package/lib/es/index.js CHANGED
@@ -1,10 +1,10 @@
1
- var j = Object.defineProperty;
2
- var N = (e, t, r) => t in e ? j(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
- var l = (e, t, r) => N(e, typeof t != "symbol" ? t + "" : t, r);
4
- import { Inject as C, ILocalStorageService as P, Disposable as Y, UserManagerService as X, RxDisposable as K, Injector as G, IConfigService as V, Plugin as H, merge as R, UniverInstanceType as $ } from "@univerjs/core";
5
- import { Layer as z, IRenderManagerService as B } from "@univerjs/engine-render";
6
- import { Subject as T } from "rxjs";
7
- const _ = "UNIVER_WATERMARK_STORAGE_KEY", F = 10, pe = ["image/png", "image/jpeg", "image/jpg", "image/bmp"], q = {
1
+ var y = Object.defineProperty;
2
+ var R = (t, e, r) => e in t ? y(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
+ var c = (t, e, r) => R(t, typeof e != "symbol" ? e + "" : e, r);
4
+ import { Inject as g, ILocalStorageService as v, Disposable as W, UserManagerService as w, RxDisposable as E, Injector as x, IConfigService as A, Plugin as M, merge as m, UniverInstanceType as S } from "@univerjs/core";
5
+ import { UNIVER_WATERMARK_STORAGE_KEY as s, WatermarkLayer as U, UNIVER_WATERMARK_LAYER_INDEX as $, IWatermarkTypeEnum as _, IRenderManagerService as b } from "@univerjs/engine-render";
6
+ import { Subject as u } from "rxjs";
7
+ const H = ["image/png", "image/jpeg", "image/jpg", "image/bmp"], D = {
8
8
  content: "",
9
9
  fontSize: 16,
10
10
  color: "rgb(0,0,0)",
@@ -18,7 +18,7 @@ const _ = "UNIVER_WATERMARK_STORAGE_KEY", F = 10, pe = ["image/png", "image/jpeg
18
18
  spacingY: 100,
19
19
  rotate: 0,
20
20
  opacity: 0.15
21
- }, J = {
21
+ }, L = {
22
22
  url: "",
23
23
  width: 100,
24
24
  height: 100,
@@ -31,7 +31,7 @@ const _ = "UNIVER_WATERMARK_STORAGE_KEY", F = 10, pe = ["image/png", "image/jpeg
31
31
  spacingY: 100,
32
32
  rotate: 0,
33
33
  opacity: 0.15
34
- }, Q = {
34
+ }, O = {
35
35
  name: !0,
36
36
  email: !1,
37
37
  phone: !1,
@@ -48,31 +48,29 @@ const _ = "UNIVER_WATERMARK_STORAGE_KEY", F = 10, pe = ["image/png", "image/jpeg
48
48
  spacingY: 100,
49
49
  rotate: -30,
50
50
  opacity: 0.15
51
- };
52
- var g = /* @__PURE__ */ ((e) => (e.UserInfo = "userInfo", e.Text = "text", e.Image = "image", e))(g || {});
53
- const D = "watermark.config", L = {};
54
- var Z = Object.getOwnPropertyDescriptor, x = (e, t, r, i) => {
55
- for (var a = i > 1 ? void 0 : i ? Z(t, r) : t, n = e.length - 1, s; n >= 0; n--)
56
- (s = e[n]) && (a = s(a) || a);
57
- return a;
58
- }, ee = (e, t) => (r, i) => t(r, i, e);
59
- let W = class extends Y {
60
- constructor(t) {
51
+ }, I = "watermark.config", C = {};
52
+ var P = Object.getOwnPropertyDescriptor, j = (t, e, r, a) => {
53
+ for (var i = a > 1 ? void 0 : a ? P(e, r) : e, n = t.length - 1, o; n >= 0; n--)
54
+ (o = t[n]) && (i = o(i) || i);
55
+ return i;
56
+ }, N = (t, e) => (r, a) => e(r, a, t);
57
+ let l = class extends W {
58
+ constructor(e) {
61
59
  super();
62
- l(this, "_updateConfig$", new T());
63
- l(this, "updateConfig$", this._updateConfig$.asObservable());
64
- l(this, "_refresh$", new T());
65
- l(this, "refresh$", this._refresh$.asObservable());
66
- this._localStorageService = t;
60
+ c(this, "_updateConfig$", new u());
61
+ c(this, "updateConfig$", this._updateConfig$.asObservable());
62
+ c(this, "_refresh$", new u());
63
+ c(this, "refresh$", this._refresh$.asObservable());
64
+ this._localStorageService = e;
67
65
  }
68
66
  async getWatermarkConfig() {
69
- return await this._localStorageService.getItem(_);
67
+ return await this._localStorageService.getItem(s);
70
68
  }
71
- updateWatermarkConfig(t) {
72
- this._localStorageService.setItem(_, t), this._updateConfig$.next(t);
69
+ updateWatermarkConfig(e) {
70
+ this._localStorageService.setItem(s, e), this._updateConfig$.next(e);
73
71
  }
74
72
  deleteWatermarkConfig() {
75
- this._localStorageService.removeItem(_), this._updateConfig$.next(null);
73
+ this._localStorageService.removeItem(s), this._updateConfig$.next(null);
76
74
  }
77
75
  refresh() {
78
76
  this._refresh$.next(Math.random());
@@ -81,196 +79,122 @@ let W = class extends Y {
81
79
  this._refresh$.complete(), this._updateConfig$.complete();
82
80
  }
83
81
  };
84
- W = x([
85
- ee(0, C(P))
86
- ], W);
87
- function te(e, t, r, i) {
88
- const a = t.type, n = t.config;
89
- a === g.UserInfo && n.userInfo ? re(e, n.userInfo, i) : a === g.Image && n.image ? ie(e, n.image, r) : a === g.Text && n.text && ae(e, n.text);
90
- }
91
- function re(e, t, r) {
92
- const { x: i, y: a, repeat: n, spacingX: s, spacingY: S, rotate: v, opacity: m, name: p, fontSize: I, color: y, bold: k, italic: u, direction: o } = t;
93
- if (!r)
94
- return;
95
- let c = "";
96
- if (p && (c += `${r.name} `), !c)
97
- return;
98
- e.save(), e.globalAlpha = m, e.direction = o;
99
- let d = "";
100
- if (u && (d += "italic "), k && (d += "bold "), d += `${I}px Arial`, e.font = d, e.fillStyle = y, n) {
101
- const f = e.canvas.width, h = e.canvas.height;
102
- for (let A = a; A < h; A += I + S)
103
- for (let M = i; M < f; M += e.measureText(c).width + s)
104
- e.save(), e.translate(M, A), e.rotate(Math.PI / 180 * v), e.fillText(c, 0, 0), e.restore();
105
- } else
106
- e.save(), e.translate(i, a), e.rotate(Math.PI / 180 * v), e.fillText(c, 0, 0), e.restore();
107
- e.restore();
108
- }
109
- function ae(e, t) {
110
- const { x: r, y: i, repeat: a, spacingX: n, spacingY: s, rotate: S, opacity: v, content: m, fontSize: p, color: I, bold: y, italic: k, direction: u } = t;
111
- e.save(), e.globalAlpha = v, e.direction = u;
112
- let o = "";
113
- if (k && (o += "italic "), y && (o += "bold "), o += `${p}px Arial`, e.font = o, e.fillStyle = I, m)
114
- if (a) {
115
- const c = e.canvas.width, d = e.canvas.height;
116
- for (let f = i; f < d; f += p + s)
117
- for (let h = r; h < c; h += e.measureText(m).width + n)
118
- e.save(), e.translate(h, f), e.rotate(Math.PI / 180 * S), e.fillText(m, 0, 0), e.restore();
119
- } else
120
- e.save(), e.translate(r, i), e.rotate(Math.PI / 180 * S), e.fillText(m, 0, 0), e.restore();
121
- e.restore();
122
- }
123
- function ie(e, t, r) {
124
- const { x: i, y: a, repeat: n, spacingX: s, spacingY: S, rotate: v, opacity: m, width: p, height: I, maintainAspectRatio: y, originRatio: k } = t;
125
- if (!(r != null && r.complete))
126
- return;
127
- e.save(), e.globalAlpha = m;
128
- const u = p, o = y ? p / k : I;
129
- if (n) {
130
- const c = e.canvas.width, d = e.canvas.height;
131
- for (let f = a; f < d; f += o + S)
132
- for (let h = i; h < c; h += u + s)
133
- e.save(), e.translate(h, f), e.rotate(Math.PI / 180 * v), e.drawImage(r, 0, 0, u, o), e.restore();
134
- } else
135
- e.save(), e.translate(i, a), e.rotate(Math.PI / 180 * v), e.drawImage(r, 0, 0, u, o), e.restore();
136
- e.restore();
137
- }
138
- class ne extends z {
139
- constructor() {
140
- super(...arguments);
141
- l(this, "_config");
142
- l(this, "_image");
143
- l(this, "_user");
144
- }
145
- render(r, i = !1) {
146
- var n;
147
- super.render(r, i);
148
- const a = r || ((n = this.scene.getEngine()) == null ? void 0 : n.getCanvas().getContext());
149
- return a && a.getId() && this._renderWatermark(a), this;
150
- }
151
- updateConfig(r, i) {
152
- var a;
153
- this._config = r, ((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);
154
- }
155
- _renderWatermark(r) {
156
- this._config && te(r, this._config, this._image, this._user);
157
- }
158
- }
159
- var se = Object.getOwnPropertyDescriptor, oe = (e, t, r, i) => {
160
- for (var a = i > 1 ? void 0 : i ? se(t, r) : t, n = e.length - 1, s; n >= 0; n--)
161
- (s = e[n]) && (a = s(a) || a);
162
- return a;
163
- }, E = (e, t) => (r, i) => t(r, i, e);
164
- let U = class extends K {
165
- constructor(t, r, i, a) {
82
+ l = j([
83
+ N(0, g(v))
84
+ ], l);
85
+ var T = Object.getOwnPropertyDescriptor, G = (t, e, r, a) => {
86
+ for (var i = a > 1 ? void 0 : a ? T(e, r) : e, n = t.length - 1, o; n >= 0; n--)
87
+ (o = t[n]) && (i = o(i) || i);
88
+ return i;
89
+ }, h = (t, e) => (r, a) => e(r, a, t);
90
+ let d = class extends E {
91
+ constructor(e, r, a, i) {
166
92
  super();
167
- l(this, "_watermarkLayer");
168
- this._context = t, this._watermarkService = r, this._localStorageService = i, this._userManagerService = a, this._watermarkLayer = new ne(t.scene, [], F), this._initAddRender(), this._initWatermarkUpdate(), this._initWatermarkConfig();
93
+ c(this, "_watermarkLayer");
94
+ this._context = e, this._watermarkService = r, this._localStorageService = a, this._userManagerService = i, this._watermarkLayer = new U(e.scene, [], $), this._initAddRender(), this._initWatermarkUpdate(), this._initWatermarkConfig();
169
95
  }
170
96
  _initAddRender() {
171
- const { scene: t } = this._context;
172
- t.addLayer(this._watermarkLayer);
97
+ const { scene: e } = this._context;
98
+ e.addLayer(this._watermarkLayer);
173
99
  }
174
100
  async _initWatermarkConfig() {
175
101
  var r;
176
- const t = await this._localStorageService.getItem(_);
177
- t && (this._watermarkService.updateWatermarkConfig(t), (r = this._context.mainComponent) == null || r.makeDirty());
102
+ const e = await this._localStorageService.getItem(s);
103
+ e && (this._watermarkService.updateWatermarkConfig(e), (r = this._context.mainComponent) == null || r.makeDirty());
178
104
  }
179
105
  _initWatermarkUpdate() {
180
106
  this.disposeWithMe(
181
- this._watermarkService.updateConfig$.subscribe((t) => {
182
- var r, i;
183
- if (!t) {
107
+ this._watermarkService.updateConfig$.subscribe((e) => {
108
+ var r, a;
109
+ if (!e) {
184
110
  this._watermarkLayer.updateConfig(), (r = this._context.mainComponent) == null || r.makeDirty();
185
111
  return;
186
112
  }
187
- t.type === g.UserInfo ? this._watermarkLayer.updateConfig(t, this._userManagerService.getCurrentUser()) : this._watermarkLayer.updateConfig(t), (i = this._context.mainComponent) == null || i.makeDirty();
113
+ e.type === _.UserInfo ? this._watermarkLayer.updateConfig(e, this._userManagerService.getCurrentUser()) : this._watermarkLayer.updateConfig(e), (a = this._context.mainComponent) == null || a.makeDirty();
188
114
  })
189
115
  );
190
116
  }
191
117
  };
192
- U = oe([
193
- E(1, C(W)),
194
- E(2, C(P)),
195
- E(3, C(X))
196
- ], U);
197
- var le = Object.getOwnPropertyDescriptor, ge = (e, t, r, i) => {
198
- for (var a = i > 1 ? void 0 : i ? le(t, r) : t, n = e.length - 1, s; n >= 0; n--)
199
- (s = e[n]) && (a = s(a) || a);
200
- return a;
201
- }, w = (e, t) => (r, i) => t(r, i, e);
202
- const ce = "UNIVER_WATERMARK_PLUGIN";
203
- var b;
204
- let O = (b = class extends H {
205
- constructor(e = L, t, r, i, a) {
206
- super(), this._config = e, this._injector = t, this._configService = r, this._renderManagerSrv = i, this._localStorageService = a;
207
- const { ...n } = R(
118
+ d = G([
119
+ h(1, g(l)),
120
+ h(2, g(v)),
121
+ h(3, g(w))
122
+ ], d);
123
+ var K = Object.getOwnPropertyDescriptor, Y = (t, e, r, a) => {
124
+ for (var i = a > 1 ? void 0 : a ? K(e, r) : e, n = t.length - 1, o; n >= 0; n--)
125
+ (o = t[n]) && (i = o(i) || i);
126
+ return i;
127
+ }, f = (t, e) => (r, a) => e(r, a, t);
128
+ const V = "UNIVER_WATERMARK_PLUGIN";
129
+ var p;
130
+ let k = (p = class extends M {
131
+ constructor(t = C, e, r, a, i) {
132
+ super(), this._config = t, this._injector = e, this._configService = r, this._renderManagerSrv = a, this._localStorageService = i;
133
+ const { ...n } = m(
208
134
  {},
209
- L,
135
+ C,
210
136
  this._config
211
137
  );
212
- this._configService.setConfig(D, n), this._initWatermarkStorage(), this._initDependencies();
138
+ this._configService.setConfig(I, n), this._initWatermarkStorage(), this._initDependencies();
213
139
  }
214
140
  async _initWatermarkStorage() {
215
- const e = this._configService.getConfig(D);
216
- if (!e)
141
+ const t = this._configService.getConfig(I);
142
+ if (!t)
217
143
  return;
218
- const { userWatermarkSettings: t, textWatermarkSettings: r, imageWatermarkSettings: i } = e;
219
- if (t)
220
- this._localStorageService.setItem(_, {
221
- type: g.UserInfo,
144
+ const { userWatermarkSettings: e, textWatermarkSettings: r, imageWatermarkSettings: a } = t;
145
+ if (e)
146
+ this._localStorageService.setItem(s, {
147
+ type: _.UserInfo,
222
148
  config: {
223
- userInfo: R({}, Q, t)
149
+ userInfo: m({}, O, e)
224
150
  }
225
151
  });
226
152
  else if (r)
227
- this._localStorageService.setItem(_, {
228
- type: g.Text,
153
+ this._localStorageService.setItem(s, {
154
+ type: _.Text,
229
155
  config: {
230
- text: R({}, q, r)
156
+ text: m({}, D, r)
231
157
  }
232
158
  });
233
- else if (i)
234
- this._localStorageService.setItem(_, {
235
- type: g.Image,
159
+ else if (a)
160
+ this._localStorageService.setItem(s, {
161
+ type: _.Image,
236
162
  config: {
237
- image: R({}, J, i)
163
+ image: m({}, L, a)
238
164
  }
239
165
  });
240
166
  else {
241
- const a = await this._localStorageService.getItem(_);
242
- (a == null ? void 0 : a.type) === g.UserInfo && this._localStorageService.removeItem(_);
167
+ const i = await this._localStorageService.getItem(s);
168
+ (i == null ? void 0 : i.type) === _.UserInfo && this._localStorageService.removeItem(s);
243
169
  }
244
170
  }
245
171
  _initDependencies() {
246
- [[W]].forEach((e) => {
247
- this._injector.add(e);
172
+ [[l]].forEach((t) => {
173
+ this._injector.add(t);
248
174
  });
249
175
  }
250
176
  onRendered() {
251
- this._injector.get(W), this._initRenderDependencies();
177
+ this._injector.get(l), this._initRenderDependencies();
252
178
  }
253
179
  _initRenderDependencies() {
254
180
  [
255
- [U]
256
- ].forEach((e) => {
257
- this._renderManagerSrv.registerRenderModule($.UNIVER_SHEET, e), this._renderManagerSrv.registerRenderModule($.UNIVER_DOC, e);
181
+ [d]
182
+ ].forEach((t) => {
183
+ this._renderManagerSrv.registerRenderModule(S.UNIVER_SHEET, t), this._renderManagerSrv.registerRenderModule(S.UNIVER_DOC, t);
258
184
  });
259
185
  }
260
- }, l(b, "pluginName", ce), b);
261
- O = ge([
262
- w(1, C(G)),
263
- w(2, V),
264
- w(3, B),
265
- w(4, C(P))
266
- ], O);
186
+ }, c(p, "pluginName", V), p);
187
+ k = Y([
188
+ f(1, g(x)),
189
+ f(2, A),
190
+ f(3, b),
191
+ f(4, g(v))
192
+ ], k);
267
193
  export {
268
- g as IWatermarkTypeEnum,
269
- _ as UNIVER_WATERMARK_STORAGE_KEY,
270
- O as UniverWatermarkPlugin,
271
- pe as WATERMARK_IMAGE_ALLOW_IMAGE_LIST,
272
- J as WatermarkImageBaseConfig,
273
- W as WatermarkService,
274
- q as WatermarkTextBaseConfig,
275
- Q as WatermarkUserInfoBaseConfig
194
+ k as UniverWatermarkPlugin,
195
+ H as WATERMARK_IMAGE_ALLOW_IMAGE_LIST,
196
+ L as WatermarkImageBaseConfig,
197
+ l as WatermarkService,
198
+ D as WatermarkTextBaseConfig,
199
+ O as WatermarkUserInfoBaseConfig
276
200
  };
@@ -1,9 +1,7 @@
1
- import { IImageWatermarkConfig, ITextWatermarkConfig, IUserInfoWatermarkConfig } from './type';
1
+ import { IImageWatermarkConfig, ITextWatermarkConfig, IUserInfoWatermarkConfig } from '@univerjs/engine-render';
2
2
  export declare const UNIVER_WATERMARK_MENU = "UNIVER_WATERMARK_MENU";
3
3
  export declare const WATERMARK_PANEL = "WATERMARK_PANEL";
4
4
  export declare const WATERMARK_PANEL_FOOTER = "WATERMARK_PANEL_FOOTER";
5
- export declare const UNIVER_WATERMARK_STORAGE_KEY = "UNIVER_WATERMARK_STORAGE_KEY";
6
- export declare const UNIVER_WATERMARK_LAYER_INDEX = 10;
7
5
  export declare const WATERMARK_IMAGE_ALLOW_IMAGE_LIST: string[];
8
6
  export declare const WatermarkTextBaseConfig: ITextWatermarkConfig;
9
7
  export declare const WatermarkImageBaseConfig: IImageWatermarkConfig;
@@ -1,4 +1,4 @@
1
- import { IImageWatermarkConfig, ITextWatermarkConfig, IUserInfoWatermarkConfig } from '../common/type';
1
+ import { IImageWatermarkConfig, ITextWatermarkConfig, IUserInfoWatermarkConfig } from '@univerjs/engine-render';
2
2
  export declare const WATERMARK_PLUGIN_CONFIG_KEY = "watermark.config";
3
3
  export declare const configSymbol: unique symbol;
4
4
  export interface IUniverWatermarkConfig {
@@ -1,4 +1,4 @@
1
- import { IImageWatermarkConfig, ITextWatermarkConfig, IWatermarkTypeEnum } from '@univerjs/watermark';
1
+ import { IImageWatermarkConfig, ITextWatermarkConfig, IWatermarkTypeEnum } from '@univerjs/engine-render';
2
2
  import { FUniver } from '@univerjs/core/facade';
3
3
  /**
4
4
  * @ignore
@@ -27,7 +27,12 @@ export declare class FUniverWatermarkMixin extends FUniver {
27
27
  addWatermark(type: IWatermarkTypeEnum.Image, config: IImageWatermarkConfig): FUniver;
28
28
  deleteWatermark(): FUniver;
29
29
  }
30
+ export declare class FWatermarkEnum {
31
+ get IWatermarkTypeEnum(): typeof IWatermarkTypeEnum;
32
+ }
30
33
  declare module '@univerjs/core/facade' {
31
34
  interface FUniver extends IFUniverWatermarkMixin {
32
35
  }
36
+ interface FEnum extends FWatermarkEnum {
37
+ }
33
38
  }
@@ -14,8 +14,5 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export { UniverWatermarkPlugin } from './plugin';
17
- export { UNIVER_WATERMARK_STORAGE_KEY, WATERMARK_IMAGE_ALLOW_IMAGE_LIST, WatermarkImageBaseConfig, WatermarkTextBaseConfig, WatermarkUserInfoBaseConfig } from './common/const';
18
- export type { IImageWatermarkConfig, ITextWatermarkConfig } from './common/type';
19
- export { IWatermarkTypeEnum } from './common/type';
17
+ export { WATERMARK_IMAGE_ALLOW_IMAGE_LIST, WatermarkImageBaseConfig, WatermarkTextBaseConfig, WatermarkUserInfoBaseConfig } from './common/const';
20
18
  export { WatermarkService } from './services/watermark.service';
21
- export type { IWatermarkConfig, IWatermarkConfigWithType } from './common/type';
@@ -1,5 +1,5 @@
1
1
  import { Nullable, Disposable, ILocalStorageService } from '@univerjs/core';
2
- import { IWatermarkConfigWithType } from '../common/type';
2
+ import { IWatermarkConfigWithType } from '@univerjs/engine-render';
3
3
  export declare class WatermarkService extends Disposable {
4
4
  private _localStorageService;
5
5
  private readonly _updateConfig$;
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(r,e){typeof exports=="object"&&typeof module<"u"?e(require("@univerjs/core/facade"),require("@univerjs/watermark")):typeof define=="function"&&define.amd?define(["@univerjs/core/facade","@univerjs/watermark"],e):(r=typeof globalThis<"u"?globalThis:r||self,e(r.UniverCoreFacade,r.UniverWatermark))})(this,function(r,e){"use strict";class a extends r.FUniver{addWatermark(t,i){const n=this._injector.get(e.WatermarkService);if(t===e.IWatermarkTypeEnum.Text)n.updateWatermarkConfig({type:e.IWatermarkTypeEnum.Text,config:{text:{...e.WatermarkTextBaseConfig,...i}}});else if(t===e.IWatermarkTypeEnum.Image)n.updateWatermarkConfig({type:e.IWatermarkTypeEnum.Image,config:{image:{...e.WatermarkImageBaseConfig,...i}}});else throw new Error("Unknown watermark type");return this}deleteWatermark(){return this._injector.get(e.WatermarkService).deleteWatermarkConfig(),this}}r.FUniver.extend(a)});
1
+ (function(e,r){typeof exports=="object"&&typeof module<"u"?r(require("@univerjs/core/facade"),require("@univerjs/engine-render"),require("@univerjs/watermark")):typeof define=="function"&&define.amd?define(["@univerjs/core/facade","@univerjs/engine-render","@univerjs/watermark"],r):(e=typeof globalThis<"u"?globalThis:e||self,r(e.UniverCoreFacade,e.UniverEngineRender,e.UniverWatermark))})(this,function(e,r,t){"use strict";class m extends e.FUniver{addWatermark(a,n){const i=this._injector.get(t.WatermarkService);if(a===r.IWatermarkTypeEnum.Text)i.updateWatermarkConfig({type:r.IWatermarkTypeEnum.Text,config:{text:{...t.WatermarkTextBaseConfig,...n}}});else if(a===r.IWatermarkTypeEnum.Image)i.updateWatermarkConfig({type:r.IWatermarkTypeEnum.Image,config:{image:{...t.WatermarkImageBaseConfig,...n}}});else throw new Error("Unknown watermark type");return this}deleteWatermark(){return this._injector.get(t.WatermarkService).deleteWatermarkConfig(),this}}class u{get IWatermarkTypeEnum(){return r.IWatermarkTypeEnum}}e.FUniver.extend(m),e.FEnum.extend(u)});
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,j){"use strict";var Z=Object.defineProperty;var x=(o,n,S)=>n in o?Z(o,n,{enumerable:!0,configurable:!0,writable:!0,value:S}):o[n]=S;var _=(o,n,S)=>x(o,typeof n!="symbol"?n+"":n,S);var M;const c="UNIVER_WATERMARK_STORAGE_KEY",D=["image/png","image/jpeg","image/jpg","image/bmp"],b={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},P={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 l=(e=>(e.UserInfo="userInfo",e.Text="text",e.Image="image",e))(l||{});const $="watermark.config",O={};var N=Object.getOwnPropertyDescriptor,Y=(e,r,t,a)=>{for(var i=a>1?void 0:a?N(r,t):r,s=e.length-1,g;s>=0;s--)(g=e[s])&&(i=g(i)||i);return i},K=(e,r)=>(t,a)=>r(t,a,e);o.WatermarkService=class extends n.Disposable{constructor(t){super();_(this,"_updateConfig$",new j.Subject);_(this,"updateConfig$",this._updateConfig$.asObservable());_(this,"_refresh$",new j.Subject);_(this,"refresh$",this._refresh$.asObservable());this._localStorageService=t}async getWatermarkConfig(){return await this._localStorageService.getItem(c)}updateWatermarkConfig(t){this._localStorageService.setItem(c,t),this._updateConfig$.next(t)}deleteWatermarkConfig(){this._localStorageService.removeItem(c),this._updateConfig$.next(null)}refresh(){this._refresh$.next(Math.random())}dispose(){this._refresh$.complete(),this._updateConfig$.complete()}},o.WatermarkService=Y([K(0,n.Inject(n.ILocalStorageService))],o.WatermarkService);function G(e,r,t,a){const i=r.type,s=r.config;i===l.UserInfo&&s.userInfo?X(e,s.userInfo,a):i===l.Image&&s.image?B(e,s.image,t):i===l.Text&&s.text&&V(e,s.text)}function X(e,r,t){const{x:a,y:i,repeat:s,spacingX:g,spacingY:k,rotate:I,opacity:v,name:u,fontSize:y,color:R,bold:C,italic:W,direction:f}=r;if(!t)return;let h="";if(u&&(h+=`${t.name} `),!h)return;e.save(),e.globalAlpha=v,e.direction=f;let p="";if(W&&(p+="italic "),C&&(p+="bold "),p+=`${y}px Arial`,e.font=p,e.fillStyle=R,s){const m=e.canvas.width,d=e.canvas.height;for(let U=i;U<d;U+=y+k)for(let T=a;T<m;T+=e.measureText(h).width+g)e.save(),e.translate(T,U),e.rotate(Math.PI/180*I),e.fillText(h,0,0),e.restore()}else e.save(),e.translate(a,i),e.rotate(Math.PI/180*I),e.fillText(h,0,0),e.restore();e.restore()}function V(e,r){const{x:t,y:a,repeat:i,spacingX:s,spacingY:g,rotate:k,opacity:I,content:v,fontSize:u,color:y,bold:R,italic:C,direction:W}=r;e.save(),e.globalAlpha=I,e.direction=W;let f="";if(C&&(f+="italic "),R&&(f+="bold "),f+=`${u}px Arial`,e.font=f,e.fillStyle=y,v)if(i){const h=e.canvas.width,p=e.canvas.height;for(let m=a;m<p;m+=u+g)for(let d=t;d<h;d+=e.measureText(v).width+s)e.save(),e.translate(d,m),e.rotate(Math.PI/180*k),e.fillText(v,0,0),e.restore()}else e.save(),e.translate(t,a),e.rotate(Math.PI/180*k),e.fillText(v,0,0),e.restore();e.restore()}function B(e,r,t){const{x:a,y:i,repeat:s,spacingX:g,spacingY:k,rotate:I,opacity:v,width:u,height:y,maintainAspectRatio:R,originRatio:C}=r;if(!(t!=null&&t.complete))return;e.save(),e.globalAlpha=v;const W=u,f=R?u/C:y;if(s){const h=e.canvas.width,p=e.canvas.height;for(let m=i;m<p;m+=f+k)for(let d=a;d<h;d+=W+g)e.save(),e.translate(d,m),e.rotate(Math.PI/180*I),e.drawImage(t,0,0,W,f),e.restore()}else e.save(),e.translate(a,i),e.rotate(Math.PI/180*I),e.drawImage(t,0,0,W,f),e.restore();e.restore()}class H extends S.Layer{constructor(){super(...arguments);_(this,"_config");_(this,"_image");_(this,"_user")}render(t,a=!1){var s;super.render(t,a);const i=t||((s=this.scene.getEngine())==null?void 0:s.getCanvas().getContext());return i&&i.getId()&&this._renderWatermark(i),this}updateConfig(t,a){var i;this._config=t,((i=this._config)==null?void 0:i.type)===l.Image&&this._config.config.image&&(this._image=new Image,this._image.src=this._config.config.image.url),a&&(this._user=a)}_renderWatermark(t){this._config&&G(t,this._config,this._image,this._user)}}var z=Object.getOwnPropertyDescriptor,q=(e,r,t,a)=>{for(var i=a>1?void 0:a?z(r,t):r,s=e.length-1,g;s>=0;s--)(g=e[s])&&(i=g(i)||i);return i},E=(e,r)=>(t,a)=>r(t,a,e);let w=class extends n.RxDisposable{constructor(r,t,a,i){super();_(this,"_watermarkLayer");this._context=r,this._watermarkService=t,this._localStorageService=a,this._userManagerService=i,this._watermarkLayer=new H(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(c);r&&(this._watermarkService.updateWatermarkConfig(r),(t=this._context.mainComponent)==null||t.makeDirty())}_initWatermarkUpdate(){this.disposeWithMe(this._watermarkService.updateConfig$.subscribe(r=>{var t,a;if(!r){this._watermarkLayer.updateConfig(),(t=this._context.mainComponent)==null||t.makeDirty();return}r.type===l.UserInfo?this._watermarkLayer.updateConfig(r,this._userManagerService.getCurrentUser()):this._watermarkLayer.updateConfig(r),(a=this._context.mainComponent)==null||a.makeDirty()}))}};w=q([E(1,n.Inject(o.WatermarkService)),E(2,n.Inject(n.ILocalStorageService)),E(3,n.Inject(n.UserManagerService))],w);var F=Object.getOwnPropertyDescriptor,J=(e,r,t,a)=>{for(var i=a>1?void 0:a?F(r,t):r,s=e.length-1,g;s>=0;s--)(g=e[s])&&(i=g(i)||i);return i},A=(e,r)=>(t,a)=>r(t,a,e);const Q="UNIVER_WATERMARK_PLUGIN";o.UniverWatermarkPlugin=(M=class extends n.Plugin{constructor(r=O,t,a,i,s){super(),this._config=r,this._injector=t,this._configService=a,this._renderManagerSrv=i,this._localStorageService=s;const{...g}=n.merge({},O,this._config);this._configService.setConfig($,g),this._initWatermarkStorage(),this._initDependencies()}async _initWatermarkStorage(){const r=this._configService.getConfig($);if(!r)return;const{userWatermarkSettings:t,textWatermarkSettings:a,imageWatermarkSettings:i}=r;if(t)this._localStorageService.setItem(c,{type:l.UserInfo,config:{userInfo:n.merge({},L,t)}});else if(a)this._localStorageService.setItem(c,{type:l.Text,config:{text:n.merge({},b,a)}});else if(i)this._localStorageService.setItem(c,{type:l.Image,config:{image:n.merge({},P,i)}});else{const s=await this._localStorageService.getItem(c);(s==null?void 0:s.type)===l.UserInfo&&this._localStorageService.removeItem(c)}}_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",Q),M),o.UniverWatermarkPlugin=J([A(1,n.Inject(n.Injector)),A(2,n.IConfigService),A(3,S.IRenderManagerService),A(4,n.Inject(n.ILocalStorageService))],o.UniverWatermarkPlugin),o.IWatermarkTypeEnum=l,o.UNIVER_WATERMARK_STORAGE_KEY=c,o.WATERMARK_IMAGE_ALLOW_IMAGE_LIST=D,o.WatermarkImageBaseConfig=P,o.WatermarkTextBaseConfig=b,o.WatermarkUserInfoBaseConfig=L,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
1
+ (function(a,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","rxjs"],t):(a=typeof globalThis<"u"?globalThis:a||self,t(a.UniverWatermark={},a.UniverCore,a.UniverEngineRender,a.rxjs))})(this,function(a,t,n,S){"use strict";var M=Object.defineProperty;var j=(a,t,n)=>t in a?M(a,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[t]=n;var m=(a,t,n)=>j(a,typeof t!="symbol"?t+"":t,n);var u;const W=["image/png","image/jpeg","image/jpg","image/bmp"],h={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},v={url:"",width:100,height:100,maintainAspectRatio:!0,originRatio:1,x:60,y:36,repeat:!0,spacingX:200,spacingY:100,rotate:0,opacity:.15},p={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},E="watermark.config",I={};var d=Object.getOwnPropertyDescriptor,k=(o,e,r,i)=>{for(var s=i>1?void 0:i?d(e,r):e,c=o.length-1,_;c>=0;c--)(_=o[c])&&(s=_(s)||s);return s},A=(o,e)=>(r,i)=>e(r,i,o);a.WatermarkService=class extends t.Disposable{constructor(r){super();m(this,"_updateConfig$",new S.Subject);m(this,"updateConfig$",this._updateConfig$.asObservable());m(this,"_refresh$",new S.Subject);m(this,"refresh$",this._refresh$.asObservable());this._localStorageService=r}async getWatermarkConfig(){return await this._localStorageService.getItem(n.UNIVER_WATERMARK_STORAGE_KEY)}updateWatermarkConfig(r){this._localStorageService.setItem(n.UNIVER_WATERMARK_STORAGE_KEY,r),this._updateConfig$.next(r)}deleteWatermarkConfig(){this._localStorageService.removeItem(n.UNIVER_WATERMARK_STORAGE_KEY),this._updateConfig$.next(null)}refresh(){this._refresh$.next(Math.random())}dispose(){this._refresh$.complete(),this._updateConfig$.complete()}},a.WatermarkService=k([A(0,t.Inject(t.ILocalStorageService))],a.WatermarkService);var R=Object.getOwnPropertyDescriptor,y=(o,e,r,i)=>{for(var s=i>1?void 0:i?R(e,r):e,c=o.length-1,_;c>=0;c--)(_=o[c])&&(s=_(s)||s);return s},f=(o,e)=>(r,i)=>e(r,i,o);let l=class extends t.RxDisposable{constructor(e,r,i,s){super();m(this,"_watermarkLayer");this._context=e,this._watermarkService=r,this._localStorageService=i,this._userManagerService=s,this._watermarkLayer=new n.WatermarkLayer(e.scene,[],n.UNIVER_WATERMARK_LAYER_INDEX),this._initAddRender(),this._initWatermarkUpdate(),this._initWatermarkConfig()}_initAddRender(){const{scene:e}=this._context;e.addLayer(this._watermarkLayer)}async _initWatermarkConfig(){var r;const e=await this._localStorageService.getItem(n.UNIVER_WATERMARK_STORAGE_KEY);e&&(this._watermarkService.updateWatermarkConfig(e),(r=this._context.mainComponent)==null||r.makeDirty())}_initWatermarkUpdate(){this.disposeWithMe(this._watermarkService.updateConfig$.subscribe(e=>{var r,i;if(!e){this._watermarkLayer.updateConfig(),(r=this._context.mainComponent)==null||r.makeDirty();return}e.type===n.IWatermarkTypeEnum.UserInfo?this._watermarkLayer.updateConfig(e,this._userManagerService.getCurrentUser()):this._watermarkLayer.updateConfig(e),(i=this._context.mainComponent)==null||i.makeDirty()}))}};l=y([f(1,t.Inject(a.WatermarkService)),f(2,t.Inject(t.ILocalStorageService)),f(3,t.Inject(t.UserManagerService))],l);var T=Object.getOwnPropertyDescriptor,C=(o,e,r,i)=>{for(var s=i>1?void 0:i?T(e,r):e,c=o.length-1,_;c>=0;c--)(_=o[c])&&(s=_(s)||s);return s},g=(o,e)=>(r,i)=>e(r,i,o);const U="UNIVER_WATERMARK_PLUGIN";a.UniverWatermarkPlugin=(u=class extends t.Plugin{constructor(e=I,r,i,s,c){super(),this._config=e,this._injector=r,this._configService=i,this._renderManagerSrv=s,this._localStorageService=c;const{..._}=t.merge({},I,this._config);this._configService.setConfig(E,_),this._initWatermarkStorage(),this._initDependencies()}async _initWatermarkStorage(){const e=this._configService.getConfig(E);if(!e)return;const{userWatermarkSettings:r,textWatermarkSettings:i,imageWatermarkSettings:s}=e;if(r)this._localStorageService.setItem(n.UNIVER_WATERMARK_STORAGE_KEY,{type:n.IWatermarkTypeEnum.UserInfo,config:{userInfo:t.merge({},p,r)}});else if(i)this._localStorageService.setItem(n.UNIVER_WATERMARK_STORAGE_KEY,{type:n.IWatermarkTypeEnum.Text,config:{text:t.merge({},h,i)}});else if(s)this._localStorageService.setItem(n.UNIVER_WATERMARK_STORAGE_KEY,{type:n.IWatermarkTypeEnum.Image,config:{image:t.merge({},v,s)}});else{const c=await this._localStorageService.getItem(n.UNIVER_WATERMARK_STORAGE_KEY);(c==null?void 0:c.type)===n.IWatermarkTypeEnum.UserInfo&&this._localStorageService.removeItem(n.UNIVER_WATERMARK_STORAGE_KEY)}}_initDependencies(){[[a.WatermarkService]].forEach(e=>{this._injector.add(e)})}onRendered(){this._injector.get(a.WatermarkService),this._initRenderDependencies()}_initRenderDependencies(){[[l]].forEach(e=>{this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_SHEET,e),this._renderManagerSrv.registerRenderModule(t.UniverInstanceType.UNIVER_DOC,e)})}},m(u,"pluginName",U),u),a.UniverWatermarkPlugin=C([g(1,t.Inject(t.Injector)),g(2,t.IConfigService),g(3,n.IRenderManagerService),g(4,t.Inject(t.ILocalStorageService))],a.UniverWatermarkPlugin),a.WATERMARK_IMAGE_ALLOW_IMAGE_LIST=W,a.WatermarkImageBaseConfig=v,a.WatermarkTextBaseConfig=h,a.WatermarkUserInfoBaseConfig=p,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/watermark",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
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/engine-render": "0.6.0",
63
- "@univerjs/core": "0.6.0"
62
+ "@univerjs/core": "0.6.1",
63
+ "@univerjs/engine-render": "0.6.1"
64
64
  },
65
65
  "devDependencies": {
66
66
  "rxjs": "^7.8.1",
67
67
  "typescript": "^5.7.3",
68
- "vite": "^6.1.0",
69
- "vitest": "^3.0.5",
70
- "@univerjs-infra/shared": "0.6.0"
68
+ "vite": "^6.1.1",
69
+ "vitest": "^3.0.6",
70
+ "@univerjs-infra/shared": "0.6.1"
71
71
  },
72
72
  "scripts": {
73
73
  "test": "vitest run",
@@ -1,59 +0,0 @@
1
- /**
2
- * Copyright 2023-present DreamNum Co., Ltd.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- export declare enum IWatermarkTypeEnum {
17
- UserInfo = "userInfo",
18
- Text = "text",
19
- Image = "image"
20
- }
21
- export interface IGeneralWatermarkConfig {
22
- x: number;
23
- y: number;
24
- repeat: boolean;
25
- spacingX: number;
26
- spacingY: number;
27
- rotate: number;
28
- opacity: number;
29
- }
30
- export interface ITextWatermarkConfig extends IGeneralWatermarkConfig {
31
- content?: string;
32
- fontSize: number;
33
- color: string;
34
- bold: boolean;
35
- italic: boolean;
36
- direction: 'ltr' | 'rtl' | 'inherit';
37
- }
38
- export interface IImageWatermarkConfig extends IGeneralWatermarkConfig {
39
- url: string;
40
- width: number;
41
- height: number;
42
- maintainAspectRatio: boolean;
43
- originRatio: number;
44
- }
45
- export interface IUserInfoWatermarkConfig extends IGeneralWatermarkConfig, Omit<ITextWatermarkConfig, 'content'> {
46
- name: boolean;
47
- email: boolean;
48
- phone: boolean;
49
- uid: boolean;
50
- }
51
- export interface IWatermarkConfig {
52
- text?: ITextWatermarkConfig;
53
- image?: IImageWatermarkConfig;
54
- userInfo?: IUserInfoWatermarkConfig;
55
- }
56
- export interface IWatermarkConfigWithType {
57
- config: IWatermarkConfig;
58
- type: IWatermarkTypeEnum;
59
- }
@@ -1,7 +0,0 @@
1
- import { IUser, Nullable } from '@univerjs/core';
2
- import { UniverRenderingContext } from '@univerjs/engine-render';
3
- import { IImageWatermarkConfig, ITextWatermarkConfig, IUserInfoWatermarkConfig, IWatermarkConfigWithType } from './common/type';
4
- export declare function renderWatermark(ctx: UniverRenderingContext, config: IWatermarkConfigWithType, image: Nullable<HTMLImageElement>, userInfo: Nullable<IUser>): void;
5
- export declare function renderUserInfoWatermark(ctx: UniverRenderingContext, config: IUserInfoWatermarkConfig, userInfo: Nullable<IUser>): void;
6
- export declare function renderTextWatermark(ctx: UniverRenderingContext, config: ITextWatermarkConfig): void;
7
- export declare function renderImageWatermark(ctx: UniverRenderingContext, config: IImageWatermarkConfig, image: Nullable<HTMLImageElement>): void;
@@ -1,11 +0,0 @@
1
- import { IUser } from '@univerjs/core';
2
- import { UniverRenderingContext, Layer } from '@univerjs/engine-render';
3
- import { IWatermarkConfigWithType } from '../../common/type';
4
- export declare class WatermarkLayer extends Layer {
5
- private _config;
6
- private _image;
7
- private _user;
8
- render(ctx?: UniverRenderingContext, isMaxLayer?: boolean): this;
9
- updateConfig(config?: IWatermarkConfigWithType, user?: IUser): void;
10
- private _renderWatermark;
11
- }