@univerjs/sheets-crosshair-highlight 0.4.2-nightly.202411061606 → 0.4.2-nightly.202411081606

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.
@@ -1,4 +1,4 @@
1
- const locale = {
1
+ const o = {
2
2
  crosshair: {
3
3
  button: {
4
4
  tooltip: "Crosshair Highlight"
@@ -6,5 +6,5 @@ const locale = {
6
6
  }
7
7
  };
8
8
  export {
9
- locale as default
9
+ o as default
10
10
  };
@@ -1,4 +1,4 @@
1
- const locale = {
1
+ const o = {
2
2
  crosshair: {
3
3
  button: {
4
4
  tooltip: "برجسته کردن خط نشانه"
@@ -6,5 +6,5 @@ const locale = {
6
6
  }
7
7
  };
8
8
  export {
9
- locale as default
9
+ o as default
10
10
  };
@@ -1,4 +1,4 @@
1
- const locale = {
1
+ const o = {
2
2
  crosshair: {
3
3
  button: {
4
4
  tooltip: "Перекрестный выделение"
@@ -6,5 +6,5 @@ const locale = {
6
6
  }
7
7
  };
8
8
  export {
9
- locale as default
9
+ o as default
10
10
  };
@@ -1,4 +1,4 @@
1
- const locale = {
1
+ const o = {
2
2
  crosshair: {
3
3
  button: {
4
4
  tooltip: "Đánh dấu chéo"
@@ -6,5 +6,5 @@ const locale = {
6
6
  }
7
7
  };
8
8
  export {
9
- locale as default
9
+ o as default
10
10
  };
@@ -1,4 +1,4 @@
1
- const locale = {
1
+ const o = {
2
2
  crosshair: {
3
3
  button: {
4
4
  tooltip: "十字高亮"
@@ -6,5 +6,5 @@ const locale = {
6
6
  }
7
7
  };
8
8
  export {
9
- locale as default
9
+ o as default
10
10
  };
@@ -1,4 +1,4 @@
1
- const locale = {
1
+ const o = {
2
2
  crosshair: {
3
3
  button: {
4
4
  tooltip: "十字高亮"
@@ -6,5 +6,5 @@ const locale = {
6
6
  }
7
7
  };
8
8
  export {
9
- locale as default
9
+ o as default
10
10
  };
package/lib/umd/index.js CHANGED
@@ -1,9 +1 @@
1
- (function(l,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("rxjs"),require("react"),require("@univerjs/sheets-ui"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","@univerjs/ui","rxjs","react","@univerjs/sheets-ui","@univerjs/sheets"],o):(l=typeof globalThis<"u"?globalThis:l||self,o(l.UniverSheetsCrosshairHighlight={},l.UniverCore,l.UniverEngineRender,l.UniverUi,l.rxjs,l.React,l.UniverSheetsUi,l.UniverSheets))})(this,function(l,o,f,p,d,v,w,M){"use strict";var ye=Object.defineProperty;var Ee=(l,o,f)=>o in l?ye(l,o,{enumerable:!0,configurable:!0,writable:!0,value:f}):l[o]=f;var c=(l,o,f)=>Ee(l,typeof o!="symbol"?o+"":o,f);var y;var g=function(){return g=Object.assign||function(n){for(var e,r=1,t=arguments.length;r<t;r++){e=arguments[r];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i])}return n},g.apply(this,arguments)},F=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 i=0,t=Object.getOwnPropertySymbols(n);i<t.length;i++)e.indexOf(t[i])<0&&Object.prototype.propertyIsEnumerable.call(n,t[i])&&(r[t[i]]=n[t[i]]);return r},$=v.forwardRef(function(n,e){var r=n.icon,t=n.id,i=n.className,s=n.extend,a=F(n,["icon","id","className","extend"]),h="univerjs-icon univerjs-icon-".concat(t," ").concat(i||"").trim(),u=v.useRef("_".concat(K()));return A(r,"".concat(t),{defIds:r.defIds,idSuffix:u.current},g({ref:e,className:h},a),s)});function A(n,e,r,t,i){return v.createElement(n.tag,g(g({key:e},X(n,r,i)),t),(q(n,r).children||[]).map(function(s,a){return A(s,"".concat(e,"-").concat(n.tag,"-").concat(a),r,void 0,i)}))}function X(n,e,r){var t=g({},n.attrs);r!=null&&r.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=r.colorChannel1);var i=e.defIds;return!i||i.length===0||(n.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+e.idSuffix),Object.entries(t).forEach(function(s){var a=s[0],h=s[1];typeof h=="string"&&(t[a]=h.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),t}function q(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)?g(g({},n),{children:n.children.map(function(i){return typeof i.attrs.id=="string"&&t&&t.indexOf(i.attrs.id)>-1?g(g({},i),{attrs:g(g({},i.attrs),{id:i.attrs.id+e.idSuffix})}):i})}):n}function K(){return Math.random().toString(36).substring(2,8)}$.displayName="UniverIcon";var z={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"}}]},L=v.forwardRef(function(n,e){return v.createElement($,Object.assign({},n,{id:"cross-highlighting-single",ref:e,icon:z}))});L.displayName="CrossHighlightingSingle";const P=["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 _ extends o.Disposable{constructor(){super(...arguments);c(this,"_enabled$",new d.BehaviorSubject(!1));c(this,"enabled$",this._enabled$.asObservable());c(this,"_color$",new d.BehaviorSubject(P[0]));c(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 R={id:"sheet.operation.toggle-crosshair-highlight",type:o.CommandType.OPERATION,handler(n){const e=n.get(_),r=e.enabled;return e.setEnabled(!r),!0}},j={id:"sheet.operation.set-crosshair-highlight-color",type:o.CommandType.OPERATION,handler(n,{value:e}){const r=n.get(_);return r.enabled||r.setEnabled(!0),r.setColor(e),!0}},U={id:"sheet.operation.enable-crosshair-highlight",type:o.CommandType.OPERATION,handler(n){const e=n.get(_);return e.enabled?!1:(e.setEnabled(!0),!0)}},G={id:"sheet.operation.disable-crosshair-highlight",type:o.CommandType.OPERATION,handler(n){const e=n.get(_);return e.enabled?(e.setEnabled(!1),!0):!1}};var D={exports:{}},b={};/**
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 J=v,Q=Symbol.for("react.element"),ee=Symbol.for("react.fragment"),te=Object.prototype.hasOwnProperty,re=J.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ne={key:!0,ref:!0,__self:!0,__source:!0};function Y(n,e,r){var t,i={},s=null,a=null;r!==void 0&&(s=""+r),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(a=e.ref);for(t in e)te.call(e,t)&&!ne.hasOwnProperty(t)&&(i[t]=e[t]);if(n&&n.defaultProps)for(t in e=n.defaultProps,e)i[t]===void 0&&(i[t]=e[t]);return{$$typeof:Q,type:n,key:s,ref:a,props:i,_owner:re.current}}b.Fragment=ee,b.jsx=Y,b.jsxs=Y,D.exports=b;var k=D.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 i=n.length;for(e=0;e<i;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 ie(){for(var n,e,r=0,t="",i=arguments.length;r<i;r++)(n=arguments[r])&&(e=B(n))&&(t&&(t+=" "),t+=e);return t}const N={crosshairHighlightOverlay:"univer-crosshair-highlight-overlay",crosshairHighlightItem:"univer-crosshair-highlight-item",crosshairHighlightItemSelected:"univer-crosshair-highlight-item-selected"};function se(n){const{onChange:e}=n,r=o.useDependency(_),t=o.useObservable(r.color$),i=v.useCallback(s=>{e==null||e(s)},[e]);return k.jsx("div",{className:N.crosshairHighlightOverlay,children:P.map(s=>k.jsx("div",{className:ie(N.crosshairHighlightItem,{[N.crosshairHighlightItemSelected]:s===t}),style:{backgroundColor:s},onClick:()=>i(s)},s))})}const Z="CROSSHAIR_HIGHLIGHT_OVERLAY_COMPONENT";function oe(n){const e=n.get(_);return{id:R.id,tooltip:"crosshair.button.tooltip",type:p.MenuItemType.BUTTON_SELECTOR,icon:"CrossHighlightingSingle",selections:[{label:{name:Z,hoverable:!1}}],selectionsCommandId:j.id,activated$:e.enabled$,hidden$:p.getMenuHiddenObservable(n,o.UniverInstanceType.UNIVER_SHEET)}}const ae={[p.ContextMenuPosition.FOOTER_MENU]:{[p.ContextMenuGroup.OTHERS]:{[R.id]:{order:0,menuItemFactory:oe}}}};var le=Object.defineProperty,he=Object.getOwnPropertyDescriptor,ce=(n,e,r,t)=>{for(var i=t>1?void 0:t?he(e,r):e,s=n.length-1,a;s>=0;s--)(a=n[s])&&(i=(t?a(e,r,i):a(i))||i);return t&&i&&le(e,r,i),i},x=(n,e)=>(r,t)=>e(r,t,n);let O=class extends o.Disposable{constructor(n,e,r){super(),this._componentMgr=n,this._menuManagerService=e,this._cmdSrv=r,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[R,j,U,G].forEach(n=>this._cmdSrv.registerCommand(n))}_initMenus(){this._menuManagerService.mergeMenu(ae)}_initComponents(){this._componentMgr.register(Z,se),this._componentMgr.register("CrossHighlightingSingle",L)}};O=ce([x(0,o.Inject(p.ComponentManager)),x(1,p.IMenuManagerService),x(2,o.ICommandService)],O);const ge=1;class ue{constructor(){c(this,"_selectedRanges",[]);c(this,"_ranges",[])}addRange(e){if(e.rangeType===o.RANGE_TYPE.COLUMN||e.rangeType===o.RANGE_TYPE.ROW||e.rangeType===o.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 i of r.concat(this._selectedRanges)){const s=[];for(const a of t){const h=o.Rectangle.subtract(a,i);h&&h.length>0&&s.push(...h)}t=s}return t.filter(i=>i.startRow<=i.endRow&&i.startColumn<=i.endColumn)}_getIntersects(e){const r=[];for(const t of this._ranges){const i=o.Rectangle.getIntersects(t,e);i&&r.push(i)}return r}getRanges(){return this._ranges}reset(){this._ranges=[],this._selectedRanges=[]}}class de extends f.Shape{constructor(r,t){super(r,t);c(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})`;f.Rect.drawWith(r,{width:this.width,height:this.height,fill:t,stroke:void 0,strokeWidth:0,evented:!1})}}var fe=Object.defineProperty,_e=Object.getOwnPropertyDescriptor,ve=(n,e,r,t)=>{for(var i=t>1?void 0:t?_e(e,r):e,s=n.length-1,a;s>=0;s--)(a=n[s])&&(i=(t?a(e,r,i):a(i))||i);return t&&i&&fe(e,r,i),i},C=(n,e)=>(r,t)=>e(r,t,n);let I=class extends o.Disposable{constructor(e,r,t,i,s,a){super();c(this,"_shapes",[]);c(this,"_rangeCollection",new ue);c(this,"_color","rgba(255,0,0,0.5)");this._context=e,this._sheetSkeletonManagerService=r,this._sheetsSelectionsService=t,this._sheetsCrosshairHighlightService=i,this._contextService=s,this._refSelectionsService=a,this._initRenderListener()}_transformSelection(e,r){if(!e)return;const t=r.getRowCount(),i=r.getColumnCount(),s=[];for(const a of e){const{startRow:h,endRow:u,startColumn:m,endColumn:H}=a.range;u-h+1===t||H-m+1===i||s.push(a.range)}this._rangeCollection.setSelectedRanges(s);for(const a of s)this.addSelection(a,r)}_initRenderListener(){const e=this._context.unit;this.disposeWithMe(d.combineLatest([this._contextService.subscribeContextValue$(M.DISABLE_NORMAL_SELECTIONS).pipe(d.startWith(!1)),this._sheetSkeletonManagerService.currentSkeleton$,this._sheetsCrosshairHighlightService.enabled$,this._sheetsCrosshairHighlightService.color$.pipe(d.tap(r=>this._color=r)),d.merge(this._sheetsSelectionsService.selectionMoveStart$,this._sheetsSelectionsService.selectionMoving$,this._sheetsSelectionsService.selectionMoveEnd$,e.activeSheet$.pipe(d.map(()=>this._sheetsSelectionsService.getCurrentSelections()))),d.merge(this._refSelectionsService.selectionMoveStart$,this._refSelectionsService.selectionMoving$,this._refSelectionsService.selectionMoveEnd$,e.activeSheet$.pipe(d.map(()=>this._refSelectionsService.getCurrentSelections())))]).subscribe(([r,t,i,s,a,h])=>{if(this._clear(),!i)return;const u=r?h:a;this._rangeCollection.reset(),this._transformSelection(u,e.getActiveSheet()),this.render(this._rangeCollection.getRanges())}))}addSelection(e,r){if(e.rangeType===o.RANGE_TYPE.COLUMN||e.rangeType===o.RANGE_TYPE.ROW||e.rangeType===o.RANGE_TYPE.ALL)return;const t=r.getRowCount(),i=r.getColumnCount(),{startRow:s,endRow:a,startColumn:h,endColumn:u}=e,m={startRow:s,endRow:a,startColumn:0,endColumn:h-1},H={startRow:s,endRow:a,startColumn:u+1,endColumn:i},E={startRow:0,endRow:s-1,startColumn:h,endColumn:u},T={startRow:a+1,endRow:t,startColumn:h,endColumn:u};for(const S of[m,H,E,T])S.startRow<=S.endRow&&S.startColumn<=S.endColumn&&this._rangeCollection.addRange(S)}_clear(){this._shapes.forEach(e=>{e.dispose()}),this._shapes=[]}_addShapes(e,r,t,i){const{startRow:s,endRow:a,startColumn:h,endColumn:u}=e,m=w.getCoordByCell(s,h,t,i),H=w.getCoordByCell(a,u,t,i),{startX:E,startY:T}=m,{endX:S,endY:Re}=H,be=S-E,Oe=Re-T,Ie={left:E,top:T,color:new o.ColorKit(this._color).toRgb(),width:be,height:Oe,zIndex:ge,evented:!1},W=new de(`crosshair-${r}`,Ie);this._shapes.push(W),t.addObject(W)}render(e){const r=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!r)return;const{scene:t}=this._context;this._clear();for(let i=0;i<e.length;i++){const s=e[i];this._addShapes(s,i,t,r)}t.makeDirty(!0)}async dispose(){super.dispose()}};I=ve([C(1,o.Inject(w.SheetSkeletonManagerService)),C(2,o.Inject(M.SheetsSelectionsService)),C(3,o.Inject(_)),C(4,o.Inject(o.IContextService)),C(5,M.IRefSelectionsService)],I);const Se="sheets-crosshair-highlight.config",pe={};var Ce=Object.defineProperty,me=Object.getOwnPropertyDescriptor,He=(n,e,r,t)=>{for(var i=t>1?void 0:t?me(e,r):e,s=n.length-1,a;s>=0;s--)(a=n[s])&&(i=(t?a(e,r,i):a(i))||i);return t&&i&&Ce(e,r,i),i},V=(n,e)=>(r,t)=>e(r,t,n);l.UniverSheetsCrosshairHighlightPlugin=(y=class extends o.Plugin{constructor(e=pe,r,t,i){super(),this._config=e,this._injector=r,this._renderManagerService=t,this._configService=i;const{...s}=this._config;this._configService.setConfig(Se,s)}onStarting(){[[_],[O]].forEach(e=>this._injector.add(e))}onReady(){[[I]].forEach(e=>this._injector.add(e)),this._injector.get(O),this._renderManagerService.registerRenderModule(o.UniverInstanceType.UNIVER_SHEET,[I])}},c(y,"pluginName","SHEET_CROSSHAIR_HIGHLIGHT_PLUGIN"),c(y,"type",o.UniverInstanceType.UNIVER_SHEET),y),l.UniverSheetsCrosshairHighlightPlugin=He([V(1,o.Inject(o.Injector)),V(2,f.IRenderManagerService),V(3,o.IConfigService)],l.UniverSheetsCrosshairHighlightPlugin),l.CROSSHAIR_HIGHLIGHT_COLORS=P,l.DisableCrosshairHighlightOperation=G,l.EnableCrosshairHighlightOperation=U,l.SetCrosshairHighlightColorOperation=j,l.ToggleCrosshairHighlightOperation=R,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
1
+ (function(h,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("@univerjs/ui"),require("rxjs"),require("react/jsx-runtime"),require("react"),require("@univerjs/sheets-ui"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","@univerjs/ui","rxjs","react/jsx-runtime","react","@univerjs/sheets-ui","@univerjs/sheets"],o):(h=typeof globalThis<"u"?globalThis:h||self,o(h.UniverSheetsCrosshairHighlight={},h.UniverCore,h.UniverEngineRender,h.UniverUi,h.rxjs,h["react/jsx-runtime"],h.React,h.UniverSheetsUi,h.UniverSheets))})(this,function(h,o,f,S,d,V,C,T,M){"use strict";var Se=Object.defineProperty;var Ce=(h,o,f)=>o in h?Se(h,o,{enumerable:!0,configurable:!0,writable:!0,value:f}):h[o]=f;var l=(h,o,f)=>Ce(h,typeof o!="symbol"?o+"":o,f);var I;var g=function(){return g=Object.assign||function(r){for(var e,t=1,i=arguments.length;t<i;t++){e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n])}return r},g.apply(this,arguments)},Z=function(r,e){var t={};for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&e.indexOf(i)<0&&(t[i]=r[i]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(r);n<i.length;n++)e.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(r,i[n])&&(t[i[n]]=r[i[n]]);return t},A=C.forwardRef(function(r,e){var t=r.icon,i=r.id,n=r.className,s=r.extend,a=Z(r,["icon","id","className","extend"]),c="univerjs-icon univerjs-icon-".concat(i," ").concat(n||"").trim(),u=C.useRef("_".concat(k()));return x(t,"".concat(i),{defIds:t.defIds,idSuffix:u.current},g({ref:e,className:c},a),s)});function x(r,e,t,i,n){return C.createElement(r.tag,g(g({key:e},q(r,t,n)),i),(W(r,t).children||[]).map(function(s,a){return x(s,"".concat(e,"-").concat(r.tag,"-").concat(a),t,void 0,n)}))}function q(r,e,t){var i=g({},r.attrs);t!=null&&t.colorChannel1&&i.fill==="colorChannel1"&&(i.fill=t.colorChannel1);var n=e.defIds;return!n||n.length===0||(r.tag==="use"&&i["xlink:href"]&&(i["xlink:href"]=i["xlink:href"]+e.idSuffix),Object.entries(i).forEach(function(s){var a=s[0],c=s[1];typeof c=="string"&&(i[a]=c.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),i}function W(r,e){var t,i=e.defIds;return!i||i.length===0?r:r.tag==="defs"&&(!((t=r.children)===null||t===void 0)&&t.length)?g(g({},r),{children:r.children.map(function(n){return typeof n.attrs.id=="string"&&i&&i.indexOf(n.attrs.id)>-1?g(g({},n),{attrs:g(g({},n.attrs),{id:n.attrs.id+e.idSuffix})}):n})}):r}function k(){return Math.random().toString(36).substring(2,8)}A.displayName="UniverIcon";var F={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"}}]},L=C.forwardRef(function(r,e){return C.createElement(A,Object.assign({},r,{id:"cross-highlighting-single",ref:e,icon:F}))});L.displayName="CrossHighlightingSingle";const w=["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 _ extends o.Disposable{constructor(){super(...arguments);l(this,"_enabled$",new d.BehaviorSubject(!1));l(this,"enabled$",this._enabled$.asObservable());l(this,"_color$",new d.BehaviorSubject(w[0]));l(this,"color$",this._color$.asObservable())}get enabled(){return this._enabled$.getValue()}get color(){return this._color$.getValue()}dispose(){this._enabled$.complete()}setEnabled(t){this._enabled$.next(t)}setColor(t){this._color$.next(t)}}const b={id:"sheet.operation.toggle-crosshair-highlight",type:o.CommandType.OPERATION,handler(r){const e=r.get(_),t=e.enabled;return e.setEnabled(!t),!0}},P={id:"sheet.operation.set-crosshair-highlight-color",type:o.CommandType.OPERATION,handler(r,{value:e}){const t=r.get(_);return t.enabled||t.setEnabled(!0),t.setColor(e),!0}},U={id:"sheet.operation.enable-crosshair-highlight",type:o.CommandType.OPERATION,handler(r){const e=r.get(_);return e.enabled?!1:(e.setEnabled(!0),!0)}},G={id:"sheet.operation.disable-crosshair-highlight",type:o.CommandType.OPERATION,handler(r){const e=r.get(_);return e.enabled?(e.setEnabled(!1),!0):!1}};function D(r){var e,t,i="";if(typeof r=="string"||typeof r=="number")i+=r;else if(typeof r=="object")if(Array.isArray(r)){var n=r.length;for(e=0;e<n;e++)r[e]&&(t=D(r[e]))&&(i&&(i+=" "),i+=t)}else for(t in r)r[t]&&(i&&(i+=" "),i+=t);return i}function X(){for(var r,e,t=0,i="",n=arguments.length;t<n;t++)(r=arguments[t])&&(e=D(r))&&(i&&(i+=" "),i+=e);return i}const j={crosshairHighlightOverlay:"univer-crosshair-highlight-overlay",crosshairHighlightItem:"univer-crosshair-highlight-item",crosshairHighlightItemSelected:"univer-crosshair-highlight-item-selected"};function K(r){const{onChange:e}=r,t=o.useDependency(_),i=o.useObservable(t.color$),n=C.useCallback(s=>{e==null||e(s)},[e]);return V.jsx("div",{className:j.crosshairHighlightOverlay,children:w.map(s=>V.jsx("div",{className:X(j.crosshairHighlightItem,{[j.crosshairHighlightItemSelected]:s===i}),style:{backgroundColor:s},onClick:()=>n(s)},s))})}const Y="CROSSHAIR_HIGHLIGHT_OVERLAY_COMPONENT";function z(r){const e=r.get(_);return{id:b.id,tooltip:"crosshair.button.tooltip",type:S.MenuItemType.BUTTON_SELECTOR,icon:"CrossHighlightingSingle",selections:[{label:{name:Y,hoverable:!1}}],selectionsCommandId:P.id,activated$:e.enabled$,hidden$:S.getMenuHiddenObservable(r,o.UniverInstanceType.UNIVER_SHEET)}}const J={[S.ContextMenuPosition.FOOTER_MENU]:{[S.ContextMenuGroup.OTHERS]:{[b.id]:{order:0,menuItemFactory:z}}}};var Q=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=(r,e,t,i)=>{for(var n=i>1?void 0:i?ee(e,t):e,s=r.length-1,a;s>=0;s--)(a=r[s])&&(n=(i?a(e,t,n):a(n))||n);return i&&n&&Q(e,t,n),n},$=(r,e)=>(t,i)=>e(t,i,r);let R=class extends o.Disposable{constructor(r,e,t){super(),this._componentMgr=r,this._menuManagerService=e,this._cmdSrv=t,this._initCommands(),this._initMenus(),this._initComponents()}_initCommands(){[b,P,U,G].forEach(r=>this._cmdSrv.registerCommand(r))}_initMenus(){this._menuManagerService.mergeMenu(J)}_initComponents(){this._componentMgr.register(Y,K),this._componentMgr.register("CrossHighlightingSingle",L)}};R=te([$(0,o.Inject(S.ComponentManager)),$(1,S.IMenuManagerService),$(2,o.ICommandService)],R);const ie=1;class re{constructor(){l(this,"_selectedRanges",[]);l(this,"_ranges",[])}addRange(e){if(e.rangeType===o.RANGE_TYPE.COLUMN||e.rangeType===o.RANGE_TYPE.ROW||e.rangeType===o.RANGE_TYPE.ALL)return;const t=this._getIntersects(e),i=this._getSplitRanges(e,t);i.length>0&&this._ranges.push(...i)}setSelectedRanges(e){this._selectedRanges=e}_getSplitRanges(e,t){let i=[e];for(const n of t.concat(this._selectedRanges)){const s=[];for(const a of i){const c=o.Rectangle.subtract(a,n);c&&c.length>0&&s.push(...c)}i=s}return i.filter(n=>n.startRow<=n.endRow&&n.startColumn<=n.endColumn)}_getIntersects(e){const t=[];for(const i of this._ranges){const n=o.Rectangle.getIntersects(i,e);n&&t.push(n)}return t}getRanges(){return this._ranges}reset(){this._ranges=[],this._selectedRanges=[]}}class ne extends f.Shape{constructor(t,i){super(t,i);l(this,"_color");i&&this.setShapeProps(i)}setShapeProps(t){typeof t.color<"u"&&(this._color=t.color),this.transformByState({width:t.width,height:t.height})}_draw(t){const i=`rgba(${this._color.r}, ${this._color.g}, ${this._color.b}, ${this._color.a})`;f.Rect.drawWith(t,{width:this.width,height:this.height,fill:i,stroke:void 0,strokeWidth:0,evented:!1})}}var se=Object.defineProperty,oe=Object.getOwnPropertyDescriptor,ae=(r,e,t,i)=>{for(var n=i>1?void 0:i?oe(e,t):e,s=r.length-1,a;s>=0;s--)(a=r[s])&&(n=(i?a(e,t,n):a(n))||n);return i&&n&&se(e,t,n),n},p=(r,e)=>(t,i)=>e(t,i,r);let O=class extends o.Disposable{constructor(e,t,i,n,s,a){super();l(this,"_shapes",[]);l(this,"_rangeCollection",new re);l(this,"_color","rgba(255,0,0,0.5)");this._context=e,this._sheetSkeletonManagerService=t,this._sheetsSelectionsService=i,this._sheetsCrosshairHighlightService=n,this._contextService=s,this._refSelectionsService=a,this._initRenderListener()}_transformSelection(e,t){if(!e)return;const i=t.getRowCount(),n=t.getColumnCount(),s=[];for(const a of e){const{startRow:c,endRow:u,startColumn:m,endColumn:H}=a.range;u-c+1===i||H-m+1===n||s.push(a.range)}this._rangeCollection.setSelectedRanges(s);for(const a of s)this.addSelection(a,t)}_initRenderListener(){const e=this._context.unit;this.disposeWithMe(d.combineLatest([this._contextService.subscribeContextValue$(M.DISABLE_NORMAL_SELECTIONS).pipe(d.startWith(!1)),this._sheetSkeletonManagerService.currentSkeleton$,this._sheetsCrosshairHighlightService.enabled$,this._sheetsCrosshairHighlightService.color$.pipe(d.tap(t=>this._color=t)),d.merge(this._sheetsSelectionsService.selectionMoveStart$,this._sheetsSelectionsService.selectionMoving$,this._sheetsSelectionsService.selectionMoveEnd$,e.activeSheet$.pipe(d.map(()=>this._sheetsSelectionsService.getCurrentSelections()))),d.merge(this._refSelectionsService.selectionMoveStart$,this._refSelectionsService.selectionMoving$,this._refSelectionsService.selectionMoveEnd$,e.activeSheet$.pipe(d.map(()=>this._refSelectionsService.getCurrentSelections())))]).subscribe(([t,i,n,s,a,c])=>{if(this._clear(),!n)return;const u=t?c:a;this._rangeCollection.reset(),this._transformSelection(u,e.getActiveSheet()),this.render(this._rangeCollection.getRanges())}))}addSelection(e,t){if(e.rangeType===o.RANGE_TYPE.COLUMN||e.rangeType===o.RANGE_TYPE.ROW||e.rangeType===o.RANGE_TYPE.ALL)return;const i=t.getRowCount(),n=t.getColumnCount(),{startRow:s,endRow:a,startColumn:c,endColumn:u}=e,m={startRow:s,endRow:a,startColumn:0,endColumn:c-1},H={startRow:s,endRow:a,startColumn:u+1,endColumn:n},y={startRow:0,endRow:s-1,startColumn:c,endColumn:u},E={startRow:a+1,endRow:i,startColumn:c,endColumn:u};for(const v of[m,H,y,E])v.startRow<=v.endRow&&v.startColumn<=v.endColumn&&this._rangeCollection.addRange(v)}_clear(){this._shapes.forEach(e=>{e.dispose()}),this._shapes=[]}_addShapes(e,t,i,n){const{startRow:s,endRow:a,startColumn:c,endColumn:u}=e,m=T.getCoordByCell(s,c,i,n),H=T.getCoordByCell(a,u,i,n),{startX:y,startY:E}=m,{endX:v,endY:de}=H,fe=v-y,_e=de-E,ve={left:y,top:E,color:new o.ColorKit(this._color).toRgb(),width:fe,height:_e,zIndex:ie,evented:!1},B=new ne(`crosshair-${t}`,ve);this._shapes.push(B),i.addObject(B)}render(e){const t=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!t)return;const{scene:i}=this._context;this._clear();for(let n=0;n<e.length;n++){const s=e[n];this._addShapes(s,n,i,t)}i.makeDirty(!0)}async dispose(){super.dispose()}};O=ae([p(1,o.Inject(T.SheetSkeletonManagerService)),p(2,o.Inject(M.SheetsSelectionsService)),p(3,o.Inject(_)),p(4,o.Inject(o.IContextService)),p(5,M.IRefSelectionsService)],O);const he="sheets-crosshair-highlight.config",ce={};var le=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,ue=(r,e,t,i)=>{for(var n=i>1?void 0:i?ge(e,t):e,s=r.length-1,a;s>=0;s--)(a=r[s])&&(n=(i?a(e,t,n):a(n))||n);return i&&n&&le(e,t,n),n},N=(r,e)=>(t,i)=>e(t,i,r);h.UniverSheetsCrosshairHighlightPlugin=(I=class extends o.Plugin{constructor(e=ce,t,i,n){super(),this._config=e,this._injector=t,this._renderManagerService=i,this._configService=n;const{...s}=this._config;this._configService.setConfig(he,s)}onStarting(){[[_],[R]].forEach(e=>this._injector.add(e))}onReady(){[[O]].forEach(e=>this._injector.add(e)),this._injector.get(R),this._renderManagerService.registerRenderModule(o.UniverInstanceType.UNIVER_SHEET,[O])}},l(I,"pluginName","SHEET_CROSSHAIR_HIGHLIGHT_PLUGIN"),l(I,"type",o.UniverInstanceType.UNIVER_SHEET),I),h.UniverSheetsCrosshairHighlightPlugin=ue([N(1,o.Inject(o.Injector)),N(2,f.IRenderManagerService),N(3,o.IConfigService)],h.UniverSheetsCrosshairHighlightPlugin),h.CROSSHAIR_HIGHLIGHT_COLORS=w,h.DisableCrosshairHighlightOperation=G,h.EnableCrosshairHighlightOperation=U,h.SetCrosshairHighlightColorOperation=P,h.ToggleCrosshairHighlightOperation=b,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-crosshair-highlight",
3
- "version": "0.4.2-nightly.202411061606",
3
+ "version": "0.4.2-nightly.202411081606",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -21,21 +21,25 @@
21
21
  "exports": {
22
22
  ".": {
23
23
  "import": "./lib/es/index.js",
24
+ "require": "./lib/cjs/index.js",
24
25
  "types": "./lib/types/index.d.ts"
25
26
  },
26
27
  "./*": {
27
28
  "import": "./lib/es/*",
29
+ "require": "./lib/cjs/*",
28
30
  "types": "./lib/types/index.d.ts"
29
31
  },
30
- "./lib/*": "./lib/*",
31
32
  "./facade": {
32
33
  "import": "./lib/es/facade.js",
34
+ "require": "./lib/cjs/facade.js",
33
35
  "types": "./lib/types/facade/index.d.ts"
34
36
  },
35
37
  "./locale/*": {
36
- "import": "./lib/locale/*.js",
38
+ "import": "./lib/es/locale/*.js",
39
+ "require": "./lib/cjs/locale/*.js",
37
40
  "types": "./lib/types/locale/*.d.ts"
38
- }
41
+ },
42
+ "./lib/*": "./lib/*"
39
43
  },
40
44
  "main": "./lib/es/index.js",
41
45
  "types": "./lib/types/index.d.ts",
@@ -53,13 +57,13 @@
53
57
  "rxjs": ">=7.0.0"
54
58
  },
55
59
  "dependencies": {
56
- "@univerjs/icons": "^0.2.3",
60
+ "@univerjs/icons": "^0.2.5",
57
61
  "clsx": "^2.1.1",
58
- "@univerjs/core": "0.4.2-nightly.202411061606",
59
- "@univerjs/ui": "0.4.2-nightly.202411061606",
60
- "@univerjs/sheets": "0.4.2-nightly.202411061606",
61
- "@univerjs/sheets-ui": "0.4.2-nightly.202411061606",
62
- "@univerjs/engine-render": "0.4.2-nightly.202411061606"
62
+ "@univerjs/core": "0.4.2-nightly.202411081606",
63
+ "@univerjs/engine-render": "0.4.2-nightly.202411081606",
64
+ "@univerjs/sheets-ui": "0.4.2-nightly.202411081606",
65
+ "@univerjs/sheets": "0.4.2-nightly.202411081606",
66
+ "@univerjs/ui": "0.4.2-nightly.202411081606"
63
67
  },
64
68
  "devDependencies": {
65
69
  "less": "^4.2.0",
@@ -70,31 +74,35 @@
70
74
  "vitest": "^2.1.4",
71
75
  "@univerjs-infra/shared": "0.4.2"
72
76
  },
73
- "univerSpace": {
77
+ "space": {
74
78
  ".": {
75
79
  "import": "./lib/es/index.js",
80
+ "require": "./lib/cjs/index.js",
76
81
  "types": "./lib/types/index.d.ts"
77
82
  },
78
83
  "./*": {
79
84
  "import": "./lib/es/*",
85
+ "require": "./lib/cjs/*",
80
86
  "types": "./lib/types/index.d.ts"
81
87
  },
82
- "./lib/*": "./lib/*",
83
88
  "./facade": {
84
89
  "import": "./lib/es/facade.js",
90
+ "require": "./lib/cjs/facade.js",
85
91
  "types": "./lib/types/facade/index.d.ts"
86
92
  },
87
93
  "./locale/*": {
88
- "import": "./lib/locale/*.js",
94
+ "import": "./lib/es/locale/*.js",
95
+ "require": "./lib/cjs/locale/*.js",
89
96
  "types": "./lib/types/locale/*.d.ts"
90
- }
97
+ },
98
+ "./lib/*": "./lib/*"
91
99
  },
92
100
  "scripts": {
93
101
  "test": "vitest run",
94
102
  "test:watch": "vitest",
95
103
  "coverage": "vitest run --coverage",
96
104
  "lint:types": "tsc --noEmit",
97
- "build": "tsc && vite build"
105
+ "build": "tsx build.ts"
98
106
  },
99
107
  "module": "./lib/es/index.js"
100
108
  }
@@ -1,86 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
3
- var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
- import { Disposable, CommandType } from "@univerjs/core";
6
- import { BehaviorSubject } from "rxjs";
7
- const CROSSHAIR_HIGHLIGHT_COLORS = [
8
- "rgba(158, 109, 227, 0.3)",
9
- "rgba(254, 75, 75, 0.3)",
10
- "rgba(255, 140, 81, 0.3)",
11
- "rgba(164, 220, 22, 0.3)",
12
- "rgba(45, 174, 255, 0.3)",
13
- "rgba(58, 96, 247, 0.3)",
14
- "rgba(242, 72, 166, 0.3)",
15
- "rgba(153, 153, 153, 0.3)",
16
- "rgba(158, 109, 227, 0.15)",
17
- "rgba(254, 75, 75, 0.15)",
18
- "rgba(255, 140, 81, 0.15)",
19
- "rgba(164, 220, 22, 0.15)",
20
- "rgba(45, 174, 255, 0.15)",
21
- "rgba(58, 96, 247, 0.15)",
22
- "rgba(242, 72, 166, 0.15)",
23
- "rgba(153, 153, 153, 0.15)"
24
- ], _SheetsCrosshairHighlightService = class _SheetsCrosshairHighlightService extends Disposable {
25
- constructor() {
26
- super(...arguments);
27
- __publicField(this, "_enabled$", new BehaviorSubject(!1));
28
- __publicField(this, "enabled$", this._enabled$.asObservable());
29
- __publicField(this, "_color$", new BehaviorSubject(CROSSHAIR_HIGHLIGHT_COLORS[0]));
30
- __publicField(this, "color$", this._color$.asObservable());
31
- }
32
- get enabled() {
33
- return this._enabled$.getValue();
34
- }
35
- get color() {
36
- return this._color$.getValue();
37
- }
38
- dispose() {
39
- this._enabled$.complete();
40
- }
41
- setEnabled(value) {
42
- this._enabled$.next(value);
43
- }
44
- setColor(value) {
45
- this._color$.next(value);
46
- }
47
- };
48
- __name(_SheetsCrosshairHighlightService, "SheetsCrosshairHighlightService");
49
- let SheetsCrosshairHighlightService = _SheetsCrosshairHighlightService;
50
- const ToggleCrosshairHighlightOperation = {
51
- id: "sheet.operation.toggle-crosshair-highlight",
52
- type: CommandType.OPERATION,
53
- handler(accessor) {
54
- const service = accessor.get(SheetsCrosshairHighlightService), turnedOn = service.enabled;
55
- return service.setEnabled(!turnedOn), !0;
56
- }
57
- }, SetCrosshairHighlightColorOperation = {
58
- id: "sheet.operation.set-crosshair-highlight-color",
59
- type: CommandType.OPERATION,
60
- handler(accessor, { value }) {
61
- const service = accessor.get(SheetsCrosshairHighlightService);
62
- return service.enabled || service.setEnabled(!0), service.setColor(value), !0;
63
- }
64
- }, EnableCrosshairHighlightOperation = {
65
- id: "sheet.operation.enable-crosshair-highlight",
66
- type: CommandType.OPERATION,
67
- handler(accessor) {
68
- const service = accessor.get(SheetsCrosshairHighlightService);
69
- return service.enabled ? !1 : (service.setEnabled(!0), !0);
70
- }
71
- }, DisableCrosshairHighlightOperation = {
72
- id: "sheet.operation.disable-crosshair-highlight",
73
- type: CommandType.OPERATION,
74
- handler(accessor) {
75
- const service = accessor.get(SheetsCrosshairHighlightService);
76
- return service.enabled ? (service.setEnabled(!1), !0) : !1;
77
- }
78
- };
79
- export {
80
- CROSSHAIR_HIGHLIGHT_COLORS as C,
81
- DisableCrosshairHighlightOperation as D,
82
- EnableCrosshairHighlightOperation as E,
83
- SheetsCrosshairHighlightService as S,
84
- ToggleCrosshairHighlightOperation as T,
85
- SetCrosshairHighlightColorOperation as a
86
- };