@univerjs/watermark 0.5.2 → 0.5.3

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 m=require("@univerjs/core"),e=require("@univerjs/watermark");class i extends m.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")}deleteWatermark(){this._injector.get(e.WatermarkService).deleteWatermarkConfig()}}m.FUniver.extend(i);
1
+ "use strict";const i=require("@univerjs/core"),e=require("@univerjs/watermark");class n extends i.FUniver{addWatermark(r,t){const a=this._injector.get(e.WatermarkService);if(r===e.IWatermarkTypeEnum.Text)a.updateWatermarkConfig({type:e.IWatermarkTypeEnum.Text,config:{text:{...e.WatermarkTextBaseConfig,...t}}});else if(r===e.IWatermarkTypeEnum.Image)a.updateWatermarkConfig({type:e.IWatermarkTypeEnum.Image,config:{image:{...e.WatermarkImageBaseConfig,...t}}});else throw new Error("Unknown watermark type");return this}deleteWatermark(){return this._injector.get(e.WatermarkService).deleteWatermarkConfig(),this}}i.FUniver.extend(n);
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var L=Object.defineProperty;var O=(e,t,r)=>t in e?L(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var g=(e,t,r)=>O(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),T=require("@univerjs/engine-render"),P=require("rxjs"),f="UNIVER_WATERMARK_STORAGE_KEY",D=10,N=["image/png","image/jpeg","image/jpg","image/bmp"],U={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 Y="watermark.config",b={};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,s;n>=0;n--)(s=e[n])&&(a=(i?s(t,r,a):s(a))||a);return i&&a&&K(t,r,a),a},V=(e,t)=>(r,i)=>t(r,i,e);exports.WatermarkService=class extends o.Disposable{constructor(r){super();g(this,"_updateConfig$",new P.Subject);g(this,"updateConfig$",this._updateConfig$.asObservable());g(this,"_refresh$",new P.Subject);g(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,o.Inject(o.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:s,spacingY:I,rotate:u,opacity:p,name:v,fontSize:W,color:y,bold:R,italic:S,direction:l}=t;if(!r)return;let _="";if(v&&(_+=`${r.name} `),!_)return;e.save(),e.globalAlpha=p,e.direction=l;let d="";if(S&&(d+="italic "),R&&(d+="bold "),d+=`${W}px Arial`,e.font=d,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+s)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:s,rotate:I,opacity:u,content:p,fontSize:v,color:W,bold:y,italic:R,direction:S}=t;e.save(),e.globalAlpha=u,e.direction=S;let l="";if(R&&(l+="italic "),y&&(l+="bold "),l+=`${v}px Arial`,e.font=l,e.fillStyle=W,p)if(a){const _=e.canvas.width,d=e.canvas.height;for(let h=i;h<d;h+=v+s)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:s,spacingY:I,rotate:u,opacity:p,width:v,height:W,maintainAspectRatio:y,originRatio:R}=t;if(!(r!=null&&r.complete))return;e.save(),e.globalAlpha=p;const S=v,l=y?v/R:W;if(n){const _=e.canvas.width,d=e.canvas.height;for(let h=a;h<d;h+=l+I)for(let m=i;m<_;m+=S+s)e.save(),e.translate(m,h),e.rotate(Math.PI/180*u),e.drawImage(r,0,0,S,l),e.restore()}else e.save(),e.translate(i,a),e.rotate(Math.PI/180*u),e.drawImage(r,0,0,S,l),e.restore();e.restore()}class F extends T.Layer{constructor(){super(...arguments);g(this,"_config");g(this,"_image");g(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,s;n>=0;n--)(s=e[n])&&(a=(i?s(t,r,a):s(a))||a);return i&&a&&J(t,r,a),a},w=(e,t)=>(r,i)=>t(r,i,e);let M=class extends o.RxDisposable{constructor(t,r,i,a){super();g(this,"_watermarkLayer");this._context=t,this._watermarkService=r,this._localStorageService=i,this._userManagerService=a,this._watermarkLayer=new F(t.scene,[],D),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,o.Inject(exports.WatermarkService)),w(2,o.Inject(o.ILocalStorageService)),w(3,o.Inject(o.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,s;n>=0;n--)(s=e[n])&&(a=(i?s(t,r,a):s(a))||a);return i&&a&&x(t,r,a),a},C=(e,t)=>(r,i)=>t(r,i,e);const re="UNIVER_WATERMARK_PLUGIN";var E;exports.UniverWatermarkPlugin=(E=class extends o.Plugin{constructor(t=b,r,i,a,n){super(),this._config=t,this._injector=r,this._configService=i,this._renderManagerSrv=a,this._localStorageService=n;const{...s}=o.merge({},b,this._config);this._configService.setConfig(Y,s),this._initWatermarkStorage(),this._initDependencies()}async _initWatermarkStorage(){const{userWatermarkSettings:t,textWatermarkSettings:r,imageWatermarkSettings:i}=this._config;if(t)this._localStorageService.setItem(f,{type:c.UserInfo,config:{userInfo:{...$,userWatermarkSettings:t}}});else if(r)this._localStorageService.setItem(f,{type:c.Text,config:{text:{...U,textWatermarkSettings:r}}});else if(i)this._localStorageService.setItem(f,{type:c.Image,config:{image:{...j,imageWatermarkSettings:i}}});else{const a=await this._localStorageService.getItem(f);(a==null?void 0:a.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(o.UniverInstanceType.UNIVER_SHEET,t),this._renderManagerSrv.registerRenderModule(o.UniverInstanceType.UNIVER_DOC,t)})}},g(E,"pluginName",re),E);exports.UniverWatermarkPlugin=te([C(1,o.Inject(o.Injector)),C(2,o.IConfigService),C(3,T.IRenderManagerService),C(4,o.Inject(o.ILocalStorageService))],exports.UniverWatermarkPlugin);exports.IWatermarkTypeEnum=c;exports.UNIVER_WATERMARK_STORAGE_KEY=f;exports.WATERMARK_IMAGE_ALLOW_IMAGE_LIST=N;exports.WatermarkImageBaseConfig=j;exports.WatermarkTextBaseConfig=U;exports.WatermarkUserInfoBaseConfig=$;
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:v,fontSize:W,color:y,bold:C,italic:S,direction:g}=t;if(!r)return;let _="";if(v&&(_+=`${r.name} `),!_)return;e.save(),e.globalAlpha=p,e.direction=g;let d="";if(S&&(d+="italic "),C&&(d+="bold "),d+=`${W}px Arial`,e.font=d,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:v,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+=`${v}px Arial`,e.font=g,e.fillStyle=W,p)if(a){const _=e.canvas.width,d=e.canvas.height;for(let h=i;h<d;h+=v+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:v,height:W,maintainAspectRatio:y,originRatio:C}=t;if(!(r!=null&&r.complete))return;e.save(),e.globalAlpha=p;const S=v,g=y?v/C:W;if(n){const _=e.canvas.width,d=e.canvas.height;for(let h=a;h<d;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/facade.js CHANGED
@@ -1,33 +1,34 @@
1
1
  import { FUniver as m } from "@univerjs/core";
2
2
  import { WatermarkService as i, IWatermarkTypeEnum as e, WatermarkTextBaseConfig as n, WatermarkImageBaseConfig as o } from "@univerjs/watermark";
3
3
  class k extends m {
4
- addWatermark(r, a) {
5
- const t = this._injector.get(i);
4
+ addWatermark(r, t) {
5
+ const a = this._injector.get(i);
6
6
  if (r === e.Text)
7
- t.updateWatermarkConfig({
7
+ a.updateWatermarkConfig({
8
8
  type: e.Text,
9
9
  config: {
10
10
  text: {
11
11
  ...n,
12
- ...a
12
+ ...t
13
13
  }
14
14
  }
15
15
  });
16
16
  else if (r === e.Image)
17
- t.updateWatermarkConfig({
17
+ a.updateWatermarkConfig({
18
18
  type: e.Image,
19
19
  config: {
20
20
  image: {
21
21
  ...o,
22
- ...a
22
+ ...t
23
23
  }
24
24
  }
25
25
  });
26
26
  else
27
27
  throw new Error("Unknown watermark type");
28
+ return this;
28
29
  }
29
30
  deleteWatermark() {
30
- this._injector.get(i).deleteWatermarkConfig();
31
+ return this._injector.get(i).deleteWatermarkConfig(), this;
31
32
  }
32
33
  }
33
34
  m.extend(k);
package/lib/es/index.js CHANGED
@@ -1,10 +1,10 @@
1
- var D = Object.defineProperty;
2
- var L = (e, t, r) => t in e ? D(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
- var l = (e, t, r) => L(e, typeof t != "symbol" ? t + "" : t, r);
4
- import { Inject as C, ILocalStorageService as k, Disposable as j, UserManagerService as N, RxDisposable as Y, Injector as X, Plugin as K, merge as G, UniverInstanceType as $, IConfigService as V } from "@univerjs/core";
5
- import { Layer as H, IRenderManagerService as z } from "@univerjs/engine-render";
6
- import { Subject as U } from "rxjs";
7
- const h = "UNIVER_WATERMARK_STORAGE_KEY", B = 10, ue = ["image/png", "image/jpeg", "image/jpg", "image/bmp"], F = {
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 y, ILocalStorageService as $, Disposable as Y, UserManagerService as X, RxDisposable as K, Injector as G, Plugin as V, merge as w, UniverInstanceType as U, IConfigService as H } from "@univerjs/core";
5
+ import { Layer as z, IRenderManagerService as B } from "@univerjs/engine-render";
6
+ import { Subject as T } from "rxjs";
7
+ const h = "UNIVER_WATERMARK_STORAGE_KEY", F = 10, ue = ["image/png", "image/jpeg", "image/jpg", "image/bmp"], q = {
8
8
  content: "",
9
9
  fontSize: 16,
10
10
  color: "rgb(0,0,0)",
@@ -18,7 +18,7 @@ const h = "UNIVER_WATERMARK_STORAGE_KEY", B = 10, ue = ["image/png", "image/jpeg
18
18
  spacingY: 100,
19
19
  rotate: 0,
20
20
  opacity: 0.15
21
- }, q = {
21
+ }, J = {
22
22
  url: "",
23
23
  width: 100,
24
24
  height: 100,
@@ -31,7 +31,7 @@ const h = "UNIVER_WATERMARK_STORAGE_KEY", B = 10, ue = ["image/png", "image/jpeg
31
31
  spacingY: 100,
32
32
  rotate: 0,
33
33
  opacity: 0.15
34
- }, J = {
34
+ }, Q = {
35
35
  name: !0,
36
36
  email: !1,
37
37
  phone: !1,
@@ -50,18 +50,18 @@ const h = "UNIVER_WATERMARK_STORAGE_KEY", B = 10, ue = ["image/png", "image/jpeg
50
50
  opacity: 0.15
51
51
  };
52
52
  var c = /* @__PURE__ */ ((e) => (e.UserInfo = "userInfo", e.Text = "text", e.Image = "image", e))(c || {});
53
- const Q = "watermark.config", T = {};
54
- var Z = Object.defineProperty, x = Object.getOwnPropertyDescriptor, ee = (e, t, r, a) => {
55
- for (var i = a > 1 ? void 0 : a ? x(t, r) : t, s = e.length - 1, n; s >= 0; s--)
56
- (n = e[s]) && (i = (a ? n(t, r, i) : n(i)) || i);
57
- return a && i && Z(t, r, i), i;
58
- }, te = (e, t) => (r, a) => t(r, a, e);
59
- let R = class extends j {
53
+ const O = "watermark.config", D = {};
54
+ var Z = Object.defineProperty, x = Object.getOwnPropertyDescriptor, ee = (e, t, r, i) => {
55
+ for (var a = i > 1 ? void 0 : i ? x(t, r) : t, n = e.length - 1, s; n >= 0; n--)
56
+ (s = e[n]) && (a = (i ? s(t, r, a) : s(a)) || a);
57
+ return i && a && Z(t, r, a), a;
58
+ }, te = (e, t) => (r, i) => t(r, i, e);
59
+ let R = class extends Y {
60
60
  constructor(t) {
61
61
  super();
62
- l(this, "_updateConfig$", new U());
62
+ l(this, "_updateConfig$", new T());
63
63
  l(this, "updateConfig$", this._updateConfig$.asObservable());
64
- l(this, "_refresh$", new U());
64
+ l(this, "_refresh$", new T());
65
65
  l(this, "refresh$", this._refresh$.asObservable());
66
66
  this._localStorageService = t;
67
67
  }
@@ -82,14 +82,14 @@ let R = class extends j {
82
82
  }
83
83
  };
84
84
  R = ee([
85
- te(0, C(k))
85
+ te(0, y($))
86
86
  ], R);
87
- function re(e, t, r, a) {
88
- const i = t.type, s = t.config;
89
- i === c.UserInfo && s.userInfo ? ae(e, s.userInfo, a) : i === c.Image && s.image ? se(e, s.image, r) : i === c.Text && s.text && ie(e, s.text);
87
+ function re(e, t, r, i) {
88
+ const a = t.type, n = t.config;
89
+ a === c.UserInfo && n.userInfo ? ae(e, n.userInfo, i) : a === c.Image && n.image ? ne(e, n.image, r) : a === c.Text && n.text && ie(e, n.text);
90
90
  }
91
91
  function ae(e, t, r) {
92
- const { x: a, y: i, repeat: s, spacingX: n, spacingY: S, rotate: v, opacity: p, name: m, fontSize: I, color: y, bold: W, italic: u, direction: o } = t;
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
95
  let f = "";
@@ -97,75 +97,75 @@ function ae(e, t, r) {
97
97
  return;
98
98
  e.save(), e.globalAlpha = p, e.direction = o;
99
99
  let d = "";
100
- if (u && (d += "italic "), W && (d += "bold "), d += `${I}px Arial`, e.font = d, e.fillStyle = y, s) {
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
- for (let A = i; A < _; A += I + S)
103
- for (let b = a; b < g; b += e.measureText(f).width + n)
104
- e.save(), e.translate(b, A), e.rotate(Math.PI / 180 * v), e.fillText(f, 0, 0), e.restore();
102
+ for (let b = a; b < _; b += I + S)
103
+ for (let P = i; P < g; P += e.measureText(f).width + s)
104
+ e.save(), e.translate(P, b), e.rotate(Math.PI / 180 * v), e.fillText(f, 0, 0), e.restore();
105
105
  } else
106
- e.save(), e.translate(a, i), e.rotate(Math.PI / 180 * v), e.fillText(f, 0, 0), e.restore();
106
+ e.save(), e.translate(i, a), e.rotate(Math.PI / 180 * v), e.fillText(f, 0, 0), e.restore();
107
107
  e.restore();
108
108
  }
109
109
  function ie(e, t) {
110
- const { x: r, y: a, repeat: i, spacingX: s, spacingY: n, rotate: S, opacity: v, content: p, fontSize: m, color: I, bold: y, italic: W, direction: u } = t;
110
+ const { x: r, y: i, repeat: a, spacingX: n, spacingY: s, rotate: S, opacity: v, content: p, fontSize: m, color: I, bold: C, italic: W, direction: u } = t;
111
111
  e.save(), e.globalAlpha = v, e.direction = u;
112
112
  let o = "";
113
- if (W && (o += "italic "), y && (o += "bold "), o += `${m}px Arial`, e.font = o, e.fillStyle = I, p)
114
- if (i) {
113
+ if (W && (o += "italic "), C && (o += "bold "), o += `${m}px Arial`, e.font = o, e.fillStyle = I, p)
114
+ if (a) {
115
115
  const f = e.canvas.width, d = e.canvas.height;
116
- for (let g = a; g < d; g += m + n)
117
- for (let _ = r; _ < f; _ += e.measureText(p).width + s)
116
+ for (let g = i; g < d; g += m + s)
117
+ for (let _ = r; _ < f; _ += 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
- e.save(), e.translate(r, a), e.rotate(Math.PI / 180 * S), e.fillText(p, 0, 0), e.restore();
120
+ e.save(), e.translate(r, i), e.rotate(Math.PI / 180 * S), e.fillText(p, 0, 0), e.restore();
121
121
  e.restore();
122
122
  }
123
- function se(e, t, r) {
124
- const { x: a, y: i, repeat: s, spacingX: n, spacingY: S, rotate: v, opacity: p, width: m, height: I, maintainAspectRatio: y, originRatio: W } = t;
123
+ function ne(e, t, r) {
124
+ const { x: i, y: a, repeat: n, spacingX: s, spacingY: S, rotate: v, opacity: p, width: m, height: I, maintainAspectRatio: C, originRatio: W } = t;
125
125
  if (!(r != null && r.complete))
126
126
  return;
127
127
  e.save(), e.globalAlpha = p;
128
- const u = m, o = y ? m / W : I;
129
- if (s) {
128
+ const u = m, o = C ? m / W : I;
129
+ if (n) {
130
130
  const f = e.canvas.width, d = e.canvas.height;
131
- for (let g = i; g < d; g += o + S)
132
- for (let _ = a; _ < f; _ += u + n)
131
+ for (let g = a; g < d; g += o + S)
132
+ for (let _ = i; _ < f; _ += 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
- e.save(), e.translate(a, i), e.rotate(Math.PI / 180 * v), e.drawImage(r, 0, 0, u, o), e.restore();
135
+ e.save(), e.translate(i, a), e.rotate(Math.PI / 180 * v), e.drawImage(r, 0, 0, u, o), e.restore();
136
136
  e.restore();
137
137
  }
138
- class ne extends H {
138
+ class se extends z {
139
139
  constructor() {
140
140
  super(...arguments);
141
141
  l(this, "_config");
142
142
  l(this, "_image");
143
143
  l(this, "_user");
144
144
  }
145
- render(r, a = !1) {
146
- var s;
147
- super.render(r, a);
148
- const i = r || ((s = this.scene.getEngine()) == null ? void 0 : s.getCanvas().getContext());
149
- return i && i.getId() && this._renderWatermark(i), this;
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
150
  }
151
- updateConfig(r, a) {
152
- var i;
153
- 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);
151
+ updateConfig(r, i) {
152
+ var a;
153
+ 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);
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, ce = (e, t, r, a) => {
160
- for (var i = a > 1 ? void 0 : a ? le(t, r) : t, s = e.length - 1, n; s >= 0; s--)
161
- (n = e[s]) && (i = (a ? n(t, r, i) : n(i)) || i);
162
- return a && i && oe(t, r, i), i;
163
- }, P = (e, t) => (r, a) => t(r, a, e);
164
- let E = class extends Y {
165
- constructor(t, r, a, i) {
159
+ var oe = Object.defineProperty, le = Object.getOwnPropertyDescriptor, ce = (e, t, r, i) => {
160
+ for (var a = i > 1 ? void 0 : i ? le(t, r) : t, n = e.length - 1, s; n >= 0; n--)
161
+ (s = e[n]) && (a = (i ? s(t, r, a) : s(a)) || a);
162
+ return i && a && oe(t, r, a), a;
163
+ }, M = (e, t) => (r, i) => t(r, i, e);
164
+ let k = class extends K {
165
+ constructor(t, r, i, a) {
166
166
  super();
167
167
  l(this, "_watermarkLayer");
168
- this._context = t, this._watermarkService = r, this._localStorageService = a, this._userManagerService = i, this._watermarkLayer = new ne(t.scene, [], B), this._initAddRender(), this._initWatermarkUpdate(), this._initWatermarkConfig();
168
+ this._context = t, this._watermarkService = r, this._localStorageService = i, this._userManagerService = a, this._watermarkLayer = new se(t.scene, [], F), this._initAddRender(), this._initWatermarkUpdate(), this._initWatermarkConfig();
169
169
  }
170
170
  _initAddRender() {
171
171
  const { scene: t } = this._context;
@@ -179,46 +179,64 @@ let E = class extends Y {
179
179
  _initWatermarkUpdate() {
180
180
  this.disposeWithMe(
181
181
  this._watermarkService.updateConfig$.subscribe((t) => {
182
- var r, a;
182
+ var r, i;
183
183
  if (!t) {
184
184
  this._watermarkLayer.updateConfig(), (r = this._context.mainComponent) == null || r.makeDirty();
185
185
  return;
186
186
  }
187
- t.type === c.UserInfo ? this._watermarkLayer.updateConfig(t, this._userManagerService.getCurrentUser()) : this._watermarkLayer.updateConfig(t), (a = this._context.mainComponent) == null || a.makeDirty();
187
+ t.type === c.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
- E = ce([
193
- P(1, C(R)),
194
- P(2, C(k)),
195
- P(3, C(N))
196
- ], E);
197
- var fe = Object.defineProperty, ge = Object.getOwnPropertyDescriptor, _e = (e, t, r, a) => {
198
- for (var i = a > 1 ? void 0 : a ? ge(t, r) : t, s = e.length - 1, n; s >= 0; s--)
199
- (n = e[s]) && (i = (a ? n(t, r, i) : n(i)) || i);
200
- return a && i && fe(t, r, i), i;
201
- }, w = (e, t) => (r, a) => t(r, a, e);
192
+ k = ce([
193
+ M(1, y(R)),
194
+ M(2, y($)),
195
+ M(3, y(X))
196
+ ], k);
197
+ var fe = Object.defineProperty, ge = Object.getOwnPropertyDescriptor, _e = (e, t, r, i) => {
198
+ for (var a = i > 1 ? void 0 : i ? ge(t, r) : t, n = e.length - 1, s; n >= 0; n--)
199
+ (s = e[n]) && (a = (i ? s(t, r, a) : s(a)) || a);
200
+ return i && a && fe(t, r, a), a;
201
+ }, A = (e, t) => (r, i) => t(r, i, e);
202
202
  const he = "UNIVER_WATERMARK_PLUGIN";
203
- var M;
204
- let O = (M = class extends K {
205
- constructor(e = T, t, r, a, i) {
206
- super(), this._config = e, this._injector = t, this._configService = r, this._renderManagerSrv = a, this._localStorageService = i;
207
- const { ...s } = G(
203
+ var E;
204
+ let L = (E = class extends V {
205
+ constructor(e = D, t, r, i, a) {
206
+ super(), this._config = e, this._injector = t, this._configService = r, this._renderManagerSrv = i, this._localStorageService = a;
207
+ const { ...n } = w(
208
208
  {},
209
- T,
209
+ D,
210
210
  this._config
211
211
  );
212
- this._configService.setConfig(Q, s), this._initWatermarkStorage(), this._initDependencies();
212
+ this._configService.setConfig(O, n), this._initWatermarkStorage(), this._initDependencies();
213
213
  }
214
214
  async _initWatermarkStorage() {
215
- const { userWatermarkSettings: e, textWatermarkSettings: t, imageWatermarkSettings: r } = this._config;
216
- if (e)
217
- this._localStorageService.setItem(h, { type: c.UserInfo, config: { userInfo: { ...J, userWatermarkSettings: e } } });
218
- else if (t)
219
- this._localStorageService.setItem(h, { type: c.Text, config: { text: { ...F, textWatermarkSettings: t } } });
215
+ const e = this._configService.getConfig(O);
216
+ if (!e)
217
+ return;
218
+ const { userWatermarkSettings: t, textWatermarkSettings: r, imageWatermarkSettings: i } = e;
219
+ if (t)
220
+ this._localStorageService.setItem(h, {
221
+ type: c.UserInfo,
222
+ config: {
223
+ userInfo: w({}, Q, t)
224
+ }
225
+ });
220
226
  else if (r)
221
- this._localStorageService.setItem(h, { type: c.Image, config: { image: { ...q, imageWatermarkSettings: r } } });
227
+ this._localStorageService.setItem(h, {
228
+ type: c.Text,
229
+ config: {
230
+ text: w({}, q, r)
231
+ }
232
+ });
233
+ else if (i)
234
+ this._localStorageService.setItem(h, {
235
+ type: c.Image,
236
+ config: {
237
+ image: w({}, J, i)
238
+ }
239
+ });
222
240
  else {
223
241
  const a = await this._localStorageService.getItem(h);
224
242
  (a == null ? void 0 : a.type) === c.UserInfo && this._localStorageService.removeItem(h);
@@ -234,25 +252,25 @@ let O = (M = class extends K {
234
252
  }
235
253
  _initRenderDependencies() {
236
254
  [
237
- [E]
255
+ [k]
238
256
  ].forEach((e) => {
239
- this._renderManagerSrv.registerRenderModule($.UNIVER_SHEET, e), this._renderManagerSrv.registerRenderModule($.UNIVER_DOC, e);
257
+ this._renderManagerSrv.registerRenderModule(U.UNIVER_SHEET, e), this._renderManagerSrv.registerRenderModule(U.UNIVER_DOC, e);
240
258
  });
241
259
  }
242
- }, l(M, "pluginName", he), M);
243
- O = _e([
244
- w(1, C(X)),
245
- w(2, V),
246
- w(3, z),
247
- w(4, C(k))
248
- ], O);
260
+ }, l(E, "pluginName", he), E);
261
+ L = _e([
262
+ A(1, y(G)),
263
+ A(2, H),
264
+ A(3, B),
265
+ A(4, y($))
266
+ ], L);
249
267
  export {
250
268
  c as IWatermarkTypeEnum,
251
269
  h as UNIVER_WATERMARK_STORAGE_KEY,
252
- O as UniverWatermarkPlugin,
270
+ L as UniverWatermarkPlugin,
253
271
  ue as WATERMARK_IMAGE_ALLOW_IMAGE_LIST,
254
- q as WatermarkImageBaseConfig,
272
+ J as WatermarkImageBaseConfig,
255
273
  R as WatermarkService,
256
- F as WatermarkTextBaseConfig,
257
- J as WatermarkUserInfoBaseConfig
274
+ q as WatermarkTextBaseConfig,
275
+ Q as WatermarkUserInfoBaseConfig
258
276
  };
@@ -10,20 +10,20 @@ export interface IFUniverWatermarkMixin {
10
10
  * - If the type is 'Image', the config should follow the IImageWatermarkConfig interface.
11
11
  * @throws {Error} Throws an error if the watermark type is unknown.
12
12
  */
13
- addWatermark(type: IWatermarkTypeEnum.Text, config: ITextWatermarkConfig): void;
14
- addWatermark(type: IWatermarkTypeEnum.Image, config: IImageWatermarkConfig): void;
15
- addWatermark(type: IWatermarkTypeEnum.Text | IWatermarkTypeEnum.Image, config: ITextWatermarkConfig | IImageWatermarkConfig): void;
13
+ addWatermark(type: IWatermarkTypeEnum.Text, config: ITextWatermarkConfig): FUniver;
14
+ addWatermark(type: IWatermarkTypeEnum.Image, config: IImageWatermarkConfig): FUniver;
15
+ addWatermark(type: IWatermarkTypeEnum.Text | IWatermarkTypeEnum.Image, config: ITextWatermarkConfig | IImageWatermarkConfig): FUniver;
16
16
  /**
17
17
  * Deletes the currently applied watermark from the unit.
18
18
  *
19
19
  * This function retrieves the watermark service and invokes the method to remove any existing watermark configuration.
20
20
  */
21
- deleteWatermark(): void;
21
+ deleteWatermark(): FUniver;
22
22
  }
23
23
  export declare class FUniverWatermarkMixin extends FUniver {
24
- addWatermark(type: IWatermarkTypeEnum.Text, config: ITextWatermarkConfig): void;
25
- addWatermark(type: IWatermarkTypeEnum.Image, config: IImageWatermarkConfig): void;
26
- deleteWatermark(): void;
24
+ addWatermark(type: IWatermarkTypeEnum.Text, config: ITextWatermarkConfig): FUniver;
25
+ addWatermark(type: IWatermarkTypeEnum.Image, config: IImageWatermarkConfig): FUniver;
26
+ deleteWatermark(): FUniver;
27
27
  }
28
28
  declare module '@univerjs/core' {
29
29
  interface FUniver extends IFUniverWatermarkMixin {
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(r,e){typeof exports=="object"&&typeof module<"u"?e(require("@univerjs/core"),require("@univerjs/watermark")):typeof define=="function"&&define.amd?define(["@univerjs/core","@univerjs/watermark"],e):(r=typeof globalThis<"u"?globalThis:r||self,e(r.UniverCore,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")}deleteWatermark(){this._injector.get(e.WatermarkService).deleteWatermarkConfig()}}r.FUniver.extend(a)});
1
+ (function(r,e){typeof exports=="object"&&typeof module<"u"?e(require("@univerjs/core"),require("@univerjs/watermark")):typeof define=="function"&&define.amd?define(["@univerjs/core","@univerjs/watermark"],e):(r=typeof globalThis<"u"?globalThis:r||self,e(r.UniverCore,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)});
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(s,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):(s=typeof globalThis<"u"?globalThis:s||self,n(s.UniverWatermark={},s.UniverCore,s.UniverEngineRender,s.rxjs))})(this,function(s,n,S,T){"use strict";var te=Object.defineProperty;var re=(s,n,S)=>n in s?te(s,n,{enumerable:!0,configurable:!0,writable:!0,value:S}):s[n]=S;var _=(s,n,S)=>re(s,typeof n!="symbol"?n+"":n,S);var M;const c="UNIVER_WATERMARK_STORAGE_KEY",O=["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 l=(e=>(e.UserInfo="userInfo",e.Text="text",e.Image="image",e))(l||{});const D="watermark.config",$={};var N=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,K=(e,r,t,i)=>{for(var a=i>1?void 0:i?Y(r,t):r,o=e.length-1,f;o>=0;o--)(f=e[o])&&(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);s.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(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()}},s.WatermarkService=K([G(0,n.Inject(n.ILocalStorageService))],s.WatermarkService);function X(e,r,t,i){const a=r.type,o=r.config;a===l.UserInfo&&o.userInfo?V(e,o.userInfo,i):a===l.Image&&o.image?H(e,o.image,t):a===l.Text&&o.text&&B(e,o.text)}function V(e,r,t){const{x:i,y:a,repeat:o,spacingX:f,spacingY:R,rotate:I,opacity:d,name:p,fontSize:y,color:C,bold:A,italic:W,direction:g}=r;if(!t)return;let h="";if(p&&(h+=`${t.name} `),!h)return;e.save(),e.globalAlpha=d,e.direction=g;let u="";if(W&&(u+="italic "),A&&(u+="bold "),u+=`${y}px Arial`,e.font=u,e.fillStyle=C,o){const m=e.canvas.width,v=e.canvas.height;for(let U=a;U<v;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:o,spacingY:f,rotate:R,opacity:I,content:d,fontSize:p,color:y,bold:C,italic:A,direction:W}=r;e.save(),e.globalAlpha=I,e.direction=W;let g="";if(A&&(g+="italic "),C&&(g+="bold "),g+=`${p}px Arial`,e.font=g,e.fillStyle=y,d)if(a){const h=e.canvas.width,u=e.canvas.height;for(let m=i;m<u;m+=p+f)for(let v=t;v<h;v+=e.measureText(d).width+o)e.save(),e.translate(v,m),e.rotate(Math.PI/180*R),e.fillText(d,0,0),e.restore()}else e.save(),e.translate(t,i),e.rotate(Math.PI/180*R),e.fillText(d,0,0),e.restore();e.restore()}function H(e,r,t){const{x:i,y:a,repeat:o,spacingX:f,spacingY:R,rotate:I,opacity:d,width:p,height:y,maintainAspectRatio:C,originRatio:A}=r;if(!(t!=null&&t.complete))return;e.save(),e.globalAlpha=d;const W=p,g=C?p/A:y;if(o){const h=e.canvas.width,u=e.canvas.height;for(let m=a;m<u;m+=g+R)for(let v=i;v<h;v+=W+f)e.save(),e.translate(v,m),e.rotate(Math.PI/180*I),e.drawImage(t,0,0,W,g),e.restore()}else e.save(),e.translate(i,a),e.rotate(Math.PI/180*I),e.drawImage(t,0,0,W,g),e.restore();e.restore()}class z extends S.Layer{constructor(){super(...arguments);_(this,"_config");_(this,"_image");_(this,"_user")}render(t,i=!1){var o;super.render(t,i);const a=t||((o=this.scene.getEngine())==null?void 0:o.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)===l.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,o=e.length-1,f;o>=0;o--)(f=e[o])&&(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(c);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===l.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(s.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,o=e.length-1,f;o>=0;o--)(f=e[o])&&(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";s.UniverWatermarkPlugin=(M=class extends n.Plugin{constructor(r=$,t,i,a,o){super(),this._config=r,this._injector=t,this._configService=i,this._renderManagerSrv=a,this._localStorageService=o;const{...f}=n.merge({},$,this._config);this._configService.setConfig(D,f),this._initWatermarkStorage(),this._initDependencies()}async _initWatermarkStorage(){const{userWatermarkSettings:r,textWatermarkSettings:t,imageWatermarkSettings:i}=this._config;if(r)this._localStorageService.setItem(c,{type:l.UserInfo,config:{userInfo:{...L,userWatermarkSettings:r}}});else if(t)this._localStorageService.setItem(c,{type:l.Text,config:{text:{...j,textWatermarkSettings:t}}});else if(i)this._localStorageService.setItem(c,{type:l.Image,config:{image:{...b,imageWatermarkSettings:i}}});else{const a=await this._localStorageService.getItem(c);(a==null?void 0:a.type)===l.UserInfo&&this._localStorageService.removeItem(c)}}_initDependencies(){[[s.WatermarkService]].forEach(r=>{this._injector.add(r)})}onRendered(){this._injector.get(s.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),s.UniverWatermarkPlugin=x([k(1,n.Inject(n.Injector)),k(2,n.IConfigService),k(3,S.IRenderManagerService),k(4,n.Inject(n.ILocalStorageService))],s.UniverWatermarkPlugin),s.IWatermarkTypeEnum=l,s.UNIVER_WATERMARK_STORAGE_KEY=c,s.WATERMARK_IMAGE_ALLOW_IMAGE_LIST=O,s.WatermarkImageBaseConfig=b,s.WatermarkTextBaseConfig=j,s.WatermarkUserInfoBaseConfig=L,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
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:d,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=d,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,v=e.canvas.height;for(let U=a;U<v;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:d,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,d)if(a){const h=e.canvas.width,u=e.canvas.height;for(let m=i;m<u;m+=p+f)for(let v=t;v<h;v+=e.measureText(d).width+s)e.save(),e.translate(v,m),e.rotate(Math.PI/180*R),e.fillText(d,0,0),e.restore()}else e.save(),e.translate(t,i),e.rotate(Math.PI/180*R),e.fillText(d,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:d,width:p,height:y,maintainAspectRatio:C,originRatio:A}=r;if(!(t!=null&&t.complete))return;e.save(),e.globalAlpha=d;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 v=i;v<h;v+=W+f)e.save(),e.translate(v,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.2",
3
+ "version": "0.5.3",
4
4
  "private": false,
5
5
  "description": "univer watermark plugin",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -59,38 +59,15 @@
59
59
  },
60
60
  "dependencies": {
61
61
  "clsx": "^2.1.1",
62
- "@univerjs/engine-render": "0.5.2",
63
- "@univerjs/core": "0.5.2"
62
+ "@univerjs/core": "0.5.3",
63
+ "@univerjs/engine-render": "0.5.3"
64
64
  },
65
65
  "devDependencies": {
66
66
  "rxjs": "^7.8.1",
67
67
  "typescript": "^5.7.2",
68
- "vite": "^6.0.3",
68
+ "vite": "^6.0.6",
69
69
  "vitest": "^2.1.8",
70
- "@univerjs-infra/shared": "0.5.2"
71
- },
72
- "space": {
73
- ".": {
74
- "import": "./lib/es/index.js",
75
- "require": "./lib/cjs/index.js",
76
- "types": "./lib/types/index.d.ts"
77
- },
78
- "./*": {
79
- "import": "./lib/es/*",
80
- "require": "./lib/cjs/*",
81
- "types": "./lib/types/index.d.ts"
82
- },
83
- "./locale/*": {
84
- "import": "./lib/es/locale/*.js",
85
- "require": "./lib/cjs/locale/*.js",
86
- "types": "./lib/types/locale/*.d.ts"
87
- },
88
- "./facade": {
89
- "import": "./lib/es/facade.js",
90
- "require": "./lib/cjs/facade.js",
91
- "types": "./lib/types/facade/index.d.ts"
92
- },
93
- "./lib/*": "./lib/*"
70
+ "@univerjs-infra/shared": "0.5.3"
94
71
  },
95
72
  "scripts": {
96
73
  "test": "vitest run",