index.js 84 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953
  1. var Tn = Object.defineProperty;
  2. var Bn = (i, t, n) => t in i ? Tn(i, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : i[t] = n;
  3. var Q = (i, t, n) => Bn(i, typeof t != "symbol" ? t + "" : t, n);
  4. import { UniverInstanceType as Me, DrawingTypeEnum as ee, CommandType as ve, useDependency as L, ICommandService as me, LocaleService as ne, ArrangeTypeEnum as Ie, Tools as Un, debounce as Pe, Inject as He, Disposable as Le, checkIfMove as ln, toDisposable as we, IUniverInstanceService as Ye, Injector as An, Plugin as Hn, merge as Ln, IConfigService as Vn } from "@univerjs/core";
  5. import { getDrawingShapeKeyByDrawingSearch as G, ImageSourceType as Gn, IDrawingManagerService as te, IImageIoService as mn, SetDrawingSelectedOperation as Oe } from "@univerjs/drawing";
  6. import { Group as _e, DRAWING_OBJECT_LAYER_INDEX as Ze, Image as Fe, IRenderManagerService as ue, getGroupState as Wn, transformObjectOutOfGroup as $n, RENDER_CLASS_TYPE as Je, Shape as kn, Rect as zn, Canvas as Fn, precisionTo as ye, CURSOR_TYPE as Ne, Vector2 as We, degToRad as Qe } from "@univerjs/engine-render";
  7. import { IDialogService as gn, ComponentManager as Kn, IMessageService as Yn } from "@univerjs/ui";
  8. import Zn, { useState as H, forwardRef as Y, useRef as un, createElement as Z, useEffect as Se } from "react";
  9. import { Select as dn, Button as ce, InputNumber as fe, Checkbox as Xn, DropdownLegacy as qn, MessageType as en } from "@univerjs/design";
  10. import { filter as Jn, switchMap as Qn } from "rxjs";
  11. function et(i, t, n, e) {
  12. const r = e.getDrawingByParam(i);
  13. if (r == null)
  14. return;
  15. const s = G(i), a = n.getObject(s);
  16. if (a && !(a instanceof _e))
  17. return;
  18. if (a != null) {
  19. a.addObject(t);
  20. return;
  21. }
  22. const o = new _e(s);
  23. n.addObject(o, Ze).attachTransformerTo(o), o.addObject(t);
  24. const { transform: c } = r;
  25. c && o.transformByState(
  26. {
  27. left: c.left,
  28. top: c.top,
  29. angle: c.angle
  30. }
  31. );
  32. }
  33. function hn(i, t) {
  34. var s;
  35. const n = t ? i.getUnit(t) : i.getFocusedUnit();
  36. if (n == null)
  37. return;
  38. const e = n.getUnitId();
  39. let r;
  40. return n.type === Me.UNIVER_SHEET ? r = (s = n.getActiveSheet()) == null ? void 0 : s.getSheetId() : (n.type === Me.UNIVER_DOC || n.type === Me.UNIVER_SLIDE) && (r = e), { unitId: e, subUnitId: r, current: n };
  41. }
  42. const fn = "COMPONENT_IMAGE_VIEWER";
  43. var nt = Object.defineProperty, tt = Object.getOwnPropertyDescriptor, rt = (i, t, n, e) => {
  44. for (var r = e > 1 ? void 0 : e ? tt(t, n) : t, s = i.length - 1, a; s >= 0; s--)
  45. (a = i[s]) && (r = (e ? a(t, n, r) : a(r)) || r);
  46. return e && r && nt(t, n, r), r;
  47. }, $e = (i, t) => (n, e) => t(n, e, i);
  48. const nn = 50;
  49. let De = class {
  50. constructor(i, t, n) {
  51. this._drawingManagerService = i, this._imageIoService = t, this._dialogService = n;
  52. }
  53. // eslint-disable-next-line max-lines-per-function
  54. async renderImages(i, t) {
  55. const {
  56. transform: n,
  57. drawingType: e,
  58. source: r,
  59. imageSourceType: s,
  60. srcRect: a,
  61. prstGeom: o,
  62. groupId: c,
  63. unitId: g,
  64. subUnitId: m,
  65. drawingId: d,
  66. isMultiTransform: h,
  67. transforms: f
  68. } = i;
  69. if (e !== ee.DRAWING_IMAGE || !this._drawingManagerService.getDrawingVisible() || n == null)
  70. return;
  71. const _ = h && f ? f : [n], w = [];
  72. for (const p of _) {
  73. const { left: S, top: v, width: j, height: b, angle: N, flipX: P, flipY: I, skewX: y, skewY: x } = p, D = _.indexOf(p), B = G({ unitId: g, subUnitId: m, drawingId: d }, h ? D : void 0), E = t.getObject(B);
  74. if (E != null) {
  75. E.transformByState({ left: S, top: v, width: j, height: b, angle: N, flipX: P, flipY: I, skewX: y, skewY: x });
  76. continue;
  77. }
  78. const re = this._drawingManagerService.getDrawingOrder(g, m), W = re.indexOf(d), q = { ...p, zIndex: W === -1 ? re.length - 1 : W }, be = this._imageIoService.getImageSourceCache(r, s);
  79. let ie = !1;
  80. if (be != null)
  81. q.image = be;
  82. else {
  83. if (s === Gn.UUID)
  84. try {
  85. q.url = await this._imageIoService.getImage(r);
  86. } catch (Ge) {
  87. console.error(Ge);
  88. continue;
  89. }
  90. else
  91. q.url = r;
  92. ie = !0;
  93. }
  94. if (t.getObject(B))
  95. continue;
  96. q.printable = !0;
  97. const k = new Fe(B, q);
  98. ie && this._imageIoService.addImageSourceCache(r, s, k.getNative()), this._drawingManagerService.getDrawingVisible() && (t.addObject(k, Ze), this._drawingManagerService.getDrawingEditable() && t.attachTransformerTo(k), c && et({ drawingId: c, unitId: g, subUnitId: m }, k, t, this._drawingManagerService), o != null && k.setPrstGeom(o), a != null && k.setSrcRect(a), w.push(k));
  99. }
  100. return w;
  101. }
  102. renderDrawing(i, t) {
  103. const n = this._drawingManagerService.getDrawingByParam(i);
  104. if (n != null)
  105. switch (n.drawingType) {
  106. case ee.DRAWING_IMAGE:
  107. return this.renderImages(n, t);
  108. }
  109. }
  110. previewImage(i, t, n, e) {
  111. const r = `${i}-viewer-dialog`, s = window.innerWidth - nn, a = window.innerHeight - nn, o = this._adjustImageSize(n, e, s, a), c = this._dialogService.open({
  112. width: Math.max(o.width, 200),
  113. id: r,
  114. style: { margin: "0", top: "50%", left: "50%", transform: "translate(-50%, -50%)" },
  115. children: {
  116. label: {
  117. name: fn,
  118. props: {
  119. src: t,
  120. width: o.width,
  121. height: o.height
  122. }
  123. }
  124. },
  125. destroyOnClose: !0,
  126. draggable: !1,
  127. onClose: () => {
  128. this._dialogService.close(r), c.dispose();
  129. }
  130. });
  131. }
  132. _adjustImageSize(i, t, n, e) {
  133. if (i <= n && t <= e)
  134. return {
  135. width: i,
  136. height: t
  137. };
  138. const r = n / i, s = e / t, a = Math.min(r, s);
  139. return {
  140. width: Math.floor(i * a),
  141. height: Math.floor(t * a)
  142. };
  143. }
  144. };
  145. De = rt([
  146. $e(0, te),
  147. $e(1, mn),
  148. $e(2, gn)
  149. ], De);
  150. function Ve(i, t) {
  151. const n = [];
  152. return i.forEach((e) => {
  153. const { oKey: r, left: s, top: a, height: o, width: c, angle: g } = e, m = t.getDrawingOKey(r);
  154. if (m == null)
  155. return n.push(null), !0;
  156. const { unitId: d, subUnitId: h, drawingId: f, drawingType: _ } = m, w = {
  157. unitId: d,
  158. subUnitId: h,
  159. drawingId: f,
  160. drawingType: _,
  161. transform: {
  162. left: s,
  163. top: a,
  164. height: o,
  165. width: c,
  166. angle: g
  167. }
  168. };
  169. _ === ee.DRAWING_IMAGE && (w.srcRect = e.srcRect), n.push(w);
  170. }), n;
  171. }
  172. var ke = { exports: {} }, pe = {};
  173. /**
  174. * @license React
  175. * react-jsx-runtime.production.min.js
  176. *
  177. * Copyright (c) Facebook, Inc. and its affiliates.
  178. *
  179. * This source code is licensed under the MIT license found in the
  180. * LICENSE file in the root directory of this source tree.
  181. */
  182. var tn;
  183. function it() {
  184. if (tn) return pe;
  185. tn = 1;
  186. var i = Zn, t = Symbol.for("react.element"), n = Symbol.for("react.fragment"), e = Object.prototype.hasOwnProperty, r = i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, s = { key: !0, ref: !0, __self: !0, __source: !0 };
  187. function a(o, c, g) {
  188. var m, d = {}, h = null, f = null;
  189. g !== void 0 && (h = "" + g), c.key !== void 0 && (h = "" + c.key), c.ref !== void 0 && (f = c.ref);
  190. for (m in c) e.call(c, m) && !s.hasOwnProperty(m) && (d[m] = c[m]);
  191. if (o && o.defaultProps) for (m in c = o.defaultProps, c) d[m] === void 0 && (d[m] = c[m]);
  192. return { $$typeof: t, type: o, key: h, ref: f, props: d, _owner: r.current };
  193. }
  194. return pe.Fragment = n, pe.jsx = a, pe.jsxs = a, pe;
  195. }
  196. var rn;
  197. function at() {
  198. return rn || (rn = 1, ke.exports = it()), ke.exports;
  199. }
  200. var l = at();
  201. function pn(i) {
  202. var t, n, e = "";
  203. if (typeof i == "string" || typeof i == "number") e += i;
  204. else if (typeof i == "object") if (Array.isArray(i)) {
  205. var r = i.length;
  206. for (t = 0; t < r; t++) i[t] && (n = pn(i[t])) && (e && (e += " "), e += n);
  207. } else for (n in i) i[n] && (e && (e += " "), e += n);
  208. return e;
  209. }
  210. function O() {
  211. for (var i, t, n = 0, e = "", r = arguments.length; n < r; n++) (i = arguments[n]) && (t = pn(i)) && (e && (e += " "), e += t);
  212. return e;
  213. }
  214. var R = /* @__PURE__ */ ((i) => (i.default = "0", i.left = "1", i.center = "2", i.right = "3", i.top = "4", i.middle = "5", i.bottom = "6", i.horizon = "7", i.vertical = "8", i))(R || {});
  215. const Xe = {
  216. id: "sheet.operation.set-image-align",
  217. type: ve.OPERATION,
  218. handler: (i, t) => !0
  219. }, st = "univer-image-common-panel", ot = "univer-image-common-panel-grid", ct = "univer-image-common-panel-border", lt = "univer-image-common-panel-title", mt = "univer-image-common-panel-subtitle", gt = "univer-image-common-panel-row", ut = "univer-image-common-panel-row-vertical", dt = "univer-image-common-panel-column", ht = "univer-image-common-panel-column-center", ft = "univer-image-common-panel-inline", pt = "univer-image-common-panel-span2", Ct = "univer-image-common-panel-span3", wt = "univer-image-common-panel-input", u = {
  220. imageCommonPanel: st,
  221. imageCommonPanelGrid: ot,
  222. imageCommonPanelBorder: ct,
  223. imageCommonPanelTitle: lt,
  224. imageCommonPanelSubtitle: mt,
  225. imageCommonPanelRow: gt,
  226. imageCommonPanelRowVertical: ut,
  227. imageCommonPanelColumn: dt,
  228. imageCommonPanelColumnCenter: ht,
  229. imageCommonPanelInline: ft,
  230. imageCommonPanelSpan2: pt,
  231. imageCommonPanelSpan3: Ct,
  232. imageCommonPanelInput: wt
  233. }, _t = (i) => {
  234. const t = L(me), n = L(ne), { alignShow: e } = i, [r, s] = H(R.default), a = [
  235. {
  236. label: n.t("image-panel.align.default"),
  237. value: R.default
  238. },
  239. {
  240. options: [
  241. {
  242. label: n.t("image-panel.align.left"),
  243. value: R.left
  244. },
  245. {
  246. label: n.t("image-panel.align.center"),
  247. value: R.center
  248. },
  249. {
  250. label: n.t("image-panel.align.right"),
  251. value: R.right
  252. }
  253. ]
  254. },
  255. {
  256. options: [
  257. {
  258. label: n.t("image-panel.align.top"),
  259. value: R.top
  260. },
  261. {
  262. label: n.t("image-panel.align.middle"),
  263. value: R.middle
  264. },
  265. {
  266. label: n.t("image-panel.align.bottom"),
  267. value: R.bottom
  268. }
  269. ]
  270. },
  271. {
  272. options: [
  273. {
  274. label: n.t("image-panel.align.horizon"),
  275. value: R.horizon
  276. },
  277. {
  278. label: n.t("image-panel.align.vertical"),
  279. value: R.vertical
  280. }
  281. ]
  282. }
  283. ];
  284. function o(g) {
  285. s(g), t.executeCommand(Xe.id, {
  286. alignType: g
  287. });
  288. }
  289. const c = (g) => g ? "block" : "none";
  290. return /* @__PURE__ */ l.jsxs("div", { className: O(u.imageCommonPanelGrid, u.imageCommonPanelBorder), style: { display: c(e) }, children: [
  291. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelTitle), children: /* @__PURE__ */ l.jsx("div", { children: n.t("image-panel.align.title") }) }) }),
  292. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn), children: /* @__PURE__ */ l.jsx(dn, { value: r, options: a, onChange: o }) }) })
  293. ] });
  294. };
  295. var $ = function() {
  296. return $ = Object.assign || function(i) {
  297. for (var t, n = 1, e = arguments.length; n < e; n++) {
  298. t = arguments[n];
  299. for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (i[r] = t[r]);
  300. }
  301. return i;
  302. }, $.apply(this, arguments);
  303. }, vt = function(i, t) {
  304. var n = {};
  305. for (var e in i) Object.prototype.hasOwnProperty.call(i, e) && t.indexOf(e) < 0 && (n[e] = i[e]);
  306. if (i != null && typeof Object.getOwnPropertySymbols == "function")
  307. for (var r = 0, e = Object.getOwnPropertySymbols(i); r < e.length; r++)
  308. t.indexOf(e[r]) < 0 && Object.prototype.propertyIsEnumerable.call(i, e[r]) && (n[e[r]] = i[e[r]]);
  309. return n;
  310. }, X = Y(function(i, t) {
  311. var n = i.icon, e = i.id, r = i.className, s = i.extend, a = vt(i, ["icon", "id", "className", "extend"]), o = "univerjs-icon univerjs-icon-".concat(e, " ").concat(r || "").trim(), c = un("_".concat(It()));
  312. return Cn(n, "".concat(e), { defIds: n.defIds, idSuffix: c.current }, $({ ref: t, className: o }, a), s);
  313. });
  314. function Cn(i, t, n, e, r) {
  315. return Z(i.tag, $($({ key: t }, St(i, n, r)), e), (bt(i, n).children || []).map(function(s, a) {
  316. return Cn(s, "".concat(t, "-").concat(i.tag, "-").concat(a), n, void 0, r);
  317. }));
  318. }
  319. function St(i, t, n) {
  320. var e = $({}, i.attrs);
  321. n != null && n.colorChannel1 && e.fill === "colorChannel1" && (e.fill = n.colorChannel1);
  322. var r = t.defIds;
  323. return !r || r.length === 0 || (i.tag === "use" && e["xlink:href"] && (e["xlink:href"] = e["xlink:href"] + t.idSuffix), Object.entries(e).forEach(function(s) {
  324. var a = s[0], o = s[1];
  325. typeof o == "string" && (e[a] = o.replace(/url\(#(.*)\)/, "url(#$1".concat(t.idSuffix, ")")));
  326. })), e;
  327. }
  328. function bt(i, t) {
  329. var n, e = t.defIds;
  330. return !e || e.length === 0 ? i : i.tag === "defs" && (!((n = i.children) === null || n === void 0) && n.length) ? $($({}, i), { children: i.children.map(function(r) {
  331. return typeof r.attrs.id == "string" && e && e.indexOf(r.attrs.id) > -1 ? $($({}, r), { attrs: $($({}, r.attrs), { id: r.attrs.id + t.idSuffix }) }) : r;
  332. }) }) : i;
  333. }
  334. function It() {
  335. return Math.random().toString(36).substring(2, 8);
  336. }
  337. X.displayName = "UniverIcon";
  338. var Pt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "colorChannel1", d: "M11.0363 12.2367V14.0367C11.0363 14.3681 11.3049 14.6367 11.6363 14.6367C11.9676 14.6367 12.2363 14.3681 12.2363 14.0367V12.2367H14.0364C14.3677 12.2367 14.6364 11.9681 14.6364 11.6367C14.6364 11.3054 14.3677 11.0367 14.0364 11.0367H12.2363V9.23672C12.2363 8.90535 11.9676 8.63672 11.6363 8.63672C11.3049 8.63672 11.0363 8.90535 11.0363 9.23672V11.0367H9.23635C8.90498 11.0367 8.63635 11.3054 8.63635 11.6367C8.63635 11.9681 8.90498 12.2367 9.23635 12.2367H11.0363Z" } }, { tag: "path", attrs: { fill: "currentColor", d: "M2.56365 1.36377C1.90091 1.36377 1.36365 1.90103 1.36365 2.56377V6.16377C1.36365 6.82651 1.90091 7.36377 2.56365 7.36377H6.16365C6.82639 7.36377 7.36365 6.82651 7.36365 6.16377V2.56377C7.36365 1.90103 6.82639 1.36377 6.16365 1.36377H2.56365zM6.16365 2.56377H2.56365L2.56365 6.16377H6.16365V2.56377zM2.56365 8.63647C1.90091 8.63647 1.36365 9.17373 1.36365 9.83647V13.4365C1.36365 14.0992 1.90091 14.6365 2.56365 14.6365H6.16365C6.82639 14.6365 7.36365 14.0992 7.36365 13.4365V9.83647C7.36365 9.17373 6.82639 8.63647 6.16365 8.63647H2.56365zM6.16365 9.83647H2.56365L2.56365 13.4365H6.16365V9.83647zM9.83635 7.36377C9.17361 7.36377 8.63635 6.82651 8.63635 6.16377V2.56377C8.63635 1.90103 9.17361 1.36377 9.83635 1.36377H13.4364C14.0991 1.36377 14.6364 1.90103 14.6364 2.56377V6.16377C14.6364 6.82651 14.0991 7.36377 13.4364 7.36377H9.83635zM9.83635 6.16377V2.56377L13.4364 2.56377V6.16377H9.83635z", fillRule: "evenodd", clipRule: "evenodd" } }] }, wn = Y(function(i, t) {
  339. return Z(X, Object.assign({}, i, {
  340. id: "autofill",
  341. ref: t,
  342. icon: Pt
  343. }));
  344. });
  345. wn.displayName = "Autofill";
  346. var yt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M14.0045 4.4334C14.8881 4.4334 15.6045 3.71705 15.6045 2.8334 15.6045 1.94974 14.8881 1.2334 14.0045 1.2334H3.70449C2.82084 1.2334 2.10449 1.94974 2.10449 2.8334 2.10449 3.71705 2.82084 4.4334 3.70449 4.4334H14.0045zM14.4045 2.8334C14.4045 3.05431 14.2254 3.2334 14.0045 3.2334H3.70449C3.48358 3.2334 3.30449 3.05431 3.30449 2.8334 3.30449 2.61248 3.48358 2.4334 3.70449 2.4334H14.0045C14.2254 2.4334 14.4045 2.61249 14.4045 2.8334zM14.1544 8.5999C15.038 8.5999 15.7544 7.88356 15.7544 6.9999 15.7544 6.11625 15.038 5.3999 14.1544 5.3999H3.85439C2.97074 5.3999 2.25439 6.11625 2.25439 6.9999 2.25439 7.88356 2.97074 8.5999 3.85439 8.5999H14.1544zM14.5544 6.9999C14.5544 7.22082 14.3753 7.3999 14.1544 7.3999H3.85439C3.63348 7.3999 3.45439 7.22082 3.45439 6.9999 3.45439 6.77899 3.63348 6.5999 3.85439 6.5999H14.1544C14.3753 6.5999 14.5544 6.77899 14.5544 6.9999z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M8.57975 14.5902L6.58023 12.5907C6.34591 12.3564 6.34591 11.9765 6.58023 11.7421 6.81454 11.5078 7.19444 11.5078 7.42876 11.7421L8.40449 12.7179V10.1664C8.40449 9.83504 8.67312 9.56641 9.00449 9.56641 9.33586 9.56641 9.60449 9.83504 9.60449 10.1664V12.7179L10.5802 11.7421C10.8145 11.5078 11.1944 11.5078 11.4288 11.7421 11.6631 11.9765 11.6631 12.3564 11.4288 12.5907L9.42923 14.5902M8.57975 14.5902C8.58121 14.5917 8.58268 14.5931 8.58416 14.5946 8.64077 14.6502 8.70566 14.6923 8.77482 14.7209 8.84557 14.7502 8.92314 14.7664 9.00449 14.7664 9.08585 14.7664 9.16342 14.7502 9.23416 14.7209 9.30332 14.6923 9.36821 14.6502 9.42482 14.5946" } }] }, _n = Y(function(i, t) {
  347. return Z(X, Object.assign({}, i, {
  348. id: "bottom-single",
  349. ref: t,
  350. icon: yt
  351. }));
  352. });
  353. _n.displayName = "BottomSingle";
  354. var Rt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M5.97705 7.51296C5.97705 7.18159 6.24568 6.91296 6.57705 6.91296H8.48632C8.81769 6.91296 9.08632 7.18159 9.08632 7.51296 9.08632 7.84433 8.81769 8.11296 8.48632 8.11296H6.57705C6.24568 8.11296 5.97705 7.84433 5.97705 7.51296zM6.57705 9.41028C6.24568 9.41028 5.97705 9.67891 5.97705 10.0103 5.97705 10.3416 6.24568 10.6103 6.57705 10.6103H10.8199C11.1512 10.6103 11.4199 10.3416 11.4199 10.0103 11.4199 9.67891 11.1512 9.41028 10.8199 9.41028H6.57705z" } }, { tag: "path", attrs: { fill: "currentColor", d: "M3.51074 2.37063C3.51074 1.48697 4.22709 0.77063 5.11074 0.77063H9.80318L9.81294 0.770708C9.97168 0.768161 10.1311 0.82824 10.2511 0.95055L14.4317 5.21408C14.5165 5.30049 14.5697 5.406 14.5917 5.51645C14.6041 5.5644 14.6106 5.61467 14.6106 5.66648V11.6406C14.6106 12.5243 13.8943 13.2406 13.0106 13.2406H5.11074C4.22709 13.2406 3.51074 12.5243 3.51074 11.6406V2.37063ZM10.4032 4.66648V2.81964L12.6063 5.06648H10.8032C10.5823 5.06648 10.4032 4.88739 10.4032 4.66648ZM5.11074 1.97063C4.88983 1.97063 4.71074 2.14972 4.71074 2.37063V11.6406C4.71074 11.8615 4.88983 12.0406 5.11074 12.0406H13.0106C13.2316 12.0406 13.4106 11.8615 13.4106 11.6406V6.26648H10.8032C9.91953 6.26648 9.20318 5.55013 9.20318 4.66648V1.97063H5.11074Z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M2.58916 6.6741C2.58916 6.34273 2.32053 6.0741 1.98916 6.0741C1.65779 6.0741 1.38916 6.34273 1.38916 6.6741V12.6294C1.38916 14.0653 2.55322 15.2294 3.98916 15.2294H9.41408C9.74545 15.2294 10.0141 14.9607 10.0141 14.6294C10.0141 14.298 9.74545 14.0294 9.41408 14.0294H3.98916C3.21596 14.0294 2.58916 13.4026 2.58916 12.6294V6.6741Z" } }] }, vn = Y(function(i, t) {
  355. return Z(X, Object.assign({}, i, {
  356. id: "create-copy-single",
  357. ref: t,
  358. icon: Rt
  359. }));
  360. });
  361. vn.displayName = "CreateCopySingle";
  362. var jt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M7.38125 1.16211C6.49759 1.16211 5.78125 1.87845 5.78125 2.76211V5.6377H2.87783C1.99418 5.6377 1.27783 6.35404 1.27783 7.2377V13.2377C1.27783 14.1214 1.99418 14.8377 2.87783 14.8377H8.87783C9.76149 14.8377 10.4778 14.1214 10.4778 13.2377V10.3621H13.3813C14.2649 10.3621 14.9813 9.64577 14.9813 8.76211V2.76211C14.9813 1.87845 14.2649 1.16211 13.3813 1.16211H7.38125ZM10.4778 9.16211H13.3813C13.6022 9.16211 13.7812 8.98302 13.7812 8.76211V2.76211C13.7812 2.5412 13.6022 2.36211 13.3813 2.36211H7.38125C7.16034 2.36211 6.98125 2.5412 6.98125 2.76211V5.6377H8.87783C9.76149 5.6377 10.4778 6.35404 10.4778 7.2377V9.16211ZM6.98125 6.8377H8.87783C9.09875 6.8377 9.27783 7.01678 9.27783 7.2377V9.16211H7.38125C7.16034 9.16211 6.98125 8.98302 6.98125 8.76211V6.8377ZM5.78125 6.8377V8.76211C5.78125 9.64577 6.49759 10.3621 7.38125 10.3621H9.27783V13.2377C9.27783 13.4586 9.09875 13.6377 8.87783 13.6377H2.87783C2.65692 13.6377 2.47783 13.4586 2.47783 13.2377V7.2377C2.47783 7.01678 2.65692 6.8377 2.87783 6.8377H5.78125Z", fillRule: "evenodd", clipRule: "evenodd" } }] }, Sn = Y(function(i, t) {
  363. return Z(X, Object.assign({}, i, {
  364. id: "group-single",
  365. ref: t,
  366. icon: jt
  367. }));
  368. });
  369. Sn.displayName = "GroupSingle";
  370. var xt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M11.3536 6.14645C11.5488 6.34171 11.5488 6.65829 11.3536 6.85355L8.35355 9.85355C8.15829 10.0488 7.84171 10.0488 7.64645 9.85355L4.64645 6.85355C4.45118 6.65829 4.45118 6.34171 4.64645 6.14645C4.84171 5.95118 5.15829 5.95118 5.35355 6.14645L8 8.79289L10.6464 6.14645C10.8417 5.95118 11.1583 5.95118 11.3536 6.14645Z", fillRule: "evenodd", clipRule: "evenodd" } }] }, bn = Y(function(i, t) {
  371. return Z(X, Object.assign({}, i, {
  372. id: "more-down-single",
  373. ref: t,
  374. icon: xt
  375. }));
  376. });
  377. bn.displayName = "MoreDownSingle";
  378. var Mt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M1.25 2.96401C1.25 3.84767 1.96634 4.56401 2.85 4.56401H13.15C14.0337 4.56401 14.75 3.84767 14.75 2.96401C14.75 2.08036 14.0337 1.36401 13.15 1.36401H2.85C1.96635 1.36401 1.25 2.08036 1.25 2.96401ZM2.85 3.36401C2.62909 3.36401 2.45 3.18493 2.45 2.96401C2.45 2.7431 2.62909 2.56401 2.85 2.56401H13.15C13.3709 2.56401 13.55 2.7431 13.55 2.96401C13.55 3.18493 13.3709 3.36401 13.15 3.36401H2.85Z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M5.57564 11.6118C5.80995 11.3774 6.18985 11.3774 6.42417 11.6118L7.3999 12.5875V6.36951C7.3999 6.03814 7.66853 5.76951 7.9999 5.76951C8.33127 5.76951 8.5999 6.03814 8.5999 6.36951V12.5875L9.57564 11.6118C9.80995 11.3774 10.1899 11.3774 10.4242 11.6118C10.6585 11.8461 10.6585 12.226 10.4242 12.4603L8.4324 14.452C8.32324 14.5655 8.16982 14.6362 7.9999 14.6362C7.82998 14.6362 7.67655 14.5655 7.56739 14.452L5.57564 12.4603C5.34132 12.226 5.34132 11.8461 5.57564 11.6118Z" } }] }, In = Y(function(i, t) {
  379. return Z(X, Object.assign({}, i, {
  380. id: "move-down-single",
  381. ref: t,
  382. icon: Mt
  383. }));
  384. });
  385. In.displayName = "MoveDownSingle";
  386. var Ot = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M1.25 13.036C1.25 12.1523 1.96634 11.436 2.85 11.436H13.15C14.0337 11.436 14.75 12.1523 14.75 13.036C14.75 13.9196 14.0337 14.636 13.15 14.636H2.85C1.96635 14.636 1.25 13.9196 1.25 13.036ZM2.85 12.636C2.62909 12.636 2.45 12.8151 2.45 13.036C2.45 13.2569 2.62909 13.436 2.85 13.436H13.15C13.3709 13.436 13.55 13.2569 13.55 13.036C13.55 12.8151 13.3709 12.636 13.15 12.636H2.85Z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M5.57564 4.38825C5.80995 4.62256 6.18985 4.62256 6.42417 4.38825L7.3999 3.41251V9.63049C7.3999 9.96186 7.66853 10.2305 7.9999 10.2305C8.33127 10.2305 8.5999 9.96186 8.5999 9.63049V3.41251L9.57564 4.38825C9.80995 4.62256 10.1899 4.62256 10.4242 4.38825C10.6585 4.15393 10.6585 3.77403 10.4242 3.53972L8.4324 1.54796C8.32324 1.43445 8.16982 1.36382 7.9999 1.36382C7.82998 1.36382 7.67655 1.43446 7.56739 1.54797L5.57564 3.53972C5.34132 3.77403 5.34132 4.15393 5.57564 4.38825Z" } }] }, Pn = Y(function(i, t) {
  387. return Z(X, Object.assign({}, i, {
  388. id: "move-up-single",
  389. ref: t,
  390. icon: Ot
  391. }));
  392. });
  393. Pn.displayName = "MoveUpSingle";
  394. var Nt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M7.82994 1.40913C7.88746 1.35161 7.95376 1.30821 8.02453 1.27893C8.09527 1.24959 8.17285 1.2334 8.2542 1.2334C8.33555 1.2334 8.41313 1.24959 8.48387 1.27893C8.55464 1.30821 8.62094 1.35161 8.67846 1.40913L10.6785 3.40913C10.9128 3.64345 10.9128 4.02335 10.6785 4.25766C10.4441 4.49198 10.0642 4.49198 9.82994 4.25766L8.8542 3.28193V5.8334C8.8542 6.16477 8.58557 6.4334 8.2542 6.4334C7.92283 6.4334 7.6542 6.16477 7.6542 5.8334V3.28193L6.67846 4.25766C6.44415 4.49198 6.06425 4.49198 5.82994 4.25766C5.59562 4.02335 5.59562 3.64345 5.82994 3.40913L7.82994 1.40913Z" } }, { tag: "path", attrs: { fill: "currentColor", d: "M1.50439 9C1.50439 8.11634 2.22074 7.4 3.10439 7.4H13.4044C14.288 7.4 15.0044 8.11634 15.0044 9 15.0044 9.88366 14.2881 10.6 13.4044 10.6H3.1044C2.22074 10.6 1.50439 9.88366 1.50439 9zM3.10439 8.6C2.88348 8.6 2.70439 8.77909 2.70439 9 2.70439 9.22091 2.88348 9.4 3.1044 9.4H13.4044C13.6253 9.4 13.8044 9.22091 13.8044 9 13.8044 8.77909 13.6253 8.6 13.4044 8.6H3.10439zM1.6543 13.1665C1.6543 12.2828 2.37064 11.5665 3.2543 11.5665H13.5543C14.438 11.5665 15.1543 12.2828 15.1543 13.1665 15.1543 14.0502 14.438 14.7665 13.5543 14.7665H3.2543C2.37064 14.7665 1.6543 14.0502 1.6543 13.1665zM3.2543 12.7665C3.03338 12.7665 2.8543 12.9456 2.8543 13.1665 2.8543 13.3874 3.03338 13.5665 3.2543 13.5665H13.5543C13.7752 13.5665 13.9543 13.3874 13.9543 13.1665 13.9543 12.9456 13.7752 12.7665 13.5543 12.7665H3.2543z", fillRule: "evenodd", clipRule: "evenodd" } }] }, yn = Y(function(i, t) {
  395. return Z(X, Object.assign({}, i, {
  396. id: "topmost-single",
  397. ref: t,
  398. icon: Nt
  399. }));
  400. });
  401. yn.displayName = "TopmostSingle";
  402. var Dt = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M7.46855 2.83731C7.46855 2.61639 7.64764 2.4373 7.86855 2.4373H13.8603C14.0812 2.4373 14.2603 2.61639 14.2603 2.8373V9.5049C14.2603 9.72581 14.0812 9.90489 13.8603 9.90489H12.866C12.5346 9.90489 12.266 10.1735 12.266 10.5049C12.266 10.8363 12.5346 11.1049 12.866 11.1049H13.8603C14.7439 11.1049 15.4603 10.3886 15.4603 9.5049V2.8373C15.4603 1.95365 14.7439 1.2373 13.8603 1.2373H7.86855C6.9849 1.2373 6.26855 1.95365 6.26855 2.83731V3.48688C6.26855 3.81825 6.53718 4.08688 6.86855 4.08688C7.19993 4.08688 7.46855 3.81825 7.46855 3.48688V2.83731Z" } }, { tag: "path", attrs: { fill: "currentColor", d: "M3.19888 5.56299C2.31522 5.56299 1.59888 6.27933 1.59888 7.16299V13.163C1.59888 14.0466 2.31522 14.763 3.19888 14.763H9.19888C10.0825 14.763 10.7989 14.0466 10.7989 13.163V7.16299C10.7989 6.27933 10.0825 5.56299 9.19888 5.56299H3.19888ZM2.79888 7.16299C2.79888 6.94207 2.97796 6.76299 3.19888 6.76299H9.19888C9.41979 6.76299 9.59888 6.94207 9.59888 7.16299V13.163C9.59888 13.3839 9.41979 13.563 9.19888 13.563H3.19888C2.97796 13.563 2.79888 13.3839 2.79888 13.163V7.16299Z", fillRule: "evenodd", clipRule: "evenodd" } }] }, Rn = Y(function(i, t) {
  403. return Z(X, Object.assign({}, i, {
  404. id: "ungroup-single",
  405. ref: t,
  406. icon: Dt
  407. }));
  408. });
  409. Rn.displayName = "UngroupSingle";
  410. const Et = (i) => {
  411. const { arrangeShow: t, drawings: n } = i, e = L(ne), r = L(te), s = (g) => g ? "block" : "none", [a, o] = H(n);
  412. Se(() => {
  413. const g = r.focus$.subscribe((m) => {
  414. o(m);
  415. });
  416. return () => {
  417. g.unsubscribe();
  418. };
  419. }, []);
  420. const c = (g) => {
  421. const m = a[0].unitId, d = a[0].subUnitId, h = a.map((f) => f.drawingId);
  422. r.featurePluginOrderUpdateNotification({ unitId: m, subUnitId: d, drawingIds: h, arrangeType: g });
  423. };
  424. return /* @__PURE__ */ l.jsxs("div", { className: u.imageCommonPanelGrid, style: { display: s(t) }, children: [
  425. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelTitle), children: /* @__PURE__ */ l.jsx("div", { children: e.t("image-panel.arrange.title") }) }) }),
  426. /* @__PURE__ */ l.jsxs("div", { className: u.imageCommonPanelRow, children: [
  427. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan2), children: /* @__PURE__ */ l.jsx(ce, { size: "small", onClick: () => {
  428. c(Ie.forward);
  429. }, children: /* @__PURE__ */ l.jsxs("span", { className: u.imageCommonPanelInline, children: [
  430. /* @__PURE__ */ l.jsx(Pn, {}),
  431. e.t("image-panel.arrange.forward")
  432. ] }) }) }),
  433. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan2), children: /* @__PURE__ */ l.jsx(ce, { size: "small", onClick: () => {
  434. c(Ie.backward);
  435. }, children: /* @__PURE__ */ l.jsxs("span", { className: u.imageCommonPanelInline, children: [
  436. /* @__PURE__ */ l.jsx(In, {}),
  437. e.t("image-panel.arrange.backward")
  438. ] }) }) })
  439. ] }),
  440. /* @__PURE__ */ l.jsxs("div", { className: u.imageCommonPanelRow, children: [
  441. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan2), children: /* @__PURE__ */ l.jsx(ce, { size: "small", onClick: () => {
  442. c(Ie.front);
  443. }, children: /* @__PURE__ */ l.jsxs("span", { className: u.imageCommonPanelInline, children: [
  444. /* @__PURE__ */ l.jsx(yn, {}),
  445. e.t("image-panel.arrange.front")
  446. ] }) }) }),
  447. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan2), children: /* @__PURE__ */ l.jsx(ce, { size: "small", onClick: () => {
  448. c(Ie.back);
  449. }, children: /* @__PURE__ */ l.jsxs("span", { className: u.imageCommonPanelInline, children: [
  450. /* @__PURE__ */ l.jsx(_n, {}),
  451. e.t("image-panel.arrange.back")
  452. ] }) }) })
  453. ] })
  454. ] });
  455. }, Tt = (i) => {
  456. const t = L(ne), n = L(ue), e = L(te), { hasGroup: r, drawings: s } = i, [a, o] = H(!1), [c, g] = H(!0), [m, d] = H(!0), h = (p) => p ? "block" : "none", f = () => {
  457. const p = e.getFocusDrawings(), { unitId: S, subUnitId: v } = p[0], j = Un.generateRandomId(10), b = Wn(0, 0, p.map((I) => I.transform || {})), N = {
  458. unitId: S,
  459. subUnitId: v,
  460. drawingId: j,
  461. drawingType: ee.DRAWING_GROUP,
  462. transform: b
  463. }, P = p.map((I) => {
  464. const y = I.transform || { left: 0, top: 0 }, { unitId: x, subUnitId: D, drawingId: B } = I;
  465. return {
  466. unitId: x,
  467. subUnitId: D,
  468. drawingId: B,
  469. transform: {
  470. ...y,
  471. left: y.left - b.left,
  472. top: y.top - b.top
  473. },
  474. groupId: j
  475. };
  476. });
  477. e.featurePluginGroupUpdateNotification([{
  478. parent: N,
  479. children: P
  480. }]);
  481. }, _ = (p) => {
  482. if (p.drawingType !== ee.DRAWING_GROUP)
  483. return;
  484. const { unitId: S, subUnitId: v, drawingId: j, transform: b = { width: 0, height: 0 } } = p;
  485. if (b == null)
  486. return;
  487. const N = e.getDrawingsByGroup({ unitId: S, subUnitId: v, drawingId: j });
  488. if (N.length === 0)
  489. return;
  490. const P = N.map((I) => {
  491. const { transform: y } = I, { unitId: x, subUnitId: D, drawingId: B } = I, E = $n(y || {}, b, b.width || 0, b.height || 0);
  492. return {
  493. unitId: x,
  494. subUnitId: D,
  495. drawingId: B,
  496. transform: {
  497. ...y,
  498. ...E
  499. },
  500. groupId: void 0
  501. };
  502. });
  503. return {
  504. parent: p,
  505. children: P
  506. };
  507. }, w = () => {
  508. const S = e.getFocusDrawings().map(
  509. (v) => _(v)
  510. ).filter((v) => v != null);
  511. S.length !== 0 && e.featurePluginUngroupUpdateNotification(S);
  512. };
  513. return Se(() => {
  514. const p = s[0];
  515. if (p == null)
  516. return;
  517. const { unitId: S } = p, v = n.getRenderById(S), j = v == null ? void 0 : v.scene;
  518. if (j == null)
  519. return;
  520. const b = j.getTransformerByCreate(), N = b.clearControl$.subscribe((I) => {
  521. I === !0 && o(!1);
  522. }), P = b.changeStart$.subscribe((I) => {
  523. const { objects: y } = I, x = Ve(y, e), D = x.filter((W) => (W == null ? void 0 : W.drawingType) === ee.DRAWING_GROUP);
  524. let B = !1, E = !1;
  525. x.length > 1 && (B = !0), D.length > 0 && (E = !0), o(B || E), g(B), d(E);
  526. });
  527. return () => {
  528. P.unsubscribe(), N.unsubscribe();
  529. };
  530. }, []), /* @__PURE__ */ l.jsxs("div", { className: O(u.imageCommonPanelGrid, u.imageCommonPanelBorder), style: { display: h(r === !0 ? a : !1) }, children: [
  531. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelTitle), children: /* @__PURE__ */ l.jsx("div", { children: t.t("image-panel.group.title") }) }) }),
  532. /* @__PURE__ */ l.jsxs("div", { className: u.imageCommonPanelRow, children: [
  533. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan2, u.imageCommonPanelColumnCenter), children: /* @__PURE__ */ l.jsx(ce, { size: "small", onClick: () => {
  534. f();
  535. }, style: { display: h(c) }, children: /* @__PURE__ */ l.jsxs("span", { className: u.imageCommonPanelInline, children: [
  536. /* @__PURE__ */ l.jsx(Sn, {}),
  537. t.t("image-panel.group.group")
  538. ] }) }) }),
  539. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan2, u.imageCommonPanelColumnCenter), children: /* @__PURE__ */ l.jsx(ce, { size: "small", onClick: () => {
  540. w();
  541. }, style: { display: h(m) }, children: /* @__PURE__ */ l.jsxs("span", { className: u.imageCommonPanelInline, children: [
  542. /* @__PURE__ */ l.jsx(Rn, {}),
  543. t.t("image-panel.group.unGroup")
  544. ] }) }) })
  545. ] })
  546. ] });
  547. }, se = 20, Bt = 20, Ut = [-3600, 3600], Re = 300, At = (i) => {
  548. var qe;
  549. const t = L(ne), n = L(te), e = L(ue), { drawings: r, transformShow: s } = i, a = r[0];
  550. if (a == null)
  551. return;
  552. const o = a.transform;
  553. if (o == null)
  554. return;
  555. const { unitId: c, subUnitId: g, drawingId: m, drawingType: d } = a, h = e.getRenderById(c), f = h == null ? void 0 : h.scene;
  556. if (f == null)
  557. return;
  558. const _ = (qe = f.getEngine()) == null ? void 0 : qe.activeScene;
  559. if (_ == null)
  560. return;
  561. const w = f.getTransformerByCreate(), {
  562. width: p = 0,
  563. height: S = 0,
  564. left: v = 0,
  565. top: j = 0,
  566. angle: b = 0
  567. } = o, [N, P] = H(p), [I, y] = H(S), [x, D] = H(v), [B, E] = H(j), [re, W] = H(b), [q, be] = H(w.keepRatio), ie = (C, M, A, V) => {
  568. const { width: U, height: J } = _, { ancestorLeft: z, ancestorTop: F } = f;
  569. let K = C, ae = M, de = A, he = V;
  570. return C + z < 0 && (K = -z), M + F < 0 && (ae = -F), de = U - K - z, de < se && (de = se), he = J - ae - F, he < se && (he = se), C + de + z > U && (K = U - A - z), M + he + F > J && (ae = J - V - F), {
  571. limitLeft: K,
  572. limitTop: ae,
  573. limitWidth: de,
  574. limitHeight: he
  575. };
  576. }, k = (C) => {
  577. const { objects: M } = C, A = Ve(M, n);
  578. if (A.length !== 1)
  579. return;
  580. const V = A[0];
  581. if (V == null)
  582. return;
  583. const { transform: U } = V;
  584. if (U == null)
  585. return;
  586. const {
  587. width: J,
  588. height: z,
  589. left: F,
  590. top: K,
  591. angle: ae
  592. } = U;
  593. J != null && P(J), z != null && y(z), F != null && D(F), K != null && E(K), ae != null && W(ae);
  594. };
  595. Se(() => {
  596. const C = [
  597. w.changeStart$.subscribe((M) => {
  598. k(M);
  599. }),
  600. w.changing$.subscribe((M) => {
  601. k(M);
  602. }),
  603. w.changeEnd$.subscribe((M) => {
  604. k(M);
  605. }),
  606. n.focus$.subscribe((M) => {
  607. if (M.length !== 1)
  608. return;
  609. const A = n.getDrawingByParam(M[0]);
  610. if (A == null)
  611. return;
  612. const V = A.transform;
  613. if (V == null)
  614. return;
  615. const {
  616. width: U,
  617. height: J,
  618. left: z,
  619. top: F,
  620. angle: K
  621. } = V;
  622. U != null && P(U), J != null && y(J), z != null && D(z), F != null && E(F), K != null && W(K);
  623. })
  624. ];
  625. return () => {
  626. C.forEach((M) => M.unsubscribe());
  627. };
  628. }, []);
  629. const Ge = Pe((C) => {
  630. if (C == null)
  631. return;
  632. C = Math.max(C, se);
  633. const { limitWidth: M, limitHeight: A } = ie(x, B, C, I);
  634. C = Math.min(C, M);
  635. const V = { unitId: c, subUnitId: g, drawingId: m, drawingType: d, transform: { width: C } };
  636. if (q) {
  637. let U = C / N * I;
  638. if (U = Math.max(U, Bt), U > A)
  639. return;
  640. y(U), V.transform.height = U;
  641. }
  642. P(C), n.featurePluginUpdateNotification([V]), w.refreshControls().changeNotification();
  643. }, Re), xn = Pe((C) => {
  644. if (C == null)
  645. return;
  646. C = Math.max(C, se);
  647. const { limitHeight: M, limitWidth: A } = ie(x, B, N, C);
  648. C = Math.min(C, M);
  649. const V = { unitId: c, subUnitId: g, drawingId: m, drawingType: d, transform: { height: C } };
  650. if (q) {
  651. let U = C / I * N;
  652. if (U = Math.max(U, se), U > A)
  653. return;
  654. P(U), V.transform.width = U;
  655. }
  656. y(C), n.featurePluginUpdateNotification([V]), w.refreshControls().changeNotification();
  657. }, Re), Mn = Pe((C) => {
  658. if (C == null)
  659. return;
  660. const { limitLeft: M } = ie(C, B, N, I);
  661. C = M;
  662. const A = { unitId: c, subUnitId: g, drawingId: m, drawingType: d, transform: { left: C } };
  663. D(C), n.featurePluginUpdateNotification([A]), w.refreshControls().changeNotification();
  664. }, Re), On = Pe((C) => {
  665. if (C == null)
  666. return;
  667. const { limitTop: M } = ie(x, C, N, I);
  668. C = M;
  669. const A = { unitId: c, subUnitId: g, drawingId: m, drawingType: d, transform: { top: C } };
  670. E(C), n.featurePluginUpdateNotification([A]), w.refreshControls().changeNotification();
  671. }, Re), Nn = (C) => {
  672. if (C == null)
  673. return;
  674. const [M, A] = Ut;
  675. C < M && (C = M), C > A && (C = A);
  676. const V = { unitId: c, subUnitId: g, drawingId: m, drawingType: d, transform: { angle: C } };
  677. W(C), n.featurePluginUpdateNotification([V]), w.refreshControls().changeNotification();
  678. }, Dn = (C) => {
  679. be(C), w.keepRatio = C;
  680. }, En = (C) => C ? "block" : "none";
  681. return /* @__PURE__ */ l.jsxs("div", { className: O(u.imageCommonPanelGrid, u.imageCommonPanelBorder), style: { display: En(s) }, children: [
  682. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelTitle), children: /* @__PURE__ */ l.jsx("div", { children: t.t("image-panel.transform.title") }) }) }),
  683. /* @__PURE__ */ l.jsxs("div", { className: u.imageCommonPanelRow, children: [
  684. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan3), children: /* @__PURE__ */ l.jsxs("label", { children: [
  685. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: t.t("image-panel.transform.width") }) }),
  686. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: /* @__PURE__ */ l.jsx(fe, { precision: 1, value: N, onChange: (C) => {
  687. Ge(C);
  688. }, className: u.imageCommonPanelInput }) }) })
  689. ] }) }),
  690. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan3), children: /* @__PURE__ */ l.jsxs("label", { children: [
  691. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: t.t("image-panel.transform.height") }) }),
  692. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: /* @__PURE__ */ l.jsx(fe, { precision: 1, value: I, onChange: (C) => {
  693. xn(C);
  694. }, className: u.imageCommonPanelInput }) }) })
  695. ] }) }),
  696. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan3), children: /* @__PURE__ */ l.jsxs("label", { children: [
  697. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: t.t("image-panel.transform.lock") }) }),
  698. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelRow, u.imageCommonPanelRowVertical), children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: /* @__PURE__ */ l.jsx(Xn, { checked: q, onChange: Dn }) }) })
  699. ] }) })
  700. ] }),
  701. /* @__PURE__ */ l.jsxs("div", { className: u.imageCommonPanelRow, children: [
  702. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan3), children: /* @__PURE__ */ l.jsxs("label", { children: [
  703. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: t.t("image-panel.transform.x") }) }),
  704. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: /* @__PURE__ */ l.jsx(fe, { precision: 1, value: x, onChange: (C) => {
  705. Mn(C);
  706. }, className: u.imageCommonPanelInput }) }) })
  707. ] }) }),
  708. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan3), children: /* @__PURE__ */ l.jsxs("label", { children: [
  709. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: t.t("image-panel.transform.y") }) }),
  710. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: /* @__PURE__ */ l.jsx(fe, { precision: 1, value: B, onChange: (C) => {
  711. On(C);
  712. }, className: u.imageCommonPanelInput }) }) })
  713. ] }) }),
  714. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan3), children: /* @__PURE__ */ l.jsxs("label", { children: [
  715. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: t.t("image-panel.transform.rotate") }) }),
  716. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelColumn, children: /* @__PURE__ */ l.jsx(fe, { precision: 1, value: re, onChange: Nn, className: u.imageCommonPanelInput }) }) })
  717. ] }) })
  718. ] })
  719. ] });
  720. }, Ke = {
  721. id: "sheet.operation.open-image-crop",
  722. type: ve.OPERATION,
  723. handler: (i, t) => !0
  724. }, le = {
  725. id: "sheet.operation.close-image-crop",
  726. type: ve.OPERATION,
  727. handler: (i, t) => !0
  728. };
  729. var T = /* @__PURE__ */ ((i) => (i.FREE = "0", i.R1_1 = "1", i.R16_9 = "2", i.R9_16 = "3", i.R5_4 = "4", i.R4_5 = "5", i.R4_3 = "6", i.R3_4 = "7", i.R3_2 = "8", i.R2_3 = "9", i))(T || {});
  730. const Ee = {
  731. id: "sheet.operation.Auto-image-crop",
  732. type: ve.OPERATION,
  733. handler: (i, t) => !0
  734. }, Ht = (i) => {
  735. const t = L(me), n = L(ne), { drawings: e, cropperShow: r } = i;
  736. if (e[0] == null)
  737. return;
  738. const [a, o] = H(T.FREE), c = un(!1), g = [
  739. {
  740. label: n.t("image-panel.crop.mode"),
  741. value: T.FREE
  742. },
  743. {
  744. label: "1:1",
  745. value: T.R1_1
  746. },
  747. {
  748. label: "16:9",
  749. value: T.R16_9
  750. },
  751. {
  752. label: "9:16",
  753. value: T.R9_16
  754. },
  755. {
  756. label: "5:4",
  757. value: T.R5_4
  758. },
  759. {
  760. label: "4:5",
  761. value: T.R4_5
  762. },
  763. {
  764. label: "4:3",
  765. value: T.R4_3
  766. },
  767. {
  768. label: "3:4",
  769. value: T.R3_4
  770. },
  771. {
  772. label: "3:2",
  773. value: T.R3_2
  774. },
  775. {
  776. label: "2:3",
  777. value: T.R2_3
  778. }
  779. ];
  780. Se(() => {
  781. const f = t.onCommandExecuted((_) => {
  782. if (_.id === le.id) {
  783. const w = _.params;
  784. w != null && w.isAuto || (c.current = !1);
  785. }
  786. });
  787. return () => {
  788. f == null || f.dispose();
  789. };
  790. }, []);
  791. function m(f) {
  792. o(f), c.current && t.executeCommand(Ee.id, {
  793. cropType: f
  794. });
  795. }
  796. const d = (f) => f ? "block" : "none", h = (f) => {
  797. t.executeCommand(Ee.id, {
  798. cropType: f
  799. }), c.current = !0;
  800. };
  801. return /* @__PURE__ */ l.jsxs("div", { className: O(u.imageCommonPanelGrid, u.imageCommonPanelBorder), style: { display: d(r) }, children: [
  802. /* @__PURE__ */ l.jsx("div", { className: u.imageCommonPanelRow, children: /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelTitle), children: /* @__PURE__ */ l.jsx("div", { children: n.t("image-panel.crop.title") }) }) }),
  803. /* @__PURE__ */ l.jsxs("div", { className: O(u.imageCommonPanelRow, u.imageCommonPanelRowVertical), children: [
  804. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan2), children: /* @__PURE__ */ l.jsx(ce, { size: "small", onClick: () => {
  805. h(a);
  806. }, children: /* @__PURE__ */ l.jsxs("span", { className: u.imageCommonPanelInline, children: [
  807. /* @__PURE__ */ l.jsx(vn, {}),
  808. n.t("image-panel.crop.start")
  809. ] }) }) }),
  810. /* @__PURE__ */ l.jsx("div", { className: O(u.imageCommonPanelColumn, u.imageCommonPanelSpan2), children: /* @__PURE__ */ l.jsx(dn, { value: a, options: g, onChange: m }) })
  811. ] })
  812. ] });
  813. }, vr = (i) => {
  814. const t = L(te), n = L(ue), e = L(ne), { drawings: r, hasArrange: s = !0, hasTransform: a = !0, hasAlign: o = !0, hasCropper: c = !0, hasGroup: g = !0 } = i, m = r[0];
  815. if (m == null)
  816. return;
  817. const { unitId: d } = m, h = n.getRenderById(d), f = h == null ? void 0 : h.scene;
  818. if (f == null)
  819. return;
  820. const _ = f.getTransformerByCreate(), [w, p] = H(!0), [S, v] = H(!0), [j, b] = H(!1), [N, P] = H(!0), [I, y] = H(!1);
  821. return Se(() => {
  822. const x = _.clearControl$.subscribe((E) => {
  823. E === !0 && (p(!1), v(!1), b(!1), P(!1), y(!0));
  824. }), D = _.changeStart$.subscribe((E) => {
  825. const { objects: re } = E, W = Ve(re, t);
  826. W.length === 0 ? (p(!1), v(!1), b(!1), P(!1), y(!0)) : W.length === 1 ? (p(!0), v(!0), b(!1), P(!0), y(!1)) : (p(!0), v(!1), b(!0), P(!1), y(!1));
  827. }), B = t.focus$.subscribe((E) => {
  828. E.length === 0 ? (p(!1), v(!1), b(!1), P(!1), y(!0)) : E.length === 1 ? (p(!0), v(!0), b(!1), P(!0), y(!1)) : (p(!0), v(!1), b(!0), P(!1), y(!1));
  829. });
  830. return () => {
  831. D.unsubscribe(), x.unsubscribe(), B.unsubscribe();
  832. };
  833. }, []), /* @__PURE__ */ l.jsxs(l.Fragment, { children: [
  834. /* @__PURE__ */ l.jsx("div", { style: { display: I === !0 ? "block" : "none", height: "100%" }, children: /* @__PURE__ */ l.jsx("div", { style: { display: "flex", justifyContent: "center", alignItems: "center", height: "100%", top: "50%", marginTop: "-100px" }, children: /* @__PURE__ */ l.jsx("span", { children: e.t("image-panel.null") }) }) }),
  835. /* @__PURE__ */ l.jsx(Et, { arrangeShow: s === !0 ? w : !1, drawings: r }),
  836. /* @__PURE__ */ l.jsx(At, { transformShow: a === !0 ? S : !1, drawings: r }),
  837. /* @__PURE__ */ l.jsx(_t, { alignShow: o === !0 ? j : !1, drawings: r }),
  838. /* @__PURE__ */ l.jsx(Ht, { cropperShow: c === !0 ? N : !1, drawings: r }),
  839. /* @__PURE__ */ l.jsx(Tt, { hasGroup: g, drawings: r })
  840. ] });
  841. }, Lt = "univer-image-popup-menu", Vt = "univer-image-popup-menu-item", Gt = "univer-image-popup-menu-item-icon", Wt = "univer-image-popup-menu-item-title", $t = "univer-image-popup-menu-item-hide", kt = "univer-btn-container", zt = "univer-btn-container-expand", Ce = {
  842. imagePopupMenu: Lt,
  843. imagePopupMenuItem: Vt,
  844. imagePopupMenuItemIcon: Gt,
  845. imagePopupMenuItemTitle: Wt,
  846. imagePopupMenuItemHide: $t,
  847. btnContainer: kt,
  848. btnContainerExpand: zt
  849. }, Ft = (i) => {
  850. var _, w;
  851. const t = (w = (_ = i.popup) == null ? void 0 : _.extraProps) == null ? void 0 : w.menuItems;
  852. if (!t)
  853. return null;
  854. const n = L(me), e = L(ne), [r, s] = H(!1), [a, o] = H(!1), c = () => {
  855. o(!0);
  856. }, g = () => {
  857. o(!1);
  858. }, m = (p) => {
  859. s(p);
  860. }, d = (p) => {
  861. n.executeCommand(p.commandId, p.commandParams), s(!1);
  862. }, h = r || a, f = t.filter((p) => !p.disable);
  863. return /* @__PURE__ */ l.jsx(
  864. "div",
  865. {
  866. onMouseEnter: c,
  867. onMouseLeave: g,
  868. children: /* @__PURE__ */ l.jsx(
  869. qn,
  870. {
  871. placement: "bottomLeft",
  872. trigger: ["click"],
  873. overlay: /* @__PURE__ */ l.jsx("ul", { className: Ce.imagePopupMenu, children: f.map((p) => /* @__PURE__ */ l.jsx(
  874. "li",
  875. {
  876. onClick: () => d(p),
  877. className: Ce.imagePopupMenuItem,
  878. children: /* @__PURE__ */ l.jsx("span", { className: Ce.imagePopupMenuItemTitle, children: e.t(p.label) })
  879. },
  880. p.index
  881. )) }),
  882. visible: r,
  883. onVisibleChange: m,
  884. children: /* @__PURE__ */ l.jsxs(
  885. "div",
  886. {
  887. className: O(Ce.btnContainer, {
  888. [Ce.btnContainerExpand]: r
  889. }),
  890. children: [
  891. /* @__PURE__ */ l.jsx(
  892. wn,
  893. {
  894. style: { color: "#35322B" },
  895. extend: { colorChannel1: "rgb(var(--green-700, #409f11))" }
  896. }
  897. ),
  898. h && /* @__PURE__ */ l.jsx(bn, { style: { color: "#CCCCCC", fontSize: "8px", marginLeft: "8px" } })
  899. ]
  900. }
  901. )
  902. }
  903. )
  904. }
  905. );
  906. }, Kt = "COMPONENT_IMAGE_POPUP_MENU", Yt = "drawing-ui.config", an = {}, jn = {
  907. id: "sheet.operation.image-reset-size",
  908. type: ve.OPERATION,
  909. handler: (i, t) => !0
  910. }, Zt = (i) => {
  911. const { src: t } = i;
  912. return t ? /* @__PURE__ */ l.jsx("div", { children: /* @__PURE__ */ l.jsx("img", { src: t, alt: "Univer Image Viewer", style: { width: "100%", height: "100%", position: "relative" } }) }) : null;
  913. };
  914. var Xt = Object.defineProperty, qt = Object.getOwnPropertyDescriptor, Jt = (i, t, n, e) => {
  915. for (var r = e > 1 ? void 0 : e ? qt(t, n) : t, s = i.length - 1, a; s >= 0; s--)
  916. (a = i[s]) && (r = (e ? a(t, n, r) : a(r)) || r);
  917. return e && r && Xt(t, n, r), r;
  918. }, sn = (i, t) => (n, e) => t(n, e, i);
  919. let Te = class extends Le {
  920. constructor(i, t) {
  921. super(), this._componentManager = i, this._commandService = t, this._init();
  922. }
  923. _initCustomComponents() {
  924. const i = this._componentManager;
  925. this.disposeWithMe(i.register(Kt, Ft)), this.disposeWithMe(i.register(fn, Zt));
  926. }
  927. _initCommands() {
  928. [
  929. Ke,
  930. le,
  931. jn,
  932. Xe,
  933. Ee
  934. ].forEach((i) => this.disposeWithMe(this._commandService.registerCommand(i)));
  935. }
  936. _init() {
  937. this._initCommands(), this._initCustomComponents();
  938. }
  939. };
  940. Te = Jt([
  941. sn(0, He(Kn)),
  942. sn(1, me)
  943. ], Te);
  944. var Qt = Object.defineProperty, er = Object.getOwnPropertyDescriptor, nr = (i, t, n, e) => {
  945. for (var r = e > 1 ? void 0 : e ? er(t, n) : t, s = i.length - 1, a; s >= 0; s--)
  946. (a = i[s]) && (r = (e ? a(t, n, r) : a(r)) || r);
  947. return e && r && Qt(t, n, r), r;
  948. }, je = (i, t) => (n, e) => t(n, e, i);
  949. let Be = class extends Le {
  950. constructor(t, n, e, r) {
  951. super();
  952. Q(this, "_sceneListenerOnDrawingMap", /* @__PURE__ */ new WeakSet());
  953. this._currentUniverService = t, this._commandService = n, this._renderManagerService = e, this._drawingManagerService = r, this._initialize();
  954. }
  955. dispose() {
  956. super.dispose();
  957. }
  958. _initialize() {
  959. this._recoveryImages(), this._drawingAddListener(), this._drawingRemoveListener(), this._drawingUpdateListener(), this._commandExecutedListener(), this._drawingArrangeListener(), this._drawingGroupListener(), this._drawingRefreshListener(), this._drawingVisibleListener();
  960. }
  961. _recoveryImages() {
  962. const t = this._drawingManagerService.drawingManagerData, n = hn(this._currentUniverService);
  963. if (n == null)
  964. return;
  965. const { unitId: e, subUnitId: r } = n;
  966. Object.keys(t).forEach((s) => {
  967. Object.keys(t[s]).forEach((a) => {
  968. const o = t[s][a].data;
  969. o == null || s !== e || a !== r || Object.keys(o).forEach((c) => {
  970. o[c] && this._insertDrawing([{ unitId: s, subUnitId: a, drawingId: c }]);
  971. });
  972. });
  973. });
  974. }
  975. _commandExecutedListener() {
  976. this.disposeWithMe(
  977. this._commandService.onCommandExecuted((t) => {
  978. if (t.id === Xe.id) {
  979. const n = t.params;
  980. if (n == null)
  981. return;
  982. this._drawingAlign(n);
  983. }
  984. })
  985. );
  986. }
  987. _drawingGroupListener() {
  988. this.disposeWithMe(
  989. this._drawingManagerService.group$.subscribe((t) => {
  990. this._groupDrawings(t);
  991. })
  992. ), this.disposeWithMe(
  993. this._drawingManagerService.ungroup$.subscribe((t) => {
  994. this._ungroupDrawings(t);
  995. })
  996. );
  997. }
  998. // private _drawingGroup(params: ISetImageGroupOperationParams) {
  999. // const { groupType } = params;
  1000. // const drawings = this._drawingManagerService.getFocusDrawings();
  1001. // if (drawings.length === 0) {
  1002. // return;
  1003. // }
  1004. // switch (groupType) {
  1005. // case GroupType.group:
  1006. // this._groupDrawings(drawings);
  1007. // break;
  1008. // case GroupType.regroup:
  1009. // this._regroupDrawings(drawings);
  1010. // break;
  1011. // case GroupType.ungroup:
  1012. // this._ungroupDrawings(drawings);
  1013. // break;
  1014. // default:
  1015. // break;
  1016. // }
  1017. // }
  1018. _getSceneAndTransformerByDrawingSearch(t) {
  1019. if (t == null)
  1020. return;
  1021. const n = this._renderManagerService.getRenderById(t), e = n == null ? void 0 : n.scene;
  1022. if (e == null)
  1023. return null;
  1024. const r = e.getTransformerByCreate();
  1025. return { scene: e, transformer: r };
  1026. }
  1027. _groupDrawings(t) {
  1028. t.forEach((n) => {
  1029. this._groupDrawing(n);
  1030. });
  1031. }
  1032. _groupDrawing(t) {
  1033. const { parent: n, children: e } = t, { unitId: r, subUnitId: s, drawingId: a } = n, o = this._getSceneAndTransformerByDrawingSearch(n.unitId);
  1034. if (o == null)
  1035. return;
  1036. const { scene: c, transformer: g } = o;
  1037. this._commandService.syncExecuteCommand(le.id);
  1038. const m = [];
  1039. if (e.forEach((f) => {
  1040. const _ = G(f), w = c.getObjectIncludeInGroup(_);
  1041. if (w == null || m.includes(w))
  1042. return;
  1043. m.push(w);
  1044. const { transform: p } = f;
  1045. p != null && (w.classType === Je.GROUP ? w.transformByState({ left: p.left, top: p.top }) : w.transformByState(p));
  1046. }), m.length === 0)
  1047. return;
  1048. const d = G({ unitId: r, subUnitId: s, drawingId: a }), h = new _e(d);
  1049. c.addObject(h, Ze).attachTransformerTo(h), h.addObjects(...m), n.transform && h.transformByState({ left: n.transform.left, top: n.transform.top }), g.clearSelectedObjects(), g.setSelectedControl(h);
  1050. }
  1051. // private _regroupDrawings(drawings: IDrawingSearch[]) {
  1052. // const renderObject = this._getSceneAndTransformerByDrawingSearch(drawings[0].unitId);
  1053. // if (renderObject == null) {
  1054. // return;
  1055. // }
  1056. // const { scene, transformer } = renderObject;
  1057. // const objects: BaseObject[] = [];
  1058. // let firstGroup: Nullable<Group> = null;
  1059. // drawings.forEach((drawing) => {
  1060. // const imageShapeKey = getDrawingShapeKeyByDrawingSearch(drawing);
  1061. // const o = scene.getObject(imageShapeKey);
  1062. // if (o == null) {
  1063. // return true;
  1064. // }
  1065. // const group = o.ancestorGroup as Nullable<Group>;
  1066. // if (group != null && firstGroup == null) {
  1067. // firstGroup = group;
  1068. // } else if (group != null && !objects.includes(group)) {
  1069. // objects.push(group);
  1070. // } else if (!objects.includes(o)) {
  1071. // objects.push(o);
  1072. // }
  1073. // });
  1074. // if (firstGroup == null) {
  1075. // return;
  1076. // }
  1077. // if (objects.length === 0) {
  1078. // return;
  1079. // }
  1080. // (firstGroup as Group).addObjects(...objects);
  1081. // (firstGroup as Group).reCalculateObjects();
  1082. // transformer.clearSelectedObjects();
  1083. // transformer.setSelectedControl(firstGroup);
  1084. // }
  1085. _ungroupDrawings(t) {
  1086. t.forEach((n) => {
  1087. this._ungroupDrawing(n);
  1088. });
  1089. }
  1090. _ungroupDrawing(t) {
  1091. const { parent: n, children: e } = t, r = this._getSceneAndTransformerByDrawingSearch(n.unitId);
  1092. if (r == null)
  1093. return;
  1094. const { scene: s, transformer: a } = r;
  1095. e.forEach((d) => {
  1096. const h = G(d), f = s.getObjectIncludeInGroup(h);
  1097. if (f == null)
  1098. return !0;
  1099. if (f == null)
  1100. return;
  1101. const { transform: _ } = d;
  1102. _ != null && (f.classType === Je.GROUP ? f.transformByState({ left: _.left, top: _.top }) : f.transformByState(_));
  1103. });
  1104. const o = G(n), c = s.getObject(o), { width: g, height: m } = c;
  1105. c.getObjects().forEach((d) => {
  1106. c.removeSelfObjectAndTransform(d.oKey, g, m);
  1107. }), c.dispose(), a.clearSelectedObjects();
  1108. }
  1109. _drawingAlign(t) {
  1110. const { alignType: n } = t, e = this._drawingManagerService.getFocusDrawings();
  1111. if (n === R.default)
  1112. return;
  1113. const r = [];
  1114. let s = Number.POSITIVE_INFINITY, a = Number.POSITIVE_INFINITY, o = Number.NEGATIVE_INFINITY, c = Number.NEGATIVE_INFINITY, g = 0;
  1115. e.forEach((m) => {
  1116. const { unitId: d, subUnitId: h, drawingId: f, drawingType: _ } = m, w = this._drawingManagerService.getDrawingByParam({ unitId: d, subUnitId: h, drawingId: f });
  1117. if (w == null || w.transform == null)
  1118. return;
  1119. r.push({
  1120. unitId: d,
  1121. subUnitId: h,
  1122. drawingId: f,
  1123. drawingType: _,
  1124. transform: w.transform
  1125. });
  1126. const { left: p = 0, top: S = 0, width: v = 0, height: j = 0 } = w.transform;
  1127. s = Math.min(s, p), a = Math.min(a, S), o = Math.max(o, p + v), c = Math.max(c, S + j), g++;
  1128. }), g !== 0 && (this._sortDrawingTransform(r, n), this._applyAlignType(r, n, s, a, o, c, g));
  1129. }
  1130. _applyAlignType(t, n, e, r, s, a, o) {
  1131. const c = Math.round((s - e) / o * 10) / 10, g = Math.round((a - r) / o * 10) / 10, m = [], d = this._getSceneAndTransformerByDrawingSearch(t[0].unitId);
  1132. if (d == null)
  1133. return;
  1134. const { scene: h, transformer: f } = d;
  1135. t.forEach((_, w) => {
  1136. const { unitId: p, subUnitId: S, drawingId: v, transform: j, drawingType: b } = _, { left: N = 0, top: P = 0, width: I = 0, height: y = 0 } = j;
  1137. let x = N, D = P;
  1138. switch (n) {
  1139. case R.left:
  1140. x = e;
  1141. break;
  1142. case R.center:
  1143. x = e + (s - e) / 2 - I / 2;
  1144. break;
  1145. case R.right:
  1146. x = s - I;
  1147. break;
  1148. case R.top:
  1149. D = r;
  1150. break;
  1151. case R.middle:
  1152. D = r + (a - r) / 2 - y / 2;
  1153. break;
  1154. case R.bottom:
  1155. D = a - y;
  1156. break;
  1157. case R.horizon:
  1158. x = e + c * w;
  1159. break;
  1160. case R.vertical:
  1161. D = r + g * w;
  1162. break;
  1163. }
  1164. (x !== N || D !== P) && m.push({
  1165. unitId: p,
  1166. subUnitId: S,
  1167. drawingId: v,
  1168. drawingType: b,
  1169. transform: {
  1170. left: x,
  1171. top: D
  1172. }
  1173. });
  1174. }), this._drawingManagerService.featurePluginUpdateNotification(m), f.refreshControls().changeNotification();
  1175. }
  1176. _sortDrawingTransform(t, n) {
  1177. t.sort((e, r) => {
  1178. const s = e.transform, a = r.transform, {
  1179. left: o = 0,
  1180. top: c = 0,
  1181. width: g = 0,
  1182. height: m = 0
  1183. } = s, {
  1184. left: d = 0,
  1185. top: h = 0,
  1186. width: f = 0,
  1187. height: _ = 0
  1188. } = a;
  1189. switch (n) {
  1190. case R.left:
  1191. return o - d;
  1192. case R.center:
  1193. return o + g / 2 - (d + f / 2);
  1194. case R.right:
  1195. return o + g - (d + f);
  1196. case R.top:
  1197. return c - h;
  1198. case R.middle:
  1199. return c + m / 2 - (h + _ / 2);
  1200. case R.bottom:
  1201. return c + m - (h + _);
  1202. case R.horizon:
  1203. return o + g / 2 - (d + f / 2);
  1204. case R.vertical:
  1205. return c + m / 2 - (h + _ / 2);
  1206. default:
  1207. return 0;
  1208. }
  1209. });
  1210. }
  1211. _drawingArrangeListener() {
  1212. this.disposeWithMe(
  1213. this._drawingManagerService.order$.subscribe((t) => {
  1214. this._drawingArrange(t);
  1215. })
  1216. );
  1217. }
  1218. _drawingArrange(t) {
  1219. const { unitId: n, subUnitId: e, drawingIds: r } = t, s = this._getSceneAndTransformerByDrawingSearch(n);
  1220. if (s == null)
  1221. return;
  1222. const { scene: a } = s;
  1223. r.forEach((o) => {
  1224. const c = G({ unitId: n, subUnitId: e, drawingId: o }), g = a.fuzzyMathObjects(c, !0);
  1225. if (g == null || g.length === 0)
  1226. return;
  1227. const m = this._drawingManagerService.getDrawingOrder(n, e).indexOf(o);
  1228. for (const d of g)
  1229. d.setProps({ zIndex: m }), d.makeDirty();
  1230. });
  1231. }
  1232. _drawingAddListener() {
  1233. this.disposeWithMe(
  1234. this._drawingManagerService.add$.subscribe((t) => {
  1235. this._insertDrawing(t);
  1236. })
  1237. );
  1238. }
  1239. _insertDrawing(t) {
  1240. const n = [];
  1241. t.forEach((e) => {
  1242. const { unitId: r } = e;
  1243. if (this._drawingManagerService.getDrawingByParam(e) == null)
  1244. return;
  1245. const a = this._getSceneAndTransformerByDrawingSearch(r);
  1246. if (a == null)
  1247. return;
  1248. const { scene: o } = a;
  1249. n.includes(o) || n.push(o);
  1250. }), n.forEach((e) => {
  1251. this._sceneListenerOnDrawingMap.has(e) || (this._addListenerOnDrawing(e), this._sceneListenerOnDrawingMap.add(e));
  1252. });
  1253. }
  1254. _drawingRemoveListener() {
  1255. this.disposeWithMe(
  1256. this._drawingManagerService.remove$.subscribe((t) => {
  1257. t.forEach((n) => {
  1258. var m;
  1259. const { unitId: e, subUnitId: r, drawingId: s } = n, a = this._getSceneAndTransformerByDrawingSearch(e);
  1260. if (a == null)
  1261. return;
  1262. const { scene: o } = a, c = G({ unitId: e, subUnitId: r, drawingId: s }), g = o.fuzzyMathObjects(c, !0);
  1263. if (g.length > 0) {
  1264. for (const d of g)
  1265. d.dispose();
  1266. (m = o.getTransformer()) == null || m.clearSelectedObjects();
  1267. }
  1268. });
  1269. })
  1270. );
  1271. }
  1272. _drawingUpdateListener() {
  1273. this.disposeWithMe(
  1274. this._drawingManagerService.update$.subscribe((t) => {
  1275. t.forEach((n) => {
  1276. var I;
  1277. const { unitId: e, subUnitId: r, drawingId: s } = n, a = this._drawingManagerService.getDrawingByParam(n);
  1278. if (a == null)
  1279. return;
  1280. const { transform: o, drawingType: c } = a, g = this._getSceneAndTransformerByDrawingSearch(e);
  1281. if (g == null)
  1282. return;
  1283. const { scene: m, transformer: d } = g;
  1284. if (o == null)
  1285. return !0;
  1286. const { left: h = 0, top: f = 0, width: _ = 0, height: w = 0, angle: p = 0, flipX: S = !1, flipY: v = !1, skewX: j = 0, skewY: b = 0 } = o, N = G({ unitId: e, subUnitId: r, drawingId: s }), P = m.getObject(N);
  1287. if (P == null)
  1288. return !0;
  1289. P.transformByState({ left: h, top: f, width: _, height: w, angle: p, flipX: S, flipY: v, skewX: j, skewY: b }), (I = m.getTransformer()) == null || I.debounceRefreshControls();
  1290. });
  1291. })
  1292. );
  1293. }
  1294. _drawingRefreshListener() {
  1295. this.disposeWithMe(
  1296. this._drawingManagerService.refreshTransform$.subscribe((t) => {
  1297. t.forEach((n) => {
  1298. const { unitId: e, subUnitId: r, drawingId: s } = n, a = this._getSceneAndTransformerByDrawingSearch(e);
  1299. if (a == null)
  1300. return;
  1301. const o = this._drawingManagerService.getDrawingByParam(n);
  1302. if (o == null)
  1303. return;
  1304. const { transform: c } = o, { scene: g } = a, m = G({ unitId: e, subUnitId: r, drawingId: s }), d = g.getObject(m);
  1305. if (d == null || c == null)
  1306. return !0;
  1307. const {
  1308. left: h = 0,
  1309. top: f = 0,
  1310. width: _ = 0,
  1311. height: w = 0,
  1312. angle: p = 0,
  1313. flipX: S = !1,
  1314. flipY: v = !1,
  1315. skewX: j = 0,
  1316. skewY: b = 0
  1317. } = c;
  1318. d.transformByState({ left: h, top: f, width: _, height: w, angle: p, flipX: S, flipY: v, skewX: j, skewY: b });
  1319. });
  1320. })
  1321. );
  1322. }
  1323. _drawingVisibleListener() {
  1324. this.disposeWithMe(
  1325. this._drawingManagerService.visible$.subscribe((t) => {
  1326. t.forEach((n) => {
  1327. const { unitId: e, subUnitId: r, drawingId: s, visible: a } = n, o = this._getSceneAndTransformerByDrawingSearch(e);
  1328. if (o == null)
  1329. return;
  1330. const { scene: c } = o, g = G({ unitId: e, subUnitId: r, drawingId: s }), m = c.getObject(g);
  1331. if (m == null)
  1332. return !0;
  1333. a ? m.show() : m.hide();
  1334. });
  1335. })
  1336. );
  1337. }
  1338. _filterUpdateParams(t, n) {
  1339. return t.filter((e, r) => {
  1340. if (e == null)
  1341. return !1;
  1342. const { transform: s } = e;
  1343. return ln(s, n == null ? void 0 : n[r]);
  1344. });
  1345. }
  1346. // group?.getObjects().forEach((o) => {
  1347. // const drawing = this._drawingManagerService.getDrawingOKey(o.oKey);
  1348. // if (drawing != null) {
  1349. // const { unitId, subUnitId, drawingId } = drawing;
  1350. // drawings.push({ unitId, subUnitId, drawingId });
  1351. // }
  1352. // });
  1353. _addListenerOnDrawing(t) {
  1354. const n = t.getTransformerByCreate();
  1355. let e = null;
  1356. this.disposeWithMe(
  1357. we(
  1358. n.changeStart$.subscribe((r) => {
  1359. const { objects: s } = r, a = Array.from(s.values()), o = [];
  1360. e = a.map((c) => {
  1361. const { left: g, top: m, height: d, width: h, angle: f, oKey: _, isInGroup: w } = c, p = this._drawingManagerService.getDrawingOKey(_);
  1362. if (w || c instanceof _e) {
  1363. let S = c.ancestorGroup;
  1364. if (S == null && c instanceof _e && (S = c), S == null)
  1365. return null;
  1366. const v = this._drawingManagerService.getDrawingOKey(S.oKey);
  1367. if (v) {
  1368. const { unitId: j, subUnitId: b, drawingId: N } = v;
  1369. o.push({ unitId: j, subUnitId: b, drawingId: N });
  1370. const { left: P, top: I, height: y, width: x, angle: D } = S;
  1371. return { left: P, top: I, height: y, width: x, angle: D };
  1372. }
  1373. } else if (p != null) {
  1374. const { unitId: S, subUnitId: v, drawingId: j } = p;
  1375. return o.push({ unitId: S, subUnitId: v, drawingId: j }), { left: g, top: m, height: d, width: h, angle: f };
  1376. }
  1377. return null;
  1378. }).filter((c) => c != null), o.length > 0 ? this._commandService.syncExecuteCommand(Oe.id, o) : this._commandService.syncExecuteCommand(Oe.id, []);
  1379. })
  1380. )
  1381. ), this.disposeWithMe(
  1382. we(
  1383. n.changeEnd$.subscribe((r) => {
  1384. const { objects: s } = r, a = this._filterUpdateParams(Ve(s, this._drawingManagerService), e);
  1385. a.length > 0 && this._drawingManagerService.featurePluginUpdateNotification(a);
  1386. })
  1387. )
  1388. );
  1389. }
  1390. };
  1391. Be = nr([
  1392. je(0, Ye),
  1393. je(1, me),
  1394. je(2, ue),
  1395. je(3, te)
  1396. ], Be);
  1397. class xe extends kn {
  1398. constructor(n, e) {
  1399. e == null && (e = {}), e.transformerConfig = {
  1400. keepRatio: !1,
  1401. isCropper: !0,
  1402. anchorFill: "rgb(0, 0, 0)",
  1403. anchorStroke: "rgb(255, 255, 255)",
  1404. anchorSize: 24
  1405. };
  1406. super(n, e);
  1407. Q(this, "_srcRect");
  1408. Q(this, "_prstGeom");
  1409. Q(this, "_applyTransform");
  1410. Q(this, "_dragPadding", 8);
  1411. Q(this, "_cacheCanvas");
  1412. e != null && e.srcRect && (this._srcRect = e.srcRect), e != null && e.prstGeom && (this._prstGeom = e.prstGeom), e != null && e.applyTransform && (this._applyTransform = e.applyTransform), e != null && e.dragPadding && (this._dragPadding = e.dragPadding), this._applyProps();
  1413. }
  1414. refreshSrcRect(n, e) {
  1415. this._srcRect = n, this._applyTransform = e, this._applyProps();
  1416. }
  1417. get srcRect() {
  1418. return this._srcRect;
  1419. }
  1420. dispose() {
  1421. var n;
  1422. super.dispose(), (n = this._cacheCanvas) == null || n.dispose(), this._srcRect = null;
  1423. }
  1424. isHit(n) {
  1425. const e = this.getInverseCoord(n);
  1426. return e.x >= -this.strokeWidth / 2 && e.x <= this.width + this.strokeWidth / 2 && e.y >= -this.strokeWidth / 2 && e.y <= this.height + this.strokeWidth / 2 && !this._inSurround(e);
  1427. }
  1428. _inSurround(n) {
  1429. const e = this._dragPadding;
  1430. return n.x >= e - this.strokeWidth / 2 && n.x <= this.width + this.strokeWidth / 2 - e && n.y >= e - this.strokeWidth / 2 && n.y <= this.height + this.strokeWidth / 2 - e;
  1431. }
  1432. render(n, e) {
  1433. return this.visible ? (n.save(), this._draw(n), n.restore(), this.makeDirty(!1), this) : (this.makeDirty(!1), this);
  1434. }
  1435. _draw(n) {
  1436. var c, g;
  1437. const r = this.getScene().getEngine(), { width: s, height: a } = r;
  1438. this._initialCacheCanvas(), (c = this._cacheCanvas) == null || c.clear();
  1439. const o = (g = this._cacheCanvas) == null ? void 0 : g.getContext();
  1440. o != null && (o.save(), zn.drawWith(o, {
  1441. left: 0,
  1442. top: 0,
  1443. width: s,
  1444. height: a,
  1445. fill: "rgba(0, 0, 0, 0.5)"
  1446. }), o.setTransform(n.getTransform()), this._clipForApplyObject(o), this._applyCache(n), o.restore());
  1447. }
  1448. _clipForApplyObject(n) {
  1449. let e = 0;
  1450. if (this._prstGeom != null && (e = 1), n.globalCompositeOperation = "destination-out", n.beginPath(), e === 0) {
  1451. const r = this.transform.getMatrix();
  1452. n.transform(r[0], r[1], r[2], r[3], r[4], r[5]), n.rect(0, 0, this.width, this.height), n.fill();
  1453. }
  1454. }
  1455. _applyProps() {
  1456. if (this._applyTransform == null)
  1457. return;
  1458. let n = 0, e = 0, r = 0, s = 0;
  1459. const { left: a = 0, top: o = 0, width: c = 0, height: g = 0, angle: m } = this._applyTransform;
  1460. if (this._srcRect != null) {
  1461. const { left: f = 0, top: _ = 0, right: w = 0, bottom: p = 0 } = this._srcRect;
  1462. n = f, e = _, r = w, s = p;
  1463. }
  1464. const d = a + n, h = o + e;
  1465. this.transformByState({
  1466. left: d,
  1467. top: h,
  1468. width: a + c - r - d,
  1469. height: o + g - s - h,
  1470. angle: m
  1471. });
  1472. }
  1473. _applyCache(n) {
  1474. if (!n || this._cacheCanvas == null)
  1475. return;
  1476. const e = this._cacheCanvas.getContext();
  1477. e.save(), n.save(), n.setTransform(1, 0, 0, 1, 0, 0), e.setTransform(1, 0, 0, 1, 0, 0), n.drawImage(this._cacheCanvas.getCanvasEle(), 0, 0), n.restore(), e.restore();
  1478. }
  1479. _initialCacheCanvas() {
  1480. if (this._cacheCanvas != null)
  1481. return;
  1482. const n = this.getScene();
  1483. if (n == null) return;
  1484. this._cacheCanvas = new Fn();
  1485. const e = n.getEngine();
  1486. this._cacheCanvas.setSize(e.width, e.height), e.onTransformChange$.subscribeEvent(() => {
  1487. var r;
  1488. (r = this._cacheCanvas) == null || r.setSize(e.width, e.height), this.makeDirty(!0);
  1489. });
  1490. }
  1491. }
  1492. var tr = Object.defineProperty, rr = Object.getOwnPropertyDescriptor, ir = (i, t, n, e) => {
  1493. for (var r = e > 1 ? void 0 : e ? rr(t, n) : t, s = i.length - 1, a; s >= 0; s--)
  1494. (a = i[s]) && (r = (e ? a(t, n, r) : a(r)) || r);
  1495. return e && r && tr(t, n, r), r;
  1496. }, ge = (i, t) => (n, e) => t(n, e, i);
  1497. let Ue = class extends Le {
  1498. constructor(t, n, e, r, s, a) {
  1499. super();
  1500. Q(this, "_sceneListenerOnImageMap", /* @__PURE__ */ new WeakSet());
  1501. this._commandService = t, this._drawingManagerService = n, this._renderManagerService = e, this._univerInstanceService = r, this._messageService = s, this._localeService = a, this._init();
  1502. }
  1503. _init() {
  1504. this._initOpenCrop(), this._initCloseCrop(), this._initAutoCrop();
  1505. }
  1506. _initAutoCrop() {
  1507. this.disposeWithMe(
  1508. this._commandService.onCommandExecuted((t) => {
  1509. if (t.id !== Ee.id)
  1510. return;
  1511. const n = t.params;
  1512. if (n == null)
  1513. return;
  1514. const { cropType: e } = n, r = this._drawingManagerService.getFocusDrawings();
  1515. if (r.length !== 1)
  1516. return;
  1517. const s = r[0], { unitId: a, subUnitId: o, drawingId: c } = s, g = this._renderManagerService.getRenderById(a), m = g == null ? void 0 : g.scene;
  1518. if (m == null)
  1519. return !0;
  1520. this._searchCropObject(m) != null && this._commandService.syncExecuteCommand(le.id, { isAuto: !0 });
  1521. const h = G({ unitId: a, subUnitId: o, drawingId: c }), f = m.getObject(h);
  1522. if (!(f instanceof Fe)) {
  1523. this._messageService.show({
  1524. type: en.Error,
  1525. content: this._localeService.t("image-cropper.error")
  1526. });
  1527. return;
  1528. }
  1529. f != null && (this._updateCropperObject(e, f), this._commandService.executeCommand(Ke.id, { unitId: a, subUnitId: o, drawingId: c }));
  1530. })
  1531. );
  1532. }
  1533. _calculateSrcRectByRatio(t, n, e, r, s, a) {
  1534. const o = e / r, c = s / a;
  1535. let g = e, m = r;
  1536. o > c ? g = r * c : m = e / c;
  1537. const d = (e - g) / 2, h = (r - m) / 2;
  1538. return {
  1539. left: ye(d, 1),
  1540. top: ye(h, 1),
  1541. right: ye(e - (d + g), 1),
  1542. bottom: ye(r - (h + m), 1)
  1543. };
  1544. }
  1545. _updateCropperObject(t, n) {
  1546. const { left: e, top: r, width: s, height: a } = n.calculateTransformWithSrcRect();
  1547. let o;
  1548. switch (t) {
  1549. case T.R1_1:
  1550. o = this._calculateSrcRectByRatio(e, r, s, a, 1, 1);
  1551. break;
  1552. case T.R16_9:
  1553. o = this._calculateSrcRectByRatio(e, r, s, a, 16, 9);
  1554. break;
  1555. case T.R9_16:
  1556. o = this._calculateSrcRectByRatio(e, r, s, a, 9, 16);
  1557. break;
  1558. case T.R5_4:
  1559. o = this._calculateSrcRectByRatio(e, r, s, a, 5, 4);
  1560. break;
  1561. case T.R4_5:
  1562. o = this._calculateSrcRectByRatio(e, r, s, a, 4, 5);
  1563. break;
  1564. case T.R4_3:
  1565. o = this._calculateSrcRectByRatio(e, r, s, a, 4, 3);
  1566. break;
  1567. case T.R3_4:
  1568. o = this._calculateSrcRectByRatio(e, r, s, a, 3, 4);
  1569. break;
  1570. case T.R3_2:
  1571. o = this._calculateSrcRectByRatio(e, r, s, a, 3, 2);
  1572. break;
  1573. case T.R2_3:
  1574. o = this._calculateSrcRectByRatio(e, r, s, a, 2, 3);
  1575. break;
  1576. case T.FREE:
  1577. }
  1578. if (o == null)
  1579. return;
  1580. n.setSrcRect(o);
  1581. const { left: c = 0, top: g = 0, bottom: m = 0, right: d = 0 } = o;
  1582. n.transformByStateCloseCropper({
  1583. left: e + c,
  1584. top: r + g,
  1585. width: s - d - c,
  1586. height: a - m - g
  1587. });
  1588. }
  1589. _initOpenCrop() {
  1590. this.disposeWithMe(
  1591. this._commandService.onCommandExecuted((t) => {
  1592. if (t.id !== Ke.id)
  1593. return;
  1594. const n = t.params;
  1595. if (n == null)
  1596. return;
  1597. const { unitId: e, subUnitId: r, drawingId: s } = n, a = this._renderManagerService.getRenderById(e), o = a == null ? void 0 : a.scene;
  1598. if (o == null)
  1599. return !0;
  1600. if (this._sceneListenerOnImageMap.has(o) || (this._addListenerOnImage(o), this._sceneListenerOnImageMap.add(o)), this._drawingManagerService.getDrawingByParam({ unitId: e, subUnitId: r, drawingId: s }) == null)
  1601. return;
  1602. const g = G({ unitId: e, subUnitId: r, drawingId: s }), m = o.getObject(g);
  1603. if (m == null)
  1604. return;
  1605. if (!(m instanceof Fe)) {
  1606. this._messageService.show({
  1607. type: en.Error,
  1608. content: this._localeService.t("image-cropper.error")
  1609. });
  1610. return;
  1611. }
  1612. const d = o.getTransformer();
  1613. d == null || d.clearControls();
  1614. const h = new xe(`${g}-crop`, {
  1615. srcRect: m.srcRect,
  1616. prstGeom: m.prstGeom,
  1617. applyTransform: m.calculateTransformWithSrcRect()
  1618. });
  1619. o.addObject(h, m.getLayerIndex() + 1).attachTransformerTo(h), d == null || d.createControlForCopper(h), this._addHoverForImageCopper(h), m.openRenderByCropper(), d == null || d.refreshControls(), h.makeDirty(!0), this._commandService.syncExecuteCommand(Oe.id, [{ unitId: e, subUnitId: r, drawingId: s }]);
  1620. })
  1621. );
  1622. }
  1623. _searchCropObject(t) {
  1624. const n = t.getAllObjectsByOrder();
  1625. for (const e of n)
  1626. if (e instanceof xe)
  1627. return e;
  1628. }
  1629. _initCloseCrop() {
  1630. this.disposeWithMe(
  1631. this._commandService.onCommandExecuted((n) => {
  1632. if (n.id !== le.id)
  1633. return;
  1634. const e = this._univerInstanceService.getFocusedUnit();
  1635. if (e == null)
  1636. return;
  1637. const r = e.getUnitId(), s = this._renderManagerService.getRenderById(r), a = s == null ? void 0 : s.scene;
  1638. if (a == null)
  1639. return !0;
  1640. const o = this._searchCropObject(a);
  1641. if (o == null)
  1642. return;
  1643. const c = this._getApplyObjectByCropObject(o);
  1644. if (c == null)
  1645. return;
  1646. const g = a.getTransformerByCreate();
  1647. g.detachFrom(o), g.clearCopperControl();
  1648. const m = this._getSrcRectByTransformState(c, o), d = this._drawingManagerService.getDrawingOKey(c.oKey);
  1649. if (d != null) {
  1650. const { left: h, top: f, height: _, width: w } = o;
  1651. this._drawingManagerService.featurePluginUpdateNotification([{
  1652. ...d,
  1653. transform: {
  1654. ...d.transform,
  1655. left: h,
  1656. top: f,
  1657. height: _,
  1658. width: w
  1659. },
  1660. srcRect: m.srcRectAngle
  1661. }]);
  1662. }
  1663. c.setSrcRect({ ...m.srcRectAngle }), c.closeRenderByCropper(), c.makeDirty(!0), o == null || o.dispose();
  1664. })
  1665. );
  1666. const t = this._univerInstanceService.getCurrentTypeOfUnit$(Me.UNIVER_SHEET).pipe(
  1667. Jn((n) => !!n),
  1668. Qn((n) => n.activeSheet$)
  1669. );
  1670. this.disposeWithMe(t.subscribe(() => {
  1671. this._commandService.syncExecuteCommand(le.id);
  1672. }));
  1673. }
  1674. _getApplyObjectByCropObject(t) {
  1675. const n = t.oKey, e = n.slice(0, n.length - 5), r = t.getScene();
  1676. if (!r) return null;
  1677. const s = r.getObject(e);
  1678. return s == null ? null : s;
  1679. }
  1680. _addListenerOnImage(t) {
  1681. const n = t.getTransformerByCreate();
  1682. let e = null;
  1683. this.disposeWithMe(
  1684. n.changeStart$.subscribe((r) => {
  1685. const { objects: s } = r, a = s.values().next().value;
  1686. if (a == null || !(a instanceof xe))
  1687. return;
  1688. const { left: o, top: c, height: g, width: m, angle: d } = a;
  1689. e = { left: o, top: c, height: g, width: m, angle: d }, n.clearCopperControl();
  1690. })
  1691. ), this.disposeWithMe(
  1692. n.changeEnd$.subscribe((r) => {
  1693. const { objects: s } = r, a = s.values().next().value;
  1694. if (a == null || !(a instanceof xe))
  1695. return;
  1696. const { left: o, top: c, height: g, width: m, angle: d } = a;
  1697. if (!ln({ left: o, top: c, height: g, width: m, angle: d }, e))
  1698. return;
  1699. const h = this._getApplyObjectByCropObject(a);
  1700. if (h == null)
  1701. return;
  1702. const f = this._getSrcRectByTransformState(h, a);
  1703. a.refreshSrcRect(f.srcRect, h.getState()), n.createControlForCopper(a);
  1704. })
  1705. ), this._endCropListener(t);
  1706. }
  1707. _addHoverForImageCopper(t) {
  1708. this.disposeWithMe(
  1709. t.onPointerEnter$.subscribeEvent(() => {
  1710. t.cursor = Ne.MOVE;
  1711. })
  1712. ), this.disposeWithMe(
  1713. t.onPointerLeave$.subscribeEvent(() => {
  1714. t.cursor = Ne.DEFAULT;
  1715. })
  1716. );
  1717. }
  1718. _endCropListener(t) {
  1719. const n = t.getTransformerByCreate();
  1720. this.disposeWithMe(
  1721. n.clearControl$.subscribe((e) => {
  1722. e === !0 && this._commandService.syncExecuteCommand(le.id);
  1723. })
  1724. );
  1725. }
  1726. _getSrcRectByTransformState(t, n) {
  1727. const { left: e, top: r, height: s, width: a, strokeWidth: o, angle: c } = n, { left: g, top: m, width: d, height: h, angle: f, strokeWidth: _ } = t, w = e - g, p = r - m, S = {
  1728. left: w,
  1729. top: p,
  1730. right: d - w - a,
  1731. bottom: h - p - s
  1732. }, v = { ...S };
  1733. if (f !== 0) {
  1734. const j = e + a / 2, b = r + s / 2, N = new We(j, b), P = d / 2 + g, I = h / 2 + m, y = new We(P, I), x = new We(g, m);
  1735. x.rotateByPoint(Qe(f), y);
  1736. const D = x.clone();
  1737. D.rotateByPoint(Qe(-f), N);
  1738. const B = e - D.x, E = r - D.y;
  1739. v.left = B, v.top = E, v.right = d - B - a, v.bottom = h - E - s;
  1740. }
  1741. return {
  1742. srcRect: S,
  1743. srcRectAngle: v
  1744. };
  1745. }
  1746. };
  1747. Ue = ir([
  1748. ge(0, me),
  1749. ge(1, te),
  1750. ge(2, ue),
  1751. ge(3, Ye),
  1752. ge(4, Yn),
  1753. ge(5, He(ne))
  1754. ], Ue);
  1755. var ar = Object.defineProperty, sr = Object.getOwnPropertyDescriptor, or = (i, t, n, e) => {
  1756. for (var r = e > 1 ? void 0 : e ? sr(t, n) : t, s = i.length - 1, a; s >= 0; s--)
  1757. (a = i[s]) && (r = (e ? a(t, n, r) : a(r)) || r);
  1758. return e && r && ar(t, n, r), r;
  1759. }, oe = (i, t) => (n, e) => t(n, e, i);
  1760. let Ae = class extends Le {
  1761. constructor(i, t, n, e, r, s, a) {
  1762. super(), this._commandService = i, this._renderManagerService = t, this._drawingManagerService = n, this._dialogService = e, this._imageIoService = r, this._currentUniverService = s, this._drawingRenderService = a, this._initialize();
  1763. }
  1764. dispose() {
  1765. super.dispose();
  1766. }
  1767. _initialize() {
  1768. this._drawingAddListener(), this._commandExecutedListener(), this._imageUpdateListener();
  1769. }
  1770. _commandExecutedListener() {
  1771. this.disposeWithMe(
  1772. this._commandService.onCommandExecuted((i) => {
  1773. if (i.id === jn.id) {
  1774. const t = i.params;
  1775. if (t == null)
  1776. return;
  1777. this._resetImageSize(t);
  1778. }
  1779. })
  1780. );
  1781. }
  1782. _getSceneAndTransformerByDrawingSearch(i) {
  1783. if (i == null)
  1784. return;
  1785. const t = this._renderManagerService.getRenderById(i), n = t == null ? void 0 : t.scene;
  1786. if (n == null)
  1787. return null;
  1788. const e = n.getTransformerByCreate();
  1789. return { scene: n, transformer: e };
  1790. }
  1791. _resetImageSize(i) {
  1792. const t = [], n = [];
  1793. i.forEach((e) => {
  1794. const { unitId: r, subUnitId: s, drawingId: a } = e, o = this._getSceneAndTransformerByDrawingSearch(r);
  1795. if (o == null)
  1796. return;
  1797. const { scene: c } = o, g = G({ unitId: r, subUnitId: s, drawingId: a }), m = c.getObject(g);
  1798. if (m == null)
  1799. return !0;
  1800. const d = this._drawingManagerService.getDrawingByParam(e);
  1801. if (d == null)
  1802. return !0;
  1803. if (d.drawingType !== ee.DRAWING_IMAGE)
  1804. return;
  1805. m.resetSize();
  1806. const { width: h, height: f } = m.getNativeSize();
  1807. n.includes(c) === !1 && n.push(c), t.push({
  1808. ...d,
  1809. transform: {
  1810. ...d.transform,
  1811. height: f,
  1812. width: h,
  1813. angle: 0
  1814. },
  1815. srcRect: null,
  1816. prstGeom: null
  1817. });
  1818. }), this._drawingManagerService.featurePluginUpdateNotification(t), n.forEach((e) => {
  1819. e.getTransformerByCreate().refreshControls().changeNotification();
  1820. }), this._commandService.syncExecuteCommand(Oe.id, i);
  1821. }
  1822. _drawingAddListener() {
  1823. this.disposeWithMe(
  1824. this._drawingManagerService.add$.subscribe((i) => {
  1825. this._insertImages(i);
  1826. })
  1827. );
  1828. }
  1829. _insertImages(i) {
  1830. i.forEach(async (t) => {
  1831. var g;
  1832. const { unitId: n, subUnitId: e, drawingId: r } = t, s = this._getSceneAndTransformerByDrawingSearch(n), a = (g = hn(this._currentUniverService, n)) == null ? void 0 : g.subUnitId;
  1833. if (s == null || a !== e)
  1834. return;
  1835. const o = this._drawingManagerService.getDrawingByParam(t);
  1836. if (o == null)
  1837. return;
  1838. const c = await this._drawingRenderService.renderImages(o, s.scene);
  1839. if (!(c == null || c.length === 0))
  1840. for (const m of c)
  1841. this._addHoverForImage(m), this._addDialogForImage(m);
  1842. });
  1843. }
  1844. _imageUpdateListener() {
  1845. this.disposeWithMe(
  1846. this._drawingManagerService.update$.subscribe((i) => {
  1847. i.forEach((t) => {
  1848. const { unitId: n, subUnitId: e, drawingId: r } = t, s = this._drawingManagerService.getDrawingByParam(t);
  1849. if (s == null)
  1850. return;
  1851. const { transform: a, drawingType: o, srcRect: c, prstGeom: g, source: m, imageSourceType: d } = s;
  1852. if (o !== ee.DRAWING_IMAGE)
  1853. return;
  1854. const h = this._getSceneAndTransformerByDrawingSearch(n);
  1855. if (h == null)
  1856. return;
  1857. const { scene: f, transformer: _ } = h;
  1858. if (a == null)
  1859. return !0;
  1860. const w = G({ unitId: n, subUnitId: e, drawingId: r }), p = f.getObject(w);
  1861. if (p == null)
  1862. return !0;
  1863. p.setSrcRect(c), p.setPrstGeom(g);
  1864. });
  1865. })
  1866. );
  1867. }
  1868. _addHoverForImage(i) {
  1869. this.disposeWithMe(
  1870. we(
  1871. i.onPointerEnter$.subscribeEvent(() => {
  1872. i.cursor = Ne.GRAB;
  1873. })
  1874. )
  1875. ), this.disposeWithMe(
  1876. we(
  1877. i.onPointerLeave$.subscribeEvent(() => {
  1878. i.cursor = Ne.DEFAULT;
  1879. })
  1880. )
  1881. );
  1882. }
  1883. _addDialogForImage(i) {
  1884. this.disposeWithMe(
  1885. we(
  1886. i.onDblclick$.subscribeEvent(() => {
  1887. const t = `${i.oKey}-viewer-dialog`;
  1888. this._drawingRenderService.previewImage(t, i.getNative().src, i.getNativeSize().width, i.getNativeSize().height);
  1889. })
  1890. )
  1891. );
  1892. }
  1893. };
  1894. Ae = or([
  1895. oe(0, me),
  1896. oe(1, ue),
  1897. oe(2, te),
  1898. oe(3, gn),
  1899. oe(4, mn),
  1900. oe(5, Ye),
  1901. oe(6, He(De))
  1902. ], Ae);
  1903. var cr = Object.defineProperty, lr = Object.getOwnPropertyDescriptor, mr = (i, t, n, e) => {
  1904. for (var r = e > 1 ? void 0 : e ? lr(t, n) : t, s = i.length - 1, a; s >= 0; s--)
  1905. (a = i[s]) && (r = (e ? a(t, n, r) : a(r)) || r);
  1906. return e && r && cr(t, n, r), r;
  1907. }, on = (i, t) => (n, e) => t(n, e, i);
  1908. const gr = "UNIVER_DRAWING_UI_PLUGIN";
  1909. var ze;
  1910. let cn = (ze = class extends Hn {
  1911. constructor(i = an, t, n) {
  1912. super(), this._config = i, this._injector = t, this._configService = n;
  1913. const { menu: e, ...r } = Ln(
  1914. {},
  1915. an,
  1916. this._config
  1917. );
  1918. e && this._configService.setConfig("menu", e, { merge: !0 }), this._configService.setConfig(Yt, r);
  1919. }
  1920. onStarting() {
  1921. this._initDependencies();
  1922. }
  1923. onRendered() {
  1924. this._injector.get(Be), this._injector.get(Te), this._injector.get(Ue), this._injector.get(Ae);
  1925. }
  1926. _initDependencies() {
  1927. [
  1928. [De],
  1929. [Be],
  1930. [Te],
  1931. [Ue],
  1932. [Ae]
  1933. ].forEach((t) => this._injector.add(t));
  1934. }
  1935. }, Q(ze, "pluginName", gr), ze);
  1936. cn = mr([
  1937. on(1, He(An)),
  1938. on(2, Vn)
  1939. ], cn);
  1940. export {
  1941. Ee as AutoImageCropOperation,
  1942. Kt as COMPONENT_IMAGE_POPUP_MENU,
  1943. le as CloseImageCropOperation,
  1944. vr as DrawingCommonPanel,
  1945. De as DrawingRenderService,
  1946. xe as ImageCropperObject,
  1947. Ft as ImagePopupMenu,
  1948. jn as ImageResetSizeOperation,
  1949. Ke as OpenImageCropOperation,
  1950. Xe as SetDrawingAlignOperation,
  1951. cn as UniverDrawingUIPlugin,
  1952. Ve as getUpdateParams
  1953. };