@univerjs/drawing 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -56,7 +56,7 @@ const SetDrawingSelectedOperation = {
56
56
  //#endregion
57
57
  //#region package.json
58
58
  var name = "@univerjs/drawing";
59
- var version = "1.0.2";
59
+ var version = "1.0.4";
60
60
 
61
61
  //#endregion
62
62
  //#region src/config/config.ts
@@ -232,6 +232,8 @@ var UnitDrawingService = class {
232
232
  const param = this._getCurrentBySearch(updateParam);
233
233
  if (param == null) return;
234
234
  param.transform = updateParam.transform;
235
+ if (Object.prototype.hasOwnProperty.call(updateParam, "sheetTransform")) param.sheetTransform = updateParam.sheetTransform;
236
+ if (Object.prototype.hasOwnProperty.call(updateParam, "axisAlignSheetTransform")) param.axisAlignSheetTransform = updateParam.axisAlignSheetTransform;
235
237
  if (Object.prototype.hasOwnProperty.call(updateParam, "transforms")) param.transforms = updateParam.transforms;
236
238
  if (Object.prototype.hasOwnProperty.call(updateParam, "isMultiTransform")) param.isMultiTransform = updateParam.isMultiTransform;
237
239
  if ("behindText" in updateParam) param.behindText = updateParam.behindText;
@@ -1293,6 +1295,28 @@ const getImageSize = async (src) => {
1293
1295
  });
1294
1296
  };
1295
1297
 
1298
+ //#endregion
1299
+ //#region src/utils/image-opacity.ts
1300
+ /**
1301
+ * Copyright 2023-present DreamNum Co., Ltd.
1302
+ *
1303
+ * Licensed under the Apache License, Version 2.0 (the "License");
1304
+ * you may not use this file except in compliance with the License.
1305
+ * You may obtain a copy of the License at
1306
+ *
1307
+ * http://www.apache.org/licenses/LICENSE-2.0
1308
+ *
1309
+ * Unless required by applicable law or agreed to in writing, software
1310
+ * distributed under the License is distributed on an "AS IS" BASIS,
1311
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1312
+ * See the License for the specific language governing permissions and
1313
+ * limitations under the License.
1314
+ */
1315
+ function normalizeImageOpacity(opacity) {
1316
+ if (opacity === void 0 || !Number.isFinite(opacity)) return 1;
1317
+ return Math.min(Math.max(opacity, 0), 1);
1318
+ }
1319
+
1296
1320
  //#endregion
1297
1321
  //#region src/utils/rotate-enabled.ts
