facade.js 3.5 KB

1
  1. (function(i,r){typeof exports=="object"&&typeof module<"u"?r(require("@univerjs/core"),require("@univerjs/find-replace"),require("@univerjs/sheets/facade")):typeof define=="function"&&define.amd?define(["@univerjs/core","@univerjs/find-replace","@univerjs/sheets/facade"],r):(i=typeof globalThis<"u"?globalThis:i||self,r(i.UniverCore,i.UniverFindReplace,i.UniverSheetsFacade))})(this,function(i,r,h){"use strict";var v=Object.defineProperty;var F=(i,r,h)=>r in i?v(i,r,{enumerable:!0,configurable:!0,writable:!0,value:h}):i[r]=h;var l=(i,r,h)=>F(i,typeof r!="symbol"?r+"":r,h);var _=Object.defineProperty,p=Object.getOwnPropertyDescriptor,f=(o,e,t,s)=>{for(var n=s>1?void 0:s?p(e,t):e,a=o.length-1,c;a>=0;a--)(c=o[a])&&(n=(s?c(e,t,n):c(n))||n);return s&&n&&_(e,t,n),n},u=(o,e)=>(t,s)=>e(t,s,o);let d=class extends i.Disposable{constructor(e,t,s,n){super();l(this,"_state",new r.FindReplaceState);l(this,"_model");l(this,"_complete");this._injector=t,this._univerInstanceService=s,this._findReplaceService=n;const a=this._findReplaceService.getProviders();this._model=this._injector.createInstance(r.FindReplaceModel,this._state,a);const c={...r.createInitFindReplaceState(),...e};this._state.changeState(c)}findAll(){return!this._state.findCompleted||!this._complete?[]:this._complete.results.map(e=>this._findMatchToFRange(e))}findNext(){var t;if(!this._state.findCompleted||!this._complete)return null;const e=(t=this._model)==null?void 0:t.moveToNextMatch();return e?this._findMatchToFRange(e):null}findPrevious(){var t;const e=(t=this._model)==null?void 0:t.moveToPreviousMatch();return e?this._findMatchToFRange(e):null}getCurrentMatch(){var t;if(!this._state.findCompleted||!this._complete)throw new Error("Find operation is not completed.");const e=(t=this._model)==null?void 0:t.currentMatch$.value;return e?this._findMatchToFRange(e):null}async matchCaseAsync(e){return this._state.changeState({caseSensitive:e}),new Promise(t=>{const s=this._state.stateUpdates$.subscribe(n=>{n.findCompleted===!0&&(s.unsubscribe(),t(this))})})}async matchEntireCellAsync(e){return this._state.changeState({matchesTheWholeCell:e}),new Promise(t=>{const s=this._state.stateUpdates$.subscribe(n=>{n.findCompleted===!0&&(s.unsubscribe(),t(this))})})}async matchFormulaTextAsync(e){return this._state.changeState({findBy:e?r.FindBy.FORMULA:r.FindBy.VALUE}),new Promise(t=>{const s=this._state.stateUpdates$.subscribe(n=>{n.findCompleted===!0&&(s.unsubscribe(),t(this))})})}async replaceAllWithAsync(e){var s,n,a;await this._state.changeState({replaceRevealed:!0,replaceString:e});const t=(a=(n=await((s=this._model)==null?void 0:s.replaceAll()))==null?void 0:n.success)!=null?a:0;return this._state.changeState({replaceRevealed:!1}),t}async replaceWithAsync(e){var t;return await this._state.changeState({replaceRevealed:!0,replaceString:e}),await((t=this._model)==null?void 0:t.replace()),this._state.changeState({replaceRevealed:!1}),!0}async ensureCompleteAsync(){var e;return(!this._state.findCompleted||!this._complete)&&(this._complete=await((e=this._model)==null?void 0:e.start())),this._complete}_findMatchToFRange(e){const{unitId:t}=e,{subUnitId:s,range:n}=e.range,a=this._univerInstanceService.getUnit(t),c=a.getSheetBySheetId(s);return this._injector.createInstance(h.FRange,a,c,n)}};d=f([u(1,i.Inject(i.Injector)),u(2,i.IUniverInstanceService),u(3,r.IFindReplaceService)],d);class m extends i.FUniver{async createTextFinderAsync(e){const t={findString:e},s=this._injector.createInstance(d,t);return await s.ensureCompleteAsync(),s}}i.FUniver.extend(m)});