| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- var j = Object.defineProperty;
- var N = (e, t, r) => t in e ? j(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
- var l = (e, t, r) => N(e, typeof t != "symbol" ? t + "" : t, r);
- 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";
- import { Layer as z, IRenderManagerService as B } from "@univerjs/engine-render";
- import { Subject as T } from "rxjs";
- const h = "UNIVER_WATERMARK_STORAGE_KEY", F = 10, ue = ["image/png", "image/jpeg", "image/jpg", "image/bmp"], q = {
- 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: 0.15
- }, J = {
- url: "",
- width: 100,
- height: 100,
- maintainAspectRatio: !0,
- originRatio: 1,
- x: 60,
- y: 36,
- repeat: !0,
- spacingX: 200,
- spacingY: 100,
- rotate: 0,
- opacity: 0.15
- }, Q = {
- 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: 0.15
- };
- var f = /* @__PURE__ */ ((e) => (e.UserInfo = "userInfo", e.Text = "text", e.Image = "image", e))(f || {});
- const O = "watermark.config", D = {};
- var Z = Object.defineProperty, x = Object.getOwnPropertyDescriptor, ee = (e, t, r, i) => {
- for (var a = i > 1 ? void 0 : i ? x(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 && Z(t, r, a), a;
- }, te = (e, t) => (r, i) => t(r, i, e);
- let R = class extends Y {
- constructor(t) {
- super();
- l(this, "_updateConfig$", new T());
- l(this, "updateConfig$", this._updateConfig$.asObservable());
- l(this, "_refresh$", new T());
- l(this, "refresh$", this._refresh$.asObservable());
- this._localStorageService = t;
- }
- async getWatermarkConfig() {
- return await this._localStorageService.getItem(h);
- }
- updateWatermarkConfig(t) {
- this._localStorageService.setItem(h, t), this._updateConfig$.next(t);
- }
- deleteWatermarkConfig() {
- this._localStorageService.removeItem(h), this._updateConfig$.next(null);
- }
- refresh() {
- this._refresh$.next(Math.random());
- }
- dispose() {
- this._refresh$.complete(), this._updateConfig$.complete();
- }
- };
- R = ee([
- te(0, y($))
- ], R);
- function re(e, t, r, i) {
- const a = t.type, n = t.config;
- a === f.UserInfo && n.userInfo ? ae(e, n.userInfo, i) : a === f.Image && n.image ? ne(e, n.image, r) : a === f.Text && n.text && ie(e, n.text);
- }
- function ae(e, t, r) {
- 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;
- if (!r)
- return;
- let c = "";
- if (m && (c += `${r.name} `), !c)
- return;
- e.save(), e.globalAlpha = p, e.direction = o;
- let d = "";
- if (u && (d += "italic "), W && (d += "bold "), d += `${I}px Arial`, e.font = d, e.fillStyle = C, n) {
- const g = e.canvas.width, _ = e.canvas.height;
- for (let b = a; b < _; b += I + S)
- for (let P = i; P < g; P += e.measureText(c).width + s)
- e.save(), e.translate(P, b), e.rotate(Math.PI / 180 * v), e.fillText(c, 0, 0), e.restore();
- } else
- e.save(), e.translate(i, a), e.rotate(Math.PI / 180 * v), e.fillText(c, 0, 0), e.restore();
- e.restore();
- }
- function ie(e, t) {
- 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;
- e.save(), e.globalAlpha = v, e.direction = u;
- let o = "";
- if (W && (o += "italic "), C && (o += "bold "), o += `${m}px Arial`, e.font = o, e.fillStyle = I, p)
- if (a) {
- const c = e.canvas.width, d = e.canvas.height;
- for (let g = i; g < d; g += m + s)
- for (let _ = r; _ < c; _ += e.measureText(p).width + n)
- e.save(), e.translate(_, g), e.rotate(Math.PI / 180 * S), e.fillText(p, 0, 0), e.restore();
- } else
- e.save(), e.translate(r, i), e.rotate(Math.PI / 180 * S), e.fillText(p, 0, 0), e.restore();
- e.restore();
- }
- function ne(e, t, r) {
- const { x: i, y: a, repeat: n, spacingX: s, spacingY: S, rotate: v, opacity: p, width: m, height: I, maintainAspectRatio: C, originRatio: W } = t;
- if (!(r != null && r.complete))
- return;
- e.save(), e.globalAlpha = p;
- const u = m, o = C ? m / W : I;
- if (n) {
- const c = e.canvas.width, d = e.canvas.height;
- for (let g = a; g < d; g += o + S)
- for (let _ = i; _ < c; _ += u + s)
- e.save(), e.translate(_, g), e.rotate(Math.PI / 180 * v), e.drawImage(r, 0, 0, u, o), e.restore();
- } else
- e.save(), e.translate(i, a), e.rotate(Math.PI / 180 * v), e.drawImage(r, 0, 0, u, o), e.restore();
- e.restore();
- }
- class se extends z {
- 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) === f.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 && re(r, this._config, this._image, this._user);
- }
- }
- var oe = Object.defineProperty, le = Object.getOwnPropertyDescriptor, fe = (e, t, r, i) => {
- for (var a = i > 1 ? void 0 : i ? le(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 && oe(t, r, a), a;
- }, M = (e, t) => (r, i) => t(r, i, e);
- let k = class extends K {
- constructor(t, r, i, a) {
- super();
- l(this, "_watermarkLayer");
- 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();
- }
- _initAddRender() {
- const { scene: t } = this._context;
- t.addLayer(this._watermarkLayer);
- }
- async _initWatermarkConfig() {
- var r;
- const t = await this._localStorageService.getItem(h);
- 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 === f.UserInfo ? this._watermarkLayer.updateConfig(t, this._userManagerService.getCurrentUser()) : this._watermarkLayer.updateConfig(t), (i = this._context.mainComponent) == null || i.makeDirty();
- })
- );
- }
- };
- k = fe([
- M(1, y(R)),
- M(2, y($)),
- M(3, y(X))
- ], k);
- var ce = Object.defineProperty, ge = Object.getOwnPropertyDescriptor, _e = (e, t, r, i) => {
- for (var a = i > 1 ? void 0 : i ? ge(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 && ce(t, r, a), a;
- }, A = (e, t) => (r, i) => t(r, i, e);
- const he = "UNIVER_WATERMARK_PLUGIN";
- var E;
- let L = (E = class extends V {
- constructor(e = D, t, r, i, a) {
- super(), this._config = e, this._injector = t, this._configService = r, this._renderManagerSrv = i, this._localStorageService = a;
- const { ...n } = w(
- {},
- D,
- this._config
- );
- this._configService.setConfig(O, n), this._initWatermarkStorage(), this._initDependencies();
- }
- async _initWatermarkStorage() {
- const e = this._configService.getConfig(O);
- if (!e)
- return;
- const { userWatermarkSettings: t, textWatermarkSettings: r, imageWatermarkSettings: i } = e;
- if (t)
- this._localStorageService.setItem(h, {
- type: f.UserInfo,
- config: {
- userInfo: w({}, Q, t)
- }
- });
- else if (r)
- this._localStorageService.setItem(h, {
- type: f.Text,
- config: {
- text: w({}, q, r)
- }
- });
- else if (i)
- this._localStorageService.setItem(h, {
- type: f.Image,
- config: {
- image: w({}, J, i)
- }
- });
- else {
- const a = await this._localStorageService.getItem(h);
- (a == null ? void 0 : a.type) === f.UserInfo && this._localStorageService.removeItem(h);
- }
- }
- _initDependencies() {
- [[R]].forEach((e) => {
- this._injector.add(e);
- });
- }
- onRendered() {
- this._injector.get(R), this._initRenderDependencies();
- }
- _initRenderDependencies() {
- [
- [k]
- ].forEach((e) => {
- this._renderManagerSrv.registerRenderModule(U.UNIVER_SHEET, e), this._renderManagerSrv.registerRenderModule(U.UNIVER_DOC, e);
- });
- }
- }, l(E, "pluginName", he), E);
- L = _e([
- A(1, y(G)),
- A(2, H),
- A(3, B),
- A(4, y($))
- ], L);
- export {
- f as IWatermarkTypeEnum,
- h as UNIVER_WATERMARK_STORAGE_KEY,
- L as UniverWatermarkPlugin,
- ue as WATERMARK_IMAGE_ALLOW_IMAGE_LIST,
- J as WatermarkImageBaseConfig,
- R as WatermarkService,
- q as WatermarkTextBaseConfig,
- Q as WatermarkUserInfoBaseConfig
- };
|