@univerjs/find-replace 0.6.0 → 0.6.1

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
@@ -1 +1 @@
1
- "use strict";var Fe=Object.defineProperty;var De=(t,e,n)=>e in t?Fe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var u=(t,e,n)=>De(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),l=require("@univerjs/ui"),_=require("rxjs"),f=require("@univerjs/design"),xe=require("@univerjs/engine-render"),d=require("react/jsx-runtime"),h=require("react"),Te="find-replace.config",V={};var C=function(){return C=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++){e=arguments[n];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s])}return t},C.apply(this,arguments)},Oe=function(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,i=Object.getOwnPropertySymbols(t);s<i.length;s++)e.indexOf(i[s])<0&&Object.prototype.propertyIsEnumerable.call(t,i[s])&&(n[i[s]]=t[i[s]]);return n},q=h.forwardRef(function(t,e){var n=t.icon,i=t.id,s=t.className,r=t.extend,a=Oe(t,["icon","id","className","extend"]),c="univerjs-icon univerjs-icon-".concat(i," ").concat(s||"").trim(),p=h.useRef("_".concat(Ne()));return z(n,"".concat(i),{defIds:n.defIds,idSuffix:p.current},C({ref:e,className:c},a),r)});function z(t,e,n,i,s){return h.createElement(t.tag,C(C({key:e},Pe(t,n,s)),i),(Ee(t,n).children||[]).map(function(r,a){return z(r,"".concat(e,"-").concat(t.tag,"-").concat(a),n,void 0,s)}))}function Pe(t,e,n){var i=C({},t.attrs);n!=null&&n.colorChannel1&&i.fill==="colorChannel1"&&(i.fill=n.colorChannel1);var s=e.defIds;return!s||s.length===0||(t.tag==="use"&&i["xlink:href"]&&(i["xlink:href"]=i["xlink:href"]+e.idSuffix),Object.entries(i).forEach(function(r){var a=r[0],c=r[1];typeof c=="string"&&(i[a]=c.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),i}function Ee(t,e){var n,i=e.defIds;return!i||i.length===0?t:t.tag==="defs"&&(!((n=t.children)===null||n===void 0)&&n.length)?C(C({},t),{children:t.children.map(function(s){return typeof s.attrs.id=="string"&&i&&i.indexOf(s.attrs.id)>-1?C(C({},s),{attrs:C(C({},s.attrs),{id:s.attrs.id+e.idSuffix})}):s})}):t}function Ne(){return Math.random().toString(36).substring(2,8)}q.displayName="UniverIcon";var Le={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_217_40",style:{maskType:"alpha"},width:17,height:17,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0.9 0.09H16.9V16.09H0.9z"}}]},{tag:"g",attrs:{mask:"url(#mask0_217_40)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M2.39551 7.37266C2.39551 4.18105 4.98281 1.59375 8.17441 1.59375C11.366 1.59375 13.9533 4.18105 13.9533 7.37266C13.9533 8.72342 13.4898 9.96603 12.7133 10.95L15.1964 13.4331C15.4619 13.6986 15.4619 14.1291 15.1964 14.3946C14.9309 14.6601 14.5004 14.6601 14.2349 14.3946L11.7518 11.9115C10.7678 12.6881 9.52525 13.1516 8.17441 13.1516C4.98281 13.1516 2.39551 10.5642 2.39551 7.37266ZM8.17441 2.95349C5.73378 2.95349 3.75525 4.93202 3.75525 7.37266C3.75525 9.81333 5.73378 11.7918 8.17441 11.7918C10.6151 11.7918 12.5936 9.81333 12.5936 7.37266C12.5936 4.93202 10.6151 2.95349 8.17441 2.95349Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},Y=h.forwardRef(function(t,e){return h.createElement(q,Object.assign({},t,{id:"search-single-16",ref:e,icon:Le}))});Y.displayName="SearchSingle16";const Z="FIND_REPLACE_INPUT_FOCUS",J="FIND_REPLACE_DIALOG_FOCUS",Q="FIND_REPLACE_REPLACE_REVEALED";var $e=Object.getOwnPropertyDescriptor,X=(t,e,n,i)=>{for(var s=i>1?void 0:i?$e(e,n):e,r=t.length-1,a;r>=0;r--)(a=t[r])&&(s=a(s)||s);return s},j=(t,e)=>(n,i)=>e(n,i,t);class je extends o.Disposable{}const R=o.createIdentifier("find-replace.service");function Ae(t){return typeof t.findString<"u"||typeof t.inputtingFindString<"u"||typeof t.findDirection<"u"||typeof t.matchesTheWholeCell<"u"||typeof t.caseSensitive<"u"||typeof t.findScope<"u"||typeof t.findBy<"u"}exports.FindReplaceModel=class extends o.Disposable{constructor(n,i,s){super();u(this,"currentMatch$",new _.BehaviorSubject(null));u(this,"replaceables$",new _.BehaviorSubject([]));u(this,"_findModels",[]);u(this,"_matchingModel",null);u(this,"_matches",[]);u(this,"_currentSearchingDisposables",null);this._state=n,this._providers=i,this._univerInstanceService=s,this.disposeWithMe(this._state.stateUpdates$.pipe(_.throttleTime(200,void 0,{leading:!0,trailing:!0})).subscribe(async r=>{const a=this._state.state;Ae(r)&&(a.findString!==""&&!a.replaceRevealed?(await this._startSearching(),this._state.changeState({findCompleted:!0})):r.replaceRevealed!==!0&&this._stopSearching())}))}get searched(){return this._findModels.length>0}dispose(){super.dispose(),this._stopSearching(),this.currentMatch$.complete(),this.replaceables$.complete(),this._state.changeState({...P(),revealed:!1})}async start(){if(!this._state.findString)return{results:[]};const n=await this._startSearching();return this._state.changeState({findCompleted:!0}),n}async _startSearching(){if(!this._state.findString)return{results:[]};const n=Array.from(this._providers),i=this._findModels=(await Promise.all(n.map(r=>r.find({findString:this._state.findString,findDirection:this._state.findDirection,findScope:this._state.findScope,findBy:this._state.findBy,replaceRevealed:this._state.replaceRevealed,caseSensitive:this._state.caseSensitive,matchesTheWholeCell:this._state.matchesTheWholeCell})))).flat();this._subscribeToModelsChanges(i);const s=this._matches=i.map(r=>r.getMatches()).flat();return this.replaceables$.next(s.filter(r=>r.replaceable)),s.length?(this._moveToInitialMatch(i),this._state.changeState({matchesCount:s.length}),{results:s}):(this._state.changeState({matchesCount:0,matchesPosition:0}),{results:[]})}_stopSearching(){var n;this._providers.forEach(i=>i.terminate()),this._findModels=[],this._matches=[],this._matchingModel=null,(n=this._currentSearchingDisposables)==null||n.dispose(),this._currentSearchingDisposables=null,this.currentMatch$.next(null),this.replaceables$.next([]),this._state.changeState({findCompleted:!1,matchesCount:0,matchesPosition:0})}_subscribeToModelsChanges(n){const i=this._currentSearchingDisposables=new o.DisposableCollection,s=_.combineLatest(n.map(r=>r.matchesUpdate$)).pipe(_.debounceTime(220)).subscribe(([...r])=>{const a=this._matches=r.flat();a.length?(this._moveToInitialMatch(this._findModels,!0),this._state.changeState({matchesCount:a.length}),this.replaceables$.next(a.filter(c=>c.replaceable))):(this._state.changeState({matchesCount:0,matchesPosition:0}),this.replaceables$.next([]))});n.forEach(r=>i.add(o.toDisposable(r.activelyChangingMatch$.subscribe(a=>{const c=this._matches.findIndex(p=>p===a);this._state.changeState({matchesPosition:c+1})})))),i.add(o.toDisposable(s))}async replace(){return this._matchingModel?this._matchingModel.replace(this._state.replaceString):!1}async replaceAll(){const n=await Promise.all(this._findModels.map(i=>i.replaceAll(this._state.replaceString))).then(i=>i.reduce((s,r)=>(s.success+=r.success,s.failure+=r.failure,s),{success:0,failure:0}));return n.failure===0&&this._stopSearching(),n}getCurrentMatch(){return this._state.matchesPosition>0?this._matches[this._state.matchesPosition-1]:null}_markMatch(n){const i=this._matches.findIndex(s=>s===n);this.currentMatch$.next(n),this._state.changeState({matchesPosition:i+1})}moveToNextMatch(){if(!this._matchingModel)return;const n=this._findModels.length===1,i=this._matchingModel.moveToNextMatch({loop:n});if(i)return this._markMatch(i),i;{const s=this._findModels.findIndex(r=>r===this._matchingModel);return this._moveToNextUnitMatch(s)}}_moveToNextUnitMatch(n){const i=this._findModels.length;for(let s=(n+1)%i;s!==n;){const r=this._findModels[s],a=r.moveToNextMatch({ignoreSelection:!0});if(a)return this._matchingModel=r,this._markMatch(a),a;s=(s+1)%i}if(this._matchingModel){const s=this._matchingModel.moveToNextMatch({ignoreSelection:!0});return s&&this._markMatch(s),s}}moveToPreviousMatch(){if(!this._matchingModel)return;const n=this._findModels.length===1,i=this._matchingModel.moveToPreviousMatch({loop:n});if(i){const s=this._matches.findIndex(r=>r===i);return this.currentMatch$.next(i),this._state.changeState({matchesPosition:s+1}),i}else{const s=this._findModels.length,r=this._findModels.findIndex(c=>c===this._matchingModel);for(let c=(r-1+s)%s;c!==r;){const p=this._findModels[c],v=p.moveToPreviousMatch({ignoreSelection:!0});if(v)return this._matchingModel=p,this._markMatch(v),v;c=(c-1)%s}const a=this._matchingModel.moveToPreviousMatch({ignoreSelection:!0});return a&&this._markMatch(a),a}}_moveToInitialMatch(n,i=!1){var a;const s=(a=this._univerInstanceService.getFocusedUnit())==null?void 0:a.getUnitId();if(!s)return-1;const r=n.findIndex(c=>c.unitId===s);if(r!==-1){this._matchingModel=n[r];const c=this._matchingModel.moveToNextMatch({stayIfOnMatch:!0,noFocus:i});if(c)return this._markMatch(c),r}return this._moveToNextUnitMatch(r),0}};exports.FindReplaceModel=X([j(2,o.IUniverInstanceService)],exports.FindReplaceModel);var D=(t=>(t.ROW="row",t.COLUMN="column",t))(D||{}),x=(t=>(t.VALUE="value",t.FORMULA="formula",t))(x||{}),T=(t=>(t.SUBUNIT="subunit",t.UNIT="unit",t))(T||{});function P(){return{caseSensitive:!1,findBy:"value",findCompleted:!1,findDirection:"row",findScope:"subunit",findString:"",inputtingFindString:"",matchesCount:0,matchesPosition:0,matchesTheWholeCell:!1,replaceRevealed:!1,replaceString:"",revealed:!0}}class ee{constructor(){u(this,"_stateUpdates$",new _.Subject);u(this,"stateUpdates$",this._stateUpdates$.asObservable());u(this,"_state$",new _.BehaviorSubject(P()));u(this,"state$",this._state$.asObservable());u(this,"_findString","");u(this,"_inputtingFindString","");u(this,"_replaceString","");u(this,"_revealed",!1);u(this,"_replaceRevealed",!1);u(this,"_matchesPosition",0);u(this,"_matchesCount",0);u(this,"_caseSensitive",!0);u(this,"_matchesTheWholeCell",!1);u(this,"_findDirection","row");u(this,"_findScope","subunit");u(this,"_findBy","value");u(this,"_findCompleted",!1)}get state(){return this._state$.getValue()}get inputtingFindString(){return this._inputtingFindString}get findString(){return this._findString}get revealed(){return this._revealed}get replaceRevealed(){return this._replaceRevealed}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get replaceString(){return this._replaceString}get caseSensitive(){return this._caseSensitive}get matchesTheWholeCell(){return this._matchesTheWholeCell}get findDirection(){return this._findDirection}get findScope(){return this._findScope}get findBy(){return this._findBy}get findCompleted(){return this._findCompleted}changeState(e){let n=!1;const i={};typeof e.findString<"u"&&e.findString!==this._findString&&(this._findString=e.findString,i.findString=this._findString,n=!0),typeof e.revealed<"u"&&e.revealed!==this._revealed&&(this._revealed=e.revealed,i.revealed=e.revealed,n=!0),typeof e.replaceRevealed<"u"&&e.replaceRevealed!==this._replaceRevealed&&(this._replaceRevealed=e.replaceRevealed,i.replaceRevealed=e.replaceRevealed,n=!0),typeof e.replaceString<"u"&&e.replaceString!==this._replaceString&&(this._replaceString=e.replaceString,i.replaceString=e.replaceString,n=!0),typeof e.matchesCount<"u"&&e.matchesCount!==this._matchesCount&&(this._matchesCount=e.matchesCount,i.matchesCount=e.matchesCount,n=!0),typeof e.matchesPosition<"u"&&e.matchesPosition!==this._matchesPosition&&(this._matchesPosition=e.matchesPosition,i.matchesPosition=e.matchesPosition,n=!0),typeof e.findBy<"u"&&e.findBy!==this._findBy&&(this._findBy=e.findBy,i.findBy=e.findBy,n=!0),typeof e.findScope<"u"&&e.findScope!==this._findScope&&(this._findScope=e.findScope,i.findScope=e.findScope,n=!0),typeof e.findDirection<"u"&&e.findDirection!==this._findDirection&&(this._findDirection=e.findDirection,i.findDirection=e.findDirection,n=!0),typeof e.caseSensitive<"u"&&e.caseSensitive!==this._caseSensitive&&(this._caseSensitive=e.caseSensitive,i.caseSensitive=e.caseSensitive,n=!0),typeof e.matchesTheWholeCell<"u"&&e.matchesTheWholeCell!==this._matchesTheWholeCell&&(this._matchesTheWholeCell=e.matchesTheWholeCell,i.matchesTheWholeCell=e.matchesTheWholeCell,n=!0),typeof e.inputtingFindString<"u"&&e.inputtingFindString!==this._inputtingFindString&&(this._inputtingFindString=e.inputtingFindString,i.inputtingFindString=e.inputtingFindString,n=!0),typeof e.findCompleted<"u"&&e.findCompleted!==this._findCompleted&&(this._findCompleted=e.findCompleted,i.findCompleted=e.findCompleted,n=!0),n&&(this._state$.next({caseSensitive:this._caseSensitive,findBy:this._findBy,findCompleted:this._findCompleted,findDirection:this._findDirection,findScope:this._findScope,findString:this._findString,inputtingFindString:this._inputtingFindString,matchesCount:this._matchesCount,matchesPosition:this._matchesPosition,matchesTheWholeCell:this._matchesTheWholeCell,replaceRevealed:this._replaceRevealed,revealed:this._revealed}),this._stateUpdates$.next(i))}}let A=class extends o.Disposable{constructor(e,n){super();u(this,"_providers",new Set);u(this,"_state",new ee);u(this,"_model");u(this,"_currentMatch$",new _.BehaviorSubject(null));u(this,"currentMatch$",this._currentMatch$.asObservable());u(this,"_replaceables$",new _.BehaviorSubject([]));u(this,"replaceables$",this._replaceables$.asObservable());u(this,"_focusSignal$",new _.Subject);u(this,"focusSignal$",this._focusSignal$.asObservable());this._injector=e,this._contextService=n}get stateUpdates$(){return this._state.stateUpdates$}get state$(){return this._state.state$}get revealed(){return this._state.revealed}get replaceRevealed(){return this._state.replaceRevealed}dispose(){super.dispose(),this._currentMatch$.next(null),this._currentMatch$.complete(),this._replaceables$.next([]),this._replaceables$.complete(),this._focusSignal$.complete()}getProviders(){return this._providers}getCurrentMatch(){var e;return(e=this._model)==null?void 0:e.getCurrentMatch()}getFindString(){return this._state.findString}changeFindString(e){this._state.changeState({findString:e})}focusFindInput(){this._focusSignal$.next()}changeInputtingFindString(e){e?this._state.changeState({inputtingFindString:e}):this._state.changeState({inputtingFindString:"",findString:""})}changeReplaceString(e){this._state.changeState({replaceString:e})}changeMatchesTheWholeCell(e){this._state.changeState({matchesTheWholeCell:e})}changeCaseSensitive(e){this._state.changeState({caseSensitive:e})}changeFindBy(e){this._state.changeState({findBy:e}),this._toggleDisplayRawFormula(e==="formula")}changeFindScope(e){this._state.changeState({findScope:e})}changeFindDirection(e){this._state.changeState({findDirection:e})}moveToNextMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToNextMatch(),this._focusSignal$.next())}moveToPreviousMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToPreviousMatch(),this._focusSignal$.next())}async replace(){return this._model?this._model.replace():!1}async replaceAll(){if(!this._model)throw new Error("[FindReplaceService] replaceAll: model is not initialized!");return this._model.replaceAll()}revealReplace(){this._state.changeState({replaceRevealed:!0,inputtingFindString:this._state.findString}),this._toggleRevealReplace(!0)}start(e=!1){if(this._providers.size===0)return!1;this._model=this._injector.createInstance(exports.FindReplaceModel,this._state,this._providers),this._model.currentMatch$.subscribe(i=>this._currentMatch$.next(i)),this._model.replaceables$.subscribe(i=>this._replaceables$.next(i));const n=P();return e&&(n.replaceRevealed=!0),this._state.changeState(n),this._toggleRevealReplace(e),!0}find(){var e;(e=this._model)==null||e.start()}terminate(){var e;(e=this._model)==null||e.dispose(),this._model=null,this._toggleDisplayRawFormula(!1),this._toggleRevealReplace(!1)}registerFindReplaceProvider(e){return this._providers.add(e),o.toDisposable(()=>this._providers.delete(e))}_toggleRevealReplace(e){this._contextService.setContextValue(Q,e)}_toggleDisplayRawFormula(e){this._contextService.setContextValue(xe.RENDER_RAW_FORMULA_KEY,e)}};A=X([j(0,o.Inject(o.Injector)),j(1,o.IContextService)],A);const w={id:"ui.command.replace-current-match",type:o.CommandType.COMMAND,handler:t=>t.get(R).replace()},we="CONFIRM_REPLACE_ALL",U={id:"ui.command.replace-all-matches",type:o.CommandType.COMMAND,handler:async t=>{const e=t.get(l.IConfirmService),n=t.get(o.LocaleService),i=t.get(l.IMessageService);if(!await e.confirm({id:we,title:{title:n.t("find-replace.replace.confirm.title")},cancelText:n.t("button.cancel"),confirmText:n.t("button.confirm")}))return!1;const r=await t.get(R).replaceAll(),{success:a,failure:c}=r;return c>0?(a===0?i.show({type:f.MessageType.Error,content:n.t("find-replace.replace.all-failure")}):i.show({type:f.MessageType.Warning,content:n.t("find-replace.replace.partial-success",`${a}`,`${c}`)}),!1):(i.show({type:f.MessageType.Success,content:n.t("find-replace.replace.all-success",`${a}`)}),!0)}},y={id:"ui.operation.open-find-dialog",type:o.CommandType.OPERATION,handler:t=>{const e=t.get(R);return e.revealed?e.focusFindInput():e.start(),!0}},E={id:"ui.operation.open-replace-dialog",type:o.CommandType.OPERATION,handler:t=>{const e=t.get(R);return e.revealed?e.replaceRevealed?e.focusFindInput():e.revealReplace():e.start(!0),!0}},k={type:o.CommandType.OPERATION,id:"ui.operation.go-to-next-match",handler:t=>(t.get(R).moveToNextMatch(),!0)},B={type:o.CommandType.OPERATION,id:"ui.operation.go-to-previous-match",handler:t=>(t.get(R).moveToPreviousMatch(),!0)},Ue="univer-find-replace-dialog-container",ke="univer-find-replace-expand-container",Be="univer-find-replace-buttons-group",We="univer-find-replace-buttons-group-right",O={findReplaceDialogContainer:Ue,findReplaceExpandContainer:ke,findReplaceButtonsGroup:Be,findReplaceButtonsGroupRight:We};function te(t){const{findCompleted:e,localeService:n,matchesCount:i,matchesPosition:s,findString:r,findReplaceService:a,onChange:c,...p}=t,S=e&&i===0?n.t("find-replace.dialog.no-result"):i===0?" ":void 0;return d.jsx(f.InputWithSlot,{autoFocus:!0,placeholder:n.t("find-replace.dialog.find-placeholder"),slot:d.jsx(f.Pager,{loop:!0,text:S,value:s,total:i,onChange:m=>{s===i&&m===1?a.moveToNextMatch():s===1&&m===i||m<s?a.moveToPreviousMatch():a.moveToNextMatch()}}),value:r,onChange:m=>c==null?void 0:c(m),...p})}function ie(t,e){const n=h.useCallback(()=>{var s;(s=document.querySelector(".univer-find-input input"))==null||s.focus()},[]),i=h.useCallback(()=>{const s=document.querySelectorAll(".univer-find-replace-dialog-container .univer-select-selection-search-input");return Array.from(s).some(r=>r===document.activeElement)},[]);return h.useImperativeHandle(e,()=>({focus:n,selectHasFocus:i})),h.useEffect(()=>{const s=t.focusSignal$.subscribe(()=>n());return()=>s.unsubscribe()},[t,n]),{focus:n,selectHasFocus:i}}const Ge=h.forwardRef(function(e,n){const i=l.useDependency(o.LocaleService),s=l.useDependency(R),r=l.useDependency(o.ICommandService),a=l.useObservable(s.state$,void 0,!0),{findCompleted:c,findString:p,matchesCount:v,matchesPosition:S}=a,m=h.useCallback(()=>{r.executeCommand(E.id)},[r]),F=h.useCallback(b=>s.changeFindString(b),[s]);return ie(s,n),d.jsxs(d.Fragment,{children:[d.jsx(te,{findCompleted:c,className:"univer-find-input",matchesCount:v,matchesPosition:S,findReplaceService:s,localeService:i,findString:p,onChange:F}),d.jsx("div",{className:O.findReplaceExpandContainer,children:d.jsx(f.Button,{type:"text",size:"small",onClick:m,children:i.t("find-replace.dialog.advanced-finding")})})]})}),Ve=h.forwardRef(function(e,n){const i=l.useDependency(R),s=l.useDependency(o.LocaleService),r=l.useDependency(o.ICommandService),a=l.useDependency(l.IMessageService),c=l.useObservable(i.currentMatch$,void 0,!0),p=l.useObservable(i.replaceables$,void 0,!0),v=l.useObservable(i.state$,void 0,!0),{matchesCount:S,matchesPosition:m,findString:F,inputtingFindString:b,replaceString:re,caseSensitive:ae,matchesTheWholeCell:oe,findDirection:ce,findScope:le,findBy:de,findCompleted:L}=v,ue=b.length===0,he=S===0||!(c!=null&&c.replaceable),pe=p.length===0,fe=h.useCallback(g=>i.changeInputtingFindString(g),[i]),ge=h.useCallback(g=>i.changeReplaceString(g),[i]),{focus:_e}=ie(i,n),me=h.useCallback(()=>{F===b?i.moveToNextMatch():(i.changeFindString(b),i.find())},[F,b,i]),ve=h.useCallback(()=>r.executeCommand(w.id),[r]),Se=h.useCallback(async()=>{await r.executeCommand(U.id),_e()},[r]),Ce=h.useCallback(g=>{i.changeFindDirection(g)},[i]),Re=h.useCallback(g=>{i.changeFindScope(g)},[i]),Me=h.useCallback(g=>{i.changeFindBy(g)},[i]),be=Ke(s),ye=qe(s),Ie=ze(s);return h.useEffect(()=>{L&&S===0&&a.show({content:s.t("find-replace.dialog.no-match"),type:f.MessageType.Warning,duration:5e3})},[L,S,a,s]),d.jsxs(d.Fragment,{children:[d.jsx(f.FormLayout,{label:s.t("find-replace.dialog.find"),children:d.jsx(te,{findCompleted:L,className:"univer-find-input",matchesCount:S,matchesPosition:m,findReplaceService:i,localeService:s,findString:b,onChange:fe})}),d.jsx(f.FormLayout,{label:s.t("find-replace.dialog.replace"),children:d.jsx(f.Input,{placeholder:s.t("find-replace.dialog.replace-placeholder"),value:re,onChange:g=>ge(g)})}),d.jsx(f.FormLayout,{label:s.t("find-replace.dialog.find-direction.title"),children:d.jsx(f.Select,{value:ce,options:ye,onChange:Ce})}),d.jsx(f.FormDualColumnLayout,{children:d.jsxs(d.Fragment,{children:[d.jsx(f.FormLayout,{label:s.t("find-replace.dialog.find-scope.title"),children:d.jsx(f.Select,{value:le,options:be,onChange:Re})}),d.jsx(f.FormLayout,{label:s.t("find-replace.dialog.find-by.title"),children:d.jsx(f.Select,{value:de,options:Ie,onChange:Me})})]})}),d.jsx(f.FormDualColumnLayout,{children:d.jsxs(d.Fragment,{children:[d.jsx(f.FormLayout,{children:d.jsx(f.Checkbox,{checked:ae,onChange:g=>{i.changeCaseSensitive(g)},children:s.t("find-replace.dialog.case-sensitive")})}),d.jsx(f.FormLayout,{children:d.jsx(f.Checkbox,{checked:oe,onChange:g=>{i.changeMatchesTheWholeCell(g)},children:s.t("find-replace.dialog.match-the-whole-cell")})})]})}),d.jsxs("div",{className:O.findReplaceButtonsGroup,children:[d.jsx(f.Button,{type:"primary",onClick:me,disabled:ue,children:s.t("find-replace.dialog.find")}),d.jsxs("span",{className:O.findReplaceButtonsGroupRight,children:[d.jsx(f.Button,{disabled:he,onClick:ve,children:s.t("find-replace.dialog.replace")}),d.jsx(f.Button,{disabled:pe,onClick:Se,children:s.t("find-replace.dialog.replace-all")})]})]})]})});function He(){const t=l.useDependency(R),e=l.useDependency(l.ILayoutService),n=l.useDependency(o.IContextService),i=l.useObservable(t.state$,void 0,!0),s=h.useRef(null);h.useEffect(()=>{let p;return s.current&&(p=e.registerContainerElement(s.current)),()=>p==null?void 0:p.dispose()},[e]);const r=h.useRef(null),a=h.useCallback(p=>n.setContextValue(J,p),[n]),c=h.useCallback(p=>n.setContextValue(Z,p),[n]);return h.useEffect(()=>{var v;const p=_.fromEvent(document,"focusin").subscribe(S=>{var m;S.target&&((m=s.current)!=null&&m.contains(S.target))?a(!0):a(!1),!r.current||!r.current.selectHasFocus()?c(!0):c(!1)});return(v=r.current)==null||v.focus(),a(!0),c(!0),()=>{p.unsubscribe(),a(!1)}},[a,c]),d.jsx("div",{className:O.findReplaceDialogContainer,ref:s,children:i.replaceRevealed?d.jsx(Ve,{ref:r}):d.jsx(Ge,{ref:r})})}function Ke(t){const e=t.getCurrentLocale();return h.useMemo(()=>[{label:t.t("find-replace.dialog.find-scope.current-sheet"),value:T.SUBUNIT},{label:t.t("find-replace.dialog.find-scope.workbook"),value:T.UNIT}],[e])}function qe(t){const e=t.getCurrentLocale();return h.useMemo(()=>[{label:t.t("find-replace.dialog.find-direction.row"),value:D.ROW},{label:t.t("find-replace.dialog.find-direction.column"),value:D.COLUMN}],[e])}function ze(t){const e=t.getCurrentLocale();return h.useMemo(()=>[{label:t.t("find-replace.dialog.find-by.value"),value:x.VALUE},{label:t.t("find-replace.dialog.find-by.formula"),value:x.FORMULA}],[e])}function I(t){return t.getContextValue(J)}function Ye(t){return t.getContextValue(Q)}function ne(t){return t.getContextValue(Z)}const N="7_find-replace-shortcuts";function W(t){return t.getContextValue(o.FOCUSING_SHEET)}function G(t){return!t.getContextValue(o.EDITOR_ACTIVATED)}const Ze={id:y.id,description:"find-replace.shortcut.open-find-dialog",binding:l.KeyCode.F|l.MetaKeys.CTRL_COMMAND,group:N,preconditions(t){return!I(t)&&W(t)&&G(t)}},Je={id:y.id,description:"find-replace.shortcut.open-find-dialog",binding:l.KeyCode.F|l.MetaKeys.CTRL_COMMAND,mac:l.KeyCode.F|l.MetaKeys.MAC_CTRL,preconditions(t){return!I(t)&&W(t)&&G(t)}},Qe={id:E.id,description:"find-replace.shortcut.open-replace-dialog",binding:l.KeyCode.H|l.MetaKeys.CTRL_COMMAND,mac:l.KeyCode.H|l.MetaKeys.MAC_CTRL,group:N,preconditions(t){return W(t)&&G(t)&&(!I(t)||!Ye(t))}},Xe={id:k.id,description:"find-replace.shortcut.go-to-next-match",binding:l.KeyCode.ENTER,group:N,priority:1e3,preconditions(t){return ne(t)&&I(t)}},et={id:B.id,description:"find-replace.shortcut.go-to-previous-match",binding:l.KeyCode.ENTER|l.MetaKeys.SHIFT,group:N,priority:1e3,preconditions(t){return ne(t)&&I(t)}};function tt(t){const e=t.get(o.IContextService);return{id:y.id,icon:"SearchIcon",tooltip:"find-replace.toolbar",type:l.MenuItemType.BUTTON,hidden$:l.getMenuHiddenObservable(t,o.UniverInstanceType.UNIVER_SHEET),disabled$:_.combineLatest([e.subscribeContextValue$(o.EDITOR_ACTIVATED),e.subscribeContextValue$(o.FOCUSING_SHEET)]).pipe(_.map(([n,i])=>n||!i))}}const it={[l.RibbonStartGroup.OTHERS]:{[y.id]:{order:2,menuItemFactory:tt}}};var nt=Object.getOwnPropertyDescriptor,st=(t,e,n,i)=>{for(var s=i>1?void 0:i?nt(e,n):e,r=t.length-1,a;r>=0;r--)(a=t[r])&&(s=a(s)||s);return s},M=(t,e)=>(n,i)=>e(n,i,t);const H="DESKTOP_FIND_REPLACE_DIALOG",se=350,rt=20,at=-90;exports.FindReplaceController=class extends o.RxDisposable{constructor(n,i,s,r,a,c,p,v,S,m){super();u(this,"_closingListenerDisposable");this._univerInstanceService=n,this._menuManagerService=i,this._shortcutService=s,this._commandService=r,this._findReplaceService=a,this._dialogService=c,this._layoutService=p,this._localeService=v,this._componentManager=S,this._injector=m,this._initCommands(),this._initUI(),this._initShortcuts()}dispose(){var n;super.dispose(),(n=this._closingListenerDisposable)==null||n.dispose(),this._closingListenerDisposable=null}_initCommands(){[y,E,k,B,U,w].forEach(n=>{this.disposeWithMe(this._commandService.registerCommand(n))})}_initShortcuts(){[Qe,Ze,Je,et,Xe].forEach(n=>this.disposeWithMe(this._shortcutService.registerShortcut(n)))}_initUI(){this.disposeWithMe(this._componentManager.register("FindReplaceDialog",He)),this.disposeWithMe(this._componentManager.register("SearchIcon",Y)),this._menuManagerService.mergeMenu(it),this._findReplaceService.stateUpdates$.pipe(_.takeUntil(this.dispose$)).subscribe(n=>{n.revealed===!0&&this._openPanel()})}_openPanel(){this._dialogService.open({id:H,draggable:!0,width:se,title:{title:this._localeService.t("find-replace.dialog.title")},children:{label:"FindReplaceDialog"},destroyOnClose:!0,defaultPosition:ot(),preservePositionOnDestroy:!0,onClose:()=>this.closePanel()}),this._closingListenerDisposable=o.toDisposable(this._univerInstanceService.focused$.pipe(_.takeUntil(this.dispose$)).subscribe(n=>{(!n||!this._univerInstanceService.getUniverSheetInstance(n))&&this.closePanel()}))}closePanel(){this._closingListenerDisposable&&(this._closingListenerDisposable.dispose(),this._closingListenerDisposable=null,this._dialogService.close(H),this._findReplaceService.terminate(),queueMicrotask(()=>this._layoutService.focus()))}};exports.FindReplaceController=st([M(0,o.IUniverInstanceService),M(1,l.IMenuManagerService),M(2,l.IShortcutService),M(3,o.ICommandService),M(4,R),M(5,l.IDialogService),M(6,l.ILayoutService),M(7,o.Inject(o.LocaleService)),M(8,o.Inject(l.ComponentManager)),M(9,o.Inject(o.Injector))],exports.FindReplaceController);function ot(){const{innerWidth:t}=window;return{x:(t-se)/2-rt,y:at}}var ct=Object.getOwnPropertyDescriptor,lt=(t,e,n,i)=>{for(var s=i>1?void 0:i?ct(e,n):e,r=t.length-1,a;r>=0;r--)(a=t[r])&&(s=a(s)||s);return s},K=(t,e)=>(n,i)=>e(n,i,t);const dt="UNIVER_FIND_REPLACE_PLUGIN";var $;exports.UniverFindReplacePlugin=($=class extends o.Plugin{constructor(e=V,n,i){super(),this._config=e,this._injector=n,this._configService=i;const{...s}=o.merge({},V,this._config);this._configService.setConfig(Te,s)}onStarting(){[[exports.FindReplaceController],[R,{useClass:A}]].forEach(e=>this._injector.add(e))}onRendered(){this._injector.get(exports.FindReplaceController)}},u($,"pluginName",dt),$);exports.UniverFindReplacePlugin=lt([K(1,o.Inject(o.Injector)),K(2,o.IConfigService)],exports.UniverFindReplacePlugin);exports.FindBy=x;exports.FindDirection=D;exports.FindModel=je;exports.FindReplaceState=ee;exports.FindScope=T;exports.GoToNextMatchOperation=k;exports.GoToPreviousMatchOperation=B;exports.IFindReplaceService=R;exports.OpenFindDialogOperation=y;exports.OpenReplaceDialogOperation=E;exports.ReplaceAllMatchesCommand=U;exports.ReplaceCurrentMatchCommand=w;exports.createInitFindReplaceState=P;
1
+ "use strict";var Fe=Object.defineProperty;var xe=(t,e,n)=>e in t?Fe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var u=(t,e,n)=>xe(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),l=require("@univerjs/ui"),_=require("rxjs"),f=require("@univerjs/design"),De=require("@univerjs/engine-render"),d=require("react/jsx-runtime"),h=require("react"),Te="find-replace.config",V={};var C=function(){return C=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++){e=arguments[n];for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s])}return t},C.apply(this,arguments)},Oe=function(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,i=Object.getOwnPropertySymbols(t);s<i.length;s++)e.indexOf(i[s])<0&&Object.prototype.propertyIsEnumerable.call(t,i[s])&&(n[i[s]]=t[i[s]]);return n},q=h.forwardRef(function(t,e){var n=t.icon,i=t.id,s=t.className,r=t.extend,a=Oe(t,["icon","id","className","extend"]),c="univerjs-icon univerjs-icon-".concat(i," ").concat(s||"").trim(),p=h.useRef("_".concat(Ne()));return z(n,"".concat(i),{defIds:n.defIds,idSuffix:p.current},C({ref:e,className:c},a),r)});function z(t,e,n,i,s){return h.createElement(t.tag,C(C({key:e},Pe(t,n,s)),i),(Ee(t,n).children||[]).map(function(r,a){return z(r,"".concat(e,"-").concat(t.tag,"-").concat(a),n,void 0,s)}))}function Pe(t,e,n){var i=C({},t.attrs);n!=null&&n.colorChannel1&&i.fill==="colorChannel1"&&(i.fill=n.colorChannel1),t.tag==="mask"&&i.id&&(i.id=i.id+e.idSuffix),Object.entries(i).forEach(function(r){var a=r[0],c=r[1];a==="mask"&&typeof c=="string"&&(i[a]=c.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))});var s=e.defIds;return!s||s.length===0||(t.tag==="use"&&i["xlink:href"]&&(i["xlink:href"]=i["xlink:href"]+e.idSuffix),Object.entries(i).forEach(function(r){var a=r[0],c=r[1];typeof c=="string"&&(i[a]=c.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),i}function Ee(t,e){var n,i=e.defIds;return!i||i.length===0?t:t.tag==="defs"&&(!((n=t.children)===null||n===void 0)&&n.length)?C(C({},t),{children:t.children.map(function(s){return typeof s.attrs.id=="string"&&i&&i.indexOf(s.attrs.id)>-1?C(C({},s),{attrs:C(C({},s.attrs),{id:s.attrs.id+e.idSuffix})}):s})}):t}function Ne(){return Math.random().toString(36).substring(2,8)}q.displayName="UniverIcon";var Le={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M7.71899 1.36938C4.37604 1.36938 1.66602 4.07941 1.66602 7.42236C1.66602 10.7653 4.37604 13.4753 7.71899 13.4753C9.16744 13.4753 10.4971 12.9666 11.5389 12.118L13.6598 14.4109C13.8848 14.6542 14.2644 14.669 14.5077 14.444C14.7509 14.219 14.7657 13.8393 14.5407 13.5961L12.3906 11.2716C13.2536 10.2254 13.772 8.88442 13.772 7.42236C13.772 4.07941 11.0619 1.36938 7.71899 1.36938ZM2.86602 7.42236C2.86602 4.74215 5.03878 2.56938 7.71899 2.56938C10.3992 2.56938 12.572 4.74215 12.572 7.42236C12.572 10.1026 10.3992 12.2753 7.71899 12.2753C5.03878 12.2753 2.86602 10.1026 2.86602 7.42236Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Y=h.forwardRef(function(t,e){return h.createElement(q,Object.assign({},t,{id:"search-single",ref:e,icon:Le}))});Y.displayName="SearchSingle";const Z="FIND_REPLACE_INPUT_FOCUS",J="FIND_REPLACE_DIALOG_FOCUS",Q="FIND_REPLACE_REPLACE_REVEALED";var $e=Object.getOwnPropertyDescriptor,X=(t,e,n,i)=>{for(var s=i>1?void 0:i?$e(e,n):e,r=t.length-1,a;r>=0;r--)(a=t[r])&&(s=a(s)||s);return s},j=(t,e)=>(n,i)=>e(n,i,t);class je extends o.Disposable{}const R=o.createIdentifier("find-replace.service");function Ae(t){return typeof t.findString<"u"||typeof t.inputtingFindString<"u"||typeof t.findDirection<"u"||typeof t.matchesTheWholeCell<"u"||typeof t.caseSensitive<"u"||typeof t.findScope<"u"||typeof t.findBy<"u"}exports.FindReplaceModel=class extends o.Disposable{constructor(n,i,s){super();u(this,"currentMatch$",new _.BehaviorSubject(null));u(this,"replaceables$",new _.BehaviorSubject([]));u(this,"_findModels",[]);u(this,"_matchingModel",null);u(this,"_matches",[]);u(this,"_currentSearchingDisposables",null);this._state=n,this._providers=i,this._univerInstanceService=s,this.disposeWithMe(this._state.stateUpdates$.pipe(_.throttleTime(200,void 0,{leading:!0,trailing:!0})).subscribe(async r=>{const a=this._state.state;Ae(r)&&(a.findString!==""&&!a.replaceRevealed?(await this._startSearching(),this._state.changeState({findCompleted:!0})):r.replaceRevealed!==!0&&this._stopSearching())}))}get searched(){return this._findModels.length>0}dispose(){super.dispose(),this._stopSearching(),this.currentMatch$.complete(),this.replaceables$.complete(),this._state.changeState({...P(),revealed:!1})}async start(){if(!this._state.findString)return{results:[]};const n=await this._startSearching();return this._state.changeState({findCompleted:!0}),n}async _startSearching(){if(!this._state.findString)return{results:[]};const n=Array.from(this._providers),i=this._findModels=(await Promise.all(n.map(r=>r.find({findString:this._state.findString,findDirection:this._state.findDirection,findScope:this._state.findScope,findBy:this._state.findBy,replaceRevealed:this._state.replaceRevealed,caseSensitive:this._state.caseSensitive,matchesTheWholeCell:this._state.matchesTheWholeCell})))).flat();this._subscribeToModelsChanges(i);const s=this._matches=i.map(r=>r.getMatches()).flat();return this.replaceables$.next(s.filter(r=>r.replaceable)),s.length?(this._moveToInitialMatch(i),this._state.changeState({matchesCount:s.length}),{results:s}):(this._state.changeState({matchesCount:0,matchesPosition:0}),{results:[]})}_stopSearching(){var n;this._providers.forEach(i=>i.terminate()),this._findModels=[],this._matches=[],this._matchingModel=null,(n=this._currentSearchingDisposables)==null||n.dispose(),this._currentSearchingDisposables=null,this.currentMatch$.next(null),this.replaceables$.next([]),this._state.changeState({findCompleted:!1,matchesCount:0,matchesPosition:0})}_subscribeToModelsChanges(n){const i=this._currentSearchingDisposables=new o.DisposableCollection,s=_.combineLatest(n.map(r=>r.matchesUpdate$)).pipe(_.debounceTime(220)).subscribe(([...r])=>{const a=this._matches=r.flat();a.length?(this._moveToInitialMatch(this._findModels,!0),this._state.changeState({matchesCount:a.length}),this.replaceables$.next(a.filter(c=>c.replaceable))):(this._state.changeState({matchesCount:0,matchesPosition:0}),this.replaceables$.next([]))});n.forEach(r=>i.add(o.toDisposable(r.activelyChangingMatch$.subscribe(a=>{const c=this._matches.findIndex(p=>p===a);this._state.changeState({matchesPosition:c+1})})))),i.add(o.toDisposable(s))}async replace(){return this._matchingModel?this._matchingModel.replace(this._state.replaceString):!1}async replaceAll(){const n=await Promise.all(this._findModels.map(i=>i.replaceAll(this._state.replaceString))).then(i=>i.reduce((s,r)=>(s.success+=r.success,s.failure+=r.failure,s),{success:0,failure:0}));return n.failure===0&&this._stopSearching(),n}getCurrentMatch(){return this._state.matchesPosition>0?this._matches[this._state.matchesPosition-1]:null}_markMatch(n){const i=this._matches.findIndex(s=>s===n);this.currentMatch$.next(n),this._state.changeState({matchesPosition:i+1})}moveToNextMatch(){if(!this._matchingModel)return;const n=this._findModels.length===1,i=this._matchingModel.moveToNextMatch({loop:n});if(i)return this._markMatch(i),i;{const s=this._findModels.findIndex(r=>r===this._matchingModel);return this._moveToNextUnitMatch(s)}}_moveToNextUnitMatch(n){const i=this._findModels.length;for(let s=(n+1)%i;s!==n;){const r=this._findModels[s],a=r.moveToNextMatch({ignoreSelection:!0});if(a)return this._matchingModel=r,this._markMatch(a),a;s=(s+1)%i}if(this._matchingModel){const s=this._matchingModel.moveToNextMatch({ignoreSelection:!0});return s&&this._markMatch(s),s}}moveToPreviousMatch(){if(!this._matchingModel)return;const n=this._findModels.length===1,i=this._matchingModel.moveToPreviousMatch({loop:n});if(i){const s=this._matches.findIndex(r=>r===i);return this.currentMatch$.next(i),this._state.changeState({matchesPosition:s+1}),i}else{const s=this._findModels.length,r=this._findModels.findIndex(c=>c===this._matchingModel);for(let c=(r-1+s)%s;c!==r;){const p=this._findModels[c],v=p.moveToPreviousMatch({ignoreSelection:!0});if(v)return this._matchingModel=p,this._markMatch(v),v;c=(c-1)%s}const a=this._matchingModel.moveToPreviousMatch({ignoreSelection:!0});return a&&this._markMatch(a),a}}_moveToInitialMatch(n,i=!1){var a;const s=(a=this._univerInstanceService.getFocusedUnit())==null?void 0:a.getUnitId();if(!s)return-1;const r=n.findIndex(c=>c.unitId===s);if(r!==-1){this._matchingModel=n[r];const c=this._matchingModel.moveToNextMatch({stayIfOnMatch:!0,noFocus:i});if(c)return this._markMatch(c),r}return this._moveToNextUnitMatch(r),0}};exports.FindReplaceModel=X([j(2,o.IUniverInstanceService)],exports.FindReplaceModel);var x=(t=>(t.ROW="row",t.COLUMN="column",t))(x||{}),D=(t=>(t.VALUE="value",t.FORMULA="formula",t))(D||{}),T=(t=>(t.SUBUNIT="subunit",t.UNIT="unit",t))(T||{});function P(){return{caseSensitive:!1,findBy:"value",findCompleted:!1,findDirection:"row",findScope:"subunit",findString:"",inputtingFindString:"",matchesCount:0,matchesPosition:0,matchesTheWholeCell:!1,replaceRevealed:!1,replaceString:"",revealed:!0}}class ee{constructor(){u(this,"_stateUpdates$",new _.Subject);u(this,"stateUpdates$",this._stateUpdates$.asObservable());u(this,"_state$",new _.BehaviorSubject(P()));u(this,"state$",this._state$.asObservable());u(this,"_findString","");u(this,"_inputtingFindString","");u(this,"_replaceString","");u(this,"_revealed",!1);u(this,"_replaceRevealed",!1);u(this,"_matchesPosition",0);u(this,"_matchesCount",0);u(this,"_caseSensitive",!0);u(this,"_matchesTheWholeCell",!1);u(this,"_findDirection","row");u(this,"_findScope","subunit");u(this,"_findBy","value");u(this,"_findCompleted",!1)}get state(){return this._state$.getValue()}get inputtingFindString(){return this._inputtingFindString}get findString(){return this._findString}get revealed(){return this._revealed}get replaceRevealed(){return this._replaceRevealed}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get replaceString(){return this._replaceString}get caseSensitive(){return this._caseSensitive}get matchesTheWholeCell(){return this._matchesTheWholeCell}get findDirection(){return this._findDirection}get findScope(){return this._findScope}get findBy(){return this._findBy}get findCompleted(){return this._findCompleted}changeState(e){let n=!1;const i={};typeof e.findString<"u"&&e.findString!==this._findString&&(this._findString=e.findString,i.findString=this._findString,n=!0),typeof e.revealed<"u"&&e.revealed!==this._revealed&&(this._revealed=e.revealed,i.revealed=e.revealed,n=!0),typeof e.replaceRevealed<"u"&&e.replaceRevealed!==this._replaceRevealed&&(this._replaceRevealed=e.replaceRevealed,i.replaceRevealed=e.replaceRevealed,n=!0),typeof e.replaceString<"u"&&e.replaceString!==this._replaceString&&(this._replaceString=e.replaceString,i.replaceString=e.replaceString,n=!0),typeof e.matchesCount<"u"&&e.matchesCount!==this._matchesCount&&(this._matchesCount=e.matchesCount,i.matchesCount=e.matchesCount,n=!0),typeof e.matchesPosition<"u"&&e.matchesPosition!==this._matchesPosition&&(this._matchesPosition=e.matchesPosition,i.matchesPosition=e.matchesPosition,n=!0),typeof e.findBy<"u"&&e.findBy!==this._findBy&&(this._findBy=e.findBy,i.findBy=e.findBy,n=!0),typeof e.findScope<"u"&&e.findScope!==this._findScope&&(this._findScope=e.findScope,i.findScope=e.findScope,n=!0),typeof e.findDirection<"u"&&e.findDirection!==this._findDirection&&(this._findDirection=e.findDirection,i.findDirection=e.findDirection,n=!0),typeof e.caseSensitive<"u"&&e.caseSensitive!==this._caseSensitive&&(this._caseSensitive=e.caseSensitive,i.caseSensitive=e.caseSensitive,n=!0),typeof e.matchesTheWholeCell<"u"&&e.matchesTheWholeCell!==this._matchesTheWholeCell&&(this._matchesTheWholeCell=e.matchesTheWholeCell,i.matchesTheWholeCell=e.matchesTheWholeCell,n=!0),typeof e.inputtingFindString<"u"&&e.inputtingFindString!==this._inputtingFindString&&(this._inputtingFindString=e.inputtingFindString,i.inputtingFindString=e.inputtingFindString,n=!0),typeof e.findCompleted<"u"&&e.findCompleted!==this._findCompleted&&(this._findCompleted=e.findCompleted,i.findCompleted=e.findCompleted,n=!0),n&&(this._state$.next({caseSensitive:this._caseSensitive,findBy:this._findBy,findCompleted:this._findCompleted,findDirection:this._findDirection,findScope:this._findScope,findString:this._findString,inputtingFindString:this._inputtingFindString,matchesCount:this._matchesCount,matchesPosition:this._matchesPosition,matchesTheWholeCell:this._matchesTheWholeCell,replaceRevealed:this._replaceRevealed,revealed:this._revealed}),this._stateUpdates$.next(i))}}let A=class extends o.Disposable{constructor(e,n){super();u(this,"_providers",new Set);u(this,"_state",new ee);u(this,"_model");u(this,"_currentMatch$",new _.BehaviorSubject(null));u(this,"currentMatch$",this._currentMatch$.asObservable());u(this,"_replaceables$",new _.BehaviorSubject([]));u(this,"replaceables$",this._replaceables$.asObservable());u(this,"_focusSignal$",new _.Subject);u(this,"focusSignal$",this._focusSignal$.asObservable());this._injector=e,this._contextService=n}get stateUpdates$(){return this._state.stateUpdates$}get state$(){return this._state.state$}get revealed(){return this._state.revealed}get replaceRevealed(){return this._state.replaceRevealed}dispose(){super.dispose(),this._currentMatch$.next(null),this._currentMatch$.complete(),this._replaceables$.next([]),this._replaceables$.complete(),this._focusSignal$.complete()}getProviders(){return this._providers}getCurrentMatch(){var e;return(e=this._model)==null?void 0:e.getCurrentMatch()}getFindString(){return this._state.findString}changeFindString(e){this._state.changeState({findString:e})}focusFindInput(){this._focusSignal$.next()}changeInputtingFindString(e){e?this._state.changeState({inputtingFindString:e}):this._state.changeState({inputtingFindString:"",findString:""})}changeReplaceString(e){this._state.changeState({replaceString:e})}changeMatchesTheWholeCell(e){this._state.changeState({matchesTheWholeCell:e})}changeCaseSensitive(e){this._state.changeState({caseSensitive:e})}changeFindBy(e){this._state.changeState({findBy:e}),this._toggleDisplayRawFormula(e==="formula")}changeFindScope(e){this._state.changeState({findScope:e})}changeFindDirection(e){this._state.changeState({findDirection:e})}moveToNextMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToNextMatch(),this._focusSignal$.next())}moveToPreviousMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToPreviousMatch(),this._focusSignal$.next())}async replace(){return this._model?this._model.replace():!1}async replaceAll(){if(!this._model)throw new Error("[FindReplaceService] replaceAll: model is not initialized!");return this._model.replaceAll()}revealReplace(){this._state.changeState({replaceRevealed:!0,inputtingFindString:this._state.findString}),this._toggleRevealReplace(!0)}start(e=!1){if(this._providers.size===0)return!1;this._model=this._injector.createInstance(exports.FindReplaceModel,this._state,this._providers),this._model.currentMatch$.subscribe(i=>this._currentMatch$.next(i)),this._model.replaceables$.subscribe(i=>this._replaceables$.next(i));const n=P();return e&&(n.replaceRevealed=!0),this._state.changeState(n),this._toggleRevealReplace(e),!0}find(){var e;(e=this._model)==null||e.start()}terminate(){var e;(e=this._model)==null||e.dispose(),this._model=null,this._toggleDisplayRawFormula(!1),this._toggleRevealReplace(!1)}registerFindReplaceProvider(e){return this._providers.add(e),o.toDisposable(()=>this._providers.delete(e))}_toggleRevealReplace(e){this._contextService.setContextValue(Q,e)}_toggleDisplayRawFormula(e){this._contextService.setContextValue(De.RENDER_RAW_FORMULA_KEY,e)}};A=X([j(0,o.Inject(o.Injector)),j(1,o.IContextService)],A);const w={id:"ui.command.replace-current-match",type:o.CommandType.COMMAND,handler:t=>t.get(R).replace()},we="CONFIRM_REPLACE_ALL",U={id:"ui.command.replace-all-matches",type:o.CommandType.COMMAND,handler:async t=>{const e=t.get(l.IConfirmService),n=t.get(o.LocaleService),i=t.get(l.IMessageService);if(!await e.confirm({id:we,title:{title:n.t("find-replace.replace.confirm.title")},cancelText:n.t("button.cancel"),confirmText:n.t("button.confirm")}))return!1;const r=await t.get(R).replaceAll(),{success:a,failure:c}=r;return c>0?(a===0?i.show({type:f.MessageType.Error,content:n.t("find-replace.replace.all-failure")}):i.show({type:f.MessageType.Warning,content:n.t("find-replace.replace.partial-success",`${a}`,`${c}`)}),!1):(i.show({type:f.MessageType.Success,content:n.t("find-replace.replace.all-success",`${a}`)}),!0)}},y={id:"ui.operation.open-find-dialog",type:o.CommandType.OPERATION,handler:t=>{const e=t.get(R);return e.revealed?e.focusFindInput():e.start(),!0}},E={id:"ui.operation.open-replace-dialog",type:o.CommandType.OPERATION,handler:t=>{const e=t.get(R);return e.revealed?e.replaceRevealed?e.focusFindInput():e.revealReplace():e.start(!0),!0}},B={type:o.CommandType.OPERATION,id:"ui.operation.go-to-next-match",handler:t=>(t.get(R).moveToNextMatch(),!0)},k={type:o.CommandType.OPERATION,id:"ui.operation.go-to-previous-match",handler:t=>(t.get(R).moveToPreviousMatch(),!0)},Ue="univer-find-replace-dialog-container",Be="univer-find-replace-expand-container",ke="univer-find-replace-buttons-group",We="univer-find-replace-buttons-group-right",O={findReplaceDialogContainer:Ue,findReplaceExpandContainer:Be,findReplaceButtonsGroup:ke,findReplaceButtonsGroupRight:We};function te(t){const{findCompleted:e,localeService:n,matchesCount:i,matchesPosition:s,findString:r,findReplaceService:a,onChange:c,...p}=t,S=e&&i===0?n.t("find-replace.dialog.no-result"):i===0?" ":void 0;return d.jsx(f.InputWithSlot,{autoFocus:!0,placeholder:n.t("find-replace.dialog.find-placeholder"),slot:d.jsx(f.Pager,{loop:!0,text:S,value:s,total:i,onChange:m=>{s===i&&m===1?a.moveToNextMatch():s===1&&m===i||m<s?a.moveToPreviousMatch():a.moveToNextMatch()}}),value:r,onChange:m=>c==null?void 0:c(m),...p})}function ie(t,e){const n=h.useCallback(()=>{var s;(s=document.querySelector(".univer-find-input input"))==null||s.focus()},[]),i=h.useCallback(()=>{const s=document.querySelectorAll(".univer-find-replace-dialog-container .univer-select-selection-search-input");return Array.from(s).some(r=>r===document.activeElement)},[]);return h.useImperativeHandle(e,()=>({focus:n,selectHasFocus:i})),h.useEffect(()=>{const s=t.focusSignal$.subscribe(()=>n());return()=>s.unsubscribe()},[t,n]),{focus:n,selectHasFocus:i}}const Ge=h.forwardRef(function(e,n){const i=l.useDependency(o.LocaleService),s=l.useDependency(R),r=l.useDependency(o.ICommandService),a=l.useObservable(s.state$,void 0,!0),{findCompleted:c,findString:p,matchesCount:v,matchesPosition:S}=a,m=h.useCallback(()=>{r.executeCommand(E.id)},[r]),F=h.useCallback(M=>s.changeFindString(M),[s]);return ie(s,n),d.jsxs(d.Fragment,{children:[d.jsx(te,{findCompleted:c,className:"univer-find-input",matchesCount:v,matchesPosition:S,findReplaceService:s,localeService:i,findString:p,onChange:F}),d.jsx("div",{className:O.findReplaceExpandContainer,children:d.jsx(f.Button,{type:"text",size:"small",onClick:m,children:i.t("find-replace.dialog.advanced-finding")})})]})}),Ve=h.forwardRef(function(e,n){const i=l.useDependency(R),s=l.useDependency(o.LocaleService),r=l.useDependency(o.ICommandService),a=l.useDependency(l.IMessageService),c=l.useObservable(i.currentMatch$,void 0,!0),p=l.useObservable(i.replaceables$,void 0,!0),v=l.useObservable(i.state$,void 0,!0),{matchesCount:S,matchesPosition:m,findString:F,inputtingFindString:M,replaceString:re,caseSensitive:ae,matchesTheWholeCell:oe,findDirection:ce,findScope:le,findBy:de,findCompleted:L}=v,ue=M.length===0,he=S===0||!(c!=null&&c.replaceable),pe=p.length===0,fe=h.useCallback(g=>i.changeInputtingFindString(g),[i]),ge=h.useCallback(g=>i.changeReplaceString(g),[i]),{focus:_e}=ie(i,n),me=h.useCallback(()=>{F===M?i.moveToNextMatch():(i.changeFindString(M),i.find())},[F,M,i]),ve=h.useCallback(()=>r.executeCommand(w.id),[r]),Se=h.useCallback(async()=>{await r.executeCommand(U.id),_e()},[r]),Ce=h.useCallback(g=>{i.changeFindDirection(g)},[i]),Re=h.useCallback(g=>{i.changeFindScope(g)},[i]),be=h.useCallback(g=>{i.changeFindBy(g)},[i]),Me=He(s),ye=qe(s),Ie=ze(s);return h.useEffect(()=>{L&&S===0&&a.show({content:s.t("find-replace.dialog.no-match"),type:f.MessageType.Warning,duration:5e3})},[L,S,a,s]),d.jsxs(d.Fragment,{children:[d.jsx(f.FormLayout,{label:s.t("find-replace.dialog.find"),children:d.jsx(te,{findCompleted:L,className:"univer-find-input",matchesCount:S,matchesPosition:m,findReplaceService:i,localeService:s,findString:M,onChange:fe})}),d.jsx(f.FormLayout,{label:s.t("find-replace.dialog.replace"),children:d.jsx(f.Input,{placeholder:s.t("find-replace.dialog.replace-placeholder"),value:re,onChange:g=>ge(g)})}),d.jsx(f.FormLayout,{label:s.t("find-replace.dialog.find-direction.title"),children:d.jsx(f.Select,{value:ce,options:ye,onChange:Ce})}),d.jsx(f.FormDualColumnLayout,{children:d.jsxs(d.Fragment,{children:[d.jsx(f.FormLayout,{label:s.t("find-replace.dialog.find-scope.title"),children:d.jsx(f.Select,{value:le,options:Me,onChange:Re})}),d.jsx(f.FormLayout,{label:s.t("find-replace.dialog.find-by.title"),children:d.jsx(f.Select,{value:de,options:Ie,onChange:be})})]})}),d.jsx(f.FormDualColumnLayout,{children:d.jsxs(d.Fragment,{children:[d.jsx(f.FormLayout,{children:d.jsx(f.Checkbox,{checked:ae,onChange:g=>{i.changeCaseSensitive(g)},children:s.t("find-replace.dialog.case-sensitive")})}),d.jsx(f.FormLayout,{children:d.jsx(f.Checkbox,{checked:oe,onChange:g=>{i.changeMatchesTheWholeCell(g)},children:s.t("find-replace.dialog.match-the-whole-cell")})})]})}),d.jsxs("div",{className:O.findReplaceButtonsGroup,children:[d.jsx(f.Button,{type:"primary",onClick:me,disabled:ue,children:s.t("find-replace.dialog.find")}),d.jsxs("span",{className:O.findReplaceButtonsGroupRight,children:[d.jsx(f.Button,{disabled:he,onClick:ve,children:s.t("find-replace.dialog.replace")}),d.jsx(f.Button,{disabled:pe,onClick:Se,children:s.t("find-replace.dialog.replace-all")})]})]})]})});function Ke(){const t=l.useDependency(R),e=l.useDependency(l.ILayoutService),n=l.useDependency(o.IContextService),i=l.useObservable(t.state$,void 0,!0),s=h.useRef(null);h.useEffect(()=>{let p;return s.current&&(p=e.registerContainerElement(s.current)),()=>p==null?void 0:p.dispose()},[e]);const r=h.useRef(null),a=h.useCallback(p=>n.setContextValue(J,p),[n]),c=h.useCallback(p=>n.setContextValue(Z,p),[n]);return h.useEffect(()=>{var v;const p=_.fromEvent(document,"focusin").subscribe(S=>{var m;S.target&&((m=s.current)!=null&&m.contains(S.target))?a(!0):a(!1),!r.current||!r.current.selectHasFocus()?c(!0):c(!1)});return(v=r.current)==null||v.focus(),a(!0),c(!0),()=>{p.unsubscribe(),a(!1)}},[a,c]),d.jsx("div",{className:O.findReplaceDialogContainer,ref:s,children:i.replaceRevealed?d.jsx(Ve,{ref:r}):d.jsx(Ge,{ref:r})})}function He(t){const e=t.getCurrentLocale();return h.useMemo(()=>[{label:t.t("find-replace.dialog.find-scope.current-sheet"),value:T.SUBUNIT},{label:t.t("find-replace.dialog.find-scope.workbook"),value:T.UNIT}],[e])}function qe(t){const e=t.getCurrentLocale();return h.useMemo(()=>[{label:t.t("find-replace.dialog.find-direction.row"),value:x.ROW},{label:t.t("find-replace.dialog.find-direction.column"),value:x.COLUMN}],[e])}function ze(t){const e=t.getCurrentLocale();return h.useMemo(()=>[{label:t.t("find-replace.dialog.find-by.value"),value:D.VALUE},{label:t.t("find-replace.dialog.find-by.formula"),value:D.FORMULA}],[e])}function I(t){return t.getContextValue(J)}function Ye(t){return t.getContextValue(Q)}function ne(t){return t.getContextValue(Z)}const N="7_find-replace-shortcuts";function W(t){return t.getContextValue(o.FOCUSING_SHEET)}function G(t){return!t.getContextValue(o.EDITOR_ACTIVATED)}const Ze={id:y.id,description:"find-replace.shortcut.open-find-dialog",binding:l.KeyCode.F|l.MetaKeys.CTRL_COMMAND,group:N,preconditions(t){return!I(t)&&W(t)&&G(t)}},Je={id:y.id,description:"find-replace.shortcut.open-find-dialog",binding:l.KeyCode.F|l.MetaKeys.CTRL_COMMAND,mac:l.KeyCode.F|l.MetaKeys.MAC_CTRL,preconditions(t){return!I(t)&&W(t)&&G(t)}},Qe={id:E.id,description:"find-replace.shortcut.open-replace-dialog",binding:l.KeyCode.H|l.MetaKeys.CTRL_COMMAND,mac:l.KeyCode.H|l.MetaKeys.MAC_CTRL,group:N,preconditions(t){return W(t)&&G(t)&&(!I(t)||!Ye(t))}},Xe={id:B.id,description:"find-replace.shortcut.go-to-next-match",binding:l.KeyCode.ENTER,group:N,priority:1e3,preconditions(t){return ne(t)&&I(t)}},et={id:k.id,description:"find-replace.shortcut.go-to-previous-match",binding:l.KeyCode.ENTER|l.MetaKeys.SHIFT,group:N,priority:1e3,preconditions(t){return ne(t)&&I(t)}};function tt(t){const e=t.get(o.IContextService);return{id:y.id,icon:"SearchIcon",tooltip:"find-replace.toolbar",type:l.MenuItemType.BUTTON,hidden$:l.getMenuHiddenObservable(t,o.UniverInstanceType.UNIVER_SHEET),disabled$:_.combineLatest([e.subscribeContextValue$(o.EDITOR_ACTIVATED),e.subscribeContextValue$(o.FOCUSING_SHEET)]).pipe(_.map(([n,i])=>n||!i))}}const it={[l.RibbonStartGroup.OTHERS]:{[y.id]:{order:2,menuItemFactory:tt}}};var nt=Object.getOwnPropertyDescriptor,st=(t,e,n,i)=>{for(var s=i>1?void 0:i?nt(e,n):e,r=t.length-1,a;r>=0;r--)(a=t[r])&&(s=a(s)||s);return s},b=(t,e)=>(n,i)=>e(n,i,t);const K="DESKTOP_FIND_REPLACE_DIALOG",se=350,rt=20,at=-90;exports.FindReplaceController=class extends o.RxDisposable{constructor(n,i,s,r,a,c,p,v,S,m){super();u(this,"_closingListenerDisposable");this._univerInstanceService=n,this._menuManagerService=i,this._shortcutService=s,this._commandService=r,this._findReplaceService=a,this._dialogService=c,this._layoutService=p,this._localeService=v,this._componentManager=S,this._injector=m,this._initCommands(),this._initUI(),this._initShortcuts()}dispose(){var n;super.dispose(),(n=this._closingListenerDisposable)==null||n.dispose(),this._closingListenerDisposable=null}_initCommands(){[y,E,B,k,U,w].forEach(n=>{this.disposeWithMe(this._commandService.registerCommand(n))})}_initShortcuts(){[Qe,Ze,Je,et,Xe].forEach(n=>this.disposeWithMe(this._shortcutService.registerShortcut(n)))}_initUI(){this.disposeWithMe(this._componentManager.register("FindReplaceDialog",Ke)),this.disposeWithMe(this._componentManager.register("SearchIcon",Y)),this._menuManagerService.mergeMenu(it),this._findReplaceService.stateUpdates$.pipe(_.takeUntil(this.dispose$)).subscribe(n=>{n.revealed===!0&&this._openPanel()})}_openPanel(){this._dialogService.open({id:K,draggable:!0,width:se,title:{title:this._localeService.t("find-replace.dialog.title")},children:{label:"FindReplaceDialog"},destroyOnClose:!0,defaultPosition:ot(),preservePositionOnDestroy:!0,onClose:()=>this.closePanel()}),this._closingListenerDisposable=o.toDisposable(this._univerInstanceService.focused$.pipe(_.takeUntil(this.dispose$)).subscribe(n=>{(!n||!this._univerInstanceService.getUniverSheetInstance(n))&&this.closePanel()}))}closePanel(){this._closingListenerDisposable&&(this._closingListenerDisposable.dispose(),this._closingListenerDisposable=null,this._dialogService.close(K),this._findReplaceService.terminate(),queueMicrotask(()=>this._layoutService.focus()))}};exports.FindReplaceController=st([b(0,o.IUniverInstanceService),b(1,l.IMenuManagerService),b(2,l.IShortcutService),b(3,o.ICommandService),b(4,R),b(5,l.IDialogService),b(6,l.ILayoutService),b(7,o.Inject(o.LocaleService)),b(8,o.Inject(l.ComponentManager)),b(9,o.Inject(o.Injector))],exports.FindReplaceController);function ot(){const{innerWidth:t}=window;return{x:(t-se)/2-rt,y:at}}var ct=Object.getOwnPropertyDescriptor,lt=(t,e,n,i)=>{for(var s=i>1?void 0:i?ct(e,n):e,r=t.length-1,a;r>=0;r--)(a=t[r])&&(s=a(s)||s);return s},H=(t,e)=>(n,i)=>e(n,i,t);const dt="UNIVER_FIND_REPLACE_PLUGIN";var $;exports.UniverFindReplacePlugin=($=class extends o.Plugin{constructor(e=V,n,i){super(),this._config=e,this._injector=n,this._configService=i;const{...s}=o.merge({},V,this._config);this._configService.setConfig(Te,s)}onStarting(){[[exports.FindReplaceController],[R,{useClass:A}]].forEach(e=>this._injector.add(e))}onRendered(){this._injector.get(exports.FindReplaceController)}},u($,"pluginName",dt),$);exports.UniverFindReplacePlugin=lt([H(1,o.Inject(o.Injector)),H(2,o.IConfigService)],exports.UniverFindReplacePlugin);exports.FindBy=D;exports.FindDirection=x;exports.FindModel=je;exports.FindReplaceState=ee;exports.FindScope=T;exports.GoToNextMatchOperation=B;exports.GoToPreviousMatchOperation=k;exports.IFindReplaceService=R;exports.OpenFindDialogOperation=y;exports.OpenReplaceDialogOperation=E;exports.ReplaceAllMatchesCommand=U;exports.ReplaceCurrentMatchCommand=w;exports.createInitFindReplaceState=P;
package/lib/es/index.js CHANGED
@@ -1,22 +1,22 @@
1
1
  var rt = Object.defineProperty;
