@univerjs/docs-quick-insert-ui 0.10.12 → 0.10.13

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/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(c,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/docs-ui"),require("@univerjs/ui"),require("@univerjs/engine-render"),require("rxjs"),require("react/jsx-runtime"),require("@univerjs/design"),require("react"),require("@univerjs/docs-drawing-ui"),require("@univerjs/docs-drawing"),require("@univerjs/drawing"),require("@univerjs/drawing-ui")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/docs","@univerjs/docs-ui","@univerjs/ui","@univerjs/engine-render","rxjs","react/jsx-runtime","@univerjs/design","react","@univerjs/docs-drawing-ui","@univerjs/docs-drawing","@univerjs/drawing","@univerjs/drawing-ui"],s):(c=typeof globalThis<"u"?globalThis:c||self,s(c.UniverDocsQuickInsertUi={},c.UniverCore,c.UniverDocs,c.UniverDocsUi,c.UniverUi,c.UniverEngineRender,c.rxjs,c.React,c.UniverDesign,c.React,c.UniverDocsDrawingUi,c.UniverDocsDrawing,c.UniverDrawing,c.UniverDrawingUi))})(this,(function(c,s,O,_,p,Z,C,m,k,f,te,_e,Se,ye){"use strict";var Ve=Object.defineProperty;var Fe=(c,s,O)=>s in c?Ve(c,s,{enumerable:!0,configurable:!0,writable:!0,value:O}):c[s]=O;var P=(c,s,O)=>Fe(c,typeof s!="symbol"?s+"":s,O);const ne={id:"doc.command.delete-search-key",type:s.CommandType.COMMAND,handler:(i,n)=>{const e=i.get(s.ICommandService),{start:t,end:r}=n;return e.syncExecuteCommand(_.CutContentCommand.id,{segmentId:"",textRanges:[{startOffset:t,endOffset:t,collapsed:!0}],selections:[{startOffset:t,endOffset:r,collapsed:!1,direction:s.RANGE_DIRECTION.FORWARD}]})}},ie="docs.quick.insert.keyword-input-placeholder",K=()=>{const i=p.useDependency(s.LocaleService);return m.jsx("div",{className:"univer-translate-y-1.5 univer-text-sm univer-text-gray-500",children:i.t("docQuickInsert.keywordInputPlaceholder")})};K.componentKey=ie;const re="docs.quick.insert.placeholder",H=()=>{const i=p.useDependency(s.LocaleService);return m.jsx("div",{className:"univer-flex univer-h-full univer-items-center univer-justify-center univer-rounded-lg univer-bg-white univer-px-12 univer-py-6 univer-text-gray-400 univer-shadow-lg",children:m.jsx("span",{children:i.t("docQuickInsert.placeholder")})})};H.componentKey=re;function V(i,n){return i.map(e=>({...e})).filter(e=>{if("children"in e)return e.children=V(e.children,n),e.children.length>0;const t=e.keywords;return t?t.some(r=>r.includes(n)):e.title.toLowerCase().includes(n)})}function se(i,n){return i.map(e=>{const t={...e};return"children"in t&&(t.children=se(t.children,n)),t.title=n.t(t.title),"keywords"in t&&(t.keywords=t.keywords.concat(t.title).map(r=>r.toLowerCase())),t})}const Pe=[p.KeyCode.ARROW_UP,p.KeyCode.ARROW_DOWN,p.KeyCode.ENTER],L=()=>{const i=p.useDependency(s.LocaleService),n=p.useDependency(c.DocQuickInsertPopupService),e=p.useDependency(p.ComponentManager),t=p.useDependency(p.IShortcutService),r=p.useDependency(s.ICommandService),o=f.useMemo(()=>s.generateRandomId(),[]),[u,v]=f.useState(0),I=f.useRef(null),a=f.useRef(0);a.current=0;const d=p.useObservable(n.filterKeyword$,""),l=p.useObservable(n.editPopup$),h=p.useObservable(l==null?void 0:l.popup.menus$,[]),w=f.useMemo(()=>se(h,i),[h]),[M,$]=f.useState(()=>V(w,d.toLowerCase()));f.useEffect(()=>{const S=requestIdleCallback(()=>{$(V(w,d.toLowerCase()))});return()=>{cancelIdleCallback(S)}},[w,d]);const b=S=>{n.emitMenuSelected(S),r.executeCommand(U.id)};f.useEffect(()=>{const S=new s.DisposableCollection;t.getAllShortcuts().filter(g=>g.binding&&Pe.includes(g.binding)).forEach(g=>{const R=g.preconditions;g.preconditions=()=>!1,S.add(s.toDisposable(()=>{g.preconditions=R}))});const x={id:`quick.insert.popup.enter.${o}`,type:s.CommandType.OPERATION,handler:()=>{const g=I.current;g&&b(g)}},T={id:`quick.insert.popup.move.cursor.up.${o}`,type:s.CommandType.OPERATION,handler:()=>{v(g=>{const R=g-1;return R>=0?R:a.current-1})}},Q={id:`quick.insert.popup.move.cursor.down.${o}`,type:s.CommandType.OPERATION,handler:()=>{v(g=>{const R=g+1;return R<=a.current-1?R:0})}};return S.add(r.registerCommand(T)),S.add(r.registerCommand(Q)),S.add(r.registerCommand(x)),S.add(t.registerShortcut({priority:1e3,id:T.id,binding:p.KeyCode.ARROW_UP,preconditions:()=>!0,staticParameters:{direction:s.Direction.UP}})),S.add(t.registerShortcut({priority:1e3,id:Q.id,binding:p.KeyCode.ARROW_DOWN,preconditions:()=>!0,staticParameters:{direction:s.Direction.DOWN}})),S.add(t.registerShortcut({priority:1e3,id:x.id,binding:p.KeyCode.ENTER,preconditions:()=>!0})),()=>{S.dispose()}},[]),f.useEffect(()=>{v(0)},[M]);const B=f.useRef(new Map);f.useEffect(()=>()=>{B.current.clear()},[]);function N(S){return S.map(y=>{const ee=y.icon,x=ee?e.get(ee):null;if("children"in y)return m.jsx(k.MenuItemGroup,{title:m.jsxs("div",{className:"univer-mb-2 univer-flex univer-items-center univer-text-xs univer-text-gray-400",children:[x&&m.jsx("span",{className:"univer-mr-2 univer-inline-flex univer-text-base",children:m.jsx(x,{})}),m.jsx("span",{children:y.title})]}),children:N(y.children)},y.id);const T=a.current,Q=u===T;if(Q){I.current=y;const g=B.current.get(y.id);g==null||g.scrollIntoView({block:"nearest"})}return a.current++,m.jsx(k.MenuItem,{ref:g=>{g&&B.current.set(y.id,g)},onMouseEnter:()=>v(T),onMouseLeave:()=>v(Number.NaN),className:k.clsx("univer-w-[calc(220px-var(--padding-base)*2)] univer-text-sm",{"hover:univer-bg-transparent":!Q,"univer-bg-gray-100 dark:!univer-bg-gray-500":Q}),onClick:()=>{b(y)},children:m.jsxs("div",{className:"univer-flex univer-w-full univer-items-center univer-px-1",children:[x&&m.jsx("span",{className:"univer-mr-2 univer-inline-flex univer-text-base",children:m.jsx(x,{})}),m.jsx(k.Tooltip,{showIfEllipsis:!0,title:y.title,placement:"right",children:m.jsx("span",{className:"univer-truncate",children:y.title})})]})},y.id)})}const W=M.length>0,Ce=(l==null?void 0:l.popup.Placeholder)||e.get(H.componentKey);return m.jsx("div",{className:"univer-mt-2",children:W?m.jsx(k.Menu,{wrapperClass:k.clsx("univer-max-h-[360px] univer-w-[220px] univer-overflow-y-auto univer-overflow-x-hidden",k.scrollbarClassName),children:N(M)}):Ce&&m.jsx(Ce,{})})};L.componentKey="docs.quick.insert.popup";var De=Object.getOwnPropertyDescriptor,Oe=(i,n,e,t)=>{for(var r=t>1?void 0:t?De(n,e):n,o=i.length-1,u;o>=0;o--)(u=i[o])&&(r=u(r)||r);return r},E=(i,n)=>(e,t)=>n(e,t,i);const oe={dispose:()=>{}};c.DocQuickInsertPopupService=class extends s.Disposable{constructor(e,t,r,o,u){super();P(this,"_popups",new Set);P(this,"_editPopup$",new C.BehaviorSubject(void 0));P(this,"editPopup$",this._editPopup$.asObservable());P(this,"_isComposing$",new C.BehaviorSubject(!1));P(this,"isComposing$",this._isComposing$.asObservable());P(this,"_inputOffset$",new C.BehaviorSubject({start:0,end:0}));P(this,"inputOffset$",this._inputOffset$.asObservable());P(this,"filterKeyword$");P(this,"_menuSelectedCallbacks",new Set);P(this,"_inputPlaceholderRenderRoot",null);this._docCanvasPopupManagerService=e,this._univerInstanceService=t,this._commandService=r,this._renderManagerService=o,this._docSelectionManagerService=u,this.disposeWithMe(this._editPopup$);const v=(a,d)=>{var l,h;return(h=(l=this._univerInstanceService.getCurrentUnitOfType(s.UniverInstanceType.UNIVER_DOC))==null?void 0:l.getBody())==null?void 0:h.dataStream.slice(a,d)};let I="";this.filterKeyword$=this._inputOffset$.pipe(C.map(a=>{var l;const d=v(a.start,a.end);return(l=d==null?void 0:d.slice(1))!=null?l:""}),C.distinctUntilChanged(),C.tap(a=>{I=a})),this.disposeWithMe(C.combineLatest([this.filterKeyword$.pipe(C.tap(a=>{var d,l,h;a.length>0?(l=(d=this._inputPlaceholderRenderRoot)==null?void 0:d.unmount)==null||l.dispose():(h=this._inputPlaceholderRenderRoot)==null||h.mount()})),this.isComposing$.pipe(C.tap(a=>{var d,l,h;a?(l=(d=this._inputPlaceholderRenderRoot)==null?void 0:d.unmount)==null||l.dispose():I.length<=0&&((h=this._inputPlaceholderRenderRoot)==null||h.mount())})),this.editPopup$.pipe(C.tap(a=>{var d,l;a||((l=(d=this._inputPlaceholderRenderRoot)==null?void 0:d.unmount)==null||l.dispose(),this._inputPlaceholderRenderRoot=null)}))]).subscribe())}get popups(){return Array.from(this._popups)}get editPopup(){return this._editPopup$.value}get isComposing(){return this._isComposing$.value}setIsComposing(e){this._isComposing$.next(e)}get inputOffset(){return this._inputOffset$.value}setInputOffset(e){this._inputOffset$.next(e)}getDocEventManagerService(e){var t;return(t=this._renderManagerService.getRenderById(e))==null?void 0:t.with(_.DocEventManagerService)}resolvePopup(e){return Array.from(this._popups).find(t=>t.keyword===e)}registerPopup(e){return this._popups.add(e),()=>{this._popups.delete(e)}}_createInputPlaceholderRenderRoot(e){return{isMounted:!1,mount(){if(this.isMounted)return;this.isMounted=!0;const r=e();this.unmount={dispose:()=>{r.dispose(),this.isMounted=!1}}}}}showPopup(e){var l,h;const{popup:t,index:r,unitId:o}=e;this.closePopup();const u=this._univerInstanceService.getUnit(o),v=(h=(l=u==null?void 0:u.getBody())==null?void 0:l.paragraphs)==null?void 0:h.find(w=>w.startIndex>r);if(!v)return;const I=this.getDocEventManagerService(o),a=I==null?void 0:I.findParagraphBoundByIndex(v.startIndex);if(!a)return;this._inputPlaceholderRenderRoot=this._createInputPlaceholderRenderRoot(()=>{var W;const w=(W=this._renderManagerService.getRenderById(o))==null?void 0:W.with(O.DocSkeletonManagerService),M=this._docSelectionManagerService.getActiveTextRange();if(!w||!M)return oe;const b=w.getSkeleton().findNodeByCharIndex(M.startOffset,M.segmentId,M.segmentPage);if(!((b==null?void 0:b.content)==="\r"))return oe;const N=this._docCanvasPopupManagerService.attachPopupToRange({startOffset:r+1,endOffset:r+1,collapsed:!1},{componentKey:K.componentKey,onClickOutside:()=>{N.dispose()},direction:"horizontal"},o);return N}),this._inputPlaceholderRenderRoot.mount();const d=this._docCanvasPopupManagerService.attachPopupToRect(a.firstLine,{componentKey:L.componentKey,onClickOutside:()=>{this.closePopup()},direction:"bottom"},o);this._editPopup$.next({disposable:d,popup:t,anchor:r,unitId:o})}closePopup(){this.editPopup&&(this.editPopup.disposable.dispose(),this._editPopup$.next(null))}onMenuSelected(e){return this._menuSelectedCallbacks.add(e),()=>{this._menuSelectedCallbacks.delete(e)}}emitMenuSelected(e){const{start:t,end:r}=this.inputOffset;this._commandService.syncExecuteCommand(ne.id,{start:t,end:r}),setTimeout(()=>{this._menuSelectedCallbacks.forEach(o=>o(e))},0)}},c.DocQuickInsertPopupService=Oe([E(0,s.Inject(_.DocCanvasPopManagerService)),E(1,s.Inject(s.IUniverInstanceService)),E(2,s.Inject(s.ICommandService)),E(3,s.Inject(Z.IRenderManagerService)),E(4,s.Inject(O.DocSelectionManagerService))],c.DocQuickInsertPopupService);const ce={type:s.CommandType.OPERATION,id:"doc.operation.show-quick-insert-popup",handler(i,n){const e=i.get(c.DocQuickInsertPopupService);return n?(e.showPopup(n),!0):!1}},U={type:s.CommandType.OPERATION,id:"doc.operation.close-quick-insert-popup",handler(i){return i.get(c.DocQuickInsertPopupService).closePopup(),!0}},ae={id:"quick-insert.text.menu",title:"docQuickInsert.menu.text",icon:"TextIcon",keywords:["text"]},ue={id:_.OrderListCommand.id,title:"docQuickInsert.menu.numberedList",icon:"OrderIcon",keywords:["numbered","list","ordered"]},de={id:_.BulletListCommand.id,title:"docQuickInsert.menu.bulletedList",icon:"UnorderIcon",keywords:["bulleted","list","unordered"]},pe={id:_.HorizontalLineCommand.id,title:"docQuickInsert.menu.divider",icon:"DividerIcon",keywords:["divider","line","separate"]},le={id:_.DocCreateTableOperation.id,title:"docQuickInsert.menu.table",icon:"GridIcon",keywords:["table","grid","spreadsheet"]},ve={id:te.InsertDocImageCommand.id,title:"docQuickInsert.menu.image",icon:"AdditionAndSubtractionIcon",keywords:["image","picture","photo"]},we=[{title:"docQuickInsert.group.basics",id:"quick.insert.group.basic",children:[ae,ue,de,pe,le,ve]}],Me=new Set([ue.id,de.id,pe.id,le.id,ve.id]);var be=Object.getOwnPropertyDescriptor,ke=(i,n,e,t)=>{for(var r=t>1?void 0:t?be(n,e):n,o=i.length-1,u;o>=0;o--)(u=i[o])&&(r=u(r)||r);return r},j=(i,n)=>(e,t)=>n(e,t,i);c.DocQuickInsertTriggerController=class extends s.Disposable{constructor(n,e,t,r,o){super(),this._commandService=n,this._textSelectionManagerService=e,this._docQuickInsertPopupService=t,this._shortcutService=r,this._univerInstanceService=o,this.disposeWithMe(this._shortcutService.registerShortcut({id:U.id,binding:p.KeyCode.ESC,preconditions:()=>!!this._docQuickInsertPopupService.editPopup,priority:1e3})),this._initTrigger(),this._initMenuHandler()}_initTrigger(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{var u,v,I;const{_docQuickInsertPopupService:e,_textSelectionManagerService:t,_commandService:r}=this,o=this._univerInstanceService.getCurrentUnitOfType(s.UniverInstanceType.UNIVER_DOC);if(!(o!=null&&o.getDisabled())){if(n.id===_.InsertCommand.id){const a=n.params;if(e.editPopup){e.setInputOffset({start:e.inputOffset.start,end:a.range.endOffset+1});return}const d=t.getActiveTextRange();if(!d)return;const l=e.resolvePopup(a.body.dataStream);if(!l||!(l.preconditions?l.preconditions(a):!0))return;e.setInputOffset({start:d.startOffset-1,end:d.startOffset}),setTimeout(()=>{r.executeCommand(ce.id,{index:d.startOffset-1,unitId:a.unitId,popup:l})},100)}if(n.id===_.IMEInputCommand.id){const a=n.params;!e.isComposing&&a.isCompositionStart&&e.setIsComposing(!0),e.isComposing&&a.isCompositionEnd&&e.setIsComposing(!1)}if(n.id===O.RichTextEditingMutation.id){const a=n.params;if(a.isCompositionEnd){const d=(v=(u=a.textRanges)==null?void 0:u[0])==null?void 0:v.endOffset;d&&e.setInputOffset({start:e.inputOffset.start,end:d})}}if(n.id===_.DeleteCommand.id){const a=n.params;if(e.editPopup&&a.direction===s.DeleteDirection.LEFT){const d=(I=a.len)!=null?I:0;e.setInputOffset({start:e.inputOffset.start,end:a.range.endOffset-d})}}if(n.id===_.MoveCursorOperation.id){const a=n.params;(a.direction===s.Direction.LEFT||a.direction===s.Direction.RIGHT)&&e.editPopup&&r.executeCommand(U.id)}if(n.id===_.DeleteLeftCommand.id){const a=t.getActiveTextRange();if(!e.editPopup||!a)return;a.endOffset<=e.editPopup.anchor&&r.executeCommand(U.id)}}}))}_initMenuHandler(){this.disposeWithMe(this._docQuickInsertPopupService.onMenuSelected(n=>{n.id!==ae.id&&Me.has(n.id)&&this._commandService.executeCommand(n.id)}))}},c.DocQuickInsertTriggerController=ke([j(0,s.ICommandService),j(1,s.Inject(O.DocSelectionManagerService)),j(2,s.Inject(c.DocQuickInsertPopupService)),j(3,s.Inject(p.IShortcutService)),j(4,s.Inject(s.IUniverInstanceService))],c.DocQuickInsertTriggerController);var D=function(){return D=Object.assign||function(i){for(var n,e=1,t=arguments.length;e<t;e++){n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[r]=n[r])}return i},D.apply(this,arguments)},xe=function(i,n){var e={};for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&n.indexOf(t)<0&&(e[t]=i[t]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(i);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(i,t[r])&&(e[t[r]]=i[t[r]]);return e},q=f.forwardRef(function(i,n){var e=i.icon,t=i.id,r=i.className,o=i.extend,u=xe(i,["icon","id","className","extend"]),v="univerjs-icon univerjs-icon-".concat(t," ").concat(r||"").trim(),I=f.useRef("_".concat(Ee()));return he(e,"".concat(t),{defIds:e.defIds,idSuffix:I.current},D({ref:n,className:v},u),o)});function he(i,n,e,t,r){return f.createElement(i.tag,D(D({key:n},Re(i,e,r)),t),(Qe(i,e).children||[]).map(function(o,u){return he(o,"".concat(n,"-").concat(i.tag,"-").concat(u),e,void 0,r)}))}function Re(i,n,e){var t=D({},i.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1),i.tag==="mask"&&t.id&&(t.id=t.id+n.idSuffix),Object.entries(t).forEach(function(o){var u=o[0],v=o[1];u==="mask"&&typeof v=="string"&&(t[u]=v.replace(/url\(#(.*)\)/,"url(#$1".concat(n.idSuffix,")")))});var r=n.defIds;return!r||r.length===0||(i.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+n.idSuffix),Object.entries(t).forEach(function(o){var u=o[0],v=o[1];typeof v=="string"&&(t[u]=v.replace(/url\(#(.*)\)/,"url(#$1".concat(n.idSuffix,")")))})),t}function Qe(i,n){var e,t=n.defIds;return!t||t.length===0?i:i.tag==="defs"&&(!((e=i.children)===null||e===void 0)&&e.length)?D(D({},i),{children:i.children.map(function(r){return typeof r.attrs.id=="string"&&t&&t.includes(r.attrs.id)?D(D({},r),{attrs:D(D({},r.attrs),{id:r.attrs.id+n.idSuffix})}):r})}):i}function Ee(){return Math.random().toString(36).substring(2,8)}q.displayName="UniverIcon";var Ue={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.01953 3.13985C1.01953 2.77258 1.31726 2.47485 1.68453 2.47485H2.73713C3.1044 2.47485 3.40213 2.77258 3.40213 3.13985C3.40213 3.50712 3.1044 3.80485 2.73713 3.80485H1.68453C1.31726 3.80485 1.01953 3.50712 1.01953 3.13985Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.17734 3.13985C4.17734 2.77258 4.47507 2.47485 4.84234 2.47485H6.94754C7.31481 2.47485 7.61254 2.77258 7.61254 3.13985C7.61254 3.50712 7.31481 3.80485 6.94754 3.80485H4.84234C4.47507 3.80485 4.17734 3.50712 4.17734 3.13985Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M8.38775 3.13985C8.38775 2.77258 8.68548 2.47485 9.05275 2.47485H11.158C11.5252 2.47485 11.823 2.77258 11.823 3.13985C11.823 3.50712 11.5252 3.80485 11.158 3.80485H9.05275C8.68548 3.80485 8.38775 3.50712 8.38775 3.13985Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M12.5982 3.13985C12.5982 2.77258 12.8959 2.47485 13.2632 2.47485H14.3158C14.683 2.47485 14.9808 2.77258 14.9808 3.13985C14.9808 3.50712 14.683 3.80485 14.3158 3.80485H13.2632C12.8959 3.80485 12.5982 3.50712 12.5982 3.13985Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.01953 7.99972C1.01953 7.63245 1.31726 7.33472 1.68453 7.33472H14.3158C14.683 7.33472 14.9808 7.63245 14.9808 7.99972C14.9808 8.36699 14.683 8.66472 14.3158 8.66472H1.68453C1.31726 8.66472 1.01953 8.36699 1.01953 7.99972Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.68453 12.1951C1.31726 12.1951 1.01953 12.4928 1.01953 12.8601C1.01953 13.2273 1.31726 13.5251 1.68453 13.5251H2.73713C3.1044 13.5251 3.40213 13.2273 3.40213 12.8601C3.40213 12.4928 3.1044 12.1951 2.73713 12.1951H1.68453Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.84234 12.1951C4.47507 12.1951 4.17734 12.4928 4.17734 12.8601C4.17734 13.2273 4.47507 13.5251 4.84234 13.5251H6.94754C7.31481 13.5251 7.61254 13.2273 7.61254 12.8601C7.61254 12.4928 7.31481 12.1951 6.94754 12.1951H4.84234Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M9.05275 12.1951C8.68548 12.1951 8.38775 12.4928 8.38775 12.8601C8.38775 13.2273 8.68548 13.5251 9.05275 13.5251H11.158C11.5252 13.5251 11.823 13.2273 11.823 12.8601C11.823 12.4928 11.5252 12.1951 11.158 12.1951H9.05275Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M13.2632 12.1951C12.8959 12.1951 12.5982 12.4928 12.5982 12.8601C12.5982 13.2273 12.8959 13.5251 13.2632 13.5251H14.3158C14.683 13.5251 14.9808 13.2273 14.9808 12.8601C14.9808 12.4928 14.683 12.1951 14.3158 12.1951H13.2632Z"}}]},F=f.forwardRef(function(i,n){return f.createElement(q,Object.assign({},i,{id:"divider-icon",ref:n,icon:Ue}))});F.displayName="DividerIcon";var je={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},fe=f.forwardRef(function(i,n){return f.createElement(q,Object.assign({},i,{id:"increase-icon",ref:n,icon:je}))});fe.displayName="IncreaseIcon";var $e={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"g",attrs:{fill:"currentColor",clipPath:"url(#text-icon_clip0_1293_26)"},children:[{tag:"path",attrs:{d:"M2.22891 2.07227C1.89754 2.07227 1.62891 2.34089 1.62891 2.67227C1.62891 3.00364 1.89754 3.27227 2.22891 3.27227H6.29541V14.0056C6.29541 14.337 6.56404 14.6056 6.89541 14.6056C7.22678 14.6056 7.49541 14.337 7.49541 14.0056V3.27227H11.5622C11.8936 3.27227 12.1622 3.00364 12.1622 2.67227C12.1622 2.34089 11.8936 2.07227 11.5622 2.07227H2.22891Z"}},{tag:"path",attrs:{d:"M10.2289 6.40552C9.89754 6.40552 9.62891 6.67415 9.62891 7.00552C9.62891 7.33689 9.89754 7.60552 10.2289 7.60552H12.2954V14.0055C12.2954 14.3369 12.564 14.6055 12.8954 14.6055C13.2268 14.6055 13.4954 14.3369 13.4954 14.0055V7.60552H15.5622C15.8936 7.60552 16.1622 7.33689 16.1622 7.00552C16.1622 6.67415 15.8936 6.40552 15.5622 6.40552H10.2289Z"}}]},{tag:"defs",attrs:{},children:[{tag:"clipPath",attrs:{id:"text-icon_clip0_1293_26"},children:[{tag:"path",attrs:{fill:"white",d:"M0 0H16V16H0z",transform:"translate(.9)"}}]}]}],defIds:["text-icon_clip0_1293_26"]},G=f.forwardRef(function(i,n){return f.createElement(q,Object.assign({},i,{id:"text-icon",ref:n,icon:$e}))});G.displayName="TextIcon";const ge="doc.quick-insert.button";var Ne=Object.getOwnPropertyDescriptor,Te=(i,n,e,t)=>{for(var r=t>1?void 0:t?Ne(n,e):n,o=i.length-1,u;o>=0;o--)(u=i[o])&&(r=u(r)||r);return r},z=(i,n)=>(e,t)=>n(e,t,i);let A=class extends s.Disposable{constructor(n,e,t,r){super();P(this,"_popup$",new C.BehaviorSubject(null));P(this,"popup$",this._popup$.asObservable());this._context=n,this._docEventManagerService=e,this._docQuickInsertPopupService=t,this._docCanvasPopManagerService=r,this._init()}get popup(){return this._popup$.value}_init(){this.disposeWithMe(C.combineLatest([this._docEventManagerService.hoverParagraphLeftRealTime$,this._docEventManagerService.hoverParagraphRealTime$]).subscribe(([n,e])=>{var o;const t=n!=null?n:e,r=this._context.unit.getDisabled();if(!t||r){this._hideMenu(!0);return}if(t.paragraphStart===t.paragraphEnd){if(this._docQuickInsertPopupService.editPopup||t.startIndex===((o=this.popup)==null?void 0:o.startIndex))return;this._hideMenu(!0);const u=this._docCanvasPopManagerService.attachPopupToRect(t.firstLine,{componentKey:ge,direction:"left-center"},this._context.unit.getUnitId());this._popup$.next({startIndex:t.startIndex,disposable:u})}else this._hideMenu(!0)}))}_hideMenu(n){this._docQuickInsertPopupService.editPopup||this.popup&&(n||this.popup.disposable.canDispose())&&(this.popup.disposable.dispose(),this._popup$.next(null))}};A=Te([z(1,s.Inject(_.DocEventManagerService)),z(2,s.Inject(c.DocQuickInsertPopupService)),z(3,s.Inject(_.DocCanvasPopManagerService))],A);const Y=({className:i=""})=>{const n=p.useDependency(c.DocQuickInsertPopupService),e=p.useDependency(s.IUniverInstanceService),t=p.useDependency(Z.IRenderManagerService),r=p.useObservable(f.useMemo(()=>e.getCurrentTypeOfUnit$(s.UniverInstanceType.UNIVER_DOC),[e])),o=r&&t.getRenderById(r.getUnitId()),u=o==null?void 0:o.with(A),v=p.useDependency(p.ILayoutService),I=p.useDependency(O.DocSelectionManagerService),a=p.useObservable(n.editPopup$),d=p.useEvent(l=>{var $;const h=u==null?void 0:u.popup;if(!h)return;const w=n.popups,M={keyword:"",menus$:C.combineLatest(w.map(b=>b.menus$)).pipe(C.map(b=>b.flat()))};I.replaceDocRanges([{startOffset:h.startIndex,endOffset:h.startIndex}]),n.setInputOffset({start:h.startIndex-1,end:h.startIndex-1}),n.showPopup({popup:M,index:h.startIndex-1,unitId:($=r==null?void 0:r.getUnitId())!=null?$:""}),setTimeout(()=>{v.focus()})});return m.jsx("div",{className:k.clsx("univer-mr-1 univer-flex univer-cursor-pointer univer-items-center univer-gap-2.5 univer-rounded-full univer-p-1.5 univer-shadow-sm hover:univer-bg-gray-100 dark:!univer-text-gray-200 dark:hover:!univer-bg-gray-700",k.borderClassName,{"univer-bg-gray-100 dark:!univer-bg-gray-700":a,"univer-bg-white dark:!univer-bg-gray-900":!a},i),role:"button",tabIndex:0,onClick:d,children:m.jsx(fe,{className:"univer-text-gray-800 dark:!univer-text-gray-200"})})};Y.componentKey=ge;var Ke=Object.getOwnPropertyDescriptor,He=(i,n,e,t)=>{for(var r=t>1?void 0:t?Ke(n,e):n,o=i.length-1,u;o>=0;o--)(u=i[o])&&(r=u(r)||r);return r},J=(i,n)=>(e,t)=>n(e,t,i);c.DocQuickInsertUIController=class extends s.Disposable{constructor(n,e,t){super(),this._commandService=n,this._docQuickInsertPopupService=e,this._componentManager=t,this._initCommands(),this._initComponents(),this._initMenus()}_initCommands(){[ne,ce,U].forEach(n=>{this.disposeWithMe(this._commandService.registerCommand(n))})}_initComponents(){[[L.componentKey,L],[K.componentKey,K],[H.componentKey,H],[F.displayName,F],[G.displayName,G],[Y.componentKey,Y]].forEach(([e,t])=>{e&&this.disposeWithMe(this._componentManager.register(e,t))}),[{keyword:"/",menus$:C.of(we),preconditions:e=>{var t;return((t=e.range.startNodePosition)==null?void 0:t.glyph)===0}}].forEach(e=>{this.disposeWithMe(this._docQuickInsertPopupService.registerPopup(e))})}_initMenus(){}},c.DocQuickInsertUIController=He([J(0,s.ICommandService),J(1,s.Inject(c.DocQuickInsertPopupService)),J(2,s.Inject(p.ComponentManager))],c.DocQuickInsertUIController);const Le="docs-quick-insert-ui.config",me={};var qe=Object.defineProperty,Ae=Object.getOwnPropertyDescriptor,Be=(i,n,e)=>n in i?qe(i,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[n]=e,We=(i,n,e,t)=>{for(var r=t>1?void 0:t?Ae(n,e):n,o=i.length-1,u;o>=0;o--)(u=i[o])&&(r=u(r)||r);return r},X=(i,n)=>(e,t)=>n(e,t,i),Ie=(i,n,e)=>Be(i,typeof n!="symbol"?n+"":n,e);const Ze="DOC_QUICK_INSERT_UI_PLUGIN";c.UniverDocsQuickInsertUIPlugin=class extends s.Plugin{constructor(n=me,e,t,r){super(),this._config=n,this._injector=e,this._renderManagerSrv=t,this._configService=r;const{menu:o,...u}=s.merge({},me,this._config);o&&this._configService.setConfig("menu",o,{merge:!0}),this._configService.setConfig(Le,u)}onStarting(){[[c.DocQuickInsertUIController],[c.DocQuickInsertTriggerController],[c.DocQuickInsertPopupService]].forEach(e=>this._injector.add(e)),this._injector.get(c.DocQuickInsertUIController)}onRendered(){this._injector.get(c.DocQuickInsertTriggerController),this._injector.get(c.DocQuickInsertPopupService),[[A]].forEach(n=>{this._renderManagerSrv.registerRenderModule(s.UniverInstanceType.UNIVER_DOC,n)})}},Ie(c.UniverDocsQuickInsertUIPlugin,"type",s.UniverInstanceType.UNIVER_DOC),Ie(c.UniverDocsQuickInsertUIPlugin,"pluginName",Ze),c.UniverDocsQuickInsertUIPlugin=We([s.DependentOn(ye.UniverDrawingUIPlugin,Se.UniverDrawingPlugin,te.UniverDocsDrawingUIPlugin,_e.UniverDocsDrawingPlugin,p.UniverUIPlugin),X(1,s.Inject(s.Injector)),X(2,s.Inject(Z.IRenderManagerService)),X(3,s.IConfigService)],c.UniverDocsQuickInsertUIPlugin),c.KeywordInputPlaceholderComponentKey=ie,c.QuickInsertPlaceholderComponentKey=re,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(c,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/docs-ui"),require("@univerjs/ui"),require("@univerjs/engine-render"),require("rxjs"),require("react/jsx-runtime"),require("@univerjs/design"),require("react"),require("@univerjs/docs-drawing-ui"),require("@univerjs/docs-drawing"),require("@univerjs/drawing"),require("@univerjs/drawing-ui")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/docs","@univerjs/docs-ui","@univerjs/ui","@univerjs/engine-render","rxjs","react/jsx-runtime","@univerjs/design","react","@univerjs/docs-drawing-ui","@univerjs/docs-drawing","@univerjs/drawing","@univerjs/drawing-ui"],s):(c=typeof globalThis<"u"?globalThis:c||self,s(c.UniverDocsQuickInsertUi={},c.UniverCore,c.UniverDocs,c.UniverDocsUi,c.UniverUi,c.UniverEngineRender,c.rxjs,c.React,c.UniverDesign,c.React,c.UniverDocsDrawingUi,c.UniverDocsDrawing,c.UniverDrawing,c.UniverDrawingUi))})(this,(function(c,s,D,_,p,W,C,g,O,h,ee,Ce,_e,Se){"use strict";var We=Object.defineProperty;var Ze=(c,s,D)=>s in c?We(c,s,{enumerable:!0,configurable:!0,writable:!0,value:D}):c[s]=D;var P=(c,s,D)=>Ze(c,typeof s!="symbol"?s+"":s,D);const te={id:"doc.command.delete-search-key",type:s.CommandType.COMMAND,handler:(r,t)=>{const e=r.get(s.ICommandService),{start:n,end:i}=t;return e.syncExecuteCommand(_.CutContentCommand.id,{segmentId:"",textRanges:[{startOffset:n,endOffset:n,collapsed:!0}],selections:[{startOffset:n,endOffset:i,collapsed:!1,direction:s.RANGE_DIRECTION.FORWARD}]})}},ne="docs.quick.insert.keyword-input-placeholder",j=()=>{const r=p.useDependency(s.LocaleService);return g.jsx("div",{className:"univer-translate-y-1.5 univer-text-sm univer-text-gray-500",children:r.t("docQuickInsert.keywordInputPlaceholder")})};j.componentKey=ne;const ie="docs.quick.insert.placeholder",K=()=>{const r=p.useDependency(s.LocaleService);return g.jsx("div",{className:"univer-flex univer-h-full univer-items-center univer-justify-center univer-rounded-lg univer-bg-white univer-px-12 univer-py-6 univer-text-gray-400 univer-shadow-lg",children:g.jsx("span",{children:r.t("docQuickInsert.placeholder")})})};K.componentKey=ie;function Z(r,t){return r.map(e=>({...e})).filter(e=>{if("children"in e)return e.children=Z(e.children,t),e.children.length>0;const n=e.keywords;return n?n.some(i=>i.includes(t)):e.title.toLowerCase().includes(t)})}function re(r,t){return r.map(e=>{const n={...e};return"children"in n&&(n.children=re(n.children,t)),n.title=t.t(n.title),"keywords"in n&&(n.keywords=n.keywords.concat(n.title).map(i=>i.toLowerCase())),n})}const ye=[p.KeyCode.ARROW_UP,p.KeyCode.ARROW_DOWN,p.KeyCode.ENTER],H=()=>{const r=p.useDependency(s.LocaleService),t=p.useDependency(c.DocQuickInsertPopupService),e=p.useDependency(p.ComponentManager),n=p.useDependency(p.IShortcutService),i=p.useDependency(s.ICommandService),o=h.useMemo(()=>s.generateRandomId(),[]),[u,m]=h.useState(0),I=h.useRef(null),a=h.useRef(0);a.current=0;const d=p.useObservable(t.filterKeyword$,""),l=p.useObservable(t.editPopup$),v=p.useObservable(l==null?void 0:l.popup.menus$,[]),M=h.useMemo(()=>re(v,r),[v]),[w,E]=h.useState(()=>Z(M,d.toLowerCase()));h.useEffect(()=>{const S=requestIdleCallback(()=>{E(Z(M,d.toLowerCase()))});return()=>{cancelIdleCallback(S)}},[M,d]);const k=S=>{t.emitMenuSelected(S),i.executeCommand(Q.id)};h.useEffect(()=>{const S=new s.DisposableCollection;n.getAllShortcuts().filter(f=>f.binding&&ye.includes(f.binding)).forEach(f=>{const x=f.preconditions;f.preconditions=()=>!1,S.add(s.toDisposable(()=>{f.preconditions=x}))});const b={id:`quick.insert.popup.enter.${o}`,type:s.CommandType.OPERATION,handler:()=>{const f=I.current;f&&k(f)}},N={id:`quick.insert.popup.move.cursor.up.${o}`,type:s.CommandType.OPERATION,handler:()=>{m(f=>{const x=f-1;return x>=0?x:a.current-1})}},$={id:`quick.insert.popup.move.cursor.down.${o}`,type:s.CommandType.OPERATION,handler:()=>{m(f=>{const x=f+1;return x<=a.current-1?x:0})}};return S.add(i.registerCommand(N)),S.add(i.registerCommand($)),S.add(i.registerCommand(b)),S.add(n.registerShortcut({priority:1e3,id:N.id,binding:p.KeyCode.ARROW_UP,preconditions:()=>!0,staticParameters:{direction:s.Direction.UP}})),S.add(n.registerShortcut({priority:1e3,id:$.id,binding:p.KeyCode.ARROW_DOWN,preconditions:()=>!0,staticParameters:{direction:s.Direction.DOWN}})),S.add(n.registerShortcut({priority:1e3,id:b.id,binding:p.KeyCode.ENTER,preconditions:()=>!0})),()=>{S.dispose()}},[]),h.useEffect(()=>{m(0)},[w]);const A=h.useRef(new Map);h.useEffect(()=>()=>{A.current.clear()},[]);function T(S){return S.map(y=>{const X=y.icon,b=X?e.get(X):null;if("children"in y)return g.jsx(O.MenuItemGroup,{title:g.jsxs("div",{className:"univer-mb-2 univer-flex univer-items-center univer-text-xs univer-text-gray-400",children:[b&&g.jsx("span",{className:"univer-mr-2 univer-inline-flex univer-text-base",children:g.jsx(b,{})}),g.jsx("span",{children:y.title})]}),children:T(y.children)},y.id);const N=a.current,$=u===N;if($){I.current=y;const f=A.current.get(y.id);f==null||f.scrollIntoView({block:"nearest"})}return a.current++,g.jsx(O.MenuItem,{ref:f=>{f&&A.current.set(y.id,f)},onMouseEnter:()=>m(N),onMouseLeave:()=>m(Number.NaN),className:O.clsx("univer-w-[calc(220px-var(--padding-base)*2)] univer-text-sm",{"hover:univer-bg-transparent":!$,"univer-bg-gray-100 dark:!univer-bg-gray-500":$}),onClick:()=>{k(y)},children:g.jsxs("div",{className:"univer-flex univer-w-full univer-items-center univer-px-1",children:[b&&g.jsx("span",{className:"univer-mr-2 univer-inline-flex univer-text-base",children:g.jsx(b,{})}),g.jsx(O.Tooltip,{showIfEllipsis:!0,title:y.title,placement:"right",children:g.jsx("span",{className:"univer-truncate",children:y.title})})]})},y.id)})}const B=w.length>0,Ie=(l==null?void 0:l.popup.Placeholder)||e.get(K.componentKey);return g.jsx("div",{className:"univer-mt-2",children:B?g.jsx(O.Menu,{wrapperClass:O.clsx("univer-max-h-[360px] univer-w-[220px] univer-overflow-y-auto univer-overflow-x-hidden",O.scrollbarClassName),children:T(w)}):Ie&&g.jsx(Ie,{})})};H.componentKey="docs.quick.insert.popup";var Pe=Object.getOwnPropertyDescriptor,De=(r,t,e,n)=>{for(var i=n>1?void 0:n?Pe(t,e):t,o=r.length-1,u;o>=0;o--)(u=r[o])&&(i=u(i)||i);return i},R=(r,t)=>(e,n)=>t(e,n,r);const se={dispose:()=>{}};c.DocQuickInsertPopupService=class extends s.Disposable{constructor(e,n,i,o,u){super();P(this,"_popups",new Set);P(this,"_editPopup$",new C.BehaviorSubject(void 0));P(this,"editPopup$",this._editPopup$.asObservable());P(this,"_isComposing$",new C.BehaviorSubject(!1));P(this,"isComposing$",this._isComposing$.asObservable());P(this,"_inputOffset$",new C.BehaviorSubject({start:0,end:0}));P(this,"inputOffset$",this._inputOffset$.asObservable());P(this,"filterKeyword$");P(this,"_menuSelectedCallbacks",new Set);P(this,"_inputPlaceholderRenderRoot",null);this._docCanvasPopupManagerService=e,this._univerInstanceService=n,this._commandService=i,this._renderManagerService=o,this._docSelectionManagerService=u,this.disposeWithMe(this._editPopup$);const m=(a,d)=>{var l,v;return(v=(l=this._univerInstanceService.getCurrentUnitOfType(s.UniverInstanceType.UNIVER_DOC))==null?void 0:l.getBody())==null?void 0:v.dataStream.slice(a,d)};let I="";this.filterKeyword$=this._inputOffset$.pipe(C.map(a=>{var l;const d=m(a.start,a.end);return(l=d==null?void 0:d.slice(1))!=null?l:""}),C.distinctUntilChanged(),C.tap(a=>{I=a})),this.disposeWithMe(C.combineLatest([this.filterKeyword$.pipe(C.tap(a=>{var d,l,v;a.length>0?(l=(d=this._inputPlaceholderRenderRoot)==null?void 0:d.unmount)==null||l.dispose():(v=this._inputPlaceholderRenderRoot)==null||v.mount()})),this.isComposing$.pipe(C.tap(a=>{var d,l,v;a?(l=(d=this._inputPlaceholderRenderRoot)==null?void 0:d.unmount)==null||l.dispose():I.length<=0&&((v=this._inputPlaceholderRenderRoot)==null||v.mount())})),this.editPopup$.pipe(C.tap(a=>{var d,l;a||((l=(d=this._inputPlaceholderRenderRoot)==null?void 0:d.unmount)==null||l.dispose(),this._inputPlaceholderRenderRoot=null)}))]).subscribe())}get popups(){return Array.from(this._popups)}get editPopup(){return this._editPopup$.value}get isComposing(){return this._isComposing$.value}setIsComposing(e){this._isComposing$.next(e)}get inputOffset(){return this._inputOffset$.value}setInputOffset(e){this._inputOffset$.next(e)}getDocEventManagerService(e){var n;return(n=this._renderManagerService.getRenderById(e))==null?void 0:n.with(_.DocEventManagerService)}resolvePopup(e){return Array.from(this._popups).find(n=>n.keyword===e)}registerPopup(e){return this._popups.add(e),()=>{this._popups.delete(e)}}_createInputPlaceholderRenderRoot(e){return{isMounted:!1,mount(){if(this.isMounted)return;this.isMounted=!0;const i=e();this.unmount={dispose:()=>{i.dispose(),this.isMounted=!1}}}}}showPopup(e){var l,v;const{popup:n,index:i,unitId:o}=e;this.closePopup();const u=this._univerInstanceService.getUnit(o),m=(v=(l=u==null?void 0:u.getBody())==null?void 0:l.paragraphs)==null?void 0:v.find(M=>M.startIndex>i);if(!m)return;const I=this.getDocEventManagerService(o),a=I==null?void 0:I.findParagraphBoundByIndex(m.startIndex);if(!a)return;this._inputPlaceholderRenderRoot=this._createInputPlaceholderRenderRoot(()=>{var B;const M=(B=this._renderManagerService.getRenderById(o))==null?void 0:B.with(D.DocSkeletonManagerService),w=this._docSelectionManagerService.getActiveTextRange();if(!M||!w)return se;const k=M.getSkeleton().findNodeByCharIndex(w.startOffset,w.segmentId,w.segmentPage);if(!((k==null?void 0:k.content)==="\r"))return se;const T=this._docCanvasPopupManagerService.attachPopupToRange({startOffset:i+1,endOffset:i+1,collapsed:!1},{componentKey:j.componentKey,onClickOutside:()=>{T.dispose()},direction:"horizontal"},o);return T}),this._inputPlaceholderRenderRoot.mount();const d=this._docCanvasPopupManagerService.attachPopupToRect(a.firstLine,{componentKey:H.componentKey,onClickOutside:()=>{this.closePopup()},direction:"bottom"},o);this._editPopup$.next({disposable:d,popup:n,anchor:i,unitId:o})}closePopup(){this.editPopup&&(this.editPopup.disposable.dispose(),this._editPopup$.next(null))}onMenuSelected(e){return this._menuSelectedCallbacks.add(e),()=>{this._menuSelectedCallbacks.delete(e)}}emitMenuSelected(e){const{start:n,end:i}=this.inputOffset;this._commandService.syncExecuteCommand(te.id,{start:n,end:i}),setTimeout(()=>{this._menuSelectedCallbacks.forEach(o=>o(e))},0)}},c.DocQuickInsertPopupService=De([R(0,s.Inject(_.DocCanvasPopManagerService)),R(1,s.Inject(s.IUniverInstanceService)),R(2,s.Inject(s.ICommandService)),R(3,s.Inject(W.IRenderManagerService)),R(4,s.Inject(D.DocSelectionManagerService))],c.DocQuickInsertPopupService);const oe={type:s.CommandType.OPERATION,id:"doc.operation.show-quick-insert-popup",handler(r,t){const e=r.get(c.DocQuickInsertPopupService);return t?(e.showPopup(t),!0):!1}},Q={type:s.CommandType.OPERATION,id:"doc.operation.close-quick-insert-popup",handler(r){return r.get(c.DocQuickInsertPopupService).closePopup(),!0}},ce={id:"quick-insert.text.menu",title:"docQuickInsert.menu.text",icon:"TextIcon",keywords:["text"]},ae={id:_.OrderListCommand.id,title:"docQuickInsert.menu.numberedList",icon:"OrderIcon",keywords:["numbered","list","ordered"]},ue={id:_.BulletListCommand.id,title:"docQuickInsert.menu.bulletedList",icon:"UnorderIcon",keywords:["bulleted","list","unordered"]},de={id:_.HorizontalLineCommand.id,title:"docQuickInsert.menu.divider",icon:"DividerIcon",keywords:["divider","line","separate"]},pe={id:_.DocCreateTableOperation.id,title:"docQuickInsert.menu.table",icon:"GridIcon",keywords:["table","grid","spreadsheet"]},le={id:ee.InsertDocImageCommand.id,title:"docQuickInsert.menu.image",icon:"AdditionAndSubtractionIcon",keywords:["image","picture","photo"]},Me=[{title:"docQuickInsert.group.basics",id:"quick.insert.group.basic",children:[ce,ae,ue,de,pe,le]}],we=new Set([ae.id,ue.id,de.id,pe.id,le.id]);var ke=Object.getOwnPropertyDescriptor,Oe=(r,t,e,n)=>{for(var i=n>1?void 0:n?ke(t,e):t,o=r.length-1,u;o>=0;o--)(u=r[o])&&(i=u(i)||i);return i},U=(r,t)=>(e,n)=>t(e,n,r);c.DocQuickInsertTriggerController=class extends s.Disposable{constructor(t,e,n,i,o){super(),this._commandService=t,this._textSelectionManagerService=e,this._docQuickInsertPopupService=n,this._shortcutService=i,this._univerInstanceService=o,this.disposeWithMe(this._shortcutService.registerShortcut({id:Q.id,binding:p.KeyCode.ESC,preconditions:()=>!!this._docQuickInsertPopupService.editPopup,priority:1e3})),this._initTrigger(),this._initMenuHandler()}_initTrigger(){this.disposeWithMe(this._commandService.onCommandExecuted(t=>{var u,m,I;const{_docQuickInsertPopupService:e,_textSelectionManagerService:n,_commandService:i}=this,o=this._univerInstanceService.getCurrentUnitOfType(s.UniverInstanceType.UNIVER_DOC);if(!(o!=null&&o.getDisabled())){if(t.id===_.InsertCommand.id){const a=t.params;if(e.editPopup){e.setInputOffset({start:e.inputOffset.start,end:a.range.endOffset+1});return}const d=n.getActiveTextRange();if(!d)return;const l=e.resolvePopup(a.body.dataStream);if(!l||!(l.preconditions?l.preconditions(a):!0))return;e.setInputOffset({start:d.startOffset-1,end:d.startOffset}),setTimeout(()=>{i.executeCommand(oe.id,{index:d.startOffset-1,unitId:a.unitId,popup:l})},100)}if(t.id===_.IMEInputCommand.id){const a=t.params;!e.isComposing&&a.isCompositionStart&&e.setIsComposing(!0),e.isComposing&&a.isCompositionEnd&&e.setIsComposing(!1)}if(t.id===D.RichTextEditingMutation.id){const a=t.params;if(a.isCompositionEnd){const d=(m=(u=a.textRanges)==null?void 0:u[0])==null?void 0:m.endOffset;d&&e.setInputOffset({start:e.inputOffset.start,end:d})}}if(t.id===_.DeleteCommand.id){const a=t.params;if(e.editPopup&&a.direction===s.DeleteDirection.LEFT){const d=(I=a.len)!=null?I:0;e.setInputOffset({start:e.inputOffset.start,end:a.range.endOffset-d})}}if(t.id===_.MoveCursorOperation.id){const a=t.params;(a.direction===s.Direction.LEFT||a.direction===s.Direction.RIGHT)&&e.editPopup&&i.executeCommand(Q.id)}if(t.id===_.DeleteLeftCommand.id){const a=n.getActiveTextRange();if(!e.editPopup||!a)return;a.endOffset<=e.editPopup.anchor&&i.executeCommand(Q.id)}}}))}_initMenuHandler(){this.disposeWithMe(this._docQuickInsertPopupService.onMenuSelected(t=>{t.id!==ce.id&&we.has(t.id)&&this._commandService.executeCommand(t.id)}))}},c.DocQuickInsertTriggerController=Oe([U(0,s.ICommandService),U(1,s.Inject(D.DocSelectionManagerService)),U(2,s.Inject(c.DocQuickInsertPopupService)),U(3,s.Inject(p.IShortcutService)),U(4,s.Inject(s.IUniverInstanceService))],c.DocQuickInsertTriggerController);function L({ref:r,...t}){const{icon:e,id:n,className:i,extend:o,...u}=t,m=`univerjs-icon univerjs-icon-${n} ${i||""}`.trim(),I=h.useRef(`_${$e()}`);return ve(e,`${n}`,{defIds:e.defIds,idSuffix:I.current},{ref:r,className:m,...u},o)}function ve(r,t,e,n,i){return h.createElement(r.tag,{key:t,...be(r,e,i),...n},(xe(r,e).children||[]).map((o,u)=>ve(o,`${t}-${r.tag}-${u}`,e,void 0,i)))}function be(r,t,e){const n={...r.attrs};e!=null&&e.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=e.colorChannel1),r.tag==="mask"&&n.id&&(n.id=n.id+t.idSuffix),Object.entries(n).forEach(([o,u])=>{o==="mask"&&typeof u=="string"&&(n[o]=u.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});const{defIds:i}=t;return!i||i.length===0||(r.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+t.idSuffix),Object.entries(n).forEach(([o,u])=>{typeof u=="string"&&(n[o]=u.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))})),n}function xe(r,t){var n;const{defIds:e}=t;return!e||e.length===0?r:r.tag==="defs"&&((n=r.children)!=null&&n.length)?{...r,children:r.children.map(i=>typeof i.attrs.id=="string"&&e&&e.includes(i.attrs.id)?{...i,attrs:{...i.attrs,id:i.attrs.id+t.idSuffix}}:i)}:r}function $e(){return Math.random().toString(36).substring(2,8)}L.displayName="UniverIcon";const Re={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.01953 3.13985C1.01953 2.77258 1.31726 2.47485 1.68453 2.47485H2.73713C3.1044 2.47485 3.40213 2.77258 3.40213 3.13985C3.40213 3.50712 3.1044 3.80485 2.73713 3.80485H1.68453C1.31726 3.80485 1.01953 3.50712 1.01953 3.13985Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.17734 3.13985C4.17734 2.77258 4.47507 2.47485 4.84234 2.47485H6.94754C7.31481 2.47485 7.61254 2.77258 7.61254 3.13985C7.61254 3.50712 7.31481 3.80485 6.94754 3.80485H4.84234C4.47507 3.80485 4.17734 3.50712 4.17734 3.13985Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M8.38775 3.13985C8.38775 2.77258 8.68548 2.47485 9.05275 2.47485H11.158C11.5252 2.47485 11.823 2.77258 11.823 3.13985C11.823 3.50712 11.5252 3.80485 11.158 3.80485H9.05275C8.68548 3.80485 8.38775 3.50712 8.38775 3.13985Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M12.5982 3.13985C12.5982 2.77258 12.8959 2.47485 13.2632 2.47485H14.3158C14.683 2.47485 14.9808 2.77258 14.9808 3.13985C14.9808 3.50712 14.683 3.80485 14.3158 3.80485H13.2632C12.8959 3.80485 12.5982 3.50712 12.5982 3.13985Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.01953 7.99972C1.01953 7.63245 1.31726 7.33472 1.68453 7.33472H14.3158C14.683 7.33472 14.9808 7.63245 14.9808 7.99972C14.9808 8.36699 14.683 8.66472 14.3158 8.66472H1.68453C1.31726 8.66472 1.01953 8.36699 1.01953 7.99972Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.68453 12.1951C1.31726 12.1951 1.01953 12.4928 1.01953 12.8601C1.01953 13.2273 1.31726 13.5251 1.68453 13.5251H2.73713C3.1044 13.5251 3.40213 13.2273 3.40213 12.8601C3.40213 12.4928 3.1044 12.1951 2.73713 12.1951H1.68453Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.84234 12.1951C4.47507 12.1951 4.17734 12.4928 4.17734 12.8601C4.17734 13.2273 4.47507 13.5251 4.84234 13.5251H6.94754C7.31481 13.5251 7.61254 13.2273 7.61254 12.8601C7.61254 12.4928 7.31481 12.1951 6.94754 12.1951H4.84234Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M9.05275 12.1951C8.68548 12.1951 8.38775 12.4928 8.38775 12.8601C8.38775 13.2273 8.68548 13.5251 9.05275 13.5251H11.158C11.5252 13.5251 11.823 13.2273 11.823 12.8601C11.823 12.4928 11.5252 12.1951 11.158 12.1951H9.05275Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M13.2632 12.1951C12.8959 12.1951 12.5982 12.4928 12.5982 12.8601C12.5982 13.2273 12.8959 13.5251 13.2632 13.5251H14.3158C14.683 13.5251 14.9808 13.2273 14.9808 12.8601C14.9808 12.4928 14.683 12.1951 14.3158 12.1951H13.2632Z"}}]},V=h.forwardRef(function(t,e){return h.createElement(L,Object.assign({},t,{id:"divider-icon",ref:e,icon:Re}))});V.displayName="DividerIcon";const Qe={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},he=h.forwardRef(function(t,e){return h.createElement(L,Object.assign({},t,{id:"increase-icon",ref:e,icon:Qe}))});he.displayName="IncreaseIcon";const Ue={tag:"svg",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"g",attrs:{fill:"currentColor",clipPath:"url(#text-icon_clip0_1293_26)"},children:[{tag:"path",attrs:{d:"M2.22891 2.07227C1.89754 2.07227 1.62891 2.34089 1.62891 2.67227C1.62891 3.00364 1.89754 3.27227 2.22891 3.27227H6.29541V14.0056C6.29541 14.337 6.56404 14.6056 6.89541 14.6056C7.22678 14.6056 7.49541 14.337 7.49541 14.0056V3.27227H11.5622C11.8936 3.27227 12.1622 3.00364 12.1622 2.67227C12.1622 2.34089 11.8936 2.07227 11.5622 2.07227H2.22891Z"}},{tag:"path",attrs:{d:"M10.2289 6.40552C9.89754 6.40552 9.62891 6.67415 9.62891 7.00552C9.62891 7.33689 9.89754 7.60552 10.2289 7.60552H12.2954V14.0055C12.2954 14.3369 12.564 14.6055 12.8954 14.6055C13.2268 14.6055 13.4954 14.3369 13.4954 14.0055V7.60552H15.5622C15.8936 7.60552 16.1622 7.33689 16.1622 7.00552C16.1622 6.67415 15.8936 6.40552 15.5622 6.40552H10.2289Z"}}]},{tag:"defs",attrs:{},children:[{tag:"clipPath",attrs:{id:"text-icon_clip0_1293_26"},children:[{tag:"path",attrs:{fill:"white",d:"M0 0H16V16H0z",transform:"translate(.9)"}}]}]}],defIds:["text-icon_clip0_1293_26"]},F=h.forwardRef(function(t,e){return h.createElement(L,Object.assign({},t,{id:"text-icon",ref:e,icon:Ue}))});F.displayName="TextIcon";const fe="doc.quick-insert.button";var Ee=Object.getOwnPropertyDescriptor,Te=(r,t,e,n)=>{for(var i=n>1?void 0:n?Ee(t,e):t,o=r.length-1,u;o>=0;o--)(u=r[o])&&(i=u(i)||i);return i},G=(r,t)=>(e,n)=>t(e,n,r);let q=class extends s.Disposable{constructor(t,e,n,i){super();P(this,"_popup$",new C.BehaviorSubject(null));P(this,"popup$",this._popup$.asObservable());this._context=t,this._docEventManagerService=e,this._docQuickInsertPopupService=n,this._docCanvasPopManagerService=i,this._init()}get popup(){return this._popup$.value}_init(){this.disposeWithMe(C.combineLatest([this._docEventManagerService.hoverParagraphLeftRealTime$,this._docEventManagerService.hoverParagraphRealTime$]).subscribe(([t,e])=>{var o;const n=t!=null?t:e,i=this._context.unit.getDisabled();if(!n||i){this._hideMenu(!0);return}if(n.paragraphStart===n.paragraphEnd){if(this._docQuickInsertPopupService.editPopup||n.startIndex===((o=this.popup)==null?void 0:o.startIndex))return;this._hideMenu(!0);const u=this._docCanvasPopManagerService.attachPopupToRect(n.firstLine,{componentKey:fe,direction:"left-center"},this._context.unit.getUnitId());this._popup$.next({startIndex:n.startIndex,disposable:u})}else this._hideMenu(!0)}))}_hideMenu(t){this._docQuickInsertPopupService.editPopup||this.popup&&(t||this.popup.disposable.canDispose())&&(this.popup.disposable.dispose(),this._popup$.next(null))}};q=Te([G(1,s.Inject(_.DocEventManagerService)),G(2,s.Inject(c.DocQuickInsertPopupService)),G(3,s.Inject(_.DocCanvasPopManagerService))],q);const z=({className:r=""})=>{const t=p.useDependency(c.DocQuickInsertPopupService),e=p.useDependency(s.IUniverInstanceService),n=p.useDependency(W.IRenderManagerService),i=p.useObservable(h.useMemo(()=>e.getCurrentTypeOfUnit$(s.UniverInstanceType.UNIVER_DOC),[e])),o=i&&n.getRenderById(i.getUnitId()),u=o==null?void 0:o.with(q),m=p.useDependency(p.ILayoutService),I=p.useDependency(D.DocSelectionManagerService),a=p.useObservable(t.editPopup$),d=p.useEvent(l=>{var E;const v=u==null?void 0:u.popup;if(!v)return;const M=t.popups,w={keyword:"",menus$:C.combineLatest(M.map(k=>k.menus$)).pipe(C.map(k=>k.flat()))};I.replaceDocRanges([{startOffset:v.startIndex,endOffset:v.startIndex}]),t.setInputOffset({start:v.startIndex-1,end:v.startIndex-1}),t.showPopup({popup:w,index:v.startIndex-1,unitId:(E=i==null?void 0:i.getUnitId())!=null?E:""}),setTimeout(()=>{m.focus()})});return g.jsx("div",{className:O.clsx("univer-mr-1 univer-flex univer-cursor-pointer univer-items-center univer-gap-2.5 univer-rounded-full univer-p-1.5 univer-shadow-sm hover:univer-bg-gray-100 dark:!univer-text-gray-200 dark:hover:!univer-bg-gray-700",O.borderClassName,{"univer-bg-gray-100 dark:!univer-bg-gray-700":a,"univer-bg-white dark:!univer-bg-gray-900":!a},r),role:"button",tabIndex:0,onClick:d,children:g.jsx(he,{className:"univer-text-gray-800 dark:!univer-text-gray-200"})})};z.componentKey=fe;var Ne=Object.getOwnPropertyDescriptor,je=(r,t,e,n)=>{for(var i=n>1?void 0:n?Ne(t,e):t,o=r.length-1,u;o>=0;o--)(u=r[o])&&(i=u(i)||i);return i},Y=(r,t)=>(e,n)=>t(e,n,r);c.DocQuickInsertUIController=class extends s.Disposable{constructor(t,e,n){super(),this._commandService=t,this._docQuickInsertPopupService=e,this._componentManager=n,this._initCommands(),this._initComponents(),this._initMenus()}_initCommands(){[te,oe,Q].forEach(t=>{this.disposeWithMe(this._commandService.registerCommand(t))})}_initComponents(){[[H.componentKey,H],[j.componentKey,j],[K.componentKey,K],[V.displayName,V],[F.displayName,F],[z.componentKey,z]].forEach(([e,n])=>{e&&this.disposeWithMe(this._componentManager.register(e,n))}),[{keyword:"/",menus$:C.of(Me),preconditions:e=>{var n;return((n=e.range.startNodePosition)==null?void 0:n.glyph)===0}}].forEach(e=>{this.disposeWithMe(this._docQuickInsertPopupService.registerPopup(e))})}_initMenus(){}},c.DocQuickInsertUIController=je([Y(0,s.ICommandService),Y(1,s.Inject(c.DocQuickInsertPopupService)),Y(2,s.Inject(p.ComponentManager))],c.DocQuickInsertUIController);const Ke="docs-quick-insert-ui.config",ge={};var He=Object.defineProperty,Le=Object.getOwnPropertyDescriptor,qe=(r,t,e)=>t in r?He(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Ae=(r,t,e,n)=>{for(var i=n>1?void 0:n?Le(t,e):t,o=r.length-1,u;o>=0;o--)(u=r[o])&&(i=u(i)||i);return i},J=(r,t)=>(e,n)=>t(e,n,r),me=(r,t,e)=>qe(r,typeof t!="symbol"?t+"":t,e);const Be="DOC_QUICK_INSERT_UI_PLUGIN";c.UniverDocsQuickInsertUIPlugin=class extends s.Plugin{constructor(t=ge,e,n,i){super(),this._config=t,this._injector=e,this._renderManagerSrv=n,this._configService=i;const{menu:o,...u}=s.merge({},ge,this._config);o&&this._configService.setConfig("menu",o,{merge:!0}),this._configService.setConfig(Ke,u)}onStarting(){[[c.DocQuickInsertUIController],[c.DocQuickInsertTriggerController],[c.DocQuickInsertPopupService]].forEach(e=>this._injector.add(e)),this._injector.get(c.DocQuickInsertUIController)}onRendered(){this._injector.get(c.DocQuickInsertTriggerController),this._injector.get(c.DocQuickInsertPopupService),[[q]].forEach(t=>{this._renderManagerSrv.registerRenderModule(s.UniverInstanceType.UNIVER_DOC,t)})}},me(c.UniverDocsQuickInsertUIPlugin,"type",s.UniverInstanceType.UNIVER_DOC),me(c.UniverDocsQuickInsertUIPlugin,"pluginName",Be),c.UniverDocsQuickInsertUIPlugin=Ae([s.DependentOn(Se.UniverDrawingUIPlugin,_e.UniverDrawingPlugin,ee.UniverDocsDrawingUIPlugin,Ce.UniverDocsDrawingPlugin,p.UniverUIPlugin),J(1,s.Inject(s.Injector)),J(2,s.Inject(W.IRenderManagerService)),J(3,s.IConfigService)],c.UniverDocsQuickInsertUIPlugin),c.KeywordInputPlaceholderComponentKey=ne,c.QuickInsertPlaceholderComponentKey=ie,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/docs-quick-insert-ui",
3
- "version": "0.10.12",
3
+ "version": "0.10.13",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -52,17 +52,17 @@
52
52
  "rxjs": ">=7.0.0"
53
53
  },
54
54
  "dependencies": {
55
- "@univerjs/icons": "^0.4.9",
56
- "@univerjs/core": "0.10.12",
57
- "@univerjs/design": "0.10.12",
58
- "@univerjs/docs": "0.10.12",
59
- "@univerjs/docs-drawing": "0.10.12",
60
- "@univerjs/docs-drawing-ui": "0.10.12",
61
- "@univerjs/drawing": "0.10.12",
62
- "@univerjs/engine-render": "0.10.12",
63
- "@univerjs/docs-ui": "0.10.12",
64
- "@univerjs/drawing-ui": "0.10.12",
65
- "@univerjs/ui": "0.10.12"
55
+ "@univerjs/icons": "^1.0.2",
56
+ "@univerjs/core": "0.10.13",
57
+ "@univerjs/docs": "0.10.13",
58
+ "@univerjs/design": "0.10.13",
59
+ "@univerjs/docs-drawing-ui": "0.10.13",
60
+ "@univerjs/drawing": "0.10.13",
61
+ "@univerjs/docs-ui": "0.10.13",
62
+ "@univerjs/docs-drawing": "0.10.13",
63
+ "@univerjs/engine-render": "0.10.13",
64
+ "@univerjs/drawing-ui": "0.10.13",
65
+ "@univerjs/ui": "0.10.13"
66
66
  },
67
67
  "devDependencies": {
68
68
  "postcss": "^8.5.6",
@@ -72,7 +72,7 @@
72
72
  "typescript": "^5.9.3",
73
73
  "vite": "^7.1.10",
74
74
  "vitest": "^3.2.4",
75
- "@univerjs-infra/shared": "0.10.12"
75
+ "@univerjs-infra/shared": "0.10.13"
76
76
  },
77
77
  "scripts": {
78
78
  "test": "vitest run",