index.js 123 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261
  1. var vr = Object.defineProperty;
  2. var Sr = (i, e, n) => e in i ? vr(i, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : i[e] = n;
  3. var J = (i, e, n) => Sr(i, typeof e != "symbol" ? e + "" : e, n);
  4. import { CommandType as q, ICommandService as H, IUndoRedoService as Be, sequenceExecute as Mn, LocaleService as Pt, IUniverInstanceService as $e, useDependency as Ee, Inject as N, Injector as qe, IContextService as yn, RxDisposable as Ir, UniverInstanceType as Y, connectInjector as Cr, toDisposable as Rr, FOCUSING_COMMON_DRAWINGS as We, DrawingTypeEnum as L, Disposable as ie, ArrangeTypeEnum as st, createDocumentModelWithStyle as br, ObjectRelativeFromH as Dr, ObjectRelativeFromV as Mr, BooleanNumber as yr, PositionedObjectLayoutType as Or, WrapTextType as Tr, BuildTextUtils as Er, Range as Pr, DOCS_NORMAL_EDITOR_UNIT_ID_KEY as ot, DOCS_ZEN_EDITOR_UNIT_ID_KEY as at, InterceptorEffectEnum as Ur, ObjectMatrix as Ar, Tools as Pe, UserManagerService as Nr, IPermissionService as jr, Rectangle as Wr, Direction as _e, FOCUSING_FX_BAR_EDITOR as xr, EDITOR_ACTIVATED as Br, FOCUSING_PANEL_EDITOR as $r, LifecycleService as kr, LifecycleStages as Lr, DisposableCollection as ct, fromEventSubject as Fr, generateRandomId as Gt, DependentOn as Gr, Plugin as Vr, merge as Yr, registerDependencies as Hr, touchDependencies as Vt, IConfigService as Xr } from "@univerjs/core";
  5. import { DocDrawingController as zr, UniverDocsDrawingPlugin as Kr } from "@univerjs/docs-drawing";
  6. import { SetDrawingSelectedOperation as Ut, IImageIoService as On, IDrawingManagerService as ae, DRAWING_IMAGE_ALLOW_IMAGE_LIST as ln, DRAWING_IMAGE_COUNT_LIMIT as un, ImageUploadStatusType as Ae, DRAWING_IMAGE_ALLOW_SIZE as hn, getImageSize as gn, DRAWING_IMAGE_WIDTH_LIMIT as mn, DRAWING_IMAGE_HEIGHT_LIMIT as fn, getDrawingShapeKeyByDrawingSearch as Ye, UniverDrawingPlugin as Jr } from "@univerjs/drawing";
  7. import { ImageCropperObject as Zr, COMPONENT_IMAGE_POPUP_MENU as qr, OpenImageCropOperation as Qr, ImageResetSizeOperation as ei, DrawingRenderService as Tn, DrawingCommonPanel as ti, UniverDrawingUIPlugin as ni } from "@univerjs/drawing-ui";
  8. import { IRenderManagerService as Q, precisionTo as dt, getGroupState as ri, transformObjectOutOfGroup as ii, RENDER_CLASS_TYPE as Ne, Rect as lt, ObjectType as pn, DRAWING_OBJECT_LAYER_INDEX as Yt, SHEET_VIEWPORT_KEY as En } from "@univerjs/engine-render";
  9. import { ISheetDrawingService as ee, SetDrawingApplyMutation as T, DrawingApplyType as E, SheetDrawingAnchorType as O, UniverSheetsDrawingPlugin as si } from "@univerjs/sheets-drawing";
  10. import { SheetCanvasPopManagerService as oi, convertPositionSheetOverGridToAbsolute as ai, ISheetSelectionRenderService as Qe, SheetSkeletonManagerService as Z, attachRangeWithCoord as Pn, IEditorBridgeService as ci, IAutoFillService as di, HoverManagerService as li, COPY_TYPE as wn, PREDEFINED_HOOK_NAME as ut, virtualizeDiscreteRanges as ui, ISheetClipboardService as hi, SheetPrintInterceptorService as gi, getCurrentRangeDisable$ as mi, SetZoomRatioOperation as _n, SetScrollOperation as fi } from "@univerjs/sheets-ui";
  11. import { ISidebarService as pi, IUIPartsService as wi, BuiltInUIPart as _i, ILocalFileService as vi, IMessageService as Si, MenuItemType as on, getMenuHiddenObservable as Un, RibbonStartGroup as Ii, KeyCode as xe, ComponentManager as Ci, IMenuManagerService as Ri, IShortcutService as bi, CanvasFloatDomService as Di } from "@univerjs/ui";
  12. import { takeUntil as vn, combineLatest as ht, map as Je, filter as ve, distinctUntilChanged as gt, Subject as Ht, take as Mi, BehaviorSubject as He, switchMap as Sn } from "rxjs";
  13. import { SheetInterceptorService as At, getSheetCommandTarget as V, SheetsSelectionsService as An, SetRangeValuesCommand as yi, SetWorksheetRowHeightMutation as Nn, SetWorksheetColWidthMutation as jn, SetWorksheetRowIsAutoHeightMutation as Oi, SetWorksheetRowAutoHeightMutation as Wn, AddWorksheetMergeMutation as Ti, RemoveWorksheetMergeMutation as Ei, AFTER_CELL_EDIT as Pi, INTERCEPTOR_POINT as Ui, InterceptCellContentPriority as Ai, WorkbookViewPermission as In, WorksheetViewPermission as Xt, WorkbookEditablePermission as qt, WorksheetEditPermission as St, InsertRowCommand as xn, InsertColCommand as Bn, RemoveRowCommand as $n, RemoveColCommand as kn, DeleteRangeMoveLeftCommand as Ln, DeleteRangeMoveUpCommand as Fn, InsertRangeMoveDownCommand as Gn, InsertRangeMoveRightCommand as Vn, DeltaRowHeightCommand as Qt, SetRowHeightCommand as en, DeltaColumnWidthCommand as Yn, SetColWidthCommand as Hn, SetRowHiddenCommand as Xn, SetSpecificRowsVisibleCommand as zn, SetSpecificColsVisibleCommand as Kn, SetColHiddenCommand as Jn, MoveColsCommand as Zn, MoveRowsCommand as qn, MoveRangeCommand as Qn, SetRowVisibleMutation as Ni, SetRowHiddenMutation as ji, SetColVisibleMutation as Wi, SetColHiddenMutation as xi, SetWorksheetActiveOperation as Bi, RangeProtectionPermissionEditPoint as $i, SetFrozenMutation as ki, COMMAND_LISTENER_SKELETON_CHANGE as Li } from "@univerjs/sheets";
  14. import er, { useEffect as an, forwardRef as tr, useRef as Fi, createElement as nr, useState as tn } from "react";
  15. import { docDrawingPositionToTransform as Gi, ReplaceSnapshotCommand as Vi } from "@univerjs/docs-ui";
  16. import { MessageType as Me, RadioGroup as Yi, Radio as zt } from "@univerjs/design";
  17. const Hi = "sheets-drawing-ui.config", Cn = {}, F = {
  18. id: "sheet.operation.clear-drawing-transformer",
  19. type: q.MUTATION,
  20. handler: (i, e) => {
  21. const n = i.get(Q);
  22. return e.forEach((t) => {
  23. var r, s;
  24. (s = (r = n.getRenderById(t)) == null ? void 0 : r.scene.getTransformer()) == null || s.debounceRefreshControls();
  25. }), !0;
  26. }
  27. }, Nt = {
  28. id: "sheet.command.remove-sheet-image",
  29. type: q.COMMAND,
  30. handler: (i, e) => {
  31. var I, S, R;
  32. const n = i.get(H), t = i.get(Be), r = i.get(At), s = i.get(ee);
  33. if (!e) return !1;
  34. const { drawings: o } = e, c = [];
  35. o.forEach((v) => {
  36. const { unitId: C } = v;
  37. c.push(C);
  38. });
  39. const d = s.getBatchRemoveOp(o), { unitId: g, subUnitId: a, undo: l, redo: h, objects: u } = d, m = r.onCommandExecute({ id: Nt.id, params: e }), p = { id: T.id, params: { unitId: g, subUnitId: a, op: h, objects: u, type: E.REMOVE } }, f = { id: T.id, params: { unitId: g, subUnitId: a, op: l, objects: u, type: E.INSERT } };
  40. return Mn([...(I = m.preRedos) != null ? I : [], p, ...m.redos], n) ? (t.pushUndoRedo({
  41. unitID: g,
  42. undoMutations: [
  43. ...(S = m.preUndos) != null ? S : [],
  44. f,
  45. ...m.undos,
  46. { id: F.id, params: c }
  47. ],
  48. redoMutations: [
  49. ...(R = m.preRedos) != null ? R : [],
  50. p,
  51. ...m.redos,
  52. { id: F.id, params: c }
  53. ]
  54. }), !0) : !1;
  55. }
  56. }, rr = "COMPONENT_SHEET_DRAWING_PANEL", ir = {
  57. id: "sidebar.operation.sheet-image",
  58. type: q.COMMAND,
  59. handler: async (i, e) => {
  60. const n = i.get(pi), t = i.get(Pt), r = i.get($e), s = i.get(H);
  61. if (!V(r)) return !1;
  62. switch (e.value) {
  63. case "open":
  64. n.open({
  65. header: { title: t.t("sheetImage.panel.title") },
  66. children: { label: rr },
  67. onClose: () => {
  68. s.syncExecuteCommand(Ut.id, []);
  69. },
  70. width: 360
  71. });
  72. break;
  73. case "close":
  74. default:
  75. n.close();
  76. break;
  77. }
  78. return !0;
  79. }
  80. }, sr = {
  81. id: "sheet.operation.edit-sheet-image",
  82. type: q.OPERATION,
  83. handler: (i, e) => {
  84. const n = i.get(H);
  85. return e == null ? !1 : (n.syncExecuteCommand(Ut.id, [e]), n.executeCommand(ir.id, { value: "open" }), !0);
  86. }
  87. };
  88. var Kt = { exports: {} }, Xe = {};
  89. /**
  90. * @license React
  91. * react-jsx-runtime.production.min.js
  92. *
  93. * Copyright (c) Facebook, Inc. and its affiliates.
  94. *
  95. * This source code is licensed under the MIT license found in the
  96. * LICENSE file in the root directory of this source tree.
  97. */
  98. var Rn;
  99. function Xi() {
  100. if (Rn) return Xe;
  101. Rn = 1;
  102. var i = er, e = Symbol.for("react.element"), n = Symbol.for("react.fragment"), t = 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 };
  103. function o(c, d, g) {
  104. var a, l = {}, h = null, u = null;
  105. g !== void 0 && (h = "" + g), d.key !== void 0 && (h = "" + d.key), d.ref !== void 0 && (u = d.ref);
  106. for (a in d) t.call(d, a) && !s.hasOwnProperty(a) && (l[a] = d[a]);
  107. if (c && c.defaultProps) for (a in d = c.defaultProps, d) l[a] === void 0 && (l[a] = d[a]);
  108. return { $$typeof: e, type: c, key: h, ref: u, props: l, _owner: r.current };
  109. }
  110. return Xe.Fragment = n, Xe.jsx = o, Xe.jsxs = o, Xe;
  111. }
  112. var bn;
  113. function zi() {
  114. return bn || (bn = 1, Kt.exports = Xi()), Kt.exports;
  115. }
  116. var G = zi();
  117. const Ki = "univer-upload-loading", Ji = "univer-upload-loading-body", Zi = "univer-upload-loading-body-animation", qi = "univer-UniverCircleAnimation", Qi = "univer-upload-loading-body-text", mt = {
  118. uploadLoading: Ki,
  119. uploadLoadingBody: Ji,
  120. uploadLoadingBodyAnimation: Zi,
  121. univerCircleAnimation: qi,
  122. uploadLoadingBodyText: Qi
  123. }, es = () => {
  124. const i = Ee(On), e = Ee(Pt), [n, t] = er.useState(0);
  125. return an(() => {
  126. const r = i.change$.subscribe((s) => {
  127. t(s);
  128. });
  129. return () => {
  130. r.unsubscribe();
  131. };
  132. }, [i]), /* @__PURE__ */ G.jsx("div", { style: { display: n > 0 ? "block" : "none" }, className: mt.uploadLoading, children: /* @__PURE__ */ G.jsxs("div", { className: mt.uploadLoadingBody, children: [
  133. /* @__PURE__ */ G.jsx("div", { className: mt.uploadLoadingBodyAnimation }),
  134. /* @__PURE__ */ G.jsx("div", { className: mt.uploadLoadingBodyText, children: `${e.t("uploadLoading.loading")}: ${n}` })
  135. ] }) });
  136. };
  137. var ts = Object.defineProperty, ns = Object.getOwnPropertyDescriptor, rs = (i, e, n, t) => {
  138. for (var r = t > 1 ? void 0 : t ? ns(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  139. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  140. return t && r && ts(e, n, r), r;
  141. }, fe = (i, e) => (n, t) => e(n, t, i);
  142. let It = class extends Ir {
  143. constructor(e, n, t, r, s, o, c, d) {
  144. super();
  145. J(this, "_initImagePopupMenu", /* @__PURE__ */ new Set());
  146. this._injector = e, this._drawingManagerService = n, this._canvasPopManagerService = t, this._renderManagerService = r, this._univerInstanceService = s, this._contextService = o, this._uiPartsService = c, this._commandService = d, this._init();
  147. }
  148. _init() {
  149. this._univerInstanceService.getCurrentTypeOfUnit$(Y.UNIVER_SHEET).pipe(vn(this.dispose$)).subscribe((e) => this._create(e)), this._univerInstanceService.getTypeOfUnitDisposed$(Y.UNIVER_SHEET).pipe(vn(this.dispose$)).subscribe((e) => this._dispose(e)), this._univerInstanceService.getAllUnitsForType(Y.UNIVER_SHEET).forEach((e) => this._create(e)), this._uiPartsService.registerComponent(_i.CONTENT, () => Cr(es, this._injector));
  150. }
  151. _dispose(e) {
  152. const n = e.getUnitId();
  153. this._renderManagerService.removeRender(n);
  154. }
  155. _create(e) {
  156. if (!e)
  157. return;
  158. const n = e.getUnitId();
  159. this._renderManagerService.has(n) && !this._initImagePopupMenu.has(n) && (this._popupMenuListener(n), this._initImagePopupMenu.add(n));
  160. }
  161. _hasCropObject(e) {
  162. const n = e.getAllObjectsByOrder();
  163. for (const t of n)
  164. if (t instanceof Zr)
  165. return !0;
  166. return !1;
  167. }
  168. _popupMenuListener(e) {
  169. var s;
  170. const n = (s = this._renderManagerService.getRenderById(e)) == null ? void 0 : s.scene;
  171. if (!n)
  172. return;
  173. const t = n.getTransformerByCreate();
  174. if (!t)
  175. return;
  176. let r;
  177. this.disposeWithMe(
  178. Rr(
  179. t.createControl$.subscribe(() => {
  180. if (this._contextService.setContextValue(We, !0), this._hasCropObject(n))
  181. return;
  182. const o = t.getSelectedObjectMap();
  183. if (o.size > 1) {
  184. r == null || r.dispose();
  185. return;
  186. }
  187. const c = o.values().next().value;
  188. if (!c)
  189. return;
  190. const d = c.oKey, g = this._drawingManagerService.getDrawingOKey(d);
  191. if (!g)
  192. return;
  193. const { unitId: a, subUnitId: l, drawingId: h, drawingType: u } = g, m = g.data;
  194. if (m && m.disablePopup)
  195. return;
  196. r == null || r.dispose();
  197. const p = this._canvasPopManagerService.getFeatureMenu(a, l, h, u);
  198. r = this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(c, {
  199. componentKey: qr,
  200. direction: "horizontal",
  201. offset: [2, 0],
  202. extraProps: {
  203. menuItems: p || this._getImageMenuItems(a, l, h, u)
  204. }
  205. }));
  206. })
  207. )
  208. ), this.disposeWithMe(
  209. t.clearControl$.subscribe(() => {
  210. r == null || r.dispose(), this._contextService.setContextValue(We, !1), this._commandService.syncExecuteCommand(Ut.id, []);
  211. })
  212. ), this.disposeWithMe(
  213. this._contextService.contextChanged$.subscribe((o) => {
  214. o[We] === !1 && (r == null || r.dispose());
  215. })
  216. ), this.disposeWithMe(
  217. t.changing$.subscribe(() => {
  218. r == null || r.dispose();
  219. })
  220. );
  221. }
  222. _getImageMenuItems(e, n, t, r) {
  223. return [
  224. {
  225. label: "image-popup.edit",
  226. index: 0,
  227. commandId: sr.id,
  228. commandParams: { unitId: e, subUnitId: n, drawingId: t },
  229. disable: r === L.DRAWING_DOM
  230. },
  231. {
  232. label: "image-popup.delete",
  233. index: 1,
  234. commandId: Nt.id,
  235. commandParams: { unitId: e, drawings: [{ unitId: e, subUnitId: n, drawingId: t }] },
  236. disable: !1
  237. },
  238. {
  239. label: "image-popup.crop",
  240. index: 2,
  241. commandId: Qr.id,
  242. commandParams: { unitId: e, subUnitId: n, drawingId: t },
  243. disable: r === L.DRAWING_DOM
  244. },
  245. {
  246. label: "image-popup.reset",
  247. index: 3,
  248. commandId: ei.id,
  249. commandParams: [{ unitId: e, subUnitId: n, drawingId: t }],
  250. disable: r === L.DRAWING_DOM
  251. }
  252. ];
  253. }
  254. };
  255. It = rs([
  256. fe(0, N(qe)),
  257. fe(1, ae),
  258. fe(2, N(oi)),
  259. fe(3, Q),
  260. fe(4, $e),
  261. fe(5, yn),
  262. fe(6, N(wi)),
  263. fe(7, H)
  264. ], It);
  265. function z(i, e, n) {
  266. const { from: t, to: r, flipY: s = !1, flipX: o = !1, angle: c = 0, skewX: d = 0, skewY: g = 0 } = i, a = n.getCurrent();
  267. if (a == null)
  268. return;
  269. const l = ai(
  270. a.unitId,
  271. a.sheetId,
  272. { from: t, to: r },
  273. n
  274. );
  275. let { left: h, top: u, width: m, height: p } = l;
  276. const f = n.getCurrentSkeleton(), w = f.rowHeaderWidth + f.columnTotalWidth, I = f.columnHeaderHeight + f.rowTotalHeight;
  277. return h + m > w && (h = w - m), u + p > I && (u = I - p), {
  278. flipY: s,
  279. flipX: o,
  280. angle: c,
  281. skewX: d,
  282. skewY: g,
  283. left: h,
  284. top: u,
  285. width: m,
  286. height: p
  287. };
  288. }
  289. function k(i, e) {
  290. const { left: n = 0, top: t = 0, width: r = 0, height: s = 0, flipY: o = !1, flipX: c = !1, angle: d = 0, skewX: g = 0, skewY: a = 0 } = i, l = e.getCellWithCoordByOffset(n, t);
  291. if (l == null)
  292. return;
  293. const h = {
  294. column: l.actualColumn,
  295. columnOffset: dt(n - l.startX, 1),
  296. row: l.actualRow,
  297. rowOffset: dt(t - l.startY, 1)
  298. }, u = e.getCellWithCoordByOffset(n + r, t + s);
  299. if (u == null)
  300. return;
  301. const m = {
  302. column: u.actualColumn,
  303. columnOffset: dt(n + r - u.startX, 1),
  304. row: u.actualRow,
  305. rowOffset: dt(t + s - u.startY, 1)
  306. };
  307. return {
  308. flipY: o,
  309. flipX: c,
  310. angle: d,
  311. skewX: g,
  312. skewY: a,
  313. from: h,
  314. to: m
  315. };
  316. }
  317. var is = Object.defineProperty, ss = Object.getOwnPropertyDescriptor, os = (i, e, n, t) => {
  318. for (var r = t > 1 ? void 0 : t ? ss(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  319. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  320. return t && r && is(e, n, r), r;
  321. }, ft = (i, e) => (n, t) => e(n, t, i);
  322. let nn = class extends ie {
  323. constructor(i, e, n, t, r) {
  324. super(), this._context = i, this._sheetDrawingService = e, this._drawingManagerService = n, this._sheetSelectionRenderService = t, this._sheetSkeletonManagerService = r, this._init();
  325. }
  326. _init() {
  327. this._drawingInitializeListener();
  328. }
  329. _drawingInitializeListener() {
  330. this._sheetDrawingService.initializeNotification(this._context.unitId);
  331. const i = this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId);
  332. for (const e in i) {
  333. const n = i[e];
  334. for (const t in n.data) {
  335. const r = n.data[t];
  336. r.transform = z(r.sheetTransform, this._sheetSelectionRenderService, this._sheetSkeletonManagerService);
  337. }
  338. }
  339. this._drawingManagerService.registerDrawingData(this._context.unitId, this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId)), this._drawingManagerService.initializeNotification(this._context.unitId);
  340. }
  341. };
  342. nn = os([
  343. ft(1, ee),
  344. ft(2, ae),
  345. ft(3, N(Qe)),
  346. ft(4, N(Z))
  347. ], nn);
  348. function as(i) {
  349. const e = [];
  350. return i.forEach((n) => {
  351. const { parent: t, children: r } = n, { unitId: s, subUnitId: o, drawingId: c } = t, d = ri(0, 0, r.map((l) => l.transform || {})), g = r.map((l) => {
  352. const h = l.transform || { left: 0, top: 0 }, { unitId: u, subUnitId: m, drawingId: p } = l;
  353. return {
  354. unitId: u,
  355. subUnitId: m,
  356. drawingId: p,
  357. transform: {
  358. ...h,
  359. left: h.left - d.left,
  360. top: h.top - d.top
  361. },
  362. groupId: c
  363. };
  364. }), a = {
  365. unitId: s,
  366. subUnitId: o,
  367. drawingId: c,
  368. drawingType: L.DRAWING_GROUP,
  369. transform: d
  370. };
  371. e.push({
  372. parent: a,
  373. children: g
  374. });
  375. }), e;
  376. }
  377. function cs(i) {
  378. const e = [];
  379. return i.forEach((n) => {
  380. const { parent: t, children: r } = n, { unitId: s, subUnitId: o, drawingId: c, transform: d = { width: 0, height: 0 } } = t;
  381. if (d == null)
  382. return;
  383. const g = r.map((l) => {
  384. const { transform: h } = l, { unitId: u, subUnitId: m, drawingId: p } = l, f = ii(h || {}, d, d.width || 0, d.height || 0);
  385. return {
  386. unitId: u,
  387. subUnitId: m,
  388. drawingId: p,
  389. transform: f,
  390. groupId: void 0
  391. };
  392. }), a = {
  393. unitId: s,
  394. subUnitId: o,
  395. drawingId: c,
  396. drawingType: L.DRAWING_GROUP,
  397. transform: {
  398. left: 0,
  399. top: 0
  400. }
  401. };
  402. e.push({
  403. parent: a,
  404. children: g
  405. });
  406. }), e;
  407. }
  408. const or = {
  409. id: "sheet.command.group-sheet-image",
  410. type: q.COMMAND,
  411. handler: (i, e) => {
  412. const n = i.get(H), t = i.get(Be), r = i.get(ee);
  413. if (!e) return !1;
  414. const s = [];
  415. e.forEach(({ parent: u, children: m }) => {
  416. s.push(u.unitId), m.forEach((p) => {
  417. s.push(p.unitId);
  418. });
  419. });
  420. const o = r.getGroupDrawingOp(e), { unitId: c, subUnitId: d, undo: g, redo: a, objects: l } = o;
  421. return n.syncExecuteCommand(T.id, { op: a, unitId: c, subUnitId: d, objects: l, type: E.GROUP }) ? (t.pushUndoRedo({
  422. unitID: c,
  423. undoMutations: [
  424. { id: T.id, params: { op: g, unitId: c, subUnitId: d, objects: cs(l), type: E.UNGROUP } },
  425. { id: F.id, params: s }
  426. ],
  427. redoMutations: [
  428. { id: T.id, params: { op: a, unitId: c, subUnitId: d, objects: l, type: E.GROUP } },
  429. { id: F.id, params: s }
  430. ]
  431. }), !0) : !1;
  432. }
  433. }, jt = {
  434. id: "sheet.command.insert-sheet-image",
  435. type: q.COMMAND,
  436. handler: (i, e) => {
  437. var I, S, R;
  438. const n = i.get(H), t = i.get(Be), r = i.get(ee), s = i.get(At);
  439. if (!e) return !1;
  440. const o = e.drawings, c = o.map((v) => v.unitId), d = r.getBatchAddOp(o), { unitId: g, subUnitId: a, undo: l, redo: h, objects: u } = d, m = s.onCommandExecute({ id: jt.id, params: e }), p = { id: T.id, params: { op: h, unitId: g, subUnitId: a, objects: u, type: E.INSERT } }, f = { id: T.id, params: { op: l, unitId: g, subUnitId: a, objects: u, type: E.REMOVE } };
  441. return Mn([...(I = m.preRedos) != null ? I : [], p, ...m.redos], n) ? (t.pushUndoRedo({
  442. unitID: g,
  443. undoMutations: [
  444. ...(S = m.preUndos) != null ? S : [],
  445. f,
  446. ...m.undos,
  447. { id: F.id, params: c }
  448. ],
  449. redoMutations: [
  450. ...(R = m.preRedos) != null ? R : [],
  451. p,
  452. ...m.redos,
  453. { id: F.id, params: c }
  454. ]
  455. }), !0) : !1;
  456. }
  457. }, ar = {
  458. id: "sheet.command.set-drawing-arrange",
  459. type: q.COMMAND,
  460. handler: (i, e) => {
  461. const n = i.get(H), t = i.get(Be);
  462. if (!e) return !1;
  463. const r = i.get(ee), { unitId: s, subUnitId: o, drawingIds: c, arrangeType: d } = e, g = { unitId: s, subUnitId: o, drawingIds: c };
  464. let a;
  465. if (d === st.forward ? a = r.getForwardDrawingsOp(g) : d === st.backward ? a = r.getBackwardDrawingOp(g) : d === st.front ? a = r.getFrontDrawingsOp(g) : d === st.back && (a = r.getBackDrawingsOp(g)), a == null)
  466. return !1;
  467. const { objects: l, redo: h, undo: u } = a;
  468. return n.syncExecuteCommand(T.id, { op: h, unitId: s, subUnitId: o, objects: l, type: E.ARRANGE }) ? (t.pushUndoRedo({
  469. unitID: s,
  470. undoMutations: [
  471. { id: T.id, params: { op: u, unitId: s, subUnitId: o, objects: l, type: E.ARRANGE } }
  472. ],
  473. redoMutations: [
  474. { id: T.id, params: { op: h, unitId: s, subUnitId: o, objects: l, type: E.ARRANGE } }
  475. ]
  476. }), !0) : !1;
  477. }
  478. }, Wt = {
  479. id: "sheet.command.set-sheet-image",
  480. type: q.COMMAND,
  481. handler: (i, e) => {
  482. const n = i.get(H), t = i.get(Be), r = i.get(ee);
  483. if (!e) return !1;
  484. const { drawings: s } = e, o = r.getBatchUpdateOp(s), { unitId: c, subUnitId: d, undo: g, redo: a, objects: l } = o;
  485. return n.syncExecuteCommand(T.id, { unitId: c, subUnitId: d, op: a, objects: l, type: E.UPDATE }) ? (t.pushUndoRedo({
  486. unitID: c,
  487. undoMutations: [
  488. { id: T.id, params: { unitId: c, subUnitId: d, op: g, objects: l, type: E.UPDATE } },
  489. { id: F.id, params: [c] }
  490. ],
  491. redoMutations: [
  492. { id: T.id, params: { unitId: c, subUnitId: d, op: a, objects: l, type: E.UPDATE } },
  493. { id: F.id, params: [c] }
  494. ]
  495. }), !0) : !1;
  496. }
  497. }, cr = {
  498. id: "sheet.command.ungroup-sheet-image",
  499. type: q.COMMAND,
  500. handler: (i, e) => {
  501. const n = i.get(H), t = i.get(Be), r = i.get(ee);
  502. if (!e) return !1;
  503. const s = [];
  504. e.forEach(({ parent: u, children: m }) => {
  505. s.push(u.unitId), m.forEach((p) => {
  506. s.push(p.unitId);
  507. });
  508. });
  509. const o = r.getUngroupDrawingOp(e), { unitId: c, subUnitId: d, undo: g, redo: a, objects: l } = o;
  510. return n.syncExecuteCommand(T.id, { op: a, unitId: c, subUnitId: d, objects: l, type: E.UNGROUP }) ? (t.pushUndoRedo({
  511. unitID: c,
  512. undoMutations: [
  513. { id: T.id, params: { op: g, unitId: c, subUnitId: d, objects: as(l), type: E.GROUP } },
  514. { id: F.id, params: s }
  515. ],
  516. redoMutations: [
  517. { id: T.id, params: { op: a, unitId: c, subUnitId: d, objects: l, type: E.UNGROUP } },
  518. { id: F.id, params: s }
  519. ]
  520. }), !0) : !1;
  521. }
  522. };
  523. var ds = Object.defineProperty, ls = Object.getOwnPropertyDescriptor, us = (i, e, n, t) => {
  524. for (var r = t > 1 ? void 0 : t ? ls(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  525. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  526. return t && r && ds(e, n, r), r;
  527. }, te = (i, e) => (n, t) => e(n, t, i);
  528. function hs(i, e, n) {
  529. const t = n * Math.PI / 180, r = Math.abs(i * Math.cos(t)) + Math.abs(e * Math.sin(t)), s = Math.abs(i * Math.sin(t)) + Math.abs(e * Math.cos(t));
  530. return { rotatedWidth: r, rotatedHeight: s };
  531. }
  532. function dr(i, e, n, t, r) {
  533. var I;
  534. const { rotatedHeight: s, rotatedWidth: o } = hs(n, t, r), d = i.get(Q).getRenderById(e.unitId);
  535. if (!d)
  536. return !1;
  537. const a = (I = d.with(Z).getWorksheetSkeleton(e.subUnitId)) == null ? void 0 : I.skeleton;
  538. if (a == null)
  539. return !1;
  540. const l = a.getCellByIndex(e.row, e.col), h = l.mergeInfo.endX - l.mergeInfo.startX - 2, u = l.mergeInfo.endY - l.mergeInfo.startY - 2, m = o / s, f = Math.ceil(Math.min(h, u * m)) / o, w = !f || Number.isNaN(f) ? 1e-3 : f;
  541. return {
  542. width: n * w,
  543. height: t * w
  544. };
  545. }
  546. let Ze = class extends ie {
  547. constructor(e, n, t, r, s, o, c, d, g, a, l, h, u) {
  548. super();
  549. J(this, "_workbookSelections");
  550. this._context = e, this._skeletonManagerService = n, this._commandService = t, this._selectionRenderService = r, this._imageIoService = s, this._fileOpenerService = o, this._sheetDrawingService = c, this._drawingManagerService = d, this._contextService = g, this._messageService = a, this._localeService = l, this._injector = u, this._workbookSelections = h.getWorkbookSelections(this._context.unitId), this._updateImageListener(), this._updateOrderListener(), this._groupDrawingListener(), this._focusDrawingListener();
  551. }
  552. async insertFloatImage() {
  553. const e = await this._fileOpenerService.openFile({
  554. multiple: !0,
  555. accept: ln.map((t) => `.${t.replace("image/", "")}`).join(",")
  556. }), n = e.length;
  557. return n > un ? (this._messageService.show({
  558. type: Me.Error,
  559. content: this._localeService.t("update-status.exceedMaxCount", String(un))
  560. }), !1) : n === 0 ? !1 : (e.forEach(async (t) => await this._insertFloatImage(t)), !0);
  561. }
  562. async insertCellImage() {
  563. const n = (await this._fileOpenerService.openFile({
  564. multiple: !1,
  565. accept: ln.map((t) => `.${t.replace("image/", "")}`).join(",")
  566. }))[0];
  567. return n ? (await this._insertCellImage(n), !0) : !1;
  568. }
  569. async _insertFloatImage(e) {
  570. let n;
  571. try {
  572. n = await this._imageIoService.saveImage(e);
  573. } catch (I) {
  574. const S = I.message;
  575. S === Ae.ERROR_EXCEED_SIZE ? this._messageService.show({
  576. type: Me.Error,
  577. content: this._localeService.t("update-status.exceedMaxSize", String(hn / (1024 * 1024)))
  578. }) : S === Ae.ERROR_IMAGE_TYPE ? this._messageService.show({
  579. type: Me.Error,
  580. content: this._localeService.t("update-status.invalidImageType")
  581. }) : S === Ae.ERROR_IMAGE && this._messageService.show({
  582. type: Me.Error,
  583. content: this._localeService.t("update-status.invalidImage")
  584. });
  585. }
  586. if (n == null)
  587. return;
  588. const t = this._getUnitInfo(), { unitId: r, subUnitId: s } = t, { imageId: o, imageSourceType: c, source: d, base64Cache: g } = n, { width: a, height: l, image: h } = await gn(g || ""), { width: u, height: m } = this._context.scene;
  589. this._imageIoService.addImageSourceCache(d, c, h);
  590. let p = 1;
  591. if (a > mn || l > fn) {
  592. const I = mn / a, S = fn / l;
  593. p = Math.max(I, S);
  594. }
  595. const f = this._getImagePosition(a * p, l * p, u, m);
  596. if (f == null)
  597. return;
  598. const w = {
  599. unitId: r,
  600. subUnitId: s,
  601. drawingId: o,
  602. drawingType: L.DRAWING_IMAGE,
  603. imageSourceType: c,
  604. source: d,
  605. transform: z(f, this._selectionRenderService, this._skeletonManagerService),
  606. sheetTransform: f
  607. };
  608. this._commandService.executeCommand(jt.id, {
  609. unitId: r,
  610. drawings: [w]
  611. });
  612. }
  613. // eslint-disable-next-line max-lines-per-function
  614. async _insertCellImage(e) {
  615. let n;
  616. try {
  617. n = await this._imageIoService.saveImage(e);
  618. } catch (f) {
  619. const w = f.message;
  620. w === Ae.ERROR_EXCEED_SIZE ? this._messageService.show({
  621. type: Me.Error,
  622. content: this._localeService.t("update-status.exceedMaxSize", String(hn / (1024 * 1024)))
  623. }) : w === Ae.ERROR_IMAGE_TYPE ? this._messageService.show({
  624. type: Me.Error,
  625. content: this._localeService.t("update-status.invalidImageType")
  626. }) : w === Ae.ERROR_IMAGE && this._messageService.show({
  627. type: Me.Error,
  628. content: this._localeService.t("update-status.invalidImage")
  629. });
  630. }
  631. if (n == null)
  632. return;
  633. const { imageId: t, imageSourceType: r, source: s, base64Cache: o } = n, { width: c, height: d, image: g } = await gn(o || "");
  634. this._imageIoService.addImageSourceCache(s, r, g);
  635. const a = this._workbookSelections.getCurrentLastSelection();
  636. if (!a)
  637. return !1;
  638. const l = br("", {}), h = dr(
  639. this._injector,
  640. {
  641. unitId: this._context.unitId,
  642. subUnitId: this._context.unit.getActiveSheet().getSheetId(),
  643. row: a.primary.actualRow,
  644. col: a.primary.actualColumn
  645. },
  646. c,
  647. d,
  648. 0
  649. );
  650. if (!h)
  651. return !1;
  652. const u = {
  653. size: {
  654. width: h.width,
  655. height: h.height
  656. },
  657. positionH: {
  658. relativeFrom: Dr.PAGE,
  659. posOffset: 0
  660. },
  661. positionV: {
  662. relativeFrom: Mr.PARAGRAPH,
  663. posOffset: 0
  664. },
  665. angle: 0
  666. }, m = {
  667. unitId: l.getUnitId(),
  668. subUnitId: l.getUnitId(),
  669. drawingId: t,
  670. drawingType: L.DRAWING_IMAGE,
  671. imageSourceType: r,
  672. source: s,
  673. transform: Gi(u),
  674. docTransform: u,
  675. behindDoc: yr.FALSE,
  676. title: "",
  677. description: "",
  678. layoutType: Or.INLINE,
  679. // Insert inline drawing by default.
  680. wrapText: Tr.BOTH_SIDES,
  681. distB: 0,
  682. distL: 0,
  683. distR: 0,
  684. distT: 0
  685. }, p = Er.drawing.add({
  686. documentDataModel: l,
  687. drawings: [m],
  688. selection: {
  689. collapsed: !0,
  690. startOffset: 0,
  691. endOffset: 0
  692. }
  693. });
  694. return p ? (l.apply(p), this._commandService.syncExecuteCommand(yi.id, {
  695. value: {
  696. [a.primary.actualRow]: {
  697. [a.primary.actualColumn]: {
  698. p: l.getSnapshot(),
  699. t: 1
  700. }
  701. }
  702. }
  703. })) : !1;
  704. }
  705. _getUnitInfo() {
  706. const e = this._context.unit, n = e.getActiveSheet(), t = e.getUnitId(), r = n.getSheetId();
  707. return {
  708. unitId: t,
  709. subUnitId: r
  710. };
  711. }
  712. _getImagePosition(e, n, t, r) {
  713. const s = this._workbookSelections.getCurrentSelections();
  714. let o = {
  715. startRow: 0,
  716. endRow: 0,
  717. startColumn: 0,
  718. endColumn: 0
  719. };
  720. s && s.length > 0 && (o = s[s.length - 1].range);
  721. const c = Pn(this._skeletonManagerService.getCurrent().skeleton, o);
  722. if (c == null)
  723. return;
  724. let { startColumn: d, startRow: g, startX: a, startY: l } = c, h = !1;
  725. if (a + e > t && (a = t - e, a < 0 && (a = 0, e = t), h = !0), l + n > r && (l = r - n, l < 0 && (l = 0, n = r), h = !0), h) {
  726. const f = this._selectionRenderService.getCellWithCoordByOffset(a, l);
  727. if (f == null)
  728. return;
  729. a = f.startX, l = f.startY, d = f.actualColumn, g = f.actualRow;
  730. }
  731. const u = {
  732. column: d,
  733. columnOffset: 0,
  734. row: g,
  735. rowOffset: 0
  736. }, m = this._selectionRenderService.getCellWithCoordByOffset(a + e, l + n);
  737. if (m == null)
  738. return;
  739. const p = {
  740. column: m.actualColumn,
  741. columnOffset: a + e - m.startX,
  742. row: m.actualRow,
  743. rowOffset: l + n - m.startY
  744. };
  745. return {
  746. from: u,
  747. to: p
  748. };
  749. }
  750. _updateOrderListener() {
  751. this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe((e) => {
  752. const { unitId: n, subUnitId: t, drawingIds: r, arrangeType: s } = e;
  753. this._commandService.executeCommand(ar.id, {
  754. unitId: n,
  755. subUnitId: t,
  756. drawingIds: r,
  757. arrangeType: s
  758. });
  759. }));
  760. }
  761. _updateImageListener() {
  762. this.disposeWithMe(this._drawingManagerService.featurePluginUpdate$.subscribe((e) => {
  763. const n = [];
  764. e.length !== 0 && (e.forEach((t) => {
  765. const { unitId: r, subUnitId: s, drawingId: o, drawingType: c, transform: d } = t;
  766. if (d == null)
  767. return;
  768. const g = this._sheetDrawingService.getDrawingByParam({ unitId: r, subUnitId: s, drawingId: o });
  769. if (g == null || g.unitId !== this._context.unitId)
  770. return;
  771. const a = k({ ...g.transform, ...d }, this._selectionRenderService);
  772. if (a == null)
  773. return;
  774. const l = {
  775. ...t,
  776. transform: { ...g.transform, ...d, ...z(a, this._selectionRenderService, this._skeletonManagerService) },
  777. sheetTransform: { ...a }
  778. };
  779. n.push(l);
  780. }), n.length > 0 && this._commandService.executeCommand(Wt.id, {
  781. unitId: e[0].unitId,
  782. drawings: n
  783. }));
  784. }));
  785. }
  786. _groupDrawingListener() {
  787. this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe((e) => {
  788. this._commandService.executeCommand(or.id, e);
  789. const { unitId: n, subUnitId: t, drawingId: r } = e[0].parent;
  790. this._commandService.syncExecuteCommand(Ut.id, [{ unitId: n, subUnitId: t, drawingId: r }]);
  791. })), this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe((e) => {
  792. this._commandService.executeCommand(cr.id, e);
  793. }));
  794. }
  795. _focusDrawingListener() {
  796. this.disposeWithMe(
  797. this._drawingManagerService.focus$.subscribe((e) => {
  798. e == null || e.length === 0 ? (this._contextService.setContextValue(We, !1), this._sheetDrawingService.focusDrawing([])) : (this._contextService.setContextValue(We, !0), this._sheetDrawingService.focusDrawing(e));
  799. })
  800. );
  801. }
  802. };
  803. Ze = us([
  804. te(1, N(Z)),
  805. te(2, H),
  806. te(3, Qe),
  807. te(4, On),
  808. te(5, vi),
  809. te(6, ee),
  810. te(7, ae),
  811. te(8, yn),
  812. te(9, Si),
  813. te(10, N(Pt)),
  814. te(11, N(An)),
  815. te(12, N(qe))
  816. ], Ze);
  817. var gs = Object.defineProperty, ms = Object.getOwnPropertyDescriptor, fs = (i, e, n, t) => {
  818. for (var r = t > 1 ? void 0 : t ? ms(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  819. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  820. return t && r && gs(e, n, r), r;
  821. }, ye = (i, e) => (n, t) => e(n, t, i);
  822. function rn(i, e, n) {
  823. var t, r, s, o;
  824. if (((r = (t = n == null ? void 0 : n.p) == null ? void 0 : t.body) == null ? void 0 : r.dataStream.length) === 3 && ((o = (s = n.p) == null ? void 0 : s.drawingsOrder) == null ? void 0 : o.length) === 1) {
  825. const c = n.p.drawings[n.p.drawingsOrder[0]], d = dr(
  826. i,
  827. {
  828. unitId: e.unitId,
  829. subUnitId: e.subUnitId,
  830. row: e.row,
  831. col: e.col
  832. },
  833. c.docTransform.size.width,
  834. c.docTransform.size.height,
  835. c.docTransform.angle
  836. );
  837. if (d)
  838. return c.transform.width = d.width, c.transform.height = d.height, c.docTransform.size.width = d.width, c.docTransform.size.height = d.height, c.transform.left = 0, c.transform.top = 0, c.docTransform.positionH.posOffset = 0, c.docTransform.positionV.posOffset = 0, n.p.documentStyle.pageSize.width = 1 / 0, n.p.documentStyle.pageSize.height = 1 / 0, !0;
  839. }
  840. return !1;
  841. }
  842. let Ct = class extends ie {
  843. constructor(i, e, n, t, r, s, o) {
  844. super(), this._commandService = i, this._sheetInterceptorService = e, this._univerInstanceService = n, this._injector = t, this._drawingManagerService = r, this._docDrawingController = s, this._editorBridgeService = o, this._initHandleResize(), this._handleInitEditor(), this._handleWriteCell(), this._initCellContentInterceptor();
  845. }
  846. _initHandleResize() {
  847. this.disposeWithMe(this._commandService.onCommandExecuted((i) => {
  848. let e, n = [];
  849. if (i.id === Nn.id) {
  850. const t = i.params;
  851. n = t.ranges, e = V(this._univerInstanceService, { unitId: t.unitId, subUnitId: t.subUnitId });
  852. } else if (i.id === jn.id) {
  853. const t = i.params;
  854. n = t.ranges, e = V(this._univerInstanceService, { unitId: t.unitId, subUnitId: t.subUnitId });
  855. } else if (i.id === Oi.id) {
  856. const t = i.params;
  857. n = t.ranges, e = V(this._univerInstanceService, { unitId: t.unitId, subUnitId: t.subUnitId });
  858. } else if (i.id === Wn.id) {
  859. const t = i.params;
  860. e = V(this._univerInstanceService, { unitId: t.unitId, subUnitId: t.subUnitId }), n = t.rowsAutoHeightInfo.map((r) => ({
  861. startRow: r.row,
  862. endRow: r.row,
  863. startColumn: 0,
  864. endColumn: 9999
  865. }));
  866. } else if (i.id === Ti.id) {
  867. const t = i.params;
  868. n = t.ranges, e = V(this._univerInstanceService, { unitId: t.unitId, subUnitId: t.subUnitId });
  869. } else if (i.id === Ei.id) {
  870. const t = i.params;
  871. n = t.ranges, e = V(this._univerInstanceService, { unitId: t.unitId, subUnitId: t.subUnitId });
  872. }
  873. e && n.length && n.forEach((t) => {
  874. const r = Pr.transformRange(t, e.worksheet);
  875. for (let s = r.startRow; s <= r.endRow; s++)
  876. for (let o = r.startColumn; o <= r.endColumn; o++)
  877. rn(this._injector, { unitId: e.unitId, subUnitId: e.subUnitId, row: s, col: o }, e.worksheet.getCellRaw(s, o));
  878. });
  879. }));
  880. }
  881. _handleInitEditor() {
  882. this.disposeWithMe(this._editorBridgeService.visible$.subscribe((i) => {
  883. i.visible ? i.visible && (this._drawingManagerService.removeDrawingDataForUnit(ot), this._docDrawingController.loadDrawingDataForUnit(ot), this._drawingManagerService.initializeNotification(ot)) : this._drawingManagerService.removeDrawingDataForUnit(ot);
  884. })), this.disposeWithMe(this._commandService.onCommandExecuted((i) => {
  885. i.id === Vi.id && i.params.unitId === at && (this._drawingManagerService.removeDrawingDataForUnit(at), this._docDrawingController.loadDrawingDataForUnit(at), this._drawingManagerService.initializeNotification(at));
  886. }));
  887. }
  888. _handleWriteCell() {
  889. this.disposeWithMe(this._sheetInterceptorService.writeCellInterceptor.intercept(Pi, {
  890. priority: 9999,
  891. handler: (i, e, n) => (rn(this._injector, { unitId: e.unitId, subUnitId: e.subUnitId, row: e.row, col: e.col }, i), n(i))
  892. }));
  893. }
  894. _initCellContentInterceptor() {
  895. this.disposeWithMe(
  896. this._sheetInterceptorService.intercept(
  897. Ui.CELL_CONTENT,
  898. {
  899. effect: Ur.Style,
  900. priority: Ai.CELL_IMAGE,
  901. handler: (i, e, n) => {
  902. var t;
  903. return i != null && i.p && ((t = i.p.drawingsOrder) != null && t.length) && (i.interceptorStyle || (i.interceptorStyle = {}), i.interceptorStyle.tr = { a: 0 }), n(i);
  904. }
  905. }
  906. )
  907. );
  908. }
  909. };
  910. Ct = fs([
  911. ye(0, H),
  912. ye(1, N(At)),
  913. ye(2, $e),
  914. ye(3, N(qe)),
  915. ye(4, ae),
  916. ye(5, N(zr)),
  917. ye(6, N(ci))
  918. ], Ct);
  919. var ps = Object.defineProperty, ws = Object.getOwnPropertyDescriptor, _s = (i, e, n, t) => {
  920. for (var r = t > 1 ? void 0 : t ? ws(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  921. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  922. return t && r && ps(e, n, r), r;
  923. }, Dn = (i, e) => (n, t) => e(n, t, i);
  924. let Rt = class extends ie {
  925. constructor(i, e) {
  926. super(), this._autoFillService = i, this._injector = e, this._initAutoFillHooks();
  927. }
  928. _initAutoFillHooks() {
  929. this.disposeWithMe(
  930. this._autoFillService.addHook({
  931. id: "sheet-cell-image-autofill",
  932. onBeforeSubmit: (i, e, n, t) => {
  933. new Ar(t).forValue((r, s, o) => {
  934. rn(this._injector, { unitId: i.unitId, subUnitId: i.subUnitId, row: r, col: s }, o);
  935. });
  936. }
  937. })
  938. );
  939. }
  940. };
  941. Rt = _s([
  942. Dn(0, N(di)),
  943. Dn(1, N(qe))
  944. ], Rt);
  945. var vs = Object.defineProperty, Ss = Object.getOwnPropertyDescriptor, Is = (i, e, n, t) => {
  946. for (var r = t > 1 ? void 0 : t ? Ss(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  947. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  948. return t && r && vs(e, n, r), r;
  949. }, pt = (i, e) => (n, t) => e(n, t, i);
  950. let bt = class extends ie {
  951. constructor(e, n, t, r) {
  952. super();
  953. J(this, "_isSetCursor", !1);
  954. this._hoverManagerService = e, this._renderManagerService = n, this._selectionsService = t, this._drawingRenderService = r;
  955. }
  956. _initHover() {
  957. }
  958. _initImageClick() {
  959. }
  960. };
  961. bt = Is([
  962. pt(0, N(li)),
  963. pt(1, N(Q)),
  964. pt(2, N(An)),
  965. pt(3, N(Tn))
  966. ], bt);
  967. var Cs = Object.defineProperty, Rs = Object.getOwnPropertyDescriptor, bs = (i, e, n, t) => {
  968. for (var r = t > 1 ? void 0 : t ? Rs(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  969. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  970. return t && r && Cs(e, n, r), r;
  971. }, Jt = (i, e) => (n, t) => e(n, t, i);
  972. let Dt = class extends ie {
  973. constructor(e, n, t) {
  974. super();
  975. J(this, "_copyInfo");
  976. this._sheetClipboardService = e, this._renderManagerService = n, this._sheetDrawingService = t, this._initCopyPaste();
  977. }
  978. _initCopyPaste() {
  979. this._sheetClipboardService.addClipboardHook({
  980. id: "SHEET_IMAGE_UI_PLUGIN",
  981. onBeforeCopy: (e, n, t) => this._collect(e, n, t),
  982. onPasteCells: (e, n, t, r) => {
  983. const { copyType: s = wn.COPY, pasteType: o } = r, { range: c } = e || {}, { range: d, unitId: g, subUnitId: a } = n;
  984. return this._generateMutations(d, { copyType: s, pasteType: o, copyRange: c, unitId: g, subUnitId: a });
  985. },
  986. onPastePlainText: (e, n) => ({ undos: [], redos: [] })
  987. });
  988. }
  989. _collect(e, n, t) {
  990. var h;
  991. const r = (h = this._renderManagerService.getRenderById(e)) == null ? void 0 : h.with(Z);
  992. if (!r) return;
  993. const s = r.attachRangeWithCoord(t);
  994. if (!s)
  995. return;
  996. const { startX: o, endX: c, startY: d, endY: g } = s, a = this._sheetDrawingService.getDrawingData(e, n), l = [];
  997. Object.keys(a).forEach((u) => {
  998. const m = a[u], { transform: p } = m;
  999. if (m.anchorType !== O.Both || !p)
  1000. return;
  1001. const { left: f = 0, top: w = 0, width: I = 0, height: S = 0 } = p, { drawingStartX: R, drawingEndX: v, drawingStartY: C, drawingEndY: _ } = {
  1002. drawingStartX: f,
  1003. drawingEndX: f + I,
  1004. drawingStartY: w,
  1005. drawingEndY: w + S
  1006. };
  1007. o <= R && v <= c && d <= C && _ <= g && l.push(m);
  1008. }), l.length && (this._copyInfo = {
  1009. drawings: l,
  1010. unitId: e,
  1011. subUnitId: n
  1012. });
  1013. }
  1014. // eslint-disable-next-line max-lines-per-function
  1015. _generateMutations(e, n) {
  1016. var x;
  1017. if (!this._copyInfo)
  1018. return { redos: [], undos: [] };
  1019. if ([
  1020. ut.SPECIAL_PASTE_COL_WIDTH,
  1021. ut.SPECIAL_PASTE_VALUE,
  1022. ut.SPECIAL_PASTE_FORMAT,
  1023. ut.SPECIAL_PASTE_FORMULA
  1024. ].includes(n.pasteType))
  1025. return { redos: [], undos: [] };
  1026. const { copyRange: r } = n;
  1027. if (!r)
  1028. return { redos: [], undos: [] };
  1029. const { drawings: s, unitId: o, subUnitId: c } = this._copyInfo, { ranges: [d, g], mapFunc: a } = ui([r, e]), { row: l, col: h } = a(d.startRow, d.startColumn), { row: u, col: m } = a(g.startRow, g.startColumn), p = (x = this._renderManagerService.getRenderById(o)) == null ? void 0 : x.with(Z);
  1030. if (!p)
  1031. return { redos: [], undos: [] };
  1032. const f = p.attachRangeWithCoord({
  1033. startRow: l,
  1034. endRow: l,
  1035. startColumn: h,
  1036. endColumn: h
  1037. }), w = p.attachRangeWithCoord({
  1038. startRow: u,
  1039. endRow: u,
  1040. startColumn: m,
  1041. endColumn: m
  1042. });
  1043. if (!f || !w)
  1044. return { redos: [], undos: [] };
  1045. const I = [], S = [], R = w.startX - f.startX, v = w.startY - f.startY, C = u - l, _ = m - h, y = n.copyType === wn.CUT, { _sheetDrawingService: M } = this;
  1046. return s.forEach((U) => {
  1047. const { transform: D, sheetTransform: b } = U;
  1048. if (!D)
  1049. return;
  1050. const P = {
  1051. ...U,
  1052. unitId: o,
  1053. subUnitId: c,
  1054. drawingId: y ? U.drawingId : Pe.generateRandomId(),
  1055. transform: {
  1056. ...D,
  1057. left: D.left + R,
  1058. top: D.top + v
  1059. },
  1060. sheetTransform: {
  1061. to: { ...b.to, row: b.to.row + C, column: b.to.column + _ },
  1062. from: { ...b.from, row: b.from.row + C, column: b.from.column + _ }
  1063. }
  1064. };
  1065. if (y) {
  1066. const { undo: A, redo: j, objects: B } = M.getBatchUpdateOp([P]);
  1067. I.push({
  1068. id: T.id,
  1069. params: {
  1070. unitId: o,
  1071. subUnitId: c,
  1072. type: E.UPDATE,
  1073. op: j,
  1074. objects: B
  1075. }
  1076. }), S.push({
  1077. id: T.id,
  1078. params: {
  1079. unitId: o,
  1080. subUnitId: c,
  1081. type: E.UPDATE,
  1082. op: A,
  1083. objects: B
  1084. }
  1085. });
  1086. } else {
  1087. const { undo: A, redo: j, objects: B } = M.getBatchAddOp([P]);
  1088. I.push({ id: T.id, params: { op: j, unitId: o, subUnitId: c, objects: B, type: E.INSERT } }), S.push({ id: T.id, params: { op: A, unitId: o, subUnitId: c, objects: B, type: E.REMOVE } });
  1089. }
  1090. }), {
  1091. redos: I,
  1092. undos: S
  1093. };
  1094. }
  1095. };
  1096. Dt = bs([
  1097. Jt(0, hi),
  1098. Jt(1, Q),
  1099. Jt(2, ee)
  1100. ], Dt);
  1101. var Ds = Object.defineProperty, Ms = Object.getOwnPropertyDescriptor, ys = (i, e, n, t) => {
  1102. for (var r = t > 1 ? void 0 : t ? Ms(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  1103. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  1104. return t && r && Ds(e, n, r), r;
  1105. }, ze = (i, e) => (n, t) => e(n, t, i);
  1106. let Mt = class extends ie {
  1107. constructor(i, e, n, t, r) {
  1108. super(), this._drawingManagerService = i, this._renderManagerService = e, this._permissionService = n, this._univerInstanceService = t, this._userManagerService = r, this._initDrawingVisible(), this._initDrawingEditable(), this._initViewPermissionChange(), this._initEditPermissionChange();
  1109. }
  1110. _initDrawingVisible() {
  1111. const i = this._univerInstanceService.getCurrentTypeOfUnit$(Y.UNIVER_SHEET);
  1112. this.disposeWithMe(
  1113. ht([i, this._userManagerService.currentUser$]).subscribe(([e, n]) => {
  1114. if (!e) {
  1115. this._drawingManagerService.setDrawingVisible(!1);
  1116. return;
  1117. }
  1118. e.activeSheet$.subscribe((t) => {
  1119. if (!t) {
  1120. this._drawingManagerService.setDrawingVisible(!1);
  1121. return;
  1122. }
  1123. const r = e.getUnitId(), s = t.getSheetId();
  1124. if (this._permissionService.composePermission([new In(r).id, new Xt(r, s).id]).every((c) => c.value))
  1125. this._drawingManagerService.setDrawingVisible(!0);
  1126. else {
  1127. this._drawingManagerService.setDrawingVisible(!1);
  1128. const c = e.getUnitId(), d = t.getSheetId(), g = this._drawingManagerService.getDrawingData(c, d), a = Object.values(g), l = this._renderManagerService.getRenderById(c), h = l == null ? void 0 : l.scene;
  1129. if (h == null)
  1130. return;
  1131. h.getAllObjectsByOrder().forEach((m) => {
  1132. m.classType === Ne.IMAGE && a.some((p) => m.oKey.includes(p.drawingId)) && h.removeObject(m);
  1133. });
  1134. }
  1135. });
  1136. })
  1137. );
  1138. }
  1139. _initDrawingEditable() {
  1140. const i = this._univerInstanceService.getCurrentTypeOfUnit$(Y.UNIVER_SHEET);
  1141. this.disposeWithMe(
  1142. ht([i, this._userManagerService.currentUser$]).subscribe(([e, n]) => {
  1143. if (!e) {
  1144. this._drawingManagerService.setDrawingEditable(!1);
  1145. return;
  1146. }
  1147. e.activeSheet$.subscribe((t) => {
  1148. if (!t) {
  1149. this._drawingManagerService.setDrawingEditable(!1);
  1150. return;
  1151. }
  1152. const r = e.getUnitId(), s = t.getSheetId();
  1153. if (this._permissionService.composePermission([new qt(r).id, new St(r, s).id]).every((c) => c.value))
  1154. this._drawingManagerService.setDrawingEditable(!0);
  1155. else {
  1156. this._drawingManagerService.setDrawingEditable(!1);
  1157. const c = e.getUnitId(), d = t.getSheetId(), g = this._drawingManagerService.getDrawingData(c, d), a = Object.values(g), l = this._renderManagerService.getRenderById(c), h = l == null ? void 0 : l.scene;
  1158. if (h == null)
  1159. return;
  1160. h.getAllObjectsByOrder().forEach((m) => {
  1161. m.classType === Ne.IMAGE && a.some((p) => m.oKey.includes(p.drawingId)) && h.detachTransformerFrom(m);
  1162. });
  1163. }
  1164. });
  1165. })
  1166. );
  1167. }
  1168. _initViewPermissionChange() {
  1169. const i = this._univerInstanceService.getCurrentTypeOfUnit$(Y.UNIVER_SHEET);
  1170. this.disposeWithMe(
  1171. ht([i, this._userManagerService.currentUser$]).subscribe(([e, n]) => {
  1172. e && e.activeSheet$.subscribe((t) => {
  1173. var l;
  1174. if (!t)
  1175. return;
  1176. const r = e.getUnitId(), s = t.getSheetId();
  1177. let o = !0;
  1178. const c = this._renderManagerService.getRenderById(r), d = c == null ? void 0 : c.scene;
  1179. if (d == null)
  1180. return;
  1181. const g = d.getTransformerByCreate(), a = this._permissionService.composePermission$([new In(r).id, new Xt(r, s).id]).pipe(Je((h) => h.every((u) => u.value)));
  1182. a == null || a.pipe(
  1183. ve((h) => h !== o),
  1184. gt()
  1185. ).subscribe({
  1186. next: (h) => {
  1187. o = h, this._drawingManagerService.setDrawingVisible(h);
  1188. const u = d.getAllObjectsByOrder(), m = this._drawingManagerService.getDrawingData(r, s), p = Object.values(m);
  1189. h ? this._drawingManagerService.addNotification(p) : (u.forEach((f) => {
  1190. f.classType === Ne.IMAGE && p.some((w) => f.oKey.includes(w.drawingId)) && d.removeObject(f);
  1191. }), g.clearSelectedObjects());
  1192. }
  1193. }), (l = this._permissionService.getPermissionPoint$(new Xt(r, s).id)) == null || l.pipe(
  1194. ve((h) => h.value !== o),
  1195. gt()
  1196. ).subscribe({
  1197. complete: () => {
  1198. o = !0, this._drawingManagerService.setDrawingVisible(!0);
  1199. const h = this._drawingManagerService.getDrawingData(r, s), u = Object.values(h);
  1200. this._drawingManagerService.addNotification(u);
  1201. }
  1202. });
  1203. });
  1204. })
  1205. );
  1206. }
  1207. _initEditPermissionChange() {
  1208. const i = this._univerInstanceService.getCurrentTypeOfUnit$(Y.UNIVER_SHEET);
  1209. this.disposeWithMe(
  1210. ht([i, this._userManagerService.currentUser$]).subscribe(([e, n]) => {
  1211. e && e.activeSheet$.subscribe((t) => {
  1212. var l;
  1213. if (!t)
  1214. return;
  1215. const r = e.getUnitId(), s = t.getSheetId();
  1216. let o = !0;
  1217. const c = this._renderManagerService.getRenderById(r), d = c == null ? void 0 : c.scene;
  1218. if (d == null)
  1219. return;
  1220. const g = d.getTransformerByCreate(), a = this._permissionService.composePermission$([new qt(r).id, new St(r, s).id]).pipe(Je((h) => h.every((u) => u.value)));
  1221. a == null || a.pipe(
  1222. ve((h) => h !== o),
  1223. gt()
  1224. ).subscribe({
  1225. next: (h) => {
  1226. o = h, this._drawingManagerService.setDrawingEditable(h);
  1227. const u = d.getAllObjectsByOrder(), m = this._drawingManagerService.getDrawingData(r, s), p = Object.values(m);
  1228. h ? (u.forEach((f) => {
  1229. f.classType === Ne.IMAGE && p.some((w) => f.oKey.includes(w.drawingId)) && d.attachTransformerTo(f);
  1230. }), this._drawingManagerService.addNotification(p)) : (u.forEach((f) => {
  1231. f.classType === Ne.IMAGE && p.some((w) => f.oKey.includes(w.drawingId)) && d.detachTransformerFrom(f);
  1232. }), g.clearSelectedObjects());
  1233. }
  1234. }), (l = this._permissionService.getPermissionPoint$(new St(r, s).id)) == null || l.pipe(
  1235. ve((h) => h.value !== o),
  1236. gt()
  1237. ).subscribe({
  1238. complete: () => {
  1239. o = !0;
  1240. const h = e.getUnitId(), u = t.getSheetId(), m = this._drawingManagerService.getDrawingData(h, u), p = Object.values(m), f = this._renderManagerService.getRenderById(h), w = f == null ? void 0 : f.scene;
  1241. if (w == null)
  1242. return;
  1243. this._drawingManagerService.setDrawingEditable(!0), w.getAllObjectsByOrder().forEach((S) => {
  1244. S.classType === Ne.IMAGE && p.some((R) => S.oKey.includes(R.drawingId)) && w.detachTransformerFrom(S);
  1245. });
  1246. }
  1247. });
  1248. });
  1249. })
  1250. );
  1251. }
  1252. };
  1253. Mt = ys([
  1254. ze(0, ae),
  1255. ze(1, Q),
  1256. ze(2, jr),
  1257. ze(3, $e),
  1258. ze(4, N(Nr))
  1259. ], Mt);
  1260. var Os = Object.defineProperty, Ts = Object.getOwnPropertyDescriptor, Es = (i, e, n, t) => {
  1261. for (var r = t > 1 ? void 0 : t ? Ts(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  1262. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  1263. return t && r && Os(e, n, r), r;
  1264. }, wt = (i, e) => (n, t) => e(n, t, i);
  1265. let yt = class extends ie {
  1266. constructor(i, e, n, t) {
  1267. super(), this._sheetPrintInterceptorService = i, this._drawingRenderService = e, this._drawingManagerService = n, this._renderManagerService = t, this._initPrinting();
  1268. }
  1269. _initPrinting() {
  1270. this.disposeWithMe(
  1271. this._sheetPrintInterceptorService.interceptor.intercept(
  1272. this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,
  1273. {
  1274. handler: (i, e, n) => {
  1275. const { unitId: t, scene: r, subUnitId: s } = e, o = this._drawingManagerService.getDrawingDataForUnit(t), c = o == null ? void 0 : o[s];
  1276. return c && c.order.forEach((d) => {
  1277. this._drawingRenderService.renderDrawing(c.data[d], r);
  1278. }), n();
  1279. }
  1280. }
  1281. )
  1282. ), this.disposeWithMe(
  1283. this._sheetPrintInterceptorService.interceptor.intercept(
  1284. this._sheetPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_RANGE,
  1285. {
  1286. handler: (i, e, n) => {
  1287. const { unitId: t, subUnitId: r } = e, s = this._renderManagerService.getRenderById(t);
  1288. if (!s)
  1289. return n(i);
  1290. const o = s.with(Z).getWorksheetSkeleton(r);
  1291. if (!o)
  1292. return n(i);
  1293. const c = this._drawingManagerService.getDrawingDataForUnit(t), d = c == null ? void 0 : c[e.subUnitId];
  1294. if (!d)
  1295. return n(i);
  1296. const { scaleX: g, scaleY: a } = s.scene, l = i ? { ...i } : { startColumn: 0, endColumn: 0, endRow: 0, startRow: 0 }, h = d.order.map((u) => d.data[u]).filter((u) => u.drawingType !== L.DRAWING_DOM);
  1297. return h.length ? (h.forEach((u) => {
  1298. if (!u.groupId && u.transform && Pe.isDefine(u.transform.left) && Pe.isDefine(u.transform.top) && Pe.isDefine(u.transform.width) && Pe.isDefine(u.transform.height)) {
  1299. const m = o.skeleton.getCellIndexByOffset(u.transform.left, u.transform.top, g, a, { x: 0, y: 0 }), p = o.skeleton.getCellIndexByOffset(u.transform.left + u.transform.width, u.transform.top + u.transform.height, g, a, { x: 0, y: 0 });
  1300. m.column < l.startColumn && (l.startColumn = m.column), m.row < l.startRow && (l.startRow = m.row), l.endRow < p.row && (l.endRow = p.row), l.endColumn < p.column && (l.endColumn = p.column);
  1301. }
  1302. }), n(l)) : n(i);
  1303. }
  1304. }
  1305. )
  1306. );
  1307. }
  1308. };
  1309. yt = Es([
  1310. wt(0, N(gi)),
  1311. wt(1, N(Tn)),
  1312. wt(2, ae),
  1313. wt(3, Q)
  1314. ], yt);
  1315. var Ps = Object.defineProperty, Us = Object.getOwnPropertyDescriptor, As = (i, e, n, t) => {
  1316. for (var r = t > 1 ? void 0 : t ? Us(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  1317. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  1318. return t && r && Ps(e, n, r), r;
  1319. }, pe = (i, e) => (n, t) => e(n, t, i);
  1320. const Ns = [
  1321. xn.id,
  1322. Bn.id,
  1323. $n.id,
  1324. kn.id,
  1325. Ln.id,
  1326. Fn.id,
  1327. Gn.id,
  1328. Vn.id,
  1329. Qt.id,
  1330. en.id,
  1331. Yn.id,
  1332. Hn.id,
  1333. Xn.id,
  1334. zn.id,
  1335. Kn.id,
  1336. Jn.id,
  1337. Zn.id,
  1338. qn.id,
  1339. Qn.id
  1340. ], js = [
  1341. Ni.id,
  1342. ji.id,
  1343. Wi.id,
  1344. xi.id,
  1345. Nn.id,
  1346. jn.id
  1347. ];
  1348. let sn = class extends ie {
  1349. constructor(i, e, n, t, r, s, o, c, d) {
  1350. super(), this._context = i, this._renderManagerService = e, this._commandService = n, this._selectionRenderService = t, this._skeletonManagerService = r, this._sheetInterceptorService = s, this._sheetDrawingService = o, this._drawingManagerService = c, this._univerInstanceService = d, this._sheetInterceptorListener(), this._commandListener(), this._sheetRefreshListener();
  1351. }
  1352. _sheetInterceptorListener() {
  1353. this.disposeWithMe(
  1354. this._sheetInterceptorService.interceptCommand({
  1355. getMutations: (i) => {
  1356. if (!Ns.includes(i.id))
  1357. return { redos: [], undos: [] };
  1358. if (i.params == null)
  1359. return { redos: [], undos: [] };
  1360. const e = i.id;
  1361. if (e === xn.id)
  1362. return this._moveRowInterceptor(i.params, "insert");
  1363. if ([Zn.id, qn.id, Qn.id].includes(e))
  1364. return this._moveRangeInterceptor(i.params);
  1365. if (e === Bn.id)
  1366. return this._moveColInterceptor(i.params, "insert");
  1367. if (e === $n.id)
  1368. return this._moveRowInterceptor(i.params, "remove");
  1369. if (e === kn.id)
  1370. return this._moveColInterceptor(i.params, "remove");
  1371. if (e === Ln.id) {
  1372. const { range: n } = i.params;
  1373. return this._getRangeMoveUndo(
  1374. n,
  1375. 0
  1376. /* deleteLeft */
  1377. );
  1378. } else if (e === Fn.id) {
  1379. const { range: n } = i.params;
  1380. return this._getRangeMoveUndo(
  1381. n,
  1382. 1
  1383. /* deleteUp */
  1384. );
  1385. } else if (e === Gn.id) {
  1386. const { range: n } = i.params;
  1387. return this._getRangeMoveUndo(
  1388. n,
  1389. 2
  1390. /* insertDown */
  1391. );
  1392. } else if (e === Vn.id) {
  1393. const { range: n } = i.params;
  1394. return this._getRangeMoveUndo(
  1395. n,
  1396. 3
  1397. /* insertRight */
  1398. );
  1399. } else if (e === Xn.id || e === zn.id) {
  1400. const n = i.params, { unitId: t, subUnitId: r, ranges: s } = n;
  1401. return this._getDrawingUndoForRowVisible(t, r, s);
  1402. } else if (e === Kn.id || e === Jn.id) {
  1403. const n = i.params, { unitId: t, subUnitId: r, ranges: s } = n;
  1404. return this._getDrawingUndoForColVisible(t, r, s);
  1405. } else if (e === Qt.id || e === en.id || e === Yn.id || e === Hn.id) {
  1406. const n = i.params, { unitId: t, subUnitId: r, ranges: s } = n, o = e === Qt.id || e === en.id;
  1407. return this._getDrawingUndoForRowAndColSize(t, r, s, o);
  1408. }
  1409. return { redos: [], undos: [] };
  1410. }
  1411. })
  1412. );
  1413. }
  1414. _getRangeMoveUndo(i, e) {
  1415. const n = V(this._univerInstanceService);
  1416. if (n == null)
  1417. return { redos: [], undos: [] };
  1418. const t = n.unitId, r = n.subUnitId, s = [], o = [], c = this._sheetDrawingService.getDrawingData(t, r), d = [], g = [];
  1419. if (Object.keys(c).forEach((a) => {
  1420. const l = c[a], { updateDrawings: h, deleteDrawings: u } = this._getUpdateOrDeleteDrawings(i, e, l);
  1421. d.push(...h), g.push(...u);
  1422. }), d.length === 0 && g.length === 0)
  1423. return { redos: [], undos: [] };
  1424. if (d.length > 0) {
  1425. const a = this._sheetDrawingService.getBatchUpdateOp(d), { undo: l, redo: h, objects: u } = a;
  1426. s.push({ id: T.id, params: { unitId: t, subUnitId: r, op: h, objects: u, type: E.UPDATE } }), o.push({ id: T.id, params: { unitId: t, subUnitId: r, op: l, objects: u, type: E.UPDATE } });
  1427. }
  1428. if (g.length > 0) {
  1429. const a = this._sheetDrawingService.getBatchRemoveOp(g), l = a.undo, h = a.redo, u = a.objects;
  1430. s.push({ id: T.id, params: { unitId: t, subUnitId: r, op: h, objects: u, type: E.REMOVE } }), o.push({ id: T.id, params: { unitId: t, subUnitId: r, op: l, objects: u, type: E.INSERT } });
  1431. }
  1432. return s.push({ id: F.id, params: [t] }), o.push({ id: F.id, params: [t] }), {
  1433. redos: s,
  1434. undos: o
  1435. };
  1436. }
  1437. _getUpdateOrDeleteDrawings(i, e, n) {
  1438. const t = [], r = [], { sheetTransform: s, anchorType: o = O.Position, transform: c, unitId: d, subUnitId: g, drawingId: a } = n, { from: l, to: h } = s, { row: u, column: m } = l, { row: p, column: f } = h;
  1439. if (s == null || c == null)
  1440. return {
  1441. updateDrawings: t,
  1442. deleteDrawings: r
  1443. };
  1444. const { startRow: w, endRow: I, startColumn: S, endColumn: R } = i;
  1445. let v = null, C = null;
  1446. if (e === 0 && u >= w && p <= I)
  1447. if (m >= S && f <= R)
  1448. r.push({ unitId: d, subUnitId: g, drawingId: a });
  1449. else {
  1450. const _ = this._shrinkCol(s, c, S, R, o);
  1451. v = _ == null ? void 0 : _.newSheetTransform, C = _ == null ? void 0 : _.newTransform;
  1452. }
  1453. else if (e === 1 && m >= S && f <= R)
  1454. if (u >= w && p <= I)
  1455. r.push({ unitId: d, subUnitId: g, drawingId: a });
  1456. else {
  1457. const _ = this._shrinkRow(s, c, w, I, o);
  1458. v = _ == null ? void 0 : _.newSheetTransform, C = _ == null ? void 0 : _.newTransform;
  1459. }
  1460. else if (e === 2) {
  1461. const _ = this._expandRow(s, c, w, I, o);
  1462. v = _ == null ? void 0 : _.newSheetTransform, C = _ == null ? void 0 : _.newTransform;
  1463. } else if (e === 3) {
  1464. const _ = this._expandCol(s, c, S, R, o);
  1465. v = _ == null ? void 0 : _.newSheetTransform, C = _ == null ? void 0 : _.newTransform;
  1466. }
  1467. if (v != null && C != null) {
  1468. const _ = z(v, this._selectionRenderService, this._skeletonManagerService);
  1469. t.push({ ...n, sheetTransform: v, transform: _ });
  1470. }
  1471. return { updateDrawings: t, deleteDrawings: r };
  1472. }
  1473. _remainDrawingSize(i, e, n) {
  1474. const t = k({ ...i }, this._selectionRenderService);
  1475. t != null && e.push({
  1476. ...n,
  1477. sheetTransform: t
  1478. });
  1479. }
  1480. // eslint-disable-next-line max-lines-per-function
  1481. _getDrawingUndoForColVisible(i, e, n) {
  1482. const t = this._drawingManagerService.getDrawingData(i, e), r = [], s = [];
  1483. if (Object.keys(t).forEach((a) => {
  1484. const l = t[a], { sheetTransform: h, transform: u, anchorType: m = O.Position } = l;
  1485. if (m === O.None)
  1486. this._remainDrawingSize(u, r, l);
  1487. else {
  1488. const { from: p, to: f } = h, { row: w, column: I } = p, { row: S, column: R } = f;
  1489. for (let v = 0; v < n.length; v++) {
  1490. const C = n[v], { startRow: _, endRow: y, startColumn: M, endColumn: x } = C;
  1491. if (R < M)
  1492. continue;
  1493. if (m === O.Position) {
  1494. let b = null, P = null;
  1495. if (I >= M && I <= x) {
  1496. const A = this._skeletonManagerService.attachRangeWithCoord({ startColumn: I, endColumn: x, startRow: p.row, endRow: f.row });
  1497. if (A == null)
  1498. return;
  1499. P = { ...u, left: A.startX };
  1500. }
  1501. if (P != null && (b = k(P, this._selectionRenderService), b != null && P != null)) {
  1502. r.push({ ...l, sheetTransform: b, transform: P });
  1503. break;
  1504. }
  1505. this._remainDrawingSize(u, r, l);
  1506. continue;
  1507. }
  1508. if (I >= M && R <= x)
  1509. continue;
  1510. let U = null, D = null;
  1511. if (I >= M && I <= x) {
  1512. const b = this._skeletonManagerService.attachRangeWithCoord({ startColumn: I, endColumn: x, startRow: p.row, endRow: f.row });
  1513. if (b == null)
  1514. return;
  1515. D = {
  1516. ...u,
  1517. left: (b == null ? void 0 : b.startX) || 0,
  1518. width: ((u == null ? void 0 : u.width) || 0) - b.endX + b.startX
  1519. };
  1520. } else if (R >= M && R <= x) {
  1521. const b = this._skeletonManagerService.attachRangeWithCoord({ startColumn: M, endColumn: R, startRow: p.row, endRow: f.row });
  1522. if (b == null)
  1523. return;
  1524. D = {
  1525. ...u,
  1526. left: b.startX - ((u == null ? void 0 : u.width) || 0)
  1527. };
  1528. } else {
  1529. const b = this._skeletonManagerService.attachRangeWithCoord({ startColumn: M, endColumn: x, startRow: p.row, endRow: f.row });
  1530. if (b == null)
  1531. return;
  1532. if (D = {
  1533. ...u,
  1534. width: ((u == null ? void 0 : u.width) || 0) - b.endX + b.startX
  1535. }, U = k(D, this._selectionRenderService), U != null && D != null) {
  1536. s.push({ ...l, sheetTransform: U, transform: D });
  1537. break;
  1538. }
  1539. }
  1540. if (D != null && (U = k(D, this._selectionRenderService)), D != null && U != null) {
  1541. r.push({ ...l, sheetTransform: U, transform: D });
  1542. break;
  1543. } else
  1544. this._remainDrawingSize(u, r, l);
  1545. }
  1546. }
  1547. }), r.length === 0 && s.length === 0)
  1548. return { redos: [], undos: [] };
  1549. const { redos: o, undos: c } = this._createUndoAndRedoMutation(i, e, r), d = [], g = [];
  1550. if (s.length > 0) {
  1551. const { redos: a, undos: l } = this._createUndoAndRedoMutation(i, e, s);
  1552. d.push(...a), g.push(...l);
  1553. }
  1554. return {
  1555. redos: o,
  1556. undos: c,
  1557. preRedos: d,
  1558. preUndos: g
  1559. };
  1560. }
  1561. _createUndoAndRedoMutation(i, e, n) {
  1562. const t = this._sheetDrawingService.getBatchUpdateOp(n), { undo: r, redo: s, objects: o } = t, c = [
  1563. { id: T.id, params: { unitId: i, subUnitId: e, op: s, objects: o, type: E.UPDATE } },
  1564. { id: F.id, params: [i] }
  1565. ], d = [
  1566. { id: T.id, params: { unitId: i, subUnitId: e, op: r, objects: o, type: E.UPDATE } },
  1567. { id: F.id, params: [i] }
  1568. ];
  1569. return {
  1570. redos: c,
  1571. undos: d
  1572. };
  1573. }
  1574. // eslint-disable-next-line max-lines-per-function
  1575. _getDrawingUndoForRowVisible(i, e, n) {
  1576. const t = this._drawingManagerService.getDrawingData(i, e), r = [], s = [];
  1577. if (Object.keys(t).forEach((a) => {
  1578. const l = t[a], { sheetTransform: h, transform: u, anchorType: m = O.Position } = l;
  1579. if (m === O.None)
  1580. this._remainDrawingSize(u, r, l);
  1581. else {
  1582. const { from: p, to: f } = h, { row: w, column: I } = p, { row: S, column: R } = f;
  1583. for (let v = 0; v < n.length; v++) {
  1584. const C = n[v], { startRow: _, endRow: y, startColumn: M, endColumn: x } = C;
  1585. if (S < _)
  1586. continue;
  1587. if (m === O.Position) {
  1588. let b = null, P = null;
  1589. if (w >= _ && w <= y) {
  1590. const A = this._skeletonManagerService.attachRangeWithCoord({ startColumn: p.column, endColumn: f.column, startRow: w, endRow: y });
  1591. if (A == null)
  1592. return;
  1593. P = { ...u, top: A.startY };
  1594. }
  1595. if (P != null && (b = k(P, this._selectionRenderService), b != null && P != null)) {
  1596. r.push({ ...l, sheetTransform: b, transform: P });
  1597. break;
  1598. }
  1599. this._remainDrawingSize(u, r, l);
  1600. continue;
  1601. }
  1602. if (w >= _ && S <= y)
  1603. continue;
  1604. let U = null, D = null;
  1605. if (w >= _ && w <= y) {
  1606. const b = this._skeletonManagerService.attachRangeWithCoord({ startColumn: p.column, endColumn: f.column, startRow: w, endRow: y });
  1607. if (b == null)
  1608. return;
  1609. D = {
  1610. ...u,
  1611. top: (b == null ? void 0 : b.startY) || 0,
  1612. height: ((u == null ? void 0 : u.height) || 0) - b.endY + b.startY
  1613. };
  1614. } else if (S >= _ && S <= y) {
  1615. const b = this._skeletonManagerService.attachRangeWithCoord({ startColumn: p.column, endColumn: f.column, startRow: _, endRow: S });
  1616. if (b == null)
  1617. return;
  1618. D = {
  1619. ...u,
  1620. top: b.startY - ((u == null ? void 0 : u.height) || 0)
  1621. };
  1622. } else {
  1623. const b = this._skeletonManagerService.attachRangeWithCoord({ startColumn: p.column, endColumn: f.column, startRow: _, endRow: y });
  1624. if (b == null)
  1625. return;
  1626. if (D = {
  1627. ...u,
  1628. height: ((u == null ? void 0 : u.height) || 0) - b.endY + b.startY
  1629. }, U = k(D, this._selectionRenderService), U != null && D != null) {
  1630. s.push({ ...l, sheetTransform: U, transform: D });
  1631. break;
  1632. }
  1633. }
  1634. if (D != null && (U = k(D, this._selectionRenderService)), D != null && U != null) {
  1635. r.push({ ...l, sheetTransform: U, transform: D });
  1636. break;
  1637. } else
  1638. this._remainDrawingSize(u, r, l);
  1639. }
  1640. }
  1641. }), r.length === 0 && s.length === 0)
  1642. return { redos: [], undos: [] };
  1643. const { redos: o, undos: c } = this._createUndoAndRedoMutation(i, e, r), d = [], g = [];
  1644. if (s.length > 0) {
  1645. const { redos: a, undos: l } = this._createUndoAndRedoMutation(i, e, s);
  1646. d.push(...a), g.push(...l);
  1647. }
  1648. return {
  1649. redos: o,
  1650. undos: c,
  1651. preRedos: d,
  1652. preUndos: g
  1653. };
  1654. }
  1655. _getDrawingUndoForRowAndColSize(i, e, n, t) {
  1656. const r = this._drawingManagerService.getDrawingData(i, e), s = [];
  1657. return Object.keys(r).forEach((o) => {
  1658. const c = r[o], { sheetTransform: d, transform: g, anchorType: a = O.Position } = c;
  1659. if (a === O.None)
  1660. this._remainDrawingSize(g, s, c);
  1661. else {
  1662. const { from: l, to: h } = d, { row: u, column: m } = l, { row: p, column: f } = h;
  1663. for (let w = 0; w < n.length; w++) {
  1664. const I = n[w], { startRow: S, endRow: R, startColumn: v, endColumn: C } = I;
  1665. if (p < S || f < v)
  1666. continue;
  1667. if (a === O.Position && (u <= S && p >= R || m <= v && f >= C)) {
  1668. this._remainDrawingSize(g, s, c);
  1669. continue;
  1670. }
  1671. const _ = z(
  1672. { ...d },
  1673. this._selectionRenderService,
  1674. this._skeletonManagerService
  1675. );
  1676. if (_ != null) {
  1677. s.push({
  1678. ...c,
  1679. transform: _
  1680. });
  1681. break;
  1682. }
  1683. }
  1684. }
  1685. }), s.length === 0 ? { redos: [], undos: [] } : this._createUndoAndRedoMutation(i, e, s);
  1686. }
  1687. _getUnitIdAndSubUnitId(i, e) {
  1688. let n, t;
  1689. if (e === "insert")
  1690. n = i.unitId, t = i.subUnitId;
  1691. else {
  1692. const r = V(this._univerInstanceService);
  1693. if (r == null)
  1694. return;
  1695. n = r.unitId, t = r.subUnitId;
  1696. }
  1697. return { unitId: n, subUnitId: t };
  1698. }
  1699. _moveRangeInterceptor(i) {
  1700. var S, R;
  1701. const { toRange: e, fromRange: n } = i, t = V(this._univerInstanceService);
  1702. if (!t)
  1703. return { redos: [], undos: [] };
  1704. const { unitId: r, subUnitId: s } = t, o = (R = (S = this._renderManagerService.getRenderById(r)) == null ? void 0 : S.with(Z)) == null ? void 0 : R.getCurrentSkeleton();
  1705. if (!o)
  1706. return { redos: [], undos: [] };
  1707. const c = Pn(o, n);
  1708. if (!c)
  1709. return { redos: [], undos: [] };
  1710. const { startX: d, endX: g, startY: a, endY: l } = c, h = this._sheetDrawingService.getDrawingData(r, s), u = [];
  1711. Object.keys(h).forEach((v) => {
  1712. const C = h[v];
  1713. if (C.anchorType !== O.Both)
  1714. return;
  1715. const { transform: _ } = C;
  1716. if (!_)
  1717. return;
  1718. const { left: y = 0, top: M = 0, width: x = 0, height: U = 0 } = _, { drawingStartX: D, drawingEndX: b, drawingStartY: P, drawingEndY: A } = {
  1719. drawingStartX: y,
  1720. drawingEndX: y + x,
  1721. drawingStartY: M,
  1722. drawingEndY: M + U
  1723. };
  1724. d <= D && b <= g && a <= P && A <= l && u.push(C);
  1725. });
  1726. const m = [], p = [], f = e.startRow - n.startRow, w = e.startColumn - n.startColumn, I = u.map((v) => {
  1727. const C = v.sheetTransform, _ = {
  1728. to: { ...C.to, row: C.to.row + f, column: C.to.column + w },
  1729. from: { ...C.from, row: C.from.row + f, column: C.from.column + w }
  1730. }, y = z(_, this._selectionRenderService, this._skeletonManagerService);
  1731. return {
  1732. unitId: r,
  1733. subUnitId: s,
  1734. drawingId: v.drawingId,
  1735. transform: y,
  1736. sheetTransform: _
  1737. };
  1738. });
  1739. if (I.length) {
  1740. const v = this._sheetDrawingService.getBatchUpdateOp(I), { undo: C, redo: _, objects: y } = v;
  1741. m.push({ id: T.id, params: { unitId: r, subUnitId: s, op: _, objects: y, type: E.UPDATE } }), p.push({ id: T.id, params: { unitId: r, subUnitId: s, op: C, objects: y, type: E.UPDATE } });
  1742. }
  1743. return { redos: m, undos: p };
  1744. }
  1745. _moveRowInterceptor(i, e) {
  1746. const n = this._getUnitIdAndSubUnitId(i, e);
  1747. if (n == null)
  1748. return { redos: [], undos: [] };
  1749. const { unitId: t, subUnitId: r } = n, { range: s } = i, o = s.startRow, c = s.endRow, d = [], g = [], a = this._sheetDrawingService.getDrawingData(t, r), l = [], h = [];
  1750. if (Object.keys(a).forEach((u) => {
  1751. const m = a[u], { sheetTransform: p, transform: f, anchorType: w = O.Position } = m;
  1752. if (p == null || f == null)
  1753. return;
  1754. let I, S;
  1755. if (e === "insert") {
  1756. const v = this._expandRow(p, f, o, c, w);
  1757. I = v == null ? void 0 : v.newSheetTransform, S = v == null ? void 0 : v.newTransform;
  1758. } else {
  1759. const { from: v, to: C } = p, { row: _ } = v, { row: y } = C;
  1760. if (w === O.Both && _ >= o && y <= c)
  1761. h.push({ unitId: t, subUnitId: r, drawingId: u });
  1762. else {
  1763. const M = this._shrinkRow(p, f, o, c, w);
  1764. I = M == null ? void 0 : M.newSheetTransform, S = M == null ? void 0 : M.newTransform;
  1765. }
  1766. }
  1767. if (!I || !S)
  1768. return;
  1769. const R = { unitId: t, subUnitId: r, drawingId: u, transform: S, sheetTransform: I };
  1770. l.push(R);
  1771. }), l.length === 0 && h.length === 0)
  1772. return { redos: [], undos: [] };
  1773. if (l.length > 0) {
  1774. const u = this._sheetDrawingService.getBatchUpdateOp(l), { undo: m, redo: p, objects: f } = u;
  1775. d.push({ id: T.id, params: { unitId: t, subUnitId: r, op: p, objects: f, type: E.UPDATE } }), g.push({ id: T.id, params: { unitId: t, subUnitId: r, op: m, objects: f, type: E.UPDATE } });
  1776. }
  1777. if (h.length > 0) {
  1778. const u = this._sheetDrawingService.getBatchRemoveOp(h), m = u.undo, p = u.redo, f = u.objects;
  1779. d.push({ id: T.id, params: { unitId: t, subUnitId: r, op: p, objects: f, type: E.REMOVE } }), g.push({ id: T.id, params: { unitId: t, subUnitId: r, op: m, objects: f, type: E.INSERT } });
  1780. }
  1781. return d.push({ id: F.id, params: [t] }), g.push({ id: F.id, params: [t] }), {
  1782. redos: d,
  1783. undos: g
  1784. };
  1785. }
  1786. _moveColInterceptor(i, e) {
  1787. const n = this._getUnitIdAndSubUnitId(i, e);
  1788. if (n == null)
  1789. return { redos: [], undos: [] };
  1790. const { unitId: t, subUnitId: r } = n, { range: s } = i, o = s.startColumn, c = s.endColumn, d = [], g = [], a = this._sheetDrawingService.getDrawingData(t, r), l = [], h = [];
  1791. if (Object.keys(a).forEach((u) => {
  1792. const m = a[u], { sheetTransform: p, transform: f, anchorType: w = O.Position } = m;
  1793. if (p == null || f == null)
  1794. return;
  1795. let I, S;
  1796. if (e === "insert") {
  1797. const v = this._expandCol(p, f, o, c, w);
  1798. I = v == null ? void 0 : v.newSheetTransform, S = v == null ? void 0 : v.newTransform;
  1799. } else {
  1800. const { from: v, to: C } = p, { column: _ } = v, { column: y } = C;
  1801. if (w === O.Both && _ >= o && y <= c)
  1802. h.push({ unitId: t, subUnitId: r, drawingId: u });
  1803. else {
  1804. const M = this._shrinkCol(p, f, o, c, w);
  1805. I = M == null ? void 0 : M.newSheetTransform, S = M == null ? void 0 : M.newTransform;
  1806. }
  1807. }
  1808. if (!I || !S)
  1809. return;
  1810. const R = { unitId: t, subUnitId: r, drawingId: u, transform: S, sheetTransform: I };
  1811. l.push(R);
  1812. }), l.length === 0 && h.length === 0)
  1813. return { redos: [], undos: [] };
  1814. if (l.length > 0) {
  1815. const u = this._sheetDrawingService.getBatchUpdateOp(l), { undo: m, redo: p, objects: f } = u;
  1816. d.push({ id: T.id, params: { unitId: t, subUnitId: r, op: p, objects: f, type: E.UPDATE } }), g.push({ id: T.id, params: { unitId: t, subUnitId: r, op: m, objects: f, type: E.UPDATE } });
  1817. }
  1818. if (h.length > 0) {
  1819. const u = this._sheetDrawingService.getBatchRemoveOp(h), m = u.undo, p = u.redo, f = u.objects;
  1820. d.push({ id: T.id, params: { unitId: t, subUnitId: r, op: p, objects: f, type: E.REMOVE } }), g.push({ id: T.id, params: { unitId: t, subUnitId: r, op: m, objects: f, type: E.INSERT } });
  1821. }
  1822. return d.push({ id: F.id, params: [t] }), g.push({ id: F.id, params: [t] }), { redos: d, undos: g };
  1823. }
  1824. _expandCol(i, e, n, t, r = O.Position) {
  1825. const s = t - n + 1, { from: o, to: c } = i, { column: d } = o, { column: g } = c;
  1826. if (r === O.None)
  1827. return {
  1828. newSheetTransform: k({ ...e }, this._selectionRenderService),
  1829. newTransform: e
  1830. };
  1831. let a = null, l = null;
  1832. if (d >= n) {
  1833. const h = this._skeletonManagerService.attachRangeWithCoord({ startColumn: n, endColumn: t, startRow: o.row, endRow: c.row });
  1834. if (h == null)
  1835. return;
  1836. l = { ...e, left: (e.left || 0) + h.endX - h.startX }, a = k(l, this._selectionRenderService);
  1837. } else if (g >= t)
  1838. if (r === O.Both)
  1839. a = {
  1840. from: { ...o },
  1841. to: { ...c, column: g + s }
  1842. }, l = z(a, this._selectionRenderService, this._skeletonManagerService);
  1843. else
  1844. return {
  1845. newSheetTransform: k({ ...e }, this._selectionRenderService),
  1846. newTransform: e
  1847. };
  1848. return a != null && l != null ? {
  1849. newSheetTransform: a,
  1850. newTransform: l
  1851. } : null;
  1852. }
  1853. _shrinkCol(i, e, n, t, r = O.Position) {
  1854. const s = t - n + 1, { from: o, to: c } = i, { column: d } = o, { column: g } = c;
  1855. if (r === O.None)
  1856. return {
  1857. newSheetTransform: k({ ...e }, this._selectionRenderService),
  1858. newTransform: e
  1859. };
  1860. let a = null, l = null;
  1861. if (d > t)
  1862. a = {
  1863. from: { ...o, column: d - s },
  1864. to: { ...c, column: g - s }
  1865. }, l = z(a, this._selectionRenderService, this._skeletonManagerService);
  1866. else {
  1867. if (d >= n && g <= t)
  1868. return null;
  1869. if (d < n && g > t)
  1870. if (r === O.Both)
  1871. a = {
  1872. from: { ...o },
  1873. to: { ...c, column: g - s }
  1874. }, l = z(a, this._selectionRenderService, this._skeletonManagerService);
  1875. else
  1876. return {
  1877. newSheetTransform: k({ ...e }, this._selectionRenderService),
  1878. newTransform: e
  1879. };
  1880. else if (d >= n && d <= t) {
  1881. if (d === n)
  1882. l = { ...e, left: (e.left || 0) - i.from.columnOffset };
  1883. else {
  1884. const h = this._skeletonManagerService.attachRangeWithCoord({ startColumn: n, endColumn: d - 1, startRow: o.row, endRow: c.row });
  1885. if (h == null)
  1886. return;
  1887. l = { ...e, left: (e.left || 0) - h.endX + h.startX - i.from.columnOffset };
  1888. }
  1889. a = k(l, this._selectionRenderService);
  1890. } else if (g >= n && g <= t && r === O.Both) {
  1891. const h = this._skeletonManagerService.attachRangeWithCoord({
  1892. startColumn: n - 1,
  1893. endColumn: n - 1,
  1894. startRow: o.row,
  1895. endRow: c.row
  1896. });
  1897. if (h == null)
  1898. return;
  1899. a = {
  1900. from: { ...o },
  1901. to: { ...c, column: n - 1, columnOffset: h.endX - h.startX }
  1902. }, l = z(a, this._selectionRenderService, this._skeletonManagerService);
  1903. }
  1904. }
  1905. return a != null && l != null ? {
  1906. newSheetTransform: a,
  1907. newTransform: l
  1908. } : null;
  1909. }
  1910. _expandRow(i, e, n, t, r = O.Position) {
  1911. const s = t - n + 1, { from: o, to: c } = i, { row: d } = o, { row: g } = c;
  1912. if (r === O.None)
  1913. return {
  1914. newSheetTransform: k({ ...e }, this._selectionRenderService),
  1915. newTransform: e
  1916. };
  1917. let a = null, l = null;
  1918. if (d >= n) {
  1919. const h = this._skeletonManagerService.attachRangeWithCoord({ startRow: n, endRow: t, startColumn: o.column, endColumn: c.column });
  1920. if (h == null)
  1921. return;
  1922. l = { ...e, top: (e.top || 0) + h.endY - h.startY }, a = k(l, this._selectionRenderService);
  1923. } else if (g >= t)
  1924. if (r === O.Both)
  1925. a = {
  1926. from: { ...o },
  1927. to: {
  1928. ...c,
  1929. row: g + s
  1930. }
  1931. }, l = z(a, this._selectionRenderService, this._skeletonManagerService);
  1932. else
  1933. return {
  1934. newSheetTransform: k({ ...e }, this._selectionRenderService),
  1935. newTransform: e
  1936. };
  1937. return a != null && l != null ? {
  1938. newSheetTransform: a,
  1939. newTransform: l
  1940. } : null;
  1941. }
  1942. _shrinkRow(i, e, n, t, r = O.Position) {
  1943. const s = t - n + 1, { from: o, to: c } = i, { row: d } = o, { row: g } = c;
  1944. if (r === O.None)
  1945. return {
  1946. newSheetTransform: k({ ...e }, this._selectionRenderService),
  1947. newTransform: e
  1948. };
  1949. let a = null, l = null;
  1950. if (d > t)
  1951. a = {
  1952. from: { ...o, row: d - s },
  1953. to: { ...c, row: g - s }
  1954. }, l = z(a, this._selectionRenderService, this._skeletonManagerService);
  1955. else {
  1956. if (d >= n && g <= t)
  1957. return null;
  1958. if (d < n && g > t)
  1959. if (r === O.Both)
  1960. a = {
  1961. from: { ...o },
  1962. to: { ...c, row: g - s }
  1963. }, l = z(a, this._selectionRenderService, this._skeletonManagerService);
  1964. else
  1965. return {
  1966. newSheetTransform: k({ ...e }, this._selectionRenderService),
  1967. newTransform: e
  1968. };
  1969. else if (d >= n && d <= t) {
  1970. if (d === n)
  1971. l = { ...e, top: (e.top || 0) - i.from.rowOffset };
  1972. else {
  1973. const h = this._skeletonManagerService.attachRangeWithCoord({ startRow: n, endRow: d - 1, startColumn: o.column, endColumn: c.column });
  1974. if (h == null)
  1975. return;
  1976. l = { ...e, top: (e.top || 0) - h.endY + h.startY - i.from.rowOffset };
  1977. }
  1978. a = k(l, this._selectionRenderService);
  1979. } else if (g >= n && g <= t && r === O.Both) {
  1980. const h = this._skeletonManagerService.attachRangeWithCoord({ startColumn: o.column, endColumn: o.column, startRow: n - 1, endRow: n - 1 });
  1981. if (h == null)
  1982. return;
  1983. a = {
  1984. from: { ...o },
  1985. to: { ...c, row: n - 1, rowOffset: h.endY - h.startY }
  1986. }, l = z(a, this._selectionRenderService, this._skeletonManagerService);
  1987. }
  1988. }
  1989. return a != null && l != null ? {
  1990. newSheetTransform: a,
  1991. newTransform: l
  1992. } : null;
  1993. }
  1994. _commandListener() {
  1995. this.disposeWithMe(
  1996. this._commandService.onCommandExecuted((i) => {
  1997. i.id === Bi.id && setTimeout(() => {
  1998. const e = i.params, { unitId: n, subUnitId: t } = e, r = this._drawingManagerService.drawingManagerData, s = [], o = [];
  1999. Object.keys(r).forEach((c) => {
  2000. const d = r[c];
  2001. d != null && Object.keys(d).forEach((g) => {
  2002. const a = d[g].data;
  2003. a != null && Object.keys(a).forEach((l) => {
  2004. if (c === n && g === t) {
  2005. const h = a[l];
  2006. h.transform = z(h.sheetTransform, this._selectionRenderService, this._skeletonManagerService), s.push(a[l]);
  2007. } else
  2008. o.push(a[l]);
  2009. });
  2010. });
  2011. }), this._drawingManagerService.removeNotification(o), this._drawingManagerService.addNotification(s);
  2012. }, 0);
  2013. })
  2014. );
  2015. }
  2016. _sheetRefreshListener() {
  2017. this.disposeWithMe(
  2018. this._commandService.onCommandExecuted((i) => {
  2019. js.includes(i.id) && requestIdleCallback(() => {
  2020. const e = i.params, { unitId: n, subUnitId: t, ranges: r } = e;
  2021. this._refreshDrawingTransform(n, t, r);
  2022. });
  2023. })
  2024. );
  2025. }
  2026. _refreshDrawingTransform(i, e, n) {
  2027. const t = this._drawingManagerService.getDrawingData(i, e), r = [];
  2028. Object.keys(t).forEach((s) => {
  2029. const o = t[s], { sheetTransform: c, transform: d, anchorType: g = O.Position } = o;
  2030. if (g === O.None)
  2031. return !0;
  2032. const { from: a, to: l } = c, { row: h, column: u } = a, { row: m, column: p } = l;
  2033. for (let f = 0; f < n.length; f++) {
  2034. const w = n[f], { startRow: I, endRow: S, startColumn: R, endColumn: v } = w;
  2035. if (Wr.intersects(
  2036. {
  2037. startRow: I,
  2038. endRow: S,
  2039. startColumn: R,
  2040. endColumn: v
  2041. },
  2042. {
  2043. startRow: h,
  2044. endRow: m,
  2045. startColumn: u,
  2046. endColumn: p
  2047. }
  2048. ) || h > S || u > v) {
  2049. const C = g === O.Position, _ = z(c, this._selectionRenderService, this._skeletonManagerService);
  2050. r.push({
  2051. ...o,
  2052. transform: {
  2053. ..._,
  2054. width: C ? d == null ? void 0 : d.width : _ == null ? void 0 : _.width,
  2055. height: C ? d == null ? void 0 : d.height : _ == null ? void 0 : _.height
  2056. }
  2057. });
  2058. break;
  2059. }
  2060. }
  2061. }), r.length !== 0 && (this._drawingManagerService.refreshTransform(r), this._commandService.syncExecuteCommand(F.id, [i]));
  2062. }
  2063. };
  2064. sn = As([
  2065. pe(1, Q),
  2066. pe(2, H),
  2067. pe(3, Qe),
  2068. pe(4, N(Z)),
  2069. pe(5, N(At)),
  2070. pe(6, ee),
  2071. pe(7, ae),
  2072. pe(8, $e)
  2073. ], sn);
  2074. var ne = function() {
  2075. return ne = Object.assign || function(i) {
  2076. for (var e, n = 1, t = arguments.length; n < t; n++) {
  2077. e = arguments[n];
  2078. for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (i[r] = e[r]);
  2079. }
  2080. return i;
  2081. }, ne.apply(this, arguments);
  2082. }, Ws = function(i, e) {
  2083. var n = {};
  2084. for (var t in i) Object.prototype.hasOwnProperty.call(i, t) && e.indexOf(t) < 0 && (n[t] = i[t]);
  2085. if (i != null && typeof Object.getOwnPropertySymbols == "function")
  2086. for (var r = 0, t = Object.getOwnPropertySymbols(i); r < t.length; r++)
  2087. e.indexOf(t[r]) < 0 && Object.prototype.propertyIsEnumerable.call(i, t[r]) && (n[t[r]] = i[t[r]]);
  2088. return n;
  2089. }, lr = tr(function(i, e) {
  2090. var n = i.icon, t = i.id, r = i.className, s = i.extend, o = Ws(i, ["icon", "id", "className", "extend"]), c = "univerjs-icon univerjs-icon-".concat(t, " ").concat(r || "").trim(), d = Fi("_".concat($s()));
  2091. return ur(n, "".concat(t), { defIds: n.defIds, idSuffix: d.current }, ne({ ref: e, className: c }, o), s);
  2092. });
  2093. function ur(i, e, n, t, r) {
  2094. return nr(i.tag, ne(ne({ key: e }, xs(i, n, r)), t), (Bs(i, n).children || []).map(function(s, o) {
  2095. return ur(s, "".concat(e, "-").concat(i.tag, "-").concat(o), n, void 0, r);
  2096. }));
  2097. }
  2098. function xs(i, e, n) {
  2099. var t = ne({}, i.attrs);
  2100. n != null && n.colorChannel1 && t.fill === "colorChannel1" && (t.fill = n.colorChannel1);
  2101. var r = e.defIds;
  2102. return !r || r.length === 0 || (i.tag === "use" && t["xlink:href"] && (t["xlink:href"] = t["xlink:href"] + e.idSuffix), Object.entries(t).forEach(function(s) {
  2103. var o = s[0], c = s[1];
  2104. typeof c == "string" && (t[o] = c.replace(/url\(#(.*)\)/, "url(#$1".concat(e.idSuffix, ")")));
  2105. })), t;
  2106. }
  2107. function Bs(i, e) {
  2108. var n, t = e.defIds;
  2109. return !t || t.length === 0 ? i : i.tag === "defs" && (!((n = i.children) === null || n === void 0) && n.length) ? ne(ne({}, i), { children: i.children.map(function(r) {
  2110. return typeof r.attrs.id == "string" && t && t.indexOf(r.attrs.id) > -1 ? ne(ne({}, r), { attrs: ne(ne({}, r.attrs), { id: r.attrs.id + e.idSuffix }) }) : r;
  2111. }) }) : i;
  2112. }
  2113. function $s() {
  2114. return Math.random().toString(36).substring(2, 8);
  2115. }
  2116. lr.displayName = "UniverIcon";
  2117. var ks = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M2.2498 3.65005C2.2498 2.87685 2.87661 2.25005 3.64981 2.25005H7.9998C8.33118 2.25005 8.5998 1.98142 8.5998 1.65005C8.5998 1.31868 8.33118 1.05005 7.9998 1.05005H3.64981C2.21387 1.05005 1.0498 2.21411 1.0498 3.65005V12.35C1.0498 13.786 2.21386 14.95 3.6498 14.95H12.3498C13.7857 14.95 14.9498 13.786 14.9498 12.3501V8.00005C14.9498 7.66868 14.6812 7.40005 14.3498 7.40005C14.0184 7.40005 13.7498 7.66868 13.7498 8.00005V9.23974L12.2385 8.1063C11.7252 7.72129 11.0068 7.7723 10.5531 8.22605L9.00869 9.77041L6.73916 7.8251C6.24387 7.40055 5.5095 7.41278 5.02864 7.85359L2.2498 10.4009V3.65005ZM2.2498 12.0287V12.35C2.2498 13.1232 2.87661 13.75 3.6498 13.75H12.3498C13.123 13.75 13.7498 13.1232 13.7498 12.3501V10.7397L11.5186 9.06631C11.4829 9.03956 11.433 9.04314 11.4016 9.07458L9.92249 10.5537L11.1015 11.5642C11.3531 11.7799 11.3822 12.1587 11.1666 12.4103C10.9509 12.6619 10.5721 12.691 10.3205 12.4753L5.9582 8.7362C5.92384 8.70674 5.87288 8.70758 5.83952 8.73816L2.2498 12.0287Z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M11.8097 1.14783C12.1411 1.14783 12.4097 1.41646 12.4097 1.74783V3.297H14.1541C14.4855 3.297 14.7541 3.56563 14.7541 3.897C14.7541 4.22837 14.4855 4.497 14.1541 4.497H12.4097V6.24167C12.4097 6.57304 12.1411 6.84167 11.8097 6.84167C11.4783 6.84167 11.2097 6.57304 11.2097 6.24167V4.497H9.6603C9.32893 4.497 9.0603 4.22837 9.0603 3.897C9.0603 3.56563 9.32893 3.297 9.6603 3.297H11.2097V1.74783C11.2097 1.41646 11.4783 1.14783 11.8097 1.14783Z" } }] }, hr = tr(function(i, e) {
  2118. return nr(lr, Object.assign({}, i, {
  2119. id: "add-image-single",
  2120. ref: e,
  2121. icon: ks
  2122. }));
  2123. });
  2124. hr.displayName = "AddImageSingle";
  2125. const gr = {
  2126. id: "sheet.command.delete-drawing",
  2127. type: q.COMMAND,
  2128. handler: (i) => {
  2129. const e = i.get(H), t = i.get(ee).getFocusDrawings();
  2130. if (t.length === 0)
  2131. return !1;
  2132. const r = t[0].unitId, s = t.map((o) => {
  2133. const { unitId: c, subUnitId: d, drawingId: g, drawingType: a } = o;
  2134. return {
  2135. unitId: c,
  2136. subUnitId: d,
  2137. drawingId: g,
  2138. drawingType: a
  2139. };
  2140. });
  2141. return e.executeCommand(Nt.id, {
  2142. unitId: r,
  2143. drawings: s
  2144. });
  2145. }
  2146. }, cn = {
  2147. id: "sheet.command.insert-float-image",
  2148. type: q.COMMAND,
  2149. handler: (i) => {
  2150. var n, t;
  2151. return (t = (n = i.get(Q).getCurrentTypeOfRenderer(Y.UNIVER_SHEET)) == null ? void 0 : n.with(Ze).insertFloatImage()) != null ? t : !1;
  2152. }
  2153. }, dn = {
  2154. id: "sheet.command.insert-cell-image",
  2155. type: q.COMMAND,
  2156. handler: (i) => {
  2157. var n, t;
  2158. return (t = (n = i.get(Q).getCurrentTypeOfRenderer(Y.UNIVER_SHEET)) == null ? void 0 : n.with(Ze).insertCellImage()) != null ? t : !1;
  2159. }
  2160. }, et = {
  2161. id: "sheet.command.move-drawing",
  2162. type: q.COMMAND,
  2163. handler: (i, e) => {
  2164. const n = i.get(H), t = i.get(ee), r = i.get(Qe), { direction: s } = e, o = t.getFocusDrawings();
  2165. if (o.length === 0)
  2166. return !1;
  2167. const c = o[0].unitId, d = o.map((a) => {
  2168. const { transform: l } = a;
  2169. if (l == null)
  2170. return null;
  2171. const h = { ...l }, { left: u = 0, top: m = 0 } = l;
  2172. return s === _e.UP ? h.top = m - 1 : s === _e.DOWN ? h.top = m + 1 : s === _e.LEFT ? h.left = u - 1 : s === _e.RIGHT && (h.left = u + 1), {
  2173. ...a,
  2174. transform: h,
  2175. sheetTransform: k(h, r)
  2176. };
  2177. }).filter((a) => a != null);
  2178. return n.syncExecuteCommand(Wt.id, {
  2179. unitId: c,
  2180. drawings: d
  2181. }) ? (n.syncExecuteCommand(F.id, [c]), !0) : !1;
  2182. }
  2183. }, mr = "addition-and-subtraction-single", fr = "sheet.menu.image";
  2184. function Ls(i) {
  2185. return {
  2186. id: fr,
  2187. type: on.SUBITEMS,
  2188. icon: mr,
  2189. tooltip: "sheetImage.title",
  2190. hidden$: Un(i, Y.UNIVER_SHEET),
  2191. disabled$: mi(i, { workbookTypes: [qt], worksheetTypes: [St], rangeTypes: [$i] })
  2192. };
  2193. }
  2194. function Fs(i) {
  2195. return {
  2196. id: cn.id,
  2197. title: "sheetImage.upload.float",
  2198. type: on.BUTTON,
  2199. hidden$: Un(i, Y.UNIVER_SHEET)
  2200. };
  2201. }
  2202. function Gs(i) {
  2203. return {
  2204. id: dn.id,
  2205. title: "sheetImage.upload.cell",
  2206. type: on.BUTTON
  2207. };
  2208. }
  2209. const Vs = "univer-image-common-panel", Ys = "univer-image-common-panel-grid", Hs = "univer-image-common-panel-border", Xs = "univer-image-common-panel-title", zs = "univer-image-common-panel-subtitle", Ks = "univer-image-common-panel-row", Js = "univer-image-common-panel-row-vertical", Zs = "univer-image-common-panel-column", qs = "univer-image-common-panel-column-center", Qs = "univer-image-common-panel-inline", eo = "univer-image-common-panel-span2", to = "univer-image-common-panel-span3", no = "univer-image-common-panel-input", ro = "univer-sheet-image-menu", io = "univer-sheet-image-menu-input", we = {
  2210. imageCommonPanel: Vs,
  2211. imageCommonPanelGrid: Ys,
  2212. imageCommonPanelBorder: Hs,
  2213. imageCommonPanelTitle: Xs,
  2214. imageCommonPanelSubtitle: zs,
  2215. imageCommonPanelRow: Ks,
  2216. imageCommonPanelRowVertical: Js,
  2217. imageCommonPanelColumn: Zs,
  2218. imageCommonPanelColumnCenter: qs,
  2219. imageCommonPanelInline: Qs,
  2220. imageCommonPanelSpan2: eo,
  2221. imageCommonPanelSpan3: to,
  2222. imageCommonPanelInput: no,
  2223. sheetImageMenu: ro,
  2224. sheetImageMenuInput: io
  2225. };
  2226. function pr(i) {
  2227. var e, n, t = "";
  2228. if (typeof i == "string" || typeof i == "number") t += i;
  2229. else if (typeof i == "object") if (Array.isArray(i)) {
  2230. var r = i.length;
  2231. for (e = 0; e < r; e++) i[e] && (n = pr(i[e])) && (t && (t += " "), t += n);
  2232. } else for (n in i) i[n] && (t && (t += " "), t += n);
  2233. return t;
  2234. }
  2235. function _t() {
  2236. for (var i, e, n = 0, t = "", r = arguments.length; n < r; n++) (i = arguments[n]) && (e = pr(i)) && (t && (t += " "), t += e);
  2237. return t;
  2238. }
  2239. const so = (i) => {
  2240. var S;
  2241. const e = Ee(H), n = Ee(Pt), t = Ee(ae), r = Ee(Q), { drawings: s } = i, o = s[0];
  2242. if (o == null)
  2243. return;
  2244. const { unitId: c } = o, d = r.getRenderById(c), g = d == null ? void 0 : d.scene;
  2245. if (g == null)
  2246. return;
  2247. const a = g.getTransformerByCreate(), [l, h] = tn(!0), u = (S = o.anchorType) != null ? S : O.Position, [m, p] = tn(u);
  2248. function f(R, v) {
  2249. const C = [];
  2250. return R.forEach((_) => {
  2251. const { oKey: y } = _, M = v.getDrawingOKey(y);
  2252. if (M == null)
  2253. return C.push(null), !0;
  2254. const { unitId: x, subUnitId: U, drawingId: D, drawingType: b, anchorType: P, sheetTransform: A } = M;
  2255. C.push({
  2256. unitId: x,
  2257. subUnitId: U,
  2258. drawingId: D,
  2259. anchorType: P,
  2260. sheetTransform: A,
  2261. drawingType: b
  2262. });
  2263. }), C;
  2264. }
  2265. an(() => {
  2266. const R = a.clearControl$.subscribe((C) => {
  2267. C === !0 && h(!1);
  2268. }), v = a.changeStart$.subscribe((C) => {
  2269. var M;
  2270. const { objects: _ } = C, y = f(_, t);
  2271. if (y.length === 0)
  2272. h(!1);
  2273. else if (y.length >= 1) {
  2274. h(!0);
  2275. const x = ((M = y[0]) == null ? void 0 : M.anchorType) || O.Position;
  2276. p(x);
  2277. }
  2278. });
  2279. return () => {
  2280. v.unsubscribe(), R.unsubscribe();
  2281. };
  2282. }, []);
  2283. function w(R) {
  2284. p(R);
  2285. const v = t.getFocusDrawings();
  2286. if (v.length === 0)
  2287. return;
  2288. const C = v.map((_) => ({
  2289. unitId: _.unitId,
  2290. subUnitId: _.subUnitId,
  2291. drawingId: _.drawingId,
  2292. anchorType: R
  2293. }));
  2294. e.executeCommand(Wt.id, {
  2295. unitId: v[0].unitId,
  2296. drawings: C
  2297. });
  2298. }
  2299. const I = (R) => R ? "block" : "none";
  2300. return /* @__PURE__ */ G.jsxs("div", { className: _t(we.imageCommonPanelGrid, we.imageCommonPanelBorder), style: { display: I(l) }, children: [
  2301. /* @__PURE__ */ G.jsx("div", { className: we.imageCommonPanelRow, children: /* @__PURE__ */ G.jsx("div", { className: _t(we.imageCommonPanelColumn, we.imageCommonPanelTitle), children: /* @__PURE__ */ G.jsx("div", { children: n.t("drawing-anchor.title") }) }) }),
  2302. /* @__PURE__ */ G.jsx("div", { className: _t(we.imageCommonPanelRow), children: /* @__PURE__ */ G.jsx("div", { className: _t(we.imageCommonPanelColumn), children: /* @__PURE__ */ G.jsxs(Yi, { value: m, onChange: w, direction: "vertical", children: [
  2303. /* @__PURE__ */ G.jsx(zt, { value: O.Both, children: n.t("drawing-anchor.both") }),
  2304. /* @__PURE__ */ G.jsx(zt, { value: O.Position, children: n.t("drawing-anchor.position") }),
  2305. /* @__PURE__ */ G.jsx(zt, { value: O.None, children: n.t("drawing-anchor.none") })
  2306. ] }) }) })
  2307. ] });
  2308. }, oo = () => {
  2309. const i = Ee(ae), e = i.getFocusDrawings(), [n, t] = tn(e);
  2310. return an(() => {
  2311. const r = i.focus$.subscribe((s) => {
  2312. t(s);
  2313. });
  2314. return () => {
  2315. r.unsubscribe();
  2316. };
  2317. }, []), !!(n != null && n.length) && /* @__PURE__ */ G.jsxs("div", { className: we.imageCommonPanel, children: [
  2318. /* @__PURE__ */ G.jsx(ti, { drawings: n }),
  2319. /* @__PURE__ */ G.jsx(so, { drawings: n })
  2320. ] });
  2321. }, ao = {
  2322. [Ii.FORMULAS_INSERT]: {
  2323. [fr]: {
  2324. order: 3,
  2325. menuItemFactory: Ls,
  2326. [cn.id]: {
  2327. order: 0,
  2328. menuItemFactory: Fs
  2329. },
  2330. [dn.id]: {
  2331. order: 1,
  2332. menuItemFactory: Gs
  2333. }
  2334. }
  2335. }
  2336. };
  2337. function tt(i) {
  2338. return !i.getContextValue(xr) && !i.getContextValue(Br) && !i.getContextValue($r) && i.getContextValue(We);
  2339. }
  2340. const co = {
  2341. id: et.id,
  2342. description: "shortcut.sheet.drawing-move-down",
  2343. group: "4_sheet-drawing-view",
  2344. binding: xe.ARROW_DOWN,
  2345. priority: 100,
  2346. preconditions: tt,
  2347. staticParameters: {
  2348. direction: _e.DOWN
  2349. }
  2350. }, lo = {
  2351. id: et.id,
  2352. description: "shortcut.sheet.drawing-move-up",
  2353. group: "4_sheet-drawing-view",
  2354. binding: xe.ARROW_UP,
  2355. priority: 100,
  2356. preconditions: tt,
  2357. staticParameters: {
  2358. direction: _e.UP
  2359. }
  2360. }, uo = {
  2361. id: et.id,
  2362. description: "shortcut.sheet.drawing-move-left",
  2363. group: "4_sheet-drawing-view",
  2364. binding: xe.ARROW_LEFT,
  2365. priority: 100,
  2366. preconditions: tt,
  2367. staticParameters: {
  2368. direction: _e.LEFT
  2369. }
  2370. }, ho = {
  2371. id: et.id,
  2372. description: "shortcut.sheet.drawing-move-right",
  2373. group: "4_sheet-drawing-view",
  2374. binding: xe.ARROW_RIGHT,
  2375. priority: 100,
  2376. preconditions: tt,
  2377. staticParameters: {
  2378. direction: _e.RIGHT
  2379. }
  2380. }, go = {
  2381. id: gr.id,
  2382. description: "shortcut.sheet.drawing-delete",
  2383. group: "4_sheet-drawing-view",
  2384. // when focusing on any other input tag do not trigger this shortcut
  2385. preconditions: tt,
  2386. binding: xe.DELETE,
  2387. mac: xe.BACKSPACE
  2388. };
  2389. var mo = Object.defineProperty, fo = Object.getOwnPropertyDescriptor, po = (i, e, n, t) => {
  2390. for (var r = t > 1 ? void 0 : t ? fo(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  2391. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  2392. return t && r && mo(e, n, r), r;
  2393. }, vt = (i, e) => (n, t) => e(n, t, i);
  2394. let Ot = class extends ie {
  2395. constructor(i, e, n, t) {
  2396. super(), this._componentManager = i, this._menuManagerService = e, this._commandService = n, this._shortcutService = t, this._init();
  2397. }
  2398. _initCustomComponents() {
  2399. const i = this._componentManager;
  2400. this.disposeWithMe(i.register(mr, hr)), this.disposeWithMe(i.register(rr, oo));
  2401. }
  2402. _initMenus() {
  2403. this._menuManagerService.mergeMenu(ao);
  2404. }
  2405. _initCommands() {
  2406. [
  2407. cn,
  2408. dn,
  2409. jt,
  2410. Nt,
  2411. Wt,
  2412. ir,
  2413. F,
  2414. sr,
  2415. or,
  2416. cr,
  2417. et,
  2418. gr,
  2419. ar
  2420. ].forEach((i) => this.disposeWithMe(this._commandService.registerCommand(i)));
  2421. }
  2422. _initShortcuts() {
  2423. [
  2424. // sheet drawing shortcuts
  2425. co,
  2426. lo,
  2427. uo,
  2428. ho,
  2429. go
  2430. ].forEach((i) => {
  2431. this.disposeWithMe(this._shortcutService.registerShortcut(i));
  2432. });
  2433. }
  2434. _init() {
  2435. this._initCommands(), this._initCustomComponents(), this._initMenus(), this._initShortcuts();
  2436. }
  2437. };
  2438. Ot = po([
  2439. vt(0, N(Ci)),
  2440. vt(1, Ri),
  2441. vt(2, H),
  2442. vt(3, bi)
  2443. ], Ot);
  2444. var wo = Object.defineProperty, _o = Object.getOwnPropertyDescriptor, vo = (i, e, n, t) => {
  2445. for (var r = t > 1 ? void 0 : t ? _o(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  2446. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  2447. return t && r && wo(e, n, r), r;
  2448. }, Oe = (i, e) => (n, t) => e(n, t, i);
  2449. function So(i, e, n, t, r) {
  2450. const { scaleX: s, scaleY: o } = e.getAncestorScale(), c = e.getViewport(En.VIEW_MAIN), d = {
  2451. left: !0,
  2452. top: !0
  2453. };
  2454. if (!c)
  2455. return {
  2456. ...i,
  2457. absolute: d
  2458. };
  2459. const { left: g, right: a, top: l, bottom: h } = i;
  2460. let { top: u, left: m, viewportScrollX: p, viewportScrollY: f } = c;
  2461. const { boundsOfViewArea: w, scrollDirectionResponse: I } = r || {};
  2462. w && (Pe.isDefine(w.top) && (u = w.top), Pe.isDefine(w.left) && (m = w.left)), I === "HORIZONTAL" && (f = 0), I === "VERTICAL" && (p = 0);
  2463. let S, R;
  2464. g < m ? (d.left = !0, S = (m + (g - m)) * s, R = Math.max(
  2465. Math.min(
  2466. (m + (a - m)) * s,
  2467. m * s
  2468. ),
  2469. (a - p) * s
  2470. )) : (d.left = !1, S = Math.max((g - p) * s, m * s), R = Math.max((a - p) * s, m * s));
  2471. let v, C;
  2472. return l < u ? (d.top = !0, v = (u + (l - u)) * o, C = Math.max(
  2473. Math.min(
  2474. (u + (a - u)) * o,
  2475. u * o
  2476. ),
  2477. (h - f) * o
  2478. )) : (d.top = !1, v = Math.max((l - f) * o, u * o), C = Math.max((h - f) * o, u * o)), {
  2479. left: S,
  2480. right: R,
  2481. top: v,
  2482. bottom: C,
  2483. absolute: d
  2484. };
  2485. }
  2486. const Te = (i, e, n, t, r) => {
  2487. const { scene: s } = e, { left: o, top: c, width: d, height: g, angle: a } = i, l = {
  2488. left: o,
  2489. right: o + d,
  2490. top: c,
  2491. bottom: c + g
  2492. }, h = So(l, s, n, t, r), { scaleX: u, scaleY: m } = s.getAncestorScale();
  2493. return {
  2494. startX: h.left,
  2495. endX: h.right,
  2496. startY: h.top,
  2497. endY: h.bottom,
  2498. rotate: a,
  2499. width: d * u,
  2500. height: g * m,
  2501. absolute: h.absolute
  2502. };
  2503. };
  2504. let Tt = class extends ie {
  2505. constructor(e, n, t, r, s, o, c) {
  2506. super();
  2507. /**
  2508. * for update dom container position when scrolling
  2509. */
  2510. J(this, "_domLayerMap", /* @__PURE__ */ new Map());
  2511. J(this, "_domLayerInfoMap", /* @__PURE__ */ new Map());
  2512. J(this, "_transformChange$", new Ht());
  2513. J(this, "transformChange$", this._transformChange$.asObservable());
  2514. J(this, "_add$", new Ht());
  2515. J(this, "add$", this._add$.asObservable());
  2516. J(this, "_remove$", new Ht());
  2517. J(this, "remove$", this._remove$.asObservable());
  2518. J(this, "_hooks", []);
  2519. this._renderManagerService = e, this._univerInstanceService = n, this._commandService = t, this._drawingManagerService = r, this._canvasFloatDomService = s, this._sheetDrawingService = o, this._lifecycleService = c, this._drawingAddListener(), this._featureUpdateListener(), this._deleteListener(), this._bindScrollEvent();
  2520. }
  2521. _bindScrollEvent() {
  2522. this._lifecycleService.lifecycle$.pipe(ve((e) => e === Lr.Rendered), Mi(1)).subscribe(() => {
  2523. this._scrollUpdateListener();
  2524. });
  2525. }
  2526. _ensureMap(e, n) {
  2527. let t = this._domLayerMap.get(e);
  2528. t || (t = /* @__PURE__ */ new Map(), this._domLayerMap.set(e, t));
  2529. let r = t.get(n);
  2530. return r || (r = /* @__PURE__ */ new Map(), t.set(n, r)), r;
  2531. }
  2532. getFloatDomInfo(e) {
  2533. return this._domLayerInfoMap.get(e);
  2534. }
  2535. _getSceneAndTransformerByDrawingSearch(e) {
  2536. if (e == null)
  2537. return;
  2538. const n = this._renderManagerService.getRenderById(e), t = n == null ? void 0 : n.scene;
  2539. if (n == null || t == null)
  2540. return null;
  2541. const r = t.getTransformerByCreate(), s = n.engine.getCanvasElement();
  2542. return { scene: t, transformer: r, renderUnit: n, canvas: s };
  2543. }
  2544. _getFloatDomProps(e) {
  2545. let n;
  2546. return this._hooks.forEach((t) => {
  2547. n = t.onGetFloatDomProps(e);
  2548. }), n;
  2549. }
  2550. _drawingAddListener() {
  2551. this.disposeWithMe(
  2552. this._drawingManagerService.add$.subscribe((e) => {
  2553. e.forEach((n) => {
  2554. var Se, ge, ce;
  2555. const { unitId: t, subUnitId: r, drawingId: s } = n, o = V(this._univerInstanceService, { unitId: t, subUnitId: r }), c = this._drawingManagerService.getDrawingByParam(n), d = this._univerInstanceService.getUnit(t, Y.UNIVER_SHEET);
  2556. if (!d)
  2557. return;
  2558. const g = d.getActiveSheet().getSheetId();
  2559. if (!c || !o)
  2560. return;
  2561. const a = (Se = this._renderManagerService.getRenderById(t)) == null ? void 0 : Se.with(Z).getWorksheetSkeleton(r);
  2562. if (!a)
  2563. return;
  2564. const { transform: l, drawingType: h, data: u } = c;
  2565. if (h !== L.DRAWING_DOM && h !== L.DRAWING_CHART)
  2566. return;
  2567. const m = this._getSceneAndTransformerByDrawingSearch(t);
  2568. if (m == null)
  2569. return;
  2570. const { scene: p, canvas: f } = m;
  2571. if (l == null)
  2572. return !0;
  2573. if (g !== r)
  2574. return;
  2575. const { left: w, top: I, width: S, height: R, angle: v, flipX: C, flipY: _, skewX: y, skewY: M } = l, x = Ye({ unitId: t, subUnitId: r, drawingId: s }), U = p.getObject(x);
  2576. if (U != null) {
  2577. U.transformByState({ left: w, top: I, width: S, height: R, angle: v, flipX: C, flipY: _, skewX: y, skewY: M });
  2578. return;
  2579. }
  2580. const D = {
  2581. left: w,
  2582. top: I,
  2583. width: S,
  2584. height: R,
  2585. zIndex: this._drawingManagerService.getDrawingOrder(t, r).length - 1
  2586. }, b = h === L.DRAWING_CHART;
  2587. if (b) {
  2588. const $ = u ? u.backgroundColor : "white";
  2589. D.fill = $, D.rotateEnabled = !1, u && u.border && (D.stroke = u.border), D.paintFirst = "stroke", D.strokeWidth = 1, D.borderEnabled = !1, D.radius = 8;
  2590. }
  2591. const P = new lt(x, D);
  2592. b && P.setObjectType(pn.CHART), p.addObject(P, Yt), c.allowTransform !== !1 && p.attachTransformerTo(P);
  2593. const A = this._ensureMap(t, r), j = new ct(), B = Te(P, m.renderUnit, a.skeleton, o.worksheet), X = new He(B), se = {
  2594. dispose: j,
  2595. rect: P,
  2596. position$: X,
  2597. unitId: t,
  2598. subUnitId: r
  2599. };
  2600. this._canvasFloatDomService.addFloatDom({
  2601. position$: X,
  2602. id: s,
  2603. componentKey: c.componentKey,
  2604. onPointerDown: ($) => {
  2605. f.dispatchEvent(new PointerEvent($.type, $));
  2606. },
  2607. onPointerMove: ($) => {
  2608. f.dispatchEvent(new PointerEvent($.type, $));
  2609. },
  2610. onPointerUp: ($) => {
  2611. f.dispatchEvent(new PointerEvent($.type, $));
  2612. },
  2613. onWheel: ($) => {
  2614. f.dispatchEvent(new WheelEvent($.type, $));
  2615. },
  2616. props: (ce = (ge = A.get(s)) == null ? void 0 : ge.props) != null ? ce : this._getFloatDomProps(s),
  2617. data: u,
  2618. unitId: t
  2619. });
  2620. const oe = P.onTransformChange$.subscribeEvent(() => {
  2621. const $ = Te(P, m.renderUnit, a.skeleton, o.worksheet);
  2622. X.next(
  2623. $
  2624. );
  2625. });
  2626. j.add(() => {
  2627. this._canvasFloatDomService.removeFloatDom(s);
  2628. }), oe && j.add(oe), this._domLayerInfoMap.set(s, se), A.set(s, {
  2629. ...A.get(s)
  2630. });
  2631. });
  2632. })
  2633. ), this.disposeWithMe(
  2634. this._drawingManagerService.remove$.subscribe((e) => {
  2635. e.forEach((n) => {
  2636. const { unitId: t, subUnitId: r, drawingId: s } = n, o = Ye({ unitId: t, subUnitId: r, drawingId: s }), c = this._getSceneAndTransformerByDrawingSearch(t);
  2637. if (c == null)
  2638. return;
  2639. const { transformer: d, scene: g } = c, a = g.getObject(o);
  2640. a != null && a.oKey && d.clearControlByIds([a == null ? void 0 : a.oKey]);
  2641. });
  2642. })
  2643. );
  2644. }
  2645. _scrollUpdateListener() {
  2646. const e = (n, t) => {
  2647. var g;
  2648. const r = this._getSceneAndTransformerByDrawingSearch(n), s = this._ensureMap(n, t), o = Array.from(s.keys()), c = V(this._univerInstanceService, { unitId: n, subUnitId: t }), d = (g = this._renderManagerService.getRenderById(n)) == null ? void 0 : g.with(Z).getWorksheetSkeleton(t);
  2649. !r || !c || !d || o.forEach((a) => {
  2650. const l = this._domLayerInfoMap.get(a);
  2651. if (l) {
  2652. const h = Te(l.rect, r.renderUnit, d.skeleton, c.worksheet, l);
  2653. l.position$.next(h);
  2654. }
  2655. });
  2656. };
  2657. this.disposeWithMe(
  2658. this._univerInstanceService.getCurrentTypeOfUnit$(Y.UNIVER_SHEET).pipe(
  2659. ve((n) => !!n),
  2660. Sn((n) => n.activeSheet$),
  2661. ve((n) => !!n),
  2662. Je((n) => {
  2663. const t = this._renderManagerService.getRenderById(n.getUnitId());
  2664. return t ? { render: t, unitId: n.getUnitId(), subUnitId: n.getSheetId() } : null;
  2665. }),
  2666. ve((n) => !!n),
  2667. Sn(
  2668. (n) => Fr(n.render.scene.getViewport(En.VIEW_MAIN).onScrollAfter$).pipe(Je(() => ({ unitId: n.unitId, subUnitId: n.subUnitId })))
  2669. )
  2670. ).subscribe(({ unitId: n, subUnitId: t }) => {
  2671. e(n, t);
  2672. })
  2673. ), this.disposeWithMe(this._commandService.onCommandExecuted((n) => {
  2674. var t, r;
  2675. if (n.id === _n.id) {
  2676. const s = n.params, { unitId: o } = s;
  2677. Array.from((r = (t = this._domLayerMap.get(o)) == null ? void 0 : t.keys()) != null ? r : []).forEach((d) => {
  2678. e(o, d);
  2679. });
  2680. } else if (n.id === ki.id) {
  2681. const { unitId: s, subUnitId: o } = n.params;
  2682. e(s, o);
  2683. }
  2684. }));
  2685. }
  2686. _getPosition(e, n) {
  2687. var h;
  2688. const { startX: t, endX: r, startY: s, endY: o } = e, c = (h = this._renderManagerService.getRenderById(n)) == null ? void 0 : h.with(Qe);
  2689. if (c == null)
  2690. return;
  2691. const d = c.getCellWithCoordByOffset(t, s);
  2692. if (d == null)
  2693. return;
  2694. const g = {
  2695. column: d.actualColumn,
  2696. columnOffset: t - d.startX,
  2697. row: d.actualRow,
  2698. rowOffset: s - d.startY
  2699. }, a = c.getCellWithCoordByOffset(r, o);
  2700. if (a == null)
  2701. return;
  2702. const l = {
  2703. column: a.actualColumn,
  2704. columnOffset: r - a.startX,
  2705. row: a.actualRow,
  2706. rowOffset: o - a.startY
  2707. };
  2708. return {
  2709. from: g,
  2710. to: l
  2711. };
  2712. }
  2713. _featureUpdateListener() {
  2714. this.disposeWithMe(
  2715. this._drawingManagerService.update$.subscribe((e) => {
  2716. e.forEach((n) => {
  2717. const t = this._drawingManagerService.getDrawingByParam(n);
  2718. if (!t || t.drawingType !== L.DRAWING_DOM && t.drawingType !== L.DRAWING_CHART)
  2719. return;
  2720. const r = {
  2721. ...t.transform
  2722. };
  2723. this._transformChange$.next({ id: n.drawingId, value: r });
  2724. });
  2725. })
  2726. );
  2727. }
  2728. _deleteListener() {
  2729. this.disposeWithMe(
  2730. this._drawingManagerService.remove$.subscribe((e) => {
  2731. e.forEach((n) => {
  2732. this._removeDom(n.drawingId);
  2733. });
  2734. })
  2735. );
  2736. }
  2737. updateFloatDomProps(e, n, t, r) {
  2738. const s = this._domLayerInfoMap.get(t), o = this._getSceneAndTransformerByDrawingSearch(e);
  2739. if (s && o) {
  2740. const { scene: c } = o, d = Ye({ unitId: e, subUnitId: n, drawingId: t }), g = c.getObject(d);
  2741. g && g instanceof lt && g.setProps(r);
  2742. }
  2743. }
  2744. // CreateFloatDomCommand --> floatDomService.addFloatDomToPosition
  2745. addFloatDomToPosition(e, n) {
  2746. const t = V(this._univerInstanceService, {
  2747. unitId: e.unitId,
  2748. subUnitId: e.subUnitId
  2749. });
  2750. if (!t)
  2751. throw new Error("cannot find current target!");
  2752. const { unitId: r, subUnitId: s } = t, { initPosition: o, componentKey: c, data: d, allowTransform: g = !0 } = e, a = n != null ? n : Gt(), l = this._getPosition(o, r);
  2753. if (l == null)
  2754. return;
  2755. this._ensureMap(r, s).set(a, e);
  2756. const u = {
  2757. unitId: r,
  2758. subUnitId: s,
  2759. drawingId: a,
  2760. drawingType: e.type || L.DRAWING_DOM,
  2761. componentKey: c,
  2762. sheetTransform: l,
  2763. transform: {
  2764. left: o.startX,
  2765. top: o.startY,
  2766. width: o.endX - o.startX,
  2767. height: o.endY - o.startY
  2768. },
  2769. data: d,
  2770. allowTransform: g
  2771. };
  2772. return this._commandService.executeCommand(jt.id, {
  2773. unitId: r,
  2774. drawings: [u]
  2775. }), this._add$.next({ unitId: r, subUnitId: s, id: a }), {
  2776. id: a,
  2777. dispose: () => {
  2778. this._removeDom(a, !0);
  2779. }
  2780. };
  2781. }
  2782. _removeDom(e, n = !1) {
  2783. const t = this._domLayerInfoMap.get(e);
  2784. if (!t)
  2785. return;
  2786. const { unitId: r, subUnitId: s } = t;
  2787. this._domLayerInfoMap.delete(e), t.dispose.dispose();
  2788. const o = this._getSceneAndTransformerByDrawingSearch(r);
  2789. if (o && o.scene.removeObject(t.rect), n) {
  2790. this._ensureMap(r, s).delete(e);
  2791. const d = this._drawingManagerService.getDrawingByParam({ unitId: r, subUnitId: s, drawingId: e });
  2792. if (!d)
  2793. return;
  2794. const g = this._sheetDrawingService.getBatchRemoveOp([d]), { redo: a, objects: l } = g;
  2795. this._commandService.syncExecuteCommand(T.id, { unitId: r, subUnitId: s, op: a, objects: l, type: E.REMOVE });
  2796. }
  2797. }
  2798. addHook(e) {
  2799. return this._hooks.push(e), {
  2800. dispose: () => {
  2801. const n = this._hooks.findIndex((t) => t === e);
  2802. this._hooks.splice(n, 1);
  2803. }
  2804. };
  2805. }
  2806. addFloatDomToRange(e, n, t, r) {
  2807. var M, x, U, D, b, P;
  2808. const s = V(this._univerInstanceService, {
  2809. unitId: n.unitId,
  2810. subUnitId: n.subUnitId
  2811. });
  2812. if (!s)
  2813. throw new Error("cannot find current target!");
  2814. const { unitId: o, subUnitId: c } = s;
  2815. if (!this._getSceneAndTransformerByDrawingSearch(o)) return;
  2816. const g = this._renderManagerService.getRenderById(o);
  2817. if (!g) return;
  2818. const a = (M = this._renderManagerService.getRenderById(o)) == null ? void 0 : M.with(Z).getWorksheetSkeleton(c);
  2819. if (!a) return;
  2820. const { componentKey: l, data: h, allowTransform: u = !0 } = n, m = r != null ? r : Gt(), { position: p } = this._createRangePositionObserver(e, g, a.skeleton), f = this._getPosition(p, o);
  2821. if (f == null)
  2822. return;
  2823. this._ensureMap(o, c).set(m, n);
  2824. const I = p.endX - p.startX, S = p.endY - p.startY, R = (x = t.width) != null ? x : I, v = (U = t.height) != null ? U : S, C = p.startX + je(t.marginX, I), _ = p.startY + je(t.marginY, S), y = {
  2825. unitId: o,
  2826. subUnitId: c,
  2827. drawingId: m,
  2828. drawingType: n.type || L.DRAWING_DOM,
  2829. componentKey: l,
  2830. sheetTransform: f,
  2831. transform: {
  2832. left: C,
  2833. top: _,
  2834. width: R,
  2835. height: v
  2836. },
  2837. data: h,
  2838. allowTransform: u
  2839. };
  2840. {
  2841. const { unitId: A, subUnitId: j, drawingId: B } = y, X = V(this._univerInstanceService, { unitId: A, subUnitId: j }), se = y, oe = this._univerInstanceService.getUnit(A, Y.UNIVER_SHEET);
  2842. if (!oe)
  2843. return;
  2844. const Se = oe.getActiveSheet().getSheetId();
  2845. if (!se || !X)
  2846. return;
  2847. const ge = (D = this._renderManagerService.getRenderById(A)) == null ? void 0 : D.with(Z).getWorksheetSkeleton(j);
  2848. if (!ge)
  2849. return;
  2850. const { transform: ce, drawingType: $, data: de } = se;
  2851. if ($ !== L.DRAWING_DOM && $ !== L.DRAWING_CHART)
  2852. return;
  2853. const Ue = this._getSceneAndTransformerByDrawingSearch(A);
  2854. if (Ue == null)
  2855. return;
  2856. const { scene: le, canvas: ue } = Ue;
  2857. if (ce == null || Se !== j)
  2858. return;
  2859. const { left: Ie, top: ke, width: Le, height: Fe, angle: nt, flipX: xt, flipY: Bt, skewX: $t, skewY: kt } = ce, rt = Ye({ unitId: A, subUnitId: j, drawingId: B }), Ge = le.getObject(rt);
  2860. if (Ge != null) {
  2861. Ge.transformByState({ left: Ie, top: ke, width: Le, height: Fe, angle: nt, flipX: xt, flipY: Bt, skewX: $t, skewY: kt });
  2862. return;
  2863. }
  2864. const re = {
  2865. left: Ie,
  2866. top: ke,
  2867. width: Le,
  2868. height: Fe,
  2869. zIndex: this._drawingManagerService.getDrawingOrder(A, j).length - 1
  2870. }, it = $ === L.DRAWING_CHART;
  2871. if (it) {
  2872. const W = de ? de.backgroundColor : "white";
  2873. re.fill = W, re.rotateEnabled = !1, de && de.border && (re.stroke = de.border), re.paintFirst = "stroke", re.strokeWidth = 1, re.borderEnabled = !1, re.radius = 8;
  2874. }
  2875. const K = new lt(rt, re);
  2876. it && K.setObjectType(pn.CHART), le.addObject(K, Yt), se.allowTransform !== !1 && le.attachTransformerTo(K);
  2877. const Ce = this._ensureMap(A, j), Re = new ct(), me = le.getMainViewport(), Lt = {
  2878. top: me.top,
  2879. left: me.left,
  2880. bottom: me.bottom,
  2881. right: me.right
  2882. }, he = {
  2883. dispose: Re,
  2884. rect: K,
  2885. boundsOfViewArea: Lt,
  2886. // position$,
  2887. unitId: A,
  2888. subUnitId: j
  2889. }, Ft = Te(K, Ue.renderUnit, ge.skeleton, X.worksheet, he), be = new He(Ft);
  2890. he.position$ = be;
  2891. let De = {
  2892. position$: be,
  2893. id: B,
  2894. componentKey: se.componentKey,
  2895. onPointerDown: () => {
  2896. },
  2897. onPointerMove: () => {
  2898. },
  2899. onPointerUp: () => {
  2900. },
  2901. onWheel: (W) => {
  2902. ue.dispatchEvent(new WheelEvent(W.type, W));
  2903. },
  2904. props: (P = (b = Ce.get(B)) == null ? void 0 : b.props) != null ? P : this._getFloatDomProps(B),
  2905. data: de,
  2906. unitId: A
  2907. };
  2908. n.eventPassThrough && (De = {
  2909. ...De,
  2910. onPointerDown: (W) => {
  2911. ue.dispatchEvent(new PointerEvent(W.type, W));
  2912. },
  2913. onPointerMove: (W) => {
  2914. ue.dispatchEvent(new PointerEvent(W.type, W));
  2915. },
  2916. onPointerUp: (W) => {
  2917. ue.dispatchEvent(new PointerEvent(W.type, W));
  2918. }
  2919. }), this._canvasFloatDomService.addFloatDom(De);
  2920. const Ve = K.onTransformChange$.subscribeEvent(() => {
  2921. const W = Te(K, Ue.renderUnit, ge.skeleton, X.worksheet, he);
  2922. be.next(
  2923. W
  2924. );
  2925. });
  2926. Re.add(() => {
  2927. this._canvasFloatDomService.removeFloatDom(B);
  2928. }), Ve && Re.add(Ve), this._domLayerInfoMap.set(B, he), Ce.set(B, {
  2929. ...Ce.get(B)
  2930. });
  2931. }
  2932. return {
  2933. id: m,
  2934. dispose: () => {
  2935. this._removeDom(m, !0);
  2936. }
  2937. };
  2938. }
  2939. addFloatDomToColumnHeader(e, n, t, r) {
  2940. var x, U, D, b, P, A;
  2941. const s = V(this._univerInstanceService, {
  2942. unitId: n.unitId,
  2943. subUnitId: n.subUnitId
  2944. });
  2945. if (!s)
  2946. throw new Error("cannot find current target!");
  2947. const { unitId: o, subUnitId: c } = s;
  2948. if (!this._getSceneAndTransformerByDrawingSearch(o)) return;
  2949. const g = this._renderManagerService.getRenderById(o);
  2950. if (!g) return;
  2951. const a = (x = this._renderManagerService.getRenderById(o)) == null ? void 0 : x.with(Z).getWorksheetSkeleton(c);
  2952. if (!a) return;
  2953. const { componentKey: l, data: h, allowTransform: u = !0 } = n, m = r != null ? r : Gt(), { position: p } = this._createRangePositionObserver({
  2954. startRow: 0,
  2955. endRow: 0,
  2956. startColumn: e,
  2957. endColumn: e
  2958. }, g, a.skeleton), f = p;
  2959. f.startY = 0;
  2960. const w = this._getPosition(p, o);
  2961. if (w == null)
  2962. return;
  2963. this._ensureMap(o, c).set(m, n);
  2964. const S = p.endX - p.startX, R = p.endY - p.startY, v = (U = t.width) != null ? U : S, C = (D = t.height) != null ? D : R;
  2965. let _ = 0, y = 0;
  2966. if (t.horizonOffsetAlign === "right") {
  2967. const j = je(t.marginX, S);
  2968. _ = f.endX - j - v;
  2969. } else
  2970. _ = f.startX + je(t.marginX, S);
  2971. if (t.verticalOffsetAlign === "bottom") {
  2972. const j = je(t.marginY, R);
  2973. y = f.endY - j - C;
  2974. } else
  2975. y = f.startY + je(t.marginY, R);
  2976. const M = {
  2977. unitId: o,
  2978. subUnitId: c,
  2979. drawingId: m,
  2980. drawingType: n.type || L.DRAWING_DOM,
  2981. componentKey: l,
  2982. sheetTransform: w,
  2983. transform: {
  2984. left: _,
  2985. top: y,
  2986. width: v,
  2987. height: C
  2988. },
  2989. data: h,
  2990. allowTransform: u
  2991. };
  2992. {
  2993. const { unitId: j, subUnitId: B, drawingId: X } = M, se = V(this._univerInstanceService, { unitId: j, subUnitId: B }), oe = M, Se = this._univerInstanceService.getUnit(j, Y.UNIVER_SHEET);
  2994. if (!Se)
  2995. return;
  2996. const ge = Se.getActiveSheet().getSheetId();
  2997. if (!oe || !se)
  2998. return;
  2999. const ce = (b = this._renderManagerService.getRenderById(j)) == null ? void 0 : b.with(Z).getWorksheetSkeleton(B);
  3000. if (!ce)
  3001. return;
  3002. const { transform: $, drawingType: de, data: Ue } = oe;
  3003. if (de !== L.DRAWING_DOM && de !== L.DRAWING_CHART)
  3004. return;
  3005. const le = this._getSceneAndTransformerByDrawingSearch(j);
  3006. if (le == null)
  3007. return;
  3008. const { scene: ue, canvas: Ie } = le;
  3009. if ($ == null || ge !== B)
  3010. return;
  3011. const { left: ke, top: Le, width: Fe, height: nt, angle: xt, flipX: Bt, flipY: $t, skewX: kt, skewY: rt } = $, Ge = Ye({ unitId: j, subUnitId: B, drawingId: X }), re = ue.getObject(Ge);
  3012. if (re != null) {
  3013. re.transformByState({ left: ke, top: Le, width: Fe, height: nt, angle: xt, flipX: Bt, flipY: $t, skewX: kt, skewY: rt });
  3014. return;
  3015. }
  3016. const it = {
  3017. left: ke,
  3018. top: Le,
  3019. width: Fe,
  3020. height: nt,
  3021. zIndex: this._drawingManagerService.getDrawingOrder(j, B).length - 1
  3022. }, K = new lt(Ge, it);
  3023. ue.addObject(K, Yt), oe.allowTransform !== !1 && ue.attachTransformerTo(K);
  3024. const Ce = this._ensureMap(j, B), Re = new ct(), me = ue.getMainViewport(), Lt = {
  3025. top: 0,
  3026. //viewMain.top,
  3027. left: me.left,
  3028. bottom: me.bottom,
  3029. right: me.right
  3030. }, he = {
  3031. dispose: Re,
  3032. rect: K,
  3033. // position$,
  3034. unitId: j,
  3035. subUnitId: B,
  3036. boundsOfViewArea: Lt,
  3037. scrollDirectionResponse: "HORIZONTAL"
  3038. /* HORIZONTAL */
  3039. }, Ft = Te(K, le.renderUnit, ce.skeleton, se.worksheet, he), be = new He(Ft);
  3040. he.position$ = be;
  3041. let De = {
  3042. position$: be,
  3043. id: X,
  3044. componentKey: oe.componentKey,
  3045. onPointerDown: () => {
  3046. },
  3047. onPointerMove: () => {
  3048. },
  3049. onPointerUp: () => {
  3050. },
  3051. onWheel: (W) => {
  3052. Ie.dispatchEvent(new WheelEvent(W.type, W));
  3053. },
  3054. props: (A = (P = Ce.get(X)) == null ? void 0 : P.props) != null ? A : this._getFloatDomProps(X),
  3055. data: Ue,
  3056. unitId: j
  3057. };
  3058. n.eventPassThrough && (De = {
  3059. ...De,
  3060. onPointerDown: (W) => {
  3061. Ie.dispatchEvent(new PointerEvent(W.type, W));
  3062. },
  3063. onPointerMove: (W) => {
  3064. Ie.dispatchEvent(new PointerEvent(W.type, W));
  3065. },
  3066. onPointerUp: (W) => {
  3067. Ie.dispatchEvent(new PointerEvent(W.type, W));
  3068. }
  3069. }), this._canvasFloatDomService.addFloatDom(De);
  3070. const Ve = K.onTransformChange$.subscribeEvent(() => {
  3071. const W = Te(K, le.renderUnit, ce.skeleton, se.worksheet, he);
  3072. be.next(
  3073. W
  3074. );
  3075. });
  3076. Re.add(() => {
  3077. this._canvasFloatDomService.removeFloatDom(X);
  3078. }), Ve && Re.add(Ve), this._domLayerInfoMap.set(X, he), Ce.set(X, {
  3079. ...Ce.get(X)
  3080. });
  3081. }
  3082. return {
  3083. id: m,
  3084. dispose: () => {
  3085. this._removeDom(m, !0);
  3086. }
  3087. };
  3088. }
  3089. /**
  3090. * Unlike _createCellPositionObserver, this accept a range not a single cell.
  3091. *
  3092. * @param initialRow
  3093. * @param initialCol
  3094. * @param currentRender
  3095. * @param skeleton
  3096. * @param activeViewport
  3097. * @returns position of cell to canvas.
  3098. */
  3099. _createRangePositionObserver(e, n, t) {
  3100. let { startRow: r, startColumn: s } = e;
  3101. const o = Ke(r, s, t), c = new He(o), d = Ke(e.endRow, e.endColumn, t), g = new He(d), a = () => {
  3102. const f = Ke(r, s, t), w = Ke(e.endRow, e.endColumn, t);
  3103. c.next(f), g.next(w);
  3104. }, l = new ct();
  3105. l.add(n.engine.clientRect$.subscribe(() => a())), l.add(this._commandService.onCommandExecuted((f) => {
  3106. if (f.id === Wn.id && f.params.rowsAutoHeightInfo.findIndex((I) => I.row === r) > -1) {
  3107. a();
  3108. return;
  3109. }
  3110. (Li.indexOf(f.id) > -1 || f.id === fi.id || f.id === _n.id) && a();
  3111. }));
  3112. const h = (f, w) => {
  3113. r = f, s = w, a();
  3114. }, u = () => ({
  3115. rotate: 0,
  3116. width: d.right - o.left,
  3117. height: d.bottom - o.top,
  3118. absolute: {
  3119. left: !0,
  3120. top: !0
  3121. },
  3122. startX: o.left,
  3123. startY: o.top,
  3124. endX: d.right,
  3125. endY: d.bottom
  3126. }), m = c.pipe(
  3127. Je((f) => {
  3128. const w = Ke(e.endRow, e.endColumn, t);
  3129. return console.log("service", f.left, f.top), {
  3130. rotate: 0,
  3131. width: w.right - f.left,
  3132. height: w.bottom - f.top,
  3133. absolute: {
  3134. left: !0,
  3135. top: !0
  3136. },
  3137. startX: f.left,
  3138. startY: f.top,
  3139. endX: w.right,
  3140. endY: w.bottom
  3141. };
  3142. })
  3143. ), p = u();
  3144. return console.log("init position", p), {
  3145. position$: m,
  3146. position: p,
  3147. updateRowCol: h,
  3148. topLeftPos$: c,
  3149. rightBottomPos$: g,
  3150. disposable: l
  3151. };
  3152. }
  3153. };
  3154. Tt = vo([
  3155. Oe(0, N(Q)),
  3156. Oe(1, $e),
  3157. Oe(2, N(H)),
  3158. Oe(3, ae),
  3159. Oe(4, N(Di)),
  3160. Oe(5, ee),
  3161. Oe(6, N(kr))
  3162. ], Tt);
  3163. function Ke(i, e, n) {
  3164. const t = n.getCellWithCoordByIndex(i, e), r = t.isMergedMainCell ? t.mergeInfo : t;
  3165. return {
  3166. left: r.startX,
  3167. right: r.endX,
  3168. top: r.startY,
  3169. bottom: r.endY
  3170. };
  3171. }
  3172. function je(i, e) {
  3173. if (i === void 0) return 0;
  3174. if (typeof i == "number") return i;
  3175. const n = Number.parseFloat(i);
  3176. return e * n / 100;
  3177. }
  3178. var wr = Object.defineProperty, Io = Object.getOwnPropertyDescriptor, Co = (i, e, n) => e in i ? wr(i, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : i[e] = n, Ro = (i, e, n, t) => {
  3179. for (var r = t > 1 ? void 0 : t ? Io(e, n) : e, s = i.length - 1, o; s >= 0; s--)
  3180. (o = i[s]) && (r = (t ? o(e, n, r) : o(r)) || r);
  3181. return t && r && wr(e, n, r), r;
  3182. }, Zt = (i, e) => (n, t) => e(n, t, i), _r = (i, e, n) => Co(i, typeof e != "symbol" ? e + "" : e, n);
  3183. const bo = "SHEET_IMAGE_UI_PLUGIN";
  3184. let Et = class extends Vr {
  3185. constructor(i = Cn, e, n, t) {
  3186. super(), this._config = i, this._injector = e, this._renderManagerService = n, this._configService = t;
  3187. const { menu: r, ...s } = Yr(
  3188. {},
  3189. Cn,
  3190. this._config
  3191. );
  3192. r && this._configService.setConfig("menu", r, { merge: !0 }), this._configService.setConfig(Hi, s);
  3193. }
  3194. onStarting() {
  3195. Hr(this._injector, [
  3196. [Tt],
  3197. [Ot],
  3198. [It],
  3199. [yt],
  3200. [Mt],
  3201. [Dt],
  3202. [Ct],
  3203. [bt],
  3204. [Rt]
  3205. ]), Vt(this._injector, [
  3206. [Tt]
  3207. ]);
  3208. }
  3209. onReady() {
  3210. Vt(this._injector, [
  3211. [Dt]
  3212. ]);
  3213. }
  3214. onRendered() {
  3215. this._registerRenderModules(), Vt(this._injector, [
  3216. [Mt],
  3217. [yt],
  3218. [Ot],
  3219. [Ct],
  3220. [bt],
  3221. [Rt]
  3222. ]);
  3223. }
  3224. onSteady() {
  3225. this._injector.get(It);
  3226. }
  3227. _registerRenderModules() {
  3228. [
  3229. [Ze],
  3230. [sn],
  3231. [nn]
  3232. ].forEach((i) => {
  3233. this.disposeWithMe(this._renderManagerService.registerRenderModule(Y.UNIVER_SHEET, i));
  3234. });
  3235. }
  3236. };
  3237. _r(Et, "type", Y.UNIVER_SHEET);
  3238. _r(Et, "pluginName", bo);
  3239. Et = Ro([
  3240. Gr(Jr, Kr, ni, si),
  3241. Zt(1, N(qe)),
  3242. Zt(2, Q),
  3243. Zt(3, Xr)
  3244. ], Et);
  3245. export {
  3246. F as ClearSheetDrawingTransformerOperation,
  3247. gr as DeleteDrawingsCommand,
  3248. sr as EditSheetDrawingOperation,
  3249. or as GroupSheetDrawingCommand,
  3250. cn as InsertFloatImageCommand,
  3251. jt as InsertSheetDrawingCommand,
  3252. et as MoveDrawingsCommand,
  3253. Nt as RemoveSheetDrawingCommand,
  3254. fr as SHEETS_IMAGE_MENU_ID,
  3255. ar as SetDrawingArrangeCommand,
  3256. Wt as SetSheetDrawingCommand,
  3257. Tt as SheetCanvasFloatDomManagerService,
  3258. ir as SidebarSheetDrawingOperation,
  3259. cr as UngroupSheetDrawingCommand,
  3260. Et as UniverSheetsDrawingUIPlugin
  3261. };