@univerjs/sheets-crosshair-highlight 0.4.2 → 0.5.0-nightly.202411091605
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +1 -0
- package/lib/cjs/index.js +9 -1
- package/lib/cjs/locale/en-US.js +1 -0
- package/lib/cjs/locale/fa-IR.js +1 -0
- package/lib/cjs/locale/ru-RU.js +1 -0
- package/lib/cjs/locale/vi-VN.js +1 -0
- package/lib/cjs/locale/zh-CN.js +1 -0
- package/lib/cjs/locale/zh-TW.js +1 -0
- package/lib/es/facade.js +13 -0
- package/lib/es/index.js +321 -311
- package/lib/es/locale/en-US.js +10 -0
- package/lib/es/locale/fa-IR.js +10 -0
- package/lib/es/locale/ru-RU.js +10 -0
- package/lib/es/locale/vi-VN.js +10 -0
- package/lib/es/locale/zh-CN.js +10 -0
- package/lib/es/locale/zh-TW.js +10 -0
- package/lib/types/facade/f-univer.d.ts +32 -0
- package/lib/types/facade/index.d.ts +16 -0
- package/lib/umd/facade.js +1 -0
- package/lib/umd/index.js +9 -1
- package/lib/umd/locale/en-US.js +1 -0
- package/lib/umd/locale/fa-IR.js +1 -0
- package/lib/umd/locale/ru-RU.js +1 -0
- package/lib/umd/locale/vi-VN.js +1 -0
- package/lib/umd/locale/zh-CN.js +1 -0
- package/lib/umd/locale/zh-TW.js +1 -0
- package/package.json +37 -19
- package/LICENSE +0 -176
- package/lib/locale/en-US.json +0 -7
- package/lib/locale/fa-IR.json +0 -7
- package/lib/locale/ru-RU.json +0 -7
- package/lib/locale/vi-VN.json +0 -7
- package/lib/locale/zh-CN.json +0 -7
- package/lib/locale/zh-TW.json +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const r=require("@univerjs/core"),e=require("@univerjs/sheets-crosshair-highlight");class s extends r.FUniver{setCrosshairHighlightEnabled(i){i?this._commandService.executeCommand(e.EnableCrosshairHighlightOperation.id):this._commandService.executeCommand(e.DisableCrosshairHighlightOperation.id)}setCrosshairHighlightColor(i){this._commandService.executeCommand(e.SetCrosshairHighlightColorOperation.id,{value:i})}}r.FUniver.extend(s);
|
package/lib/cjs/index.js
CHANGED
|
@@ -1 +1,9 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),engineRender=require("@univerjs/engine-render"),ui=require("@univerjs/ui"),rxjs=require("rxjs"),React=require("react"),sheetsUi=require("@univerjs/sheets-ui"),sheets=require("@univerjs/sheets");var __assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},IconBase=React.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=React.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return React.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a4){var key=_a4[0],value=_a4[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a4,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a4=node.children)===null||_a4===void 0)&&_a4.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid");IconBase.displayName="UniverIcon";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"#E5E5E5",d:"M1.6499 3.65002C1.6499 2.54545 2.54533 1.65002 3.6499 1.65002H12.3499C13.4545 1.65002 14.3499 2.54545 14.3499 3.65002V12.35C14.3499 13.4546 13.4545 14.35 12.3499 14.35H3.6499C2.54533 14.35 1.6499 13.4546 1.6499 12.35V3.65002Z"}},{tag:"path",attrs:{fill:"#fff",d:"M9.9998 1.65002H5.9998V6H1.6499V10H5.9998V14.35H9.9998V10H14.3499V6H9.9998V1.65002Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M3.6498 1.05005C2.21386 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.3501V3.65005C14.9498 2.21411 13.7857 1.05005 12.3498 1.05005H3.6498ZM5.4002 2.25005H3.6498C2.87661 2.25005 2.2498 2.87685 2.2498 3.65005V5.40002H5.4002V2.25005ZM2.2498 10.6V12.35C2.2498 13.1232 2.87661 13.75 3.6498 13.75H5.4002V10.6H2.2498ZM6.60019 13.75H9.4002V9.40002H13.7498V6.60002H9.4002V2.25005H6.60019V6.60002H2.25029V9.40002H6.60019V13.75ZM10.6002 2.25005V5.40002H13.7498V3.65005C13.7498 2.87685 13.123 2.25005 12.3498 2.25005H10.6002ZM13.7498 10.6H10.6002V13.75H12.3498C13.123 13.75 13.7498 13.1232 13.7498 12.3501V10.6Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CrossHighlightingSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"cross-highlighting-single",ref,icon:element}))});CrossHighlightingSingle.displayName="CrossHighlightingSingle";const CROSSHAIR_HIGHLIGHT_COLORS=["rgba(158, 109, 227, 0.3)","rgba(254, 75, 75, 0.3)","rgba(255, 140, 81, 0.3)","rgba(164, 220, 22, 0.3)","rgba(45, 174, 255, 0.3)","rgba(58, 96, 247, 0.3)","rgba(242, 72, 166, 0.3)","rgba(153, 153, 153, 0.3)","rgba(158, 109, 227, 0.15)","rgba(254, 75, 75, 0.15)","rgba(255, 140, 81, 0.15)","rgba(164, 220, 22, 0.15)","rgba(45, 174, 255, 0.15)","rgba(58, 96, 247, 0.15)","rgba(242, 72, 166, 0.15)","rgba(153, 153, 153, 0.15)"],_SheetsCrosshairHighlightService=class _SheetsCrosshairHighlightService extends core.Disposable{constructor(){super(...arguments);__publicField(this,"_enabled$",new rxjs.BehaviorSubject(!1));__publicField(this,"enabled$",this._enabled$.asObservable());__publicField(this,"_color$",new rxjs.BehaviorSubject(CROSSHAIR_HIGHLIGHT_COLORS[0]));__publicField(this,"color$",this._color$.asObservable())}get enabled(){return this._enabled$.getValue()}get color(){return this._color$.getValue()}dispose(){this._enabled$.complete()}setEnabled(value){this._enabled$.next(value)}setColor(value){this._color$.next(value)}};__name(_SheetsCrosshairHighlightService,"SheetsCrosshairHighlightService");let SheetsCrosshairHighlightService=_SheetsCrosshairHighlightService;const ToggleCrosshairHighlightOperation={id:"sheet.operation.toggle-crosshair-highlight",type:core.CommandType.OPERATION,handler(accessor){const service=accessor.get(SheetsCrosshairHighlightService),turnedOn=service.enabled;return service.setEnabled(!turnedOn),!0}},SetCrosshairHighlightColorOperation={id:"sheet.operation.set-crosshair-highlight-color",type:core.CommandType.OPERATION,handler(accessor,{value}){const service=accessor.get(SheetsCrosshairHighlightService);return service.enabled||service.setEnabled(!0),service.setColor(value),!0}},EnableCrosshairHighlightOperation={id:"sheet.operation.enable-crosshair-highlight",type:core.CommandType.OPERATION,handler(accessor){const service=accessor.get(SheetsCrosshairHighlightService);return service.enabled?!1:(service.setEnabled(!0),!0)}},DisableCrosshairHighlightOperation={id:"sheet.operation.disable-crosshair-highlight",type:core.CommandType.OPERATION,handler(accessor){const service=accessor.get(SheetsCrosshairHighlightService);return service.enabled?(service.setEnabled(!1),!0):!1}};function r(e){var t,f,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}__name(r,"r");function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}__name(clsx,"clsx");const crosshairHighlightOverlay="univer-crosshair-highlight-overlay",crosshairHighlightItem="univer-crosshair-highlight-item",crosshairHighlightItemSelected="univer-crosshair-highlight-item-selected",styles={crosshairHighlightOverlay,crosshairHighlightItem,crosshairHighlightItemSelected};function CrosshairOverlay(props){const{onChange}=props,crosshairSrv=core.useDependency(SheetsCrosshairHighlightService),currentColor=core.useObservable(crosshairSrv.color$),handleColorPicked=React.useCallback(color=>{onChange==null||onChange(color)},[onChange]);return React.createElement("div",{className:styles.crosshairHighlightOverlay},CROSSHAIR_HIGHLIGHT_COLORS.map(color=>React.createElement("div",{key:color,className:clsx(styles.crosshairHighlightItem,{[styles.crosshairHighlightItemSelected]:color===currentColor}),style:{backgroundColor:color},onClick:__name(()=>handleColorPicked(color),"onClick")})))}__name(CrosshairOverlay,"CrosshairOverlay");const CROSSHAIR_HIGHLIGHT_OVERLAY_COMPONENT="CROSSHAIR_HIGHLIGHT_OVERLAY_COMPONENT";function CrosshairHighlightMenuItemFactory(accessor){const crosshairHighlightService=accessor.get(SheetsCrosshairHighlightService);return{id:ToggleCrosshairHighlightOperation.id,tooltip:"crosshair.button.tooltip",type:ui.MenuItemType.BUTTON_SELECTOR,icon:"CrossHighlightingSingle",selections:[{label:{name:CROSSHAIR_HIGHLIGHT_OVERLAY_COMPONENT,hoverable:!1}}],selectionsCommandId:SetCrosshairHighlightColorOperation.id,activated$:crosshairHighlightService.enabled$,hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CrosshairHighlightMenuItemFactory,"CrosshairHighlightMenuItemFactory");const menuSchema={[ui.ContextMenuPosition.FOOTER_MENU]:{[ui.ContextMenuGroup.OTHERS]:{[ToggleCrosshairHighlightOperation.id]:{order:0,menuItemFactory:CrosshairHighlightMenuItemFactory}}}};var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a;let SheetsCrosshairHighlightController=(_a=class extends core.Disposable{constructor(_componentMgr,_menuManagerService,_cmdSrv){super(),this._componentMgr=_componentMgr,this._menuManagerService=_menuManagerService,this._cmdSrv=_cmdSrv,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[ToggleCrosshairHighlightOperation,SetCrosshairHighlightColorOperation,EnableCrosshairHighlightOperation,DisableCrosshairHighlightOperation].forEach(c=>this._cmdSrv.registerCommand(c))}_initMenus(){this._menuManagerService.mergeMenu(menuSchema)}_initComponents(){this._componentMgr.register(CROSSHAIR_HIGHLIGHT_OVERLAY_COMPONENT,CrosshairOverlay),this._componentMgr.register("CrossHighlightingSingle",CrossHighlightingSingle)}},__name(_a,"SheetsCrosshairHighlightController"),_a);SheetsCrosshairHighlightController=__decorateClass$2([__decorateParam$2(0,core.Inject(ui.ComponentManager)),__decorateParam$2(1,ui.IMenuManagerService),__decorateParam$2(2,core.ICommandService)],SheetsCrosshairHighlightController);const SHEETS_CROSSHAIR_HIGHLIGHT_Z_INDEX=1,_CrossHairRangeCollection=class _CrossHairRangeCollection{constructor(){__publicField(this,"_selectedRanges",[]);__publicField(this,"_ranges",[])}addRange(range){if(range.rangeType===core.RANGE_TYPE.COLUMN||range.rangeType===core.RANGE_TYPE.ROW||range.rangeType===core.RANGE_TYPE.ALL)return;const intersects=this._getIntersects(range),splitRanges=this._getSplitRanges(range,intersects);splitRanges.length>0&&this._ranges.push(...splitRanges)}setSelectedRanges(selectedRange){this._selectedRanges=selectedRange}_getSplitRanges(range,intersects){let splitRanges=[range];for(const intersect of intersects.concat(this._selectedRanges)){const newRanges=[];for(const splitRange of splitRanges){const split=core.Rectangle.subtract(splitRange,intersect);split&&split.length>0&&newRanges.push(...split)}splitRanges=newRanges}return splitRanges.filter(range2=>range2.startRow<=range2.endRow&&range2.startColumn<=range2.endColumn)}_getIntersects(addRange){const intersects=[];for(const range of this._ranges){const intersect=core.Rectangle.getIntersects(range,addRange);intersect&&intersects.push(intersect)}return intersects}getRanges(){return this._ranges}reset(){this._ranges=[],this._selectedRanges=[]}};__name(_CrossHairRangeCollection,"CrossHairRangeCollection");let CrossHairRangeCollection=_CrossHairRangeCollection;const _SheetCrossHairHighlightShape=class _SheetCrossHairHighlightShape extends engineRender.Shape{constructor(key,props){super(key,props);__publicField(this,"_color");props&&this.setShapeProps(props)}setShapeProps(props){typeof props.color<"u"&&(this._color=props.color),this.transformByState({width:props.width,height:props.height})}_draw(ctx){const color=`rgba(${this._color.r}, ${this._color.g}, ${this._color.b}, ${this._color.a})`;engineRender.Rect.drawWith(ctx,{width:this.width,height:this.height,fill:color,stroke:void 0,strokeWidth:0,evented:!1})}};__name(_SheetCrossHairHighlightShape,"SheetCrossHairHighlightShape");let SheetCrossHairHighlightShape=_SheetCrossHairHighlightShape;var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),_a2;let SheetCrosshairHighlightRenderController=(_a2=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_sheetsSelectionsService,_sheetsCrosshairHighlightService,_contextService,_refSelectionsService){super();__publicField(this,"_shapes",[]);__publicField(this,"_rangeCollection",new CrossHairRangeCollection);__publicField(this,"_color","rgba(255,0,0,0.5)");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._sheetsSelectionsService=_sheetsSelectionsService,this._sheetsCrosshairHighlightService=_sheetsCrosshairHighlightService,this._contextService=_contextService,this._refSelectionsService=_refSelectionsService,this._initRenderListener()}_transformSelection(selectionData,sheet){if(!selectionData)return;const rowCount=sheet.getRowCount(),columnCount=sheet.getColumnCount(),ranges=[];for(const selection of selectionData){const{startRow,endRow,startColumn,endColumn}=selection.range;endRow-startRow+1===rowCount||endColumn-startColumn+1===columnCount||ranges.push(selection.range)}this._rangeCollection.setSelectedRanges(ranges);for(const range of ranges)this.addSelection(range,sheet)}_initRenderListener(){const workbook=this._context.unit;this.disposeWithMe(rxjs.combineLatest([this._contextService.subscribeContextValue$(sheets.DISABLE_NORMAL_SELECTIONS).pipe(rxjs.startWith(!1)),this._sheetSkeletonManagerService.currentSkeleton$,this._sheetsCrosshairHighlightService.enabled$,this._sheetsCrosshairHighlightService.color$.pipe(rxjs.tap(color=>this._color=color)),rxjs.merge(this._sheetsSelectionsService.selectionMoveStart$,this._sheetsSelectionsService.selectionMoving$,this._sheetsSelectionsService.selectionMoveEnd$,workbook.activeSheet$.pipe(rxjs.map(()=>this._sheetsSelectionsService.getCurrentSelections()))),rxjs.merge(this._refSelectionsService.selectionMoveStart$,this._refSelectionsService.selectionMoving$,this._refSelectionsService.selectionMoveEnd$,workbook.activeSheet$.pipe(rxjs.map(()=>this._refSelectionsService.getCurrentSelections())))]).subscribe(([normalSelDisabled,_,enabled,_color,normalSelections,refSelection])=>{if(this._clear(),!enabled)return;const selections=normalSelDisabled?refSelection:normalSelections;this._rangeCollection.reset(),this._transformSelection(selections,workbook.getActiveSheet()),this.render(this._rangeCollection.getRanges())}))}addSelection(range,sheet){if(range.rangeType===core.RANGE_TYPE.COLUMN||range.rangeType===core.RANGE_TYPE.ROW||range.rangeType===core.RANGE_TYPE.ALL)return;const maxRow=sheet.getRowCount(),maxColumn=sheet.getColumnCount(),{startRow,endRow,startColumn,endColumn}=range,left={startRow,endRow,startColumn:0,endColumn:startColumn-1},right={startRow,endRow,startColumn:endColumn+1,endColumn:maxColumn},top={startRow:0,endRow:startRow-1,startColumn,endColumn},bottom={startRow:endRow+1,endRow:maxRow,startColumn,endColumn};for(const range2 of[left,right,top,bottom])range2.startRow<=range2.endRow&&range2.startColumn<=range2.endColumn&&this._rangeCollection.addRange(range2)}_clear(){this._shapes.forEach(shape=>{shape.dispose()}),this._shapes=[]}_addShapes(range,index,scene,skeleton){const{startRow,endRow,startColumn,endColumn}=range,startPosition=sheetsUi.getCoordByCell(startRow,startColumn,scene,skeleton),endPosition=sheetsUi.getCoordByCell(endRow,endColumn,scene,skeleton),{startX,startY}=startPosition,{endX,endY}=endPosition,width=endX-startX,height=endY-startY,shapeProps={left:startX,top:startY,color:new core.ColorKit(this._color).toRgb(),width,height,zIndex:SHEETS_CROSSHAIR_HIGHLIGHT_Z_INDEX,evented:!1},currentShapes=new SheetCrossHairHighlightShape(`crosshair-${index}`,shapeProps);this._shapes.push(currentShapes),scene.addObject(currentShapes)}render(ranges){const skeleton=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!skeleton)return;const{scene}=this._context;this._clear();for(let i=0;i<ranges.length;i++){const range=ranges[i];this._addShapes(range,i,scene,skeleton)}scene.makeDirty(!0)}async dispose(){super.dispose()}},__name(_a2,"SheetCrosshairHighlightRenderController"),_a2);SheetCrosshairHighlightRenderController=__decorateClass$1([__decorateParam$1(1,core.Inject(sheetsUi.SheetSkeletonManagerService)),__decorateParam$1(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$1(3,core.Inject(SheetsCrosshairHighlightService)),__decorateParam$1(4,core.Inject(core.IContextService)),__decorateParam$1(5,sheets.IRefSelectionsService)],SheetCrosshairHighlightRenderController);const PLUGIN_CONFIG_KEY="sheets-crosshair-highlight.config",defaultPluginConfig={};var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam"),_a3;exports.UniverSheetsCrosshairHighlightPlugin=(_a3=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_renderManagerService,_configService){super(),this._config=_config,this._injector=_injector,this._renderManagerService=_renderManagerService,this._configService=_configService;const{...rest}=this._config;this._configService.setConfig(PLUGIN_CONFIG_KEY,rest)}onStarting(){[[SheetsCrosshairHighlightService],[SheetsCrosshairHighlightController]].forEach(d=>this._injector.add(d))}onReady(){[[SheetCrosshairHighlightRenderController]].forEach(d=>this._injector.add(d)),this._injector.get(SheetsCrosshairHighlightController),this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,[SheetCrosshairHighlightRenderController])}},__name(_a3,"UniverSheetsCrosshairHighlightPlugin"),__publicField(_a3,"pluginName","SHEET_CROSSHAIR_HIGHLIGHT_PLUGIN"),__publicField(_a3,"type",core.UniverInstanceType.UNIVER_SHEET),_a3);exports.UniverSheetsCrosshairHighlightPlugin=__decorateClass([__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,engineRender.IRenderManagerService),__decorateParam(3,core.IConfigService)],exports.UniverSheetsCrosshairHighlightPlugin);exports.CROSSHAIR_HIGHLIGHT_COLORS=CROSSHAIR_HIGHLIGHT_COLORS;exports.DisableCrosshairHighlightOperation=DisableCrosshairHighlightOperation;exports.EnableCrosshairHighlightOperation=EnableCrosshairHighlightOperation;exports.SetCrosshairHighlightColorOperation=SetCrosshairHighlightColorOperation;exports.ToggleCrosshairHighlightOperation=ToggleCrosshairHighlightOperation;
|
|
1
|
+
"use strict";var K=Object.defineProperty;var z=(n,e,r)=>e in n?K(n,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[e]=r;var l=(n,e,r)=>z(n,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@univerjs/core"),M=require("@univerjs/engine-render"),v=require("@univerjs/ui"),u=require("rxjs"),_=require("react"),P=require("@univerjs/sheets-ui"),$=require("@univerjs/sheets");var h=function(){return h=Object.assign||function(n){for(var e,r=1,t=arguments.length;r<t;r++){e=arguments[r];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(n[s]=e[s])}return n},h.apply(this,arguments)},J=function(n,e){var r={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&e.indexOf(t)<0&&(r[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,t=Object.getOwnPropertySymbols(n);s<t.length;s++)e.indexOf(t[s])<0&&Object.prototype.propertyIsEnumerable.call(n,t[s])&&(r[t[s]]=n[t[s]]);return r},A=_.forwardRef(function(n,e){var r=n.icon,t=n.id,s=n.className,i=n.extend,o=J(n,["icon","id","className","extend"]),c="univerjs-icon univerjs-icon-".concat(t," ").concat(s||"").trim(),g=_.useRef("_".concat(te()));return L(r,"".concat(t),{defIds:r.defIds,idSuffix:g.current},h({ref:e,className:c},o),i)});function L(n,e,r,t,s){return _.createElement(n.tag,h(h({key:e},Q(n,r,s)),t),(ee(n,r).children||[]).map(function(i,o){return L(i,"".concat(e,"-").concat(n.tag,"-").concat(o),r,void 0,s)}))}function Q(n,e,r){var t=h({},n.attrs);r!=null&&r.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=r.colorChannel1);var s=e.defIds;return!s||s.length===0||(n.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+e.idSuffix),Object.entries(t).forEach(function(i){var o=i[0],c=i[1];typeof c=="string"&&(t[o]=c.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),t}function ee(n,e){var r,t=e.defIds;return!t||t.length===0?n:n.tag==="defs"&&(!((r=n.children)===null||r===void 0)&&r.length)?h(h({},n),{children:n.children.map(function(s){return typeof s.attrs.id=="string"&&t&&t.indexOf(s.attrs.id)>-1?h(h({},s),{attrs:h(h({},s.attrs),{id:s.attrs.id+e.idSuffix})}):s})}):n}function te(){return Math.random().toString(36).substring(2,8)}A.displayName="UniverIcon";var re={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"#E5E5E5",d:"M1.6499 3.65002C1.6499 2.54545 2.54533 1.65002 3.6499 1.65002H12.3499C13.4545 1.65002 14.3499 2.54545 14.3499 3.65002V12.35C14.3499 13.4546 13.4545 14.35 12.3499 14.35H3.6499C2.54533 14.35 1.6499 13.4546 1.6499 12.35V3.65002Z"}},{tag:"path",attrs:{fill:"#fff",d:"M9.9998 1.65002H5.9998V6H1.6499V10H5.9998V14.35H9.9998V10H14.3499V6H9.9998V1.65002Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M3.6498 1.05005C2.21386 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.3501V3.65005C14.9498 2.21411 13.7857 1.05005 12.3498 1.05005H3.6498ZM5.4002 2.25005H3.6498C2.87661 2.25005 2.2498 2.87685 2.2498 3.65005V5.40002H5.4002V2.25005ZM2.2498 10.6V12.35C2.2498 13.1232 2.87661 13.75 3.6498 13.75H5.4002V10.6H2.2498ZM6.60019 13.75H9.4002V9.40002H13.7498V6.60002H9.4002V2.25005H6.60019V6.60002H2.25029V9.40002H6.60019V13.75ZM10.6002 2.25005V5.40002H13.7498V3.65005C13.7498 2.87685 13.123 2.25005 12.3498 2.25005H10.6002ZM13.7498 10.6H10.6002V13.75H12.3498C13.123 13.75 13.7498 13.1232 13.7498 12.3501V10.6Z",fillRule:"evenodd",clipRule:"evenodd"}}]},G=_.forwardRef(function(n,e){return _.createElement(A,Object.assign({},n,{id:"cross-highlighting-single",ref:e,icon:re}))});G.displayName="CrossHighlightingSingle";const x=["rgba(158, 109, 227, 0.3)","rgba(254, 75, 75, 0.3)","rgba(255, 140, 81, 0.3)","rgba(164, 220, 22, 0.3)","rgba(45, 174, 255, 0.3)","rgba(58, 96, 247, 0.3)","rgba(242, 72, 166, 0.3)","rgba(153, 153, 153, 0.3)","rgba(158, 109, 227, 0.15)","rgba(254, 75, 75, 0.15)","rgba(255, 140, 81, 0.15)","rgba(164, 220, 22, 0.15)","rgba(45, 174, 255, 0.15)","rgba(58, 96, 247, 0.15)","rgba(242, 72, 166, 0.15)","rgba(153, 153, 153, 0.15)"];class d extends a.Disposable{constructor(){super(...arguments);l(this,"_enabled$",new u.BehaviorSubject(!1));l(this,"enabled$",this._enabled$.asObservable());l(this,"_color$",new u.BehaviorSubject(x[0]));l(this,"color$",this._color$.asObservable())}get enabled(){return this._enabled$.getValue()}get color(){return this._color$.getValue()}dispose(){this._enabled$.complete()}setEnabled(r){this._enabled$.next(r)}setColor(r){this._color$.next(r)}}const I={id:"sheet.operation.toggle-crosshair-highlight",type:a.CommandType.OPERATION,handler(n){const e=n.get(d),r=e.enabled;return e.setEnabled(!r),!0}},j={id:"sheet.operation.set-crosshair-highlight-color",type:a.CommandType.OPERATION,handler(n,{value:e}){const r=n.get(d);return r.enabled||r.setEnabled(!0),r.setColor(e),!0}},U={id:"sheet.operation.enable-crosshair-highlight",type:a.CommandType.OPERATION,handler(n){const e=n.get(d);return e.enabled?!1:(e.setEnabled(!0),!0)}},D={id:"sheet.operation.disable-crosshair-highlight",type:a.CommandType.OPERATION,handler(n){const e=n.get(d);return e.enabled?(e.setEnabled(!1),!0):!1}};var Y={exports:{}},y={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.min.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var ne=_,se=Symbol.for("react.element"),ie=Symbol.for("react.fragment"),oe=Object.prototype.hasOwnProperty,ae=ne.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ce={key:!0,ref:!0,__self:!0,__source:!0};function k(n,e,r){var t,s={},i=null,o=null;r!==void 0&&(i=""+r),e.key!==void 0&&(i=""+e.key),e.ref!==void 0&&(o=e.ref);for(t in e)oe.call(e,t)&&!ce.hasOwnProperty(t)&&(s[t]=e[t]);if(n&&n.defaultProps)for(t in e=n.defaultProps,e)s[t]===void 0&&(s[t]=e[t]);return{$$typeof:se,type:n,key:i,ref:o,props:s,_owner:ae.current}}y.Fragment=ie;y.jsx=k;y.jsxs=k;Y.exports=y;var V=Y.exports;function B(n){var e,r,t="";if(typeof n=="string"||typeof n=="number")t+=n;else if(typeof n=="object")if(Array.isArray(n)){var s=n.length;for(e=0;e<s;e++)n[e]&&(r=B(n[e]))&&(t&&(t+=" "),t+=r)}else for(r in n)n[r]&&(t&&(t+=" "),t+=r);return t}function le(){for(var n,e,r=0,t="",s=arguments.length;r<s;r++)(n=arguments[r])&&(e=B(n))&&(t&&(t+=" "),t+=e);return t}const he="univer-crosshair-highlight-overlay",ge="univer-crosshair-highlight-item",ue="univer-crosshair-highlight-item-selected",E={crosshairHighlightOverlay:he,crosshairHighlightItem:ge,crosshairHighlightItemSelected:ue};function de(n){const{onChange:e}=n,r=a.useDependency(d),t=a.useObservable(r.color$),s=_.useCallback(i=>{e==null||e(i)},[e]);return V.jsx("div",{className:E.crosshairHighlightOverlay,children:x.map(i=>V.jsx("div",{className:le(E.crosshairHighlightItem,{[E.crosshairHighlightItemSelected]:i===t}),style:{backgroundColor:i},onClick:()=>s(i)},i))})}const q="CROSSHAIR_HIGHLIGHT_OVERLAY_COMPONENT";function fe(n){const e=n.get(d);return{id:I.id,tooltip:"crosshair.button.tooltip",type:v.MenuItemType.BUTTON_SELECTOR,icon:"CrossHighlightingSingle",selections:[{label:{name:q,hoverable:!1}}],selectionsCommandId:j.id,activated$:e.enabled$,hidden$:v.getMenuHiddenObservable(n,a.UniverInstanceType.UNIVER_SHEET)}}const _e={[v.ContextMenuPosition.FOOTER_MENU]:{[v.ContextMenuGroup.OTHERS]:{[I.id]:{order:0,menuItemFactory:fe}}}};var ve=Object.defineProperty,Se=Object.getOwnPropertyDescriptor,pe=(n,e,r,t)=>{for(var s=t>1?void 0:t?Se(e,r):e,i=n.length-1,o;i>=0;i--)(o=n[i])&&(s=(t?o(e,r,s):o(s))||s);return t&&s&&ve(e,r,s),s},w=(n,e)=>(r,t)=>e(r,t,n);let H=class extends a.Disposable{constructor(n,e,r){super(),this._componentMgr=n,this._menuManagerService=e,this._cmdSrv=r,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[I,j,U,D].forEach(n=>this._cmdSrv.registerCommand(n))}_initMenus(){this._menuManagerService.mergeMenu(_e)}_initComponents(){this._componentMgr.register(q,de),this._componentMgr.register("CrossHighlightingSingle",G)}};H=pe([w(0,a.Inject(v.ComponentManager)),w(1,v.IMenuManagerService),w(2,a.ICommandService)],H);const Ce=1;class me{constructor(){l(this,"_selectedRanges",[]);l(this,"_ranges",[])}addRange(e){if(e.rangeType===a.RANGE_TYPE.COLUMN||e.rangeType===a.RANGE_TYPE.ROW||e.rangeType===a.RANGE_TYPE.ALL)return;const r=this._getIntersects(e),t=this._getSplitRanges(e,r);t.length>0&&this._ranges.push(...t)}setSelectedRanges(e){this._selectedRanges=e}_getSplitRanges(e,r){let t=[e];for(const s of r.concat(this._selectedRanges)){const i=[];for(const o of t){const c=a.Rectangle.subtract(o,s);c&&c.length>0&&i.push(...c)}t=i}return t.filter(s=>s.startRow<=s.endRow&&s.startColumn<=s.endColumn)}_getIntersects(e){const r=[];for(const t of this._ranges){const s=a.Rectangle.getIntersects(t,e);s&&r.push(s)}return r}getRanges(){return this._ranges}reset(){this._ranges=[],this._selectedRanges=[]}}class be extends M.Shape{constructor(r,t){super(r,t);l(this,"_color");t&&this.setShapeProps(t)}setShapeProps(r){typeof r.color<"u"&&(this._color=r.color),this.transformByState({width:r.width,height:r.height})}_draw(r){const t=`rgba(${this._color.r}, ${this._color.g}, ${this._color.b}, ${this._color.a})`;M.Rect.drawWith(r,{width:this.width,height:this.height,fill:t,stroke:void 0,strokeWidth:0,evented:!1})}}var Re=Object.defineProperty,He=Object.getOwnPropertyDescriptor,Oe=(n,e,r,t)=>{for(var s=t>1?void 0:t?He(e,r):e,i=n.length-1,o;i>=0;i--)(o=n[i])&&(s=(t?o(e,r,s):o(s))||s);return t&&s&&Re(e,r,s),s},C=(n,e)=>(r,t)=>e(r,t,n);let O=class extends a.Disposable{constructor(e,r,t,s,i,o){super();l(this,"_shapes",[]);l(this,"_rangeCollection",new me);l(this,"_color","rgba(255,0,0,0.5)");this._context=e,this._sheetSkeletonManagerService=r,this._sheetsSelectionsService=t,this._sheetsCrosshairHighlightService=s,this._contextService=i,this._refSelectionsService=o,this._initRenderListener()}_transformSelection(e,r){if(!e)return;const t=r.getRowCount(),s=r.getColumnCount(),i=[];for(const o of e){const{startRow:c,endRow:g,startColumn:S,endColumn:p}=o.range;g-c+1===t||p-S+1===s||i.push(o.range)}this._rangeCollection.setSelectedRanges(i);for(const o of i)this.addSelection(o,r)}_initRenderListener(){const e=this._context.unit;this.disposeWithMe(u.combineLatest([this._contextService.subscribeContextValue$($.DISABLE_NORMAL_SELECTIONS).pipe(u.startWith(!1)),this._sheetSkeletonManagerService.currentSkeleton$,this._sheetsCrosshairHighlightService.enabled$,this._sheetsCrosshairHighlightService.color$.pipe(u.tap(r=>this._color=r)),u.merge(this._sheetsSelectionsService.selectionMoveStart$,this._sheetsSelectionsService.selectionMoving$,this._sheetsSelectionsService.selectionMoveEnd$,e.activeSheet$.pipe(u.map(()=>this._sheetsSelectionsService.getCurrentSelections()))),u.merge(this._refSelectionsService.selectionMoveStart$,this._refSelectionsService.selectionMoving$,this._refSelectionsService.selectionMoveEnd$,e.activeSheet$.pipe(u.map(()=>this._refSelectionsService.getCurrentSelections())))]).subscribe(([r,t,s,i,o,c])=>{if(this._clear(),!s)return;const g=r?c:o;this._rangeCollection.reset(),this._transformSelection(g,e.getActiveSheet()),this.render(this._rangeCollection.getRanges())}))}addSelection(e,r){if(e.rangeType===a.RANGE_TYPE.COLUMN||e.rangeType===a.RANGE_TYPE.ROW||e.rangeType===a.RANGE_TYPE.ALL)return;const t=r.getRowCount(),s=r.getColumnCount(),{startRow:i,endRow:o,startColumn:c,endColumn:g}=e,S={startRow:i,endRow:o,startColumn:0,endColumn:c-1},p={startRow:i,endRow:o,startColumn:g+1,endColumn:s},m={startRow:0,endRow:i-1,startColumn:c,endColumn:g},b={startRow:o+1,endRow:t,startColumn:c,endColumn:g};for(const f of[S,p,m,b])f.startRow<=f.endRow&&f.startColumn<=f.endColumn&&this._rangeCollection.addRange(f)}_clear(){this._shapes.forEach(e=>{e.dispose()}),this._shapes=[]}_addShapes(e,r,t,s){const{startRow:i,endRow:o,startColumn:c,endColumn:g}=e,S=P.getCoordByCell(i,c,t,s),p=P.getCoordByCell(o,g,t,s),{startX:m,startY:b}=S,{endX:f,endY:Z}=p,W=f-m,F=Z-b,X={left:m,top:b,color:new a.ColorKit(this._color).toRgb(),width:W,height:F,zIndex:Ce,evented:!1},N=new be(`crosshair-${r}`,X);this._shapes.push(N),t.addObject(N)}render(e){const r=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!r)return;const{scene:t}=this._context;this._clear();for(let s=0;s<e.length;s++){const i=e[s];this._addShapes(i,s,t,r)}t.makeDirty(!0)}async dispose(){super.dispose()}};O=Oe([C(1,a.Inject(P.SheetSkeletonManagerService)),C(2,a.Inject($.SheetsSelectionsService)),C(3,a.Inject(d)),C(4,a.Inject(a.IContextService)),C(5,$.IRefSelectionsService)],O);const Ie="sheets-crosshair-highlight.config",ye={};var Ee=Object.defineProperty,we=Object.getOwnPropertyDescriptor,Te=(n,e,r,t)=>{for(var s=t>1?void 0:t?we(e,r):e,i=n.length-1,o;i>=0;i--)(o=n[i])&&(s=(t?o(e,r,s):o(s))||s);return t&&s&&Ee(e,r,s),s},T=(n,e)=>(r,t)=>e(r,t,n),R;exports.UniverSheetsCrosshairHighlightPlugin=(R=class extends a.Plugin{constructor(e=ye,r,t,s){super(),this._config=e,this._injector=r,this._renderManagerService=t,this._configService=s;const{...i}=this._config;this._configService.setConfig(Ie,i)}onStarting(){[[d],[H]].forEach(e=>this._injector.add(e))}onReady(){[[O]].forEach(e=>this._injector.add(e)),this._injector.get(H),this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,[O])}},l(R,"pluginName","SHEET_CROSSHAIR_HIGHLIGHT_PLUGIN"),l(R,"type",a.UniverInstanceType.UNIVER_SHEET),R);exports.UniverSheetsCrosshairHighlightPlugin=Te([T(1,a.Inject(a.Injector)),T(2,M.IRenderManagerService),T(3,a.IConfigService)],exports.UniverSheetsCrosshairHighlightPlugin);exports.CROSSHAIR_HIGHLIGHT_COLORS=x;exports.DisableCrosshairHighlightOperation=D;exports.EnableCrosshairHighlightOperation=U;exports.SetCrosshairHighlightColorOperation=j;exports.ToggleCrosshairHighlightOperation=I;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t={crosshair:{button:{tooltip:"Crosshair Highlight"}}};module.exports=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t={crosshair:{button:{tooltip:"برجسته کردن خط نشانه"}}};module.exports=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t={crosshair:{button:{tooltip:"Перекрестный выделение"}}};module.exports=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const o={crosshair:{button:{tooltip:"Đánh dấu chéo"}}};module.exports=o;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t={crosshair:{button:{tooltip:"十字高亮"}}};module.exports=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t={crosshair:{button:{tooltip:"十字高亮"}}};module.exports=t;
|
package/lib/es/facade.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FUniver as e } from "@univerjs/core";
|
|
2
|
+
import { EnableCrosshairHighlightOperation as r, DisableCrosshairHighlightOperation as o, SetCrosshairHighlightColorOperation as s } from "@univerjs/sheets-crosshair-highlight";
|
|
3
|
+
class t extends e {
|
|
4
|
+
setCrosshairHighlightEnabled(i) {
|
|
5
|
+
i ? this._commandService.executeCommand(r.id) : this._commandService.executeCommand(o.id);
|
|
6
|
+
}
|
|
7
|
+
setCrosshairHighlightColor(i) {
|
|
8
|
+
this._commandService.executeCommand(s.id, {
|
|
9
|
+
value: i
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
e.extend(t);
|