2
2
  var st = (t, e, n) => e in t ? rt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
3
  var o = (t, e, n) => st(t, typeof e != "symbol" ? e + "" : e, n);
4
- import { createIdentifier as at, Inject as D, Injector as Q, IContextService as X, Disposable as ee, DisposableCollection as ot, toDisposable as A, IUniverInstanceService as pe, CommandType as y, LocaleService as B, ICommandService as te, FOCUSING_SHEET as _e, EDITOR_ACTIVATED as ge, UniverInstanceType as ct, RxDisposable as lt, IConfigService as dt, Plugin as ht, merge as ut } from "@univerjs/core";
5
- import { IConfirmService as ft, IMessageService as me, useDependency as v, useObservable as F, ILayoutService as ve, KeyCode as M, MetaKeys as I, getMenuHiddenObservable as pt, MenuItemType as _t, RibbonStartGroup as gt, IMenuManagerService as mt, IShortcutService as vt, IDialogService as St, ComponentManager as Ct } from "@univerjs/ui";
6
- import { throttleTime as Rt, BehaviorSubject as P, combineLatest as Se, debounceTime as Mt, Subject as Ce, fromEvent as bt, map as It, takeUntil as oe } from "rxjs";
7
- import { MessageType as O, InputWithSlot as yt, Pager as Dt, Button as N, FormLayout as R, Input as Ft, Select as G, FormDualColumnLayout as ce, Checkbox as le } from "@univerjs/design";
8
- import { RENDER_RAW_FORMULA_KEY as Pt } from "@univerjs/engine-render";
4
+ import { createIdentifier as at, Inject as F, Injector as Q, IContextService as X, Disposable as ee, DisposableCollection as ot, toDisposable as A, IUniverInstanceService as pe, CommandType as y, LocaleService as B, ICommandService as te, FOCUSING_SHEET as ge, EDITOR_ACTIVATED as _e, UniverInstanceType as ct, RxDisposable as lt, IConfigService as dt, Plugin as ht, merge as ut } from "@univerjs/core";
5
+ import { IConfirmService as ft, IMessageService as me, useDependency as v, useObservable as D, ILayoutService as ve, KeyCode as M, MetaKeys as I, getMenuHiddenObservable as pt, MenuItemType as gt, RibbonStartGroup as _t, IMenuManagerService as mt, IShortcutService as vt, IDialogService as St, ComponentManager as Ct } from "@univerjs/ui";
6
+ import { throttleTime as Rt, BehaviorSubject as x, combineLatest as Se, debounceTime as Mt, Subject as Ce, fromEvent as bt, map as It, takeUntil as oe } from "rxjs";
7
+ import { MessageType as O, InputWithSlot as yt, Pager as Ft, Button as N, FormLayout as R, Input as Dt, Select as G, FormDualColumnLayout as ce, Checkbox as le } from "@univerjs/design";
8
+ import { RENDER_RAW_FORMULA_KEY as xt } from "@univerjs/engine-render";
9
9
  import { jsx as l, jsxs as b, Fragment as $ } from "react/jsx-runtime";