1298
1322
  function getDrawingKey(drawing) {
@@ -1344,4 +1368,5 @@ exports.getDrawingShapeKeyByDrawingSearch = getDrawingShapeKeyByDrawingSearch;
1344
1368
  exports.getImageSize = getImageSize;
1345
1369
  exports.getOrCreateDrawingCopyPlan = getOrCreateDrawingCopyPlan;
1346
1370
  exports.isGroupableDrawingType = isGroupableDrawingType;
1371
+ exports.normalizeImageOpacity = normalizeImageOpacity;
1347
1372
  exports.resolveDrawingRotateEnabled = resolveDrawingRotateEnabled;
package/lib/es/index.js CHANGED
@@ -55,7 +55,7 @@ const SetDrawingSelectedOperation = {
55
55
  //#endregion
56
56
  //#region package.json
57
57
  var name = "@univerjs/drawing";
58
- var version = "1.0.2";
58
+ var version = "1.0.4";
59
59
 
60
60
  //#endregion
61
61
  //#region src/config/config.ts
@@ -231,6 +231,8 @@ var UnitDrawingService = class {
231
231
  const param = this._getCurrentBySearch(updateParam);
232
232
  if (param == null) return;
233
233
  param.transform = updateParam.transform;
234
+ if (Object.prototype.hasOwnProperty.call(updateParam, "sheetTransform")) param.sheetTransform = updateParam.sheetTransform;
235
+ if (Object.prototype.hasOwnProperty.call(updateParam, "axisAlignSheetTransform")) param.axisAlignSheetTransform = updateParam.axisAlignSheetTransform;
234
236
  if (Object.prototype.hasOwnProperty.call(updateParam, "transforms")) param.transforms = updateParam.transforms;
235
237
  if (Object.prototype.hasOwnProperty.call(updateParam, "isMultiTransform")) param.isMultiTransform = updateParam.isMultiTransform;
236
238
  if ("behindText" in updateParam) param.behindText = updateParam.behindText;
@@ -1292,6 +1294,28 @@ const getImageSize = async (src) => {
1292
1294
  });
1293
1295
  };
1294
1296
 
1297
+ //#endregion
1298
+ //#region src/utils/image-opacity.ts
1299
+ /**
1300
+ * Copyright 2023-present DreamNum Co., Ltd.
1301
+ *
1302
+ * Licensed under the Apache License, Version 2.0 (the "License");
1303
+ * you may not use this file except in compliance with the License.
1304
+ * You may obtain a copy of the License at
1305
+ *
1306
+ * http://www.apache.org/licenses/LICENSE-2.0
1307
+ *
1308
+ * Unless required by applicable law or agreed to in writing, software
1309
+ * distributed under the License is distributed on an "AS IS" BASIS,
1310
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1311
+ * See the License for the specific language governing permissions and
1312
+ * limitations under the License.
1313
+ */
1314
+ function normalizeImageOpacity(opacity) {
1315
+ if (opacity === void 0 || !Number.isFinite(opacity)) return 1;
1316
+ return Math.min(Math.max(opacity, 0), 1);
1317
+ }
1318
+
1295
1319
  //#endregion
1296
1320
  //#region src/utils/rotate-enabled.ts
1297
1321
  function getDrawingKey(drawing) {
@@ -1319,4 +1343,4 @@ function resolveDrawingRotateEnabled(drawing, options = {}, visiting = /* @__PUR
1319
1343
  }
1320
1344
 
1321
1345
  //#endregion
1322
- export { DRAWING_COPY_CONTEXT_KEY, DRAWING_GROUPABLE_TYPES, DRAWING_IMAGE_ALLOW_IMAGE_LIST, DRAWING_IMAGE_COUNT_LIMIT, DRAWING_IMAGE_HEIGHT_LIMIT, DRAWING_IMAGE_WIDTH_LIMIT, DrawingManagerService, IDrawingManagerService, ImageIoService, SetDrawingSelectedOperation, URLImageService, UnitDrawingService, UniverDrawingPlugin, createDrawingCopyPlan, getDrawingImageAllowSize, getDrawingShapeKeyByDrawingSearch, getImageSize, getOrCreateDrawingCopyPlan, isGroupableDrawingType, resolveDrawingRotateEnabled };
1346
+ export { DRAWING_COPY_CONTEXT_KEY, DRAWING_GROUPABLE_TYPES, DRAWING_IMAGE_ALLOW_IMAGE_LIST, DRAWING_IMAGE_COUNT_LIMIT, DRAWING_IMAGE_HEIGHT_LIMIT, DRAWING_IMAGE_WIDTH_LIMIT, DrawingManagerService, IDrawingManagerService, ImageIoService, SetDrawingSelectedOperation, URLImageService, UnitDrawingService, UniverDrawingPlugin, createDrawingCopyPlan, getDrawingImageAllowSize, getDrawingShapeKeyByDrawingSearch, getImageSize, getOrCreateDrawingCopyPlan, isGroupableDrawingType, normalizeImageOpacity, resolveDrawingRotateEnabled };
package/lib/index.js CHANGED
@@ -55,7 +55,7 @@ const SetDrawingSelectedOperation = {
55
55
  //#endregion
56
56
  //#region package.json
57
57
  var name = "@univerjs/drawing";
58
- var version = "1.0.2";
58
+ var version = "1.0.4";
59
59
 
60
60
  //#endregion
61
61
  //#region src/config/config.ts
@@ -231,6 +231,8 @@ var UnitDrawingService = class {
231
231
  const param = this._getCurrentBySearch(updateParam);
232
232
  if (param == null) return;
233
233
  param.transform = updateParam.transform;
234
+ if (Object.prototype.hasOwnProperty.call(updateParam, "sheetTransform")) param.sheetTransform = updateParam.sheetTransform;
235
+ if (Object.prototype.hasOwnProperty.call(updateParam, "axisAlignSheetTransform")) param.axisAlignSheetTransform = updateParam.axisAlignSheetTransform;
234
236
  if (Object.prototype.hasOwnProperty.call(updateParam, "transforms")) param.transforms = updateParam.transforms;
235
237
  if (Object.prototype.hasOwnProperty.call(updateParam, "isMultiTransform")) param.isMultiTransform = updateParam.isMultiTransform;
236
238
  if ("behindText" in updateParam) param.behindText = updateParam.behindText;
@@ -1292,6 +1294,28 @@ const getImageSize = async (src) => {
1292
1294
  });
1293
1295
  };
1294
1296
 
1297
+ //#endregion
1298
+ //#region src/utils/image-opacity.ts
1299
+ /**
1300
+ * Copyright 2023-present DreamNum Co., Ltd.
1301
+ *
1302
+ * Licensed under the Apache License, Version 2.0 (the "License");
1303
+ * you may not use this file except in compliance with the License.
1304
+ * You may obtain a copy of the License at
1305
+ *
1306
+ * http://www.apache.org/licenses/LICENSE-2.0
1307
+ *
1308
+ * Unless required by applicable law or agreed to in writing, software
1309
+ * distributed under the License is distributed on an "AS IS" BASIS,
1310
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1311
+ * See the License for the specific language governing permissions and
1312
+ * limitations under the License.
1313
+ */
1314
+ function normalizeImageOpacity(opacity) {
1315
+ if (opacity === void 0 || !Number.isFinite(opacity)) return 1;
1316
+ return Math.min(Math.max(opacity, 0), 1);
1317
+ }
1318
+
1295
1319
  //#endregion
1296
1320
  //#region src/utils/rotate-enabled.ts
1297
1321
  function getDrawingKey(drawing) {
@@ -1319,4 +1343,4 @@ function resolveDrawingRotateEnabled(drawing, options = {}, visiting = /* @__PUR
1319
1343
  }
1320
1344
 
1321
1345
  //#endregion
1322
- export { DRAWING_COPY_CONTEXT_KEY, DRAWING_GROUPABLE_TYPES, DRAWING_IMAGE_ALLOW_IMAGE_LIST, DRAWING_IMAGE_COUNT_LIMIT, DRAWING_IMAGE_HEIGHT_LIMIT, DRAWING_IMAGE_WIDTH_LIMIT, DrawingManagerService, IDrawingManagerService, ImageIoService, SetDrawingSelectedOperation, URLImageService, UnitDrawingService, UniverDrawingPlugin, createDrawingCopyPlan, getDrawingImageAllowSize, getDrawingShapeKeyByDrawingSearch, getImageSize, getOrCreateDrawingCopyPlan, isGroupableDrawingType, resolveDrawingRotateEnabled };
1346
+ export { DRAWING_COPY_CONTEXT_KEY, DRAWING_GROUPABLE_TYPES, DRAWING_IMAGE_ALLOW_IMAGE_LIST, DRAWING_IMAGE_COUNT_LIMIT, DRAWING_IMAGE_HEIGHT_LIMIT, DRAWING_IMAGE_WIDTH_LIMIT, DrawingManagerService, IDrawingManagerService, ImageIoService, SetDrawingSelectedOperation, URLImageService, UnitDrawingService, UniverDrawingPlugin, createDrawingCopyPlan, getDrawingImageAllowSize, getDrawingShapeKeyByDrawingSearch, getImageSize, getOrCreateDrawingCopyPlan, isGroupableDrawingType, normalizeImageOpacity, resolveDrawingRotateEnabled };
@@ -29,5 +29,6 @@ export type { ICreateDrawingCopyPlanOptions, IDrawingCopyPlan } from './utils/dr
29
29
  export { DRAWING_GROUPABLE_TYPES, isGroupableDrawingType } from './utils/drawing-group';
30
30
  export { getDrawingShapeKeyByDrawingSearch } from './utils/get-image-shape-key';
31
31
  export { getImageSize } from './utils/get-image-size';
32
+ export { normalizeImageOpacity } from './utils/image-opacity';
32
33
  export { resolveDrawingRotateEnabled } from './utils/rotate-enabled';
33
34
  export type { IDrawingRotateEnabledResolverOptions } from './utils/rotate-enabled';
@@ -17,6 +17,8 @@ import type { IDrawingParam, ImageSourceType, ISrcRect, Nullable, Serializable }
17
17
  export interface IImageData extends IDrawingParam {
18
18
  imageSourceType: ImageSourceType;
19
19
  source: string;
20
+ /** Whole-image opacity from 0 (transparent) through 1 (opaque). Defaults to 1. */
21
+ opacity?: number;
20
22
  /**
21
23
  * 20.1.8.55 srcRect (Source Rectangle)
22
24
  */
@@ -32,10 +32,15 @@ export interface IDrawingJson1Type {
32
32
  subUnitId: string;
33
33
  objects: IDrawingSearch[] | IDrawingOrderMapParam | IDrawingGroupUpdateParam | IDrawingGroupUpdateParam[];
34
34
  }
35
+ interface IDrawingRefreshMetadata {
36
+ behindText?: unknown;
37
+ sheetTransform?: unknown;
38
+ axisAlignSheetTransform?: unknown;
39
+ }
35
40
  /**
36
41
  * unitId -> subUnitId -> drawingId -> drawingParam
37
42
  */
38
- export declare class UnitDrawingService<T extends IDrawingParam> implements IUnitDrawingService<T> {
43
+ export declare class UnitDrawingService<T extends IDrawingParam & IDrawingRefreshMetadata> implements IUnitDrawingService<T> {
39
44
  drawingManagerData: IDrawingMap<T>;
40
45
  private _oldDrawingManagerData;
41
46
  private _focusDrawings;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Co., Ltd.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare function normalizeImageOpacity(opacity: number | undefined): number;
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDrawing={},e.UniverCore,e.rxjs))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let r=5242880;function i(e){r=e}function a(){return r}let o=[`image/png`,`image/jpeg`,`image/jpg`,`image/gif`,`image/bmp`],s=(0,t.createIdentifier)(`univer.drawing-manager.service`),c={id:`drawing.operation.set-drawing-selected`,type:t.CommandType.OPERATION,handler:(e,t)=>{let n=e.get(s);return t!=null&&(n.focusDrawing(t),!0)}};var l=`@univerjs/drawing`,u=`1.0.2`;let d={};function f(e){"@babel/helpers - typeof";return f=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},f(e)}function p(e,t){if(f(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(f(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function m(e){var t=p(e,`string`);return f(t)==`symbol`?t:t+``}function h(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){return Array.isArray(e)&&e.length>0}function _(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((e,n)=>_(e,t[n]));if(!v(e)||!v(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&_(e[n],t[n]))}function v(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function y(e){return Object.getOwnPropertyNames(e).every(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function b(e,n){return t.JSON1.type.writeCursor().writeAtPath(e,`r`,n).get()}function x(e){if(e===void 0)return;if(e===null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`)return e;if(Array.isArray(e))return e.map(e=>x(e)??null);if(!v(e))return;let t={};return Object.entries(e).forEach(([e,n])=>{let r=x(n);r!==void 0&&(t[e]=r)}),t}function S(e,n,r,i,a){let o=x(i),s=x(r),c=a&&o!==void 0;if(c&&_(o,s))return;if(c&&v(i)&&v(r)&&y(i)&&y(r)){for(let t of new Set([...Object.keys(i),...Object.keys(r)]))S(e,[...n,t],r[t],i[t],Object.prototype.hasOwnProperty.call(i,t)&&i[t]!==void 0);return}let l=c?s===void 0?b(n,o):t.JSON1.replaceOp(n,o,s):s===void 0?null:t.JSON1.insertOp(n,s);l&&g(l)&&e.push(l)}function C(...e){for(let t of e)if(t===`__proto__`||t===`constructor`||t===`prototype`)throw Error(`Invalid drawing key`)}function w(e,t){return e!=null&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function T(e){for(let t of Object.keys(e)){C(t);let n=e[t];n!=null&&n.data&&Object.keys(n.data).forEach(e=>C(e)),n!=null&&n.order&&n.order.forEach(e=>C(e))}}var E=class{constructor(){h(this,`drawingManagerData`,{}),h(this,`_oldDrawingManagerData`,{}),h(this,`_focusDrawings`,[]),h(this,`_remove$`,new n.Subject),h(this,`remove$`,this._remove$.asObservable()),h(this,`_add$`,new n.Subject),h(this,`add$`,this._add$.asObservable()),h(this,`_update$`,new n.Subject),h(this,`update$`,this._update$.asObservable()),h(this,`_order$`,new n.Subject),h(this,`order$`,this._order$.asObservable()),h(this,`_group$`,new n.Subject),h(this,`group$`,this._group$.asObservable()),h(this,`_ungroup$`,new n.Subject),h(this,`ungroup$`,this._ungroup$.asObservable()),h(this,`_refreshTransform$`,new n.Subject),h(this,`refreshTransform$`,this._refreshTransform$.asObservable()),h(this,`_visible$`,new n.Subject),h(this,`visible$`,this._visible$.asObservable()),h(this,`_focus$`,new n.Subject),h(this,`focus$`,this._focus$.asObservable()),h(this,`_featurePluginUpdate$`,new n.Subject),h(this,`featurePluginUpdate$`,this._featurePluginUpdate$.asObservable()),h(this,`_featurePluginAdd$`,new n.Subject),h(this,`featurePluginAdd$`,this._featurePluginAdd$.asObservable()),h(this,`_featurePluginRemove$`,new n.Subject),h(this,`featurePluginRemove$`,this._featurePluginRemove$.asObservable()),h(this,`_featurePluginOrderUpdate$`,new n.Subject),h(this,`featurePluginOrderUpdate$`,this._featurePluginOrderUpdate$.asObservable()),h(this,`_featurePluginGroupUpdate$`,new n.Subject),h(this,`featurePluginGroupUpdate$`,this._featurePluginGroupUpdate$.asObservable()),h(this,`_featurePluginUngroupUpdate$`,new n.Subject),h(this,`featurePluginUngroupUpdate$`,this._featurePluginUngroupUpdate$.asObservable()),h(this,`_visible`,!0),h(this,`_editable`,!0)}dispose(){this._remove$.complete(),this._add$.complete(),this._update$.complete(),this._order$.complete(),this._focus$.complete(),this._featurePluginUpdate$.complete(),this._featurePluginAdd$.complete(),this._featurePluginRemove$.complete(),this._featurePluginOrderUpdate$.complete(),this.drawingManagerData={},this._oldDrawingManagerData={}}visibleNotification(e){this._visible$.next(e)}refreshTransform(e){e.forEach(e=>{let t=this._getCurrentBySearch(e);t!=null&&(t.transform=e.transform,Object.prototype.hasOwnProperty.call(e,`transforms`)&&(t.transforms=e.transforms),Object.prototype.hasOwnProperty.call(e,`isMultiTransform`)&&(t.isMultiTransform=e.isMultiTransform),`behindText`in e&&(t.behindText=e.behindText),`hidden`in e&&(t.hidden=e.hidden))}),this.refreshTransformNotification(e)}getDrawingDataForUnit(e){return w(this.drawingManagerData,e)||{}}removeDrawingDataForUnit(e){let t=w(this.drawingManagerData,e);if(t==null)return;delete this.drawingManagerData[e];let n=[];Object.keys(t).forEach(r=>{let i=t[r];(i==null?void 0:i.data)!=null&&Object.keys(i.data).forEach(t=>{n.push({unitId:e,subUnitId:r,drawingId:t})})}),n.length>0&&this.removeNotification(n)}registerDrawingData(e,t){C(e),T(t),this.drawingManagerData[e]=t}initializeNotification(e){let t=[],n=w(this.drawingManagerData,e);n!=null&&(Object.keys(n).forEach(r=>{this._establishDrawingMap(e,r);let i=n[r];(i==null?void 0:i.data)!=null&&Object.keys(i.data).forEach(n=>{let a=i.data[n];a.unitId=e,a.subUnitId=r,t.push(a)})}),t.length>0&&this.addNotification(t))}getDrawingData(e,t){return this._getDrawingData(e,t)}setDrawingData(e,t,n){C(e,t),Object.keys(n).forEach(e=>C(e)),this._establishDrawingMap(e,t);let r=this.drawingManagerData[e],i=r[t];this._oldDrawingManagerData={...this.drawingManagerData,[e]:{...r,[t]:{...i}}},this.drawingManagerData[e][t].data=n}getBatchAddOp(e){let n=[],r=[],i=[];e.forEach(e=>{let{op:t,invertOp:a}=this._addByParam(e);n.push({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}),r.push(t),i.push(a)});let a=r.reduce(t.JSON1.type.compose,null),o=i.reduce(t.JSON1.type.compose,null),{unitId:s,subUnitId:c}=e[0];return{undo:o,redo:a,unitId:s,subUnitId:c,objects:n}}getBatchRemoveOpInOder(e){if(e.length===0)return{undo:null,redo:null,unitId:``,subUnitId:``,objects:[]};let t=this.getDrawingOrder(e[0].unitId,e[0].subUnitId),n=new Map;return t.forEach((e,t)=>{n.set(e,t)}),e.sort((e,t)=>(n.get(e.drawingId)??-1/0)-(n.get(t.drawingId)??-1/0)),this.getBatchRemoveOp(e)}_getExpandedBatchRemoveParams(e){let n=new Set,r=[],i=e=>{n.has(e.drawingId)||(n.add(e.drawingId),r.push({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}))},a=e=>{n.has(e.drawingId)||(n.add(e.drawingId),r.push(e))};return e.forEach(e=>{let n=this.getDrawingByParam(e);if((n==null?void 0:n.drawingType)===t.DrawingTypeEnum.DRAWING_GROUP){let t=this.getDrawingsByGroupNested(e);if(t){let{flatChildren:e,groups:n}=t;[...e??[],...n].forEach(e=>{i(e)})}else i(n)}else n?i(n):a(e)}),r}getBatchRemoveOp(e){let n=this._getExpandedBatchRemoveParams(e),{unitId:r,subUnitId:i}=n[0]??e[0]??{unitId:``,subUnitId:``};if(n.length===0)return{undo:null,redo:null,unitId:r,subUnitId:i,objects:[]};let a=this._getDrawingOrder(r,i),o=new Map;a.forEach((e,t)=>o.set(e,t)),n.sort((e,t)=>(o.get(e.drawingId)??-1/0)-(o.get(t.drawingId)??-1/0));let s=[],c=[];n.forEach(e=>{let{op:t,invertOp:n}=this._removeByParam(e);s.unshift(t),c.push(n)});let l=s.reduce(t.JSON1.type.compose,null);return{undo:c.reduce(t.JSON1.type.compose,null),redo:l,unitId:r,subUnitId:i,objects:n}}getBatchUpdateOp(e){let n=[],r=[],i=[];if(e.forEach(e=>{let{op:t,invertOp:a}=this._updateByParam(e);g(t)&&(n.push({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}),r.push(t),i.push(a))}),r.length===0){let{unitId:t,subUnitId:r}=e[0];return{undo:null,redo:null,unitId:t,subUnitId:r,objects:n}}let a=r.reduce(t.JSON1.type.compose,null),o=i.reduce(t.JSON1.type.compose,null),{unitId:s,subUnitId:c}=e[0];return{undo:o,redo:a,unitId:s,subUnitId:c,objects:n}}removeNotification(e){this._remove$.next(e)}addNotification(e){this._add$.next(e)}updateNotification(e){this._update$.next(e)}orderNotification(e){this._order$.next(e)}groupUpdateNotification(e){this._group$.next(e)}ungroupUpdateNotification(e){this._ungroup$.next(e)}refreshTransformNotification(e){this._refreshTransform$.next(e)}getGroupDrawingOp(e){let n=[],{unitId:r,subUnitId:i}=e[0].parent;e.forEach(e=>{n.push(this._getGroupDrawingOp(e))});let a=n.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(a,this.drawingManagerData),redo:a,unitId:r,subUnitId:i,objects:e}}getUngroupDrawingOp(e){let n=[],{unitId:r,subUnitId:i}=e[0].parent;e.forEach(e=>{n.push(this._getUngroupDrawingOp(e))});let a=n.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(a,this.drawingManagerData),redo:a,unitId:r,subUnitId:i,objects:e}}getDrawingsByGroup(e){let{unitId:t,subUnitId:n,drawingId:r}=e;if(this.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})==null)return[];let i=this._getDrawingData(t,n),a=[];return Object.keys(i).forEach(e=>{let t=i[e];t.groupId===r&&a.push(t)}),a}getDrawingsByGroupNested(e){let{unitId:n,subUnitId:r}=e,i=this.getDrawingByParam(e);if(!i)return null;let a=this._getDrawingData(n,r),o=new Map;Object.values(a).forEach(e=>{e.groupId!=null&&(o.has(e.groupId)||o.set(e.groupId,[]),o.get(e.groupId).push(e.drawingId))});let s=[],c=[],l={},u=e=>{let{drawingId:n}=e,r=o.get(n)??[];l[n]={drawingId:n,children:r},r.forEach(e=>{let n=a[e];n&&(n.drawingType===t.DrawingTypeEnum.DRAWING_GROUP?(u(n),c.push(n)):s.push(n))})};return u(i),c.push(i),{nestedIdRecord:l,flatChildren:s,groups:c}}_getGroupDrawingOp(e){let{parent:n,children:r}=e,{unitId:i,subUnitId:a,drawingId:o}=n,s=[];s.push(t.JSON1.insertOp([i,a,`data`,o],n));let c=-1/0;return r.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=this._hasDrawingOrder({unitId:t,subUnitId:n,drawingId:r});c=Math.max(c,i),s.push(...this._getUpdateParamCompareOp(e,this.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})))}),c===-1/0&&(c=this._getDrawingOrder(i,a).length),s.push(t.JSON1.insertOp([i,a,`order`,c],o)),s.reduce(t.JSON1.type.compose,null)}_getUngroupDrawingOp(e){let{parent:n,children:r}=e,{unitId:i,subUnitId:a,drawingId:o}=n,s=[];return r.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e;s.push(...this._getUpdateParamCompareOp(e,this.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})))}),s.push(t.JSON1.removeOp([i,a,`data`,o],!0)),s.push(t.JSON1.removeOp([i,a,`order`,this._getDrawingOrder(i,a).indexOf(o)],!0)),s.reduce(t.JSON1.type.compose,null)}applyJson1(e,n,r){C(e,n),t.JSON1.type.checkValidOp(r);let i=w(this.drawingManagerData,e),a={...this.drawingManagerData,[e]:{...i,[n]:w(i,n)??{data:{},order:[]}}},o=t.JSON1.type.apply(a,r);for(let e of Object.keys(o))C(e),T(o[e]);this._oldDrawingManagerData=this.drawingManagerData,this.drawingManagerData=o}featurePluginUpdateNotification(e){this._featurePluginUpdate$.next(e)}featurePluginOrderUpdateNotification(e){this._featurePluginOrderUpdate$.next(e)}featurePluginAddNotification(e){this._featurePluginAdd$.next(e)}featurePluginRemoveNotification(e){this._featurePluginRemove$.next(e)}featurePluginGroupUpdateNotification(e){this._featurePluginGroupUpdate$.next(e)}featurePluginUngroupUpdateNotification(e){this._featurePluginUngroupUpdate$.next(e)}getDrawingByParam(e){return this._getCurrentBySearch(e)}getOldDrawingByParam(e){return this._getOldBySearch(e)}getDrawingOKey(e){let[t,n,r]=e.split(`#-#`);return this._getCurrentBySearch({unitId:t,subUnitId:n,drawingId:r})}focusDrawing(e){if(e==null||e.length===0){this._focusDrawings=[],this._focus$.next([]);return}let t=[];e.forEach(e=>{var n;let{unitId:r,subUnitId:i,drawingId:a}=e,o=(n=this._getDrawingData(r,i))==null?void 0:n[a];o!=null&&t.push(o)}),t.length>0&&(this._focusDrawings=t,this._focus$.next(t))}getFocusDrawings(){let e=[];return this._focusDrawings.forEach(t=>{var n;let{unitId:r,subUnitId:i,drawingId:a}=t,o=(n=this._getDrawingData(r,i))==null?void 0:n[a];o!=null&&e.push(o)}),e}getDrawingOrder(e,t){return this._getDrawingOrder(e,t)}setDrawingOrder(e,t,n){C(e,t),n.forEach(e=>C(e)),this._establishDrawingMap(e,t),this.drawingManagerData[e][t].order=n}orderUpdateNotification(e){this._order$.next(e)}getForwardDrawingsOp(e){let{unitId:n,subUnitId:r,drawingIds:i}=e,a=[],o=this.getDrawingOrder(n,r),s=[...i];i.forEach(e=>{let i=this._hasDrawingOrder({unitId:n,subUnitId:r,drawingId:e});if(i===-1||i===o.length-1)return;let c=t.JSON1.moveOp([n,r,`order`,i],[n,r,`order`,i+1]);a.push(c),s.includes(o[i+1])||s.push(o[i+1])});let c=a.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(c,this.drawingManagerData),redo:c,unitId:n,subUnitId:r,objects:{...e,drawingIds:s}}}getBackwardDrawingOp(e){let{unitId:n,subUnitId:r,drawingIds:i}=e,a=[],o=this.getDrawingOrder(n,r),s=[...i];i.forEach(e=>{let i=this._hasDrawingOrder({unitId:n,subUnitId:r,drawingId:e});if(i===-1||i===0)return;let c=t.JSON1.moveOp([n,r,`order`,i],[n,r,`order`,i-1]);a.push(c),s.includes(o[i-1])||s.push(o[i-1])});let c=a.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(c,this.drawingManagerData),redo:c,unitId:n,subUnitId:r,objects:{...e,drawingIds:s}}}getFrontDrawingsOp(e){let{unitId:n,subUnitId:r,drawingIds:i}=e,a=this._getOrderFromSearchParams(n,r,i),o=[...i],s=this.getDrawingOrder(n,r),c=[];a.forEach(e=>{let{drawingId:i}=e,a=this._getDrawingCount(n,r)-1,l=t.JSON1.moveOp([n,r,`order`,this._getDrawingOrder(n,r).indexOf(i)],[n,r,`order`,a]);c.push(l),o.includes(s[a])||o.push(s[a])});let l=c.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(l,this.drawingManagerData),redo:l,unitId:n,subUnitId:r,objects:{...e,drawingIds:o}}}getBackDrawingsOp(e){let{unitId:n,subUnitId:r,drawingIds:i}=e,a=this._getOrderFromSearchParams(n,r,i,!0),o=[...i],s=this.getDrawingOrder(n,r),c=[];a.forEach(e=>{let{drawingId:i}=e,a=t.JSON1.moveOp([n,r,`order`,this._getDrawingOrder(n,r).indexOf(i)],[n,r,`order`,0]);c.push(a),o.includes(s[0])||o.push(s[0])});let l=c.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(l,this.drawingManagerData),redo:l,unitId:n,subUnitId:r,objects:{...e,drawingIds:o}}}getDrawingOrderOp(e,n){let{unitId:r,subUnitId:i,drawingIds:a}=e;if(a.length!==1)return null;let o=this.getDrawingOrder(r,i),s=a[0],c=o.indexOf(s),l=(0,t.normalizeDrawingOrderIndex)(n,o.length);if(c<0||c===l)return null;let u=t.JSON1.moveOp([r,i,`order`,c],[r,i,`order`,l]),d=t.JSON1.type.invertWithDoc(u,this.drawingManagerData),f=o.slice(Math.min(c,l),Math.max(c,l)+1);return{undo:d,redo:u,unitId:r,subUnitId:i,objects:{...e,drawingIds:f}}}_getDrawingCount(e,t){return this.getDrawingOrder(e,t).length||0}_getOrderFromSearchParams(e,n,r,i=!1){return r.map(t=>({drawingId:t,zIndex:this._hasDrawingOrder({unitId:e,subUnitId:n,drawingId:t})})).sort(i===!1?t.sortRules:t.sortRulesByDesc)}_hasDrawingOrder(e){if(e==null)return-1;let{unitId:t,subUnitId:n,drawingId:r}=e;return this._establishDrawingMap(t,n),this._getDrawingOrder(t,n).indexOf(r)}_getCurrentBySearch(e){var t;if(e==null)return;let{unitId:n,subUnitId:r,drawingId:i}=e;return w((t=w(w(this.drawingManagerData,n),r))==null?void 0:t.data,i)}_getOldBySearch(e){var t;if(e==null)return;let{unitId:n,subUnitId:r,drawingId:i}=e;return w((t=w(w(this._oldDrawingManagerData,n),r))==null?void 0:t.data,i)}_establishDrawingMap(e,t,n){return C(e,t),n!=null&&C(n),w(this.drawingManagerData,e)||(this.drawingManagerData[e]={}),w(this.drawingManagerData[e],t)||(this.drawingManagerData[e][t]={data:{},order:[]}),n==null?null:w(this.drawingManagerData[e][t].data,n)}_addByParam(e){let{unitId:n,subUnitId:r,drawingId:i}=e;this._establishDrawingMap(n,r,i);let a=[t.JSON1.insertOp([n,r,`data`,i],e),t.JSON1.insertOp([n,r,`order`,this._getDrawingOrder(n,r).length],i)].reduce(t.JSON1.type.compose,null);return{op:a,invertOp:t.JSON1.type.invertWithDoc(a,this.drawingManagerData)}}_removeByParam(e){if(e==null)return{op:[],invertOp:[]};let{unitId:n,subUnitId:r,drawingId:i}=e;if(this._establishDrawingMap(n,r,i)==null)return{op:[],invertOp:[]};let a=[t.JSON1.removeOp([n,r,`data`,i],!0),t.JSON1.removeOp([n,r,`order`,this._getDrawingOrder(n,r).indexOf(i)],!0)].reduce(t.JSON1.type.compose,null);return{op:a,invertOp:t.JSON1.type.invertWithDoc(a,this.drawingManagerData)}}_updateByParam(e){let{unitId:n,subUnitId:r,drawingId:i}=e,a=this._establishDrawingMap(n,r,i);if(a==null)return{op:[],invertOp:[]};let o=this._getUpdateParamCompareOp(e,a);if(o.length===0)return{op:[],invertOp:[]};let s=o.reduce(t.JSON1.type.compose,null);return{op:s,invertOp:t.JSON1.type.invert(s)}}_getUpdateParamCompareOp(e,t){let{unitId:n,subUnitId:r,drawingId:i}=e,a=[];return Object.keys(e).forEach(o=>{let s=e[o],c=Object.prototype.hasOwnProperty.call(t,o),l=t[o];S(a,[n,r,`data`,i,o],s,l,c)}),a}_getDrawingData(e,t){var n;return((n=w(w(this.drawingManagerData,e),t))==null?void 0:n.data)||{}}_getDrawingOrder(e,t){var n;return((n=w(w(this.drawingManagerData,e),t))==null?void 0:n.order)||[]}getDrawingVisible(){return this._visible}getDrawingEditable(){return this._editable}setDrawingVisible(e){this._visible=e}setDrawingEditable(e){this._editable=e}},D=class extends E{},O=class{constructor(){h(this,`_waitCount`,0),h(this,`_change$`,new n.Subject),h(this,`change$`,this._change$),h(this,`_imageSourceCache`,new Map)}setWaitCount(e){this._waitCount=e,this._change$.next(e)}getImageSourceCache(e,n){let r=this._imageSourceCache.get(e);if(r!=null)return r;if(n===t.ImageSourceType.BASE64){let t=new Image;return t.onload=()=>this._change$.next(this._waitCount),t.onerror=()=>this._change$.next(this._waitCount),t.src=e,this._imageSourceCache.set(e,t),t}}addImageSourceCache(e,n,r){n!==t.ImageSourceType.BASE64&&r!=null&&this._imageSourceCache.set(e,r)}async getImage(e){return Promise.resolve(e)}async saveImage(e){return new Promise((n,r)=>{if(!o.includes(e.type)){r(Error(t.ImageUploadStatusType.ERROR_IMAGE_TYPE)),this._decreaseWaiting();return}if(e.size>a()){r(Error(t.ImageUploadStatusType.ERROR_EXCEED_SIZE)),this._decreaseWaiting();return}let i=new FileReader;i.readAsDataURL(e),i.onload=e=>{var i;let a=(i=e.target)==null?void 0:i.result;if(a==null){r(Error(t.ImageUploadStatusType.ERROR_IMAGE)),this._decreaseWaiting();return}n({imageId:(0,t.generateRandomId)(6),imageSourceType:t.ImageSourceType.BASE64,source:a,base64Cache:a,status:t.ImageUploadStatusType.SUCCUSS}),this._decreaseWaiting()}})}_decreaseWaiting(){--this._waitCount,this._change$.next(this._waitCount)}},k=class extends t.Disposable{constructor(...e){super(...e),h(this,`_urlImageDownloader`,null)}registerURLImageDownloader(e){return this._urlImageDownloader=e,(0,t.toDisposable)(()=>{this._urlImageDownloader=null})}async getImage(e){if(this._urlImageDownloader)try{return await this._urlImageDownloader(e)}catch(t){console.error(`Custom downloader failed for ${e}, falling back to default behavior:`,t)}return e}async downloadImage(e){if(this._urlImageDownloader)try{let t=await this._urlImageDownloader(e);return await(await fetch(t)).blob()}catch(t){console.error(`Custom downloader failed for ${e}, falling back to default fetch:`,t)}return await(await fetch(e)).blob()}};function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let M=class extends t.Plugin{constructor(e=d,n,r,a){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=a;let{...o}=(0,t.merge)({},d,this._config);this._configService.setConfig(`drawing.config`,o),o.allowImageSize!==void 0&&i(o.allowImageSize)}onStarting(){this._initCommands(),this._initDependencies()}_initDependencies(){var e;(0,t.mergeOverrideWithDependencies)([[t.IImageIoService,{useClass:O}],[t.IURLImageService,{useClass:k}],[s,{useClass:D}]],(e=this._config)==null?void 0:e.override).forEach(e=>this._injector.add(e))}_initCommands(){[c].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};h(M,`pluginName`,`UNIVER_DRAWING_PLUGIN`),h(M,`packageName`,l),h(M,`version`,u),M=j([A(1,(0,t.Inject)(t.Injector)),A(2,t.IConfigService),A(3,t.ICommandService)],M);let N=`univer.drawing.copy-plan`;function P(e){return JSON.parse(JSON.stringify(e))}function F(e,t,n){let r=P(e),i=t.get(e.drawingId);if(i==null)return r;if(r.unitId=n.unitId,r.subUnitId=n.targetSubUnitId,r.drawingId=i,r.groupId){let e=t.get(r.groupId);e?r.groupId=e:delete r.groupId}return r}function I(e,n){let{generateId:r=()=>(0,t.generateRandomId)(10)}=n,i=new Map;return e.forEach(e=>{i.has(e.drawingId)||i.set(e.drawingId,r())}),{idMap:i,drawings:e.map(e=>F(e,i,n))}}function L(e,n,r){if(e==null)return I(n,r);let i=e.get(N);if(i){let{generateId:e=()=>(0,t.generateRandomId)(10)}=r;if(!n.some(e=>!i.idMap.has(e.drawingId)))return i;n.forEach(t=>{i.idMap.has(t.drawingId)||i.idMap.set(t.drawingId,e())});let a=new Set(n.map(e=>e.drawingId)),o=new Map(Array.from(i.idMap.entries()).map(([e,t])=>[t,e])),s=i.drawings.filter(e=>{let t=o.get(e.drawingId);return t==null||!a.has(t)});return i.drawings=[...n.map(e=>F(e,i.idMap,r)),...s],i}let a=I(n,r);return e.set(N,a),a}let R=[t.DrawingTypeEnum.DRAWING_IMAGE,t.DrawingTypeEnum.DRAWING_SHAPE,t.DrawingTypeEnum.DRAWING_CHART,t.DrawingTypeEnum.DRAWING_SLICER,t.DrawingTypeEnum.DRAWING_TIMELINE,t.DrawingTypeEnum.DRAWING_GROUP];function z(e){return R.includes(e)}function B({unitId:e,subUnitId:t,drawingId:n},r){return typeof r==`number`?`${e}#-#${t}#-#${n}#-#${r}`:`${e}#-#${t}#-#${n}`}let V=async e=>new Promise((t,n)=>{let r=new Image;r.src=e,r.onload=()=>{t({width:r.width,height:r.height,image:r})},r.onerror=e=>{n(e)}});function H(e){return`${e.unitId}\u0000${e.subUnitId}\u0000${e.drawingId}`}function U(e,n={},r=new Set){var i,a,o;let s=H(e);if(r.has(s))return!0;if(e.drawingType===t.DrawingTypeEnum.DRAWING_GROUP){var c;r.add(s);let t=(c=n.getChildren)==null?void 0:c.call(n,e);if(t!=null){let e=t.every(e=>U(e,n,r));return r.delete(s),e}r.delete(s)}return!(((i=e.transform)==null?void 0:i.rotateEnabled)===!1||((a=n.getRenderObject)==null||(a=a.call(n,e))==null||(a=a.transformerConfig)==null?void 0:a.rotateEnabled)===!1||(o=n.isKnownNonRotatableType)!=null&&o.call(n,e.drawingType))}e.DRAWING_COPY_CONTEXT_KEY=N,e.DRAWING_GROUPABLE_TYPES=R,e.DRAWING_IMAGE_ALLOW_IMAGE_LIST=o,e.DRAWING_IMAGE_COUNT_LIMIT=10,e.DRAWING_IMAGE_HEIGHT_LIMIT=500,e.DRAWING_IMAGE_WIDTH_LIMIT=500,e.DrawingManagerService=D,e.IDrawingManagerService=s,e.ImageIoService=O,e.SetDrawingSelectedOperation=c,e.URLImageService=k,e.UnitDrawingService=E,Object.defineProperty(e,"UniverDrawingPlugin",{enumerable:!0,get:function(){return M}}),e.createDrawingCopyPlan=I,e.getDrawingImageAllowSize=a,e.getDrawingShapeKeyByDrawingSearch=B,e.getImageSize=V,e.getOrCreateDrawingCopyPlan=L,e.isGroupableDrawingType=z,e.resolveDrawingRotateEnabled=U});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDrawing={},e.UniverCore,e.rxjs))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let r=5242880;function i(e){r=e}function a(){return r}let o=[`image/png`,`image/jpeg`,`image/jpg`,`image/gif`,`image/bmp`],s=(0,t.createIdentifier)(`univer.drawing-manager.service`),c={id:`drawing.operation.set-drawing-selected`,type:t.CommandType.OPERATION,handler:(e,t)=>{let n=e.get(s);return t!=null&&(n.focusDrawing(t),!0)}};var l=`@univerjs/drawing`,u=`1.0.4`;let d={};function f(e){"@babel/helpers - typeof";return f=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},f(e)}function p(e,t){if(f(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(f(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function m(e){var t=p(e,`string`);return f(t)==`symbol`?t:t+``}function h(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){return Array.isArray(e)&&e.length>0}function _(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((e,n)=>_(e,t[n]));if(!v(e)||!v(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&_(e[n],t[n]))}function v(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function y(e){return Object.getOwnPropertyNames(e).every(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function b(e,n){return t.JSON1.type.writeCursor().writeAtPath(e,`r`,n).get()}function x(e){if(e===void 0)return;if(e===null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`)return e;if(Array.isArray(e))return e.map(e=>x(e)??null);if(!v(e))return;let t={};return Object.entries(e).forEach(([e,n])=>{let r=x(n);r!==void 0&&(t[e]=r)}),t}function S(e,n,r,i,a){let o=x(i),s=x(r),c=a&&o!==void 0;if(c&&_(o,s))return;if(c&&v(i)&&v(r)&&y(i)&&y(r)){for(let t of new Set([...Object.keys(i),...Object.keys(r)]))S(e,[...n,t],r[t],i[t],Object.prototype.hasOwnProperty.call(i,t)&&i[t]!==void 0);return}let l=c?s===void 0?b(n,o):t.JSON1.replaceOp(n,o,s):s===void 0?null:t.JSON1.insertOp(n,s);l&&g(l)&&e.push(l)}function C(...e){for(let t of e)if(t===`__proto__`||t===`constructor`||t===`prototype`)throw Error(`Invalid drawing key`)}function w(e,t){return e!=null&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function T(e){for(let t of Object.keys(e)){C(t);let n=e[t];n!=null&&n.data&&Object.keys(n.data).forEach(e=>C(e)),n!=null&&n.order&&n.order.forEach(e=>C(e))}}var E=class{constructor(){h(this,`drawingManagerData`,{}),h(this,`_oldDrawingManagerData`,{}),h(this,`_focusDrawings`,[]),h(this,`_remove$`,new n.Subject),h(this,`remove$`,this._remove$.asObservable()),h(this,`_add$`,new n.Subject),h(this,`add$`,this._add$.asObservable()),h(this,`_update$`,new n.Subject),h(this,`update$`,this._update$.asObservable()),h(this,`_order$`,new n.Subject),h(this,`order$`,this._order$.asObservable()),h(this,`_group$`,new n.Subject),h(this,`group$`,this._group$.asObservable()),h(this,`_ungroup$`,new n.Subject),h(this,`ungroup$`,this._ungroup$.asObservable()),h(this,`_refreshTransform$`,new n.Subject),h(this,`refreshTransform$`,this._refreshTransform$.asObservable()),h(this,`_visible$`,new n.Subject),h(this,`visible$`,this._visible$.asObservable()),h(this,`_focus$`,new n.Subject),h(this,`focus$`,this._focus$.asObservable()),h(this,`_featurePluginUpdate$`,new n.Subject),h(this,`featurePluginUpdate$`,this._featurePluginUpdate$.asObservable()),h(this,`_featurePluginAdd$`,new n.Subject),h(this,`featurePluginAdd$`,this._featurePluginAdd$.asObservable()),h(this,`_featurePluginRemove$`,new n.Subject),h(this,`featurePluginRemove$`,this._featurePluginRemove$.asObservable()),h(this,`_featurePluginOrderUpdate$`,new n.Subject),h(this,`featurePluginOrderUpdate$`,this._featurePluginOrderUpdate$.asObservable()),h(this,`_featurePluginGroupUpdate$`,new n.Subject),h(this,`featurePluginGroupUpdate$`,this._featurePluginGroupUpdate$.asObservable()),h(this,`_featurePluginUngroupUpdate$`,new n.Subject),h(this,`featurePluginUngroupUpdate$`,this._featurePluginUngroupUpdate$.asObservable()),h(this,`_visible`,!0),h(this,`_editable`,!0)}dispose(){this._remove$.complete(),this._add$.complete(),this._update$.complete(),this._order$.complete(),this._focus$.complete(),this._featurePluginUpdate$.complete(),this._featurePluginAdd$.complete(),this._featurePluginRemove$.complete(),this._featurePluginOrderUpdate$.complete(),this.drawingManagerData={},this._oldDrawingManagerData={}}visibleNotification(e){this._visible$.next(e)}refreshTransform(e){e.forEach(e=>{let t=this._getCurrentBySearch(e);t!=null&&(t.transform=e.transform,Object.prototype.hasOwnProperty.call(e,`sheetTransform`)&&(t.sheetTransform=e.sheetTransform),Object.prototype.hasOwnProperty.call(e,`axisAlignSheetTransform`)&&(t.axisAlignSheetTransform=e.axisAlignSheetTransform),Object.prototype.hasOwnProperty.call(e,`transforms`)&&(t.transforms=e.transforms),Object.prototype.hasOwnProperty.call(e,`isMultiTransform`)&&(t.isMultiTransform=e.isMultiTransform),`behindText`in e&&(t.behindText=e.behindText),`hidden`in e&&(t.hidden=e.hidden))}),this.refreshTransformNotification(e)}getDrawingDataForUnit(e){return w(this.drawingManagerData,e)||{}}removeDrawingDataForUnit(e){let t=w(this.drawingManagerData,e);if(t==null)return;delete this.drawingManagerData[e];let n=[];Object.keys(t).forEach(r=>{let i=t[r];(i==null?void 0:i.data)!=null&&Object.keys(i.data).forEach(t=>{n.push({unitId:e,subUnitId:r,drawingId:t})})}),n.length>0&&this.removeNotification(n)}registerDrawingData(e,t){C(e),T(t),this.drawingManagerData[e]=t}initializeNotification(e){let t=[],n=w(this.drawingManagerData,e);n!=null&&(Object.keys(n).forEach(r=>{this._establishDrawingMap(e,r);let i=n[r];(i==null?void 0:i.data)!=null&&Object.keys(i.data).forEach(n=>{let a=i.data[n];a.unitId=e,a.subUnitId=r,t.push(a)})}),t.length>0&&this.addNotification(t))}getDrawingData(e,t){return this._getDrawingData(e,t)}setDrawingData(e,t,n){C(e,t),Object.keys(n).forEach(e=>C(e)),this._establishDrawingMap(e,t);let r=this.drawingManagerData[e],i=r[t];this._oldDrawingManagerData={...this.drawingManagerData,[e]:{...r,[t]:{...i}}},this.drawingManagerData[e][t].data=n}getBatchAddOp(e){let n=[],r=[],i=[];e.forEach(e=>{let{op:t,invertOp:a}=this._addByParam(e);n.push({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}),r.push(t),i.push(a)});let a=r.reduce(t.JSON1.type.compose,null),o=i.reduce(t.JSON1.type.compose,null),{unitId:s,subUnitId:c}=e[0];return{undo:o,redo:a,unitId:s,subUnitId:c,objects:n}}getBatchRemoveOpInOder(e){if(e.length===0)return{undo:null,redo:null,unitId:``,subUnitId:``,objects:[]};let t=this.getDrawingOrder(e[0].unitId,e[0].subUnitId),n=new Map;return t.forEach((e,t)=>{n.set(e,t)}),e.sort((e,t)=>(n.get(e.drawingId)??-1/0)-(n.get(t.drawingId)??-1/0)),this.getBatchRemoveOp(e)}_getExpandedBatchRemoveParams(e){let n=new Set,r=[],i=e=>{n.has(e.drawingId)||(n.add(e.drawingId),r.push({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}))},a=e=>{n.has(e.drawingId)||(n.add(e.drawingId),r.push(e))};return e.forEach(e=>{let n=this.getDrawingByParam(e);if((n==null?void 0:n.drawingType)===t.DrawingTypeEnum.DRAWING_GROUP){let t=this.getDrawingsByGroupNested(e);if(t){let{flatChildren:e,groups:n}=t;[...e??[],...n].forEach(e=>{i(e)})}else i(n)}else n?i(n):a(e)}),r}getBatchRemoveOp(e){let n=this._getExpandedBatchRemoveParams(e),{unitId:r,subUnitId:i}=n[0]??e[0]??{unitId:``,subUnitId:``};if(n.length===0)return{undo:null,redo:null,unitId:r,subUnitId:i,objects:[]};let a=this._getDrawingOrder(r,i),o=new Map;a.forEach((e,t)=>o.set(e,t)),n.sort((e,t)=>(o.get(e.drawingId)??-1/0)-(o.get(t.drawingId)??-1/0));let s=[],c=[];n.forEach(e=>{let{op:t,invertOp:n}=this._removeByParam(e);s.unshift(t),c.push(n)});let l=s.reduce(t.JSON1.type.compose,null);return{undo:c.reduce(t.JSON1.type.compose,null),redo:l,unitId:r,subUnitId:i,objects:n}}getBatchUpdateOp(e){let n=[],r=[],i=[];if(e.forEach(e=>{let{op:t,invertOp:a}=this._updateByParam(e);g(t)&&(n.push({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}),r.push(t),i.push(a))}),r.length===0){let{unitId:t,subUnitId:r}=e[0];return{undo:null,redo:null,unitId:t,subUnitId:r,objects:n}}let a=r.reduce(t.JSON1.type.compose,null),o=i.reduce(t.JSON1.type.compose,null),{unitId:s,subUnitId:c}=e[0];return{undo:o,redo:a,unitId:s,subUnitId:c,objects:n}}removeNotification(e){this._remove$.next(e)}addNotification(e){this._add$.next(e)}updateNotification(e){this._update$.next(e)}orderNotification(e){this._order$.next(e)}groupUpdateNotification(e){this._group$.next(e)}ungroupUpdateNotification(e){this._ungroup$.next(e)}refreshTransformNotification(e){this._refreshTransform$.next(e)}getGroupDrawingOp(e){let n=[],{unitId:r,subUnitId:i}=e[0].parent;e.forEach(e=>{n.push(this._getGroupDrawingOp(e))});let a=n.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(a,this.drawingManagerData),redo:a,unitId:r,subUnitId:i,objects:e}}getUngroupDrawingOp(e){let n=[],{unitId:r,subUnitId:i}=e[0].parent;e.forEach(e=>{n.push(this._getUngroupDrawingOp(e))});let a=n.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(a,this.drawingManagerData),redo:a,unitId:r,subUnitId:i,objects:e}}getDrawingsByGroup(e){let{unitId:t,subUnitId:n,drawingId:r}=e;if(this.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})==null)return[];let i=this._getDrawingData(t,n),a=[];return Object.keys(i).forEach(e=>{let t=i[e];t.groupId===r&&a.push(t)}),a}getDrawingsByGroupNested(e){let{unitId:n,subUnitId:r}=e,i=this.getDrawingByParam(e);if(!i)return null;let a=this._getDrawingData(n,r),o=new Map;Object.values(a).forEach(e=>{e.groupId!=null&&(o.has(e.groupId)||o.set(e.groupId,[]),o.get(e.groupId).push(e.drawingId))});let s=[],c=[],l={},u=e=>{let{drawingId:n}=e,r=o.get(n)??[];l[n]={drawingId:n,children:r},r.forEach(e=>{let n=a[e];n&&(n.drawingType===t.DrawingTypeEnum.DRAWING_GROUP?(u(n),c.push(n)):s.push(n))})};return u(i),c.push(i),{nestedIdRecord:l,flatChildren:s,groups:c}}_getGroupDrawingOp(e){let{parent:n,children:r}=e,{unitId:i,subUnitId:a,drawingId:o}=n,s=[];s.push(t.JSON1.insertOp([i,a,`data`,o],n));let c=-1/0;return r.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e,i=this._hasDrawingOrder({unitId:t,subUnitId:n,drawingId:r});c=Math.max(c,i),s.push(...this._getUpdateParamCompareOp(e,this.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})))}),c===-1/0&&(c=this._getDrawingOrder(i,a).length),s.push(t.JSON1.insertOp([i,a,`order`,c],o)),s.reduce(t.JSON1.type.compose,null)}_getUngroupDrawingOp(e){let{parent:n,children:r}=e,{unitId:i,subUnitId:a,drawingId:o}=n,s=[];return r.forEach(e=>{let{unitId:t,subUnitId:n,drawingId:r}=e;s.push(...this._getUpdateParamCompareOp(e,this.getDrawingByParam({unitId:t,subUnitId:n,drawingId:r})))}),s.push(t.JSON1.removeOp([i,a,`data`,o],!0)),s.push(t.JSON1.removeOp([i,a,`order`,this._getDrawingOrder(i,a).indexOf(o)],!0)),s.reduce(t.JSON1.type.compose,null)}applyJson1(e,n,r){C(e,n),t.JSON1.type.checkValidOp(r);let i=w(this.drawingManagerData,e),a={...this.drawingManagerData,[e]:{...i,[n]:w(i,n)??{data:{},order:[]}}},o=t.JSON1.type.apply(a,r);for(let e of Object.keys(o))C(e),T(o[e]);this._oldDrawingManagerData=this.drawingManagerData,this.drawingManagerData=o}featurePluginUpdateNotification(e){this._featurePluginUpdate$.next(e)}featurePluginOrderUpdateNotification(e){this._featurePluginOrderUpdate$.next(e)}featurePluginAddNotification(e){this._featurePluginAdd$.next(e)}featurePluginRemoveNotification(e){this._featurePluginRemove$.next(e)}featurePluginGroupUpdateNotification(e){this._featurePluginGroupUpdate$.next(e)}featurePluginUngroupUpdateNotification(e){this._featurePluginUngroupUpdate$.next(e)}getDrawingByParam(e){return this._getCurrentBySearch(e)}getOldDrawingByParam(e){return this._getOldBySearch(e)}getDrawingOKey(e){let[t,n,r]=e.split(`#-#`);return this._getCurrentBySearch({unitId:t,subUnitId:n,drawingId:r})}focusDrawing(e){if(e==null||e.length===0){this._focusDrawings=[],this._focus$.next([]);return}let t=[];e.forEach(e=>{var n;let{unitId:r,subUnitId:i,drawingId:a}=e,o=(n=this._getDrawingData(r,i))==null?void 0:n[a];o!=null&&t.push(o)}),t.length>0&&(this._focusDrawings=t,this._focus$.next(t))}getFocusDrawings(){let e=[];return this._focusDrawings.forEach(t=>{var n;let{unitId:r,subUnitId:i,drawingId:a}=t,o=(n=this._getDrawingData(r,i))==null?void 0:n[a];o!=null&&e.push(o)}),e}getDrawingOrder(e,t){return this._getDrawingOrder(e,t)}setDrawingOrder(e,t,n){C(e,t),n.forEach(e=>C(e)),this._establishDrawingMap(e,t),this.drawingManagerData[e][t].order=n}orderUpdateNotification(e){this._order$.next(e)}getForwardDrawingsOp(e){let{unitId:n,subUnitId:r,drawingIds:i}=e,a=[],o=this.getDrawingOrder(n,r),s=[...i];i.forEach(e=>{let i=this._hasDrawingOrder({unitId:n,subUnitId:r,drawingId:e});if(i===-1||i===o.length-1)return;let c=t.JSON1.moveOp([n,r,`order`,i],[n,r,`order`,i+1]);a.push(c),s.includes(o[i+1])||s.push(o[i+1])});let c=a.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(c,this.drawingManagerData),redo:c,unitId:n,subUnitId:r,objects:{...e,drawingIds:s}}}getBackwardDrawingOp(e){let{unitId:n,subUnitId:r,drawingIds:i}=e,a=[],o=this.getDrawingOrder(n,r),s=[...i];i.forEach(e=>{let i=this._hasDrawingOrder({unitId:n,subUnitId:r,drawingId:e});if(i===-1||i===0)return;let c=t.JSON1.moveOp([n,r,`order`,i],[n,r,`order`,i-1]);a.push(c),s.includes(o[i-1])||s.push(o[i-1])});let c=a.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(c,this.drawingManagerData),redo:c,unitId:n,subUnitId:r,objects:{...e,drawingIds:s}}}getFrontDrawingsOp(e){let{unitId:n,subUnitId:r,drawingIds:i}=e,a=this._getOrderFromSearchParams(n,r,i),o=[...i],s=this.getDrawingOrder(n,r),c=[];a.forEach(e=>{let{drawingId:i}=e,a=this._getDrawingCount(n,r)-1,l=t.JSON1.moveOp([n,r,`order`,this._getDrawingOrder(n,r).indexOf(i)],[n,r,`order`,a]);c.push(l),o.includes(s[a])||o.push(s[a])});let l=c.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(l,this.drawingManagerData),redo:l,unitId:n,subUnitId:r,objects:{...e,drawingIds:o}}}getBackDrawingsOp(e){let{unitId:n,subUnitId:r,drawingIds:i}=e,a=this._getOrderFromSearchParams(n,r,i,!0),o=[...i],s=this.getDrawingOrder(n,r),c=[];a.forEach(e=>{let{drawingId:i}=e,a=t.JSON1.moveOp([n,r,`order`,this._getDrawingOrder(n,r).indexOf(i)],[n,r,`order`,0]);c.push(a),o.includes(s[0])||o.push(s[0])});let l=c.reduce(t.JSON1.type.compose,null);return{undo:t.JSON1.type.invertWithDoc(l,this.drawingManagerData),redo:l,unitId:n,subUnitId:r,objects:{...e,drawingIds:o}}}getDrawingOrderOp(e,n){let{unitId:r,subUnitId:i,drawingIds:a}=e;if(a.length!==1)return null;let o=this.getDrawingOrder(r,i),s=a[0],c=o.indexOf(s),l=(0,t.normalizeDrawingOrderIndex)(n,o.length);if(c<0||c===l)return null;let u=t.JSON1.moveOp([r,i,`order`,c],[r,i,`order`,l]),d=t.JSON1.type.invertWithDoc(u,this.drawingManagerData),f=o.slice(Math.min(c,l),Math.max(c,l)+1);return{undo:d,redo:u,unitId:r,subUnitId:i,objects:{...e,drawingIds:f}}}_getDrawingCount(e,t){return this.getDrawingOrder(e,t).length||0}_getOrderFromSearchParams(e,n,r,i=!1){return r.map(t=>({drawingId:t,zIndex:this._hasDrawingOrder({unitId:e,subUnitId:n,drawingId:t})})).sort(i===!1?t.sortRules:t.sortRulesByDesc)}_hasDrawingOrder(e){if(e==null)return-1;let{unitId:t,subUnitId:n,drawingId:r}=e;return this._establishDrawingMap(t,n),this._getDrawingOrder(t,n).indexOf(r)}_getCurrentBySearch(e){var t;if(e==null)return;let{unitId:n,subUnitId:r,drawingId:i}=e;return w((t=w(w(this.drawingManagerData,n),r))==null?void 0:t.data,i)}_getOldBySearch(e){var t;if(e==null)return;let{unitId:n,subUnitId:r,drawingId:i}=e;return w((t=w(w(this._oldDrawingManagerData,n),r))==null?void 0:t.data,i)}_establishDrawingMap(e,t,n){return C(e,t),n!=null&&C(n),w(this.drawingManagerData,e)||(this.drawingManagerData[e]={}),w(this.drawingManagerData[e],t)||(this.drawingManagerData[e][t]={data:{},order:[]}),n==null?null:w(this.drawingManagerData[e][t].data,n)}_addByParam(e){let{unitId:n,subUnitId:r,drawingId:i}=e;this._establishDrawingMap(n,r,i);let a=[t.JSON1.insertOp([n,r,`data`,i],e),t.JSON1.insertOp([n,r,`order`,this._getDrawingOrder(n,r).length],i)].reduce(t.JSON1.type.compose,null);return{op:a,invertOp:t.JSON1.type.invertWithDoc(a,this.drawingManagerData)}}_removeByParam(e){if(e==null)return{op:[],invertOp:[]};let{unitId:n,subUnitId:r,drawingId:i}=e;if(this._establishDrawingMap(n,r,i)==null)return{op:[],invertOp:[]};let a=[t.JSON1.removeOp([n,r,`data`,i],!0),t.JSON1.removeOp([n,r,`order`,this._getDrawingOrder(n,r).indexOf(i)],!0)].reduce(t.JSON1.type.compose,null);return{op:a,invertOp:t.JSON1.type.invertWithDoc(a,this.drawingManagerData)}}_updateByParam(e){let{unitId:n,subUnitId:r,drawingId:i}=e,a=this._establishDrawingMap(n,r,i);if(a==null)return{op:[],invertOp:[]};let o=this._getUpdateParamCompareOp(e,a);if(o.length===0)return{op:[],invertOp:[]};let s=o.reduce(t.JSON1.type.compose,null);return{op:s,invertOp:t.JSON1.type.invert(s)}}_getUpdateParamCompareOp(e,t){let{unitId:n,subUnitId:r,drawingId:i}=e,a=[];return Object.keys(e).forEach(o=>{let s=e[o],c=Object.prototype.hasOwnProperty.call(t,o),l=t[o];S(a,[n,r,`data`,i,o],s,l,c)}),a}_getDrawingData(e,t){var n;return((n=w(w(this.drawingManagerData,e),t))==null?void 0:n.data)||{}}_getDrawingOrder(e,t){var n;return((n=w(w(this.drawingManagerData,e),t))==null?void 0:n.order)||[]}getDrawingVisible(){return this._visible}getDrawingEditable(){return this._editable}setDrawingVisible(e){this._visible=e}setDrawingEditable(e){this._editable=e}},D=class extends E{},O=class{constructor(){h(this,`_waitCount`,0),h(this,`_change$`,new n.Subject),h(this,`change$`,this._change$),h(this,`_imageSourceCache`,new Map)}setWaitCount(e){this._waitCount=e,this._change$.next(e)}getImageSourceCache(e,n){let r=this._imageSourceCache.get(e);if(r!=null)return r;if(n===t.ImageSourceType.BASE64){let t=new Image;return t.onload=()=>this._change$.next(this._waitCount),t.onerror=()=>this._change$.next(this._waitCount),t.src=e,this._imageSourceCache.set(e,t),t}}addImageSourceCache(e,n,r){n!==t.ImageSourceType.BASE64&&r!=null&&this._imageSourceCache.set(e,r)}async getImage(e){return Promise.resolve(e)}async saveImage(e){return new Promise((n,r)=>{if(!o.includes(e.type)){r(Error(t.ImageUploadStatusType.ERROR_IMAGE_TYPE)),this._decreaseWaiting();return}if(e.size>a()){r(Error(t.ImageUploadStatusType.ERROR_EXCEED_SIZE)),this._decreaseWaiting();return}let i=new FileReader;i.readAsDataURL(e),i.onload=e=>{var i;let a=(i=e.target)==null?void 0:i.result;if(a==null){r(Error(t.ImageUploadStatusType.ERROR_IMAGE)),this._decreaseWaiting();return}n({imageId:(0,t.generateRandomId)(6),imageSourceType:t.ImageSourceType.BASE64,source:a,base64Cache:a,status:t.ImageUploadStatusType.SUCCUSS}),this._decreaseWaiting()}})}_decreaseWaiting(){--this._waitCount,this._change$.next(this._waitCount)}},k=class extends t.Disposable{constructor(...e){super(...e),h(this,`_urlImageDownloader`,null)}registerURLImageDownloader(e){return this._urlImageDownloader=e,(0,t.toDisposable)(()=>{this._urlImageDownloader=null})}async getImage(e){if(this._urlImageDownloader)try{return await this._urlImageDownloader(e)}catch(t){console.error(`Custom downloader failed for ${e}, falling back to default behavior:`,t)}return e}async downloadImage(e){if(this._urlImageDownloader)try{let t=await this._urlImageDownloader(e);return await(await fetch(t)).blob()}catch(t){console.error(`Custom downloader failed for ${e}, falling back to default fetch:`,t)}return await(await fetch(e)).blob()}};function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let M=class extends t.Plugin{constructor(e=d,n,r,a){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=a;let{...o}=(0,t.merge)({},d,this._config);this._configService.setConfig(`drawing.config`,o),o.allowImageSize!==void 0&&i(o.allowImageSize)}onStarting(){this._initCommands(),this._initDependencies()}_initDependencies(){var e;(0,t.mergeOverrideWithDependencies)([[t.IImageIoService,{useClass:O}],[t.IURLImageService,{useClass:k}],[s,{useClass:D}]],(e=this._config)==null?void 0:e.override).forEach(e=>this._injector.add(e))}_initCommands(){[c].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};h(M,`pluginName`,`UNIVER_DRAWING_PLUGIN`),h(M,`packageName`,l),h(M,`version`,u),M=j([A(1,(0,t.Inject)(t.Injector)),A(2,t.IConfigService),A(3,t.ICommandService)],M);let N=`univer.drawing.copy-plan`;function P(e){return JSON.parse(JSON.stringify(e))}function F(e,t,n){let r=P(e),i=t.get(e.drawingId);if(i==null)return r;if(r.unitId=n.unitId,r.subUnitId=n.targetSubUnitId,r.drawingId=i,r.groupId){let e=t.get(r.groupId);e?r.groupId=e:delete r.groupId}return r}function I(e,n){let{generateId:r=()=>(0,t.generateRandomId)(10)}=n,i=new Map;return e.forEach(e=>{i.has(e.drawingId)||i.set(e.drawingId,r())}),{idMap:i,drawings:e.map(e=>F(e,i,n))}}function L(e,n,r){if(e==null)return I(n,r);let i=e.get(N);if(i){let{generateId:e=()=>(0,t.generateRandomId)(10)}=r;if(!n.some(e=>!i.idMap.has(e.drawingId)))return i;n.forEach(t=>{i.idMap.has(t.drawingId)||i.idMap.set(t.drawingId,e())});let a=new Set(n.map(e=>e.drawingId)),o=new Map(Array.from(i.idMap.entries()).map(([e,t])=>[t,e])),s=i.drawings.filter(e=>{let t=o.get(e.drawingId);return t==null||!a.has(t)});return i.drawings=[...n.map(e=>F(e,i.idMap,r)),...s],i}let a=I(n,r);return e.set(N,a),a}let R=[t.DrawingTypeEnum.DRAWING_IMAGE,t.DrawingTypeEnum.DRAWING_SHAPE,t.DrawingTypeEnum.DRAWING_CHART,t.DrawingTypeEnum.DRAWING_SLICER,t.DrawingTypeEnum.DRAWING_TIMELINE,t.DrawingTypeEnum.DRAWING_GROUP];function z(e){return R.includes(e)}function B({unitId:e,subUnitId:t,drawingId:n},r){return typeof r==`number`?`${e}#-#${t}#-#${n}#-#${r}`:`${e}#-#${t}#-#${n}`}let V=async e=>new Promise((t,n)=>{let r=new Image;r.src=e,r.onload=()=>{t({width:r.width,height:r.height,image:r})},r.onerror=e=>{n(e)}});function H(e){return e===void 0||!Number.isFinite(e)?1:Math.min(Math.max(e,0),1)}function U(e){return`${e.unitId}\u0000${e.subUnitId}\u0000${e.drawingId}`}function W(e,n={},r=new Set){var i,a,o;let s=U(e);if(r.has(s))return!0;if(e.drawingType===t.DrawingTypeEnum.DRAWING_GROUP){var c;r.add(s);let t=(c=n.getChildren)==null?void 0:c.call(n,e);if(t!=null){let e=t.every(e=>W(e,n,r));return r.delete(s),e}r.delete(s)}return!(((i=e.transform)==null?void 0:i.rotateEnabled)===!1||((a=n.getRenderObject)==null||(a=a.call(n,e))==null||(a=a.transformerConfig)==null?void 0:a.rotateEnabled)===!1||(o=n.isKnownNonRotatableType)!=null&&o.call(n,e.drawingType))}e.DRAWING_COPY_CONTEXT_KEY=N,e.DRAWING_GROUPABLE_TYPES=R,e.DRAWING_IMAGE_ALLOW_IMAGE_LIST=o,e.DRAWING_IMAGE_COUNT_LIMIT=10,e.DRAWING_IMAGE_HEIGHT_LIMIT=500,e.DRAWING_IMAGE_WIDTH_LIMIT=500,e.DrawingManagerService=D,e.IDrawingManagerService=s,e.ImageIoService=O,e.SetDrawingSelectedOperation=c,e.URLImageService=k,e.UnitDrawingService=E,Object.defineProperty(e,"UniverDrawingPlugin",{enumerable:!0,get:function(){return M}}),e.createDrawingCopyPlan=I,e.getDrawingImageAllowSize=a,e.getDrawingShapeKeyByDrawingSearch=B,e.getImageSize=V,e.getOrCreateDrawingCopyPlan=L,e.isGroupableDrawingType=z,e.normalizeImageOpacity=H,e.resolveDrawingRotateEnabled=W});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/drawing",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "private": false,
5
5
  "description": "Shared drawing models, commands, and services for Univer.",
6
6
  "author": "DreamNum Co., Ltd. <developer@univer.ai>",
@@ -52,10 +52,10 @@
52
52
  "rxjs": ">=7.0.0"
53
53
  },
54
54
  "dependencies": {
55
- "@univerjs/core": "1.0.2"
55
+ "@univerjs/core": "1.0.4"
56
56
  },
57
57
  "devDependencies": {
58
- "@univerjs-infra/shared": "1.0.2",
58
+ "@univerjs-infra/shared": "1.0.4",
59
59
  "rxjs": "^7.8.2",
60
60
  "typescript": "^6.0.3",
61
61
  "vitest": "^5.0.0"