10
- import { forwardRef as W, useRef as H, createElement as Re, useCallback as u, useEffect as L, useMemo as ie, useImperativeHandle as xt } from "react";
10
+ import { forwardRef as W, useRef as H, createElement as Re, useCallback as u, useEffect as L, useMemo as ie, useImperativeHandle as Pt } from "react";
11
11
  const Tt = "find-replace.config", de = {};
12
- var _ = function() {
13
- return _ = Object.assign || function(t) {
12
+ var g = function() {
13
+ return g = Object.assign || function(t) {
14
14
  for (var e, n = 1, i = arguments.length; n < i; n++) {
15
15
  e = arguments[n];
16
16
  for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]);
17
17
  }
18
18
  return t;
19
- }, _.apply(this, arguments);
19
+ }, g.apply(this, arguments);
20
20
  }, Et = function(t, e) {
21
21
  var n = {};
22
22
  for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && e.indexOf(i) < 0 && (n[i] = t[i]);
@@ -26,16 +26,19 @@ var _ = function() {
26
26
  return n;
27
27
  }, Me = W(function(t, e) {
28
28
  var n = t.icon, i = t.id, r = t.className, s = t.extend, a = Et(t, ["icon", "id", "className", "extend"]), c = "univerjs-icon univerjs-icon-".concat(i, " ").concat(r || "").trim(), d = H("_".concat($t()));
29
- return be(n, "".concat(i), { defIds: n.defIds, idSuffix: d.current }, _({ ref: e, className: c }, a), s);
29
+ return be(n, "".concat(i), { defIds: n.defIds, idSuffix: d.current }, g({ ref: e, className: c }, a), s);
30
30
  });
31
31
  function be(t, e, n, i, r) {
32
- return Re(t.tag, _(_({ key: e }, Ot(t, n, r)), i), (Nt(t, n).children || []).map(function(s, a) {
32
+ return Re(t.tag, g(g({ key: e }, Ot(t, n, r)), i), (Nt(t, n).children || []).map(function(s, a) {
33
33
  return be(s, "".concat(e, "-").concat(t.tag, "-").concat(a), n, void 0, r);
34
34
  }));
35
35
  }
36
36
  function Ot(t, e, n) {
37
- var i = _({}, t.attrs);
38
- n != null && n.colorChannel1 && i.fill === "colorChannel1" && (i.fill = n.colorChannel1);
37
+ var i = g({}, t.attrs);
38
+ n != null && n.colorChannel1 && i.fill === "colorChannel1" && (i.fill = n.colorChannel1), t.tag === "mask" && i.id && (i.id = i.id + e.idSuffix), Object.entries(i).forEach(function(s) {
39
+ var a = s[0], c = s[1];
40
+ a === "mask" && typeof c == "string" && (i[a] = c.replace(/url\(#(.*)\)/, "url(#$1".concat(e.idSuffix, ")")));
41
+ });
39
42
  var r = e.defIds;
40
43
  return !r || r.length === 0 || (t.tag === "use" && i["xlink:href"] && (i["xlink:href"] = i["xlink:href"] + e.idSuffix), Object.entries(i).forEach(function(s) {
41
44
  var a = s[0], c = s[1];
@@ -44,39 +47,39 @@ function Ot(t, e, n) {
44
47
  }
45
48
  function Nt(t, e) {
46
49
  var n, i = e.defIds;
47
- return !i || i.length === 0 ? t : t.tag === "defs" && (!((n = t.children) === null || n === void 0) && n.length) ? _(_({}, t), { children: t.children.map(function(r) {
48
- return typeof r.attrs.id == "string" && i && i.indexOf(r.attrs.id) > -1 ? _(_({}, r), { attrs: _(_({}, r.attrs), { id: r.attrs.id + e.idSuffix }) }) : r;
50
+ return !i || i.length === 0 ? t : t.tag === "defs" && (!((n = t.children) === null || n === void 0) && n.length) ? g(g({}, t), { children: t.children.map(function(r) {
51
+ return typeof r.attrs.id == "string" && i && i.indexOf(r.attrs.id) > -1 ? g(g({}, r), { attrs: g(g({}, r.attrs), { id: r.attrs.id + e.idSuffix }) }) : r;
49
52
  }) }) : t;
50
53
  }
51
54
  function $t() {
52
55
  return Math.random().toString(36).substring(2, 8);
53
56
  }
54
57
  Me.displayName = "UniverIcon";
55
- var At = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 17 17", width: "1em", height: "1em" }, children: [{ tag: "mask", attrs: { id: "mask0_217_40", style: { maskType: "alpha" }, width: 17, height: 17, x: 0, y: 0, maskUnits: "userSpaceOnUse" }, children: [{ tag: "path", attrs: { fill: "#D9D9D9", d: "M0.9 0.09H16.9V16.09H0.9z" } }] }, { tag: "g", attrs: { mask: "url(#mask0_217_40)" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M2.39551 7.37266C2.39551 4.18105 4.98281 1.59375 8.17441 1.59375C11.366 1.59375 13.9533 4.18105 13.9533 7.37266C13.9533 8.72342 13.4898 9.96603 12.7133 10.95L15.1964 13.4331C15.4619 13.6986 15.4619 14.1291 15.1964 14.3946C14.9309 14.6601 14.5004 14.6601 14.2349 14.3946L11.7518 11.9115C10.7678 12.6881 9.52525 13.1516 8.17441 13.1516C4.98281 13.1516 2.39551 10.5642 2.39551 7.37266ZM8.17441 2.95349C5.73378 2.95349 3.75525 4.93202 3.75525 7.37266C3.75525 9.81333 5.73378 11.7918 8.17441 11.7918C10.6151 11.7918 12.5936 9.81333 12.5936 7.37266C12.5936 4.93202 10.6151 2.95349 8.17441 2.95349Z", fillRule: "evenodd", clipRule: "evenodd" } }] }] }, Ie = W(function(t, e) {
58
+ var At = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M7.71899 1.36938C4.37604 1.36938 1.66602 4.07941 1.66602 7.42236C1.66602 10.7653 4.37604 13.4753 7.71899 13.4753C9.16744 13.4753 10.4971 12.9666 11.5389 12.118L13.6598 14.4109C13.8848 14.6542 14.2644 14.669 14.5077 14.444C14.7509 14.219 14.7657 13.8393 14.5407 13.5961L12.3906 11.2716C13.2536 10.2254 13.772 8.88442 13.772 7.42236C13.772 4.07941 11.0619 1.36938 7.71899 1.36938ZM2.86602 7.42236C2.86602 4.74215 5.03878 2.56938 7.71899 2.56938C10.3992 2.56938 12.572 4.74215 12.572 7.42236C12.572 10.1026 10.3992 12.2753 7.71899 12.2753C5.03878 12.2753 2.86602 10.1026 2.86602 7.42236Z", fillRule: "evenodd", clipRule: "evenodd" } }] }, Ie = W(function(t, e) {
56
59
  return Re(Me, Object.assign({}, t, {
57
- id: "search-single-16",
60
+ id: "search-single",
58
61
  ref: e,
59
62
  icon: At
60
63
  }));
61
64
  });
62
- Ie.displayName = "SearchSingle16";
63
- const ye = "FIND_REPLACE_INPUT_FOCUS", De = "FIND_REPLACE_DIALOG_FOCUS", Fe = "FIND_REPLACE_REPLACE_REVEALED";
64
- var Lt = Object.getOwnPropertyDescriptor, Pe = (t, e, n, i) => {
65
+ Ie.displayName = "SearchSingle";
66
+ const ye = "FIND_REPLACE_INPUT_FOCUS", Fe = "FIND_REPLACE_DIALOG_FOCUS", De = "FIND_REPLACE_REPLACE_REVEALED";
67
+ var Lt = Object.getOwnPropertyDescriptor, xe = (t, e, n, i) => {
65
68
  for (var r = i > 1 ? void 0 : i ? Lt(e, n) : e, s = t.length - 1, a; s >= 0; s--)
66
69
  (a = t[s]) && (r = a(r) || r);
67
70
  return r;
68
71
  }, K = (t, e) => (n, i) => e(n, i, t);
69
72
  class Ci extends ee {
70
73
  }
71
- const g = at("find-replace.service");
74
+ const _ = at("find-replace.service");
72
75
  function wt(t) {
73
76
  return typeof t.findString < "u" || typeof t.inputtingFindString < "u" || typeof t.findDirection < "u" || typeof t.matchesTheWholeCell < "u" || typeof t.caseSensitive < "u" || typeof t.findScope < "u" || typeof t.findBy < "u";
74
77
  }
75
- let z = class extends ee {
78
+ let q = class extends ee {
76
79
  constructor(e, n, i) {
77
80
  super();
78
- o(this, "currentMatch$", new P(null));
79
- o(this, "replaceables$", new P([]));
81
+ o(this, "currentMatch$", new x(null));
82
+ o(this, "replaceables$", new x([]));
80
83
  /** All find models returned by providers. */
81
84
  o(this, "_findModels", []);
82
85
  /** The find model that the current match is from. */
@@ -211,10 +214,10 @@ let z = class extends ee {
211
214
  return this._moveToNextUnitMatch(r), 0;
212
215
  }
213
216
  };
214
- z = Pe([
217
+ q = xe([
215
218
  K(2, pe)
216
- ], z);
217
- var q = /* @__PURE__ */ ((t) => (t.ROW = "row", t.COLUMN = "column", t))(q || {}), Y = /* @__PURE__ */ ((t) => (t.VALUE = "value", t.FORMULA = "formula", t))(Y || {}), Z = /* @__PURE__ */ ((t) => (t.SUBUNIT = "subunit", t.UNIT = "unit", t))(Z || {});
219
+ ], q);
220
+ var z = /* @__PURE__ */ ((t) => (t.ROW = "row", t.COLUMN = "column", t))(z || {}), Y = /* @__PURE__ */ ((t) => (t.VALUE = "value", t.FORMULA = "formula", t))(Y || {}), Z = /* @__PURE__ */ ((t) => (t.SUBUNIT = "subunit", t.UNIT = "unit", t))(Z || {});
218
221
  function ne() {
219
222
  return {
220
223
  caseSensitive: !1,
@@ -236,7 +239,7 @@ class Ut {
236
239
  constructor() {
237
240
  o(this, "_stateUpdates$", new Ce());
238
241
  o(this, "stateUpdates$", this._stateUpdates$.asObservable());
239
- o(this, "_state$", new P(ne()));
242
+ o(this, "_state$", new x(ne()));
240
243
  o(this, "state$", this._state$.asObservable());
241
244
  o(this, "_findString", "");
242
245
  o(this, "_inputtingFindString", "");
@@ -320,9 +323,9 @@ let J = class extends ee {
320
323
  o(this, "_providers", /* @__PURE__ */ new Set());
321
324
  o(this, "_state", new Ut());
322
325
  o(this, "_model");
323
- o(this, "_currentMatch$", new P(null));
326
+ o(this, "_currentMatch$", new x(null));
324
327
  o(this, "currentMatch$", this._currentMatch$.asObservable());
325
- o(this, "_replaceables$", new P([]));
328
+ o(this, "_replaceables$", new x([]));
326
329
  o(this, "replaceables$", this._replaceables$.asObservable());
327
330
  o(this, "_focusSignal$", new Ce());
328
331
  o(this, "focusSignal$", this._focusSignal$.asObservable());
@@ -403,7 +406,7 @@ let J = class extends ee {
403
406
  start(e = !1) {
404
407
  if (this._providers.size === 0)
405
408
  return !1;
406
- this._model = this._injector.createInstance(z, this._state, this._providers), this._model.currentMatch$.subscribe((i) => this._currentMatch$.next(i)), this._model.replaceables$.subscribe((i) => this._replaceables$.next(i));
409
+ this._model = this._injector.createInstance(q, this._state, this._providers), this._model.currentMatch$.subscribe((i) => this._currentMatch$.next(i)), this._model.replaceables$.subscribe((i) => this._replaceables$.next(i));
407
410
  const n = ne();
408
411
  return e && (n.replaceRevealed = !0), this._state.changeState(n), this._toggleRevealReplace(e), !0;
409
412
  }
@@ -419,20 +422,20 @@ let J = class extends ee {
419
422
  return this._providers.add(e), A(() => this._providers.delete(e));
420
423
  }
421
424
  _toggleRevealReplace(e) {
422
- this._contextService.setContextValue(Fe, e);
425
+ this._contextService.setContextValue(De, e);
423
426
  }
424
427
  _toggleDisplayRawFormula(e) {
425
- this._contextService.setContextValue(Pt, e);
428
+ this._contextService.setContextValue(xt, e);
426
429
  }
427
430
  };
428
- J = Pe([
429
- K(0, D(Q)),
431
+ J = xe([
432
+ K(0, F(Q)),
430
433
  K(1, X)
431
434
  ], J);
432
- const xe = {
435
+ const Pe = {
433
436
  id: "ui.command.replace-current-match",
434
437
  type: y.COMMAND,
435
- handler: (t) => t.get(g).replace()
438
+ handler: (t) => t.get(_).replace()
436
439
  }, Bt = "CONFIRM_REPLACE_ALL", Te = {
437
440
  id: "ui.command.replace-all-matches",
438
441
  type: y.COMMAND,
@@ -445,7 +448,7 @@ const xe = {
445
448
  confirmText: n.t("button.confirm")
446
449
  }))
447
450
  return !1;
448
- const s = await t.get(g).replaceAll(), { success: a, failure: c } = s;
451
+ const s = await t.get(_).replaceAll(), { success: a, failure: c } = s;
449
452
  return c > 0 ? (a === 0 ? i.show({
450
453
  type: O.Error,
451
454
  content: n.t("find-replace.replace.all-failure")
@@ -457,28 +460,28 @@ const xe = {
457
460
  content: n.t("find-replace.replace.all-success", `${a}`)
458
461
  }), !0);
459
462
  }
460
- }, x = {
463
+ }, P = {
461
464
  id: "ui.operation.open-find-dialog",
462
465
  type: y.OPERATION,
463
466
  handler: (t) => {
464
- const e = t.get(g);
467
+ const e = t.get(_);
465
468
  return e.revealed ? e.focusFindInput() : e.start(), !0;
466
469
  }
467
470
  }, re = {
468
471
  id: "ui.operation.open-replace-dialog",
469
472
  type: y.OPERATION,
470
473
  handler: (t) => {
471
- const e = t.get(g);
474
+ const e = t.get(_);
472
475
  return e.revealed ? e.replaceRevealed ? e.focusFindInput() : e.revealReplace() : e.start(!0), !0;
473
476
  }
474
477
  }, Ee = {
475
478
  type: y.OPERATION,
476
479
  id: "ui.operation.go-to-next-match",
477
- handler: (t) => (t.get(g).moveToNextMatch(), !0)
480
+ handler: (t) => (t.get(_).moveToNextMatch(), !0)
478
481
  }, Oe = {
479
482
  type: y.OPERATION,
480
483
  id: "ui.operation.go-to-previous-match",
481
- handler: (t) => (t.get(g).moveToPreviousMatch(), !0)
484
+ handler: (t) => (t.get(_).moveToPreviousMatch(), !0)
482
485
  }, Wt = "univer-find-replace-dialog-container", kt = "univer-find-replace-expand-container", jt = "univer-find-replace-buttons-group", Gt = "univer-find-replace-buttons-group-right", w = {
483
486
  findReplaceDialogContainer: Wt,
484
487
  findReplaceExpandContainer: kt,
@@ -493,7 +496,7 @@ function Ne(t) {
493
496
  autoFocus: !0,
494
497
  placeholder: n.t("find-replace.dialog.find-placeholder"),
495
498
  slot: /* @__PURE__ */ l(
496
- Dt,
499
+ Ft,
497
500
  {
498
501
  loop: !0,
499
502
  text: f,
@@ -518,13 +521,13 @@ function $e(t, e) {
518
521
  const r = document.querySelectorAll(".univer-find-replace-dialog-container .univer-select-selection-search-input");
519
522
  return Array.from(r).some((s) => s === document.activeElement);
520
523
  }, []);
521
- return xt(e, () => ({ focus: n, selectHasFocus: i })), L(() => {
524
+ return Pt(e, () => ({ focus: n, selectHasFocus: i })), L(() => {
522
525
  const r = t.focusSignal$.subscribe(() => n());
523
526
  return () => r.unsubscribe();
524
527
  }, [t, n]), { focus: n, selectHasFocus: i };
525
528
  }
526
529
  const Vt = W(function(e, n) {
527
- const i = v(B), r = v(g), s = v(te), a = F(r.state$, void 0, !0), { findCompleted: c, findString: d, matchesCount: S, matchesPosition: f } = a, p = u(() => {
530
+ const i = v(B), r = v(_), s = v(te), a = D(r.state$, void 0, !0), { findCompleted: c, findString: d, matchesCount: S, matchesPosition: f } = a, p = u(() => {
528
531
  s.executeCommand(re.id);
529
532
  }, [s]), E = u((C) => r.changeFindString(C), [r]);
530
533
  return $e(r, n), /* @__PURE__ */ b($, { children: [
@@ -544,7 +547,7 @@ const Vt = W(function(e, n) {
544
547
  /* @__PURE__ */ l("div", { className: w.findReplaceExpandContainer, children: /* @__PURE__ */ l(N, { type: "text", size: "small", onClick: p, children: i.t("find-replace.dialog.advanced-finding") }) })
545
548
  ] });
546
549
  }), Ht = W(function(e, n) {
547
- const i = v(g), r = v(B), s = v(te), a = v(me), c = F(i.currentMatch$, void 0, !0), d = F(i.replaceables$, void 0, !0), S = F(i.state$, void 0, !0), {
550
+ const i = v(_), r = v(B), s = v(te), a = v(me), c = D(i.currentMatch$, void 0, !0), d = D(i.replaceables$, void 0, !0), S = D(i.state$, void 0, !0), {
548
551
  matchesCount: f,
549
552
  matchesPosition: p,
550
553
  findString: E,
@@ -559,20 +562,20 @@ const Vt = W(function(e, n) {
559
562
  } = S, Ge = C.length === 0, Ve = f === 0 || !(c != null && c.replaceable), He = d.length === 0, Ke = u(
560
563
  (h) => i.changeInputtingFindString(h),
561
564
  [i]
562
- ), ze = u(
565
+ ), qe = u(
563
566
  (h) => i.changeReplaceString(h),
564
567
  [i]
565
- ), { focus: qe } = $e(i, n), Ye = u(() => {
568
+ ), { focus: ze } = $e(i, n), Ye = u(() => {
566
569
  E === C ? i.moveToNextMatch() : (i.changeFindString(C), i.find());
567
- }, [E, C, i]), Ze = u(() => s.executeCommand(xe.id), [s]), Je = u(async () => {
568
- await s.executeCommand(Te.id), qe();
570
+ }, [E, C, i]), Ze = u(() => s.executeCommand(Pe.id), [s]), Je = u(async () => {
571
+ await s.executeCommand(Te.id), ze();
569
572
  }, [s]), Qe = u((h) => {
570
573
  i.changeFindDirection(h);
571
574
  }, [i]), Xe = u((h) => {
572
575
  i.changeFindScope(h);
573
576
  }, [i]), et = u((h) => {
574
577
  i.changeFindBy(h);
575
- }, [i]), tt = zt(r), it = qt(r), nt = Yt(r);
578
+ }, [i]), tt = qt(r), it = zt(r), nt = Yt(r);
576
579
  return L(() => {
577
580
  j && f === 0 && a.show({
578
581
  content: r.t("find-replace.dialog.no-match"),
@@ -594,11 +597,11 @@ const Vt = W(function(e, n) {
594
597
  }
595
598
  ) }),
596
599
  /* @__PURE__ */ l(R, { label: r.t("find-replace.dialog.replace"), children: /* @__PURE__ */ l(
597
- Ft,
600
+ Dt,
598
601
  {
599
602
  placeholder: r.t("find-replace.dialog.replace-placeholder"),
600
603
  value: we,
601
- onChange: (h) => ze(h)
604
+ onChange: (h) => qe(h)
602
605
  }
603
606
  ) }),
604
607
  /* @__PURE__ */ l(R, { label: r.t("find-replace.dialog.find-direction.title"), children: /* @__PURE__ */ l(G, { value: We, options: it, onChange: Qe }) }),
@@ -638,13 +641,13 @@ const Vt = W(function(e, n) {
638
641
  ] });
639
642
  });
640
643
  function Kt() {
641
- const t = v(g), e = v(ve), n = v(X), i = F(t.state$, void 0, !0), r = H(null);
644
+ const t = v(_), e = v(ve), n = v(X), i = D(t.state$, void 0, !0), r = H(null);
642
645
  L(() => {
643
646
  let d;
644
647
  return r.current && (d = e.registerContainerElement(r.current)), () => d == null ? void 0 : d.dispose();
645
648
  }, [e]);
646
649
  const s = H(null), a = u(
647
- (d) => n.setContextValue(De, d),
650
+ (d) => n.setContextValue(Fe, d),
648
651
  [n]
649
652
  ), c = u(
650
653
  (d) => n.setContextValue(ye, d),
@@ -661,18 +664,18 @@ function Kt() {
661
664
  };
662
665
  }, [a, c]), /* @__PURE__ */ l("div", { className: w.findReplaceDialogContainer, ref: r, children: i.replaceRevealed ? /* @__PURE__ */ l(Ht, { ref: s }) : /* @__PURE__ */ l(Vt, { ref: s }) });
663
666
  }
664
- function zt(t) {
667
+ function qt(t) {
665
668
  const e = t.getCurrentLocale();
666
669
  return ie(() => [
667
670
  { label: t.t("find-replace.dialog.find-scope.current-sheet"), value: Z.SUBUNIT },
668
671
  { label: t.t("find-replace.dialog.find-scope.workbook"), value: Z.UNIT }
669
672
  ], [e]);
670
673
  }
671
- function qt(t) {
674
+ function zt(t) {
672
675
  const e = t.getCurrentLocale();
673
676
  return ie(() => [
674
- { label: t.t("find-replace.dialog.find-direction.row"), value: q.ROW },
675
- { label: t.t("find-replace.dialog.find-direction.column"), value: q.COLUMN }
677
+ { label: t.t("find-replace.dialog.find-direction.row"), value: z.ROW },
678
+ { label: t.t("find-replace.dialog.find-direction.column"), value: z.COLUMN }
676
679
  ], [e]);
677
680
  }
678
681
  function Yt(t) {
@@ -683,23 +686,23 @@ function Yt(t) {
683
686
  ], [e]);
684
687
  }
685
688
  function T(t) {
686
- return t.getContextValue(De);
689
+ return t.getContextValue(Fe);
687
690
  }
688
691
  function Zt(t) {
689
- return t.getContextValue(Fe);
692
+ return t.getContextValue(De);
690
693
  }
691
694
  function Ae(t) {
692
695
  return t.getContextValue(ye);
693
696
  }
694
697
  const k = "7_find-replace-shortcuts";
695
698
  function se(t) {
696
- return t.getContextValue(_e);
699
+ return t.getContextValue(ge);
697
700
  }
698
701
  function ae(t) {
699
- return !t.getContextValue(ge);
702
+ return !t.getContextValue(_e);
700
703
  }
701
704
  const Jt = {
702
- id: x.id,
705
+ id: P.id,
703
706
  description: "find-replace.shortcut.open-find-dialog",
704
707
  binding: M.F | I.CTRL_COMMAND,
705
708
  group: k,
@@ -707,7 +710,7 @@ const Jt = {
707
710
  return !T(t) && se(t) && ae(t);
708
711
  }
709
712
  }, Qt = {
710
- id: x.id,
713
+ id: P.id,
711
714
  description: "find-replace.shortcut.open-find-dialog",
712
715
  binding: M.F | I.CTRL_COMMAND,
713
716
  mac: M.F | I.MAC_CTRL,
@@ -745,20 +748,20 @@ const Jt = {
745
748
  function ii(t) {
746
749
  const e = t.get(X);
747
750
  return {
748
- id: x.id,
751
+ id: P.id,
749
752
  icon: "SearchIcon",
750
753
  tooltip: "find-replace.toolbar",
751
- type: _t.BUTTON,
754
+ type: gt.BUTTON,
752
755
  hidden$: pt(t, ct.UNIVER_SHEET),
753
756
  disabled$: Se([
754
- e.subscribeContextValue$(ge),
755
- e.subscribeContextValue$(_e)
757
+ e.subscribeContextValue$(_e),
758
+ e.subscribeContextValue$(ge)
756
759
  ]).pipe(It(([n, i]) => n || !i))
757
760
  };
758
761
  }
759
762
  const ni = {
760
- [gt.OTHERS]: {
761
- [x.id]: {
763
+ [_t.OTHERS]: {
764
+ [P.id]: {
762
765
  order: 2,
763
766
  menuItemFactory: ii
764
767
  }
@@ -782,12 +785,12 @@ let U = class extends lt {
782
785
  }
783
786
  _initCommands() {
784
787
  [
785
- x,
788
+ P,
786
789
  re,
787
790
  Ee,
788
791
  Oe,
789
792
  Te,
790
- xe
793
+ Pe
791
794
  ].forEach((e) => {
792
795
  this.disposeWithMe(this._commandService.registerCommand(e));
793
796
  });
@@ -830,12 +833,12 @@ U = si([
830
833
  m(1, mt),
831
834
  m(2, vt),
832
835
  m(3, te),
833
- m(4, g),
836
+ m(4, _),
834
837
  m(5, St),
835
838
  m(6, ve),
836
- m(7, D(B)),
837
- m(8, D(Ct)),
838
- m(9, D(Q))
839
+ m(7, F(B)),
840
+ m(8, F(Ct)),
841
+ m(9, F(Q))
839
842
  ], U);
840
843
  function ci() {
841
844
  const { innerWidth: t } = window;
@@ -861,7 +864,7 @@ let fe = (V = class extends ht {
861
864
  onStarting() {
862
865
  [
863
866
  [U],
864
- [g, { useClass: J }]
867
+ [_, { useClass: J }]
865
868
  ].forEach((t) => this._injector.add(t));
866
869
  }
867
870
  onRendered() {
@@ -869,24 +872,24 @@ let fe = (V = class extends ht {
869
872
  }
870
873
  }, o(V, "pluginName", hi), V);
871
874
  fe = di([
872
- ue(1, D(Q)),
875
+ ue(1, F(Q)),
873
876
  ue(2, dt)
874
877
  ], fe);
875
878
  export {
876
879
  Y as FindBy,
877
- q as FindDirection,
880
+ z as FindDirection,
878
881
  Ci as FindModel,
879
882
  U as FindReplaceController,
880
- z as FindReplaceModel,
883
+ q as FindReplaceModel,
881
884
  Ut as FindReplaceState,
882
885
  Z as FindScope,
883
886
  Ee as GoToNextMatchOperation,
884
887
  Oe as GoToPreviousMatchOperation,
885
- g as IFindReplaceService,
886
- x as OpenFindDialogOperation,
888
+ _ as IFindReplaceService,
889
+ P as OpenFindDialogOperation,
887
890
  re as OpenReplaceDialogOperation,
888
891
  Te as ReplaceAllMatchesCommand,
889
- xe as ReplaceCurrentMatchCommand,
892
+ Pe as ReplaceCurrentMatchCommand,
890
893
  fe as UniverFindReplacePlugin,
891
894
  ne as createInitFindReplaceState
892
895
  };
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(l,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@univerjs/core"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/design"),require("@univerjs/engine-render"),require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/ui","rxjs","@univerjs/design","@univerjs/engine-render","react/jsx-runtime","react"],r):(l=typeof globalThis<"u"?globalThis:l||self,r(l.UniverFindReplace={},l.UniverCore,l.UniverUi,l.rxjs,l.UniverDesign,l.UniverEngineRender,l.React,l.React))})(this,function(l,r,c,v,p,re,h,f){"use strict";var rt=Object.defineProperty;var ot=(l,r,c)=>r in l?rt(l,r,{enumerable:!0,configurable:!0,writable:!0,value:c}):l[r]=c;var u=(l,r,c)=>ot(l,typeof r!="symbol"?r+"":r,c);var G;const oe="find-replace.config",H={};var M=function(){return M=Object.assign||function(t){for(var e,i=1,n=arguments.length;i<n;i++){e=arguments[i];for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a])}return t},M.apply(this,arguments)},ce=function(t,e){var i={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(i[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(t);a<n.length;a++)e.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(t,n[a])&&(i[n[a]]=t[n[a]]);return i},K=f.forwardRef(function(t,e){var i=t.icon,n=t.id,a=t.className,s=t.extend,o=ce(t,["icon","id","className","extend"]),d="univerjs-icon univerjs-icon-".concat(n," ").concat(a||"").trim(),_=f.useRef("_".concat(he()));return q(i,"".concat(n),{defIds:i.defIds,idSuffix:_.current},M({ref:e,className:d},o),s)});function q(t,e,i,n,a){return f.createElement(t.tag,M(M({key:e},le(t,i,a)),n),(de(t,i).children||[]).map(function(s,o){return q(s,"".concat(e,"-").concat(t.tag,"-").concat(o),i,void 0,a)}))}function le(t,e,i){var n=M({},t.attrs);i!=null&&i.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=i.colorChannel1);var a=e.defIds;return!a||a.length===0||(t.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+e.idSuffix),Object.entries(n).forEach(function(s){var o=s[0],d=s[1];typeof d=="string"&&(n[o]=d.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),n}function de(t,e){var i,n=e.defIds;return!n||n.length===0?t:t.tag==="defs"&&(!((i=t.children)===null||i===void 0)&&i.length)?M(M({},t),{children:t.children.map(function(a){return typeof a.attrs.id=="string"&&n&&n.indexOf(a.attrs.id)>-1?M(M({},a),{attrs:M(M({},a.attrs),{id:a.attrs.id+e.idSuffix})}):a})}):t}function he(){return Math.random().toString(36).substring(2,8)}K.displayName="UniverIcon";var ue={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_217_40",style:{maskType:"alpha"},width:17,height:17,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0.9 0.09H16.9V16.09H0.9z"}}]},{tag:"g",attrs:{mask:"url(#mask0_217_40)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M2.39551 7.37266C2.39551 4.18105 4.98281 1.59375 8.17441 1.59375C11.366 1.59375 13.9533 4.18105 13.9533 7.37266C13.9533 8.72342 13.4898 9.96603 12.7133 10.95L15.1964 13.4331C15.4619 13.6986 15.4619 14.1291 15.1964 14.3946C14.9309 14.6601 14.5004 14.6601 14.2349 14.3946L11.7518 11.9115C10.7678 12.6881 9.52525 13.1516 8.17441 13.1516C4.98281 13.1516 2.39551 10.5642 2.39551 7.37266ZM8.17441 2.95349C5.73378 2.95349 3.75525 4.93202 3.75525 7.37266C3.75525 9.81333 5.73378 11.7918 8.17441 11.7918C10.6151 11.7918 12.5936 9.81333 12.5936 7.37266C12.5936 4.93202 10.6151 2.95349 8.17441 2.95349Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},z=f.forwardRef(function(t,e){return f.createElement(K,Object.assign({},t,{id:"search-single-16",ref:e,icon:ue}))});z.displayName="SearchSingle16";const Y="FIND_REPLACE_INPUT_FOCUS",Z="FIND_REPLACE_DIALOG_FOCUS",J="FIND_REPLACE_REPLACE_REVEALED";var fe=Object.getOwnPropertyDescriptor,Q=(t,e,i,n)=>{for(var a=n>1?void 0:n?fe(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(a=o(a)||a);return a},A=(t,e)=>(i,n)=>e(i,n,t);class pe extends r.Disposable{}const b=r.createIdentifier("find-replace.service");function _e(t){return typeof t.findString<"u"||typeof t.inputtingFindString<"u"||typeof t.findDirection<"u"||typeof t.matchesTheWholeCell<"u"||typeof t.caseSensitive<"u"||typeof t.findScope<"u"||typeof t.findBy<"u"}l.FindReplaceModel=class extends r.Disposable{constructor(i,n,a){super();u(this,"currentMatch$",new v.BehaviorSubject(null));u(this,"replaceables$",new v.BehaviorSubject([]));u(this,"_findModels",[]);u(this,"_matchingModel",null);u(this,"_matches",[]);u(this,"_currentSearchingDisposables",null);this._state=i,this._providers=n,this._univerInstanceService=a,this.disposeWithMe(this._state.stateUpdates$.pipe(v.throttleTime(200,void 0,{leading:!0,trailing:!0})).subscribe(async s=>{const o=this._state.state;_e(s)&&(o.findString!==""&&!o.replaceRevealed?(await this._startSearching(),this._state.changeState({findCompleted:!0})):s.replaceRevealed!==!0&&this._stopSearching())}))}get searched(){return this._findModels.length>0}dispose(){super.dispose(),this._stopSearching(),this.currentMatch$.complete(),this.replaceables$.complete(),this._state.changeState({...P(),revealed:!1})}async start(){if(!this._state.findString)return{results:[]};const i=await this._startSearching();return this._state.changeState({findCompleted:!0}),i}async _startSearching(){if(!this._state.findString)return{results:[]};const i=Array.from(this._providers),n=this._findModels=(await Promise.all(i.map(s=>s.find({findString:this._state.findString,findDirection:this._state.findDirection,findScope:this._state.findScope,findBy:this._state.findBy,replaceRevealed:this._state.replaceRevealed,caseSensitive:this._state.caseSensitive,matchesTheWholeCell:this._state.matchesTheWholeCell})))).flat();this._subscribeToModelsChanges(n);const a=this._matches=n.map(s=>s.getMatches()).flat();return this.replaceables$.next(a.filter(s=>s.replaceable)),a.length?(this._moveToInitialMatch(n),this._state.changeState({matchesCount:a.length}),{results:a}):(this._state.changeState({matchesCount:0,matchesPosition:0}),{results:[]})}_stopSearching(){var i;this._providers.forEach(n=>n.terminate()),this._findModels=[],this._matches=[],this._matchingModel=null,(i=this._currentSearchingDisposables)==null||i.dispose(),this._currentSearchingDisposables=null,this.currentMatch$.next(null),this.replaceables$.next([]),this._state.changeState({findCompleted:!1,matchesCount:0,matchesPosition:0})}_subscribeToModelsChanges(i){const n=this._currentSearchingDisposables=new r.DisposableCollection,a=v.combineLatest(i.map(s=>s.matchesUpdate$)).pipe(v.debounceTime(220)).subscribe(([...s])=>{const o=this._matches=s.flat();o.length?(this._moveToInitialMatch(this._findModels,!0),this._state.changeState({matchesCount:o.length}),this.replaceables$.next(o.filter(d=>d.replaceable))):(this._state.changeState({matchesCount:0,matchesPosition:0}),this.replaceables$.next([]))});i.forEach(s=>n.add(r.toDisposable(s.activelyChangingMatch$.subscribe(o=>{const d=this._matches.findIndex(_=>_===o);this._state.changeState({matchesPosition:d+1})})))),n.add(r.toDisposable(a))}async replace(){return this._matchingModel?this._matchingModel.replace(this._state.replaceString):!1}async replaceAll(){const i=await Promise.all(this._findModels.map(n=>n.replaceAll(this._state.replaceString))).then(n=>n.reduce((a,s)=>(a.success+=s.success,a.failure+=s.failure,a),{success:0,failure:0}));return i.failure===0&&this._stopSearching(),i}getCurrentMatch(){return this._state.matchesPosition>0?this._matches[this._state.matchesPosition-1]:null}_markMatch(i){const n=this._matches.findIndex(a=>a===i);this.currentMatch$.next(i),this._state.changeState({matchesPosition:n+1})}moveToNextMatch(){if(!this._matchingModel)return;const i=this._findModels.length===1,n=this._matchingModel.moveToNextMatch({loop:i});if(n)return this._markMatch(n),n;{const a=this._findModels.findIndex(s=>s===this._matchingModel);return this._moveToNextUnitMatch(a)}}_moveToNextUnitMatch(i){const n=this._findModels.length;for(let a=(i+1)%n;a!==i;){const s=this._findModels[a],o=s.moveToNextMatch({ignoreSelection:!0});if(o)return this._matchingModel=s,this._markMatch(o),o;a=(a+1)%n}if(this._matchingModel){const a=this._matchingModel.moveToNextMatch({ignoreSelection:!0});return a&&this._markMatch(a),a}}moveToPreviousMatch(){if(!this._matchingModel)return;const i=this._findModels.length===1,n=this._matchingModel.moveToPreviousMatch({loop:i});if(n){const a=this._matches.findIndex(s=>s===n);return this.currentMatch$.next(n),this._state.changeState({matchesPosition:a+1}),n}else{const a=this._findModels.length,s=this._findModels.findIndex(d=>d===this._matchingModel);for(let d=(s-1+a)%a;d!==s;){const _=this._findModels[d],S=_.moveToPreviousMatch({ignoreSelection:!0});if(S)return this._matchingModel=_,this._markMatch(S),S;d=(d-1)%a}const o=this._matchingModel.moveToPreviousMatch({ignoreSelection:!0});return o&&this._markMatch(o),o}}_moveToInitialMatch(i,n=!1){var o;const a=(o=this._univerInstanceService.getFocusedUnit())==null?void 0:o.getUnitId();if(!a)return-1;const s=i.findIndex(d=>d.unitId===a);if(s!==-1){this._matchingModel=i[s];const d=this._matchingModel.moveToNextMatch({stayIfOnMatch:!0,noFocus:n});if(d)return this._markMatch(d),s}return this._moveToNextUnitMatch(s),0}},l.FindReplaceModel=Q([A(2,r.IUniverInstanceService)],l.FindReplaceModel);var D=(t=>(t.ROW="row",t.COLUMN="column",t))(D||{}),T=(t=>(t.VALUE="value",t.FORMULA="formula",t))(T||{}),O=(t=>(t.SUBUNIT="subunit",t.UNIT="unit",t))(O||{});function P(){return{caseSensitive:!1,findBy:"value",findCompleted:!1,findDirection:"row",findScope:"subunit",findString:"",inputtingFindString:"",matchesCount:0,matchesPosition:0,matchesTheWholeCell:!1,replaceRevealed:!1,replaceString:"",revealed:!0}}class X{constructor(){u(this,"_stateUpdates$",new v.Subject);u(this,"stateUpdates$",this._stateUpdates$.asObservable());u(this,"_state$",new v.BehaviorSubject(P()));u(this,"state$",this._state$.asObservable());u(this,"_findString","");u(this,"_inputtingFindString","");u(this,"_replaceString","");u(this,"_revealed",!1);u(this,"_replaceRevealed",!1);u(this,"_matchesPosition",0);u(this,"_matchesCount",0);u(this,"_caseSensitive",!0);u(this,"_matchesTheWholeCell",!1);u(this,"_findDirection","row");u(this,"_findScope","subunit");u(this,"_findBy","value");u(this,"_findCompleted",!1)}get state(){return this._state$.getValue()}get inputtingFindString(){return this._inputtingFindString}get findString(){return this._findString}get revealed(){return this._revealed}get replaceRevealed(){return this._replaceRevealed}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get replaceString(){return this._replaceString}get caseSensitive(){return this._caseSensitive}get matchesTheWholeCell(){return this._matchesTheWholeCell}get findDirection(){return this._findDirection}get findScope(){return this._findScope}get findBy(){return this._findBy}get findCompleted(){return this._findCompleted}changeState(e){let i=!1;const n={};typeof e.findString<"u"&&e.findString!==this._findString&&(this._findString=e.findString,n.findString=this._findString,i=!0),typeof e.revealed<"u"&&e.revealed!==this._revealed&&(this._revealed=e.revealed,n.revealed=e.revealed,i=!0),typeof e.replaceRevealed<"u"&&e.replaceRevealed!==this._replaceRevealed&&(this._replaceRevealed=e.replaceRevealed,n.replaceRevealed=e.replaceRevealed,i=!0),typeof e.replaceString<"u"&&e.replaceString!==this._replaceString&&(this._replaceString=e.replaceString,n.replaceString=e.replaceString,i=!0),typeof e.matchesCount<"u"&&e.matchesCount!==this._matchesCount&&(this._matchesCount=e.matchesCount,n.matchesCount=e.matchesCount,i=!0),typeof e.matchesPosition<"u"&&e.matchesPosition!==this._matchesPosition&&(this._matchesPosition=e.matchesPosition,n.matchesPosition=e.matchesPosition,i=!0),typeof e.findBy<"u"&&e.findBy!==this._findBy&&(this._findBy=e.findBy,n.findBy=e.findBy,i=!0),typeof e.findScope<"u"&&e.findScope!==this._findScope&&(this._findScope=e.findScope,n.findScope=e.findScope,i=!0),typeof e.findDirection<"u"&&e.findDirection!==this._findDirection&&(this._findDirection=e.findDirection,n.findDirection=e.findDirection,i=!0),typeof e.caseSensitive<"u"&&e.caseSensitive!==this._caseSensitive&&(this._caseSensitive=e.caseSensitive,n.caseSensitive=e.caseSensitive,i=!0),typeof e.matchesTheWholeCell<"u"&&e.matchesTheWholeCell!==this._matchesTheWholeCell&&(this._matchesTheWholeCell=e.matchesTheWholeCell,n.matchesTheWholeCell=e.matchesTheWholeCell,i=!0),typeof e.inputtingFindString<"u"&&e.inputtingFindString!==this._inputtingFindString&&(this._inputtingFindString=e.inputtingFindString,n.inputtingFindString=e.inputtingFindString,i=!0),typeof e.findCompleted<"u"&&e.findCompleted!==this._findCompleted&&(this._findCompleted=e.findCompleted,n.findCompleted=e.findCompleted,i=!0),i&&(this._state$.next({caseSensitive:this._caseSensitive,findBy:this._findBy,findCompleted:this._findCompleted,findDirection:this._findDirection,findScope:this._findScope,findString:this._findString,inputtingFindString:this._inputtingFindString,matchesCount:this._matchesCount,matchesPosition:this._matchesPosition,matchesTheWholeCell:this._matchesTheWholeCell,replaceRevealed:this._replaceRevealed,revealed:this._revealed}),this._stateUpdates$.next(n))}}let x=class extends r.Disposable{constructor(e,i){super();u(this,"_providers",new Set);u(this,"_state",new X);u(this,"_model");u(this,"_currentMatch$",new v.BehaviorSubject(null));u(this,"currentMatch$",this._currentMatch$.asObservable());u(this,"_replaceables$",new v.BehaviorSubject([]));u(this,"replaceables$",this._replaceables$.asObservable());u(this,"_focusSignal$",new v.Subject);u(this,"focusSignal$",this._focusSignal$.asObservable());this._injector=e,this._contextService=i}get stateUpdates$(){return this._state.stateUpdates$}get state$(){return this._state.state$}get revealed(){return this._state.revealed}get replaceRevealed(){return this._state.replaceRevealed}dispose(){super.dispose(),this._currentMatch$.next(null),this._currentMatch$.complete(),this._replaceables$.next([]),this._replaceables$.complete(),this._focusSignal$.complete()}getProviders(){return this._providers}getCurrentMatch(){var e;return(e=this._model)==null?void 0:e.getCurrentMatch()}getFindString(){return this._state.findString}changeFindString(e){this._state.changeState({findString:e})}focusFindInput(){this._focusSignal$.next()}changeInputtingFindString(e){e?this._state.changeState({inputtingFindString:e}):this._state.changeState({inputtingFindString:"",findString:""})}changeReplaceString(e){this._state.changeState({replaceString:e})}changeMatchesTheWholeCell(e){this._state.changeState({matchesTheWholeCell:e})}changeCaseSensitive(e){this._state.changeState({caseSensitive:e})}changeFindBy(e){this._state.changeState({findBy:e}),this._toggleDisplayRawFormula(e==="formula")}changeFindScope(e){this._state.changeState({findScope:e})}changeFindDirection(e){this._state.changeState({findDirection:e})}moveToNextMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToNextMatch(),this._focusSignal$.next())}moveToPreviousMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToPreviousMatch(),this._focusSignal$.next())}async replace(){return this._model?this._model.replace():!1}async replaceAll(){if(!this._model)throw new Error("[FindReplaceService] replaceAll: model is not initialized!");return this._model.replaceAll()}revealReplace(){this._state.changeState({replaceRevealed:!0,inputtingFindString:this._state.findString}),this._toggleRevealReplace(!0)}start(e=!1){if(this._providers.size===0)return!1;this._model=this._injector.createInstance(l.FindReplaceModel,this._state,this._providers),this._model.currentMatch$.subscribe(n=>this._currentMatch$.next(n)),this._model.replaceables$.subscribe(n=>this._replaceables$.next(n));const i=P();return e&&(i.replaceRevealed=!0),this._state.changeState(i),this._toggleRevealReplace(e),!0}find(){var e;(e=this._model)==null||e.start()}terminate(){var e;(e=this._model)==null||e.dispose(),this._model=null,this._toggleDisplayRawFormula(!1),this._toggleRevealReplace(!1)}registerFindReplaceProvider(e){return this._providers.add(e),r.toDisposable(()=>this._providers.delete(e))}_toggleRevealReplace(e){this._contextService.setContextValue(J,e)}_toggleDisplayRawFormula(e){this._contextService.setContextValue(re.RENDER_RAW_FORMULA_KEY,e)}};x=Q([A(0,r.Inject(r.Injector)),A(1,r.IContextService)],x);const U={id:"ui.command.replace-current-match",type:r.CommandType.COMMAND,handler:t=>t.get(b).replace()},ge="CONFIRM_REPLACE_ALL",w={id:"ui.command.replace-all-matches",type:r.CommandType.COMMAND,handler:async t=>{const e=t.get(c.IConfirmService),i=t.get(r.LocaleService),n=t.get(c.IMessageService);if(!await e.confirm({id:ge,title:{title:i.t("find-replace.replace.confirm.title")},cancelText:i.t("button.cancel"),confirmText:i.t("button.confirm")}))return!1;const s=await t.get(b).replaceAll(),{success:o,failure:d}=s;return d>0?(o===0?n.show({type:p.MessageType.Error,content:i.t("find-replace.replace.all-failure")}):n.show({type:p.MessageType.Warning,content:i.t("find-replace.replace.partial-success",`${o}`,`${d}`)}),!1):(n.show({type:p.MessageType.Success,content:i.t("find-replace.replace.all-success",`${o}`)}),!0)}},I={id:"ui.operation.open-find-dialog",type:r.CommandType.OPERATION,handler:t=>{const e=t.get(b);return e.revealed?e.focusFindInput():e.start(),!0}},E={id:"ui.operation.open-replace-dialog",type:r.CommandType.OPERATION,handler:t=>{const e=t.get(b);return e.revealed?e.replaceRevealed?e.focusFindInput():e.revealReplace():e.start(!0),!0}},B={type:r.CommandType.OPERATION,id:"ui.operation.go-to-next-match",handler:t=>(t.get(b).moveToNextMatch(),!0)},k={type:r.CommandType.OPERATION,id:"ui.operation.go-to-previous-match",handler:t=>(t.get(b).moveToPreviousMatch(),!0)},N={findReplaceDialogContainer:"univer-find-replace-dialog-container",findReplaceExpandContainer:"univer-find-replace-expand-container",findReplaceButtonsGroup:"univer-find-replace-buttons-group",findReplaceButtonsGroupRight:"univer-find-replace-buttons-group-right"};function ee(t){const{findCompleted:e,localeService:i,matchesCount:n,matchesPosition:a,findString:s,findReplaceService:o,onChange:d,..._}=t,C=e&&n===0?i.t("find-replace.dialog.no-result"):n===0?" ":void 0;return h.jsx(p.InputWithSlot,{autoFocus:!0,placeholder:i.t("find-replace.dialog.find-placeholder"),slot:h.jsx(p.Pager,{loop:!0,text:C,value:a,total:n,onChange:m=>{a===n&&m===1?o.moveToNextMatch():a===1&&m===n||m<a?o.moveToPreviousMatch():o.moveToNextMatch()}}),value:s,onChange:m=>d==null?void 0:d(m),..._})}function te(t,e){const i=f.useCallback(()=>{var a;(a=document.querySelector(".univer-find-input input"))==null||a.focus()},[]),n=f.useCallback(()=>{const a=document.querySelectorAll(".univer-find-replace-dialog-container .univer-select-selection-search-input");return Array.from(a).some(s=>s===document.activeElement)},[]);return f.useImperativeHandle(e,()=>({focus:i,selectHasFocus:n})),f.useEffect(()=>{const a=t.focusSignal$.subscribe(()=>i());return()=>a.unsubscribe()},[t,i]),{focus:i,selectHasFocus:n}}const ve=f.forwardRef(function(e,i){const n=c.useDependency(r.LocaleService),a=c.useDependency(b),s=c.useDependency(r.ICommandService),o=c.useObservable(a.state$,void 0,!0),{findCompleted:d,findString:_,matchesCount:S,matchesPosition:C}=o,m=f.useCallback(()=>{s.executeCommand(E.id)},[s]),$=f.useCallback(R=>a.changeFindString(R),[a]);return te(a,i),h.jsxs(h.Fragment,{children:[h.jsx(ee,{findCompleted:d,className:"univer-find-input",matchesCount:S,matchesPosition:C,findReplaceService:a,localeService:n,findString:_,onChange:$}),h.jsx("div",{className:N.findReplaceExpandContainer,children:h.jsx(p.Button,{type:"text",size:"small",onClick:m,children:n.t("find-replace.dialog.advanced-finding")})})]})}),me=f.forwardRef(function(e,i){const n=c.useDependency(b),a=c.useDependency(r.LocaleService),s=c.useDependency(r.ICommandService),o=c.useDependency(c.IMessageService),d=c.useObservable(n.currentMatch$,void 0,!0),_=c.useObservable(n.replaceables$,void 0,!0),S=c.useObservable(n.state$,void 0,!0),{matchesCount:C,matchesPosition:m,findString:$,inputtingFindString:R,replaceString:Be,caseSensitive:ke,matchesTheWholeCell:je,findDirection:We,findScope:Ge,findBy:Ve,findCompleted:V}=S,He=R.length===0,Ke=C===0||!(d!=null&&d.replaceable),qe=_.length===0,ze=f.useCallback(g=>n.changeInputtingFindString(g),[n]),Ye=f.useCallback(g=>n.changeReplaceString(g),[n]),{focus:Ze}=te(n,i),Je=f.useCallback(()=>{$===R?n.moveToNextMatch():(n.changeFindString(R),n.find())},[$,R,n]),Qe=f.useCallback(()=>s.executeCommand(U.id),[s]),Xe=f.useCallback(async()=>{await s.executeCommand(w.id),Ze()},[s]),et=f.useCallback(g=>{n.changeFindDirection(g)},[n]),tt=f.useCallback(g=>{n.changeFindScope(g)},[n]),nt=f.useCallback(g=>{n.changeFindBy(g)},[n]),it=Ce(a),at=Me(a),st=be(a);return f.useEffect(()=>{V&&C===0&&o.show({content:a.t("find-replace.dialog.no-match"),type:p.MessageType.Warning,duration:5e3})},[V,C,o,a]),h.jsxs(h.Fragment,{children:[h.jsx(p.FormLayout,{label:a.t("find-replace.dialog.find"),children:h.jsx(ee,{findCompleted:V,className:"univer-find-input",matchesCount:C,matchesPosition:m,findReplaceService:n,localeService:a,findString:R,onChange:ze})}),h.jsx(p.FormLayout,{label:a.t("find-replace.dialog.replace"),children:h.jsx(p.Input,{placeholder:a.t("find-replace.dialog.replace-placeholder"),value:Be,onChange:g=>Ye(g)})}),h.jsx(p.FormLayout,{label:a.t("find-replace.dialog.find-direction.title"),children:h.jsx(p.Select,{value:We,options:at,onChange:et})}),h.jsx(p.FormDualColumnLayout,{children:h.jsxs(h.Fragment,{children:[h.jsx(p.FormLayout,{label:a.t("find-replace.dialog.find-scope.title"),children:h.jsx(p.Select,{value:Ge,options:it,onChange:tt})}),h.jsx(p.FormLayout,{label:a.t("find-replace.dialog.find-by.title"),children:h.jsx(p.Select,{value:Ve,options:st,onChange:nt})})]})}),h.jsx(p.FormDualColumnLayout,{children:h.jsxs(h.Fragment,{children:[h.jsx(p.FormLayout,{children:h.jsx(p.Checkbox,{checked:ke,onChange:g=>{n.changeCaseSensitive(g)},children:a.t("find-replace.dialog.case-sensitive")})}),h.jsx(p.FormLayout,{children:h.jsx(p.Checkbox,{checked:je,onChange:g=>{n.changeMatchesTheWholeCell(g)},children:a.t("find-replace.dialog.match-the-whole-cell")})})]})}),h.jsxs("div",{className:N.findReplaceButtonsGroup,children:[h.jsx(p.Button,{type:"primary",onClick:Je,disabled:He,children:a.t("find-replace.dialog.find")}),h.jsxs("span",{className:N.findReplaceButtonsGroupRight,children:[h.jsx(p.Button,{disabled:Ke,onClick:Qe,children:a.t("find-replace.dialog.replace")}),h.jsx(p.Button,{disabled:qe,onClick:Xe,children:a.t("find-replace.dialog.replace-all")})]})]})]})});function Se(){const t=c.useDependency(b),e=c.useDependency(c.ILayoutService),i=c.useDependency(r.IContextService),n=c.useObservable(t.state$,void 0,!0),a=f.useRef(null);f.useEffect(()=>{let _;return a.current&&(_=e.registerContainerElement(a.current)),()=>_==null?void 0:_.dispose()},[e]);const s=f.useRef(null),o=f.useCallback(_=>i.setContextValue(Z,_),[i]),d=f.useCallback(_=>i.setContextValue(Y,_),[i]);return f.useEffect(()=>{var S;const _=v.fromEvent(document,"focusin").subscribe(C=>{var m;C.target&&((m=a.current)!=null&&m.contains(C.target))?o(!0):o(!1),!s.current||!s.current.selectHasFocus()?d(!0):d(!1)});return(S=s.current)==null||S.focus(),o(!0),d(!0),()=>{_.unsubscribe(),o(!1)}},[o,d]),h.jsx("div",{className:N.findReplaceDialogContainer,ref:a,children:n.replaceRevealed?h.jsx(me,{ref:s}):h.jsx(ve,{ref:s})})}function Ce(t){const e=t.getCurrentLocale();return f.useMemo(()=>[{label:t.t("find-replace.dialog.find-scope.current-sheet"),value:O.SUBUNIT},{label:t.t("find-replace.dialog.find-scope.workbook"),value:O.UNIT}],[e])}function Me(t){const e=t.getCurrentLocale();return f.useMemo(()=>[{label:t.t("find-replace.dialog.find-direction.row"),value:D.ROW},{label:t.t("find-replace.dialog.find-direction.column"),value:D.COLUMN}],[e])}function be(t){const e=t.getCurrentLocale();return f.useMemo(()=>[{label:t.t("find-replace.dialog.find-by.value"),value:T.VALUE},{label:t.t("find-replace.dialog.find-by.formula"),value:T.FORMULA}],[e])}function F(t){return t.getContextValue(Z)}function ye(t){return t.getContextValue(J)}function ne(t){return t.getContextValue(Y)}const L="7_find-replace-shortcuts";function j(t){return t.getContextValue(r.FOCUSING_SHEET)}function W(t){return!t.getContextValue(r.EDITOR_ACTIVATED)}const Re={id:I.id,description:"find-replace.shortcut.open-find-dialog",binding:c.KeyCode.F|c.MetaKeys.CTRL_COMMAND,group:L,preconditions(t){return!F(t)&&j(t)&&W(t)}},Ie={id:I.id,description:"find-replace.shortcut.open-find-dialog",binding:c.KeyCode.F|c.MetaKeys.CTRL_COMMAND,mac:c.KeyCode.F|c.MetaKeys.MAC_CTRL,preconditions(t){return!F(t)&&j(t)&&W(t)}},Fe={id:E.id,description:"find-replace.shortcut.open-replace-dialog",binding:c.KeyCode.H|c.MetaKeys.CTRL_COMMAND,mac:c.KeyCode.H|c.MetaKeys.MAC_CTRL,group:L,preconditions(t){return j(t)&&W(t)&&(!F(t)||!ye(t))}},De={id:B.id,description:"find-replace.shortcut.go-to-next-match",binding:c.KeyCode.ENTER,group:L,priority:1e3,preconditions(t){return ne(t)&&F(t)}},Te={id:k.id,description:"find-replace.shortcut.go-to-previous-match",binding:c.KeyCode.ENTER|c.MetaKeys.SHIFT,group:L,priority:1e3,preconditions(t){return ne(t)&&F(t)}};function Oe(t){const e=t.get(r.IContextService);return{id:I.id,icon:"SearchIcon",tooltip:"find-replace.toolbar",type:c.MenuItemType.BUTTON,hidden$:c.getMenuHiddenObservable(t,r.UniverInstanceType.UNIVER_SHEET),disabled$:v.combineLatest([e.subscribeContextValue$(r.EDITOR_ACTIVATED),e.subscribeContextValue$(r.FOCUSING_SHEET)]).pipe(v.map(([i,n])=>i||!n))}}const Pe={[c.RibbonStartGroup.OTHERS]:{[I.id]:{order:2,menuItemFactory:Oe}}};var Ee=Object.getOwnPropertyDescriptor,Ne=(t,e,i,n)=>{for(var a=n>1?void 0:n?Ee(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(a=o(a)||a);return a},y=(t,e)=>(i,n)=>e(i,n,t);const ie="DESKTOP_FIND_REPLACE_DIALOG",ae=350,Le=20,$e=-90;l.FindReplaceController=class extends r.RxDisposable{constructor(i,n,a,s,o,d,_,S,C,m){super();u(this,"_closingListenerDisposable");this._univerInstanceService=i,this._menuManagerService=n,this._shortcutService=a,this._commandService=s,this._findReplaceService=o,this._dialogService=d,this._layoutService=_,this._localeService=S,this._componentManager=C,this._injector=m,this._initCommands(),this._initUI(),this._initShortcuts()}dispose(){var i;super.dispose(),(i=this._closingListenerDisposable)==null||i.dispose(),this._closingListenerDisposable=null}_initCommands(){[I,E,B,k,w,U].forEach(i=>{this.disposeWithMe(this._commandService.registerCommand(i))})}_initShortcuts(){[Fe,Re,Ie,Te,De].forEach(i=>this.disposeWithMe(this._shortcutService.registerShortcut(i)))}_initUI(){this.disposeWithMe(this._componentManager.register("FindReplaceDialog",Se)),this.disposeWithMe(this._componentManager.register("SearchIcon",z)),this._menuManagerService.mergeMenu(Pe),this._findReplaceService.stateUpdates$.pipe(v.takeUntil(this.dispose$)).subscribe(i=>{i.revealed===!0&&this._openPanel()})}_openPanel(){this._dialogService.open({id:ie,draggable:!0,width:ae,title:{title:this._localeService.t("find-replace.dialog.title")},children:{label:"FindReplaceDialog"},destroyOnClose:!0,defaultPosition:Ae(),preservePositionOnDestroy:!0,onClose:()=>this.closePanel()}),this._closingListenerDisposable=r.toDisposable(this._univerInstanceService.focused$.pipe(v.takeUntil(this.dispose$)).subscribe(i=>{(!i||!this._univerInstanceService.getUniverSheetInstance(i))&&this.closePanel()}))}closePanel(){this._closingListenerDisposable&&(this._closingListenerDisposable.dispose(),this._closingListenerDisposable=null,this._dialogService.close(ie),this._findReplaceService.terminate(),queueMicrotask(()=>this._layoutService.focus()))}},l.FindReplaceController=Ne([y(0,r.IUniverInstanceService),y(1,c.IMenuManagerService),y(2,c.IShortcutService),y(3,r.ICommandService),y(4,b),y(5,c.IDialogService),y(6,c.ILayoutService),y(7,r.Inject(r.LocaleService)),y(8,r.Inject(c.ComponentManager)),y(9,r.Inject(r.Injector))],l.FindReplaceController);function Ae(){const{innerWidth:t}=window;return{x:(t-ae)/2-Le,y:$e}}var xe=Object.getOwnPropertyDescriptor,Ue=(t,e,i,n)=>{for(var a=n>1?void 0:n?xe(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(a=o(a)||a);return a},se=(t,e)=>(i,n)=>e(i,n,t);const we="UNIVER_FIND_REPLACE_PLUGIN";l.UniverFindReplacePlugin=(G=class extends r.Plugin{constructor(e=H,i,n){super(),this._config=e,this._injector=i,this._configService=n;const{...a}=r.merge({},H,this._config);this._configService.setConfig(oe,a)}onStarting(){[[l.FindReplaceController],[b,{useClass:x}]].forEach(e=>this._injector.add(e))}onRendered(){this._injector.get(l.FindReplaceController)}},u(G,"pluginName",we),G),l.UniverFindReplacePlugin=Ue([se(1,r.Inject(r.Injector)),se(2,r.IConfigService)],l.UniverFindReplacePlugin),l.FindBy=T,l.FindDirection=D,l.FindModel=pe,l.FindReplaceState=X,l.FindScope=O,l.GoToNextMatchOperation=B,l.GoToPreviousMatchOperation=k,l.IFindReplaceService=b,l.OpenFindDialogOperation=I,l.OpenReplaceDialogOperation=E,l.ReplaceAllMatchesCommand=w,l.ReplaceCurrentMatchCommand=U,l.createInitFindReplaceState=P,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
1
+ (function(l,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@univerjs/core"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/design"),require("@univerjs/engine-render"),require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/ui","rxjs","@univerjs/design","@univerjs/engine-render","react/jsx-runtime","react"],o):(l=typeof globalThis<"u"?globalThis:l||self,o(l.UniverFindReplace={},l.UniverCore,l.UniverUi,l.rxjs,l.UniverDesign,l.UniverEngineRender,l.React,l.React))})(this,function(l,o,c,v,p,re,h,f){"use strict";var rt=Object.defineProperty;var ot=(l,o,c)=>o in l?rt(l,o,{enumerable:!0,configurable:!0,writable:!0,value:c}):l[o]=c;var u=(l,o,c)=>ot(l,typeof o!="symbol"?o+"":o,c);var G;const oe="find-replace.config",K={};var M=function(){return M=Object.assign||function(i){for(var e,n=1,t=arguments.length;n<t;n++){e=arguments[n];for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(i[a]=e[a])}return i},M.apply(this,arguments)},ce=function(i,e){var n={};for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&e.indexOf(t)<0&&(n[t]=i[t]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,t=Object.getOwnPropertySymbols(i);a<t.length;a++)e.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(i,t[a])&&(n[t[a]]=i[t[a]]);return n},H=f.forwardRef(function(i,e){var n=i.icon,t=i.id,a=i.className,s=i.extend,r=ce(i,["icon","id","className","extend"]),d="univerjs-icon univerjs-icon-".concat(t," ").concat(a||"").trim(),_=f.useRef("_".concat(he()));return q(n,"".concat(t),{defIds:n.defIds,idSuffix:_.current},M({ref:e,className:d},r),s)});function q(i,e,n,t,a){return f.createElement(i.tag,M(M({key:e},le(i,n,a)),t),(de(i,n).children||[]).map(function(s,r){return q(s,"".concat(e,"-").concat(i.tag,"-").concat(r),n,void 0,a)}))}function le(i,e,n){var t=M({},i.attrs);n!=null&&n.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=n.colorChannel1),i.tag==="mask"&&t.id&&(t.id=t.id+e.idSuffix),Object.entries(t).forEach(function(s){var r=s[0],d=s[1];r==="mask"&&typeof d=="string"&&(t[r]=d.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))});var a=e.defIds;return!a||a.length===0||(i.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+e.idSuffix),Object.entries(t).forEach(function(s){var r=s[0],d=s[1];typeof d=="string"&&(t[r]=d.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),t}function de(i,e){var n,t=e.defIds;return!t||t.length===0?i:i.tag==="defs"&&(!((n=i.children)===null||n===void 0)&&n.length)?M(M({},i),{children:i.children.map(function(a){return typeof a.attrs.id=="string"&&t&&t.indexOf(a.attrs.id)>-1?M(M({},a),{attrs:M(M({},a.attrs),{id:a.attrs.id+e.idSuffix})}):a})}):i}function he(){return Math.random().toString(36).substring(2,8)}H.displayName="UniverIcon";var ue={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M7.71899 1.36938C4.37604 1.36938 1.66602 4.07941 1.66602 7.42236C1.66602 10.7653 4.37604 13.4753 7.71899 13.4753C9.16744 13.4753 10.4971 12.9666 11.5389 12.118L13.6598 14.4109C13.8848 14.6542 14.2644 14.669 14.5077 14.444C14.7509 14.219 14.7657 13.8393 14.5407 13.5961L12.3906 11.2716C13.2536 10.2254 13.772 8.88442 13.772 7.42236C13.772 4.07941 11.0619 1.36938 7.71899 1.36938ZM2.86602 7.42236C2.86602 4.74215 5.03878 2.56938 7.71899 2.56938C10.3992 2.56938 12.572 4.74215 12.572 7.42236C12.572 10.1026 10.3992 12.2753 7.71899 12.2753C5.03878 12.2753 2.86602 10.1026 2.86602 7.42236Z",fillRule:"evenodd",clipRule:"evenodd"}}]},z=f.forwardRef(function(i,e){return f.createElement(H,Object.assign({},i,{id:"search-single",ref:e,icon:ue}))});z.displayName="SearchSingle";const Y="FIND_REPLACE_INPUT_FOCUS",Z="FIND_REPLACE_DIALOG_FOCUS",J="FIND_REPLACE_REPLACE_REVEALED";var fe=Object.getOwnPropertyDescriptor,Q=(i,e,n,t)=>{for(var a=t>1?void 0:t?fe(e,n):e,s=i.length-1,r;s>=0;s--)(r=i[s])&&(a=r(a)||a);return a},A=(i,e)=>(n,t)=>e(n,t,i);class pe extends o.Disposable{}const b=o.createIdentifier("find-replace.service");function _e(i){return typeof i.findString<"u"||typeof i.inputtingFindString<"u"||typeof i.findDirection<"u"||typeof i.matchesTheWholeCell<"u"||typeof i.caseSensitive<"u"||typeof i.findScope<"u"||typeof i.findBy<"u"}l.FindReplaceModel=class extends o.Disposable{constructor(n,t,a){super();u(this,"currentMatch$",new v.BehaviorSubject(null));u(this,"replaceables$",new v.BehaviorSubject([]));u(this,"_findModels",[]);u(this,"_matchingModel",null);u(this,"_matches",[]);u(this,"_currentSearchingDisposables",null);this._state=n,this._providers=t,this._univerInstanceService=a,this.disposeWithMe(this._state.stateUpdates$.pipe(v.throttleTime(200,void 0,{leading:!0,trailing:!0})).subscribe(async s=>{const r=this._state.state;_e(s)&&(r.findString!==""&&!r.replaceRevealed?(await this._startSearching(),this._state.changeState({findCompleted:!0})):s.replaceRevealed!==!0&&this._stopSearching())}))}get searched(){return this._findModels.length>0}dispose(){super.dispose(),this._stopSearching(),this.currentMatch$.complete(),this.replaceables$.complete(),this._state.changeState({...E(),revealed:!1})}async start(){if(!this._state.findString)return{results:[]};const n=await this._startSearching();return this._state.changeState({findCompleted:!0}),n}async _startSearching(){if(!this._state.findString)return{results:[]};const n=Array.from(this._providers),t=this._findModels=(await Promise.all(n.map(s=>s.find({findString:this._state.findString,findDirection:this._state.findDirection,findScope:this._state.findScope,findBy:this._state.findBy,replaceRevealed:this._state.replaceRevealed,caseSensitive:this._state.caseSensitive,matchesTheWholeCell:this._state.matchesTheWholeCell})))).flat();this._subscribeToModelsChanges(t);const a=this._matches=t.map(s=>s.getMatches()).flat();return this.replaceables$.next(a.filter(s=>s.replaceable)),a.length?(this._moveToInitialMatch(t),this._state.changeState({matchesCount:a.length}),{results:a}):(this._state.changeState({matchesCount:0,matchesPosition:0}),{results:[]})}_stopSearching(){var n;this._providers.forEach(t=>t.terminate()),this._findModels=[],this._matches=[],this._matchingModel=null,(n=this._currentSearchingDisposables)==null||n.dispose(),this._currentSearchingDisposables=null,this.currentMatch$.next(null),this.replaceables$.next([]),this._state.changeState({findCompleted:!1,matchesCount:0,matchesPosition:0})}_subscribeToModelsChanges(n){const t=this._currentSearchingDisposables=new o.DisposableCollection,a=v.combineLatest(n.map(s=>s.matchesUpdate$)).pipe(v.debounceTime(220)).subscribe(([...s])=>{const r=this._matches=s.flat();r.length?(this._moveToInitialMatch(this._findModels,!0),this._state.changeState({matchesCount:r.length}),this.replaceables$.next(r.filter(d=>d.replaceable))):(this._state.changeState({matchesCount:0,matchesPosition:0}),this.replaceables$.next([]))});n.forEach(s=>t.add(o.toDisposable(s.activelyChangingMatch$.subscribe(r=>{const d=this._matches.findIndex(_=>_===r);this._state.changeState({matchesPosition:d+1})})))),t.add(o.toDisposable(a))}async replace(){return this._matchingModel?this._matchingModel.replace(this._state.replaceString):!1}async replaceAll(){const n=await Promise.all(this._findModels.map(t=>t.replaceAll(this._state.replaceString))).then(t=>t.reduce((a,s)=>(a.success+=s.success,a.failure+=s.failure,a),{success:0,failure:0}));return n.failure===0&&this._stopSearching(),n}getCurrentMatch(){return this._state.matchesPosition>0?this._matches[this._state.matchesPosition-1]:null}_markMatch(n){const t=this._matches.findIndex(a=>a===n);this.currentMatch$.next(n),this._state.changeState({matchesPosition:t+1})}moveToNextMatch(){if(!this._matchingModel)return;const n=this._findModels.length===1,t=this._matchingModel.moveToNextMatch({loop:n});if(t)return this._markMatch(t),t;{const a=this._findModels.findIndex(s=>s===this._matchingModel);return this._moveToNextUnitMatch(a)}}_moveToNextUnitMatch(n){const t=this._findModels.length;for(let a=(n+1)%t;a!==n;){const s=this._findModels[a],r=s.moveToNextMatch({ignoreSelection:!0});if(r)return this._matchingModel=s,this._markMatch(r),r;a=(a+1)%t}if(this._matchingModel){const a=this._matchingModel.moveToNextMatch({ignoreSelection:!0});return a&&this._markMatch(a),a}}moveToPreviousMatch(){if(!this._matchingModel)return;const n=this._findModels.length===1,t=this._matchingModel.moveToPreviousMatch({loop:n});if(t){const a=this._matches.findIndex(s=>s===t);return this.currentMatch$.next(t),this._state.changeState({matchesPosition:a+1}),t}else{const a=this._findModels.length,s=this._findModels.findIndex(d=>d===this._matchingModel);for(let d=(s-1+a)%a;d!==s;){const _=this._findModels[d],S=_.moveToPreviousMatch({ignoreSelection:!0});if(S)return this._matchingModel=_,this._markMatch(S),S;d=(d-1)%a}const r=this._matchingModel.moveToPreviousMatch({ignoreSelection:!0});return r&&this._markMatch(r),r}}_moveToInitialMatch(n,t=!1){var r;const a=(r=this._univerInstanceService.getFocusedUnit())==null?void 0:r.getUnitId();if(!a)return-1;const s=n.findIndex(d=>d.unitId===a);if(s!==-1){this._matchingModel=n[s];const d=this._matchingModel.moveToNextMatch({stayIfOnMatch:!0,noFocus:t});if(d)return this._markMatch(d),s}return this._moveToNextUnitMatch(s),0}},l.FindReplaceModel=Q([A(2,o.IUniverInstanceService)],l.FindReplaceModel);var D=(i=>(i.ROW="row",i.COLUMN="column",i))(D||{}),T=(i=>(i.VALUE="value",i.FORMULA="formula",i))(T||{}),O=(i=>(i.SUBUNIT="subunit",i.UNIT="unit",i))(O||{});function E(){return{caseSensitive:!1,findBy:"value",findCompleted:!1,findDirection:"row",findScope:"subunit",findString:"",inputtingFindString:"",matchesCount:0,matchesPosition:0,matchesTheWholeCell:!1,replaceRevealed:!1,replaceString:"",revealed:!0}}class X{constructor(){u(this,"_stateUpdates$",new v.Subject);u(this,"stateUpdates$",this._stateUpdates$.asObservable());u(this,"_state$",new v.BehaviorSubject(E()));u(this,"state$",this._state$.asObservable());u(this,"_findString","");u(this,"_inputtingFindString","");u(this,"_replaceString","");u(this,"_revealed",!1);u(this,"_replaceRevealed",!1);u(this,"_matchesPosition",0);u(this,"_matchesCount",0);u(this,"_caseSensitive",!0);u(this,"_matchesTheWholeCell",!1);u(this,"_findDirection","row");u(this,"_findScope","subunit");u(this,"_findBy","value");u(this,"_findCompleted",!1)}get state(){return this._state$.getValue()}get inputtingFindString(){return this._inputtingFindString}get findString(){return this._findString}get revealed(){return this._revealed}get replaceRevealed(){return this._replaceRevealed}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get replaceString(){return this._replaceString}get caseSensitive(){return this._caseSensitive}get matchesTheWholeCell(){return this._matchesTheWholeCell}get findDirection(){return this._findDirection}get findScope(){return this._findScope}get findBy(){return this._findBy}get findCompleted(){return this._findCompleted}changeState(e){let n=!1;const t={};typeof e.findString<"u"&&e.findString!==this._findString&&(this._findString=e.findString,t.findString=this._findString,n=!0),typeof e.revealed<"u"&&e.revealed!==this._revealed&&(this._revealed=e.revealed,t.revealed=e.revealed,n=!0),typeof e.replaceRevealed<"u"&&e.replaceRevealed!==this._replaceRevealed&&(this._replaceRevealed=e.replaceRevealed,t.replaceRevealed=e.replaceRevealed,n=!0),typeof e.replaceString<"u"&&e.replaceString!==this._replaceString&&(this._replaceString=e.replaceString,t.replaceString=e.replaceString,n=!0),typeof e.matchesCount<"u"&&e.matchesCount!==this._matchesCount&&(this._matchesCount=e.matchesCount,t.matchesCount=e.matchesCount,n=!0),typeof e.matchesPosition<"u"&&e.matchesPosition!==this._matchesPosition&&(this._matchesPosition=e.matchesPosition,t.matchesPosition=e.matchesPosition,n=!0),typeof e.findBy<"u"&&e.findBy!==this._findBy&&(this._findBy=e.findBy,t.findBy=e.findBy,n=!0),typeof e.findScope<"u"&&e.findScope!==this._findScope&&(this._findScope=e.findScope,t.findScope=e.findScope,n=!0),typeof e.findDirection<"u"&&e.findDirection!==this._findDirection&&(this._findDirection=e.findDirection,t.findDirection=e.findDirection,n=!0),typeof e.caseSensitive<"u"&&e.caseSensitive!==this._caseSensitive&&(this._caseSensitive=e.caseSensitive,t.caseSensitive=e.caseSensitive,n=!0),typeof e.matchesTheWholeCell<"u"&&e.matchesTheWholeCell!==this._matchesTheWholeCell&&(this._matchesTheWholeCell=e.matchesTheWholeCell,t.matchesTheWholeCell=e.matchesTheWholeCell,n=!0),typeof e.inputtingFindString<"u"&&e.inputtingFindString!==this._inputtingFindString&&(this._inputtingFindString=e.inputtingFindString,t.inputtingFindString=e.inputtingFindString,n=!0),typeof e.findCompleted<"u"&&e.findCompleted!==this._findCompleted&&(this._findCompleted=e.findCompleted,t.findCompleted=e.findCompleted,n=!0),n&&(this._state$.next({caseSensitive:this._caseSensitive,findBy:this._findBy,findCompleted:this._findCompleted,findDirection:this._findDirection,findScope:this._findScope,findString:this._findString,inputtingFindString:this._inputtingFindString,matchesCount:this._matchesCount,matchesPosition:this._matchesPosition,matchesTheWholeCell:this._matchesTheWholeCell,replaceRevealed:this._replaceRevealed,revealed:this._revealed}),this._stateUpdates$.next(t))}}let x=class extends o.Disposable{constructor(e,n){super();u(this,"_providers",new Set);u(this,"_state",new X);u(this,"_model");u(this,"_currentMatch$",new v.BehaviorSubject(null));u(this,"currentMatch$",this._currentMatch$.asObservable());u(this,"_replaceables$",new v.BehaviorSubject([]));u(this,"replaceables$",this._replaceables$.asObservable());u(this,"_focusSignal$",new v.Subject);u(this,"focusSignal$",this._focusSignal$.asObservable());this._injector=e,this._contextService=n}get stateUpdates$(){return this._state.stateUpdates$}get state$(){return this._state.state$}get revealed(){return this._state.revealed}get replaceRevealed(){return this._state.replaceRevealed}dispose(){super.dispose(),this._currentMatch$.next(null),this._currentMatch$.complete(),this._replaceables$.next([]),this._replaceables$.complete(),this._focusSignal$.complete()}getProviders(){return this._providers}getCurrentMatch(){var e;return(e=this._model)==null?void 0:e.getCurrentMatch()}getFindString(){return this._state.findString}changeFindString(e){this._state.changeState({findString:e})}focusFindInput(){this._focusSignal$.next()}changeInputtingFindString(e){e?this._state.changeState({inputtingFindString:e}):this._state.changeState({inputtingFindString:"",findString:""})}changeReplaceString(e){this._state.changeState({replaceString:e})}changeMatchesTheWholeCell(e){this._state.changeState({matchesTheWholeCell:e})}changeCaseSensitive(e){this._state.changeState({caseSensitive:e})}changeFindBy(e){this._state.changeState({findBy:e}),this._toggleDisplayRawFormula(e==="formula")}changeFindScope(e){this._state.changeState({findScope:e})}changeFindDirection(e){this._state.changeState({findDirection:e})}moveToNextMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToNextMatch(),this._focusSignal$.next())}moveToPreviousMatch(){this._model&&(this._state.replaceRevealed&&!this._model.searched?(this._state.changeState({findString:this._state.inputtingFindString}),this._model.start()):this._model.moveToPreviousMatch(),this._focusSignal$.next())}async replace(){return this._model?this._model.replace():!1}async replaceAll(){if(!this._model)throw new Error("[FindReplaceService] replaceAll: model is not initialized!");return this._model.replaceAll()}revealReplace(){this._state.changeState({replaceRevealed:!0,inputtingFindString:this._state.findString}),this._toggleRevealReplace(!0)}start(e=!1){if(this._providers.size===0)return!1;this._model=this._injector.createInstance(l.FindReplaceModel,this._state,this._providers),this._model.currentMatch$.subscribe(t=>this._currentMatch$.next(t)),this._model.replaceables$.subscribe(t=>this._replaceables$.next(t));const n=E();return e&&(n.replaceRevealed=!0),this._state.changeState(n),this._toggleRevealReplace(e),!0}find(){var e;(e=this._model)==null||e.start()}terminate(){var e;(e=this._model)==null||e.dispose(),this._model=null,this._toggleDisplayRawFormula(!1),this._toggleRevealReplace(!1)}registerFindReplaceProvider(e){return this._providers.add(e),o.toDisposable(()=>this._providers.delete(e))}_toggleRevealReplace(e){this._contextService.setContextValue(J,e)}_toggleDisplayRawFormula(e){this._contextService.setContextValue(re.RENDER_RAW_FORMULA_KEY,e)}};x=Q([A(0,o.Inject(o.Injector)),A(1,o.IContextService)],x);const U={id:"ui.command.replace-current-match",type:o.CommandType.COMMAND,handler:i=>i.get(b).replace()},ge="CONFIRM_REPLACE_ALL",w={id:"ui.command.replace-all-matches",type:o.CommandType.COMMAND,handler:async i=>{const e=i.get(c.IConfirmService),n=i.get(o.LocaleService),t=i.get(c.IMessageService);if(!await e.confirm({id:ge,title:{title:n.t("find-replace.replace.confirm.title")},cancelText:n.t("button.cancel"),confirmText:n.t("button.confirm")}))return!1;const s=await i.get(b).replaceAll(),{success:r,failure:d}=s;return d>0?(r===0?t.show({type:p.MessageType.Error,content:n.t("find-replace.replace.all-failure")}):t.show({type:p.MessageType.Warning,content:n.t("find-replace.replace.partial-success",`${r}`,`${d}`)}),!1):(t.show({type:p.MessageType.Success,content:n.t("find-replace.replace.all-success",`${r}`)}),!0)}},I={id:"ui.operation.open-find-dialog",type:o.CommandType.OPERATION,handler:i=>{const e=i.get(b);return e.revealed?e.focusFindInput():e.start(),!0}},P={id:"ui.operation.open-replace-dialog",type:o.CommandType.OPERATION,handler:i=>{const e=i.get(b);return e.revealed?e.replaceRevealed?e.focusFindInput():e.revealReplace():e.start(!0),!0}},B={type:o.CommandType.OPERATION,id:"ui.operation.go-to-next-match",handler:i=>(i.get(b).moveToNextMatch(),!0)},k={type:o.CommandType.OPERATION,id:"ui.operation.go-to-previous-match",handler:i=>(i.get(b).moveToPreviousMatch(),!0)},N={findReplaceDialogContainer:"univer-find-replace-dialog-container",findReplaceExpandContainer:"univer-find-replace-expand-container",findReplaceButtonsGroup:"univer-find-replace-buttons-group",findReplaceButtonsGroupRight:"univer-find-replace-buttons-group-right"};function ee(i){const{findCompleted:e,localeService:n,matchesCount:t,matchesPosition:a,findString:s,findReplaceService:r,onChange:d,..._}=i,C=e&&t===0?n.t("find-replace.dialog.no-result"):t===0?" ":void 0;return h.jsx(p.InputWithSlot,{autoFocus:!0,placeholder:n.t("find-replace.dialog.find-placeholder"),slot:h.jsx(p.Pager,{loop:!0,text:C,value:a,total:t,onChange:m=>{a===t&&m===1?r.moveToNextMatch():a===1&&m===t||m<a?r.moveToPreviousMatch():r.moveToNextMatch()}}),value:s,onChange:m=>d==null?void 0:d(m),..._})}function te(i,e){const n=f.useCallback(()=>{var a;(a=document.querySelector(".univer-find-input input"))==null||a.focus()},[]),t=f.useCallback(()=>{const a=document.querySelectorAll(".univer-find-replace-dialog-container .univer-select-selection-search-input");return Array.from(a).some(s=>s===document.activeElement)},[]);return f.useImperativeHandle(e,()=>({focus:n,selectHasFocus:t})),f.useEffect(()=>{const a=i.focusSignal$.subscribe(()=>n());return()=>a.unsubscribe()},[i,n]),{focus:n,selectHasFocus:t}}const ve=f.forwardRef(function(e,n){const t=c.useDependency(o.LocaleService),a=c.useDependency(b),s=c.useDependency(o.ICommandService),r=c.useObservable(a.state$,void 0,!0),{findCompleted:d,findString:_,matchesCount:S,matchesPosition:C}=r,m=f.useCallback(()=>{s.executeCommand(P.id)},[s]),$=f.useCallback(R=>a.changeFindString(R),[a]);return te(a,n),h.jsxs(h.Fragment,{children:[h.jsx(ee,{findCompleted:d,className:"univer-find-input",matchesCount:S,matchesPosition:C,findReplaceService:a,localeService:t,findString:_,onChange:$}),h.jsx("div",{className:N.findReplaceExpandContainer,children:h.jsx(p.Button,{type:"text",size:"small",onClick:m,children:t.t("find-replace.dialog.advanced-finding")})})]})}),me=f.forwardRef(function(e,n){const t=c.useDependency(b),a=c.useDependency(o.LocaleService),s=c.useDependency(o.ICommandService),r=c.useDependency(c.IMessageService),d=c.useObservable(t.currentMatch$,void 0,!0),_=c.useObservable(t.replaceables$,void 0,!0),S=c.useObservable(t.state$,void 0,!0),{matchesCount:C,matchesPosition:m,findString:$,inputtingFindString:R,replaceString:Be,caseSensitive:ke,matchesTheWholeCell:je,findDirection:We,findScope:Ge,findBy:Ve,findCompleted:V}=S,Ke=R.length===0,He=C===0||!(d!=null&&d.replaceable),qe=_.length===0,ze=f.useCallback(g=>t.changeInputtingFindString(g),[t]),Ye=f.useCallback(g=>t.changeReplaceString(g),[t]),{focus:Ze}=te(t,n),Je=f.useCallback(()=>{$===R?t.moveToNextMatch():(t.changeFindString(R),t.find())},[$,R,t]),Qe=f.useCallback(()=>s.executeCommand(U.id),[s]),Xe=f.useCallback(async()=>{await s.executeCommand(w.id),Ze()},[s]),et=f.useCallback(g=>{t.changeFindDirection(g)},[t]),tt=f.useCallback(g=>{t.changeFindScope(g)},[t]),it=f.useCallback(g=>{t.changeFindBy(g)},[t]),nt=Ce(a),at=Me(a),st=be(a);return f.useEffect(()=>{V&&C===0&&r.show({content:a.t("find-replace.dialog.no-match"),type:p.MessageType.Warning,duration:5e3})},[V,C,r,a]),h.jsxs(h.Fragment,{children:[h.jsx(p.FormLayout,{label:a.t("find-replace.dialog.find"),children:h.jsx(ee,{findCompleted:V,className:"univer-find-input",matchesCount:C,matchesPosition:m,findReplaceService:t,localeService:a,findString:R,onChange:ze})}),h.jsx(p.FormLayout,{label:a.t("find-replace.dialog.replace"),children:h.jsx(p.Input,{placeholder:a.t("find-replace.dialog.replace-placeholder"),value:Be,onChange:g=>Ye(g)})}),h.jsx(p.FormLayout,{label:a.t("find-replace.dialog.find-direction.title"),children:h.jsx(p.Select,{value:We,options:at,onChange:et})}),h.jsx(p.FormDualColumnLayout,{children:h.jsxs(h.Fragment,{children:[h.jsx(p.FormLayout,{label:a.t("find-replace.dialog.find-scope.title"),children:h.jsx(p.Select,{value:Ge,options:nt,onChange:tt})}),h.jsx(p.FormLayout,{label:a.t("find-replace.dialog.find-by.title"),children:h.jsx(p.Select,{value:Ve,options:st,onChange:it})})]})}),h.jsx(p.FormDualColumnLayout,{children:h.jsxs(h.Fragment,{children:[h.jsx(p.FormLayout,{children:h.jsx(p.Checkbox,{checked:ke,onChange:g=>{t.changeCaseSensitive(g)},children:a.t("find-replace.dialog.case-sensitive")})}),h.jsx(p.FormLayout,{children:h.jsx(p.Checkbox,{checked:je,onChange:g=>{t.changeMatchesTheWholeCell(g)},children:a.t("find-replace.dialog.match-the-whole-cell")})})]})}),h.jsxs("div",{className:N.findReplaceButtonsGroup,children:[h.jsx(p.Button,{type:"primary",onClick:Je,disabled:Ke,children:a.t("find-replace.dialog.find")}),h.jsxs("span",{className:N.findReplaceButtonsGroupRight,children:[h.jsx(p.Button,{disabled:He,onClick:Qe,children:a.t("find-replace.dialog.replace")}),h.jsx(p.Button,{disabled:qe,onClick:Xe,children:a.t("find-replace.dialog.replace-all")})]})]})]})});function Se(){const i=c.useDependency(b),e=c.useDependency(c.ILayoutService),n=c.useDependency(o.IContextService),t=c.useObservable(i.state$,void 0,!0),a=f.useRef(null);f.useEffect(()=>{let _;return a.current&&(_=e.registerContainerElement(a.current)),()=>_==null?void 0:_.dispose()},[e]);const s=f.useRef(null),r=f.useCallback(_=>n.setContextValue(Z,_),[n]),d=f.useCallback(_=>n.setContextValue(Y,_),[n]);return f.useEffect(()=>{var S;const _=v.fromEvent(document,"focusin").subscribe(C=>{var m;C.target&&((m=a.current)!=null&&m.contains(C.target))?r(!0):r(!1),!s.current||!s.current.selectHasFocus()?d(!0):d(!1)});return(S=s.current)==null||S.focus(),r(!0),d(!0),()=>{_.unsubscribe(),r(!1)}},[r,d]),h.jsx("div",{className:N.findReplaceDialogContainer,ref:a,children:t.replaceRevealed?h.jsx(me,{ref:s}):h.jsx(ve,{ref:s})})}function Ce(i){const e=i.getCurrentLocale();return f.useMemo(()=>[{label:i.t("find-replace.dialog.find-scope.current-sheet"),value:O.SUBUNIT},{label:i.t("find-replace.dialog.find-scope.workbook"),value:O.UNIT}],[e])}function Me(i){const e=i.getCurrentLocale();return f.useMemo(()=>[{label:i.t("find-replace.dialog.find-direction.row"),value:D.ROW},{label:i.t("find-replace.dialog.find-direction.column"),value:D.COLUMN}],[e])}function be(i){const e=i.getCurrentLocale();return f.useMemo(()=>[{label:i.t("find-replace.dialog.find-by.value"),value:T.VALUE},{label:i.t("find-replace.dialog.find-by.formula"),value:T.FORMULA}],[e])}function F(i){return i.getContextValue(Z)}function ye(i){return i.getContextValue(J)}function ie(i){return i.getContextValue(Y)}const L="7_find-replace-shortcuts";function j(i){return i.getContextValue(o.FOCUSING_SHEET)}function W(i){return!i.getContextValue(o.EDITOR_ACTIVATED)}const Re={id:I.id,description:"find-replace.shortcut.open-find-dialog",binding:c.KeyCode.F|c.MetaKeys.CTRL_COMMAND,group:L,preconditions(i){return!F(i)&&j(i)&&W(i)}},Ie={id:I.id,description:"find-replace.shortcut.open-find-dialog",binding:c.KeyCode.F|c.MetaKeys.CTRL_COMMAND,mac:c.KeyCode.F|c.MetaKeys.MAC_CTRL,preconditions(i){return!F(i)&&j(i)&&W(i)}},Fe={id:P.id,description:"find-replace.shortcut.open-replace-dialog",binding:c.KeyCode.H|c.MetaKeys.CTRL_COMMAND,mac:c.KeyCode.H|c.MetaKeys.MAC_CTRL,group:L,preconditions(i){return j(i)&&W(i)&&(!F(i)||!ye(i))}},De={id:B.id,description:"find-replace.shortcut.go-to-next-match",binding:c.KeyCode.ENTER,group:L,priority:1e3,preconditions(i){return ie(i)&&F(i)}},Te={id:k.id,description:"find-replace.shortcut.go-to-previous-match",binding:c.KeyCode.ENTER|c.MetaKeys.SHIFT,group:L,priority:1e3,preconditions(i){return ie(i)&&F(i)}};function Oe(i){const e=i.get(o.IContextService);return{id:I.id,icon:"SearchIcon",tooltip:"find-replace.toolbar",type:c.MenuItemType.BUTTON,hidden$:c.getMenuHiddenObservable(i,o.UniverInstanceType.UNIVER_SHEET),disabled$:v.combineLatest([e.subscribeContextValue$(o.EDITOR_ACTIVATED),e.subscribeContextValue$(o.FOCUSING_SHEET)]).pipe(v.map(([n,t])=>n||!t))}}const Ee={[c.RibbonStartGroup.OTHERS]:{[I.id]:{order:2,menuItemFactory:Oe}}};var Pe=Object.getOwnPropertyDescriptor,Ne=(i,e,n,t)=>{for(var a=t>1?void 0:t?Pe(e,n):e,s=i.length-1,r;s>=0;s--)(r=i[s])&&(a=r(a)||a);return a},y=(i,e)=>(n,t)=>e(n,t,i);const ne="DESKTOP_FIND_REPLACE_DIALOG",ae=350,Le=20,$e=-90;l.FindReplaceController=class extends o.RxDisposable{constructor(n,t,a,s,r,d,_,S,C,m){super();u(this,"_closingListenerDisposable");this._univerInstanceService=n,this._menuManagerService=t,this._shortcutService=a,this._commandService=s,this._findReplaceService=r,this._dialogService=d,this._layoutService=_,this._localeService=S,this._componentManager=C,this._injector=m,this._initCommands(),this._initUI(),this._initShortcuts()}dispose(){var n;super.dispose(),(n=this._closingListenerDisposable)==null||n.dispose(),this._closingListenerDisposable=null}_initCommands(){[I,P,B,k,w,U].forEach(n=>{this.disposeWithMe(this._commandService.registerCommand(n))})}_initShortcuts(){[Fe,Re,Ie,Te,De].forEach(n=>this.disposeWithMe(this._shortcutService.registerShortcut(n)))}_initUI(){this.disposeWithMe(this._componentManager.register("FindReplaceDialog",Se)),this.disposeWithMe(this._componentManager.register("SearchIcon",z)),this._menuManagerService.mergeMenu(Ee),this._findReplaceService.stateUpdates$.pipe(v.takeUntil(this.dispose$)).subscribe(n=>{n.revealed===!0&&this._openPanel()})}_openPanel(){this._dialogService.open({id:ne,draggable:!0,width:ae,title:{title:this._localeService.t("find-replace.dialog.title")},children:{label:"FindReplaceDialog"},destroyOnClose:!0,defaultPosition:Ae(),preservePositionOnDestroy:!0,onClose:()=>this.closePanel()}),this._closingListenerDisposable=o.toDisposable(this._univerInstanceService.focused$.pipe(v.takeUntil(this.dispose$)).subscribe(n=>{(!n||!this._univerInstanceService.getUniverSheetInstance(n))&&this.closePanel()}))}closePanel(){this._closingListenerDisposable&&(this._closingListenerDisposable.dispose(),this._closingListenerDisposable=null,this._dialogService.close(ne),this._findReplaceService.terminate(),queueMicrotask(()=>this._layoutService.focus()))}},l.FindReplaceController=Ne([y(0,o.IUniverInstanceService),y(1,c.IMenuManagerService),y(2,c.IShortcutService),y(3,o.ICommandService),y(4,b),y(5,c.IDialogService),y(6,c.ILayoutService),y(7,o.Inject(o.LocaleService)),y(8,o.Inject(c.ComponentManager)),y(9,o.Inject(o.Injector))],l.FindReplaceController);function Ae(){const{innerWidth:i}=window;return{x:(i-ae)/2-Le,y:$e}}var xe=Object.getOwnPropertyDescriptor,Ue=(i,e,n,t)=>{for(var a=t>1?void 0:t?xe(e,n):e,s=i.length-1,r;s>=0;s--)(r=i[s])&&(a=r(a)||a);return a},se=(i,e)=>(n,t)=>e(n,t,i);const we="UNIVER_FIND_REPLACE_PLUGIN";l.UniverFindReplacePlugin=(G=class extends o.Plugin{constructor(e=K,n,t){super(),this._config=e,this._injector=n,this._configService=t;const{...a}=o.merge({},K,this._config);this._configService.setConfig(oe,a)}onStarting(){[[l.FindReplaceController],[b,{useClass:x}]].forEach(e=>this._injector.add(e))}onRendered(){this._injector.get(l.FindReplaceController)}},u(G,"pluginName",we),G),l.UniverFindReplacePlugin=Ue([se(1,o.Inject(o.Injector)),se(2,o.IConfigService)],l.UniverFindReplacePlugin),l.FindBy=T,l.FindDirection=D,l.FindModel=pe,l.FindReplaceState=X,l.FindScope=O,l.GoToNextMatchOperation=B,l.GoToPreviousMatchOperation=k,l.IFindReplaceService=b,l.OpenFindDialogOperation=I,l.OpenReplaceDialogOperation=P,l.ReplaceAllMatchesCommand=w,l.ReplaceCurrentMatchCommand=U,l.createInitFindReplaceState=E,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/find-replace",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -54,22 +54,22 @@
54
54
  "rxjs": ">=7.0.0"
55
55
  },
56
56
  "dependencies": {
57
- "@univerjs/icons": "^0.2.15",
58
- "@univerjs/core": "0.6.0",
59
- "@univerjs/engine-render": "0.6.0",
60
- "@univerjs/design": "0.6.0",
61
- "@univerjs/ui": "0.6.0"
57
+ "@univerjs/icons": "^0.2.20",
58
+ "@univerjs/core": "0.6.1",
59
+ "@univerjs/engine-render": "0.6.1",
60
+ "@univerjs/design": "0.6.1",
61
+ "@univerjs/ui": "0.6.1"
62
62
  },
63
63
  "devDependencies": {
64
64
  "less": "^4.2.2",
65
- "postcss": "^8.5.2",
65
+ "postcss": "^8.5.3",
66
66
  "react": "18.3.1",
67
67
  "rxjs": "^7.8.1",
68
68
  "tailwindcss": "^3.4.17",
69
69
  "typescript": "^5.7.3",
70
- "vite": "^6.1.0",
71
- "vitest": "^3.0.5",
72
- "@univerjs-infra/shared": "0.6.0"
70
+ "vite": "^6.1.1",
71
+ "vitest": "^3.0.6",
72
+ "@univerjs-infra/shared": "0.6.1"
73
73
  },
74
74
  "scripts": {
75
75
  "test": "vitest run",