@univerjs/sheets-ui 0.5.5-nightly.202501221606 → 0.5.5-nightly.202501241606
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 +5 -5
- package/lib/es/facade.js +3 -0
- package/lib/es/index.js +104 -72
- package/lib/types/facade/f-event.d.ts +41 -32
- package/lib/types/facade/f-permission.d.ts +3 -0
- package/lib/types/facade/f-range.d.ts +3 -0
- package/lib/types/facade/f-sheet-hooks.d.ts +3 -0
- package/lib/types/facade/f-univer.d.ts +6 -0
- package/lib/types/facade/f-workbook.d.ts +3 -0
- package/lib/types/facade/f-worksheet.d.ts +3 -0
- package/lib/types/services/clipboard/utils.d.ts +1 -1
- package/lib/umd/index.js +5 -5
- package/package.json +14 -14
- package/lib/types/commands/commands/__tests__/add-worksheet-merge.command.spec.d.ts +0 -16
- package/lib/types/commands/commands/__tests__/auto-fill.controller.spec.d.ts +0 -16
- package/lib/types/commands/commands/__tests__/create-command-test-bed.d.ts +0 -7
- package/lib/types/commands/commands/__tests__/create-selection-command-test-bed.d.ts +0 -28
- package/lib/types/commands/commands/__tests__/create-sheet-skeleton-test-bed.d.ts +0 -22
- package/lib/types/commands/commands/__tests__/hide-row-col-confirm.command.spec.d.ts +0 -16
- package/lib/types/commands/commands/__tests__/remove-row-col-confirm.command.spec.d.ts +0 -16
- package/lib/types/commands/commands/__tests__/selection-utils.spec.d.ts +0 -16
- package/lib/types/commands/commands/__tests__/set-format-painter.command.spec.d.ts +0 -16
- package/lib/types/commands/commands/__tests__/set-frozen.command.spec.d.ts +0 -16
- package/lib/types/commands/commands/__tests__/set-selections.command.spec.d.ts +0 -16
- package/lib/types/commands/commands/__tests__/sheet-skeleton.spec.d.ts +0 -16
- package/lib/types/controllers/editor/__tests__/create-test-bed.d.ts +0 -7
- package/lib/types/controllers/editor/__tests__/end-edit.controller.spec.d.ts +0 -16
- package/lib/types/controllers/editor/__tests__/mock-function.service.d.ts +0 -5
- package/lib/types/controllers/menu/__tests__/create-menu-test-bed.d.ts +0 -13
- package/lib/types/controllers/menu/__tests__/menu.spec.d.ts +0 -16
- package/lib/types/controllers/menu/__tests__/row-col.menu.spec.d.ts +0 -16
- package/lib/types/controllers/utils/__tests__/cell-tools.spec.d.ts +0 -16
- package/lib/types/facade/__tests__/create-test-bed.d.ts +0 -10
- package/lib/types/facade/__tests__/f-sheet-hooks.spec.d.ts +0 -16
- package/lib/types/services/auto-fill/__tests__/tool.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-copy-filter.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-paste-alignment.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-paste-border.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-paste-col-width.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-paste-font.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-paste-form-excel.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-paste-from-google.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-paste-from-notepad.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-paste-rotate.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-service.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/clipboard-test-bed.d.ts +0 -29
- package/lib/types/services/clipboard/__tests__/constant.d.ts +0 -28
- package/lib/types/services/clipboard/__tests__/mock-clipboard.d.ts +0 -39
- package/lib/types/services/clipboard/__tests__/sheet-paste.spec.d.ts +0 -16
- package/lib/types/services/clipboard/__tests__/utils.spec.d.ts +0 -16
package/lib/cjs/index.js
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
`;const cellTextRuns=[];textRuns==null||textRuns.forEach(t=>{t.st>=starts[i]&&t.ed<=starts[i+1]&&cellTextRuns.push({st:t.st-starts[i],ed:t.ed-starts[i],ts:t.ts})});const cellCustomRanges=[];customRanges==null||customRanges.forEach(c=>{c.startIndex>=starts[i]&&c.endIndex<=starts[i+1]&&cellCustomRanges.push({...c,startIndex:c.startIndex-starts[i],endIndex:c.endIndex-starts[i]})});const p=this._generateDocumentDataModelSnapshot({body:{dataStream:cellDataStream,textRuns:cellTextRuns,paragraphs:generateParagraphs(cellDataStream),customRanges:cellCustomRanges}}),isEmptyMatrix=Object.keys(valueMatrix.getMatrix()).length===0;valueMatrix.setValue(isEmptyMatrix?0:valueMatrix.getLength(),0,{v:cellDataStream,p}),rowProperties.push({})}}else if(dataStream){const singleDataStream=`${dataStream}\r
|
|
8
8
|
`,singleDocBody={dataStream:singleDataStream,textRuns,paragraphs:generateParagraphs(singleDataStream),payloads,customRanges};if(!(customRanges!=null&&customRanges.length))valueMatrix.setValue(0,0,convertToCellStyle({v:dataStream},dataStream,textRuns));else{const p=this._generateDocumentDataModelSnapshot({body:singleDocBody});valueMatrix.setValue(0,0,convertToCellStyle({v:dataStream,p},dataStream,textRuns))}rowProperties.push({})}return tableStrings&&tableStrings.forEach((t,index)=>{const curRow=valueMatrix.getDataRange().endRow+1,{cellMatrix,rowProperties:tableRowProp,colProperties:tableColProp}=this._parseTable(t,index);cellMatrix&&cellMatrix.forValue((row,col,value)=>{valueMatrix.setValue(curRow+row,col,value)}),tableColProp&&colProperties.push(...tableColProp),rowProperties.push(...tableRowProp)}),this.dispose(),{rowProperties,colProperties,cellMatrix:valueMatrix}}_getStyleBySelectorText(selectorText,cssText){var _a61;const css=(_a61=this._styleMap.get(selectorText))==null?void 0:_a61.getPropertyValue(cssText);return css||""}_getStyle(node,styleStr){const recordStyle=turnToStyleObject(styleStr),style=node.style;let newStyleStr="";for(let l=0;l<sheetStyleRules.length;l++){const key=sheetStyleRules[l];if(key==="background"){let value2="";node.classList.forEach(className=>{value2=this._getStyleBySelectorText(`.${className}`,"background-color")||this._getStyleBySelectorText(`.${className}`,key)});const bgColor=style.getPropertyValue("background-color")||value2||this._getStyleBySelectorText(`#${node.id}`,"background-color")||this._getStyleBySelectorText(`#${node.id}`,key)||this._getStyleBySelectorText(node.nodeName.toLowerCase(),key)||this._getStyleBySelectorText(node.nodeName,"background-color")||recordStyle["background-color"]||"";bgColor&&(newStyleStr+=`background:${bgColor};`);continue}if(key==="text-decoration"){let value2="";node.classList.forEach(className=>{value2=this._getStyleBySelectorText(`.${className}`,"text-decoration-line")||this._getStyleBySelectorText(`.${className}`,key)});const textDecoration=style.getPropertyValue("text-decoration-line")||style.getPropertyValue("text-decoration")||value2||this._getStyleBySelectorText(`#${node.id}`,"text-decoration-line")||this._getStyleBySelectorText(`#${node.id}`,key)||this._getStyleBySelectorText(node.nodeName.toLowerCase(),key)||this._getStyleBySelectorText(node.nodeName,"text-decoration-line")||recordStyle["text-decoration-line"]||"";textDecoration&&(newStyleStr+=`text-decoration:${textDecoration};`);continue}let value="";node.classList.forEach(className=>{value=this._getStyleBySelectorText(`.${className}`,key)}),value=style.getPropertyValue(key)||this._getStyleBySelectorText(`#${node.id}`,key)||value||this._getStyleBySelectorText(node.nodeName.toLowerCase(),key)||recordStyle[key]||"",value&&(newStyleStr+=`${key}:${value};`)}return newStyleStr}_parseTable(html,tableElIndex){var _a61,_b;const valueMatrix=new core.ObjectMatrix,colProperties=(_a61=parseColGroup(html))!=null?_a61:[],{rowProperties=[]}=parseTableRows(html),parsedCellMatrix=this._parseTableByHtml(this._dom,tableElIndex,(_b=this._getCurrentSkeleton())==null?void 0:_b.skeleton);return parsedCellMatrix&&parsedCellMatrix.forValue((row,col,value)=>{var _a62,_b2,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x;let style=ui.handleStringToStyle(void 0,value.style);if((_d=(_c=(_b2=(_a62=value==null?void 0:value.richTextParma)==null?void 0:_a62.p)==null?void 0:_b2.body)==null?void 0:_c.textRuns)!=null&&_d.length){const textLen=(_f=(_e=value==null?void 0:value.richTextParma)==null?void 0:_e.v)==null?void 0:_f.length;for(let i=0;i<((_j=(_i=(_h=(_g=value==null?void 0:value.richTextParma)==null?void 0:_g.p)==null?void 0:_h.body)==null?void 0:_i.textRuns)==null?void 0:_j.length);i++){const textRunItem=(_m=(_l=(_k=value==null?void 0:value.richTextParma)==null?void 0:_k.p)==null?void 0:_l.body)==null?void 0:_m.textRuns[i];textRunItem.st===0&&textRunItem.ed===textLen&&(style={...textRunItem.ts,...style},(_p=(_o=(_n=value==null?void 0:value.richTextParma)==null?void 0:_n.p)==null?void 0:_o.body)==null||_p.textRuns.splice(i,1),i--)}((_t=(_s=(_r=(_q=value==null?void 0:value.richTextParma)==null?void 0:_q.p)==null?void 0:_r.body)==null?void 0:_s.textRuns)==null?void 0:_t.length)===0&&(value.content=(_u=value==null?void 0:value.richTextParma)==null?void 0:_u.v,delete value.richTextParma)}const cellValue=(_x=(_w=(_v=value==null?void 0:value.richTextParma)==null?void 0:_v.p)==null?void 0:_w.body)!=null&&_x.textRuns?{v:value.richTextParma.v,p:value.richTextParma.p,s:style,rowSpan:value.rowSpan,colSpan:value.colSpan}:{v:value.content,s:style,rowSpan:value.rowSpan,colSpan:value.colSpan};valueMatrix.setValue(row,col,cellValue)}),{rowProperties,colProperties,cellMatrix:valueMatrix}}_parseTableByHtml(htmlElement,tableElIndex,skeleton){var _a61,_b;const cellMatrix=new core.ObjectMatrix,tableEle=htmlElement.querySelectorAll("table")[tableElIndex];if(!tableEle)return cellMatrix;const tableStyle=this._getStyle(tableEle,""),rows=tableEle==null?void 0:tableEle.querySelectorAll("tr");for(let rowIndex=0;rowIndex<rows.length;rowIndex++){const row=rows[rowIndex],rowStyle=this._getStyle(row,tableStyle),cells=row.querySelectorAll("td, th");let colSetValueIndex=0;for(let colIndex=0;colIndex<cells.length;){const cell=cells[colIndex];let cellStyle="";const rowSpan=Number(cell.getAttribute("rowSpan"))||1,colSpan=Number(cell.getAttribute("colSpan"))||1;if(cellStyle=this._getStyle(cell,rowStyle),rowIndex>0){const cellValueAbove=cellMatrix.getValue(rowIndex-1,colSetValueIndex);if((_a61=cellValueAbove==null?void 0:cellValueAbove.style)!=null&&_a61.includes("border-bottom")&&cellStyle.includes("border-top")){const borderBottom=extractStyleProperty(cellValueAbove.style,"border-bottom");borderBottom&&ui.textTrim(borderBottom.substr(borderBottom.indexOf(":")+1))!=="none"&&(cellStyle=cellStyle.replace(/border-top:[^;]+;/,""))}}if(colIndex>0){const cellValueLeft=cellMatrix.getValue(rowIndex,colSetValueIndex-1);if((_b=cellValueLeft==null?void 0:cellValueLeft.style)!=null&&_b.includes("border-right")&&cellStyle.includes("border-left")){const borderRight=extractStyleProperty(cellValueLeft.style,"border-right");borderRight&&ui.textTrim(borderRight.substr(borderRight.indexOf(":")+1))!=="none"&&(cellStyle=cellStyle.replace(/border-left:[^;]+;/,""))}}const{cellText,cellRichStyle}=this._getCellTextAndRichText(cell,cellStyle,skeleton),cellValue={rowSpan,colSpan,content:cellText,style:cellStyle,richTextParma:{p:cellRichStyle,v:cellText}};if(cellMatrix.getValue(rowIndex,colSetValueIndex)){colSetValueIndex+=1;continue}else rowSpan>1||colSpan>1?setMergedCellStyle(cellMatrix,cellStyle,cellValue,{colSpan,rowSpan,rowIndex,colIndex,colSetValueIndex}):cellMatrix.setValue(rowIndex,colSetValueIndex,cellValue),colSetValueIndex+=colSpan,colIndex++}}return cellMatrix}_parseCellHtml(parent,nodes,doc,styleCache=new Map,styleStr){var _a61;for(const node of nodes)if(node.nodeType===Node.TEXT_NODE){const text=(_a61=node.nodeValue)==null?void 0:_a61.replace(/[\r\n]/g,"");let style;parent&&styleCache.has(parent)&&(style=styleCache.get(parent)),doc.dataStream+=text,style&&Object.getOwnPropertyNames(style).length&&doc.textRuns.push({st:doc.dataStream.length-text.length,ed:doc.dataStream.length,ts:style})}else{if(node.nodeType===Node.COMMENT_NODE||node.nodeName==="STYLE")continue;if(node.nodeType===Node.ELEMENT_NODE){const currentNodeStyle=this._getStyle(node,styleStr),parentStyles=parent?styleCache.get(parent):{},predefinedStyles=turnToStyleObject(currentNodeStyle),nodeStyles=extractNodeStyle(node,predefinedStyles);styleCache.set(node,{...parentStyles,...nodeStyles});const{childNodes}=node;this._parseCellHtml(node,childNodes,doc,styleCache,currentNodeStyle)}}}_getCellTextAndRichText(cell,styleStr,skeleton){var _a61;let cellText="",cellRichStyle;if(/<[^>]+>/.test(cell.innerHTML)&&skeleton){const newDocBody={dataStream:"",textRuns:[]};this._parseCellHtml(null,cell.childNodes,newDocBody,void 0,styleStr);const documentModel=(_a61=skeleton.getBlankCellDocumentModel())==null?void 0:_a61.documentModel,p=documentModel==null?void 0:documentModel.getSnapshot(),singleDataStream=`${newDocBody.dataStream}\r
|
|
9
9
|
`,documentData={...p,body:{dataStream:singleDataStream,textRuns:newDocBody.textRuns,paragraphs:generateParagraphs(singleDataStream)}};documentModel==null||documentModel.reset(documentData),cellRichStyle=documentModel==null?void 0:documentModel.getSnapshot(),cellText=newDocBody.dataStream}else cellText=decodeHTMLEntities(cell.innerHTML.replace(/[\r\n]/g,""));return{cellText,cellRichStyle}}_generateDocumentDataModelSnapshot(snapshot){var _a61;const currentSkeleton=this._getCurrentSkeleton();if(currentSkeleton==null)return null;const{skeleton}=currentSkeleton,documentModel=(_a61=skeleton.getBlankCellDocumentModel())==null?void 0:_a61.documentModel,documentData={...documentModel==null?void 0:documentModel.getSnapshot(),...snapshot};return documentModel==null||documentModel.reset(documentData),documentModel==null?void 0:documentModel.getSnapshot()}process(parent,nodes,doc,tables){var _a61,_b,_c;for(const node of nodes)if(node.nodeName.toLowerCase()==="table")tables.push({index:((_a61=doc==null?void 0:doc.paragraphs)==null?void 0:_a61.length)||0});else if(node.nodeType===Node.TEXT_NODE){if(((_b=node.nodeValue)==null?void 0:_b.trim())==="")continue;const text=(_c=node.nodeValue)==null?void 0:_c.replace(/[\r\n]/g,"");let style;parent&&this._styleCache.has(parent)&&(style=this._styleCache.get(parent));const newDoc={dataStream:"",textRuns:[]};doc.dataStream+=text,newDoc.dataStream+=text,style&&Object.getOwnPropertyNames(style).length&&(doc.textRuns.push({st:doc.dataStream.length-text.length,ed:doc.dataStream.length,ts:style}),newDoc.textRuns.push({st:doc.dataStream.length-text.length,ed:doc.dataStream.length,ts:style}))}else{if(core.skipParseTagNames.includes(node.nodeName.toLowerCase()))continue;if(node.nodeName.toLowerCase()==="br")doc.paragraphs||(doc.paragraphs=[]),doc.paragraphs.push({startIndex:doc.dataStream.length}),doc.dataStream+="\r";else if(node.nodeType===Node.ELEMENT_NODE){if(node.nodeName==="STYLE")continue;const element2=node,linkStart=this._processBeforeLink(element2,{body:doc}),parentStyles=parent?this._styleCache.get(parent):{},styleRule=this._styleRules.find(({filter})=>matchFilter(node,filter)),nodeStyles=styleRule?styleRule.getStyle(node):extractNodeStyle(node);this._styleCache.set(node,{...parentStyles,...nodeStyles});const{childNodes}=node;this.process(node,childNodes,doc,tables);const afterProcessRule=this._afterProcessRules.find(({filter})=>matchFilter(node,filter));afterProcessRule&&afterProcessRule.handler(doc,node),this._processAfterLink(element2,{body:doc},linkStart)}}}_processBeforeLink(node,doc){return doc.body.dataStream.length}_processAfterLink(node,doc,start){var _a61,_b;const body=doc.body,element2=node;element2.tagName.toUpperCase()==="A"&&(body.customRanges=(_a61=body.customRanges)!=null?_a61:[],body.customRanges.push({startIndex:start,endIndex:body.dataStream.length-1,rangeId:(_b=element2.dataset.rangeid)!=null?_b:core.generateRandomId(),rangeType:core.CustomRangeType.HYPERLINK,properties:{url:element2.href}}))}dispose(){this._dom=null,this._styleCache.clear(),this._styleMap.clear()}};__name(_HtmlToUSMService,"HtmlToUSMService"),__publicField(_HtmlToUSMService,"_pluginList",[]);let HtmlToUSMService=_HtmlToUSMService;function parseTableRows(html){const ROWS_REGEX=/<tr([\s\S]*?)>([\s\S]*?)<\/tr>/gi,rowMatches=html.matchAll(ROWS_REGEX);if(!rowMatches)return{rowProperties:[],rowCount:0};const rowProperties=Array.from(rowMatches).map(rowMatch=>parseProperties(rowMatch[1])).map(properties=>{if(!properties.height){const style=properties.style,match=style&&style.match(/height\s*:\s*(\d+(\.\d+)?)px/);properties.height=`${match?Number.parseInt(match[1],10):core.DEFAULT_WORKSHEET_ROW_HEIGHT}`}return properties});return{rowProperties,rowCount:rowProperties.length}}__name(parseTableRows,"parseTableRows");function turnToStyleObject(styleStr){const styleObj={};return styleStr.split(";").forEach(style=>{const[key,value]=style.split(":");styleObj[key]=value}),styleObj}__name(turnToStyleObject,"turnToStyleObject");function parseProperties(propertyStr){if(!propertyStr)return{};const property={},PROPERTY_REGEX=/([\w-]+)\s*=\s*(?:(['"])([^'"]*)\2|(\S+))/g;let match;for(;(match=PROPERTY_REGEX.exec(propertyStr))!==null;){const[,attributeName,,attributeValue1,attributeValue2]=match,attributeValue=attributeValue1!==void 0?attributeValue1:attributeValue2;property[attributeName]=attributeValue}return property}__name(parseProperties,"parseProperties");function parseColGroup(raw){const COLGROUP_TAG_REGEX=/<colgroup([\s\S]*?)>(.*?)<\/colgroup>/,colgroupMatch=raw.match(COLGROUP_TAG_REGEX),COL_TAG_REGEX=/<col([\s\S]*?)>/g;let colMatches;if(colgroupMatch!=null&&colgroupMatch[2]?colMatches=colgroupMatch[2].matchAll(COL_TAG_REGEX):colMatches=raw.matchAll(COL_TAG_REGEX),!colMatches)return null;const colPropertiesWithSpan=Array.from(colMatches).map(colMatch=>parseProperties(colMatch[1])),colProperties=[];return colPropertiesWithSpan.forEach(propertiesWithSpan=>{const span=Number(propertiesWithSpan.span);if(span)for(let i=0;i<span;i++){const propertiesWithoutSpan={...propertiesWithSpan};delete propertiesWithoutSpan.span,colProperties.push(propertiesWithoutSpan)}else colProperties.push(propertiesWithSpan)}),colProperties}__name(parseColGroup,"parseColGroup");function decodeHTMLEntities(input){const entities={"<":"<",">":">","&":"&",""":'"',"'":"'"," ":" "};return input.replace(/<|>|&|"|'| |<br>/g,match=>entities[match])}__name(decodeHTMLEntities,"decodeHTMLEntities");function extractStyleProperty(styleString,propertyName){if(!styleString||!propertyName)return null;const regex=new RegExp(`(${propertyName}\\s*:\\s*[^;]+);`,"i"),match=styleString.match(regex);return match?match[1]:null}__name(extractStyleProperty,"extractStyleProperty");function setMergedCellStyle(cellMatrix,cellStyle,cellValue,indexParams){const{rowSpan,colSpan,rowIndex,colSetValueIndex}=indexParams;for(let i=rowIndex;i<rowIndex+rowSpan;i++)for(let j=colSetValueIndex;j<colSetValueIndex+colSpan;j++)i===rowIndex&&j===colSetValueIndex?cellMatrix.setValue(i,j,{...cellValue,style:cellStyle}):cellMatrix.setValue(i,j,{style:cellStyle})}__name(setMergedCellStyle,"setMergedCellStyle");const LarkPastePlugin={name:"univer-doc-paste-plugin-lark",checkPasteType(html){return/lark-record-clipboard/i.test(html)},stylesRules:[{filter:["s"],getStyle(node){const inlineStyle=extractNodeStyle(node);return{st:{s:core.BooleanNumber.TRUE},...inlineStyle}}}],afterProcessRules:[{filter(el){return el.tagName==="DIV"&&/ace-line/i.test(el.className)},handler(doc){doc.paragraphs==null&&(doc.paragraphs=[]),doc.paragraphs.push({startIndex:doc.dataStream.length}),doc.dataStream+="\r"}}]},UniverPastePlugin={name:"univer-doc-paste-plugin-univer",checkPasteType(html){return/UniverNormal/i.test(html)},stylesRules:[],afterProcessRules:[{filter(el){return el.tagName==="P"&&/UniverNormal/i.test(el.className)},handler(doc,el){doc.paragraphs==null&&(doc.paragraphs=[]);const paragraph={startIndex:doc.dataStream.length},paragraphStyle=getParagraphStyle(el);paragraphStyle&&(paragraph.paragraphStyle=paragraphStyle),doc.paragraphs.push(paragraph),doc.dataStream+="\r"}}]},WordPastePlugin={name:"univer-doc-paste-plugin-word",checkPasteType(html){return/word|mso/i.test(html)},stylesRules:[{filter:["b"],getStyle(node){const inlineStyle=extractNodeStyle(node);return{bl:core.BooleanNumber.TRUE,...inlineStyle}}}],afterProcessRules:[{filter(el){return el.tagName==="P"&&/mso/i.test(el.className)},handler(doc,el){doc.paragraphs==null&&(doc.paragraphs=[]);const paragraph={startIndex:doc.dataStream.length},paragraphStyle=getParagraphStyle(el);paragraphStyle&&(paragraph.paragraphStyle=paragraphStyle),doc.paragraphs.push(paragraph),doc.dataStream+="\r"}}]};var COPY_TYPE=(COPY_TYPE2=>(COPY_TYPE2.COPY="COPY",COPY_TYPE2.CUT="CUT",COPY_TYPE2))(COPY_TYPE||{});function getRowContent(row,cols,hooks,matrix,mergeSet){const properties=hooks.map(hook=>{var _a61;return(_a61=hook.onCopyRow)==null?void 0:_a61.call(hook,row)}).filter(v=>!!v),mergedProperties=mergeProperties(properties),str=zipClipboardPropertyItemToString(mergedProperties),tds=cols.map(col=>{if(!mergeSet.has(`${row}-${col}`)){const v=matrix.getValue(row,col);if(v!=null&&v.rowSpan&&(v!=null&&v.colSpan))for(let i=row;i<row+v.rowSpan;i++)for(let j=col;j<col+v.colSpan;j++)mergeSet.add(`${i}-${j}`);return getTDContent(row,col,hooks,matrix)}return null}).filter(v=>!!v).join("");return`<tr${str}>${tds}</tr>`}__name(getRowContent,"getRowContent");function getTDContent(row,col,hooks,matrix){const v=matrix.getValue(row,col),properties=hooks.map(hook=>{var _a61;return(_a61=hook.onCopyCellStyle)==null?void 0:_a61.call(hook,row,col,v==null?void 0:v.rowSpan,v==null?void 0:v.colSpan)}).filter(v2=>!!v2),mergedProperties=mergeProperties(properties),str=zipClipboardPropertyItemToString(mergedProperties),content=hooks.reduce((acc,hook)=>{var _a61;return acc||((_a61=hook.onCopyCellContent)==null?void 0:_a61.call(hook,row,col))||""},"");return`<td${str}>${content}</td>`}__name(getTDContent,"getTDContent");function getColStyle(cols,hooks){return`<colgroup>${cols.map(col=>{const properties=hooks.map(hook=>{var _a61;return(_a61=hook.onCopyColumn)==null?void 0:_a61.call(hook,col)}).filter(v=>!!v),mergedProperties=mergeProperties(properties);return`<col ${zipClipboardPropertyItemToString(mergedProperties)}>`}).join("")}</colgroup>`}__name(getColStyle,"getColStyle");function mergeProperties(properties){return properties.reduce((acc,cur)=>(Object.keys(cur).forEach(key=>{acc[key]?acc[key]+=`;${cur[key]}`:acc[key]=cur[key]}),acc),{})}__name(mergeProperties,"mergeProperties");function zipClipboardPropertyItemToString(item){return Object.keys(item).reduce((acc,cur)=>(acc+=` ${cur}="${item[cur]}"`,acc),"")}__name(zipClipboardPropertyItemToString,"zipClipboardPropertyItemToString");const _USMToHtmlService=class _USMToHtmlService{convert(matrix,range,hooks){const{cols,rows}=range;if(!cols.length)return"";const colStyles=getColStyle(cols,hooks),rowContents=[],mergeSet=new Set;return rows.forEach(row=>{rowContents.push(getRowContent(row,cols,hooks,matrix,mergeSet))}),`<google-sheets-html-origin><table xmlns="http://www.w3.org/1999/xhtml" cellspacing="0" cellpadding="0" dir="ltr" style="table-layout:fixed;font-size:10pt;font-family:Arial;width:0px;border-collapse:collapse;border:none">${colStyles}
|
|
10
|
-
<tbody>${rowContents.join("")}</tbody></table>`}};__name(_USMToHtmlService,"USMToHtmlService");let USMToHtmlService=_USMToHtmlService;const getRepeatRange=__name((sourceRange,targetRange,isStrictMode=!1)=>{const getRowLength=__name(range=>range.endRow-range.startRow+1,"getRowLength"),getColLength=__name(range=>range.endColumn-range.startColumn+1,"getColLength"),rowMod=getRowLength(targetRange)%getRowLength(sourceRange),colMod=getColLength(targetRange)%getColLength(sourceRange),repeatRelativeRange={startRow:0,endRow:getRowLength(sourceRange)-1,startColumn:0,endColumn:getColLength(sourceRange)-1},repeatRow=Math.floor(getRowLength(targetRange)/getRowLength(sourceRange)),repeatCol=Math.floor(getColLength(targetRange)/getColLength(sourceRange)),repeatList=[];if(!rowMod&&!colMod)for(let countRow=1;countRow<=repeatRow;countRow++)for(let countCol=1;countCol<=repeatCol;countCol++){const row=getRowLength(sourceRange)*(countRow-1),col=getColLength(sourceRange)*(countCol-1),startRange={startRow:row+targetRange.startRow,endRow:row+targetRange.startRow,startColumn:col+targetRange.startColumn,endColumn:col+targetRange.startColumn};repeatList.push({repeatRelativeRange,startRange})}else if(!rowMod&&colMod&&!isStrictMode)for(let countRow=1;countRow<=repeatRow;countRow++){const row=getRowLength(sourceRange)*(countRow-1),col=0,startRange={startRow:row+targetRange.startRow,endRow:row+targetRange.startRow,startColumn:col+targetRange.startColumn,endColumn:col+targetRange.startColumn};repeatList.push({repeatRelativeRange,startRange})}else if(rowMod&&!colMod&&!isStrictMode)for(let countCol=1;countCol<=repeatCol;countCol++){const col=getColLength(sourceRange)*(countCol-1),startRange={startRow:0+targetRange.startRow,endRow:0+targetRange.startRow,startColumn:col+targetRange.startColumn,endColumn:col+targetRange.startColumn};repeatList.push({repeatRelativeRange,startRange})}else{const startRange={startRow:targetRange.startRow,endRow:targetRange.startRow,startColumn:targetRange.startColumn,endColumn:targetRange.startColumn};repeatList.push({startRange,repeatRelativeRange})}return repeatList},"getRepeatRange");
|
|
11
|
-
`);let html="<table>";return rows.forEach(row=>{const columns=row.split(" ");html+="<tr>",columns.forEach(column=>{html+=`<td>${column}</td>`}),html+="</tr>"}),html+="</table>",html}__name(convertTextToTable,"convertTextToTable");var __defProp$H=Object.defineProperty,__getOwnPropDesc$H=Object.getOwnPropertyDescriptor,__decorateClass$H=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$H(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$H(target,key,result),result},"__decorateClass$H"),__decorateParam$H=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$H");const PREDEFINED_HOOK_NAME={DEFAULT_COPY:"default-copy",DEFAULT_PASTE:"default-paste",SPECIAL_PASTE_VALUE:"special-paste-value",SPECIAL_PASTE_FORMAT:"special-paste-format",SPECIAL_PASTE_COL_WIDTH:"special-paste-col-width",SPECIAL_PASTE_BESIDES_BORDER:"special-paste-besides-border",SPECIAL_PASTE_FORMULA:"special-paste-formula"},IMAGE_MIME_TO_EXTENSION={[ui.FILE_PNG_CLIPBOARD_MIME_TYPE]:"png",[ui.FILE__JPEG_CLIPBOARD_MIME_TYPE]:"jpg",[ui.FILE__WEBP_CLIPBOARD_MIME_TYPE]:"webp",[ui.FILE__BMP_CLIPBOARD_MIME_TYPE]:"bmp"};HtmlToUSMService.use(WordPastePlugin);HtmlToUSMService.use(LarkPastePlugin);HtmlToUSMService.use(UniverPastePlugin);const ISheetClipboardService=core.createIdentifier("sheet.clipboard-service");var _a15;exports.SheetClipboardService=(_a15=class extends core.Disposable{constructor(_logService,_univerInstanceService,_selectionManagerService,_clipboardInterfaceService,_undoRedoService,_commandService,_markSelectionService,_notificationService,_platformService,_renderManagerService,_themeService,_localeService,_errorService,_injector){super();__publicField(this,"_clipboardHooks",[]);__publicField(this,"_clipboardHooks$",new rxjs.BehaviorSubject([]));__publicField(this,"clipboardHooks$",this._clipboardHooks$.asObservable());__publicField(this,"_htmlToUSM");__publicField(this,"_usmToHtml");__publicField(this,"_copyContentCache");__publicField(this,"_copyMarkId",null);__publicField(this,"_pasteOptionsCache$",new rxjs.BehaviorSubject(null));__publicField(this,"pasteOptionsCache$",this._pasteOptionsCache$.asObservable());__publicField(this,"_showMenu$",new rxjs.Subject);__publicField(this,"showMenu$",this._showMenu$.asObservable());this._logService=_logService,this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._clipboardInterfaceService=_clipboardInterfaceService,this._undoRedoService=_undoRedoService,this._commandService=_commandService,this._markSelectionService=_markSelectionService,this._notificationService=_notificationService,this._platformService=_platformService,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._localeService=_localeService,this._errorService=_errorService,this._injector=_injector,this._htmlToUSM=new HtmlToUSMService({getCurrentSkeleton:__name(()=>{var _a61;return(_a61=this._renderManagerService.withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:_a61.getCurrent()},"getCurrentSkeleton")}),this._usmToHtml=new USMToHtmlService,this._copyContentCache=new CopyContentCache,this.disposeWithMe(this._htmlToUSM),this._initUnitDisposed()}setShowMenu(show){this._showMenu$.next(show)}copyContentCache(){return this._copyContentCache}generateCopyContent(workbookId,worksheetId,range){return this._generateCopyContent(workbookId,worksheetId,range,this._clipboardHooks)}async copy(copyType=COPY_TYPE.COPY){const selection=this._selectionManagerService.getCurrentLastSelection();if(!selection)return!1;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return!1;const hooks=this._clipboardHooks,workbookId=workbook.getUnitId(),worksheetId=worksheet.getSheetId();hooks.forEach(h=>{var _a61;return(_a61=h.onBeforeCopy)==null?void 0:_a61.call(h,workbookId,worksheetId,selection.range,copyType)});const copyContent=this.generateCopyContent(workbookId,worksheetId,selection.range);if(hooks.forEach(h=>{var _a61;return(_a61=h.onAfterCopy)==null?void 0:_a61.call(h)}),!copyContent)return!1;const{html,plain,matrixFragment,copyId,discreteRange}=copyContent;this._copyContentCache.set(copyId,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),range:discreteRange,matrix:matrixFragment,copyType}),await this._clipboardInterfaceService.write(plain,html),this._markSelectionService.removeAllShapes();const style=createCopyPasteSelectionStyle(this._themeService);return this._copyMarkId=this._markSelectionService.addShape({...selection,style}),!0}async cut(){return this.copy(COPY_TYPE.CUT)}async paste(item,pasteType=PREDEFINED_HOOK_NAME.DEFAULT_PASTE){const types=item.types,text=types.indexOf(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"",html=types.indexOf(ui.HTML_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.HTML_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"",imageIndex=types.findIndex(type=>ui.imageMimeTypeSet.has(type));if(imageIndex!==-1){const imageMimeType=types[imageIndex],imageBlob=await item.getType(imageMimeType);if(imageBlob){const file=new File([imageBlob],`clipboard-image.${IMAGE_MIME_TO_EXTENSION[imageMimeType]}`,{type:imageMimeType});return this._pasteFiles([file],pasteType)}}return html?(this._platformService.isWindows&&await clipboardItemIsFromExcel(html)&&this._notificationService.show({type:"warning",title:this._localeService.t("clipboard.shortCutNotify.title"),content:this._localeService.t("clipboard.shortCutNotify.useShortCutInstead")}),this._pasteHTML(html,pasteType)):text?this._pastePlainText(text,pasteType):(this._logService.error("[SheetClipboardService]","No valid data on clipboard"),!1)}legacyPaste(html,text,files){return files?this._pasteFiles(files,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):html?this._pasteHTML(html,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):text?/[\n\t]/.test(text)?this._pasteHTML(convertTextToTable(text),PREDEFINED_HOOK_NAME.DEFAULT_PASTE):this._pastePlainText(text,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):this._pasteUnrecognized()}rePasteWithPasteType(type){const pasteOptionsCache=this._pasteOptionsCache$.getValue();if(!pasteOptionsCache)return!1;const undoRedoService=this._injector.get(core.IUndoRedoService),element2=undoRedoService.pitchTopUndoElement();element2&&core.sequenceExecute(element2.undoMutations,this._commandService)&&undoRedoService.popUndoToRedo();const{cellMatrix,rowProperties=[],colProperties=[],source,target}=pasteOptionsCache;return this._pasteUSM({cellMatrix,colProperties,rowProperties},target,PREDEFINED_HOOK_NAME[type],source),!0}updatePasteOptionsCache(cache){this._pasteOptionsCache$.next(cache)}addClipboardHook(hook){if(this._clipboardHooks.findIndex(h=>h.id===hook.id)!==-1)return this._logService.error("[SheetClipboardService]","hook already exists",hook.id),{dispose:__name(()=>{},"dispose")};const insertIndex=this._clipboardHooks.findIndex(existingHook=>{const existingHookPriority=existingHook.priority||0;return(hook.priority||0)<existingHookPriority});return this._clipboardHooks.splice(insertIndex!==-1?insertIndex:this._clipboardHooks.length,0,hook),this._notifyClipboardHook(),core.toDisposable(()=>{const index=this._clipboardHooks.indexOf(hook);index>-1&&(this._clipboardHooks.splice(index,1),this._notifyClipboardHook())})}getClipboardHooks(){return this._clipboardHooks}_generateCopyContent(unitId,subUnitId,range,hooks){const workbook=this._univerInstanceService.getUniverSheetInstance(unitId),worksheet=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId);if(!workbook||!worksheet)return null;const filteredRows=hooks.reduce((acc,cur)=>{var _a61;const rows=(_a61=cur.getFilteredOutRows)==null?void 0:_a61.call(cur,range);return rows==null||rows.forEach(r2=>acc.add(r2)),acc},new Set),{startColumn,startRow,endColumn,endRow}=range,matrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn,core.CellModeEnum.Both),matrixFragment=new core.ObjectMatrix;let rowIndex=startRow;const plainMatrix=new core.ObjectMatrix,discreteRange={rows:[],cols:[]};for(let r2=startRow;r2<=endRow;r2++)if(!filteredRows.has(r2)){discreteRange.rows.push(r2);for(let c=startColumn;c<=endColumn;c++){const cellData=matrix.getValue(r2,c);if(cellData){const newCellData=core.Tools.deepClone(cellData);plainMatrix.setValue(rowIndex-startRow,c-startColumn,{...getEmptyCell(),...newCellData}),delete newCellData.displayV,matrixFragment.setValue(rowIndex-startRow,c-startColumn,{...getEmptyCell(),...newCellData})}else plainMatrix.setValue(rowIndex-startRow,c-startColumn,getEmptyCell()),matrixFragment.setValue(rowIndex-startRow,c-startColumn,getEmptyCell()),matrix.setValue(r2,c,getEmptyCell())}rowIndex+=1}for(let c=startColumn;c<=endColumn;c++)discreteRange.cols.push(c);let html=this._usmToHtml.convert(matrix,discreteRange,hooks);const plain=getMatrixPlainText(plainMatrix),copyId=genId();return html=html.replace(/(<[a-z]+)/,(_p0,p1)=>`${p1} data-copy-id="${copyId}"`),{copyId,plain,html,matrixFragment,discreteRange}}_notifyClipboardHook(){this._clipboardHooks$.next(this._clipboardHooks)}async _executePaste(generateMutations){const target=this._getPastingTarget();if(!target.subUnitId||!target.selection)return!1;const range=this._injector.invoke(accessor=>rangeToDiscreteRange(target.selection.range,accessor,target.unitId,target.subUnitId));if(!range)return!1;const{unitId,subUnitId}=target,hooks=this._clipboardHooks,enabledHooks=[];if(hooks.some(h=>{var _a61;return enabledHooks.push(h)&&((_a61=h.onBeforePaste)==null?void 0:_a61.call(h,{unitId,subUnitId,range}))===!1}))return enabledHooks.forEach(h=>{var _a61;return(_a61=h.onAfterPaste)==null?void 0:_a61.call(h,!1)}),!1;const redoMutationsInfo=[],undoMutationsInfo=[];enabledHooks.forEach(h=>{const contentReturn=generateMutations(h,{unitId,subUnitId,range});contentReturn&&(redoMutationsInfo.push(...contentReturn.redos),undoMutationsInfo.push(...contentReturn.undos))});const result=redoMutationsInfo.every(m=>this._commandService.executeCommand(m.id,m.params));return result&&this._undoRedoService.pushUndoRedo({unitID:this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId(),undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),result}async _pasteFiles(files,pasteType){return this._executePaste((h,payload)=>{var _a61;return(_a61=h.onPasteFiles)==null?void 0:_a61.call(h,payload,files,{pasteType})})}async _pastePlainText(text,pasteType){return this._executePaste((h,payload)=>{var _a61;return(_a61=h.onPastePlainText)==null?void 0:_a61.call(h,payload,text,{pasteType})})}_pasteUnrecognized(){return this._executePaste((h,payload)=>{var _a61;return(_a61=h.onPasteUnrecognized)==null?void 0:_a61.call(h,payload)})}async _pasteHTML(html,pasteType){const copyId=extractId(html);return copyId&&this._copyContentCache.get(copyId)?this._pasteInternal(copyId,pasteType):this._pasteExternal(html,pasteType)}async _pasteExternal(html,pasteType){var _a61;const{rowProperties,colProperties,cellMatrix}=this._htmlToUSM.convert(html);if(!cellMatrix)return!1;const pasteTarget=this._getPastedRange(cellMatrix);if(!pasteTarget)return!1;const worksheet=(_a61=this._univerInstanceService.getUniverSheetInstance(pasteTarget.unitId))==null?void 0:_a61.getSheetBySheetId(pasteTarget.subUnitId);if(!worksheet)return!1;const mergeData=worksheet==null?void 0:worksheet.getMergeData();return mergeData.length&&mergeData.some(m=>rangeIntersectWithDiscreteRange(m,pasteTarget.pastedRange)&&!discreteRangeContainsRange(pasteTarget.pastedRange,m))?(this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1):this._pasteUSM({rowProperties,colProperties,cellMatrix},pasteTarget,pasteType)}async _pasteInternal(copyId,pasteType){var _a61,_b;const cachedData=core.Tools.deepClone(this._copyContentCache.get(copyId)),{range,matrix:cellMatrix,unitId:copyUnitId,subUnitId:copySubUnitId}=cachedData||{};if(!cellMatrix||!cachedData||!range||!copyUnitId||!copySubUnitId||!cellMatrix||!cachedData)return!1;const styles2=(_a61=this._univerInstanceService.getUniverSheetInstance(copyUnitId))==null?void 0:_a61.getStyles();cellMatrix.forValue((row,col,value)=>{if(typeof value.s=="string"){const newValue=core.Tools.deepClone(value);newValue.s=styles2==null?void 0:styles2.getStyleByCell(value),cellMatrix.setValue(row,col,newValue)}if(value.colSpan||value.rowSpan)for(let rStart=0;rStart<value.rowSpan;rStart++)for(let cStart=0;cStart<value.colSpan;cStart++){if(rStart===0&&cStart===0)continue;const r2=row+rStart,c=col+cStart;cellMatrix.setValue(r2,c,{s:styles2==null?void 0:styles2.getStyleByCell(value)})}});const pasteTarget=this._getPastedRange(cellMatrix);if(!pasteTarget)return!1;const pasteToWorksheet=(_b=this._univerInstanceService.getUniverSheetInstance(pasteTarget.unitId))==null?void 0:_b.getSheetBySheetId(pasteTarget.subUnitId);if(!pasteToWorksheet)return!1;const mergeData=pasteToWorksheet==null?void 0:pasteToWorksheet.getMergeData();if(mergeData&&mergeData.some(m=>rangeIntersectWithDiscreteRange(m,pasteTarget.pastedRange)&&!discreteRangeContainsRange(pasteTarget.pastedRange,m)))return this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1;const pasteFromWorkbook=this._univerInstanceService.getUnit(copyUnitId);if(!pasteFromWorkbook)return!1;const pasteFromWorksheet=pasteFromWorkbook.getSheetBySheetId(copySubUnitId);if(!pasteFromWorksheet)return!1;const colManager=pasteFromWorksheet.getColumnManager(),rowManager=pasteFromWorksheet.getRowManager(),defaultColumnWidth=pasteFromWorksheet.getConfig().defaultColumnWidth,defaultRowHeight=pasteFromWorksheet.getConfig().defaultRowHeight,colProperties=[],rowProperties=[];if(range.cols.forEach(i=>{const column=colManager.getColumnOrCreate(i);colProperties.push({width:`${column.w||defaultColumnWidth}`})}),range.rows.forEach(j=>{const row=rowManager.getRowOrCreate(j),{ah=defaultRowHeight,h=defaultRowHeight}=row,height=Math.max(ah,h);rowProperties.push({height:`${height}`})}),cachedData.copyType===COPY_TYPE.CUT){const start=pasteTarget.pastedRange.rows[0],end=range.rows[range.rows.length-1]-range.rows[0]+start;pasteTarget.pastedRange.rows=Array.from(new Array(end+1).keys()).slice(start)}const pasteRes=this._pasteUSM({cellMatrix,colProperties,rowProperties},pasteTarget,pasteType,{range,unitId:cachedData.unitId,subUnitId:cachedData.subUnitId,copyType:cachedData.copyType,copyId});return cachedData.copyType===COPY_TYPE.CUT&&(this._copyContentCache.set(copyId,{...cachedData,matrix:null}),this._copyMarkId&&this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null),pasteRes}_pasteUSM(data,target,pasteType,source){const{rowProperties,colProperties,cellMatrix}=data,{unitId,subUnitId,pastedRange}=target,colCount=pastedRange.cols.length,hooks=this._clipboardHooks,enabledHooks=[];if(hooks.some(h=>{var _a61;return enabledHooks.push(h)&&((_a61=h.onBeforePaste)==null?void 0:_a61.call(h,{unitId,subUnitId,range:pastedRange}))===!1}))return enabledHooks.forEach(h=>{var _a61;return(_a61=h.onAfterPaste)==null?void 0:_a61.call(h,!1)}),!1;if(!cellMatrix)return!1;const pasteFrom=source?{unitId:source.unitId,subUnitId:source.subUnitId,range:source.range}:null,payload={copyType:(source==null?void 0:source.copyType)||COPY_TYPE.COPY,copyId:source==null?void 0:source.copyId,pasteType};let redoMutationsInfo=[],undoMutationsInfo=[];const filteredHooks=enabledHooks.filter(h=>!h.specialPasteInfo&&h.id!==PREDEFINED_HOOK_NAME.DEFAULT_PASTE||pasteType===h.id);filteredHooks.forEach(h=>{var _a61,_b,_c;if(rowProperties){const rowReturn=(_a61=h.onPasteRows)==null?void 0:_a61.call(h,{range:pastedRange,unitId,subUnitId},rowProperties,{pasteType});rowReturn&&(redoMutationsInfo.push(...rowReturn.redos),undoMutationsInfo.push(...rowReturn.undos))}const colReturn=(_b=h.onPasteColumns)==null?void 0:_b.call(h,{range:pastedRange,unitId,subUnitId},colProperties||new Array(colCount).map(()=>({})),{pasteType});colReturn&&(redoMutationsInfo.push(...colReturn.redos),undoMutationsInfo.push(...colReturn.undos));const contentReturn=(_c=h.onPasteCells)==null?void 0:_c.call(h,pasteFrom,{range:pastedRange,unitId,subUnitId},cellMatrix,payload);contentReturn&&(redoMutationsInfo.push(...contentReturn.redos),undoMutationsInfo.push(...contentReturn.undos))});const setSelectionOperation=this._getSetSelectionOperation(unitId,subUnitId,pastedRange,cellMatrix,pasteType);setSelectionOperation&&redoMutationsInfo.push(setSelectionOperation),redoMutationsInfo=mergeSetRangeValues(redoMutationsInfo),undoMutationsInfo=mergeSetRangeValues(undoMutationsInfo),undoMutationsInfo.push({id:sheets.SetWorksheetActiveOperation.id,params:{unitId:target.unitId,subUnitId:target.subUnitId}}),this._logService.log("[SheetClipboardService]","pasting mutations",{undoMutationsInfo,redoMutationsInfo});const result=redoMutationsInfo.every(m=>this._commandService.syncExecuteCommand(m.id,m.params));return result&&(this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),this.updatePasteOptionsCache({target:{pastedRange,unitId,subUnitId},cellMatrix,rowProperties,colProperties,pasteType,source}),this.setShowMenu(!0)),filteredHooks.forEach(h=>{var _a61;return(_a61=h.onAfterPaste)==null?void 0:_a61.call(h,result)}),result}_getSetSelectionOperation(unitId,subUnitId,range,cellMatrix,pasteType){var _a61;const worksheet=(_a61=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a61.getSheetBySheetId(subUnitId);if(!worksheet)return null;const{rows,cols}=range,startRow=rows[0],startColumn=cols[0],endRow=rows[rows.length-1],endColumn=cols[cols.length-1],primaryCell={startRow,endRow:startRow,startColumn,endColumn:startColumn},primary=sheets.getPrimaryForRange(primaryCell,worksheet),mainCell=cellMatrix.getValue(0,0),rowSpan=(mainCell==null?void 0:mainCell.rowSpan)||1,colSpan=(mainCell==null?void 0:mainCell.colSpan)||1;if((pasteType===PREDEFINED_HOOK_NAME.DEFAULT_PASTE||pasteType===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER||pasteType===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT)&&(rowSpan>1||colSpan>1)){const mergeRange={startRow,endRow:startRow+rowSpan-1,startColumn,endColumn:startColumn+colSpan-1};primary.startRow=mergeRange.startRow,primary.endRow=mergeRange.endRow,primary.startColumn=mergeRange.startColumn,primary.endColumn=mergeRange.endColumn,primary.isMerged=!0,primary.isMergedMainCell=!0}const setSelectionsParam={unitId,subUnitId,selections:[{range:{startRow,endRow,startColumn,endColumn},primary,style:null}]};return{id:sheets.SetSelectionsOperation.id,params:setSelectionsParam}}_getPastingTarget(){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),selection=this._selectionManagerService.getCurrentLastSelection();return{unitId:workbook.getUnitId(),subUnitId:worksheet==null?void 0:worksheet.getSheetId(),selection}}_transformPastedData(rowCount,colCount,cellMatrix){const target=this._getPastingTarget(),{selection,unitId,subUnitId}=target;if(!subUnitId||!selection)return null;const discreteRange=this._injector.invoke(accessor=>rangeToDiscreteRange(selection.range,accessor,unitId,subUnitId));if(!discreteRange)return null;const{ranges:[vRange],mapFunc}=virtualizeDiscreteRanges([discreteRange]),{startRow,startColumn,endRow,endColumn}=vRange,destinationRows=endRow-startRow+1,destinationColumns=endColumn-startColumn+1,workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return null;const mergedCellsInRange=worksheet.getMergeData().filter(rect=>discreteRange.rows.includes(rect.startRow)&&discreteRange.cols.includes(rect.startColumn)),mergedRange=mergedCellsInRange[0];let mergedRangeStartRow=0,mergedRangeStartColumn=0,mergedRangeEndRow=0,mergedRangeEndColumn=0;if(mergedRange&&(mergedRangeStartRow=mergedRange.startRow,mergedRangeStartColumn=mergedRange.startColumn,mergedRangeEndRow=mergedRange.endRow,mergedRangeEndColumn=mergedRange.endColumn),destinationRows%rowCount===0&&destinationColumns%colCount===0)if(mergedCellsInRange.length>0&&(destinationRows!==rowCount||destinationColumns!==colCount))if(mergedRangeStartRow===discreteRange.rows[0]&&mergedRangeStartColumn===discreteRange.cols[0]&&mergedRangeEndRow===discreteRange.rows[destinationRows-1]&&mergedRangeEndColumn===discreteRange.cols[destinationColumns-1])if(isMultipleCells(cellMatrix))for(let r2=0;r2<destinationRows;r2++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}else cellMatrix.forValue((row,col,cell)=>{cell.s=null,delete cell.colSpan,delete cell.rowSpan});else for(let r2=0;r2<destinationRows;r2++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}else for(let r2=0;r2<destinationRows;r2++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}else if(mergedCellsInRange.length>0){const{row:topRow,col:leftCol}=mapFunc(startRow,startColumn);if(this._topLeftCellsMatch(rowCount,colCount,{topRow,leftCol})){const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols}else{if(endRow>mergedRange.endRow||endColumn>mergedRange.endColumn)return null;cellMatrix.forValue((row,col,cell)=>{cell.s=null,delete cell.colSpan,delete cell.rowSpan})}}else{const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols}return{pastedRange:discreteRange,unitId,subUnitId}}_getPastedRange(cellMatrix){var _a61;const target=this._getPastingTarget(),{selection,unitId,subUnitId}=target;if(!subUnitId||!selection)return null;const discreteRange=this._injector.invoke(accessor=>rangeToDiscreteRange(selection.range,accessor,unitId,subUnitId));if(!discreteRange)return null;const{startColumn,endColumn,startRow,endRow}=cellMatrix.getDataRange(),rowCount=endRow-startRow+1,colCount=endColumn-startColumn+1;if(rowCount<=0||colCount<=0)return null;const pasteSelectionRangeRowLen=discreteRange.rows.length,pasteSelectionRangeColLen=discreteRange.cols.length,worksheet=(_a61=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a61.getSheetBySheetId(subUnitId);if(!worksheet)return null;const mergeData=worksheet==null?void 0:worksheet.getMergeData();if(pasteSelectionRangeRowLen%rowCount===0&&pasteSelectionRangeColLen%colCount===0&&!(mergeData==null?void 0:mergeData.some(merge=>rangeIntersectWithDiscreteRange(merge,discreteRange)))){for(let r2=0;r2<pasteSelectionRangeRowLen;r2++)for(let c=0;c<pasteSelectionRangeColLen;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}return{pastedRange:discreteRange,unitId,subUnitId}}const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);return discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols,{pastedRange:discreteRange,unitId,subUnitId}}_expandOrShrinkRowsCols(unitId,subUnitId,range,colCount,rowCount){const{rows,cols}=range,workbook=this._univerInstanceService.getUniverSheetInstance(unitId),worksheet=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId);let newRows,newCols;if(rows.length>=rowCount)newRows=rows.slice(0,rowCount);else{newRows=rows.slice(0);let rowIndex=rows[rows.length-1]+1;for(;newRows.length<rowCount;)worksheet.getRowFiltered(rowIndex)||newRows.push(rowIndex),rowIndex++}if(cols.length>=colCount)newCols=cols.slice(0,colCount);else{newCols=cols.slice(0);let colIndex=cols[cols.length-1]+1;for(;newCols.length<colCount;)newCols.push(colIndex),colIndex++}return{rows:newRows,cols:newCols}}_topLeftCellsMatch(rowCount,colCount,range){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return!1;const{topRow,leftCol}=range,isRowAcross=rowAcrossMergedCell(topRow+rowCount-1,leftCol,leftCol+colCount-1,worksheet),isColAcross=columnAcrossMergedCell(leftCol+colCount-1,topRow,topRow+rowCount-1,worksheet);return!isRowAcross&&!isColAcross}removeMarkSelection(){this._copyMarkId&&(this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null)}_initUnitDisposed(){this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook&&this.copyContentCache().clearWithUnitId(workbook.getUnitId())}))}disposePasteOptionsCache(){this.setShowMenu(!1),this.updatePasteOptionsCache(null)}},__name(_a15,"SheetClipboardService"),_a15);exports.SheetClipboardService=__decorateClass$H([__decorateParam$H(0,core.ILogService),__decorateParam$H(1,core.IUniverInstanceService),__decorateParam$H(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$H(3,ui.IClipboardInterfaceService),__decorateParam$H(4,core.IUndoRedoService),__decorateParam$H(5,core.ICommandService),__decorateParam$H(6,IMarkSelectionService),__decorateParam$H(7,ui.INotificationService),__decorateParam$H(8,ui.IPlatformService),__decorateParam$H(9,engineRender.IRenderManagerService),__decorateParam$H(10,core.Inject(core.ThemeService)),__decorateParam$H(11,core.Inject(core.LocaleService)),__decorateParam$H(12,core.Inject(core.ErrorService)),__decorateParam$H(13,core.Inject(core.Injector))],exports.SheetClipboardService);function getMatrixPlainText(matrix){let plain="";const matrixLength=matrix.getLength();return matrix.forRow((row,cols)=>{const arr=[];cols.forEach(col=>{const cell=matrix.getValue(row,col);if(cell){const cellText=getCellTextForClipboard(cell);arr.push(cellText)}}),plain+=arr.join(" "),row!==matrixLength-1&&(plain+=`
|
|
12
|
-
`)}),plain}__name(getMatrixPlainText,"getMatrixPlainText");function getCellTextForClipboard(cell){return core.isNotNullOrUndefined(cell.displayV)?cell.displayV:core.extractPureTextFromCell(cell)}__name(getCellTextForClipboard,"getCellTextForClipboard");function rowAcrossMergedCell(row,startColumn,endColumn,worksheet){return worksheet.getMergeData().some(mergedCell=>mergedCell.startRow<=row&&row<mergedCell.endRow&&startColumn<=mergedCell.startColumn&&mergedCell.startColumn<=endColumn)}__name(rowAcrossMergedCell,"rowAcrossMergedCell");function columnAcrossMergedCell(col,startRow,endRow,worksheet){return worksheet.getMergeData().some(mergedCell=>mergedCell.startColumn<=col&&col<mergedCell.endColumn&&startRow<=mergedCell.startRow&&mergedCell.startRow<=endRow)}__name(columnAcrossMergedCell,"columnAcrossMergedCell");function isMultipleCells(cellMatrix){let count=0;return cellMatrix.forValue((row,col,cell)=>{if(cell&&count++,count>1)return!1}),count>1}__name(isMultipleCells,"isMultipleCells");function getEmptyCell(){return{p:null,v:null,s:null,f:null,si:null,t:null}}__name(getEmptyCell,"getEmptyCell");const SHEET_CLIPBOARD_PRIORITY=998,SheetCopyCommand={id:ui.CopyCommand.id,name:"sheet.command.copy",type:core.CommandType.COMMAND,multi:!0,priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async accessor=>accessor.get(ISheetClipboardService).copy(),"handler")},SheetCutCommand={id:ui.CutCommand.id,name:"sheet.command.cut",type:core.CommandType.COMMAND,multi:!0,priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async accessor=>accessor.get(ISheetClipboardService).cut(),"handler")},SheetPasteCommand={id:ui.PasteCommand.id,type:core.CommandType.COMMAND,multi:!0,name:"sheet.command.paste",priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async(accessor,params)=>{const clipboardItems=await accessor.get(ui.IClipboardInterfaceService).read(),sheetClipboardService=accessor.get(ISheetClipboardService);return clipboardItems.length!==0?sheetClipboardService.paste(clipboardItems[0],params==null?void 0:params.value):!1},"handler")},SheetPasteShortKeyCommand={id:ui.SheetPasteShortKeyCommandName,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const clipboardService=accessor.get(ISheetClipboardService),{htmlContent,textContent,files}=params;return clipboardService.legacyPaste(htmlContent,textContent,files),!0},"handler")},SheetPasteValueCommand={id:"sheet.command.paste-value",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE}),"handler")},SheetPasteFormatCommand={id:"sheet.command.paste-format",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT}),"handler")},SheetPasteColWidthCommand={id:"sheet.command.paste-col-width",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH}),"handler")},SheetPasteBesidesBorderCommand={id:"sheet.command.paste-besides-border",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER}),"handler")},SheetOptionalPasteCommand={id:"sheet.command.optional-paste",type:core.CommandType.COMMAND,handler:__name(async(accessor,{type})=>accessor.get(ISheetClipboardService).rePasteWithPasteType(type),"handler")},HideRowConfirmCommand={id:"sheet.command.hide-row-confirm",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a61;const ranges=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range);if(!(ranges!=null&&ranges.length))return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allRowRanges=worksheet.getVisibleRows();if(isAllRowsCovered(allRowRanges,ranges)){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.hide-row",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.hideAllRowsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.SetRowHiddenCommand.id),!0},"handler")},HideColConfirmCommand={id:"sheet.command.hide-col-confirm",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a61;const ranges=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range);if(!(ranges!=null&&ranges.length))return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allColumnRanges=worksheet.getVisibleCols();if(isAllColumnsCovered(allColumnRanges,ranges)){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.hide-col",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.hideAllColumnsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.SetColHiddenCommand.id),!0},"handler")},SetRangeBoldCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-bold",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatBoldCommand.id):commandService.executeCommand(sheets.SetBoldCommand.id)},"handler")},SetRangeItalicCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-italic",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatItalicCommand.id):commandService.executeCommand(sheets.SetItalicCommand.id)},"handler")},SetRangeUnderlineCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-underline",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatUnderlineCommand.id):commandService.executeCommand(sheets.SetUnderlineCommand.id)},"handler")},SetRangeStrickThroughCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-stroke",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatStrikethroughCommand.id):commandService.executeCommand(sheets.SetStrikeThroughCommand.id)},"handler")},SetRangeSubscriptCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-subscript",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatSubscriptCommand.id):!1},"handler")},SetRangeSuperscriptCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-superscript",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatSuperscriptCommand.id):!1},"handler")},SetRangeFontSizeCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-fontsize",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatFontSizeCommand.id,params):commandService.executeCommand(sheets.SetFontSizeCommand.id,params)},"handler")},SetRangeFontFamilyCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-font-family",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatFontFamilyCommand.id,params):commandService.executeCommand(sheets.SetFontFamilyCommand.id,params)},"handler")},SetRangeTextColorCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-text-color",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatTextColorCommand.id,params):commandService.executeCommand(sheets.SetTextColorCommand.id,params)},"handler")},ResetRangeTextColorCommand={type:core.CommandType.COMMAND,id:"sheet.command.reset-range-text-color",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService),isCellEditorFocus=accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED),themeService=accessor.get(core.ThemeService);return isCellEditorFocus?commandService.executeCommand(docsUi.SetInlineFormatTextColorCommand.id,{value:null}):commandService.executeCommand(sheets.SetTextColorCommand.id,{value:themeService.getCurrentTheme().textColor})},"handler")};var __defProp$G=Object.defineProperty,__getOwnPropDesc$G=Object.getOwnPropertyDescriptor,__decorateClass$G=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$G(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$G(target,key,result),result},"__decorateClass$G"),__decorateParam$G=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$G"),FormatPainterStatus=(FormatPainterStatus2=>(FormatPainterStatus2[FormatPainterStatus2.OFF=0]="OFF",FormatPainterStatus2[FormatPainterStatus2.ONCE=1]="ONCE",FormatPainterStatus2[FormatPainterStatus2.INFINITE=2]="INFINITE",FormatPainterStatus2))(FormatPainterStatus||{});const IFormatPainterService=core.createIdentifier("univer.format-painter-service");var _a16;let FormatPainterService=(_a16=class extends core.Disposable{constructor(_selectionManagerService,_themeService,_markSelectionService,_logService,_commandService,_undoRedoService){super();__publicField(this,"status$");__publicField(this,"_selectionFormat");__publicField(this,"_markId",null);__publicField(this,"_status$");__publicField(this,"_defaultHook",null);__publicField(this,"_extendHooks",[]);this._selectionManagerService=_selectionManagerService,this._themeService=_themeService,this._markSelectionService=_markSelectionService,this._logService=_logService,this._commandService=_commandService,this._undoRedoService=_undoRedoService,this._status$=new rxjs.BehaviorSubject(0),this.status$=this._status$.asObservable(),this._selectionFormat={styles:new core.ObjectMatrix,merges:[]}}addHook(hook){var _a61,_b,_c;hook.isDefaultHook&&((_a61=hook.priority)!=null?_a61:0)>((_c=(_b=this._defaultHook)==null?void 0:_b.priority)!=null?_c:-1)?this._defaultHook=hook:(this._extendHooks.push(hook),this._extendHooks.sort((a,b)=>(a.priority||0)-(b.priority||0)))}getHooks(){return this._defaultHook?[this._defaultHook,...this._extendHooks]:this._extendHooks}setStatus(status){this._updateRangeMark(status),this._status$.next(status),this.getHooks().forEach(hook=>{hook.onStatusChange!==void 0&&hook.onStatusChange(status)})}getStatus(){return this._status$.getValue()}setSelectionFormat(format){this._selectionFormat=format}getSelectionFormat(){return this._selectionFormat}applyFormatPainter(unitId,subUnitId,range){const hooks=this.getHooks(),redoMutationsInfo=[],undoMutationsInfo=[];hooks.forEach(h=>{if(h.onApply!==void 0){const applyReturn=h.onApply(unitId,subUnitId,range,this._selectionFormat);applyReturn&&(redoMutationsInfo.push(...applyReturn.redos),undoMutationsInfo.push(...applyReturn.undos))}});for(const beforeHook of hooks)if(beforeHook.onBeforeApply!==void 0&&!beforeHook.onBeforeApply({unitId,subUnitId,range,redoMutationsInfo,format:this._selectionFormat,undoMutationsInfo}))return!1;this._logService.log("[FormatPainterService]","apply mutations",{undoMutationsInfo,redoMutationsInfo});const result=redoMutationsInfo.every(m=>this._commandService.executeCommand(m.id,m.params));return result&&this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),result}_updateRangeMark(status){if(this._markSelectionService.removeAllShapes(),status!==0){const selection=this._selectionManagerService.getCurrentLastSelection();if(selection){const style=createCopyPasteSelectionStyle(this._themeService);status===2?this._markId=this._markSelectionService.addShape({...selection,style}):this._markId=this._markSelectionService.addShape({...selection,style},[sheets.SetRangeValuesMutation.id])}}}},__name(_a16,"FormatPainterService"),_a16);FormatPainterService=__decorateClass$G([__decorateParam$G(0,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$G(1,core.Inject(core.ThemeService)),__decorateParam$G(2,IMarkSelectionService),__decorateParam$G(3,core.ILogService),__decorateParam$G(4,core.ICommandService),__decorateParam$G(5,core.IUndoRedoService)],FormatPainterService);const SetFormatPainterOperation={id:"sheet.operation.set-format-painter",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>params?(accessor.get(IFormatPainterService).setStatus(params.status),!0):!1,"handler")},SetInfiniteFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-infinite-format-painter",handler:__name(async accessor=>{const status=accessor.get(IFormatPainterService).getStatus();let newStatus;return status!==FormatPainterStatus.OFF?newStatus=FormatPainterStatus.OFF:newStatus=FormatPainterStatus.INFINITE,accessor.get(core.ICommandService).executeCommand(SetFormatPainterOperation.id,{status:newStatus})},"handler")},SetOnceFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-once-format-painter",handler:__name(async accessor=>{const status=accessor.get(IFormatPainterService).getStatus();let newStatus;return status!==FormatPainterStatus.OFF?newStatus=FormatPainterStatus.OFF:newStatus=FormatPainterStatus.ONCE,accessor.get(core.ICommandService).executeCommand(SetFormatPainterOperation.id,{status:newStatus})},"handler")},ApplyFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.apply-format-painter",handler:__name(async(accessor,params)=>accessor.get(IFormatPainterService).applyFormatPainter(params.unitId,params.subUnitId,params.range),"handler")},SetSelectionFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-selection-frozen",handler:__name(async(accessor,params)=>{const{type}=params||{},univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,commandService=accessor.get(core.ICommandService),selections=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections();if(!selections)return!1;const currentSelection=selections[(selections==null?void 0:selections.length)-1],{range}=currentSelection,scrollManagerService=accessor.get(engineRender.IRenderManagerService).getRenderById(unitId).with(exports.SheetScrollManagerService),{sheetViewStartRow=0,sheetViewStartColumn=0}=scrollManagerService.getCurrentScrollState()||{};let startRow,startColumn,freezedRowCount,freezedColCount;const{startRow:selectRow,startColumn:selectColumn,rangeType}=range;if(rangeType===core.RANGE_TYPE.ROW||type===1)startRow=selectRow,freezedRowCount=selectRow-sheetViewStartRow,startColumn=-1,freezedColCount=0;else if(rangeType===core.RANGE_TYPE.COLUMN||type===2)startRow=-1,freezedRowCount=0,startColumn=selectColumn,freezedColCount=selectColumn-sheetViewStartColumn;else if(rangeType===core.RANGE_TYPE.NORMAL)startRow=selectRow,freezedRowCount=selectRow-sheetViewStartRow,startColumn=selectColumn,freezedColCount=selectColumn-sheetViewStartColumn;else return!1;const redoMutationParams={unitId,subUnitId,startRow,startColumn,xSplit:startColumn>0?Math.max(1,freezedColCount):freezedColCount,ySplit:startRow>0?Math.max(1,freezedRowCount):freezedRowCount},undoMutationParams=sheets.SetFrozenMutationFactory(accessor,redoMutationParams);return commandService.syncExecuteCommand(sheets.SetFrozenMutation.id,redoMutationParams)&&undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redoMutations:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}),!0},"handler")},SetRowFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-row-frozen",handler:__name(async accessor=>(accessor.get(core.ICommandService).executeCommand(SetSelectionFrozenCommand.id,{type:1}),!0),"handler")},SetColumnFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-col-frozen",handler:__name(async accessor=>(accessor.get(core.ICommandService).executeCommand(SetSelectionFrozenCommand.id,{type:2}),!0),"handler")};var __defProp$F=Object.defineProperty,__getOwnPropDesc$F=Object.getOwnPropertyDescriptor,__decorateClass$F=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$F(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$F(target,key,result),result},"__decorateClass$F"),__decorateParam$F=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$F");const createAutoColWidthUndoMutationsByRedos=__name((params,worksheet)=>{const{unitId,subUnitId,ranges}=params,colWidthObj={},manager=worksheet.getColumnManager();for(let i=0;i<ranges.length;i++){const range=ranges[i];for(let j=range.startColumn;j<range.endColumn+1;j++){const col=manager.getColumnOrCreate(j);colWidthObj[j]=col.w}}return{unitId,subUnitId,ranges,colWidth:colWidthObj}},"createAutoColWidthUndoMutationsByRedos");var _a17;exports.AutoWidthController=(_a17=class extends core.Disposable{constructor(_renderManagerService,_univerInstanceService){super(),this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService}getUndoRedoParamsOfColWidth(params){const defaultValue={redos:[],undos:[]},{_univerInstanceService:univerInstanceService}=this,target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return defaultValue;const{unitId,subUnitId,worksheet}=target,sheetSkeletonService=this._renderManagerService.getRenderById(unitId).with(exports.SheetSkeletonManagerService);if(!sheetSkeletonService.getCurrent())return defaultValue;const{skeleton}=sheetSkeletonService.getCurrent(),colsAutoWidthInfo=skeleton.calculateAutoWidthInRange(params.ranges),colWidthObject={};for(const{col,width}of colsAutoWidthInfo)colWidthObject[col]=width;const redoParams={subUnitId,unitId,ranges:params.ranges,colWidth:colWidthObject},undoParams=createAutoColWidthUndoMutationsByRedos(redoParams,worksheet);return{undos:[{id:sheets.SetWorksheetColWidthMutation.id,params:undoParams}],redos:[{id:sheets.SetWorksheetColWidthMutation.id,params:redoParams}]}}},__name(_a17,"AutoWidthController"),_a17);exports.AutoWidthController=__decorateClass$F([__decorateParam$F(0,engineRender.IRenderManagerService),__decorateParam$F(1,core.Inject(core.IUniverInstanceService))],exports.AutoWidthController);const SetWorksheetColAutoWidthCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-col-auto-width",handler:__name((accessor,params)=>{const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService,params);if(!target)return!1;const{unitId,subUnitId}=target;let ranges=[];if(params!=null&¶ms.ranges)ranges=[...params.ranges];else{const selections=selectionManagerService.getCurrentSelections();for(let i=0;i<selections.length;i++)ranges.push(selections[i].range)}if(!(ranges!=null&&ranges.length))return!1;const redoMutationParams={unitId,subUnitId,ranges},{redos,undos}=accessor.get(exports.AutoWidthController).getUndoRedoParamsOfColWidth(redoMutationParams);return core.sequenceExecute([...redos],commandService).result?(undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[...undos],redoMutations:[...redos]}),!0):!1},"handler")},COMPONENT_PREFIX="UI_PLUGIN_SHEETS",COLOR_PICKER_COMPONENT=`${COMPONENT_PREFIX}_COLOR_PICKER_COMPONENT`,FONT_FAMILY_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_COMPONENT`,FONT_FAMILY_ITEM_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_ITEM_COMPONENT`,FONT_SIZE_COMPONENT=`${COMPONENT_PREFIX}_FONT_SIZE_COMPONENT`,MENU_ITEM_INPUT_COMPONENT=`${COMPONENT_PREFIX}_MENU_ITEM_INPUT_COMPONENT`,sheetsUiContextMenuInput="univer-sheets-ui-context-menu-input",sheetsUiContextMenuInputContainer="univer-sheets-ui-context-menu-input-container",sheetsUiContextMenuInputNumber="univer-sheets-ui-context-menu-input-number",styles$k={sheetsUiContextMenuInput,sheetsUiContextMenuInputContainer,sheetsUiContextMenuInputNumber},MenuItemInput=__name(props=>{const{prefix,suffix,value,onChange,min=Number.MIN_SAFE_INTEGER,max=Number.MAX_SAFE_INTEGER}=props,localeService=core.useDependency(core.LocaleService),contextMenuService=core.useDependency(ui.IContextMenuService),[inputValue,setInputValue]=React.useState(),handleChange=__name(value2=>{var _a61;setInputValue(value2==null?void 0:value2.toString()),onChange((_a61=value2==null?void 0:value2.toString())!=null?_a61:"")},"handleChange");React.useEffect(()=>{contextMenuService.visible||setInputValue(value)},[contextMenuService.visible]),React.useEffect(()=>{setInputValue(value)},[value]);function handleKeyDown(e){e.key==="Backspace"&&e.stopPropagation()}return __name(handleKeyDown,"handleKeyDown"),jsxRuntime.jsxs("div",{className:styles$k.sheetsUiContextMenuInput,children:[localeService.t(prefix),jsxRuntime.jsx("span",{className:styles$k.sheetsUiContextMenuInputContainer,onClick:__name(e=>e.stopPropagation(),"onClick"),children:jsxRuntime.jsx(design.InputNumber,{className:styles$k.sheetsUiContextMenuInputNumber,value:Number(inputValue),precision:0,onKeyDown:handleKeyDown,onChange:handleChange,min,max})}),localeService.t(suffix)]})},"MenuItemInput");function getActiveSheet$(univerInstanceService){return univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook?workbook.activeSheet$.pipe(rxjs.map(worksheet=>worksheet?{workbook,worksheet}:null)):rxjs.of(null)))}__name(getActiveSheet$,"getActiveSheet$");function deriveStateFromActiveSheet$(univerInstanceService,defaultValue,callback){return getActiveSheet$(univerInstanceService).pipe(rxjs.switchMap(active=>active?callback(active):rxjs.of(defaultValue)))}__name(deriveStateFromActiveSheet$,"deriveStateFromActiveSheet$");function getCurrentExclusiveRangeInterest$(accessor,disableGroupSet){const univerInstanceService=accessor.get(core.IUniverInstanceService),exclusiveRangeService=accessor.get(sheets.IExclusiveRangeService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook?rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,workbook.activeSheet$]).pipe(rxjs.switchMap(([selections,worksheet])=>{if(!worksheet||selections.length===0)return rxjs.of(!1);const interestGroupIds=exclusiveRangeService.getInterestGroupId(selections);if(disableGroupSet){const disableGroup=interestGroupIds.filter(groupId=>disableGroupSet.has(groupId));return rxjs.of(disableGroup.length>0)}else return rxjs.of(interestGroupIds.length>0)})):rxjs.of(!1)))}__name(getCurrentExclusiveRangeInterest$,"getCurrentExclusiveRangeInterest$");function getObservableWithExclusiveRange$(accessor,observable$,disableGroupSet){return rxjs.combineLatest([observable$,getCurrentExclusiveRangeInterest$(accessor,disableGroupSet)]).pipe(rxjs.map(([observable,exclusiveRangeDisable])=>observable||exclusiveRangeDisable))}__name(getObservableWithExclusiveRange$,"getObservableWithExclusiveRange$");function getCurrentRangeDisable$(accessor,permissionTypes={},supportCellEdit=!1){var _a61;const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService),editorBridgeService=accessor.has(IEditorBridgeService)?accessor.get(IEditorBridgeService):null,formulaEditorFocus$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_FX_BAR_EDITOR),editorVisible$=(_a61=editorBridgeService==null?void 0:editorBridgeService.visible$)!=null?_a61:rxjs.of(null);return rxjs.combineLatest([userManagerService.currentUser$,workbook$,editorVisible$,formulaEditorFocus$]).pipe(rxjs.switchMap(([_2,workbook,visible,formulaEditorFocus])=>!workbook||visible!=null&&visible.visible&&visible.unitId===workbook.getUnitId()&&!supportCellEdit||formulaEditorFocus&&!supportCellEdit?rxjs.of(!0):workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),focusedOnDrawing$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_COMMON_DRAWINGS).pipe(rxjs.startWith(!1));return rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,focusedOnDrawing$]).pipe(rxjs.switchMap(([selection,focusOnDrawings])=>{if(focusOnDrawings)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionService=accessor.get(core.IPermissionService),{workbookTypes=[sheets.WorkbookEditablePermission],worksheetTypes,rangeTypes}=permissionTypes,permissionIds=[];if(workbookTypes==null||workbookTypes.forEach(F=>{permissionIds.push(new F(unitId).id)}),worksheetTypes==null||worksheetTypes.forEach(F=>{permissionIds.push(new F(unitId,subUnitId).id)}),worksheetRuleModel.getRule(unitId,subUnitId))return permissionService.composePermission$(permissionIds).pipe(rxjs.map(list=>list.some(item=>item.value===!1)));const selectionRanges=selection==null?void 0:selection.map(selection2=>selection2.range),rules=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>selectionRanges==null?void 0:selectionRanges.some(range=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(range,ruleRange))));return rangeTypes==null||rangeTypes.forEach(F=>{rules.forEach(rule=>{permissionIds.push(new F(unitId,subUnitId,rule.permissionId).id)})}),permissionService.composePermission$(permissionIds).pipe(rxjs.map(list=>list.some(item=>item.value===!1)))}))}))))}__name(getCurrentRangeDisable$,"getCurrentRangeDisable$");function getBaseRangeMenuHidden$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(range,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getBaseRangeMenuHidden$,"getBaseRangeMenuHidden$");function getInsertAfterMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>type==="row"?rule.ranges.some(ruleRange=>range.endRow>ruleRange.startRow&&range.endRow<=ruleRange.endRow):rule.ranges.some(ruleRange=>range.endColumn>ruleRange.startColumn&&range.endColumn<=ruleRange.endColumn)).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getInsertAfterMenuHidden$,"getInsertAfterMenuHidden$");function getInsertBeforeMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>type==="row"?rule.ranges.some(ruleRange=>range.startRow>ruleRange.startRow&&range.startRow<=ruleRange.endRow):rule.ranges.some(ruleRange=>range.startColumn>ruleRange.startColumn&&range.startColumn<=ruleRange.endColumn)).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getInsertBeforeMenuHidden$,"getInsertBeforeMenuHidden$");function getDeleteMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id],rowColRangeExpand=core.Tools.deepClone(range);return type==="row"?(rowColRangeExpand.startColumn=0,rowColRangeExpand.endColumn=worksheet.getColumnCount()-1):(rowColRangeExpand.startRow=0,rowColRangeExpand.endRow=worksheet.getRowCount()-1),rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(rowColRangeExpand,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getDeleteMenuHidden$,"getDeleteMenuHidden$");function getCellMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id],rowColRangeExpand=core.Tools.deepClone(range);return type==="row"?rowColRangeExpand.endRow=worksheet.getRowCount()-1:rowColRangeExpand.endColumn=worksheet.getColumnCount()-1,rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(rowColRangeExpand,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getCellMenuHidden$,"getCellMenuHidden$");function getWorkbookPermissionDisable$(accessor,workbookPermissionTypes){const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([userManagerService.currentUser$,workbook$]).pipe(rxjs.switchMap(([_user,workbook])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(activeSheet=>{if(!activeSheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),workbookPermissionIds=[];return workbookPermissionTypes.forEach(F=>workbookPermissionIds.push(new F(unitId).id)),permissionService.composePermission$(workbookPermissionIds).pipe(rxjs.map(list=>list.every(item=>item.value===!0))).pipe(rxjs.map(basePermission=>{if(!basePermission)return!0;const subUnitId=activeSheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId),rangeRuleList=selectionRuleModel.getSubunitRuleList(unitId,subUnitId);return!!(worksheetRule||rangeRuleList.length)}))})):rxjs.of(!0)))}__name(getWorkbookPermissionDisable$,"getWorkbookPermissionDisable$");var SheetMenuPosition=(SheetMenuPosition2=>(SheetMenuPosition2.ROW_HEADER_CONTEXT_MENU="ROW_HEADER_CONTEXT_MENU",SheetMenuPosition2.COL_HEADER_CONTEXT_MENU="COL_HEADER_CONTEXT_MENU",SheetMenuPosition2.SHEET_BAR="SHEET_BAR",SheetMenuPosition2.SHEET_FOOTER="SHEET_FOOTER",SheetMenuPosition2))(SheetMenuPosition||{});function FormatPainterMenuItemFactory(accessor){const formatPainterService=accessor.get(IFormatPainterService);return{id:SetOnceFormatPainterCommand.id,subId:SetInfiniteFormatPainterCommand.id,type:ui.MenuItemType.BUTTON,icon:"BrushSingle",title:"Format Painter",tooltip:"toolbar.formatPainter",activated$:new rxjs.Observable(subscriber=>{let active=!1;const status$=formatPainterService.status$.subscribe(s=>{active=s!==FormatPainterStatus.OFF,subscriber.next(active)});return subscriber.next(active),()=>{status$.unsubscribe()}}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetCopyPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0)}}__name(FormatPainterMenuItemFactory,"FormatPainterMenuItemFactory");function BoldMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),contextService=accessor.get(core.IContextService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return{id:SetRangeBoldCommand.id,type:ui.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isBold2=core.FontWeight.NORMAL;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isBold2=range==null?void 0:range.getFontWeight()}subscriber.next(isBold2===core.FontWeight.BOLD)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const bl=(_b=textRun.ts)==null?void 0:_b.bl;subscriber.next(bl===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;if(!worksheet){subscriber.next(!1);return}let isBold=core.FontWeight.NORMAL;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isBold=range==null?void 0:range.getFontWeight()}return subscriber.next(isBold===core.FontWeight.BOLD),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(BoldMenuItemFactory,"BoldMenuItemFactory");function ItalicMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeItalicCommand.id,type:ui.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isItalic2=core.FontItalic.NORMAL;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isItalic2=range==null?void 0:range.getFontStyle()}subscriber.next(isItalic2===core.FontItalic.ITALIC)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const it=(_b=textRun.ts)==null?void 0:_b.it;subscriber.next(it===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let isItalic=core.FontItalic.NORMAL;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isItalic=range==null?void 0:range.getFontStyle()}return subscriber.next(isItalic===core.FontItalic.ITALIC),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ItalicMenuItemFactory,"ItalicMenuItemFactory");function UnderlineMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeUnderlineCommand.id,type:ui.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isUnderline2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isUnderline2=range==null?void 0:range.getUnderline()}subscriber.next(!!(isUnderline2&&isUnderline2.s))}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const ul=(_b=textRun.ts)==null?void 0:_b.ul;subscriber.next((ul==null?void 0:ul.s)===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let isUnderline;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isUnderline=range==null?void 0:range.getUnderline()}return subscriber.next(!!(isUnderline&&isUnderline.s)),disposable.dispose})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(UnderlineMenuItemFactory,"UnderlineMenuItemFactory");function StrikeThroughMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeStrickThroughCommand.id,type:ui.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let st2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);st2=range==null?void 0:range.getStrikeThrough()}subscriber.next(!!(st2&&st2.s))}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const st2=(_b=textRun.ts)==null?void 0:_b.st;subscriber.next((st2==null?void 0:st2.s)===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let st;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);st=range==null?void 0:range.getStrikeThrough()}return subscriber.next(!!(st&&st.s)),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(StrikeThroughMenuItemFactory,"StrikeThroughMenuItemFactory");function FontFamilySelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.DEFAULT_STYLES.ff;return{id:SetRangeFontFamilyCommand.id,tooltip:"toolbar.font",type:ui.MenuItemType.SELECTOR,label:FONT_FAMILY_COMPONENT,selections:ui.FONT_FAMILY_LIST.map(item=>({label:{name:FONT_FAMILY_ITEM_COMPONENT,hoverable:!0},value:item.value})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetRangeValuesMutation.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ff2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ff2=range==null?void 0:range.getFontFamily()}subscriber.next(ff2!=null?ff2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ff;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ff=range==null?void 0:range.getFontFamily()}return subscriber.next(ff!=null?ff:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FontFamilySelectorMenuItemFactory,"FontFamilySelectorMenuItemFactory");function FontSizeSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService),defaultValue=core.DEFAULT_STYLES.fs,disabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0);return{id:SetRangeFontSizeCommand.id,type:ui.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:FONT_SIZE_COMPONENT,props:{min:1,max:400,disabled$}},selections:ui.FONT_SIZE_LIST,disabled$,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let fs2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);fs2=range==null?void 0:range.getFontSize()}subscriber.next(fs2!=null?fs2:defaultValue)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const fs2=(_b=textRun.ts)==null?void 0:_b.fs;subscriber.next(fs2!=null?fs2:defaultValue)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let fs;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);fs=range==null?void 0:range.getFontSize()}return subscriber.next(fs!=null?fs:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FontSizeSelectorMenuItemFactory,"FontSizeSelectorMenuItemFactory");function ResetTextColorMenuItemFactory(accessor){return{id:ResetRangeTextColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ResetTextColorMenuItemFactory,"ResetTextColorMenuItemFactory");function TextColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:SetRangeTextColorCommand.id,icon:"FontColor",tooltip:"toolbar.textColor.main",type:ui.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultValue=themeService.getCurrentTheme().textColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===SetRangeTextColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0)}}__name(TextColorSelectorMenuItemFactory,"TextColorSelectorMenuItemFactory");function ResetBackgroundColorMenuItemFactory(accessor){return{id:sheets.ResetBackgroundColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ResetBackgroundColorMenuItemFactory,"ResetBackgroundColorMenuItemFactory");function BackgroundColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:sheets.SetBackgroundColorCommand.id,tooltip:"toolbar.fillColor.main",type:ui.MenuItemType.BUTTON_SELECTOR,icon:"PaintBucket",selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultValue=themeService.getCurrentTheme().primaryColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===sheets.SetBackgroundColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(BackgroundColorSelectorMenuItemFactory,"BackgroundColorSelectorMenuItemFactory");const HORIZONTAL_ALIGN_CHILDREN=[{label:"align.left",icon:"LeftJustifyingSingle",value:core.HorizontalAlign.LEFT},{label:"align.center",icon:"HorizontallySingle",value:core.HorizontalAlign.CENTER},{label:"align.right",icon:"RightJustifyingSingle",value:core.HorizontalAlign.RIGHT}];function HorizontalAlignMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.HorizontalAlign.LEFT;return{id:sheets.SetHorizontalTextAlignCommand.id,icon:HORIZONTAL_ALIGN_CHILDREN[0].icon,tooltip:"toolbar.horizontalAlignMode.main",type:ui.MenuItemType.SELECTOR,selections:HORIZONTAL_ALIGN_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetHorizontalTextAlignCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ha2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ha2=range==null?void 0:range.getHorizontalAlignment()}subscriber.next(ha2!=null?ha2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ha;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ha=range==null?void 0:range.getHorizontalAlignment()}return subscriber.next(ha!=null?ha:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(HorizontalAlignMenuItemFactory,"HorizontalAlignMenuItemFactory");const VERTICAL_ALIGN_CHILDREN=[{label:"align.top",icon:"AlignTopSingle",value:core.VerticalAlign.TOP},{label:"align.middle",icon:"VerticalCenterSingle",value:core.VerticalAlign.MIDDLE},{label:"align.bottom",icon:"AlignBottomSingle",value:core.VerticalAlign.BOTTOM}];function VerticalAlignMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.VerticalAlign.BOTTOM;return{id:sheets.SetVerticalTextAlignCommand.id,icon:VERTICAL_ALIGN_CHILDREN[2].icon,tooltip:"toolbar.verticalAlignMode.main",type:ui.MenuItemType.SELECTOR,selections:VERTICAL_ALIGN_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetVerticalTextAlignCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let va2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);va2=range==null?void 0:range.getVerticalAlignment()}subscriber.next(va2!=null?va2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let va;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);va=range==null?void 0:range.getVerticalAlignment()}return subscriber.next(va!=null?va:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(VerticalAlignMenuItemFactory,"VerticalAlignMenuItemFactory");const TEXT_WRAP_CHILDREN=[{label:"textWrap.overflow",icon:"OverflowSingle",value:core.WrapStrategy.OVERFLOW},{label:"textWrap.wrap",icon:"AutowrapSingle",value:core.WrapStrategy.WRAP},{label:"textWrap.clip",icon:"TruncationSingle",value:core.WrapStrategy.CLIP}];function WrapTextMenuItemFactory(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),defaultValue=core.WrapStrategy.OVERFLOW;return{id:sheets.SetTextWrapCommand.id,tooltip:"toolbar.textWrapMode.main",icon:TEXT_WRAP_CHILDREN[0].icon,type:ui.MenuItemType.SELECTOR,selections:TEXT_WRAP_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetTextWrapCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ws2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ws2=range==null?void 0:range.getWrapStrategy()}subscriber.next(ws2!=null?ws2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ws;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ws=range==null?void 0:range.getWrapStrategy()}return subscriber.next(ws!=null?ws:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(WrapTextMenuItemFactory,"WrapTextMenuItemFactory");const TEXT_ROTATE_CHILDREN=[{label:"textRotate.none",icon:"NoRotationSingle",value:0},{label:"textRotate.angleUp",icon:"LeftRotationFortyFiveDegreesSingle",value:-45},{label:"textRotate.angleDown",icon:"RightRotationFortyFiveDegreesSingle",value:45},{label:"textRotate.vertical",icon:"VerticalTextSingle",value:"v"},{label:"textRotate.rotationUp",icon:"LeftRotationNinetyDegreesSingle",value:-90},{label:"textRotate.rotationDown",icon:"RightRotationNinetyDegreesSingle",value:90}];function TextRotateMenuItemFactory(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),defaultValue=0;return{id:sheets.SetTextRotationCommand.id,tooltip:"toolbar.textRotateMode.main",icon:TEXT_ROTATE_CHILDREN[0].icon,type:ui.MenuItemType.SELECTOR,selections:TEXT_ROTATE_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61,_b;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62,_b2;const id=c.id;if(id!==sheets.SetTextRotationCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let tr2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);tr2=range==null?void 0:range.getTextRotation()}(tr2==null?void 0:tr2.v)===core.BooleanNumber.TRUE?subscriber.next("v"):subscriber.next((_b2=tr2&&tr2.a)!=null?_b2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let tr;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);tr=range==null?void 0:range.getTextRotation()}return(tr==null?void 0:tr.v)===core.BooleanNumber.TRUE?subscriber.next("v"):subscriber.next((_b=tr&&tr.a)!=null?_b:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(TextRotateMenuItemFactory,"TextRotateMenuItemFactory");function menuClipboardDisabledObservable(injector){return new rxjs.Observable(subscriber=>subscriber.next(!injector.get(ui.IClipboardInterfaceService).supportClipboard))}__name(menuClipboardDisabledObservable,"menuClipboardDisabledObservable");function CopyMenuItemFactory(accessor){return{id:SheetCopyCommand.name,commandId:SheetCopyCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.copy",icon:"Copy",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookCopyPermission],worksheetTypes:[sheets.WorksheetCopyPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CopyMenuItemFactory,"CopyMenuItemFactory");function PasteMenuItemFactory(accessor){return{id:SheetPasteCommand.name,commandId:SheetPasteCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.paste",icon:"PasteSpecial",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteMenuItemFactory,"PasteMenuItemFactory");const PASTE_SPECIAL_MENU_ID="sheet.menu.paste-special";function PasteSpacialMenuItemFactory(accessor){return{id:PASTE_SPECIAL_MENU_ID,type:ui.MenuItemType.SUBITEMS,icon:"PasteSpecial",title:"rightClick.pasteSpecial",hidden$:getObservableWithExclusiveRange$(accessor,ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET))}}__name(PasteSpacialMenuItemFactory,"PasteSpacialMenuItemFactory");function PasteValueMenuItemFactory(accessor){return{id:SheetPasteValueCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteValue",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteValueMenuItemFactory,"PasteValueMenuItemFactory");function PasteFormatMenuItemFactory(accessor){return{id:SheetPasteFormatCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteFormat",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteFormatMenuItemFactory,"PasteFormatMenuItemFactory");function PasteColWidthMenuItemFactory(accessor){return{id:SheetPasteColWidthCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteColWidth",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetColumnStylePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2))}}__name(PasteColWidthMenuItemFactory,"PasteColWidthMenuItemFactory");function PasteBesidesBorderMenuItemFactory(accessor){return{id:SheetPasteBesidesBorderCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteBesidesBorder",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetRowStylePermission,sheets.WorksheetSetColumnStylePermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteBesidesBorderMenuItemFactory,"PasteBesidesBorderMenuItemFactory");function FitContentMenuItemFactory(accessor){return{id:sheets.SetWorksheetRowIsAutoHeightCommand.id,type:ui.MenuItemType.BUTTON,icon:"AutoHeight",title:"rightClick.fitContent",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FitContentMenuItemFactory,"FitContentMenuItemFactory");function ColAutoWidthMenuItemFactory(accessor){return{id:SetWorksheetColAutoWidthCommand.id,type:ui.MenuItemType.BUTTON,icon:"AutoWidth",title:"rightClick.fitContent",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ColAutoWidthMenuItemFactory,"ColAutoWidthMenuItemFactory");const SHEET_FROZEN_MENU_ID="sheet.menu.sheet-frozen";function SheetFrozenMenuItemFactory(accessor){return{id:SHEET_FROZEN_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(SheetFrozenMenuItemFactory,"SheetFrozenMenuItemFactory");const SHEET_FROZEN_HEADER_MENU_ID="sheet.header-menu.sheet-frozen";function SheetFrozenHeaderMenuItemFactory(accessor){return{id:SHEET_FROZEN_HEADER_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(SheetFrozenHeaderMenuItemFactory,"SheetFrozenHeaderMenuItemFactory");function FrozenMenuItemFactory(accessor){return{id:SetSelectionFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenMenuItemFactory,"FrozenMenuItemFactory");function FrozenRowMenuItemFactory(accessor){return{id:SetRowFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freezeRow",icon:"FreezeRowSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenRowMenuItemFactory,"FrozenRowMenuItemFactory");function FrozenColMenuItemFactory(accessor){return{id:SetColumnFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freezeCol",icon:"FreezeColumnSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenColMenuItemFactory,"FrozenColMenuItemFactory");function CancelFrozenMenuItemFactory(accessor){return{id:sheets.CancelFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.cancelFreeze",icon:"CancelFreezeSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CancelFrozenMenuItemFactory,"CancelFrozenMenuItemFactory");function HideRowMenuItemFactory(accessor){return{id:HideRowConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedRow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideRowMenuItemFactory,"HideRowMenuItemFactory");function HideColMenuItemFactory(accessor){return{id:HideColConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideColMenuItemFactory,"HideColMenuItemFactory");function ShowRowMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),commandService=accessor.get(core.ICommandService),affectedCommands=[sheets.SetSelectionsOperation,sheets.SetRowHiddenMutation,sheets.SetRowVisibleMutation].map(c=>c.id);return{id:sheets.SetSelectedRowsVisibleCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.showHideRow",hidden$:deriveStateFromActiveSheet$(univerInstanceService,!0,({worksheet})=>new rxjs.Observable(subscriber=>{function hasHiddenRowsInSelections(){var _a61;const rowRanges=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range).filter(r2=>r2.rangeType===core.RANGE_TYPE.ROW);return!!(rowRanges!=null&&rowRanges.some(range=>{for(let r2=range.startRow;r2<=range.endRow;r2++)if(!worksheet.getRowRawVisible(r2))return!0;return!1}))}__name(hasHiddenRowsInSelections,"hasHiddenRowsInSelections");const disposable=commandService.onCommandExecuted(command=>{affectedCommands.findIndex(c=>c===command.id)!==-1&&subscriber.next(!hasHiddenRowsInSelections())});return subscriber.next(!hasHiddenRowsInSelections()),()=>disposable.dispose()})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ShowRowMenuItemFactory,"ShowRowMenuItemFactory");function ShowColMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),commandService=accessor.get(core.ICommandService),affectedCommands=[sheets.SetSelectionsOperation,sheets.SetColHiddenMutation,sheets.SetColVisibleMutation].map(c=>c.id);return{id:sheets.SetSelectedColsVisibleCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.showHideColumn",hidden$:deriveStateFromActiveSheet$(univerInstanceService,!0,({worksheet})=>new rxjs.Observable(subscriber=>{function hasHiddenColsInSelections(){var _a61;const colRanges=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range).filter(r2=>r2.rangeType===core.RANGE_TYPE.COLUMN);return!colRanges||colRanges.length===0?!1:!!colRanges.some(range=>{for(let r2=range.startColumn;r2<=range.endColumn;r2++)if(!worksheet.getColVisible(r2))return!0;return!1})}__name(hasHiddenColsInSelections,"hasHiddenColsInSelections");const disposable=commandService.onCommandExecuted(commandInfo=>{affectedCommands.findIndex(c=>c===commandInfo.id)!==-1&&subscriber.next(!hasHiddenColsInSelections())});return subscriber.next(!hasHiddenColsInSelections()),()=>disposable.dispose()})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetColumnStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ShowColMenuItemFactory,"ShowColMenuItemFactory");function SetRowHeightMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=0;return{id:sheets.SetRowHeightCommand.id,type:ui.MenuItemType.BUTTON,icon:"AdjustHeight",label:{name:MENU_ITEM_INPUT_COMPONENT,props:{prefix:"rightClick.rowHeight",suffix:"px",min:2,max:1e3}},value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{function update(){var _a61;const primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary,rowHeight=primary?worksheet.getRowHeight(primary.startRow):defaultValue;subscriber.next(rowHeight)}__name(update,"update");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetRowIsAutoHeightMutation.id)return update()});return update(),disposable.dispose})),hidden$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(SetRowHeightMenuItemFactory,"SetRowHeightMenuItemFactory");function SetColWidthMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=0;return{id:sheets.SetColWidthCommand.id,type:ui.MenuItemType.BUTTON,icon:"AdjustWidth",label:{name:MENU_ITEM_INPUT_COMPONENT,props:{prefix:"rightClick.columnWidth",suffix:"px",min:2,max:1e3}},value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{function update(){var _a61;const primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let colWidth=defaultValue;primary!=null&&(colWidth=worksheet.getColumnWidth(primary.startColumn)),subscriber.next(colWidth)}__name(update,"update");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetColWidthMutation.id)return update()});return update(),disposable.dispose})),hidden$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(SetColWidthMenuItemFactory,"SetColWidthMenuItemFactory");function getFontStyleAtCursor(accessor){var _a61;const univerInstanceService=accessor.get(core.IUniverInstanceService),textSelectionService=accessor.get(docs.DocSelectionManagerService),editorDataModel=univerInstanceService.getUniverDocInstance(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),activeTextRange=textSelectionService.getActiveTextRange();if(editorDataModel==null||activeTextRange==null)return null;const textRuns=(_a61=editorDataModel.getBody())==null?void 0:_a61.textRuns;if(textRuns==null)return;const{startOffset}=activeTextRange;return textRuns.find(({st,ed})=>startOffset>=st&&startOffset<=ed)}__name(getFontStyleAtCursor,"getFontStyleAtCursor");var __defProp$E=Object.defineProperty,__getOwnPropDesc$E=Object.getOwnPropertyDescriptor,__decorateClass$E=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$E(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$E(target,key,result),result},"__decorateClass$E"),__decorateParam$E=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$E");const FREEZE_ROW_MAIN_NAME="__SpreadsheetFreezeRowMainName__",FREEZE_ROW_HEADER_NAME="__SpreadsheetFreezeRowHeaderName__",FREEZE_COLUMN_MAIN_NAME="__SpreadsheetFreezeColumnMainName__",FREEZE_COLUMN_HEADER_NAME="__SpreadsheetFreezeColumnHeaderName__",FREEZE_SIZE_NORMAL=2,AUXILIARY_CLICK_HIDDEN_OBJECT_TRANSPARENCY=.01,FREEZE_PERMISSION_CHECK=core.createInterceptorKey("freezePermissionCheck");var _a18;exports.HeaderFreezeRenderController=(_a18=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_selectionManagerService,_scrollManagerService,_themeService,_sheetInterceptorService,_injector){super();__publicField(this,"_rowFreezeHeaderRect");__publicField(this,"_rowFreezeMainRect");__publicField(this,"_columnFreezeHeaderRect");__publicField(this,"_columnFreezeMainRect");__publicField(this,"_freezeDownSubs");__publicField(this,"_freezePointerEnterSubs");__publicField(this,"_freezePointerLeaveSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_changeToRow",-1);__publicField(this,"_changeToColumn",-1);__publicField(this,"_changeToOffsetX",0);__publicField(this,"_changeToOffsetY",0);__publicField(this,"_activeViewport",null);__publicField(this,"_freezeNormalHeaderColor","");__publicField(this,"_freezeNormalMainColor","");__publicField(this,"_freezeActiveColor","");__publicField(this,"_freezeHoverColor","");__publicField(this,"_lastFreeze");__publicField(this,"interceptor",new core.InterceptorManager({FREEZE_PERMISSION_CHECK}));this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._selectionManagerService=_selectionManagerService,this._scrollManagerService=_scrollManagerService,this._themeService=_themeService,this._sheetInterceptorService=_sheetInterceptorService,this._injector=_injector,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._themeChangeListener(),this._interceptorCommands(),this._bindViewportScroll(),this._zoomRefresh()}_createFreeze(freezeDirectionType=0,freezeConfig){var _a61;const config=freezeConfig!=null?freezeConfig:this._getFreeze();if(config==null)return null;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton,{startRow:freezeRow,startColumn:freezeColumn}=config,position=this._getPositionByIndex(freezeRow,freezeColumn);if(position==null||skeleton==null)return null;const sheetObject=this._getSheetObject(),engine=sheetObject.engine,canvasMaxWidth=(engine==null?void 0:engine.width)||0,canvasMaxHeight=(engine==null?void 0:engine.height)||0,scene=sheetObject.scene,{startX,startY}=position,{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,shapeWidth=canvasMaxWidth>columnTotalWidth+rowHeaderWidthAndMarginLeft?canvasMaxWidth:columnTotalWidth+columnHeaderHeightAndMarginTop,shapeHeight=canvasMaxHeight>rowTotalHeight+columnHeaderHeightAndMarginTop?canvasMaxHeight:rowTotalHeight+columnHeaderHeightAndMarginTop;this._changeToRow=freezeRow,this._changeToColumn=freezeColumn,this._changeToOffsetX=startX,this._changeToOffsetY=startY;const scale=Math.max(scene.scaleX,scene.scaleY);let FREEZE_SIZE=FREEZE_SIZE_NORMAL/(scale<1?1:scale);if(freezeDirectionType===0){(freezeRow===-1||freezeRow===0)&&(FREEZE_SIZE=FREEZE_SIZE*2);const FREEZE_OFFSET=FREEZE_SIZE;this._rowFreezeHeaderRect=new engineRender.Rect(FREEZE_ROW_HEADER_NAME,{fill:this._freezeNormalHeaderColor,width:rowHeaderWidthAndMarginLeft,height:FREEZE_SIZE,left:0,top:startY-FREEZE_OFFSET,zIndex:3});let fill=this._freezeNormalHeaderColor;(freezeRow===-1||freezeRow===0)&&(fill=this._freezeNormalMainColor),this._rowFreezeMainRect=new engineRender.Rect(FREEZE_ROW_MAIN_NAME,{fill,width:shapeWidth*2/scale,height:FREEZE_SIZE,left:rowHeaderWidthAndMarginLeft,top:startY-FREEZE_OFFSET,zIndex:3}),scene.addObjects([this._rowFreezeHeaderRect,this._rowFreezeMainRect],SHEET_COMPONENT_HEADER_LAYER_INDEX)}else{(freezeColumn===-1||freezeColumn===0)&&(FREEZE_SIZE=FREEZE_SIZE*2);const FREEZE_OFFSET=FREEZE_SIZE;this._columnFreezeHeaderRect=new engineRender.Rect(FREEZE_COLUMN_HEADER_NAME,{fill:this._freezeNormalHeaderColor,width:FREEZE_SIZE,height:columnHeaderHeightAndMarginTop,left:startX-FREEZE_OFFSET,top:0,zIndex:3});let fill=this._freezeNormalHeaderColor;(freezeColumn===-1||freezeColumn===0)&&(fill=this._freezeNormalMainColor),this._columnFreezeMainRect=new engineRender.Rect(FREEZE_COLUMN_MAIN_NAME,{fill,width:FREEZE_SIZE,height:shapeHeight*2/scale,left:startX-FREEZE_OFFSET,top:columnHeaderHeightAndMarginTop,zIndex:3}),scene.addObjects([this._columnFreezeHeaderRect,this._columnFreezeMainRect],SHEET_COMPONENT_HEADER_LAYER_INDEX)}this._eventBinding(freezeDirectionType)}_eventBinding(freezeDirectionType=0){let freezeObjectHeaderRect=this._rowFreezeHeaderRect,freezeObjectMainRect=this._rowFreezeMainRect;freezeDirectionType===1&&(freezeObjectHeaderRect=this._columnFreezeHeaderRect,freezeObjectMainRect=this._columnFreezeMainRect);const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject;if(this._freezePointerEnterSubs=new rxjs.Subscription,this._freezePointerLeaveSubs=new rxjs.Subscription,this._freezeDownSubs=new rxjs.Subscription,freezeObjectMainRect){const _freezeObjectMainRectEnterSub=freezeObjectMainRect.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeHoverColor,zIndex:4}),scene.setCursor(engineRender.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(_freezeObjectMainRectEnterSub);const _freezeObjectMainPointerLeaveSub=freezeObjectMainRect.onPointerLeave$.subscribeEvent(()=>{freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),scene.resetCursor()});this._freezePointerLeaveSubs.add(_freezeObjectMainPointerLeaveSub)}if(freezeObjectHeaderRect){const _freezeObjHeaderPointerEnterSub=freezeObjectHeaderRect.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeHoverColor,zIndex:4}),scene.setCursor(engineRender.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(_freezeObjHeaderPointerEnterSub);const _freezeObjHeaderPointerLeaveSub=freezeObjectHeaderRect.onPointerLeave$.subscribeEvent(()=>{freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),scene.resetCursor()});this._freezePointerLeaveSubs.add(_freezeObjHeaderPointerLeaveSub)}const s1=freezeObjectHeaderRect==null?void 0:freezeObjectHeaderRect.onPointerDown$.subscribeEvent(evt=>{this._freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType)});s1&&this._freezeDownSubs.add(s1);const s2=freezeObjectMainRect==null?void 0:freezeObjectMainRect.onPointerDown$.subscribeEvent(evt=>{this._freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType)});s2&&this._freezeDownSubs.add(s2)}_getCurrentLastVisible(){var _a61,_b,_c,_d,_e,_f,_g;const sheetObject=this._getSheetObject();if(sheetObject==null)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const scene=sheetObject.scene,scale=Math.max(scene.scaleX,scene.scaleY),currentScroll=this._scrollManagerService.getCurrentScrollState(),skeletonViewHeight=(sheetObject.engine.height-skeleton.columnHeaderHeight)/scale,skeletonViewWidth=(sheetObject.engine.width-skeleton.rowHeaderWidth)/scale,startRow=(_b=currentScroll==null?void 0:currentScroll.sheetViewStartRow)!=null?_b:0,startHeight=startRow===0?-((_c=currentScroll==null?void 0:currentScroll.offsetY)!=null?_c:0):skeleton.rowHeightAccumulation[startRow-1]-((_d=currentScroll==null?void 0:currentScroll.offsetY)!=null?_d:0);let lastRow=0,hadFind=!1;for(let i=startRow,len=skeleton.rowHeightAccumulation.length;i<len;i++)if(skeleton.rowHeightAccumulation[i]-startHeight>skeletonViewHeight){lastRow=i,hadFind=!0;break}hadFind||(lastRow=skeleton.rowHeightAccumulation.length-1);const startColumn=(_e=currentScroll==null?void 0:currentScroll.sheetViewStartColumn)!=null?_e:0,startWidth=startColumn===0?-((_f=currentScroll==null?void 0:currentScroll.offsetX)!=null?_f:0):skeleton.columnWidthAccumulation[startColumn-1]-((_g=currentScroll==null?void 0:currentScroll.offsetX)!=null?_g:0);let lastColumn=0,hadFindCol=!1;for(let i=startColumn,len=skeleton.columnWidthAccumulation.length;i<len;i++)if(skeleton.columnWidthAccumulation[i]-startWidth>skeletonViewWidth){lastColumn=i,hadFindCol=!0;break}return hadFindCol||(lastColumn=skeleton.columnWidthAccumulation.length-1),{lastRow,lastColumn}}_getActiveViewport(evt){var _a61;const viewports=(_a61=this._getSheetObject())==null?void 0:_a61.scene.getViewports();return viewports&&viewports.find(i=>i.isHit(new engineRender.Vector2(evt.offsetX,evt.offsetY)))||null}_freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType=0){var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const sheetObject=this._getSheetObject();if(sheetObject==null)return;if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;const{scene}=sheetObject;scene.setCursor(engineRender.CURSOR_TYPE.GRABBING),scene.disableObjectsEvent();const last=this._getCurrentLastVisible(),lastRowY=last===void 0?Number.POSITIVE_INFINITY:skeleton.rowHeightAccumulation[last.lastRow],lastColumnX=last===void 0?Number.POSITIVE_INFINITY:skeleton.columnWidthAccumulation[last.lastColumn-1]+skeleton.rowHeaderWidth;this._activeViewport=null;const oldFreeze=this._getFreeze();oldFreeze&&(this._changeToColumn=oldFreeze.startColumn,this._changeToRow=oldFreeze.startRow),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a62,_b,_c,_d;const activeViewport=this._getActiveViewport(moveEvt),{startX,startY,row,column}=getCoordByOffset(moveEvt.offsetX,moveEvt.offsetY,scene,skeleton,activeViewport||void 0,!0);if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;scene.setCursor(engineRender.CURSOR_TYPE.GRABBING);const FREEZE_SIZE=FREEZE_SIZE_NORMAL/Math.max(scene.scaleX,scene.scaleY);freezeDirectionType===0?((_a62=freezeObjectHeaderRect.transformByState({top:Math.min(startY,lastRowY)-FREEZE_SIZE/2}))==null||_a62.setProps({fill:this._freezeActiveColor}),(_b=freezeObjectMainRect.transformByState({top:Math.min(startY,lastRowY)-FREEZE_SIZE/2}))==null||_b.setProps({fill:this._freezeNormalHeaderColor}),this._changeToRow=last===void 0?row:Math.min(row,last.lastRow),this._changeToOffsetY=Math.min(startY,lastRowY),this._activeViewport=activeViewport):((_c=freezeObjectHeaderRect.transformByState({left:Math.min(startX,lastColumnX)-FREEZE_SIZE/2}))==null||_c.setProps({fill:this._freezeActiveColor}),(_d=freezeObjectMainRect.transformByState({left:Math.min(startX,lastColumnX)-FREEZE_SIZE/2}))==null||_d.setProps({fill:this._freezeNormalHeaderColor}),this._changeToColumn=last===void 0?column:Math.min(column,last.lastColumn),this._changeToOffsetX=startX,this._activeViewport=activeViewport)}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a62,_b;scene.resetCursor(),scene.enableObjectsEvent(),this._clearObserverEvent();const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton;freezeDirectionType===0&&(this._changeToRow===0||this._changeToRow===-1)||freezeDirectionType===1&&(this._changeToColumn===0||this._changeToColumn===-1)?(freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor}),freezeObjectMainRect.setProps({fill:this._freezeNormalMainColor})):(freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor}),freezeObjectMainRect==null||freezeObjectMainRect.setProps({fill:this._freezeNormalHeaderColor}));const FREEZE_SIZE=FREEZE_SIZE_NORMAL/Math.max(scene.scaleX,scene.scaleY);freezeDirectionType===0?(this._changeToRow===0||this._changeToRow===-1)&&(freezeObjectHeaderRect.transformByState({top:columnHeaderHeightAndMarginTop-FREEZE_SIZE}),freezeObjectMainRect.transformByState({top:columnHeaderHeightAndMarginTop-FREEZE_SIZE})):(this._changeToColumn===0||this._changeToColumn===-1)&&(freezeObjectHeaderRect.transformByState({left:rowHeaderWidthAndMarginLeft-FREEZE_SIZE}),freezeObjectMainRect.transformByState({left:rowHeaderWidthAndMarginLeft-FREEZE_SIZE}));const sheetViewScroll=this._scrollManagerService.getCurrentScrollState()||{sheetViewStartRow:0,sheetViewStartColumn:0},{sheetViewStartRow,sheetViewStartColumn}=sheetViewScroll;if(sheetViewStartColumn==null||sheetViewStartRow==null)return;const workbook=this._context.unit,worksheet=workbook.getActiveSheet();if(!worksheet)return;const oldFreeze2=(_a62=worksheet.getConfig())==null?void 0:_a62.freeze;let xSplit=(oldFreeze2==null?void 0:oldFreeze2.xSplit)||0,ySplit=(oldFreeze2==null?void 0:oldFreeze2.ySplit)||0;const viewPortKey=(_b=this._activeViewport)==null?void 0:_b.viewportKey;freezeDirectionType===0&&(!viewPortKey||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP?ySplit=this._changeToRow-(oldFreeze2.startRow-oldFreeze2.ySplit):ySplit=this._changeToRow-sheetViewStartRow,ySplit=ySplit<0?0:ySplit),freezeDirectionType===1&&(!viewPortKey||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT?xSplit=this._changeToColumn-(oldFreeze2.startColumn-oldFreeze2.xSplit):xSplit=this._changeToColumn-sheetViewStartColumn,xSplit=xSplit<0?0:xSplit),this._commandService.executeCommand(sheets.SetFrozenCommand.id,{startRow:ySplit===0?-1:this._changeToRow,startColumn:xSplit===0?-1:this._changeToColumn,ySplit,xSplit,unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId()})})}_getViewports(){const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject,viewColumnLeft=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT),viewColumnRight=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),viewRowTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP),viewRowBottom=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),viewLeftTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),viewMainLeftTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP),viewMainLeft=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),viewMainTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(!(viewColumnLeft==null||viewColumnRight==null||viewRowTop==null||viewRowBottom==null||viewLeftTop==null||viewMain==null||viewMainLeftTop==null||viewMainLeft==null||viewMainTop==null))return{viewMain,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewColumnRight,viewRowTop,viewRowBottom,viewLeftTop}}_bindViewportScroll(){const viewports=this._getViewports();if(!viewports)return;const{viewRowBottom,viewColumnRight,viewMainLeft,viewMainTop}=viewports;this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(param=>{if(!param)return;const{scrollX,scrollY,viewportScrollX,viewportScrollY}=param;viewRowBottom.isActive&&viewRowBottom.updateScrollVal({scrollY,viewportScrollY}),viewColumnRight.isActive&&viewColumnRight.updateScrollVal({scrollX,viewportScrollX}),viewMainLeft.isActive&&viewMainLeft.updateScrollVal({scrollY,viewportScrollY}),viewMainTop.isActive&&viewMainTop.updateScrollVal({scrollX,viewportScrollX})}))}_updateViewport(row=-1,column=-1,ySplit=0,xSplit=0,resetScroll=3){var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,viewports=this._getViewports();if(!viewports)return;const{viewMain,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewColumnRight,viewRowTop,viewRowBottom,viewLeftTop}=viewports;viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewLeftTop.resizeWhenFreezeChange({left:0,top:0,width:rowHeaderWidthAndMarginLeft,height:columnHeaderHeightAndMarginTop});let isTopView=!0,isLeftView=!0;viewMainLeftTop.enable(),(row===-1||row===0)&&(isTopView=!1),(column===-1||column===0)&&(isLeftView=!1);const startSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(row-ySplit,column-xSplit),endSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(row,column);if(viewMainLeftTop.disable(),viewMainTop.disable(),viewMainLeft.disable(),viewRowTop.disable(),viewColumnLeft.disable(),viewMainLeftTop.resetPadding(),viewMainTop.resetPadding(),viewMainLeft.resetPadding(),viewRowTop.resetPadding(),viewColumnLeft.resetPadding(),isTopView===!1&&isLeftView===!1)viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,bottom:0,right:0}),viewMain.resetPadding();else if(isTopView===!0&&isLeftView===!1){const topGap=endSheetView.startY-startSheetView.startY;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,right:0}),viewMain.setPadding({startY:startSheetView.startY,endY:endSheetView.startY,startX:0,endX:0}),resetScroll&2&&this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:0,offsetY:0}),viewMainTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,height:topGap,right:0}),viewMainTop.updateScrollVal({viewportScrollY:startSheetView.startY,rawScrollX:viewMain.scrollX,viewportScrollX:viewMain.viewportScrollX}),viewRowTop.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,width:rowHeaderWidthAndMarginLeft,height:topGap}),viewRowTop.updateScrollVal({viewportScrollY:startSheetView.startY}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewMainTop.enable(),viewRowTop.enable()}else if(isTopView===!1&&isLeftView===!0){const leftGap=endSheetView.startX-startSheetView.startX;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop,bottom:0,right:0}),viewMain.setPadding({startX:startSheetView.startX,endX:endSheetView.startX,startY:0,endY:0}),resetScroll&1&&this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartColumn:0,offsetX:0}),viewMainLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,width:leftGap,bottom:0,right:0}),viewMainLeft.updateScrollVal({viewportScrollX:startSheetView.startX,rawScrollY:viewMain.scrollY,viewportScrollY:viewMain.viewportScrollY}),viewColumnLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,width:leftGap,height:columnHeaderHeightAndMarginTop}),viewColumnLeft.updateScrollVal({viewportScrollX:startSheetView.startX}),viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewMainLeft.enable(),viewColumnLeft.enable()}else{const leftGap=endSheetView.startX-startSheetView.startX,topGap=endSheetView.startY-startSheetView.startY;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,right:0}),viewMain.setPadding({startY:startSheetView.startY,endY:endSheetView.startY,startX:startSheetView.startX,endX:endSheetView.startX}),resetScroll&&this._commandService.executeCommand(ScrollCommand.id,{...resetScroll&1?{sheetViewStartColumn:0,offsetX:0}:null,...resetScroll&2?{sheetViewStartRow:0,offsetY:0}:null}),viewMainLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop+topGap,width:leftGap,bottom:0}),viewMainLeft.updateScrollVal({viewportScrollX:startSheetView.startX,rawScrollY:viewMain.scrollY,viewportScrollY:viewMain.viewportScrollY}),viewMainTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop,height:topGap,right:0}),viewMainTop.updateScrollVal({viewportScrollY:startSheetView.startY,rawScrollX:viewMain.scrollX,viewportScrollX:viewMain.viewportScrollX}),viewMainLeftTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,width:leftGap,height:topGap}),viewMainLeftTop.updateScrollVal({viewportScrollX:startSheetView.startX,viewportScrollY:startSheetView.startY}),viewRowTop.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,width:rowHeaderWidthAndMarginLeft,height:topGap}),viewRowTop.updateScrollVal({viewportScrollY:startSheetView.startY}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewColumnLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,width:leftGap,height:columnHeaderHeightAndMarginTop}),viewColumnLeft.updateScrollVal({viewportScrollX:startSheetView.startX}),viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewMainLeftTop.enable(),viewMainTop.enable(),viewMainLeft.enable(),viewRowTop.enable(),viewColumnLeft.enable()}}_skeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{[sheets.SetWorksheetActiveOperation.id,sheets.InsertRangeMoveDownCommand.id,sheets.InsertRangeMoveRightCommand.id].includes((param==null?void 0:param.commandId)||"")&&this._refreshCurrent()})))}_refreshCurrent(){const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const freeze=worksheet.getConfig().freeze,{startRow=-1,startColumn=-1,ySplit=0,xSplit=0}=freeze;this._refreshFreeze(startRow,startColumn,ySplit,xSplit,0)}_themeChangeListener(){this._themeChange(this._themeService.getCurrentTheme()),this.disposeWithMe(this._themeService.currentTheme$.subscribe(style=>{this._clearFreeze(),this._themeChange(style),this._refreshCurrent()}))}_themeChange(style){this._freezeNormalHeaderColor=style.grey400,this._freezeNormalMainColor=new core.ColorKit(style.grey400).setAlpha(AUXILIARY_CLICK_HIDDEN_OBJECT_TRANSPARENCY).toRgbString(),this._freezeActiveColor=style.primaryColor,this._freezeHoverColor=style.grey500}_interceptorCommands(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:__name(command=>{const empty={redos:[],undos:[]},freeze=this._getFreeze();if(!freeze)return empty;const createFreezeMutationAndRefresh=__name(newFreeze=>{const workbook=this._context.unit,unitId=workbook.getUnitId(),worksheet=workbook.getActiveSheet();if(!worksheet)return empty;const subUnitId=worksheet.getSheetId();this._refreshFreeze(newFreeze.startRow,newFreeze.startColumn,newFreeze.ySplit,newFreeze.xSplit,0);const redoMutationParams={...newFreeze,unitId,subUnitId,resetScroll:!1},undoMutationParams=sheets.SetFrozenMutationFactory(this._injector,redoMutationParams);return{undos:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redos:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}},"createFreezeMutationAndRefresh");if(command.id===sheets.InsertRowCommand.id){const params=command.params,{range,direction}=params,insertCount=range.endRow-range.startRow+1;if(range.startRow+1<freeze.startRow||range.startRow+1===freeze.startRow&&direction===core.Direction.UP){const newFreeze={...freeze,startRow:Math.max(1,freeze.startRow+insertCount),ySplit:Math.max(1,freeze.ySplit+insertCount)};return createFreezeMutationAndRefresh(newFreeze)}}if(command.id===sheets.InsertColCommand.id){const params=command.params,{range,direction}=params,insertCount=range.endColumn-range.startColumn+1;if(range.startColumn+1<freeze.startColumn||range.startColumn+1===freeze.startColumn&&direction===core.Direction.LEFT){const newFreeze={...freeze,startColumn:Math.max(1,freeze.startColumn+insertCount),xSplit:Math.max(1,freeze.xSplit+insertCount)};return createFreezeMutationAndRefresh(newFreeze)}}if(command.id===sheets.MoveColsCommand.id){const selections=this._selectionManagerService.getCurrentSelections(),{fromRange:{startColumn:fromCol},toRange:{startColumn:toCol}}=command.params,filteredSelections=selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.COLUMN&&selection.range.startColumn<=fromCol&&fromCol<=selection.range.endColumn);if(!(filteredSelections!=null&&filteredSelections.length))return empty;const sourceRange=filteredSelections[0].range,targetRange={...sourceRange,startColumn:toCol,endColumn:toCol+sourceRange.endColumn-sourceRange.startColumn};if(!freeze||freeze.startColumn<=0||sourceRange.startColumn>=freeze.startColumn&&targetRange.startColumn>=freeze.startColumn||sourceRange.startColumn===targetRange.startColumn||sourceRange.endColumn<freeze.startColumn&&targetRange.startColumn<freeze.startColumn)return empty;const totalColCount=sourceRange.endColumn-sourceRange.startColumn+1,moveFreezeColCount=Math.max(Math.min(freeze.startColumn,sourceRange.endColumn+1)-sourceRange.startColumn,0);let newStartColumn,newXSplit;targetRange.startColumn>=freeze.startColumn?(newStartColumn=Math.max(freeze.startColumn-moveFreezeColCount,1),newXSplit=Math.max(freeze.xSplit-moveFreezeColCount,1)):(newStartColumn=freeze.startColumn+totalColCount-moveFreezeColCount,newXSplit=freeze.xSplit+totalColCount-moveFreezeColCount);const redoMutationParams={...freeze,startColumn:newStartColumn,xSplit:newXSplit};return createFreezeMutationAndRefresh(redoMutationParams)}if(command.id===sheets.MoveRowsCommand.id){const selections=this._selectionManagerService.getCurrentSelections(),{fromRange:{startRow:fromRow},toRange:{startRow:toRow}}=command.params,filteredSelections=selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.ROW&&selection.range.startRow<=fromRow&&fromRow<=selection.range.endRow);if(!(filteredSelections!=null&&filteredSelections.length))return empty;const sourceRange=filteredSelections[0].range,targetRange={...sourceRange,startRow:toRow,endRow:toRow+sourceRange.endRow-sourceRange.startRow};if(!freeze||freeze.startRow<=0||sourceRange.startRow>=freeze.startRow&&targetRange.startRow>=freeze.startRow||sourceRange.startRow===targetRange.startRow||sourceRange.endRow<freeze.startRow&&targetRange.startRow<freeze.startRow)return empty;const totalColCount=sourceRange.endRow-sourceRange.startRow+1,moveFreezeColCount=Math.max(Math.min(freeze.startRow,sourceRange.endRow+1)-sourceRange.startRow,0);let newStartRow,newYSplit;targetRange.startRow>=freeze.startRow?(newStartRow=Math.max(freeze.startRow-moveFreezeColCount,1),newYSplit=Math.max(freeze.ySplit-moveFreezeColCount,1)):(newStartRow=freeze.startRow+totalColCount-moveFreezeColCount,newYSplit=freeze.ySplit+totalColCount-moveFreezeColCount);const redoMutationParams={...freeze,startRow:newStartRow,ySplit:newYSplit};return createFreezeMutationAndRefresh(redoMutationParams)}if(command.id===sheets.RemoveColCommand.id||command.id===sheets.RemoveRowCommand.id){const params=command.params,range=params.range;if(range.rangeType===core.RANGE_TYPE.COLUMN&&range.startColumn<freeze.startColumn){const deleteFreezeColCount=Math.min(freeze.startColumn,range.endColumn+1)-range.startColumn,newFreeze={...freeze,startColumn:Math.max(1,freeze.startColumn-deleteFreezeColCount),xSplit:Math.max(1,freeze.xSplit-deleteFreezeColCount)};return createFreezeMutationAndRefresh(newFreeze)}if(params.range.rangeType===core.RANGE_TYPE.ROW&&range.startRow<freeze.startRow){const deleteFreezeRowCount=Math.min(freeze.startRow,range.endRow+1)-range.startRow,newFreeze={...freeze,startRow:Math.max(1,freeze.startRow-deleteFreezeRowCount),ySplit:Math.max(1,freeze.ySplit-deleteFreezeRowCount)};return createFreezeMutationAndRefresh(newFreeze)}}return empty},"getMutations")}))}_commandExecutedListener(){const updateCommandList=[sheets.SetFrozenMutation.id,SetZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(updateCommandList.includes(command.id)){const lastFreeze=this._lastFreeze,workbook=this._context.unit,worksheet=workbook.getActiveSheet(),params=command.params,{unitId,subUnitId}=params;if(!(unitId===workbook.getUnitId()&&subUnitId===(worksheet==null?void 0:worksheet.getSheetId())))return;const freeze=worksheet.getConfig().freeze;if(this._lastFreeze=freeze,freeze==null)return;let resetScroll=0;const{startRow=-1,startColumn=-1,ySplit=0,xSplit=0}=freeze;(!lastFreeze||lastFreeze.startRow!==startRow||lastFreeze.ySplit!==ySplit)&&(resetScroll|=2),(!lastFreeze||lastFreeze.startColumn!==startColumn||lastFreeze.xSplit!==xSplit)&&(resetScroll|=1),params.resetScroll===!1&&(resetScroll=0),this._refreshFreeze(startRow,startColumn,ySplit,xSplit,resetScroll)}else if(command.id===sheets.SetWorksheetRowHeightMutation.id){const freeze=this._getFreeze(),isRefresh=freeze&&command.params.ranges.some(i=>i.startRow<freeze.startRow);command.params&&isRefresh&&this._refreshCurrent()}else if(command.id===sheets.SetWorksheetColWidthMutation.id){const freeze=this._getFreeze();command.params&&freeze&&command.params.ranges.some(i=>i.startColumn<freeze.startColumn)&&this._refreshCurrent()}else if(command.id===sheets.SetWorksheetRowAutoHeightMutation.id){const params=command.params,freeze=this._getFreeze();if(freeze&&freeze.startRow>-1&¶ms.rowsAutoHeightInfo.some(info=>info.row<freeze.startRow)){const subscription=this._sheetSkeletonManagerService.currentSkeleton$.subscribe(()=>{this._refreshCurrent(),setTimeout(()=>{subscription.unsubscribe()})})}}else if(command.id===sheets.SetColHiddenMutation.id||command.id===sheets.SetColVisibleMutation.id){const params=command.params,freeze=this._getFreeze(),ranges=params.ranges;freeze&&freeze.startColumn>-1&&ranges.some(range=>range.startColumn<freeze.startColumn)&&this._refreshCurrent()}else if(command.id===sheets.SetRowHiddenMutation.id||command.id===sheets.SetRowVisibleMutation.id){const params=command.params,freeze=this._getFreeze(),ranges=params.ranges;freeze&&freeze.startRow>-1&&ranges.some(range=>range.startRow<freeze.startRow)&&this._refreshCurrent()}}))}_zoomRefresh(){const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject;scene.onTransformChange$.subscribeEvent(state=>{state.type===engineRender.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._refreshCurrent()})}_clearObserverEvent(){var _a61,_b;this._getSheetObject()!=null&&((_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_clearFreeze(){var _a61,_b,_c,_d,_e,_f;(_a61=this._rowFreezeHeaderRect)==null||_a61.dispose(),(_b=this._rowFreezeMainRect)==null||_b.dispose(),(_c=this._columnFreezeHeaderRect)==null||_c.dispose(),(_d=this._columnFreezeMainRect)==null||_d.dispose(),this._getSheetObject()!=null&&([this._freezeDownSubs,this._freezePointerEnterSubs,this._freezePointerLeaveSubs].forEach(s=>{s==null||s.unsubscribe()}),this._freezeDownSubs=null,this._freezePointerEnterSubs=null,this._freezePointerLeaveSubs=null,(_e=this._scenePointerMoveSub)==null||_e.unsubscribe(),(_f=this._scenePointerUpSub)==null||_f.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_getPositionByIndex(row,column){var _a61;if(this._getSheetObject()==null)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton,position=skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(row,column);if(skeleton==null)return;if(position!=null&&(!isNaN(position.endX)||!isNaN(position.endY)))return position;const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton;return{startX:rowHeaderWidthAndMarginLeft,endX:rowHeaderWidthAndMarginLeft,startY:columnHeaderHeightAndMarginTop,endY:columnHeaderHeightAndMarginTop}}_getFreeze(){var _a61;const config=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton.getWorksheetConfig();if(config!=null)return config.freeze}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_refreshFreeze(startRow,startColumn,ySplit,xSplit,resetScroll){var _a61;const newFreeze={startRow,startColumn,ySplit,xSplit};this._clearFreeze(),this._createFreeze(0,newFreeze),this._createFreeze(1,newFreeze),this._updateViewport(startRow,startColumn,ySplit,xSplit,resetScroll),(_a61=this._getSheetObject())==null||_a61.spreadsheet.makeForceDirty()}},__name(_a18,"HeaderFreezeRenderController"),_a18);exports.HeaderFreezeRenderController=__decorateClass$E([__decorateParam$E(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$E(2,core.ICommandService),__decorateParam$E(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$E(4,core.Inject(exports.SheetScrollManagerService)),__decorateParam$E(5,core.Inject(core.ThemeService)),__decorateParam$E(6,core.Inject(sheets.SheetInterceptorService)),__decorateParam$E(7,core.Inject(core.Injector))],exports.HeaderFreezeRenderController);function getSheetSelectionsDisabled$(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),univerInstanceService=accessor.get(core.IUniverInstanceService),mergeCellController=accessor.get(sheets.MergeCellController),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET);return rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,workbook$.pipe(rxjs.map(workbook=>{var _a61;return(_a61=workbook==null?void 0:workbook.getUnitId())!=null?_a61:""})),workbook$.pipe(rxjs.switchMap(workbook=>{var _a61;return(_a61=workbook==null?void 0:workbook.activeSheet$)!=null?_a61:rxjs.of(null)}))]).pipe(rxjs.map(([selection,unitId,sheet])=>{if(!sheet||!selection||selection.length===0)return!1;const subUnitId=sheet.getSheetId(),selectionRanges=selection.map(sel=>sel.range);if(mergeCellController.interceptor.fetchThroughInterceptors(sheets.MERGE_CELL_INTERCEPTOR_CHECK)(!1,selectionRanges))return!0;const subUnitRuleRange=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).map(rule=>rule.ranges).flat();if(selection.length<2){const range=selection[0].range;return subUnitRuleRange.some(ruleRange=>core.Rectangle.intersects(ruleRange,range)&&!core.Rectangle.contains(ruleRange,range))}for(let i=0;i<selection.length;i++)for(let j=i+1;j<selection.length;j++)if(core.Rectangle.intersects(selection[i].range,selection[j].range))return!0;return!1}))}__name(getSheetSelectionsDisabled$,"getSheetSelectionsDisabled$");function isThisRowSelected(selections,rowIndex){return!!matchedSelectionByRowColIndex(selections,rowIndex,core.RANGE_TYPE.ROW)}__name(isThisRowSelected,"isThisRowSelected");function isThisColSelected(selections,colIndex){return!!matchedSelectionByRowColIndex(selections,colIndex,core.RANGE_TYPE.COLUMN)}__name(isThisColSelected,"isThisColSelected");function matchedSelectionByRowColIndex(selections,indexOfRowCol,rowOrCol){return selections.find(sel=>{const range=sel.range,{startRow:startRowOfCurrSel,endRow:endRowOfCurrSel,startColumn:startColumnOfCurrSel,endColumn:endColumnOfCurrSel,rangeType:rangeTypeOfCurrSelection}=range;return rangeTypeOfCurrSelection===core.RANGE_TYPE.ALL||rangeTypeOfCurrSelection===core.RANGE_TYPE.NORMAL?!1:rangeTypeOfCurrSelection===rowOrCol&&(rowOrCol===core.RANGE_TYPE.COLUMN&&startColumnOfCurrSel<=indexOfRowCol&&indexOfRowCol<=endColumnOfCurrSel||rowOrCol===core.RANGE_TYPE.ROW&&startRowOfCurrSel<=indexOfRowCol&&indexOfRowCol<=endRowOfCurrSel)})}__name(matchedSelectionByRowColIndex,"matchedSelectionByRowColIndex");var __defProp$D=Object.defineProperty,__getOwnPropDesc$D=Object.getOwnPropertyDescriptor,__decorateClass$D=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$D(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$D(target,key,result),result},"__decorateClass$D"),__decorateParam$D=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$D");const HEADER_MOVE_CONTROLLER_BACKGROUND="__SpreadsheetHeaderMoveControllerBackground__",HEADER_MOVE_CONTROLLER_LINE="__SpreadsheetHeaderMoveControllerShapeLine__",HEADER_MOVE_CONTROLLER_BACKGROUND_FILL="rgba(0, 0, 0, 0.1)",HEADER_MOVE_CONTROLLER_LINE_FILL="rgb(119, 119, 119)",HEADER_MOVE_CONTROLLER_LINE_SIZE=4,HEADER_MOVE_PERMISSION_CHECK=core.createInterceptorKey("headerMovePermissionCheck");var _a19;exports.HeaderMoveRenderController=(_a19=class extends core.Disposable{constructor(_context,selectionManagerService,_sheetSkeletonManagerService,_commandService){super();__publicField(this,"_startOffsetX",Number.NEGATIVE_INFINITY);__publicField(this,"_startOffsetY",Number.NEGATIVE_INFINITY);__publicField(this,"_moveHelperBackgroundShape");__publicField(this,"_moveHelperLineShape");__publicField(this,"_headerPointerDownSubs");__publicField(this,"_headerPointerMoveSubs");__publicField(this,"_headerPointerLeaveSubs");__publicField(this,"_dragHeaderMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_scrollTimer");__publicField(this,"_changeFromColumn",-1);__publicField(this,"_changeFromRow",-1);__publicField(this,"_changeToColumn",-1);__publicField(this,"_changeToRow",-1);__publicField(this,"interceptor",new core.InterceptorManager({HEADER_MOVE_PERMISSION_CHECK}));__publicField(this,"_workbookSelections");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this._init()}dispose(){var _a61,_b,_c,_d,_e,_f,_g,_h;(_a61=this._moveHelperBackgroundShape)==null||_a61.dispose(),(_b=this._moveHelperLineShape)==null||_b.dispose(),(_c=this._headerPointerMoveSubs)==null||_c.unsubscribe(),(_d=this._headerPointerLeaveSubs)==null||_d.unsubscribe(),(_e=this._headerPointerDownSubs)==null||_e.unsubscribe(),this._headerPointerMoveSubs=null,this._headerPointerLeaveSubs=null,this._headerPointerDownSubs=null,(_f=this._dragHeaderMoveSub)==null||_f.unsubscribe(),(_g=this._scenePointerUpSub)==null||_g.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null,(_h=this._scrollTimer)==null||_h.dispose()}_init(){this._initialRowOrColumn(core.RANGE_TYPE.ROW),this._initialRowOrColumn(core.RANGE_TYPE.COLUMN)}_initialRowOrColumn(initialType=core.RANGE_TYPE.ROW){const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),scene=this._context.scene,eventBindingObject=initialType===core.RANGE_TYPE.ROW?spreadsheetRowHeader:spreadsheetColumnHeader,pointerMoveHandler=__name(evt=>{var _a61,_b;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const selectionRange=(_b=this._workbookSelections.getCurrentLastSelection())==null?void 0:_b.range;if(!selectionRange||!this.interceptor.fetchThroughInterceptors(HEADER_MOVE_PERMISSION_CHECK)(!1,selectionRange))return;const currentSelections=this._workbookSelections.getCurrentSelections(),{row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);if(!matchedSelectionByRowColIndex(currentSelections,initialType===core.RANGE_TYPE.ROW?row:column,initialType)){scene.resetCursor();return}scene.setCursor(engineRender.CURSOR_TYPE.GRAB)},"pointerMoveHandler"),pointerLeaveHandler=__name(()=>{var _a61,_b;(_a61=this._moveHelperBackgroundShape)==null||_a61.hide(),(_b=this._moveHelperLineShape)==null||_b.hide(),scene.resetCursor()},"pointerLeaveHandler"),pointerDownHandler=__name((evt,state)=>{var _a61,_b;if(state.isStopPropagation)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const selectionRange=(_b=this._workbookSelections.getCurrentLastSelection())==null?void 0:_b.range;if(!selectionRange||!this.interceptor.fetchThroughInterceptors(HEADER_MOVE_PERMISSION_CHECK)(!1,selectionRange))return;const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);let scrollType;initialType===core.RANGE_TYPE.ROW?(this._changeFromRow=row,scrollType=engineRender.ScrollTimerType.Y):(this._changeFromColumn=column,scrollType=engineRender.ScrollTimerType.X);const currentSelections=this._workbookSelections.getCurrentSelections(),matchSelectionData=matchedSelectionByRowColIndex(currentSelections,initialType===core.RANGE_TYPE.ROW?row:column,initialType);if(!matchSelectionData)return;const startScrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY]));this._newBackgroundAndLine(),scene.setCursor(engineRender.CURSOR_TYPE.GRABBING),scene.disableObjectsEvent();let scrollTimerInitd=!1,scrollTimer;const initScrollTimer=__name(()=>{if(scrollTimerInitd)return;scrollTimer=engineRender.ScrollTimer.create(scene,scrollType),this._scrollTimer=scrollTimer;const mainViewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,mainViewport),scrollTimerInitd=!0},"initScrollTimer");this._dragHeaderMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{initScrollTimer();const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._rowColumnMoving(newMoveOffsetX,newMoveOffsetY,matchSelectionData,startScrollXY,initialType),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._rowColumnMoving(newMoveOffsetX,newMoveOffsetY,matchSelectionData,startScrollXY,initialType)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a62,_b2,_c;this._disposeBackgroundAndLine(),scene.resetCursor(),scene.enableObjectsEvent(),this._clearObserverEvent(),(_a62=this._scrollTimer)==null||_a62.dispose();const selections=this._workbookSelections.getCurrentSelections();if(initialType===core.RANGE_TYPE.ROW){if(this._changeFromRow!==this._changeToRow&&this._changeToRow!==-1){const range=(_b2=((selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.ROW&&selection.range.startRow<=this._changeFromRow&&this._changeFromRow<=selection.range.endRow))||[])[0])==null?void 0:_b2.range;range&&this._commandService.executeCommand(sheets.MoveRowsCommand.id,{fromRange:range,toRange:{...range,startRow:this._changeToRow,endRow:this._changeToRow+range.endRow-range.startRow}})}this._changeToRow=this._changeFromRow=-1}else{if(this._changeFromColumn!==this._changeToColumn&&this._changeToColumn!==-1){const range=(_c=((selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.COLUMN&&selection.range.startColumn<=this._changeFromColumn&&this._changeFromColumn<=selection.range.endColumn))||[])[0])==null?void 0:_c.range;range&&this._commandService.executeCommand(sheets.MoveColsCommand.id,{fromRange:range,toRange:{...range,startColumn:this._changeToColumn,endColumn:this._changeToColumn+range.endColumn-range.startColumn}})}this._changeToColumn=this._changeFromColumn=-1}})},"pointerDownHandler");this._headerPointerMoveSubs=new rxjs.Subscription,this._headerPointerMoveSubs.add(eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler)),this._headerPointerLeaveSubs=new rxjs.Subscription,this._headerPointerLeaveSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler)),this._headerPointerDownSubs=new rxjs.Subscription,this._headerPointerDownSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerDown$.subscribeEvent(pointerDownHandler))}_rowColumnMoving(moveOffsetX,moveOffsetY,matchSelectionData,startScrollXY,initialType){var _a61,_b,_c,_d,_e,_f,_g;const scene=this._context.scene,skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const{rowHeaderWidth,columnHeaderHeight,rowTotalHeight,columnTotalWidth}=skeleton,scrollXY=scene.getViewportScrollXY(scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=skeleton.getCellIndexByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX:cellStartX,startY:cellStartY,endX:cellEndX,endY:cellEndY}=startCell,selectionWithCoord=this._sheetSkeletonManagerService.attachRangeWithCoord(matchSelectionData.range);if(selectionWithCoord==null)return;const scale=Math.max(scaleX,scaleX),{startX:selectedStartX,endX:selectedEndX,startY:selectedStartY,endY:selectedEndY,startRow:selectedStartRow,startColumn:selectedStartColumn,endRow:selectedEndRow,endColumn:selectedEndColumn}=selectionWithCoord;initialType===core.RANGE_TYPE.ROW?(_b=this._moveHelperBackgroundShape)==null||_b.transformByState({height:selectedEndY-selectedStartY,width:columnTotalWidth+rowHeaderWidth,left:0,top:selectedStartY+(moveOffsetY-this._startOffsetY)/scale+scrollXY.y-startScrollXY.y}):(_c=this._moveHelperBackgroundShape)==null||_c.transformByState({height:rowTotalHeight+columnHeaderHeight,width:selectedEndX-selectedStartX,left:selectedStartX+(moveOffsetX-this._startOffsetX)/scale+scrollXY.x-startScrollXY.x,top:0}),(_d=this._moveHelperBackgroundShape)==null||_d.show();const HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE=HEADER_MOVE_CONTROLLER_LINE_SIZE/scale;if(initialType===core.RANGE_TYPE.ROW){let top=0;if(row<=selectedStartRow)top=cellStartY-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToRow=row;else if(row>selectedEndRow)top=cellEndY-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToRow=row+1;else return;(_e=this._moveHelperLineShape)==null||_e.transformByState({height:HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE,width:columnTotalWidth,left:rowHeaderWidth,top})}else{let left=0;if(column<=selectedStartColumn)left=cellStartX-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToColumn=column;else if(column>selectedEndColumn)left=cellEndX-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToColumn=column+1;else return;(_f=this._moveHelperLineShape)==null||_f.transformByState({height:rowTotalHeight,width:HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE,left,top:columnHeaderHeight})}(_g=this._moveHelperLineShape)==null||_g.show()}_clearObserverEvent(){var _a61,_b;(_a61=this._dragHeaderMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null}_newBackgroundAndLine(){const scene=this._context.scene;this._moveHelperBackgroundShape=new engineRender.Rect(HEADER_MOVE_CONTROLLER_BACKGROUND,{fill:HEADER_MOVE_CONTROLLER_BACKGROUND_FILL,evented:!1,zIndex:100}),this._moveHelperLineShape=new engineRender.Rect(HEADER_MOVE_CONTROLLER_LINE,{fill:HEADER_MOVE_CONTROLLER_LINE_FILL,evented:!1,zIndex:100}),scene.addObjects([this._moveHelperBackgroundShape,this._moveHelperLineShape],SHEET_COMPONENT_HEADER_LAYER_INDEX)}_disposeBackgroundAndLine(){var _a61,_b;(_a61=this._moveHelperBackgroundShape)==null||_a61.dispose(),(_b=this._moveHelperLineShape)==null||_b.dispose()}},__name(_a19,"HeaderMoveRenderController"),_a19);exports.HeaderMoveRenderController=__decorateClass$D([__decorateParam$D(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$D(2,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$D(3,core.ICommandService)],exports.HeaderMoveRenderController);var HEADER_RESIZE_SHAPE_TYPE=(HEADER_RESIZE_SHAPE_TYPE2=>(HEADER_RESIZE_SHAPE_TYPE2[HEADER_RESIZE_SHAPE_TYPE2.VERTICAL=0]="VERTICAL",HEADER_RESIZE_SHAPE_TYPE2[HEADER_RESIZE_SHAPE_TYPE2.HORIZONTAL=1]="HORIZONTAL",HEADER_RESIZE_SHAPE_TYPE2))(HEADER_RESIZE_SHAPE_TYPE||{});const HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL="rgba(120, 120, 120, 0.01)",HEADER_MENU_SHAPE_RECT_FILL="rgb(68, 71, 70)",HEADER_MENU_SHAPE_SIZE=12,MAX_HEADER_MENU_SHAPE_SIZE=44,HEADER_MENU_SHAPE_THUMB_SIZE=4,_HeaderMenuResizeShape=class _HeaderMenuResizeShape extends engineRender.Shape{constructor(key,props){super(key,props);__publicField(this,"_size",HEADER_MENU_SHAPE_SIZE);__publicField(this,"_color",HEADER_MENU_SHAPE_RECT_FILL);__publicField(this,"_mode",0);this.setShapeProps(props)}get size(){return this._size}get mode(){return this._mode}get color(){return this._color}_draw(ctx){const scene=this.getScene();if(!scene)return;const{scaleX,scaleY}=scene.getAncestorScale(),scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE=HEADER_MENU_SHAPE_SIZE/scale,HEADER_MENU_SHAPE_THUMB_SIZE_SCALE=HEADER_MENU_SHAPE_THUMB_SIZE/scale;let{width,height}=this,left=0,top=0;this.mode===0?(width=HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,left=HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE):(height=HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,top=HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE),engineRender.Rect.drawWith(ctx,{width:this.width,height:this.height,left:0,top:0,fill:HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL}),engineRender.Rect.drawWith(ctx,{width,height,fill:HEADER_MENU_SHAPE_RECT_FILL,radius:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE}),ctx.save(),ctx.transform(1,0,0,1,left,top),engineRender.Rect.drawWith(ctx,{width,height,fill:HEADER_MENU_SHAPE_RECT_FILL,radius:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE}),ctx.restore()}setShapeProps(props){return props!=null&&props.size&&(this._size=props.size),props!=null&&props.mode&&(this._mode=props.mode),props!=null&&props.color&&(this._color=props.color),this.mode===0?this.transformByState({width:HEADER_MENU_SHAPE_SIZE,height:this.size}):this.transformByState({width:this.size,height:HEADER_MENU_SHAPE_SIZE}),this}};__name(_HeaderMenuResizeShape,"HeaderMenuResizeShape");let HeaderMenuResizeShape=_HeaderMenuResizeShape;var __defProp$C=Object.defineProperty,__getOwnPropDesc$C=Object.getOwnPropertyDescriptor,__decorateClass$C=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$C(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$C(target,key,result),result},"__decorateClass$C"),__decorateParam$C=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$C");const HEADER_RESIZE_CONTROLLER_SHAPE_ROW="__SpreadsheetHeaderResizeControllerShapeRow__",HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN="__SpreadsheetHeaderResizeControllerShapeColumn__",HEADER_RESIZE_CONTROLLER_SHAPE_HELPER="__SpreadsheetHeaderResizeControllerShapeHelper__",HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR="rgb(199, 199, 199)",MINIMAL_OFFSET=2,HEADER_RESIZE_PERMISSION_CHECK=core.createInterceptorKey("headerResizePermissionCheck");var _a20;exports.HeaderResizeRenderController=(_a20=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_selectionManagerService,_commandService){super();__publicField(this,"_currentRow",0);__publicField(this,"_currentColumn",0);__publicField(this,"_rowResizeRect");__publicField(this,"_columnResizeRect");__publicField(this,"_headerPointerSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_resizeHelperShape");__publicField(this,"_startOffsetX",Number.POSITIVE_INFINITY);__publicField(this,"_startOffsetY",Number.POSITIVE_INFINITY);__publicField(this,"interceptor",new core.InterceptorManager({HEADER_RESIZE_PERMISSION_CHECK}));this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._selectionManagerService=_selectionManagerService,this._commandService=_commandService,this._init()}dispose(){var _a61,_b,_c;(_a61=this._rowResizeRect)==null||_a61.dispose(),this._rowResizeRect=null,(_b=this._columnResizeRect)==null||_b.dispose(),this._columnResizeRect=null,(_c=this._headerPointerSubs)==null||_c.unsubscribe(),this._headerPointerSubs=null}_init(){const scene=this._context.scene;this._rowResizeRect=new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_ROW,{visible:!1,mode:HEADER_RESIZE_SHAPE_TYPE.HORIZONTAL,zIndex:100}),this._columnResizeRect=new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN,{visible:!1,mode:HEADER_RESIZE_SHAPE_TYPE.VERTICAL,zIndex:100}),scene.addObjects([this._rowResizeRect,this._columnResizeRect],SHEET_COMPONENT_HEADER_LAYER_INDEX),this._initialHover(0),this._initialHover(1),this._initialHoverResize(0),this._initialHoverResize(1)}_initialHover(initialType=0){const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),scene=this._context.scene,eventBindingObject=initialType===0?spreadsheetRowHeader:spreadsheetColumnHeader,pointerLeaveEvent=__name((_evt,_state)=>{var _a61,_b;(_a61=this._rowResizeRect)==null||_a61.hide(),(_b=this._columnResizeRect)==null||_b.hide()},"pointerLeaveEvent"),pointerMoveEvent=__name((evt,_state)=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null||this._rowResizeRect==null||this._columnResizeRect==null)return;const{rowHeaderWidth,columnHeaderHeight}=skeleton,{startX,startY,endX,endY,row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton),transformCoord=getTransformCoord(evt.offsetX,evt.offsetY,scene),{scaleX,scaleY}=scene.getAncestorScale(),scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE=HEADER_MENU_SHAPE_SIZE/scale;if(initialType===0){let top=startY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;if(transformCoord.y<=startY+HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.y>=startY)this._currentRow=row-1;else if(transformCoord.y>=endY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.y<=endY)this._currentRow=row,top=endY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;else{this._rowResizeRect.hide();return}if(this._currentRow===-1)return;if(!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null,{row:this._currentRow}))return!1;const rowSize=Math.min(MAX_HEADER_MENU_SHAPE_SIZE,rowHeaderWidth/3);this._rowResizeRect.transformByState({left:rowHeaderWidth/2-rowSize/2,top}),this._rowResizeRect.setShapeProps({size:rowSize}),this._rowResizeRect.show()}else{let left=startX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;if(transformCoord.x<=startX+HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.x>=startX)this._currentColumn=column-1;else if(transformCoord.x>=endX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.x<=endX)this._currentColumn=column,left=endX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;else{this._columnResizeRect.hide();return}if(this._currentColumn===-1)return;if(!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null,{col:this._currentColumn}))return!1;const columnSize=columnHeaderHeight*.7;this._columnResizeRect.transformByState({left,top:columnHeaderHeight/2-columnSize/2}),this._columnResizeRect.setShapeProps({size:columnSize}),this._columnResizeRect.show()}},"pointerMoveEvent");this._headerPointerSubs=new rxjs.Subscription,this._headerPointerSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveEvent)),this._headerPointerSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveEvent))}_initialHoverResize(initialType=0){const scene=this._context.scene,eventBindingObject=initialType===0?this._rowResizeRect:this._columnResizeRect;eventBindingObject!=null&&(this.disposeWithMe(eventBindingObject.onPointerEnter$.subscribeEvent(()=>{eventBindingObject!=null&&(eventBindingObject.show(),scene.setCursor(initialType===0?engineRender.CURSOR_TYPE.ROW_RESIZE:engineRender.CURSOR_TYPE.COLUMN_RESIZE))})),this.disposeWithMe(eventBindingObject.onPointerLeave$.subscribeEvent(()=>{eventBindingObject!=null&&(eventBindingObject.hide(),scene.resetCursor())})),this.disposeWithMe(eventBindingObject.onPointerDown$.subscribeEvent(evt=>{var _a61,_b,_c,_d,_e,_f,_g;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const scene2=this._context.scene,engine=scene2.getEngine(),canvasMaxHeight=(engine==null?void 0:engine.height)||0,canvasMaxWidth=(engine==null?void 0:engine.width)||0,viewPort=scene2.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollBarHorizontalHeight=(((_c=(_b=viewPort==null?void 0:viewPort.getScrollBar())==null?void 0:_b.horizonScrollTrack)==null?void 0:_c.height)||0)+10,scrollBarVerticalWidth=(((_e=(_d=viewPort==null?void 0:viewPort.getScrollBar())==null?void 0:_d.verticalScrollTrack)==null?void 0:_e.width)||0)+10,transformCoord=getTransformCoord(evt.offsetX,evt.offsetY,scene2),{scaleX,scaleY}=scene2.getAncestorScale();this._startOffsetX=transformCoord.x,this._startOffsetY=transformCoord.y;const currentOffsetX=skeleton.getOffsetByPositionX(this._currentColumn),currentOffsetY=skeleton.getOffsetByPositionY(this._currentRow),cell=skeleton.getNoMergeCellPositionByIndex(this._currentRow,this._currentColumn);let isStartMove=!1,moveChangeX=0,moveChangeY=0;const{columnTotalWidth,rowHeaderWidth,rowTotalHeight,columnHeaderHeight}=skeleton,shapeWidth=canvasMaxWidth>columnTotalWidth+rowHeaderWidth?canvasMaxWidth:columnTotalWidth+rowHeaderWidth,shapeHeight=canvasMaxHeight>rowTotalHeight+columnHeaderHeight?canvasMaxHeight:rowTotalHeight+columnHeaderHeight,scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_THUMB_SIZE_SCALE=HEADER_MENU_SHAPE_THUMB_SIZE/scale;initialType===0?this._resizeHelperShape=new engineRender.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER,{width:shapeWidth,height:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,fill:HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,left:0,top:currentOffsetY-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE/2}):this._resizeHelperShape=new engineRender.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER,{width:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,height:shapeHeight,fill:HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,left:currentOffsetX-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE/2,top:0});const rowResizeRectX=((_f=this._columnResizeRect)==null?void 0:_f.left)||0,rowResizeRectY=((_g=this._rowResizeRect)==null?void 0:_g.top)||0;scene2.addObject(this._resizeHelperShape,SHEET_COMPONENT_HEADER_LAYER_INDEX),scene2.disableObjectsEvent(),this._scenePointerMoveSub=scene2.onPointerMove$.subscribeEvent(moveEvt=>{var _a62,_b2,_c2,_d2,_e2,_f2;const relativeCoords=scene2.getCoordRelativeToViewport(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),scrollXY=scene2.getScrollXYInfoByViewport(relativeCoords,viewPort),transformCoord2=getTransformCoord(moveEvt.offsetX,moveEvt.offsetY,scene2),{x:moveOffsetX,y:moveOffsetY}=transformCoord2,{scaleX:scaleX2,scaleY:scaleY2}=scene2.getAncestorScale(),scale2=Math.max(scaleX2,scaleY2),HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2=HEADER_MENU_SHAPE_THUMB_SIZE/scale2;moveChangeX=moveOffsetX-this._startOffsetX-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2,moveChangeY=moveOffsetY-this._startOffsetY-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2,Math.abs(initialType===0?moveChangeY:moveChangeX)>=MINIMAL_OFFSET&&(isStartMove=!0),initialType===0?(moveChangeY>canvasMaxHeight-scrollBarHorizontalHeight+scrollXY.y-cell.startY&&(moveChangeY=canvasMaxHeight-scrollBarHorizontalHeight+scrollXY.y-cell.startY),moveChangeY<-(cell.endY-cell.startY)+2&&(moveChangeY=-(cell.endY-cell.startY)+2),isStartMove&&((_a62=this._resizeHelperShape)==null||_a62.transformByState({top:currentOffsetY+moveChangeY}),(_b2=this._rowResizeRect)==null||_b2.transformByState({top:rowResizeRectY+moveChangeY+HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2}),(_c2=this._rowResizeRect)==null||_c2.show(),scene2.setCursor(engineRender.CURSOR_TYPE.ROW_RESIZE))):(moveChangeX>canvasMaxWidth-scrollBarVerticalWidth+scrollXY.x-cell.startX&&(moveChangeX=canvasMaxWidth-scrollBarVerticalWidth+scrollXY.x-cell.startX),moveChangeX<-(cell.endX-cell.startX)+2&&(moveChangeX=-(cell.endX-cell.startX)+2),isStartMove&&((_d2=this._resizeHelperShape)==null||_d2.transformByState({left:currentOffsetX+moveChangeX}),(_e2=this._columnResizeRect)==null||_e2.transformByState({left:rowResizeRectX+moveChangeX+HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2}),(_f2=this._columnResizeRect)==null||_f2.show(),scene2.setCursor(engineRender.CURSOR_TYPE.COLUMN_RESIZE)))}),this._scenePointerUpSub=scene2.onPointerUp$.subscribeEvent(upEvt=>{var _a62,_b2,_c2;const scene3=this._context.scene;this._clearObserverEvent(),(_a62=this._resizeHelperShape)==null||_a62.dispose(),this._resizeHelperShape=null,scene3.enableObjectsEvent(),isStartMove&&(scene3.resetCursor(),(_b2=this._rowResizeRect)==null||_b2.hide(),(_c2=this._columnResizeRect)==null||_c2.hide(),initialType===0?this._commandService.executeCommand(sheets.DeltaRowHeightCommand.id,{deltaY:moveChangeY,anchorRow:this._currentRow}):this._commandService.executeCommand(sheets.DeltaColumnWidthCommand.id,{deltaX:moveChangeX,anchorCol:this._currentColumn}))})})),this.disposeWithMe(eventBindingObject.onDblclick$.subscribeEvent(()=>{var _a61,_b,_c;this._context.scene.resetCursor();const sk=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(!sk)return;const startRow=0,startColumn=0,endRow=sk.worksheet.getRowCount()-1||0,endColumn=sk.worksheet.getColumnCount()-1||0;switch(initialType){case 1:{const curSelections=this._selectionManagerService.getCurrentSelections(),ranges=[];for(let i=0;i<curSelections.length;i++){const selection=curSelections[i];selection.range.rangeType===core.RANGE_TYPE.COLUMN&&this._currentColumn<=selection.range.endColumn&&this._currentColumn>=selection.range.startColumn&&ranges.push({startColumn:selection.range.startColumn,endColumn:selection.range.endColumn,startRow,endRow})}ranges.length===0&&ranges.push({startColumn:this._currentColumn,endColumn:this._currentColumn,startRow,endRow}),this._commandService.executeCommand(SetWorksheetColAutoWidthCommand.id,{ranges}),(_b=this._columnResizeRect)==null||_b.hide();break}case 0:this._commandService.executeCommand(sheets.SetWorksheetRowIsAutoHeightCommand.id,{ranges:[{startRow:this._currentRow,endRow:this._currentRow,startColumn,endColumn}]}),(_c=this._rowResizeRect)==null||_c.hide();break}})))}_clearObserverEvent(){var _a61,_b;(_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}},__name(_a20,"HeaderResizeRenderController"),_a20);exports.HeaderResizeRenderController=__decorateClass$C([__decorateParam$C(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$C(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$C(3,core.ICommandService)],exports.HeaderResizeRenderController);var __defProp$B=Object.defineProperty,__getOwnPropDesc$B=Object.getOwnPropertyDescriptor,__decorateClass$B=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$B(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$B(target,key,result),result},"__decorateClass$B"),__decorateParam$B=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$B");const FRAME_STACK_THRESHOLD=60;var _a21;exports.SheetRenderController=(_a21=class extends core.RxDisposable{constructor(_context,_sheetSkeletonManagerService,_sheetRenderService,_commandService,_telemetryService){super();__publicField(this,"_renderFrameTimeMetric",null);__publicField(this,"_renderFrameTags",{});__publicField(this,"_afterRenderMetric$",new rxjs.Subject);this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._sheetRenderService=_sheetRenderService,this._commandService=_commandService,this._telemetryService=_telemetryService,this._addNewRender(),this._initRenderMetricSubscriber()}_addNewRender(){const{scene,engine,unit:workbook}=this._context;this._addComponent(workbook),this._initRerenderScheduler(),this._initCommandListener();const worksheet=this._context.unit.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const sheetId=worksheet.getSheetId();this._sheetSkeletonManagerService.setCurrent({sheetId}),engine.runRenderLoop(()=>scene.render())}_initRenderMetricSubscriber(){if(!this._telemetryService)return;const{engine}=this._context;engine.beginFrame$.subscribe(()=>{this._renderFrameTimeMetric=null,this._renderFrameTags={}}),engine.endFrame$.subscribe(()=>{this._renderFrameTimeMetric&&Object.keys(this._renderFrameTimeMetric).filter(key=>key.startsWith(engineRender.SHEET_EXTENSION_PREFIX)).length>0&&this._afterRenderMetric$.next({frameTimeMetric:this._renderFrameTimeMetric,tags:this._renderFrameTags})}),engine.renderFrameTimeMetric$.subscribe(([key,value])=>{this._renderFrameTimeMetric||(this._renderFrameTimeMetric={}),this._renderFrameTimeMetric[key]||(this._renderFrameTimeMetric[key]=[]),this._renderFrameTimeMetric[key].push(Math.round(value*100)/100)}),engine.renderFrameTags$.subscribe(([key,value])=>{this._renderFrameTags[key]=value});const frameInfoList=[];this._afterRenderMetric$.pipe(rxjs.withLatestFrom(engine.endFrame$)).subscribe(([sceneRenderDetail,basicFrameTimeInfo])=>{frameInfoList.push({FPS:basicFrameTimeInfo.FPS,elapsedTime:basicFrameTimeInfo.elapsedTime,frameTime:Math.round(basicFrameTimeInfo.frameTime*100)/100,...sceneRenderDetail.frameTimeMetric,...sceneRenderDetail.tags}),frameInfoList.length>FRAME_STACK_THRESHOLD&&(this._renderMetricCapture(frameInfoList),frameInfoList.length=0)})}_renderMetricCapture(frameInfoList){const filteredFrameInfo=frameInfoList;if(filteredFrameInfo.length===0)return;const sumValueForNumListFields=__name(data=>{let totalSum=0;const sums=Object.entries(data).filter(([_2,value])=>Array.isArray(value)).map(([key])=>key).reduce((acc,key)=>{const keySum=data[key].reduce((sum,num)=>sum+num,0);return acc[key]=keySum,acc},{});return Object.keys(data).filter(key=>key.startsWith(engineRender.SHEET_EXTENSION_PREFIX)).forEach(key=>{totalSum+=sums[key]}),{...sums,extensionTotal:totalSum}},"sumValueForNumListFields"),frameTimeListAfterSum=frameInfoList.map(info=>({...info,...sumValueForNumListFields(info)})),summaryFrameStats=__name(list=>Object.entries(list[0]).filter(([key,_2])=>!["elapsedTime"].includes(key)).filter(([_2,value])=>typeof value=="number").map(([key])=>key).reduce((acc,key)=>{const values=list.map(obj=>obj[key]),max=Math.max(...values),min=Math.min(...values),avg=values.reduce((sum,val)=>sum+val,0)/values.length;return acc[key]={max:Math.round(max*100)/100,min:Math.round(min*100)/100,avg:Math.round(avg*100)/100},acc},{}),"getSummaryStats")(frameTimeListAfterSum),elapsedTimeToStart=filteredFrameInfo[filteredFrameInfo.length-1].elapsedTime,sheetId=this._context.unit.getActiveSheet().getSheetId(),unitId=this._context.unit.getUnitId(),telemetryData={sheetId,unitId,elapsedTimeToStart,...summaryFrameStats};this._telemetryService.capture("sheet_render_cost",telemetryData)}_addComponent(workbook){const{scene,components}=this._context,worksheet=workbook.getActiveSheet(),spreadsheet=new engineRender.Spreadsheet(SHEET_VIEW_KEY.MAIN);this._addViewport(worksheet);const spreadsheetRowHeader=new engineRender.SpreadsheetRowHeader(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=new engineRender.SpreadsheetColumnHeader(SHEET_VIEW_KEY.COLUMN),SpreadsheetLeftTopPlaceholder=new engineRender.Rect(SHEET_VIEW_KEY.LEFT_TOP,{zIndex:2,left:-1,top:-1,fill:"rgb(248, 249, 250)",stroke:"rgb(217, 217, 217)",strokeWidth:1});this._context.mainComponent=spreadsheet,components.set(SHEET_VIEW_KEY.MAIN,spreadsheet),components.set(SHEET_VIEW_KEY.ROW,spreadsheetRowHeader),components.set(SHEET_VIEW_KEY.COLUMN,spreadsheetColumnHeader),components.set(SHEET_VIEW_KEY.LEFT_TOP,SpreadsheetLeftTopPlaceholder),scene.addObjects([spreadsheet],SHEET_COMPONENT_MAIN_LAYER_INDEX),scene.addObjects([spreadsheetRowHeader,spreadsheetColumnHeader,SpreadsheetLeftTopPlaceholder],SHEET_COMPONENT_HEADER_LAYER_INDEX),scene.enableLayerCache(SHEET_COMPONENT_MAIN_LAYER_INDEX,SHEET_COMPONENT_HEADER_LAYER_INDEX)}_initViewports(scene,rowHeader,columnHeader){const viewMain=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN,scene,{left:rowHeader.width,top:columnHeader.height,bottom:0,right:0,isWheelPreventDefaultX:!0,allowCache:!0,bufferEdgeX:100,bufferEdgeY:100}),viewMainLeftTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:0}),viewMainLeft=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:100}),viewMainTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:100,bufferEdgeY:0}),viewRowTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP,scene,{active:!1,isWheelPreventDefaultX:!0}),viewRowBottom=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM,scene,{left:0,top:columnHeader.height,bottom:0,width:rowHeader.width,isWheelPreventDefaultX:!0}),viewColumnLeft=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT,scene,{active:!1,isWheelPreventDefaultX:!0}),viewColumnRight=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT,scene,{left:rowHeader.width,top:0,height:columnHeader.height,right:0,isWheelPreventDefaultX:!0}),viewLeftTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP,scene,{left:0,top:0,width:rowHeader.width,height:columnHeader.height,isWheelPreventDefaultX:!0});return{viewMain,viewLeftTop,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewRowTop,viewRowBottom,viewColumnRight}}_addViewport(worksheet){const scene=this._context.scene,{rowHeader,columnHeader}=worksheet.getConfig(),{viewMain}=this._initViewports(scene,rowHeader,columnHeader);return new engineRender.ScrollBar(viewMain),scene.attachControl(),viewMain}_initRerenderScheduler(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(!param)return null;const{skeleton:spreadsheetSkeleton,sheetId}=param,workbook=this._context.unit,worksheet=workbook==null?void 0:workbook.getSheetBySheetId(sheetId);if(workbook==null||worksheet==null)return;const{mainComponent,components}=this._context,spreadsheet=mainComponent,spreadsheetRowHeader=components.get(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetLeftTopPlaceholder=components.get(SHEET_VIEW_KEY.LEFT_TOP),{rowHeaderWidth,columnHeaderHeight}=spreadsheetSkeleton;spreadsheet==null||spreadsheet.updateSkeleton(spreadsheetSkeleton),spreadsheetRowHeader==null||spreadsheetRowHeader.updateSkeleton(spreadsheetSkeleton),spreadsheetColumnHeader==null||spreadsheetColumnHeader.updateSkeleton(spreadsheetSkeleton),spreadsheetLeftTopPlaceholder==null||spreadsheetLeftTopPlaceholder.transformByState({width:rowHeaderWidth,height:columnHeaderHeight});const rowFreezeHeaderRect=this._context.scene.getObject(FREEZE_ROW_HEADER_NAME);rowFreezeHeaderRect&&rowFreezeHeaderRect.transformByState({top:columnHeaderHeight-rowFreezeHeaderRect.height});const colFreezeHeaderRect=this._context.scene.getObject(FREEZE_COLUMN_HEADER_NAME);colFreezeHeaderRect&&colFreezeHeaderRect.transformByState({height:columnHeaderHeight})}))}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{const{unit:workbook}=this._context,{id:commandId}=command;if(sheets.COMMAND_LISTENER_SKELETON_CHANGE.includes(commandId)||this._sheetRenderService.checkMutationShouldTriggerRerender(commandId)){const params=command.params,{unitId,subUnitId}=params,worksheet=workbook.getActiveSheet();if(!worksheet)return;const workbookId=this._context.unitId,worksheetId=worksheet.getSheetId();if(unitId!==workbookId||subUnitId!==worksheetId)return;this._sheetSkeletonManagerService.makeDirty({sheetId:worksheetId,commandId},!0),this._sheetSkeletonManagerService.setCurrent({sheetId:worksheetId,commandId})}else sheets.COMMAND_LISTENER_VALUE_CHANGE.includes(commandId)&&this._sheetSkeletonManagerService.reCalculate();command.type===core.CommandType.MUTATION&&this._markUnitDirty(command)}))}_markUnitDirty(command){const{mainComponent:spreadsheet,scene}=this._context;if(command.id===engineFormula.SetFormulaCalculationNotificationMutation.id&&command.params.stageInfo!=null||(spreadsheet&&spreadsheet.makeDirty(),scene.makeDirty(),!command.params))return;const cmdParams=command.params,viewports=this._spreadsheetViewports(scene);if(command.id===sheets.SetRangeValuesMutation.id&&cmdParams.cellValue){const dirtyRange=this._cellValueToRange(cmdParams.cellValue),dirtyBounds=this._rangeToBounds([dirtyRange]);this._markViewportDirty(viewports,dirtyBounds),spreadsheet.setDirtyArea(dirtyBounds)}if(command.id===sheets.MoveRangeMutation.id&&cmdParams.from&&cmdParams.to){const fromRange=cmdParams.fromRange||this._cellValueToRange(cmdParams.from.value),toRange=cmdParams.toRange||this._cellValueToRange(cmdParams.to.value),dirtyBounds=this._rangeToBounds([fromRange,toRange]);this._markViewportDirty(viewports,dirtyBounds),spreadsheet.setDirtyArea(dirtyBounds)}}_cellValueToRange(cellValue){let minCol=0,maxCol=0,minRow=0,maxRow=0;for(const[_row,columnObj]of Object.entries(cellValue)){for(const column in columnObj)minCol>Number(column)&&(minCol=Number(column)),maxCol<Number(column)&&(maxCol=Number(column));minRow>Number(_row)&&(minRow=Number(_row)),maxRow<Number(_row)&&(maxRow=Number(_row))}return{startRow:minRow,endRow:maxRow,startColumn:minCol,endColumn:maxCol}}_rangeToBounds(ranges){const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{rowHeightAccumulation,columnWidthAccumulation,rowHeaderWidth,columnHeaderHeight}=skeleton,dirtyBounds=[];for(const r2 of ranges){const{startRow,endRow,startColumn,endColumn}=r2,top=startRow===0?0:rowHeightAccumulation[startRow-1]+columnHeaderHeight,bottom=rowHeightAccumulation[endRow]+columnHeaderHeight,left=startColumn===0?0:columnWidthAccumulation[startColumn-1]+rowHeaderWidth,right=columnWidthAccumulation[endColumn]+rowHeaderWidth;dirtyBounds.push({top,left,bottom,right,width:right-left,height:bottom-top})}return dirtyBounds}_markViewportDirty(viewports,dirtyBounds){const activeViewports=viewports.filter(vp=>vp.isActive&&vp.cacheBound);for(const vp of activeViewports)for(const b of dirtyBounds)core.Rectangle.hasIntersectionBetweenTwoRect(vp.cacheBound,b)&&vp.markDirty(!0)}_spreadsheetViewports(scene){return scene.getViewports().filter(v=>["viewMain","viewMainLeftTop","viewMainTop","viewMainLeft"].includes(v.viewportKey))}},__name(_a21,"SheetRenderController"),_a21);exports.SheetRenderController=__decorateClass$B([__decorateParam$B(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$B(2,core.Inject(exports.SheetsRenderService)),__decorateParam$B(3,core.ICommandService),__decorateParam$B(4,core.Optional(telemetry.ITelemetryService))],exports.SheetRenderController);var __assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},IconBase=React.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=React.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return React.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a61){var key=_a61[0],value=_a61[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a61,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a61=node.children)===null||_a61===void 0)&&_a61.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid");IconBase.displayName="UniverIcon";var element$i={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M11.0363 12.2367V14.0367C11.0363 14.3681 11.3049 14.6367 11.6363 14.6367C11.9676 14.6367 12.2363 14.3681 12.2363 14.0367V12.2367H14.0364C14.3677 12.2367 14.6364 11.9681 14.6364 11.6367C14.6364 11.3054 14.3677 11.0367 14.0364 11.0367H12.2363V9.23672C12.2363 8.90535 11.9676 8.63672 11.6363 8.63672C11.3049 8.63672 11.0363 8.90535 11.0363 9.23672V11.0367H9.23635C8.90498 11.0367 8.63635 11.3054 8.63635 11.6367C8.63635 11.9681 8.90498 12.2367 9.23635 12.2367H11.0363Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M2.56365 1.36377C1.90091 1.36377 1.36365 1.90103 1.36365 2.56377V6.16377C1.36365 6.82651 1.90091 7.36377 2.56365 7.36377H6.16365C6.82639 7.36377 7.36365 6.82651 7.36365 6.16377V2.56377C7.36365 1.90103 6.82639 1.36377 6.16365 1.36377H2.56365zM6.16365 2.56377H2.56365L2.56365 6.16377H6.16365V2.56377zM2.56365 8.63647C1.90091 8.63647 1.36365 9.17373 1.36365 9.83647V13.4365C1.36365 14.0992 1.90091 14.6365 2.56365 14.6365H6.16365C6.82639 14.6365 7.36365 14.0992 7.36365 13.4365V9.83647C7.36365 9.17373 6.82639 8.63647 6.16365 8.63647H2.56365zM6.16365 9.83647H2.56365L2.56365 13.4365H6.16365V9.83647zM9.83635 7.36377C9.17361 7.36377 8.63635 6.82651 8.63635 6.16377V2.56377C8.63635 1.90103 9.17361 1.36377 9.83635 1.36377H13.4364C14.0991 1.36377 14.6364 1.90103 14.6364 2.56377V6.16377C14.6364 6.82651 14.0991 7.36377 13.4364 7.36377H9.83635zM9.83635 6.16377V2.56377L13.4364 2.56377V6.16377H9.83635z",fillRule:"evenodd",clipRule:"evenodd"}}]},Autofill=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"autofill",ref,icon:element$i}))});Autofill.displayName="Autofill";var element$h={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CheckMarkSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element$h}))});CheckMarkSingle.displayName="CheckMarkSingle";var element$g={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},CloseSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"close-single",ref,icon:element$g}))});CloseSingle.displayName="CloseSingle";var element$f={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"g",attrs:{fill:"currentColor",clipPath:"url(#convert-single_clip0_911_593)"},children:[{tag:"path",attrs:{d:"M2.44766.848145C1.564.848145.847656 1.56449.847656 2.44814V6.44814C.847656 7.3318 1.564 8.04814 2.44766 8.04814H6.44766C7.33131 8.04814 8.04766 7.3318 8.04766 6.44814V2.44814C8.04766 1.56449 7.33131.848145 6.44766.848145H2.44766zM2.04766 6.44814V5.04824H3.84775V6.84814H2.44766C2.22674 6.84814 2.04766 6.66906 2.04766 6.44814zM2.04766 3.84824H3.84775V2.04814H2.44766C2.22674 2.04814 2.04766 2.22723 2.04766 2.44814V3.84824zM5.04775 6.84814V5.04824H6.84766V6.44814C6.84766 6.66906 6.66857 6.84814 6.44766 6.84814H5.04775zM5.04775 3.84824H6.84766V2.44814C6.84766 2.22723 6.66857 2.04814 6.44766 2.04814H5.04775V3.84824zM9.55215 7.95166C8.66849 7.95166 7.95215 8.668 7.95215 9.55166V13.5517C7.95215 14.4353 8.66849 15.1517 9.55215 15.1517L11.5522 15.1517 13.5521 15.1517C14.4358 15.1517 15.1521 14.4353 15.1521 13.5517L15.1521 11.5518 15.1521 9.55166C15.1521 8.668 14.4358 7.95166 13.5521 7.95166H9.55215zM13.9521 10.9518V9.55166C13.9521 9.33075 13.7731 9.15166 13.5521 9.15166H12.1522V10.9518H13.9521zM10.9522 10.9518V9.15166H9.55215C9.33123 9.15166 9.15215 9.33075 9.15215 9.55166V10.9518H10.9522zM9.15215 12.1518H10.9522V13.9517H9.55215C9.33123 13.9517 9.15215 13.7726 9.15215 13.5517V12.1518zM12.1522 12.1518H13.9521V13.5517C13.9521 13.7726 13.7731 13.9517 13.5521 13.9517H12.1522V12.1518z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{d:"M9.62158 2.44912C9.62158 2.11775 9.89021 1.84912 10.2216 1.84912H12.7516C13.6352 1.84912 14.3516 2.56547 14.3516 3.44912V5.9791C14.3516 6.31047 14.0829 6.5791 13.7516 6.5791 13.4202 6.5791 13.1516 6.31047 13.1516 5.9791V3.44912C13.1516 3.22821 12.9725 3.04912 12.7516 3.04912H10.2216C9.89021 3.04912 9.62158 2.78049 9.62158 2.44912zM5.77871 14.1507C6.11008 14.1507 6.37871 13.8821 6.37871 13.5507 6.37871 13.2193 6.11008 12.9507 5.77871 12.9507L3.24873 12.9507C3.02782 12.9507 2.84873 12.7716 2.84873 12.5507L2.84873 10.0207C2.84873 9.68933 2.5801 9.4207 2.24873 9.4207 1.91736 9.4207 1.64873 9.68933 1.64873 10.0207L1.64873 12.5507C1.64873 13.4343 2.36507 14.1507 3.24873 14.1507H5.77871z"}}]},{tag:"defs",attrs:{},children:[{tag:"clipPath",attrs:{id:"convert-single_clip0_911_593"},children:[{tag:"path",attrs:{fill:"#fff",d:"M0 0H16V16H0z"}}]}]}],defIds:["convert-single_clip0_911_593"]},ConvertSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"convert-single",ref,icon:element$f}))});ConvertSingle.displayName="ConvertSingle";var element$e={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DeleteSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"delete-single",ref,icon:element$e}))});DeleteSingle.displayName="DeleteSingle";var element$d={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_371_77",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_371_77)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.85869 12.9216C8.38445 13.4708 7.61555 13.4708 7.14131 12.9216L0.358114 5.06726C-0.406895 4.18144 0.134916 2.66683 1.2168 2.66683L14.7832 2.66683C15.8651 2.66683 16.4069 4.18144 15.6419 5.06726L8.85869 12.9216Z"}}]}]},DropdownSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"dropdown-single",ref,icon:element$d}))});DropdownSingle.displayName="DropdownSingle";var element$c={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM10.3097 5.69014C10.544 5.92445 10.544 6.30435 10.3097 6.53867L8.84843 7.9999L10.3099 9.46137C10.5442 9.69569 10.5442 10.0756 10.3099 10.3099C10.0756 10.5442 9.69569 10.5442 9.46137 10.3099L7.9999 8.84843L6.53842 10.3099C6.30411 10.5442 5.92421 10.5442 5.6899 10.3099C5.45558 10.0756 5.45558 9.69569 5.6899 9.46137L7.15137 7.9999L5.69014 6.53867C5.45583 6.30435 5.45583 5.92445 5.69014 5.69014C5.92445 5.45583 6.30435 5.45583 6.53867 5.69014L7.9999 7.15137L9.46113 5.69014C9.69544 5.45583 10.0753 5.45583 10.3097 5.69014Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ErrorSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"error-single",ref,icon:element$c}))});ErrorSingle.displayName="ErrorSingle";var element$b={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.28096 4.6541C1.57489 4.50109 1.93721 4.61533 2.09022 4.90926C2.27315 5.26067 2.55999 5.60455 2.94829 5.92278C4.04628 6.82266 5.87505 7.44865 7.99828 7.44865C10.1215 7.44865 11.9503 6.82267 13.0482 5.92279C13.4366 5.60455 13.7234 5.26067 13.9063 4.90927C14.0594 4.61533 14.4217 4.50109 14.7156 4.65409C15.0095 4.8071 15.1238 5.16941 14.9708 5.46334C14.6995 5.98445 14.2981 6.44997 13.8089 6.8509C13.7298 6.91575 13.6481 6.97914 13.564 7.041L15.2245 8.70153C15.4588 8.93585 15.4588 9.31575 15.2245 9.55006C14.9902 9.78438 14.6103 9.78438 14.376 9.55006L12.5041 7.67822C11.8977 7.97568 11.2181 8.21208 10.4884 8.37706L11.0996 10.6581C11.1853 10.9782 10.9954 11.3072 10.6753 11.393C10.3552 11.4787 10.0262 11.2888 9.94045 10.9687L9.29949 8.57652C8.8758 8.62404 8.44081 8.64865 7.99828 8.64865C7.55276 8.64865 7.11487 8.62371 6.68846 8.57555L6.04723 10.9687C5.96147 11.2888 5.63247 11.4788 5.31239 11.393C4.99231 11.3073 4.80236 10.9783 4.88812 10.6582L5.49983 8.37516C4.7743 8.2105 4.09843 7.9752 3.49498 7.67947L1.62436 9.55009C1.39005 9.78441 1.01015 9.78441 0.775835 9.5501C0.54152 9.31578 0.541518 8.93588 0.775832 8.70157L2.43478 7.04261C2.34987 6.98024 2.26746 6.91632 2.18764 6.8509C1.69842 6.44997 1.29706 5.98445 1.0258 5.46335C0.872791 5.16942 0.987031 4.80711 1.28096 4.6541Z"}}]},EyelashSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"eyelash-single",ref,icon:element$b}))});EyelashSingle.displayName="EyelashSingle";var element$a={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6.06409 5.53454C5.93592 5.53454 5.84083 5.41567 5.86897 5.29063L5.95442 4.9109C6.05444 4.48178 6.23806 4.11547 6.51182 3.81952 6.81082 3.49628 7.25398 3.35405 7.79738 3.35405 7.99847 3.35405 8.21359 3.37775 8.44188 3.42245 8.46089 3.42617 8.47974 3.43006 8.49846 3.4341 8.7099 3.4798 8.93698 3.38478 9.02031 3.18514L9.24767 2.6404C9.33457 2.43219 9.23178 2.19404 9.01582 2.12874 8.98358 2.11899 8.95028 2.10912 8.91591 2.09914 8.62745 2.01631 8.28392 1.97217 7.88074 1.97217 6.82015 1.97217 6.02714 2.23936 5.4746 2.7444 4.90987 3.26069 4.50889 3.99917 4.28413 4.9762L2.83703 11.1909C2.76126 11.5286 2.666 11.8917 2.54844 12.2812 2.42975 12.6734 2.2873 13.0595 2.12221 13.4373 1.95577 13.8159 1.76813 14.1762 1.55955 14.5171 1.49345 14.6251 1.42515 14.7282 1.35467 14.8263 1.26508 14.9509 1.3347 15.133 1.48655 15.1554 2.13635 15.2509 2.8179 15.0763 3.18197 14.5296 3.32661 14.3124 3.46779 14.0646 3.60509 13.7851 3.96635 13.0497 4.30522 12.0103 4.61867 10.6574L5.469 7.01534C5.49013 6.92483 5.57082 6.86081 5.66376 6.86081H7.62478C7.8097 6.86081 7.97051 6.73405 8.01371 6.55425L8.14014 6.02798C8.20057 5.77642 8.00992 5.53454 7.75121 5.53454H6.06409zM14.3211 5.72037L12.5124 7.96963 11.4089 5.77754C11.3422 5.63012 11.1954 5.5354 11.0336 5.5354H10.3129C10.0085 5.5354 9.80921 5.85428 9.9427 6.1279L11.4089 9.05502 8.79783 12.1493C8.56587 12.4158 8.75519 12.8315 9.10855 12.8315H9.68607C9.80672 12.8315 9.9605 12.7822 10.0388 12.6904L12.1108 10.2648 13.1176 12.561C13.1786 12.7231 13.333 12.8315 13.5061 12.8315H14.3C14.5831 12.8315 14.7417 12.6175 14.6426 12.3524L13.1728 9.28628C13.1728 9.28628 15.4009 6.45542 15.6013 6.17892 15.7966 5.90929 15.6023 5.5354 15.2693 5.5354H14.6661C14.5275 5.5354 14.4333 5.58887 14.3211 5.72037z"}}]},FxSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"fx-single",ref,icon:element$a}))});FxSingle.displayName="FxSingle";var element$9={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M6.4833 1.65005C6.4833 1.31868 6.21467 1.05005 5.8833 1.05005C5.55193 1.05005 5.2833 1.31868 5.2833 1.65005V5.28345H1.65029C1.31892 5.28345 1.05029 5.55208 1.05029 5.88345C1.05029 6.21482 1.31892 6.48345 1.65029 6.48345H5.2833V9.51684H1.65029C1.31892 9.51684 1.05029 9.78547 1.05029 10.1168C1.05029 10.4482 1.31892 10.7168 1.65029 10.7168H5.2833V14.35C5.2833 14.6814 5.55193 14.95 5.8833 14.95C6.21467 14.95 6.4833 14.6814 6.4833 14.35V10.7168H9.5167V14.35C9.5167 14.6814 9.78533 14.95 10.1167 14.95C10.4481 14.95 10.7167 14.6814 10.7167 14.35V10.7168H14.3503C14.6817 10.7168 14.9503 10.4482 14.9503 10.1168C14.9503 9.78547 14.6817 9.51685 14.3503 9.51685H10.7167V6.48345H14.3503C14.6817 6.48345 14.9503 6.21482 14.9503 5.88345C14.9503 5.55208 14.6817 5.28345 14.3503 5.28345H10.7167V1.65005C10.7167 1.31868 10.4481 1.05005 10.1167 1.05005C9.78533 1.05005 9.5167 1.31868 9.5167 1.65005V5.28345L6.4833 5.28345V1.65005ZM6.4833 6.48345V9.51684L9.5167 9.51685V6.48345L6.4833 6.48345Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.0498 3.65005C1.0498 2.21411 2.21386 1.05005 3.6498 1.05005H12.3498C13.7857 1.05005 14.9498 2.21411 14.9498 3.65005V12.3501C14.9498 13.786 13.7857 14.95 12.3498 14.95H3.6498C2.21386 14.95 1.0498 13.786 1.0498 12.35V3.65005ZM3.6498 2.25005C2.87661 2.25005 2.2498 2.87685 2.2498 3.65005V12.35C2.2498 13.1232 2.87661 13.75 3.6498 13.75H12.3498C13.123 13.75 13.7498 13.1232 13.7498 12.3501V3.65005C13.7498 2.87685 13.123 2.25005 12.3498 2.25005H3.6498Z",fillRule:"evenodd",clipRule:"evenodd"}}]},HideGridlines=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"hide-gridlines",ref,icon:element$9}))});HideGridlines.displayName="HideGridlines";var element$8={tag:"svg",attrs:{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"}}]},IncreaseSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"increase-single",ref,icon:element$8}))});IncreaseSingle.displayName="IncreaseSingle";var element$7={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M2.62402 7.72905C2.58427 7.72905 2.55205 7.76127 2.55205 7.80102V13.6782C2.55205 13.7179 2.58427 13.7502 2.62402 13.7502H13.3755C13.4152 13.7502 13.4474 13.7179 13.4474 13.6782V7.80102C13.4474 7.76127 13.4152 7.72905 13.3755 7.72905H2.62402ZM1.35205 7.80102C1.35205 7.09853 1.92153 6.52905 2.62402 6.52905H13.3755C14.0779 6.52905 14.6474 7.09853 14.6474 7.80102V13.6782C14.6474 14.3807 14.0779 14.9502 13.3755 14.9502H2.62402C1.92153 14.9502 1.35205 14.3807 1.35205 13.6782V7.80102Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M8 2.25005C6.69847 2.25003 5.64336 3.30513 5.64336 4.60666V7.12895C5.64336 7.46032 5.37473 7.72895 5.04336 7.72895 4.71199 7.72895 4.44336 7.46032 4.44336 7.12895V4.60666C4.44336 2.64239 6.04451 1.05565 8.00879 1.05566M8 2.25005L8.00879 1.05566 8 2.25005zM8.00879 1.05566L8 2.25005C9.30154 2.25003 10.3567 3.30513 10.3567 4.60666V7.12895C10.3567 7.46032 10.6253 7.72895 10.9567 7.72895 11.288 7.72895 11.5567 7.46032 11.5567 7.12895V4.60666C11.5567 2.64239 9.97306 1.05565 8.00879 1.05566zM8.00039 9.4668C8.33176 9.4668 8.60039 9.73543 8.60039 10.0668V12.0827C8.60039 12.4141 8.33176 12.6827 8.00039 12.6827 7.66902 12.6827 7.40039 12.4141 7.40039 12.0827V10.0668C7.40039 9.73543 7.66902 9.4668 8.00039 9.4668z",fillRule:"evenodd",clipRule:"evenodd"}}]},LockSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"lock-single",ref,icon:element$7}))});LockSingle.displayName="LockSingle";var element$6={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M11.3536 6.14645C11.5488 6.34171 11.5488 6.65829 11.3536 6.85355L8.35355 9.85355C8.15829 10.0488 7.84171 10.0488 7.64645 9.85355L4.64645 6.85355C4.45118 6.65829 4.45118 6.34171 4.64645 6.14645C4.84171 5.95118 5.15829 5.95118 5.35355 6.14645L8 8.79289L10.6464 6.14645C10.8417 5.95118 11.1583 5.95118 11.3536 6.14645Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreDownSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"more-down-single",ref,icon:element$6}))});MoreDownSingle.displayName="MoreDownSingle";var element$5={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"more-single",ref,icon:element$5}))});MoreSingle.displayName="MoreSingle";var element$4={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_1204",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_1204)"},children:[{tag:"rect",attrs:{width:12.62,height:2.79,x:1.69,y:12.25,fill:"colorChannel1",rx:1.4}},{tag:"path",attrs:{fill:"currentColor",d:"M7.74646 2.1642C7.34284 1.65121 6.85947 1.28205 6.38447 1.09593C5.86863 0.893787 5.15166 0.852126 4.70047 1.42917C4.29842 1.94344 4.33082 2.70249 4.57691 3.50395C4.68808 3.8661 4.86846 4.22254 5.12522 4.56617C5.13695 4.58185 5.14927 4.5968 5.16211 4.61102C5.17152 4.6214 5.18122 4.63139 5.19115 4.64096C5.20459 4.65393 5.21855 4.66618 5.23296 4.6777L3.5064 6.40422C3.26756 6.64306 3.26756 7.03033 3.5064 7.26919L7.23756 11.0004C7.47648 11.2392 7.86375 11.2392 8.1026 11.0004L12.8329 6.27001C13.0717 6.03117 13.0717 5.6439 12.8329 5.40505L9.10172 1.67387C8.86288 1.43503 8.47561 1.43503 8.23676 1.67387L7.74646 2.1642ZM7.46162 4.50638C7.47252 4.57574 7.48163 4.64652 7.4888 4.71868C7.52232 5.05481 7.82194 5.30013 8.15807 5.26661C8.4942 5.23311 8.73954 4.93345 8.70601 4.59732C8.65786 4.11463 8.54251 3.6666 8.37892 3.26169L8.66928 2.97135L11.5354 5.83753L10.6106 6.76237H4.87824L7.40802 4.2326C7.42885 4.32128 7.44684 4.41255 7.46162 4.50638ZM6.87284 3.03784C6.57441 2.62008 6.22261 2.34634 5.93815 2.23487C5.80233 2.18165 5.71528 2.17827 5.67638 2.18335C5.6725 2.18387 5.66929 2.18443 5.6666 2.18497L5.6619 2.18607C5.64166 2.21954 5.53594 2.45979 5.74626 3.1449C5.81241 3.36036 5.92262 3.58602 6.09307 3.81761L6.87284 3.03784Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M12.1932 11.5463C12.6454 11.5463 13.012 11.1797 13.012 10.7275C13.012 10.4475 12.6981 9.92821 12.459 9.5733C12.3299 9.38173 12.0564 9.38174 11.9274 9.57331C11.6883 9.92822 11.3744 10.4475 11.3744 10.7275C11.3744 11.1797 11.741 11.5463 12.1932 11.5463Z"}}]}]},PaintBucket=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"paint-bucket",ref,icon:element$4}))});PaintBucket.displayName="PaintBucket";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_1138",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_1138)"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M7.74692 9.12463C7.74692 9.46018 8.01893 9.73219 8.35448 9.73219H11.4933C11.8288 9.73219 12.1009 9.46018 12.1009 9.12463 12.1009 8.78909 11.8288 8.51707 11.4933 8.51707H8.35448C8.01893 8.51707 7.74692 8.78909 7.74692 9.12463zM10.8636 10.8523C10.8636 11.1879 10.5915 11.4599 10.256 11.4599H8.35448C8.01893 11.4599 7.74692 11.1879 7.74692 10.8523 7.74692 10.5168 8.01893 10.2447 8.35448 10.2447H10.256C10.5915 10.2447 10.8636 10.5168 10.8636 10.8523z"}},{tag:"path",attrs:{fill:"currentColor",d:"M5.4791 1.98268C5.47913 1.71529 5.87912 1.49854 6.37252 1.49854C6.86593 1.49854 7.26592 1.71529 7.26595 1.98268H7.62187C8.22277 1.98268 8.72459 2.39534 8.84412 2.9452H9.39563C10.0856 2.9452 10.6449 3.48923 10.6449 4.16032V6.00569H12.1261C13.161 6.00569 14 6.82174 14 7.82838V11.334C14 11.8174 13.8025 12.281 13.4511 12.6228L12.0693 13.9647C11.7179 14.3065 11.2412 14.4985 10.7442 14.4985H7.91116C7.05024 14.4985 6.32492 14.0431 6.10535 13.2737H3.34925C2.6593 13.2737 2.09998 12.7297 2.09998 12.0586V4.16032C2.09998 3.48923 2.6593 2.9452 3.34925 2.9452H3.90107C4.0206 2.39534 4.52241 1.98268 5.12332 1.98268H5.4791ZM3.97249 4.16032H3.24925L3.24925 12.0586H6.03725V7.82838C6.03725 6.82174 6.87623 6.00569 7.91116 6.00569H9.49563V4.16032H8.7727C8.58289 4.59611 8.13909 4.90183 7.62187 4.90183H5.12332C4.6061 4.90183 4.1623 4.59611 3.97249 4.16032ZM5.12332 2.89403H7.62187C7.79436 2.89403 7.93419 3.03003 7.93419 3.19781V3.68671C7.93419 3.85448 7.79436 3.99049 7.62187 3.99049H5.12332C4.95083 3.99049 4.811 3.85448 4.811 3.68671V3.19781C4.811 3.03003 4.95083 2.89403 5.12332 2.89403ZM7.91116 7.11157C7.56618 7.11157 7.28652 7.38359 7.28652 7.71913V12.7851C7.28652 13.1206 7.56618 13.3927 7.91116 13.3927H10.7442C10.8401 13.3927 10.9337 13.3712 11.0182 13.3311C11.1373 13.2746 11.1859 13.1423 11.1859 13.0134V12.0066C11.1859 11.8724 11.2978 11.7636 11.4358 11.7636H12.4709C12.6034 11.7636 12.7394 11.7163 12.7975 11.6004C12.8388 11.5182 12.8608 11.4272 12.8608 11.334V7.71913C12.8608 7.38359 12.5811 7.11157 12.2362 7.11157H7.91116Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},PasteSpecial=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"paste-special",ref,icon:element$3}))});PasteSpecial.displayName="PasteSpecial";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.785 6.77762C5.78908 6.7777 5.79316 6.77774 5.79725 6.77774C5.80134 6.77774 5.80543 6.7777 5.8095 6.77762H10.0184C10.0225 6.7777 10.0266 6.77774 10.0307 6.77774C10.0347 6.77774 10.0388 6.7777 10.0429 6.77762H13.6638V7.63727C13.6638 7.96864 13.9324 8.23727 14.2638 8.23727C14.5951 8.23727 14.8638 7.96864 14.8638 7.63727V3.9999C14.8638 2.56395 13.6997 1.39989 12.2637 1.3999L3.56389 1.39999C2.12797 1.40001 0.96393 2.56405 0.96392 3.99998L0.963867 11.6666C0.963857 13.1025 2.12792 14.2666 3.56387 14.2666H8.0542C8.38557 14.2666 8.6542 13.9979 8.6542 13.6666C8.6542 13.3352 8.38557 13.0666 8.0542 13.0666H3.56387C2.79067 13.0666 2.16386 12.4398 2.16387 11.6666L2.1639 6.77762H5.785ZM6.39725 2.59996L9.43065 2.59993V5.57762H6.39725V2.59996ZM5.19725 5.57762V2.59998L3.56391 2.59999C2.79072 2.6 2.16393 3.22679 2.16392 3.99998L2.16391 5.57762H5.19725ZM13.6638 5.57762V3.9999C13.6638 3.2267 13.037 2.59989 12.2638 2.5999L10.6307 2.59992V5.57762H13.6638Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M14.1223 10.2333V10.7496C14.7087 10.9869 15.1223 11.5618 15.1223 12.2333V12.8999C15.1223 13.7836 14.406 14.4999 13.5223 14.4999H11.5223C10.6387 14.4999 9.92235 13.7836 9.92235 12.8999V12.2333C9.92235 11.5618 10.336 10.9869 10.9223 10.7496V10.2333C10.9223 9.34961 11.6387 8.63328 12.5223 8.63328C13.406 8.63328 14.1223 9.34961 14.1223 10.2333ZM11.1223 12.2333C11.1223 12.0124 11.3014 11.8333 11.5223 11.8333H13.5223C13.7433 11.8333 13.9223 12.0124 13.9223 12.2333V12.8999C13.9223 13.1209 13.7433 13.2999 13.5223 13.2999H11.5223C11.3014 13.2999 11.1223 13.1209 11.1223 12.8999V12.2333ZM12.9223 10.2333V10.6333H12.1223V10.2333C12.1223 10.0124 12.3014 9.83328 12.5223 9.83328C12.7433 9.83328 12.9223 10.0124 12.9223 10.2333Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ProtectSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"protect-single",ref,icon:element$2}))});ProtectSingle.displayName="ProtectSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM8.00008 12.3671C8.46031 12.3671 8.83342 11.994 8.83342 11.5338C8.83342 11.0735 8.46031 10.7004 8.00008 10.7004C7.53985 10.7004 7.16675 11.0735 7.16675 11.5338C7.16675 11.994 7.53985 12.3671 8.00008 12.3671ZM8.5999 4.4335C8.5999 4.10213 8.33127 3.8335 7.9999 3.8335C7.66853 3.8335 7.3999 4.10213 7.3999 4.4335V9.36683C7.3999 9.6982 7.66853 9.96683 7.9999 9.96683C8.33127 9.96683 8.5999 9.6982 8.5999 9.36683V4.4335Z",fillRule:"evenodd",clipRule:"evenodd"}}]},WarningSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"warning-single",ref,icon:element$1}))});WarningSingle.displayName="WarningSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z"}}]},WriteSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"write-single",ref,icon:element}))});WriteSingle.displayName="WriteSingle";function getUserListEqual(userList1,userList2){if(userList1.length!==userList2.length)return!1;const sorted1=userList1.sort((a,b)=>a.id.localeCompare(b.id)),sorted2=userList2.sort((a,b)=>a.id.localeCompare(b.id));return sorted1.every((user,index)=>{var _a61,_b;return((_a61=user.subject)==null?void 0:_a61.userID)===((_b=sorted2[index].subject)==null?void 0:_b.userID)&&user.role===sorted2[index].role})}__name(getUserListEqual,"getUserListEqual");function checkCellContentInRanges(worksheet,ranges){return ranges.some(range=>checkCellContentInRange(worksheet,range))}__name(checkCellContentInRanges,"checkCellContentInRanges");function checkCellContentInRange(worksheet,range){const{startRow,startColumn,endColumn,endRow}=range,cellMatrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn);let someCellGoingToBeRemoved=!1;return cellMatrix.forValue((row,col,cellData)=>{if(cellData&&(row!==startRow||col!==startColumn)&&worksheet.cellHasValue(cellData))return someCellGoingToBeRemoved=!0,!1}),someCellGoingToBeRemoved}__name(checkCellContentInRange,"checkCellContentInRange");function getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges){const undos=[],redos=[],subUnitId=worksheet.getSheetId();return ranges.forEach(range=>{const redoMatrix=getClearContentMutationParamForRange(worksheet,range),redoMutationParams={unitId,subUnitId,cellValue:redoMatrix.getData()},undoMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,redoMutationParams);undos.push({id:sheets.SetRangeValuesMutation.id,params:undoMutationParams}),redos.push({id:sheets.SetRangeValuesMutation.id,params:redoMutationParams})}),{undos,redos}}__name(getClearContentMutationParamsForRanges,"getClearContentMutationParamsForRanges");function getClearContentMutationParamForRange(worksheet,range){const{startRow,startColumn,endColumn,endRow}=range,cellMatrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn,core.CellModeEnum.Intercepted),redoMatrix=new core.ObjectMatrix;let leftTopCellValue=null;return cellMatrix.forValue((row,col,cellData)=>{var _a61,_b,_c,_d;cellData&&row>=startRow&&col>=startColumn&&(!leftTopCellValue&&worksheet.cellHasValue(cellData)&&(cellData.v!==""||((_d=(_c=(_b=(_a61=cellData.p)==null?void 0:_a61.body)==null?void 0:_b.dataStream)==null?void 0:_c.length)!=null?_d:0)>2)&&(leftTopCellValue=cellData),redoMatrix.setValue(row,col,null))}),redoMatrix.setValue(startRow,startColumn,leftTopCellValue),redoMatrix}__name(getClearContentMutationParamForRange,"getClearContentMutationParamForRange");function getCellIndexByOffsetWithMerge(offsetX,offsetY,scene,skeleton){const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},cellIndex=skeleton.getCellIndexByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),mergeCell=skeleton.worksheet.getMergedCell(cellIndex.row,cellIndex.column);return{actualRow:mergeCell?mergeCell.startRow:cellIndex.row,actualCol:mergeCell?mergeCell.startColumn:cellIndex.column,mergeCell,row:cellIndex.row,col:cellIndex.column}}__name(getCellIndexByOffsetWithMerge,"getCellIndexByOffsetWithMerge");function getViewportByCell(row,column,scene,worksheet){const freeze=worksheet.getFreeze();if(!freeze||freeze.startRow<=0&&freeze.startColumn<=0||row>=freeze.startRow&&column>=freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row<freeze.startRow&&column<freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(row<freeze.startRow&&column>=freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(row>=freeze.startRow&&column<freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}__name(getViewportByCell,"getViewportByCell");function transformBound2OffsetBound(originBound,scene,skeleton,worksheet){const topLeft=transformPosition2Offset(originBound.left,originBound.top,scene,skeleton,worksheet),bottomRight=transformPosition2Offset(originBound.right,originBound.bottom,scene,skeleton,worksheet);return{left:topLeft.x,top:topLeft.y,right:bottomRight.x,bottom:bottomRight.y}}__name(transformBound2OffsetBound,"transformBound2OffsetBound");function transformPosition2Offset(x,y,scene,skeleton,worksheet){const{scaleX,scaleY}=scene.getAncestorScale(),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!viewMain)return{x,y};const freeze=worksheet.getFreeze(),{startColumn,startRow,xSplit,ySplit}=freeze,startSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(startRow-ySplit,startColumn-xSplit),endSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(startRow,startColumn),{rowHeaderWidth,columnHeaderHeight}=skeleton,freezeWidth=endSheetView.startX-startSheetView.startX,freezeHeight=endSheetView.startY-startSheetView.startY,{top,left,viewportScrollX,viewportScrollY}=viewMain;let offsetX;x>left?offsetX=(x-viewportScrollX)*scaleX:offsetX=(freezeWidth+rowHeaderWidth-(left-x))*scaleX;let offsetY;return y>top?offsetY=(y-viewportScrollY)*scaleY:offsetY=(freezeHeight+columnHeaderHeight-(top-y))*scaleX,{x:offsetX,y:offsetY}}__name(transformPosition2Offset,"transformPosition2Offset");function getCellRealRange(workbook,worksheet,skeleton,row,col){let actualRow=row,actualCol=col;skeleton.overflowCache.forValue((r2,c,range)=>{range.startRow<=actualRow&&range.endRow>=actualRow&&range.startColumn<=actualCol&&range.endColumn>=actualCol&&(actualCol=c,actualRow=r2)});const actualCell=skeleton.getCellWithCoordByIndex(actualRow,actualCol);return{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),workbook,worksheet,row:actualCell.actualRow,col:actualCell.actualColumn}}__name(getCellRealRange,"getCellRealRange");function getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY){const{scene}=currentRender,unitId=workbook.getUnitId(),{skeleton,sheetId}=skeletonParam,cellIndex=getCellIndexByOffsetWithMerge(offsetX,offsetY,scene,skeleton);if(!cellIndex)return null;let{actualCol,actualRow}=cellIndex;const originLocation={unitId,subUnitId:sheetId,workbook,worksheet,row:actualRow,col:actualCol};skeleton.overflowCache.forValue((r2,c,range)=>{range.startRow<=actualRow&&range.endRow>=actualRow&&range.startColumn<=actualCol&&range.endColumn>=actualCol&&(actualCol=c,actualRow=r2)});const actualCell=skeleton.getCellWithCoordByIndex(actualRow,actualCol),location=getCellRealRange(workbook,worksheet,skeleton,actualRow,actualCol);let anchorCell;actualCell.mergeInfo?anchorCell=actualCell.mergeInfo:anchorCell={startRow:location.row,endRow:location.row,startColumn:location.col,endColumn:location.col};const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY};return{position:{startX:(skeleton.getOffsetByPositionX(anchorCell.startColumn-1)-scrollXY.x)*scaleX,endX:(skeleton.getOffsetByPositionX(anchorCell.endColumn)-scrollXY.x)*scaleX,startY:(skeleton.getOffsetByPositionY(anchorCell.startRow-1)-scrollXY.y)*scaleY,endY:(skeleton.getOffsetByPositionY(anchorCell.endRow)-scrollXY.y)*scaleY},location:originLocation,overflowLocation:location}}__name(getHoverCellPosition,"getHoverCellPosition");const AddWorksheetMergeCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),univerInstanceService=accessor.get(core.IUniverInstanceService),confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService),unitId=params.unitId,subUnitId=params.subUnitId,selections=params.selections,ranges=sheets.getAddMergeMutationRangeByType(selections,params.value),worksheet=univerInstanceService.getUniverSheetInstance(unitId).getSheetBySheetId(subUnitId),redoMutations=[],undoMutations=[],willClearSomeCell=checkCellContentInRanges(worksheet,ranges);if(willClearSomeCell&&!params.defaultMerge&&!await confirmService.confirm({id:"merge.confirm.add-worksheet-merge",title:{title:"merge.confirm.title"},cancelText:localeService.t("merge.confirm.cancel"),confirmText:localeService.t("merge.confirm.confirm")}))return!1;const removeMergeMutationParams={unitId,subUnitId,ranges:core.Tools.deepClone(ranges)},addMergeMutationParams={unitId,subUnitId,ranges:core.Tools.deepClone(ranges)},undoRemoveMergeMutationParams=sheets.RemoveMergeUndoMutationFactory(accessor,removeMergeMutationParams),undoMutationParams=sheets.AddMergeUndoMutationFactory(accessor,addMergeMutationParams);if(undoRemoveMergeMutationParams.ranges.length>0&&redoMutations.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),redoMutations.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams}),undoMutations.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoMutationParams}),undoRemoveMergeMutationParams.ranges.length>0&&undoMutations.push({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),willClearSomeCell){const data=getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges);redoMutations.unshift(...data.redos),undoMutations.push(...data.undos)}const addMergeRedoSelectionsMutation=sheets.AddMergeRedoSelectionsOperationFactory(accessor,params,ranges);addMergeRedoSelectionsMutation&&redoMutations.push(addMergeRedoSelectionsMutation);const addMergeUndoSelectionsMutation=sheets.AddMergeUndoSelectionsOperationFactory(accessor,params);addMergeUndoSelectionsMutation&&undoMutations.push(addMergeUndoSelectionsMutation);const interceptor=accessor.get(sheets.SheetInterceptorService).onCommandExecute({id:AddWorksheetMergeCommand.id,params:{unitId,subUnitId,ranges}});return redoMutations.push(...interceptor.redos),undoMutations.push(...interceptor.undos),core.sequenceExecute(redoMutations,commandService).result?(undoRedoService.pushUndoRedo({unitID:unitId,undoMutations,redoMutations}),!0):!1},"handler")},AddWorksheetMergeAllCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeAll,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{selections:mergeableSelections,unitId,subUnitId})},"handler")},AddWorksheetMergeVerticalCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeVertical,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{value:core.Dimension.COLUMNS,selections:mergeableSelections,unitId,subUnitId})},"handler")},AddWorksheetMergeHorizontalCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeHorizontal,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{value:core.Dimension.ROWS,selections:mergeableSelections,unitId,subUnitId})},"handler")},DeleteRangeMoveLeftConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-move-left-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endColumn:worksheet.getColumnCount()-1};const getRowLength=__name(range2=>range2.endRow-range2.startRow,"getRowLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getRowLength(mergeRange)>getRowLength(interSectedRange):!1})||await confirmService.confirm({id:DeleteRangeMoveLeftConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.DeleteRangeMoveLeftCommand.id):!0},"handler")},DeleteRangeMoveUpConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-move-up-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endRow:worksheet.getRowCount()-1};for(let i=range.startRow;i<=range.endRow;i++)if(worksheet.getRowFiltered(i)&&await confirmService.confirm({id:DeleteRangeMoveUpConfirmCommand.id,title:{title:localeService.t("filter.confirm.error")},children:{title:localeService.t("filter.confirm.notAllowedToInsertRange")},confirmText:localeService.t("button.confirm")}))return!1;const getColLength=__name(range2=>range2.endColumn-range2.startColumn,"getColLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getColLength(mergeRange)>getColLength(interSectedRange):!1})||await confirmService.confirm({id:DeleteRangeMoveUpConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.DeleteRangeMoveUpCommand.id):!0},"handler")},InsertRangeMoveDownConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.insert-range-move-down-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endRow:worksheet.getRowCount()-1};for(let i=range.startRow;i<=range.endRow;i++)if(worksheet.getRowFiltered(i)&&await confirmService.confirm({id:InsertRangeMoveDownConfirmCommand.id,title:{title:localeService.t("filter.confirm.error")},children:{title:localeService.t("filter.confirm.notAllowedToInsertRange")},confirmText:localeService.t("button.confirm")}))return!1;const getColLength=__name(range2=>range2.endColumn-range2.startColumn,"getColLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getColLength(mergeRange)>getColLength(interSectedRange):!1})||await confirmService.confirm({id:InsertRangeMoveDownConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.InsertRangeMoveDownCommand.id):!0},"handler")},InsertRangeMoveRightConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.insert-range-move-right-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endColumn:worksheet.getColumnCount()-1};const getRowLength=__name(range2=>range2.endRow-range2.startRow,"getRowLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getRowLength(mergeRange)>getRowLength(interSectedRange):!1})||await confirmService.confirm({id:InsertRangeMoveRightConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.InsertRangeMoveRightCommand.id):!0},"handler")};var _=(E=>(E[E.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",E[E.UNIVER_DOC=1]="UNIVER_DOC",E[E.UNIVER_SHEET=2]="UNIVER_SHEET",E[E.UNIVER_SLIDE=3]="UNIVER_SLIDE",E[E.UNIVER_PROJECT=4]="UNIVER_PROJECT",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(_||{}),R=(E=>(E[E.View=0]="View",E[E.Edit=1]="Edit",E[E.ManageCollaborator=2]="ManageCollaborator",E[E.Print=3]="Print",E[E.Duplicate=4]="Duplicate",E[E.Comment=5]="Comment",E[E.Copy=6]="Copy",E[E.Share=7]="Share",E[E.Export=8]="Export",E[E.MoveWorksheet=9]="MoveWorksheet",E[E.DeleteWorksheet=10]="DeleteWorksheet",E[E.HideWorksheet=11]="HideWorksheet",E[E.RenameWorksheet=12]="RenameWorksheet",E[E.CreateWorksheet=13]="CreateWorksheet",E[E.SetWorksheetStyle=14]="SetWorksheetStyle",E[E.EditWorksheetCell=15]="EditWorksheetCell",E[E.InsertHyperlink=16]="InsertHyperlink",E[E.Sort=17]="Sort",E[E.Filter=18]="Filter",E[E.PivotTable=19]="PivotTable",E[E.FloatImg=20]="FloatImg",E[E.History=21]="History",E[E.RwHgtClWdt=22]="RwHgtClWdt",E[E.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",E[E.ViewFilter=24]="ViewFilter",E[E.MoveSheet=25]="MoveSheet",E[E.DeleteSheet=26]="DeleteSheet",E[E.HideSheet=27]="HideSheet",E[E.CopySheet=28]="CopySheet",E[E.RenameSheet=29]="RenameSheet",E[E.CreateSheet=30]="CreateSheet",E[E.SelectProtectedCells=31]="SelectProtectedCells",E[E.SelectUnProtectedCells=32]="SelectUnProtectedCells",E[E.SetCellStyle=33]="SetCellStyle",E[E.SetCellValue=34]="SetCellValue",E[E.SetRowStyle=35]="SetRowStyle",E[E.SetColumnStyle=36]="SetColumnStyle",E[E.InsertRow=37]="InsertRow",E[E.InsertColumn=38]="InsertColumn",E[E.DeleteRow=39]="DeleteRow",E[E.DeleteColumn=40]="DeleteColumn",E[E.EditExtraObject=41]="EditExtraObject",E[E.Delete=42]="Delete",E[E.RecoverHistory=43]="RecoverHistory",E[E.ViewHistory=44]="ViewHistory",E[E.CreatePermissionObject=45]="CreatePermissionObject",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(R||{}),S=(E=>(E[E.Reader=0]="Reader",E[E.Editor=1]="Editor",E[E.Owner=2]="Owner",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(S||{}),L=(E=>(E[E.Unkonwn=0]="Unkonwn",E[E.Workbook=1]="Workbook",E[E.Worksheet=2]="Worksheet",E[E.SelectRange=3]="SelectRange",E[E.Document=4]="Document",E[E.Slide=5]="Slide",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(L||{}),M=(E=>(E[E.SomeCollaborator=0]="SomeCollaborator",E[E.AllCollaborator=1]="AllCollaborator",E[E.OneSelf=2]="OneSelf",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(M||{});const UNIVER_SHEET_PERMISSION_PANEL="UNIVER_SHEET_PERMISSION_PANEL",UNIVER_SHEET_PERMISSION_USER_PART="UNIVER_SHEET_PERMISSION_USER_PART",UNIVER_SHEET_PERMISSION_BACKGROUND="UNIVER_SHEET_PERMISSION_BACKGROUND",UNIVER_SHEET_PERMISSION_USER_DIALOG="UNIVER_SHEET_PERMISSION_USER_DIALOG",UNIVER_SHEET_PERMISSION_DIALOG="UNIVER_SHEET_PERMISSION_DIALOG",UNIVER_SHEET_PERMISSION_USER_DIALOG_ID="UNIVER_SHEET_PERMISSION_USER_DIALOG_ID",UNIVER_SHEET_PERMISSION_DIALOG_ID="UNIVER_SHEET_PERMISSION_DIALOG_ID",subUnitPermissionTypeMap={[R.Copy]:"Copy",[R.SetCellStyle]:"SetCellStyle",[R.SetCellValue]:"SetCellValue",[R.SetRowStyle]:"SetRowStyle",[R.SetColumnStyle]:"SetColumnStyle",[R.InsertRow]:"InsertRow",[R.InsertColumn]:"InsertColumn",[R.InsertHyperlink]:"InsertHyperlink",[R.DeleteRow]:"DeleteRow",[R.DeleteColumn]:"DeleteColumn",[R.Sort]:"Sort",[R.Filter]:"Filter",[R.PivotTable]:"PivotTable",[R.EditExtraObject]:"EditExtraObject"},defaultWorksheetUnitActionList=[R.Copy,R.SetCellStyle,R.SetCellValue,R.SetRowStyle,R.SetColumnStyle,R.InsertRow,R.InsertColumn,R.InsertHyperlink,R.DeleteRow,R.DeleteColumn,R.Sort,R.Filter,R.PivotTable,R.EditExtraObject,R.View],permissionMenuIconKey="sheet-permission-menu-icon",permissionDeleteIconKey="sheet-permission-delete-icon",permissionEditIconKey="sheet-permission-edit-icon",permissionCheckIconKey="sheet-permission-check-icon",permissionLockIconKey="sheet-permission-lock-icon",DEFAULT_RANGE_RULE={unitId:"",subUnitId:"",permissionId:"",unitType:sheets.UnitObject.SelectRange,id:"",ranges:[],viewState:sheets.ViewStateEnum.OthersCanView,editState:sheets.EditStateEnum.OnlyMe},_SheetPermissionPanelModel=class _SheetPermissionPanelModel{constructor(){__publicField(this,"_rule",DEFAULT_RANGE_RULE);__publicField(this,"_visible",!1)}setVisible(v){this._visible=v}getVisible(){return this._visible}reset(){this.setVisible(!1)}};__name(_SheetPermissionPanelModel,"SheetPermissionPanelModel");let SheetPermissionPanelModel=_SheetPermissionPanelModel;const _SheetPermissionUserManagerService=class _SheetPermissionUserManagerService{constructor(){__publicField(this,"_userList",[]);__publicField(this,"_oldCollaboratorList",[]);__publicField(this,"_selectUserList",[]);__publicField(this,"_selectUserList$",new rxjs.BehaviorSubject(this._selectUserList));__publicField(this,"selectUserList$",this._selectUserList$.asObservable())}get userList(){return this._userList}setCanEditUserList(userList){this._userList=userList}reset(){this._userList=[],this._oldCollaboratorList=[],this._selectUserList=[],this._selectUserList$.next([])}get oldCollaboratorList(){return this._oldCollaboratorList}setOldCollaboratorList(userList){this._oldCollaboratorList=userList}get selectUserList(){return this._selectUserList}setSelectUserList(userList){this._selectUserList=userList,this._selectUserList$.next(userList)}};__name(_SheetPermissionUserManagerService,"SheetPermissionUserManagerService");let SheetPermissionUserManagerService=_SheetPermissionUserManagerService;const SheetPermissionOpenPanelOperation={type:core.CommandType.OPERATION,id:"sheet-permission.operation.openPanel",async handler(accessor,_params={}){const sidebarService=accessor.get(ui.ISidebarService),sheetPermissionPanelModel=accessor.get(SheetPermissionPanelModel),sheetPermissionUserManagerService=accessor.get(SheetPermissionUserManagerService),{showDetail=!0,fromSheetBar=!1,rule,oldRule}=_params,sidebarProps={header:{title:"permission.panel.title"},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail,fromSheetBar,rule,oldRule},width:330,onClose:__name(()=>{sheetPermissionPanelModel.reset(),sheetPermissionUserManagerService.reset()},"onClose")};return sheetPermissionPanelModel.setVisible(!0),sidebarService.open(sidebarProps),!0}},AddRangeProtectionFromToolbarCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-toolbar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}},AddRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-context-menu",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}},ViewSheetPermissionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-context-menu",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!1}),!0}},AddRangeProtectionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{fromSheetBar:!0,showDetail:!0}),!0}},ViewSheetPermissionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!1}),!0}},DeleteRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-protection-from-context-menu",async handler(accessor){var _a61;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId)return commandService.executeCommand(sheets.DeleteWorksheetProtectionCommand.id,{unitId,subUnitId,rule:worksheetRule});{const selectRange=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!selectRange)return!1;const rule=accessor.get(sheets.RangeProtectionRuleModel).getSubunitRuleList(unitId,subUnitId).find(item=>item.ranges.some(range=>core.Rectangle.intersects(range,selectRange)));if(rule){const redoMutationParam={unitId,subUnitId,ruleIds:[rule.id]};return await commandService.executeCommand(sheets.DeleteRangeProtectionMutation.id,redoMutationParam)&&undoRedoService.pushUndoRedo({unitID:unitId,redoMutations:[{id:sheets.DeleteRangeProtectionMutation.id,params:redoMutationParam}],undoMutations:[{id:sheets.AddRangeProtectionMutation.id,params:{unitId,subUnitId,rules:[rule]}}]}),!0}else return!1}}},SetRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-protection-from-context-menu",async handler(accessor){var _a61;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId){const oldRule={...worksheetRule,unitId,subUnitId,ranges:[]};return await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0,rule:core.Tools.deepClone(oldRule),oldRule:core.Tools.deepClone(oldRule)}),!0}else{const selectRange=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!selectRange)return!1;const rule=accessor.get(sheets.RangeProtectionRuleModel).getSubunitRuleList(unitId,subUnitId).find(item=>{var _a62;return(_a62=item==null?void 0:item.ranges)==null?void 0:_a62.some(range=>core.Rectangle.intersects(range,selectRange))});if(rule){const oldRule={...rule,unitId,subUnitId};return await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0,rule:core.Tools.deepClone(oldRule),oldRule:core.Tools.deepClone(oldRule)}),!0}else return!1}}},RemoveRowConfirmCommand={id:"sheet.command.remove-row-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a61;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService);let range=params==null?void 0:params.range;if(range||(range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range),!range)return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allRowRanges=worksheet.getVisibleRows();if(isAllRowsCovered(allRowRanges,[range])){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-row",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.deleteAllRowsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.RemoveRowCommand.id,{range}),!0},"handler")},RemoveColConfirmCommand={id:"sheet.command.remove-col-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a61;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService);let range=params==null?void 0:params.range;if(range||(range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range),!range)return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allColumnRanges=worksheet.getVisibleCols();if(isAllColumnsCovered(allColumnRanges,[range])){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-col",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.deleteAllColumnsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.RemoveColCommand.id,{range}),!0},"handler")},RemoveSheetConfirmCommand={id:"sheet.command.remove-sheet-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const{subUnitId}=params,confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-sheet",title:{title:localeService.t("sheetConfig.deleteSheet")},children:{title:localeService.t("sheetConfig.deleteSheetContent")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?(await commandService.executeCommand(sheets.RemoveSheetCommand.id,{subUnitId}),!0):!1},"handler")},ISheetBarService=core.createIdentifier("univer.sheetbar-service"),_SheetBarService=class _SheetBarService extends core.Disposable{constructor(){super();__publicField(this,"renameId$");__publicField(this,"removeId$");__publicField(this,"scroll$");__publicField(this,"scrollX$");__publicField(this,"addSheet$");__publicField(this,"_renameId$");__publicField(this,"_removeId$");__publicField(this,"_scroll$");__publicField(this,"_scrollX$");__publicField(this,"_addSheet$");__publicField(this,"_currentHandler",null);this._renameId$=new rxjs.Subject,this.renameId$=this._renameId$.asObservable(),this._removeId$=new rxjs.Subject,this.removeId$=this._removeId$.asObservable(),this._scroll$=new rxjs.Subject,this.scroll$=this._scroll$.asObservable(),this._scrollX$=new rxjs.Subject,this.scrollX$=this._scrollX$.asObservable(),this._addSheet$=new rxjs.Subject,this.addSheet$=this._addSheet$.asObservable()}setRenameId(renameId){this._renameId$.next(renameId)}setRemoveId(removeId){this._removeId$.next(removeId)}setScroll(state){this._scroll$.next(state)}setScrollX(x){this._scrollX$.next(x)}setAddSheet(index){this._addSheet$.next(index)}triggerSheetBarMenu(){var _a61;(_a61=this._currentHandler)==null||_a61.handleSheetBarMenu()}registerSheetBarMenuHandler(handler){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=handler,core.toDisposable(()=>{this._currentHandler=null})}};__name(_SheetBarService,"SheetBarService");let SheetBarService=_SheetBarService;const ShowMenuListCommand={id:"ui-sheet.command.show-menu-list",type:core.CommandType.OPERATION,handler:__name(async accessor=>(accessor.get(ISheetBarService).triggerSheetBarMenu(),!0),"handler")},DeleteWorksheetProtectionFormSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection-from-sheet-bar",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(_.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet(),unitId=workbook.getUnitId();if(!worksheet)return!1;const subUnitId=worksheet.getSheetId(),rule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(await commandService.executeCommand(sheets.DeleteWorksheetProtectionCommand.id,{unitId,subUnitId})){const redoMutations=[{id:sheets.DeleteWorksheetProtectionCommand.id,params:{unitId,subUnitId}}],undoMutations=[{id:sheets.AddWorksheetProtectionCommand.id,params:{unitId,rule}}];undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations})}return!0}},ChangeSheetProtectionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.change-sheet-protection-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand("sheet-permission.operation.openDialog"),!0}},SetActivateCellEditOperation={id:"sheet.operation.set-activate-cell-edit",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>(accessor.get(IEditorBridgeService).setEditCell(params),!0),"handler")},RenameSheetOperation={id:"sheet.operation.rename-sheet",type:core.CommandType.OPERATION,handler:__name(async(accessor,params)=>{const sheetBarService=accessor.get(ISheetBarService);return params&&sheetBarService.setRenameId(params.subUnitId),!0},"handler")},SheetPermissionOpenDialogOperation={type:core.CommandType.OPERATION,id:"sheet-permission.operation.openDialog",async handler(accessor,_params){const dialogService=accessor.get(ui.IDialogService);return dialogService.close("DESKTOP_FIND_REPLACE_DIALOG"),dialogService.open({id:UNIVER_SHEET_PERMISSION_DIALOG_ID,title:{title:"permission.dialog.allowedPermissionType"},children:{label:UNIVER_SHEET_PERMISSION_DIALOG},width:393,destroyOnClose:!0,onClose:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID),"onClose")}),!0}},DEFINED_NAME_CONTAINER="DefinedNameContainer",SidebarDefinedNameOperation={id:"sidebar.operation.defined-name",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const sidebarService=accessor.get(ui.ISidebarService);accessor.get(docsUi.IEditorService);const localeService=accessor.get(core.LocaleService),univerInstanceService=accessor.get(core.IUniverInstanceService);if(!sheets.getSheetCommandTarget(univerInstanceService))return!1;switch(params.value){case"open":sidebarService.open({id:DEFINED_NAME_CONTAINER,header:{title:localeService.t("definedName.featureTitle")},children:{label:DEFINED_NAME_CONTAINER},onClose:__name(()=>{},"onClose"),width:333});break;case"close":default:sidebarService.close();break}return!0},"handler")},BorderDashDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M0.98999 1.08218H-0.0100098V0.0821838H0.98999V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M5.78992 1.08218H2.78992V0.0821838H5.78992V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M7.58984 1.08218H8.58984V0.0821838H7.58984V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.9152 1.08218H13.9152V0.0821838H14.9152V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M16.7151 1.08218H19.7151V0.0821838H16.7151V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M22.515 1.08218H21.515V0.0821838H22.515V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.8405 1.08218H28.8405V0.0821838H27.8405V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.6404 1.08218H30.6404V0.0821838H33.6404V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M35.4403 1.08218H36.4403V0.0821838H35.4403V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.7657 1.08218H41.7657V0.0821838H42.7657V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.5657 1.08218H47.5657V0.0821838H44.5657V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M50.3656 1.08218H49.3656V0.0821838H50.3656V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.691 1.08218H56.691V0.0821838H55.691V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M61.491 1.08218H58.491V0.0821838H61.491V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.2909 1.08218H64.2909V0.0821838H63.2909V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M70.6163 1.08218H69.6163V0.0821838H70.6163V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M72.4163 1.08218H75.4163V0.0821838H72.4163V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M78.2162 1.08218H77.2162V0.0821838H78.2162V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M83.5416 1.08218H84.5416V0.0821838H83.5416V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.3416 1.08218H86.3416V0.0821838H89.3416V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.1415 1.08218H92.1415V0.0821838H91.1415V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.4669 1.08218H97.4669V0.0821838H98.4669V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.267 1.08218H103.267V0.0821838H100.267V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M106.067 1.08218H105.067V0.0821838H106.067V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.392 1.08218H112.392V0.0821838H111.392V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.192 1.08218H114.192V0.0821838H117.192V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.08218H119.992V0.0821838H118.992V1.08218Z",fill:"black"})]}),"BorderDashDot"),BorderDashDotDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 1.15771H0.98999V0.157715H-0.0100098V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M2.78992 1.15771H5.78992V0.157715H2.78992V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M8.58984 1.15771H7.58984V0.157715H8.58984V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M10.3899 1.15771H11.3899V0.157715H10.3899V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M19.0903 1.15771H18.0903V0.157715H19.0903V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M20.8903 1.15771H23.8903V0.157715H20.8903V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M26.6902 1.15771H25.6902V0.157715H26.6902V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M28.4902 1.15771H29.4902V0.157715H28.4902V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M37.1907 1.15771H36.1907V0.157715H37.1907V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.9906 1.15771H41.9906V0.157715H38.9906V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.7905 1.15771H43.7905V0.157715H44.7905V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M46.5906 1.15771H47.5906V0.157715H46.5906V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.291 1.15771H54.291V0.157715H55.291V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M57.0909 1.15771H60.0909V0.157715H57.0909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M62.8909 1.15771H61.8909V0.157715H62.8909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.6909 1.15771H65.6909V0.157715H64.6909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M73.3914 1.15771H72.3914V0.157715H73.3914V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.1913 1.15771H78.1913V0.157715H75.1913V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.9912 1.15771H79.9912V0.157715H80.9912V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M82.7913 1.15771H83.7913V0.157715H82.7913V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.4917 1.15771H90.4917V0.157715H91.4917V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M93.2916 1.15771H96.2916V0.157715H93.2916V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M99.0916 1.15771H98.0916V0.157715H99.0916V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.892 1.15771H101.892V0.157715H100.892V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M109.592 1.15771H108.592V0.157715H109.592V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.392 1.15771H114.392V0.157715H111.392V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.192 1.15771H116.192V0.157715H117.192V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.15771H119.992V0.157715H118.992V1.15771Z",fill:"black"})]}),"BorderDashDotDot"),BorderDashed=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00842285 1.22449H2.99158V0.224487H-0.00842285V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.14941 1.22449H9.14941V0.224487H6.14941V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M15.3073 1.22449H12.3073V0.224487H15.3073V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M18.4651 1.22449H21.4651V0.224487H18.4651V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.6229 1.22449H24.6229V0.224487H27.6229V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.7808 1.22449H33.7808V0.224487H30.7808V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.9386 1.22449H36.9386V0.224487H39.9386V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M43.0964 1.22449H46.0964V0.224487H43.0964V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.2543 1.22449H49.2543V0.224487H52.2543V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.4121 1.22449H58.4121V0.224487H55.4121V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.5699 1.22449H61.5699V0.224487H64.5699V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.7278 1.22449H70.7278V0.224487H67.7278V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M76.8856 1.22449H73.8856V0.224487H76.8856V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.0435 1.22449H83.0435V0.224487H80.0435V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.2013 1.22449H86.2013V0.224487H89.2013V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M92.3591 1.22449H95.3591V0.224487H92.3591V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M101.517 1.22449H98.517V0.224487H101.517V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M104.675 1.22449H107.675V0.224487H104.675V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M113.833 1.22449H110.833V0.224487H113.833V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M116.99 1.22449H119.99V0.224487H116.99V1.22449Z",fill:"black"})]}),"BorderDashed"),BorderHair=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00976562 1.65707H0.990234V0.657074H-0.00976562V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M2.32361 1.65707H3.32361V0.657074H2.32361V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M5.65698 1.65707H4.65698V0.657074H5.65698V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.99036 1.65707H7.99036V0.657074H6.99036V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M10.3237 1.65707H9.32373V0.657074H10.3237V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M11.6571 1.65707H12.6571V0.657074H11.6571V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.9905 1.65707H13.9905V0.657074H14.9905V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M16.3239 1.65707H17.3239V0.657074H16.3239V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M19.6572 1.65707H18.6572V0.657074H19.6572V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M20.9906 1.65707H21.9906V0.657074H20.9906V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M24.324 1.65707H23.324V0.657074H24.324V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M25.6573 1.65707H26.6573V0.657074H25.6573V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M28.9907 1.65707H27.9907V0.657074H28.9907V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.3241 1.65707H31.3241V0.657074H30.3241V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.6575 1.65707H32.6575V0.657074H33.6575V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M34.9908 1.65707H35.9908V0.657074H34.9908V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.3242 1.65707H37.3242V0.657074H38.3242V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.6576 1.65707H40.6576V0.657074H39.6576V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.991 1.65707H41.991V0.657074H42.991V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.3243 1.65707H45.3243V0.657074H44.3243V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M47.6577 1.65707H46.6577V0.657074H47.6577V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M48.9911 1.65707H49.9911V0.657074H48.9911V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.3245 1.65707H51.3245V0.657074H52.3245V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M53.6578 1.65707H54.6578V0.657074H53.6578V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M56.9912 1.65707H55.9912V0.657074H56.9912V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M58.3246 1.65707H59.3246V0.657074H58.3246V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M61.658 1.65707H60.658V0.657074H61.658V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M62.9913 1.65707H63.9913V0.657074H62.9913V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M66.3247 1.65707H65.3247V0.657074H66.3247V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.6581 1.65707H68.6581V0.657074H67.6581V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M70.9915 1.65707H69.9915V0.657074H70.9915V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M72.3248 1.65707H73.3248V0.657074H72.3248V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.6582 1.65707H74.6582V0.657074H75.6582V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M76.9916 1.65707H77.9916V0.657074H76.9916V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.325 1.65707H79.325V0.657074H80.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M81.6583 1.65707H82.6583V0.657074H81.6583V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M84.9917 1.65707H83.9917V0.657074H84.9917V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M86.3251 1.65707H87.3251V0.657074H86.3251V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.6584 1.65707H88.6584V0.657074H89.6584V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M90.9918 1.65707H91.9918V0.657074H90.9918V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M94.3252 1.65707H93.3252V0.657074H94.3252V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M95.6586 1.65707H96.6586V0.657074H95.6586V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.9919 1.65707H97.9919V0.657074H98.9919V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.325 1.65707H101.325V0.657074H100.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.659 1.65707H102.659V0.657074H103.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M104.992 1.65707H105.992V0.657074H104.992V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M108.325 1.65707H107.325V0.657074H108.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M109.659 1.65707H110.659V0.657074H109.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M112.992 1.65707H111.992V0.657074H112.992V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M114.325 1.65707H115.325V0.657074H114.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.659 1.65707H116.659V0.657074H117.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.65707H119.992V0.657074H118.992V1.65707Z",fill:"black"})]}),"BorderHair"),BorderMedium=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 2.42035H-0.0090332V0.420349H119.991V2.42035Z",fill:"black"})}),"BorderMedium"),BorderMediumDashDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 2.47614H1.98999V0.476135H-0.0100098V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M3.99014 2.47614H9.99014V0.476135H3.99014V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M13.9901 2.47614H11.9901V0.476135H13.9901V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M21.1904 2.47614H23.1904V0.476135H21.1904V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M31.1906 2.47614H25.1906V0.476135H31.1906V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.1906 2.47614H35.1906V0.476135H33.1906V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.3909 2.47614H42.3909V0.476135H44.3909V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M46.391 2.47614H52.391V0.476135H46.391V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M56.391 2.47614H54.391V0.476135H56.391V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.5913 2.47614H65.5913V0.476135H63.5913V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M73.5915 2.47614H67.5915V0.476135H73.5915V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.5915 2.47614H77.5915V0.476135H75.5915V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M86.7917 2.47614H84.7917V0.476135H86.7917V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M88.7919 2.47614H94.7919V0.476135H88.7919V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.7919 2.47614H96.7919V0.476135H98.7919V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M105.992 2.47614H107.992V0.476135H105.992V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.992 2.47614H109.992V0.476135H115.992V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.992 2.47614H119.992V0.476135H117.992V2.47614Z",fill:"black"})]}),"BorderMediumDashDot"),BorderMediumDashDotDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 2.00415H1.98999V0.00415039H-0.0100098V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M3.99014 2.00415H9.99014V0.00415039H3.99014V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M13.9901 2.00415H11.9901V0.00415039H13.9901V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M15.9901 2.00415H17.9901V0.00415039H15.9901V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.4905 2.00415H25.4905V0.00415039H27.4905V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M29.4906 2.00415H35.4906V0.00415039H29.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.4906 2.00415H37.4906V0.00415039H39.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M41.4906 2.00415H43.4906V0.00415039H41.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.991 2.00415H50.991V0.00415039H52.991V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M54.9911 2.00415H60.9911V0.00415039H54.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.9911 2.00415H62.9911V0.00415039H64.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M66.9911 2.00415H68.9911V0.00415039H66.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M78.4915 2.00415H76.4915V0.00415039H78.4915V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.4916 2.00415H86.4916V0.00415039H80.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M90.4916 2.00415H88.4916V0.00415039H90.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M92.4916 2.00415H94.4916V0.00415039H92.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.992 2.00415H101.992V0.00415039H103.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M105.992 2.00415H111.992V0.00415039H105.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.992 2.00415H113.992V0.00415039H115.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.992 2.00415H119.992V0.00415039H117.992V2.00415Z",fill:"black"})]}),"BorderMediumDashDotDot"),BorderMediumDashed=__name(()=>jsxRuntime.jsxs("svg",{width:"118",height:"3",viewBox:"0 0 118 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00854492 2.94815H1.99146V0.948151H-0.00854492V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.09668 2.94815H8.09668V0.948151H6.09668V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.2019 2.94815H12.2019V0.948151H14.2019V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M18.3071 2.94815H20.3071V0.948151H18.3071V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M26.4124 2.94815H24.4124V0.948151H26.4124V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.5176 2.94815H32.5176V0.948151H30.5176V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.6228 2.94815H36.6228V0.948151H38.6228V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.728 2.94815H44.728V0.948151H42.728V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M50.8333 2.94815H48.8333V0.948151H50.8333V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M54.9385 2.94815H56.9385V0.948151H54.9385V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.0437 2.94815H61.0437V0.948151H63.0437V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.1489 2.94815H69.1489V0.948151H67.1489V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.2542 2.94815H73.2542V0.948151H75.2542V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M79.3594 2.94815H81.3594V0.948151H79.3594V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M87.4645 2.94815H85.4645V0.948151H87.4645V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.5697 2.94815H93.5697V0.948151H91.5697V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M99.6749 2.94815H97.6749V0.948151H99.6749V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.78 2.94815H105.78V0.948151H103.78V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.885 2.94815H109.885V0.948151H111.885V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.991 2.94815H117.991V0.948151H115.991V2.94815Z",fill:"black"})]}),"BorderMediumDashed"),BorderThick=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"4",viewBox:"0 0 120 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 3.86215H-0.0090332V0.862152H119.991V3.86215Z",fill:"black"})}),"BorderThick"),BorderThin=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 1.15668H-0.0090332V0.156677H119.991V1.15668Z",fill:"black"})}),"BorderThin");function BorderLine(props){const{type=core.BorderStyleTypes.THIN}=props;switch(type){case core.BorderStyleTypes.DASH_DOT:return jsxRuntime.jsx(BorderDashDot,{});case core.BorderStyleTypes.DASH_DOT_DOT:return jsxRuntime.jsx(BorderDashDotDot,{});case core.BorderStyleTypes.DASHED:return jsxRuntime.jsx(BorderDashed,{});case core.BorderStyleTypes.HAIR:return jsxRuntime.jsx(BorderHair,{});case core.BorderStyleTypes.MEDIUM:return jsxRuntime.jsx(BorderMedium,{});case core.BorderStyleTypes.MEDIUM_DASH_DOT:return jsxRuntime.jsx(BorderMediumDashDot,{});case core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT:return jsxRuntime.jsx(BorderMediumDashDotDot,{});case core.BorderStyleTypes.MEDIUM_DASHED:return jsxRuntime.jsx(BorderMediumDashed,{});case core.BorderStyleTypes.THICK:return jsxRuntime.jsx(BorderThick,{});case core.BorderStyleTypes.THIN:return jsxRuntime.jsx(BorderThin,{});default:return jsxRuntime.jsx(BorderThin,{})}}__name(BorderLine,"BorderLine");const uiPluginSheetsBorderPanel="univer-ui-plugin-sheets-border-panel",uiPluginSheetsBorderPanelPosition="univer-ui-plugin-sheets-border-panel-position",uiPluginSheetsBorderPanelPositionItem="univer-ui-plugin-sheets-border-panel-position-item",uiPluginSheetsBorderPanelPositionItemActive="univer-ui-plugin-sheets-border-panel-position-item-active",uiPluginSheetsBorderPanelStyles="univer-ui-plugin-sheets-border-panel-styles",uiPluginSheetsBorderPanelBoard="univer-ui-plugin-sheets-border-panel-board",uiPluginSheetsBorderPanelButton="univer-ui-plugin-sheets-border-panel-button",uiPluginSheetsBorderPanelMoreIcon="univer-ui-plugin-sheets-border-panel-more-icon",styles$j={uiPluginSheetsBorderPanel,uiPluginSheetsBorderPanelPosition,uiPluginSheetsBorderPanelPositionItem,uiPluginSheetsBorderPanelPositionItemActive,uiPluginSheetsBorderPanelStyles,uiPluginSheetsBorderPanelBoard,uiPluginSheetsBorderPanelButton,uiPluginSheetsBorderPanelMoreIcon},BORDER_PANEL_COMPONENT=`${COMPONENT_PREFIX}_BORDER_PANEL_COMPONENT`,BORDER_LINE_CHILDREN=[{label:"borderLine.borderTop",icon:"UpBorder",value:"top"},{label:"borderLine.borderBottom",icon:"DownBorder",value:"bottom"},{label:"borderLine.borderLeft",icon:"LeftBorder",value:"left"},{label:"borderLine.borderRight",icon:"RightBorder",value:"right"},{label:"borderLine.borderNone",icon:"NoBorderSingle",value:"none"},{label:"borderLine.borderAll",icon:"AllBorderSingle",value:"all"},{label:"borderLine.borderOutside",icon:"OuterBorder",value:"outside"},{label:"borderLine.borderInside",icon:"InnerBorder",value:"inside"},{label:"borderLine.borderHorizontal",icon:"HorizontalBorder",value:"horizontal"},{label:"borderLine.borderVertical",icon:"VerticalBorder",value:"vertical"},{label:"borderLine.borderTlbr",icon:"BackSlashSingle",value:"tlbr"},{label:"borderLine.borderTlbcTlmr",icon:"LeftDoubleDiagonalSingle",value:"tlbc_tlmr"},{label:"borderLine.borderTlbrTlbcTlmr",icon:"LeftTridiagonalSingle",value:"tlbr_tlbc_tlmr"},{label:"borderLine.borderBlTr",icon:"SlashSingle",value:"bltr"},{label:"borderLine.borderMltrBctr",icon:"RightDoubleDiagonalSingle",value:"mltr_bctr"}],BORDER_SIZE_CHILDREN=[{label:core.BorderStyleTypes.THIN,value:core.BorderStyleTypes.THIN},{label:core.BorderStyleTypes.HAIR,value:core.BorderStyleTypes.HAIR},{label:core.BorderStyleTypes.DOTTED,value:core.BorderStyleTypes.DOTTED},{label:core.BorderStyleTypes.DASHED,value:core.BorderStyleTypes.DASHED},{label:core.BorderStyleTypes.DASH_DOT,value:core.BorderStyleTypes.DASH_DOT},{label:core.BorderStyleTypes.DASH_DOT_DOT,value:core.BorderStyleTypes.DASH_DOT_DOT},{label:core.BorderStyleTypes.MEDIUM,value:core.BorderStyleTypes.MEDIUM},{label:core.BorderStyleTypes.MEDIUM_DASHED,value:core.BorderStyleTypes.MEDIUM_DASHED},{label:core.BorderStyleTypes.MEDIUM_DASH_DOT,value:core.BorderStyleTypes.MEDIUM_DASH_DOT},{label:core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT,value:core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT},{label:core.BorderStyleTypes.THICK,value:core.BorderStyleTypes.THICK}];function BorderPanel(props){var _a61;const componentManager=core.useDependency(ui.ComponentManager),borderStyleManagerService=core.useDependency(sheets.BorderStyleManagerService),{onChange,value}=props;function handleClick(v,type){onChange==null||onChange({...value,[type]:v})}__name(handleClick,"handleClick");function renderIcon(icon){const Icon=componentManager.get(icon);return Icon&&jsxRuntime.jsx(Icon,{extend:{colorChannel1:"rgb(var(--primary-color))"}})}__name(renderIcon,"renderIcon");function stopPropagation(e){e.stopPropagation()}return __name(stopPropagation,"stopPropagation"),jsxRuntime.jsxs("section",{className:styles$j.uiPluginSheetsBorderPanel,children:[jsxRuntime.jsx("div",{className:styles$j.uiPluginSheetsBorderPanelPosition,children:BORDER_LINE_CHILDREN.map(item=>jsxRuntime.jsx("div",{className:borderStyleManagerService.getBorderInfo().type===item.value?`
|
|
10
|
+
<tbody>${rowContents.join("")}</tbody></table>`}};__name(_USMToHtmlService,"USMToHtmlService");let USMToHtmlService=_USMToHtmlService;const getRepeatRange=__name((sourceRange,targetRange,isStrictMode=!1)=>{const getRowLength=__name(range=>range.endRow-range.startRow+1,"getRowLength"),getColLength=__name(range=>range.endColumn-range.startColumn+1,"getColLength"),rowMod=getRowLength(targetRange)%getRowLength(sourceRange),colMod=getColLength(targetRange)%getColLength(sourceRange),repeatRelativeRange={startRow:0,endRow:getRowLength(sourceRange)-1,startColumn:0,endColumn:getColLength(sourceRange)-1},repeatRow=Math.floor(getRowLength(targetRange)/getRowLength(sourceRange)),repeatCol=Math.floor(getColLength(targetRange)/getColLength(sourceRange)),repeatList=[];if(!rowMod&&!colMod)for(let countRow=1;countRow<=repeatRow;countRow++)for(let countCol=1;countCol<=repeatCol;countCol++){const row=getRowLength(sourceRange)*(countRow-1),col=getColLength(sourceRange)*(countCol-1),startRange={startRow:row+targetRange.startRow,endRow:row+targetRange.startRow,startColumn:col+targetRange.startColumn,endColumn:col+targetRange.startColumn};repeatList.push({repeatRelativeRange,startRange})}else if(!rowMod&&colMod&&!isStrictMode)for(let countRow=1;countRow<=repeatRow;countRow++){const row=getRowLength(sourceRange)*(countRow-1),col=0,startRange={startRow:row+targetRange.startRow,endRow:row+targetRange.startRow,startColumn:col+targetRange.startColumn,endColumn:col+targetRange.startColumn};repeatList.push({repeatRelativeRange,startRange})}else if(rowMod&&!colMod&&!isStrictMode)for(let countCol=1;countCol<=repeatCol;countCol++){const col=getColLength(sourceRange)*(countCol-1),startRange={startRow:0+targetRange.startRow,endRow:0+targetRange.startRow,startColumn:col+targetRange.startColumn,endColumn:col+targetRange.startColumn};repeatList.push({repeatRelativeRange,startRange})}else{const startRange={startRow:targetRange.startRow,endRow:targetRange.startRow,startColumn:targetRange.startColumn,endColumn:targetRange.startColumn};repeatList.push({startRange,repeatRelativeRange})}return repeatList},"getRepeatRange");function htmlIsFromExcel(html){return html?[/<td[^>]*class=".*?xl.*?"[^>]*>/i,/xmlns:x="urn:schemas-microsoft-com:office:excel"/i,/ProgId="Excel.Sheet"/i,/xmlns:o="urn:schemas-microsoft-com:office:office"/i,/@mso-|mso-excel/i,/<x:ExcelWorkbook>/i].some(marker=>marker.test(html)):!1}__name(htmlIsFromExcel,"htmlIsFromExcel");function mergeCellValues(...cellValues){if(cellValues.length===1)return cellValues[0];const newMatrix=new core.ObjectMatrix;return cellValues.forEach(cellValue=>{cellValue&&new core.ObjectMatrix(cellValue).forValue((row,col,value)=>{newMatrix.setValue(row,col,{...newMatrix.getValue(row,col),...value})})}),newMatrix.getMatrix()}__name(mergeCellValues,"mergeCellValues");function getRangeValuesMergeable(m1,m2){return m1.id===m2.id&&m1.params.unitId===m2.params.unitId&&m1.params.subUnitId===m2.params.subUnitId}__name(getRangeValuesMergeable,"getRangeValuesMergeable");function mergeSetRangeValues(mutations){const newMutations=[];for(let i=0;i<mutations.length;){let cursor=1;if(mutations[i].id===sheets.SetRangeValuesMutation.id){const current=mutations[i],toMerge=[current];for(;i+cursor<mutations.length&&getRangeValuesMergeable(current,mutations[i+cursor]);)toMerge.push(mutations[i+cursor]),cursor+=1;const merged=mergeCellValues(...toMerge.map(m=>m.params.cellValue||{}));newMutations.push({...current,params:{...current.params,cellValue:merged}})}else newMutations.push(mutations[i]);i+=cursor}return newMutations}__name(mergeSetRangeValues,"mergeSetRangeValues");function rangeIntersectWithDiscreteRange(range,discrete){const{startRow,endRow,startColumn,endColumn}=range;for(let i=startRow;i<=endRow;i++)for(let j=startColumn;j<=endColumn;j++)if(discrete.rows.includes(i)&&discrete.cols.includes(j))return!0}__name(rangeIntersectWithDiscreteRange,"rangeIntersectWithDiscreteRange");function discreteRangeContainsRange(discrete,range){const{startRow,endRow,startColumn,endColumn}=range;for(let i=startRow;i<=endRow;i++)if(!discrete.rows.includes(i))return!1;for(let j=startColumn;j<=endColumn;j++)if(!discrete.cols.includes(j))return!1;return!0}__name(discreteRangeContainsRange,"discreteRangeContainsRange");function convertTextToTable(text){const rows=text.trim().split(`
|
|
11
|
+
`);let html="<table>";return rows.forEach(row=>{const columns=row.split(" ");html+="<tr>",columns.forEach(column=>{html+=`<td>${column}</td>`}),html+="</tr>"}),html+="</table>",html}__name(convertTextToTable,"convertTextToTable");var __defProp$H=Object.defineProperty,__getOwnPropDesc$H=Object.getOwnPropertyDescriptor,__decorateClass$H=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$H(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$H(target,key,result),result},"__decorateClass$H"),__decorateParam$H=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$H");const PREDEFINED_HOOK_NAME={DEFAULT_COPY:"default-copy",DEFAULT_PASTE:"default-paste",SPECIAL_PASTE_VALUE:"special-paste-value",SPECIAL_PASTE_FORMAT:"special-paste-format",SPECIAL_PASTE_COL_WIDTH:"special-paste-col-width",SPECIAL_PASTE_BESIDES_BORDER:"special-paste-besides-border",SPECIAL_PASTE_FORMULA:"special-paste-formula"},IMAGE_MIME_TO_EXTENSION={[ui.FILE_PNG_CLIPBOARD_MIME_TYPE]:"png",[ui.FILE__JPEG_CLIPBOARD_MIME_TYPE]:"jpg",[ui.FILE__WEBP_CLIPBOARD_MIME_TYPE]:"webp",[ui.FILE__BMP_CLIPBOARD_MIME_TYPE]:"bmp"};HtmlToUSMService.use(WordPastePlugin);HtmlToUSMService.use(LarkPastePlugin);HtmlToUSMService.use(UniverPastePlugin);const ISheetClipboardService=core.createIdentifier("sheet.clipboard-service");var _a15;exports.SheetClipboardService=(_a15=class extends core.Disposable{constructor(_logService,_univerInstanceService,_selectionManagerService,_clipboardInterfaceService,_undoRedoService,_commandService,_markSelectionService,_notificationService,_platformService,_renderManagerService,_themeService,_localeService,_errorService,_injector){super();__publicField(this,"_clipboardHooks",[]);__publicField(this,"_clipboardHooks$",new rxjs.BehaviorSubject([]));__publicField(this,"clipboardHooks$",this._clipboardHooks$.asObservable());__publicField(this,"_htmlToUSM");__publicField(this,"_usmToHtml");__publicField(this,"_copyContentCache");__publicField(this,"_copyMarkId",null);__publicField(this,"_pasteOptionsCache$",new rxjs.BehaviorSubject(null));__publicField(this,"pasteOptionsCache$",this._pasteOptionsCache$.asObservable());__publicField(this,"_showMenu$",new rxjs.Subject);__publicField(this,"showMenu$",this._showMenu$.asObservable());this._logService=_logService,this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._clipboardInterfaceService=_clipboardInterfaceService,this._undoRedoService=_undoRedoService,this._commandService=_commandService,this._markSelectionService=_markSelectionService,this._notificationService=_notificationService,this._platformService=_platformService,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._localeService=_localeService,this._errorService=_errorService,this._injector=_injector,this._htmlToUSM=new HtmlToUSMService({getCurrentSkeleton:__name(()=>{var _a61;return(_a61=this._renderManagerService.withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:_a61.getCurrent()},"getCurrentSkeleton")}),this._usmToHtml=new USMToHtmlService,this._copyContentCache=new CopyContentCache,this.disposeWithMe(this._htmlToUSM),this._initUnitDisposed()}setShowMenu(show){this._showMenu$.next(show)}copyContentCache(){return this._copyContentCache}generateCopyContent(workbookId,worksheetId,range){return this._generateCopyContent(workbookId,worksheetId,range,this._clipboardHooks)}async copy(copyType=COPY_TYPE.COPY){const selection=this._selectionManagerService.getCurrentLastSelection();if(!selection)return!1;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)return!1;const hooks=this._clipboardHooks,workbookId=workbook.getUnitId(),worksheetId=worksheet.getSheetId();hooks.forEach(h=>{var _a61;return(_a61=h.onBeforeCopy)==null?void 0:_a61.call(h,workbookId,worksheetId,selection.range,copyType)});const copyContent=this.generateCopyContent(workbookId,worksheetId,selection.range);if(hooks.forEach(h=>{var _a61;return(_a61=h.onAfterCopy)==null?void 0:_a61.call(h)}),!copyContent)return!1;const{html,plain,matrixFragment,copyId,discreteRange}=copyContent;this._copyContentCache.set(copyId,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),range:discreteRange,matrix:matrixFragment,copyType}),await this._clipboardInterfaceService.write(plain,html),this._markSelectionService.removeAllShapes();const style=createCopyPasteSelectionStyle(this._themeService);return this._copyMarkId=this._markSelectionService.addShape({...selection,style}),!0}async cut(){return this.copy(COPY_TYPE.CUT)}async paste(item,pasteType=PREDEFINED_HOOK_NAME.DEFAULT_PASTE){const types=item.types,text=types.indexOf(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"",html=types.indexOf(ui.HTML_CLIPBOARD_MIME_TYPE)!==-1?await item.getType(ui.HTML_CLIPBOARD_MIME_TYPE).then(blob=>blob&&blob.text()):"",isFromExcel=htmlIsFromExcel(html),imageIndex=types.findIndex(type=>ui.imageMimeTypeSet.has(type));if(imageIndex!==-1&&!isFromExcel){const imageMimeType=types[imageIndex],imageBlob=await item.getType(imageMimeType);if(imageBlob){const file=new File([imageBlob],`clipboard-image.${IMAGE_MIME_TO_EXTENSION[imageMimeType]}`,{type:imageMimeType});return this._pasteFiles([file],pasteType)}}return html?(this._platformService.isWindows&&isFromExcel&&this._notificationService.show({type:"warning",title:this._localeService.t("clipboard.shortCutNotify.title"),content:this._localeService.t("clipboard.shortCutNotify.useShortCutInstead")}),this._pasteHTML(html,pasteType)):text?this._pastePlainText(text,pasteType):(this._logService.error("[SheetClipboardService]","No valid data on clipboard"),!1)}async legacyPaste(html,text,files){const isFromExcel=htmlIsFromExcel(html!=null?html:"");return files&&!isFromExcel?this._pasteFiles(files,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):html?this._pasteHTML(html,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):text?/[\n\t]/.test(text)?this._pasteHTML(convertTextToTable(text),PREDEFINED_HOOK_NAME.DEFAULT_PASTE):this._pastePlainText(text,PREDEFINED_HOOK_NAME.DEFAULT_PASTE):this._pasteUnrecognized()}rePasteWithPasteType(type){const pasteOptionsCache=this._pasteOptionsCache$.getValue();if(!pasteOptionsCache)return!1;const undoRedoService=this._injector.get(core.IUndoRedoService),element2=undoRedoService.pitchTopUndoElement();element2&&core.sequenceExecute(element2.undoMutations,this._commandService)&&undoRedoService.popUndoToRedo();const{cellMatrix,rowProperties=[],colProperties=[],source,target}=pasteOptionsCache;return this._pasteUSM({cellMatrix,colProperties,rowProperties},target,PREDEFINED_HOOK_NAME[type],source),!0}updatePasteOptionsCache(cache){this._pasteOptionsCache$.next(cache)}addClipboardHook(hook){if(this._clipboardHooks.findIndex(h=>h.id===hook.id)!==-1)return this._logService.error("[SheetClipboardService]","hook already exists",hook.id),{dispose:__name(()=>{},"dispose")};const insertIndex=this._clipboardHooks.findIndex(existingHook=>{const existingHookPriority=existingHook.priority||0;return(hook.priority||0)<existingHookPriority});return this._clipboardHooks.splice(insertIndex!==-1?insertIndex:this._clipboardHooks.length,0,hook),this._notifyClipboardHook(),core.toDisposable(()=>{const index=this._clipboardHooks.indexOf(hook);index>-1&&(this._clipboardHooks.splice(index,1),this._notifyClipboardHook())})}getClipboardHooks(){return this._clipboardHooks}_generateCopyContent(unitId,subUnitId,range,hooks){const workbook=this._univerInstanceService.getUniverSheetInstance(unitId),worksheet=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId);if(!workbook||!worksheet)return null;const filteredRows=hooks.reduce((acc,cur)=>{var _a61;const rows=(_a61=cur.getFilteredOutRows)==null?void 0:_a61.call(cur,range);return rows==null||rows.forEach(r2=>acc.add(r2)),acc},new Set),{startColumn,startRow,endColumn,endRow}=range,matrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn,core.CellModeEnum.Both),matrixFragment=new core.ObjectMatrix;let rowIndex=startRow;const plainMatrix=new core.ObjectMatrix,discreteRange={rows:[],cols:[]};for(let r2=startRow;r2<=endRow;r2++)if(!filteredRows.has(r2)){discreteRange.rows.push(r2);for(let c=startColumn;c<=endColumn;c++){const cellData=matrix.getValue(r2,c);if(cellData){const newCellData=core.Tools.deepClone(cellData);plainMatrix.setValue(rowIndex-startRow,c-startColumn,{...getEmptyCell(),...newCellData}),delete newCellData.displayV,matrixFragment.setValue(rowIndex-startRow,c-startColumn,{...getEmptyCell(),...newCellData})}else plainMatrix.setValue(rowIndex-startRow,c-startColumn,getEmptyCell()),matrixFragment.setValue(rowIndex-startRow,c-startColumn,getEmptyCell()),matrix.setValue(r2,c,getEmptyCell())}rowIndex+=1}for(let c=startColumn;c<=endColumn;c++)discreteRange.cols.push(c);let html=this._usmToHtml.convert(matrix,discreteRange,hooks);const plain=getMatrixPlainText(plainMatrix),copyId=genId();return html=html.replace(/(<[a-z]+)/,(_p0,p1)=>`${p1} data-copy-id="${copyId}"`),{copyId,plain,html,matrixFragment,discreteRange}}_notifyClipboardHook(){this._clipboardHooks$.next(this._clipboardHooks)}async _executePaste(generateMutations){const target=this._getPastingTarget();if(!target.subUnitId||!target.selection)return!1;const range=this._injector.invoke(accessor=>rangeToDiscreteRange(target.selection.range,accessor,target.unitId,target.subUnitId));if(!range)return!1;const{unitId,subUnitId}=target,hooks=this._clipboardHooks,enabledHooks=[];if(hooks.some(h=>{var _a61;return enabledHooks.push(h)&&((_a61=h.onBeforePaste)==null?void 0:_a61.call(h,{unitId,subUnitId,range}))===!1}))return enabledHooks.forEach(h=>{var _a61;return(_a61=h.onAfterPaste)==null?void 0:_a61.call(h,!1)}),!1;const redoMutationsInfo=[],undoMutationsInfo=[];enabledHooks.forEach(h=>{const contentReturn=generateMutations(h,{unitId,subUnitId,range});contentReturn&&(redoMutationsInfo.push(...contentReturn.redos),undoMutationsInfo.push(...contentReturn.undos))});const result=redoMutationsInfo.every(m=>this._commandService.executeCommand(m.id,m.params));return result&&this._undoRedoService.pushUndoRedo({unitID:this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId(),undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),result}async _pasteFiles(files,pasteType){return this._executePaste((h,payload)=>{var _a61;return(_a61=h.onPasteFiles)==null?void 0:_a61.call(h,payload,files,{pasteType})})}async _pastePlainText(text,pasteType){return this._executePaste((h,payload)=>{var _a61;return(_a61=h.onPastePlainText)==null?void 0:_a61.call(h,payload,text,{pasteType})})}_pasteUnrecognized(){return this._executePaste((h,payload)=>{var _a61;return(_a61=h.onPasteUnrecognized)==null?void 0:_a61.call(h,payload)})}async _pasteHTML(html,pasteType){const copyId=extractId(html);return copyId&&this._copyContentCache.get(copyId)?this._pasteInternal(copyId,pasteType):this._pasteExternal(html,pasteType)}async _pasteExternal(html,pasteType){var _a61;const{rowProperties,colProperties,cellMatrix}=this._htmlToUSM.convert(html);if(!cellMatrix)return!1;const pasteTarget=this._getPastedRange(cellMatrix);if(!pasteTarget)return!1;const worksheet=(_a61=this._univerInstanceService.getUniverSheetInstance(pasteTarget.unitId))==null?void 0:_a61.getSheetBySheetId(pasteTarget.subUnitId);if(!worksheet)return!1;const mergeData=worksheet==null?void 0:worksheet.getMergeData();return mergeData.length&&mergeData.some(m=>rangeIntersectWithDiscreteRange(m,pasteTarget.pastedRange)&&!discreteRangeContainsRange(pasteTarget.pastedRange,m))?(this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1):this._pasteUSM({rowProperties,colProperties,cellMatrix},pasteTarget,pasteType)}async _pasteInternal(copyId,pasteType){var _a61,_b;const cachedData=core.Tools.deepClone(this._copyContentCache.get(copyId)),{range,matrix:cellMatrix,unitId:copyUnitId,subUnitId:copySubUnitId}=cachedData||{};if(!cellMatrix||!cachedData||!range||!copyUnitId||!copySubUnitId||!cellMatrix||!cachedData)return!1;const styles2=(_a61=this._univerInstanceService.getUniverSheetInstance(copyUnitId))==null?void 0:_a61.getStyles();cellMatrix.forValue((row,col,value)=>{if(typeof value.s=="string"){const newValue=core.Tools.deepClone(value);newValue.s=styles2==null?void 0:styles2.getStyleByCell(value),cellMatrix.setValue(row,col,newValue)}if(value.colSpan||value.rowSpan)for(let rStart=0;rStart<value.rowSpan;rStart++)for(let cStart=0;cStart<value.colSpan;cStart++){if(rStart===0&&cStart===0)continue;const r2=row+rStart,c=col+cStart;cellMatrix.setValue(r2,c,{s:styles2==null?void 0:styles2.getStyleByCell(value)})}});const pasteTarget=this._getPastedRange(cellMatrix);if(!pasteTarget)return!1;const pasteToWorksheet=(_b=this._univerInstanceService.getUniverSheetInstance(pasteTarget.unitId))==null?void 0:_b.getSheetBySheetId(pasteTarget.subUnitId);if(!pasteToWorksheet)return!1;const mergeData=pasteToWorksheet==null?void 0:pasteToWorksheet.getMergeData();if(mergeData&&mergeData.some(m=>rangeIntersectWithDiscreteRange(m,pasteTarget.pastedRange)&&!discreteRangeContainsRange(pasteTarget.pastedRange,m)))return this._errorService.emit(this._localeService.t("clipboard.paste.overlappingMergedCells")),!1;const pasteFromWorkbook=this._univerInstanceService.getUnit(copyUnitId);if(!pasteFromWorkbook)return!1;const pasteFromWorksheet=pasteFromWorkbook.getSheetBySheetId(copySubUnitId);if(!pasteFromWorksheet)return!1;const colManager=pasteFromWorksheet.getColumnManager(),rowManager=pasteFromWorksheet.getRowManager(),defaultColumnWidth=pasteFromWorksheet.getConfig().defaultColumnWidth,defaultRowHeight=pasteFromWorksheet.getConfig().defaultRowHeight,colProperties=[],rowProperties=[];if(range.cols.forEach(i=>{const column=colManager.getColumnOrCreate(i);colProperties.push({width:`${column.w||defaultColumnWidth}`})}),range.rows.forEach(j=>{const row=rowManager.getRowOrCreate(j),{ah=defaultRowHeight,h=defaultRowHeight}=row,height=Math.max(ah,h);rowProperties.push({height:`${height}`})}),cachedData.copyType===COPY_TYPE.CUT){const start=pasteTarget.pastedRange.rows[0],end=range.rows[range.rows.length-1]-range.rows[0]+start;pasteTarget.pastedRange.rows=Array.from(new Array(end+1).keys()).slice(start)}const pasteRes=this._pasteUSM({cellMatrix,colProperties,rowProperties},pasteTarget,pasteType,{range,unitId:cachedData.unitId,subUnitId:cachedData.subUnitId,copyType:cachedData.copyType,copyId});return cachedData.copyType===COPY_TYPE.CUT&&(this._copyContentCache.set(copyId,{...cachedData,matrix:null}),this._copyMarkId&&this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null),pasteRes}_pasteUSM(data,target,pasteType,source){const{rowProperties,colProperties,cellMatrix}=data,{unitId,subUnitId,pastedRange}=target,colCount=pastedRange.cols.length,hooks=this._clipboardHooks,enabledHooks=[];if(hooks.some(h=>{var _a61;return enabledHooks.push(h)&&((_a61=h.onBeforePaste)==null?void 0:_a61.call(h,{unitId,subUnitId,range:pastedRange}))===!1}))return enabledHooks.forEach(h=>{var _a61;return(_a61=h.onAfterPaste)==null?void 0:_a61.call(h,!1)}),!1;if(!cellMatrix)return!1;const pasteFrom=source?{unitId:source.unitId,subUnitId:source.subUnitId,range:source.range}:null,payload={copyType:(source==null?void 0:source.copyType)||COPY_TYPE.COPY,copyId:source==null?void 0:source.copyId,pasteType};let redoMutationsInfo=[],undoMutationsInfo=[];const filteredHooks=enabledHooks.filter(h=>!h.specialPasteInfo&&h.id!==PREDEFINED_HOOK_NAME.DEFAULT_PASTE||pasteType===h.id);filteredHooks.forEach(h=>{var _a61,_b,_c;if(rowProperties){const rowReturn=(_a61=h.onPasteRows)==null?void 0:_a61.call(h,{range:pastedRange,unitId,subUnitId},rowProperties,{pasteType});rowReturn&&(redoMutationsInfo.push(...rowReturn.redos),undoMutationsInfo.push(...rowReturn.undos))}const colReturn=(_b=h.onPasteColumns)==null?void 0:_b.call(h,{range:pastedRange,unitId,subUnitId},colProperties||new Array(colCount).map(()=>({})),{pasteType});colReturn&&(redoMutationsInfo.push(...colReturn.redos),undoMutationsInfo.push(...colReturn.undos));const contentReturn=(_c=h.onPasteCells)==null?void 0:_c.call(h,pasteFrom,{range:pastedRange,unitId,subUnitId},cellMatrix,payload);contentReturn&&(redoMutationsInfo.push(...contentReturn.redos),undoMutationsInfo.push(...contentReturn.undos))});const setSelectionOperation=this._getSetSelectionOperation(unitId,subUnitId,pastedRange,cellMatrix,pasteType);setSelectionOperation&&redoMutationsInfo.push(setSelectionOperation),redoMutationsInfo=mergeSetRangeValues(redoMutationsInfo),undoMutationsInfo=mergeSetRangeValues(undoMutationsInfo),undoMutationsInfo.push({id:sheets.SetWorksheetActiveOperation.id,params:{unitId:target.unitId,subUnitId:target.subUnitId}}),this._logService.log("[SheetClipboardService]","pasting mutations",{undoMutationsInfo,redoMutationsInfo});const result=redoMutationsInfo.every(m=>this._commandService.syncExecuteCommand(m.id,m.params));return result&&(this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),this.updatePasteOptionsCache({target:{pastedRange,unitId,subUnitId},cellMatrix,rowProperties,colProperties,pasteType,source}),this.setShowMenu(!0)),filteredHooks.forEach(h=>{var _a61;return(_a61=h.onAfterPaste)==null?void 0:_a61.call(h,result)}),result}_getSetSelectionOperation(unitId,subUnitId,range,cellMatrix,pasteType){var _a61;const worksheet=(_a61=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a61.getSheetBySheetId(subUnitId);if(!worksheet)return null;const{rows,cols}=range,startRow=rows[0],startColumn=cols[0],endRow=rows[rows.length-1],endColumn=cols[cols.length-1],primaryCell={startRow,endRow:startRow,startColumn,endColumn:startColumn},primary=sheets.getPrimaryForRange(primaryCell,worksheet),mainCell=cellMatrix.getValue(0,0),rowSpan=(mainCell==null?void 0:mainCell.rowSpan)||1,colSpan=(mainCell==null?void 0:mainCell.colSpan)||1;if((pasteType===PREDEFINED_HOOK_NAME.DEFAULT_PASTE||pasteType===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER||pasteType===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT)&&(rowSpan>1||colSpan>1)){const mergeRange={startRow,endRow:startRow+rowSpan-1,startColumn,endColumn:startColumn+colSpan-1};primary.startRow=mergeRange.startRow,primary.endRow=mergeRange.endRow,primary.startColumn=mergeRange.startColumn,primary.endColumn=mergeRange.endColumn,primary.isMerged=!0,primary.isMergedMainCell=!0}const setSelectionsParam={unitId,subUnitId,selections:[{range:{startRow,endRow,startColumn,endColumn},primary,style:null}]};return{id:sheets.SetSelectionsOperation.id,params:setSelectionsParam}}_getPastingTarget(){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),selection=this._selectionManagerService.getCurrentLastSelection();return{unitId:workbook.getUnitId(),subUnitId:worksheet==null?void 0:worksheet.getSheetId(),selection}}_transformPastedData(rowCount,colCount,cellMatrix){const target=this._getPastingTarget(),{selection,unitId,subUnitId}=target;if(!subUnitId||!selection)return null;const discreteRange=this._injector.invoke(accessor=>rangeToDiscreteRange(selection.range,accessor,unitId,subUnitId));if(!discreteRange)return null;const{ranges:[vRange],mapFunc}=virtualizeDiscreteRanges([discreteRange]),{startRow,startColumn,endRow,endColumn}=vRange,destinationRows=endRow-startRow+1,destinationColumns=endColumn-startColumn+1,workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return null;const mergedCellsInRange=worksheet.getMergeData().filter(rect=>discreteRange.rows.includes(rect.startRow)&&discreteRange.cols.includes(rect.startColumn)),mergedRange=mergedCellsInRange[0];let mergedRangeStartRow=0,mergedRangeStartColumn=0,mergedRangeEndRow=0,mergedRangeEndColumn=0;if(mergedRange&&(mergedRangeStartRow=mergedRange.startRow,mergedRangeStartColumn=mergedRange.startColumn,mergedRangeEndRow=mergedRange.endRow,mergedRangeEndColumn=mergedRange.endColumn),destinationRows%rowCount===0&&destinationColumns%colCount===0)if(mergedCellsInRange.length>0&&(destinationRows!==rowCount||destinationColumns!==colCount))if(mergedRangeStartRow===discreteRange.rows[0]&&mergedRangeStartColumn===discreteRange.cols[0]&&mergedRangeEndRow===discreteRange.rows[destinationRows-1]&&mergedRangeEndColumn===discreteRange.cols[destinationColumns-1])if(isMultipleCells(cellMatrix))for(let r2=0;r2<destinationRows;r2++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}else cellMatrix.forValue((row,col,cell)=>{cell.s=null,delete cell.colSpan,delete cell.rowSpan});else for(let r2=0;r2<destinationRows;r2++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}else for(let r2=0;r2<destinationRows;r2++)for(let c=0;c<destinationColumns;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}else if(mergedCellsInRange.length>0){const{row:topRow,col:leftCol}=mapFunc(startRow,startColumn);if(this._topLeftCellsMatch(rowCount,colCount,{topRow,leftCol})){const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols}else{if(endRow>mergedRange.endRow||endColumn>mergedRange.endColumn)return null;cellMatrix.forValue((row,col,cell)=>{cell.s=null,delete cell.colSpan,delete cell.rowSpan})}}else{const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols}return{pastedRange:discreteRange,unitId,subUnitId}}_getPastedRange(cellMatrix){var _a61;const target=this._getPastingTarget(),{selection,unitId,subUnitId}=target;if(!subUnitId||!selection)return null;const discreteRange=this._injector.invoke(accessor=>rangeToDiscreteRange(selection.range,accessor,unitId,subUnitId));if(!discreteRange)return null;const{startColumn,endColumn,startRow,endRow}=cellMatrix.getDataRange(),rowCount=endRow-startRow+1,colCount=endColumn-startColumn+1;if(rowCount<=0||colCount<=0)return null;const pasteSelectionRangeRowLen=discreteRange.rows.length,pasteSelectionRangeColLen=discreteRange.cols.length,worksheet=(_a61=this._univerInstanceService.getUniverSheetInstance(unitId))==null?void 0:_a61.getSheetBySheetId(subUnitId);if(!worksheet)return null;const mergeData=worksheet==null?void 0:worksheet.getMergeData();if(pasteSelectionRangeRowLen%rowCount===0&&pasteSelectionRangeColLen%colCount===0&&!(mergeData==null?void 0:mergeData.some(merge=>rangeIntersectWithDiscreteRange(merge,discreteRange)))){for(let r2=0;r2<pasteSelectionRangeRowLen;r2++)for(let c=0;c<pasteSelectionRangeColLen;c++){const cell=cellMatrix.getValue(r2%rowCount,c%colCount);cell&&cellMatrix.setValue(r2,c,cell)}return{pastedRange:discreteRange,unitId,subUnitId}}const newDiscreteRange=this._expandOrShrinkRowsCols(unitId,subUnitId,discreteRange,colCount,rowCount);return discreteRange.rows=newDiscreteRange.rows,discreteRange.cols=newDiscreteRange.cols,{pastedRange:discreteRange,unitId,subUnitId}}_expandOrShrinkRowsCols(unitId,subUnitId,range,colCount,rowCount){const{rows,cols}=range,workbook=this._univerInstanceService.getUniverSheetInstance(unitId),worksheet=workbook==null?void 0:workbook.getSheetBySheetId(subUnitId);let newRows,newCols;if(rows.length>=rowCount)newRows=rows.slice(0,rowCount);else{newRows=rows.slice(0);let rowIndex=rows[rows.length-1]+1;for(;newRows.length<rowCount;)worksheet.getRowFiltered(rowIndex)||newRows.push(rowIndex),rowIndex++}if(cols.length>=colCount)newCols=cols.slice(0,colCount);else{newCols=cols.slice(0);let colIndex=cols[cols.length-1]+1;for(;newCols.length<colCount;)newCols.push(colIndex),colIndex++}return{rows:newRows,cols:newCols}}_topLeftCellsMatch(rowCount,colCount,range){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return!1;const{topRow,leftCol}=range,isRowAcross=rowAcrossMergedCell(topRow+rowCount-1,leftCol,leftCol+colCount-1,worksheet),isColAcross=columnAcrossMergedCell(leftCol+colCount-1,topRow,topRow+rowCount-1,worksheet);return!isRowAcross&&!isColAcross}removeMarkSelection(){this._copyMarkId&&(this._markSelectionService.removeShape(this._copyMarkId),this._copyMarkId=null)}_initUnitDisposed(){this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook&&this.copyContentCache().clearWithUnitId(workbook.getUnitId())}))}disposePasteOptionsCache(){this.setShowMenu(!1),this.updatePasteOptionsCache(null)}},__name(_a15,"SheetClipboardService"),_a15);exports.SheetClipboardService=__decorateClass$H([__decorateParam$H(0,core.ILogService),__decorateParam$H(1,core.IUniverInstanceService),__decorateParam$H(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$H(3,ui.IClipboardInterfaceService),__decorateParam$H(4,core.IUndoRedoService),__decorateParam$H(5,core.ICommandService),__decorateParam$H(6,IMarkSelectionService),__decorateParam$H(7,ui.INotificationService),__decorateParam$H(8,ui.IPlatformService),__decorateParam$H(9,engineRender.IRenderManagerService),__decorateParam$H(10,core.Inject(core.ThemeService)),__decorateParam$H(11,core.Inject(core.LocaleService)),__decorateParam$H(12,core.Inject(core.ErrorService)),__decorateParam$H(13,core.Inject(core.Injector))],exports.SheetClipboardService);function getMatrixPlainText(matrix){let plain="";const matrixLength=matrix.getLength();return matrix.forRow((row,cols)=>{const arr=[];cols.forEach(col=>{const cell=matrix.getValue(row,col);if(cell){const cellText=getCellTextForClipboard(cell);arr.push(cellText)}}),plain+=arr.join(" "),row!==matrixLength-1&&(plain+=`
|
|
12
|
+
`)}),plain}__name(getMatrixPlainText,"getMatrixPlainText");function getCellTextForClipboard(cell){return core.isNotNullOrUndefined(cell.displayV)?cell.displayV:core.extractPureTextFromCell(cell)}__name(getCellTextForClipboard,"getCellTextForClipboard");function rowAcrossMergedCell(row,startColumn,endColumn,worksheet){return worksheet.getMergeData().some(mergedCell=>mergedCell.startRow<=row&&row<mergedCell.endRow&&startColumn<=mergedCell.startColumn&&mergedCell.startColumn<=endColumn)}__name(rowAcrossMergedCell,"rowAcrossMergedCell");function columnAcrossMergedCell(col,startRow,endRow,worksheet){return worksheet.getMergeData().some(mergedCell=>mergedCell.startColumn<=col&&col<mergedCell.endColumn&&startRow<=mergedCell.startRow&&mergedCell.startRow<=endRow)}__name(columnAcrossMergedCell,"columnAcrossMergedCell");function isMultipleCells(cellMatrix){let count=0;return cellMatrix.forValue((row,col,cell)=>{if(cell&&count++,count>1)return!1}),count>1}__name(isMultipleCells,"isMultipleCells");function getEmptyCell(){return{p:null,v:null,s:null,f:null,si:null,t:null}}__name(getEmptyCell,"getEmptyCell");const SHEET_CLIPBOARD_PRIORITY=998,SheetCopyCommand={id:ui.CopyCommand.id,name:"sheet.command.copy",type:core.CommandType.COMMAND,multi:!0,priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async accessor=>accessor.get(ISheetClipboardService).copy(),"handler")},SheetCutCommand={id:ui.CutCommand.id,name:"sheet.command.cut",type:core.CommandType.COMMAND,multi:!0,priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async accessor=>accessor.get(ISheetClipboardService).cut(),"handler")},SheetPasteCommand={id:ui.PasteCommand.id,type:core.CommandType.COMMAND,multi:!0,name:"sheet.command.paste",priority:SHEET_CLIPBOARD_PRIORITY,preconditions:whenSheetFocused,handler:__name(async(accessor,params)=>{const clipboardItems=await accessor.get(ui.IClipboardInterfaceService).read(),sheetClipboardService=accessor.get(ISheetClipboardService);return clipboardItems.length!==0?sheetClipboardService.paste(clipboardItems[0],params==null?void 0:params.value):!1},"handler")},SheetPasteShortKeyCommand={id:ui.SheetPasteShortKeyCommandName,type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const clipboardService=accessor.get(ISheetClipboardService),{htmlContent,textContent,files}=params;return clipboardService.legacyPaste(htmlContent,textContent,files),!0},"handler")},SheetPasteValueCommand={id:"sheet.command.paste-value",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE}),"handler")},SheetPasteFormatCommand={id:"sheet.command.paste-format",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT}),"handler")},SheetPasteColWidthCommand={id:"sheet.command.paste-col-width",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH}),"handler")},SheetPasteBesidesBorderCommand={id:"sheet.command.paste-besides-border",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(SheetPasteCommand.id,{value:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER}),"handler")},SheetOptionalPasteCommand={id:"sheet.command.optional-paste",type:core.CommandType.COMMAND,handler:__name(async(accessor,{type})=>accessor.get(ISheetClipboardService).rePasteWithPasteType(type),"handler")},HideRowConfirmCommand={id:"sheet.command.hide-row-confirm",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a61;const ranges=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range);if(!(ranges!=null&&ranges.length))return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allRowRanges=worksheet.getVisibleRows();if(isAllRowsCovered(allRowRanges,ranges)){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.hide-row",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.hideAllRowsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.SetRowHiddenCommand.id),!0},"handler")},HideColConfirmCommand={id:"sheet.command.hide-col-confirm",type:core.CommandType.COMMAND,handler:__name(async accessor=>{var _a61;const ranges=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range);if(!(ranges!=null&&ranges.length))return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allColumnRanges=worksheet.getVisibleCols();if(isAllColumnsCovered(allColumnRanges,ranges)){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.hide-col",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.hideAllColumnsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.SetColHiddenCommand.id),!0},"handler")},SetRangeBoldCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-bold",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatBoldCommand.id):commandService.executeCommand(sheets.SetBoldCommand.id)},"handler")},SetRangeItalicCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-italic",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatItalicCommand.id):commandService.executeCommand(sheets.SetItalicCommand.id)},"handler")},SetRangeUnderlineCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-underline",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatUnderlineCommand.id):commandService.executeCommand(sheets.SetUnderlineCommand.id)},"handler")},SetRangeStrickThroughCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-stroke",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatStrikethroughCommand.id):commandService.executeCommand(sheets.SetStrikeThroughCommand.id)},"handler")},SetRangeSubscriptCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-subscript",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatSubscriptCommand.id):!1},"handler")},SetRangeSuperscriptCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-superscript",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatSuperscriptCommand.id):!1},"handler")},SetRangeFontSizeCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-fontsize",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatFontSizeCommand.id,params):commandService.executeCommand(sheets.SetFontSizeCommand.id,params)},"handler")},SetRangeFontFamilyCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-font-family",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatFontFamilyCommand.id,params):commandService.executeCommand(sheets.SetFontFamilyCommand.id,params)},"handler")},SetRangeTextColorCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-text-color",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService);return accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED)?commandService.executeCommand(docsUi.SetInlineFormatTextColorCommand.id,params):commandService.executeCommand(sheets.SetTextColorCommand.id,params)},"handler")},ResetRangeTextColorCommand={type:core.CommandType.COMMAND,id:"sheet.command.reset-range-text-color",handler:__name(async accessor=>{const commandService=accessor.get(core.ICommandService),isCellEditorFocus=accessor.get(core.IContextService).getContextValue(core.EDITOR_ACTIVATED),themeService=accessor.get(core.ThemeService);return isCellEditorFocus?commandService.executeCommand(docsUi.SetInlineFormatTextColorCommand.id,{value:null}):commandService.executeCommand(sheets.SetTextColorCommand.id,{value:themeService.getCurrentTheme().textColor})},"handler")};var __defProp$G=Object.defineProperty,__getOwnPropDesc$G=Object.getOwnPropertyDescriptor,__decorateClass$G=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$G(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$G(target,key,result),result},"__decorateClass$G"),__decorateParam$G=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$G"),FormatPainterStatus=(FormatPainterStatus2=>(FormatPainterStatus2[FormatPainterStatus2.OFF=0]="OFF",FormatPainterStatus2[FormatPainterStatus2.ONCE=1]="ONCE",FormatPainterStatus2[FormatPainterStatus2.INFINITE=2]="INFINITE",FormatPainterStatus2))(FormatPainterStatus||{});const IFormatPainterService=core.createIdentifier("univer.format-painter-service");var _a16;let FormatPainterService=(_a16=class extends core.Disposable{constructor(_selectionManagerService,_themeService,_markSelectionService,_logService,_commandService,_undoRedoService){super();__publicField(this,"status$");__publicField(this,"_selectionFormat");__publicField(this,"_markId",null);__publicField(this,"_status$");__publicField(this,"_defaultHook",null);__publicField(this,"_extendHooks",[]);this._selectionManagerService=_selectionManagerService,this._themeService=_themeService,this._markSelectionService=_markSelectionService,this._logService=_logService,this._commandService=_commandService,this._undoRedoService=_undoRedoService,this._status$=new rxjs.BehaviorSubject(0),this.status$=this._status$.asObservable(),this._selectionFormat={styles:new core.ObjectMatrix,merges:[]}}addHook(hook){var _a61,_b,_c;hook.isDefaultHook&&((_a61=hook.priority)!=null?_a61:0)>((_c=(_b=this._defaultHook)==null?void 0:_b.priority)!=null?_c:-1)?this._defaultHook=hook:(this._extendHooks.push(hook),this._extendHooks.sort((a,b)=>(a.priority||0)-(b.priority||0)))}getHooks(){return this._defaultHook?[this._defaultHook,...this._extendHooks]:this._extendHooks}setStatus(status){this._updateRangeMark(status),this._status$.next(status),this.getHooks().forEach(hook=>{hook.onStatusChange!==void 0&&hook.onStatusChange(status)})}getStatus(){return this._status$.getValue()}setSelectionFormat(format){this._selectionFormat=format}getSelectionFormat(){return this._selectionFormat}applyFormatPainter(unitId,subUnitId,range){const hooks=this.getHooks(),redoMutationsInfo=[],undoMutationsInfo=[];hooks.forEach(h=>{if(h.onApply!==void 0){const applyReturn=h.onApply(unitId,subUnitId,range,this._selectionFormat);applyReturn&&(redoMutationsInfo.push(...applyReturn.redos),undoMutationsInfo.push(...applyReturn.undos))}});for(const beforeHook of hooks)if(beforeHook.onBeforeApply!==void 0&&!beforeHook.onBeforeApply({unitId,subUnitId,range,redoMutationsInfo,format:this._selectionFormat,undoMutationsInfo}))return!1;this._logService.log("[FormatPainterService]","apply mutations",{undoMutationsInfo,redoMutationsInfo});const result=redoMutationsInfo.every(m=>this._commandService.executeCommand(m.id,m.params));return result&&this._undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:undoMutationsInfo,redoMutations:redoMutationsInfo}),result}_updateRangeMark(status){if(this._markSelectionService.removeAllShapes(),status!==0){const selection=this._selectionManagerService.getCurrentLastSelection();if(selection){const style=createCopyPasteSelectionStyle(this._themeService);status===2?this._markId=this._markSelectionService.addShape({...selection,style}):this._markId=this._markSelectionService.addShape({...selection,style},[sheets.SetRangeValuesMutation.id])}}}},__name(_a16,"FormatPainterService"),_a16);FormatPainterService=__decorateClass$G([__decorateParam$G(0,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$G(1,core.Inject(core.ThemeService)),__decorateParam$G(2,IMarkSelectionService),__decorateParam$G(3,core.ILogService),__decorateParam$G(4,core.ICommandService),__decorateParam$G(5,core.IUndoRedoService)],FormatPainterService);const SetFormatPainterOperation={id:"sheet.operation.set-format-painter",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>params?(accessor.get(IFormatPainterService).setStatus(params.status),!0):!1,"handler")},SetInfiniteFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-infinite-format-painter",handler:__name(async accessor=>{const status=accessor.get(IFormatPainterService).getStatus();let newStatus;return status!==FormatPainterStatus.OFF?newStatus=FormatPainterStatus.OFF:newStatus=FormatPainterStatus.INFINITE,accessor.get(core.ICommandService).executeCommand(SetFormatPainterOperation.id,{status:newStatus})},"handler")},SetOnceFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-once-format-painter",handler:__name(async accessor=>{const status=accessor.get(IFormatPainterService).getStatus();let newStatus;return status!==FormatPainterStatus.OFF?newStatus=FormatPainterStatus.OFF:newStatus=FormatPainterStatus.ONCE,accessor.get(core.ICommandService).executeCommand(SetFormatPainterOperation.id,{status:newStatus})},"handler")},ApplyFormatPainterCommand={type:core.CommandType.COMMAND,id:"sheet.command.apply-format-painter",handler:__name(async(accessor,params)=>accessor.get(IFormatPainterService).applyFormatPainter(params.unitId,params.subUnitId,params.range),"handler")},SetSelectionFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-selection-frozen",handler:__name(async(accessor,params)=>{const{type}=params||{},univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target,commandService=accessor.get(core.ICommandService),selections=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections();if(!selections)return!1;const currentSelection=selections[(selections==null?void 0:selections.length)-1],{range}=currentSelection,scrollManagerService=accessor.get(engineRender.IRenderManagerService).getRenderById(unitId).with(exports.SheetScrollManagerService),{sheetViewStartRow=0,sheetViewStartColumn=0}=scrollManagerService.getCurrentScrollState()||{};let startRow,startColumn,freezedRowCount,freezedColCount;const{startRow:selectRow,startColumn:selectColumn,rangeType}=range;if(rangeType===core.RANGE_TYPE.ROW||type===1)startRow=selectRow,freezedRowCount=selectRow-sheetViewStartRow,startColumn=-1,freezedColCount=0;else if(rangeType===core.RANGE_TYPE.COLUMN||type===2)startRow=-1,freezedRowCount=0,startColumn=selectColumn,freezedColCount=selectColumn-sheetViewStartColumn;else if(rangeType===core.RANGE_TYPE.NORMAL)startRow=selectRow,freezedRowCount=selectRow-sheetViewStartRow,startColumn=selectColumn,freezedColCount=selectColumn-sheetViewStartColumn;else return!1;const redoMutationParams={unitId,subUnitId,startRow,startColumn,xSplit:startColumn>0?Math.max(1,freezedColCount):freezedColCount,ySplit:startRow>0?Math.max(1,freezedRowCount):freezedRowCount},undoMutationParams=sheets.SetFrozenMutationFactory(accessor,redoMutationParams);return commandService.syncExecuteCommand(sheets.SetFrozenMutation.id,redoMutationParams)&&undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redoMutations:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}),!0},"handler")},SetRowFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-row-frozen",handler:__name(async accessor=>(accessor.get(core.ICommandService).executeCommand(SetSelectionFrozenCommand.id,{type:1}),!0),"handler")},SetColumnFrozenCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-col-frozen",handler:__name(async accessor=>(accessor.get(core.ICommandService).executeCommand(SetSelectionFrozenCommand.id,{type:2}),!0),"handler")};var __defProp$F=Object.defineProperty,__getOwnPropDesc$F=Object.getOwnPropertyDescriptor,__decorateClass$F=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$F(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$F(target,key,result),result},"__decorateClass$F"),__decorateParam$F=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$F");const createAutoColWidthUndoMutationsByRedos=__name((params,worksheet)=>{const{unitId,subUnitId,ranges}=params,colWidthObj={},manager=worksheet.getColumnManager();for(let i=0;i<ranges.length;i++){const range=ranges[i];for(let j=range.startColumn;j<range.endColumn+1;j++){const col=manager.getColumnOrCreate(j);colWidthObj[j]=col.w}}return{unitId,subUnitId,ranges,colWidth:colWidthObj}},"createAutoColWidthUndoMutationsByRedos");var _a17;exports.AutoWidthController=(_a17=class extends core.Disposable{constructor(_renderManagerService,_univerInstanceService){super(),this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService}getUndoRedoParamsOfColWidth(params){const defaultValue={redos:[],undos:[]},{_univerInstanceService:univerInstanceService}=this,target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return defaultValue;const{unitId,subUnitId,worksheet}=target,sheetSkeletonService=this._renderManagerService.getRenderById(unitId).with(exports.SheetSkeletonManagerService);if(!sheetSkeletonService.getCurrent())return defaultValue;const{skeleton}=sheetSkeletonService.getCurrent(),colsAutoWidthInfo=skeleton.calculateAutoWidthInRange(params.ranges),colWidthObject={};for(const{col,width}of colsAutoWidthInfo)colWidthObject[col]=width;const redoParams={subUnitId,unitId,ranges:params.ranges,colWidth:colWidthObject},undoParams=createAutoColWidthUndoMutationsByRedos(redoParams,worksheet);return{undos:[{id:sheets.SetWorksheetColWidthMutation.id,params:undoParams}],redos:[{id:sheets.SetWorksheetColWidthMutation.id,params:redoParams}]}}},__name(_a17,"AutoWidthController"),_a17);exports.AutoWidthController=__decorateClass$F([__decorateParam$F(0,engineRender.IRenderManagerService),__decorateParam$F(1,core.Inject(core.IUniverInstanceService))],exports.AutoWidthController);const SetWorksheetColAutoWidthCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-col-auto-width",handler:__name((accessor,params)=>{const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService,params);if(!target)return!1;const{unitId,subUnitId}=target;let ranges=[];if(params!=null&¶ms.ranges)ranges=[...params.ranges];else{const selections=selectionManagerService.getCurrentSelections();for(let i=0;i<selections.length;i++)ranges.push(selections[i].range)}if(!(ranges!=null&&ranges.length))return!1;const redoMutationParams={unitId,subUnitId,ranges},{redos,undos}=accessor.get(exports.AutoWidthController).getUndoRedoParamsOfColWidth(redoMutationParams);return core.sequenceExecute([...redos],commandService).result?(undoRedoService.pushUndoRedo({unitID:unitId,undoMutations:[...undos],redoMutations:[...redos]}),!0):!1},"handler")},COMPONENT_PREFIX="UI_PLUGIN_SHEETS",COLOR_PICKER_COMPONENT=`${COMPONENT_PREFIX}_COLOR_PICKER_COMPONENT`,FONT_FAMILY_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_COMPONENT`,FONT_FAMILY_ITEM_COMPONENT=`${COMPONENT_PREFIX}_FONT_FAMILY_ITEM_COMPONENT`,FONT_SIZE_COMPONENT=`${COMPONENT_PREFIX}_FONT_SIZE_COMPONENT`,MENU_ITEM_INPUT_COMPONENT=`${COMPONENT_PREFIX}_MENU_ITEM_INPUT_COMPONENT`,sheetsUiContextMenuInput="univer-sheets-ui-context-menu-input",sheetsUiContextMenuInputContainer="univer-sheets-ui-context-menu-input-container",sheetsUiContextMenuInputNumber="univer-sheets-ui-context-menu-input-number",styles$k={sheetsUiContextMenuInput,sheetsUiContextMenuInputContainer,sheetsUiContextMenuInputNumber},MenuItemInput=__name(props=>{const{prefix,suffix,value,onChange,min=Number.MIN_SAFE_INTEGER,max=Number.MAX_SAFE_INTEGER}=props,localeService=core.useDependency(core.LocaleService),contextMenuService=core.useDependency(ui.IContextMenuService),[inputValue,setInputValue]=React.useState(),handleChange=__name(value2=>{var _a61;setInputValue(value2==null?void 0:value2.toString()),onChange((_a61=value2==null?void 0:value2.toString())!=null?_a61:"")},"handleChange");React.useEffect(()=>{contextMenuService.visible||setInputValue(value)},[contextMenuService.visible]),React.useEffect(()=>{setInputValue(value)},[value]);function handleKeyDown(e){e.key==="Backspace"&&e.stopPropagation()}return __name(handleKeyDown,"handleKeyDown"),jsxRuntime.jsxs("div",{className:styles$k.sheetsUiContextMenuInput,children:[localeService.t(prefix),jsxRuntime.jsx("span",{className:styles$k.sheetsUiContextMenuInputContainer,onClick:__name(e=>e.stopPropagation(),"onClick"),children:jsxRuntime.jsx(design.InputNumber,{className:styles$k.sheetsUiContextMenuInputNumber,value:Number(inputValue),precision:0,onKeyDown:handleKeyDown,onChange:handleChange,min,max})}),localeService.t(suffix)]})},"MenuItemInput");function getActiveSheet$(univerInstanceService){return univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook?workbook.activeSheet$.pipe(rxjs.map(worksheet=>worksheet?{workbook,worksheet}:null)):rxjs.of(null)))}__name(getActiveSheet$,"getActiveSheet$");function deriveStateFromActiveSheet$(univerInstanceService,defaultValue,callback){return getActiveSheet$(univerInstanceService).pipe(rxjs.switchMap(active=>active?callback(active):rxjs.of(defaultValue)))}__name(deriveStateFromActiveSheet$,"deriveStateFromActiveSheet$");function getCurrentExclusiveRangeInterest$(accessor,disableGroupSet){const univerInstanceService=accessor.get(core.IUniverInstanceService),exclusiveRangeService=accessor.get(sheets.IExclusiveRangeService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook?rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,workbook.activeSheet$]).pipe(rxjs.switchMap(([selections,worksheet])=>{if(!worksheet||selections.length===0)return rxjs.of(!1);const interestGroupIds=exclusiveRangeService.getInterestGroupId(selections);if(disableGroupSet){const disableGroup=interestGroupIds.filter(groupId=>disableGroupSet.has(groupId));return rxjs.of(disableGroup.length>0)}else return rxjs.of(interestGroupIds.length>0)})):rxjs.of(!1)))}__name(getCurrentExclusiveRangeInterest$,"getCurrentExclusiveRangeInterest$");function getObservableWithExclusiveRange$(accessor,observable$,disableGroupSet){return rxjs.combineLatest([observable$,getCurrentExclusiveRangeInterest$(accessor,disableGroupSet)]).pipe(rxjs.map(([observable,exclusiveRangeDisable])=>observable||exclusiveRangeDisable))}__name(getObservableWithExclusiveRange$,"getObservableWithExclusiveRange$");function getCurrentRangeDisable$(accessor,permissionTypes={},supportCellEdit=!1){var _a61;const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),userManagerService=accessor.get(core.UserManagerService),editorBridgeService=accessor.has(IEditorBridgeService)?accessor.get(IEditorBridgeService):null,formulaEditorFocus$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_FX_BAR_EDITOR),editorVisible$=(_a61=editorBridgeService==null?void 0:editorBridgeService.visible$)!=null?_a61:rxjs.of(null);return rxjs.combineLatest([userManagerService.currentUser$,workbook$,editorVisible$,formulaEditorFocus$]).pipe(rxjs.switchMap(([_2,workbook,visible,formulaEditorFocus])=>!workbook||visible!=null&&visible.visible&&visible.unitId===workbook.getUnitId()&&!supportCellEdit||formulaEditorFocus&&!supportCellEdit?rxjs.of(!0):workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>{if(!worksheet)return rxjs.of(!0);const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),focusedOnDrawing$=accessor.get(core.IContextService).subscribeContextValue$(core.FOCUSING_COMMON_DRAWINGS).pipe(rxjs.startWith(!1));return rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,focusedOnDrawing$]).pipe(rxjs.switchMap(([selection,focusOnDrawings])=>{if(focusOnDrawings)return rxjs.of(!0);const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionService=accessor.get(core.IPermissionService),{workbookTypes=[sheets.WorkbookEditablePermission],worksheetTypes,rangeTypes}=permissionTypes,permissionIds=[];if(workbookTypes==null||workbookTypes.forEach(F=>{permissionIds.push(new F(unitId).id)}),worksheetTypes==null||worksheetTypes.forEach(F=>{permissionIds.push(new F(unitId,subUnitId).id)}),worksheetRuleModel.getRule(unitId,subUnitId))return permissionService.composePermission$(permissionIds).pipe(rxjs.map(list=>list.some(item=>item.value===!1)));const selectionRanges=selection==null?void 0:selection.map(selection2=>selection2.range),rules=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>selectionRanges==null?void 0:selectionRanges.some(range=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(range,ruleRange))));return rangeTypes==null||rangeTypes.forEach(F=>{rules.forEach(rule=>{permissionIds.push(new F(unitId,subUnitId,rule.permissionId).id)})}),permissionService.composePermission$(permissionIds).pipe(rxjs.map(list=>list.some(item=>item.value===!1)))}))}))))}__name(getCurrentRangeDisable$,"getCurrentRangeDisable$");function getBaseRangeMenuHidden$(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(range,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getBaseRangeMenuHidden$,"getBaseRangeMenuHidden$");function getInsertAfterMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>type==="row"?rule.ranges.some(ruleRange=>range.endRow>ruleRange.startRow&&range.endRow<=ruleRange.endRow):rule.ranges.some(ruleRange=>range.endColumn>ruleRange.startColumn&&range.endColumn<=ruleRange.endColumn)).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getInsertAfterMenuHidden$,"getInsertAfterMenuHidden$");function getInsertBeforeMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id];return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>type==="row"?rule.ranges.some(ruleRange=>range.startRow>ruleRange.startRow&&range.startRow<=ruleRange.endRow):rule.ranges.some(ruleRange=>range.startColumn>ruleRange.startColumn&&range.startColumn<=ruleRange.endColumn)).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getInsertBeforeMenuHidden$,"getInsertBeforeMenuHidden$");function getDeleteMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id],rowColRangeExpand=core.Tools.deepClone(range);return type==="row"?(rowColRangeExpand.startColumn=0,rowColRangeExpand.endColumn=worksheet.getColumnCount()-1):(rowColRangeExpand.startRow=0,rowColRangeExpand.endRow=worksheet.getRowCount()-1),rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(rowColRangeExpand,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getDeleteMenuHidden$,"getDeleteMenuHidden$");function getCellMenuHidden$(accessor,type){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService);return rxjs.merge(selectionManagerService.selectionMoveEnd$,permissionService.permissionPointUpdate$.pipe(rxjs.debounceTime(100))).pipe(rxjs.map(()=>{var _a61;const range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!range)return!0;const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return!0;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),permissionIds=[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id],rowColRangeExpand=core.Tools.deepClone(range);return type==="row"?rowColRangeExpand.endRow=worksheet.getRowCount()-1:rowColRangeExpand.endColumn=worksheet.getColumnCount()-1,rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(ruleRange=>core.Rectangle.intersects(rowColRangeExpand,ruleRange))).forEach(rule=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,rule.permissionId).id)}),permissionService.composePermission(permissionIds).some(item=>item.value===!1)}))}__name(getCellMenuHidden$,"getCellMenuHidden$");function getWorkbookPermissionDisable$(accessor,workbookPermissionTypes){const workbook$=accessor.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),selectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),permissionService=accessor.get(core.IPermissionService),userManagerService=accessor.get(core.UserManagerService);return rxjs.combineLatest([userManagerService.currentUser$,workbook$]).pipe(rxjs.switchMap(([_user,workbook])=>workbook?workbook.activeSheet$.pipe(rxjs.switchMap(activeSheet=>{if(!activeSheet)return rxjs.of(!0);const unitId=workbook.getUnitId(),workbookPermissionIds=[];return workbookPermissionTypes.forEach(F=>workbookPermissionIds.push(new F(unitId).id)),permissionService.composePermission$(workbookPermissionIds).pipe(rxjs.map(list=>list.every(item=>item.value===!0))).pipe(rxjs.map(basePermission=>{if(!basePermission)return!0;const subUnitId=activeSheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId),rangeRuleList=selectionRuleModel.getSubunitRuleList(unitId,subUnitId);return!!(worksheetRule||rangeRuleList.length)}))})):rxjs.of(!0)))}__name(getWorkbookPermissionDisable$,"getWorkbookPermissionDisable$");var SheetMenuPosition=(SheetMenuPosition2=>(SheetMenuPosition2.ROW_HEADER_CONTEXT_MENU="ROW_HEADER_CONTEXT_MENU",SheetMenuPosition2.COL_HEADER_CONTEXT_MENU="COL_HEADER_CONTEXT_MENU",SheetMenuPosition2.SHEET_BAR="SHEET_BAR",SheetMenuPosition2.SHEET_FOOTER="SHEET_FOOTER",SheetMenuPosition2))(SheetMenuPosition||{});function FormatPainterMenuItemFactory(accessor){const formatPainterService=accessor.get(IFormatPainterService);return{id:SetOnceFormatPainterCommand.id,subId:SetInfiniteFormatPainterCommand.id,type:ui.MenuItemType.BUTTON,icon:"BrushSingle",title:"Format Painter",tooltip:"toolbar.formatPainter",activated$:new rxjs.Observable(subscriber=>{let active=!1;const status$=formatPainterService.status$.subscribe(s=>{active=s!==FormatPainterStatus.OFF,subscriber.next(active)});return subscriber.next(active),()=>{status$.unsubscribe()}}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetCopyPermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0)}}__name(FormatPainterMenuItemFactory,"FormatPainterMenuItemFactory");function BoldMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),contextService=accessor.get(core.IContextService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService);return{id:SetRangeBoldCommand.id,type:ui.MenuItemType.BUTTON,icon:"BoldSingle",title:"Set bold",tooltip:"toolbar.bold",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isBold2=core.FontWeight.NORMAL;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isBold2=range==null?void 0:range.getFontWeight()}subscriber.next(isBold2===core.FontWeight.BOLD)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const bl=(_b=textRun.ts)==null?void 0:_b.bl;subscriber.next(bl===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;if(!worksheet){subscriber.next(!1);return}let isBold=core.FontWeight.NORMAL;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isBold=range==null?void 0:range.getFontWeight()}return subscriber.next(isBold===core.FontWeight.BOLD),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(BoldMenuItemFactory,"BoldMenuItemFactory");function ItalicMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeItalicCommand.id,type:ui.MenuItemType.BUTTON,icon:"ItalicSingle",title:"Set italic",tooltip:"toolbar.italic",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isItalic2=core.FontItalic.NORMAL;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isItalic2=range==null?void 0:range.getFontStyle()}subscriber.next(isItalic2===core.FontItalic.ITALIC)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const it=(_b=textRun.ts)==null?void 0:_b.it;subscriber.next(it===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let isItalic=core.FontItalic.NORMAL;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isItalic=range==null?void 0:range.getFontStyle()}return subscriber.next(isItalic===core.FontItalic.ITALIC),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ItalicMenuItemFactory,"ItalicMenuItemFactory");function UnderlineMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeUnderlineCommand.id,type:ui.MenuItemType.BUTTON,icon:"UnderlineSingle",title:"Set underline",tooltip:"toolbar.underline",activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let isUnderline2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);isUnderline2=range==null?void 0:range.getUnderline()}subscriber.next(!!(isUnderline2&&isUnderline2.s))}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const ul=(_b=textRun.ts)==null?void 0:_b.ul;subscriber.next((ul==null?void 0:ul.s)===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let isUnderline;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);isUnderline=range==null?void 0:range.getUnderline()}return subscriber.next(!!(isUnderline&&isUnderline.s)),disposable.dispose})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(UnderlineMenuItemFactory,"UnderlineMenuItemFactory");function StrikeThroughMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService);return{id:SetRangeStrickThroughCommand.id,type:ui.MenuItemType.BUTTON,icon:"StrikethroughSingle",title:"Set strike through",tooltip:"toolbar.strikethrough",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),activated$:deriveStateFromActiveSheet$(univerInstanceService,!1,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let st2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);st2=range==null?void 0:range.getStrikeThrough()}subscriber.next(!!(st2&&st2.s))}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const st2=(_b=textRun.ts)==null?void 0:_b.st;subscriber.next((st2==null?void 0:st2.s)===core.BooleanNumber.TRUE)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let st;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);st=range==null?void 0:range.getStrikeThrough()}return subscriber.next(!!(st&&st.s)),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(StrikeThroughMenuItemFactory,"StrikeThroughMenuItemFactory");function FontFamilySelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.DEFAULT_STYLES.ff;return{id:SetRangeFontFamilyCommand.id,tooltip:"toolbar.font",type:ui.MenuItemType.SELECTOR,label:FONT_FAMILY_COMPONENT,selections:ui.FONT_FAMILY_LIST.map(item=>({label:{name:FONT_FAMILY_ITEM_COMPONENT,hoverable:!0},value:item.value})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetRangeValuesMutation.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ff2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ff2=range==null?void 0:range.getFontFamily()}subscriber.next(ff2!=null?ff2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ff;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ff=range==null?void 0:range.getFontFamily()}return subscriber.next(ff!=null?ff:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FontFamilySelectorMenuItemFactory,"FontFamilySelectorMenuItemFactory");function FontSizeSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),contextService=accessor.get(core.IContextService),defaultValue=core.DEFAULT_STYLES.fs,disabled$=getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0);return{id:SetRangeFontSizeCommand.id,type:ui.MenuItemType.SELECTOR,tooltip:"toolbar.fontSize",label:{name:FONT_SIZE_COMPONENT,props:{min:1,max:400,disabled$}},selections:ui.FONT_SIZE_LIST,disabled$,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=commandService.onCommandExecuted(c=>{var _a62,_b;const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetActiveOperation.id){const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let fs2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);fs2=range==null?void 0:range.getFontSize()}subscriber.next(fs2!=null?fs2:defaultValue)}if((id===docs.SetTextSelectionsOperation.id||id===docsUi.SetInlineFormatCommand.id)&&contextService.getContextValue(core.EDITOR_ACTIVATED)&&contextService.getContextValue(core.FOCUSING_SHEET)){const textRun=getFontStyleAtCursor(accessor);if(textRun==null)return;const fs2=(_b=textRun.ts)==null?void 0:_b.fs;subscriber.next(fs2!=null?fs2:defaultValue)}}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let fs;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);fs=range==null?void 0:range.getFontSize()}return subscriber.next(fs!=null?fs:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FontSizeSelectorMenuItemFactory,"FontSizeSelectorMenuItemFactory");function ResetTextColorMenuItemFactory(accessor){return{id:ResetRangeTextColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ResetTextColorMenuItemFactory,"ResetTextColorMenuItemFactory");function TextColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:SetRangeTextColorCommand.id,icon:"FontColor",tooltip:"toolbar.textColor.main",type:ui.MenuItemType.BUTTON_SELECTOR,selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultValue=themeService.getCurrentTheme().textColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===SetRangeTextColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]},!0)}}__name(TextColorSelectorMenuItemFactory,"TextColorSelectorMenuItemFactory");function ResetBackgroundColorMenuItemFactory(accessor){return{id:sheets.ResetBackgroundColorCommand.id,type:ui.MenuItemType.BUTTON,title:"toolbar.resetColor",icon:"NoColor",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ResetBackgroundColorMenuItemFactory,"ResetBackgroundColorMenuItemFactory");function BackgroundColorSelectorMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),themeService=accessor.get(core.ThemeService);return{id:sheets.SetBackgroundColorCommand.id,tooltip:"toolbar.fillColor.main",type:ui.MenuItemType.BUTTON_SELECTOR,icon:"PaintBucket",selections:[{label:{name:COLOR_PICKER_COMPONENT,hoverable:!1}}],value$:new rxjs.Observable(subscriber=>{const defaultValue=themeService.getCurrentTheme().primaryColor,disposable=commandService.onCommandExecuted(c=>{if(c.id===sheets.SetBackgroundColorCommand.id){const color=c.params.value;subscriber.next(color!=null?color:defaultValue)}});return subscriber.next(defaultValue),disposable.dispose}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(BackgroundColorSelectorMenuItemFactory,"BackgroundColorSelectorMenuItemFactory");const HORIZONTAL_ALIGN_CHILDREN=[{label:"align.left",icon:"LeftJustifyingSingle",value:core.HorizontalAlign.LEFT},{label:"align.center",icon:"HorizontallySingle",value:core.HorizontalAlign.CENTER},{label:"align.right",icon:"RightJustifyingSingle",value:core.HorizontalAlign.RIGHT}];function HorizontalAlignMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.HorizontalAlign.LEFT;return{id:sheets.SetHorizontalTextAlignCommand.id,icon:HORIZONTAL_ALIGN_CHILDREN[0].icon,tooltip:"toolbar.horizontalAlignMode.main",type:ui.MenuItemType.SELECTOR,selections:HORIZONTAL_ALIGN_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetHorizontalTextAlignCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ha2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ha2=range==null?void 0:range.getHorizontalAlignment()}subscriber.next(ha2!=null?ha2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ha;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ha=range==null?void 0:range.getHorizontalAlignment()}return subscriber.next(ha!=null?ha:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(HorizontalAlignMenuItemFactory,"HorizontalAlignMenuItemFactory");const VERTICAL_ALIGN_CHILDREN=[{label:"align.top",icon:"AlignTopSingle",value:core.VerticalAlign.TOP},{label:"align.middle",icon:"VerticalCenterSingle",value:core.VerticalAlign.MIDDLE},{label:"align.bottom",icon:"AlignBottomSingle",value:core.VerticalAlign.BOTTOM}];function VerticalAlignMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=core.VerticalAlign.BOTTOM;return{id:sheets.SetVerticalTextAlignCommand.id,icon:VERTICAL_ALIGN_CHILDREN[2].icon,tooltip:"toolbar.verticalAlignMode.main",type:ui.MenuItemType.SELECTOR,selections:VERTICAL_ALIGN_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetVerticalTextAlignCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let va2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);va2=range==null?void 0:range.getVerticalAlignment()}subscriber.next(va2!=null?va2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let va;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);va=range==null?void 0:range.getVerticalAlignment()}return subscriber.next(va!=null?va:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(VerticalAlignMenuItemFactory,"VerticalAlignMenuItemFactory");const TEXT_WRAP_CHILDREN=[{label:"textWrap.overflow",icon:"OverflowSingle",value:core.WrapStrategy.OVERFLOW},{label:"textWrap.wrap",icon:"AutowrapSingle",value:core.WrapStrategy.WRAP},{label:"textWrap.clip",icon:"TruncationSingle",value:core.WrapStrategy.CLIP}];function WrapTextMenuItemFactory(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),defaultValue=core.WrapStrategy.OVERFLOW;return{id:sheets.SetTextWrapCommand.id,tooltip:"toolbar.textWrapMode.main",icon:TEXT_WRAP_CHILDREN[0].icon,type:ui.MenuItemType.SELECTOR,selections:TEXT_WRAP_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62;const id=c.id;if(id!==sheets.SetTextWrapCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let ws2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);ws2=range==null?void 0:range.getWrapStrategy()}subscriber.next(ws2!=null?ws2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let ws;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);ws=range==null?void 0:range.getWrapStrategy()}return subscriber.next(ws!=null?ws:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(WrapTextMenuItemFactory,"WrapTextMenuItemFactory");const TEXT_ROTATE_CHILDREN=[{label:"textRotate.none",icon:"NoRotationSingle",value:0},{label:"textRotate.angleUp",icon:"LeftRotationFortyFiveDegreesSingle",value:-45},{label:"textRotate.angleDown",icon:"RightRotationFortyFiveDegreesSingle",value:45},{label:"textRotate.vertical",icon:"VerticalTextSingle",value:"v"},{label:"textRotate.rotationUp",icon:"LeftRotationNinetyDegreesSingle",value:-90},{label:"textRotate.rotationDown",icon:"RightRotationNinetyDegreesSingle",value:90}];function TextRotateMenuItemFactory(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),defaultValue=0;return{id:sheets.SetTextRotationCommand.id,tooltip:"toolbar.textRotateMode.main",icon:TEXT_ROTATE_CHILDREN[0].icon,type:ui.MenuItemType.SELECTOR,selections:TEXT_ROTATE_CHILDREN,value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{var _a61,_b;const disposable=accessor.get(core.ICommandService).onCommandExecuted(c=>{var _a62,_b2;const id=c.id;if(id!==sheets.SetTextRotationCommand.id&&id!==sheets.SetSelectionsOperation.id&&id!==sheets.SetWorksheetActiveOperation.id)return;const primary2=(_a62=selectionManagerService.getCurrentLastSelection())==null?void 0:_a62.primary;let tr2;if(primary2!=null){const range=worksheet.getRange(primary2.startRow,primary2.startColumn);tr2=range==null?void 0:range.getTextRotation()}(tr2==null?void 0:tr2.v)===core.BooleanNumber.TRUE?subscriber.next("v"):subscriber.next((_b2=tr2&&tr2.a)!=null?_b2:defaultValue)}),primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let tr;if(primary!=null){const range=worksheet.getRange(primary.startRow,primary.startColumn);tr=range==null?void 0:range.getTextRotation()}return(tr==null?void 0:tr.v)===core.BooleanNumber.TRUE?subscriber.next("v"):subscriber.next((_b=tr&&tr.a)!=null?_b:defaultValue),disposable.dispose})),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(TextRotateMenuItemFactory,"TextRotateMenuItemFactory");function menuClipboardDisabledObservable(injector){return new rxjs.Observable(subscriber=>subscriber.next(!injector.get(ui.IClipboardInterfaceService).supportClipboard))}__name(menuClipboardDisabledObservable,"menuClipboardDisabledObservable");function CopyMenuItemFactory(accessor){return{id:SheetCopyCommand.name,commandId:SheetCopyCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.copy",icon:"Copy",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookCopyPermission],worksheetTypes:[sheets.WorksheetCopyPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CopyMenuItemFactory,"CopyMenuItemFactory");function PasteMenuItemFactory(accessor){return{id:SheetPasteCommand.name,commandId:SheetPasteCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.paste",icon:"PasteSpecial",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteMenuItemFactory,"PasteMenuItemFactory");const PASTE_SPECIAL_MENU_ID="sheet.menu.paste-special";function PasteSpacialMenuItemFactory(accessor){return{id:PASTE_SPECIAL_MENU_ID,type:ui.MenuItemType.SUBITEMS,icon:"PasteSpecial",title:"rightClick.pasteSpecial",hidden$:getObservableWithExclusiveRange$(accessor,ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET))}}__name(PasteSpacialMenuItemFactory,"PasteSpacialMenuItemFactory");function PasteValueMenuItemFactory(accessor){return{id:SheetPasteValueCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteValue",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteValueMenuItemFactory,"PasteValueMenuItemFactory");function PasteFormatMenuItemFactory(accessor){return{id:SheetPasteFormatCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteFormat",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteFormatMenuItemFactory,"PasteFormatMenuItemFactory");function PasteColWidthMenuItemFactory(accessor){return{id:SheetPasteColWidthCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteColWidth",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetColumnStylePermission,sheets.WorksheetEditPermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2))}}__name(PasteColWidthMenuItemFactory,"PasteColWidthMenuItemFactory");function PasteBesidesBorderMenuItemFactory(accessor){return{id:SheetPasteBesidesBorderCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.pasteBesidesBorder",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(getCurrentRangeDisable$(accessor,{rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetRowStylePermission,sheets.WorksheetSetColumnStylePermission],workbookTypes:[sheets.WorkbookEditablePermission]})),rxjs.map(([d1,d2])=>d1||d2)),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(PasteBesidesBorderMenuItemFactory,"PasteBesidesBorderMenuItemFactory");function FitContentMenuItemFactory(accessor){return{id:sheets.SetWorksheetRowIsAutoHeightCommand.id,type:ui.MenuItemType.BUTTON,icon:"AutoHeight",title:"rightClick.fitContent",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FitContentMenuItemFactory,"FitContentMenuItemFactory");function ColAutoWidthMenuItemFactory(accessor){return{id:SetWorksheetColAutoWidthCommand.id,type:ui.MenuItemType.BUTTON,icon:"AutoWidth",title:"rightClick.fitContent",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(ColAutoWidthMenuItemFactory,"ColAutoWidthMenuItemFactory");const SHEET_FROZEN_MENU_ID="sheet.menu.sheet-frozen";function SheetFrozenMenuItemFactory(accessor){return{id:SHEET_FROZEN_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(SheetFrozenMenuItemFactory,"SheetFrozenMenuItemFactory");const SHEET_FROZEN_HEADER_MENU_ID="sheet.header-menu.sheet-frozen";function SheetFrozenHeaderMenuItemFactory(accessor){return{id:SHEET_FROZEN_HEADER_MENU_ID,type:ui.MenuItemType.SUBITEMS,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(SheetFrozenHeaderMenuItemFactory,"SheetFrozenHeaderMenuItemFactory");function FrozenMenuItemFactory(accessor){return{id:SetSelectionFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freeze",icon:"FreezeToSelectedSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenMenuItemFactory,"FrozenMenuItemFactory");function FrozenRowMenuItemFactory(accessor){return{id:SetRowFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freezeRow",icon:"FreezeRowSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenRowMenuItemFactory,"FrozenRowMenuItemFactory");function FrozenColMenuItemFactory(accessor){return{id:SetColumnFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.freezeCol",icon:"FreezeColumnSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(FrozenColMenuItemFactory,"FrozenColMenuItemFactory");function CancelFrozenMenuItemFactory(accessor){return{id:sheets.CancelFrozenCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.cancelFreeze",icon:"CancelFreezeSingle",hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(CancelFrozenMenuItemFactory,"CancelFrozenMenuItemFactory");function HideRowMenuItemFactory(accessor){return{id:HideRowConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedRow",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetRowStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideRowMenuItemFactory,"HideRowMenuItemFactory");function HideColMenuItemFactory(accessor){return{id:HideColConfirmCommand.id,type:ui.MenuItemType.BUTTON,icon:"Hide",title:"rightClick.hideSelectedColumn",disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]}),hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET)}}__name(HideColMenuItemFactory,"HideColMenuItemFactory");function ShowRowMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),commandService=accessor.get(core.ICommandService),affectedCommands=[sheets.SetSelectionsOperation,sheets.SetRowHiddenMutation,sheets.SetRowVisibleMutation].map(c=>c.id);return{id:sheets.SetSelectedRowsVisibleCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.showHideRow",hidden$:deriveStateFromActiveSheet$(univerInstanceService,!0,({worksheet})=>new rxjs.Observable(subscriber=>{function hasHiddenRowsInSelections(){var _a61;const rowRanges=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range).filter(r2=>r2.rangeType===core.RANGE_TYPE.ROW);return!!(rowRanges!=null&&rowRanges.some(range=>{for(let r2=range.startRow;r2<=range.endRow;r2++)if(!worksheet.getRowRawVisible(r2))return!0;return!1}))}__name(hasHiddenRowsInSelections,"hasHiddenRowsInSelections");const disposable=commandService.onCommandExecuted(command=>{affectedCommands.findIndex(c=>c===command.id)!==-1&&subscriber.next(!hasHiddenRowsInSelections())});return subscriber.next(!hasHiddenRowsInSelections()),()=>disposable.dispose()})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ShowRowMenuItemFactory,"ShowRowMenuItemFactory");function ShowColMenuItemFactory(accessor){const univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),commandService=accessor.get(core.ICommandService),affectedCommands=[sheets.SetSelectionsOperation,sheets.SetColHiddenMutation,sheets.SetColVisibleMutation].map(c=>c.id);return{id:sheets.SetSelectedColsVisibleCommand.id,type:ui.MenuItemType.BUTTON,title:"rightClick.showHideColumn",hidden$:deriveStateFromActiveSheet$(univerInstanceService,!0,({worksheet})=>new rxjs.Observable(subscriber=>{function hasHiddenColsInSelections(){var _a61;const colRanges=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range).filter(r2=>r2.rangeType===core.RANGE_TYPE.COLUMN);return!colRanges||colRanges.length===0?!1:!!colRanges.some(range=>{for(let r2=range.startColumn;r2<=range.endColumn;r2++)if(!worksheet.getColVisible(r2))return!0;return!1})}__name(hasHiddenColsInSelections,"hasHiddenColsInSelections");const disposable=commandService.onCommandExecuted(commandInfo=>{affectedCommands.findIndex(c=>c===commandInfo.id)!==-1&&subscriber.next(!hasHiddenColsInSelections())});return subscriber.next(!hasHiddenColsInSelections()),()=>disposable.dispose()})),disabled$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetSetColumnStylePermission,sheets.WorksheetEditPermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(ShowColMenuItemFactory,"ShowColMenuItemFactory");function SetRowHeightMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=0;return{id:sheets.SetRowHeightCommand.id,type:ui.MenuItemType.BUTTON,icon:"AdjustHeight",label:{name:MENU_ITEM_INPUT_COMPONENT,props:{prefix:"rightClick.rowHeight",suffix:"px",min:2,max:1e3}},value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{function update(){var _a61;const primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary,rowHeight=primary?worksheet.getRowHeight(primary.startRow):defaultValue;subscriber.next(rowHeight)}__name(update,"update");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetRowIsAutoHeightMutation.id)return update()});return update(),disposable.dispose})),hidden$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetRowStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(SetRowHeightMenuItemFactory,"SetRowHeightMenuItemFactory");function SetColWidthMenuItemFactory(accessor){const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),defaultValue=0;return{id:sheets.SetColWidthCommand.id,type:ui.MenuItemType.BUTTON,icon:"AdjustWidth",label:{name:MENU_ITEM_INPUT_COMPONENT,props:{prefix:"rightClick.columnWidth",suffix:"px",min:2,max:1e3}},value$:deriveStateFromActiveSheet$(univerInstanceService,defaultValue,({worksheet})=>new rxjs.Observable(subscriber=>{function update(){var _a61;const primary=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.primary;let colWidth=defaultValue;primary!=null&&(colWidth=worksheet.getColumnWidth(primary.startColumn)),subscriber.next(colWidth)}__name(update,"update");const disposable=commandService.onCommandExecuted(c=>{const id=c.id;if(id===sheets.SetRangeValuesMutation.id||id===sheets.SetSelectionsOperation.id||id===sheets.SetWorksheetColWidthMutation.id)return update()});return update(),disposable.dispose})),hidden$:getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(SetColWidthMenuItemFactory,"SetColWidthMenuItemFactory");function getFontStyleAtCursor(accessor){var _a61;const univerInstanceService=accessor.get(core.IUniverInstanceService),textSelectionService=accessor.get(docs.DocSelectionManagerService),editorDataModel=univerInstanceService.getUniverDocInstance(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),activeTextRange=textSelectionService.getActiveTextRange();if(editorDataModel==null||activeTextRange==null)return null;const textRuns=(_a61=editorDataModel.getBody())==null?void 0:_a61.textRuns;if(textRuns==null)return;const{startOffset}=activeTextRange;return textRuns.find(({st,ed})=>startOffset>=st&&startOffset<=ed)}__name(getFontStyleAtCursor,"getFontStyleAtCursor");var __defProp$E=Object.defineProperty,__getOwnPropDesc$E=Object.getOwnPropertyDescriptor,__decorateClass$E=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$E(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$E(target,key,result),result},"__decorateClass$E"),__decorateParam$E=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$E");const FREEZE_ROW_MAIN_NAME="__SpreadsheetFreezeRowMainName__",FREEZE_ROW_HEADER_NAME="__SpreadsheetFreezeRowHeaderName__",FREEZE_COLUMN_MAIN_NAME="__SpreadsheetFreezeColumnMainName__",FREEZE_COLUMN_HEADER_NAME="__SpreadsheetFreezeColumnHeaderName__",FREEZE_SIZE_NORMAL=2,AUXILIARY_CLICK_HIDDEN_OBJECT_TRANSPARENCY=.01,FREEZE_PERMISSION_CHECK=core.createInterceptorKey("freezePermissionCheck");var _a18;exports.HeaderFreezeRenderController=(_a18=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_selectionManagerService,_scrollManagerService,_themeService,_sheetInterceptorService,_injector){super();__publicField(this,"_rowFreezeHeaderRect");__publicField(this,"_rowFreezeMainRect");__publicField(this,"_columnFreezeHeaderRect");__publicField(this,"_columnFreezeMainRect");__publicField(this,"_freezeDownSubs");__publicField(this,"_freezePointerEnterSubs");__publicField(this,"_freezePointerLeaveSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_changeToRow",-1);__publicField(this,"_changeToColumn",-1);__publicField(this,"_changeToOffsetX",0);__publicField(this,"_changeToOffsetY",0);__publicField(this,"_activeViewport",null);__publicField(this,"_freezeNormalHeaderColor","");__publicField(this,"_freezeNormalMainColor","");__publicField(this,"_freezeActiveColor","");__publicField(this,"_freezeHoverColor","");__publicField(this,"_lastFreeze");__publicField(this,"interceptor",new core.InterceptorManager({FREEZE_PERMISSION_CHECK}));this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._selectionManagerService=_selectionManagerService,this._scrollManagerService=_scrollManagerService,this._themeService=_themeService,this._sheetInterceptorService=_sheetInterceptorService,this._injector=_injector,this._initialize()}dispose(){super.dispose()}_initialize(){this._skeletonListener(),this._commandExecutedListener(),this._themeChangeListener(),this._interceptorCommands(),this._bindViewportScroll(),this._zoomRefresh()}_createFreeze(freezeDirectionType=0,freezeConfig){var _a61;const config=freezeConfig!=null?freezeConfig:this._getFreeze();if(config==null)return null;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton,{startRow:freezeRow,startColumn:freezeColumn}=config,position=this._getPositionByIndex(freezeRow,freezeColumn);if(position==null||skeleton==null)return null;const sheetObject=this._getSheetObject(),engine=sheetObject.engine,canvasMaxWidth=(engine==null?void 0:engine.width)||0,canvasMaxHeight=(engine==null?void 0:engine.height)||0,scene=sheetObject.scene,{startX,startY}=position,{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,shapeWidth=canvasMaxWidth>columnTotalWidth+rowHeaderWidthAndMarginLeft?canvasMaxWidth:columnTotalWidth+columnHeaderHeightAndMarginTop,shapeHeight=canvasMaxHeight>rowTotalHeight+columnHeaderHeightAndMarginTop?canvasMaxHeight:rowTotalHeight+columnHeaderHeightAndMarginTop;this._changeToRow=freezeRow,this._changeToColumn=freezeColumn,this._changeToOffsetX=startX,this._changeToOffsetY=startY;const scale=Math.max(scene.scaleX,scene.scaleY);let FREEZE_SIZE=FREEZE_SIZE_NORMAL/(scale<1?1:scale);if(freezeDirectionType===0){(freezeRow===-1||freezeRow===0)&&(FREEZE_SIZE=FREEZE_SIZE*2);const FREEZE_OFFSET=FREEZE_SIZE;this._rowFreezeHeaderRect=new engineRender.Rect(FREEZE_ROW_HEADER_NAME,{fill:this._freezeNormalHeaderColor,width:rowHeaderWidthAndMarginLeft,height:FREEZE_SIZE,left:0,top:startY-FREEZE_OFFSET,zIndex:3});let fill=this._freezeNormalHeaderColor;(freezeRow===-1||freezeRow===0)&&(fill=this._freezeNormalMainColor),this._rowFreezeMainRect=new engineRender.Rect(FREEZE_ROW_MAIN_NAME,{fill,width:shapeWidth*2/scale,height:FREEZE_SIZE,left:rowHeaderWidthAndMarginLeft,top:startY-FREEZE_OFFSET,zIndex:3}),scene.addObjects([this._rowFreezeHeaderRect,this._rowFreezeMainRect],SHEET_COMPONENT_HEADER_LAYER_INDEX)}else{(freezeColumn===-1||freezeColumn===0)&&(FREEZE_SIZE=FREEZE_SIZE*2);const FREEZE_OFFSET=FREEZE_SIZE;this._columnFreezeHeaderRect=new engineRender.Rect(FREEZE_COLUMN_HEADER_NAME,{fill:this._freezeNormalHeaderColor,width:FREEZE_SIZE,height:columnHeaderHeightAndMarginTop,left:startX-FREEZE_OFFSET,top:0,zIndex:3});let fill=this._freezeNormalHeaderColor;(freezeColumn===-1||freezeColumn===0)&&(fill=this._freezeNormalMainColor),this._columnFreezeMainRect=new engineRender.Rect(FREEZE_COLUMN_MAIN_NAME,{fill,width:FREEZE_SIZE,height:shapeHeight*2/scale,left:startX-FREEZE_OFFSET,top:columnHeaderHeightAndMarginTop,zIndex:3}),scene.addObjects([this._columnFreezeHeaderRect,this._columnFreezeMainRect],SHEET_COMPONENT_HEADER_LAYER_INDEX)}this._eventBinding(freezeDirectionType)}_eventBinding(freezeDirectionType=0){let freezeObjectHeaderRect=this._rowFreezeHeaderRect,freezeObjectMainRect=this._rowFreezeMainRect;freezeDirectionType===1&&(freezeObjectHeaderRect=this._columnFreezeHeaderRect,freezeObjectMainRect=this._columnFreezeMainRect);const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject;if(this._freezePointerEnterSubs=new rxjs.Subscription,this._freezePointerLeaveSubs=new rxjs.Subscription,this._freezeDownSubs=new rxjs.Subscription,freezeObjectMainRect){const _freezeObjectMainRectEnterSub=freezeObjectMainRect.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeHoverColor,zIndex:4}),scene.setCursor(engineRender.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(_freezeObjectMainRectEnterSub);const _freezeObjectMainPointerLeaveSub=freezeObjectMainRect.onPointerLeave$.subscribeEvent(()=>{freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),scene.resetCursor()});this._freezePointerLeaveSubs.add(_freezeObjectMainPointerLeaveSub)}if(freezeObjectHeaderRect){const _freezeObjHeaderPointerEnterSub=freezeObjectHeaderRect.onPointerEnter$.subscribeEvent(()=>{if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeHoverColor,zIndex:4}),scene.setCursor(engineRender.CURSOR_TYPE.GRAB)});this._freezePointerEnterSubs.add(_freezeObjHeaderPointerEnterSub);const _freezeObjHeaderPointerLeaveSub=freezeObjectHeaderRect.onPointerLeave$.subscribeEvent(()=>{freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor,zIndex:3}),scene.resetCursor()});this._freezePointerLeaveSubs.add(_freezeObjHeaderPointerLeaveSub)}const s1=freezeObjectHeaderRect==null?void 0:freezeObjectHeaderRect.onPointerDown$.subscribeEvent(evt=>{this._freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType)});s1&&this._freezeDownSubs.add(s1);const s2=freezeObjectMainRect==null?void 0:freezeObjectMainRect.onPointerDown$.subscribeEvent(evt=>{this._freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType)});s2&&this._freezeDownSubs.add(s2)}_getCurrentLastVisible(){var _a61,_b,_c,_d,_e,_f,_g;const sheetObject=this._getSheetObject();if(sheetObject==null)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const scene=sheetObject.scene,scale=Math.max(scene.scaleX,scene.scaleY),currentScroll=this._scrollManagerService.getCurrentScrollState(),skeletonViewHeight=(sheetObject.engine.height-skeleton.columnHeaderHeight)/scale,skeletonViewWidth=(sheetObject.engine.width-skeleton.rowHeaderWidth)/scale,startRow=(_b=currentScroll==null?void 0:currentScroll.sheetViewStartRow)!=null?_b:0,startHeight=startRow===0?-((_c=currentScroll==null?void 0:currentScroll.offsetY)!=null?_c:0):skeleton.rowHeightAccumulation[startRow-1]-((_d=currentScroll==null?void 0:currentScroll.offsetY)!=null?_d:0);let lastRow=0,hadFind=!1;for(let i=startRow,len=skeleton.rowHeightAccumulation.length;i<len;i++)if(skeleton.rowHeightAccumulation[i]-startHeight>skeletonViewHeight){lastRow=i,hadFind=!0;break}hadFind||(lastRow=skeleton.rowHeightAccumulation.length-1);const startColumn=(_e=currentScroll==null?void 0:currentScroll.sheetViewStartColumn)!=null?_e:0,startWidth=startColumn===0?-((_f=currentScroll==null?void 0:currentScroll.offsetX)!=null?_f:0):skeleton.columnWidthAccumulation[startColumn-1]-((_g=currentScroll==null?void 0:currentScroll.offsetX)!=null?_g:0);let lastColumn=0,hadFindCol=!1;for(let i=startColumn,len=skeleton.columnWidthAccumulation.length;i<len;i++)if(skeleton.columnWidthAccumulation[i]-startWidth>skeletonViewWidth){lastColumn=i,hadFindCol=!0;break}return hadFindCol||(lastColumn=skeleton.columnWidthAccumulation.length-1),{lastRow,lastColumn}}_getActiveViewport(evt){var _a61;const viewports=(_a61=this._getSheetObject())==null?void 0:_a61.scene.getViewports();return viewports&&viewports.find(i=>i.isHit(new engineRender.Vector2(evt.offsetX,evt.offsetY)))||null}_freezeDown(evt,freezeObjectHeaderRect,freezeObjectMainRect,freezeDirectionType=0){var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const sheetObject=this._getSheetObject();if(sheetObject==null)return;if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;const{scene}=sheetObject;scene.setCursor(engineRender.CURSOR_TYPE.GRABBING),scene.disableObjectsEvent();const last=this._getCurrentLastVisible(),lastRowY=last===void 0?Number.POSITIVE_INFINITY:skeleton.rowHeightAccumulation[last.lastRow],lastColumnX=last===void 0?Number.POSITIVE_INFINITY:skeleton.columnWidthAccumulation[last.lastColumn-1]+skeleton.rowHeaderWidth;this._activeViewport=null;const oldFreeze=this._getFreeze();oldFreeze&&(this._changeToColumn=oldFreeze.startColumn,this._changeToRow=oldFreeze.startRow),this._scenePointerMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{var _a62,_b,_c,_d;const activeViewport=this._getActiveViewport(moveEvt),{startX,startY,row,column}=getCoordByOffset(moveEvt.offsetX,moveEvt.offsetY,scene,skeleton,activeViewport||void 0,!0);if(!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(!0,null))return!1;scene.setCursor(engineRender.CURSOR_TYPE.GRABBING);const FREEZE_SIZE=FREEZE_SIZE_NORMAL/Math.max(scene.scaleX,scene.scaleY);freezeDirectionType===0?((_a62=freezeObjectHeaderRect.transformByState({top:Math.min(startY,lastRowY)-FREEZE_SIZE/2}))==null||_a62.setProps({fill:this._freezeActiveColor}),(_b=freezeObjectMainRect.transformByState({top:Math.min(startY,lastRowY)-FREEZE_SIZE/2}))==null||_b.setProps({fill:this._freezeNormalHeaderColor}),this._changeToRow=last===void 0?row:Math.min(row,last.lastRow),this._changeToOffsetY=Math.min(startY,lastRowY),this._activeViewport=activeViewport):((_c=freezeObjectHeaderRect.transformByState({left:Math.min(startX,lastColumnX)-FREEZE_SIZE/2}))==null||_c.setProps({fill:this._freezeActiveColor}),(_d=freezeObjectMainRect.transformByState({left:Math.min(startX,lastColumnX)-FREEZE_SIZE/2}))==null||_d.setProps({fill:this._freezeNormalHeaderColor}),this._changeToColumn=last===void 0?column:Math.min(column,last.lastColumn),this._changeToOffsetX=startX,this._activeViewport=activeViewport)}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a62,_b;scene.resetCursor(),scene.enableObjectsEvent(),this._clearObserverEvent();const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton;freezeDirectionType===0&&(this._changeToRow===0||this._changeToRow===-1)||freezeDirectionType===1&&(this._changeToColumn===0||this._changeToColumn===-1)?(freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor}),freezeObjectMainRect.setProps({fill:this._freezeNormalMainColor})):(freezeObjectHeaderRect==null||freezeObjectHeaderRect.setProps({fill:this._freezeNormalHeaderColor}),freezeObjectMainRect==null||freezeObjectMainRect.setProps({fill:this._freezeNormalHeaderColor}));const FREEZE_SIZE=FREEZE_SIZE_NORMAL/Math.max(scene.scaleX,scene.scaleY);freezeDirectionType===0?(this._changeToRow===0||this._changeToRow===-1)&&(freezeObjectHeaderRect.transformByState({top:columnHeaderHeightAndMarginTop-FREEZE_SIZE}),freezeObjectMainRect.transformByState({top:columnHeaderHeightAndMarginTop-FREEZE_SIZE})):(this._changeToColumn===0||this._changeToColumn===-1)&&(freezeObjectHeaderRect.transformByState({left:rowHeaderWidthAndMarginLeft-FREEZE_SIZE}),freezeObjectMainRect.transformByState({left:rowHeaderWidthAndMarginLeft-FREEZE_SIZE}));const sheetViewScroll=this._scrollManagerService.getCurrentScrollState()||{sheetViewStartRow:0,sheetViewStartColumn:0},{sheetViewStartRow,sheetViewStartColumn}=sheetViewScroll;if(sheetViewStartColumn==null||sheetViewStartRow==null)return;const workbook=this._context.unit,worksheet=workbook.getActiveSheet();if(!worksheet)return;const oldFreeze2=(_a62=worksheet.getConfig())==null?void 0:_a62.freeze;let xSplit=(oldFreeze2==null?void 0:oldFreeze2.xSplit)||0,ySplit=(oldFreeze2==null?void 0:oldFreeze2.ySplit)||0;const viewPortKey=(_b=this._activeViewport)==null?void 0:_b.viewportKey;freezeDirectionType===0&&(!viewPortKey||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP?ySplit=this._changeToRow-(oldFreeze2.startRow-oldFreeze2.ySplit):ySplit=this._changeToRow-sheetViewStartRow,ySplit=ySplit<0?0:ySplit),freezeDirectionType===1&&(!viewPortKey||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT||viewPortKey===engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT?xSplit=this._changeToColumn-(oldFreeze2.startColumn-oldFreeze2.xSplit):xSplit=this._changeToColumn-sheetViewStartColumn,xSplit=xSplit<0?0:xSplit),this._commandService.executeCommand(sheets.SetFrozenCommand.id,{startRow:ySplit===0?-1:this._changeToRow,startColumn:xSplit===0?-1:this._changeToColumn,ySplit,xSplit,unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId()})})}_getViewports(){const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject,viewColumnLeft=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT),viewColumnRight=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT),viewRowTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP),viewRowBottom=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM),viewLeftTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),viewMainLeftTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP),viewMainLeft=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT),viewMainTop=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(!(viewColumnLeft==null||viewColumnRight==null||viewRowTop==null||viewRowBottom==null||viewLeftTop==null||viewMain==null||viewMainLeftTop==null||viewMainLeft==null||viewMainTop==null))return{viewMain,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewColumnRight,viewRowTop,viewRowBottom,viewLeftTop}}_bindViewportScroll(){const viewports=this._getViewports();if(!viewports)return;const{viewRowBottom,viewColumnRight,viewMainLeft,viewMainTop}=viewports;this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(param=>{if(!param)return;const{scrollX,scrollY,viewportScrollX,viewportScrollY}=param;viewRowBottom.isActive&&viewRowBottom.updateScrollVal({scrollY,viewportScrollY}),viewColumnRight.isActive&&viewColumnRight.updateScrollVal({scrollX,viewportScrollX}),viewMainLeft.isActive&&viewMainLeft.updateScrollVal({scrollY,viewportScrollY}),viewMainTop.isActive&&viewMainTop.updateScrollVal({scrollX,viewportScrollX})}))}_updateViewport(row=-1,column=-1,ySplit=0,xSplit=0,resetScroll=3){var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,viewports=this._getViewports();if(!viewports)return;const{viewMain,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewColumnRight,viewRowTop,viewRowBottom,viewLeftTop}=viewports;viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewLeftTop.resizeWhenFreezeChange({left:0,top:0,width:rowHeaderWidthAndMarginLeft,height:columnHeaderHeightAndMarginTop});let isTopView=!0,isLeftView=!0;viewMainLeftTop.enable(),(row===-1||row===0)&&(isTopView=!1),(column===-1||column===0)&&(isLeftView=!1);const startSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(row-ySplit,column-xSplit),endSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(row,column);if(viewMainLeftTop.disable(),viewMainTop.disable(),viewMainLeft.disable(),viewRowTop.disable(),viewColumnLeft.disable(),viewMainLeftTop.resetPadding(),viewMainTop.resetPadding(),viewMainLeft.resetPadding(),viewRowTop.resetPadding(),viewColumnLeft.resetPadding(),isTopView===!1&&isLeftView===!1)viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,bottom:0,right:0}),viewMain.resetPadding();else if(isTopView===!0&&isLeftView===!1){const topGap=endSheetView.startY-startSheetView.startY;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,right:0}),viewMain.setPadding({startY:startSheetView.startY,endY:endSheetView.startY,startX:0,endX:0}),resetScroll&2&&this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:0,offsetY:0}),viewMainTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,height:topGap,right:0}),viewMainTop.updateScrollVal({viewportScrollY:startSheetView.startY,rawScrollX:viewMain.scrollX,viewportScrollX:viewMain.viewportScrollX}),viewRowTop.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,width:rowHeaderWidthAndMarginLeft,height:topGap}),viewRowTop.updateScrollVal({viewportScrollY:startSheetView.startY}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewMainTop.enable(),viewRowTop.enable()}else if(isTopView===!1&&isLeftView===!0){const leftGap=endSheetView.startX-startSheetView.startX;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop,bottom:0,right:0}),viewMain.setPadding({startX:startSheetView.startX,endX:endSheetView.startX,startY:0,endY:0}),resetScroll&1&&this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartColumn:0,offsetX:0}),viewMainLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,width:leftGap,bottom:0,right:0}),viewMainLeft.updateScrollVal({viewportScrollX:startSheetView.startX,rawScrollY:viewMain.scrollY,viewportScrollY:viewMain.viewportScrollY}),viewColumnLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,width:leftGap,height:columnHeaderHeightAndMarginTop}),viewColumnLeft.updateScrollVal({viewportScrollX:startSheetView.startX}),viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewMainLeft.enable(),viewColumnLeft.enable()}else{const leftGap=endSheetView.startX-startSheetView.startX,topGap=endSheetView.startY-startSheetView.startY;viewMain.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,right:0}),viewMain.setPadding({startY:startSheetView.startY,endY:endSheetView.startY,startX:startSheetView.startX,endX:endSheetView.startX}),resetScroll&&this._commandService.executeCommand(ScrollCommand.id,{...resetScroll&1?{sheetViewStartColumn:0,offsetX:0}:null,...resetScroll&2?{sheetViewStartRow:0,offsetY:0}:null}),viewMainLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop+topGap,width:leftGap,bottom:0}),viewMainLeft.updateScrollVal({viewportScrollX:startSheetView.startX,rawScrollY:viewMain.scrollY,viewportScrollY:viewMain.viewportScrollY}),viewMainTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:columnHeaderHeightAndMarginTop,height:topGap,right:0}),viewMainTop.updateScrollVal({viewportScrollY:startSheetView.startY,rawScrollX:viewMain.scrollX,viewportScrollX:viewMain.viewportScrollX}),viewMainLeftTop.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:columnHeaderHeightAndMarginTop,width:leftGap,height:topGap}),viewMainLeftTop.updateScrollVal({viewportScrollX:startSheetView.startX,viewportScrollY:startSheetView.startY}),viewRowTop.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop,width:rowHeaderWidthAndMarginLeft,height:topGap}),viewRowTop.updateScrollVal({viewportScrollY:startSheetView.startY}),viewRowBottom.resizeWhenFreezeChange({left:0,top:columnHeaderHeightAndMarginTop+topGap,bottom:0,width:rowHeaderWidthAndMarginLeft}),viewColumnLeft.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft,top:0,width:leftGap,height:columnHeaderHeightAndMarginTop}),viewColumnLeft.updateScrollVal({viewportScrollX:startSheetView.startX}),viewColumnRight.resizeWhenFreezeChange({left:rowHeaderWidthAndMarginLeft+leftGap,top:0,height:columnHeaderHeightAndMarginTop,right:0}),viewMainLeftTop.enable(),viewMainTop.enable(),viewMainLeft.enable(),viewRowTop.enable(),viewColumnLeft.enable()}}_skeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{[sheets.SetWorksheetActiveOperation.id,sheets.InsertRangeMoveDownCommand.id,sheets.InsertRangeMoveRightCommand.id].includes((param==null?void 0:param.commandId)||"")&&this._refreshCurrent()})))}_refreshCurrent(){const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const freeze=worksheet.getConfig().freeze,{startRow=-1,startColumn=-1,ySplit=0,xSplit=0}=freeze;this._refreshFreeze(startRow,startColumn,ySplit,xSplit,0)}_themeChangeListener(){this._themeChange(this._themeService.getCurrentTheme()),this.disposeWithMe(this._themeService.currentTheme$.subscribe(style=>{this._clearFreeze(),this._themeChange(style),this._refreshCurrent()}))}_themeChange(style){this._freezeNormalHeaderColor=style.grey400,this._freezeNormalMainColor=new core.ColorKit(style.grey400).setAlpha(AUXILIARY_CLICK_HIDDEN_OBJECT_TRANSPARENCY).toRgbString(),this._freezeActiveColor=style.primaryColor,this._freezeHoverColor=style.grey500}_interceptorCommands(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:__name(command=>{const empty={redos:[],undos:[]},freeze=this._getFreeze();if(!freeze)return empty;const createFreezeMutationAndRefresh=__name(newFreeze=>{const workbook=this._context.unit,unitId=workbook.getUnitId(),worksheet=workbook.getActiveSheet();if(!worksheet)return empty;const subUnitId=worksheet.getSheetId();this._refreshFreeze(newFreeze.startRow,newFreeze.startColumn,newFreeze.ySplit,newFreeze.xSplit,0);const redoMutationParams={...newFreeze,unitId,subUnitId,resetScroll:!1},undoMutationParams=sheets.SetFrozenMutationFactory(this._injector,redoMutationParams);return{undos:[{id:sheets.SetFrozenMutation.id,params:undoMutationParams}],redos:[{id:sheets.SetFrozenMutation.id,params:redoMutationParams}]}},"createFreezeMutationAndRefresh");if(command.id===sheets.InsertRowCommand.id){const params=command.params,{range,direction}=params,insertCount=range.endRow-range.startRow+1;if(range.startRow+1<freeze.startRow||range.startRow+1===freeze.startRow&&direction===core.Direction.UP){const newFreeze={...freeze,startRow:Math.max(1,freeze.startRow+insertCount),ySplit:Math.max(1,freeze.ySplit+insertCount)};return createFreezeMutationAndRefresh(newFreeze)}}if(command.id===sheets.InsertColCommand.id){const params=command.params,{range,direction}=params,insertCount=range.endColumn-range.startColumn+1;if(range.startColumn+1<freeze.startColumn||range.startColumn+1===freeze.startColumn&&direction===core.Direction.LEFT){const newFreeze={...freeze,startColumn:Math.max(1,freeze.startColumn+insertCount),xSplit:Math.max(1,freeze.xSplit+insertCount)};return createFreezeMutationAndRefresh(newFreeze)}}if(command.id===sheets.MoveColsCommand.id){const selections=this._selectionManagerService.getCurrentSelections(),{fromRange:{startColumn:fromCol},toRange:{startColumn:toCol}}=command.params,filteredSelections=selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.COLUMN&&selection.range.startColumn<=fromCol&&fromCol<=selection.range.endColumn);if(!(filteredSelections!=null&&filteredSelections.length))return empty;const sourceRange=filteredSelections[0].range,targetRange={...sourceRange,startColumn:toCol,endColumn:toCol+sourceRange.endColumn-sourceRange.startColumn};if(!freeze||freeze.startColumn<=0||sourceRange.startColumn>=freeze.startColumn&&targetRange.startColumn>=freeze.startColumn||sourceRange.startColumn===targetRange.startColumn||sourceRange.endColumn<freeze.startColumn&&targetRange.startColumn<freeze.startColumn)return empty;const totalColCount=sourceRange.endColumn-sourceRange.startColumn+1,moveFreezeColCount=Math.max(Math.min(freeze.startColumn,sourceRange.endColumn+1)-sourceRange.startColumn,0);let newStartColumn,newXSplit;targetRange.startColumn>=freeze.startColumn?(newStartColumn=Math.max(freeze.startColumn-moveFreezeColCount,1),newXSplit=Math.max(freeze.xSplit-moveFreezeColCount,1)):(newStartColumn=freeze.startColumn+totalColCount-moveFreezeColCount,newXSplit=freeze.xSplit+totalColCount-moveFreezeColCount);const redoMutationParams={...freeze,startColumn:newStartColumn,xSplit:newXSplit};return createFreezeMutationAndRefresh(redoMutationParams)}if(command.id===sheets.MoveRowsCommand.id){const selections=this._selectionManagerService.getCurrentSelections(),{fromRange:{startRow:fromRow},toRange:{startRow:toRow}}=command.params,filteredSelections=selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.ROW&&selection.range.startRow<=fromRow&&fromRow<=selection.range.endRow);if(!(filteredSelections!=null&&filteredSelections.length))return empty;const sourceRange=filteredSelections[0].range,targetRange={...sourceRange,startRow:toRow,endRow:toRow+sourceRange.endRow-sourceRange.startRow};if(!freeze||freeze.startRow<=0||sourceRange.startRow>=freeze.startRow&&targetRange.startRow>=freeze.startRow||sourceRange.startRow===targetRange.startRow||sourceRange.endRow<freeze.startRow&&targetRange.startRow<freeze.startRow)return empty;const totalColCount=sourceRange.endRow-sourceRange.startRow+1,moveFreezeColCount=Math.max(Math.min(freeze.startRow,sourceRange.endRow+1)-sourceRange.startRow,0);let newStartRow,newYSplit;targetRange.startRow>=freeze.startRow?(newStartRow=Math.max(freeze.startRow-moveFreezeColCount,1),newYSplit=Math.max(freeze.ySplit-moveFreezeColCount,1)):(newStartRow=freeze.startRow+totalColCount-moveFreezeColCount,newYSplit=freeze.ySplit+totalColCount-moveFreezeColCount);const redoMutationParams={...freeze,startRow:newStartRow,ySplit:newYSplit};return createFreezeMutationAndRefresh(redoMutationParams)}if(command.id===sheets.RemoveColCommand.id||command.id===sheets.RemoveRowCommand.id){const params=command.params,range=params.range;if(range.rangeType===core.RANGE_TYPE.COLUMN&&range.startColumn<freeze.startColumn){const deleteFreezeColCount=Math.min(freeze.startColumn,range.endColumn+1)-range.startColumn,newFreeze={...freeze,startColumn:Math.max(1,freeze.startColumn-deleteFreezeColCount),xSplit:Math.max(1,freeze.xSplit-deleteFreezeColCount)};return createFreezeMutationAndRefresh(newFreeze)}if(params.range.rangeType===core.RANGE_TYPE.ROW&&range.startRow<freeze.startRow){const deleteFreezeRowCount=Math.min(freeze.startRow,range.endRow+1)-range.startRow,newFreeze={...freeze,startRow:Math.max(1,freeze.startRow-deleteFreezeRowCount),ySplit:Math.max(1,freeze.ySplit-deleteFreezeRowCount)};return createFreezeMutationAndRefresh(newFreeze)}}return empty},"getMutations")}))}_commandExecutedListener(){const updateCommandList=[sheets.SetFrozenMutation.id,SetZoomRatioOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(updateCommandList.includes(command.id)){const lastFreeze=this._lastFreeze,workbook=this._context.unit,worksheet=workbook.getActiveSheet(),params=command.params,{unitId,subUnitId}=params;if(!(unitId===workbook.getUnitId()&&subUnitId===(worksheet==null?void 0:worksheet.getSheetId())))return;const freeze=worksheet.getConfig().freeze;if(this._lastFreeze=freeze,freeze==null)return;let resetScroll=0;const{startRow=-1,startColumn=-1,ySplit=0,xSplit=0}=freeze;(!lastFreeze||lastFreeze.startRow!==startRow||lastFreeze.ySplit!==ySplit)&&(resetScroll|=2),(!lastFreeze||lastFreeze.startColumn!==startColumn||lastFreeze.xSplit!==xSplit)&&(resetScroll|=1),params.resetScroll===!1&&(resetScroll=0),this._refreshFreeze(startRow,startColumn,ySplit,xSplit,resetScroll)}else if(command.id===sheets.SetWorksheetRowHeightMutation.id){const freeze=this._getFreeze(),isRefresh=freeze&&command.params.ranges.some(i=>i.startRow<freeze.startRow);command.params&&isRefresh&&this._refreshCurrent()}else if(command.id===sheets.SetWorksheetColWidthMutation.id){const freeze=this._getFreeze();command.params&&freeze&&command.params.ranges.some(i=>i.startColumn<freeze.startColumn)&&this._refreshCurrent()}else if(command.id===sheets.SetWorksheetRowAutoHeightMutation.id){const params=command.params,freeze=this._getFreeze();if(freeze&&freeze.startRow>-1&¶ms.rowsAutoHeightInfo.some(info=>info.row<freeze.startRow)){const subscription=this._sheetSkeletonManagerService.currentSkeleton$.subscribe(()=>{this._refreshCurrent(),setTimeout(()=>{subscription.unsubscribe()})})}}else if(command.id===sheets.SetColHiddenMutation.id||command.id===sheets.SetColVisibleMutation.id){const params=command.params,freeze=this._getFreeze(),ranges=params.ranges;freeze&&freeze.startColumn>-1&&ranges.some(range=>range.startColumn<freeze.startColumn)&&this._refreshCurrent()}else if(command.id===sheets.SetRowHiddenMutation.id||command.id===sheets.SetRowVisibleMutation.id){const params=command.params,freeze=this._getFreeze(),ranges=params.ranges;freeze&&freeze.startRow>-1&&ranges.some(range=>range.startRow<freeze.startRow)&&this._refreshCurrent()}}))}_zoomRefresh(){const sheetObject=this._getSheetObject();if(sheetObject==null)return;const{scene}=sheetObject;scene.onTransformChange$.subscribeEvent(state=>{state.type===engineRender.TRANSFORM_CHANGE_OBSERVABLE_TYPE.scale&&this._refreshCurrent()})}_clearObserverEvent(){var _a61,_b;this._getSheetObject()!=null&&((_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_clearFreeze(){var _a61,_b,_c,_d,_e,_f;(_a61=this._rowFreezeHeaderRect)==null||_a61.dispose(),(_b=this._rowFreezeMainRect)==null||_b.dispose(),(_c=this._columnFreezeHeaderRect)==null||_c.dispose(),(_d=this._columnFreezeMainRect)==null||_d.dispose(),this._getSheetObject()!=null&&([this._freezeDownSubs,this._freezePointerEnterSubs,this._freezePointerLeaveSubs].forEach(s=>{s==null||s.unsubscribe()}),this._freezeDownSubs=null,this._freezePointerEnterSubs=null,this._freezePointerLeaveSubs=null,(_e=this._scenePointerMoveSub)==null||_e.unsubscribe(),(_f=this._scenePointerUpSub)==null||_f.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null)}_getPositionByIndex(row,column){var _a61;if(this._getSheetObject()==null)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton,position=skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(row,column);if(skeleton==null)return;if(position!=null&&(!isNaN(position.endX)||!isNaN(position.endY)))return position;const{rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton;return{startX:rowHeaderWidthAndMarginLeft,endX:rowHeaderWidthAndMarginLeft,startY:columnHeaderHeightAndMarginTop,endY:columnHeaderHeightAndMarginTop}}_getFreeze(){var _a61;const config=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton.getWorksheetConfig();if(config!=null)return config.freeze}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_refreshFreeze(startRow,startColumn,ySplit,xSplit,resetScroll){var _a61;const newFreeze={startRow,startColumn,ySplit,xSplit};this._clearFreeze(),this._createFreeze(0,newFreeze),this._createFreeze(1,newFreeze),this._updateViewport(startRow,startColumn,ySplit,xSplit,resetScroll),(_a61=this._getSheetObject())==null||_a61.spreadsheet.makeForceDirty()}},__name(_a18,"HeaderFreezeRenderController"),_a18);exports.HeaderFreezeRenderController=__decorateClass$E([__decorateParam$E(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$E(2,core.ICommandService),__decorateParam$E(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$E(4,core.Inject(exports.SheetScrollManagerService)),__decorateParam$E(5,core.Inject(core.ThemeService)),__decorateParam$E(6,core.Inject(sheets.SheetInterceptorService)),__decorateParam$E(7,core.Inject(core.Injector))],exports.HeaderFreezeRenderController);function getSheetSelectionsDisabled$(accessor){const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),rangeProtectionRuleModel=accessor.get(sheets.RangeProtectionRuleModel),univerInstanceService=accessor.get(core.IUniverInstanceService),mergeCellController=accessor.get(sheets.MergeCellController),workbook$=univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET);return rxjs.combineLatest([selectionManagerService.selectionMoveEnd$,workbook$.pipe(rxjs.map(workbook=>{var _a61;return(_a61=workbook==null?void 0:workbook.getUnitId())!=null?_a61:""})),workbook$.pipe(rxjs.switchMap(workbook=>{var _a61;return(_a61=workbook==null?void 0:workbook.activeSheet$)!=null?_a61:rxjs.of(null)}))]).pipe(rxjs.map(([selection,unitId,sheet])=>{if(!sheet||!selection||selection.length===0)return!1;const subUnitId=sheet.getSheetId(),selectionRanges=selection.map(sel=>sel.range);if(mergeCellController.interceptor.fetchThroughInterceptors(sheets.MERGE_CELL_INTERCEPTOR_CHECK)(!1,selectionRanges))return!0;const subUnitRuleRange=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).map(rule=>rule.ranges).flat();if(selection.length<2){const range=selection[0].range;return subUnitRuleRange.some(ruleRange=>core.Rectangle.intersects(ruleRange,range)&&!core.Rectangle.contains(ruleRange,range))}for(let i=0;i<selection.length;i++)for(let j=i+1;j<selection.length;j++)if(core.Rectangle.intersects(selection[i].range,selection[j].range))return!0;return!1}))}__name(getSheetSelectionsDisabled$,"getSheetSelectionsDisabled$");function isThisRowSelected(selections,rowIndex){return!!matchedSelectionByRowColIndex(selections,rowIndex,core.RANGE_TYPE.ROW)}__name(isThisRowSelected,"isThisRowSelected");function isThisColSelected(selections,colIndex){return!!matchedSelectionByRowColIndex(selections,colIndex,core.RANGE_TYPE.COLUMN)}__name(isThisColSelected,"isThisColSelected");function matchedSelectionByRowColIndex(selections,indexOfRowCol,rowOrCol){return selections.find(sel=>{const range=sel.range,{startRow:startRowOfCurrSel,endRow:endRowOfCurrSel,startColumn:startColumnOfCurrSel,endColumn:endColumnOfCurrSel,rangeType:rangeTypeOfCurrSelection}=range;return rangeTypeOfCurrSelection===core.RANGE_TYPE.ALL||rangeTypeOfCurrSelection===core.RANGE_TYPE.NORMAL?!1:rangeTypeOfCurrSelection===rowOrCol&&(rowOrCol===core.RANGE_TYPE.COLUMN&&startColumnOfCurrSel<=indexOfRowCol&&indexOfRowCol<=endColumnOfCurrSel||rowOrCol===core.RANGE_TYPE.ROW&&startRowOfCurrSel<=indexOfRowCol&&indexOfRowCol<=endRowOfCurrSel)})}__name(matchedSelectionByRowColIndex,"matchedSelectionByRowColIndex");var __defProp$D=Object.defineProperty,__getOwnPropDesc$D=Object.getOwnPropertyDescriptor,__decorateClass$D=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$D(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$D(target,key,result),result},"__decorateClass$D"),__decorateParam$D=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$D");const HEADER_MOVE_CONTROLLER_BACKGROUND="__SpreadsheetHeaderMoveControllerBackground__",HEADER_MOVE_CONTROLLER_LINE="__SpreadsheetHeaderMoveControllerShapeLine__",HEADER_MOVE_CONTROLLER_BACKGROUND_FILL="rgba(0, 0, 0, 0.1)",HEADER_MOVE_CONTROLLER_LINE_FILL="rgb(119, 119, 119)",HEADER_MOVE_CONTROLLER_LINE_SIZE=4,HEADER_MOVE_PERMISSION_CHECK=core.createInterceptorKey("headerMovePermissionCheck");var _a19;exports.HeaderMoveRenderController=(_a19=class extends core.Disposable{constructor(_context,selectionManagerService,_sheetSkeletonManagerService,_commandService){super();__publicField(this,"_startOffsetX",Number.NEGATIVE_INFINITY);__publicField(this,"_startOffsetY",Number.NEGATIVE_INFINITY);__publicField(this,"_moveHelperBackgroundShape");__publicField(this,"_moveHelperLineShape");__publicField(this,"_headerPointerDownSubs");__publicField(this,"_headerPointerMoveSubs");__publicField(this,"_headerPointerLeaveSubs");__publicField(this,"_dragHeaderMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_scrollTimer");__publicField(this,"_changeFromColumn",-1);__publicField(this,"_changeFromRow",-1);__publicField(this,"_changeToColumn",-1);__publicField(this,"_changeToRow",-1);__publicField(this,"interceptor",new core.InterceptorManager({HEADER_MOVE_PERMISSION_CHECK}));__publicField(this,"_workbookSelections");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this._init()}dispose(){var _a61,_b,_c,_d,_e,_f,_g,_h;(_a61=this._moveHelperBackgroundShape)==null||_a61.dispose(),(_b=this._moveHelperLineShape)==null||_b.dispose(),(_c=this._headerPointerMoveSubs)==null||_c.unsubscribe(),(_d=this._headerPointerLeaveSubs)==null||_d.unsubscribe(),(_e=this._headerPointerDownSubs)==null||_e.unsubscribe(),this._headerPointerMoveSubs=null,this._headerPointerLeaveSubs=null,this._headerPointerDownSubs=null,(_f=this._dragHeaderMoveSub)==null||_f.unsubscribe(),(_g=this._scenePointerUpSub)==null||_g.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null,(_h=this._scrollTimer)==null||_h.dispose()}_init(){this._initialRowOrColumn(core.RANGE_TYPE.ROW),this._initialRowOrColumn(core.RANGE_TYPE.COLUMN)}_initialRowOrColumn(initialType=core.RANGE_TYPE.ROW){const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),scene=this._context.scene,eventBindingObject=initialType===core.RANGE_TYPE.ROW?spreadsheetRowHeader:spreadsheetColumnHeader,pointerMoveHandler=__name(evt=>{var _a61,_b;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const selectionRange=(_b=this._workbookSelections.getCurrentLastSelection())==null?void 0:_b.range;if(!selectionRange||!this.interceptor.fetchThroughInterceptors(HEADER_MOVE_PERMISSION_CHECK)(!1,selectionRange))return;const currentSelections=this._workbookSelections.getCurrentSelections(),{row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);if(!matchedSelectionByRowColIndex(currentSelections,initialType===core.RANGE_TYPE.ROW?row:column,initialType)){scene.resetCursor();return}scene.setCursor(engineRender.CURSOR_TYPE.GRAB)},"pointerMoveHandler"),pointerLeaveHandler=__name(()=>{var _a61,_b;(_a61=this._moveHelperBackgroundShape)==null||_a61.hide(),(_b=this._moveHelperLineShape)==null||_b.hide(),scene.resetCursor()},"pointerLeaveHandler"),pointerDownHandler=__name((evt,state)=>{var _a61,_b;if(state.isStopPropagation)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const selectionRange=(_b=this._workbookSelections.getCurrentLastSelection())==null?void 0:_b.range;if(!selectionRange||!this.interceptor.fetchThroughInterceptors(HEADER_MOVE_PERMISSION_CHECK)(!1,selectionRange))return;const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:newEvtOffsetX,y:newEvtOffsetY}=relativeCoords;this._startOffsetX=newEvtOffsetX,this._startOffsetY=newEvtOffsetY;const{row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);let scrollType;initialType===core.RANGE_TYPE.ROW?(this._changeFromRow=row,scrollType=engineRender.ScrollTimerType.Y):(this._changeFromColumn=column,scrollType=engineRender.ScrollTimerType.X);const currentSelections=this._workbookSelections.getCurrentSelections(),matchSelectionData=matchedSelectionByRowColIndex(currentSelections,initialType===core.RANGE_TYPE.ROW?row:column,initialType);if(!matchSelectionData)return;const startScrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY]));this._newBackgroundAndLine(),scene.setCursor(engineRender.CURSOR_TYPE.GRABBING),scene.disableObjectsEvent();let scrollTimerInitd=!1,scrollTimer;const initScrollTimer=__name(()=>{if(scrollTimerInitd)return;scrollTimer=engineRender.ScrollTimer.create(scene,scrollType),this._scrollTimer=scrollTimer;const mainViewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);scrollTimer.startScroll(newEvtOffsetX,newEvtOffsetY,mainViewport),scrollTimerInitd=!0},"initScrollTimer");this._dragHeaderMoveSub=scene.onPointerMove$.subscribeEvent(moveEvt=>{initScrollTimer();const{offsetX:moveOffsetX,offsetY:moveOffsetY}=moveEvt,{x:newMoveOffsetX,y:newMoveOffsetY}=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([moveOffsetX,moveOffsetY]));this._rowColumnMoving(newMoveOffsetX,newMoveOffsetY,matchSelectionData,startScrollXY,initialType),scrollTimer.scrolling(newMoveOffsetX,newMoveOffsetY,()=>{this._rowColumnMoving(newMoveOffsetX,newMoveOffsetY,matchSelectionData,startScrollXY,initialType)})}),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a62,_b2,_c;this._disposeBackgroundAndLine(),scene.resetCursor(),scene.enableObjectsEvent(),this._clearObserverEvent(),(_a62=this._scrollTimer)==null||_a62.dispose();const selections=this._workbookSelections.getCurrentSelections();if(initialType===core.RANGE_TYPE.ROW){if(this._changeFromRow!==this._changeToRow&&this._changeToRow!==-1){const range=(_b2=((selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.ROW&&selection.range.startRow<=this._changeFromRow&&this._changeFromRow<=selection.range.endRow))||[])[0])==null?void 0:_b2.range;range&&this._commandService.executeCommand(sheets.MoveRowsCommand.id,{fromRange:range,toRange:{...range,startRow:this._changeToRow,endRow:this._changeToRow+range.endRow-range.startRow}})}this._changeToRow=this._changeFromRow=-1}else{if(this._changeFromColumn!==this._changeToColumn&&this._changeToColumn!==-1){const range=(_c=((selections==null?void 0:selections.filter(selection=>selection.range.rangeType===core.RANGE_TYPE.COLUMN&&selection.range.startColumn<=this._changeFromColumn&&this._changeFromColumn<=selection.range.endColumn))||[])[0])==null?void 0:_c.range;range&&this._commandService.executeCommand(sheets.MoveColsCommand.id,{fromRange:range,toRange:{...range,startColumn:this._changeToColumn,endColumn:this._changeToColumn+range.endColumn-range.startColumn}})}this._changeToColumn=this._changeFromColumn=-1}})},"pointerDownHandler");this._headerPointerMoveSubs=new rxjs.Subscription,this._headerPointerMoveSubs.add(eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler)),this._headerPointerLeaveSubs=new rxjs.Subscription,this._headerPointerLeaveSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler)),this._headerPointerDownSubs=new rxjs.Subscription,this._headerPointerDownSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerDown$.subscribeEvent(pointerDownHandler))}_rowColumnMoving(moveOffsetX,moveOffsetY,matchSelectionData,startScrollXY,initialType){var _a61,_b,_c,_d,_e,_f,_g;const scene=this._context.scene,skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const{rowHeaderWidth,columnHeaderHeight,rowTotalHeight,columnTotalWidth}=skeleton,scrollXY=scene.getViewportScrollXY(scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN)),{scaleX,scaleY}=scene.getAncestorScale(),moveActualSelection=skeleton.getCellIndexByOffset(moveOffsetX,moveOffsetY,scaleX,scaleY,scrollXY),{row,column}=moveActualSelection,startCell=skeleton.getNoMergeCellPositionByIndex(row,column),{startX:cellStartX,startY:cellStartY,endX:cellEndX,endY:cellEndY}=startCell,selectionWithCoord=this._sheetSkeletonManagerService.attachRangeWithCoord(matchSelectionData.range);if(selectionWithCoord==null)return;const scale=Math.max(scaleX,scaleX),{startX:selectedStartX,endX:selectedEndX,startY:selectedStartY,endY:selectedEndY,startRow:selectedStartRow,startColumn:selectedStartColumn,endRow:selectedEndRow,endColumn:selectedEndColumn}=selectionWithCoord;initialType===core.RANGE_TYPE.ROW?(_b=this._moveHelperBackgroundShape)==null||_b.transformByState({height:selectedEndY-selectedStartY,width:columnTotalWidth+rowHeaderWidth,left:0,top:selectedStartY+(moveOffsetY-this._startOffsetY)/scale+scrollXY.y-startScrollXY.y}):(_c=this._moveHelperBackgroundShape)==null||_c.transformByState({height:rowTotalHeight+columnHeaderHeight,width:selectedEndX-selectedStartX,left:selectedStartX+(moveOffsetX-this._startOffsetX)/scale+scrollXY.x-startScrollXY.x,top:0}),(_d=this._moveHelperBackgroundShape)==null||_d.show();const HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE=HEADER_MOVE_CONTROLLER_LINE_SIZE/scale;if(initialType===core.RANGE_TYPE.ROW){let top=0;if(row<=selectedStartRow)top=cellStartY-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToRow=row;else if(row>selectedEndRow)top=cellEndY-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToRow=row+1;else return;(_e=this._moveHelperLineShape)==null||_e.transformByState({height:HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE,width:columnTotalWidth,left:rowHeaderWidth,top})}else{let left=0;if(column<=selectedStartColumn)left=cellStartX-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToColumn=column;else if(column>selectedEndColumn)left=cellEndX-HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE/2,this._changeToColumn=column+1;else return;(_f=this._moveHelperLineShape)==null||_f.transformByState({height:rowTotalHeight,width:HEADER_MOVE_CONTROLLER_LINE_SIZE_SCALE,left,top:columnHeaderHeight})}(_g=this._moveHelperLineShape)==null||_g.show()}_clearObserverEvent(){var _a61,_b;(_a61=this._dragHeaderMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._dragHeaderMoveSub=null,this._scenePointerUpSub=null}_newBackgroundAndLine(){const scene=this._context.scene;this._moveHelperBackgroundShape=new engineRender.Rect(HEADER_MOVE_CONTROLLER_BACKGROUND,{fill:HEADER_MOVE_CONTROLLER_BACKGROUND_FILL,evented:!1,zIndex:100}),this._moveHelperLineShape=new engineRender.Rect(HEADER_MOVE_CONTROLLER_LINE,{fill:HEADER_MOVE_CONTROLLER_LINE_FILL,evented:!1,zIndex:100}),scene.addObjects([this._moveHelperBackgroundShape,this._moveHelperLineShape],SHEET_COMPONENT_HEADER_LAYER_INDEX)}_disposeBackgroundAndLine(){var _a61,_b;(_a61=this._moveHelperBackgroundShape)==null||_a61.dispose(),(_b=this._moveHelperLineShape)==null||_b.dispose()}},__name(_a19,"HeaderMoveRenderController"),_a19);exports.HeaderMoveRenderController=__decorateClass$D([__decorateParam$D(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$D(2,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$D(3,core.ICommandService)],exports.HeaderMoveRenderController);var HEADER_RESIZE_SHAPE_TYPE=(HEADER_RESIZE_SHAPE_TYPE2=>(HEADER_RESIZE_SHAPE_TYPE2[HEADER_RESIZE_SHAPE_TYPE2.VERTICAL=0]="VERTICAL",HEADER_RESIZE_SHAPE_TYPE2[HEADER_RESIZE_SHAPE_TYPE2.HORIZONTAL=1]="HORIZONTAL",HEADER_RESIZE_SHAPE_TYPE2))(HEADER_RESIZE_SHAPE_TYPE||{});const HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL="rgba(120, 120, 120, 0.01)",HEADER_MENU_SHAPE_RECT_FILL="rgb(68, 71, 70)",HEADER_MENU_SHAPE_SIZE=12,MAX_HEADER_MENU_SHAPE_SIZE=44,HEADER_MENU_SHAPE_THUMB_SIZE=4,_HeaderMenuResizeShape=class _HeaderMenuResizeShape extends engineRender.Shape{constructor(key,props){super(key,props);__publicField(this,"_size",HEADER_MENU_SHAPE_SIZE);__publicField(this,"_color",HEADER_MENU_SHAPE_RECT_FILL);__publicField(this,"_mode",0);this.setShapeProps(props)}get size(){return this._size}get mode(){return this._mode}get color(){return this._color}_draw(ctx){const scene=this.getScene();if(!scene)return;const{scaleX,scaleY}=scene.getAncestorScale(),scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE=HEADER_MENU_SHAPE_SIZE/scale,HEADER_MENU_SHAPE_THUMB_SIZE_SCALE=HEADER_MENU_SHAPE_THUMB_SIZE/scale;let{width,height}=this,left=0,top=0;this.mode===0?(width=HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,left=HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE):(height=HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,top=HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE),engineRender.Rect.drawWith(ctx,{width:this.width,height:this.height,left:0,top:0,fill:HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL}),engineRender.Rect.drawWith(ctx,{width,height,fill:HEADER_MENU_SHAPE_RECT_FILL,radius:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE}),ctx.save(),ctx.transform(1,0,0,1,left,top),engineRender.Rect.drawWith(ctx,{width,height,fill:HEADER_MENU_SHAPE_RECT_FILL,radius:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE}),ctx.restore()}setShapeProps(props){return props!=null&&props.size&&(this._size=props.size),props!=null&&props.mode&&(this._mode=props.mode),props!=null&&props.color&&(this._color=props.color),this.mode===0?this.transformByState({width:HEADER_MENU_SHAPE_SIZE,height:this.size}):this.transformByState({width:this.size,height:HEADER_MENU_SHAPE_SIZE}),this}};__name(_HeaderMenuResizeShape,"HeaderMenuResizeShape");let HeaderMenuResizeShape=_HeaderMenuResizeShape;var __defProp$C=Object.defineProperty,__getOwnPropDesc$C=Object.getOwnPropertyDescriptor,__decorateClass$C=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$C(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$C(target,key,result),result},"__decorateClass$C"),__decorateParam$C=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$C");const HEADER_RESIZE_CONTROLLER_SHAPE_ROW="__SpreadsheetHeaderResizeControllerShapeRow__",HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN="__SpreadsheetHeaderResizeControllerShapeColumn__",HEADER_RESIZE_CONTROLLER_SHAPE_HELPER="__SpreadsheetHeaderResizeControllerShapeHelper__",HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR="rgb(199, 199, 199)",MINIMAL_OFFSET=2,HEADER_RESIZE_PERMISSION_CHECK=core.createInterceptorKey("headerResizePermissionCheck");var _a20;exports.HeaderResizeRenderController=(_a20=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_selectionManagerService,_commandService){super();__publicField(this,"_currentRow",0);__publicField(this,"_currentColumn",0);__publicField(this,"_rowResizeRect");__publicField(this,"_columnResizeRect");__publicField(this,"_headerPointerSubs");__publicField(this,"_scenePointerMoveSub");__publicField(this,"_scenePointerUpSub");__publicField(this,"_resizeHelperShape");__publicField(this,"_startOffsetX",Number.POSITIVE_INFINITY);__publicField(this,"_startOffsetY",Number.POSITIVE_INFINITY);__publicField(this,"interceptor",new core.InterceptorManager({HEADER_RESIZE_PERMISSION_CHECK}));this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._selectionManagerService=_selectionManagerService,this._commandService=_commandService,this._init()}dispose(){var _a61,_b,_c;(_a61=this._rowResizeRect)==null||_a61.dispose(),this._rowResizeRect=null,(_b=this._columnResizeRect)==null||_b.dispose(),this._columnResizeRect=null,(_c=this._headerPointerSubs)==null||_c.unsubscribe(),this._headerPointerSubs=null}_init(){const scene=this._context.scene;this._rowResizeRect=new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_ROW,{visible:!1,mode:HEADER_RESIZE_SHAPE_TYPE.HORIZONTAL,zIndex:100}),this._columnResizeRect=new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN,{visible:!1,mode:HEADER_RESIZE_SHAPE_TYPE.VERTICAL,zIndex:100}),scene.addObjects([this._rowResizeRect,this._columnResizeRect],SHEET_COMPONENT_HEADER_LAYER_INDEX),this._initialHover(0),this._initialHover(1),this._initialHoverResize(0),this._initialHoverResize(1)}_initialHover(initialType=0){const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),scene=this._context.scene,eventBindingObject=initialType===0?spreadsheetRowHeader:spreadsheetColumnHeader,pointerLeaveEvent=__name((_evt,_state)=>{var _a61,_b;(_a61=this._rowResizeRect)==null||_a61.hide(),(_b=this._columnResizeRect)==null||_b.hide()},"pointerLeaveEvent"),pointerMoveEvent=__name((evt,_state)=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null||this._rowResizeRect==null||this._columnResizeRect==null)return;const{rowHeaderWidth,columnHeaderHeight}=skeleton,{startX,startY,endX,endY,row,column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton),transformCoord=getTransformCoord(evt.offsetX,evt.offsetY,scene),{scaleX,scaleY}=scene.getAncestorScale(),scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE=HEADER_MENU_SHAPE_SIZE/scale;if(initialType===0){let top=startY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;if(transformCoord.y<=startY+HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.y>=startY)this._currentRow=row-1;else if(transformCoord.y>=endY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.y<=endY)this._currentRow=row,top=endY-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;else{this._rowResizeRect.hide();return}if(this._currentRow===-1)return;if(!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null,{row:this._currentRow}))return!1;const rowSize=Math.min(MAX_HEADER_MENU_SHAPE_SIZE,rowHeaderWidth/3);this._rowResizeRect.transformByState({left:rowHeaderWidth/2-rowSize/2,top}),this._rowResizeRect.setShapeProps({size:rowSize}),this._rowResizeRect.show()}else{let left=startX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;if(transformCoord.x<=startX+HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.x>=startX)this._currentColumn=column-1;else if(transformCoord.x>=endX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2&&transformCoord.x<=endX)this._currentColumn=column,left=endX-HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE/2;else{this._columnResizeRect.hide();return}if(this._currentColumn===-1)return;if(!this.interceptor.fetchThroughInterceptors(HEADER_RESIZE_PERMISSION_CHECK)(null,{col:this._currentColumn}))return!1;const columnSize=columnHeaderHeight*.7;this._columnResizeRect.transformByState({left,top:columnHeaderHeight/2-columnSize/2}),this._columnResizeRect.setShapeProps({size:columnSize}),this._columnResizeRect.show()}},"pointerMoveEvent");this._headerPointerSubs=new rxjs.Subscription,this._headerPointerSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveEvent)),this._headerPointerSubs.add(eventBindingObject==null?void 0:eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveEvent))}_initialHoverResize(initialType=0){const scene=this._context.scene,eventBindingObject=initialType===0?this._rowResizeRect:this._columnResizeRect;eventBindingObject!=null&&(this.disposeWithMe(eventBindingObject.onPointerEnter$.subscribeEvent(()=>{eventBindingObject!=null&&(eventBindingObject.show(),scene.setCursor(initialType===0?engineRender.CURSOR_TYPE.ROW_RESIZE:engineRender.CURSOR_TYPE.COLUMN_RESIZE))})),this.disposeWithMe(eventBindingObject.onPointerLeave$.subscribeEvent(()=>{eventBindingObject!=null&&(eventBindingObject.hide(),scene.resetCursor())})),this.disposeWithMe(eventBindingObject.onPointerDown$.subscribeEvent(evt=>{var _a61,_b,_c,_d,_e,_f,_g;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const scene2=this._context.scene,engine=scene2.getEngine(),canvasMaxHeight=(engine==null?void 0:engine.height)||0,canvasMaxWidth=(engine==null?void 0:engine.width)||0,viewPort=scene2.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),scrollBarHorizontalHeight=(((_c=(_b=viewPort==null?void 0:viewPort.getScrollBar())==null?void 0:_b.horizonScrollTrack)==null?void 0:_c.height)||0)+10,scrollBarVerticalWidth=(((_e=(_d=viewPort==null?void 0:viewPort.getScrollBar())==null?void 0:_d.verticalScrollTrack)==null?void 0:_e.width)||0)+10,transformCoord=getTransformCoord(evt.offsetX,evt.offsetY,scene2),{scaleX,scaleY}=scene2.getAncestorScale();this._startOffsetX=transformCoord.x,this._startOffsetY=transformCoord.y;const currentOffsetX=skeleton.getOffsetByPositionX(this._currentColumn),currentOffsetY=skeleton.getOffsetByPositionY(this._currentRow),cell=skeleton.getNoMergeCellPositionByIndex(this._currentRow,this._currentColumn);let isStartMove=!1,moveChangeX=0,moveChangeY=0;const{columnTotalWidth,rowHeaderWidth,rowTotalHeight,columnHeaderHeight}=skeleton,shapeWidth=canvasMaxWidth>columnTotalWidth+rowHeaderWidth?canvasMaxWidth:columnTotalWidth+rowHeaderWidth,shapeHeight=canvasMaxHeight>rowTotalHeight+columnHeaderHeight?canvasMaxHeight:rowTotalHeight+columnHeaderHeight,scale=Math.max(scaleX,scaleY),HEADER_MENU_SHAPE_THUMB_SIZE_SCALE=HEADER_MENU_SHAPE_THUMB_SIZE/scale;initialType===0?this._resizeHelperShape=new engineRender.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER,{width:shapeWidth,height:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,fill:HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,left:0,top:currentOffsetY-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE/2}):this._resizeHelperShape=new engineRender.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER,{width:HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,height:shapeHeight,fill:HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,left:currentOffsetX-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE/2,top:0});const rowResizeRectX=((_f=this._columnResizeRect)==null?void 0:_f.left)||0,rowResizeRectY=((_g=this._rowResizeRect)==null?void 0:_g.top)||0;scene2.addObject(this._resizeHelperShape,SHEET_COMPONENT_HEADER_LAYER_INDEX),scene2.disableObjectsEvent(),this._scenePointerMoveSub=scene2.onPointerMove$.subscribeEvent(moveEvt=>{var _a62,_b2,_c2,_d2,_e2,_f2;const relativeCoords=scene2.getCoordRelativeToViewport(engineRender.Vector2.FromArray([this._startOffsetX,this._startOffsetY])),scrollXY=scene2.getScrollXYInfoByViewport(relativeCoords,viewPort),transformCoord2=getTransformCoord(moveEvt.offsetX,moveEvt.offsetY,scene2),{x:moveOffsetX,y:moveOffsetY}=transformCoord2,{scaleX:scaleX2,scaleY:scaleY2}=scene2.getAncestorScale(),scale2=Math.max(scaleX2,scaleY2),HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2=HEADER_MENU_SHAPE_THUMB_SIZE/scale2;moveChangeX=moveOffsetX-this._startOffsetX-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2,moveChangeY=moveOffsetY-this._startOffsetY-HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2,Math.abs(initialType===0?moveChangeY:moveChangeX)>=MINIMAL_OFFSET&&(isStartMove=!0),initialType===0?(moveChangeY>canvasMaxHeight-scrollBarHorizontalHeight+scrollXY.y-cell.startY&&(moveChangeY=canvasMaxHeight-scrollBarHorizontalHeight+scrollXY.y-cell.startY),moveChangeY<-(cell.endY-cell.startY)+2&&(moveChangeY=-(cell.endY-cell.startY)+2),isStartMove&&((_a62=this._resizeHelperShape)==null||_a62.transformByState({top:currentOffsetY+moveChangeY}),(_b2=this._rowResizeRect)==null||_b2.transformByState({top:rowResizeRectY+moveChangeY+HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2}),(_c2=this._rowResizeRect)==null||_c2.show(),scene2.setCursor(engineRender.CURSOR_TYPE.ROW_RESIZE))):(moveChangeX>canvasMaxWidth-scrollBarVerticalWidth+scrollXY.x-cell.startX&&(moveChangeX=canvasMaxWidth-scrollBarVerticalWidth+scrollXY.x-cell.startX),moveChangeX<-(cell.endX-cell.startX)+2&&(moveChangeX=-(cell.endX-cell.startX)+2),isStartMove&&((_d2=this._resizeHelperShape)==null||_d2.transformByState({left:currentOffsetX+moveChangeX}),(_e2=this._columnResizeRect)==null||_e2.transformByState({left:rowResizeRectX+moveChangeX+HEADER_MENU_SHAPE_THUMB_SIZE_SCALE2/2}),(_f2=this._columnResizeRect)==null||_f2.show(),scene2.setCursor(engineRender.CURSOR_TYPE.COLUMN_RESIZE)))}),this._scenePointerUpSub=scene2.onPointerUp$.subscribeEvent(upEvt=>{var _a62,_b2,_c2;const scene3=this._context.scene;this._clearObserverEvent(),(_a62=this._resizeHelperShape)==null||_a62.dispose(),this._resizeHelperShape=null,scene3.enableObjectsEvent(),isStartMove&&(scene3.resetCursor(),(_b2=this._rowResizeRect)==null||_b2.hide(),(_c2=this._columnResizeRect)==null||_c2.hide(),initialType===0?this._commandService.executeCommand(sheets.DeltaRowHeightCommand.id,{deltaY:moveChangeY,anchorRow:this._currentRow}):this._commandService.executeCommand(sheets.DeltaColumnWidthCommand.id,{deltaX:moveChangeX,anchorCol:this._currentColumn}))})})),this.disposeWithMe(eventBindingObject.onDblclick$.subscribeEvent(()=>{var _a61,_b,_c;this._context.scene.resetCursor();const sk=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(!sk)return;const startRow=0,startColumn=0,endRow=sk.worksheet.getRowCount()-1||0,endColumn=sk.worksheet.getColumnCount()-1||0;switch(initialType){case 1:{const curSelections=this._selectionManagerService.getCurrentSelections(),ranges=[];for(let i=0;i<curSelections.length;i++){const selection=curSelections[i];selection.range.rangeType===core.RANGE_TYPE.COLUMN&&this._currentColumn<=selection.range.endColumn&&this._currentColumn>=selection.range.startColumn&&ranges.push({startColumn:selection.range.startColumn,endColumn:selection.range.endColumn,startRow,endRow})}ranges.length===0&&ranges.push({startColumn:this._currentColumn,endColumn:this._currentColumn,startRow,endRow}),this._commandService.executeCommand(SetWorksheetColAutoWidthCommand.id,{ranges}),(_b=this._columnResizeRect)==null||_b.hide();break}case 0:this._commandService.executeCommand(sheets.SetWorksheetRowIsAutoHeightCommand.id,{ranges:[{startRow:this._currentRow,endRow:this._currentRow,startColumn,endColumn}]}),(_c=this._rowResizeRect)==null||_c.hide();break}})))}_clearObserverEvent(){var _a61,_b;(_a61=this._scenePointerMoveSub)==null||_a61.unsubscribe(),(_b=this._scenePointerUpSub)==null||_b.unsubscribe(),this._scenePointerMoveSub=null,this._scenePointerUpSub=null}},__name(_a20,"HeaderResizeRenderController"),_a20);exports.HeaderResizeRenderController=__decorateClass$C([__decorateParam$C(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$C(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$C(3,core.ICommandService)],exports.HeaderResizeRenderController);var __defProp$B=Object.defineProperty,__getOwnPropDesc$B=Object.getOwnPropertyDescriptor,__decorateClass$B=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$B(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$B(target,key,result),result},"__decorateClass$B"),__decorateParam$B=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$B");const FRAME_STACK_THRESHOLD=60;var _a21;exports.SheetRenderController=(_a21=class extends core.RxDisposable{constructor(_context,_sheetSkeletonManagerService,_sheetRenderService,_commandService,_telemetryService){super();__publicField(this,"_renderFrameTimeMetric",null);__publicField(this,"_renderFrameTags",{});__publicField(this,"_afterRenderMetric$",new rxjs.Subject);this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._sheetRenderService=_sheetRenderService,this._commandService=_commandService,this._telemetryService=_telemetryService,this._addNewRender(),this._initRenderMetricSubscriber()}_addNewRender(){const{scene,engine,unit:workbook}=this._context;this._addComponent(workbook),this._initRerenderScheduler(),this._initCommandListener();const worksheet=this._context.unit.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const sheetId=worksheet.getSheetId();this._sheetSkeletonManagerService.setCurrent({sheetId}),engine.runRenderLoop(()=>scene.render())}_initRenderMetricSubscriber(){if(!this._telemetryService)return;const{engine}=this._context;engine.beginFrame$.subscribe(()=>{this._renderFrameTimeMetric=null,this._renderFrameTags={}}),engine.endFrame$.subscribe(()=>{this._renderFrameTimeMetric&&Object.keys(this._renderFrameTimeMetric).filter(key=>key.startsWith(engineRender.SHEET_EXTENSION_PREFIX)).length>0&&this._afterRenderMetric$.next({frameTimeMetric:this._renderFrameTimeMetric,tags:this._renderFrameTags})}),engine.renderFrameTimeMetric$.subscribe(([key,value])=>{this._renderFrameTimeMetric||(this._renderFrameTimeMetric={}),this._renderFrameTimeMetric[key]||(this._renderFrameTimeMetric[key]=[]),this._renderFrameTimeMetric[key].push(Math.round(value*100)/100)}),engine.renderFrameTags$.subscribe(([key,value])=>{this._renderFrameTags[key]=value});const frameInfoList=[];this._afterRenderMetric$.pipe(rxjs.withLatestFrom(engine.endFrame$)).subscribe(([sceneRenderDetail,basicFrameTimeInfo])=>{frameInfoList.push({FPS:basicFrameTimeInfo.FPS,elapsedTime:basicFrameTimeInfo.elapsedTime,frameTime:Math.round(basicFrameTimeInfo.frameTime*100)/100,...sceneRenderDetail.frameTimeMetric,...sceneRenderDetail.tags}),frameInfoList.length>FRAME_STACK_THRESHOLD&&(this._renderMetricCapture(frameInfoList),frameInfoList.length=0)})}_renderMetricCapture(frameInfoList){const filteredFrameInfo=frameInfoList;if(filteredFrameInfo.length===0)return;const sumValueForNumListFields=__name(data=>{let totalSum=0;const sums=Object.entries(data).filter(([_2,value])=>Array.isArray(value)).map(([key])=>key).reduce((acc,key)=>{const keySum=data[key].reduce((sum,num)=>sum+num,0);return acc[key]=keySum,acc},{});return Object.keys(data).filter(key=>key.startsWith(engineRender.SHEET_EXTENSION_PREFIX)).forEach(key=>{totalSum+=sums[key]}),{...sums,extensionTotal:totalSum}},"sumValueForNumListFields"),frameTimeListAfterSum=frameInfoList.map(info=>({...info,...sumValueForNumListFields(info)})),summaryFrameStats=__name(list=>Object.entries(list[0]).filter(([key,_2])=>!["elapsedTime"].includes(key)).filter(([_2,value])=>typeof value=="number").map(([key])=>key).reduce((acc,key)=>{const values=list.map(obj=>obj[key]),max=Math.max(...values),min=Math.min(...values),avg=values.reduce((sum,val)=>sum+val,0)/values.length;return acc[key]={max:Math.round(max*100)/100,min:Math.round(min*100)/100,avg:Math.round(avg*100)/100},acc},{}),"getSummaryStats")(frameTimeListAfterSum),elapsedTimeToStart=filteredFrameInfo[filteredFrameInfo.length-1].elapsedTime,sheetId=this._context.unit.getActiveSheet().getSheetId(),unitId=this._context.unit.getUnitId(),telemetryData={sheetId,unitId,elapsedTimeToStart,...summaryFrameStats};this._telemetryService.capture("sheet_render_cost",telemetryData)}_addComponent(workbook){const{scene,components}=this._context,worksheet=workbook.getActiveSheet(),spreadsheet=new engineRender.Spreadsheet(SHEET_VIEW_KEY.MAIN);this._addViewport(worksheet);const spreadsheetRowHeader=new engineRender.SpreadsheetRowHeader(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=new engineRender.SpreadsheetColumnHeader(SHEET_VIEW_KEY.COLUMN),SpreadsheetLeftTopPlaceholder=new engineRender.Rect(SHEET_VIEW_KEY.LEFT_TOP,{zIndex:2,left:-1,top:-1,fill:"rgb(248, 249, 250)",stroke:"rgb(217, 217, 217)",strokeWidth:1});this._context.mainComponent=spreadsheet,components.set(SHEET_VIEW_KEY.MAIN,spreadsheet),components.set(SHEET_VIEW_KEY.ROW,spreadsheetRowHeader),components.set(SHEET_VIEW_KEY.COLUMN,spreadsheetColumnHeader),components.set(SHEET_VIEW_KEY.LEFT_TOP,SpreadsheetLeftTopPlaceholder),scene.addObjects([spreadsheet],SHEET_COMPONENT_MAIN_LAYER_INDEX),scene.addObjects([spreadsheetRowHeader,spreadsheetColumnHeader,SpreadsheetLeftTopPlaceholder],SHEET_COMPONENT_HEADER_LAYER_INDEX),scene.enableLayerCache(SHEET_COMPONENT_MAIN_LAYER_INDEX,SHEET_COMPONENT_HEADER_LAYER_INDEX)}_initViewports(scene,rowHeader,columnHeader){const viewMain=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN,scene,{left:rowHeader.width,top:columnHeader.height,bottom:0,right:0,isWheelPreventDefaultX:!0,allowCache:!0,bufferEdgeX:100,bufferEdgeY:100}),viewMainLeftTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:0}),viewMainLeft=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:0,bufferEdgeY:100}),viewMainTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP,scene,{isWheelPreventDefaultX:!0,active:!1,allowCache:!0,bufferEdgeX:100,bufferEdgeY:0}),viewRowTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP,scene,{active:!1,isWheelPreventDefaultX:!0}),viewRowBottom=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM,scene,{left:0,top:columnHeader.height,bottom:0,width:rowHeader.width,isWheelPreventDefaultX:!0}),viewColumnLeft=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT,scene,{active:!1,isWheelPreventDefaultX:!0}),viewColumnRight=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT,scene,{left:rowHeader.width,top:0,height:columnHeader.height,right:0,isWheelPreventDefaultX:!0}),viewLeftTop=new engineRender.Viewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP,scene,{left:0,top:0,width:rowHeader.width,height:columnHeader.height,isWheelPreventDefaultX:!0});return{viewMain,viewLeftTop,viewMainLeftTop,viewMainLeft,viewMainTop,viewColumnLeft,viewRowTop,viewRowBottom,viewColumnRight}}_addViewport(worksheet){const scene=this._context.scene,{rowHeader,columnHeader}=worksheet.getConfig(),{viewMain}=this._initViewports(scene,rowHeader,columnHeader);return new engineRender.ScrollBar(viewMain),scene.attachControl(),viewMain}_initRerenderScheduler(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(!param)return null;const{skeleton:spreadsheetSkeleton,sheetId}=param,workbook=this._context.unit,worksheet=workbook==null?void 0:workbook.getSheetBySheetId(sheetId);if(workbook==null||worksheet==null)return;const{mainComponent,components}=this._context,spreadsheet=mainComponent,spreadsheetRowHeader=components.get(SHEET_VIEW_KEY.ROW),spreadsheetColumnHeader=components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetLeftTopPlaceholder=components.get(SHEET_VIEW_KEY.LEFT_TOP),{rowHeaderWidth,columnHeaderHeight}=spreadsheetSkeleton;spreadsheet==null||spreadsheet.updateSkeleton(spreadsheetSkeleton),spreadsheetRowHeader==null||spreadsheetRowHeader.updateSkeleton(spreadsheetSkeleton),spreadsheetColumnHeader==null||spreadsheetColumnHeader.updateSkeleton(spreadsheetSkeleton),spreadsheetLeftTopPlaceholder==null||spreadsheetLeftTopPlaceholder.transformByState({width:rowHeaderWidth,height:columnHeaderHeight});const rowFreezeHeaderRect=this._context.scene.getObject(FREEZE_ROW_HEADER_NAME);rowFreezeHeaderRect&&rowFreezeHeaderRect.transformByState({top:columnHeaderHeight-rowFreezeHeaderRect.height});const colFreezeHeaderRect=this._context.scene.getObject(FREEZE_COLUMN_HEADER_NAME);colFreezeHeaderRect&&colFreezeHeaderRect.transformByState({height:columnHeaderHeight})}))}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{const{unit:workbook}=this._context,{id:commandId}=command;if(sheets.COMMAND_LISTENER_SKELETON_CHANGE.includes(commandId)||this._sheetRenderService.checkMutationShouldTriggerRerender(commandId)){const params=command.params,{unitId,subUnitId}=params,worksheet=workbook.getActiveSheet();if(!worksheet)return;const workbookId=this._context.unitId,worksheetId=worksheet.getSheetId();if(unitId!==workbookId||subUnitId!==worksheetId)return;this._sheetSkeletonManagerService.makeDirty({sheetId:worksheetId,commandId},!0),this._sheetSkeletonManagerService.setCurrent({sheetId:worksheetId,commandId})}else sheets.COMMAND_LISTENER_VALUE_CHANGE.includes(commandId)&&this._sheetSkeletonManagerService.reCalculate();command.type===core.CommandType.MUTATION&&this._markUnitDirty(command)}))}_markUnitDirty(command){const{mainComponent:spreadsheet,scene}=this._context;if(command.id===engineFormula.SetFormulaCalculationNotificationMutation.id&&command.params.stageInfo!=null||(spreadsheet&&spreadsheet.makeDirty(),scene.makeDirty(),!command.params))return;const cmdParams=command.params,viewports=this._spreadsheetViewports(scene);if(command.id===sheets.SetRangeValuesMutation.id&&cmdParams.cellValue){const dirtyRange=this._cellValueToRange(cmdParams.cellValue),dirtyBounds=this._rangeToBounds([dirtyRange]);this._markViewportDirty(viewports,dirtyBounds),spreadsheet.setDirtyArea(dirtyBounds)}if(command.id===sheets.MoveRangeMutation.id&&cmdParams.from&&cmdParams.to){const fromRange=cmdParams.fromRange||this._cellValueToRange(cmdParams.from.value),toRange=cmdParams.toRange||this._cellValueToRange(cmdParams.to.value),dirtyBounds=this._rangeToBounds([fromRange,toRange]);this._markViewportDirty(viewports,dirtyBounds),spreadsheet.setDirtyArea(dirtyBounds)}}_cellValueToRange(cellValue){let minCol=0,maxCol=0,minRow=0,maxRow=0;for(const[_row,columnObj]of Object.entries(cellValue)){for(const column in columnObj)minCol>Number(column)&&(minCol=Number(column)),maxCol<Number(column)&&(maxCol=Number(column));minRow>Number(_row)&&(minRow=Number(_row)),maxRow<Number(_row)&&(maxRow=Number(_row))}return{startRow:minRow,endRow:maxRow,startColumn:minCol,endColumn:maxCol}}_rangeToBounds(ranges){const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{rowHeightAccumulation,columnWidthAccumulation,rowHeaderWidth,columnHeaderHeight}=skeleton,dirtyBounds=[];for(const r2 of ranges){const{startRow,endRow,startColumn,endColumn}=r2,top=startRow===0?0:rowHeightAccumulation[startRow-1]+columnHeaderHeight,bottom=rowHeightAccumulation[endRow]+columnHeaderHeight,left=startColumn===0?0:columnWidthAccumulation[startColumn-1]+rowHeaderWidth,right=columnWidthAccumulation[endColumn]+rowHeaderWidth;dirtyBounds.push({top,left,bottom,right,width:right-left,height:bottom-top})}return dirtyBounds}_markViewportDirty(viewports,dirtyBounds){const activeViewports=viewports.filter(vp=>vp.isActive&&vp.cacheBound);for(const vp of activeViewports)for(const b of dirtyBounds)core.Rectangle.hasIntersectionBetweenTwoRect(vp.cacheBound,b)&&vp.markDirty(!0)}_spreadsheetViewports(scene){return scene.getViewports().filter(v=>["viewMain","viewMainLeftTop","viewMainTop","viewMainLeft"].includes(v.viewportKey))}},__name(_a21,"SheetRenderController"),_a21);exports.SheetRenderController=__decorateClass$B([__decorateParam$B(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$B(2,core.Inject(exports.SheetsRenderService)),__decorateParam$B(3,core.ICommandService),__decorateParam$B(4,core.Optional(telemetry.ITelemetryService))],exports.SheetRenderController);var __assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p in s)Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0&&(t[p]=s[p]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++)e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i])&&(t[p[i]]=s[p[i]]);return t},IconBase=React.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=React.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return React.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a61){var key=_a61[0],value=_a61[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a61,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a61=node.children)===null||_a61===void 0)&&_a61.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid");IconBase.displayName="UniverIcon";var element$i={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M11.0363 12.2367V14.0367C11.0363 14.3681 11.3049 14.6367 11.6363 14.6367C11.9676 14.6367 12.2363 14.3681 12.2363 14.0367V12.2367H14.0364C14.3677 12.2367 14.6364 11.9681 14.6364 11.6367C14.6364 11.3054 14.3677 11.0367 14.0364 11.0367H12.2363V9.23672C12.2363 8.90535 11.9676 8.63672 11.6363 8.63672C11.3049 8.63672 11.0363 8.90535 11.0363 9.23672V11.0367H9.23635C8.90498 11.0367 8.63635 11.3054 8.63635 11.6367C8.63635 11.9681 8.90498 12.2367 9.23635 12.2367H11.0363Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M2.56365 1.36377C1.90091 1.36377 1.36365 1.90103 1.36365 2.56377V6.16377C1.36365 6.82651 1.90091 7.36377 2.56365 7.36377H6.16365C6.82639 7.36377 7.36365 6.82651 7.36365 6.16377V2.56377C7.36365 1.90103 6.82639 1.36377 6.16365 1.36377H2.56365zM6.16365 2.56377H2.56365L2.56365 6.16377H6.16365V2.56377zM2.56365 8.63647C1.90091 8.63647 1.36365 9.17373 1.36365 9.83647V13.4365C1.36365 14.0992 1.90091 14.6365 2.56365 14.6365H6.16365C6.82639 14.6365 7.36365 14.0992 7.36365 13.4365V9.83647C7.36365 9.17373 6.82639 8.63647 6.16365 8.63647H2.56365zM6.16365 9.83647H2.56365L2.56365 13.4365H6.16365V9.83647zM9.83635 7.36377C9.17361 7.36377 8.63635 6.82651 8.63635 6.16377V2.56377C8.63635 1.90103 9.17361 1.36377 9.83635 1.36377H13.4364C14.0991 1.36377 14.6364 1.90103 14.6364 2.56377V6.16377C14.6364 6.82651 14.0991 7.36377 13.4364 7.36377H9.83635zM9.83635 6.16377V2.56377L13.4364 2.56377V6.16377H9.83635z",fillRule:"evenodd",clipRule:"evenodd"}}]},Autofill=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"autofill",ref,icon:element$i}))});Autofill.displayName="Autofill";var element$h={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CheckMarkSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element$h}))});CheckMarkSingle.displayName="CheckMarkSingle";var element$g={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},CloseSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"close-single",ref,icon:element$g}))});CloseSingle.displayName="CloseSingle";var element$f={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"g",attrs:{fill:"currentColor",clipPath:"url(#convert-single_clip0_911_593)"},children:[{tag:"path",attrs:{d:"M2.44766.848145C1.564.848145.847656 1.56449.847656 2.44814V6.44814C.847656 7.3318 1.564 8.04814 2.44766 8.04814H6.44766C7.33131 8.04814 8.04766 7.3318 8.04766 6.44814V2.44814C8.04766 1.56449 7.33131.848145 6.44766.848145H2.44766zM2.04766 6.44814V5.04824H3.84775V6.84814H2.44766C2.22674 6.84814 2.04766 6.66906 2.04766 6.44814zM2.04766 3.84824H3.84775V2.04814H2.44766C2.22674 2.04814 2.04766 2.22723 2.04766 2.44814V3.84824zM5.04775 6.84814V5.04824H6.84766V6.44814C6.84766 6.66906 6.66857 6.84814 6.44766 6.84814H5.04775zM5.04775 3.84824H6.84766V2.44814C6.84766 2.22723 6.66857 2.04814 6.44766 2.04814H5.04775V3.84824zM9.55215 7.95166C8.66849 7.95166 7.95215 8.668 7.95215 9.55166V13.5517C7.95215 14.4353 8.66849 15.1517 9.55215 15.1517L11.5522 15.1517 13.5521 15.1517C14.4358 15.1517 15.1521 14.4353 15.1521 13.5517L15.1521 11.5518 15.1521 9.55166C15.1521 8.668 14.4358 7.95166 13.5521 7.95166H9.55215zM13.9521 10.9518V9.55166C13.9521 9.33075 13.7731 9.15166 13.5521 9.15166H12.1522V10.9518H13.9521zM10.9522 10.9518V9.15166H9.55215C9.33123 9.15166 9.15215 9.33075 9.15215 9.55166V10.9518H10.9522zM9.15215 12.1518H10.9522V13.9517H9.55215C9.33123 13.9517 9.15215 13.7726 9.15215 13.5517V12.1518zM12.1522 12.1518H13.9521V13.5517C13.9521 13.7726 13.7731 13.9517 13.5521 13.9517H12.1522V12.1518z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{d:"M9.62158 2.44912C9.62158 2.11775 9.89021 1.84912 10.2216 1.84912H12.7516C13.6352 1.84912 14.3516 2.56547 14.3516 3.44912V5.9791C14.3516 6.31047 14.0829 6.5791 13.7516 6.5791 13.4202 6.5791 13.1516 6.31047 13.1516 5.9791V3.44912C13.1516 3.22821 12.9725 3.04912 12.7516 3.04912H10.2216C9.89021 3.04912 9.62158 2.78049 9.62158 2.44912zM5.77871 14.1507C6.11008 14.1507 6.37871 13.8821 6.37871 13.5507 6.37871 13.2193 6.11008 12.9507 5.77871 12.9507L3.24873 12.9507C3.02782 12.9507 2.84873 12.7716 2.84873 12.5507L2.84873 10.0207C2.84873 9.68933 2.5801 9.4207 2.24873 9.4207 1.91736 9.4207 1.64873 9.68933 1.64873 10.0207L1.64873 12.5507C1.64873 13.4343 2.36507 14.1507 3.24873 14.1507H5.77871z"}}]},{tag:"defs",attrs:{},children:[{tag:"clipPath",attrs:{id:"convert-single_clip0_911_593"},children:[{tag:"path",attrs:{fill:"#fff",d:"M0 0H16V16H0z"}}]}]}],defIds:["convert-single_clip0_911_593"]},ConvertSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"convert-single",ref,icon:element$f}))});ConvertSingle.displayName="ConvertSingle";var element$e={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DeleteSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"delete-single",ref,icon:element$e}))});DeleteSingle.displayName="DeleteSingle";var element$d={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_371_77",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_371_77)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.85869 12.9216C8.38445 13.4708 7.61555 13.4708 7.14131 12.9216L0.358114 5.06726C-0.406895 4.18144 0.134916 2.66683 1.2168 2.66683L14.7832 2.66683C15.8651 2.66683 16.4069 4.18144 15.6419 5.06726L8.85869 12.9216Z"}}]}]},DropdownSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"dropdown-single",ref,icon:element$d}))});DropdownSingle.displayName="DropdownSingle";var element$c={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM10.3097 5.69014C10.544 5.92445 10.544 6.30435 10.3097 6.53867L8.84843 7.9999L10.3099 9.46137C10.5442 9.69569 10.5442 10.0756 10.3099 10.3099C10.0756 10.5442 9.69569 10.5442 9.46137 10.3099L7.9999 8.84843L6.53842 10.3099C6.30411 10.5442 5.92421 10.5442 5.6899 10.3099C5.45558 10.0756 5.45558 9.69569 5.6899 9.46137L7.15137 7.9999L5.69014 6.53867C5.45583 6.30435 5.45583 5.92445 5.69014 5.69014C5.92445 5.45583 6.30435 5.45583 6.53867 5.69014L7.9999 7.15137L9.46113 5.69014C9.69544 5.45583 10.0753 5.45583 10.3097 5.69014Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ErrorSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"error-single",ref,icon:element$c}))});ErrorSingle.displayName="ErrorSingle";var element$b={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1.28096 4.6541C1.57489 4.50109 1.93721 4.61533 2.09022 4.90926C2.27315 5.26067 2.55999 5.60455 2.94829 5.92278C4.04628 6.82266 5.87505 7.44865 7.99828 7.44865C10.1215 7.44865 11.9503 6.82267 13.0482 5.92279C13.4366 5.60455 13.7234 5.26067 13.9063 4.90927C14.0594 4.61533 14.4217 4.50109 14.7156 4.65409C15.0095 4.8071 15.1238 5.16941 14.9708 5.46334C14.6995 5.98445 14.2981 6.44997 13.8089 6.8509C13.7298 6.91575 13.6481 6.97914 13.564 7.041L15.2245 8.70153C15.4588 8.93585 15.4588 9.31575 15.2245 9.55006C14.9902 9.78438 14.6103 9.78438 14.376 9.55006L12.5041 7.67822C11.8977 7.97568 11.2181 8.21208 10.4884 8.37706L11.0996 10.6581C11.1853 10.9782 10.9954 11.3072 10.6753 11.393C10.3552 11.4787 10.0262 11.2888 9.94045 10.9687L9.29949 8.57652C8.8758 8.62404 8.44081 8.64865 7.99828 8.64865C7.55276 8.64865 7.11487 8.62371 6.68846 8.57555L6.04723 10.9687C5.96147 11.2888 5.63247 11.4788 5.31239 11.393C4.99231 11.3073 4.80236 10.9783 4.88812 10.6582L5.49983 8.37516C4.7743 8.2105 4.09843 7.9752 3.49498 7.67947L1.62436 9.55009C1.39005 9.78441 1.01015 9.78441 0.775835 9.5501C0.54152 9.31578 0.541518 8.93588 0.775832 8.70157L2.43478 7.04261C2.34987 6.98024 2.26746 6.91632 2.18764 6.8509C1.69842 6.44997 1.29706 5.98445 1.0258 5.46335C0.872791 5.16942 0.987031 4.80711 1.28096 4.6541Z"}}]},EyelashSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"eyelash-single",ref,icon:element$b}))});EyelashSingle.displayName="EyelashSingle";var element$a={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6.06409 5.53454C5.93592 5.53454 5.84083 5.41567 5.86897 5.29063L5.95442 4.9109C6.05444 4.48178 6.23806 4.11547 6.51182 3.81952 6.81082 3.49628 7.25398 3.35405 7.79738 3.35405 7.99847 3.35405 8.21359 3.37775 8.44188 3.42245 8.46089 3.42617 8.47974 3.43006 8.49846 3.4341 8.7099 3.4798 8.93698 3.38478 9.02031 3.18514L9.24767 2.6404C9.33457 2.43219 9.23178 2.19404 9.01582 2.12874 8.98358 2.11899 8.95028 2.10912 8.91591 2.09914 8.62745 2.01631 8.28392 1.97217 7.88074 1.97217 6.82015 1.97217 6.02714 2.23936 5.4746 2.7444 4.90987 3.26069 4.50889 3.99917 4.28413 4.9762L2.83703 11.1909C2.76126 11.5286 2.666 11.8917 2.54844 12.2812 2.42975 12.6734 2.2873 13.0595 2.12221 13.4373 1.95577 13.8159 1.76813 14.1762 1.55955 14.5171 1.49345 14.6251 1.42515 14.7282 1.35467 14.8263 1.26508 14.9509 1.3347 15.133 1.48655 15.1554 2.13635 15.2509 2.8179 15.0763 3.18197 14.5296 3.32661 14.3124 3.46779 14.0646 3.60509 13.7851 3.96635 13.0497 4.30522 12.0103 4.61867 10.6574L5.469 7.01534C5.49013 6.92483 5.57082 6.86081 5.66376 6.86081H7.62478C7.8097 6.86081 7.97051 6.73405 8.01371 6.55425L8.14014 6.02798C8.20057 5.77642 8.00992 5.53454 7.75121 5.53454H6.06409zM14.3211 5.72037L12.5124 7.96963 11.4089 5.77754C11.3422 5.63012 11.1954 5.5354 11.0336 5.5354H10.3129C10.0085 5.5354 9.80921 5.85428 9.9427 6.1279L11.4089 9.05502 8.79783 12.1493C8.56587 12.4158 8.75519 12.8315 9.10855 12.8315H9.68607C9.80672 12.8315 9.9605 12.7822 10.0388 12.6904L12.1108 10.2648 13.1176 12.561C13.1786 12.7231 13.333 12.8315 13.5061 12.8315H14.3C14.5831 12.8315 14.7417 12.6175 14.6426 12.3524L13.1728 9.28628C13.1728 9.28628 15.4009 6.45542 15.6013 6.17892 15.7966 5.90929 15.6023 5.5354 15.2693 5.5354H14.6661C14.5275 5.5354 14.4333 5.58887 14.3211 5.72037z"}}]},FxSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"fx-single",ref,icon:element$a}))});FxSingle.displayName="FxSingle";var element$9={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M6.4833 1.65005C6.4833 1.31868 6.21467 1.05005 5.8833 1.05005C5.55193 1.05005 5.2833 1.31868 5.2833 1.65005V5.28345H1.65029C1.31892 5.28345 1.05029 5.55208 1.05029 5.88345C1.05029 6.21482 1.31892 6.48345 1.65029 6.48345H5.2833V9.51684H1.65029C1.31892 9.51684 1.05029 9.78547 1.05029 10.1168C1.05029 10.4482 1.31892 10.7168 1.65029 10.7168H5.2833V14.35C5.2833 14.6814 5.55193 14.95 5.8833 14.95C6.21467 14.95 6.4833 14.6814 6.4833 14.35V10.7168H9.5167V14.35C9.5167 14.6814 9.78533 14.95 10.1167 14.95C10.4481 14.95 10.7167 14.6814 10.7167 14.35V10.7168H14.3503C14.6817 10.7168 14.9503 10.4482 14.9503 10.1168C14.9503 9.78547 14.6817 9.51685 14.3503 9.51685H10.7167V6.48345H14.3503C14.6817 6.48345 14.9503 6.21482 14.9503 5.88345C14.9503 5.55208 14.6817 5.28345 14.3503 5.28345H10.7167V1.65005C10.7167 1.31868 10.4481 1.05005 10.1167 1.05005C9.78533 1.05005 9.5167 1.31868 9.5167 1.65005V5.28345L6.4833 5.28345V1.65005ZM6.4833 6.48345V9.51684L9.5167 9.51685V6.48345L6.4833 6.48345Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.0498 3.65005C1.0498 2.21411 2.21386 1.05005 3.6498 1.05005H12.3498C13.7857 1.05005 14.9498 2.21411 14.9498 3.65005V12.3501C14.9498 13.786 13.7857 14.95 12.3498 14.95H3.6498C2.21386 14.95 1.0498 13.786 1.0498 12.35V3.65005ZM3.6498 2.25005C2.87661 2.25005 2.2498 2.87685 2.2498 3.65005V12.35C2.2498 13.1232 2.87661 13.75 3.6498 13.75H12.3498C13.123 13.75 13.7498 13.1232 13.7498 12.3501V3.65005C13.7498 2.87685 13.123 2.25005 12.3498 2.25005H3.6498Z",fillRule:"evenodd",clipRule:"evenodd"}}]},HideGridlines=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"hide-gridlines",ref,icon:element$9}))});HideGridlines.displayName="HideGridlines";var element$8={tag:"svg",attrs:{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"}}]},IncreaseSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"increase-single",ref,icon:element$8}))});IncreaseSingle.displayName="IncreaseSingle";var element$7={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M2.62402 7.72905C2.58427 7.72905 2.55205 7.76127 2.55205 7.80102V13.6782C2.55205 13.7179 2.58427 13.7502 2.62402 13.7502H13.3755C13.4152 13.7502 13.4474 13.7179 13.4474 13.6782V7.80102C13.4474 7.76127 13.4152 7.72905 13.3755 7.72905H2.62402ZM1.35205 7.80102C1.35205 7.09853 1.92153 6.52905 2.62402 6.52905H13.3755C14.0779 6.52905 14.6474 7.09853 14.6474 7.80102V13.6782C14.6474 14.3807 14.0779 14.9502 13.3755 14.9502H2.62402C1.92153 14.9502 1.35205 14.3807 1.35205 13.6782V7.80102Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M8 2.25005C6.69847 2.25003 5.64336 3.30513 5.64336 4.60666V7.12895C5.64336 7.46032 5.37473 7.72895 5.04336 7.72895 4.71199 7.72895 4.44336 7.46032 4.44336 7.12895V4.60666C4.44336 2.64239 6.04451 1.05565 8.00879 1.05566M8 2.25005L8.00879 1.05566 8 2.25005zM8.00879 1.05566L8 2.25005C9.30154 2.25003 10.3567 3.30513 10.3567 4.60666V7.12895C10.3567 7.46032 10.6253 7.72895 10.9567 7.72895 11.288 7.72895 11.5567 7.46032 11.5567 7.12895V4.60666C11.5567 2.64239 9.97306 1.05565 8.00879 1.05566zM8.00039 9.4668C8.33176 9.4668 8.60039 9.73543 8.60039 10.0668V12.0827C8.60039 12.4141 8.33176 12.6827 8.00039 12.6827 7.66902 12.6827 7.40039 12.4141 7.40039 12.0827V10.0668C7.40039 9.73543 7.66902 9.4668 8.00039 9.4668z",fillRule:"evenodd",clipRule:"evenodd"}}]},LockSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"lock-single",ref,icon:element$7}))});LockSingle.displayName="LockSingle";var element$6={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M11.3536 6.14645C11.5488 6.34171 11.5488 6.65829 11.3536 6.85355L8.35355 9.85355C8.15829 10.0488 7.84171 10.0488 7.64645 9.85355L4.64645 6.85355C4.45118 6.65829 4.45118 6.34171 4.64645 6.14645C4.84171 5.95118 5.15829 5.95118 5.35355 6.14645L8 8.79289L10.6464 6.14645C10.8417 5.95118 11.1583 5.95118 11.3536 6.14645Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreDownSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"more-down-single",ref,icon:element$6}))});MoreDownSingle.displayName="MoreDownSingle";var element$5={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"more-single",ref,icon:element$5}))});MoreSingle.displayName="MoreSingle";var element$4={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_1204",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_1204)"},children:[{tag:"rect",attrs:{width:12.62,height:2.79,x:1.69,y:12.25,fill:"colorChannel1",rx:1.4}},{tag:"path",attrs:{fill:"currentColor",d:"M7.74646 2.1642C7.34284 1.65121 6.85947 1.28205 6.38447 1.09593C5.86863 0.893787 5.15166 0.852126 4.70047 1.42917C4.29842 1.94344 4.33082 2.70249 4.57691 3.50395C4.68808 3.8661 4.86846 4.22254 5.12522 4.56617C5.13695 4.58185 5.14927 4.5968 5.16211 4.61102C5.17152 4.6214 5.18122 4.63139 5.19115 4.64096C5.20459 4.65393 5.21855 4.66618 5.23296 4.6777L3.5064 6.40422C3.26756 6.64306 3.26756 7.03033 3.5064 7.26919L7.23756 11.0004C7.47648 11.2392 7.86375 11.2392 8.1026 11.0004L12.8329 6.27001C13.0717 6.03117 13.0717 5.6439 12.8329 5.40505L9.10172 1.67387C8.86288 1.43503 8.47561 1.43503 8.23676 1.67387L7.74646 2.1642ZM7.46162 4.50638C7.47252 4.57574 7.48163 4.64652 7.4888 4.71868C7.52232 5.05481 7.82194 5.30013 8.15807 5.26661C8.4942 5.23311 8.73954 4.93345 8.70601 4.59732C8.65786 4.11463 8.54251 3.6666 8.37892 3.26169L8.66928 2.97135L11.5354 5.83753L10.6106 6.76237H4.87824L7.40802 4.2326C7.42885 4.32128 7.44684 4.41255 7.46162 4.50638ZM6.87284 3.03784C6.57441 2.62008 6.22261 2.34634 5.93815 2.23487C5.80233 2.18165 5.71528 2.17827 5.67638 2.18335C5.6725 2.18387 5.66929 2.18443 5.6666 2.18497L5.6619 2.18607C5.64166 2.21954 5.53594 2.45979 5.74626 3.1449C5.81241 3.36036 5.92262 3.58602 6.09307 3.81761L6.87284 3.03784Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M12.1932 11.5463C12.6454 11.5463 13.012 11.1797 13.012 10.7275C13.012 10.4475 12.6981 9.92821 12.459 9.5733C12.3299 9.38173 12.0564 9.38174 11.9274 9.57331C11.6883 9.92822 11.3744 10.4475 11.3744 10.7275C11.3744 11.1797 11.741 11.5463 12.1932 11.5463Z"}}]}]},PaintBucket=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"paint-bucket",ref,icon:element$4}))});PaintBucket.displayName="PaintBucket";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_1138",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#DCDCDC",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_1138)"},children:[{tag:"path",attrs:{fill:"colorChannel1",d:"M7.74692 9.12463C7.74692 9.46018 8.01893 9.73219 8.35448 9.73219H11.4933C11.8288 9.73219 12.1009 9.46018 12.1009 9.12463 12.1009 8.78909 11.8288 8.51707 11.4933 8.51707H8.35448C8.01893 8.51707 7.74692 8.78909 7.74692 9.12463zM10.8636 10.8523C10.8636 11.1879 10.5915 11.4599 10.256 11.4599H8.35448C8.01893 11.4599 7.74692 11.1879 7.74692 10.8523 7.74692 10.5168 8.01893 10.2447 8.35448 10.2447H10.256C10.5915 10.2447 10.8636 10.5168 10.8636 10.8523z"}},{tag:"path",attrs:{fill:"currentColor",d:"M5.4791 1.98268C5.47913 1.71529 5.87912 1.49854 6.37252 1.49854C6.86593 1.49854 7.26592 1.71529 7.26595 1.98268H7.62187C8.22277 1.98268 8.72459 2.39534 8.84412 2.9452H9.39563C10.0856 2.9452 10.6449 3.48923 10.6449 4.16032V6.00569H12.1261C13.161 6.00569 14 6.82174 14 7.82838V11.334C14 11.8174 13.8025 12.281 13.4511 12.6228L12.0693 13.9647C11.7179 14.3065 11.2412 14.4985 10.7442 14.4985H7.91116C7.05024 14.4985 6.32492 14.0431 6.10535 13.2737H3.34925C2.6593 13.2737 2.09998 12.7297 2.09998 12.0586V4.16032C2.09998 3.48923 2.6593 2.9452 3.34925 2.9452H3.90107C4.0206 2.39534 4.52241 1.98268 5.12332 1.98268H5.4791ZM3.97249 4.16032H3.24925L3.24925 12.0586H6.03725V7.82838C6.03725 6.82174 6.87623 6.00569 7.91116 6.00569H9.49563V4.16032H8.7727C8.58289 4.59611 8.13909 4.90183 7.62187 4.90183H5.12332C4.6061 4.90183 4.1623 4.59611 3.97249 4.16032ZM5.12332 2.89403H7.62187C7.79436 2.89403 7.93419 3.03003 7.93419 3.19781V3.68671C7.93419 3.85448 7.79436 3.99049 7.62187 3.99049H5.12332C4.95083 3.99049 4.811 3.85448 4.811 3.68671V3.19781C4.811 3.03003 4.95083 2.89403 5.12332 2.89403ZM7.91116 7.11157C7.56618 7.11157 7.28652 7.38359 7.28652 7.71913V12.7851C7.28652 13.1206 7.56618 13.3927 7.91116 13.3927H10.7442C10.8401 13.3927 10.9337 13.3712 11.0182 13.3311C11.1373 13.2746 11.1859 13.1423 11.1859 13.0134V12.0066C11.1859 11.8724 11.2978 11.7636 11.4358 11.7636H12.4709C12.6034 11.7636 12.7394 11.7163 12.7975 11.6004C12.8388 11.5182 12.8608 11.4272 12.8608 11.334V7.71913C12.8608 7.38359 12.5811 7.11157 12.2362 7.11157H7.91116Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},PasteSpecial=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"paste-special",ref,icon:element$3}))});PasteSpecial.displayName="PasteSpecial";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.785 6.77762C5.78908 6.7777 5.79316 6.77774 5.79725 6.77774C5.80134 6.77774 5.80543 6.7777 5.8095 6.77762H10.0184C10.0225 6.7777 10.0266 6.77774 10.0307 6.77774C10.0347 6.77774 10.0388 6.7777 10.0429 6.77762H13.6638V7.63727C13.6638 7.96864 13.9324 8.23727 14.2638 8.23727C14.5951 8.23727 14.8638 7.96864 14.8638 7.63727V3.9999C14.8638 2.56395 13.6997 1.39989 12.2637 1.3999L3.56389 1.39999C2.12797 1.40001 0.96393 2.56405 0.96392 3.99998L0.963867 11.6666C0.963857 13.1025 2.12792 14.2666 3.56387 14.2666H8.0542C8.38557 14.2666 8.6542 13.9979 8.6542 13.6666C8.6542 13.3352 8.38557 13.0666 8.0542 13.0666H3.56387C2.79067 13.0666 2.16386 12.4398 2.16387 11.6666L2.1639 6.77762H5.785ZM6.39725 2.59996L9.43065 2.59993V5.57762H6.39725V2.59996ZM5.19725 5.57762V2.59998L3.56391 2.59999C2.79072 2.6 2.16393 3.22679 2.16392 3.99998L2.16391 5.57762H5.19725ZM13.6638 5.57762V3.9999C13.6638 3.2267 13.037 2.59989 12.2638 2.5999L10.6307 2.59992V5.57762H13.6638Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M14.1223 10.2333V10.7496C14.7087 10.9869 15.1223 11.5618 15.1223 12.2333V12.8999C15.1223 13.7836 14.406 14.4999 13.5223 14.4999H11.5223C10.6387 14.4999 9.92235 13.7836 9.92235 12.8999V12.2333C9.92235 11.5618 10.336 10.9869 10.9223 10.7496V10.2333C10.9223 9.34961 11.6387 8.63328 12.5223 8.63328C13.406 8.63328 14.1223 9.34961 14.1223 10.2333ZM11.1223 12.2333C11.1223 12.0124 11.3014 11.8333 11.5223 11.8333H13.5223C13.7433 11.8333 13.9223 12.0124 13.9223 12.2333V12.8999C13.9223 13.1209 13.7433 13.2999 13.5223 13.2999H11.5223C11.3014 13.2999 11.1223 13.1209 11.1223 12.8999V12.2333ZM12.9223 10.2333V10.6333H12.1223V10.2333C12.1223 10.0124 12.3014 9.83328 12.5223 9.83328C12.7433 9.83328 12.9223 10.0124 12.9223 10.2333Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ProtectSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"protect-single",ref,icon:element$2}))});ProtectSingle.displayName="ProtectSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM8.00008 12.3671C8.46031 12.3671 8.83342 11.994 8.83342 11.5338C8.83342 11.0735 8.46031 10.7004 8.00008 10.7004C7.53985 10.7004 7.16675 11.0735 7.16675 11.5338C7.16675 11.994 7.53985 12.3671 8.00008 12.3671ZM8.5999 4.4335C8.5999 4.10213 8.33127 3.8335 7.9999 3.8335C7.66853 3.8335 7.3999 4.10213 7.3999 4.4335V9.36683C7.3999 9.6982 7.66853 9.96683 7.9999 9.96683C8.33127 9.96683 8.5999 9.6982 8.5999 9.36683V4.4335Z",fillRule:"evenodd",clipRule:"evenodd"}}]},WarningSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"warning-single",ref,icon:element$1}))});WarningSingle.displayName="WarningSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6551 1.98906C11.7476 1.08113 10.2757 1.08149 9.3686 1.98987L4.82542 6.53955C4.75087 6.61421 4.69336 6.70411 4.65682 6.80309L3.2461 10.625C3.16506 10.8446 3.21909 11.0912 3.3845 11.2568C3.54991 11.4224 3.79651 11.4767 4.01616 11.3959L7.85031 9.98517C7.94979 9.94856 8.04014 9.89077 8.11508 9.81579L12.6552 5.27327C13.5618 4.36621 13.5618 2.89607 12.6551 1.98906ZM10.2177 2.83779C10.6562 2.39869 11.3677 2.39851 11.8064 2.8374C12.2447 3.27584 12.2447 3.9865 11.8065 4.42497L7.3392 8.89457L4.82213 9.82068L5.74706 7.31487L10.2177 2.83779Z",fillRule:"evenodd",clipRule:"evenodd"}},{tag:"path",attrs:{fill:"currentColor",d:"M1.79238 13.2999C1.46101 13.2999 1.19238 13.5685 1.19238 13.8999C1.19238 14.2313 1.46101 14.4999 1.79238 14.4999H14.4924C14.8238 14.4999 15.0924 14.2313 15.0924 13.8999C15.0924 13.5685 14.8238 13.2999 14.4924 13.2999H1.79238Z"}}]},WriteSingle=React.forwardRef(function(props,ref){return React.createElement(IconBase,Object.assign({},props,{id:"write-single",ref,icon:element}))});WriteSingle.displayName="WriteSingle";function getUserListEqual(userList1,userList2){if(userList1.length!==userList2.length)return!1;const sorted1=userList1.sort((a,b)=>a.id.localeCompare(b.id)),sorted2=userList2.sort((a,b)=>a.id.localeCompare(b.id));return sorted1.every((user,index)=>{var _a61,_b;return((_a61=user.subject)==null?void 0:_a61.userID)===((_b=sorted2[index].subject)==null?void 0:_b.userID)&&user.role===sorted2[index].role})}__name(getUserListEqual,"getUserListEqual");function checkCellContentInRanges(worksheet,ranges){return ranges.some(range=>checkCellContentInRange(worksheet,range))}__name(checkCellContentInRanges,"checkCellContentInRanges");function checkCellContentInRange(worksheet,range){const{startRow,startColumn,endColumn,endRow}=range,cellMatrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn);let someCellGoingToBeRemoved=!1;return cellMatrix.forValue((row,col,cellData)=>{if(cellData&&(row!==startRow||col!==startColumn)&&worksheet.cellHasValue(cellData))return someCellGoingToBeRemoved=!0,!1}),someCellGoingToBeRemoved}__name(checkCellContentInRange,"checkCellContentInRange");function getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges){const undos=[],redos=[],subUnitId=worksheet.getSheetId();return ranges.forEach(range=>{const redoMatrix=getClearContentMutationParamForRange(worksheet,range),redoMutationParams={unitId,subUnitId,cellValue:redoMatrix.getData()},undoMutationParams=sheets.SetRangeValuesUndoMutationFactory(accessor,redoMutationParams);undos.push({id:sheets.SetRangeValuesMutation.id,params:undoMutationParams}),redos.push({id:sheets.SetRangeValuesMutation.id,params:redoMutationParams})}),{undos,redos}}__name(getClearContentMutationParamsForRanges,"getClearContentMutationParamsForRanges");function getClearContentMutationParamForRange(worksheet,range){const{startRow,startColumn,endColumn,endRow}=range,cellMatrix=worksheet.getMatrixWithMergedCells(startRow,startColumn,endRow,endColumn,core.CellModeEnum.Intercepted),redoMatrix=new core.ObjectMatrix;let leftTopCellValue=null;return cellMatrix.forValue((row,col,cellData)=>{var _a61,_b,_c,_d;cellData&&row>=startRow&&col>=startColumn&&(!leftTopCellValue&&worksheet.cellHasValue(cellData)&&(cellData.v!==""||((_d=(_c=(_b=(_a61=cellData.p)==null?void 0:_a61.body)==null?void 0:_b.dataStream)==null?void 0:_c.length)!=null?_d:0)>2)&&(leftTopCellValue=cellData),redoMatrix.setValue(row,col,null))}),redoMatrix.setValue(startRow,startColumn,leftTopCellValue),redoMatrix}__name(getClearContentMutationParamForRange,"getClearContentMutationParamForRange");function getCellIndexByOffsetWithMerge(offsetX,offsetY,scene,skeleton){const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},cellIndex=skeleton.getCellIndexByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY),mergeCell=skeleton.worksheet.getMergedCell(cellIndex.row,cellIndex.column);return{actualRow:mergeCell?mergeCell.startRow:cellIndex.row,actualCol:mergeCell?mergeCell.startColumn:cellIndex.column,mergeCell,row:cellIndex.row,col:cellIndex.column}}__name(getCellIndexByOffsetWithMerge,"getCellIndexByOffsetWithMerge");function getViewportByCell(row,column,scene,worksheet){const freeze=worksheet.getFreeze();if(!freeze||freeze.startRow<=0&&freeze.startColumn<=0||row>=freeze.startRow&&column>=freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(row<freeze.startRow&&column<freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP);if(row<freeze.startRow&&column>=freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP);if(row>=freeze.startRow&&column<freeze.startColumn)return scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT)}__name(getViewportByCell,"getViewportByCell");function transformBound2OffsetBound(originBound,scene,skeleton,worksheet){const topLeft=transformPosition2Offset(originBound.left,originBound.top,scene,skeleton,worksheet),bottomRight=transformPosition2Offset(originBound.right,originBound.bottom,scene,skeleton,worksheet);return{left:topLeft.x,top:topLeft.y,right:bottomRight.x,bottom:bottomRight.y}}__name(transformBound2OffsetBound,"transformBound2OffsetBound");function transformPosition2Offset(x,y,scene,skeleton,worksheet){const{scaleX,scaleY}=scene.getAncestorScale(),viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!viewMain)return{x,y};const freeze=worksheet.getFreeze(),{startColumn,startRow,xSplit,ySplit}=freeze,startSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(startRow-ySplit,startColumn-xSplit),endSheetView=skeleton.getNoMergeCellPositionByIndexWithNoHeader(startRow,startColumn),{rowHeaderWidth,columnHeaderHeight}=skeleton,freezeWidth=endSheetView.startX-startSheetView.startX,freezeHeight=endSheetView.startY-startSheetView.startY,{top,left,viewportScrollX,viewportScrollY}=viewMain;let offsetX;x>left?offsetX=(x-viewportScrollX)*scaleX:offsetX=(freezeWidth+rowHeaderWidth-(left-x))*scaleX;let offsetY;return y>top?offsetY=(y-viewportScrollY)*scaleY:offsetY=(freezeHeight+columnHeaderHeight-(top-y))*scaleX,{x:offsetX,y:offsetY}}__name(transformPosition2Offset,"transformPosition2Offset");function getCellRealRange(workbook,worksheet,skeleton,row,col){let actualRow=row,actualCol=col;skeleton.overflowCache.forValue((r2,c,range)=>{range.startRow<=actualRow&&range.endRow>=actualRow&&range.startColumn<=actualCol&&range.endColumn>=actualCol&&(actualCol=c,actualRow=r2)});const actualCell=skeleton.getCellWithCoordByIndex(actualRow,actualCol);return{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),workbook,worksheet,row:actualCell.actualRow,col:actualCell.actualColumn}}__name(getCellRealRange,"getCellRealRange");function getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY){const{scene}=currentRender,unitId=workbook.getUnitId(),{skeleton,sheetId}=skeletonParam,cellIndex=getCellIndexByOffsetWithMerge(offsetX,offsetY,scene,skeleton);if(!cellIndex)return null;let{actualCol,actualRow}=cellIndex;const originLocation={unitId,subUnitId:sheetId,workbook,worksheet,row:actualRow,col:actualCol};skeleton.overflowCache.forValue((r2,c,range)=>{range.startRow<=actualRow&&range.endRow>=actualRow&&range.startColumn<=actualCol&&range.endColumn>=actualCol&&(actualCol=c,actualRow=r2)});const actualCell=skeleton.getCellWithCoordByIndex(actualRow,actualCol),location=getCellRealRange(workbook,worksheet,skeleton,actualRow,actualCol);let anchorCell;actualCell.mergeInfo?anchorCell=actualCell.mergeInfo:anchorCell={startRow:location.row,endRow:location.row,startColumn:location.col,endColumn:location.col};const activeViewport=scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([offsetX,offsetY]));if(!activeViewport)return;const{scaleX,scaleY}=scene.getAncestorScale(),scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY};return{position:{startX:(skeleton.getOffsetByPositionX(anchorCell.startColumn-1)-scrollXY.x)*scaleX,endX:(skeleton.getOffsetByPositionX(anchorCell.endColumn)-scrollXY.x)*scaleX,startY:(skeleton.getOffsetByPositionY(anchorCell.startRow-1)-scrollXY.y)*scaleY,endY:(skeleton.getOffsetByPositionY(anchorCell.endRow)-scrollXY.y)*scaleY},location:originLocation,overflowLocation:location}}__name(getHoverCellPosition,"getHoverCellPosition");const AddWorksheetMergeCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge",handler:__name(async(accessor,params)=>{const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),univerInstanceService=accessor.get(core.IUniverInstanceService),confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService),unitId=params.unitId,subUnitId=params.subUnitId,selections=params.selections,ranges=sheets.getAddMergeMutationRangeByType(selections,params.value),worksheet=univerInstanceService.getUniverSheetInstance(unitId).getSheetBySheetId(subUnitId),redoMutations=[],undoMutations=[],willClearSomeCell=checkCellContentInRanges(worksheet,ranges);if(willClearSomeCell&&!params.defaultMerge&&!await confirmService.confirm({id:"merge.confirm.add-worksheet-merge",title:{title:"merge.confirm.title"},cancelText:localeService.t("merge.confirm.cancel"),confirmText:localeService.t("merge.confirm.confirm")}))return!1;const removeMergeMutationParams={unitId,subUnitId,ranges:core.Tools.deepClone(ranges)},addMergeMutationParams={unitId,subUnitId,ranges:core.Tools.deepClone(ranges)},undoRemoveMergeMutationParams=sheets.RemoveMergeUndoMutationFactory(accessor,removeMergeMutationParams),undoMutationParams=sheets.AddMergeUndoMutationFactory(accessor,addMergeMutationParams);if(undoRemoveMergeMutationParams.ranges.length>0&&redoMutations.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),redoMutations.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams}),undoMutations.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoMutationParams}),undoRemoveMergeMutationParams.ranges.length>0&&undoMutations.push({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),willClearSomeCell){const data=getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges);redoMutations.unshift(...data.redos),undoMutations.push(...data.undos)}const addMergeRedoSelectionsMutation=sheets.AddMergeRedoSelectionsOperationFactory(accessor,params,ranges);addMergeRedoSelectionsMutation&&redoMutations.push(addMergeRedoSelectionsMutation);const addMergeUndoSelectionsMutation=sheets.AddMergeUndoSelectionsOperationFactory(accessor,params);addMergeUndoSelectionsMutation&&undoMutations.push(addMergeUndoSelectionsMutation);const interceptor=accessor.get(sheets.SheetInterceptorService).onCommandExecute({id:AddWorksheetMergeCommand.id,params:{unitId,subUnitId,ranges}});return redoMutations.push(...interceptor.redos),undoMutations.push(...interceptor.undos),core.sequenceExecute(redoMutations,commandService).result?(undoRedoService.pushUndoRedo({unitID:unitId,undoMutations,redoMutations}),!0):!1},"handler")},AddWorksheetMergeAllCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-all",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeAll,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{selections:mergeableSelections,unitId,subUnitId})},"handler")},AddWorksheetMergeVerticalCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-vertical",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeVertical,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{value:core.Dimension.COLUMNS,selections:mergeableSelections,unitId,subUnitId})},"handler")},AddWorksheetMergeHorizontalCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-worksheet-merge-horizontal",handler:__name(async accessor=>{var _a61;const commandService=accessor.get(core.ICommandService),selections=(_a61=accessor.get(sheets.SheetsSelectionsService).getCurrentSelections())==null?void 0:_a61.map(s=>s.range),mergeableSelections=getMergeableSelectionsByType(MergeType.MergeHorizontal,selections);if(!(mergeableSelections!=null&&mergeableSelections.length))return!1;const workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return!1;const workSheet=workbook.getActiveSheet();if(!workSheet)return!1;const unitId=workbook.getUnitId(),subUnitId=workSheet.getSheetId();return commandService.executeCommand(AddWorksheetMergeCommand.id,{value:core.Dimension.ROWS,selections:mergeableSelections,unitId,subUnitId})},"handler")},DeleteRangeMoveLeftConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-move-left-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endColumn:worksheet.getColumnCount()-1};const getRowLength=__name(range2=>range2.endRow-range2.startRow,"getRowLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getRowLength(mergeRange)>getRowLength(interSectedRange):!1})||await confirmService.confirm({id:DeleteRangeMoveLeftConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.DeleteRangeMoveLeftCommand.id):!0},"handler")},DeleteRangeMoveUpConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-move-up-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endRow:worksheet.getRowCount()-1};for(let i=range.startRow;i<=range.endRow;i++)if(worksheet.getRowFiltered(i)&&await confirmService.confirm({id:DeleteRangeMoveUpConfirmCommand.id,title:{title:localeService.t("filter.confirm.error")},children:{title:localeService.t("filter.confirm.notAllowedToInsertRange")},confirmText:localeService.t("button.confirm")}))return!1;const getColLength=__name(range2=>range2.endColumn-range2.startColumn,"getColLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getColLength(mergeRange)>getColLength(interSectedRange):!1})||await confirmService.confirm({id:DeleteRangeMoveUpConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.DeleteRangeMoveUpCommand.id):!0},"handler")},InsertRangeMoveDownConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.insert-range-move-down-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endRow:worksheet.getRowCount()-1};for(let i=range.startRow;i<=range.endRow;i++)if(worksheet.getRowFiltered(i)&&await confirmService.confirm({id:InsertRangeMoveDownConfirmCommand.id,title:{title:localeService.t("filter.confirm.error")},children:{title:localeService.t("filter.confirm.notAllowedToInsertRange")},confirmText:localeService.t("button.confirm")}))return!1;const getColLength=__name(range2=>range2.endColumn-range2.startColumn,"getColLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getColLength(mergeRange)>getColLength(interSectedRange):!1})||await confirmService.confirm({id:InsertRangeMoveDownConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.InsertRangeMoveDownCommand.id):!0},"handler")},InsertRangeMoveRightConfirmCommand={type:core.CommandType.COMMAND,id:"sheet.command.insert-range-move-right-confirm",handler:__name(async accessor=>{const confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),univerInstanceService=accessor.get(core.IUniverInstanceService),selection=selectionManagerService.getCurrentSelections();if(!selection)return!1;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target;let range=selection[0].range;if(!range)return!1;range={...range,endColumn:worksheet.getColumnCount()-1};const getRowLength=__name(range2=>range2.endRow-range2.startRow,"getRowLength");return!worksheet.getMergeData().find(mergeRange=>{const interSectedRange=core.Rectangle.getIntersects(mergeRange,range);return interSectedRange?getRowLength(mergeRange)>getRowLength(interSectedRange):!1})||await confirmService.confirm({id:InsertRangeMoveRightConfirmCommand.id,title:{title:localeService.t("merge.confirm.waring")},children:{title:localeService.t("merge.confirm.dismantleMergeCellWaring")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?commandService.executeCommand(sheets.InsertRangeMoveRightCommand.id):!0},"handler")};var _=(E=>(E[E.UNIVER_UNKNOWN=0]="UNIVER_UNKNOWN",E[E.UNIVER_DOC=1]="UNIVER_DOC",E[E.UNIVER_SHEET=2]="UNIVER_SHEET",E[E.UNIVER_SLIDE=3]="UNIVER_SLIDE",E[E.UNIVER_PROJECT=4]="UNIVER_PROJECT",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(_||{}),D=(E=>(E[E.View=0]="View",E[E.Edit=1]="Edit",E[E.ManageCollaborator=2]="ManageCollaborator",E[E.Print=3]="Print",E[E.Duplicate=4]="Duplicate",E[E.Comment=5]="Comment",E[E.Copy=6]="Copy",E[E.Share=7]="Share",E[E.Export=8]="Export",E[E.MoveWorksheet=9]="MoveWorksheet",E[E.DeleteWorksheet=10]="DeleteWorksheet",E[E.HideWorksheet=11]="HideWorksheet",E[E.RenameWorksheet=12]="RenameWorksheet",E[E.CreateWorksheet=13]="CreateWorksheet",E[E.SetWorksheetStyle=14]="SetWorksheetStyle",E[E.EditWorksheetCell=15]="EditWorksheetCell",E[E.InsertHyperlink=16]="InsertHyperlink",E[E.Sort=17]="Sort",E[E.Filter=18]="Filter",E[E.PivotTable=19]="PivotTable",E[E.FloatImg=20]="FloatImg",E[E.History=21]="History",E[E.RwHgtClWdt=22]="RwHgtClWdt",E[E.ViemRwHgtClWdt=23]="ViemRwHgtClWdt",E[E.ViewFilter=24]="ViewFilter",E[E.MoveSheet=25]="MoveSheet",E[E.DeleteSheet=26]="DeleteSheet",E[E.HideSheet=27]="HideSheet",E[E.CopySheet=28]="CopySheet",E[E.RenameSheet=29]="RenameSheet",E[E.CreateSheet=30]="CreateSheet",E[E.SelectProtectedCells=31]="SelectProtectedCells",E[E.SelectUnProtectedCells=32]="SelectUnProtectedCells",E[E.SetCellStyle=33]="SetCellStyle",E[E.SetCellValue=34]="SetCellValue",E[E.SetRowStyle=35]="SetRowStyle",E[E.SetColumnStyle=36]="SetColumnStyle",E[E.InsertRow=37]="InsertRow",E[E.InsertColumn=38]="InsertColumn",E[E.DeleteRow=39]="DeleteRow",E[E.DeleteColumn=40]="DeleteColumn",E[E.EditExtraObject=41]="EditExtraObject",E[E.Delete=42]="Delete",E[E.RecoverHistory=43]="RecoverHistory",E[E.ViewHistory=44]="ViewHistory",E[E.CreatePermissionObject=45]="CreatePermissionObject",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(D||{}),S=(E=>(E[E.Reader=0]="Reader",E[E.Editor=1]="Editor",E[E.Owner=2]="Owner",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(S||{}),L=(E=>(E[E.Unkonwn=0]="Unkonwn",E[E.Workbook=1]="Workbook",E[E.Worksheet=2]="Worksheet",E[E.SelectRange=3]="SelectRange",E[E.Document=4]="Document",E[E.Slide=5]="Slide",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(L||{}),M=(E=>(E[E.SomeCollaborator=0]="SomeCollaborator",E[E.AllCollaborator=1]="AllCollaborator",E[E.OneSelf=2]="OneSelf",E[E.UNRECOGNIZED=-1]="UNRECOGNIZED",E))(M||{});const UNIVER_SHEET_PERMISSION_PANEL="UNIVER_SHEET_PERMISSION_PANEL",UNIVER_SHEET_PERMISSION_USER_PART="UNIVER_SHEET_PERMISSION_USER_PART",UNIVER_SHEET_PERMISSION_BACKGROUND="UNIVER_SHEET_PERMISSION_BACKGROUND",UNIVER_SHEET_PERMISSION_USER_DIALOG="UNIVER_SHEET_PERMISSION_USER_DIALOG",UNIVER_SHEET_PERMISSION_DIALOG="UNIVER_SHEET_PERMISSION_DIALOG",UNIVER_SHEET_PERMISSION_USER_DIALOG_ID="UNIVER_SHEET_PERMISSION_USER_DIALOG_ID",UNIVER_SHEET_PERMISSION_DIALOG_ID="UNIVER_SHEET_PERMISSION_DIALOG_ID",subUnitPermissionTypeMap={[D.Copy]:"Copy",[D.SetCellStyle]:"SetCellStyle",[D.SetCellValue]:"SetCellValue",[D.SetRowStyle]:"SetRowStyle",[D.SetColumnStyle]:"SetColumnStyle",[D.InsertRow]:"InsertRow",[D.InsertColumn]:"InsertColumn",[D.InsertHyperlink]:"InsertHyperlink",[D.DeleteRow]:"DeleteRow",[D.DeleteColumn]:"DeleteColumn",[D.Sort]:"Sort",[D.Filter]:"Filter",[D.PivotTable]:"PivotTable",[D.EditExtraObject]:"EditExtraObject"},defaultWorksheetUnitActionList=[D.Copy,D.SetCellStyle,D.SetCellValue,D.SetRowStyle,D.SetColumnStyle,D.InsertRow,D.InsertColumn,D.InsertHyperlink,D.DeleteRow,D.DeleteColumn,D.Sort,D.Filter,D.PivotTable,D.EditExtraObject,D.View],permissionMenuIconKey="sheet-permission-menu-icon",permissionDeleteIconKey="sheet-permission-delete-icon",permissionEditIconKey="sheet-permission-edit-icon",permissionCheckIconKey="sheet-permission-check-icon",permissionLockIconKey="sheet-permission-lock-icon",DEFAULT_RANGE_RULE={unitId:"",subUnitId:"",permissionId:"",unitType:sheets.UnitObject.SelectRange,id:"",ranges:[],viewState:sheets.ViewStateEnum.OthersCanView,editState:sheets.EditStateEnum.OnlyMe},_SheetPermissionPanelModel=class _SheetPermissionPanelModel{constructor(){__publicField(this,"_rule",DEFAULT_RANGE_RULE);__publicField(this,"_visible",!1)}setVisible(v){this._visible=v}getVisible(){return this._visible}reset(){this.setVisible(!1)}};__name(_SheetPermissionPanelModel,"SheetPermissionPanelModel");let SheetPermissionPanelModel=_SheetPermissionPanelModel;const _SheetPermissionUserManagerService=class _SheetPermissionUserManagerService{constructor(){__publicField(this,"_userList",[]);__publicField(this,"_oldCollaboratorList",[]);__publicField(this,"_selectUserList",[]);__publicField(this,"_selectUserList$",new rxjs.BehaviorSubject(this._selectUserList));__publicField(this,"selectUserList$",this._selectUserList$.asObservable())}get userList(){return this._userList}setCanEditUserList(userList){this._userList=userList}reset(){this._userList=[],this._oldCollaboratorList=[],this._selectUserList=[],this._selectUserList$.next([])}get oldCollaboratorList(){return this._oldCollaboratorList}setOldCollaboratorList(userList){this._oldCollaboratorList=userList}get selectUserList(){return this._selectUserList}setSelectUserList(userList){this._selectUserList=userList,this._selectUserList$.next(userList)}};__name(_SheetPermissionUserManagerService,"SheetPermissionUserManagerService");let SheetPermissionUserManagerService=_SheetPermissionUserManagerService;const SheetPermissionOpenPanelOperation={type:core.CommandType.OPERATION,id:"sheet-permission.operation.openPanel",async handler(accessor,_params={}){const sidebarService=accessor.get(ui.ISidebarService),sheetPermissionPanelModel=accessor.get(SheetPermissionPanelModel),sheetPermissionUserManagerService=accessor.get(SheetPermissionUserManagerService),{showDetail=!0,fromSheetBar=!1,rule,oldRule}=_params,sidebarProps={header:{title:"permission.panel.title"},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail,fromSheetBar,rule,oldRule},width:330,onClose:__name(()=>{sheetPermissionPanelModel.reset(),sheetPermissionUserManagerService.reset()},"onClose")};return sheetPermissionPanelModel.setVisible(!0),sidebarService.open(sidebarProps),!0}},AddRangeProtectionFromToolbarCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-toolbar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}},AddRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-context-menu",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0}),!0}},ViewSheetPermissionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-context-menu",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!1}),!0}},AddRangeProtectionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.add-range-protection-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{fromSheetBar:!0,showDetail:!0}),!0}},ViewSheetPermissionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.view-sheet-permission-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!1}),!0}},DeleteRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-range-protection-from-context-menu",async handler(accessor){var _a61;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),undoRedoService=accessor.get(core.IUndoRedoService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId)return commandService.executeCommand(sheets.DeleteWorksheetProtectionCommand.id,{unitId,subUnitId,rule:worksheetRule});{const selectRange=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!selectRange)return!1;const rule=accessor.get(sheets.RangeProtectionRuleModel).getSubunitRuleList(unitId,subUnitId).find(item=>item.ranges.some(range=>core.Rectangle.intersects(range,selectRange)));if(rule){const redoMutationParam={unitId,subUnitId,ruleIds:[rule.id]};return await commandService.executeCommand(sheets.DeleteRangeProtectionMutation.id,redoMutationParam)&&undoRedoService.pushUndoRedo({unitID:unitId,redoMutations:[{id:sheets.DeleteRangeProtectionMutation.id,params:redoMutationParam}],undoMutations:[{id:sheets.AddRangeProtectionMutation.id,params:{unitId,subUnitId,rules:[rule]}}]}),!0}else return!1}}},SetRangeProtectionFromContextMenuCommand={type:core.CommandType.COMMAND,id:"sheet.command.set-range-protection-from-context-menu",async handler(accessor){var _a61;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),selectionManagerService=accessor.get(sheets.SheetsSelectionsService),worksheetRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),worksheetRule=worksheetRuleModel.getRule(unitId,subUnitId);if(worksheetRule!=null&&worksheetRule.permissionId){const oldRule={...worksheetRule,unitId,subUnitId,ranges:[]};return await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0,rule:core.Tools.deepClone(oldRule),oldRule:core.Tools.deepClone(oldRule)}),!0}else{const selectRange=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!selectRange)return!1;const rule=accessor.get(sheets.RangeProtectionRuleModel).getSubunitRuleList(unitId,subUnitId).find(item=>{var _a62;return(_a62=item==null?void 0:item.ranges)==null?void 0:_a62.some(range=>core.Rectangle.intersects(range,selectRange))});if(rule){const oldRule={...rule,unitId,subUnitId};return await commandService.executeCommand(SheetPermissionOpenPanelOperation.id,{showDetail:!0,rule:core.Tools.deepClone(oldRule),oldRule:core.Tools.deepClone(oldRule)}),!0}else return!1}}},RemoveRowConfirmCommand={id:"sheet.command.remove-row-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a61;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService);let range=params==null?void 0:params.range;if(range||(range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range),!range)return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allRowRanges=worksheet.getVisibleRows();if(isAllRowsCovered(allRowRanges,[range])){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-row",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.deleteAllRowsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.RemoveRowCommand.id,{range}),!0},"handler")},RemoveColConfirmCommand={id:"sheet.command.remove-col-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{var _a61;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService);let range=params==null?void 0:params.range;if(range||(range=(_a61=selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range),!range)return!1;const commandService=accessor.get(core.ICommandService),univerInstanceService=accessor.get(core.IUniverInstanceService),target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return!1;const{worksheet}=target,allColumnRanges=worksheet.getVisibleCols();if(isAllColumnsCovered(allColumnRanges,[range])){const confirmService=accessor.get(ui.IConfirmService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-col",title:{title:localeService.t("info.problem")},children:{title:localeService.t("rightClick.deleteAllColumnsAlert")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")}),!1}return await commandService.executeCommand(sheets.RemoveColCommand.id,{range}),!0},"handler")},RemoveSheetConfirmCommand={id:"sheet.command.remove-sheet-confirm",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const{subUnitId}=params,confirmService=accessor.get(ui.IConfirmService),commandService=accessor.get(core.ICommandService),localeService=accessor.get(core.LocaleService);return await confirmService.confirm({id:"sheet.confirm.remove-sheet",title:{title:localeService.t("sheetConfig.deleteSheet")},children:{title:localeService.t("sheetConfig.deleteSheetContent")},cancelText:localeService.t("button.cancel"),confirmText:localeService.t("button.confirm")})?(await commandService.executeCommand(sheets.RemoveSheetCommand.id,{subUnitId}),!0):!1},"handler")},ISheetBarService=core.createIdentifier("univer.sheetbar-service"),_SheetBarService=class _SheetBarService extends core.Disposable{constructor(){super();__publicField(this,"renameId$");__publicField(this,"removeId$");__publicField(this,"scroll$");__publicField(this,"scrollX$");__publicField(this,"addSheet$");__publicField(this,"_renameId$");__publicField(this,"_removeId$");__publicField(this,"_scroll$");__publicField(this,"_scrollX$");__publicField(this,"_addSheet$");__publicField(this,"_currentHandler",null);this._renameId$=new rxjs.Subject,this.renameId$=this._renameId$.asObservable(),this._removeId$=new rxjs.Subject,this.removeId$=this._removeId$.asObservable(),this._scroll$=new rxjs.Subject,this.scroll$=this._scroll$.asObservable(),this._scrollX$=new rxjs.Subject,this.scrollX$=this._scrollX$.asObservable(),this._addSheet$=new rxjs.Subject,this.addSheet$=this._addSheet$.asObservable()}setRenameId(renameId){this._renameId$.next(renameId)}setRemoveId(removeId){this._removeId$.next(removeId)}setScroll(state){this._scroll$.next(state)}setScrollX(x){this._scrollX$.next(x)}setAddSheet(index){this._addSheet$.next(index)}triggerSheetBarMenu(){var _a61;(_a61=this._currentHandler)==null||_a61.handleSheetBarMenu()}registerSheetBarMenuHandler(handler){if(this._currentHandler)throw new Error("There is already a context menu handler!");return this._currentHandler=handler,core.toDisposable(()=>{this._currentHandler=null})}};__name(_SheetBarService,"SheetBarService");let SheetBarService=_SheetBarService;const ShowMenuListCommand={id:"ui-sheet.command.show-menu-list",type:core.CommandType.OPERATION,handler:__name(async accessor=>(accessor.get(ISheetBarService).triggerSheetBarMenu(),!0),"handler")},DeleteWorksheetProtectionFormSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.delete-worksheet-protection-from-sheet-bar",async handler(accessor,params){if(!params)return!1;const commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),worksheetProtectionRuleModel=accessor.get(sheets.WorksheetProtectionRuleModel),workbook=accessor.get(core.IUniverInstanceService).getCurrentUnitForType(_.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet(),unitId=workbook.getUnitId();if(!worksheet)return!1;const subUnitId=worksheet.getSheetId(),rule=worksheetProtectionRuleModel.getRule(unitId,subUnitId);if(await commandService.executeCommand(sheets.DeleteWorksheetProtectionCommand.id,{unitId,subUnitId})){const redoMutations=[{id:sheets.DeleteWorksheetProtectionCommand.id,params:{unitId,subUnitId}}],undoMutations=[{id:sheets.AddWorksheetProtectionCommand.id,params:{unitId,rule}}];undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations})}return!0}},ChangeSheetProtectionFromSheetBarCommand={type:core.CommandType.COMMAND,id:"sheet.command.change-sheet-protection-from-sheet-bar",async handler(accessor){return await accessor.get(core.ICommandService).executeCommand("sheet-permission.operation.openDialog"),!0}},SetActivateCellEditOperation={id:"sheet.operation.set-activate-cell-edit",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>(accessor.get(IEditorBridgeService).setEditCell(params),!0),"handler")},RenameSheetOperation={id:"sheet.operation.rename-sheet",type:core.CommandType.OPERATION,handler:__name(async(accessor,params)=>{const sheetBarService=accessor.get(ISheetBarService);return params&&sheetBarService.setRenameId(params.subUnitId),!0},"handler")},SheetPermissionOpenDialogOperation={type:core.CommandType.OPERATION,id:"sheet-permission.operation.openDialog",async handler(accessor,_params){const dialogService=accessor.get(ui.IDialogService);return dialogService.close("DESKTOP_FIND_REPLACE_DIALOG"),dialogService.open({id:UNIVER_SHEET_PERMISSION_DIALOG_ID,title:{title:"permission.dialog.allowedPermissionType"},children:{label:UNIVER_SHEET_PERMISSION_DIALOG},width:393,destroyOnClose:!0,onClose:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID),"onClose")}),!0}},DEFINED_NAME_CONTAINER="DefinedNameContainer",SidebarDefinedNameOperation={id:"sidebar.operation.defined-name",type:core.CommandType.COMMAND,handler:__name(async(accessor,params)=>{const sidebarService=accessor.get(ui.ISidebarService);accessor.get(docsUi.IEditorService);const localeService=accessor.get(core.LocaleService),univerInstanceService=accessor.get(core.IUniverInstanceService);if(!sheets.getSheetCommandTarget(univerInstanceService))return!1;switch(params.value){case"open":sidebarService.open({id:DEFINED_NAME_CONTAINER,header:{title:localeService.t("definedName.featureTitle")},children:{label:DEFINED_NAME_CONTAINER},onClose:__name(()=>{},"onClose"),width:333});break;case"close":default:sidebarService.close();break}return!0},"handler")},BorderDashDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M0.98999 1.08218H-0.0100098V0.0821838H0.98999V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M5.78992 1.08218H2.78992V0.0821838H5.78992V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M7.58984 1.08218H8.58984V0.0821838H7.58984V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.9152 1.08218H13.9152V0.0821838H14.9152V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M16.7151 1.08218H19.7151V0.0821838H16.7151V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M22.515 1.08218H21.515V0.0821838H22.515V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.8405 1.08218H28.8405V0.0821838H27.8405V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.6404 1.08218H30.6404V0.0821838H33.6404V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M35.4403 1.08218H36.4403V0.0821838H35.4403V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.7657 1.08218H41.7657V0.0821838H42.7657V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.5657 1.08218H47.5657V0.0821838H44.5657V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M50.3656 1.08218H49.3656V0.0821838H50.3656V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.691 1.08218H56.691V0.0821838H55.691V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M61.491 1.08218H58.491V0.0821838H61.491V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.2909 1.08218H64.2909V0.0821838H63.2909V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M70.6163 1.08218H69.6163V0.0821838H70.6163V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M72.4163 1.08218H75.4163V0.0821838H72.4163V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M78.2162 1.08218H77.2162V0.0821838H78.2162V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M83.5416 1.08218H84.5416V0.0821838H83.5416V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.3416 1.08218H86.3416V0.0821838H89.3416V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.1415 1.08218H92.1415V0.0821838H91.1415V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.4669 1.08218H97.4669V0.0821838H98.4669V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.267 1.08218H103.267V0.0821838H100.267V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M106.067 1.08218H105.067V0.0821838H106.067V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.392 1.08218H112.392V0.0821838H111.392V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.192 1.08218H114.192V0.0821838H117.192V1.08218Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.08218H119.992V0.0821838H118.992V1.08218Z",fill:"black"})]}),"BorderDashDot"),BorderDashDotDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 1.15771H0.98999V0.157715H-0.0100098V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M2.78992 1.15771H5.78992V0.157715H2.78992V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M8.58984 1.15771H7.58984V0.157715H8.58984V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M10.3899 1.15771H11.3899V0.157715H10.3899V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M19.0903 1.15771H18.0903V0.157715H19.0903V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M20.8903 1.15771H23.8903V0.157715H20.8903V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M26.6902 1.15771H25.6902V0.157715H26.6902V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M28.4902 1.15771H29.4902V0.157715H28.4902V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M37.1907 1.15771H36.1907V0.157715H37.1907V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.9906 1.15771H41.9906V0.157715H38.9906V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.7905 1.15771H43.7905V0.157715H44.7905V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M46.5906 1.15771H47.5906V0.157715H46.5906V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.291 1.15771H54.291V0.157715H55.291V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M57.0909 1.15771H60.0909V0.157715H57.0909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M62.8909 1.15771H61.8909V0.157715H62.8909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.6909 1.15771H65.6909V0.157715H64.6909V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M73.3914 1.15771H72.3914V0.157715H73.3914V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.1913 1.15771H78.1913V0.157715H75.1913V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.9912 1.15771H79.9912V0.157715H80.9912V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M82.7913 1.15771H83.7913V0.157715H82.7913V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.4917 1.15771H90.4917V0.157715H91.4917V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M93.2916 1.15771H96.2916V0.157715H93.2916V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M99.0916 1.15771H98.0916V0.157715H99.0916V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.892 1.15771H101.892V0.157715H100.892V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M109.592 1.15771H108.592V0.157715H109.592V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.392 1.15771H114.392V0.157715H111.392V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.192 1.15771H116.192V0.157715H117.192V1.15771Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.15771H119.992V0.157715H118.992V1.15771Z",fill:"black"})]}),"BorderDashDotDot"),BorderDashed=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00842285 1.22449H2.99158V0.224487H-0.00842285V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.14941 1.22449H9.14941V0.224487H6.14941V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M15.3073 1.22449H12.3073V0.224487H15.3073V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M18.4651 1.22449H21.4651V0.224487H18.4651V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.6229 1.22449H24.6229V0.224487H27.6229V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.7808 1.22449H33.7808V0.224487H30.7808V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.9386 1.22449H36.9386V0.224487H39.9386V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M43.0964 1.22449H46.0964V0.224487H43.0964V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.2543 1.22449H49.2543V0.224487H52.2543V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M55.4121 1.22449H58.4121V0.224487H55.4121V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.5699 1.22449H61.5699V0.224487H64.5699V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.7278 1.22449H70.7278V0.224487H67.7278V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M76.8856 1.22449H73.8856V0.224487H76.8856V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.0435 1.22449H83.0435V0.224487H80.0435V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.2013 1.22449H86.2013V0.224487H89.2013V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M92.3591 1.22449H95.3591V0.224487H92.3591V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M101.517 1.22449H98.517V0.224487H101.517V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M104.675 1.22449H107.675V0.224487H104.675V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M113.833 1.22449H110.833V0.224487H113.833V1.22449Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M116.99 1.22449H119.99V0.224487H116.99V1.22449Z",fill:"black"})]}),"BorderDashed"),BorderHair=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00976562 1.65707H0.990234V0.657074H-0.00976562V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M2.32361 1.65707H3.32361V0.657074H2.32361V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M5.65698 1.65707H4.65698V0.657074H5.65698V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.99036 1.65707H7.99036V0.657074H6.99036V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M10.3237 1.65707H9.32373V0.657074H10.3237V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M11.6571 1.65707H12.6571V0.657074H11.6571V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.9905 1.65707H13.9905V0.657074H14.9905V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M16.3239 1.65707H17.3239V0.657074H16.3239V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M19.6572 1.65707H18.6572V0.657074H19.6572V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M20.9906 1.65707H21.9906V0.657074H20.9906V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M24.324 1.65707H23.324V0.657074H24.324V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M25.6573 1.65707H26.6573V0.657074H25.6573V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M28.9907 1.65707H27.9907V0.657074H28.9907V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.3241 1.65707H31.3241V0.657074H30.3241V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.6575 1.65707H32.6575V0.657074H33.6575V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M34.9908 1.65707H35.9908V0.657074H34.9908V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.3242 1.65707H37.3242V0.657074H38.3242V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.6576 1.65707H40.6576V0.657074H39.6576V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.991 1.65707H41.991V0.657074H42.991V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.3243 1.65707H45.3243V0.657074H44.3243V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M47.6577 1.65707H46.6577V0.657074H47.6577V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M48.9911 1.65707H49.9911V0.657074H48.9911V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.3245 1.65707H51.3245V0.657074H52.3245V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M53.6578 1.65707H54.6578V0.657074H53.6578V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M56.9912 1.65707H55.9912V0.657074H56.9912V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M58.3246 1.65707H59.3246V0.657074H58.3246V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M61.658 1.65707H60.658V0.657074H61.658V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M62.9913 1.65707H63.9913V0.657074H62.9913V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M66.3247 1.65707H65.3247V0.657074H66.3247V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.6581 1.65707H68.6581V0.657074H67.6581V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M70.9915 1.65707H69.9915V0.657074H70.9915V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M72.3248 1.65707H73.3248V0.657074H72.3248V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.6582 1.65707H74.6582V0.657074H75.6582V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M76.9916 1.65707H77.9916V0.657074H76.9916V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.325 1.65707H79.325V0.657074H80.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M81.6583 1.65707H82.6583V0.657074H81.6583V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M84.9917 1.65707H83.9917V0.657074H84.9917V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M86.3251 1.65707H87.3251V0.657074H86.3251V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M89.6584 1.65707H88.6584V0.657074H89.6584V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M90.9918 1.65707H91.9918V0.657074H90.9918V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M94.3252 1.65707H93.3252V0.657074H94.3252V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M95.6586 1.65707H96.6586V0.657074H95.6586V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.9919 1.65707H97.9919V0.657074H98.9919V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M100.325 1.65707H101.325V0.657074H100.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.659 1.65707H102.659V0.657074H103.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M104.992 1.65707H105.992V0.657074H104.992V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M108.325 1.65707H107.325V0.657074H108.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M109.659 1.65707H110.659V0.657074H109.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M112.992 1.65707H111.992V0.657074H112.992V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M114.325 1.65707H115.325V0.657074H114.325V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.659 1.65707H116.659V0.657074H117.659V1.65707Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M118.992 1.65707H119.992V0.657074H118.992V1.65707Z",fill:"black"})]}),"BorderHair"),BorderMedium=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 2.42035H-0.0090332V0.420349H119.991V2.42035Z",fill:"black"})}),"BorderMedium"),BorderMediumDashDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"3",viewBox:"0 0 120 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 2.47614H1.98999V0.476135H-0.0100098V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M3.99014 2.47614H9.99014V0.476135H3.99014V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M13.9901 2.47614H11.9901V0.476135H13.9901V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M21.1904 2.47614H23.1904V0.476135H21.1904V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M31.1906 2.47614H25.1906V0.476135H31.1906V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M33.1906 2.47614H35.1906V0.476135H33.1906V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M44.3909 2.47614H42.3909V0.476135H44.3909V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M46.391 2.47614H52.391V0.476135H46.391V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M56.391 2.47614H54.391V0.476135H56.391V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.5913 2.47614H65.5913V0.476135H63.5913V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M73.5915 2.47614H67.5915V0.476135H73.5915V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.5915 2.47614H77.5915V0.476135H75.5915V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M86.7917 2.47614H84.7917V0.476135H86.7917V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M88.7919 2.47614H94.7919V0.476135H88.7919V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M98.7919 2.47614H96.7919V0.476135H98.7919V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M105.992 2.47614H107.992V0.476135H105.992V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.992 2.47614H109.992V0.476135H115.992V2.47614Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.992 2.47614H119.992V0.476135H117.992V2.47614Z",fill:"black"})]}),"BorderMediumDashDot"),BorderMediumDashDotDot=__name(()=>jsxRuntime.jsxs("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.0100098 2.00415H1.98999V0.00415039H-0.0100098V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M3.99014 2.00415H9.99014V0.00415039H3.99014V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M13.9901 2.00415H11.9901V0.00415039H13.9901V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M15.9901 2.00415H17.9901V0.00415039H15.9901V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M27.4905 2.00415H25.4905V0.00415039H27.4905V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M29.4906 2.00415H35.4906V0.00415039H29.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M39.4906 2.00415H37.4906V0.00415039H39.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M41.4906 2.00415H43.4906V0.00415039H41.4906V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M52.991 2.00415H50.991V0.00415039H52.991V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M54.9911 2.00415H60.9911V0.00415039H54.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M64.9911 2.00415H62.9911V0.00415039H64.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M66.9911 2.00415H68.9911V0.00415039H66.9911V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M78.4915 2.00415H76.4915V0.00415039H78.4915V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M80.4916 2.00415H86.4916V0.00415039H80.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M90.4916 2.00415H88.4916V0.00415039H90.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M92.4916 2.00415H94.4916V0.00415039H92.4916V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.992 2.00415H101.992V0.00415039H103.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M105.992 2.00415H111.992V0.00415039H105.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.992 2.00415H113.992V0.00415039H115.992V2.00415Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M117.992 2.00415H119.992V0.00415039H117.992V2.00415Z",fill:"black"})]}),"BorderMediumDashDotDot"),BorderMediumDashed=__name(()=>jsxRuntime.jsxs("svg",{width:"118",height:"3",viewBox:"0 0 118 3",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{d:"M-0.00854492 2.94815H1.99146V0.948151H-0.00854492V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M6.09668 2.94815H8.09668V0.948151H6.09668V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M14.2019 2.94815H12.2019V0.948151H14.2019V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M18.3071 2.94815H20.3071V0.948151H18.3071V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M26.4124 2.94815H24.4124V0.948151H26.4124V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M30.5176 2.94815H32.5176V0.948151H30.5176V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M38.6228 2.94815H36.6228V0.948151H38.6228V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M42.728 2.94815H44.728V0.948151H42.728V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M50.8333 2.94815H48.8333V0.948151H50.8333V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M54.9385 2.94815H56.9385V0.948151H54.9385V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M63.0437 2.94815H61.0437V0.948151H63.0437V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M67.1489 2.94815H69.1489V0.948151H67.1489V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M75.2542 2.94815H73.2542V0.948151H75.2542V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M79.3594 2.94815H81.3594V0.948151H79.3594V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M87.4645 2.94815H85.4645V0.948151H87.4645V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M91.5697 2.94815H93.5697V0.948151H91.5697V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M99.6749 2.94815H97.6749V0.948151H99.6749V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M103.78 2.94815H105.78V0.948151H103.78V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M111.885 2.94815H109.885V0.948151H111.885V2.94815Z",fill:"black"}),jsxRuntime.jsx("path",{d:"M115.991 2.94815H117.991V0.948151H115.991V2.94815Z",fill:"black"})]}),"BorderMediumDashed"),BorderThick=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"4",viewBox:"0 0 120 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 3.86215H-0.0090332V0.862152H119.991V3.86215Z",fill:"black"})}),"BorderThick"),BorderThin=__name(()=>jsxRuntime.jsx("svg",{width:"120",height:"2",viewBox:"0 0 120 2",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M119.991 1.15668H-0.0090332V0.156677H119.991V1.15668Z",fill:"black"})}),"BorderThin");function BorderLine(props){const{type=core.BorderStyleTypes.THIN}=props;switch(type){case core.BorderStyleTypes.DASH_DOT:return jsxRuntime.jsx(BorderDashDot,{});case core.BorderStyleTypes.DASH_DOT_DOT:return jsxRuntime.jsx(BorderDashDotDot,{});case core.BorderStyleTypes.DASHED:return jsxRuntime.jsx(BorderDashed,{});case core.BorderStyleTypes.HAIR:return jsxRuntime.jsx(BorderHair,{});case core.BorderStyleTypes.MEDIUM:return jsxRuntime.jsx(BorderMedium,{});case core.BorderStyleTypes.MEDIUM_DASH_DOT:return jsxRuntime.jsx(BorderMediumDashDot,{});case core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT:return jsxRuntime.jsx(BorderMediumDashDotDot,{});case core.BorderStyleTypes.MEDIUM_DASHED:return jsxRuntime.jsx(BorderMediumDashed,{});case core.BorderStyleTypes.THICK:return jsxRuntime.jsx(BorderThick,{});case core.BorderStyleTypes.THIN:return jsxRuntime.jsx(BorderThin,{});default:return jsxRuntime.jsx(BorderThin,{})}}__name(BorderLine,"BorderLine");const uiPluginSheetsBorderPanel="univer-ui-plugin-sheets-border-panel",uiPluginSheetsBorderPanelPosition="univer-ui-plugin-sheets-border-panel-position",uiPluginSheetsBorderPanelPositionItem="univer-ui-plugin-sheets-border-panel-position-item",uiPluginSheetsBorderPanelPositionItemActive="univer-ui-plugin-sheets-border-panel-position-item-active",uiPluginSheetsBorderPanelStyles="univer-ui-plugin-sheets-border-panel-styles",uiPluginSheetsBorderPanelBoard="univer-ui-plugin-sheets-border-panel-board",uiPluginSheetsBorderPanelButton="univer-ui-plugin-sheets-border-panel-button",uiPluginSheetsBorderPanelMoreIcon="univer-ui-plugin-sheets-border-panel-more-icon",styles$j={uiPluginSheetsBorderPanel,uiPluginSheetsBorderPanelPosition,uiPluginSheetsBorderPanelPositionItem,uiPluginSheetsBorderPanelPositionItemActive,uiPluginSheetsBorderPanelStyles,uiPluginSheetsBorderPanelBoard,uiPluginSheetsBorderPanelButton,uiPluginSheetsBorderPanelMoreIcon},BORDER_PANEL_COMPONENT=`${COMPONENT_PREFIX}_BORDER_PANEL_COMPONENT`,BORDER_LINE_CHILDREN=[{label:"borderLine.borderTop",icon:"UpBorder",value:"top"},{label:"borderLine.borderBottom",icon:"DownBorder",value:"bottom"},{label:"borderLine.borderLeft",icon:"LeftBorder",value:"left"},{label:"borderLine.borderRight",icon:"RightBorder",value:"right"},{label:"borderLine.borderNone",icon:"NoBorderSingle",value:"none"},{label:"borderLine.borderAll",icon:"AllBorderSingle",value:"all"},{label:"borderLine.borderOutside",icon:"OuterBorder",value:"outside"},{label:"borderLine.borderInside",icon:"InnerBorder",value:"inside"},{label:"borderLine.borderHorizontal",icon:"HorizontalBorder",value:"horizontal"},{label:"borderLine.borderVertical",icon:"VerticalBorder",value:"vertical"},{label:"borderLine.borderTlbr",icon:"BackSlashSingle",value:"tlbr"},{label:"borderLine.borderTlbcTlmr",icon:"LeftDoubleDiagonalSingle",value:"tlbc_tlmr"},{label:"borderLine.borderTlbrTlbcTlmr",icon:"LeftTridiagonalSingle",value:"tlbr_tlbc_tlmr"},{label:"borderLine.borderBlTr",icon:"SlashSingle",value:"bltr"},{label:"borderLine.borderMltrBctr",icon:"RightDoubleDiagonalSingle",value:"mltr_bctr"}],BORDER_SIZE_CHILDREN=[{label:core.BorderStyleTypes.THIN,value:core.BorderStyleTypes.THIN},{label:core.BorderStyleTypes.HAIR,value:core.BorderStyleTypes.HAIR},{label:core.BorderStyleTypes.DOTTED,value:core.BorderStyleTypes.DOTTED},{label:core.BorderStyleTypes.DASHED,value:core.BorderStyleTypes.DASHED},{label:core.BorderStyleTypes.DASH_DOT,value:core.BorderStyleTypes.DASH_DOT},{label:core.BorderStyleTypes.DASH_DOT_DOT,value:core.BorderStyleTypes.DASH_DOT_DOT},{label:core.BorderStyleTypes.MEDIUM,value:core.BorderStyleTypes.MEDIUM},{label:core.BorderStyleTypes.MEDIUM_DASHED,value:core.BorderStyleTypes.MEDIUM_DASHED},{label:core.BorderStyleTypes.MEDIUM_DASH_DOT,value:core.BorderStyleTypes.MEDIUM_DASH_DOT},{label:core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT,value:core.BorderStyleTypes.MEDIUM_DASH_DOT_DOT},{label:core.BorderStyleTypes.THICK,value:core.BorderStyleTypes.THICK}];function BorderPanel(props){var _a61;const componentManager=core.useDependency(ui.ComponentManager),borderStyleManagerService=core.useDependency(sheets.BorderStyleManagerService),{onChange,value}=props;function handleClick(v,type){onChange==null||onChange({...value,[type]:v})}__name(handleClick,"handleClick");function renderIcon(icon){const Icon=componentManager.get(icon);return Icon&&jsxRuntime.jsx(Icon,{extend:{colorChannel1:"rgb(var(--primary-color))"}})}__name(renderIcon,"renderIcon");function stopPropagation(e){e.stopPropagation()}return __name(stopPropagation,"stopPropagation"),jsxRuntime.jsxs("section",{className:styles$j.uiPluginSheetsBorderPanel,children:[jsxRuntime.jsx("div",{className:styles$j.uiPluginSheetsBorderPanelPosition,children:BORDER_LINE_CHILDREN.map(item=>jsxRuntime.jsx("div",{className:borderStyleManagerService.getBorderInfo().type===item.value?`
|
|
13
13
|
${styles$j.uiPluginSheetsBorderPanelPositionItemActive}
|
|
14
14
|
${styles$j.uiPluginSheetsBorderPanelPositionItem}
|
|
15
15
|
`:styles$j.uiPluginSheetsBorderPanelPositionItem,onClick:__name(e=>{e.stopPropagation(),handleClick(item.value,"type")},"onClick"),children:renderIcon(item.icon)},item.value))}),jsxRuntime.jsxs("div",{className:styles$j.uiPluginSheetsBorderPanelStyles,children:[jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.DropdownLegacy,{align:{offset:[0,18]},overlay:jsxRuntime.jsx("section",{className:styles$j.uiPluginSheetsBorderPanelBoard,onClick:stopPropagation,children:jsxRuntime.jsx(design.ColorPicker,{onChange:__name(value2=>handleClick(value2,"color"),"onChange")})}),children:jsxRuntime.jsxs("a",{className:styles$j.uiPluginSheetsBorderPanelButton,onClick:stopPropagation,children:[jsxRuntime.jsx(PaintBucket,{extend:{colorChannel1:(_a61=value==null?void 0:value.color)!=null?_a61:"rgb(var(--primary-color))"}}),jsxRuntime.jsx("span",{className:styles$j.uiPluginSheetsBorderPanelMoreIcon,children:jsxRuntime.jsx(MoreDownSingle,{})})]})})}),jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.DropdownLegacy,{align:{offset:[0,18]},overlay:jsxRuntime.jsx("section",{onClick:stopPropagation,children:jsxRuntime.jsx(design.Menu,{children:BORDER_SIZE_CHILDREN.map(item=>jsxRuntime.jsx(design.MenuItem,{eventKey:item.value.toString(),onClick:__name(()=>handleClick(item.value,"style"),"onClick"),children:jsxRuntime.jsx(BorderLine,{type:item.value})},item.value))})}),children:jsxRuntime.jsxs("a",{className:styles$j.uiPluginSheetsBorderPanelButton,onClick:stopPropagation,children:[jsxRuntime.jsx(BorderLine,{type:core.BorderStyleTypes.THIN}),jsxRuntime.jsx("span",{className:styles$j.uiPluginSheetsBorderPanelMoreIcon,children:jsxRuntime.jsx(MoreDownSingle,{})})]})})})]})]})}__name(BorderPanel,"BorderPanel");function r(e){var t,f,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}__name(r,"r");function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}__name(clsx,"clsx");const definedName="univer-defined-name",definedNameOverlay="univer-defined-name-overlay",definedNameOverlayContainer="univer-defined-name-overlay-container",definedNameOverlayItem="univer-defined-name-overlay-item",definedNameOverlayItemName="univer-defined-name-overlay-item-name",definedNameOverlayItemNameForSheet="univer-defined-name-overlay-item-name-for-sheet",definedNameOverlayItemFormula="univer-defined-name-overlay-item-formula",definedNameOverlayManager="univer-defined-name-overlay-manager",definedNameOverlayManagerTitle="univer-defined-name-overlay-manager-title",definedNameOverlayManagerContent="univer-defined-name-overlay-manager-content",definedNameContainer="univer-defined-name-container",definedNameContainerScroll="univer-defined-name-container-scroll",definedNameContainerAddButton="univer-defined-name-container-addButton",definedNameContainerAddButtonText="univer-defined-name-container-addButton-text",definedNameContainerItem="univer-defined-name-container-item",definedNameContainerItemName="univer-defined-name-container-item-name",definedNameContainerItemNameForSheet="univer-defined-name-container-item-name-for-sheet",definedNameContainerItemFormulaOrRefString="univer-defined-name-container-item-formula-or-refString",definedNameContainerItemUpdate="univer-defined-name-container-item-update",definedNameContainerItemDelete="univer-defined-name-container-item-delete",definedNameContainerItemShow="univer-defined-name-container-item-show",definedNameInput="univer-defined-name-input",definedNameInputFormulaSelectorTextWrap="univer-defined-name-input-formula-selector-text-wrap",definedNameInputTextEditorContainer="univer-defined-name-input-text-editor-container",definedNameInputValidation="univer-defined-name-input-validation",definedNameInputDisable="univer-defined-name-input-disable",styles$i={definedName,definedNameOverlay,definedNameOverlayContainer,definedNameOverlayItem,definedNameOverlayItemName,definedNameOverlayItemNameForSheet,definedNameOverlayItemFormula,definedNameOverlayManager,definedNameOverlayManagerTitle,definedNameOverlayManagerContent,definedNameContainer,definedNameContainerScroll,definedNameContainerAddButton,definedNameContainerAddButtonText,definedNameContainerItem,definedNameContainerItemName,definedNameContainerItemNameForSheet,definedNameContainerItemFormulaOrRefString,definedNameContainerItemUpdate,definedNameContainerItemDelete,definedNameContainerItemShow,definedNameInput,definedNameInputFormulaSelectorTextWrap,definedNameInputTextEditorContainer,definedNameInputValidation,definedNameInputDisable},widthStyle={width:"100%"},DefinedNameInput=__name(props=>{const{inputId,state=!1,type="range",confirm,cancel,name,formulaOrRefString,comment="",localSheetId=sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME,hidden=!1,id}=props,workbook=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),localeService=core.useDependency(core.LocaleService),definedNamesService=core.useDependency(engineFormula.IDefinedNamesService),functionService=core.useDependency(engineFormula.IFunctionService),lexerTreeBuilder=core.useDependency(engineFormula.LexerTreeBuilder),componentManager=core.useDependency(ui.ComponentManager),RangeSelector=React.useMemo(()=>componentManager.get(RANGE_SELECTOR_COMPONENT_KEY),[]),FormulaEditor=React.useMemo(()=>componentManager.get(EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY),[]);if(workbook==null)return;const unitId=React.useMemo(()=>workbook.getUnitId(),[]),subUnitId=React.useMemo(()=>workbook.getActiveSheet().getSheetId(),[]),[nameValue,setNameValue]=React.useState(name),[formulaOrRefStringValue,setFormulaOrRefStringValue]=React.useState(formulaOrRefString),[commentValue,setCommentValue]=React.useState(comment),[localSheetIdValue,setLocalSheetIdValue]=React.useState(localSheetId),[validString,setValidString]=React.useState(""),[typeValue,setTypeValue]=React.useState(type),[validFormulaOrRange,setValidFormulaOrRange]=React.useState(!0),rangeSelectorActionsRef=React.useRef({}),[isFocusRangeSelector,isFocusRangeSelectorSet]=React.useState(!1),options=[{label:localeService.t("definedName.scopeWorkbook"),value:sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME}],isFormula=__name(token=>!engineFormula.isReferenceStrings(token),"isFormula");React.useEffect(()=>{isFocusRangeSelectorSet(!1)},[subUnitId]),React.useEffect(()=>{setValidFormulaOrRange(!0),setNameValue(name),setCommentValue(comment),setLocalSheetIdValue(localSheetId);let formulaOrRefStringCache=formulaOrRefString;formulaOrRefString.substring(0,1)===engineFormula.operatorToken.EQUALS?setTypeValue("formula"):isFormula(formulaOrRefString)?(setTypeValue("formula"),formulaOrRefStringCache=engineFormula.operatorToken.EQUALS+formulaOrRefString):setTypeValue("range"),setFormulaOrRefStringValue(formulaOrRefStringCache),setValidString("")},[state]),workbook.getSheetOrders().forEach(sheetId=>{const sheet=workbook.getSheetBySheetId(sheetId);options.push({label:(sheet==null?void 0:sheet.getName())||"",value:sheetId})});const rangeSelectorChange=__name(rangesText=>{setFormulaOrRefStringValue(rangesText)},"rangeSelectorChange"),formulaEditorChange=__name(value=>{setFormulaOrRefStringValue(value||"")},"formulaEditorChange"),confirmChange=__name(()=>{if(nameValue.length===0){setValidString(localeService.t("definedName.nameEmpty"));return}if(definedNamesService.getValueByName(unitId,nameValue)!=null&&(id==null||id.length===0)){setValidString(localeService.t("definedName.nameDuplicate"));return}if(!core.Tools.isValidParameter(nameValue)||engineFormula.isReferenceStringWithEffectiveColumn(nameValue)||!core.Tools.isStartValidPosition(nameValue)&&!engineRender.hasCJKText(nameValue.substring(0,1))){setValidString(localeService.t("definedName.nameInvalid"));return}if(workbook.getSheetOrders().map(sheetId=>{var _a61;return((_a61=workbook.getSheetBySheetId(sheetId))==null?void 0:_a61.getName())||""}).includes(nameValue)){setValidString(localeService.t("definedName.nameSheetConflict"));return}if(formulaOrRefStringValue.length===0){setValidString(localeService.t("definedName.formulaOrRefStringEmpty"));return}if(!validFormulaOrRange){setValidString(localeService.t("definedName.formulaOrRefStringInvalid"));return}if(functionService.hasExecutor(nameValue.toUpperCase())){setValidString(localeService.t("definedName.nameConflict"));return}const currentSheetName=workbook.getActiveSheet().getName();confirm&&confirm({id:id||"",name:nameValue,formulaOrRefString:lexerTreeBuilder.convertRefersToAbsolute(formulaOrRefStringValue,core.AbsoluteRefType.ALL,core.AbsoluteRefType.ALL,currentSheetName),comment:commentValue,localSheetId:localSheetIdValue})},"confirmChange"),typeValueChange=__name(value=>{const type2=value;type2==="formula"?formulaOrRefString[0]===engineFormula.operatorToken.EQUALS?setFormulaOrRefStringValue(formulaOrRefString):setFormulaOrRefStringValue(`${engineFormula.operatorToken.EQUALS}`):formulaOrRefString[0]===engineFormula.operatorToken.EQUALS?setFormulaOrRefStringValue(""):setFormulaOrRefStringValue(formulaOrRefString),setTypeValue(type2)},"typeValueChange"),formulaEditorActionsRef=React.useRef({}),[isFocusFormulaEditor,isFocusFormulaEditorSet]=React.useState(!1);return ui.useSidebarClick(e=>{var _a61;const handleOutClick=(_a61=rangeSelectorActionsRef.current)==null?void 0:_a61.handleOutClick;handleOutClick&&handleOutClick(e,()=>isFocusRangeSelectorSet(!1))}),ui.useSidebarClick(e=>{var _a61;const handleOutClick=(_a61=formulaEditorActionsRef.current)==null?void 0:_a61.handleOutClick;handleOutClick&&handleOutClick(e,()=>isFocusFormulaEditorSet(!1))}),jsxRuntime.jsxs("div",{className:styles$i.definedNameInput,style:{display:state?"block":"none"},children:[jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.Input,{placeholder:localeService.t("definedName.inputNamePlaceholder"),value:nameValue,allowClear:!0,onChange:setNameValue,affixWrapperStyle:widthStyle})}),jsxRuntime.jsx("div",{children:jsxRuntime.jsxs(design.RadioGroup,{value:typeValue,onChange:typeValueChange,children:[jsxRuntime.jsx(design.Radio,{value:"range",children:localeService.t("definedName.ratioRange")}),jsxRuntime.jsx(design.Radio,{value:"formula",children:localeService.t("definedName.ratioFormula")})]})}),typeValue==="range"?RangeSelector&&jsxRuntime.jsx(RangeSelector,{unitId,subUnitId,initValue:formulaOrRefStringValue,onChange:rangeSelectorChange,isFocus:isFocusRangeSelector,onFocus:__name(()=>isFocusRangeSelectorSet(!0),"onFocus"),actions:rangeSelectorActionsRef.current,isSupportAcrossSheet:!0}):FormulaEditor&&jsxRuntime.jsx(FormulaEditor,{initValue:formulaOrRefStringValue,unitId,subUnitId,isFocus:isFocusFormulaEditor,isSupportAcrossSheet:!0,onChange:__name((v="")=>{formulaEditorChange(v||"")},"onChange"),onVerify:__name(res=>{setValidFormulaOrRange(res)},"onVerify"),onFocus:__name(()=>isFocusFormulaEditorSet(!0),"onFocus"),actions:formulaEditorActionsRef.current}),jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.Select,{style:widthStyle,value:localSheetIdValue,options,onChange:setLocalSheetIdValue})}),jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.Input,{affixWrapperStyle:widthStyle,placeholder:localeService.t("definedName.inputCommentPlaceholder"),value:commentValue,onChange:setCommentValue})}),jsxRuntime.jsxs("div",{style:{display:validString.length===0?"none":"flex"},className:styles$i.definedNameInputValidation,children:[jsxRuntime.jsx("span",{children:validString}),jsxRuntime.jsx(ErrorSingle,{})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx(design.Button,{onClick:__name(()=>{cancel&&cancel()},"onClick"),children:localeService.t("definedName.cancel")}),jsxRuntime.jsx(design.Button,{style:{marginLeft:15},type:"primary",onClick:confirmChange,children:localeService.t("definedName.confirm")})]})]})},"DefinedNameInput"),DefinedNameContainer=__name(()=>{const commandService=core.useDependency(core.ICommandService),workbook=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),localeService=core.useDependency(core.LocaleService),definedNamesService=core.useDependency(engineFormula.IDefinedNamesService),selectionManagerService=core.useDependency(sheets.SheetsSelectionsService);if(workbook==null)return;const unitId=workbook.getUnitId(),getDefinedNameMap=__name(()=>{const definedNameMap=definedNamesService.getDefinedNameMap(unitId);return definedNameMap?Array.from(Object.values(definedNameMap)):[]},"getDefinedNameMap"),[editState,setEditState]=React.useState(!1),[definedNames,setDefinedNames]=React.useState(getDefinedNameMap()),[editorKey,setEditorKey]=React.useState(null),[deleteConformKey,setDeleteConformKey]=React.useState();React.useEffect(()=>{const definedNamesSubscription=definedNamesService.update$.subscribe(()=>{setDefinedNames(getDefinedNameMap())});return()=>{definedNamesSubscription.unsubscribe()}},[]);const insertConfirm=__name(param=>{const{name,formulaOrRefString,comment,localSheetId,hidden}=param;let id=param.id;if(id==null||id.length===0)id=core.Tools.generateRandomId(10),commandService.executeCommand(sheets.InsertDefinedNameCommand.id,{id,unitId,name,formulaOrRefString,comment,localSheetId,hidden});else{const newDefinedName={id,unitId,name,formulaOrRefString,comment,localSheetId,hidden};commandService.executeCommand(sheets.SetDefinedNameCommand.id,newDefinedName)}setEditState(!1),setEditorKey(null)},"insertConfirm"),deleteDefinedName=__name(id=>{setDeleteConformKey(id)},"deleteDefinedName");function handleDeleteClose(){setDeleteConformKey(null)}__name(handleDeleteClose,"handleDeleteClose");function handleDeleteConfirm(id){const item=definedNamesService.getValueById(unitId,id);commandService.executeCommand(sheets.RemoveDefinedNameCommand.id,{...item,unitId}),setDeleteConformKey(null)}__name(handleDeleteConfirm,"handleDeleteConfirm");const focusDefinedName=__name(async definedName2=>{const{formulaOrRefString,id}=definedName2,worksheet=definedNamesService.getWorksheetByRef(unitId,formulaOrRefString);if(!worksheet)return;worksheet.isSheetHidden()&&await commandService.executeCommand(sheets.SetWorksheetShowCommand.id,{unitId,subUnitId:worksheet.getSheetId()}),definedNamesService.focusRange(unitId,id)},"focusDefinedName"),getInsertDefinedName=__name(()=>{const count=definedNames.length+1,name=localeService.t("definedName.defaultName")+count;if(definedNamesService.getValueByName(unitId,name)==null)return name;let i=count+1;for(;;){const newName=localeService.t("definedName.defaultName")+i;if(definedNamesService.getValueByName(unitId,newName)==null)return newName;i++}},"getInsertDefinedName"),getInertFormulaOrRefString=__name(()=>{var _a61;const sheetName=(_a61=workbook.getActiveSheet())==null?void 0:_a61.getName();if(!sheetName)return"";const selections=selectionManagerService.getCurrentSelections();return selections==null?"":selections.map(selection=>engineFormula.serializeRangeWithSheet(sheetName,selection.range)).join(",")},"getInertFormulaOrRefString"),closeInput=__name(()=>{setEditState(!1),setEditorKey(null)},"closeInput"),openInsertCloseKeyEditor=__name(()=>{setEditState(!0),setEditorKey(null)},"openInsertCloseKeyEditor"),closeInsertOpenKeyEditor=__name(id=>{setEditState(!1),setEditorKey(id)},"closeInsertOpenKeyEditor"),getSheetNameBySheetId=__name(sheetId=>{const sheet=workbook.getSheetBySheetId(sheetId);return sheet==null?"":sheet.getName()},"getSheetNameBySheetId");return jsxRuntime.jsx("div",{className:styles$i.definedNameContainer,children:jsxRuntime.jsxs("div",{className:styles$i.definedNameContainerScroll,children:[jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{onClick:openInsertCloseKeyEditor,className:styles$i.definedNameContainerAddButton,style:{display:editState?"none":"flex"},children:[jsxRuntime.jsx(IncreaseSingle,{}),jsxRuntime.jsx("span",{className:styles$i.definedNameContainerAddButtonText,children:localeService.t("definedName.addButton")})]}),editState&&jsxRuntime.jsx(DefinedNameInput,{confirm:insertConfirm,cancel:closeInput,state:editState,inputId:"insertDefinedName",name:getInsertDefinedName(),formulaOrRefString:getInertFormulaOrRefString()})]},"insertDefinedName"),definedNames.map((definedName2,index)=>jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{onClick:__name(()=>{focusDefinedName(definedName2)},"onClick"),className:styles$i.definedNameContainerItem,style:{display:definedName2.id===editorKey?"none":"flex"},children:[jsxRuntime.jsxs("div",{title:definedName2.comment,children:[jsxRuntime.jsxs("div",{className:styles$i.definedNameContainerItemName,children:[definedName2.name,jsxRuntime.jsx("span",{className:styles$i.definedNameContainerItemNameForSheet,children:definedName2.localSheetId===sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME||definedName2.localSheetId==null?"":getSheetNameBySheetId(definedName2.localSheetId)})]}),jsxRuntime.jsx("div",{className:styles$i.definedNameContainerItemFormulaOrRefString,children:definedName2.formulaOrRefString})]}),jsxRuntime.jsx(design.Tooltip,{title:localeService.t("definedName.updateButton"),placement:"top",children:jsxRuntime.jsx("div",{className:clsx(styles$i.definedNameContainerItemUpdate,styles$i.definedNameContainerItemShow),onClick:__name(()=>{closeInsertOpenKeyEditor(definedName2.id)},"onClick"),children:jsxRuntime.jsx(CheckMarkSingle,{})})}),jsxRuntime.jsx(design.Tooltip,{title:localeService.t("definedName.deleteButton"),placement:"top",children:jsxRuntime.jsx("div",{className:clsx(styles$i.definedNameContainerItemDelete,styles$i.definedNameContainerItemShow),onClick:__name(()=>{deleteDefinedName(definedName2.id)},"onClick"),children:jsxRuntime.jsx(DeleteSingle,{})})})]}),jsxRuntime.jsx(design.Confirm,{visible:deleteConformKey===definedName2.id,onClose:handleDeleteClose,onConfirm:__name(()=>{handleDeleteConfirm(definedName2.id)},"onConfirm"),children:localeService.t("definedName.deleteConfirmText")}),definedName2.id===editorKey&&jsxRuntime.jsx(DefinedNameInput,{confirm:insertConfirm,cancel:closeInput,state:definedName2.id===editorKey,id:definedName2.id,inputId:definedName2.id+index,name:definedName2.name,formulaOrRefString:definedName2.formulaOrRefString,comment:definedName2.comment,localSheetId:definedName2.localSheetId})]},index))]})})},"DefinedNameContainer"),countBar="univer-count-bar",styles$h={countBar},ZOOM_MAP=[50,75,100,125,150,175,200,400];function ZoomSlider(){const commandService=core.useDependency(core.ICommandService),univerInstanceService=core.useDependency(core.IUniverInstanceService),workbook=useActiveWorkbook(),editorBridgeService=core.useDependency(IEditorBridgeService),visible=core.useObservable(editorBridgeService.visible$),getCurrentZoom=React.useCallback(()=>{if(!workbook)return 100;const worksheet=workbook.getActiveSheet(),currentZoom=worksheet&&worksheet.getZoomRatio()*100||100;return Math.round(currentZoom)},[workbook]),[zoom,setZoom]=React.useState(()=>getCurrentZoom());React.useEffect(()=>(setZoom(getCurrentZoom()),commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===SetZoomRatioOperation.id||commandInfo.id===sheets.SetWorksheetActiveOperation.id){const currentZoom=getCurrentZoom();setZoom(currentZoom)}}).dispose),[commandService,getCurrentZoom]);function handleChange(value){setZoom(value);const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook2==null?void 0:workbook2.getActiveSheet();if(worksheet==null)return;const zoomRatio=value/100;commandService.executeCommand(SetZoomRatioCommand.id,{unitId:workbook2.getUnitId(),subUnitId:worksheet.getSheetId(),zoomRatio})}__name(handleChange,"handleChange");const disabled=(visible==null?void 0:visible.visible)&&(visible.unitId===(workbook==null?void 0:workbook.getUnitId())||visible.unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);return jsxRuntime.jsx(design.Slider,{disabled,min:SHEET_ZOOM_RANGE[0],value:zoom,shortcuts:ZOOM_MAP,onChange:handleChange})}__name(ZoomSlider,"ZoomSlider");function CountBar(props){return jsxRuntime.jsx("section",{className:styles$h.countBar,children:jsxRuntime.jsx(ZoomSlider,{})})}__name(CountBar,"CountBar");function useKeyEventConfig(isRefSelecting,unitId){const editorBridgeService=core.useDependency(IEditorBridgeService);return React.useMemo(()=>({keyCodes:[{keyCode:ui.KeyCode.ENTER},{keyCode:ui.KeyCode.ESC},{keyCode:ui.KeyCode.TAB}],handler:__name(keycode=>{(keycode===ui.KeyCode.ENTER||keycode===ui.KeyCode.ESC||keycode===ui.KeyCode.TAB)&&(editorBridgeService.disableForceKeepVisible(),editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId}))},"handler")}),[editorBridgeService,unitId])}__name(useKeyEventConfig,"useKeyEventConfig");const editorContainer="univer-editor-container",editorInput="univer-editor-input",sheetEmbeddingFormulaEditorWrap$1="univer-sheet-embedding-formula-editor-wrap",styles$g={editorContainer,editorInput,sheetEmbeddingFormulaEditorWrap:sheetEmbeddingFormulaEditorWrap$1},HIDDEN_EDITOR_POSITION=-1e3,EDITOR_DEFAULT_POSITION={width:0,height:0,top:HIDDEN_EDITOR_POSITION,left:HIDDEN_EDITOR_POSITION},EditorContainer=__name(()=>{const[state,setState]=React.useState({...EDITOR_DEFAULT_POSITION}),cellEditorManagerService=core.useDependency(ICellEditorManagerService),editorService=core.useDependency(docsUi.IEditorService),contextService=core.useDependency(core.IContextService),componentManager=core.useDependency(ui.ComponentManager),editorBridgeService=core.useDependency(IEditorBridgeService),visible=ui.useObservable(editorBridgeService.visible$),commandService=core.useDependency(core.ICommandService),isRefSelecting=React.useRef(0),disableAutoFocus=ui.useObservable(()=>contextService.subscribeContextValue$(ui.DISABLE_AUTO_FOCUS_KEY),!1,void 0,[contextService,ui.DISABLE_AUTO_FOCUS_KEY]),FormulaEditor=componentManager.get(EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY),editState=editorBridgeService.getEditLocation();React.useEffect(()=>{const sub=cellEditorManagerService.state$.subscribe(param=>{if(param==null)return;const{startX=HIDDEN_EDITOR_POSITION,startY=HIDDEN_EDITOR_POSITION,endX=0,endY=0,show=!1}=param;if(!show)setState({...EDITOR_DEFAULT_POSITION});else{setState({width:endX-startX,height:endY-startY,left:startX,top:startY});const editor=editorService.getEditor(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);if(editor==null)return;const{left,top,width,height}=editor.getBoundingClientRect();cellEditorManagerService.setRect({left,top,width,height})}});return()=>{sub.unsubscribe()}},[]),React.useEffect(()=>{disableAutoFocus||cellEditorManagerService.setFocus(!0)},[disableAutoFocus,state]);const handleClickSideBar=ui.useEvent(()=>{editorBridgeService.isVisible().visible&&editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.PointerUp,unitId:editState.unitId})});ui.useSidebarClick(handleClickSideBar);const keyCodeConfig=useKeyEventConfig(isRefSelecting,editState==null?void 0:editState.unitId),onMoveInEditor=ui.useEvent((keycode,metaKey)=>{commandService.executeCommand(SetCellEditVisibleArrowOperation.id,{keycode,visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,isShift:metaKey===ui.MetaKeys.SHIFT||metaKey===(ui.MetaKeys.CTRL_COMMAND|ui.MetaKeys.SHIFT),unitId:editState==null?void 0:editState.unitId})});return jsxRuntime.jsx("div",{className:styles$g.editorContainer,style:{left:state.left,top:state.top,width:state.width,height:state.height},children:FormulaEditor&&jsxRuntime.jsx(FormulaEditor,{editorId:core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,className:styles$g.editorInput,initValue:"",onChange:__name(()=>{},"onChange"),isFocus:visible==null?void 0:visible.visible,unitId:editState==null?void 0:editState.unitId,subUnitId:editState==null?void 0:editState.sheetId,keyboradEventConfig:keyCodeConfig,onMoveInEditor,isSupportAcrossSheet:!0,resetSelectionOnBlur:!1,isSingle:!1,autoScrollbar:!1,onFormulaSelectingChange:__name(isSelecting=>{isRefSelecting.current=isSelecting,isSelecting?editorBridgeService.enableForceKeepVisible():editorBridgeService.disableForceKeepVisible()},"onFormulaSelectingChange"),disableSelectionOnClick:!0,disableContextMenu:!1})})},"EditorContainer"),_FormulaEditorManagerService=class _FormulaEditorManagerService{constructor(){__publicField(this,"_position",null);__publicField(this,"_position$",new rxjs.BehaviorSubject(null));__publicField(this,"position$",this._position$.asObservable());__publicField(this,"_focus",!1);__publicField(this,"_focus$",new rxjs.BehaviorSubject(this._focus));__publicField(this,"focus$",this._focus$.asObservable());__publicField(this,"_fxBtnClick$",new rxjs.Subject);__publicField(this,"fxBtnClick$",this._fxBtnClick$.asObservable());__publicField(this,"_foldBtnStatus$",new rxjs.Subject);__publicField(this,"foldBtnStatus$",this._foldBtnStatus$.asObservable())}dispose(){this._position$.complete(),this._focus$.complete(),this._position=null,this._focus=!1}setPosition(param){this._position=param,this._refresh(param)}getPosition(){return this._position}setFocus(param=!1){this._focus=param,this._focus$.next(param)}handleFxBtnClick(params){this._fxBtnClick$.next(params)}handleFoldBtnClick(params){this._foldBtnStatus$.next(params)}_refresh(param){this._position$.next(param)}};__name(_FormulaEditorManagerService,"FormulaEditorManagerService");let FormulaEditorManagerService=_FormulaEditorManagerService;const IFormulaEditorManagerService=core.createIdentifier("univer.sheet-formula-editor-manager.service");function DefinedNameOverlay(props){const commandService=core.useDependency(core.ICommandService),localeService=core.useDependency(core.LocaleService),definedNamesService=core.useDependency(engineFormula.IDefinedNamesService),univerInstanceService=core.useDependency(core.IUniverInstanceService),sidebarService=core.useDependency(ui.ISidebarService),unitId=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId(),getDefinedNameMap=__name(()=>{const definedNameMap=definedNamesService.getDefinedNameMap(unitId);return definedNameMap?Array.from(Object.values(definedNameMap)):[]},"getDefinedNameMap"),[definedNames,setDefinedNames]=React.useState(getDefinedNameMap());React.useEffect(()=>{const definedNamesSubscription=definedNamesService.update$.subscribe(()=>{setDefinedNames(getDefinedNameMap())});return()=>{definedNamesSubscription.unsubscribe()}},[]),React.useEffect(()=>{const d=sidebarService.sidebarOptions$.subscribe(info=>{info.id===DEFINED_NAME_CONTAINER&&(info.visible||setTimeout(()=>{sidebarService.sidebarOptions$.next({visible:!1})}))});return()=>{d.unsubscribe()}},[]);const openSlider=__name(()=>{commandService.executeCommand(SidebarDefinedNameOperation.id,{value:"open"})},"openSlider"),focusDefinedName=__name(async definedName2=>{const{formulaOrRefString,id}=definedName2,worksheet=definedNamesService.getWorksheetByRef(unitId,formulaOrRefString);if(!worksheet)return;worksheet.isSheetHidden()&&await commandService.executeCommand(sheets.SetWorksheetShowCommand.id,{unitId,subUnitId:worksheet.getSheetId()}),definedNamesService.focusRange(unitId,id)},"focusDefinedName");return jsxRuntime.jsxs("div",{className:"univer-w-[300px]",children:[jsxRuntime.jsx("ul",{className:`
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
univer-flex univer-items-center univer-justify-center univer-px-1 univer-cursor-pointer
|
|
41
41
|
univer-absolute univer-right-0 univer-h-full univer-transition-colors univer-duration-200
|
|
42
42
|
hover:univer-bg-gray-100
|
|
43
|
-
`,{"univer-text-gray-300 univer-cursor-not-allowed hover:univer-bg-transparent":disable}),children:jsxRuntime.jsx(MoreDownSingle,{})})}),jsxRuntime.jsx(design.DropdownOverlay,{className:"univer-z-[1001]",offset:{x:-75,y:2},children:jsxRuntime.jsx(DefinedNameOverlay,{})})]})]})}__name(DefinedName,"DefinedName");const formulaBox="univer-formula-box",nameRanges="univer-name-ranges",formulaBar="univer-formula-bar",formulaIcon="univer-formula-icon",formulaIconDisable="univer-formula-icon-disable",formulaIconWrapper="univer-formula-icon-wrapper",iconContainer="univer-icon-container",iconContainerSuccess="univer-icon-container-success",formulaActive="univer-formula-active",iconContainerError="univer-icon-container-error",iconContainerFx="univer-icon-container-fx",formulaInput="univer-formula-input",formulaContainer="univer-formula-container",sheetEmbeddingFormulaEditorWrap="univer-sheet-embedding-formula-editor-wrap",formulaContent="univer-formula-content",arrowContainer="univer-arrow-container",arrowContainerDisable="univer-arrow-container-disable",styles$f={formulaBox,nameRanges,formulaBar,formulaIcon,formulaIconDisable,formulaIconWrapper,iconContainer,iconContainerSuccess,formulaActive,iconContainerError,iconContainerFx,formulaInput,formulaContainer,sheetEmbeddingFormulaEditorWrap,formulaContent,arrowContainer,arrowContainerDisable};function FormulaBar(){var _a61;const[iconStyle,setIconStyle]=React.useState(styles$f.formulaGrey),[arrowDirection,setArrowDirection]=React.useState(0),formulaEditorManagerService=core.useDependency(IFormulaEditorManagerService),editorBridgeService=core.useDependency(IEditorBridgeService),worksheetProtectionRuleModel=core.useDependency(sheets.WorksheetProtectionRuleModel),rangeProtectionRuleModel=core.useDependency(sheets.RangeProtectionRuleModel),univerInstanceService=core.useDependency(core.IUniverInstanceService),selectionManager=core.useDependency(sheets.SheetsSelectionsService),permissionService=core.useDependency(core.IPermissionService),[disable,setDisable]=React.useState(!1),[imageDisable,setImageDisable]=React.useState(!1),currentWorkbook=useActiveWorkbook(),componentManager=core.useDependency(ui.ComponentManager),workbook=core.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]),isRefSelecting=React.useRef(0),editState=editorBridgeService.getEditLocation(),keyCodeConfig=useKeyEventConfig(isRefSelecting,(_a61=editState==null?void 0:editState.unitId)!=null?_a61:""),FormulaEditor=componentManager.get(EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY),formulaAuxUIParts=ui.useComponentsOfPart(SheetsUIPart.FORMULA_AUX),contextService=core.useDependency(core.IContextService);core.useObservable(React.useMemo(()=>contextService.subscribeContextValue$(core.FOCUSING_FX_BAR_EDITOR),[contextService]));const isFocusFxBar=contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR),ref=React.useRef(null);function getPermissionIds(unitId,subUnitId){return[new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetSetCellValuePermission(unitId,subUnitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id]}__name(getPermissionIds,"getPermissionIds"),React.useLayoutEffect(()=>{const subscription=workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>worksheet?rxjs.merge(worksheetProtectionRuleModel.ruleChange$,rangeProtectionRuleModel.ruleChange$,selectionManager.selectionMoveEnd$,selectionManager.selectionSet$).pipe(rxjs.switchMap(()=>{var _a62,_b;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();if(!((_a62=selectionManager.getCurrentLastSelection())==null?void 0:_a62.range))return rxjs.EMPTY;const permissionIds=getPermissionIds(unitId,subUnitId),selectionRanges=(_b=selectionManager.getCurrentSelections())==null?void 0:_b.map(selection=>selection.range);return rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.ranges.some(r2=>selectionRanges==null?void 0:selectionRanges.some(selectionRange=>core.Rectangle.intersects(r2,selectionRange)))).forEach(p=>{permissionIds.push(new sheets.RangeProtectionPermissionEditPoint(unitId,subUnitId,p.permissionId).id)}),permissionService.composePermission$(permissionIds)})):rxjs.EMPTY)).subscribe(permissions=>{permissions&&setDisable(!permissions.every(p=>p.value))});return()=>{subscription.unsubscribe()}},[workbook]),React.useEffect(()=>{const subscription=editorBridgeService.visible$.subscribe(visibleInfo=>{setIconStyle(visibleInfo.visible?styles$f.formulaActive:styles$f.formulaGrey)});return()=>subscription.unsubscribe()},[editorBridgeService.visible$]),React.useEffect(()=>{const subscription=editorBridgeService.currentEditCellState$.subscribe(state=>{var _a62,_b,_c;(_c=(_b=(_a62=state==null?void 0:state.documentLayoutObject.documentModel)==null?void 0:_a62.getBody())==null?void 0:_b.customBlocks)!=null&&_c.length?setImageDisable(!0):setImageDisable(!1)});return()=>subscription.unsubscribe()},[editorBridgeService.currentEditCellState$]),React.useEffect(()=>{if(ref.current){const handleResize=__name(()=>{const editorRect=ref.current.getBoundingClientRect();formulaEditorManagerService.setPosition(editorRect)},"handleResize");handleResize();const a=new ResizeObserver(handleResize);return a.observe(ref.current),()=>a.disconnect()}},[formulaEditorManagerService]);function handleArrowClick(){setArrowDirection(arrowDirection===0?1:0),setTimeout(()=>{formulaEditorManagerService.handleFoldBtnClick(arrowDirection===1)},150)}__name(handleArrowClick,"handleArrowClick");function handleCloseBtnClick(){var _a62;editorBridgeService.isVisible().visible&&editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ESC,unitId:(_a62=currentWorkbook==null?void 0:currentWorkbook.getUnitId())!=null?_a62:""})}__name(handleCloseBtnClick,"handleCloseBtnClick");function handleConfirmBtnClick(){var _a62;editorBridgeService.isVisible().visible&&editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.PointerDown,unitId:(_a62=currentWorkbook==null?void 0:currentWorkbook.getUnitId())!=null?_a62:""})}__name(handleConfirmBtnClick,"handleConfirmBtnClick");function handlerFxBtnClick(){formulaEditorManagerService.handleFxBtnClick(!0)}__name(handlerFxBtnClick,"handlerFxBtnClick");const disabled=disable||imageDisable;return jsxRuntime.jsxs("div",{className:styles$f.formulaBox,style:{height:arrowDirection===0?"28px":"82px",pointerEvents:disable?"none":"auto"},children:[jsxRuntime.jsx("div",{className:styles$f.nameRanges,children:jsxRuntime.jsx(DefinedName,{disable})}),jsxRuntime.jsxs("div",{className:styles$f.formulaBar,children:[jsxRuntime.jsx("div",{className:clsx(styles$f.formulaIcon,{[styles$f.formulaIconDisable]:disabled}),children:jsxRuntime.jsxs("div",{className:styles$f.formulaIconWrapper,children:[jsxRuntime.jsx("span",{className:clsx(styles$f.iconContainer,styles$f.iconContainerError,iconStyle),onClick:handleCloseBtnClick,children:jsxRuntime.jsx(CloseSingle,{})}),jsxRuntime.jsx("span",{className:clsx(styles$f.iconContainer,styles$f.iconContainerSuccess,iconStyle),onClick:handleConfirmBtnClick,children:jsxRuntime.jsx(CheckMarkSingle,{})}),jsxRuntime.jsx("span",{className:clsx(styles$f.iconContainer,styles$f.iconContainerFx),onClick:handlerFxBtnClick,children:jsxRuntime.jsx(FxSingle,{})})]})}),jsxRuntime.jsxs("div",{className:styles$f.formulaContainer,children:[jsxRuntime.jsx("div",{className:styles$f.formulaInput,ref,children:FormulaEditor&&jsxRuntime.jsx(FormulaEditor,{disableSelectionOnClick:!0,editorId:core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,initValue:"",onChange:__name(()=>{},"onChange"),isFocus:isFocusFxBar,className:styles$f.formulaContent,unitId:editState==null?void 0:editState.unitId,subUnitId:editState==null?void 0:editState.sheetId,isSupportAcrossSheet:!0,resetSelectionOnBlur:!1,isSingle:!1,keyboradEventConfig:keyCodeConfig,onFormulaSelectingChange:__name(isSelecting=>{isRefSelecting.current=isSelecting,isSelecting?editorBridgeService.enableForceKeepVisible():editorBridgeService.disableForceKeepVisible()},"onFormulaSelectingChange"),autoScrollbar:!1,disableContextMenu:!1})}),jsxRuntime.jsx("div",{className:clsx(styles$f.arrowContainer,{[styles$f.arrowContainerDisable]:disable}),onClick:handleArrowClick,children:arrowDirection===0?jsxRuntime.jsx(DropdownSingle,{}):jsxRuntime.jsx(DropdownSingle,{style:{transform:"rotateZ(180deg)"}})})]})]}),jsxRuntime.jsx(ui.ComponentContainer,{components:formulaAuxUIParts},"formula-aux")]})}__name(FormulaBar,"FormulaBar");const operateContainer="univer-operate-container",autoFillPopupMenu="univer-auto-fill-popup-menu",autoFillPopupMenuItem="univer-auto-fill-popup-menu-item",autoFillPopupMenuItemIcon="univer-auto-fill-popup-menu-item-icon",autoFillPopupMenuItemTitle="univer-auto-fill-popup-menu-item-title",autoFillPopupMenuItemHide="univer-auto-fill-popup-menu-item-hide",btnContainer="univer-btn-container",btnContainerExpand="univer-btn-container-expand",styles$e={operateContainer,autoFillPopupMenu,autoFillPopupMenuItem,autoFillPopupMenuItemIcon,autoFillPopupMenuItemTitle,autoFillPopupMenuItemHide,btnContainer,btnContainerExpand},useUpdate=__name(()=>{const[,setState]=React.useState({});return React.useCallback(()=>setState(prevState=>!prevState),[])},"useUpdate"),AutoFillPopupMenu=__name(()=>{const commandService=core.useDependency(core.ICommandService),univerInstanceService=core.useDependency(core.IUniverInstanceService),renderManagerService=core.useDependency(engineRender.IRenderManagerService),autoFillService=core.useDependency(IAutoFillService),localeService=core.useDependency(core.LocaleService),[menu,setMenu]=React.useState([]),[visible,setVisible]=React.useState(!1),[anchor,setAnchor]=React.useState({row:-1,col:-1}),[selected,setSelected]=React.useState(APPLY_TYPE.SERIES),[isHovered,setHovered]=React.useState(!1),workbook=useActiveWorkbook(),{sheetSkeletonManagerService,selectionRenderService}=React.useMemo(()=>{if(workbook){const ru=renderManagerService.getRenderById(workbook.getUnitId());return{sheetSkeletonManagerService:ru==null?void 0:ru.with(exports.SheetSkeletonManagerService),selectionRenderService:ru==null?void 0:ru.with(ISheetSelectionRenderService)}}return{sheetSkeletonManagerService:null,selectionRenderService:null}},[workbook,renderManagerService]),handleMouseEnter=__name(()=>{setHovered(!0)},"handleMouseEnter"),handleMouseLeave=__name(()=>{setHovered(!1)},"handleMouseLeave"),forceUpdate=useUpdate();if(React.useEffect(()=>commandService.onCommandExecuted((command,options)=>{command.id===SetScrollOperation.id&&forceUpdate()}).dispose,[forceUpdate,commandService]),React.useEffect(()=>{const disposable=sheetSkeletonManagerService&&core.toDisposable(sheetSkeletonManagerService.currentSkeleton$.subscribe(skeleton2=>{skeleton2&&forceUpdate()}));return disposable==null?void 0:disposable.dispose},[sheetSkeletonManagerService,forceUpdate]),React.useEffect(()=>core.toDisposable(autoFillService.menu$.subscribe(menu2=>{setMenu(menu2.map(i=>({...i,index:menu2.indexOf(i)})))})).dispose,[autoFillService]),React.useEffect(()=>core.toDisposable(autoFillService.showMenu$.subscribe(show=>{const{source,target}=autoFillService.autoFillLocation||{source:null,target:null};if(show&&source&&target){const lastRow=Math.max(source.rows[source.rows.length-1],target.rows[target.rows.length-1]),lastCol=Math.max(source.cols[source.cols.length-1],target.cols[target.cols.length-1]);setAnchor({row:lastRow,col:lastCol})}else setAnchor({row:-1,col:-1})})).dispose,[autoFillService]),React.useEffect(()=>core.toDisposable(autoFillService.applyType$.subscribe(type=>{setSelected(type)})).dispose,[autoFillService]),React.useEffect(()=>{function handleClose(){setVisible(!1)}return __name(handleClose,"handleClose"),document.addEventListener("wheel",handleClose),()=>{document.removeEventListener("wheel",handleClose)}},[visible]),anchor.col<0||anchor.row<0)return null;const sheetObject=getSheetObject(univerInstanceService,renderManagerService);if(!sheetObject||!selectionRenderService)return null;const{scene}=sheetObject,skeleton=sheetSkeletonManagerService==null?void 0:sheetSkeletonManagerService.getCurrentSkeleton(),viewport=selectionRenderService.getViewPort(),scaleX=scene==null?void 0:scene.scaleX,scaleY=scene==null?void 0:scene.scaleY,scrollXY=scene==null?void 0:scene.getViewportScrollXY(viewport);if(!scaleX||!scene||!scaleX||!scaleY||!scrollXY)return null;const x=(skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(anchor.row,anchor.col).endX)||0,y=(skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(anchor.row,anchor.col).endY)||0,relativeX=skeleton==null?void 0:skeleton.convertTransformToOffsetX(x,scaleX,scrollXY),relativeY=skeleton==null?void 0:skeleton.convertTransformToOffsetY(y,scaleY,scrollXY);if(relativeX==null||relativeY==null)return null;const onVisibleChange=__name(visible2=>{setVisible(visible2)},"onVisibleChange"),handleClick=__name(item=>{commandService.executeCommand(RefillCommand.id,{type:item.value}),setVisible(!1)},"handleClick"),showMore=visible||isHovered,availableMenu=menu.filter(item=>!item.disable);return jsxRuntime.jsx("div",{onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,style:{left:`${relativeX+2}px`,top:`${relativeY+2}px`,position:"absolute"},children:jsxRuntime.jsx(design.DropdownLegacy,{placement:"bottomLeft",trigger:["click"],overlay:jsxRuntime.jsx("ul",{className:styles$e.autoFillPopupMenu,children:availableMenu.map(item=>jsxRuntime.jsxs("li",{onClick:__name(()=>handleClick(item),"onClick"),className:styles$e.autoFillPopupMenuItem,children:[jsxRuntime.jsx("span",{className:styles$e.autoFillPopupMenuItemIcon,children:item.value===selected&&jsxRuntime.jsx(CheckMarkSingle,{style:{color:"rgb(var(--green-700, #409f11))"}})}),jsxRuntime.jsx("span",{className:styles$e.autoFillPopupMenuItemTitle,children:localeService.t(item.label)})]},item.index))}),visible,onVisibleChange,children:jsxRuntime.jsxs("div",{className:clsx(styles$e.btnContainer,{[styles$e.btnContainerExpand]:visible}),children:[jsxRuntime.jsx(Autofill,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700, #409f11))"}}),showMore&&jsxRuntime.jsx(MoreDownSingle,{style:{color:"#CCCCCC",fontSize:"8px",marginLeft:"8px"}})]})})})},"AutoFillPopupMenu"),OperateContainer=__name(()=>jsxRuntime.jsx("div",{className:styles$e.operateContainer,children:jsxRuntime.jsx(AutoFillPopupMenu,{})}),"OperateContainer"),sheetBar="univer-sheet-bar",sheetBarOptions="univer-sheet-bar-options",sheetBarOptionsDivider="univer-sheet-bar-options-divider",styles$d={sheetBar,sheetBarOptions,sheetBarOptionsDivider},sheetBarBtn="univer-sheet-bar-btn",styles$c={sheetBarBtn};function SheetBarButton(props){const{children,className,style,disabled=!1,onClick,...restProps}=props,handleClick=__name(e=>{if(disabled){e.preventDefault();return}onClick&&onClick(e)},"handleClick");return jsxRuntime.jsx("button",{className:styles$c.sheetBarBtn,style,disabled,onClick:handleClick,...restProps,children})}__name(SheetBarButton,"SheetBarButton");const sheetFooterBarHeight="36",sheetContainer="univer-sheet-container",sheetBarMenu="univer-sheet-bar-menu",sheetBarMenuItem="univer-sheet-bar-menu-item",sheetBarMenuItemIcon="univer-sheet-bar-menu-item-icon",sheetBarMenuItemHide="univer-sheet-bar-menu-item-hide",sheetBarMenuItemSelect="univer-sheet-bar-menu-item-select",sheetBarMenuItemLabel="univer-sheet-bar-menu-item-label",styles$b={sheetFooterBarHeight,sheetContainer,sheetBarMenu,sheetBarMenuItem,sheetBarMenuItemIcon,sheetBarMenuItemHide,sheetBarMenuItemSelect,sheetBarMenuItemLabel};function SheetBarMenu(props){const{style}=props,[menu,setMenu]=React.useState([]),[visible,setVisible]=React.useState(!1),univerInstanceService=core.useDependency(core.IUniverInstanceService),commandService=core.useDependency(core.ICommandService),sheetBarService=core.useDependency(ISheetBarService),worksheetProtectionRuleModel=core.useDependency(sheets.WorksheetProtectionRuleModel),workbook=ui.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),null,!1,[]),handleClick=__name(item=>{const{sheetId}=item;!sheetId||!workbook||(item.hidden?commandService.executeCommand(sheets.SetWorksheetShowCommand.id,{unitId:workbook.getUnitId(),subUnitId:sheetId,value:sheetId}):item.selected||commandService.executeCommand(sheets.SetWorksheetActivateCommand.id,{unitId:workbook.getUnitId(),subUnitId:sheetId}),setVisible(!1))},"handleClick"),statusInit=React.useCallback(()=>{if(!workbook)return;const sheets2=workbook.getSheets(),activeSheet=workbook.getActiveSheet(),worksheetMenuItems=sheets2.map((sheet,index)=>({label:sheet.getName(),index:`${index}`,sheetId:sheet.getSheetId(),hidden:sheet.isSheetHidden()===core.BooleanNumber.TRUE,selected:activeSheet===sheet}));setMenu(worksheetMenuItems)},[workbook,worksheetProtectionRuleModel]),setupStatusUpdate=React.useCallback(()=>commandService.onCommandExecuted(commandInfo=>{switch(commandInfo.id){case sheets.SetWorksheetHideMutation.id:case sheets.RemoveSheetMutation.id:case sheets.SetWorksheetNameMutation.id:case sheets.InsertSheetMutation.id:case sheets.SetWorksheetOrderMutation.id:case sheets.SetWorksheetActiveOperation.id:statusInit();break}}),[commandService,statusInit]);function handleSheetBarMenu(){setVisible(!0)}__name(handleSheetBarMenu,"handleSheetBarMenu");const onVisibleChange=__name(visible2=>{setVisible(visible2)},"onVisibleChange");return React.useEffect(()=>{statusInit();const disposables=new core.DisposableCollection;return disposables.add(setupStatusUpdate()),disposables.add(sheetBarService.registerSheetBarMenuHandler({handleSheetBarMenu})),()=>disposables.dispose()},[setupStatusUpdate,sheetBarService,statusInit,workbook]),jsxRuntime.jsx(design.DropdownLegacy,{placement:"topLeft",trigger:["click"],overlay:jsxRuntime.jsx("ul",{className:styles$b.sheetBarMenu,style:{...style},children:menu.map(item=>jsxRuntime.jsxs("li",{onClick:__name(()=>handleClick(item),"onClick"),className:item.selected?`
|
|
43
|
+
`,{"univer-text-gray-300 univer-cursor-not-allowed hover:univer-bg-transparent":disable}),children:jsxRuntime.jsx(MoreDownSingle,{})})}),jsxRuntime.jsx(design.DropdownOverlay,{className:"univer-z-[1001]",offset:{x:-75,y:2},children:jsxRuntime.jsx(DefinedNameOverlay,{})})]})]})}__name(DefinedName,"DefinedName");const formulaBox="univer-formula-box",nameRanges="univer-name-ranges",formulaBar="univer-formula-bar",formulaIcon="univer-formula-icon",formulaIconDisable="univer-formula-icon-disable",formulaIconWrapper="univer-formula-icon-wrapper",iconContainer="univer-icon-container",iconContainerSuccess="univer-icon-container-success",formulaActive="univer-formula-active",iconContainerError="univer-icon-container-error",iconContainerFx="univer-icon-container-fx",formulaInput="univer-formula-input",formulaContainer="univer-formula-container",sheetEmbeddingFormulaEditorWrap="univer-sheet-embedding-formula-editor-wrap",formulaContent="univer-formula-content",arrowContainer="univer-arrow-container",arrowContainerDisable="univer-arrow-container-disable",styles$f={formulaBox,nameRanges,formulaBar,formulaIcon,formulaIconDisable,formulaIconWrapper,iconContainer,iconContainerSuccess,formulaActive,iconContainerError,iconContainerFx,formulaInput,formulaContainer,sheetEmbeddingFormulaEditorWrap,formulaContent,arrowContainer,arrowContainerDisable};function FormulaBar(){var _a61;const[iconStyle,setIconStyle]=React.useState(styles$f.formulaGrey),[arrowDirection,setArrowDirection]=React.useState(0),formulaEditorManagerService=core.useDependency(IFormulaEditorManagerService),editorBridgeService=core.useDependency(IEditorBridgeService),worksheetProtectionRuleModel=core.useDependency(sheets.WorksheetProtectionRuleModel),rangeProtectionRuleModel=core.useDependency(sheets.RangeProtectionRuleModel),univerInstanceService=core.useDependency(core.IUniverInstanceService),selectionManager=core.useDependency(sheets.SheetsSelectionsService),permissionService=core.useDependency(core.IPermissionService),rangeProtectionCache=core.useDependency(sheets.RangeProtectionCache),[disableInfo,setDisableInfo]=React.useState({editDisable:!1,viewDisable:!1}),[imageDisable,setImageDisable]=React.useState(!1),currentWorkbook=useActiveWorkbook(),componentManager=core.useDependency(ui.ComponentManager),workbook=core.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),void 0,void 0,[]),isRefSelecting=React.useRef(0),editState=editorBridgeService.getEditLocation(),keyCodeConfig=useKeyEventConfig(isRefSelecting,(_a61=editState==null?void 0:editState.unitId)!=null?_a61:""),FormulaEditor=componentManager.get(EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY),formulaAuxUIParts=ui.useComponentsOfPart(SheetsUIPart.FORMULA_AUX),contextService=core.useDependency(core.IContextService);core.useObservable(React.useMemo(()=>contextService.subscribeContextValue$(core.FOCUSING_FX_BAR_EDITOR),[contextService]));const isFocusFxBar=contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR),ref=React.useRef(null);React.useLayoutEffect(()=>{const subscription=workbook.activeSheet$.pipe(rxjs.switchMap(worksheet=>worksheet?rxjs.merge(worksheetProtectionRuleModel.ruleChange$,rangeProtectionRuleModel.ruleChange$,selectionManager.selectionMoveEnd$,selectionManager.selectionSet$).pipe(rxjs.switchMap(()=>{var _a62,_b;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();if(!((_a62=selectionManager.getCurrentLastSelection())==null?void 0:_a62.range))return rxjs.EMPTY;const primary=(_b=selectionManager.getCurrentLastSelection())==null?void 0:_b.primary;return primary?rxjs.of({unitId,subUnitId,primary}):rxjs.of(null)})):rxjs.EMPTY)).subscribe(cellInfo=>{var _a62,_b,_c,_d,_e,_f;if(cellInfo){const{unitId,subUnitId,primary}=cellInfo;if(worksheetProtectionRuleModel.getRule(unitId,subUnitId)){const editDisable2=!((_b=(_a62=permissionService.getPermissionPoint(new sheets.WorksheetEditPermission(unitId,subUnitId).id))==null?void 0:_a62.value)==null||_b),viewDisable2=!((_d=(_c=permissionService.getPermissionPoint(new sheets.WorksheetViewPermission(unitId,subUnitId).id))==null?void 0:_c.value)==null||_d);setDisableInfo({viewDisable:viewDisable2,editDisable:editDisable2});return}const{actualRow,actualColumn}=primary,cellInfoWithPermission=rangeProtectionCache.getCellInfo(unitId,subUnitId,actualRow,actualColumn);setDisableInfo({editDisable:!((_e=cellInfoWithPermission==null?void 0:cellInfoWithPermission[sheets.UnitAction.Edit])==null||_e),viewDisable:!((_f=cellInfoWithPermission==null?void 0:cellInfoWithPermission[sheets.UnitAction.View])==null||_f)})}else setDisableInfo({viewDisable:!1,editDisable:!1})});return()=>{subscription.unsubscribe()}},[workbook]),React.useEffect(()=>{const subscription=editorBridgeService.visible$.subscribe(visibleInfo=>{setIconStyle(visibleInfo.visible?styles$f.formulaActive:styles$f.formulaGrey)});return()=>subscription.unsubscribe()},[editorBridgeService.visible$]),React.useEffect(()=>{const subscription=editorBridgeService.currentEditCellState$.subscribe(state=>{var _a62,_b,_c;(_c=(_b=(_a62=state==null?void 0:state.documentLayoutObject.documentModel)==null?void 0:_a62.getBody())==null?void 0:_b.customBlocks)!=null&&_c.length?setImageDisable(!0):setImageDisable(!1)});return()=>subscription.unsubscribe()},[editorBridgeService.currentEditCellState$]),React.useEffect(()=>{if(ref.current){const handleResize=__name(()=>{const editorRect=ref.current.getBoundingClientRect();formulaEditorManagerService.setPosition(editorRect)},"handleResize");handleResize();const a=new ResizeObserver(handleResize);return a.observe(ref.current),()=>a.disconnect()}},[formulaEditorManagerService]);function handleArrowClick(){setArrowDirection(arrowDirection===0?1:0),setTimeout(()=>{formulaEditorManagerService.handleFoldBtnClick(arrowDirection===1)},150)}__name(handleArrowClick,"handleArrowClick");function handleCloseBtnClick(){var _a62;editorBridgeService.isVisible().visible&&editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:ui.KeyCode.ESC,unitId:(_a62=currentWorkbook==null?void 0:currentWorkbook.getUnitId())!=null?_a62:""})}__name(handleCloseBtnClick,"handleCloseBtnClick");function handleConfirmBtnClick(){var _a62;editorBridgeService.isVisible().visible&&editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.PointerDown,unitId:(_a62=currentWorkbook==null?void 0:currentWorkbook.getUnitId())!=null?_a62:""})}__name(handleConfirmBtnClick,"handleConfirmBtnClick");function handlerFxBtnClick(){formulaEditorManagerService.handleFxBtnClick(!0)}__name(handlerFxBtnClick,"handlerFxBtnClick");const{viewDisable,editDisable}=disableInfo,disabled=editDisable||imageDisable;return jsxRuntime.jsxs("div",{className:styles$f.formulaBox,style:{height:arrowDirection===0?"28px":"82px",pointerEvents:editDisable?"none":"auto"},children:[jsxRuntime.jsx("div",{className:styles$f.nameRanges,children:jsxRuntime.jsx(DefinedName,{disable:editDisable})}),jsxRuntime.jsxs("div",{className:styles$f.formulaBar,children:[jsxRuntime.jsx("div",{className:clsx(styles$f.formulaIcon,{[styles$f.formulaIconDisable]:disabled}),children:jsxRuntime.jsxs("div",{className:styles$f.formulaIconWrapper,children:[jsxRuntime.jsx("span",{className:clsx(styles$f.iconContainer,styles$f.iconContainerError,iconStyle),onClick:handleCloseBtnClick,children:jsxRuntime.jsx(CloseSingle,{})}),jsxRuntime.jsx("span",{className:clsx(styles$f.iconContainer,styles$f.iconContainerSuccess,iconStyle),onClick:handleConfirmBtnClick,children:jsxRuntime.jsx(CheckMarkSingle,{})}),jsxRuntime.jsx("span",{className:clsx(styles$f.iconContainer,styles$f.iconContainerFx),onClick:handlerFxBtnClick,children:jsxRuntime.jsx(FxSingle,{})})]})}),jsxRuntime.jsxs("div",{className:styles$f.formulaContainer,children:[jsxRuntime.jsx("div",{className:styles$f.formulaInput,ref,children:FormulaEditor&&jsxRuntime.jsx(FormulaEditor,{disableSelectionOnClick:!0,editorId:core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,initValue:"",onChange:__name(()=>{},"onChange"),isFocus:isFocusFxBar,className:styles$f.formulaContent,unitId:editState==null?void 0:editState.unitId,subUnitId:editState==null?void 0:editState.sheetId,isSupportAcrossSheet:!0,resetSelectionOnBlur:!1,isSingle:!1,keyboradEventConfig:keyCodeConfig,onFormulaSelectingChange:__name(isSelecting=>{isRefSelecting.current=isSelecting,isSelecting?editorBridgeService.enableForceKeepVisible():editorBridgeService.disableForceKeepVisible()},"onFormulaSelectingChange"),autoScrollbar:!1,disableContextMenu:!1})}),jsxRuntime.jsx("div",{className:clsx(styles$f.arrowContainer,{[styles$f.arrowContainerDisable]:editDisable}),onClick:handleArrowClick,children:arrowDirection===0?jsxRuntime.jsx(DropdownSingle,{}):jsxRuntime.jsx(DropdownSingle,{style:{transform:"rotateZ(180deg)"}})})]})]}),jsxRuntime.jsx(ui.ComponentContainer,{components:formulaAuxUIParts},"formula-aux")]})}__name(FormulaBar,"FormulaBar");const operateContainer="univer-operate-container",autoFillPopupMenu="univer-auto-fill-popup-menu",autoFillPopupMenuItem="univer-auto-fill-popup-menu-item",autoFillPopupMenuItemIcon="univer-auto-fill-popup-menu-item-icon",autoFillPopupMenuItemTitle="univer-auto-fill-popup-menu-item-title",autoFillPopupMenuItemHide="univer-auto-fill-popup-menu-item-hide",btnContainer="univer-btn-container",btnContainerExpand="univer-btn-container-expand",styles$e={operateContainer,autoFillPopupMenu,autoFillPopupMenuItem,autoFillPopupMenuItemIcon,autoFillPopupMenuItemTitle,autoFillPopupMenuItemHide,btnContainer,btnContainerExpand},useUpdate=__name(()=>{const[,setState]=React.useState({});return React.useCallback(()=>setState(prevState=>!prevState),[])},"useUpdate"),AutoFillPopupMenu=__name(()=>{const commandService=core.useDependency(core.ICommandService),univerInstanceService=core.useDependency(core.IUniverInstanceService),renderManagerService=core.useDependency(engineRender.IRenderManagerService),autoFillService=core.useDependency(IAutoFillService),localeService=core.useDependency(core.LocaleService),[menu,setMenu]=React.useState([]),[visible,setVisible]=React.useState(!1),[anchor,setAnchor]=React.useState({row:-1,col:-1}),[selected,setSelected]=React.useState(APPLY_TYPE.SERIES),[isHovered,setHovered]=React.useState(!1),workbook=useActiveWorkbook(),{sheetSkeletonManagerService,selectionRenderService}=React.useMemo(()=>{if(workbook){const ru=renderManagerService.getRenderById(workbook.getUnitId());return{sheetSkeletonManagerService:ru==null?void 0:ru.with(exports.SheetSkeletonManagerService),selectionRenderService:ru==null?void 0:ru.with(ISheetSelectionRenderService)}}return{sheetSkeletonManagerService:null,selectionRenderService:null}},[workbook,renderManagerService]),handleMouseEnter=__name(()=>{setHovered(!0)},"handleMouseEnter"),handleMouseLeave=__name(()=>{setHovered(!1)},"handleMouseLeave"),forceUpdate=useUpdate();if(React.useEffect(()=>commandService.onCommandExecuted((command,options)=>{command.id===SetScrollOperation.id&&forceUpdate()}).dispose,[forceUpdate,commandService]),React.useEffect(()=>{const disposable=sheetSkeletonManagerService&&core.toDisposable(sheetSkeletonManagerService.currentSkeleton$.subscribe(skeleton2=>{skeleton2&&forceUpdate()}));return disposable==null?void 0:disposable.dispose},[sheetSkeletonManagerService,forceUpdate]),React.useEffect(()=>core.toDisposable(autoFillService.menu$.subscribe(menu2=>{setMenu(menu2.map(i=>({...i,index:menu2.indexOf(i)})))})).dispose,[autoFillService]),React.useEffect(()=>core.toDisposable(autoFillService.showMenu$.subscribe(show=>{const{source,target}=autoFillService.autoFillLocation||{source:null,target:null};if(show&&source&&target){const lastRow=Math.max(source.rows[source.rows.length-1],target.rows[target.rows.length-1]),lastCol=Math.max(source.cols[source.cols.length-1],target.cols[target.cols.length-1]);setAnchor({row:lastRow,col:lastCol})}else setAnchor({row:-1,col:-1})})).dispose,[autoFillService]),React.useEffect(()=>core.toDisposable(autoFillService.applyType$.subscribe(type=>{setSelected(type)})).dispose,[autoFillService]),React.useEffect(()=>{function handleClose(){setVisible(!1)}return __name(handleClose,"handleClose"),document.addEventListener("wheel",handleClose),()=>{document.removeEventListener("wheel",handleClose)}},[visible]),anchor.col<0||anchor.row<0)return null;const sheetObject=getSheetObject(univerInstanceService,renderManagerService);if(!sheetObject||!selectionRenderService)return null;const{scene}=sheetObject,skeleton=sheetSkeletonManagerService==null?void 0:sheetSkeletonManagerService.getCurrentSkeleton(),viewport=selectionRenderService.getViewPort(),scaleX=scene==null?void 0:scene.scaleX,scaleY=scene==null?void 0:scene.scaleY,scrollXY=scene==null?void 0:scene.getViewportScrollXY(viewport);if(!scaleX||!scene||!scaleX||!scaleY||!scrollXY)return null;const x=(skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(anchor.row,anchor.col).endX)||0,y=(skeleton==null?void 0:skeleton.getNoMergeCellPositionByIndex(anchor.row,anchor.col).endY)||0,relativeX=skeleton==null?void 0:skeleton.convertTransformToOffsetX(x,scaleX,scrollXY),relativeY=skeleton==null?void 0:skeleton.convertTransformToOffsetY(y,scaleY,scrollXY);if(relativeX==null||relativeY==null)return null;const onVisibleChange=__name(visible2=>{setVisible(visible2)},"onVisibleChange"),handleClick=__name(item=>{commandService.executeCommand(RefillCommand.id,{type:item.value}),setVisible(!1)},"handleClick"),showMore=visible||isHovered,availableMenu=menu.filter(item=>!item.disable);return jsxRuntime.jsx("div",{onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,style:{left:`${relativeX+2}px`,top:`${relativeY+2}px`,position:"absolute"},children:jsxRuntime.jsx(design.DropdownLegacy,{placement:"bottomLeft",trigger:["click"],overlay:jsxRuntime.jsx("ul",{className:styles$e.autoFillPopupMenu,children:availableMenu.map(item=>jsxRuntime.jsxs("li",{onClick:__name(()=>handleClick(item),"onClick"),className:styles$e.autoFillPopupMenuItem,children:[jsxRuntime.jsx("span",{className:styles$e.autoFillPopupMenuItemIcon,children:item.value===selected&&jsxRuntime.jsx(CheckMarkSingle,{style:{color:"rgb(var(--green-700, #409f11))"}})}),jsxRuntime.jsx("span",{className:styles$e.autoFillPopupMenuItemTitle,children:localeService.t(item.label)})]},item.index))}),visible,onVisibleChange,children:jsxRuntime.jsxs("div",{className:clsx(styles$e.btnContainer,{[styles$e.btnContainerExpand]:visible}),children:[jsxRuntime.jsx(Autofill,{style:{color:"#35322B"},extend:{colorChannel1:"rgb(var(--green-700, #409f11))"}}),showMore&&jsxRuntime.jsx(MoreDownSingle,{style:{color:"#CCCCCC",fontSize:"8px",marginLeft:"8px"}})]})})})},"AutoFillPopupMenu"),OperateContainer=__name(()=>jsxRuntime.jsx("div",{className:styles$e.operateContainer,children:jsxRuntime.jsx(AutoFillPopupMenu,{})}),"OperateContainer"),sheetBar="univer-sheet-bar",sheetBarOptions="univer-sheet-bar-options",sheetBarOptionsDivider="univer-sheet-bar-options-divider",styles$d={sheetBar,sheetBarOptions,sheetBarOptionsDivider},sheetBarBtn="univer-sheet-bar-btn",styles$c={sheetBarBtn};function SheetBarButton(props){const{children,className,style,disabled=!1,onClick,...restProps}=props,handleClick=__name(e=>{if(disabled){e.preventDefault();return}onClick&&onClick(e)},"handleClick");return jsxRuntime.jsx("button",{className:styles$c.sheetBarBtn,style,disabled,onClick:handleClick,...restProps,children})}__name(SheetBarButton,"SheetBarButton");const sheetFooterBarHeight="36",sheetContainer="univer-sheet-container",sheetBarMenu="univer-sheet-bar-menu",sheetBarMenuItem="univer-sheet-bar-menu-item",sheetBarMenuItemIcon="univer-sheet-bar-menu-item-icon",sheetBarMenuItemHide="univer-sheet-bar-menu-item-hide",sheetBarMenuItemSelect="univer-sheet-bar-menu-item-select",sheetBarMenuItemLabel="univer-sheet-bar-menu-item-label",styles$b={sheetFooterBarHeight,sheetContainer,sheetBarMenu,sheetBarMenuItem,sheetBarMenuItemIcon,sheetBarMenuItemHide,sheetBarMenuItemSelect,sheetBarMenuItemLabel};function SheetBarMenu(props){const{style}=props,[menu,setMenu]=React.useState([]),[visible,setVisible]=React.useState(!1),univerInstanceService=core.useDependency(core.IUniverInstanceService),commandService=core.useDependency(core.ICommandService),sheetBarService=core.useDependency(ISheetBarService),worksheetProtectionRuleModel=core.useDependency(sheets.WorksheetProtectionRuleModel),workbook=ui.useObservable(()=>univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET),null,!1,[]),handleClick=__name(item=>{const{sheetId}=item;!sheetId||!workbook||(item.hidden?commandService.executeCommand(sheets.SetWorksheetShowCommand.id,{unitId:workbook.getUnitId(),subUnitId:sheetId,value:sheetId}):item.selected||commandService.executeCommand(sheets.SetWorksheetActivateCommand.id,{unitId:workbook.getUnitId(),subUnitId:sheetId}),setVisible(!1))},"handleClick"),statusInit=React.useCallback(()=>{if(!workbook)return;const sheets2=workbook.getSheets(),activeSheet=workbook.getActiveSheet(),worksheetMenuItems=sheets2.map((sheet,index)=>({label:sheet.getName(),index:`${index}`,sheetId:sheet.getSheetId(),hidden:sheet.isSheetHidden()===core.BooleanNumber.TRUE,selected:activeSheet===sheet}));setMenu(worksheetMenuItems)},[workbook,worksheetProtectionRuleModel]),setupStatusUpdate=React.useCallback(()=>commandService.onCommandExecuted(commandInfo=>{switch(commandInfo.id){case sheets.SetWorksheetHideMutation.id:case sheets.RemoveSheetMutation.id:case sheets.SetWorksheetNameMutation.id:case sheets.InsertSheetMutation.id:case sheets.SetWorksheetOrderMutation.id:case sheets.SetWorksheetActiveOperation.id:statusInit();break}}),[commandService,statusInit]);function handleSheetBarMenu(){setVisible(!0)}__name(handleSheetBarMenu,"handleSheetBarMenu");const onVisibleChange=__name(visible2=>{setVisible(visible2)},"onVisibleChange");return React.useEffect(()=>{statusInit();const disposables=new core.DisposableCollection;return disposables.add(setupStatusUpdate()),disposables.add(sheetBarService.registerSheetBarMenuHandler({handleSheetBarMenu})),()=>disposables.dispose()},[setupStatusUpdate,sheetBarService,statusInit,workbook]),jsxRuntime.jsx(design.DropdownLegacy,{placement:"topLeft",trigger:["click"],overlay:jsxRuntime.jsx("ul",{className:styles$b.sheetBarMenu,style:{...style},children:menu.map(item=>jsxRuntime.jsxs("li",{onClick:__name(()=>handleClick(item),"onClick"),className:item.selected?`
|
|
44
44
|
${styles$b.sheetBarMenuItem}
|
|
45
45
|
${styles$b.sheetBarMenuItemSelect}
|
|
46
46
|
`:item.hidden?`
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
`,paragraphs:[{startIndex:urlText.length}],customRanges:[range]}}let dataStream=text.replace(/(\r\n|\n)/g,"\r");dataStream.endsWith(`\r
|
|
59
59
|
`)||(dataStream+=`\r
|
|
60
60
|
`);const paragraphs=[];for(let i=0;i<dataStream.length;i++)dataStream[i]==="\r"&¶graphs.push({startIndex:i});return{dataStream,paragraphs,sectionBreaks:[{startIndex:dataStream.indexOf(`
|
|
61
|
-
`)}]}}__name(generateBody,"generateBody");var __defProp$v=Object.defineProperty,__getOwnPropDesc$v=Object.getOwnPropertyDescriptor,__decorateClass$v=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$v(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$v(target,key,result),result},"__decorateClass$v"),__decorateParam$v=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$v");const shouldRemoveShapeIds=[sheets.InsertColMutation.id,sheets.InsertRowMutation.id,sheets.RemoveColMutation.id,sheets.RemoveRowMutation.id,sheets.MoveRangeMutation.id,sheets.MoveRowsMutation.id,sheets.MoveColsMutation.id];var _a27;let SheetClipboardController=(_a27=class extends core.RxDisposable{constructor(_injector,_currentUniverSheet,_renderManagerService,_commandService,_contextService,_configService,_sheetClipboardService,_messageService,_localService,_uiPartsService){super(),this._injector=_injector,this._currentUniverSheet=_currentUniverSheet,this._renderManagerService=_renderManagerService,this._commandService=_commandService,this._contextService=_contextService,this._configService=_configService,this._sheetClipboardService=_sheetClipboardService,this._messageService=_messageService,this._localService=_localService,this._uiPartsService=_uiPartsService,this._init(),this._initCommandListener(),this._initUIComponents(),this._pasteWithDoc()}_pasteWithDoc(){var _a61;const sheetPasteShortKeyFn=__name(docSelectionRenderService2=>{docSelectionRenderService2.onPaste$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(config=>{var _a62,_b;if(!whenSheetEditorFocused(this._contextService))return;config.event.preventDefault();const clipboardEvent=config.event,htmlContent=(_a62=clipboardEvent.clipboardData)==null?void 0:_a62.getData("text/html"),textContent=(_b=clipboardEvent.clipboardData)==null?void 0:_b.getData("text/plain"),files=this._resolveClipboardFiles(clipboardEvent.clipboardData);this._commandService.executeCommand(SheetPasteShortKeyCommand.id,{htmlContent,textContent,files})})},"sheetPasteShortKeyFn");let docSelectionRenderService=(_a61=this._renderManagerService.getRenderById(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:_a61.with(docsUi.DocSelectionRenderService);docSelectionRenderService&&sheetPasteShortKeyFn(docSelectionRenderService),this._renderManagerService.created$.subscribe(renderer=>{var _a62;renderer.unitId===core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&(docSelectionRenderService=(_a62=this._renderManagerService.getRenderById(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:_a62.with(docsUi.DocSelectionRenderService),docSelectionRenderService&&sheetPasteShortKeyFn(docSelectionRenderService))})}_resolveClipboardFiles(clipboardData){if(!clipboardData)return;const files=Array.from(clipboardData.items).map(item=>item.kind==="file"?item.getAsFile():void 0).filter(Boolean);return files.length>0?files:void 0}_init(){[SheetCopyCommand,SheetCutCommand,SheetPasteCommand].forEach(command=>this.disposeWithMe(this._commandService.registerMultipleCommand(command))),[SheetPasteValueCommand,SheetPasteFormatCommand,SheetPasteColWidthCommand,SheetPasteBesidesBorderCommand,SheetPasteShortKeyCommand,SheetOptionalPasteCommand].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command))),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initCopyingHooks())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initPastingHook()));const disposables=this._initSpecialPasteHooks().map(hook=>this._sheetClipboardService.addClipboardHook(hook));this.disposeWithMe({dispose:__name(()=>disposables.forEach(d=>d.dispose()),"dispose")})}_initCopyingHooks(){const self=this;let currentSheet=null;return{id:PREDEFINED_HOOK_NAME.DEFAULT_COPY,isDefaultHook:!0,onBeforeCopy(unitId,subUnitId){currentSheet=self._getWorksheet(unitId,subUnitId)},onCopyCellContent(row,col){var _a61,_b,_c,_d;const cell=currentSheet.getCell(row,col);return(_b=(_a61=cell==null?void 0:cell.p)==null?void 0:_a61.body)!=null&&_b.paragraphs||(_d=(_c=cell==null?void 0:cell.p)==null?void 0:_c.body)!=null&&_d.textRuns?core.convertBodyToHtml(cell.p.body):cell?core.extractPureTextFromCell(cell):""},onCopyCellStyle:__name((row,col,rowSpan,colSpan)=>{const properties={};(rowSpan||colSpan)&&(properties.rowspan=`${rowSpan||1}`,properties.colspan=`${colSpan||1}`);const range=currentSheet.getRange(row,col),mergedCellByRowCol=currentSheet.getMergedCell(row,col),textStyle=range.getTextStyle();let style="";if(textStyle&&(style=core.handleStyleToString(textStyle)),mergedCellByRowCol){const endRow=mergedCellByRowCol.endRow,endColumn=mergedCellByRowCol.endColumn,lastTextStyle=currentSheet.getRange(endRow,endColumn).getTextStyle();if(lastTextStyle){const lastStyle=core.handleStyleToString(lastTextStyle);style?style+=lastStyle?`;${lastStyle}`:"":style=lastStyle}}return style&&(properties.style=style),Object.keys(properties).length?properties:null},"onCopyCellStyle"),onCopyColumn(col){return{width:`${currentSheet.getColumnWidth(col)}`}},onCopyRow(row){return{style:`height: ${currentSheet.getRowHeight(row)}px;`}},onAfterCopy(){currentSheet=null},getFilteredOutRows(range){var _a61;const{startRow,endRow}=range,worksheet=(_a61=self._currentUniverSheet.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a61.getActiveSheet(),res=[];if(!worksheet)return res;for(let r2=startRow;r2<=endRow;r2++)worksheet.getRowFiltered(r2)&&res.push(r2);return res}}}_initPastingHook(){const self=this;let unitId=null,subUnitId=null,currentSheet=null;return{id:PREDEFINED_HOOK_NAME.DEFAULT_PASTE,isDefaultHook:!0,onBeforePaste({unitId:unitId_,subUnitId:subUnitId_,range}){currentSheet=self._getWorksheet(unitId_,subUnitId_),unitId=unitId_,subUnitId=subUnitId_;const maxConfig=self._configService.getConfig(sheets.MAX_CELL_PER_SHEET_KEY),endRow=range.rows[range.rows.length-1],endColumn=range.cols[range.cols.length-1];return maxConfig&&endRow*endColumn>maxConfig?(self._messageService.show({type:design.MessageType.Error,content:self._localService.t("clipboard.paste.exceedMaxCells")}),!1):!0},onPasteRows(pasteTo,rowProperties){const{range}=pasteTo,redoMutations=[],undoMutations=[],maxRow=currentSheet.getMaxRows(),rowCount=maxRow-1,addingRowsCount=range.rows[range.rows.length-1]-rowCount,existingRowsCount=rowProperties.length-addingRowsCount,rowManager=currentSheet.getRowManager();if(addingRowsCount>0){const rowInfo={};rowProperties.slice(existingRowsCount).forEach((property,index)=>{const{height:PropertyHeight}=property||{};PropertyHeight&&(rowInfo[index]={h:Number.parseFloat(PropertyHeight),hd:core.BooleanNumber.FALSE})});const addRowRange={startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1],endRow:range.rows[range.rows.length-1],startRow:maxRow},addRowMutation={unitId,subUnitId,range:addRowRange,rowInfo};redoMutations.push({id:sheets.InsertRowMutation.id,params:addRowMutation}),undoMutations.push({id:sheets.RemoveRowMutation.id,params:{unitId,subUnitId,range:addRowRange}})}const rowHeight={},originRowHeight={};if(rowProperties.slice(0,existingRowsCount).forEach((property,index)=>{var _a61,_b;const{height:propertyHeight}=property;if(propertyHeight){const rowConfigBeforePaste=rowManager.getRow(range.rows[0]+index),willSetHeight=Number.parseFloat(propertyHeight);if(rowConfigBeforePaste){const{h=core.DEFAULT_WORKSHEET_ROW_HEIGHT,ah=0}=rowConfigBeforePaste,nowRowHeight=Math.max(h,ah);willSetHeight>nowRowHeight?(rowHeight[index+range.rows[0]]=willSetHeight,originRowHeight[index+range.rows[0]]=nowRowHeight):(rowHeight[index+range.rows[0]]=nowRowHeight,originRowHeight[index+range.rows[0]]=nowRowHeight)}else rowHeight[index+range.rows[0]]=willSetHeight,originRowHeight[index+range.rows[0]]=(_b=(_a61=rowManager.getRow(range.rows[0]+index))==null?void 0:_a61.h)!=null?_b:core.DEFAULT_WORKSHEET_ROW_HEIGHT}}),Object.keys(rowHeight).length){const setRowPropertyMutation={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:Math.min(range.rows[range.rows.length-1],maxRow),startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1]}],rowHeight};redoMutations.push({id:sheets.SetWorksheetRowHeightMutation.id,params:setRowPropertyMutation}),undoMutations.push({id:sheets.SetWorksheetRowHeightMutation.id,params:{...setRowPropertyMutation,rowHeight:originRowHeight}})}return{redos:redoMutations,undos:undoMutations}},onPasteColumns(pasteTo,colProperties,pasteType){var _a61;const{range}=pasteTo,redoMutations=[],undoMutations=[],maxColumn=currentSheet.getMaxColumns(),colCount=maxColumn-1,addingColsCount=range.cols[range.cols.length-1]-colCount,existingColsCount=colProperties.length-addingColsCount,defaultColumnWidth=(_a61=self._configService.getConfig(core.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?_a61:core.DEFAULT_WORKSHEET_COLUMN_WIDTH,pasteToCols=range.cols,startColumn=pasteToCols[0];if(addingColsCount>0){const addColRange={startRow:range.rows[0],endRow:range.rows[range.rows.length-1],endColumn:range.cols[range.cols.length-1],startColumn:maxColumn},addColMutation={unitId,subUnitId,range:addColRange,colInfo:colProperties.slice(existingColsCount).map((property,index)=>({w:property.width?Math.max(+property.width,currentSheet.getColumnWidth(pasteToCols[index])):defaultColumnWidth,hd:core.BooleanNumber.FALSE}))};redoMutations.push({id:sheets.InsertColMutation.id,params:addColMutation}),undoMutations.push({id:sheets.RemoveColMutation.id,params:{unitId,subUnitId,range:addColRange}})}const targetSetColPropertyParams={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:range.rows[range.rows.length-1],startColumn:range.cols[0],endColumn:Math.min(range.cols[range.cols.length-1],maxColumn)}]};if(colProperties.length>0){const setColPropertyMutation={...targetSetColPropertyParams,colWidth:colProperties.slice(0,existingColsCount).reduce((p,c,index)=>{var _a62;return p[index+startColumn]=c.width?Math.max(+c.width,(_a62=currentSheet.getColumnWidth(pasteToCols[index]))!=null?_a62:defaultColumnWidth):defaultColumnWidth,p},{})},undoSetColPropertyParams={...targetSetColPropertyParams,colWidth:colProperties.slice(0,existingColsCount).reduce((p,c,index)=>{var _a62;return p[index+startColumn]=(_a62=currentSheet.getColumnWidth(pasteToCols[index]))!=null?_a62:defaultColumnWidth,p},{})};redoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:setColPropertyMutation}),undoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:undoSetColPropertyParams})}return{redos:redoMutations,undos:undoMutations}},onPastePlainText(pasteTo,text,payload){return self._onPastePlainText(pasteTo,text,payload)},onPasteCells(pasteFrom,pasteTo,data,payload){return self._onPasteCells(pasteFrom,pasteTo,data,payload)},onAfterPaste(success){currentSheet=null}}}_generateDocumentDataModelSnapshot(snapshot){var _a61,_b;const currentSkeleton=(_a61=this._renderManagerService.withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:_a61.getCurrent();if(currentSkeleton==null)return null;const{skeleton}=currentSkeleton,documentModel=(_b=skeleton.getBlankCellDocumentModel())==null?void 0:_b.documentModel,documentData={...documentModel==null?void 0:documentModel.getSnapshot(),...snapshot};return documentModel==null||documentModel.reset(documentData),documentModel==null?void 0:documentModel.getSnapshot()}_onPastePlainText(pasteTo,text,payload){const{range,unitId,subUnitId}=pasteTo;let cellValue;if(/\r|\n/.test(text)||core.Tools.isLegalUrl(text)){const body=generateBody(text),p=this._generateDocumentDataModelSnapshot({body});cellValue={[range.rows[0]]:{[range.cols[0]]:{p}}}}else core.isFormulaString(text)?cellValue={[range.rows[0]]:{[range.cols[0]]:{f:text}}}:cellValue={[range.rows[0]]:{[range.cols[0]]:{v:text}}};const setRangeValuesParams={unitId,subUnitId,cellValue};return{redos:[{id:sheets.SetRangeValuesMutation.id,params:setRangeValuesParams}],undos:[{id:sheets.SetRangeValuesMutation.id,params:sheets.SetRangeValuesUndoMutationFactory(this._injector,setRangeValuesParams)}]}}_onPasteCells(pasteFrom,pasteTo,data,payload){return this._injector.invoke(accessor=>getDefaultOnPasteCellMutations(pasteFrom,pasteTo,data,payload,accessor))}_initSpecialPasteHooks(){const self=this,specialPasteValueHook={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE,specialPasteInfo:{label:"specialPaste.value"},onPasteCells:__name((pasteFrom,pasteTo,data)=>this._injector.invoke(accessor=>getSetCellValueMutations(pasteTo,pasteFrom,data,accessor)),"onPasteCells")},specialPasteFormatHook={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,specialPasteInfo:{label:"specialPaste.format"},onPasteCells:__name((pasteFrom,pasteTo,matrix)=>{const redoMutationsInfo=[],undoMutationsInfo=[],{undos:styleUndos,redos:styleRedos}=this._injector.invoke(accessor=>getClearCellStyleMutations(pasteTo,matrix,accessor));redoMutationsInfo.push(...styleRedos),undoMutationsInfo.push(...styleUndos);const{undos:mergeUndos,redos:mergeRedos}=this._injector.invoke(accessor=>getClearAndSetMergeMutations(pasteTo,matrix,accessor));redoMutationsInfo.push(...mergeRedos),undoMutationsInfo.push(...mergeUndos);const{undos:setStyleUndos,redos:setStyleRedos}=this._injector.invoke(accessor=>getSetCellStyleMutations(pasteTo,matrix,accessor));return redoMutationsInfo.push(...setStyleRedos),undoMutationsInfo.push(...setStyleUndos),{undos:undoMutationsInfo,redos:redoMutationsInfo}},"onPasteCells")},specialPasteColWidthHook={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH,specialPasteInfo:{label:"specialPaste.colWidth"},onPasteCells(){return{undos:[],redos:[]}},onPasteColumns(pasteTo,colProperties,payload){var _a61,_b;const workbook=self._currentUniverSheet.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId(),subUnitId=(_a61=workbook.getActiveSheet())==null?void 0:_a61.getSheetId();if(!unitId||!subUnitId)throw new Error("Cannot find unitId or subUnitId");const redoMutations=[],undoMutations=[],currentSheet=self._getWorksheet(unitId,subUnitId),{range}=pasteTo,pasteToCols=range.cols,startColumn=pasteToCols[0],maxColumn=currentSheet.getMaxColumns(),addingColsCount=range.cols[range.cols.length-1]-maxColumn,existingColsCount=colProperties.length-addingColsCount,defaultColumnWidth=(_b=self._configService.getConfig(core.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?_b:core.DEFAULT_WORKSHEET_COLUMN_WIDTH,setColPropertyMutation={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:Math.min(range.cols[range.cols.length-1],maxColumn),startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1]}],colWidth:colProperties.slice(0,existingColsCount).reduce((p,c,index)=>{var _a62;return p[index+startColumn]=c.width?Math.max(+c.width,(_a62=currentSheet.getColumnWidth(pasteToCols[index]))!=null?_a62:defaultColumnWidth):defaultColumnWidth,p},{})},undoSetColPropertyMutation={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:Math.min(range.cols[range.cols.length-1],maxColumn),startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1]}],colWidth:colProperties.slice(0,existingColsCount).reduce((p,c,index)=>{var _a62;return p[index+startColumn]=(_a62=currentSheet.getColumnWidth(pasteToCols[index]))!=null?_a62:defaultColumnWidth,p},{})};return redoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:setColPropertyMutation}),undoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:undoSetColPropertyMutation}),{redos:redoMutations,undos:undoMutations}}},specialPasteBesidesBorder={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER,specialPasteInfo:{label:"specialPaste.besidesBorder"},onPasteCells:__name((pasteFrom,pasteTo,matrix,payload)=>{self._currentUniverSheet.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);const redoMutationsInfo=[],undoMutationsInfo=[],{range,unitId,subUnitId}=pasteTo,valueMatrix=new core.ObjectMatrix;matrix.forValue((row,col,value)=>{const style=value.s;if(typeof style=="object"){const newValue=core.Tools.deepClone(value);newValue.s&&(newValue.s={...style,bd:null}),valueMatrix.setValue(range.rows[row],range.cols[col],newValue)}});const setValuesMutation={unitId,subUnitId,cellValue:valueMatrix.getData()};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:setValuesMutation});const undoSetValuesMutation=this._injector.invoke(sheets.SetRangeValuesUndoMutationFactory,setValuesMutation);undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoSetValuesMutation});const{undos,redos}=this._injector.invoke(accessor=>getClearAndSetMergeMutations(pasteTo,matrix,accessor));return undoMutationsInfo.push(...undos),redoMutationsInfo.push(...redos),{redos:redoMutationsInfo,undos:undoMutationsInfo}},"onPasteCells")};return[specialPasteValueHook,specialPasteFormatHook,specialPasteColWidthHook,specialPasteBesidesBorder]}_getWorksheet(unitId,subUnitId){var _a61;const worksheet=(_a61=this._currentUniverSheet.getUniverSheetInstance(unitId))==null?void 0:_a61.getSheetBySheetId(subUnitId);if(!worksheet)throw new Error(`[SheetClipboardController]: cannot find a worksheet with unitId ${unitId} and subUnitId ${subUnitId}.`);return worksheet}_initCommandListener(){var _a61;this.disposeWithMe(this._commandService.onCommandExecuted(command=>{command.id===AddWorksheetMergeCommand.id?this._sheetClipboardService.removeMarkSelection():shouldRemoveShapeIds.includes(command.id)&&this._sheetClipboardService.removeMarkSelection()}));const sheetsUIConfig=this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(_a61=sheetsUIConfig==null?void 0:sheetsUIConfig.clipboardConfig)!=null&&_a61.hidePasteOptions||this.disposeWithMe(this._commandService.onCommandExecuted(command=>{RemovePasteMenuCommands.includes(command.id)&&this._sheetClipboardService.disposePasteOptionsCache()}))}_initUIComponents(){var _a61;const sheetsUIConfig=this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(_a61=sheetsUIConfig==null?void 0:sheetsUIConfig.clipboardConfig)!=null&&_a61.hidePasteOptions||this.disposeWithMe(this._uiPartsService.registerComponent(ui.BuiltInUIPart.CONTENT,()=>core.connectInjector(ClipboardPopupMenu,this._injector)))}},__name(_a27,"SheetClipboardController"),_a27);SheetClipboardController=__decorateClass$v([__decorateParam$v(0,core.Inject(core.Injector)),__decorateParam$v(1,core.IUniverInstanceService),__decorateParam$v(2,engineRender.IRenderManagerService),__decorateParam$v(3,core.ICommandService),__decorateParam$v(4,core.IContextService),__decorateParam$v(5,core.IConfigService),__decorateParam$v(6,ISheetClipboardService),__decorateParam$v(7,ui.IMessageService),__decorateParam$v(8,core.Inject(core.LocaleService)),__decorateParam$v(9,ui.IUIPartsService)],SheetClipboardController);var __defProp$u=Object.defineProperty,__getOwnPropDesc$u=Object.getOwnPropertyDescriptor,__decorateClass$u=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$u(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$u(target,key,result),result},"__decorateClass$u"),__decorateParam$u=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$u"),_a28;exports.DragManagerService=(_a28=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService){super();__publicField(this,"_currentCell$",new rxjs.Subject);__publicField(this,"currentCell$",this._currentCell$.asObservable().pipe(rxjs.distinctUntilChanged((pre,aft)=>{var _a61,_b,_c,_d,_e,_f,_g,_h;return((_a61=pre==null?void 0:pre.location)==null?void 0:_a61.unitId)===((_b=aft==null?void 0:aft.location)==null?void 0:_b.unitId)&&((_c=pre==null?void 0:pre.location)==null?void 0:_c.subUnitId)===((_d=aft==null?void 0:aft.location)==null?void 0:_d.subUnitId)&&((_e=pre==null?void 0:pre.location)==null?void 0:_e.row)===((_f=aft==null?void 0:aft.location)==null?void 0:_f.row)&&((_g=pre==null?void 0:pre.location)==null?void 0:_g.col)===((_h=aft==null?void 0:aft.location)==null?void 0:_h.col)})));__publicField(this,"_endCell$",new rxjs.Subject);__publicField(this,"endCell$",this._endCell$.asObservable());this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._endCell$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook||(this._currentCell$.next(null),this._endCell$.next(null))}))}_calcActiveCell(offsetX,offsetY){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const worksheet=workbook.getActiveSheet();if(!worksheet)return;const currentRender=this._renderManagerService.getRenderById(workbook.getUnitId());if(!currentRender)return;const skeletonParam=currentRender.with(exports.SheetSkeletonManagerService).getCurrent(),scrollInfo=currentRender.with(exports.SheetScrollManagerService).getCurrentScrollState();if(!(!skeletonParam||!scrollInfo||!currentRender))return getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY)}onDragOver(evt){const{offsetX,offsetY,dataTransfer}=evt,activeCell=this._calcActiveCell(offsetX,offsetY);if(!activeCell){this._currentCell$.next(null);return}const{location,position}=activeCell;this._currentCell$.next({location,position,dataTransfer})}onDrop(evt){const{offsetX,offsetY,dataTransfer}=evt,activeCell=this._calcActiveCell(offsetX,offsetY);if(!activeCell){this._endCell$.next(null);return}const{location,position}=activeCell;this._endCell$.next({location,position,dataTransfer})}},__name(_a28,"DragManagerService"),_a28);exports.DragManagerService=__decorateClass$u([__decorateParam$u(0,core.IUniverInstanceService),__decorateParam$u(1,engineRender.IRenderManagerService)],exports.DragManagerService);var __defProp$t=Object.defineProperty,__getOwnPropDesc$t=Object.getOwnPropertyDescriptor,__decorateClass$t=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$t(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$t(target,key,result),result},"__decorateClass$t"),__decorateParam$t=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$t"),_a29;exports.DragRenderController=(_a29=class extends core.Disposable{constructor(_context,_renderManagerService,_dragManagerService,_sheetSkeletonManagerService){super(),this._context=_context,this._renderManagerService=_renderManagerService,this._dragManagerService=_dragManagerService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._initDragEvent()}_initDragEvent(){const disposeSet=new core.DisposableCollection,handleSkeletonChange=__name(skeletonParam=>{if(disposeSet.dispose(),!skeletonParam)return;const{scene}=this._context,dragOverSub=scene.onDragOver$.subscribeEvent(evt=>{this._dragManagerService.onDragOver(evt)}),dropSub=scene.onDrop$.subscribeEvent(evt=>{this._dragManagerService.onDrop(evt)});disposeSet.add({dispose(){dragOverSub.unsubscribe(),dropSub.unsubscribe()}})},"handleSkeletonChange");handleSkeletonChange(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(skeletonParam=>{handleSkeletonChange(skeletonParam)}))}},__name(_a29,"DragRenderController"),_a29);exports.DragRenderController=__decorateClass$t([__decorateParam$t(1,engineRender.IRenderManagerService),__decorateParam$t(2,core.Inject(exports.DragManagerService)),__decorateParam$t(3,core.Inject(exports.SheetSkeletonManagerService))],exports.DragRenderController);const calcDocRangePositions=__name((range,skeleton)=>{var _a61,_b,_c,_d,_e;const startPosition=skeleton.findNodePositionByCharIndex(range.startOffset,!0,range.segmentId,-1),skeletonData=skeleton.getSkeletonData();let end=range.endOffset;if(range.segmentId){const root=(_e=Array.from((_b=(_a61=skeletonData==null?void 0:skeletonData.skeFooters.get(range.segmentId))==null?void 0:_a61.values())!=null?_b:[])[0])!=null?_e:Array.from((_d=(_c=skeletonData==null?void 0:skeletonData.skeHeaders.get(range.segmentId))==null?void 0:_c.values())!=null?_d:[])[0];root&&(end=Math.min(root.ed,end))}const endPosition=skeleton.findNodePositionByCharIndex(end,!0,range.segmentId,-1);if(!endPosition||!startPosition)return;const documentOffsetConfig={docsLeft:0,docsTop:0,pageMarginLeft:0,pageMarginTop:0},convertor=new docsUi.NodePositionConvertToCursor(documentOffsetConfig,skeleton),{borderBoxPointGroup}=convertor.getRangePointData(startPosition,endPosition);return docsUi.getLineBounding(borderBoxPointGroup).map(rect=>({top:rect.top,bottom:rect.bottom,left:rect.left,right:rect.right}))},"calcDocRangePositions"),calcDocGlyphPosition=__name((glyph,skeleton,pageIndex=-1)=>{const start=skeleton.findPositionByGlyph(glyph,pageIndex);if(!start)return;const startPosition={...start,isBack:!0},documentOffsetConfig={docsLeft:0,docsTop:0,pageMarginLeft:0,pageMarginTop:0},convertor=new docsUi.NodePositionConvertToCursor(documentOffsetConfig,skeleton),{borderBoxPointGroup}=convertor.getRangePointData(startPosition,startPosition),rect=docsUi.getLineBounding(borderBoxPointGroup)[0];return{top:rect.top,bottom:rect.bottom,left:rect.left,right:rect.right}},"calcDocGlyphPosition"),calcLinkPosition=__name((skeleton,range,paddingLeft=0,paddingTop=0)=>{const rects=calcDocRangePositions({startOffset:range.startIndex,endOffset:range.endIndex+1,collapsed:!1},skeleton);if(rects)return{rects:rects.map(rect=>({top:rect.top+paddingTop,bottom:rect.bottom+paddingTop,left:rect.left+paddingLeft,right:rect.right+paddingLeft})),range}},"calcLinkPosition"),calcBulletPosition=__name((skeleton,paragraph,paddingLeft=0,paddingTop=0)=>{var _a61,_b,_c;const node=skeleton.findNodeByCharIndex(paragraph.startIndex),divide=node==null?void 0:node.parent,line=divide==null?void 0:divide.parent,column=line==null?void 0:line.parent,targetLine=column==null?void 0:column.lines.find(l=>l.paragraphStart&&l.paragraphIndex===paragraph.startIndex),bulletNode=(_c=(_b=(_a61=targetLine==null?void 0:targetLine.divides)==null?void 0:_a61[0])==null?void 0:_b.glyphGroup)==null?void 0:_c[0];if(!bulletNode||!bulletNode)return;const rect=calcDocGlyphPosition(bulletNode,skeleton);if(rect)return{rect:{top:rect.top+paddingTop,bottom:rect.bottom+paddingTop,left:rect.left+paddingLeft,right:rect.right+paddingLeft},segmentId:void 0,segmentPageIndex:-1,paragraph}},"calcBulletPosition"),calculateDocSkeletonRects=__name((docSkeleton,paddingLeft=0,paddingTop=0)=>{var _a61,_b,_c,_d,_e,_f,_g;const docModel=docSkeleton.getViewModel().getDataModel(),hyperLinks=(_c=(_b=(_a61=docModel.getBody())==null?void 0:_a61.customRanges)==null?void 0:_b.filter(range=>range.rangeType===core.CustomRangeType.HYPERLINK))!=null?_c:[],checkLists=(_f=(_e=(_d=docModel.getBody())==null?void 0:_d.paragraphs)==null?void 0:_e.filter(p=>{var _a62;return((_a62=p.bullet)==null?void 0:_a62.listType.indexOf(core.PresetListType.CHECK_LIST))===0}))!=null?_f:[],drawings=(_g=docSkeleton.getSkeletonData())==null?void 0:_g.pages[0].skeDrawings;return{links:hyperLinks.map(link=>calcLinkPosition(docSkeleton,link,paddingLeft,paddingTop)).filter(Boolean),checkLists:checkLists.map(list=>calcBulletPosition(docSkeleton,list,paddingLeft,paddingTop)).filter(Boolean),drawings:drawings?Array.from(drawings.keys()).map(key=>({drawingId:key,rect:{top:drawings.get(key).aTop,bottom:drawings.get(key).aTop+drawings.get(key).width,left:drawings.get(key).aLeft,right:drawings.get(key).aLeft+drawings.get(key).height}})):[]}},"calculateDocSkeletonRects");function calcPadding(cell,font,isNum){var _a61,_b,_c,_d;const height=(_b=(_a61=font.documentSkeleton.getSkeletonData())==null?void 0:_a61.pages[0].height)!=null?_b:0,width=(_d=(_c=font.documentSkeleton.getSkeletonData())==null?void 0:_c.pages[0].width)!=null?_d:0,vt=font.verticalAlign,ht=font.horizontalAlign;let paddingTop=0;switch(vt){case core.VerticalAlign.UNSPECIFIED:case core.VerticalAlign.BOTTOM:paddingTop=cell.mergeInfo.endY-cell.mergeInfo.startY-height;break;case core.VerticalAlign.MIDDLE:paddingTop=(cell.mergeInfo.endY-cell.mergeInfo.startY-height)/2;break}let paddingLeft=0;switch(ht){case core.HorizontalAlign.RIGHT:paddingLeft=cell.mergeInfo.endX-cell.mergeInfo.startX-width;break;case core.HorizontalAlign.CENTER:paddingLeft=(cell.mergeInfo.endX-cell.mergeInfo.startX-width)/2;break;case core.HorizontalAlign.UNSPECIFIED:{isNum&&(paddingLeft=cell.mergeInfo.endX-cell.mergeInfo.startX-width);break}}return{paddingLeft,paddingTop}}__name(calcPadding,"calcPadding");const getCustomRangePosition=__name((injector,unitId,subUnitId,row,col,rangeId)=>{var _a61,_b,_c;const univerInstanceService=injector.get(core.IUniverInstanceService),renderManagerService=injector.get(engineRender.IRenderManagerService),workbook=univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const worksheet=workbook.getSheetBySheetId(subUnitId);if(!worksheet)return null;const currentRender=renderManagerService.getRenderById(workbook.getUnitId()),skeletonParam=currentRender==null?void 0:currentRender.with(exports.SheetSkeletonManagerService).getWorksheetSkeleton(worksheet.getSheetId()),skeleton=skeletonParam==null?void 0:skeletonParam.skeleton;if(!skeleton||!currentRender)return;const font=skeleton.getFont(row,col),docSkeleton=font==null?void 0:font.documentSkeleton;if(!docSkeleton)return null;const customRange=(_b=(_a61=docSkeleton.getViewModel().getBody())==null?void 0:_a61.customRanges)==null?void 0:_b.find(range=>range.rangeId===rangeId);if(!customRange)return null;const PADDING=docsUi.DOC_VERTICAL_PADDING,cellIndex=skeleton.getCellWithCoordByIndex(row,col);let{actualColumn,actualRow}=cellIndex;skeleton.overflowCache.forValue((r2,c,range)=>{range.startRow<=actualRow&&range.endRow>=actualRow&&range.startColumn<=actualColumn&&range.endColumn>=actualColumn&&(actualColumn=c,actualRow=r2)});const actualCell=skeleton.getCellWithCoordByIndex(actualRow,actualColumn),cellData=worksheet.getCell(actualCell.actualRow,actualCell.actualColumn),{topOffset=0,leftOffset=0}=(_c=cellData==null?void 0:cellData.fontRenderExtension)!=null?_c:{},{paddingLeft,paddingTop}=calcPadding(actualCell,font,!1),rects=calcDocRangePositions({startOffset:customRange.startIndex,endOffset:customRange.endIndex,collapsed:!1},docSkeleton);return{rects:rects==null?void 0:rects.map(rect=>({top:rect.top+actualCell.mergeInfo.startY+paddingTop+topOffset+PADDING,bottom:rect.bottom+actualCell.mergeInfo.startY+paddingTop+topOffset+PADDING,left:rect.left+actualCell.mergeInfo.startX+paddingLeft+leftOffset,right:rect.right+actualCell.mergeInfo.startX+paddingLeft+leftOffset})),customRange,label:docSkeleton.getViewModel().getBody().dataStream.slice(customRange.startIndex,customRange.endIndex+1)}},"getCustomRangePosition"),getEditingCustomRangePosition=__name((injector,unitId,subUnitId,row,col,rangeId)=>{var _a61,_b,_c;const editorBridgeService=injector.get(IEditorBridgeService),state=editorBridgeService.getEditCellState();if(!state||!editorBridgeService.isVisible().visible)return null;const{editorUnitId,unitId:editingUnitId,sheetId,row:editRow,column:editCol}=state;if(unitId!==editingUnitId||subUnitId!==sheetId||editRow!==row||editCol!==col)return null;const renderManagerService=injector.get(engineRender.IRenderManagerService),renderer=renderManagerService.getRenderById(editorUnitId),sheetRenderer=renderManagerService.getRenderById(unitId);if(!renderer||!sheetRenderer)return null;const docSkeleton=renderer.with(docs.DocSkeletonManagerService).getSkeleton(),sheetSkeleton=(_a61=sheetRenderer.with(exports.SheetSkeletonManagerService).getWorksheetSkeleton(sheetId))==null?void 0:_a61.skeleton;if(!docSkeleton||!sheetSkeleton)return null;const customRange=(_c=(_b=docSkeleton.getViewModel().getBody())==null?void 0:_b.customRanges)==null?void 0:_c.find(range=>range.rangeId===rangeId);if(!customRange)return null;const PADDING=4,rects=calcDocRangePositions({startOffset:customRange.startIndex,endOffset:customRange.endIndex,collapsed:!1},docSkeleton),canvasClientRect=renderer.engine.getCanvasElement().getBoundingClientRect();return{rects:rects==null?void 0:rects.map(rect=>({top:rect.top+canvasClientRect.top-PADDING,bottom:rect.bottom+canvasClientRect.top+PADDING,left:rect.left+canvasClientRect.left,right:rect.right+canvasClientRect.left})),customRange,label:docSkeleton.getViewModel().getBody().dataStream.slice(customRange.startIndex,customRange.endIndex+1)}},"getEditingCustomRangePosition");var __defProp$s=Object.defineProperty,__getOwnPropDesc$s=Object.getOwnPropertyDescriptor,__decorateClass$s=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$s(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$s(target,key,result),result},"__decorateClass$s"),__decorateParam$s=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$s");function getLocationBase(location){const{workbook,worksheet,...locBase}=location;return locBase}__name(getLocationBase,"getLocationBase");var _a30;exports.HoverManagerService=(_a30=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService){super();__publicField(this,"_currentCell$",new rxjs.BehaviorSubject(null));__publicField(this,"_currentRichText$",new rxjs.BehaviorSubject(null));__publicField(this,"_currentClickedCell$",new rxjs.Subject);__publicField(this,"_currentDbClickedCell$",new rxjs.Subject);__publicField(this,"_currentCellWithEvent$",new rxjs.Subject);__publicField(this,"_currentPointerDownCell$",new rxjs.Subject);__publicField(this,"_currentPointerUpCell$",new rxjs.Subject);__publicField(this,"_currentHoveredRowHeader$",new rxjs.BehaviorSubject(null));__publicField(this,"_currentHoveredColHeader$",new rxjs.BehaviorSubject(null));__publicField(this,"_currentRowHeaderClick$",new rxjs.Subject);__publicField(this,"_currentColHeaderClick$",new rxjs.Subject);__publicField(this,"_currentRowHeaderDbClick$",new rxjs.Subject);__publicField(this,"_currentColHeaderDbClick$",new rxjs.Subject);__publicField(this,"_currentRowHeaderPointerDown$",new rxjs.Subject);__publicField(this,"_currentColHeaderPointerDown$",new rxjs.Subject);__publicField(this,"_currentRowHeaderPointerUp$",new rxjs.Subject);__publicField(this,"_currentColHeaderPointerUp$",new rxjs.Subject);__publicField(this,"currentCell$",this._currentCell$.asObservable().pipe(rxjs.distinctUntilChanged((pre,aft)=>{var _a61,_b,_c,_d,_e,_f,_g,_h;return((_a61=pre==null?void 0:pre.location)==null?void 0:_a61.unitId)===((_b=aft==null?void 0:aft.location)==null?void 0:_b.unitId)&&((_c=pre==null?void 0:pre.location)==null?void 0:_c.subUnitId)===((_d=aft==null?void 0:aft.location)==null?void 0:_d.subUnitId)&&((_e=pre==null?void 0:pre.location)==null?void 0:_e.row)===((_f=aft==null?void 0:aft.location)==null?void 0:_f.row)&&((_g=pre==null?void 0:pre.location)==null?void 0:_g.col)===((_h=aft==null?void 0:aft.location)==null?void 0:_h.col)})));__publicField(this,"currentRichText$",this._currentRichText$.pipe(rxjs.distinctUntilChanged((pre,aft)=>{var _a61,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p;return((_a61=pre==null?void 0:pre.location)==null?void 0:_a61.unitId)===((_b=aft==null?void 0:aft.location)==null?void 0:_b.unitId)&&((_c=pre==null?void 0:pre.location)==null?void 0:_c.subUnitId)===((_d=aft==null?void 0:aft.location)==null?void 0:_d.subUnitId)&&((_e=pre==null?void 0:pre.location)==null?void 0:_e.row)===((_f=aft==null?void 0:aft.location)==null?void 0:_f.row)&&((_g=pre==null?void 0:pre.location)==null?void 0:_g.col)===((_h=aft==null?void 0:aft.location)==null?void 0:_h.col)&&((_i=pre==null?void 0:pre.customRange)==null?void 0:_i.rangeId)===((_j=aft==null?void 0:aft.customRange)==null?void 0:_j.rangeId)&&((_k=pre==null?void 0:pre.bullet)==null?void 0:_k.startIndex)===((_l=aft==null?void 0:aft.bullet)==null?void 0:_l.startIndex)&&((_m=pre==null?void 0:pre.customRange)==null?void 0:_m.startIndex)===((_n=aft==null?void 0:aft.customRange)==null?void 0:_n.startIndex)&&((_o=pre==null?void 0:pre.customRange)==null?void 0:_o.endIndex)===((_p=aft==null?void 0:aft.customRange)==null?void 0:_p.endIndex)&&(pre==null?void 0:pre.drawing)===(aft==null?void 0:aft.drawing)}),rxjs.map(cell=>cell&&{unitId:cell.location.unitId,subUnitId:cell.location.subUnitId,row:cell.location.row,col:cell.location.col,customRange:cell.customRange,bullet:cell.bullet,rect:cell.rect,drawing:cell.drawing})));__publicField(this,"currentCellPosWithEvent$",this._currentCellWithEvent$.pipe(rxjs.distinctUntilChanged((pre,aft)=>{var _a61,_b,_c,_d,_e,_f,_g,_h;return((_a61=pre==null?void 0:pre.location)==null?void 0:_a61.unitId)===((_b=aft==null?void 0:aft.location)==null?void 0:_b.unitId)&&((_c=pre==null?void 0:pre.location)==null?void 0:_c.subUnitId)===((_d=aft==null?void 0:aft.location)==null?void 0:_d.subUnitId)&&((_e=pre==null?void 0:pre.location)==null?void 0:_e.row)===((_f=aft==null?void 0:aft.location)==null?void 0:_f.row)&&((_g=pre==null?void 0:pre.location)==null?void 0:_g.col)===((_h=aft==null?void 0:aft.location)==null?void 0:_h.col)}),rxjs.map(cell=>cell&&{unitId:cell.location.unitId,subUnitId:cell.location.subUnitId,row:cell.location.row,col:cell.location.col,event:cell.event})));__publicField(this,"currentPosition$",this._currentCell$.asObservable());__publicField(this,"currentClickedCell$",this._currentClickedCell$.asObservable());__publicField(this,"currentDbClickedCell$",this._currentDbClickedCell$.asObservable());__publicField(this,"currentPointerDownCell$",this._currentPointerDownCell$.asObservable());__publicField(this,"currentPointerUpCell$",this._currentPointerUpCell$.asObservable());__publicField(this,"currentHoveredRowHeader$",this._currentHoveredRowHeader$.asObservable());__publicField(this,"currentHoveredColHeader$",this._currentHoveredColHeader$.asObservable());__publicField(this,"currentRowHeaderClick$",this._currentRowHeaderClick$.asObservable());__publicField(this,"currentColHeaderClick$",this._currentColHeaderClick$.asObservable());__publicField(this,"currentRowHeaderDbClick$",this._currentRowHeaderDbClick$.asObservable());__publicField(this,"currentColHeaderDbClick$",this._currentColHeaderDbClick$.asObservable());__publicField(this,"currentRowHeaderPointerDown$",this._currentRowHeaderPointerDown$.asObservable());__publicField(this,"currentColHeaderPointerDown$",this._currentColHeaderPointerDown$.asObservable());__publicField(this,"currentRowHeaderPointerUp$",this._currentRowHeaderPointerUp$.asObservable());__publicField(this,"currentColHeaderPointerUp$",this._currentColHeaderPointerUp$.asObservable());this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._currentClickedCell$.complete(),this._currentPointerDownCell$.complete(),this._currentPointerUpCell$.complete(),this._currentCellWithEvent$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook||this._currentCell$.next(null)})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(unit=>{var _a61,_b;((_a61=this._currentCell$.getValue())==null?void 0:_a61.location.unitId)===unit.getUnitId()&&this._currentCell$.next(null),((_b=this._currentRichText$.getValue())==null?void 0:_b.location.unitId)===unit.getUnitId()&&this._currentRichText$.next(null)}))}_getCalcDeps(unitId){const workbook=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const worksheet=workbook.getActiveSheet();if(!worksheet)return null;const currentRender=this._renderManagerService.getRenderById(workbook.getUnitId());if(!currentRender)return null;const skeletonParam=currentRender.with(exports.SheetSkeletonManagerService).getWorksheetSkeleton(worksheet.getSheetId());if(!skeletonParam)return null;const scrollManagerService=currentRender.with(exports.SheetScrollManagerService);if(!(!(scrollManagerService!=null&&scrollManagerService.getCurrentScrollState())||!currentRender))return{currentRender,workbook,worksheet,skeletonParam}}_calcActiveCell(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY){var _a61,_b,_c;const hoverPosition=getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY),skeleton=skeletonParam.skeleton;if(!hoverPosition)return null;const{position,overflowLocation,location}=hoverPosition,font=skeleton.getFont(overflowLocation.row,overflowLocation.col);let customRange=null,bullet=null,drawing=null;const cell=skeleton.getCellWithCoordByIndex(overflowLocation.row,overflowLocation.col),cellData=worksheet.getCell(overflowLocation.row,overflowLocation.col),{topOffset=0,leftOffset=0}=(_a61=cellData==null?void 0:cellData.fontRenderExtension)!=null?_a61:{};if(font){const{paddingLeft,paddingTop}=calcPadding(cell,font,(cellData==null?void 0:cellData.v)!==null&&(cellData==null?void 0:cellData.v)!==void 0?!Number.isNaN(+cellData.v):!1),rects=calculateDocSkeletonRects(font.documentSkeleton,paddingLeft,paddingTop),innerX=offsetX-position.startX-leftOffset,innerY=offsetY-position.startY-topOffset;customRange=rects.links.find(link=>link.rects.some(rect2=>rect2.left<=innerX&&innerX<=rect2.right&&rect2.top<=innerY&&innerY<=rect2.bottom)),bullet=rects.checkLists.find(list=>list.rect.left<=innerX&&innerX<=list.rect.right&&list.rect.top<=innerY&&innerY<=list.rect.bottom),drawing=rects.drawings.find(drawing2=>drawing2.rect.left<=innerX&&innerX<=drawing2.rect.right&&drawing2.rect.top<=innerY&&innerY<=drawing2.rect.bottom)}const rect=(_c=(_b=customRange==null?void 0:customRange.rects.pop())!=null?_b:bullet==null?void 0:bullet.rect)!=null?_c:drawing==null?void 0:drawing.rect;return{location,position,overflowLocation,customRange:customRange==null?void 0:customRange.range,bullet:bullet==null?void 0:bullet.paragraph,drawing:drawing==null?void 0:drawing.drawingId,rect:rect&&{top:rect.top+cell.mergeInfo.startY+topOffset,bottom:rect.bottom+cell.mergeInfo.startY+topOffset,left:rect.left+cell.mergeInfo.startX+leftOffset,right:rect.right+cell.mergeInfo.startX+leftOffset}}}_calcActiveRowHeader(unitId,offsetX,offsetY){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,worksheet,skeletonParam}=deps,{scaleY}=currentRender.scene.getAncestorScale(),activeViewport=currentRender.scene.getViewports().find(v=>v.isHit(new engineRender.Vector2(offsetX,offsetY)));if(!activeViewport||activeViewport.viewportKey!==engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP&&activeViewport.viewportKey!==engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM)return;const scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},index=skeletonParam.skeleton.getRowIndexByOffsetY(offsetY,scaleY,scrollXY);return{unitId,index,subUnitId:worksheet.getSheetId()}}_calcActiveColHeader(unitId,offsetX,offsetY){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,worksheet,skeletonParam}=deps,{scaleX}=currentRender.scene.getAncestorScale(),activeViewport=currentRender.scene.getViewports().find(v=>v.isHit(new engineRender.Vector2(offsetX,offsetY)));if(!activeViewport||activeViewport.viewportKey!==engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT&&activeViewport.viewportKey!==engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT)return;const scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},index=skeletonParam.skeleton.getColumnIndexByOffsetX(offsetX,scaleX,scrollXY);return{unitId,index,subUnitId:worksheet.getSheetId()}}triggerPointerDown(unitId,event){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,workbook,worksheet,skeletonParam}=deps,activeCell=this._calcActiveCell(currentRender,workbook,worksheet,skeletonParam,event.offsetX,event.offsetY);if(activeCell&&activeCell.location){const{unitId:unitId2,subUnitId,row,col}=getLocationBase(activeCell.location);this._currentPointerDownCell$.next({unitId:unitId2,subUnitId,row,col,event})}}triggerPointerUp(unitId,event){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,workbook,worksheet,skeletonParam}=deps,activeCell=this._calcActiveCell(currentRender,workbook,worksheet,skeletonParam,event.offsetX,event.offsetY);if(activeCell){const location=getLocationBase(activeCell.location);this._currentPointerUpCell$.next({...location,event})}}triggerMouseMove(unitId,event){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,workbook,worksheet,skeletonParam}=deps,activeCell=this._calcActiveCell(currentRender,workbook,worksheet,skeletonParam,event.offsetX,event.offsetY);this._currentCell$.next(activeCell&&{location:getLocationBase(activeCell.location),position:activeCell.position}),this._currentRichText$.next(activeCell&&{...activeCell,location:getLocationBase(activeCell.overflowLocation)}),this._currentCellWithEvent$.next(activeCell&&{...activeCell,location:getLocationBase(activeCell.location),event})}triggerClick(unitId,offsetX,offsetY){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,workbook,worksheet,skeletonParam}=deps,activeCell=this._calcActiveCell(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY);activeCell&&this._currentClickedCell$.next({...activeCell,location:getLocationBase(activeCell.location)})}triggerDbClick(unitId,offsetX,offsetY){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,workbook,worksheet,skeletonParam}=deps,activeCell=this._calcActiveCell(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY);activeCell&&this._currentDbClickedCell$.next({...activeCell,location:getLocationBase(activeCell.location)})}triggerScroll(){this._currentCell$.next(null)}triggerRowHeaderClick(unitId,offsetX,offsetY){const pos=this._calcActiveRowHeader(unitId,offsetX,offsetY);pos&&this._currentRowHeaderClick$.next(pos)}triggerColHeaderClick(unitId,offsetX,offsetY){const pos=this._calcActiveColHeader(unitId,offsetX,offsetY);pos&&this._currentColHeaderClick$.next(pos)}triggerRowHeaderDbClick(unitId,offsetX,offsetY){const pos=this._calcActiveRowHeader(unitId,offsetX,offsetY);pos&&this._currentRowHeaderDbClick$.next(pos)}triggerColHeaderDbClick(unitId,offsetX,offsetY){const pos=this._calcActiveColHeader(unitId,offsetX,offsetY);pos&&this._currentColHeaderDbClick$.next(pos)}triggerRowHeaderMouseMove(unitId,offsetX,offsetY){this._currentHoveredRowHeader$.next(this._calcActiveRowHeader(unitId,offsetX,offsetY))}triggerColHeaderMouseMove(unitId,offsetX,offsetY){this._currentHoveredColHeader$.next(this._calcActiveColHeader(unitId,offsetX,offsetY))}triggerRowHeaderPoniterDown(unitId,offsetX,offsetY){const pos=this._calcActiveRowHeader(unitId,offsetX,offsetY);pos&&this._currentRowHeaderPointerDown$.next(pos)}triggerColHeaderPoniterDown(unitId,offsetX,offsetY){const pos=this._calcActiveColHeader(unitId,offsetX,offsetY);pos&&this._currentColHeaderPointerDown$.next(pos)}triggerRowHeaderPoniterUp(unitId,offsetX,offsetY){const pos=this._calcActiveRowHeader(unitId,offsetX,offsetY);pos&&this._currentRowHeaderPointerUp$.next(pos)}triggerColHeaderPoniterUp(unitId,offsetX,offsetY){const pos=this._calcActiveColHeader(unitId,offsetX,offsetY);pos&&this._currentColHeaderPointerUp$.next(pos)}},__name(_a30,"HoverManagerService"),_a30);exports.HoverManagerService=__decorateClass$s([__decorateParam$s(0,core.IUniverInstanceService),__decorateParam$s(1,engineRender.IRenderManagerService)],exports.HoverManagerService);var __defProp$r=Object.defineProperty,__getOwnPropDesc$r=Object.getOwnPropertyDescriptor,__decorateClass$r=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$r(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$r(target,key,result),result},"__decorateClass$r"),__decorateParam$r=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$r");const ALERT_KEY="SHEET_FORCE_STRING_ALERT";var _a31;let ForceStringAlertRenderController=(_a31=class extends core.Disposable{constructor(_context,_hoverManagerService,_cellAlertManagerService,_localeService,_zenZoneService){super(),this._context=_context,this._hoverManagerService=_hoverManagerService,this._cellAlertManagerService=_cellAlertManagerService,this._localeService=_localeService,this._zenZoneService=_zenZoneService,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(cellPos=>{var _a61;if(cellPos){const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const cellData=worksheet.getCell(cellPos.location.row,cellPos.location.col);if((cellData==null?void 0:cellData.t)===core.CellValueType.FORCE_STRING&&cellData.v&&core.isRealNum(cellData.v)){const currentAlert=this._cellAlertManagerService.currentAlert.get(ALERT_KEY),currentLoc=(_a61=currentAlert==null?void 0:currentAlert.alert)==null?void 0:_a61.location;if(currentLoc&¤tLoc.row===cellPos.location.row&¤tLoc.col===cellPos.location.col&¤tLoc.subUnitId===cellPos.location.subUnitId&¤tLoc.unitId===cellPos.location.unitId)return;this._cellAlertManagerService.showAlert({type:CellAlertType.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:cellPos.location,width:200,height:74,key:ALERT_KEY});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(visible=>{visible&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(ALERT_KEY)}},__name(_a31,"ForceStringAlertRenderController"),_a31);ForceStringAlertRenderController=__decorateClass$r([__decorateParam$r(1,core.Inject(exports.HoverManagerService)),__decorateParam$r(2,core.Inject(exports.CellAlertManagerService)),__decorateParam$r(3,core.Inject(core.LocaleService)),__decorateParam$r(4,ui.IZenZoneService)],ForceStringAlertRenderController);var __defProp$q=Object.defineProperty,__getOwnPropDesc$q=Object.getOwnPropertyDescriptor,__decorateClass$q=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$q(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$q(target,key,result),result},"__decorateClass$q"),__decorateParam$q=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$q"),_a32;let ForceStringRenderController=(_a32=class extends core.RxDisposable{constructor(_context,_sheetSkeletonManagerService,_sheetInterceptorService){super(),this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._sheetInterceptorService=_sheetInterceptorService,this._initViewModelIntercept()}_initViewModelIntercept(){const FORCE_STRING_MARK={tl:{size:6,color:"#409f11"}};this.disposeWithMe(this._sheetInterceptorService.intercept(sheets.INTERCEPTOR_POINT.CELL_CONTENT,{priority:10,effect:core.InterceptorEffectEnum.Style,handler:__name((cell,pos,next)=>{var _a61;if(!((_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton))return next(cell);const cellRaw=pos.worksheet.getCellRaw(pos.row,pos.col);return!cellRaw||cellRaw.v===null||cellRaw.v===void 0?next(cell):(cell==null?void 0:cell.t)===core.CellValueType.FORCE_STRING&&core.isRealNum(cellRaw.v)?next({...cell,markers:{...cell==null?void 0:cell.markers,...FORCE_STRING_MARK}}):next(cell)},"handler")}))}},__name(_a32,"ForceStringRenderController"),_a32);ForceStringRenderController=__decorateClass$q([__decorateParam$q(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$q(2,core.Inject(sheets.SheetInterceptorService))],ForceStringRenderController);var __defProp$p=Object.defineProperty,__getOwnPropDesc$p=Object.getOwnPropertyDescriptor,__decorateClass$p=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$p(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$p(target,key,result),result},"__decorateClass$p"),__decorateParam$p=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$p"),_a33;exports.HoverRenderController=(_a33=class extends core.Disposable{constructor(_context,_hoverManagerService,_sheetSkeletonManagerService,_scrollManagerService){super();__publicField(this,"_active",!1);this._context=_context,this._hoverManagerService=_hoverManagerService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._scrollManagerService=_scrollManagerService,this._initPointerEvent(),this._initScrollEvent()}get active(){return this._active}_initPointerEvent(){const disposeSet=new core.DisposableCollection,handleSkeletonChange=__name(skeletonParam=>{if(disposeSet.dispose(),!skeletonParam)return;const{mainComponent,unitId,components}=this._context;if(!mainComponent)return;disposeSet.add(mainComponent.onPointerEnter$.subscribeEvent(evt=>{this._active=!0})),disposeSet.add(core.fromEventSubject(mainComponent.onPointerMove$).subscribe(evt=>{this._active=!0,this._hoverManagerService.triggerMouseMove(unitId,evt)})),disposeSet.add(mainComponent.onPointerDown$.subscribeEvent(evt=>{this._hoverManagerService.triggerPointerDown(unitId,evt)})),disposeSet.add(mainComponent.onPointerUp$.subscribeEvent(evt=>{this._hoverManagerService.triggerPointerUp(unitId,evt),this._hoverManagerService.triggerClick(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(mainComponent.onDblclick$.subscribeEvent(evt=>{this._hoverManagerService.triggerDbClick(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(mainComponent.onPointerLeave$.subscribeEvent(()=>{this._active=!1}));const rowHeader=components.get(SHEET_VIEW_KEY.ROW),colHeader=components.get(SHEET_VIEW_KEY.COLUMN);rowHeader&&(disposeSet.add(rowHeader.onPointerMove$.subscribeEvent(evt=>{this._hoverManagerService.triggerRowHeaderMouseMove(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(rowHeader.onPointerDown$.subscribeEvent(evt=>{this._hoverManagerService.triggerRowHeaderPoniterDown(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(rowHeader.onPointerUp$.subscribeEvent(evt=>{this._hoverManagerService.triggerRowHeaderPoniterUp(unitId,evt.offsetX,evt.offsetY),this._hoverManagerService.triggerRowHeaderClick(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(rowHeader.onDblclick$.subscribeEvent(evt=>{this._hoverManagerService.triggerRowHeaderDbClick(unitId,evt.offsetX,evt.offsetY)}))),colHeader&&(disposeSet.add(colHeader.onPointerMove$.subscribeEvent(evt=>{this._hoverManagerService.triggerColHeaderMouseMove(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(colHeader.onPointerDown$.subscribeEvent(evt=>{this._hoverManagerService.triggerColHeaderPoniterDown(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(colHeader.onPointerUp$.subscribeEvent(evt=>{this._hoverManagerService.triggerColHeaderPoniterUp(unitId,evt.offsetX,evt.offsetY),this._hoverManagerService.triggerColHeaderClick(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(colHeader.onDblclick$.subscribeEvent(evt=>{this._hoverManagerService.triggerColHeaderDbClick(unitId,evt.offsetX,evt.offsetY)})))},"handleSkeletonChange");handleSkeletonChange(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(skeletonParam=>{handleSkeletonChange(skeletonParam)}))}_initScrollEvent(){this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(()=>this._hoverManagerService.triggerScroll()))}},__name(_a33,"HoverRenderController"),_a33);exports.HoverRenderController=__decorateClass$p([__decorateParam$p(1,core.Inject(exports.HoverManagerService)),__decorateParam$p(2,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$p(3,core.Inject(exports.SheetScrollManagerService))],exports.HoverRenderController);var __defProp$o=Object.defineProperty,__getOwnPropDesc$o=Object.getOwnPropertyDescriptor,__decorateClass$o=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$o(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$o(target,key,result),result},"__decorateClass$o"),__decorateParam$o=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$o"),_a34;let MarkSelectionRenderController=(_a34=class extends core.Disposable{constructor(_context,_markSelectionService,_commandService,_sheetSkeletonManagerService){super(),this._context=_context,this._markSelectionService=_markSelectionService,this._commandService=_commandService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._initListeners()}_initListeners(){this._addRemoveListener(),this._addRefreshListener()}_addRemoveListener(){const removeCommands=[SetCellEditVisibleOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{removeCommands.includes(command.id)?this._markSelectionService.removeAllShapes():this._markSelectionService.getShapeMap().forEach((shape,id)=>{shape.exits.includes(command.id)&&this._markSelectionService.removeShape(id)})}))}_addRefreshListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(skeleton=>{skeleton&&this._markSelectionService.refreshShapes()}))}},__name(_a34,"MarkSelectionRenderController"),_a34);MarkSelectionRenderController=__decorateClass$o([__decorateParam$o(1,core.Inject(IMarkSelectionService)),__decorateParam$o(2,core.ICommandService),__decorateParam$o(3,core.Inject(exports.SheetSkeletonManagerService))],MarkSelectionRenderController);const mobileSheetBarContainer="univer-mobile-sheet-bar-container",mobileSheetBarSlider="univer-mobile-sheet-bar-slider",mobileSheetBarItem="univer-mobile-sheet-bar-item",mobileSheetBarItemActivated="univer-mobile-sheet-bar-item-activated",styles$6={mobileSheetBarContainer,mobileSheetBarSlider,mobileSheetBarItem,mobileSheetBarItemActivated};function MobileSheetBar(){const workbook=useActiveWorkbook();return workbook?jsxRuntime.jsx(MobileSheetBarImpl,{workbook}):null}__name(MobileSheetBar,"MobileSheetBar");function MobileSheetBarImpl(props){const{workbook}=props,[sheetList,setSheetList]=React.useState([]),[activeKey,setActiveKey]=React.useState(""),tabMapRef=React.useRef(new Map),commandService=core.useDependency(core.ICommandService),updateSheetItems=React.useCallback(()=>{const currentSubUnitId=workbook.getActiveSheet().getSheetId(),sheets2=workbook.getSheets(),activeSheet=workbook.getActiveSheet(),sheetListItems=sheets2.filter(sheet=>!sheet.isSheetHidden()).map((sheet,index)=>{var _a61;return{sheetId:sheet.getSheetId(),label:sheet.getName(),index,selected:activeSheet===sheet,color:(_a61=sheet.getTabColor())!=null?_a61:void 0}});if(setSheetList(sheetListItems),setActiveKey(currentSubUnitId),tabMapRef.current.has(currentSubUnitId)){const element2=tabMapRef.current.get(currentSubUnitId);element2&&element2.scrollIntoView({behavior:"smooth",block:"nearest"})}tabMapRef.current.clear()},[workbook]);React.useEffect(()=>updateSheetItems(),[updateSheetItems]);const onTabClick=React.useCallback(sheetId=>{commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{unitId:workbook.getUnitId(),subUnitId:sheetId})},[commandService,workbook]);return React.useEffect(()=>{const disposable=commandService.onCommandExecuted(commandInfo=>{switch(commandInfo.id){case sheets.SetWorksheetHideMutation.id:case sheets.RemoveSheetMutation.id:case sheets.SetWorksheetNameMutation.id:case sheets.InsertSheetMutation.id:case sheets.SetWorksheetOrderMutation.id:case sheets.SetWorksheetActiveOperation.id:updateSheetItems();break}});return()=>disposable.dispose()},[commandService,updateSheetItems]),jsxRuntime.jsx("div",{className:styles$6.mobileSheetBarContainer,children:jsxRuntime.jsx("div",{className:styles$6.mobileSheetBarSlider,children:sheetList.map(sheet=>jsxRuntime.jsx("div",{className:clsx(styles$6.mobileSheetBarItem,{[styles$6.mobileSheetBarItemActivated]:sheet.sheetId===activeKey}),onClick:__name(()=>onTabClick(sheet.sheetId),"onClick"),ref:__name(element2=>{tabMapRef.current.set(sheet.sheetId,element2)},"ref"),children:sheet.label},sheet.sheetId))})})}__name(MobileSheetBarImpl,"MobileSheetBarImpl");const menuSchema={[ui.ContextMenuPosition.MAIN_AREA]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory}},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}},[ui.ContextMenuPosition.COL_HEADER]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory}},[ui.ContextMenuGroup.LAYOUT]:{order:1},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}},[ui.ContextMenuPosition.ROW_HEADER]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory}},[ui.ContextMenuGroup.LAYOUT]:{order:1},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}}};var __defProp$n=Object.defineProperty,__getOwnPropDesc$n=Object.getOwnPropertyDescriptor,__decorateClass$n=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$n(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$n(target,key,result),result},"__decorateClass$n"),__decorateParam$n=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$n"),_a35;let SheetUIMobileController=(_a35=class extends core.Disposable{constructor(_injector,_componentManager,_layoutService,_commandService,_shortcutService,_menuManagerService,_uiPartsService){super(),this._injector=_injector,this._componentManager=_componentManager,this._layoutService=_layoutService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._menuManagerService=_menuManagerService,this._uiPartsService=_uiPartsService,this._init()}_init(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initCustomComponents(){const componentManager=this._componentManager;this.disposeWithMe(componentManager.register(MENU_ITEM_INPUT_COMPONENT,MenuItemInput)),this.disposeWithMe(componentManager.register(BORDER_PANEL_COMPONENT,BorderPanel)),this.disposeWithMe(componentManager.register(COLOR_PICKER_COMPONENT,design.ColorPicker)),this.disposeWithMe(componentManager.register(FONT_FAMILY_COMPONENT,ui.FontFamily)),this.disposeWithMe(componentManager.register(FONT_FAMILY_ITEM_COMPONENT,ui.FontFamilyItem)),this.disposeWithMe(componentManager.register(FONT_SIZE_COMPONENT,ui.FontSize)),this.disposeWithMe(componentManager.register(DEFINED_NAME_CONTAINER,DefinedNameContainer))}_initCommands(){[AddWorksheetMergeAllCommand,AddWorksheetMergeCommand,AddWorksheetMergeHorizontalCommand,AddWorksheetMergeVerticalCommand,ChangeZoomRatioCommand,ExpandSelectionCommand,MoveSelectionCommand,MoveSelectionEnterAndTabCommand,RenameSheetOperation,RemoveSheetConfirmCommand,RemoveRowConfirmCommand,RemoveColConfirmCommand,HideRowConfirmCommand,HideColConfirmCommand,ScrollCommand,ScrollToCellCommand,SelectAllCommand,SetActivateCellEditOperation,sheets.SetBoldCommand,SetCellEditVisibleArrowOperation,SetCellEditVisibleOperation,SetCellEditVisibleWithF2Operation,SetRangeBoldCommand,SetRangeItalicCommand,SetRangeUnderlineCommand,SetRangeStrickThroughCommand,SetRangeSubscriptCommand,SetRangeSuperscriptCommand,SetRangeFontSizeCommand,SetRangeFontFamilyCommand,SetRangeTextColorCommand,sheets.SetItalicCommand,sheets.SetStrikeThroughCommand,sheets.SetFontFamilyCommand,sheets.SetFontSizeCommand,SetFormatPainterOperation,SetInfiniteFormatPainterCommand,SetOnceFormatPainterCommand,ApplyFormatPainterCommand,SetScrollOperation,SetScrollRelativeCommand,SetSelectionFrozenCommand,SetRowFrozenCommand,SetColumnFrozenCommand,sheets.SetUnderlineCommand,SetZoomRatioCommand,SetZoomRatioOperation,ShowMenuListCommand,RefillCommand,InsertRangeMoveDownConfirmCommand,DeleteRangeMoveUpConfirmCommand,InsertRangeMoveRightConfirmCommand,DeleteRangeMoveLeftConfirmCommand,SidebarDefinedNameOperation,AutoFillCommand,AutoClearContentCommand,SheetPermissionOpenPanelOperation,SheetPermissionOpenDialogOperation,AddRangeProtectionFromToolbarCommand,AddRangeProtectionFromContextMenuCommand,ViewSheetPermissionFromContextMenuCommand,AddRangeProtectionFromSheetBarCommand,ViewSheetPermissionFromSheetBarCommand,ChangeSheetProtectionFromSheetBarCommand,DeleteRangeProtectionFromContextMenuCommand,SetRangeProtectionFromContextMenuCommand,DeleteWorksheetProtectionFormSheetBarCommand].forEach(c=>{this.disposeWithMe(this._commandService.registerCommand(c))})}_initMenus(){this._menuManagerService.mergeMenu(menuSchema)}_initShortcuts(){[MoveSelectionDownShortcutItem,MoveSelectionUpShortcutItem,MoveSelectionLeftShortcutItem,MoveSelectionRightShortcutItem,MoveSelectionTabShortcutItem,MoveSelectionTabLeftShortcutItem,MoveSelectionEnterShortcutItem,MoveSelectionEnterUpShortcutItem,MoveSelectionEndDownShortcutItem,MoveSelectionEndUpShortcutItem,MoveSelectionEndLeftShortcutItem,MoveSelectionEndRightShortcutItem,ExpandSelectionDownShortcutItem,ExpandSelectionUpShortcutItem,ExpandSelectionLeftShortcutItem,ExpandSelectionRightShortcutItem,ExpandSelectionEndDownShortcutItem,ExpandSelectionEndUpShortcutItem,ExpandSelectionEndLeftShortcutItem,ExpandSelectionEndRightShortcutItem,SelectAllShortcutItem,ZoomInShortcutItem,ZoomOutShortcutItem,ResetZoomShortcutItem,PreventDefaultResetZoomShortcutItem,PreventDefaultZoomInShortcutItem,PreventDefaultZoomOutShortcutItem,SetBoldShortcutItem,SetItalicShortcutItem,SetUnderlineShortcutItem,SetStrikeThroughShortcutItem,ClearSelectionValueShortcutItem,...generateArrowSelectionShortCutItem(),EditorCursorEnterShortcut,StartEditWithF2Shortcut,EditorCursorTabShortcut,EditorBreakLineShortcut,EditorDeleteLeftShortcut,EditorDeleteLeftShortcutInActive,EditorCursorEscShortcut,SetRowHiddenShortcutItem,SetColHiddenShortcutItem].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_initWorkbenchParts(){this._uiPartsService.registerComponent(ui.BuiltInUIPart.HEADER,()=>core.connectInjector(MobileSheetBar,this._injector))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(core.UniverInstanceType.UNIVER_SHEET,_unitId=>{}))}},__name(_a35,"SheetUIMobileController"),_a35);SheetUIMobileController=__decorateClass$n([__decorateParam$n(0,core.Inject(core.Injector)),__decorateParam$n(1,core.Inject(ui.ComponentManager)),__decorateParam$n(2,ui.ILayoutService),__decorateParam$n(3,core.ICommandService),__decorateParam$n(4,ui.IShortcutService),__decorateParam$n(5,ui.IMenuManagerService),__decorateParam$n(6,ui.IUIPartsService)],SheetUIMobileController);const UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID="UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID",UNIVER_SHEET_PERMISSION_ALERT_DIALOG="UNIVER_SHEET_PERMISSION_ALERT_DIALOG";var __defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__decorateClass$m=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$m(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$m(target,key,result),result},"__decorateClass$m"),__decorateParam$m=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$m"),_a36;exports.SheetPermissionCheckUIController=(_a36=class extends core.Disposable{constructor(_commandService,_univerInstanceService,_permissionService,_dialogService,_rangeProtectionRuleModel,_autoFillService,_localeService,_contextService,_sheetPermissionCheckController){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._commandService=_commandService,this._univerInstanceService=_univerInstanceService,this._permissionService=_permissionService,this._dialogService=_dialogService,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._autoFillService=_autoFillService,this._localeService=_localeService,this._contextService=_contextService,this._sheetPermissionCheckController=_sheetPermissionCheckController,this._initialize(),this._initUIEvent()}_initUIEvent(){this.disposeWithMe(this._sheetPermissionCheckController.triggerPermissionUIEvent$.subscribe(errorMsg=>{this._haveNotPermissionHandle(errorMsg)}))}_haveNotPermissionHandle(errorMsg){const dialogProps={id:UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID,title:{title:""},children:{label:UNIVER_SHEET_PERMISSION_ALERT_DIALOG,errorMsg},width:320,destroyOnClose:!0,onClose:__name(()=>this._dialogService.close(UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID),"onClose"),className:"sheet-permission-user-dialog"};this._permissionService.getShowComponents()&&this._dialogService.open(dialogProps)}_getPermissionCheck(id,params){var _a61,_b;let permission=!0,errorMsg="";switch(id){case docsUi.InsertCommand.id:case docsUi.IMEInputCommand.id:if(this._contextService.getContextValue(core.FOCUSING_EDITOR_STANDALONE)===!0)break;permission=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.editErr");break;case SetCellEditVisibleOperation.id:if(params.visible===!1)break;permission=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.editErr");break;case SheetPasteColWidthCommand.id:permission=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission]}),errorMsg=this._localeService.t("permission.dialog.pasteErr");break;case SheetPasteShortKeyCommand.id:permission=this._permissionCheckByPaste(params),errorMsg=this._localeService.t("permission.dialog.pasteErr");break;case ApplyFormatPainterCommand.id:permission=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission]}),errorMsg=this._localeService.t("permission.dialog.commonErr");break;case sheets.SetBackgroundColorCommand.id:case SetRangeBoldCommand.id:case SetRangeItalicCommand.id:case SetRangeUnderlineCommand.id:case SetRangeStrickThroughCommand.id:permission=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.setStyleErr");break;case SheetCopyCommand.id:permission=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookCopyPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint],worksheetTypes:[sheets.WorksheetCopyPermission]}),errorMsg=this._localeService.t("permission.dialog.copyErr"),(_a61=this._permissionService.getPermissionPoint(new sheets.WorkbookCopyPermission(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&_a61.value||(errorMsg=this._localeService.t("permission.dialog.workbookCopyErr"));break;case SheetCutCommand.id:permission=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookCopyPermission,sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint,sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetCopyPermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.copyErr"),(_b=this._permissionService.getPermissionPoint(new sheets.WorkbookCopyPermission(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&_b.value||(errorMsg=this._localeService.t("permission.dialog.workbookCopyErr"));break;case AutoFillCommand.id:permission=this._permissionCheckByAutoFillCommand(params),errorMsg=this._localeService.t("permission.dialog.autoFillErr");break}permission||this._sheetPermissionCheckController.blockExecuteWithoutPermission(errorMsg)}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(command=>{this._getPermissionCheck(command.id,command==null?void 0:command.params)}))}_permissionCheckByPaste(params){return params.value===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE||params.value===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA?this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]}):params.value===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT?this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]}):this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]})}_permissionCheckByAutoFillCommand(params){if(!params)return!1;const{targetRange}=params,target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;return!this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p,c)=>[...p,...c.ranges],[]).filter(range=>core.Rectangle.intersects(range,targetRange)).some(range=>{var _a61,_b;for(let row=range.startRow;row<=range.endRow;row++)for(let col=range.startColumn;col<=range.endColumn;col++){const permission=(_b=(_a61=worksheet.getCell(row,col))==null?void 0:_a61.selectionProtection)==null?void 0:_b[0];if((permission==null?void 0:permission[R.Edit])===!1)return!0}return!1})}},__name(_a36,"SheetPermissionCheckUIController"),_a36);exports.SheetPermissionCheckUIController=__decorateClass$m([__decorateParam$m(0,core.ICommandService),__decorateParam$m(1,core.IUniverInstanceService),__decorateParam$m(2,core.IPermissionService),__decorateParam$m(3,ui.IDialogService),__decorateParam$m(4,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$m(5,IAutoFillService),__decorateParam$m(6,core.Inject(core.LocaleService)),__decorateParam$m(7,core.IContextService),__decorateParam$m(8,core.Inject(sheets.SheetPermissionCheckController))],exports.SheetPermissionCheckUIController);var __defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__decorateClass$l=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$l(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$l(target,key,result),result},"__decorateClass$l"),__decorateParam$l=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$l"),_a37;let SheetPermissionInterceptorCanvasRenderController=(_a37=class extends core.RxDisposable{constructor(_context,_univerInstanceService,_permissionService,_selectionManagerService,_rangeProtectionRuleModel,_headerMoveRenderController,_selectionRenderService,_headerFreezeRenderController,_rangeProtectionCache,_headerResizeRenderController){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._context=_context,this._univerInstanceService=_univerInstanceService,this._permissionService=_permissionService,this._selectionManagerService=_selectionManagerService,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._headerMoveRenderController=_headerMoveRenderController,this._selectionRenderService=_selectionRenderService,this._headerFreezeRenderController=_headerFreezeRenderController,this._rangeProtectionCache=_rangeProtectionCache,this._headerResizeRenderController=_headerResizeRenderController,this._initHeaderMovePermissionInterceptor(),this._initHeaderResizePermissionInterceptor(),this._initRangeFillPermissionInterceptor(),this._initRangeMovePermissionInterceptor()}_initHeaderMovePermissionInterceptor(){const headerMoveInterceptor=this._headerMoveRenderController.interceptor.getInterceptPoints().HEADER_MOVE_PERMISSION_CHECK;this.disposeWithMe(this._headerMoveRenderController.interceptor.intercept(headerMoveInterceptor,{handler:__name((defaultValue,selectionRange)=>{const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target;if(!this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id]).every(permission=>permission.value))return!1;if(!selectionRange)return!0;if(selectionRange.rangeType!==core.RANGE_TYPE.ROW&&selectionRange.rangeType!==core.RANGE_TYPE.COLUMN)return defaultValue;if(selectionRange.rangeType===core.RANGE_TYPE.ROW){for(let i=selectionRange.startRow;i<=selectionRange.endRow;i++)if(this._rangeProtectionCache.getRowPermissionInfo(unitId,subUnitId,i,[R.Edit])===!1)return!1}else for(let i=selectionRange.startColumn;i<=selectionRange.endColumn;i++)if(this._rangeProtectionCache.getColPermissionInfo(unitId,subUnitId,i,[R.Edit])===!1)return!1;return!0},"handler")}))}_initHeaderResizePermissionInterceptor(){this._headerResizeRenderController&&this.disposeWithMe(this._headerResizeRenderController.interceptor.intercept(this._headerResizeRenderController.interceptor.getInterceptPoints().HEADER_RESIZE_PERMISSION_CHECK,{handler:__name((defaultValue,rangeParams)=>{var _a61,_b,_c,_d;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target;if(rangeParams.row){if(((_b=(_a61=this._permissionService.getPermissionPoint(new sheets.WorksheetSetRowStylePermission(unitId,subUnitId).id))==null?void 0:_a61.value)!=null?_b:!1)===!1)return!1}else if(rangeParams.col&&((_d=(_c=this._permissionService.getPermissionPoint(new sheets.WorksheetSetColumnStylePermission(unitId,subUnitId).id))==null?void 0:_c.value)!=null?_d:!1)===!1)return!1;return!0},"handler")}))}_initRangeFillPermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_FILL_PERMISSION_CHECK,{handler:__name((_2,position)=>{var _a61,_b,_c;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;if(!this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id,new sheets.WorksheetSetCellValuePermission(unitId,subUnitId).id,new sheets.WorksheetSetCellStylePermission(unitId,subUnitId).id]).every(permission=>permission.value))return!1;const ranges=(_a61=this._selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(selection=>selection.range),selectionRange=ranges==null?void 0:ranges.find(range=>{const transformCoord=getTransformCoord(position.x,position.y,position.scene,position.skeleton),cellPosition=position.skeleton.getCellWithCoordByIndex(range.endRow,range.endColumn),missX=Math.abs(cellPosition.endX-transformCoord.x),missY=Math.abs(cellPosition.endY-transformCoord.y);return missX<=5&&missY<=5});if(!selectionRange)return!0;const{startRow,endRow,startColumn,endColumn}=selectionRange;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_c=(_b=worksheet.getCell(row,col))==null?void 0:_b.selectionProtection)==null?void 0:_c[0];if((permission==null?void 0:permission[R.Edit])===!1||(permission==null?void 0:permission[R.View])===!1)return!1}return!0},"handler")}))}_initRangeMovePermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_MOVE_PERMISSION_CHECK,{handler:__name((_2,_cellInfo)=>{var _a61;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;if(!this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id]).every(permission=>permission.value))return!1;const ranges=(_a61=this._selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(selection=>selection.range),ruleRanges=this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p,c)=>[...p,...c.ranges],[]),permissionLapRanges=ranges==null?void 0:ranges.filter(range=>ruleRanges.some(ruleRange=>core.Rectangle.intersects(ruleRange,range)));return!(permissionLapRanges==null?void 0:permissionLapRanges.some(range=>{var _a62,_b;const{startRow,startColumn,endRow,endColumn}=range;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b=(_a62=worksheet.getCell(row,col))==null?void 0:_a62.selectionProtection)==null?void 0:_b[0];if((permission==null?void 0:permission[R.Edit])===!1)return!0}return!1}))},"handler")}))}_initFreezePermissionInterceptor(){this.disposeWithMe(this._headerFreezeRenderController.interceptor.intercept(this._headerFreezeRenderController.interceptor.getInterceptPoints().FREEZE_PERMISSION_CHECK,{handler:__name((_2,__)=>{var _a61,_b;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);return!(workbook==null?void 0:workbook.getActiveSheet())||!workbook?!1:(_b=(_a61=this._permissionService.getPermissionPoint(new sheets.WorkbookEditablePermission(workbook.getUnitId()).id))==null?void 0:_a61.value)!=null?_b:!1},"handler")}))}},__name(_a37,"SheetPermissionInterceptorCanvasRenderController"),_a37);SheetPermissionInterceptorCanvasRenderController=__decorateClass$l([__decorateParam$l(1,core.IUniverInstanceService),__decorateParam$l(2,core.IPermissionService),__decorateParam$l(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$l(4,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$l(5,core.Inject(exports.HeaderMoveRenderController)),__decorateParam$l(6,ISheetSelectionRenderService),__decorateParam$l(7,core.Inject(exports.HeaderFreezeRenderController)),__decorateParam$l(8,core.Inject(sheets.RangeProtectionCache)),__decorateParam$l(9,core.Optional(exports.HeaderResizeRenderController))],SheetPermissionInterceptorCanvasRenderController);var __defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$k=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$k(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$k(target,key,result),result},"__decorateClass$k"),__decorateParam$k=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$k");const SHEET_PERMISSION_PASTE_PLUGIN="SHEET_PERMISSION_PASTE_PLUGIN";var _a38;let SheetPermissionInterceptorClipboardController=(_a38=class extends core.Disposable{constructor(_univerInstanceService,_selectionManagerService,_localService,_sheetClipboardService,_sheetPermissionCheckController){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._localService=_localService,this._sheetClipboardService=_sheetClipboardService,this._sheetPermissionCheckController=_sheetPermissionCheckController,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:SHEET_PERMISSION_PASTE_PLUGIN,onBeforePaste:__name(pasteTo=>{var _a61,_b,_c;const[ranges]=virtualizeDiscreteRanges([pasteTo.range]).ranges,startRange=(_a61=this._selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!startRange)return!1;const targetRange={startRow:startRange.startRow+ranges.startRow,endRow:startRange.startRow+ranges.endRow,startColumn:startRange.startColumn+ranges.startColumn,endColumn:startRange.startColumn+ranges.endColumn},worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)return!1;const{startRow,endRow,startColumn,endColumn}=targetRange;let hasPermission=!0;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_c=(_b=worksheet.getCell(row,col))==null?void 0:_b.selectionProtection)==null?void 0:_c[0];if((permission==null?void 0:permission[R.Edit])===!1){hasPermission=!1;break}}return hasPermission||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localService.t("permission.dialog.pasteErr")),hasPermission},"onBeforePaste")}))}},__name(_a38,"SheetPermissionInterceptorClipboardController"),_a38);SheetPermissionInterceptorClipboardController=__decorateClass$k([__decorateParam$k(0,core.IUniverInstanceService),__decorateParam$k(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$k(2,core.Inject(core.LocaleService)),__decorateParam$k(3,core.Inject(ISheetClipboardService)),__decorateParam$k(4,core.Inject(sheets.SheetPermissionCheckController))],SheetPermissionInterceptorClipboardController);var __defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$j=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$j(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$j(target,key,result),result},"__decorateClass$j"),__decorateParam$j=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$j");const STATUS_BAR_PERMISSION_CORRECT=core.createInterceptorKey("statusBarPermissionCorrect"),_CalculateValueSet=class _CalculateValueSet{constructor(){__publicField(this,"_sum",0);__publicField(this,"_count",0);__publicField(this,"_countNumber",0);__publicField(this,"_min",Number.POSITIVE_INFINITY);__publicField(this,"_max",Number.NEGATIVE_INFINITY)}add(value){const v=value==null?void 0:value.v,t=value==null?void 0:value.t;v!=null&&(typeof v=="number"&&t!==core.CellValueType.STRING&&(this._sum+=v,this._countNumber++,this._min=Math.min(this._min,v),this._max=Math.max(this._max,v)),this._count++)}getResults(){return{sum:this._sum,count:this._countNumber,countA:this._count,min:this._min,max:this._max}}};__name(_CalculateValueSet,"CalculateValueSet");let CalculateValueSet=_CalculateValueSet;function calculateValues(valueSet){const{sum,count,countA,min,max}=valueSet.getResults();return[{func:engineFormula.FUNCTION_NAMES_STATISTICAL.MAX,value:max},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.MIN,value:min},{func:engineFormula.FUNCTION_NAMES_MATH.SUM,value:sum},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA,value:countA},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT,value:count},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE,value:sum/count}]}__name(calculateValues,"calculateValues");var _a39;exports.StatusBarController=(_a39=class extends core.Disposable{constructor(_univerInstanceService,_selectionManagerService,_statusBarService,_commandService,_numfmtService){super();__publicField(this,"interceptor",new core.InterceptorManager({STATUS_BAR_PERMISSION_CORRECT}));this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._statusBarService=_statusBarService,this._commandService=_commandService,this._numfmtService=_numfmtService,this._init()}_init(){this._registerSelectionListener()}_registerSelectionListener(){const _statisticsHandler=core.debounce(selections=>{var _a61;const primary=(_a61=selections[selections.length-1])==null?void 0:_a61.primary;this._calculateSelection(selections.map(selection=>selection.range),primary)},100);this.disposeWithMe(core.toDisposable(this._selectionManagerService.selectionMoving$.subscribe(selections=>{selections&&_statisticsHandler(selections)}))),this.disposeWithMe(core.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(selections=>{selections&&_statisticsHandler(selections)}))),this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===sheets.SetRangeValuesMutation.id){const selections=this._selectionManagerService.getCurrentSelections();selections&&_statisticsHandler(selections)}}))}_clearResult(){this._statusBarService.setState(null)}getRangeStartEndInfo(range,sheet){return range.rangeType===core.RANGE_TYPE.ALL?{startRow:0,startColumn:0,endRow:sheet.getRowCount()-1,endColumn:sheet.getColumnCount()-1}:range.rangeType===core.RANGE_TYPE.COLUMN?{startRow:0,startColumn:range.startColumn,endRow:sheet.getRowCount()-1,endColumn:range.endColumn}:range.rangeType===core.RANGE_TYPE.ROW?{startRow:range.startRow,startColumn:0,endRow:range.endRow,endColumn:sheet.getColumnCount()-1}:{startRow:range.startRow,startColumn:range.startColumn,endRow:range.endRow,endColumn:range.endColumn}}_calculateSelection(selections,primary){var _a61;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return this._clearResult();const unitId=workbook.getUnitId(),sheet=workbook.getActiveSheet(),sheetId=sheet==null?void 0:sheet.getSheetId();if(!sheetId)return this._clearResult();const sheetData={};if(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getSheets().forEach(sheet2=>{const sheetConfig=sheet2.getConfig();sheetData[sheet2.getSheetId()]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData}}),selections!=null&&selections.length){const realSelections=[];selections.forEach(selection=>{const{startRow:start,endRow:end}=selection;let prev=null;for(let r2=start;r2<=end;r2++)sheet.getRowVisible(r2)?prev===null&&(prev=r2):prev!==null&&(realSelections.push({...selection,startRow:prev,endRow:r2-1}),prev=null);prev!==null&&realSelections.push({...selection,startRow:prev,endRow:end})});const noDuplicate=core.splitIntoGrid(realSelections),calculateValueSet=new CalculateValueSet;for(const range of noDuplicate){const{startRow,startColumn,endColumn,endRow}=this.getRangeStartEndInfo(range,sheet);for(let r2=startRow;r2<=endRow;r2++)for(let c=startColumn;c<=endColumn;c++){const value=sheet.getCell(r2,c);calculateValueSet.add(value)}}const calcResult=calculateValues(calculateValueSet);if(calcResult.every(r2=>r2===void 0))return;let pattern=null;if(primary){const{actualRow,actualColumn}=primary;pattern=(_a61=this._numfmtService.getValue(unitId,sheetId,actualRow,actualColumn))==null?void 0:_a61.pattern}const newState={values:calcResult.filter(r2=>r2!==void 0),pattern};this._statusBarService.setState(newState)}else this._clearResult()}},__name(_a39,"StatusBarController"),_a39);exports.StatusBarController=__decorateClass$j([__decorateParam$j(0,core.IUniverInstanceService),__decorateParam$j(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$j(2,IStatusBarService),__decorateParam$j(3,core.ICommandService),__decorateParam$j(4,core.Inject(sheets.INumfmtService))],exports.StatusBarController);var __defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$i=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$i(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$i(target,key,result),result},"__decorateClass$i"),__decorateParam$i=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$i"),_a40;let SheetPermissionInterceptorFormulaRenderController=(_a40=class extends core.RxDisposable{constructor(_context,_univerInstanceService,_permissionService,_statusBarController,_rangeProtectionCache){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._context=_context,this._univerInstanceService=_univerInstanceService,this._permissionService=_permissionService,this._statusBarController=_statusBarController,this._rangeProtectionCache=_rangeProtectionCache,this._initStatusBarPermissionInterceptor()}_initStatusBarPermissionInterceptor(){this.disposeWithMe(this._statusBarController.interceptor.intercept(this._statusBarController.interceptor.getInterceptPoints().STATUS_BAR_PERMISSION_CORRECT,{priority:100,handler:__name((defaultValue,originValue)=>{var _a61;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return defaultValue!=null?defaultValue:[];const{worksheet,unitId,subUnitId}=target;return((_a61=this._permissionService.getPermissionPoint(new sheets.WorksheetViewPermission(unitId,subUnitId).id))==null?void 0:_a61.value)===!1?originValue.forEach(item=>{const itemValue=item.getArrayValue();itemValue.forEach((row,rowIndex)=>{row.forEach((col,colIndex)=>{itemValue[rowIndex][colIndex]=engineFormula.NullValueObject.create()})})}):originValue.forEach(item=>{const itemValue=item.getArrayValue(),startRow=item.getCurrentRow(),startCol=item.getCurrentColumn();itemValue.forEach((row,rowIndex)=>{row.forEach((col,colIndex)=>{var _a62;if(((_a62=worksheet.getCellRaw(rowIndex+startRow,colIndex+startCol))==null?void 0:_a62.v)===void 0)return;const permission=this._rangeProtectionCache.getCellInfo(unitId,subUnitId,rowIndex+startRow,colIndex+startCol);(permission==null?void 0:permission[R.View])===!1&&(itemValue[rowIndex][colIndex]=engineFormula.NullValueObject.create())})})}),originValue},"handler")}))}},__name(_a40,"SheetPermissionInterceptorFormulaRenderController"),_a40);SheetPermissionInterceptorFormulaRenderController=__decorateClass$i([__decorateParam$i(1,core.IUniverInstanceService),__decorateParam$i(2,core.IPermissionService),__decorateParam$i(3,core.Inject(exports.StatusBarController)),__decorateParam$i(4,core.Inject(sheets.RangeProtectionCache))],SheetPermissionInterceptorFormulaRenderController);const checkRangeValid=__name((injector,permissionRanges,permissionId,unitId,subUnitId)=>{const localeService=injector.get(core.LocaleService),worksheetRuleModel=injector.get(sheets.WorksheetProtectionRuleModel),rangeProtectionRuleModel=injector.get(sheets.RangeProtectionRuleModel);let rangeErrorString="";if(permissionRanges.length===0)rangeErrorString=localeService.t("permission.panel.emptyRangeError");else if(permissionRanges.length>1){let hasLap=!1;for(let i=0;i<permissionRanges.length;i++){for(let j=i+1;j<permissionRanges.length;j++)if(core.Rectangle.intersects(permissionRanges[i],permissionRanges[j])){hasLap=!0;break}if(hasLap)break}hasLap&&(rangeErrorString=localeService.t("permission.panel.rangeOverlapError"))}if(!rangeErrorString){if(worksheetRuleModel.getRule(unitId,subUnitId)&&!permissionId)return rangeErrorString=localeService.t("permission.panel.rangeOverlapOverPermissionError"),rangeErrorString;const lapRule=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.permissionId!==permissionId).find(rule=>rule.ranges.some(ruleRange=>permissionRanges.some(r2=>core.Rectangle.intersects(ruleRange,r2))));(lapRule==null?void 0:lapRule.ranges.find(range=>permissionRanges.some(r2=>core.Rectangle.intersects(range,r2))))&&(rangeErrorString=localeService.t("permission.panel.rangeOverlapOverPermissionError"))}return rangeErrorString===""?void 0:rangeErrorString},"checkRangeValid"),checkRangesIsWholeSheet=__name((ranges,sheet)=>{if(ranges.length!==1)return!1;const range=ranges[0],rowCount=sheet.getRowCount(),colCount=sheet.getColumnCount(),{startRow,endRow,startColumn,endColumn}=range;return startRow===0&&startColumn===0&&endRow===rowCount-1&&endColumn===colCount-1},"checkRangesIsWholeSheet"),generateDefaultRule=__name((injector,fromSheetBar)=>{var _a61,_b;const univerInstanceService=injector.get(core.IUniverInstanceService),selectionManagerService=injector.get(sheets.SheetsSelectionsService),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();let unitType=sheets.UnitObject.SelectRange,ranges=(_b=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range))!=null?_b:[];return fromSheetBar&&(unitType=sheets.UnitObject.Worksheet,ranges=[{startRow:0,startColumn:0,endRow:worksheet.getRowCount()-1,endColumn:worksheet.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL}]),{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),permissionId:"",unitType,description:"",id:"",ranges,editState:sheets.EditStateEnum.OnlyMe,viewState:sheets.ViewStateEnum.OthersCanView}},"generateDefaultRule"),generateRuleByUnitType=__name((injector,rule)=>{const worksheet=injector.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),{unitType}=rule;return unitType===sheets.UnitObject.Worksheet?{...rule,ranges:[{startRow:0,startColumn:0,endRow:worksheet.getRowCount()-1,endColumn:worksheet.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL}]}:rule},"generateRuleByUnitType"),permissionPanelDetailWrapper="univer-permission-panel-detail-wrapper",radioGroupVertical="univer-radio-group-vertical",sheetPermissionDesignPersonPanel="univer-sheet-permission-design-person-panel",sheetPermissionDesignPersonPanelHeader="univer-sheet-permission-design-person-panel-header",sheetPermissionDesignPersonPanelHeaderAdd="univer-sheet-permission-design-person-panel-header-add",sheetPermissionDesignPersonPanelSplit="univer-sheet-permission-design-person-panel-split",sheetPermissionDesignPersonPanelContentItem="univer-sheet-permission-design-person-panel-content-item",sheetPermissionDesignPersonPanelContentItemName="univer-sheet-permission-design-person-panel-content-item-name",sheetPermissionDesignPersonPanelContentItemSelect="univer-sheet-permission-design-person-panel-content-item-select",sheetPermissionDesignPersonPanelContent="univer-sheet-permission-design-person-panel-content",sheetPermissionUserListEmpty$1="univer-sheet-permission-user-list-empty",sheetPermissionUserListEmptyText$1="univer-sheet-permission-user-list-empty-text",sheetPermissionPanelTitle="univer-sheet-permission-panel-title",sheetPermissionPanelFooter="univer-sheet-permission-panel-footer",permissionRangeSelector="univer-permission-range-selector",permissionRangeSelectorError="univer-permission-range-selector-error",sheetPermissionPanelNameInputError="univer-sheet-permission-panel-name-input-error",permissionRangeSelectorErrorText="univer-permission-range-selector-error-text",sheetPermissionPanelNameInputErrorText="univer-sheet-permission-panel-name-input-error-text",styles$5={permissionPanelDetailWrapper,radioGroupVertical,sheetPermissionDesignPersonPanel,sheetPermissionDesignPersonPanelHeader,sheetPermissionDesignPersonPanelHeaderAdd,sheetPermissionDesignPersonPanelSplit,sheetPermissionDesignPersonPanelContentItem,sheetPermissionDesignPersonPanelContentItemName,sheetPermissionDesignPersonPanelContentItemSelect,sheetPermissionDesignPersonPanelContent,sheetPermissionUserListEmpty:sheetPermissionUserListEmpty$1,sheetPermissionUserListEmptyText:sheetPermissionUserListEmptyText$1,sheetPermissionPanelTitle,sheetPermissionPanelFooter,permissionRangeSelector,permissionRangeSelectorError,sheetPermissionPanelNameInputError,permissionRangeSelectorErrorText,sheetPermissionPanelNameInputErrorText},PermissionDetailFooterPart=__name(props=>{const{viewState,editState,permissionId,ranges,rangesErrMsg,desc,oldRule,id}=props,sheetPermissionPanelModel=core.useDependency(SheetPermissionPanelModel),sidebarService=core.useDependency(ui.ISidebarService),authzIoService=core.useDependency(core.IAuthzIoService),localeService=core.useDependency(core.LocaleService),commandService=core.useDependency(core.ICommandService),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),workbook=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();return jsxRuntime.jsxs("div",{className:styles$5.sheetPermissionPanelFooter,children:[jsxRuntime.jsx(design.Button,{type:"primary",onClick:__name(async()=>{if(rangesErrMsg)return;const activeRule={unitId,subUnitId,permissionId,id,viewState,editState,unitType:sheets.UnitObject.SelectRange,ranges,description:desc};checkRangesIsWholeSheet(ranges,worksheet)&&(activeRule.unitType=sheets.UnitObject.Worksheet,activeRule.ranges=[]);let collaborators=sheetPermissionUserManagerService.selectUserList;activeRule.editState===sheets.EditStateEnum.OnlyMe&&(collaborators=[],sheetPermissionUserManagerService.setSelectUserList([]));const scopeObj={read:activeRule.viewState===sheets.ViewStateEnum.OthersCanView?M.AllCollaborator:M.SomeCollaborator,edit:activeRule.editState===sheets.EditStateEnum.DesignedUserCanEdit?M.SomeCollaborator:M.OneSelf};if(activeRule.editState===sheets.EditStateEnum.DesignedUserCanEdit&&collaborators.length===0&&(collaborators=[],scopeObj.edit=M.OneSelf),activeRule.permissionId){const isSameCollaborators=getUserListEqual(collaborators.filter(user=>user.role===S.Editor),sheetPermissionUserManagerService.oldCollaboratorList.filter(user=>user.role===S.Editor)),isSameReadStatus=(oldRule==null?void 0:oldRule.viewState)===activeRule.viewState,isSameEditStatus=(oldRule==null?void 0:oldRule.editState)===activeRule.editState,ruleConfigIsOrigin=activeRule.unitType===(oldRule==null?void 0:oldRule.unitType)&&activeRule.description===oldRule.description&&activeRule.ranges===oldRule.ranges,collaboratorsIsChange=!isSameCollaborators||!isSameReadStatus||!isSameEditStatus;if(ruleConfigIsOrigin&&collaboratorsIsChange)await authzIoService.update({objectType:activeRule.unitType,objectID:activeRule.permissionId,unitID:activeRule.unitId,share:void 0,name:"",strategies:[],scope:scopeObj,collaborators:{collaborators}});else{let newPermissionId=activeRule.permissionId;collaboratorsIsChange&&(activeRule.unitType===sheets.UnitObject.Worksheet?newPermissionId=await authzIoService.create({worksheetObject:{collaborators,unitID:activeRule.unitId,name:"",strategies:[{role:S.Editor,action:R.Edit},{role:S.Reader,action:R.View}],scope:scopeObj},objectType:sheets.UnitObject.Worksheet}):newPermissionId=await authzIoService.create({selectRangeObject:{collaborators,unitID:activeRule.unitId,name:"",scope:scopeObj},objectType:sheets.UnitObject.SelectRange})),commandService.executeCommand(sheets.SetProtectionCommand.id,{rule:{...activeRule,permissionId:newPermissionId},oldRule})}}else if(activeRule.unitType===sheets.UnitObject.Worksheet){const permissionId2=await authzIoService.create({worksheetObject:{collaborators,unitID:activeRule.unitId,name:"",strategies:[{role:S.Editor,action:R.Edit},{role:S.Reader,action:R.View}],scope:scopeObj},objectType:sheets.UnitObject.Worksheet}),{ranges:_range=[],...sheetRule}=activeRule;sheetRule.permissionId=permissionId2,commandService.executeCommand(sheets.AddWorksheetProtectionCommand.id,{rule:sheetRule,unitId:activeRule.unitId})}else if(activeRule.unitType===sheets.UnitObject.SelectRange){const permissionId2=await authzIoService.create({selectRangeObject:{collaborators,unitID:activeRule.unitId,name:"",scope:scopeObj},objectType:sheets.UnitObject.SelectRange});commandService.executeCommand(sheets.AddRangeProtectionCommand.id,{rule:activeRule,permissionId:permissionId2})}const sidebarProps={header:{title:`${localeService.t("permission.panel.title")}`},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail:!1},width:330};sidebarService.open(sidebarProps)},"onClick"),children:localeService.t("permission.button.confirm")}),jsxRuntime.jsx(design.Button,{className:styles$5.sheetPermissionPanelFooterCancel,onClick:__name(()=>{sheetPermissionPanelModel.reset(),sheetPermissionUserManagerService.reset(),sidebarService.close()},"onClick"),children:localeService.t("permission.button.cancel")})]})},"PermissionDetailFooterPart"),PermissionDetailMainPart=__name(props=>{const{ranges,onRangesChange,rangeSelectorRef,desc,onDescChange,rangesErrMsg,isFocusRangeSelector,permissionId,onFocus}=props,componentManager=core.useDependency(ui.ComponentManager),RangeSelector=React.useMemo(()=>componentManager.get(RANGE_SELECTOR_COMPONENT_KEY),[]),univerInstanceService=core.useDependency(core.IUniverInstanceService),localeService=core.useDependency(core.LocaleService),injector=core.useDependency(core.Injector),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),handleRangeChange=__name(rangeText=>{const newRange=rangeText.split(",").map(engineFormula.deserializeRangeWithSheet).map(item=>item.range);if(newRange.some(i=>!core.isValidRange(i)||i.endColumn<i.startColumn||i.endRow<i.startRow))return;const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet2=workbook2==null?void 0:workbook2.getActiveSheet();if(!workbook2||!worksheet2)return;const unitId2=workbook2.getUnitId(),subUnitId2=worksheet2.getSheetId(),transformedRange=newRange.map(range=>{const rowCount=worksheet2.getRowCount(),colCount=worksheet2.getColumnCount();return sheets.setEndForRange(range,rowCount,colCount),range}),rangeErrorString=checkRangeValid(injector,transformedRange,permissionId,unitId2,subUnitId2);onRangesChange(transformedRange,rangeErrorString)},"handleRangeChange");return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(design.FormLayout,{className:styles$5.sheetPermissionPanelTitle,label:localeService.t("permission.panel.protectedRange"),children:RangeSelector&&jsxRuntime.jsx(RangeSelector,{unitId,errorText:rangesErrMsg,subUnitId,initValue:ranges==null?void 0:ranges.map(i=>engineFormula.serializeRange(i)).join(","),onChange:handleRangeChange,onFocus,isFocus:isFocusRangeSelector,actions:rangeSelectorRef.current})}),jsxRuntime.jsx(design.FormLayout,{className:styles$5.sheetPermissionPanelTitle,label:localeService.t("permission.panel.permissionDirection"),children:jsxRuntime.jsx(design.Input,{value:desc,onChange:__name(v=>onDescChange(v),"onChange"),placeholder:localeService.t("permission.panel.permissionDirectionPlaceholder")})})]})},"PermissionDetailMainPart"),SheetPermissionPanelDetail=__name(props=>{var _a61,_b;const{fromSheetBar,rule,oldRule}=props,injector=core.useDependency(core.Injector),activeRule=rule?generateRuleByUnitType(injector,rule):generateDefaultRule(injector,fromSheetBar),[ranges,setRanges]=React.useState(activeRule.ranges),[rangesErrMsg,setRangesErrMsg]=React.useState(()=>checkRangeValid(injector,activeRule.ranges,activeRule.permissionId,activeRule.unitId,activeRule.subUnitId)),[desc,setDesc]=React.useState(activeRule.description),[editState,setEditState]=React.useState((_a61=activeRule.editState)!=null?_a61:sheets.EditStateEnum.OnlyMe),[viewState,setViewState]=React.useState((_b=activeRule.viewState)!=null?_b:sheets.ViewStateEnum.OthersCanView),rangeSelectorActionsRef=React.useRef({}),[isFocusRangeSelector,isFocusRangeSelectorSet]=React.useState(!1);ui.useSidebarClick(e=>{var _a62;const handleOutClick=(_a62=rangeSelectorActionsRef.current)==null?void 0:_a62.handleOutClick;handleOutClick&&handleOutClick(e,()=>isFocusRangeSelectorSet(!1))});const PermissionDetailUserPart2=ui.useComponentsOfPart(UNIVER_SHEET_PERMISSION_USER_PART);return React.useEffect(()=>{const univerInstanceService=injector.get(core.IUniverInstanceService),sidebarService=injector.get(ui.ISidebarService),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return;const subUnitId=workbook.getActiveSheet().getSheetId(),activeSheetSubscribe=workbook.activeSheet$.subscribe(sheet=>{(sheet==null?void 0:sheet.getSheetId())!==subUnitId&&sidebarService.close()});return()=>{activeSheetSubscribe.unsubscribe()}},[]),jsxRuntime.jsxs("div",{className:styles$5.permissionPanelDetailWrapper,children:[jsxRuntime.jsx(PermissionDetailMainPart,{onFocus:__name(()=>isFocusRangeSelectorSet(!0),"onFocus"),permissionId:activeRule.permissionId,ranges,onRangesChange:__name((v,err)=>{setRanges(v),setRangesErrMsg(err)},"onRangesChange"),isFocusRangeSelector,rangesErrMsg,desc,onDescChange:__name(v=>setDesc(v),"onDescChange"),rangeSelectorRef:rangeSelectorActionsRef}),jsxRuntime.jsx(ui.ComponentContainer,{components:PermissionDetailUserPart2,sharedProps:{editState,onEditStateChange:__name(v=>setEditState(v),"onEditStateChange"),viewState,onViewStateChange:__name(v=>setViewState(v),"onViewStateChange"),permissionId:activeRule.permissionId}},"user-part"),jsxRuntime.jsx(PermissionDetailFooterPart,{permissionId:activeRule.permissionId,id:activeRule.id,ranges,rangesErrMsg,desc,viewState,editState,oldRule})]})},"SheetPermissionPanelDetail"),panelListEmptyBase64="data:image/png;base64,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",sheetPermissionListPanelWrapper="univer-sheet-permission-list-panel-wrapper",sheetPermissionListPanelHeader="univer-sheet-permission-list-panel-header",sheetPermissionListPanelHeaderType="univer-sheet-permission-list-panel-header-type",sheetPermissionListPanelHeaderTypeBottom="univer-sheet-permission-list-panel-header-type-bottom",sheetPermissionListPanelHeaderSelect="univer-sheet-permission-list-panel-header-select",sheetPermissionListItemHeaderIcon="univer-sheet-permission-list-item-header-icon",sheetPermissionListItem="univer-sheet-permission-list-item",sheetPermissionListItemHeader="univer-sheet-permission-list-item-header",sheetPermissionListItemHeaderName="univer-sheet-permission-list-item-header-name",sheetPermissionListItemHeaderOperator="univer-sheet-permission-list-item-header-operator",sheetPermissionListItemSplit="univer-sheet-permission-list-item-split",sheetPermissionListItemContentEdit="univer-sheet-permission-list-item-content-edit",sheetPermissionListItemContentView="univer-sheet-permission-list-item-content-view",sheetPermissionListItemContentDesc="univer-sheet-permission-list-item-content-desc",sheetPermissionListEmpty="univer-sheet-permission-list-empty",sheetPermissionListEmptyText="univer-sheet-permission-list-empty-text",sheetPermissionListItemContentTitle="univer-sheet-permission-list-item-content-title",sheetPermissionListItemContentSub="univer-sheet-permission-list-item-content-sub",sheetPermissionPanelAddWrapper="univer-sheet-permission-panel-add-wrapper",sheetPermissionPanelAddButton="univer-sheet-permission-panel-add-button",styles$4={sheetPermissionListPanelWrapper,sheetPermissionListPanelHeader,sheetPermissionListPanelHeaderType,sheetPermissionListPanelHeaderTypeBottom,sheetPermissionListPanelHeaderSelect,sheetPermissionListItemHeaderIcon,sheetPermissionListItem,sheetPermissionListItemHeader,sheetPermissionListItemHeaderName,sheetPermissionListItemHeaderOperator,sheetPermissionListItemSplit,sheetPermissionListItemContentEdit,sheetPermissionListItemContentView,sheetPermissionListItemContentDesc,sheetPermissionListEmpty,sheetPermissionListEmptyText,sheetPermissionListItemContentTitle,sheetPermissionListItemContentSub,sheetPermissionPanelAddWrapper,sheetPermissionPanelAddButton},SheetPermissionPanelList=__name(()=>{var _a61;const[isCurrentSheet,setIsCurrentSheet]=React.useState(!0),[forceUpdateFlag,setForceUpdateFlag]=React.useState(!1),localeService=core.useDependency(core.LocaleService),rangeProtectionRuleModel=core.useDependency(sheets.RangeProtectionRuleModel),worksheetProtectionModel=core.useDependency(sheets.WorksheetProtectionRuleModel),univerInstanceService=core.useDependency(core.IUniverInstanceService),commandService=core.useDependency(core.ICommandService),sidebarService=core.useDependency(ui.ISidebarService),authzIoService=core.useDependency(core.IAuthzIoService),permissionService=core.useDependency(core.IPermissionService),currentUser=core.useDependency(core.UserManagerService).getCurrentUser(),[currentRuleRanges,currentRuleRangesSet]=React.useState([]),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),_sheetRuleRefresh=ui.useObservable(worksheetProtectionModel.ruleRefresh$,""),_rangeRuleRefresh=ui.useObservable(rangeProtectionRuleModel.ruleRefresh$,""),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const unitId=workbook==null?void 0:workbook.getUnitId(),getRuleList=React.useCallback(async isCurrentSheet2=>{var _a62;const worksheet=workbook.getActiveSheet(),unitId2=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),allRangePermissionId=[],allSheetPermissionId=[];workbook.getSheets().forEach(sheet=>{const sheetId=sheet.getSheetId();rangeProtectionRuleModel.getSubunitRuleList(unitId2,sheetId).forEach(rule=>{rule.permissionId&&allRangePermissionId.push(rule.permissionId)});const worksheetPermissionRule=worksheetProtectionModel.getRule(unitId2,sheetId);worksheetPermissionRule!=null&&worksheetPermissionRule.permissionId&&allSheetPermissionId.push(worksheetPermissionRule.permissionId)});const allPermissionId=[...allRangePermissionId,...allSheetPermissionId],allPermissionRule=await authzIoService.list({objectIDs:allPermissionId,unitID:unitId2,actions:sheets.baseProtectionActions}),subUnitPermissionIds=rangeProtectionRuleModel.getSubunitRuleList(unitId2,subUnitId).map(item=>item.permissionId),sheetPermissionId=(_a62=worksheetProtectionModel.getRule(unitId2,subUnitId))==null?void 0:_a62.permissionId;sheetPermissionId&&subUnitPermissionIds.push(sheetPermissionId);const subUnitRuleList=allPermissionRule.filter(item=>{var _a63;return subUnitPermissionIds.includes(item.objectID)||item.objectID===((_a63=worksheetProtectionModel.getRule(unitId2,subUnitId))==null?void 0:_a63.permissionId)});return isCurrentSheet2?subUnitRuleList:allPermissionRule},[]),[ruleList,setRuleList]=React.useState([]);React.useEffect(()=>{const subscription=rxjs.merge(rangeProtectionRuleModel.ruleChange$,worksheetProtectionModel.ruleChange$).subscribe(async()=>{const ruleList2=await getRuleList(isCurrentSheet);setRuleList(ruleList2)});return()=>{subscription.unsubscribe()}},[isCurrentSheet]),React.useEffect(()=>{const subscribe=workbook.activeSheet$.pipe(rxjs.distinctUntilChanged((prevSheet,currSheet)=>(prevSheet==null?void 0:prevSheet.getSheetId())===(currSheet==null?void 0:currSheet.getSheetId()))).subscribe(async()=>{const ruleList2=await getRuleList(isCurrentSheet);setRuleList(ruleList2)});return()=>{subscribe.unsubscribe()}},[isCurrentSheet]),React.useEffect(()=>{__name(async()=>{if(_sheetRuleRefresh||_rangeRuleRefresh){const ruleList2=await getRuleList(!0);setRuleList(ruleList2)}},"getRuleListByRefresh")()},[_sheetRuleRefresh,_rangeRuleRefresh]);const handleDelete=__name(rule=>{const{unitId:unitId2,subUnitId,unitType}=rule;let res;unitType===L.Worksheet?res=commandService.executeCommand(sheets.DeleteWorksheetProtectionCommand.id,{unitId:unitId2,subUnitId,rule}):unitType===L.SelectRange&&(res=commandService.executeCommand(sheets.DeleteRangeProtectionCommand.id,{unitId:unitId2,subUnitId,rule})),res&&(setForceUpdateFlag(!forceUpdateFlag),rule.ranges===currentRuleRanges&¤tRuleRangesSet([]))},"handleDelete");React.useEffect(()=>{sheetPermissionUserManagerService.reset()},[]),useHighlightRange(currentRuleRanges);const allRuleMap=new Map;workbook.getSheets().forEach(sheet=>{const sheetId=sheet.getSheetId();rangeProtectionRuleModel.getSubunitRuleList(unitId,sheetId).forEach(rule=>{allRuleMap.set(rule.permissionId,rule)});const sheetRule=worksheetProtectionModel.getRule(unitId,sheetId);sheetRule&&allRuleMap.set(sheetRule==null?void 0:sheetRule.permissionId,sheetRule)});const handleEdit=__name(rule=>{rule.subUnitId!==workbook.getActiveSheet().getSheetId()&&commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{unitId:rule.unitId,subUnitId:rule.subUnitId});const sidebarProps={header:{title:"permission.panel.title"},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail:!0,rule:core.Tools.deepClone(rule),oldRule:core.Tools.deepClone(rule)},width:330};sidebarService.open(sidebarProps)},"handleEdit"),handleChangeHeaderType=__name(isCurrentSheet2=>{setIsCurrentSheet(isCurrentSheet2)},"handleChangeHeaderType"),hasSetProtectPermission=(_a61=permissionService.getPermissionPoint(new sheets.WorkbookCreateProtectPermission(unitId).id))==null?void 0:_a61.value;return jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListPanelWrapper,children:[jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListPanelHeader,children:[jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListPanelHeaderType,onClick:__name(()=>handleChangeHeaderType(!0),"onClick"),children:[jsxRuntime.jsx("div",{className:clsx({[styles$4.sheetPermissionListPanelHeaderSelect]:isCurrentSheet}),children:localeService.t("permission.panel.currentSheet")}),isCurrentSheet&&jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListPanelHeaderTypeBottom})]}),jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListPanelHeaderType,onClick:__name(()=>handleChangeHeaderType(!1),"onClick"),children:[jsxRuntime.jsx("div",{className:clsx({[styles$4.sheetPermissionListPanelHeaderSelect]:!isCurrentSheet}),children:localeService.t("permission.panel.allSheet")}),!isCurrentSheet&&jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListPanelHeaderTypeBottom})]})]}),(ruleList==null?void 0:ruleList.length)>0?jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListPanelContent,children:ruleList==null?void 0:ruleList.map(item=>{var _a62,_b,_c,_d,_e;const rule=allRuleMap.get(item.objectID);if(!rule)return null;const editAction=item.actions.find(action=>action.action===R.Edit),editPermission=editAction==null?void 0:editAction.allowed,viewAction=item.actions.find(action=>action.action===R.View),viewPermission=viewAction==null?void 0:viewAction.allowed,manageCollaboratorAction=item.actions.find(action=>action.action===R.ManageCollaborator),deleteAction=item.actions.find(action=>action.action===R.Delete),hasManagerPermission=(manageCollaboratorAction==null?void 0:manageCollaboratorAction.allowed)||currentUser.userID===((_a62=item.creator)==null?void 0:_a62.userID),hasDeletePermission=(deleteAction==null?void 0:deleteAction.allowed)||currentUser.userID===((_b=item.creator)==null?void 0:_b.userID);let ruleName="";const targetSheet=workbook.getSheetBySheetId(rule.subUnitId),targetName=targetSheet==null?void 0:targetSheet.getName();if(rule.unitType===L.SelectRange){const ranges=rule.ranges,rangeStr=ranges!=null&&ranges.length?ranges.map(range=>{const v=engineFormula.serializeRange(range);return v==="NaN"?"":v}).filter(r2=>!!r2).join(","):"";ruleName=`${targetName}(${rangeStr})`}else rule.unitType===L.Worksheet&&(ruleName=targetName||"");return jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItem,onMouseMove:__name(()=>{const{subUnitId,unitType}=rule,activeSheet=workbook.getActiveSheet();if(!activeSheet)return!1;const activeSubUnitId=activeSheet.getSheetId();if(subUnitId!==activeSubUnitId)return!1;if(unitType===L.SelectRange){const ranges=rule.ranges||[];ranges!==currentRuleRanges&¤tRuleRangesSet(ranges)}else if(unitType===L.Worksheet){const ranges=[{startRow:0,endRow:activeSheet.getRowCount()-1,startColumn:0,endColumn:activeSheet.getColumnCount()-1}];ranges!==currentRuleRanges&¤tRuleRangesSet(ranges)}},"onMouseMove"),onMouseLeave:__name(()=>currentRuleRangesSet([]),"onMouseLeave"),children:[jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItemHeader,children:[jsxRuntime.jsx(design.Tooltip,{title:ruleName,children:jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListItemHeaderName,children:ruleName})}),(hasManagerPermission||hasDeletePermission)&&jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItemHeaderOperator,children:[hasManagerPermission&&jsxRuntime.jsx(design.Tooltip,{title:localeService.t("permission.panel.edit"),children:jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListItemHeaderIcon,onClick:__name(()=>handleEdit(rule),"onClick"),children:jsxRuntime.jsx(WriteSingle,{})})}),hasDeletePermission&&jsxRuntime.jsx(design.Tooltip,{title:localeService.t("permission.panel.delete"),children:jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListItemHeaderIcon,onClick:__name(()=>handleDelete(rule),"onClick"),children:jsxRuntime.jsx(DeleteSingle,{})})})]})]}),jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListItemSplit}),jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItemContent,children:[jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItemContentEdit,children:[jsxRuntime.jsx(design.Tooltip,{title:(_d=(_c=item.creator)==null?void 0:_c.name)!=null?_d:"",children:jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.Avatar,{src:(_e=item.creator)==null?void 0:_e.avatar,style:{marginRight:6},size:24})})}),jsxRuntime.jsx("span",{className:styles$4.sheetPermissionListItemContentTitle,children:localeService.t("permission.panel.created")}),jsxRuntime.jsx("span",{className:styles$4.sheetPermissionListItemContentSub,children:editPermission?`${localeService.t("permission.panel.iCanEdit")}`:`${localeService.t("permission.panel.iCanNotEdit")}`})]}),jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItemContentView,children:[jsxRuntime.jsx("span",{className:styles$4.sheetPermissionListItemContentTitle,children:localeService.t("permission.panel.viewPermission")}),jsxRuntime.jsx("span",{className:styles$4.sheetPermissionListItemContentSub,children:viewPermission?`${localeService.t("permission.panel.iCanView")}`:`${localeService.t("permission.panel.iCanNotView")}`})]}),rule.description&&jsxRuntime.jsx(design.Tooltip,{title:rule.description,children:jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListItemContentDesc,children:rule.description})})]})]},item.objectID)})}):jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListEmpty,children:[jsxRuntime.jsx("img",{width:240,height:120,src:panelListEmptyBase64,alt:""}),jsxRuntime.jsx("p",{className:styles$4.sheetPermissionListEmptyText,children:localeService.t("permission.dialog.listEmpty")})]}),hasSetProtectPermission&&jsxRuntime.jsx("div",{className:styles$4.sheetPermissionPanelAddWrapper,children:jsxRuntime.jsxs(design.Button,{className:styles$4.sheetPermissionPanelAddButton,type:"primary",onClick:__name(()=>{const sidebarProps={header:{title:`${localeService.t("permission.panel.title")}`},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail:!0},width:330};sidebarService.open(sidebarProps)},"onClick"),children:[jsxRuntime.jsx("div",{children:"+ "}),localeService.t("permission.button.addNewPermission")]})})]})},"SheetPermissionPanelList"),SheetPermissionPanel=__name(({showDetail,fromSheetBar,rule,oldRule})=>{var _a61;const univerInstanceService=core.useDependency(core.IUniverInstanceService),sheetsSelectionsService=core.useDependency(sheets.SheetsSelectionsService);if(!core.useDependency(SheetPermissionPanelModel).getVisible())return null;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return null;const{worksheet}=target,key=((_a61=sheetsSelectionsService.getCurrentSelections())==null?void 0:_a61.map(selection=>selection.range)).reduce((acc,range)=>acc+engineFormula.serializeRangeWithSheet(worksheet.getName(),range),"");return showDetail?jsxRuntime.jsx(SheetPermissionPanelDetail,{fromSheetBar,rule,oldRule},fromSheetBar?"sheet-bar":"normal"):jsxRuntime.jsx(SheetPermissionPanelList,{},key)},"SheetPermissionPanel"),spinContainer="univer-spin-container",spinOverlay="univer-spin-overlay",spinner="univer-spinner",spin="univer-spin",contentBlur="univer-content-blur",styles$3={spinContainer,spinOverlay,spinner,spin,contentBlur},Spin=__name(({loading,children})=>jsxRuntime.jsxs("div",{className:styles$3.spinContainer,children:[loading&&jsxRuntime.jsx("div",{className:styles$3.spinOverlay,children:jsxRuntime.jsx("div",{className:styles$3.spinner})}),jsxRuntime.jsx("div",{className:loading?styles$3.contentBlur:"",children})]}),"Spin"),sheetPermissionDialogWrapper="univer-sheet-permission-dialog-wrapper",sheetPermissionDialogSplit="univer-sheet-permission-dialog-split",sheetPermissionDialogItem="univer-sheet-permission-dialog-item",sheetPermissionUserDialogFooter$1="univer-sheet-permission-user-dialog-footer",sheetPermissionUserDialogFooterConfirm$1="univer-sheet-permission-user-dialog-footer-confirm",sheetPermissionUserDialogButton$1="univer-sheet-permission-user-dialog-button",styles$2={sheetPermissionDialogWrapper,sheetPermissionDialogSplit,sheetPermissionDialogItem,sheetPermissionUserDialogFooter:sheetPermissionUserDialogFooter$1,sheetPermissionUserDialogFooterConfirm:sheetPermissionUserDialogFooterConfirm$1,sheetPermissionUserDialogButton:sheetPermissionUserDialogButton$1},SheetPermissionDialog=__name(()=>{const localeService=core.useDependency(core.LocaleService),univerInstanceService=core.useDependency(core.IUniverInstanceService),authzIoService=core.useDependency(core.IAuthzIoService),worksheetProtectionPointRuleModel=core.useDependency(sheets.WorksheetProtectionPointModel),dialogService=core.useDependency(ui.IDialogService),permissionService=core.useDependency(core.IPermissionService),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const[collaborators,setCollaborators]=React.useState([]),commandService=core.useDependency(core.ICommandService),[loading,setLoading]=React.useState(()=>!!worksheetProtectionPointRuleModel.getRule(workbook.getUnitId(),worksheet.getSheetId())),[permissionMap,setPermissionMap]=React.useState(()=>Object.keys(subUnitPermissionTypeMap).reduce((acc,action)=>(acc[action]={text:localeService.t(`permission.panel.${subUnitPermissionTypeMap[Number(action)]}`),allowed:!0},acc),{}));React.useEffect(()=>{__name(async()=>{const unitId=workbook.getUnitId(),collaborators2=await authzIoService.listCollaborators({objectID:unitId,unitID:unitId});setCollaborators(collaborators2)},"getUserList")()},[]),React.useEffect(()=>{__name(async()=>{const unitId=workbook.getUnitId(),worksheetPointRule=worksheetProtectionPointRuleModel.getRule(unitId,worksheet.getSheetId());if(!worksheetPointRule)return;setLoading(!0);const actions=(await authzIoService.list({unitID:workbook.getUnitId(),objectIDs:[worksheetPointRule.permissionId],actions:defaultWorksheetUnitActionList}))[0].strategies.reduce((p,c)=>(subUnitPermissionTypeMap[c.action]&&(p[c.action]={text:localeService.t(`permission.panel.${subUnitPermissionTypeMap[c.action]}`),allowed:c.role!==S.Owner}),p),{});setPermissionMap(actions),setTimeout(()=>{setLoading(!1)},100)},"getPermissionPoints")()},[]);const handleChangeActionPermission=__name(async()=>{const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet2=workbook2==null?void 0:workbook2.getActiveSheet();if(!worksheet2)throw new Error("No active sheet found");const unitId=workbook2.getUnitId(),subUnitId=worksheet2.getSheetId(),pointRule=worksheetProtectionPointRuleModel.getRule(unitId,subUnitId),actions=Object.keys(permissionMap).map(action=>({action:Number(action),role:permissionMap[action].allowed?S.Editor:S.Owner}));let permissionId=pointRule==null?void 0:pointRule.permissionId;permissionId?authzIoService.update({objectType:L.Worksheet,objectID:permissionId,unitID:unitId,strategies:actions,share:void 0,name:"",scope:{read:M.AllCollaborator,edit:M.AllCollaborator},collaborators:void 0}).then(()=>{sheets.getAllWorksheetPermissionPoint().forEach(F=>{const instance=new F(unitId,subUnitId),unitActionName=instance.subType,action=actions.find(item=>item.action===unitActionName);action&&permissionService.updatePermissionPoint(instance.id,action.role===S.Editor)})}):(permissionId=await authzIoService.create({objectType:L.Worksheet,worksheetObject:{unitID:unitId,collaborators,name:"",strategies:actions,scope:{read:M.AllCollaborator,edit:M.AllCollaborator}}}),commandService.executeCommand(sheets.SetWorksheetPermissionPointsCommand.id,{rule:{permissionId,unitId,subUnitId}}))},"handleChangeActionPermission");return jsxRuntime.jsx(Spin,{loading,children:jsxRuntime.jsxs("div",{className:styles$2.sheetPermissionDialogWrapper,children:[jsxRuntime.jsx("div",{className:styles$2.sheetPermissionDialogSplit}),Object.keys(permissionMap).map(action=>{const actionItem=permissionMap[action],{text,allowed}=actionItem;return jsxRuntime.jsxs("div",{className:styles$2.sheetPermissionDialogItem,children:[jsxRuntime.jsx("div",{children:text}),jsxRuntime.jsx(design.Switch,{defaultChecked:allowed,onChange:__name(()=>{setPermissionMap({...permissionMap,[action]:{...actionItem,allowed:!allowed}})},"onChange")})]},text)}),jsxRuntime.jsx("div",{className:styles$2.sheetPermissionDialogSplit}),jsxRuntime.jsxs("div",{className:styles$2.sheetPermissionUserDialogFooter,children:[jsxRuntime.jsx(design.Button,{className:styles$2.sheetPermissionUserDialogButton,onClick:__name(()=>{dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID)},"onClick"),children:localeService.t("permission.button.cancel")}),jsxRuntime.jsx(design.Button,{type:"primary",onClick:__name(()=>{handleChangeActionPermission(),dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID)},"onClick"),className:clsx(styles$2.sheetPermissionUserDialogFooterConfirm,styles$2.sheetPermissionUserDialogButton),children:localeService.t("permission.button.confirm")})]})]})})},"SheetPermissionDialog"),UserEmptyBase64="data:image/png;base64,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",sheetPermissionUserDialogWrapper="univer-sheet-permission-user-dialog-wrapper",sheetPermissionUserDialogSearchInput="univer-sheet-permission-user-dialog-search-input",sheetPermissionUserList="univer-sheet-permission-user-list",sheetPermissionUserListEmpty="univer-sheet-permission-user-list-empty",sheetPermissionUserListEmptyText="univer-sheet-permission-user-list-empty-text",sheetPermissionUserItem="univer-sheet-permission-user-item",sheetPermissionUserItemName="univer-sheet-permission-user-item-name",sheetPermissionSplit="univer-sheet-permission-split",sheetPermissionUserDialogFooter="univer-sheet-permission-user-dialog-footer",sheetPermissionUserDialogFooterConfirm="univer-sheet-permission-user-dialog-footer-confirm",sheetPermissionUserDialogButton="univer-sheet-permission-user-dialog-button",styles$1={sheetPermissionUserDialogWrapper,sheetPermissionUserDialogSearchInput,sheetPermissionUserList,sheetPermissionUserListEmpty,sheetPermissionUserListEmptyText,sheetPermissionUserItem,sheetPermissionUserItemName,sheetPermissionSplit,sheetPermissionUserDialogFooter,sheetPermissionUserDialogFooterConfirm,sheetPermissionUserDialogButton},SheetPermissionUserDialog=__name(()=>{const[inputValue,setInputValue]=React.useState(""),localeService=core.useDependency(core.LocaleService),dialogService=core.useDependency(ui.IDialogService),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),searchUserList=sheetPermissionUserManagerService.userList.filter(item=>{var _a61;return((_a61=item.subject)==null?void 0:_a61.name.toLocaleLowerCase().includes(inputValue.toLocaleLowerCase()))&&item.role===S.Editor}),[selectUserInfo,setSelectUserInfo]=React.useState(sheetPermissionUserManagerService.selectUserList),handleChangeUser=__name(item=>{if((selectUserInfo==null?void 0:selectUserInfo.findIndex(v=>{var _a61,_b;return((_a61=v.subject)==null?void 0:_a61.userID)===((_b=item.subject)==null?void 0:_b.userID)}))===-1){const select={...item};setSelectUserInfo([...selectUserInfo,select])}else{const newSelectUserInfo=selectUserInfo.filter(v=>{var _a61,_b;return((_a61=v.subject)==null?void 0:_a61.userID)!==((_b=item.subject)==null?void 0:_b.userID)});setSelectUserInfo(newSelectUserInfo)}},"handleChangeUser");return jsxRuntime.jsxs("div",{className:styles$1.sheetPermissionUserDialogWrapper,children:[jsxRuntime.jsx("div",{className:styles$1.sheetPermissionUserDialogSearch,children:jsxRuntime.jsx(design.Input,{placeholder:localeService.t("permission.dialog.search"),className:styles$1.sheetPermissionUserDialogSearchInput,value:inputValue,onChange:__name(v=>setInputValue(v),"onChange")})}),jsxRuntime.jsx("div",{className:styles$1.sheetPermissionUserList,children:(searchUserList==null?void 0:searchUserList.length)>0?jsxRuntime.jsx(jsxRuntime.Fragment,{children:searchUserList==null?void 0:searchUserList.map(item=>{var _a61,_b,_c;return jsxRuntime.jsxs("div",{className:styles$1.sheetPermissionUserItem,onClick:__name(()=>handleChangeUser(item),"onClick"),children:[jsxRuntime.jsx(design.Avatar,{src:(_a61=item.subject)==null?void 0:_a61.avatar,size:24}),jsxRuntime.jsx("div",{className:styles$1.sheetPermissionUserItemName,children:(_b=item.subject)==null?void 0:_b.name}),(selectUserInfo==null?void 0:selectUserInfo.findIndex(v=>{var _a62,_b2;return((_a62=v.subject)==null?void 0:_a62.userID)===((_b2=item.subject)==null?void 0:_b2.userID)}))!==-1&&jsxRuntime.jsx("div",{children:jsxRuntime.jsx(CheckMarkSingle,{})})]},(_c=item.subject)==null?void 0:_c.userID)})}):jsxRuntime.jsxs("div",{className:styles$1.sheetPermissionUserListEmpty,children:[jsxRuntime.jsx("img",{width:240,height:120,src:UserEmptyBase64,alt:""}),jsxRuntime.jsx("p",{className:styles$1.sheetPermissionUserListEmptyText,children:localeService.t("permission.dialog.userEmpty")})]})}),jsxRuntime.jsx("div",{className:styles$1.sheetPermissionSplit}),jsxRuntime.jsxs("div",{className:styles$1.sheetPermissionUserDialogFooter,children:[jsxRuntime.jsx(design.Button,{className:styles$1.sheetPermissionUserDialogButton,onClick:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_USER_DIALOG_ID),"onClick"),children:localeService.t("permission.button.cancel")}),jsxRuntime.jsx(design.Button,{type:"primary",onClick:__name(()=>{sheetPermissionUserManagerService.setSelectUserList(selectUserInfo),dialogService.close(UNIVER_SHEET_PERMISSION_USER_DIALOG_ID)},"onClick"),className:clsx(styles$1.sheetPermissionUserDialogFooterConfirm,styles$1.sheetPermissionUserDialogButton),children:localeService.t("permission.button.confirm")})]})]})},"SheetPermissionUserDialog"),sheetPermissionAlertDialog="univer-sheet-permission-alert-dialog",sheetPermissionAlertDialogTitle="univer-sheet-permission-alert-dialog-title",sheetPermissionAlertDialogButton="univer-sheet-permission-alert-dialog-button",styles={sheetPermissionAlertDialog,sheetPermissionAlertDialogTitle,sheetPermissionAlertDialogButton},AlertDialog=__name(({errorMsg})=>{const localeService=core.useDependency(core.LocaleService),dialogService=core.useDependency(ui.IDialogService);return jsxRuntime.jsxs("div",{className:styles.sheetPermissionAlertDialog,children:[jsxRuntime.jsx("h1",{className:styles.sheetPermissionAlertDialogTitle,children:localeService.t("permission.dialog.alert")}),jsxRuntime.jsx("p",{children:errorMsg||localeService.t("permission.dialog.alertContent")}),jsxRuntime.jsx("div",{className:styles.sheetPermissionAlertDialogButton,children:jsxRuntime.jsx(design.Button,{type:"primary",onClick:__name(()=>{dialogService.close(UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID)},"onClick"),children:localeService.t("permission.button.confirm")})})]})},"AlertDialog"),base64="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",EXTENSION_CAN_VIEW_Z_INDEX$1=25,EXTENSION_CAN_NOT_VIEW_Z_INDEX$1=80,_RangeProtectionRenderExtension=class _RangeProtectionRenderExtension extends engineRender.SheetExtension{constructor(){super();__publicField(this,"_pattern",null);__publicField(this,"_img",new Image);__publicField(this,"renderCache",new Set);this._img.src=base64}clearCache(){this.renderCache.clear()}draw(ctx,_parentScale,spreadsheetSkeleton){const{worksheet}=spreadsheetSkeleton;worksheet&&(ctx.save(),this._pattern||(this._pattern=ctx.createPattern(this._img,"repeat")),this.renderCache.clear(),core.Range.foreach(spreadsheetSkeleton.rowColumnSegment,(row,col)=>{if(!worksheet.getRowVisible(row)||!worksheet.getColVisible(col))return;const{selectionProtection=[]}=worksheet.getCell(row,col)||{};this._pattern&&(ctx.fillStyle=this._pattern,selectionProtection.forEach(config=>{if(config.ruleId&&this.shouldRender(config)){if(this.renderCache.has(config.ruleId))return;this.renderCache.add(config.ruleId),config.ranges.forEach(range=>{const start=spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow,range.startColumn,!1),end=spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow,range.endColumn,!1);ctx.fillRect(start.startX,start.startY,end.endX-start.startX,end.endY-start.startY)})}}))}),ctx.restore())}};__name(_RangeProtectionRenderExtension,"RangeProtectionRenderExtension");let RangeProtectionRenderExtension=_RangeProtectionRenderExtension;const _RangeProtectionCanViewRenderExtension=class _RangeProtectionCanViewRenderExtension extends RangeProtectionRenderExtension{constructor(){super();__publicField(this,"uKey",RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY);__publicField(this,"Z_INDEX",EXTENSION_CAN_VIEW_Z_INDEX$1)}shouldRender(config){return(config==null?void 0:config[R.View])!==!1}};__name(_RangeProtectionCanViewRenderExtension,"RangeProtectionCanViewRenderExtension");let RangeProtectionCanViewRenderExtension=_RangeProtectionCanViewRenderExtension;const _RangeProtectionCanNotViewRenderExtension=class _RangeProtectionCanNotViewRenderExtension extends RangeProtectionRenderExtension{constructor(){super();__publicField(this,"uKey",RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY);__publicField(this,"Z_INDEX",EXTENSION_CAN_NOT_VIEW_Z_INDEX$1)}shouldRender(config){return(config==null?void 0:config[R.View])===!1}};__name(_RangeProtectionCanNotViewRenderExtension,"RangeProtectionCanNotViewRenderExtension");let RangeProtectionCanNotViewRenderExtension=_RangeProtectionCanNotViewRenderExtension;const worksheetProtectionKey="worksheet-protection",EXTENSION_CAN_VIEW_Z_INDEX=25,EXTENSION_CAN_NOT_VIEW_Z_INDEX=80,_WorksheetProtectionRenderExtension=class _WorksheetProtectionRenderExtension extends engineRender.SheetExtension{constructor(){super();__publicField(this,"uKey",worksheetProtectionKey);__publicField(this,"Z_INDEX",EXTENSION_CAN_VIEW_Z_INDEX);__publicField(this,"_pattern");__publicField(this,"_img",new Image);this._img.src=base64}draw(ctx,_parentScale,spreadsheetSkeleton){const{worksheet}=spreadsheetSkeleton;if(!worksheet)return!1;ctx.save(),this._pattern||(this._pattern=ctx.createPattern(this._img,"repeat"));const{startRow,startColumn,endRow,endColumn}=spreadsheetSkeleton.rowColumnSegment,start=spreadsheetSkeleton.getCellWithCoordByIndex(startRow,startColumn,!1),end=spreadsheetSkeleton.getCellWithCoordByIndex(endRow,endColumn,!1),{hasWorksheetRule=!1,selectionProtection=[]}=worksheet.getCell(startRow,startColumn)||{};if(this._pattern){if(selectionProtection.length>0){const cellProtectionConfig=selectionProtection[0];(cellProtectionConfig==null?void 0:cellProtectionConfig[R.View])?this.setZIndex(EXTENSION_CAN_VIEW_Z_INDEX):this.setZIndex(EXTENSION_CAN_NOT_VIEW_Z_INDEX)}ctx.fillStyle=this._pattern,hasWorksheetRule&&ctx.fillRect(start.startX,start.startY,end.endX-start.startX,end.endY-start.startY),ctx.restore()}}setZIndex(zIndex){this.Z_INDEX=zIndex}};__name(_WorksheetProtectionRenderExtension,"WorksheetProtectionRenderExtension");let WorksheetProtectionRenderExtension=_WorksheetProtectionRenderExtension;const PermissionDetailUserPart=__name(props=>{const{editState,onEditStateChange,viewState,onViewStateChange,permissionId}=props,localeService=core.useDependency(core.LocaleService),dialogService=core.useDependency(ui.IDialogService),authzIoService=core.useDependency(core.IAuthzIoService),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),userManagerService=core.useDependency(core.UserManagerService),univerInstanceService=core.useDependency(core.IUniverInstanceService),selectUserList=core.useObservable(sheetPermissionUserManagerService.selectUserList$,sheetPermissionUserManagerService.selectUserList),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return null;const unitId=workbook.getUnitId(),handleAddPerson=__name(async()=>{const userList=await authzIoService.listCollaborators({objectID:unitId,unitID:unitId}),currentUser=userManagerService.getCurrentUser();sheetPermissionUserManagerService.setCanEditUserList(userList.filter(user=>{var _a61;return((_a61=user.subject)==null?void 0:_a61.userID)!==currentUser.userID})),dialogService.open({id:UNIVER_SHEET_PERMISSION_USER_DIALOG_ID,title:{title:""},children:{label:UNIVER_SHEET_PERMISSION_USER_DIALOG},width:280,destroyOnClose:!0,onClose:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_USER_DIALOG_ID),"onClose"),className:"sheet-permission-user-dialog"})},"handleAddPerson");return React.useEffect(()=>{permissionId?__name(async()=>{const selectUserList2=(await authzIoService.listCollaborators({objectID:permissionId,unitID:unitId})).filter(user=>user.role===S.Editor);selectUserList2.length>0&&onEditStateChange(sheets.EditStateEnum.DesignedUserCanEdit),sheetPermissionUserManagerService.setSelectUserList(selectUserList2),sheetPermissionUserManagerService.setOldCollaboratorList(selectUserList2)},"getSelectUserList")():(sheetPermissionUserManagerService.setSelectUserList([]),sheetPermissionUserManagerService.setOldCollaboratorList([]))},[]),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(design.FormLayout,{className:styles$5.sheetPermissionPanelTitle,label:localeService.t("permission.panel.editPermission"),children:jsxRuntime.jsxs(design.RadioGroup,{value:editState,onChange:__name(v=>onEditStateChange(v),"onChange"),className:styles$5.radioGroupVertical,children:[jsxRuntime.jsx(design.Radio,{value:sheets.EditStateEnum.OnlyMe,children:jsxRuntime.jsx("span",{className:styles$5.text,children:localeService.t("permission.panel.onlyICanEdit")})}),jsxRuntime.jsx(design.Radio,{value:sheets.EditStateEnum.DesignedUserCanEdit,children:jsxRuntime.jsx("span",{className:styles$5.text,children:localeService.t("permission.panel.designedUserCanEdit")})})]})}),editState===sheets.EditStateEnum.DesignedUserCanEdit&&jsxRuntime.jsxs("div",{className:styles$5.sheetPermissionDesignPersonPanel,children:[jsxRuntime.jsxs("div",{className:styles$5.sheetPermissionDesignPersonPanelHeader,children:[jsxRuntime.jsx("span",{children:localeService.t("permission.panel.designedPerson")}),jsxRuntime.jsx("span",{className:styles$5.sheetPermissionDesignPersonPanelHeaderAdd,onClick:handleAddPerson,children:localeService.t("permission.panel.addPerson")})]}),jsxRuntime.jsx("div",{className:styles$5.sheetPermissionDesignPersonPanelSplit}),jsxRuntime.jsx("div",{className:styles$5.sheetPermissionDesignPersonPanelContent,children:(selectUserList==null?void 0:selectUserList.length)>0?selectUserList.map(item=>{var _a61,_b,_c;return jsxRuntime.jsxs("div",{className:styles$5.sheetPermissionDesignPersonPanelContentItem,children:[jsxRuntime.jsx(design.Avatar,{size:24,src:(_a61=item.subject)==null?void 0:_a61.avatar}),jsxRuntime.jsx("span",{className:styles$5.sheetPermissionDesignPersonPanelContentItemName,children:(_b=item.subject)==null?void 0:_b.name}),jsxRuntime.jsx(design.Select,{className:styles$5.sheetPermissionDesignPersonPanelContentItemSelect,value:"edit",onChange:__name(v=>{v==="delete"&&sheetPermissionUserManagerService.setSelectUserList(selectUserList.filter(i=>{var _a62,_b2;return((_a62=i.subject)==null?void 0:_a62.userID)!==((_b2=item.subject)==null?void 0:_b2.userID)}))},"onChange"),options:[{label:`${localeService.t("permission.panel.canEdit")}`,value:"edit"},{label:`${localeService.t("permission.panel.delete")}`,value:"delete"}]})]},(_c=item.subject)==null?void 0:_c.userID)}):jsxRuntime.jsxs("div",{className:styles$5.sheetPermissionUserListEmpty,children:[jsxRuntime.jsx("img",{width:240,height:120,src:UserEmptyBase64,alt:""}),jsxRuntime.jsx("p",{className:styles$5.sheetPermissionUserListEmptyText,children:localeService.t("permission.dialog.userEmpty")})]})})]}),jsxRuntime.jsx(design.FormLayout,{className:styles$5.sheetPermissionPanelTitle,label:localeService.t("permission.panel.viewPermission"),children:jsxRuntime.jsxs(design.RadioGroup,{value:viewState,onChange:__name(v=>onViewStateChange(v),"onChange"),className:styles$5.radioGroupVertical,children:[jsxRuntime.jsx(design.Radio,{value:sheets.ViewStateEnum.OthersCanView,children:jsxRuntime.jsx("span",{className:styles$5.text,children:localeService.t("permission.panel.othersCanView")})}),jsxRuntime.jsx(design.Radio,{value:sheets.ViewStateEnum.NoOneElseCanView,children:jsxRuntime.jsx("span",{className:styles$5.text,children:localeService.t("permission.panel.noOneElseCanView")})})]})})]})},"PermissionDetailUserPart");var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$h(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$h(target,key,result),result},"__decorateClass$h"),__decorateParam$h=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$h"),_a41;let SheetPermissionRenderManagerController=(_a41=class extends core.Disposable{constructor(_injector,_componentManager,_uiPartsService){super(),this._injector=_injector,this._componentManager=_componentManager,this._uiPartsService=_uiPartsService,this._init()}_init(){this._initComponents(),this._initUiPartComponents()}_initComponents(){[[permissionMenuIconKey,ProtectSingle],[permissionDeleteIconKey,DeleteSingle],[permissionEditIconKey,WriteSingle],[permissionCheckIconKey,CheckMarkSingle],[permissionLockIconKey,LockSingle],[UNIVER_SHEET_PERMISSION_PANEL,SheetPermissionPanel],[UNIVER_SHEET_PERMISSION_USER_DIALOG,SheetPermissionUserDialog],[UNIVER_SHEET_PERMISSION_DIALOG,SheetPermissionDialog],[UNIVER_SHEET_PERMISSION_ALERT_DIALOG,AlertDialog]].forEach(([key,component])=>{this.disposeWithMe(this._componentManager.register(key,component))})}_initUiPartComponents(){var _a61;const config=this._injector.get(core.IConfigService).getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(_a61=config==null?void 0:config.customComponents)!=null&&_a61.has(UNIVER_SHEET_PERMISSION_USER_PART)||this.disposeWithMe(this._uiPartsService.registerComponent(UNIVER_SHEET_PERMISSION_USER_PART,()=>core.connectInjector(PermissionDetailUserPart,this._injector)))}},__name(_a41,"SheetPermissionRenderManagerController"),_a41);SheetPermissionRenderManagerController=__decorateClass$h([__decorateParam$h(0,core.Inject(core.Injector)),__decorateParam$h(1,core.Inject(ui.ComponentManager)),__decorateParam$h(2,core.Inject(ui.IUIPartsService))],SheetPermissionRenderManagerController);var _a42;let SheetPermissionRenderController=(_a42=class extends core.Disposable{constructor(_context,_rangeProtectionRuleModel,_sheetSkeletonManagerService,_permissionService,_configService){var _a61;super();__publicField(this,"_rangeProtectionCanViewRenderExtension",new RangeProtectionCanViewRenderExtension);__publicField(this,"_rangeProtectionCanNotViewRenderExtension",new RangeProtectionCanNotViewRenderExtension);this._context=_context,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._permissionService=_permissionService,this._configService=_configService;const config=this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(_a61=config==null?void 0:config.customComponents)!=null&&_a61.has(UNIVER_SHEET_PERMISSION_BACKGROUND)||(this._initRender(),this._initSkeleton(),this._rangeProtectionRuleModel.ruleChange$.subscribe(info=>{var _a62,_b;((_a62=info.oldRule)!=null&&_a62.id&&this._rangeProtectionCanViewRenderExtension.renderCache.has(info.oldRule.id)||this._rangeProtectionCanViewRenderExtension.renderCache.has(info.rule.id))&&this._rangeProtectionCanViewRenderExtension.clearCache(),((_b=info.oldRule)!=null&&_b.id&&this._rangeProtectionCanNotViewRenderExtension.renderCache.has(info.oldRule.id)||this._rangeProtectionCanNotViewRenderExtension.renderCache.has(info.rule.id))&&this._rangeProtectionCanNotViewRenderExtension.clearCache()}))}_initRender(){const spreadsheetRender=this._context.mainComponent;spreadsheetRender&&(spreadsheetRender.getExtensionByKey(RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY)||spreadsheetRender.register(this._rangeProtectionCanViewRenderExtension),spreadsheetRender.getExtensionByKey(RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY)||spreadsheetRender.register(this._rangeProtectionCanNotViewRenderExtension))}_initSkeleton(){const markDirtySkeleton=__name(()=>{var _a61;this._sheetSkeletonManagerService.reCalculate(),(_a61=this._context.mainComponent)==null||_a61.makeDirty()},"markDirtySkeleton");this.disposeWithMe(rxjs.merge(this._permissionService.permissionPointUpdate$.pipe(rxjs.throttleTime(300,void 0,{trailing:!0})),this._rangeProtectionRuleModel.rangeRuleInitStateChange$,this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(markDirtySkeleton))}},__name(_a42,"SheetPermissionRenderController"),_a42);SheetPermissionRenderController=__decorateClass$h([__decorateParam$h(1,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$h(2,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$h(3,core.IPermissionService),__decorateParam$h(4,core.IConfigService)],SheetPermissionRenderController);var _a43;let WorksheetProtectionRenderController=(_a43=class extends core.Disposable{constructor(_context,_renderManagerService,_univerInstanceService,_sheetSkeletonManagerService,_worksheetProtectionRuleModel,_configService){var _a61;super();__publicField(this,"_worksheetProtectionRenderExtension",new WorksheetProtectionRenderExtension);this._context=_context,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._worksheetProtectionRuleModel=_worksheetProtectionRuleModel,this._configService=_configService;const config=this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(_a61=config==null?void 0:config.customComponents)!=null&&_a61.has(UNIVER_SHEET_PERMISSION_BACKGROUND)||(this._initRender(),this._initSkeleton())}_initRender(){const renderId=this._context.unitId,render2=renderId&&this._renderManagerService.getRenderById(renderId),spreadsheetRender=render2&&render2.mainComponent;spreadsheetRender&&(spreadsheetRender.getExtensionByKey(worksheetProtectionKey)||spreadsheetRender.register(this._worksheetProtectionRenderExtension))}_initSkeleton(){const markDirtySkeleton=__name(()=>{var _a61;this._sheetSkeletonManagerService.reCalculate(),(_a61=this._context.mainComponent)==null||_a61.makeDirty()},"markDirtySkeleton");this.disposeWithMe(rxjs.merge(this._worksheetProtectionRuleModel.worksheetRuleInitStateChange$).pipe().subscribe(markDirtySkeleton))}},__name(_a43,"WorksheetProtectionRenderController"),_a43);WorksheetProtectionRenderController=__decorateClass$h([__decorateParam$h(1,core.Inject(engineRender.IRenderManagerService)),__decorateParam$h(2,core.Inject(core.IUniverInstanceService)),__decorateParam$h(3,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$h(4,core.Inject(sheets.WorksheetProtectionRuleModel)),__decorateParam$h(5,core.Inject(core.IConfigService))],WorksheetProtectionRenderController);var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$g(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$g(target,key,result),result},"__decorateClass$g"),__decorateParam$g=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$g"),_a44;let FormatPainterRenderController=(_a44=class extends core.Disposable{constructor(_context,_formatPainterService){super(),this._context=_context,this._formatPainterService=_formatPainterService,this._initialize()}_initialize(){this._bindFormatPainterStatus()}_bindFormatPainterStatus(){this.disposeWithMe(core.toDisposable(this._formatPainterService.status$.subscribe(status=>{const scene=this._context.scene;scene&&(status!==FormatPainterStatus.OFF?scene.setDefaultCursor(engineRender.CURSOR_TYPE.CELL):scene.setDefaultCursor(engineRender.CURSOR_TYPE.DEFAULT))})))}},__name(_a44,"FormatPainterRenderController"),_a44);FormatPainterRenderController=__decorateClass$g([__decorateParam$g(1,IFormatPainterService)],FormatPainterRenderController);var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$f(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$f(target,key,result),result},"__decorateClass$f"),__decorateParam$f=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$f"),_a45;let SheetContextMenuMobileRenderController=(_a45=class extends core.Disposable{constructor(_context,_layoutService,_contextMenuService,_selectionManagerService,_selectionRenderService,_sheetSkeletonManagerService){super(),this._context=_context,this._layoutService=_layoutService,this._contextMenuService=_contextMenuService,this._selectionManagerService=_selectionManagerService,this._selectionRenderService=_selectionRenderService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._init()}_init(){let listenToSelectionChangeEvent=!1;this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(()=>listenToSelectionChangeEvent=!0)),this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(selectionWithStyleList=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton;if(!skeleton||!selectionWithStyleList||listenToSelectionChangeEvent===!1)return;listenToSelectionChangeEvent=!1;const selectionRangeWithStyle=selectionWithStyleList[0];if(!selectionRangeWithStyle.primary)return;const selectionWithCoord=attachSelectionWithCoord(selectionRangeWithStyle,skeleton),rangeType=selectionRangeWithStyle.range.rangeType,{scene}=this._context,viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),viewportScrollX=(viewMain==null?void 0:viewMain.viewportScrollX)||0,viewportScrollY=(viewMain==null?void 0:viewMain.viewportScrollY)||0;let clientX=0,clientY=0;const rowHeaderWidth=skeleton.rowHeaderWidth,canvasRect=this._layoutService.getContentElement().getBoundingClientRect();switch(rangeType){case core.RANGE_TYPE.NORMAL:clientX=selectionWithCoord.rangeWithCoord.startX+canvasRect.left-viewportScrollX,clientY=selectionWithCoord.rangeWithCoord.endY+canvasRect.top-viewportScrollY;break;case core.RANGE_TYPE.COLUMN:clientX=selectionWithCoord.rangeWithCoord.startX+canvasRect.left-viewportScrollX,clientY=Math.min(canvasRect.height/2,selectionWithCoord.rangeWithCoord.endY)+40;break;case core.RANGE_TYPE.ROW:clientX=(canvasRect.width-rowHeaderWidth)/2+20,clientY=selectionWithCoord.rangeWithCoord.endY+canvasRect.top-viewportScrollY;break;case core.RANGE_TYPE.ALL:clientX=selectionWithCoord.rangeWithCoord.startX+canvasRect.left,clientY=selectionWithCoord.rangeWithCoord.startY+canvasRect.top;break;default:clientX=selectionWithCoord.rangeWithCoord.startX+canvasRect.left-viewportScrollX,clientY=selectionWithCoord.rangeWithCoord.endY+canvasRect.top-viewportScrollY;break}clientX=core.Tools.clamp(clientX,rowHeaderWidth,canvasRect.width),clientY=core.Tools.clamp(clientY,canvasRect.top,canvasRect.height),this._contextMenuService.triggerContextMenu({clientX,clientY,preventDefault:__name(()=>{},"preventDefault"),stopPropagation:__name(()=>{},"stopPropagation")},ui.ContextMenuPosition.MAIN_AREA)}))}},__name(_a45,"SheetContextMenuMobileRenderController"),_a45);SheetContextMenuMobileRenderController=__decorateClass$f([__decorateParam$f(1,ui.ILayoutService),__decorateParam$f(2,ui.IContextMenuService),__decorateParam$f(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$f(4,ISheetSelectionRenderService),__decorateParam$f(5,core.Inject(exports.SheetSkeletonManagerService))],SheetContextMenuMobileRenderController);var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$e(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$e(target,key,result),result},"__decorateClass$e"),__decorateParam$e=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$e");const SHEET_NAVIGATION_COMMANDS=[MoveSelectionCommand.id,MoveSelectionEnterAndTabCommand.id];var _a46;let MobileSheetsScrollRenderController=(_a46=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_renderManagerService,_selectionManagerService,_scrollManagerService,_univerInstanceService){super(),this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._renderManagerService=_renderManagerService,this._selectionManagerService=_selectionManagerService,this._scrollManagerService=_scrollManagerService,this._univerInstanceService=_univerInstanceService,this._init()}scrollToRange(range){let{endRow,endColumn,startColumn,startRow}=range;const bounding=this._getViewportBounding();if(range.rangeType===core.RANGE_TYPE.ROW?(startColumn=0,endColumn=0):range.rangeType===core.RANGE_TYPE.COLUMN&&(startRow=0,endRow=0),bounding){const row=bounding.startRow>endRow?startRow:endRow,col=bounding.startColumn>endColumn?startColumn:endColumn;return this._scrollToCell(row,col)}else return this._scrollToCell(startRow,startColumn)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._initPointerScrollEvent(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(SHEET_NAVIGATION_COMMANDS.includes(command.id))this._scrollToSelection();else if(command.id===sheets.ScrollToCellOperation.id){const param=command.params;this.scrollToRange(param)}else if(command.id===ExpandSelectionCommand.id){const param=command.params;this._scrollToSelectionForExpand(param)}}))}_scrollToSelectionForExpand(param){setTimeout(()=>{const selection=this._selectionManagerService.getCurrentLastSelection();if(selection==null)return;const{startRow,startColumn,endRow,endColumn}=selection.range,bounds=this._getViewportBounding();if(bounds==null)return;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;startRow>viewportStartRow?row=endRow:endRow<viewportEndRow?row=startRow:row=viewportStartRow,startColumn>viewportStartColumn?column=endColumn:endColumn<viewportEndColumn?column=startColumn:column=viewportStartColumn,param.direction===core.Direction.DOWN?row=endRow:param.direction===core.Direction.UP?row=startRow:param.direction===core.Direction.RIGHT?column=endColumn:param.direction===core.Direction.LEFT&&(column=startColumn),this._scrollToCell(row,column)},0)}_getFreeze(){var _a61;const snapshot=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton.getWorksheetConfig();if(snapshot!=null)return snapshot.freeze}_initScrollEventListener(){const{scene}=this._context;if(scene==null)return;const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);viewportMain&&(this.disposeWithMe(core.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(rawScrollInfo=>{var _a61;if(rawScrollInfo==null){viewportMain.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(!skeleton)return;const{sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY}=rawScrollInfo,{startX,startY}=skeleton.getCellWithCoordByIndex(sheetViewStartRow,sheetViewStartColumn,!1),viewportScrollX=startX+offsetX,viewportScrollY=startY+offsetY;viewportMain.scrollToViewportPos({viewportScrollX,viewportScrollY})}))),this.disposeWithMe(viewportMain.onScrollAfter$.subscribeEvent(scrollAfterParam=>{var _a61;if(!scrollAfterParam)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX,viewportScrollY,scrollX,scrollY}=scrollAfterParam,{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY),scrollInfo={sheetViewStartRow:row,sheetViewStartColumn:column,offsetX:columnOffset,offsetY:rowOffset};this._scrollManagerService.setScrollStateToCurrSheet(scrollInfo),this._scrollManagerService.validViewportScrollInfo$.next({...scrollInfo,scrollX,scrollY,viewportScrollX,viewportScrollY})})),this.disposeWithMe(viewportMain.onScrollByBar$.subscribeEvent(param=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null||param.isTrigger===!1)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX=0,viewportScrollY=0}=param,freeze=this._getFreeze(),{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY);this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:row+((freeze==null?void 0:freeze.ySplit)||0),sheetViewStartColumn:column+((freeze==null?void 0:freeze.xSplit)||0),offsetX:columnOffset,offsetY:rowOffset})})))}_initSkeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(param=>{if(param==null)return;const scrollParam={unitId:param.unitId,sheetId:param.sheetId};this._scrollManagerService.setSearchParam(scrollParam);const sheetObject=this._getSheetObject();if(!sheetObject)return;const viewportMain=sheetObject.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),currScrollInfo=this._scrollManagerService.getScrollStateByParam(scrollParam),{viewportScrollX,viewportScrollY}=this._scrollManagerService.calcViewportScrollFromRowColOffset(currScrollInfo);viewportMain&&(currScrollInfo?(viewportMain.viewportScrollX=viewportScrollX,viewportMain.viewportScrollY=viewportScrollY):(viewportMain.viewportScrollX=0,viewportMain.viewportScrollY=0),this._updateSceneSize(param))})))}_initPointerScrollEvent(){const sheetObject=this._getSheetObject();if(!sheetObject)return;const scrollManagerService=this._scrollManagerService,scene=sheetObject.scene,spreadsheet=sheetObject.spreadsheet,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),lastPointerPos={x:0,y:0};let _pointerScrolling=!1;const velocity={x:0,y:0},deceleration=.95;let scrollInertiaAnimationID=null;const pointerScrollInertia=__name(()=>{if(!viewportMain)return;velocity.x*=deceleration,velocity.y*=deceleration,lastPointerPos.x+=velocity.x,lastPointerPos.y+=velocity.y;const offsetX=velocity.x,offsetY=velocity.y;(offsetY!==0||offsetX!==0)&&this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetY,offsetX}),Math.abs(velocity.x)>1||Math.abs(velocity.y)>1?scrollInertiaAnimationID=requestAnimationFrame(pointerScrollInertia):scrollInertiaAnimationID=null},"pointerScrollInertia"),cancelInertiaAnimation=__name(()=>{cancelAnimationFrame(scrollInertiaAnimationID),scrollInertiaAnimationID=null},"cancelInertiaAnimation");spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{cancelInertiaAnimation(),viewportMain&&(lastPointerPos.x=evt.offsetX,lastPointerPos.y=evt.offsetY,_pointerScrolling=!0,state.stopPropagation())}),spreadsheet.onPointerMove$.subscribeEvent((evt,state)=>{if(!_pointerScrolling||!viewportMain)return;const e=evt,deltaX=-(e.offsetX-lastPointerPos.x),deltaY=-(e.offsetY-lastPointerPos.y);velocity.x=-(e.offsetX-lastPointerPos.x),velocity.y=-(e.offsetY-lastPointerPos.y);const offsetX=deltaX,offsetY=deltaY;(deltaX!==0||deltaY!==0)&&(offsetY!==0||offsetX!==0)&&this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetY,offsetX}),scrollManagerService.getCurrentScrollState(),lastPointerPos.x=e.offsetX,lastPointerPos.y=e.offsetY,state.stopPropagation()}),spreadsheet.onPointerUp$.subscribeEvent(_evt=>{_pointerScrolling=!1,scrollInertiaAnimationID=requestAnimationFrame(pointerScrollInertia)}),spreadsheet.onPointerLeave$.subscribeEvent(()=>{_pointerScrolling=!1}),spreadsheet.onPointerOut$.subscribeEvent(()=>{_pointerScrolling=!1}),scene.onPointerOut$.subscribeEvent(()=>{_pointerScrolling=!1}),scene.onPointerCancel$.subscribeEvent(()=>{_pointerScrolling=!1})}_updateSceneSize(param){var _a61;if(param==null)return;const{unitId}=this._context,{skeleton}=param,scene=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.scene;if(skeleton==null||scene==null)return;const{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const zoomRatio=worksheet.getZoomRatio()||1;scene==null||scene.setScaleValue(zoomRatio,zoomRatio),scene==null||scene.transformByState({width:rowHeaderWidthAndMarginLeft+columnTotalWidth,height:columnHeaderHeightAndMarginTop+rowTotalHeight})}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_scrollToSelectionByDirection(range){const bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;const{startRow,startColumn,endRow,endColumn}=range;startRow>=viewportStartRow&&(row=endRow),endRow<=viewportEndRow&&(row=startRow),startColumn>=viewportStartColumn&&(column=endColumn),endColumn<=viewportEndColumn&&(column=startColumn),this._scrollToCell(row,column)}_scrollToSelection(targetIsActualRowAndColumn=!0){const selection=this._selectionManagerService.getCurrentLastSelection();if(selection==null)return;const{startRow,startColumn,actualRow,actualColumn}=selection.primary,selectionStartRow=targetIsActualRowAndColumn?actualRow:startRow,selectionStartColumn=targetIsActualRowAndColumn?actualColumn:startColumn;this._scrollToCell(selectionStartRow,selectionStartColumn)}_getViewportBounding(){var _a61,_b;const scene=(_a61=this._getSheetObject())==null?void 0:_a61.scene;if(scene==null)return;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null)return;const skeleton=(_b=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_b.skeleton;if(skeleton!=null)return skeleton.getRangeByViewport(viewport.calcViewportInfo())}_scrollToCell(row,column){var _a61,_b,_c,_d;const{rowHeightAccumulation,columnWidthAccumulation}=(_b=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton)!=null?_b:{};if(rowHeightAccumulation==null||columnWidthAccumulation==null)return!1;const scene=(_c=this._getSheetObject())==null?void 0:_c.scene;if(scene==null)return!1;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null||((_d=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_d.skeleton)==null)return!1;const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return!1;const{startColumn:freezeStartColumn,startRow:freezeStartRow,ySplit:freezeYSplit,xSplit:freezeXSplit}=worksheet.getFreeze(),bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let startSheetViewRow,startSheetViewColumn;if(row>=freezeStartRow&&column>=freezeStartColumn-freezeXSplit&&(row<=viewportStartRow&&(startSheetViewRow=row),row>=viewportEndRow)){const minRowAccumulation=rowHeightAccumulation[row]-viewport.height;for(let r2=viewportStartRow;r2<=row;r2++)if(rowHeightAccumulation[r2]>=minRowAccumulation){startSheetViewRow=r2+1;break}}if(column>=freezeStartColumn&&row>=freezeStartRow-freezeYSplit&&(column<=viewportStartColumn&&(startSheetViewColumn=column),column>=viewportEndColumn)){const minColumnAccumulation=columnWidthAccumulation[column]-viewport.width;for(let c=viewportStartColumn;c<=column;c++)if(columnWidthAccumulation[c]>=minColumnAccumulation){startSheetViewColumn=c+1;break}}if(startSheetViewRow===void 0&&startSheetViewColumn===void 0)return!1;const{offsetX,offsetY}=this._scrollManagerService.getCurrentScrollState()||{};return this._commandService.syncExecuteCommand(ScrollCommand.id,{sheetViewStartRow:startSheetViewRow,sheetViewStartColumn:startSheetViewColumn,offsetX:startSheetViewColumn===void 0?offsetX:0,offsetY:startSheetViewRow===void 0?offsetY:0})}},__name(_a46,"MobileSheetsScrollRenderController"),_a46);MobileSheetsScrollRenderController=__decorateClass$e([__decorateParam$e(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$e(2,core.ICommandService),__decorateParam$e(3,engineRender.IRenderManagerService),__decorateParam$e(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$e(5,core.Inject(exports.SheetScrollManagerService)),__decorateParam$e(6,core.IUniverInstanceService)],MobileSheetsScrollRenderController);const PRINTING_RANGE=core.createInterceptorKey("PRINTING_RANGE"),PRINTING_COMPONENT_COLLECT=core.createInterceptorKey("PRINTING_COMPONENT_COLLECT"),_SheetPrintInterceptorService=class _SheetPrintInterceptorService extends core.Disposable{constructor(){super();__publicField(this,"interceptor",new core.InterceptorManager({PRINTING_RANGE,PRINTING_COMPONENT_COLLECT}));this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().PRINTING_RANGE,{priority:-1,handler:__name(_value=>_value,"handler")})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{priority:-1,handler:__name(_value=>_value,"handler")}))}};__name(_SheetPrintInterceptorService,"SheetPrintInterceptorService");let SheetPrintInterceptorService=_SheetPrintInterceptorService;const _MobileSelectionControl=class _MobileSelectionControl extends SelectionControl{constructor(_scene,_zIndex,_themeService,options){super(_scene,_zIndex,_themeService,options);__publicField(this,"_fillControlTopLeft");__publicField(this,"_fillControlBottomRight");__publicField(this,"_rangeType",core.RANGE_TYPE.NORMAL);this._scene=_scene,this._zIndex=_zIndex,this._themeService=_themeService,this._rangeType=(options==null?void 0:options.rangeType)||core.RANGE_TYPE.NORMAL,this.initControlPoints()}initControlPoints(){const defaultStyle=this.currentStyle,expandCornerSize=defaultStyle.expandCornerSize||0,expandCornerInnerSize=(defaultStyle.expandCornerSize||0)/4,AutofillStrokeWidth=defaultStyle.autofillStrokeWidth||0,stroke=defaultStyle.stroke,AutofillStroke=defaultStyle.autofillStroke,zIndex=this.zIndex;this._fillControlTopLeft=new engineRender.Rect(SELECTION_MANAGER_KEY.fillTopLeft+zIndex,{zIndex:zIndex+2,width:expandCornerSize,height:expandCornerSize,radius:expandCornerSize/2,visualWidth:expandCornerInnerSize,visualHeight:expandCornerInnerSize,strokeWidth:AutofillStrokeWidth}),this._fillControlBottomRight=new engineRender.Rect(SELECTION_MANAGER_KEY.fillBottomRight+zIndex,{zIndex:zIndex+2,width:expandCornerSize,height:expandCornerSize,radius:expandCornerSize/2,visualHeight:expandCornerInnerSize,visualWidth:expandCornerInnerSize,strokeWidth:AutofillStrokeWidth});const fillProps={fill:stroke,stroke:AutofillStroke,strokeScaleEnabled:!1};this._fillControlTopLeft.setProps({...fillProps}),this._fillControlBottomRight.setProps({...fillProps});const objs=[this._fillControlTopLeft,this._fillControlBottomRight];switch(this._rangeType){case core.RANGE_TYPE.ROW:this.rowHeaderGroup.addObjects(...objs);break;case core.RANGE_TYPE.COLUMN:this.columnHeaderGroup.addObjects(...objs);break;case core.RANGE_TYPE.NORMAL:this.selectionShapeGroup.addObjects(...objs)}this.getScene().addObjects(objs,SHEET_COMPONENT_SELECTION_LAYER_INDEX)}get fillControlTopLeft(){return this._fillControlTopLeft}set fillControlTopLeft(value){this._fillControlTopLeft=value}get fillControlBottomRight(){return this._fillControlBottomRight}set fillControlBottomRight(value){this._fillControlBottomRight=value}get rangeType(){return this._rangeType}set rangeType(value){this._rangeType=value}dispose(){var _a61,_b;(_a61=this._fillControlBottomRight)==null||_a61.dispose(),(_b=this._fillControlTopLeft)==null||_b.dispose(),super.dispose()}_updateLayoutOfSelectionControl(style){var _a61,_b;super._updateLayoutOfSelectionControl(style);const defaultStyle=this.currentStyle;style==null&&(style=defaultStyle);const{widgets=defaultStyle.widgets}=style;if(this.currentStyle=style,this._enableAutoFill===!0&&!super._hasWidgets(widgets)){const{viewportScrollX,viewportScrollY}=this.getViewportMainScrollInfo(),{endX,endY}=this.selectionModel;this.transformControlPoint(viewportScrollX,viewportScrollY,endX,endY),this.fillControlTopLeft.show(),this.fillControlBottomRight.show()}else(_a61=this.fillControlTopLeft)==null||_a61.hide(),(_b=this.fillControlBottomRight)==null||_b.hide()}getViewportMainScrollInfo(){const viewMain=this.getScene().getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);return{viewportScrollX:(viewMain==null?void 0:viewMain.viewportScrollX)||0,viewportScrollY:(viewMain==null?void 0:viewMain.viewportScrollY)||0,width:(viewMain==null?void 0:viewMain.width)||0,height:(viewMain==null?void 0:viewMain.height)||0}}transformControlPoint(viewportScrollX=0,viewportScrollY=0,sheetContentWidth=0,sheetContentHeight=0){const style=this.currentStyle,rangeType=this.selectionModel.rangeType,expandCornerSize=style.expandCornerSize,{startX,startY,endX,endY}=this.selectionModel,viewportSizeInfo=this.getViewportMainScrollInfo(),viewportW=viewportSizeInfo.width,viewportH=viewportSizeInfo.height;switch(rangeType){case core.RANGE_TYPE.NORMAL:this.fillControlTopLeft.transformByState({left:-expandCornerSize/2,top:-expandCornerSize/2}),this.fillControlBottomRight.transformByState({left:endX-startX-expandCornerSize/2,top:endY-startY-expandCornerSize/2});break;case core.RANGE_TYPE.ROW:{const left=Math.min(viewportW/2+viewportScrollX,sheetContentWidth),controlLeft=-expandCornerSize/2+left;this.fillControlTopLeft.transformByState({left:controlLeft,top:-expandCornerSize/2}),this.fillControlBottomRight.transformByState({left:controlLeft,top:-expandCornerSize/2+endY-startY})}break;case core.RANGE_TYPE.COLUMN:{const top=Math.min(+viewportH/2+viewportScrollY,sheetContentHeight),controlTop=-expandCornerSize/2+top;this.fillControlTopLeft.transformByState({left:-expandCornerSize/2,top:controlTop}),this.fillControlBottomRight.transformByState({left:-expandCornerSize/2+endX-startX,top:controlTop})}break;default:console.error("unknown range type")}}};__name(_MobileSelectionControl,"MobileSelectionControl");let MobileSelectionControl=_MobileSelectionControl;var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$d(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$d(target,key,result),result},"__decorateClass$d"),__decorateParam$d=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$d"),_a47;let MobileSheetsSelectionRenderService=(_a47=class extends BaseSelectionRenderService{constructor(_context,injector,themeService,shortcutService,selectionManagerService,sheetSkeletonManagerService,_logService,_commandService,_contextService,_scrollManagerService){super(injector,themeService,shortcutService,sheetSkeletonManagerService,_contextService);__publicField(this,"_workbookSelections");__publicField(this,"_renderDisposable",null);__publicField(this,"_expandingSelection",!1);__publicField(this,"_selectionControls",[]);__publicField(this,"expandingControlMode","bottom-right");this._context=_context,this._logService=_logService,this._commandService=_commandService,this._contextService=_contextService,this._scrollManagerService=_scrollManagerService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this._init()}_init(){const sheetObject=this._getSheetObject();this._initEventListeners(sheetObject),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._updateControlPointWhenScrolling()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(param==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const unitId=this._context.unitId,{sheetId,skeleton}=param,{scene}=this._context,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(skeleton,scene,viewportMain),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,selections:[getTopLeftSelectionOfCurrSheet(skeleton)]})}))}_initSelectionChangeListener(){}_initEventListeners(sheetObject){const{spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheet,spreadsheetLeftTopPlaceholder}=sheetObject,{scene}=this._context;this._initSpreadsheetEvent(sheetObject),this.disposeWithMe(spreadsheetRowHeader==null?void 0:spreadsheetRowHeader.onPointerUp$.subscribeEvent((evt,_state)=>{if(this._normalSelectionDisabled())return;const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{row}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);isThisRowSelected(this._workbookSelections.getCurrentSelections(),row)||(this.createNewSelection(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.ROW,this._getActiveViewport(evt)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(spreadsheetColumnHeader==null?void 0:spreadsheetColumnHeader.onPointerUp$.subscribeEvent((evt,_state)=>{if(this._normalSelectionDisabled())return;const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);isThisColSelected(this._workbookSelections.getCurrentSelections(),column)||(this.createNewSelection(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.COLUMN,this._getActiveViewport(evt)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(spreadsheetLeftTopPlaceholder==null?void 0:spreadsheetLeftTopPlaceholder.onPointerUp$.subscribeEvent((_evt,state)=>{if(this._normalSelectionDisabled())return;this._reset();const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,selectionWithStyle=selectionDataForSelectAll(skeleton);this._addSelectionControlByModelData(selectionWithStyle),this.refreshSelectionMoveStart(),state.stopPropagation(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}))}_initSpreadsheetEvent(sheetObject){const{spreadsheet}=sheetObject;let longPressTimer;const longPressDuration=500,pointerDownPos={x:0,y:0},clearLongPressTimer=__name(()=>{clearTimeout(longPressTimer)},"clearLongPressTimer"),createNewSelection=__name((evt,showContextMenu)=>{this.createNewSelection(evt,spreadsheet.zIndex+1,core.RANGE_TYPE.NORMAL,this._getActiveViewport(evt)),showContextMenu&&this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())},"createNewSelection");spreadsheet==null||spreadsheet.onPointerMove$.subscribeEvent((evt,_state)=>{(Math.abs(evt.offsetX-pointerDownPos.x)>10||Math.abs(evt.offsetY-pointerDownPos.y)>10)&&clearLongPressTimer()});const spreadsheetPointerDownSub=spreadsheet==null?void 0:spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{pointerDownPos.x=evt.offsetX,pointerDownPos.y=evt.offsetY,longPressTimer=setTimeout(()=>{createNewSelection(evt,!0)},longPressDuration),state.stopPropagation()}),spreadsheetPointerUpSub=spreadsheet==null?void 0:spreadsheet.onPointerUp$.subscribeEvent((evt,state)=>{if(this._normalSelectionDisabled())return;clearTimeout(longPressTimer);const edge=10;Math.abs(evt.offsetX-pointerDownPos.x)>edge||Math.abs(evt.offsetY-pointerDownPos.y)>edge||(createNewSelection(evt,!1),state.stopPropagation())});this.disposeWithMe(core.toDisposable(spreadsheetPointerDownSub)),this.disposeWithMe(core.toDisposable(spreadsheetPointerUpSub))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(sheets.REF_SELECTIONS_ENABLED).pipe(rxjs.startWith(!1),rxjs.distinctUntilChanged()).subscribe(disabled=>{var _a61;disabled?((_a61=this._renderDisposable)==null||_a61.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=core.toDisposable(this.selectionMoveEnd$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVE_END)))}))}_updateSelections(selectionDataWithStyleList,type){const workbook=this._context.unit,unitId=workbook.getUnitId(),sheetId=workbook.getActiveSheet().getSheetId();selectionDataWithStyleList.length!==0&&this._commandService.executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,type,selections:selectionDataWithStyleList.map(selectionDataWithStyle=>sheets.convertSelectionDataToRange(selectionDataWithStyle))})}createNewSelection(evt,_zIndex=0,rangeType=core.RANGE_TYPE.NORMAL,viewport){this._rangeType=rangeType;const skeleton=this._skeleton,scene=this._scene;if(!scene||!skeleton)return;viewport&&(this._activeViewport=viewport);const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:offsetX,y:offsetY}=relativeCoords;this._startViewportPosX=offsetX,this._startViewportPosY=offsetY;const scrollXY=scene.getScrollXYInfoByViewport(relativeCoords),{scaleX,scaleY}=scene.getAncestorScale(),selectCell=this._skeleton.getCellByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY);if(!selectCell)return;switch(rangeType){case core.RANGE_TYPE.NORMAL:break;case core.RANGE_TYPE.ROW:selectCell.startColumn=0,selectCell.endColumn=this._skeleton.getColumnCount()-1;break;case core.RANGE_TYPE.COLUMN:selectCell.startRow=0,selectCell.endRow=this._skeleton.getRowCount()-1;break;case core.RANGE_TYPE.ALL:selectCell.startRow=0,selectCell.startColumn=0,selectCell.endRow=this._skeleton.getRowCount()-1,selectCell.endColumn=this._skeleton.getColumnCount()-1}const selectionWithStyle={range:selectCell,primary:selectCell,style:null};selectionWithStyle.range.rangeType=rangeType;const selectionCellWithCoord=attachSelectionWithCoord(selectionWithStyle,this._skeleton);this._startRangeWhenPointerDown={...selectionCellWithCoord.rangeWithCoord};let activeSelectionControl=this.getActiveSelectionControl();const cursorRangeWidthCoord={...selectionCellWithCoord.rangeWithCoord};for(const control of this.getSelectionControls())if(control.model.isEqual(cursorRangeWidthCoord)){activeSelectionControl=control;break}(activeSelectionControl==null?void 0:activeSelectionControl.model.rangeType)!==rangeType?(this._clearAllSelectionControls(),activeSelectionControl=this.newSelectionControl(scene,skeleton,selectionWithStyle)):activeSelectionControl.updateRangeBySelectionWithCoord(selectionCellWithCoord),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._expandingSelection=!1}newSelectionControl(scene,skeleton,selection){const selectionControls=this.getSelectionControls(),{rowHeaderWidth,columnHeaderHeight}=skeleton,rangeType=selection.range.rangeType,control=new MobileSelectionControl(scene,selectionControls.length,this._themeService,{highlightHeader:this._highlightHeader,rowHeaderWidth,columnHeaderHeight,rangeType}),selectionWithCoord=attachSelectionWithCoord(selection,skeleton);control.updateRangeBySelectionWithCoord(selectionWithCoord),this._selectionControls.push(control);const{expandingModeForTopLeft,expandingModeForBottomRight}=(()=>{switch(rangeType){case core.RANGE_TYPE.NORMAL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};case core.RANGE_TYPE.ROW:return{expandingModeForTopLeft:"top",expandingModeForBottomRight:"bottom"};case core.RANGE_TYPE.COLUMN:return{expandingModeForTopLeft:"left",expandingModeForBottomRight:"right"};case core.RANGE_TYPE.ALL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};default:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"}}})();return control.fillControlTopLeft.onPointerDown$.subscribeEvent(evt=>{this._expandingSelection=!0,this.expandingControlMode=expandingModeForTopLeft,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(evt,rangeType,this._activeViewport)}),control.fillControlBottomRight.onPointerDown$.subscribeEvent(evt=>{this._expandingSelection=!0,this.expandingControlMode=expandingModeForBottomRight,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(evt,rangeType,this._activeViewport)}),(rangeType===core.RANGE_TYPE.ROW||rangeType===core.RANGE_TYPE.COLUMN)&&!scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),control}_getActiveViewport(evt){const sheetObject=this._getSheetObject();return sheetObject==null?void 0:sheetObject.scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]))}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_normalSelectionDisabled(){return this._contextService.getContextValue(sheets.REF_SELECTIONS_ENABLED)}getSelectionControls(){return this._selectionControls}_fillControlPointerDownHandler(evt,rangeType=core.RANGE_TYPE.NORMAL,viewport,scrollTimerType=engineRender.ScrollTimerType.ALL){var _a61,_b,_c;const skeleton=this._skeleton,scene=this._scene;if(!scene||!skeleton)return;viewport&&(this._activeViewport=viewport);const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),activeSelectionControl=this.getActiveSelectionControl();if(!activeSelectionControl)return;this._changeCurrCellWhenControlPointerDown(),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._addEndingListeners(),this._scrollTimer=engineRender.ScrollTimer.create(this._scene,scrollTimerType),this._scrollTimer.startScroll((_a61=viewportMain==null?void 0:viewportMain.left)!=null?_a61:0,(_b=viewportMain==null?void 0:viewportMain.top)!=null?_b:0,viewportMain),(_c=scene.getTransformer())==null||_c.clearSelectedObjects();const relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]));this._setupPointerMoveListener(viewportMain,activeSelectionControl,rangeType,scrollTimerType,relativeCoords.x,relativeCoords.y);const disposableShortcut=this._shortcutService.forceEscape();this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(_evt=>{this.endSelection(),this._expandingSelection=!1,this.expandingControlMode="bottom-right",this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),disposableShortcut.dispose()})}_changeCurrCellWhenControlPointerDown(){const activeSelectionControl=this.getActiveSelectionControl(),skeleton=this._skeleton;let currCellRange;const{startRow,startColumn,endRow,endColumn}=activeSelectionControl.model;switch(this.expandingControlMode){case"top-left":currCellRange=skeleton.getCellWithCoordByIndex(endRow,endColumn);break;case"bottom-right":currCellRange=skeleton.getCellWithCoordByIndex(startRow,startColumn);break;case"left":currCellRange=skeleton.getCellWithCoordByIndex(startRow,endColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;case"right":currCellRange=skeleton.getCellWithCoordByIndex(startRow,startColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;case"top":currCellRange=skeleton.getCellWithCoordByIndex(endRow,startColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;case"bottom":currCellRange=skeleton.getCellWithCoordByIndex(startRow,startColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;default:currCellRange=skeleton.getCellWithCoordByIndex(startRow,startColumn)}return activeSelectionControl.updateCurrCell(currCellRange),currCellRange}_movingHandler(offsetX,offsetY,activeSelectionControl,rangeType){var _a61,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m;this._rangeType=rangeType;const skeleton=this._skeleton,scene=this._scene,currSelectionRange={startRow:activeSelectionControl.model.startRow,endRow:activeSelectionControl.model.endRow,startColumn:activeSelectionControl.model.startColumn,endColumn:activeSelectionControl.model.endColumn},viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),targetViewport=(_a61=this._getViewportByCell(currSelectionRange.endRow,currSelectionRange.endColumn))!=null?_a61:viewportMain,scrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),targetViewport),{scaleX,scaleY}=scene.getAncestorScale();rangeType===core.RANGE_TYPE.ROW?offsetX=Number.POSITIVE_INFINITY:rangeType===core.RANGE_TYPE.COLUMN&&(offsetY=Number.POSITIVE_INFINITY);const cursorCellRangeInfo=this._getSelectionWithCoordByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY);if(!cursorCellRangeInfo)return!1;const{rangeWithCoord:cursorCellRange}=cursorCellRangeInfo,currCellRange=activeSelectionControl.model.currentCell,startRowOfActiveCell=(_b=currCellRange==null?void 0:currCellRange.mergeInfo.startRow)!=null?_b:-1,endRowOfActiveCell=(_c=currCellRange==null?void 0:currCellRange.mergeInfo.endRow)!=null?_c:-1,startColumnOfActiveCell=(_d=currCellRange==null?void 0:currCellRange.mergeInfo.startColumn)!=null?_d:-1,endColOfActiveCell=(_e=currCellRange==null?void 0:currCellRange.mergeInfo.endColumn)!=null?_e:-1;let newSelectionRange={startRow:Math.min(cursorCellRange.startRow,startRowOfActiveCell),startColumn:Math.min(cursorCellRange.startColumn,startColumnOfActiveCell),endRow:Math.max(cursorCellRange.endRow,endRowOfActiveCell),endColumn:Math.max(cursorCellRange.endColumn,endColOfActiveCell)};if(rangeType===core.RANGE_TYPE.NORMAL?newSelectionRange=skeleton.expandRangeByMerge(newSelectionRange):rangeType===core.RANGE_TYPE.COLUMN?newSelectionRange={startRow:Math.min(cursorCellRange.startRow,(_f=currCellRange==null?void 0:currCellRange.actualRow)!=null?_f:-1),startColumn:Math.min(cursorCellRange.startColumn,(_g=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_g:-1),endRow:Math.max(cursorCellRange.endRow,(_h=currCellRange==null?void 0:currCellRange.actualRow)!=null?_h:-1),endColumn:Math.max(cursorCellRange.endColumn,(_i=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_i:-1)}:rangeType===core.RANGE_TYPE.ROW&&(newSelectionRange={startRow:Math.min(cursorCellRange.startRow,(_j=currCellRange==null?void 0:currCellRange.actualRow)!=null?_j:-1),startColumn:Math.min(cursorCellRange.startColumn,(_k=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_k:-1),endRow:Math.max(cursorCellRange.endRow,(_l=currCellRange==null?void 0:currCellRange.actualRow)!=null?_l:-1),endColumn:Math.max(cursorCellRange.endColumn,(_m=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_m:-1)}),!newSelectionRange)return!1;const newSelectionRangeWithCoord=attachSelectionWithCoord({range:newSelectionRange,style:null,primary:null},skeleton);(currSelectionRange.startRow!==newSelectionRange.startRow||currSelectionRange.startColumn!==newSelectionRange.startColumn||currSelectionRange.endRow!==newSelectionRange.endRow||currSelectionRange.endColumn!==newSelectionRange.endColumn)&&activeSelectionControl&&(activeSelectionControl.updateRangeBySelectionWithCoord(newSelectionRangeWithCoord),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateControlPointWhenScrolling(){const{scene}=this._context;if(!scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN))return;const sub=this._scrollManagerService.validViewportScrollInfo$.subscribe(param=>{var _a61;if(param==null)return;const{viewportScrollX,viewportScrollY}=param,activeControl=this.getActiveSelectionControl();if(activeControl==null)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton,sheetContentHeight=skeleton==null?void 0:skeleton.rowTotalHeight,sheetContentWidth=skeleton==null?void 0:skeleton.columnTotalWidth,rangeType=activeControl.rangeType;rangeType===core.RANGE_TYPE.COLUMN?activeControl.transformControlPoint(0,viewportScrollY,sheetContentWidth,sheetContentHeight):rangeType===core.RANGE_TYPE.ROW&&activeControl.transformControlPoint(viewportScrollX,0,sheetContentWidth,sheetContentHeight)});this.disposeWithMe(core.toDisposable(sub))}},__name(_a47,"MobileSheetsSelectionRenderService"),_a47);MobileSheetsSelectionRenderService=__decorateClass$d([__decorateParam$d(1,core.Inject(core.Injector)),__decorateParam$d(2,core.Inject(core.ThemeService)),__decorateParam$d(3,ui.IShortcutService),__decorateParam$d(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$d(5,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$d(6,core.ILogService),__decorateParam$d(7,core.ICommandService),__decorateParam$d(8,core.IContextService),__decorateParam$d(9,core.Inject(exports.SheetScrollManagerService))],MobileSheetsSelectionRenderService);var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__defNormalProp$1=__name((obj,key,value)=>key in obj?__defProp$c(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp$1"),__decorateClass$c=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$c(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$c(target,key,result),result},"__decorateClass$c"),__decorateParam$c=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$c"),__publicField$1=__name((obj,key,value)=>__defNormalProp$1(obj,typeof key!="symbol"?key+"":key,value),"__publicField$1"),_a48;exports.UniverSheetsMobileUIPlugin=(_a48=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_renderManagerService,_univerInstanceService){super(),this._config=_config,this._injector=_injector,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService}onStarting(){[[ShortcutExperienceService],[ISheetClipboardService,{useClass:exports.SheetClipboardService}],[ISheetBarService,{useClass:SheetBarService}],[IFormatPainterService,{useClass:FormatPainterService}],[IAutoFillService,{useClass:exports.AutoFillService}],[SheetPrintInterceptorService],[ISheetSelectionRenderService,{useClass:MobileSheetsSelectionRenderService}],[IStatusBarService,{useClass:StatusBarService}],[IMarkSelectionService,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[SelectAllService],[ActiveWorksheetController],[exports.AutoHeightController],[SheetClipboardController],[exports.SheetsRenderService],[SheetUIMobileController],[exports.StatusBarController],[sheets.IRefSelectionsService,{useClass:sheets.RefSelectionsService}],[SheetPermissionPanelModel],[SheetPermissionUserManagerService],[WorksheetProtectionRenderController],[SheetPermissionInterceptorClipboardController],[exports.SheetPermissionCheckUIController],[SheetPermissionRenderManagerController]].forEach(d=>this._injector.add(d))}onReady(){this._markSheetAsFocused(),this._registerRenderBasics(),this._injector.get(SheetUIMobileController)}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[exports.SheetRenderController],[ISheetSelectionRenderService,{useClass:MobileSheetsSelectionRenderService}],[exports.SheetScrollManagerService]].forEach(renderDep=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,renderDep))})}_registerRenderModules(){[[exports.HeaderMoveRenderController],[exports.HeaderFreezeRenderController],[MobileSheetsScrollRenderController],[SheetsZoomRenderController],[FormatPainterRenderController],[CellAlertRenderController],[ForceStringAlertRenderController],[MarkSelectionRenderController],[exports.HoverRenderController],[exports.DragRenderController],[ForceStringRenderController],[exports.CellCustomRenderController],[SheetContextMenuMobileRenderController],[SheetPermissionInterceptorCanvasRenderController],[SheetPermissionInterceptorFormulaRenderController],[SheetPermissionRenderController]].forEach(renderModule=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,renderModule))})}_markSheetAsFocused(){const univerInstanceService=this._univerInstanceService;this.disposeWithMe(univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(operators.filter(v=>!!v)).subscribe(workbook=>{univerInstanceService.focusUnit(workbook.getUnitId())}))}},__name(_a48,"UniverSheetsMobileUIPlugin"),_a48);__publicField$1(exports.UniverSheetsMobileUIPlugin,"pluginName","SHEET_UI_PLUGIN");__publicField$1(exports.UniverSheetsMobileUIPlugin,"type",core.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsMobileUIPlugin=__decorateClass$c([core.DependentOn(sheets.UniverSheetsPlugin,ui.UniverMobileUIPlugin),__decorateParam$c(1,core.Inject(core.Injector)),__decorateParam$c(2,engineRender.IRenderManagerService),__decorateParam$c(3,core.IUniverInstanceService)],exports.UniverSheetsMobileUIPlugin);var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$b(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$b(target,key,result),result},"__decorateClass$b"),__decorateParam$b=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$b"),_a49;let SheetCheckboxController=(_a49=class extends core.Disposable{constructor(_hoverManagerService,_commandService,_renderManagerService){super();__publicField(this,"_isPointer",!1);this._hoverManagerService=_hoverManagerService,this._commandService=_commandService,this._renderManagerService=_renderManagerService,this._initPointerEvent(),this._initHover()}get _mainComponent(){var _a61;return(_a61=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a61.mainComponent}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichText$.subscribe(richText=>{var _a61,_b;richText!=null&&richText.bullet?(this._isPointer||(_a61=this._mainComponent)==null||_a61.setCursor(engineRender.CURSOR_TYPE.POINTER),this._isPointer=!0):(this._isPointer&&((_b=this._mainComponent)==null||_b.setCursor(engineRender.CURSOR_TYPE.AUTO)),this._isPointer=!1)}))}_initPointerEvent(){this.disposeWithMe(this._hoverManagerService.currentClickedCell$.subscribe(cell=>{const{location,bullet}=cell;bullet&&this._commandService.executeCommand(sheets.ToggleCellCheckboxCommand.id,{unitId:location.unitId,subUnitId:location.subUnitId,row:location.row,col:location.col,paragraphIndex:bullet.startIndex})}))}},__name(_a49,"SheetCheckboxController"),_a49);SheetCheckboxController=__decorateClass$b([__decorateParam$b(0,core.Inject(exports.HoverManagerService)),__decorateParam$b(1,core.ICommandService),__decorateParam$b(2,engineRender.IRenderManagerService)],SheetCheckboxController);var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$a(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$a(target,key,result),result},"__decorateClass$a"),__decorateParam$a=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$a"),_a50;let SheetsDefinedNameController=(_a50=class extends core.Disposable{constructor(_selectionManagerService,_themeService,_instanceSrv,_cmdSrv,_definedNamesService){super(),this._selectionManagerService=_selectionManagerService,this._themeService=_themeService,this._instanceSrv=_instanceSrv,this._cmdSrv=_cmdSrv,this._definedNamesService=_definedNamesService,this._init()}_init(){this.disposeWithMe(rxjs.merge(this._selectionManagerService.selectionMoveStart$,this._selectionManagerService.selectionMoving$,this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionSet$).pipe(rxjs.filter(params=>!!params)).subscribe(params=>{this._syncDefinedNameRange(params)})),this.disposeWithMe(this._definedNamesService.focusRange$.subscribe(async item=>{if(item==null)return;const{unitId}=item;let{formulaOrRefString}=item;if(formulaOrRefString.substring(0,1)===engineFormula.operatorToken.EQUALS&&(formulaOrRefString=formulaOrRefString.substring(1)),!engineFormula.isReferenceStrings(formulaOrRefString))return;const workbook=this._instanceSrv.getUnit(unitId),selections=await this._getSelections(workbook,unitId,formulaOrRefString);this._selectionManagerService.setSelections(selections),this._cmdSrv.executeCommand(sheets.ScrollToCellOperation.id,selections[0].range)}))}_syncDefinedNameRange(params){if(params.length===0)return;const lastSelection=params[params.length-1],workbook=this._instanceSrv.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();worksheet&&this._definedNamesService.setCurrentRange({range:lastSelection.range,unitId:workbook.getUnitId(),sheetId:worksheet.getSheetId()})}async _getSelections(workbook,unitId,formulaOrRefString){const valueArray=formulaOrRefString.split(",");let worksheet=workbook.getActiveSheet();if(!worksheet)return[];const selections=[];for(let i=0;i<valueArray.length;i++){const refString=valueArray[i].trim(),unitRange=engineFormula.deserializeRangeWithSheet(refString.trim());if(i===0){const worksheetCache=workbook.getSheetBySheetName(unitRange.sheetName);worksheetCache&&worksheet.getSheetId()!==worksheetCache.getSheetId()&&(worksheet=worksheetCache,await this._cmdSrv.executeCommand(sheets.SetWorksheetActivateCommand.id,{subUnitId:worksheet.getSheetId(),unitId}))}if(worksheet.getName()!==unitRange.sheetName)continue;let primary=null;if(i===valueArray.length-1){const range=unitRange.range,{startRow,startColumn,endRow,endColumn}=range;primary=sheets.getPrimaryForRange({startRow,startColumn,endRow,endColumn},worksheet)}selections.push({range:unitRange.range,style:genNormalSelectionStyle(this._themeService),primary})}return selections}},__name(_a50,"SheetsDefinedNameController"),_a50);SheetsDefinedNameController=__decorateClass$a([__decorateParam$a(0,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$a(1,core.Inject(core.ThemeService)),__decorateParam$a(2,core.IUniverInstanceService),__decorateParam$a(3,core.ICommandService),__decorateParam$a(4,engineFormula.IDefinedNamesService)],SheetsDefinedNameController);var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$9(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$9(target,key,result),result},"__decorateClass$9"),__decorateParam$9=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$9"),_a51;exports.FormulaEditorController=(_a51=class extends core.RxDisposable{constructor(_univerInstanceService,_renderManagerService,_editorBridgeService,_commandService,_contextService,_formulaEditorManagerService,_undoRedoService,_textSelectionManagerService,_editorService){super();__publicField(this,"_loadedMap",new WeakSet);__publicField(this,"_scheduledCallback",-1);this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._editorBridgeService=_editorBridgeService,this._commandService=_commandService,this._contextService=_contextService,this._formulaEditorManagerService=_formulaEditorManagerService,this._undoRedoService=_undoRedoService,this._textSelectionManagerService=_textSelectionManagerService,this._editorService=_editorService,this._initialize()}_initialize(){this._syncEditorSize(),this._listenFxBtnClick(),this._handleContentChange(),this._renderManagerService.currentRender$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(unitId=>{this._create(unitId)}),this._create(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this.disposeWithMe(this._editorService.focus$.subscribe(()=>{var _a61;((_a61=this._editorService.getFocusEditor())==null?void 0:_a61.getEditorId())===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!1)}))}_handleContentChange(){this.disposeWithMe(this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===docs.RichTextEditingMutation.id){const params=commandInfo.params,{unitId}=params;unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&this.autoScroll()}}))}_create(unitId){if(unitId!==core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;const formulaEditorDocObject=this._renderManagerService.getRenderById(unitId);if(formulaEditorDocObject==null)return;const{mainComponent:documentComponent}=formulaEditorDocObject;documentComponent!=null&&(this._loadedMap.has(documentComponent)||(this._initialMain(unitId),this._loadedMap.add(documentComponent)))}_listenFxBtnClick(){this._formulaEditorManagerService.fxBtnClick$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(()=>{var _a61,_b;if(this._contextService.getContextValue(core.FOCUSING_EDITOR_BUT_HIDDEN)&&!this._contextService.getContextValue(core.EDITOR_ACTIVATED)){this._univerInstanceService.setCurrentUnitForType(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!0);const currentSheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),formulaEditorDataModel=this._univerInstanceService.getUniverDocInstance(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:engineRender.DeviceInputEventType.PointerDown,unitId:(_a61=currentSheet==null?void 0:currentSheet.getUnitId())!=null?_a61:""});const content=(_b=formulaEditorDataModel==null?void 0:formulaEditorDataModel.getBody())==null?void 0:_b.dataStream;if(content==null)return;let newContent=content.startsWith("=")?content:`=${content}`;newContent=newContent.replace(/\r\n$/,"");const textRanges=[{startOffset:newContent.length,endOffset:newContent.length}],coverContentParams={unitId:core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body:{dataStream:newContent},segmentId:""};this._commandService.executeCommand(docsUi.CoverContentCommand.id,coverContentParams),this._textSelectionManagerService.replaceDocRanges(textRanges)}})}_initialMain(unitId){const formulaEditorDocObject=this._renderManagerService.getRenderById(unitId);if(formulaEditorDocObject==null)return;const{mainComponent:documentComponent}=formulaEditorDocObject;documentComponent!=null&&this.disposeWithMe(documentComponent.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible===!1&&(this._editorBridgeService.changeVisible({visible:!0,eventType:engineRender.DeviceInputEventType.PointerDown,unitId}),this._undoRedoService.clearUndoRedo(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)),this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!0)}))}_syncEditorSize(){const addFOrmulaBar$=this._univerInstanceService.unitAdded$.pipe(rxjs.filter(unit=>unit.getUnitId()===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY));this.disposeWithMe(rxjs.combineLatest([this._formulaEditorManagerService.position$,addFOrmulaBar$]).subscribe(([position])=>{if(!position)return this._clearScheduledCallback();const editorObject=getEditorObject(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,this._renderManagerService),formulaEditorDataModel=this._univerInstanceService.getUniverDocInstance(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(editorObject==null||formulaEditorDataModel==null)return this._clearScheduledCallback();const{width,height}=position;if(width===0||height===0)return this._clearScheduledCallback();const{engine}=editorObject;formulaEditorDataModel.updateDocumentDataPageSize(width),this.autoScroll(),this._scheduledCallback=requestIdleCallback(()=>engine.resizeBySize(width,height))}))}_clearScheduledCallback(){this._scheduledCallback!==-1&&cancelIdleCallback(this._scheduledCallback),this._scheduledCallback=-1}autoScroll(){var _a61,_b;const position=this._formulaEditorManagerService.getPosition(),skeleton=(_a61=this._renderManagerService.getRenderById(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getSkeleton(),editorObject=this._renderManagerService.getRenderById(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),formulaEditorDataModel=this._univerInstanceService.getUniverDocInstance(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(skeleton==null||position==null||editorObject==null||formulaEditorDataModel==null)return;const{marginTop=0,marginBottom=0}=formulaEditorDataModel.getSnapshot().documentStyle,{scene,mainComponent}=editorObject;let{actualHeight}=skeleton.getActualSize();actualHeight+=marginTop+marginBottom;const{width,height}=position,viewportMain=scene.getViewport(docsUi.VIEWPORT_KEY.VIEW_MAIN);let scrollBar=viewportMain==null?void 0:viewportMain.getScrollBar();scene.transformByState({width,height:actualHeight}),mainComponent==null||mainComponent.resize(width,actualHeight),actualHeight>height?scrollBar==null?viewportMain&&new engineRender.ScrollBar(viewportMain,{enableHorizontal:!1,barSize:8}):viewportMain==null||viewportMain.resetCanvasSizeAndUpdateScroll():(scrollBar=null,viewportMain==null||viewportMain.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0}),(_b=viewportMain==null?void 0:viewportMain.getScrollBar())==null||_b.dispose())}},__name(_a51,"FormulaEditorController"),_a51);exports.FormulaEditorController=__decorateClass$9([__decorateParam$9(0,core.IUniverInstanceService),__decorateParam$9(1,engineRender.IRenderManagerService),__decorateParam$9(2,IEditorBridgeService),__decorateParam$9(3,core.ICommandService),__decorateParam$9(4,core.IContextService),__decorateParam$9(5,IFormulaEditorManagerService),__decorateParam$9(6,core.IUndoRedoService),__decorateParam$9(7,core.Inject(docs.DocSelectionManagerService)),__decorateParam$9(8,docsUi.IEditorService)],exports.FormulaEditorController);var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$8(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$8(target,key,result),result},"__decorateClass$8"),__decorateParam$8=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$8");const formulaEditorStyle={pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY},documentFlavor:core.DocumentFlavor.UNSPECIFIED,marginTop:5,marginBottom:5,marginRight:0,marginLeft:0,paragraphLineGapDefault:0,renderConfig:{horizontalAlign:core.HorizontalAlign.UNSPECIFIED,verticalAlign:core.VerticalAlign.TOP,centerAngle:0,vertexAngle:0,wrapStrategy:core.WrapStrategy.WRAP,isRenderStyle:core.BooleanNumber.FALSE}};var _a52;let EditorDataSyncController=(_a52=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService,_editorBridgeService,_commandService,_rangeProtectionRuleModel,_worksheetProtectionRuleModel,_formulaEditorController,_formulaEditorManagerService){super(),this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._editorBridgeService=_editorBridgeService,this._commandService=_commandService,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._worksheetProtectionRuleModel=_worksheetProtectionRuleModel,this._formulaEditorController=_formulaEditorController,this._formulaEditorManagerService=_formulaEditorManagerService,this._initialize()}_initialize(){this._syncFormulaEditorContent(),this._commandExecutedListener()}_getEditorViewModel(unitId){var _a61;return(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getViewModel()}_syncFormulaEditorContent(){this.disposeWithMe(this._editorBridgeService.currentEditCellState$.subscribe(editCellState=>{editCellState==null||this._editorBridgeService.isForceKeepVisible()||!this._rangeProtectionRuleModel.getRangeRuleInitState()||!this._worksheetProtectionRuleModel.getSheetRuleInitState()||this._editorSyncHandler(editCellState)}))}_editorSyncHandler(param){var _a61,_b,_c;let body=core.Tools.deepClone((_a61=param.documentLayoutObject.documentModel)==null?void 0:_a61.getBody());const drawings=core.Tools.deepClone((_b=param.documentLayoutObject.documentModel)==null?void 0:_b.drawings),drawingsOrder=core.Tools.deepClone((_c=param.documentLayoutObject.documentModel)==null?void 0:_c.getDrawingsOrder());(!body||param.isInArrayFormulaRange===!0&&this._editorBridgeService.isVisible().eventType===engineRender.DeviceInputEventType.Dblclick)&&(body={dataStream:`\r
|
|
61
|
+
`)}]}}__name(generateBody,"generateBody");var __defProp$v=Object.defineProperty,__getOwnPropDesc$v=Object.getOwnPropertyDescriptor,__decorateClass$v=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$v(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$v(target,key,result),result},"__decorateClass$v"),__decorateParam$v=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$v");const shouldRemoveShapeIds=[sheets.InsertColMutation.id,sheets.InsertRowMutation.id,sheets.RemoveColMutation.id,sheets.RemoveRowMutation.id,sheets.MoveRangeMutation.id,sheets.MoveRowsMutation.id,sheets.MoveColsMutation.id];var _a27;let SheetClipboardController=(_a27=class extends core.RxDisposable{constructor(_injector,_currentUniverSheet,_renderManagerService,_commandService,_contextService,_configService,_sheetClipboardService,_messageService,_localService,_uiPartsService){super(),this._injector=_injector,this._currentUniverSheet=_currentUniverSheet,this._renderManagerService=_renderManagerService,this._commandService=_commandService,this._contextService=_contextService,this._configService=_configService,this._sheetClipboardService=_sheetClipboardService,this._messageService=_messageService,this._localService=_localService,this._uiPartsService=_uiPartsService,this._init(),this._initCommandListener(),this._initUIComponents(),this._pasteWithDoc()}_pasteWithDoc(){var _a61;const sheetPasteShortKeyFn=__name(docSelectionRenderService2=>{docSelectionRenderService2.onPaste$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(config=>{var _a62,_b;if(!whenSheetEditorFocused(this._contextService))return;config.event.preventDefault();const clipboardEvent=config.event,htmlContent=(_a62=clipboardEvent.clipboardData)==null?void 0:_a62.getData("text/html"),textContent=(_b=clipboardEvent.clipboardData)==null?void 0:_b.getData("text/plain"),files=this._resolveClipboardFiles(clipboardEvent.clipboardData);this._commandService.executeCommand(SheetPasteShortKeyCommand.id,{htmlContent,textContent,files})})},"sheetPasteShortKeyFn");let docSelectionRenderService=(_a61=this._renderManagerService.getRenderById(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:_a61.with(docsUi.DocSelectionRenderService);docSelectionRenderService&&sheetPasteShortKeyFn(docSelectionRenderService),this._renderManagerService.created$.subscribe(renderer=>{var _a62;renderer.unitId===core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY&&(docSelectionRenderService=(_a62=this._renderManagerService.getRenderById(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY))==null?void 0:_a62.with(docsUi.DocSelectionRenderService),docSelectionRenderService&&sheetPasteShortKeyFn(docSelectionRenderService))})}_resolveClipboardFiles(clipboardData){if(!clipboardData)return;const files=Array.from(clipboardData.items).map(item=>item.kind==="file"?item.getAsFile():void 0).filter(Boolean);return files.length>0?files:void 0}_init(){[SheetCopyCommand,SheetCutCommand,SheetPasteCommand].forEach(command=>this.disposeWithMe(this._commandService.registerMultipleCommand(command))),[SheetPasteValueCommand,SheetPasteFormatCommand,SheetPasteColWidthCommand,SheetPasteBesidesBorderCommand,SheetPasteShortKeyCommand,SheetOptionalPasteCommand].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command))),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initCopyingHooks())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._initPastingHook()));const disposables=this._initSpecialPasteHooks().map(hook=>this._sheetClipboardService.addClipboardHook(hook));this.disposeWithMe({dispose:__name(()=>disposables.forEach(d=>d.dispose()),"dispose")})}_initCopyingHooks(){const self=this;let currentSheet=null;return{id:PREDEFINED_HOOK_NAME.DEFAULT_COPY,isDefaultHook:!0,onBeforeCopy(unitId,subUnitId){currentSheet=self._getWorksheet(unitId,subUnitId)},onCopyCellContent(row,col){var _a61,_b,_c,_d;const cell=currentSheet.getCell(row,col);return(_b=(_a61=cell==null?void 0:cell.p)==null?void 0:_a61.body)!=null&&_b.paragraphs||(_d=(_c=cell==null?void 0:cell.p)==null?void 0:_c.body)!=null&&_d.textRuns?core.convertBodyToHtml(cell.p.body):cell?core.extractPureTextFromCell(cell):""},onCopyCellStyle:__name((row,col,rowSpan,colSpan)=>{const properties={};(rowSpan||colSpan)&&(properties.rowspan=`${rowSpan||1}`,properties.colspan=`${colSpan||1}`);const range=currentSheet.getRange(row,col),mergedCellByRowCol=currentSheet.getMergedCell(row,col),textStyle=range.getTextStyle();let style="";if(textStyle&&(style=core.handleStyleToString(textStyle)),mergedCellByRowCol){const endRow=mergedCellByRowCol.endRow,endColumn=mergedCellByRowCol.endColumn,lastTextStyle=currentSheet.getRange(endRow,endColumn).getTextStyle();if(lastTextStyle){const lastStyle=core.handleStyleToString(lastTextStyle);style?style+=lastStyle?`;${lastStyle}`:"":style=lastStyle}}return style&&(properties.style=style),Object.keys(properties).length?properties:null},"onCopyCellStyle"),onCopyColumn(col){return{width:`${currentSheet.getColumnWidth(col)}`}},onCopyRow(row){return{style:`height: ${currentSheet.getRowHeight(row)}px;`}},onAfterCopy(){currentSheet=null},getFilteredOutRows(range){var _a61;const{startRow,endRow}=range,worksheet=(_a61=self._currentUniverSheet.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a61.getActiveSheet(),res=[];if(!worksheet)return res;for(let r2=startRow;r2<=endRow;r2++)worksheet.getRowFiltered(r2)&&res.push(r2);return res}}}_initPastingHook(){const self=this;let unitId=null,subUnitId=null,currentSheet=null;return{id:PREDEFINED_HOOK_NAME.DEFAULT_PASTE,isDefaultHook:!0,onBeforePaste({unitId:unitId_,subUnitId:subUnitId_,range}){currentSheet=self._getWorksheet(unitId_,subUnitId_),unitId=unitId_,subUnitId=subUnitId_;const maxConfig=self._configService.getConfig(sheets.MAX_CELL_PER_SHEET_KEY),endRow=range.rows[range.rows.length-1],endColumn=range.cols[range.cols.length-1];return maxConfig&&endRow*endColumn>maxConfig?(self._messageService.show({type:design.MessageType.Error,content:self._localService.t("clipboard.paste.exceedMaxCells")}),!1):!0},onPasteRows(pasteTo,rowProperties){const{range}=pasteTo,redoMutations=[],undoMutations=[],maxRow=currentSheet.getMaxRows(),rowCount=maxRow-1,addingRowsCount=range.rows[range.rows.length-1]-rowCount,existingRowsCount=rowProperties.length-addingRowsCount,rowManager=currentSheet.getRowManager();if(addingRowsCount>0){const rowInfo={};rowProperties.slice(existingRowsCount).forEach((property,index)=>{const{height:PropertyHeight}=property||{};PropertyHeight&&(rowInfo[index]={h:Number.parseFloat(PropertyHeight),hd:core.BooleanNumber.FALSE})});const addRowRange={startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1],endRow:range.rows[range.rows.length-1],startRow:maxRow},addRowMutation={unitId,subUnitId,range:addRowRange,rowInfo};redoMutations.push({id:sheets.InsertRowMutation.id,params:addRowMutation}),undoMutations.push({id:sheets.RemoveRowMutation.id,params:{unitId,subUnitId,range:addRowRange}})}const rowHeight={},originRowHeight={};if(rowProperties.slice(0,existingRowsCount).forEach((property,index)=>{var _a61,_b;const{height:propertyHeight}=property;if(propertyHeight){const rowConfigBeforePaste=rowManager.getRow(range.rows[0]+index),willSetHeight=Number.parseFloat(propertyHeight);if(rowConfigBeforePaste){const{h=core.DEFAULT_WORKSHEET_ROW_HEIGHT,ah=0}=rowConfigBeforePaste,nowRowHeight=Math.max(h,ah);willSetHeight>nowRowHeight?(rowHeight[index+range.rows[0]]=willSetHeight,originRowHeight[index+range.rows[0]]=nowRowHeight):(rowHeight[index+range.rows[0]]=nowRowHeight,originRowHeight[index+range.rows[0]]=nowRowHeight)}else rowHeight[index+range.rows[0]]=willSetHeight,originRowHeight[index+range.rows[0]]=(_b=(_a61=rowManager.getRow(range.rows[0]+index))==null?void 0:_a61.h)!=null?_b:core.DEFAULT_WORKSHEET_ROW_HEIGHT}}),Object.keys(rowHeight).length){const setRowPropertyMutation={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:Math.min(range.rows[range.rows.length-1],maxRow),startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1]}],rowHeight};redoMutations.push({id:sheets.SetWorksheetRowHeightMutation.id,params:setRowPropertyMutation}),undoMutations.push({id:sheets.SetWorksheetRowHeightMutation.id,params:{...setRowPropertyMutation,rowHeight:originRowHeight}})}return{redos:redoMutations,undos:undoMutations}},onPasteColumns(pasteTo,colProperties,pasteType){var _a61;const{range}=pasteTo,redoMutations=[],undoMutations=[],maxColumn=currentSheet.getMaxColumns(),colCount=maxColumn-1,addingColsCount=range.cols[range.cols.length-1]-colCount,existingColsCount=colProperties.length-addingColsCount,defaultColumnWidth=(_a61=self._configService.getConfig(core.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?_a61:core.DEFAULT_WORKSHEET_COLUMN_WIDTH,pasteToCols=range.cols,startColumn=pasteToCols[0];if(addingColsCount>0){const addColRange={startRow:range.rows[0],endRow:range.rows[range.rows.length-1],endColumn:range.cols[range.cols.length-1],startColumn:maxColumn},addColMutation={unitId,subUnitId,range:addColRange,colInfo:colProperties.slice(existingColsCount).map((property,index)=>({w:property.width?Math.max(+property.width,currentSheet.getColumnWidth(pasteToCols[index])):defaultColumnWidth,hd:core.BooleanNumber.FALSE}))};redoMutations.push({id:sheets.InsertColMutation.id,params:addColMutation}),undoMutations.push({id:sheets.RemoveColMutation.id,params:{unitId,subUnitId,range:addColRange}})}const targetSetColPropertyParams={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:range.rows[range.rows.length-1],startColumn:range.cols[0],endColumn:Math.min(range.cols[range.cols.length-1],maxColumn)}]};if(colProperties.length>0){const setColPropertyMutation={...targetSetColPropertyParams,colWidth:colProperties.slice(0,existingColsCount).reduce((p,c,index)=>{var _a62;return p[index+startColumn]=c.width?Math.max(+c.width,(_a62=currentSheet.getColumnWidth(pasteToCols[index]))!=null?_a62:defaultColumnWidth):defaultColumnWidth,p},{})},undoSetColPropertyParams={...targetSetColPropertyParams,colWidth:colProperties.slice(0,existingColsCount).reduce((p,c,index)=>{var _a62;return p[index+startColumn]=(_a62=currentSheet.getColumnWidth(pasteToCols[index]))!=null?_a62:defaultColumnWidth,p},{})};redoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:setColPropertyMutation}),undoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:undoSetColPropertyParams})}return{redos:redoMutations,undos:undoMutations}},onPastePlainText(pasteTo,text,payload){return self._onPastePlainText(pasteTo,text,payload)},onPasteCells(pasteFrom,pasteTo,data,payload){return self._onPasteCells(pasteFrom,pasteTo,data,payload)},onAfterPaste(success){currentSheet=null}}}_generateDocumentDataModelSnapshot(snapshot){var _a61,_b;const currentSkeleton=(_a61=this._renderManagerService.withCurrentTypeOfUnit(core.UniverInstanceType.UNIVER_SHEET,exports.SheetSkeletonManagerService))==null?void 0:_a61.getCurrent();if(currentSkeleton==null)return null;const{skeleton}=currentSkeleton,documentModel=(_b=skeleton.getBlankCellDocumentModel())==null?void 0:_b.documentModel,documentData={...documentModel==null?void 0:documentModel.getSnapshot(),...snapshot};return documentModel==null||documentModel.reset(documentData),documentModel==null?void 0:documentModel.getSnapshot()}_onPastePlainText(pasteTo,text,payload){const{range,unitId,subUnitId}=pasteTo;let cellValue;if(/\r|\n/.test(text)||core.Tools.isLegalUrl(text)){const body=generateBody(text),p=this._generateDocumentDataModelSnapshot({body});cellValue={[range.rows[0]]:{[range.cols[0]]:{p}}}}else core.isFormulaString(text)?cellValue={[range.rows[0]]:{[range.cols[0]]:{f:text}}}:cellValue={[range.rows[0]]:{[range.cols[0]]:{v:text}}};const setRangeValuesParams={unitId,subUnitId,cellValue};return{redos:[{id:sheets.SetRangeValuesMutation.id,params:setRangeValuesParams}],undos:[{id:sheets.SetRangeValuesMutation.id,params:sheets.SetRangeValuesUndoMutationFactory(this._injector,setRangeValuesParams)}]}}_onPasteCells(pasteFrom,pasteTo,data,payload){return this._injector.invoke(accessor=>getDefaultOnPasteCellMutations(pasteFrom,pasteTo,data,payload,accessor))}_initSpecialPasteHooks(){const self=this,specialPasteValueHook={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE,specialPasteInfo:{label:"specialPaste.value"},onPasteCells:__name((pasteFrom,pasteTo,data)=>this._injector.invoke(accessor=>getSetCellValueMutations(pasteTo,pasteFrom,data,accessor)),"onPasteCells")},specialPasteFormatHook={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,specialPasteInfo:{label:"specialPaste.format"},onPasteCells:__name((pasteFrom,pasteTo,matrix)=>{const redoMutationsInfo=[],undoMutationsInfo=[],{undos:styleUndos,redos:styleRedos}=this._injector.invoke(accessor=>getClearCellStyleMutations(pasteTo,matrix,accessor));redoMutationsInfo.push(...styleRedos),undoMutationsInfo.push(...styleUndos);const{undos:mergeUndos,redos:mergeRedos}=this._injector.invoke(accessor=>getClearAndSetMergeMutations(pasteTo,matrix,accessor));redoMutationsInfo.push(...mergeRedos),undoMutationsInfo.push(...mergeUndos);const{undos:setStyleUndos,redos:setStyleRedos}=this._injector.invoke(accessor=>getSetCellStyleMutations(pasteTo,matrix,accessor));return redoMutationsInfo.push(...setStyleRedos),undoMutationsInfo.push(...setStyleUndos),{undos:undoMutationsInfo,redos:redoMutationsInfo}},"onPasteCells")},specialPasteColWidthHook={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH,specialPasteInfo:{label:"specialPaste.colWidth"},onPasteCells(){return{undos:[],redos:[]}},onPasteColumns(pasteTo,colProperties,payload){var _a61,_b;const workbook=self._currentUniverSheet.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=workbook.getUnitId(),subUnitId=(_a61=workbook.getActiveSheet())==null?void 0:_a61.getSheetId();if(!unitId||!subUnitId)throw new Error("Cannot find unitId or subUnitId");const redoMutations=[],undoMutations=[],currentSheet=self._getWorksheet(unitId,subUnitId),{range}=pasteTo,pasteToCols=range.cols,startColumn=pasteToCols[0],maxColumn=currentSheet.getMaxColumns(),addingColsCount=range.cols[range.cols.length-1]-maxColumn,existingColsCount=colProperties.length-addingColsCount,defaultColumnWidth=(_b=self._configService.getConfig(core.DEFAULT_WORKSHEET_COLUMN_WIDTH_KEY))!=null?_b:core.DEFAULT_WORKSHEET_COLUMN_WIDTH,setColPropertyMutation={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:Math.min(range.cols[range.cols.length-1],maxColumn),startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1]}],colWidth:colProperties.slice(0,existingColsCount).reduce((p,c,index)=>{var _a62;return p[index+startColumn]=c.width?Math.max(+c.width,(_a62=currentSheet.getColumnWidth(pasteToCols[index]))!=null?_a62:defaultColumnWidth):defaultColumnWidth,p},{})},undoSetColPropertyMutation={unitId,subUnitId,ranges:[{startRow:range.rows[0],endRow:Math.min(range.cols[range.cols.length-1],maxColumn),startColumn:range.cols[0],endColumn:range.cols[range.cols.length-1]}],colWidth:colProperties.slice(0,existingColsCount).reduce((p,c,index)=>{var _a62;return p[index+startColumn]=(_a62=currentSheet.getColumnWidth(pasteToCols[index]))!=null?_a62:defaultColumnWidth,p},{})};return redoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:setColPropertyMutation}),undoMutations.push({id:sheets.SetWorksheetColWidthMutation.id,params:undoSetColPropertyMutation}),{redos:redoMutations,undos:undoMutations}}},specialPasteBesidesBorder={id:PREDEFINED_HOOK_NAME.SPECIAL_PASTE_BESIDES_BORDER,specialPasteInfo:{label:"specialPaste.besidesBorder"},onPasteCells:__name((pasteFrom,pasteTo,matrix,payload)=>{self._currentUniverSheet.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);const redoMutationsInfo=[],undoMutationsInfo=[],{range,unitId,subUnitId}=pasteTo,valueMatrix=new core.ObjectMatrix;matrix.forValue((row,col,value)=>{const style=value.s;if(typeof style=="object"){const newValue=core.Tools.deepClone(value);newValue.s&&(newValue.s={...style,bd:null}),valueMatrix.setValue(range.rows[row],range.cols[col],newValue)}});const setValuesMutation={unitId,subUnitId,cellValue:valueMatrix.getData()};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:setValuesMutation});const undoSetValuesMutation=this._injector.invoke(sheets.SetRangeValuesUndoMutationFactory,setValuesMutation);undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoSetValuesMutation});const{undos,redos}=this._injector.invoke(accessor=>getClearAndSetMergeMutations(pasteTo,matrix,accessor));return undoMutationsInfo.push(...undos),redoMutationsInfo.push(...redos),{redos:redoMutationsInfo,undos:undoMutationsInfo}},"onPasteCells")};return[specialPasteValueHook,specialPasteFormatHook,specialPasteColWidthHook,specialPasteBesidesBorder]}_getWorksheet(unitId,subUnitId){var _a61;const worksheet=(_a61=this._currentUniverSheet.getUniverSheetInstance(unitId))==null?void 0:_a61.getSheetBySheetId(subUnitId);if(!worksheet)throw new Error(`[SheetClipboardController]: cannot find a worksheet with unitId ${unitId} and subUnitId ${subUnitId}.`);return worksheet}_initCommandListener(){var _a61;this.disposeWithMe(this._commandService.onCommandExecuted(command=>{command.id===AddWorksheetMergeCommand.id?this._sheetClipboardService.removeMarkSelection():shouldRemoveShapeIds.includes(command.id)&&this._sheetClipboardService.removeMarkSelection()}));const sheetsUIConfig=this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(_a61=sheetsUIConfig==null?void 0:sheetsUIConfig.clipboardConfig)!=null&&_a61.hidePasteOptions||this.disposeWithMe(this._commandService.onCommandExecuted(command=>{RemovePasteMenuCommands.includes(command.id)&&this._sheetClipboardService.disposePasteOptionsCache()}))}_initUIComponents(){var _a61;const sheetsUIConfig=this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(_a61=sheetsUIConfig==null?void 0:sheetsUIConfig.clipboardConfig)!=null&&_a61.hidePasteOptions||this.disposeWithMe(this._uiPartsService.registerComponent(ui.BuiltInUIPart.CONTENT,()=>core.connectInjector(ClipboardPopupMenu,this._injector)))}},__name(_a27,"SheetClipboardController"),_a27);SheetClipboardController=__decorateClass$v([__decorateParam$v(0,core.Inject(core.Injector)),__decorateParam$v(1,core.IUniverInstanceService),__decorateParam$v(2,engineRender.IRenderManagerService),__decorateParam$v(3,core.ICommandService),__decorateParam$v(4,core.IContextService),__decorateParam$v(5,core.IConfigService),__decorateParam$v(6,ISheetClipboardService),__decorateParam$v(7,ui.IMessageService),__decorateParam$v(8,core.Inject(core.LocaleService)),__decorateParam$v(9,ui.IUIPartsService)],SheetClipboardController);var __defProp$u=Object.defineProperty,__getOwnPropDesc$u=Object.getOwnPropertyDescriptor,__decorateClass$u=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$u(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$u(target,key,result),result},"__decorateClass$u"),__decorateParam$u=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$u"),_a28;exports.DragManagerService=(_a28=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService){super();__publicField(this,"_currentCell$",new rxjs.Subject);__publicField(this,"currentCell$",this._currentCell$.asObservable().pipe(rxjs.distinctUntilChanged((pre,aft)=>{var _a61,_b,_c,_d,_e,_f,_g,_h;return((_a61=pre==null?void 0:pre.location)==null?void 0:_a61.unitId)===((_b=aft==null?void 0:aft.location)==null?void 0:_b.unitId)&&((_c=pre==null?void 0:pre.location)==null?void 0:_c.subUnitId)===((_d=aft==null?void 0:aft.location)==null?void 0:_d.subUnitId)&&((_e=pre==null?void 0:pre.location)==null?void 0:_e.row)===((_f=aft==null?void 0:aft.location)==null?void 0:_f.row)&&((_g=pre==null?void 0:pre.location)==null?void 0:_g.col)===((_h=aft==null?void 0:aft.location)==null?void 0:_h.col)})));__publicField(this,"_endCell$",new rxjs.Subject);__publicField(this,"endCell$",this._endCell$.asObservable());this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._endCell$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook||(this._currentCell$.next(null),this._endCell$.next(null))}))}_calcActiveCell(offsetX,offsetY){const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const worksheet=workbook.getActiveSheet();if(!worksheet)return;const currentRender=this._renderManagerService.getRenderById(workbook.getUnitId());if(!currentRender)return;const skeletonParam=currentRender.with(exports.SheetSkeletonManagerService).getCurrent(),scrollInfo=currentRender.with(exports.SheetScrollManagerService).getCurrentScrollState();if(!(!skeletonParam||!scrollInfo||!currentRender))return getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY)}onDragOver(evt){const{offsetX,offsetY,dataTransfer}=evt,activeCell=this._calcActiveCell(offsetX,offsetY);if(!activeCell){this._currentCell$.next(null);return}const{location,position}=activeCell;this._currentCell$.next({location,position,dataTransfer})}onDrop(evt){const{offsetX,offsetY,dataTransfer}=evt,activeCell=this._calcActiveCell(offsetX,offsetY);if(!activeCell){this._endCell$.next(null);return}const{location,position}=activeCell;this._endCell$.next({location,position,dataTransfer})}},__name(_a28,"DragManagerService"),_a28);exports.DragManagerService=__decorateClass$u([__decorateParam$u(0,core.IUniverInstanceService),__decorateParam$u(1,engineRender.IRenderManagerService)],exports.DragManagerService);var __defProp$t=Object.defineProperty,__getOwnPropDesc$t=Object.getOwnPropertyDescriptor,__decorateClass$t=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$t(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$t(target,key,result),result},"__decorateClass$t"),__decorateParam$t=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$t"),_a29;exports.DragRenderController=(_a29=class extends core.Disposable{constructor(_context,_renderManagerService,_dragManagerService,_sheetSkeletonManagerService){super(),this._context=_context,this._renderManagerService=_renderManagerService,this._dragManagerService=_dragManagerService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._initDragEvent()}_initDragEvent(){const disposeSet=new core.DisposableCollection,handleSkeletonChange=__name(skeletonParam=>{if(disposeSet.dispose(),!skeletonParam)return;const{scene}=this._context,dragOverSub=scene.onDragOver$.subscribeEvent(evt=>{this._dragManagerService.onDragOver(evt)}),dropSub=scene.onDrop$.subscribeEvent(evt=>{this._dragManagerService.onDrop(evt)});disposeSet.add({dispose(){dragOverSub.unsubscribe(),dropSub.unsubscribe()}})},"handleSkeletonChange");handleSkeletonChange(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(skeletonParam=>{handleSkeletonChange(skeletonParam)}))}},__name(_a29,"DragRenderController"),_a29);exports.DragRenderController=__decorateClass$t([__decorateParam$t(1,engineRender.IRenderManagerService),__decorateParam$t(2,core.Inject(exports.DragManagerService)),__decorateParam$t(3,core.Inject(exports.SheetSkeletonManagerService))],exports.DragRenderController);const calcDocRangePositions=__name((range,skeleton)=>{var _a61,_b,_c,_d,_e;const startPosition=skeleton.findNodePositionByCharIndex(range.startOffset,!0,range.segmentId,-1),skeletonData=skeleton.getSkeletonData();let end=range.endOffset;if(range.segmentId){const root=(_e=Array.from((_b=(_a61=skeletonData==null?void 0:skeletonData.skeFooters.get(range.segmentId))==null?void 0:_a61.values())!=null?_b:[])[0])!=null?_e:Array.from((_d=(_c=skeletonData==null?void 0:skeletonData.skeHeaders.get(range.segmentId))==null?void 0:_c.values())!=null?_d:[])[0];root&&(end=Math.min(root.ed,end))}const endPosition=skeleton.findNodePositionByCharIndex(end,!0,range.segmentId,-1);if(!endPosition||!startPosition)return;const documentOffsetConfig={docsLeft:0,docsTop:0,pageMarginLeft:0,pageMarginTop:0},convertor=new docsUi.NodePositionConvertToCursor(documentOffsetConfig,skeleton),{borderBoxPointGroup}=convertor.getRangePointData(startPosition,endPosition);return docsUi.getLineBounding(borderBoxPointGroup).map(rect=>({top:rect.top,bottom:rect.bottom,left:rect.left,right:rect.right}))},"calcDocRangePositions"),calcDocGlyphPosition=__name((glyph,skeleton,pageIndex=-1)=>{const start=skeleton.findPositionByGlyph(glyph,pageIndex);if(!start)return;const startPosition={...start,isBack:!0},documentOffsetConfig={docsLeft:0,docsTop:0,pageMarginLeft:0,pageMarginTop:0},convertor=new docsUi.NodePositionConvertToCursor(documentOffsetConfig,skeleton),{borderBoxPointGroup}=convertor.getRangePointData(startPosition,startPosition),rect=docsUi.getLineBounding(borderBoxPointGroup)[0];return{top:rect.top,bottom:rect.bottom,left:rect.left,right:rect.right}},"calcDocGlyphPosition"),calcLinkPosition=__name((skeleton,range,paddingLeft=0,paddingTop=0)=>{const rects=calcDocRangePositions({startOffset:range.startIndex,endOffset:range.endIndex+1,collapsed:!1},skeleton);if(rects)return{rects:rects.map(rect=>({top:rect.top+paddingTop,bottom:rect.bottom+paddingTop,left:rect.left+paddingLeft,right:rect.right+paddingLeft})),range}},"calcLinkPosition"),calcBulletPosition=__name((skeleton,paragraph,paddingLeft=0,paddingTop=0)=>{var _a61,_b,_c;const node=skeleton.findNodeByCharIndex(paragraph.startIndex),divide=node==null?void 0:node.parent,line=divide==null?void 0:divide.parent,column=line==null?void 0:line.parent,targetLine=column==null?void 0:column.lines.find(l=>l.paragraphStart&&l.paragraphIndex===paragraph.startIndex),bulletNode=(_c=(_b=(_a61=targetLine==null?void 0:targetLine.divides)==null?void 0:_a61[0])==null?void 0:_b.glyphGroup)==null?void 0:_c[0];if(!bulletNode||!bulletNode)return;const rect=calcDocGlyphPosition(bulletNode,skeleton);if(rect)return{rect:{top:rect.top+paddingTop,bottom:rect.bottom+paddingTop,left:rect.left+paddingLeft,right:rect.right+paddingLeft},segmentId:void 0,segmentPageIndex:-1,paragraph}},"calcBulletPosition"),calculateDocSkeletonRects=__name((docSkeleton,paddingLeft=0,paddingTop=0)=>{var _a61,_b,_c,_d,_e,_f,_g;const docModel=docSkeleton.getViewModel().getDataModel(),hyperLinks=(_c=(_b=(_a61=docModel.getBody())==null?void 0:_a61.customRanges)==null?void 0:_b.filter(range=>range.rangeType===core.CustomRangeType.HYPERLINK))!=null?_c:[],checkLists=(_f=(_e=(_d=docModel.getBody())==null?void 0:_d.paragraphs)==null?void 0:_e.filter(p=>{var _a62;return((_a62=p.bullet)==null?void 0:_a62.listType.indexOf(core.PresetListType.CHECK_LIST))===0}))!=null?_f:[],drawings=(_g=docSkeleton.getSkeletonData())==null?void 0:_g.pages[0].skeDrawings;return{links:hyperLinks.map(link=>calcLinkPosition(docSkeleton,link,paddingLeft,paddingTop)).filter(Boolean),checkLists:checkLists.map(list=>calcBulletPosition(docSkeleton,list,paddingLeft,paddingTop)).filter(Boolean),drawings:drawings?Array.from(drawings.keys()).map(key=>({drawingId:key,rect:{top:drawings.get(key).aTop,bottom:drawings.get(key).aTop+drawings.get(key).width,left:drawings.get(key).aLeft,right:drawings.get(key).aLeft+drawings.get(key).height}})):[]}},"calculateDocSkeletonRects");function calcPadding(cell,font,isNum){var _a61,_b,_c,_d;const height=(_b=(_a61=font.documentSkeleton.getSkeletonData())==null?void 0:_a61.pages[0].height)!=null?_b:0,width=(_d=(_c=font.documentSkeleton.getSkeletonData())==null?void 0:_c.pages[0].width)!=null?_d:0,vt=font.verticalAlign,ht=font.horizontalAlign;let paddingTop=0;switch(vt){case core.VerticalAlign.UNSPECIFIED:case core.VerticalAlign.BOTTOM:paddingTop=cell.mergeInfo.endY-cell.mergeInfo.startY-height;break;case core.VerticalAlign.MIDDLE:paddingTop=(cell.mergeInfo.endY-cell.mergeInfo.startY-height)/2;break}let paddingLeft=0;switch(ht){case core.HorizontalAlign.RIGHT:paddingLeft=cell.mergeInfo.endX-cell.mergeInfo.startX-width;break;case core.HorizontalAlign.CENTER:paddingLeft=(cell.mergeInfo.endX-cell.mergeInfo.startX-width)/2;break;case core.HorizontalAlign.UNSPECIFIED:{isNum&&(paddingLeft=cell.mergeInfo.endX-cell.mergeInfo.startX-width);break}}return{paddingLeft,paddingTop}}__name(calcPadding,"calcPadding");const getCustomRangePosition=__name((injector,unitId,subUnitId,row,col,rangeId)=>{var _a61,_b,_c;const univerInstanceService=injector.get(core.IUniverInstanceService),renderManagerService=injector.get(engineRender.IRenderManagerService),workbook=univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const worksheet=workbook.getSheetBySheetId(subUnitId);if(!worksheet)return null;const currentRender=renderManagerService.getRenderById(workbook.getUnitId()),skeletonParam=currentRender==null?void 0:currentRender.with(exports.SheetSkeletonManagerService).getWorksheetSkeleton(worksheet.getSheetId()),skeleton=skeletonParam==null?void 0:skeletonParam.skeleton;if(!skeleton||!currentRender)return;const font=skeleton.getFont(row,col),docSkeleton=font==null?void 0:font.documentSkeleton;if(!docSkeleton)return null;const customRange=(_b=(_a61=docSkeleton.getViewModel().getBody())==null?void 0:_a61.customRanges)==null?void 0:_b.find(range=>range.rangeId===rangeId);if(!customRange)return null;const PADDING=docsUi.DOC_VERTICAL_PADDING,cellIndex=skeleton.getCellWithCoordByIndex(row,col);let{actualColumn,actualRow}=cellIndex;skeleton.overflowCache.forValue((r2,c,range)=>{range.startRow<=actualRow&&range.endRow>=actualRow&&range.startColumn<=actualColumn&&range.endColumn>=actualColumn&&(actualColumn=c,actualRow=r2)});const actualCell=skeleton.getCellWithCoordByIndex(actualRow,actualColumn),cellData=worksheet.getCell(actualCell.actualRow,actualCell.actualColumn),{topOffset=0,leftOffset=0}=(_c=cellData==null?void 0:cellData.fontRenderExtension)!=null?_c:{},{paddingLeft,paddingTop}=calcPadding(actualCell,font,!1),rects=calcDocRangePositions({startOffset:customRange.startIndex,endOffset:customRange.endIndex,collapsed:!1},docSkeleton);return{rects:rects==null?void 0:rects.map(rect=>({top:rect.top+actualCell.mergeInfo.startY+paddingTop+topOffset+PADDING,bottom:rect.bottom+actualCell.mergeInfo.startY+paddingTop+topOffset+PADDING,left:rect.left+actualCell.mergeInfo.startX+paddingLeft+leftOffset,right:rect.right+actualCell.mergeInfo.startX+paddingLeft+leftOffset})),customRange,label:docSkeleton.getViewModel().getBody().dataStream.slice(customRange.startIndex,customRange.endIndex+1)}},"getCustomRangePosition"),getEditingCustomRangePosition=__name((injector,unitId,subUnitId,row,col,rangeId)=>{var _a61,_b,_c;const editorBridgeService=injector.get(IEditorBridgeService),state=editorBridgeService.getEditCellState();if(!state||!editorBridgeService.isVisible().visible)return null;const{editorUnitId,unitId:editingUnitId,sheetId,row:editRow,column:editCol}=state;if(unitId!==editingUnitId||subUnitId!==sheetId||editRow!==row||editCol!==col)return null;const renderManagerService=injector.get(engineRender.IRenderManagerService),renderer=renderManagerService.getRenderById(editorUnitId),sheetRenderer=renderManagerService.getRenderById(unitId);if(!renderer||!sheetRenderer)return null;const docSkeleton=renderer.with(docs.DocSkeletonManagerService).getSkeleton(),sheetSkeleton=(_a61=sheetRenderer.with(exports.SheetSkeletonManagerService).getWorksheetSkeleton(sheetId))==null?void 0:_a61.skeleton;if(!docSkeleton||!sheetSkeleton)return null;const customRange=(_c=(_b=docSkeleton.getViewModel().getBody())==null?void 0:_b.customRanges)==null?void 0:_c.find(range=>range.rangeId===rangeId);if(!customRange)return null;const PADDING=4,rects=calcDocRangePositions({startOffset:customRange.startIndex,endOffset:customRange.endIndex,collapsed:!1},docSkeleton),canvasClientRect=renderer.engine.getCanvasElement().getBoundingClientRect();return{rects:rects==null?void 0:rects.map(rect=>({top:rect.top+canvasClientRect.top-PADDING,bottom:rect.bottom+canvasClientRect.top+PADDING,left:rect.left+canvasClientRect.left,right:rect.right+canvasClientRect.left})),customRange,label:docSkeleton.getViewModel().getBody().dataStream.slice(customRange.startIndex,customRange.endIndex+1)}},"getEditingCustomRangePosition");var __defProp$s=Object.defineProperty,__getOwnPropDesc$s=Object.getOwnPropertyDescriptor,__decorateClass$s=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$s(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$s(target,key,result),result},"__decorateClass$s"),__decorateParam$s=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$s");function getLocationBase(location){const{workbook,worksheet,...locBase}=location;return locBase}__name(getLocationBase,"getLocationBase");var _a30;exports.HoverManagerService=(_a30=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService){super();__publicField(this,"_currentCell$",new rxjs.BehaviorSubject(null));__publicField(this,"_currentRichText$",new rxjs.BehaviorSubject(null));__publicField(this,"_currentClickedCell$",new rxjs.Subject);__publicField(this,"_currentDbClickedCell$",new rxjs.Subject);__publicField(this,"_currentCellWithEvent$",new rxjs.Subject);__publicField(this,"_currentPointerDownCell$",new rxjs.Subject);__publicField(this,"_currentPointerUpCell$",new rxjs.Subject);__publicField(this,"_currentHoveredRowHeader$",new rxjs.BehaviorSubject(null));__publicField(this,"_currentHoveredColHeader$",new rxjs.BehaviorSubject(null));__publicField(this,"_currentRowHeaderClick$",new rxjs.Subject);__publicField(this,"_currentColHeaderClick$",new rxjs.Subject);__publicField(this,"_currentRowHeaderDbClick$",new rxjs.Subject);__publicField(this,"_currentColHeaderDbClick$",new rxjs.Subject);__publicField(this,"_currentRowHeaderPointerDown$",new rxjs.Subject);__publicField(this,"_currentColHeaderPointerDown$",new rxjs.Subject);__publicField(this,"_currentRowHeaderPointerUp$",new rxjs.Subject);__publicField(this,"_currentColHeaderPointerUp$",new rxjs.Subject);__publicField(this,"currentCell$",this._currentCell$.asObservable().pipe(rxjs.distinctUntilChanged((pre,aft)=>{var _a61,_b,_c,_d,_e,_f,_g,_h;return((_a61=pre==null?void 0:pre.location)==null?void 0:_a61.unitId)===((_b=aft==null?void 0:aft.location)==null?void 0:_b.unitId)&&((_c=pre==null?void 0:pre.location)==null?void 0:_c.subUnitId)===((_d=aft==null?void 0:aft.location)==null?void 0:_d.subUnitId)&&((_e=pre==null?void 0:pre.location)==null?void 0:_e.row)===((_f=aft==null?void 0:aft.location)==null?void 0:_f.row)&&((_g=pre==null?void 0:pre.location)==null?void 0:_g.col)===((_h=aft==null?void 0:aft.location)==null?void 0:_h.col)})));__publicField(this,"currentRichText$",this._currentRichText$.pipe(rxjs.distinctUntilChanged((pre,aft)=>{var _a61,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m,_n,_o,_p;return((_a61=pre==null?void 0:pre.location)==null?void 0:_a61.unitId)===((_b=aft==null?void 0:aft.location)==null?void 0:_b.unitId)&&((_c=pre==null?void 0:pre.location)==null?void 0:_c.subUnitId)===((_d=aft==null?void 0:aft.location)==null?void 0:_d.subUnitId)&&((_e=pre==null?void 0:pre.location)==null?void 0:_e.row)===((_f=aft==null?void 0:aft.location)==null?void 0:_f.row)&&((_g=pre==null?void 0:pre.location)==null?void 0:_g.col)===((_h=aft==null?void 0:aft.location)==null?void 0:_h.col)&&((_i=pre==null?void 0:pre.customRange)==null?void 0:_i.rangeId)===((_j=aft==null?void 0:aft.customRange)==null?void 0:_j.rangeId)&&((_k=pre==null?void 0:pre.bullet)==null?void 0:_k.startIndex)===((_l=aft==null?void 0:aft.bullet)==null?void 0:_l.startIndex)&&((_m=pre==null?void 0:pre.customRange)==null?void 0:_m.startIndex)===((_n=aft==null?void 0:aft.customRange)==null?void 0:_n.startIndex)&&((_o=pre==null?void 0:pre.customRange)==null?void 0:_o.endIndex)===((_p=aft==null?void 0:aft.customRange)==null?void 0:_p.endIndex)&&(pre==null?void 0:pre.drawing)===(aft==null?void 0:aft.drawing)}),rxjs.map(cell=>cell&&{unitId:cell.location.unitId,subUnitId:cell.location.subUnitId,row:cell.location.row,col:cell.location.col,customRange:cell.customRange,bullet:cell.bullet,rect:cell.rect,drawing:cell.drawing})));__publicField(this,"currentCellPosWithEvent$",this._currentCellWithEvent$.pipe(rxjs.distinctUntilChanged((pre,aft)=>{var _a61,_b,_c,_d,_e,_f,_g,_h;return((_a61=pre==null?void 0:pre.location)==null?void 0:_a61.unitId)===((_b=aft==null?void 0:aft.location)==null?void 0:_b.unitId)&&((_c=pre==null?void 0:pre.location)==null?void 0:_c.subUnitId)===((_d=aft==null?void 0:aft.location)==null?void 0:_d.subUnitId)&&((_e=pre==null?void 0:pre.location)==null?void 0:_e.row)===((_f=aft==null?void 0:aft.location)==null?void 0:_f.row)&&((_g=pre==null?void 0:pre.location)==null?void 0:_g.col)===((_h=aft==null?void 0:aft.location)==null?void 0:_h.col)}),rxjs.map(cell=>cell&&{unitId:cell.location.unitId,subUnitId:cell.location.subUnitId,row:cell.location.row,col:cell.location.col,event:cell.event})));__publicField(this,"currentPosition$",this._currentCell$.asObservable());__publicField(this,"currentClickedCell$",this._currentClickedCell$.asObservable());__publicField(this,"currentDbClickedCell$",this._currentDbClickedCell$.asObservable());__publicField(this,"currentPointerDownCell$",this._currentPointerDownCell$.asObservable());__publicField(this,"currentPointerUpCell$",this._currentPointerUpCell$.asObservable());__publicField(this,"currentHoveredRowHeader$",this._currentHoveredRowHeader$.asObservable());__publicField(this,"currentHoveredColHeader$",this._currentHoveredColHeader$.asObservable());__publicField(this,"currentRowHeaderClick$",this._currentRowHeaderClick$.asObservable());__publicField(this,"currentColHeaderClick$",this._currentColHeaderClick$.asObservable());__publicField(this,"currentRowHeaderDbClick$",this._currentRowHeaderDbClick$.asObservable());__publicField(this,"currentColHeaderDbClick$",this._currentColHeaderDbClick$.asObservable());__publicField(this,"currentRowHeaderPointerDown$",this._currentRowHeaderPointerDown$.asObservable());__publicField(this,"currentColHeaderPointerDown$",this._currentColHeaderPointerDown$.asObservable());__publicField(this,"currentRowHeaderPointerUp$",this._currentRowHeaderPointerUp$.asObservable());__publicField(this,"currentColHeaderPointerUp$",this._currentColHeaderPointerUp$.asObservable());this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._initCellDisposableListener()}dispose(){super.dispose(),this._currentCell$.complete(),this._currentClickedCell$.complete(),this._currentPointerDownCell$.complete(),this._currentPointerUpCell$.complete(),this._currentCellWithEvent$.complete()}_initCellDisposableListener(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook||this._currentCell$.next(null)})),this.disposeWithMe(this._univerInstanceService.unitDisposed$.subscribe(unit=>{var _a61,_b;((_a61=this._currentCell$.getValue())==null?void 0:_a61.location.unitId)===unit.getUnitId()&&this._currentCell$.next(null),((_b=this._currentRichText$.getValue())==null?void 0:_b.location.unitId)===unit.getUnitId()&&this._currentRichText$.next(null)}))}_getCalcDeps(unitId){const workbook=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const worksheet=workbook.getActiveSheet();if(!worksheet)return null;const currentRender=this._renderManagerService.getRenderById(workbook.getUnitId());if(!currentRender)return null;const skeletonParam=currentRender.with(exports.SheetSkeletonManagerService).getWorksheetSkeleton(worksheet.getSheetId());if(!skeletonParam)return null;const scrollManagerService=currentRender.with(exports.SheetScrollManagerService);if(!(!(scrollManagerService!=null&&scrollManagerService.getCurrentScrollState())||!currentRender))return{currentRender,workbook,worksheet,skeletonParam}}_calcActiveCell(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY){var _a61,_b,_c;const hoverPosition=getHoverCellPosition(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY),skeleton=skeletonParam.skeleton;if(!hoverPosition)return null;const{position,overflowLocation,location}=hoverPosition,font=skeleton.getFont(overflowLocation.row,overflowLocation.col);let customRange=null,bullet=null,drawing=null;const cell=skeleton.getCellWithCoordByIndex(overflowLocation.row,overflowLocation.col),cellData=worksheet.getCell(overflowLocation.row,overflowLocation.col),{topOffset=0,leftOffset=0}=(_a61=cellData==null?void 0:cellData.fontRenderExtension)!=null?_a61:{};if(font){const{paddingLeft,paddingTop}=calcPadding(cell,font,(cellData==null?void 0:cellData.v)!==null&&(cellData==null?void 0:cellData.v)!==void 0?!Number.isNaN(+cellData.v):!1),rects=calculateDocSkeletonRects(font.documentSkeleton,paddingLeft,paddingTop),innerX=offsetX-position.startX-leftOffset,innerY=offsetY-position.startY-topOffset;customRange=rects.links.find(link=>link.rects.some(rect2=>rect2.left<=innerX&&innerX<=rect2.right&&rect2.top<=innerY&&innerY<=rect2.bottom)),bullet=rects.checkLists.find(list=>list.rect.left<=innerX&&innerX<=list.rect.right&&list.rect.top<=innerY&&innerY<=list.rect.bottom),drawing=rects.drawings.find(drawing2=>drawing2.rect.left<=innerX&&innerX<=drawing2.rect.right&&drawing2.rect.top<=innerY&&innerY<=drawing2.rect.bottom)}const rect=(_c=(_b=customRange==null?void 0:customRange.rects.pop())!=null?_b:bullet==null?void 0:bullet.rect)!=null?_c:drawing==null?void 0:drawing.rect;return{location,position,overflowLocation,customRange:customRange==null?void 0:customRange.range,bullet:bullet==null?void 0:bullet.paragraph,drawing:drawing==null?void 0:drawing.drawingId,rect:rect&&{top:rect.top+cell.mergeInfo.startY+topOffset,bottom:rect.bottom+cell.mergeInfo.startY+topOffset,left:rect.left+cell.mergeInfo.startX+leftOffset,right:rect.right+cell.mergeInfo.startX+leftOffset}}}_calcActiveRowHeader(unitId,offsetX,offsetY){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,worksheet,skeletonParam}=deps,{scaleY}=currentRender.scene.getAncestorScale(),activeViewport=currentRender.scene.getViewports().find(v=>v.isHit(new engineRender.Vector2(offsetX,offsetY)));if(!activeViewport||activeViewport.viewportKey!==engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP&&activeViewport.viewportKey!==engineRender.SHEET_VIEWPORT_KEY.VIEW_ROW_BOTTOM)return;const scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},index=skeletonParam.skeleton.getRowIndexByOffsetY(offsetY,scaleY,scrollXY);return{unitId,index,subUnitId:worksheet.getSheetId()}}_calcActiveColHeader(unitId,offsetX,offsetY){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,worksheet,skeletonParam}=deps,{scaleX}=currentRender.scene.getAncestorScale(),activeViewport=currentRender.scene.getViewports().find(v=>v.isHit(new engineRender.Vector2(offsetX,offsetY)));if(!activeViewport||activeViewport.viewportKey!==engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT&&activeViewport.viewportKey!==engineRender.SHEET_VIEWPORT_KEY.VIEW_COLUMN_RIGHT)return;const scrollXY={x:activeViewport.viewportScrollX,y:activeViewport.viewportScrollY},index=skeletonParam.skeleton.getColumnIndexByOffsetX(offsetX,scaleX,scrollXY);return{unitId,index,subUnitId:worksheet.getSheetId()}}triggerPointerDown(unitId,event){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,workbook,worksheet,skeletonParam}=deps,activeCell=this._calcActiveCell(currentRender,workbook,worksheet,skeletonParam,event.offsetX,event.offsetY);if(activeCell&&activeCell.location){const{unitId:unitId2,subUnitId,row,col}=getLocationBase(activeCell.location);this._currentPointerDownCell$.next({unitId:unitId2,subUnitId,row,col,event})}}triggerPointerUp(unitId,event){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,workbook,worksheet,skeletonParam}=deps,activeCell=this._calcActiveCell(currentRender,workbook,worksheet,skeletonParam,event.offsetX,event.offsetY);if(activeCell){const location=getLocationBase(activeCell.location);this._currentPointerUpCell$.next({...location,event})}}triggerMouseMove(unitId,event){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,workbook,worksheet,skeletonParam}=deps,activeCell=this._calcActiveCell(currentRender,workbook,worksheet,skeletonParam,event.offsetX,event.offsetY);this._currentCell$.next(activeCell&&{location:getLocationBase(activeCell.location),position:activeCell.position}),this._currentRichText$.next(activeCell&&{...activeCell,location:getLocationBase(activeCell.overflowLocation)}),this._currentCellWithEvent$.next(activeCell&&{...activeCell,location:getLocationBase(activeCell.location),event})}triggerClick(unitId,offsetX,offsetY){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,workbook,worksheet,skeletonParam}=deps,activeCell=this._calcActiveCell(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY);activeCell&&this._currentClickedCell$.next({...activeCell,location:getLocationBase(activeCell.location)})}triggerDbClick(unitId,offsetX,offsetY){const deps=this._getCalcDeps(unitId);if(!deps)return;const{currentRender,workbook,worksheet,skeletonParam}=deps,activeCell=this._calcActiveCell(currentRender,workbook,worksheet,skeletonParam,offsetX,offsetY);activeCell&&this._currentDbClickedCell$.next({...activeCell,location:getLocationBase(activeCell.location)})}triggerScroll(){this._currentCell$.next(null)}triggerRowHeaderClick(unitId,offsetX,offsetY){const pos=this._calcActiveRowHeader(unitId,offsetX,offsetY);pos&&this._currentRowHeaderClick$.next(pos)}triggerColHeaderClick(unitId,offsetX,offsetY){const pos=this._calcActiveColHeader(unitId,offsetX,offsetY);pos&&this._currentColHeaderClick$.next(pos)}triggerRowHeaderDbClick(unitId,offsetX,offsetY){const pos=this._calcActiveRowHeader(unitId,offsetX,offsetY);pos&&this._currentRowHeaderDbClick$.next(pos)}triggerColHeaderDbClick(unitId,offsetX,offsetY){const pos=this._calcActiveColHeader(unitId,offsetX,offsetY);pos&&this._currentColHeaderDbClick$.next(pos)}triggerRowHeaderMouseMove(unitId,offsetX,offsetY){this._currentHoveredRowHeader$.next(this._calcActiveRowHeader(unitId,offsetX,offsetY))}triggerColHeaderMouseMove(unitId,offsetX,offsetY){this._currentHoveredColHeader$.next(this._calcActiveColHeader(unitId,offsetX,offsetY))}triggerRowHeaderPoniterDown(unitId,offsetX,offsetY){const pos=this._calcActiveRowHeader(unitId,offsetX,offsetY);pos&&this._currentRowHeaderPointerDown$.next(pos)}triggerColHeaderPoniterDown(unitId,offsetX,offsetY){const pos=this._calcActiveColHeader(unitId,offsetX,offsetY);pos&&this._currentColHeaderPointerDown$.next(pos)}triggerRowHeaderPoniterUp(unitId,offsetX,offsetY){const pos=this._calcActiveRowHeader(unitId,offsetX,offsetY);pos&&this._currentRowHeaderPointerUp$.next(pos)}triggerColHeaderPoniterUp(unitId,offsetX,offsetY){const pos=this._calcActiveColHeader(unitId,offsetX,offsetY);pos&&this._currentColHeaderPointerUp$.next(pos)}},__name(_a30,"HoverManagerService"),_a30);exports.HoverManagerService=__decorateClass$s([__decorateParam$s(0,core.IUniverInstanceService),__decorateParam$s(1,engineRender.IRenderManagerService)],exports.HoverManagerService);var __defProp$r=Object.defineProperty,__getOwnPropDesc$r=Object.getOwnPropertyDescriptor,__decorateClass$r=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$r(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$r(target,key,result),result},"__decorateClass$r"),__decorateParam$r=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$r");const ALERT_KEY="SHEET_FORCE_STRING_ALERT";var _a31;let ForceStringAlertRenderController=(_a31=class extends core.Disposable{constructor(_context,_hoverManagerService,_cellAlertManagerService,_localeService,_zenZoneService){super(),this._context=_context,this._hoverManagerService=_hoverManagerService,this._cellAlertManagerService=_cellAlertManagerService,this._localeService=_localeService,this._zenZoneService=_zenZoneService,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(cellPos=>{var _a61;if(cellPos){const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const cellData=worksheet.getCell(cellPos.location.row,cellPos.location.col);if((cellData==null?void 0:cellData.t)===core.CellValueType.FORCE_STRING&&cellData.v&&core.isRealNum(cellData.v)){const currentAlert=this._cellAlertManagerService.currentAlert.get(ALERT_KEY),currentLoc=(_a61=currentAlert==null?void 0:currentAlert.alert)==null?void 0:_a61.location;if(currentLoc&¤tLoc.row===cellPos.location.row&¤tLoc.col===cellPos.location.col&¤tLoc.subUnitId===cellPos.location.subUnitId&¤tLoc.unitId===cellPos.location.unitId)return;this._cellAlertManagerService.showAlert({type:CellAlertType.ERROR,title:this._localeService.t("info.error"),message:this._localeService.t("info.forceStringInfo"),location:cellPos.location,width:200,height:74,key:ALERT_KEY});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(visible=>{visible&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(ALERT_KEY)}},__name(_a31,"ForceStringAlertRenderController"),_a31);ForceStringAlertRenderController=__decorateClass$r([__decorateParam$r(1,core.Inject(exports.HoverManagerService)),__decorateParam$r(2,core.Inject(exports.CellAlertManagerService)),__decorateParam$r(3,core.Inject(core.LocaleService)),__decorateParam$r(4,ui.IZenZoneService)],ForceStringAlertRenderController);var __defProp$q=Object.defineProperty,__getOwnPropDesc$q=Object.getOwnPropertyDescriptor,__decorateClass$q=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$q(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$q(target,key,result),result},"__decorateClass$q"),__decorateParam$q=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$q"),_a32;let ForceStringRenderController=(_a32=class extends core.RxDisposable{constructor(_context,_sheetSkeletonManagerService,_sheetInterceptorService){super(),this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._sheetInterceptorService=_sheetInterceptorService,this._initViewModelIntercept()}_initViewModelIntercept(){const FORCE_STRING_MARK={tl:{size:6,color:"#409f11"}};this.disposeWithMe(this._sheetInterceptorService.intercept(sheets.INTERCEPTOR_POINT.CELL_CONTENT,{priority:10,effect:core.InterceptorEffectEnum.Style,handler:__name((cell,pos,next)=>{var _a61;if(!((_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton))return next(cell);const cellRaw=pos.worksheet.getCellRaw(pos.row,pos.col);return!cellRaw||cellRaw.v===null||cellRaw.v===void 0?next(cell):(cell==null?void 0:cell.t)===core.CellValueType.FORCE_STRING&&core.isRealNum(cellRaw.v)?next({...cell,markers:{...cell==null?void 0:cell.markers,...FORCE_STRING_MARK}}):next(cell)},"handler")}))}},__name(_a32,"ForceStringRenderController"),_a32);ForceStringRenderController=__decorateClass$q([__decorateParam$q(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$q(2,core.Inject(sheets.SheetInterceptorService))],ForceStringRenderController);var __defProp$p=Object.defineProperty,__getOwnPropDesc$p=Object.getOwnPropertyDescriptor,__decorateClass$p=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$p(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$p(target,key,result),result},"__decorateClass$p"),__decorateParam$p=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$p"),_a33;exports.HoverRenderController=(_a33=class extends core.Disposable{constructor(_context,_hoverManagerService,_sheetSkeletonManagerService,_scrollManagerService){super();__publicField(this,"_active",!1);this._context=_context,this._hoverManagerService=_hoverManagerService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._scrollManagerService=_scrollManagerService,this._initPointerEvent(),this._initScrollEvent()}get active(){return this._active}_initPointerEvent(){const disposeSet=new core.DisposableCollection,handleSkeletonChange=__name(skeletonParam=>{if(disposeSet.dispose(),!skeletonParam)return;const{mainComponent,unitId,components}=this._context;if(!mainComponent)return;disposeSet.add(mainComponent.onPointerEnter$.subscribeEvent(evt=>{this._active=!0})),disposeSet.add(core.fromEventSubject(mainComponent.onPointerMove$).subscribe(evt=>{this._active=!0,this._hoverManagerService.triggerMouseMove(unitId,evt)})),disposeSet.add(mainComponent.onPointerDown$.subscribeEvent(evt=>{this._hoverManagerService.triggerPointerDown(unitId,evt)})),disposeSet.add(mainComponent.onPointerUp$.subscribeEvent(evt=>{this._hoverManagerService.triggerPointerUp(unitId,evt),this._hoverManagerService.triggerClick(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(mainComponent.onDblclick$.subscribeEvent(evt=>{this._hoverManagerService.triggerDbClick(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(mainComponent.onPointerLeave$.subscribeEvent(()=>{this._active=!1}));const rowHeader=components.get(SHEET_VIEW_KEY.ROW),colHeader=components.get(SHEET_VIEW_KEY.COLUMN);rowHeader&&(disposeSet.add(rowHeader.onPointerMove$.subscribeEvent(evt=>{this._hoverManagerService.triggerRowHeaderMouseMove(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(rowHeader.onPointerDown$.subscribeEvent(evt=>{this._hoverManagerService.triggerRowHeaderPoniterDown(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(rowHeader.onPointerUp$.subscribeEvent(evt=>{this._hoverManagerService.triggerRowHeaderPoniterUp(unitId,evt.offsetX,evt.offsetY),this._hoverManagerService.triggerRowHeaderClick(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(rowHeader.onDblclick$.subscribeEvent(evt=>{this._hoverManagerService.triggerRowHeaderDbClick(unitId,evt.offsetX,evt.offsetY)}))),colHeader&&(disposeSet.add(colHeader.onPointerMove$.subscribeEvent(evt=>{this._hoverManagerService.triggerColHeaderMouseMove(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(colHeader.onPointerDown$.subscribeEvent(evt=>{this._hoverManagerService.triggerColHeaderPoniterDown(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(colHeader.onPointerUp$.subscribeEvent(evt=>{this._hoverManagerService.triggerColHeaderPoniterUp(unitId,evt.offsetX,evt.offsetY),this._hoverManagerService.triggerColHeaderClick(unitId,evt.offsetX,evt.offsetY)})),disposeSet.add(colHeader.onDblclick$.subscribeEvent(evt=>{this._hoverManagerService.triggerColHeaderDbClick(unitId,evt.offsetX,evt.offsetY)})))},"handleSkeletonChange");handleSkeletonChange(this._sheetSkeletonManagerService.getCurrent()),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(skeletonParam=>{handleSkeletonChange(skeletonParam)}))}_initScrollEvent(){this.disposeWithMe(this._scrollManagerService.validViewportScrollInfo$.subscribe(()=>this._hoverManagerService.triggerScroll()))}},__name(_a33,"HoverRenderController"),_a33);exports.HoverRenderController=__decorateClass$p([__decorateParam$p(1,core.Inject(exports.HoverManagerService)),__decorateParam$p(2,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$p(3,core.Inject(exports.SheetScrollManagerService))],exports.HoverRenderController);var __defProp$o=Object.defineProperty,__getOwnPropDesc$o=Object.getOwnPropertyDescriptor,__decorateClass$o=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$o(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$o(target,key,result),result},"__decorateClass$o"),__decorateParam$o=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$o"),_a34;let MarkSelectionRenderController=(_a34=class extends core.Disposable{constructor(_context,_markSelectionService,_commandService,_sheetSkeletonManagerService){super(),this._context=_context,this._markSelectionService=_markSelectionService,this._commandService=_commandService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._initListeners()}_initListeners(){this._addRemoveListener(),this._addRefreshListener()}_addRemoveListener(){const removeCommands=[SetCellEditVisibleOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{removeCommands.includes(command.id)?this._markSelectionService.removeAllShapes():this._markSelectionService.getShapeMap().forEach((shape,id)=>{shape.exits.includes(command.id)&&this._markSelectionService.removeShape(id)})}))}_addRefreshListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(skeleton=>{skeleton&&this._markSelectionService.refreshShapes()}))}},__name(_a34,"MarkSelectionRenderController"),_a34);MarkSelectionRenderController=__decorateClass$o([__decorateParam$o(1,core.Inject(IMarkSelectionService)),__decorateParam$o(2,core.ICommandService),__decorateParam$o(3,core.Inject(exports.SheetSkeletonManagerService))],MarkSelectionRenderController);const mobileSheetBarContainer="univer-mobile-sheet-bar-container",mobileSheetBarSlider="univer-mobile-sheet-bar-slider",mobileSheetBarItem="univer-mobile-sheet-bar-item",mobileSheetBarItemActivated="univer-mobile-sheet-bar-item-activated",styles$6={mobileSheetBarContainer,mobileSheetBarSlider,mobileSheetBarItem,mobileSheetBarItemActivated};function MobileSheetBar(){const workbook=useActiveWorkbook();return workbook?jsxRuntime.jsx(MobileSheetBarImpl,{workbook}):null}__name(MobileSheetBar,"MobileSheetBar");function MobileSheetBarImpl(props){const{workbook}=props,[sheetList,setSheetList]=React.useState([]),[activeKey,setActiveKey]=React.useState(""),tabMapRef=React.useRef(new Map),commandService=core.useDependency(core.ICommandService),updateSheetItems=React.useCallback(()=>{const currentSubUnitId=workbook.getActiveSheet().getSheetId(),sheets2=workbook.getSheets(),activeSheet=workbook.getActiveSheet(),sheetListItems=sheets2.filter(sheet=>!sheet.isSheetHidden()).map((sheet,index)=>{var _a61;return{sheetId:sheet.getSheetId(),label:sheet.getName(),index,selected:activeSheet===sheet,color:(_a61=sheet.getTabColor())!=null?_a61:void 0}});if(setSheetList(sheetListItems),setActiveKey(currentSubUnitId),tabMapRef.current.has(currentSubUnitId)){const element2=tabMapRef.current.get(currentSubUnitId);element2&&element2.scrollIntoView({behavior:"smooth",block:"nearest"})}tabMapRef.current.clear()},[workbook]);React.useEffect(()=>updateSheetItems(),[updateSheetItems]);const onTabClick=React.useCallback(sheetId=>{commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{unitId:workbook.getUnitId(),subUnitId:sheetId})},[commandService,workbook]);return React.useEffect(()=>{const disposable=commandService.onCommandExecuted(commandInfo=>{switch(commandInfo.id){case sheets.SetWorksheetHideMutation.id:case sheets.RemoveSheetMutation.id:case sheets.SetWorksheetNameMutation.id:case sheets.InsertSheetMutation.id:case sheets.SetWorksheetOrderMutation.id:case sheets.SetWorksheetActiveOperation.id:updateSheetItems();break}});return()=>disposable.dispose()},[commandService,updateSheetItems]),jsxRuntime.jsx("div",{className:styles$6.mobileSheetBarContainer,children:jsxRuntime.jsx("div",{className:styles$6.mobileSheetBarSlider,children:sheetList.map(sheet=>jsxRuntime.jsx("div",{className:clsx(styles$6.mobileSheetBarItem,{[styles$6.mobileSheetBarItemActivated]:sheet.sheetId===activeKey}),onClick:__name(()=>onTabClick(sheet.sheetId),"onClick"),ref:__name(element2=>{tabMapRef.current.set(sheet.sheetId,element2)},"ref"),children:sheet.label},sheet.sheetId))})})}__name(MobileSheetBarImpl,"MobileSheetBarImpl");const menuSchema={[ui.ContextMenuPosition.MAIN_AREA]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory}},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}},[ui.ContextMenuPosition.COL_HEADER]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory}},[ui.ContextMenuGroup.LAYOUT]:{order:1},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}},[ui.ContextMenuPosition.ROW_HEADER]:{[ui.ContextMenuGroup.FORMAT]:{[SheetCopyCommand.name]:{order:0,menuItemFactory:CopyMenuItemFactory}},[ui.ContextMenuGroup.LAYOUT]:{order:1},[ui.ContextMenuGroup.DATA]:{order:2},[ui.ContextMenuGroup.OTHERS]:{order:3}}};var __defProp$n=Object.defineProperty,__getOwnPropDesc$n=Object.getOwnPropertyDescriptor,__decorateClass$n=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$n(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$n(target,key,result),result},"__decorateClass$n"),__decorateParam$n=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$n"),_a35;let SheetUIMobileController=(_a35=class extends core.Disposable{constructor(_injector,_componentManager,_layoutService,_commandService,_shortcutService,_menuManagerService,_uiPartsService){super(),this._injector=_injector,this._componentManager=_componentManager,this._layoutService=_layoutService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._menuManagerService=_menuManagerService,this._uiPartsService=_uiPartsService,this._init()}_init(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts(),this._initWorkbenchParts(),this._initFocusHandler()}_initCustomComponents(){const componentManager=this._componentManager;this.disposeWithMe(componentManager.register(MENU_ITEM_INPUT_COMPONENT,MenuItemInput)),this.disposeWithMe(componentManager.register(BORDER_PANEL_COMPONENT,BorderPanel)),this.disposeWithMe(componentManager.register(COLOR_PICKER_COMPONENT,design.ColorPicker)),this.disposeWithMe(componentManager.register(FONT_FAMILY_COMPONENT,ui.FontFamily)),this.disposeWithMe(componentManager.register(FONT_FAMILY_ITEM_COMPONENT,ui.FontFamilyItem)),this.disposeWithMe(componentManager.register(FONT_SIZE_COMPONENT,ui.FontSize)),this.disposeWithMe(componentManager.register(DEFINED_NAME_CONTAINER,DefinedNameContainer))}_initCommands(){[AddWorksheetMergeAllCommand,AddWorksheetMergeCommand,AddWorksheetMergeHorizontalCommand,AddWorksheetMergeVerticalCommand,ChangeZoomRatioCommand,ExpandSelectionCommand,MoveSelectionCommand,MoveSelectionEnterAndTabCommand,RenameSheetOperation,RemoveSheetConfirmCommand,RemoveRowConfirmCommand,RemoveColConfirmCommand,HideRowConfirmCommand,HideColConfirmCommand,ScrollCommand,ScrollToCellCommand,SelectAllCommand,SetActivateCellEditOperation,sheets.SetBoldCommand,SetCellEditVisibleArrowOperation,SetCellEditVisibleOperation,SetCellEditVisibleWithF2Operation,SetRangeBoldCommand,SetRangeItalicCommand,SetRangeUnderlineCommand,SetRangeStrickThroughCommand,SetRangeSubscriptCommand,SetRangeSuperscriptCommand,SetRangeFontSizeCommand,SetRangeFontFamilyCommand,SetRangeTextColorCommand,sheets.SetItalicCommand,sheets.SetStrikeThroughCommand,sheets.SetFontFamilyCommand,sheets.SetFontSizeCommand,SetFormatPainterOperation,SetInfiniteFormatPainterCommand,SetOnceFormatPainterCommand,ApplyFormatPainterCommand,SetScrollOperation,SetScrollRelativeCommand,SetSelectionFrozenCommand,SetRowFrozenCommand,SetColumnFrozenCommand,sheets.SetUnderlineCommand,SetZoomRatioCommand,SetZoomRatioOperation,ShowMenuListCommand,RefillCommand,InsertRangeMoveDownConfirmCommand,DeleteRangeMoveUpConfirmCommand,InsertRangeMoveRightConfirmCommand,DeleteRangeMoveLeftConfirmCommand,SidebarDefinedNameOperation,AutoFillCommand,AutoClearContentCommand,SheetPermissionOpenPanelOperation,SheetPermissionOpenDialogOperation,AddRangeProtectionFromToolbarCommand,AddRangeProtectionFromContextMenuCommand,ViewSheetPermissionFromContextMenuCommand,AddRangeProtectionFromSheetBarCommand,ViewSheetPermissionFromSheetBarCommand,ChangeSheetProtectionFromSheetBarCommand,DeleteRangeProtectionFromContextMenuCommand,SetRangeProtectionFromContextMenuCommand,DeleteWorksheetProtectionFormSheetBarCommand].forEach(c=>{this.disposeWithMe(this._commandService.registerCommand(c))})}_initMenus(){this._menuManagerService.mergeMenu(menuSchema)}_initShortcuts(){[MoveSelectionDownShortcutItem,MoveSelectionUpShortcutItem,MoveSelectionLeftShortcutItem,MoveSelectionRightShortcutItem,MoveSelectionTabShortcutItem,MoveSelectionTabLeftShortcutItem,MoveSelectionEnterShortcutItem,MoveSelectionEnterUpShortcutItem,MoveSelectionEndDownShortcutItem,MoveSelectionEndUpShortcutItem,MoveSelectionEndLeftShortcutItem,MoveSelectionEndRightShortcutItem,ExpandSelectionDownShortcutItem,ExpandSelectionUpShortcutItem,ExpandSelectionLeftShortcutItem,ExpandSelectionRightShortcutItem,ExpandSelectionEndDownShortcutItem,ExpandSelectionEndUpShortcutItem,ExpandSelectionEndLeftShortcutItem,ExpandSelectionEndRightShortcutItem,SelectAllShortcutItem,ZoomInShortcutItem,ZoomOutShortcutItem,ResetZoomShortcutItem,PreventDefaultResetZoomShortcutItem,PreventDefaultZoomInShortcutItem,PreventDefaultZoomOutShortcutItem,SetBoldShortcutItem,SetItalicShortcutItem,SetUnderlineShortcutItem,SetStrikeThroughShortcutItem,ClearSelectionValueShortcutItem,...generateArrowSelectionShortCutItem(),EditorCursorEnterShortcut,StartEditWithF2Shortcut,EditorCursorTabShortcut,EditorBreakLineShortcut,EditorDeleteLeftShortcut,EditorDeleteLeftShortcutInActive,EditorCursorEscShortcut,SetRowHiddenShortcutItem,SetColHiddenShortcutItem].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_initWorkbenchParts(){this._uiPartsService.registerComponent(ui.BuiltInUIPart.HEADER,()=>core.connectInjector(MobileSheetBar,this._injector))}_initFocusHandler(){this.disposeWithMe(this._layoutService.registerFocusHandler(core.UniverInstanceType.UNIVER_SHEET,_unitId=>{}))}},__name(_a35,"SheetUIMobileController"),_a35);SheetUIMobileController=__decorateClass$n([__decorateParam$n(0,core.Inject(core.Injector)),__decorateParam$n(1,core.Inject(ui.ComponentManager)),__decorateParam$n(2,ui.ILayoutService),__decorateParam$n(3,core.ICommandService),__decorateParam$n(4,ui.IShortcutService),__decorateParam$n(5,ui.IMenuManagerService),__decorateParam$n(6,ui.IUIPartsService)],SheetUIMobileController);const UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID="UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID",UNIVER_SHEET_PERMISSION_ALERT_DIALOG="UNIVER_SHEET_PERMISSION_ALERT_DIALOG";var __defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__decorateClass$m=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$m(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$m(target,key,result),result},"__decorateClass$m"),__decorateParam$m=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$m"),_a36;exports.SheetPermissionCheckUIController=(_a36=class extends core.Disposable{constructor(_commandService,_univerInstanceService,_permissionService,_dialogService,_rangeProtectionRuleModel,_autoFillService,_localeService,_contextService,_sheetPermissionCheckController){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._commandService=_commandService,this._univerInstanceService=_univerInstanceService,this._permissionService=_permissionService,this._dialogService=_dialogService,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._autoFillService=_autoFillService,this._localeService=_localeService,this._contextService=_contextService,this._sheetPermissionCheckController=_sheetPermissionCheckController,this._initialize(),this._initUIEvent()}_initUIEvent(){this.disposeWithMe(this._sheetPermissionCheckController.triggerPermissionUIEvent$.subscribe(errorMsg=>{this._haveNotPermissionHandle(errorMsg)}))}_haveNotPermissionHandle(errorMsg){const dialogProps={id:UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID,title:{title:""},children:{label:UNIVER_SHEET_PERMISSION_ALERT_DIALOG,errorMsg},width:320,destroyOnClose:!0,onClose:__name(()=>this._dialogService.close(UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID),"onClose"),className:"sheet-permission-user-dialog"};this._permissionService.getShowComponents()&&this._dialogService.open(dialogProps)}_getPermissionCheck(id,params){var _a61,_b;let permission=!0,errorMsg="";switch(id){case docsUi.InsertCommand.id:case docsUi.IMEInputCommand.id:if(this._contextService.getContextValue(core.FOCUSING_EDITOR_STANDALONE)===!0)break;permission=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.editErr");break;case SetCellEditVisibleOperation.id:if(params.visible===!1)break;permission=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.editErr");break;case SheetPasteColWidthCommand.id:permission=this._sheetPermissionCheckController.permissionCheckWithoutRange({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetColumnStylePermission]}),errorMsg=this._localeService.t("permission.dialog.pasteErr");break;case SheetPasteShortKeyCommand.id:permission=this._permissionCheckByPaste(params),errorMsg=this._localeService.t("permission.dialog.pasteErr");break;case ApplyFormatPainterCommand.id:permission=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission]}),errorMsg=this._localeService.t("permission.dialog.commonErr");break;case sheets.SetBackgroundColorCommand.id:case SetRangeBoldCommand.id:case SetRangeItalicCommand.id:case SetRangeUnderlineCommand.id:case SetRangeStrickThroughCommand.id:permission=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.setStyleErr");break;case SheetCopyCommand.id:permission=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookCopyPermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint],worksheetTypes:[sheets.WorksheetCopyPermission]}),errorMsg=this._localeService.t("permission.dialog.copyErr"),(_a61=this._permissionService.getPermissionPoint(new sheets.WorkbookCopyPermission(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&_a61.value||(errorMsg=this._localeService.t("permission.dialog.workbookCopyErr"));break;case SheetCutCommand.id:permission=this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookCopyPermission,sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionViewPoint,sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetCopyPermission,sheets.WorksheetEditPermission]}),errorMsg=this._localeService.t("permission.dialog.copyErr"),(_b=this._permissionService.getPermissionPoint(new sheets.WorkbookCopyPermission(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).id))!=null&&_b.value||(errorMsg=this._localeService.t("permission.dialog.workbookCopyErr"));break;case AutoFillCommand.id:permission=this._permissionCheckByAutoFillCommand(params),errorMsg=this._localeService.t("permission.dialog.autoFillErr");break}permission||this._sheetPermissionCheckController.blockExecuteWithoutPermission(errorMsg)}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(command=>{this._getPermissionCheck(command.id,command==null?void 0:command.params)}))}_permissionCheckByPaste(params){return params.value===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE||params.value===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA?this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]}):params.value===PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT?this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]}):this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetSetCellStylePermission,sheets.WorksheetEditPermission]})}_permissionCheckByAutoFillCommand(params){if(!params)return!1;const{targetRange}=params,target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;return!this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p,c)=>[...p,...c.ranges],[]).filter(range=>core.Rectangle.intersects(range,targetRange)).some(range=>{var _a61,_b;for(let row=range.startRow;row<=range.endRow;row++)for(let col=range.startColumn;col<=range.endColumn;col++){const permission=(_b=(_a61=worksheet.getCell(row,col))==null?void 0:_a61.selectionProtection)==null?void 0:_b[0];if((permission==null?void 0:permission[D.Edit])===!1)return!0}return!1})}},__name(_a36,"SheetPermissionCheckUIController"),_a36);exports.SheetPermissionCheckUIController=__decorateClass$m([__decorateParam$m(0,core.ICommandService),__decorateParam$m(1,core.IUniverInstanceService),__decorateParam$m(2,core.IPermissionService),__decorateParam$m(3,ui.IDialogService),__decorateParam$m(4,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$m(5,IAutoFillService),__decorateParam$m(6,core.Inject(core.LocaleService)),__decorateParam$m(7,core.IContextService),__decorateParam$m(8,core.Inject(sheets.SheetPermissionCheckController))],exports.SheetPermissionCheckUIController);var __defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__decorateClass$l=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$l(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$l(target,key,result),result},"__decorateClass$l"),__decorateParam$l=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$l"),_a37;let SheetPermissionInterceptorCanvasRenderController=(_a37=class extends core.RxDisposable{constructor(_context,_univerInstanceService,_permissionService,_selectionManagerService,_rangeProtectionRuleModel,_headerMoveRenderController,_selectionRenderService,_headerFreezeRenderController,_rangeProtectionCache,_headerResizeRenderController){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._context=_context,this._univerInstanceService=_univerInstanceService,this._permissionService=_permissionService,this._selectionManagerService=_selectionManagerService,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._headerMoveRenderController=_headerMoveRenderController,this._selectionRenderService=_selectionRenderService,this._headerFreezeRenderController=_headerFreezeRenderController,this._rangeProtectionCache=_rangeProtectionCache,this._headerResizeRenderController=_headerResizeRenderController,this._initHeaderMovePermissionInterceptor(),this._initHeaderResizePermissionInterceptor(),this._initRangeFillPermissionInterceptor(),this._initRangeMovePermissionInterceptor()}_initHeaderMovePermissionInterceptor(){const headerMoveInterceptor=this._headerMoveRenderController.interceptor.getInterceptPoints().HEADER_MOVE_PERMISSION_CHECK;this.disposeWithMe(this._headerMoveRenderController.interceptor.intercept(headerMoveInterceptor,{handler:__name((defaultValue,selectionRange)=>{const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target;if(!this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id]).every(permission=>permission.value))return!1;if(!selectionRange)return!0;if(selectionRange.rangeType!==core.RANGE_TYPE.ROW&&selectionRange.rangeType!==core.RANGE_TYPE.COLUMN)return defaultValue;if(selectionRange.rangeType===core.RANGE_TYPE.ROW){for(let i=selectionRange.startRow;i<=selectionRange.endRow;i++)if(this._rangeProtectionCache.getRowPermissionInfo(unitId,subUnitId,i,[D.Edit])===!1)return!1}else for(let i=selectionRange.startColumn;i<=selectionRange.endColumn;i++)if(this._rangeProtectionCache.getColPermissionInfo(unitId,subUnitId,i,[D.Edit])===!1)return!1;return!0},"handler")}))}_initHeaderResizePermissionInterceptor(){this._headerResizeRenderController&&this.disposeWithMe(this._headerResizeRenderController.interceptor.intercept(this._headerResizeRenderController.interceptor.getInterceptPoints().HEADER_RESIZE_PERMISSION_CHECK,{handler:__name((defaultValue,rangeParams)=>{var _a61,_b,_c,_d;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{unitId,subUnitId}=target;if(rangeParams.row){if(((_b=(_a61=this._permissionService.getPermissionPoint(new sheets.WorksheetSetRowStylePermission(unitId,subUnitId).id))==null?void 0:_a61.value)!=null?_b:!1)===!1)return!1}else if(rangeParams.col&&((_d=(_c=this._permissionService.getPermissionPoint(new sheets.WorksheetSetColumnStylePermission(unitId,subUnitId).id))==null?void 0:_c.value)!=null?_d:!1)===!1)return!1;return!0},"handler")}))}_initRangeFillPermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_FILL_PERMISSION_CHECK,{handler:__name((_2,position)=>{var _a61,_b,_c;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;if(!this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id,new sheets.WorksheetSetCellValuePermission(unitId,subUnitId).id,new sheets.WorksheetSetCellStylePermission(unitId,subUnitId).id]).every(permission=>permission.value))return!1;const ranges=(_a61=this._selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(selection=>selection.range),selectionRange=ranges==null?void 0:ranges.find(range=>{const transformCoord=getTransformCoord(position.x,position.y,position.scene,position.skeleton),cellPosition=position.skeleton.getCellWithCoordByIndex(range.endRow,range.endColumn),missX=Math.abs(cellPosition.endX-transformCoord.x),missY=Math.abs(cellPosition.endY-transformCoord.y);return missX<=5&&missY<=5});if(!selectionRange)return!0;const{startRow,endRow,startColumn,endColumn}=selectionRange;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_c=(_b=worksheet.getCell(row,col))==null?void 0:_b.selectionProtection)==null?void 0:_c[0];if((permission==null?void 0:permission[D.Edit])===!1||(permission==null?void 0:permission[D.View])===!1)return!1}return!0},"handler")}))}_initRangeMovePermissionInterceptor(){this.disposeWithMe(this._selectionRenderService.interceptor.intercept(this._selectionRenderService.interceptor.getInterceptPoints().RANGE_MOVE_PERMISSION_CHECK,{handler:__name((_2,_cellInfo)=>{var _a61;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return!1;const{worksheet,unitId,subUnitId}=target;if(!this._permissionService.composePermission([new sheets.WorkbookEditablePermission(unitId).id,new sheets.WorksheetEditPermission(unitId,subUnitId).id]).every(permission=>permission.value))return!1;const ranges=(_a61=this._selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(selection=>selection.range),ruleRanges=this._rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).reduce((p,c)=>[...p,...c.ranges],[]),permissionLapRanges=ranges==null?void 0:ranges.filter(range=>ruleRanges.some(ruleRange=>core.Rectangle.intersects(ruleRange,range)));return!(permissionLapRanges==null?void 0:permissionLapRanges.some(range=>{var _a62,_b;const{startRow,startColumn,endRow,endColumn}=range;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_b=(_a62=worksheet.getCell(row,col))==null?void 0:_a62.selectionProtection)==null?void 0:_b[0];if((permission==null?void 0:permission[D.Edit])===!1)return!0}return!1}))},"handler")}))}_initFreezePermissionInterceptor(){this.disposeWithMe(this._headerFreezeRenderController.interceptor.intercept(this._headerFreezeRenderController.interceptor.getInterceptPoints().FREEZE_PERMISSION_CHECK,{handler:__name((_2,__)=>{var _a61,_b;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);return!(workbook==null?void 0:workbook.getActiveSheet())||!workbook?!1:(_b=(_a61=this._permissionService.getPermissionPoint(new sheets.WorkbookEditablePermission(workbook.getUnitId()).id))==null?void 0:_a61.value)!=null?_b:!1},"handler")}))}},__name(_a37,"SheetPermissionInterceptorCanvasRenderController"),_a37);SheetPermissionInterceptorCanvasRenderController=__decorateClass$l([__decorateParam$l(1,core.IUniverInstanceService),__decorateParam$l(2,core.IPermissionService),__decorateParam$l(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$l(4,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$l(5,core.Inject(exports.HeaderMoveRenderController)),__decorateParam$l(6,ISheetSelectionRenderService),__decorateParam$l(7,core.Inject(exports.HeaderFreezeRenderController)),__decorateParam$l(8,core.Inject(sheets.RangeProtectionCache)),__decorateParam$l(9,core.Optional(exports.HeaderResizeRenderController))],SheetPermissionInterceptorCanvasRenderController);var __defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$k=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$k(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$k(target,key,result),result},"__decorateClass$k"),__decorateParam$k=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$k");const SHEET_PERMISSION_PASTE_PLUGIN="SHEET_PERMISSION_PASTE_PLUGIN";var _a38;let SheetPermissionInterceptorClipboardController=(_a38=class extends core.Disposable{constructor(_univerInstanceService,_selectionManagerService,_localService,_sheetClipboardService,_sheetPermissionCheckController){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._localService=_localService,this._sheetClipboardService=_sheetClipboardService,this._sheetPermissionCheckController=_sheetPermissionCheckController,this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:SHEET_PERMISSION_PASTE_PLUGIN,onBeforePaste:__name(pasteTo=>{var _a61,_b,_c;const[ranges]=virtualizeDiscreteRanges([pasteTo.range]).ranges,startRange=(_a61=this._selectionManagerService.getCurrentLastSelection())==null?void 0:_a61.range;if(!startRange)return!1;const targetRange={startRow:startRange.startRow+ranges.startRow,endRow:startRange.startRow+ranges.endRow,startColumn:startRange.startColumn+ranges.startColumn,endColumn:startRange.startColumn+ranges.endColumn},worksheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet();if(!worksheet)return!1;const{startRow,endRow,startColumn,endColumn}=targetRange;let hasPermission=!0;for(let row=startRow;row<=endRow;row++)for(let col=startColumn;col<=endColumn;col++){const permission=(_c=(_b=worksheet.getCell(row,col))==null?void 0:_b.selectionProtection)==null?void 0:_c[0];if((permission==null?void 0:permission[D.Edit])===!1){hasPermission=!1;break}}return hasPermission||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localService.t("permission.dialog.pasteErr")),hasPermission},"onBeforePaste")}))}},__name(_a38,"SheetPermissionInterceptorClipboardController"),_a38);SheetPermissionInterceptorClipboardController=__decorateClass$k([__decorateParam$k(0,core.IUniverInstanceService),__decorateParam$k(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$k(2,core.Inject(core.LocaleService)),__decorateParam$k(3,core.Inject(ISheetClipboardService)),__decorateParam$k(4,core.Inject(sheets.SheetPermissionCheckController))],SheetPermissionInterceptorClipboardController);var __defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$j=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$j(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$j(target,key,result),result},"__decorateClass$j"),__decorateParam$j=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$j");const STATUS_BAR_PERMISSION_CORRECT=core.createInterceptorKey("statusBarPermissionCorrect"),_CalculateValueSet=class _CalculateValueSet{constructor(){__publicField(this,"_sum",0);__publicField(this,"_count",0);__publicField(this,"_countNumber",0);__publicField(this,"_min",Number.POSITIVE_INFINITY);__publicField(this,"_max",Number.NEGATIVE_INFINITY)}add(value){const v=value==null?void 0:value.v,t=value==null?void 0:value.t;v!=null&&(typeof v=="number"&&t!==core.CellValueType.STRING&&(this._sum+=v,this._countNumber++,this._min=Math.min(this._min,v),this._max=Math.max(this._max,v)),this._count++)}getResults(){return{sum:this._sum,count:this._countNumber,countA:this._count,min:this._min,max:this._max}}};__name(_CalculateValueSet,"CalculateValueSet");let CalculateValueSet=_CalculateValueSet;function calculateValues(valueSet){const{sum,count,countA,min,max}=valueSet.getResults();return[{func:engineFormula.FUNCTION_NAMES_STATISTICAL.MAX,value:max},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.MIN,value:min},{func:engineFormula.FUNCTION_NAMES_MATH.SUM,value:sum},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.COUNTA,value:countA},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.COUNT,value:count},{func:engineFormula.FUNCTION_NAMES_STATISTICAL.AVERAGE,value:sum/count}]}__name(calculateValues,"calculateValues");var _a39;exports.StatusBarController=(_a39=class extends core.Disposable{constructor(_univerInstanceService,_selectionManagerService,_statusBarService,_commandService,_numfmtService){super();__publicField(this,"interceptor",new core.InterceptorManager({STATUS_BAR_PERMISSION_CORRECT}));this._univerInstanceService=_univerInstanceService,this._selectionManagerService=_selectionManagerService,this._statusBarService=_statusBarService,this._commandService=_commandService,this._numfmtService=_numfmtService,this._init()}_init(){this._registerSelectionListener()}_registerSelectionListener(){const _statisticsHandler=core.debounce(selections=>{var _a61;const primary=(_a61=selections[selections.length-1])==null?void 0:_a61.primary;this._calculateSelection(selections.map(selection=>selection.range),primary)},100);this.disposeWithMe(core.toDisposable(this._selectionManagerService.selectionMoving$.subscribe(selections=>{selections&&_statisticsHandler(selections)}))),this.disposeWithMe(core.toDisposable(this._selectionManagerService.selectionMoveEnd$.subscribe(selections=>{selections&&_statisticsHandler(selections)}))),this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===sheets.SetRangeValuesMutation.id){const selections=this._selectionManagerService.getCurrentSelections();selections&&_statisticsHandler(selections)}}))}_clearResult(){this._statusBarService.setState(null)}getRangeStartEndInfo(range,sheet){return range.rangeType===core.RANGE_TYPE.ALL?{startRow:0,startColumn:0,endRow:sheet.getRowCount()-1,endColumn:sheet.getColumnCount()-1}:range.rangeType===core.RANGE_TYPE.COLUMN?{startRow:0,startColumn:range.startColumn,endRow:sheet.getRowCount()-1,endColumn:range.endColumn}:range.rangeType===core.RANGE_TYPE.ROW?{startRow:range.startRow,startColumn:0,endRow:range.endRow,endColumn:sheet.getColumnCount()-1}:{startRow:range.startRow,startColumn:range.startColumn,endRow:range.endRow,endColumn:range.endColumn}}_calculateSelection(selections,primary){var _a61;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return this._clearResult();const unitId=workbook.getUnitId(),sheet=workbook.getActiveSheet(),sheetId=sheet==null?void 0:sheet.getSheetId();if(!sheetId)return this._clearResult();const sheetData={};if(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getSheets().forEach(sheet2=>{const sheetConfig=sheet2.getConfig();sheetData[sheet2.getSheetId()]={cellData:new core.ObjectMatrix(sheetConfig.cellData),rowCount:sheetConfig.rowCount,columnCount:sheetConfig.columnCount,rowData:sheetConfig.rowData,columnData:sheetConfig.columnData}}),selections!=null&&selections.length){const realSelections=[];selections.forEach(selection=>{const{startRow:start,endRow:end}=selection;let prev=null;for(let r2=start;r2<=end;r2++)sheet.getRowVisible(r2)?prev===null&&(prev=r2):prev!==null&&(realSelections.push({...selection,startRow:prev,endRow:r2-1}),prev=null);prev!==null&&realSelections.push({...selection,startRow:prev,endRow:end})});const noDuplicate=core.splitIntoGrid(realSelections),calculateValueSet=new CalculateValueSet;for(const range of noDuplicate){const{startRow,startColumn,endColumn,endRow}=this.getRangeStartEndInfo(range,sheet);for(let r2=startRow;r2<=endRow;r2++)for(let c=startColumn;c<=endColumn;c++){const value=sheet.getCell(r2,c);calculateValueSet.add(value)}}const calcResult=calculateValues(calculateValueSet);if(calcResult.every(r2=>r2===void 0))return;let pattern=null;if(primary){const{actualRow,actualColumn}=primary;pattern=(_a61=this._numfmtService.getValue(unitId,sheetId,actualRow,actualColumn))==null?void 0:_a61.pattern}const newState={values:calcResult.filter(r2=>r2!==void 0),pattern};this._statusBarService.setState(newState)}else this._clearResult()}},__name(_a39,"StatusBarController"),_a39);exports.StatusBarController=__decorateClass$j([__decorateParam$j(0,core.IUniverInstanceService),__decorateParam$j(1,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$j(2,IStatusBarService),__decorateParam$j(3,core.ICommandService),__decorateParam$j(4,core.Inject(sheets.INumfmtService))],exports.StatusBarController);var __defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$i=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$i(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$i(target,key,result),result},"__decorateClass$i"),__decorateParam$i=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$i"),_a40;let SheetPermissionInterceptorFormulaRenderController=(_a40=class extends core.RxDisposable{constructor(_context,_univerInstanceService,_permissionService,_statusBarController,_rangeProtectionCache){super();__publicField(this,"disposableCollection",new core.DisposableCollection);this._context=_context,this._univerInstanceService=_univerInstanceService,this._permissionService=_permissionService,this._statusBarController=_statusBarController,this._rangeProtectionCache=_rangeProtectionCache,this._initStatusBarPermissionInterceptor()}_initStatusBarPermissionInterceptor(){this.disposeWithMe(this._statusBarController.interceptor.intercept(this._statusBarController.interceptor.getInterceptPoints().STATUS_BAR_PERMISSION_CORRECT,{priority:100,handler:__name((defaultValue,originValue)=>{var _a61;const target=sheets.getSheetCommandTarget(this._univerInstanceService);if(!target)return defaultValue!=null?defaultValue:[];const{worksheet,unitId,subUnitId}=target;return((_a61=this._permissionService.getPermissionPoint(new sheets.WorksheetViewPermission(unitId,subUnitId).id))==null?void 0:_a61.value)===!1?originValue.forEach(item=>{const itemValue=item.getArrayValue();itemValue.forEach((row,rowIndex)=>{row.forEach((col,colIndex)=>{itemValue[rowIndex][colIndex]=engineFormula.NullValueObject.create()})})}):originValue.forEach(item=>{const itemValue=item.getArrayValue(),startRow=item.getCurrentRow(),startCol=item.getCurrentColumn();itemValue.forEach((row,rowIndex)=>{row.forEach((col,colIndex)=>{var _a62;if(((_a62=worksheet.getCellRaw(rowIndex+startRow,colIndex+startCol))==null?void 0:_a62.v)===void 0)return;const permission=this._rangeProtectionCache.getCellInfo(unitId,subUnitId,rowIndex+startRow,colIndex+startCol);(permission==null?void 0:permission[D.View])===!1&&(itemValue[rowIndex][colIndex]=engineFormula.NullValueObject.create())})})}),originValue},"handler")}))}},__name(_a40,"SheetPermissionInterceptorFormulaRenderController"),_a40);SheetPermissionInterceptorFormulaRenderController=__decorateClass$i([__decorateParam$i(1,core.IUniverInstanceService),__decorateParam$i(2,core.IPermissionService),__decorateParam$i(3,core.Inject(exports.StatusBarController)),__decorateParam$i(4,core.Inject(sheets.RangeProtectionCache))],SheetPermissionInterceptorFormulaRenderController);const checkRangeValid=__name((injector,permissionRanges,permissionId,unitId,subUnitId)=>{const localeService=injector.get(core.LocaleService),worksheetRuleModel=injector.get(sheets.WorksheetProtectionRuleModel),rangeProtectionRuleModel=injector.get(sheets.RangeProtectionRuleModel);let rangeErrorString="";if(permissionRanges.length===0)rangeErrorString=localeService.t("permission.panel.emptyRangeError");else if(permissionRanges.length>1){let hasLap=!1;for(let i=0;i<permissionRanges.length;i++){for(let j=i+1;j<permissionRanges.length;j++)if(core.Rectangle.intersects(permissionRanges[i],permissionRanges[j])){hasLap=!0;break}if(hasLap)break}hasLap&&(rangeErrorString=localeService.t("permission.panel.rangeOverlapError"))}if(!rangeErrorString){if(worksheetRuleModel.getRule(unitId,subUnitId)&&!permissionId)return rangeErrorString=localeService.t("permission.panel.rangeOverlapOverPermissionError"),rangeErrorString;const lapRule=rangeProtectionRuleModel.getSubunitRuleList(unitId,subUnitId).filter(rule=>rule.permissionId!==permissionId).find(rule=>rule.ranges.some(ruleRange=>permissionRanges.some(r2=>core.Rectangle.intersects(ruleRange,r2))));(lapRule==null?void 0:lapRule.ranges.find(range=>permissionRanges.some(r2=>core.Rectangle.intersects(range,r2))))&&(rangeErrorString=localeService.t("permission.panel.rangeOverlapOverPermissionError"))}return rangeErrorString===""?void 0:rangeErrorString},"checkRangeValid"),checkRangesIsWholeSheet=__name((ranges,sheet)=>{if(ranges.length!==1)return!1;const range=ranges[0],rowCount=sheet.getRowCount(),colCount=sheet.getColumnCount(),{startRow,endRow,startColumn,endColumn}=range;return startRow===0&&startColumn===0&&endRow===rowCount-1&&endColumn===colCount-1},"checkRangesIsWholeSheet"),generateDefaultRule=__name((injector,fromSheetBar)=>{var _a61,_b;const univerInstanceService=injector.get(core.IUniverInstanceService),selectionManagerService=injector.get(sheets.SheetsSelectionsService),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();let unitType=sheets.UnitObject.SelectRange,ranges=(_b=(_a61=selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range))!=null?_b:[];return fromSheetBar&&(unitType=sheets.UnitObject.Worksheet,ranges=[{startRow:0,startColumn:0,endRow:worksheet.getRowCount()-1,endColumn:worksheet.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL}]),{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),permissionId:"",unitType,description:"",id:"",ranges,editState:sheets.EditStateEnum.OnlyMe,viewState:sheets.ViewStateEnum.OthersCanView}},"generateDefaultRule"),generateRuleByUnitType=__name((injector,rule)=>{const worksheet=injector.get(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),{unitType}=rule;return unitType===sheets.UnitObject.Worksheet?{...rule,ranges:[{startRow:0,startColumn:0,endRow:worksheet.getRowCount()-1,endColumn:worksheet.getColumnCount()-1,rangeType:core.RANGE_TYPE.ALL}]}:rule},"generateRuleByUnitType"),permissionPanelDetailWrapper="univer-permission-panel-detail-wrapper",radioGroupVertical="univer-radio-group-vertical",sheetPermissionDesignPersonPanel="univer-sheet-permission-design-person-panel",sheetPermissionDesignPersonPanelHeader="univer-sheet-permission-design-person-panel-header",sheetPermissionDesignPersonPanelHeaderAdd="univer-sheet-permission-design-person-panel-header-add",sheetPermissionDesignPersonPanelSplit="univer-sheet-permission-design-person-panel-split",sheetPermissionDesignPersonPanelContentItem="univer-sheet-permission-design-person-panel-content-item",sheetPermissionDesignPersonPanelContentItemName="univer-sheet-permission-design-person-panel-content-item-name",sheetPermissionDesignPersonPanelContentItemSelect="univer-sheet-permission-design-person-panel-content-item-select",sheetPermissionDesignPersonPanelContent="univer-sheet-permission-design-person-panel-content",sheetPermissionUserListEmpty$1="univer-sheet-permission-user-list-empty",sheetPermissionUserListEmptyText$1="univer-sheet-permission-user-list-empty-text",sheetPermissionPanelTitle="univer-sheet-permission-panel-title",sheetPermissionPanelFooter="univer-sheet-permission-panel-footer",permissionRangeSelector="univer-permission-range-selector",permissionRangeSelectorError="univer-permission-range-selector-error",sheetPermissionPanelNameInputError="univer-sheet-permission-panel-name-input-error",permissionRangeSelectorErrorText="univer-permission-range-selector-error-text",sheetPermissionPanelNameInputErrorText="univer-sheet-permission-panel-name-input-error-text",styles$5={permissionPanelDetailWrapper,radioGroupVertical,sheetPermissionDesignPersonPanel,sheetPermissionDesignPersonPanelHeader,sheetPermissionDesignPersonPanelHeaderAdd,sheetPermissionDesignPersonPanelSplit,sheetPermissionDesignPersonPanelContentItem,sheetPermissionDesignPersonPanelContentItemName,sheetPermissionDesignPersonPanelContentItemSelect,sheetPermissionDesignPersonPanelContent,sheetPermissionUserListEmpty:sheetPermissionUserListEmpty$1,sheetPermissionUserListEmptyText:sheetPermissionUserListEmptyText$1,sheetPermissionPanelTitle,sheetPermissionPanelFooter,permissionRangeSelector,permissionRangeSelectorError,sheetPermissionPanelNameInputError,permissionRangeSelectorErrorText,sheetPermissionPanelNameInputErrorText},PermissionDetailFooterPart=__name(props=>{const{viewState,editState,permissionId,ranges,rangesErrMsg,desc,oldRule,id}=props,sheetPermissionPanelModel=core.useDependency(SheetPermissionPanelModel),sidebarService=core.useDependency(ui.ISidebarService),authzIoService=core.useDependency(core.IAuthzIoService),localeService=core.useDependency(core.LocaleService),commandService=core.useDependency(core.ICommandService),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),workbook=core.useDependency(core.IUniverInstanceService).getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId();return jsxRuntime.jsxs("div",{className:styles$5.sheetPermissionPanelFooter,children:[jsxRuntime.jsx(design.Button,{type:"primary",onClick:__name(async()=>{if(rangesErrMsg)return;const activeRule={unitId,subUnitId,permissionId,id,viewState,editState,unitType:sheets.UnitObject.SelectRange,ranges,description:desc};checkRangesIsWholeSheet(ranges,worksheet)&&(activeRule.unitType=sheets.UnitObject.Worksheet,activeRule.ranges=[]);let collaborators=sheetPermissionUserManagerService.selectUserList;activeRule.editState===sheets.EditStateEnum.OnlyMe&&(collaborators=[],sheetPermissionUserManagerService.setSelectUserList([]));const scopeObj={read:activeRule.viewState===sheets.ViewStateEnum.OthersCanView?M.AllCollaborator:M.SomeCollaborator,edit:activeRule.editState===sheets.EditStateEnum.DesignedUserCanEdit?M.SomeCollaborator:M.OneSelf};if(activeRule.editState===sheets.EditStateEnum.DesignedUserCanEdit&&collaborators.length===0&&(collaborators=[],scopeObj.edit=M.OneSelf),activeRule.permissionId){const isSameCollaborators=getUserListEqual(collaborators.filter(user=>user.role===S.Editor),sheetPermissionUserManagerService.oldCollaboratorList.filter(user=>user.role===S.Editor)),isSameReadStatus=(oldRule==null?void 0:oldRule.viewState)===activeRule.viewState,isSameEditStatus=(oldRule==null?void 0:oldRule.editState)===activeRule.editState,ruleConfigIsOrigin=activeRule.unitType===(oldRule==null?void 0:oldRule.unitType)&&activeRule.description===oldRule.description&&activeRule.ranges===oldRule.ranges,collaboratorsIsChange=!isSameCollaborators||!isSameReadStatus||!isSameEditStatus;if(ruleConfigIsOrigin&&collaboratorsIsChange)await authzIoService.update({objectType:activeRule.unitType,objectID:activeRule.permissionId,unitID:activeRule.unitId,share:void 0,name:"",strategies:[],scope:scopeObj,collaborators:{collaborators}});else{let newPermissionId=activeRule.permissionId;collaboratorsIsChange&&(activeRule.unitType===sheets.UnitObject.Worksheet?newPermissionId=await authzIoService.create({worksheetObject:{collaborators,unitID:activeRule.unitId,name:"",strategies:[{role:S.Editor,action:D.Edit},{role:S.Reader,action:D.View}],scope:scopeObj},objectType:sheets.UnitObject.Worksheet}):newPermissionId=await authzIoService.create({selectRangeObject:{collaborators,unitID:activeRule.unitId,name:"",scope:scopeObj},objectType:sheets.UnitObject.SelectRange})),commandService.executeCommand(sheets.SetProtectionCommand.id,{rule:{...activeRule,permissionId:newPermissionId},oldRule})}}else if(activeRule.unitType===sheets.UnitObject.Worksheet){const permissionId2=await authzIoService.create({worksheetObject:{collaborators,unitID:activeRule.unitId,name:"",strategies:[{role:S.Editor,action:D.Edit},{role:S.Reader,action:D.View}],scope:scopeObj},objectType:sheets.UnitObject.Worksheet}),{ranges:_range=[],...sheetRule}=activeRule;sheetRule.permissionId=permissionId2,commandService.executeCommand(sheets.AddWorksheetProtectionCommand.id,{rule:sheetRule,unitId:activeRule.unitId})}else if(activeRule.unitType===sheets.UnitObject.SelectRange){const permissionId2=await authzIoService.create({selectRangeObject:{collaborators,unitID:activeRule.unitId,name:"",scope:scopeObj},objectType:sheets.UnitObject.SelectRange});commandService.executeCommand(sheets.AddRangeProtectionCommand.id,{rule:activeRule,permissionId:permissionId2})}const sidebarProps={header:{title:`${localeService.t("permission.panel.title")}`},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail:!1},width:330};sidebarService.open(sidebarProps)},"onClick"),children:localeService.t("permission.button.confirm")}),jsxRuntime.jsx(design.Button,{className:styles$5.sheetPermissionPanelFooterCancel,onClick:__name(()=>{sheetPermissionPanelModel.reset(),sheetPermissionUserManagerService.reset(),sidebarService.close()},"onClick"),children:localeService.t("permission.button.cancel")})]})},"PermissionDetailFooterPart"),PermissionDetailMainPart=__name(props=>{const{ranges,onRangesChange,rangeSelectorRef,desc,onDescChange,rangesErrMsg,isFocusRangeSelector,permissionId,onFocus}=props,componentManager=core.useDependency(ui.ComponentManager),RangeSelector=React.useMemo(()=>componentManager.get(RANGE_SELECTOR_COMPONENT_KEY),[]),univerInstanceService=core.useDependency(core.IUniverInstanceService),localeService=core.useDependency(core.LocaleService),injector=core.useDependency(core.Injector),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return null;const unitId=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),handleRangeChange=__name(rangeText=>{const newRange=rangeText.split(",").map(engineFormula.deserializeRangeWithSheet).map(item=>item.range);if(newRange.some(i=>!core.isValidRange(i)||i.endColumn<i.startColumn||i.endRow<i.startRow))return;const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet2=workbook2==null?void 0:workbook2.getActiveSheet();if(!workbook2||!worksheet2)return;const unitId2=workbook2.getUnitId(),subUnitId2=worksheet2.getSheetId(),transformedRange=newRange.map(range=>{const rowCount=worksheet2.getRowCount(),colCount=worksheet2.getColumnCount();return sheets.setEndForRange(range,rowCount,colCount),range}),rangeErrorString=checkRangeValid(injector,transformedRange,permissionId,unitId2,subUnitId2);onRangesChange(transformedRange,rangeErrorString)},"handleRangeChange");return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(design.FormLayout,{className:styles$5.sheetPermissionPanelTitle,label:localeService.t("permission.panel.protectedRange"),children:RangeSelector&&jsxRuntime.jsx(RangeSelector,{unitId,errorText:rangesErrMsg,subUnitId,initValue:ranges==null?void 0:ranges.map(i=>engineFormula.serializeRange(i)).join(","),onChange:handleRangeChange,onFocus,isFocus:isFocusRangeSelector,actions:rangeSelectorRef.current})}),jsxRuntime.jsx(design.FormLayout,{className:styles$5.sheetPermissionPanelTitle,label:localeService.t("permission.panel.permissionDirection"),children:jsxRuntime.jsx(design.Input,{value:desc,onChange:__name(v=>onDescChange(v),"onChange"),placeholder:localeService.t("permission.panel.permissionDirectionPlaceholder")})})]})},"PermissionDetailMainPart"),SheetPermissionPanelDetail=__name(props=>{var _a61,_b;const{fromSheetBar,rule,oldRule}=props,injector=core.useDependency(core.Injector),activeRule=rule?generateRuleByUnitType(injector,rule):generateDefaultRule(injector,fromSheetBar),[ranges,setRanges]=React.useState(activeRule.ranges),[rangesErrMsg,setRangesErrMsg]=React.useState(()=>checkRangeValid(injector,activeRule.ranges,activeRule.permissionId,activeRule.unitId,activeRule.subUnitId)),[desc,setDesc]=React.useState(activeRule.description),[editState,setEditState]=React.useState((_a61=activeRule.editState)!=null?_a61:sheets.EditStateEnum.OnlyMe),[viewState,setViewState]=React.useState((_b=activeRule.viewState)!=null?_b:sheets.ViewStateEnum.OthersCanView),rangeSelectorActionsRef=React.useRef({}),[isFocusRangeSelector,isFocusRangeSelectorSet]=React.useState(!1);ui.useSidebarClick(e=>{var _a62;const handleOutClick=(_a62=rangeSelectorActionsRef.current)==null?void 0:_a62.handleOutClick;handleOutClick&&handleOutClick(e,()=>isFocusRangeSelectorSet(!1))});const PermissionDetailUserPart2=ui.useComponentsOfPart(UNIVER_SHEET_PERMISSION_USER_PART);return React.useEffect(()=>{const univerInstanceService=injector.get(core.IUniverInstanceService),sidebarService=injector.get(ui.ISidebarService),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return;const subUnitId=workbook.getActiveSheet().getSheetId(),activeSheetSubscribe=workbook.activeSheet$.subscribe(sheet=>{(sheet==null?void 0:sheet.getSheetId())!==subUnitId&&sidebarService.close()});return()=>{activeSheetSubscribe.unsubscribe()}},[]),jsxRuntime.jsxs("div",{className:styles$5.permissionPanelDetailWrapper,children:[jsxRuntime.jsx(PermissionDetailMainPart,{onFocus:__name(()=>isFocusRangeSelectorSet(!0),"onFocus"),permissionId:activeRule.permissionId,ranges,onRangesChange:__name((v,err)=>{setRanges(v),setRangesErrMsg(err)},"onRangesChange"),isFocusRangeSelector,rangesErrMsg,desc,onDescChange:__name(v=>setDesc(v),"onDescChange"),rangeSelectorRef:rangeSelectorActionsRef}),jsxRuntime.jsx(ui.ComponentContainer,{components:PermissionDetailUserPart2,sharedProps:{editState,onEditStateChange:__name(v=>setEditState(v),"onEditStateChange"),viewState,onViewStateChange:__name(v=>setViewState(v),"onViewStateChange"),permissionId:activeRule.permissionId}},"user-part"),jsxRuntime.jsx(PermissionDetailFooterPart,{permissionId:activeRule.permissionId,id:activeRule.id,ranges,rangesErrMsg,desc,viewState,editState,oldRule})]})},"SheetPermissionPanelDetail"),panelListEmptyBase64="data:image/png;base64,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",sheetPermissionListPanelWrapper="univer-sheet-permission-list-panel-wrapper",sheetPermissionListPanelHeader="univer-sheet-permission-list-panel-header",sheetPermissionListPanelHeaderType="univer-sheet-permission-list-panel-header-type",sheetPermissionListPanelHeaderTypeBottom="univer-sheet-permission-list-panel-header-type-bottom",sheetPermissionListPanelHeaderSelect="univer-sheet-permission-list-panel-header-select",sheetPermissionListItemHeaderIcon="univer-sheet-permission-list-item-header-icon",sheetPermissionListItem="univer-sheet-permission-list-item",sheetPermissionListItemHeader="univer-sheet-permission-list-item-header",sheetPermissionListItemHeaderName="univer-sheet-permission-list-item-header-name",sheetPermissionListItemHeaderOperator="univer-sheet-permission-list-item-header-operator",sheetPermissionListItemSplit="univer-sheet-permission-list-item-split",sheetPermissionListItemContentEdit="univer-sheet-permission-list-item-content-edit",sheetPermissionListItemContentView="univer-sheet-permission-list-item-content-view",sheetPermissionListItemContentDesc="univer-sheet-permission-list-item-content-desc",sheetPermissionListEmpty="univer-sheet-permission-list-empty",sheetPermissionListEmptyText="univer-sheet-permission-list-empty-text",sheetPermissionListItemContentTitle="univer-sheet-permission-list-item-content-title",sheetPermissionListItemContentSub="univer-sheet-permission-list-item-content-sub",sheetPermissionPanelAddWrapper="univer-sheet-permission-panel-add-wrapper",sheetPermissionPanelAddButton="univer-sheet-permission-panel-add-button",styles$4={sheetPermissionListPanelWrapper,sheetPermissionListPanelHeader,sheetPermissionListPanelHeaderType,sheetPermissionListPanelHeaderTypeBottom,sheetPermissionListPanelHeaderSelect,sheetPermissionListItemHeaderIcon,sheetPermissionListItem,sheetPermissionListItemHeader,sheetPermissionListItemHeaderName,sheetPermissionListItemHeaderOperator,sheetPermissionListItemSplit,sheetPermissionListItemContentEdit,sheetPermissionListItemContentView,sheetPermissionListItemContentDesc,sheetPermissionListEmpty,sheetPermissionListEmptyText,sheetPermissionListItemContentTitle,sheetPermissionListItemContentSub,sheetPermissionPanelAddWrapper,sheetPermissionPanelAddButton},SheetPermissionPanelList=__name(()=>{var _a61;const[isCurrentSheet,setIsCurrentSheet]=React.useState(!0),[forceUpdateFlag,setForceUpdateFlag]=React.useState(!1),localeService=core.useDependency(core.LocaleService),rangeProtectionRuleModel=core.useDependency(sheets.RangeProtectionRuleModel),worksheetProtectionModel=core.useDependency(sheets.WorksheetProtectionRuleModel),univerInstanceService=core.useDependency(core.IUniverInstanceService),commandService=core.useDependency(core.ICommandService),sidebarService=core.useDependency(ui.ISidebarService),authzIoService=core.useDependency(core.IAuthzIoService),permissionService=core.useDependency(core.IPermissionService),currentUser=core.useDependency(core.UserManagerService).getCurrentUser(),[currentRuleRanges,currentRuleRangesSet]=React.useState([]),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),_sheetRuleRefresh=ui.useObservable(worksheetProtectionModel.ruleRefresh$,""),_rangeRuleRefresh=ui.useObservable(rangeProtectionRuleModel.ruleRefresh$,""),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET);if(!workbook)return null;const unitId=workbook==null?void 0:workbook.getUnitId(),getRuleList=React.useCallback(async isCurrentSheet2=>{var _a62;const worksheet=workbook.getActiveSheet(),unitId2=workbook.getUnitId(),subUnitId=worksheet.getSheetId(),allRangePermissionId=[],allSheetPermissionId=[];workbook.getSheets().forEach(sheet=>{const sheetId=sheet.getSheetId();rangeProtectionRuleModel.getSubunitRuleList(unitId2,sheetId).forEach(rule=>{rule.permissionId&&allRangePermissionId.push(rule.permissionId)});const worksheetPermissionRule=worksheetProtectionModel.getRule(unitId2,sheetId);worksheetPermissionRule!=null&&worksheetPermissionRule.permissionId&&allSheetPermissionId.push(worksheetPermissionRule.permissionId)});const allPermissionId=[...allRangePermissionId,...allSheetPermissionId],allPermissionRule=await authzIoService.list({objectIDs:allPermissionId,unitID:unitId2,actions:sheets.baseProtectionActions}),subUnitPermissionIds=rangeProtectionRuleModel.getSubunitRuleList(unitId2,subUnitId).map(item=>item.permissionId),sheetPermissionId=(_a62=worksheetProtectionModel.getRule(unitId2,subUnitId))==null?void 0:_a62.permissionId;sheetPermissionId&&subUnitPermissionIds.push(sheetPermissionId);const subUnitRuleList=allPermissionRule.filter(item=>{var _a63;return subUnitPermissionIds.includes(item.objectID)||item.objectID===((_a63=worksheetProtectionModel.getRule(unitId2,subUnitId))==null?void 0:_a63.permissionId)});return isCurrentSheet2?subUnitRuleList:allPermissionRule},[]),[ruleList,setRuleList]=React.useState([]);React.useEffect(()=>{const subscription=rxjs.merge(rangeProtectionRuleModel.ruleChange$,worksheetProtectionModel.ruleChange$).subscribe(async()=>{const ruleList2=await getRuleList(isCurrentSheet);setRuleList(ruleList2)});return()=>{subscription.unsubscribe()}},[isCurrentSheet]),React.useEffect(()=>{const subscribe=workbook.activeSheet$.pipe(rxjs.distinctUntilChanged((prevSheet,currSheet)=>(prevSheet==null?void 0:prevSheet.getSheetId())===(currSheet==null?void 0:currSheet.getSheetId()))).subscribe(async()=>{const ruleList2=await getRuleList(isCurrentSheet);setRuleList(ruleList2)});return()=>{subscribe.unsubscribe()}},[isCurrentSheet]),React.useEffect(()=>{__name(async()=>{if(_sheetRuleRefresh||_rangeRuleRefresh){const ruleList2=await getRuleList(!0);setRuleList(ruleList2)}},"getRuleListByRefresh")()},[_sheetRuleRefresh,_rangeRuleRefresh]);const handleDelete=__name(rule=>{const{unitId:unitId2,subUnitId,unitType}=rule;let res;unitType===L.Worksheet?res=commandService.executeCommand(sheets.DeleteWorksheetProtectionCommand.id,{unitId:unitId2,subUnitId,rule}):unitType===L.SelectRange&&(res=commandService.executeCommand(sheets.DeleteRangeProtectionCommand.id,{unitId:unitId2,subUnitId,rule})),res&&(setForceUpdateFlag(!forceUpdateFlag),rule.ranges===currentRuleRanges&¤tRuleRangesSet([]))},"handleDelete");React.useEffect(()=>{sheetPermissionUserManagerService.reset()},[]),useHighlightRange(currentRuleRanges);const allRuleMap=new Map;workbook.getSheets().forEach(sheet=>{const sheetId=sheet.getSheetId();rangeProtectionRuleModel.getSubunitRuleList(unitId,sheetId).forEach(rule=>{allRuleMap.set(rule.permissionId,rule)});const sheetRule=worksheetProtectionModel.getRule(unitId,sheetId);sheetRule&&allRuleMap.set(sheetRule==null?void 0:sheetRule.permissionId,sheetRule)});const handleEdit=__name(rule=>{rule.subUnitId!==workbook.getActiveSheet().getSheetId()&&commandService.executeCommand(sheets.SetWorksheetActiveOperation.id,{unitId:rule.unitId,subUnitId:rule.subUnitId});const sidebarProps={header:{title:"permission.panel.title"},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail:!0,rule:core.Tools.deepClone(rule),oldRule:core.Tools.deepClone(rule)},width:330};sidebarService.open(sidebarProps)},"handleEdit"),handleChangeHeaderType=__name(isCurrentSheet2=>{setIsCurrentSheet(isCurrentSheet2)},"handleChangeHeaderType"),hasSetProtectPermission=(_a61=permissionService.getPermissionPoint(new sheets.WorkbookCreateProtectPermission(unitId).id))==null?void 0:_a61.value;return jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListPanelWrapper,children:[jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListPanelHeader,children:[jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListPanelHeaderType,onClick:__name(()=>handleChangeHeaderType(!0),"onClick"),children:[jsxRuntime.jsx("div",{className:clsx({[styles$4.sheetPermissionListPanelHeaderSelect]:isCurrentSheet}),children:localeService.t("permission.panel.currentSheet")}),isCurrentSheet&&jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListPanelHeaderTypeBottom})]}),jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListPanelHeaderType,onClick:__name(()=>handleChangeHeaderType(!1),"onClick"),children:[jsxRuntime.jsx("div",{className:clsx({[styles$4.sheetPermissionListPanelHeaderSelect]:!isCurrentSheet}),children:localeService.t("permission.panel.allSheet")}),!isCurrentSheet&&jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListPanelHeaderTypeBottom})]})]}),(ruleList==null?void 0:ruleList.length)>0?jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListPanelContent,children:ruleList==null?void 0:ruleList.map(item=>{var _a62,_b,_c,_d,_e;const rule=allRuleMap.get(item.objectID);if(!rule)return null;const editAction=item.actions.find(action=>action.action===D.Edit),editPermission=editAction==null?void 0:editAction.allowed,viewAction=item.actions.find(action=>action.action===D.View),viewPermission=viewAction==null?void 0:viewAction.allowed,manageCollaboratorAction=item.actions.find(action=>action.action===D.ManageCollaborator),deleteAction=item.actions.find(action=>action.action===D.Delete),hasManagerPermission=(manageCollaboratorAction==null?void 0:manageCollaboratorAction.allowed)||currentUser.userID===((_a62=item.creator)==null?void 0:_a62.userID),hasDeletePermission=(deleteAction==null?void 0:deleteAction.allowed)||currentUser.userID===((_b=item.creator)==null?void 0:_b.userID);let ruleName="";const targetSheet=workbook.getSheetBySheetId(rule.subUnitId),targetName=targetSheet==null?void 0:targetSheet.getName();if(rule.unitType===L.SelectRange){const ranges=rule.ranges,rangeStr=ranges!=null&&ranges.length?ranges.map(range=>{const v=engineFormula.serializeRange(range);return v==="NaN"?"":v}).filter(r2=>!!r2).join(","):"";ruleName=`${targetName}(${rangeStr})`}else rule.unitType===L.Worksheet&&(ruleName=targetName||"");return jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItem,onMouseMove:__name(()=>{const{subUnitId,unitType}=rule,activeSheet=workbook.getActiveSheet();if(!activeSheet)return!1;const activeSubUnitId=activeSheet.getSheetId();if(subUnitId!==activeSubUnitId)return!1;if(unitType===L.SelectRange){const ranges=rule.ranges||[];ranges!==currentRuleRanges&¤tRuleRangesSet(ranges)}else if(unitType===L.Worksheet){const ranges=[{startRow:0,endRow:activeSheet.getRowCount()-1,startColumn:0,endColumn:activeSheet.getColumnCount()-1}];ranges!==currentRuleRanges&¤tRuleRangesSet(ranges)}},"onMouseMove"),onMouseLeave:__name(()=>currentRuleRangesSet([]),"onMouseLeave"),children:[jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItemHeader,children:[jsxRuntime.jsx(design.Tooltip,{title:ruleName,children:jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListItemHeaderName,children:ruleName})}),(hasManagerPermission||hasDeletePermission)&&jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItemHeaderOperator,children:[hasManagerPermission&&jsxRuntime.jsx(design.Tooltip,{title:localeService.t("permission.panel.edit"),children:jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListItemHeaderIcon,onClick:__name(()=>handleEdit(rule),"onClick"),children:jsxRuntime.jsx(WriteSingle,{})})}),hasDeletePermission&&jsxRuntime.jsx(design.Tooltip,{title:localeService.t("permission.panel.delete"),children:jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListItemHeaderIcon,onClick:__name(()=>handleDelete(rule),"onClick"),children:jsxRuntime.jsx(DeleteSingle,{})})})]})]}),jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListItemSplit}),jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItemContent,children:[jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItemContentEdit,children:[jsxRuntime.jsx(design.Tooltip,{title:(_d=(_c=item.creator)==null?void 0:_c.name)!=null?_d:"",children:jsxRuntime.jsx("div",{children:jsxRuntime.jsx(design.Avatar,{src:(_e=item.creator)==null?void 0:_e.avatar,style:{marginRight:6},size:24})})}),jsxRuntime.jsx("span",{className:styles$4.sheetPermissionListItemContentTitle,children:localeService.t("permission.panel.created")}),jsxRuntime.jsx("span",{className:styles$4.sheetPermissionListItemContentSub,children:editPermission?`${localeService.t("permission.panel.iCanEdit")}`:`${localeService.t("permission.panel.iCanNotEdit")}`})]}),jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListItemContentView,children:[jsxRuntime.jsx("span",{className:styles$4.sheetPermissionListItemContentTitle,children:localeService.t("permission.panel.viewPermission")}),jsxRuntime.jsx("span",{className:styles$4.sheetPermissionListItemContentSub,children:viewPermission?`${localeService.t("permission.panel.iCanView")}`:`${localeService.t("permission.panel.iCanNotView")}`})]}),rule.description&&jsxRuntime.jsx(design.Tooltip,{title:rule.description,children:jsxRuntime.jsx("div",{className:styles$4.sheetPermissionListItemContentDesc,children:rule.description})})]})]},item.objectID)})}):jsxRuntime.jsxs("div",{className:styles$4.sheetPermissionListEmpty,children:[jsxRuntime.jsx("img",{width:240,height:120,src:panelListEmptyBase64,alt:""}),jsxRuntime.jsx("p",{className:styles$4.sheetPermissionListEmptyText,children:localeService.t("permission.dialog.listEmpty")})]}),hasSetProtectPermission&&jsxRuntime.jsx("div",{className:styles$4.sheetPermissionPanelAddWrapper,children:jsxRuntime.jsxs(design.Button,{className:styles$4.sheetPermissionPanelAddButton,type:"primary",onClick:__name(()=>{const sidebarProps={header:{title:`${localeService.t("permission.panel.title")}`},children:{label:UNIVER_SHEET_PERMISSION_PANEL,showDetail:!0},width:330};sidebarService.open(sidebarProps)},"onClick"),children:[jsxRuntime.jsx("div",{children:"+ "}),localeService.t("permission.button.addNewPermission")]})})]})},"SheetPermissionPanelList"),SheetPermissionPanel=__name(({showDetail,fromSheetBar,rule,oldRule})=>{var _a61;const univerInstanceService=core.useDependency(core.IUniverInstanceService),sheetsSelectionsService=core.useDependency(sheets.SheetsSelectionsService);if(!core.useDependency(SheetPermissionPanelModel).getVisible())return null;const target=sheets.getSheetCommandTarget(univerInstanceService);if(!target)return null;const{worksheet}=target,key=((_a61=sheetsSelectionsService.getCurrentSelections())==null?void 0:_a61.map(selection=>selection.range)).reduce((acc,range)=>acc+engineFormula.serializeRangeWithSheet(worksheet.getName(),range),"");return showDetail?jsxRuntime.jsx(SheetPermissionPanelDetail,{fromSheetBar,rule,oldRule},fromSheetBar?"sheet-bar":"normal"):jsxRuntime.jsx(SheetPermissionPanelList,{},key)},"SheetPermissionPanel"),spinContainer="univer-spin-container",spinOverlay="univer-spin-overlay",spinner="univer-spinner",spin="univer-spin",contentBlur="univer-content-blur",styles$3={spinContainer,spinOverlay,spinner,spin,contentBlur},Spin=__name(({loading,children})=>jsxRuntime.jsxs("div",{className:styles$3.spinContainer,children:[loading&&jsxRuntime.jsx("div",{className:styles$3.spinOverlay,children:jsxRuntime.jsx("div",{className:styles$3.spinner})}),jsxRuntime.jsx("div",{className:loading?styles$3.contentBlur:"",children})]}),"Spin"),sheetPermissionDialogWrapper="univer-sheet-permission-dialog-wrapper",sheetPermissionDialogSplit="univer-sheet-permission-dialog-split",sheetPermissionDialogItem="univer-sheet-permission-dialog-item",sheetPermissionUserDialogFooter$1="univer-sheet-permission-user-dialog-footer",sheetPermissionUserDialogFooterConfirm$1="univer-sheet-permission-user-dialog-footer-confirm",sheetPermissionUserDialogButton$1="univer-sheet-permission-user-dialog-button",styles$2={sheetPermissionDialogWrapper,sheetPermissionDialogSplit,sheetPermissionDialogItem,sheetPermissionUserDialogFooter:sheetPermissionUserDialogFooter$1,sheetPermissionUserDialogFooterConfirm:sheetPermissionUserDialogFooterConfirm$1,sheetPermissionUserDialogButton:sheetPermissionUserDialogButton$1},SheetPermissionDialog=__name(()=>{const localeService=core.useDependency(core.LocaleService),univerInstanceService=core.useDependency(core.IUniverInstanceService),authzIoService=core.useDependency(core.IAuthzIoService),worksheetProtectionPointRuleModel=core.useDependency(sheets.WorksheetProtectionPointModel),dialogService=core.useDependency(ui.IDialogService),permissionService=core.useDependency(core.IPermissionService),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet();if(!worksheet)throw new Error("No active sheet found");const[collaborators,setCollaborators]=React.useState([]),commandService=core.useDependency(core.ICommandService),[loading,setLoading]=React.useState(()=>!!worksheetProtectionPointRuleModel.getRule(workbook.getUnitId(),worksheet.getSheetId())),[permissionMap,setPermissionMap]=React.useState(()=>Object.keys(subUnitPermissionTypeMap).reduce((acc,action)=>(acc[action]={text:localeService.t(`permission.panel.${subUnitPermissionTypeMap[Number(action)]}`),allowed:!0},acc),{}));React.useEffect(()=>{__name(async()=>{const unitId=workbook.getUnitId(),collaborators2=await authzIoService.listCollaborators({objectID:unitId,unitID:unitId});setCollaborators(collaborators2)},"getUserList")()},[]),React.useEffect(()=>{__name(async()=>{const unitId=workbook.getUnitId(),worksheetPointRule=worksheetProtectionPointRuleModel.getRule(unitId,worksheet.getSheetId());if(!worksheetPointRule)return;setLoading(!0);const actions=(await authzIoService.list({unitID:workbook.getUnitId(),objectIDs:[worksheetPointRule.permissionId],actions:defaultWorksheetUnitActionList}))[0].strategies.reduce((p,c)=>(subUnitPermissionTypeMap[c.action]&&(p[c.action]={text:localeService.t(`permission.panel.${subUnitPermissionTypeMap[c.action]}`),allowed:c.role!==S.Owner}),p),{});setPermissionMap(actions),setTimeout(()=>{setLoading(!1)},100)},"getPermissionPoints")()},[]);const handleChangeActionPermission=__name(async()=>{const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet2=workbook2==null?void 0:workbook2.getActiveSheet();if(!worksheet2)throw new Error("No active sheet found");const unitId=workbook2.getUnitId(),subUnitId=worksheet2.getSheetId(),pointRule=worksheetProtectionPointRuleModel.getRule(unitId,subUnitId),actions=Object.keys(permissionMap).map(action=>({action:Number(action),role:permissionMap[action].allowed?S.Editor:S.Owner}));let permissionId=pointRule==null?void 0:pointRule.permissionId;permissionId?authzIoService.update({objectType:L.Worksheet,objectID:permissionId,unitID:unitId,strategies:actions,share:void 0,name:"",scope:{read:M.AllCollaborator,edit:M.AllCollaborator},collaborators:void 0}).then(()=>{sheets.getAllWorksheetPermissionPoint().forEach(F=>{const instance=new F(unitId,subUnitId),unitActionName=instance.subType,action=actions.find(item=>item.action===unitActionName);action&&permissionService.updatePermissionPoint(instance.id,action.role===S.Editor)})}):(permissionId=await authzIoService.create({objectType:L.Worksheet,worksheetObject:{unitID:unitId,collaborators,name:"",strategies:actions,scope:{read:M.AllCollaborator,edit:M.AllCollaborator}}}),commandService.executeCommand(sheets.SetWorksheetPermissionPointsCommand.id,{rule:{permissionId,unitId,subUnitId}}))},"handleChangeActionPermission");return jsxRuntime.jsx(Spin,{loading,children:jsxRuntime.jsxs("div",{className:styles$2.sheetPermissionDialogWrapper,children:[jsxRuntime.jsx("div",{className:styles$2.sheetPermissionDialogSplit}),Object.keys(permissionMap).map(action=>{const actionItem=permissionMap[action],{text,allowed}=actionItem;return jsxRuntime.jsxs("div",{className:styles$2.sheetPermissionDialogItem,children:[jsxRuntime.jsx("div",{children:text}),jsxRuntime.jsx(design.Switch,{defaultChecked:allowed,onChange:__name(()=>{setPermissionMap({...permissionMap,[action]:{...actionItem,allowed:!allowed}})},"onChange")})]},text)}),jsxRuntime.jsx("div",{className:styles$2.sheetPermissionDialogSplit}),jsxRuntime.jsxs("div",{className:styles$2.sheetPermissionUserDialogFooter,children:[jsxRuntime.jsx(design.Button,{className:styles$2.sheetPermissionUserDialogButton,onClick:__name(()=>{dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID)},"onClick"),children:localeService.t("permission.button.cancel")}),jsxRuntime.jsx(design.Button,{type:"primary",onClick:__name(()=>{handleChangeActionPermission(),dialogService.close(UNIVER_SHEET_PERMISSION_DIALOG_ID)},"onClick"),className:clsx(styles$2.sheetPermissionUserDialogFooterConfirm,styles$2.sheetPermissionUserDialogButton),children:localeService.t("permission.button.confirm")})]})]})})},"SheetPermissionDialog"),UserEmptyBase64="data:image/png;base64,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",sheetPermissionUserDialogWrapper="univer-sheet-permission-user-dialog-wrapper",sheetPermissionUserDialogSearchInput="univer-sheet-permission-user-dialog-search-input",sheetPermissionUserList="univer-sheet-permission-user-list",sheetPermissionUserListEmpty="univer-sheet-permission-user-list-empty",sheetPermissionUserListEmptyText="univer-sheet-permission-user-list-empty-text",sheetPermissionUserItem="univer-sheet-permission-user-item",sheetPermissionUserItemName="univer-sheet-permission-user-item-name",sheetPermissionSplit="univer-sheet-permission-split",sheetPermissionUserDialogFooter="univer-sheet-permission-user-dialog-footer",sheetPermissionUserDialogFooterConfirm="univer-sheet-permission-user-dialog-footer-confirm",sheetPermissionUserDialogButton="univer-sheet-permission-user-dialog-button",styles$1={sheetPermissionUserDialogWrapper,sheetPermissionUserDialogSearchInput,sheetPermissionUserList,sheetPermissionUserListEmpty,sheetPermissionUserListEmptyText,sheetPermissionUserItem,sheetPermissionUserItemName,sheetPermissionSplit,sheetPermissionUserDialogFooter,sheetPermissionUserDialogFooterConfirm,sheetPermissionUserDialogButton},SheetPermissionUserDialog=__name(()=>{const[inputValue,setInputValue]=React.useState(""),localeService=core.useDependency(core.LocaleService),dialogService=core.useDependency(ui.IDialogService),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),searchUserList=sheetPermissionUserManagerService.userList.filter(item=>{var _a61;return((_a61=item.subject)==null?void 0:_a61.name.toLocaleLowerCase().includes(inputValue.toLocaleLowerCase()))&&item.role===S.Editor}),[selectUserInfo,setSelectUserInfo]=React.useState(sheetPermissionUserManagerService.selectUserList),handleChangeUser=__name(item=>{if((selectUserInfo==null?void 0:selectUserInfo.findIndex(v=>{var _a61,_b;return((_a61=v.subject)==null?void 0:_a61.userID)===((_b=item.subject)==null?void 0:_b.userID)}))===-1){const select={...item};setSelectUserInfo([...selectUserInfo,select])}else{const newSelectUserInfo=selectUserInfo.filter(v=>{var _a61,_b;return((_a61=v.subject)==null?void 0:_a61.userID)!==((_b=item.subject)==null?void 0:_b.userID)});setSelectUserInfo(newSelectUserInfo)}},"handleChangeUser");return jsxRuntime.jsxs("div",{className:styles$1.sheetPermissionUserDialogWrapper,children:[jsxRuntime.jsx("div",{className:styles$1.sheetPermissionUserDialogSearch,children:jsxRuntime.jsx(design.Input,{placeholder:localeService.t("permission.dialog.search"),className:styles$1.sheetPermissionUserDialogSearchInput,value:inputValue,onChange:__name(v=>setInputValue(v),"onChange")})}),jsxRuntime.jsx("div",{className:styles$1.sheetPermissionUserList,children:(searchUserList==null?void 0:searchUserList.length)>0?jsxRuntime.jsx(jsxRuntime.Fragment,{children:searchUserList==null?void 0:searchUserList.map(item=>{var _a61,_b,_c;return jsxRuntime.jsxs("div",{className:styles$1.sheetPermissionUserItem,onClick:__name(()=>handleChangeUser(item),"onClick"),children:[jsxRuntime.jsx(design.Avatar,{src:(_a61=item.subject)==null?void 0:_a61.avatar,size:24}),jsxRuntime.jsx("div",{className:styles$1.sheetPermissionUserItemName,children:(_b=item.subject)==null?void 0:_b.name}),(selectUserInfo==null?void 0:selectUserInfo.findIndex(v=>{var _a62,_b2;return((_a62=v.subject)==null?void 0:_a62.userID)===((_b2=item.subject)==null?void 0:_b2.userID)}))!==-1&&jsxRuntime.jsx("div",{children:jsxRuntime.jsx(CheckMarkSingle,{})})]},(_c=item.subject)==null?void 0:_c.userID)})}):jsxRuntime.jsxs("div",{className:styles$1.sheetPermissionUserListEmpty,children:[jsxRuntime.jsx("img",{width:240,height:120,src:UserEmptyBase64,alt:""}),jsxRuntime.jsx("p",{className:styles$1.sheetPermissionUserListEmptyText,children:localeService.t("permission.dialog.userEmpty")})]})}),jsxRuntime.jsx("div",{className:styles$1.sheetPermissionSplit}),jsxRuntime.jsxs("div",{className:styles$1.sheetPermissionUserDialogFooter,children:[jsxRuntime.jsx(design.Button,{className:styles$1.sheetPermissionUserDialogButton,onClick:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_USER_DIALOG_ID),"onClick"),children:localeService.t("permission.button.cancel")}),jsxRuntime.jsx(design.Button,{type:"primary",onClick:__name(()=>{sheetPermissionUserManagerService.setSelectUserList(selectUserInfo),dialogService.close(UNIVER_SHEET_PERMISSION_USER_DIALOG_ID)},"onClick"),className:clsx(styles$1.sheetPermissionUserDialogFooterConfirm,styles$1.sheetPermissionUserDialogButton),children:localeService.t("permission.button.confirm")})]})]})},"SheetPermissionUserDialog"),sheetPermissionAlertDialog="univer-sheet-permission-alert-dialog",sheetPermissionAlertDialogTitle="univer-sheet-permission-alert-dialog-title",sheetPermissionAlertDialogButton="univer-sheet-permission-alert-dialog-button",styles={sheetPermissionAlertDialog,sheetPermissionAlertDialogTitle,sheetPermissionAlertDialogButton},AlertDialog=__name(({errorMsg})=>{const localeService=core.useDependency(core.LocaleService),dialogService=core.useDependency(ui.IDialogService);return jsxRuntime.jsxs("div",{className:styles.sheetPermissionAlertDialog,children:[jsxRuntime.jsx("h1",{className:styles.sheetPermissionAlertDialogTitle,children:localeService.t("permission.dialog.alert")}),jsxRuntime.jsx("p",{children:errorMsg||localeService.t("permission.dialog.alertContent")}),jsxRuntime.jsx("div",{className:styles.sheetPermissionAlertDialogButton,children:jsxRuntime.jsx(design.Button,{type:"primary",onClick:__name(()=>{dialogService.close(UNIVER_SHEET_PERMISSION_ALERT_DIALOG_ID)},"onClick"),children:localeService.t("permission.button.confirm")})})]})},"AlertDialog"),base64="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI0IiB2aWV3Qm94PSIwIDAgNCA0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNzU5XzExMDgiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjRDZEOEQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF83NTlfMTEwOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTS0zLjY0MDAyIDMuNDQxNDFMMi4wNzM5NyAtMi4yNzI1OEwyLjc4MTA4IC0xLjU2NTQ4TC0yLjkzMjkxIDQuMTQ4NTJMLTMuNjQwMDIgMy40NDE0MVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0tMS41MTg2OCA1LjU2Mjc1TDQuMTk1MzEgLTAuMTUxMjQ1TDQuOTAyNDIgMC41NTU4NjJMLTAuODExNTc1IDYuMjY5ODZMLTEuNTE4NjggNS41NjI3NVoiIGZpbGw9IiNENkQ4REIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjYwMjY1NiA3LjY4NDAzTDYuMzE2NjUgMS45NzAwM0w3LjAyMzc2IDIuNjc3MTRMMS4zMDk3NiA4LjM5MTEzTDAuNjAyNjU2IDcuNjg0MDNaIiBmaWxsPSIjRDZEOERCIi8+CjwvZz4KPC9zdmc+",RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY="RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY",RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY="RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY",EXTENSION_CAN_VIEW_Z_INDEX$1=25,EXTENSION_CAN_NOT_VIEW_Z_INDEX$1=80,_RangeProtectionRenderExtension=class _RangeProtectionRenderExtension extends engineRender.SheetExtension{constructor(){super();__publicField(this,"_pattern",null);__publicField(this,"_img",new Image);__publicField(this,"renderCache",new Set);this._img.src=base64}clearCache(){this.renderCache.clear()}draw(ctx,_parentScale,spreadsheetSkeleton){const{worksheet}=spreadsheetSkeleton;worksheet&&(ctx.save(),this._pattern||(this._pattern=ctx.createPattern(this._img,"repeat")),this.renderCache.clear(),core.Range.foreach(spreadsheetSkeleton.rowColumnSegment,(row,col)=>{if(!worksheet.getRowVisible(row)||!worksheet.getColVisible(col))return;const{selectionProtection=[]}=worksheet.getCell(row,col)||{};this._pattern&&(ctx.fillStyle=this._pattern,selectionProtection.forEach(config=>{if(config.ruleId&&this.shouldRender(config)){if(this.renderCache.has(config.ruleId))return;this.renderCache.add(config.ruleId),config.ranges.forEach(range=>{const start=spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow,range.startColumn,!1),end=spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow,range.endColumn,!1);ctx.fillRect(start.startX,start.startY,end.endX-start.startX,end.endY-start.startY)})}}))}),ctx.restore())}};__name(_RangeProtectionRenderExtension,"RangeProtectionRenderExtension");let RangeProtectionRenderExtension=_RangeProtectionRenderExtension;const _RangeProtectionCanViewRenderExtension=class _RangeProtectionCanViewRenderExtension extends RangeProtectionRenderExtension{constructor(){super();__publicField(this,"uKey",RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY);__publicField(this,"Z_INDEX",EXTENSION_CAN_VIEW_Z_INDEX$1)}shouldRender(config){return(config==null?void 0:config[D.View])!==!1}};__name(_RangeProtectionCanViewRenderExtension,"RangeProtectionCanViewRenderExtension");let RangeProtectionCanViewRenderExtension=_RangeProtectionCanViewRenderExtension;const _RangeProtectionCanNotViewRenderExtension=class _RangeProtectionCanNotViewRenderExtension extends RangeProtectionRenderExtension{constructor(){super();__publicField(this,"uKey",RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY);__publicField(this,"Z_INDEX",EXTENSION_CAN_NOT_VIEW_Z_INDEX$1)}shouldRender(config){return(config==null?void 0:config[D.View])===!1}};__name(_RangeProtectionCanNotViewRenderExtension,"RangeProtectionCanNotViewRenderExtension");let RangeProtectionCanNotViewRenderExtension=_RangeProtectionCanNotViewRenderExtension;const worksheetProtectionKey="worksheet-protection",EXTENSION_CAN_VIEW_Z_INDEX=25,EXTENSION_CAN_NOT_VIEW_Z_INDEX=80,_WorksheetProtectionRenderExtension=class _WorksheetProtectionRenderExtension extends engineRender.SheetExtension{constructor(){super();__publicField(this,"uKey",worksheetProtectionKey);__publicField(this,"Z_INDEX",EXTENSION_CAN_VIEW_Z_INDEX);__publicField(this,"_pattern");__publicField(this,"_img",new Image);this._img.src=base64}draw(ctx,_parentScale,spreadsheetSkeleton){const{worksheet}=spreadsheetSkeleton;if(!worksheet)return!1;ctx.save(),this._pattern||(this._pattern=ctx.createPattern(this._img,"repeat"));const{startRow,startColumn,endRow,endColumn}=spreadsheetSkeleton.rowColumnSegment,start=spreadsheetSkeleton.getCellWithCoordByIndex(startRow,startColumn,!1),end=spreadsheetSkeleton.getCellWithCoordByIndex(endRow,endColumn,!1),{hasWorksheetRule=!1,selectionProtection=[]}=worksheet.getCell(startRow,startColumn)||{};if(this._pattern){if(selectionProtection.length>0){const cellProtectionConfig=selectionProtection[0];(cellProtectionConfig==null?void 0:cellProtectionConfig[D.View])?this.setZIndex(EXTENSION_CAN_VIEW_Z_INDEX):this.setZIndex(EXTENSION_CAN_NOT_VIEW_Z_INDEX)}ctx.fillStyle=this._pattern,hasWorksheetRule&&ctx.fillRect(start.startX,start.startY,end.endX-start.startX,end.endY-start.startY),ctx.restore()}}setZIndex(zIndex){this.Z_INDEX=zIndex}};__name(_WorksheetProtectionRenderExtension,"WorksheetProtectionRenderExtension");let WorksheetProtectionRenderExtension=_WorksheetProtectionRenderExtension;const PermissionDetailUserPart=__name(props=>{const{editState,onEditStateChange,viewState,onViewStateChange,permissionId}=props,localeService=core.useDependency(core.LocaleService),dialogService=core.useDependency(ui.IDialogService),authzIoService=core.useDependency(core.IAuthzIoService),sheetPermissionUserManagerService=core.useDependency(SheetPermissionUserManagerService),userManagerService=core.useDependency(core.UserManagerService),univerInstanceService=core.useDependency(core.IUniverInstanceService),selectUserList=core.useObservable(sheetPermissionUserManagerService.selectUserList$,sheetPermissionUserManagerService.selectUserList),workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!workbook||!worksheet)return null;const unitId=workbook.getUnitId(),handleAddPerson=__name(async()=>{const userList=await authzIoService.listCollaborators({objectID:unitId,unitID:unitId}),currentUser=userManagerService.getCurrentUser();sheetPermissionUserManagerService.setCanEditUserList(userList.filter(user=>{var _a61;return((_a61=user.subject)==null?void 0:_a61.userID)!==currentUser.userID})),dialogService.open({id:UNIVER_SHEET_PERMISSION_USER_DIALOG_ID,title:{title:""},children:{label:UNIVER_SHEET_PERMISSION_USER_DIALOG},width:280,destroyOnClose:!0,onClose:__name(()=>dialogService.close(UNIVER_SHEET_PERMISSION_USER_DIALOG_ID),"onClose"),className:"sheet-permission-user-dialog"})},"handleAddPerson");return React.useEffect(()=>{permissionId?__name(async()=>{const selectUserList2=(await authzIoService.listCollaborators({objectID:permissionId,unitID:unitId})).filter(user=>user.role===S.Editor);selectUserList2.length>0&&onEditStateChange(sheets.EditStateEnum.DesignedUserCanEdit),sheetPermissionUserManagerService.setSelectUserList(selectUserList2),sheetPermissionUserManagerService.setOldCollaboratorList(selectUserList2)},"getSelectUserList")():(sheetPermissionUserManagerService.setSelectUserList([]),sheetPermissionUserManagerService.setOldCollaboratorList([]))},[]),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(design.FormLayout,{className:styles$5.sheetPermissionPanelTitle,label:localeService.t("permission.panel.editPermission"),children:jsxRuntime.jsxs(design.RadioGroup,{value:editState,onChange:__name(v=>onEditStateChange(v),"onChange"),className:styles$5.radioGroupVertical,children:[jsxRuntime.jsx(design.Radio,{value:sheets.EditStateEnum.OnlyMe,children:jsxRuntime.jsx("span",{className:styles$5.text,children:localeService.t("permission.panel.onlyICanEdit")})}),jsxRuntime.jsx(design.Radio,{value:sheets.EditStateEnum.DesignedUserCanEdit,children:jsxRuntime.jsx("span",{className:styles$5.text,children:localeService.t("permission.panel.designedUserCanEdit")})})]})}),editState===sheets.EditStateEnum.DesignedUserCanEdit&&jsxRuntime.jsxs("div",{className:styles$5.sheetPermissionDesignPersonPanel,children:[jsxRuntime.jsxs("div",{className:styles$5.sheetPermissionDesignPersonPanelHeader,children:[jsxRuntime.jsx("span",{children:localeService.t("permission.panel.designedPerson")}),jsxRuntime.jsx("span",{className:styles$5.sheetPermissionDesignPersonPanelHeaderAdd,onClick:handleAddPerson,children:localeService.t("permission.panel.addPerson")})]}),jsxRuntime.jsx("div",{className:styles$5.sheetPermissionDesignPersonPanelSplit}),jsxRuntime.jsx("div",{className:styles$5.sheetPermissionDesignPersonPanelContent,children:(selectUserList==null?void 0:selectUserList.length)>0?selectUserList.map(item=>{var _a61,_b,_c;return jsxRuntime.jsxs("div",{className:styles$5.sheetPermissionDesignPersonPanelContentItem,children:[jsxRuntime.jsx(design.Avatar,{size:24,src:(_a61=item.subject)==null?void 0:_a61.avatar}),jsxRuntime.jsx("span",{className:styles$5.sheetPermissionDesignPersonPanelContentItemName,children:(_b=item.subject)==null?void 0:_b.name}),jsxRuntime.jsx(design.Select,{className:styles$5.sheetPermissionDesignPersonPanelContentItemSelect,value:"edit",onChange:__name(v=>{v==="delete"&&sheetPermissionUserManagerService.setSelectUserList(selectUserList.filter(i=>{var _a62,_b2;return((_a62=i.subject)==null?void 0:_a62.userID)!==((_b2=item.subject)==null?void 0:_b2.userID)}))},"onChange"),options:[{label:`${localeService.t("permission.panel.canEdit")}`,value:"edit"},{label:`${localeService.t("permission.panel.delete")}`,value:"delete"}]})]},(_c=item.subject)==null?void 0:_c.userID)}):jsxRuntime.jsxs("div",{className:styles$5.sheetPermissionUserListEmpty,children:[jsxRuntime.jsx("img",{width:240,height:120,src:UserEmptyBase64,alt:""}),jsxRuntime.jsx("p",{className:styles$5.sheetPermissionUserListEmptyText,children:localeService.t("permission.dialog.userEmpty")})]})})]}),jsxRuntime.jsx(design.FormLayout,{className:styles$5.sheetPermissionPanelTitle,label:localeService.t("permission.panel.viewPermission"),children:jsxRuntime.jsxs(design.RadioGroup,{value:viewState,onChange:__name(v=>onViewStateChange(v),"onChange"),className:styles$5.radioGroupVertical,children:[jsxRuntime.jsx(design.Radio,{value:sheets.ViewStateEnum.OthersCanView,children:jsxRuntime.jsx("span",{className:styles$5.text,children:localeService.t("permission.panel.othersCanView")})}),jsxRuntime.jsx(design.Radio,{value:sheets.ViewStateEnum.NoOneElseCanView,children:jsxRuntime.jsx("span",{className:styles$5.text,children:localeService.t("permission.panel.noOneElseCanView")})})]})})]})},"PermissionDetailUserPart");var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$h(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$h(target,key,result),result},"__decorateClass$h"),__decorateParam$h=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$h"),_a41;let SheetPermissionRenderManagerController=(_a41=class extends core.Disposable{constructor(_injector,_componentManager,_uiPartsService){super(),this._injector=_injector,this._componentManager=_componentManager,this._uiPartsService=_uiPartsService,this._init()}_init(){this._initComponents(),this._initUiPartComponents()}_initComponents(){[[permissionMenuIconKey,ProtectSingle],[permissionDeleteIconKey,DeleteSingle],[permissionEditIconKey,WriteSingle],[permissionCheckIconKey,CheckMarkSingle],[permissionLockIconKey,LockSingle],[UNIVER_SHEET_PERMISSION_PANEL,SheetPermissionPanel],[UNIVER_SHEET_PERMISSION_USER_DIALOG,SheetPermissionUserDialog],[UNIVER_SHEET_PERMISSION_DIALOG,SheetPermissionDialog],[UNIVER_SHEET_PERMISSION_ALERT_DIALOG,AlertDialog]].forEach(([key,component])=>{this.disposeWithMe(this._componentManager.register(key,component))})}_initUiPartComponents(){var _a61;const config=this._injector.get(core.IConfigService).getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(_a61=config==null?void 0:config.customComponents)!=null&&_a61.has(UNIVER_SHEET_PERMISSION_USER_PART)||this.disposeWithMe(this._uiPartsService.registerComponent(UNIVER_SHEET_PERMISSION_USER_PART,()=>core.connectInjector(PermissionDetailUserPart,this._injector)))}},__name(_a41,"SheetPermissionRenderManagerController"),_a41);SheetPermissionRenderManagerController=__decorateClass$h([__decorateParam$h(0,core.Inject(core.Injector)),__decorateParam$h(1,core.Inject(ui.ComponentManager)),__decorateParam$h(2,core.Inject(ui.IUIPartsService))],SheetPermissionRenderManagerController);var _a42;let SheetPermissionRenderController=(_a42=class extends core.Disposable{constructor(_context,_rangeProtectionRuleModel,_sheetSkeletonManagerService,_permissionService,_configService){var _a61;super();__publicField(this,"_rangeProtectionCanViewRenderExtension",new RangeProtectionCanViewRenderExtension);__publicField(this,"_rangeProtectionCanNotViewRenderExtension",new RangeProtectionCanNotViewRenderExtension);this._context=_context,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._permissionService=_permissionService,this._configService=_configService;const config=this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(_a61=config==null?void 0:config.customComponents)!=null&&_a61.has(UNIVER_SHEET_PERMISSION_BACKGROUND)||(this._initRender(),this._initSkeleton(),this._rangeProtectionRuleModel.ruleChange$.subscribe(info=>{var _a62,_b;((_a62=info.oldRule)!=null&&_a62.id&&this._rangeProtectionCanViewRenderExtension.renderCache.has(info.oldRule.id)||this._rangeProtectionCanViewRenderExtension.renderCache.has(info.rule.id))&&this._rangeProtectionCanViewRenderExtension.clearCache(),((_b=info.oldRule)!=null&&_b.id&&this._rangeProtectionCanNotViewRenderExtension.renderCache.has(info.oldRule.id)||this._rangeProtectionCanNotViewRenderExtension.renderCache.has(info.rule.id))&&this._rangeProtectionCanNotViewRenderExtension.clearCache()}))}_initRender(){const spreadsheetRender=this._context.mainComponent;spreadsheetRender&&(spreadsheetRender.getExtensionByKey(RANGE_PROTECTION_CAN_VIEW_RENDER_EXTENSION_KEY)||spreadsheetRender.register(this._rangeProtectionCanViewRenderExtension),spreadsheetRender.getExtensionByKey(RANGE_PROTECTION_CAN_NOT_VIEW_RENDER_EXTENSION_KEY)||spreadsheetRender.register(this._rangeProtectionCanNotViewRenderExtension))}_initSkeleton(){const markDirtySkeleton=__name(()=>{var _a61;this._sheetSkeletonManagerService.reCalculate(),(_a61=this._context.mainComponent)==null||_a61.makeDirty()},"markDirtySkeleton");this.disposeWithMe(rxjs.merge(this._permissionService.permissionPointUpdate$.pipe(rxjs.throttleTime(300,void 0,{trailing:!0})),this._rangeProtectionRuleModel.rangeRuleInitStateChange$,this._rangeProtectionRuleModel.ruleChange$).pipe().subscribe(markDirtySkeleton))}},__name(_a42,"SheetPermissionRenderController"),_a42);SheetPermissionRenderController=__decorateClass$h([__decorateParam$h(1,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$h(2,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$h(3,core.IPermissionService),__decorateParam$h(4,core.IConfigService)],SheetPermissionRenderController);var _a43;let WorksheetProtectionRenderController=(_a43=class extends core.Disposable{constructor(_context,_renderManagerService,_univerInstanceService,_sheetSkeletonManagerService,_worksheetProtectionRuleModel,_configService){var _a61;super();__publicField(this,"_worksheetProtectionRenderExtension",new WorksheetProtectionRenderExtension);this._context=_context,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._worksheetProtectionRuleModel=_worksheetProtectionRuleModel,this._configService=_configService;const config=this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY);(_a61=config==null?void 0:config.customComponents)!=null&&_a61.has(UNIVER_SHEET_PERMISSION_BACKGROUND)||(this._initRender(),this._initSkeleton())}_initRender(){const renderId=this._context.unitId,render2=renderId&&this._renderManagerService.getRenderById(renderId),spreadsheetRender=render2&&render2.mainComponent;spreadsheetRender&&(spreadsheetRender.getExtensionByKey(worksheetProtectionKey)||spreadsheetRender.register(this._worksheetProtectionRenderExtension))}_initSkeleton(){const markDirtySkeleton=__name(()=>{var _a61;this._sheetSkeletonManagerService.reCalculate(),(_a61=this._context.mainComponent)==null||_a61.makeDirty()},"markDirtySkeleton");this.disposeWithMe(rxjs.merge(this._worksheetProtectionRuleModel.worksheetRuleInitStateChange$).pipe().subscribe(markDirtySkeleton))}},__name(_a43,"WorksheetProtectionRenderController"),_a43);WorksheetProtectionRenderController=__decorateClass$h([__decorateParam$h(1,core.Inject(engineRender.IRenderManagerService)),__decorateParam$h(2,core.Inject(core.IUniverInstanceService)),__decorateParam$h(3,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$h(4,core.Inject(sheets.WorksheetProtectionRuleModel)),__decorateParam$h(5,core.Inject(core.IConfigService))],WorksheetProtectionRenderController);var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$g(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$g(target,key,result),result},"__decorateClass$g"),__decorateParam$g=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$g"),_a44;let FormatPainterRenderController=(_a44=class extends core.Disposable{constructor(_context,_formatPainterService){super(),this._context=_context,this._formatPainterService=_formatPainterService,this._initialize()}_initialize(){this._bindFormatPainterStatus()}_bindFormatPainterStatus(){this.disposeWithMe(core.toDisposable(this._formatPainterService.status$.subscribe(status=>{const scene=this._context.scene;scene&&(status!==FormatPainterStatus.OFF?scene.setDefaultCursor(engineRender.CURSOR_TYPE.CELL):scene.setDefaultCursor(engineRender.CURSOR_TYPE.DEFAULT))})))}},__name(_a44,"FormatPainterRenderController"),_a44);FormatPainterRenderController=__decorateClass$g([__decorateParam$g(1,IFormatPainterService)],FormatPainterRenderController);var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$f(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$f(target,key,result),result},"__decorateClass$f"),__decorateParam$f=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$f"),_a45;let SheetContextMenuMobileRenderController=(_a45=class extends core.Disposable{constructor(_context,_layoutService,_contextMenuService,_selectionManagerService,_selectionRenderService,_sheetSkeletonManagerService){super(),this._context=_context,this._layoutService=_layoutService,this._contextMenuService=_contextMenuService,this._selectionManagerService=_selectionManagerService,this._selectionRenderService=_selectionRenderService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._init()}_init(){let listenToSelectionChangeEvent=!1;this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(()=>listenToSelectionChangeEvent=!0)),this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(selectionWithStyleList=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton;if(!skeleton||!selectionWithStyleList||listenToSelectionChangeEvent===!1)return;listenToSelectionChangeEvent=!1;const selectionRangeWithStyle=selectionWithStyleList[0];if(!selectionRangeWithStyle.primary)return;const selectionWithCoord=attachSelectionWithCoord(selectionRangeWithStyle,skeleton),rangeType=selectionRangeWithStyle.range.rangeType,{scene}=this._context,viewMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),viewportScrollX=(viewMain==null?void 0:viewMain.viewportScrollX)||0,viewportScrollY=(viewMain==null?void 0:viewMain.viewportScrollY)||0;let clientX=0,clientY=0;const rowHeaderWidth=skeleton.rowHeaderWidth,canvasRect=this._layoutService.getContentElement().getBoundingClientRect();switch(rangeType){case core.RANGE_TYPE.NORMAL:clientX=selectionWithCoord.rangeWithCoord.startX+canvasRect.left-viewportScrollX,clientY=selectionWithCoord.rangeWithCoord.endY+canvasRect.top-viewportScrollY;break;case core.RANGE_TYPE.COLUMN:clientX=selectionWithCoord.rangeWithCoord.startX+canvasRect.left-viewportScrollX,clientY=Math.min(canvasRect.height/2,selectionWithCoord.rangeWithCoord.endY)+40;break;case core.RANGE_TYPE.ROW:clientX=(canvasRect.width-rowHeaderWidth)/2+20,clientY=selectionWithCoord.rangeWithCoord.endY+canvasRect.top-viewportScrollY;break;case core.RANGE_TYPE.ALL:clientX=selectionWithCoord.rangeWithCoord.startX+canvasRect.left,clientY=selectionWithCoord.rangeWithCoord.startY+canvasRect.top;break;default:clientX=selectionWithCoord.rangeWithCoord.startX+canvasRect.left-viewportScrollX,clientY=selectionWithCoord.rangeWithCoord.endY+canvasRect.top-viewportScrollY;break}clientX=core.Tools.clamp(clientX,rowHeaderWidth,canvasRect.width),clientY=core.Tools.clamp(clientY,canvasRect.top,canvasRect.height),this._contextMenuService.triggerContextMenu({clientX,clientY,preventDefault:__name(()=>{},"preventDefault"),stopPropagation:__name(()=>{},"stopPropagation")},ui.ContextMenuPosition.MAIN_AREA)}))}},__name(_a45,"SheetContextMenuMobileRenderController"),_a45);SheetContextMenuMobileRenderController=__decorateClass$f([__decorateParam$f(1,ui.ILayoutService),__decorateParam$f(2,ui.IContextMenuService),__decorateParam$f(3,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$f(4,ISheetSelectionRenderService),__decorateParam$f(5,core.Inject(exports.SheetSkeletonManagerService))],SheetContextMenuMobileRenderController);var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$e(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$e(target,key,result),result},"__decorateClass$e"),__decorateParam$e=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$e");const SHEET_NAVIGATION_COMMANDS=[MoveSelectionCommand.id,MoveSelectionEnterAndTabCommand.id];var _a46;let MobileSheetsScrollRenderController=(_a46=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_commandService,_renderManagerService,_selectionManagerService,_scrollManagerService,_univerInstanceService){super(),this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._renderManagerService=_renderManagerService,this._selectionManagerService=_selectionManagerService,this._scrollManagerService=_scrollManagerService,this._univerInstanceService=_univerInstanceService,this._init()}scrollToRange(range){let{endRow,endColumn,startColumn,startRow}=range;const bounding=this._getViewportBounding();if(range.rangeType===core.RANGE_TYPE.ROW?(startColumn=0,endColumn=0):range.rangeType===core.RANGE_TYPE.COLUMN&&(startRow=0,endRow=0),bounding){const row=bounding.startRow>endRow?startRow:endRow,col=bounding.startColumn>endColumn?startColumn:endColumn;return this._scrollToCell(row,col)}else return this._scrollToCell(startRow,startColumn)}_init(){this._initCommandListener(),this._initScrollEventListener(),this._initPointerScrollEvent(),this._initSkeletonListener()}_initCommandListener(){this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(SHEET_NAVIGATION_COMMANDS.includes(command.id))this._scrollToSelection();else if(command.id===sheets.ScrollToCellOperation.id){const param=command.params;this.scrollToRange(param)}else if(command.id===ExpandSelectionCommand.id){const param=command.params;this._scrollToSelectionForExpand(param)}}))}_scrollToSelectionForExpand(param){setTimeout(()=>{const selection=this._selectionManagerService.getCurrentLastSelection();if(selection==null)return;const{startRow,startColumn,endRow,endColumn}=selection.range,bounds=this._getViewportBounding();if(bounds==null)return;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;startRow>viewportStartRow?row=endRow:endRow<viewportEndRow?row=startRow:row=viewportStartRow,startColumn>viewportStartColumn?column=endColumn:endColumn<viewportEndColumn?column=startColumn:column=viewportStartColumn,param.direction===core.Direction.DOWN?row=endRow:param.direction===core.Direction.UP?row=startRow:param.direction===core.Direction.RIGHT?column=endColumn:param.direction===core.Direction.LEFT&&(column=startColumn),this._scrollToCell(row,column)},0)}_getFreeze(){var _a61;const snapshot=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton.getWorksheetConfig();if(snapshot!=null)return snapshot.freeze}_initScrollEventListener(){const{scene}=this._context;if(scene==null)return;const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);viewportMain&&(this.disposeWithMe(core.toDisposable(this._scrollManagerService.rawScrollInfo$.subscribe(rawScrollInfo=>{var _a61;if(rawScrollInfo==null){viewportMain.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0});return}const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(!skeleton)return;const{sheetViewStartRow,sheetViewStartColumn,offsetX,offsetY}=rawScrollInfo,{startX,startY}=skeleton.getCellWithCoordByIndex(sheetViewStartRow,sheetViewStartColumn,!1),viewportScrollX=startX+offsetX,viewportScrollY=startY+offsetY;viewportMain.scrollToViewportPos({viewportScrollX,viewportScrollY})}))),this.disposeWithMe(viewportMain.onScrollAfter$.subscribeEvent(scrollAfterParam=>{var _a61;if(!scrollAfterParam)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX,viewportScrollY,scrollX,scrollY}=scrollAfterParam,{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY),scrollInfo={sheetViewStartRow:row,sheetViewStartColumn:column,offsetX:columnOffset,offsetY:rowOffset};this._scrollManagerService.setScrollStateToCurrSheet(scrollInfo),this._scrollManagerService.validViewportScrollInfo$.next({...scrollInfo,scrollX,scrollY,viewportScrollX,viewportScrollY})})),this.disposeWithMe(viewportMain.onScrollByBar$.subscribeEvent(param=>{var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton;if(skeleton==null||param.isTrigger===!1)return;const sheetObject=this._getSheetObject();if(skeleton==null||sheetObject==null)return;const{viewportScrollX=0,viewportScrollY=0}=param,freeze=this._getFreeze(),{row,column,rowOffset,columnOffset}=skeleton.getDecomposedOffset(viewportScrollX,viewportScrollY);this._commandService.executeCommand(ScrollCommand.id,{sheetViewStartRow:row+((freeze==null?void 0:freeze.ySplit)||0),sheetViewStartColumn:column+((freeze==null?void 0:freeze.xSplit)||0),offsetX:columnOffset,offsetY:rowOffset})})))}_initSkeletonListener(){this.disposeWithMe(core.toDisposable(this._sheetSkeletonManagerService.currentSkeletonBefore$.subscribe(param=>{if(param==null)return;const scrollParam={unitId:param.unitId,sheetId:param.sheetId};this._scrollManagerService.setSearchParam(scrollParam);const sheetObject=this._getSheetObject();if(!sheetObject)return;const viewportMain=sheetObject.scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),currScrollInfo=this._scrollManagerService.getScrollStateByParam(scrollParam),{viewportScrollX,viewportScrollY}=this._scrollManagerService.calcViewportScrollFromRowColOffset(currScrollInfo);viewportMain&&(currScrollInfo?(viewportMain.viewportScrollX=viewportScrollX,viewportMain.viewportScrollY=viewportScrollY):(viewportMain.viewportScrollX=0,viewportMain.viewportScrollY=0),this._updateSceneSize(param))})))}_initPointerScrollEvent(){const sheetObject=this._getSheetObject();if(!sheetObject)return;const scrollManagerService=this._scrollManagerService,scene=sheetObject.scene,spreadsheet=sheetObject.spreadsheet,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),lastPointerPos={x:0,y:0};let _pointerScrolling=!1;const velocity={x:0,y:0},deceleration=.95;let scrollInertiaAnimationID=null;const pointerScrollInertia=__name(()=>{if(!viewportMain)return;velocity.x*=deceleration,velocity.y*=deceleration,lastPointerPos.x+=velocity.x,lastPointerPos.y+=velocity.y;const offsetX=velocity.x,offsetY=velocity.y;(offsetY!==0||offsetX!==0)&&this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetY,offsetX}),Math.abs(velocity.x)>1||Math.abs(velocity.y)>1?scrollInertiaAnimationID=requestAnimationFrame(pointerScrollInertia):scrollInertiaAnimationID=null},"pointerScrollInertia"),cancelInertiaAnimation=__name(()=>{cancelAnimationFrame(scrollInertiaAnimationID),scrollInertiaAnimationID=null},"cancelInertiaAnimation");spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{cancelInertiaAnimation(),viewportMain&&(lastPointerPos.x=evt.offsetX,lastPointerPos.y=evt.offsetY,_pointerScrolling=!0,state.stopPropagation())}),spreadsheet.onPointerMove$.subscribeEvent((evt,state)=>{if(!_pointerScrolling||!viewportMain)return;const e=evt,deltaX=-(e.offsetX-lastPointerPos.x),deltaY=-(e.offsetY-lastPointerPos.y);velocity.x=-(e.offsetX-lastPointerPos.x),velocity.y=-(e.offsetY-lastPointerPos.y);const offsetX=deltaX,offsetY=deltaY;(deltaX!==0||deltaY!==0)&&(offsetY!==0||offsetX!==0)&&this._commandService.executeCommand(SetScrollRelativeCommand.id,{offsetY,offsetX}),scrollManagerService.getCurrentScrollState(),lastPointerPos.x=e.offsetX,lastPointerPos.y=e.offsetY,state.stopPropagation()}),spreadsheet.onPointerUp$.subscribeEvent(_evt=>{_pointerScrolling=!1,scrollInertiaAnimationID=requestAnimationFrame(pointerScrollInertia)}),spreadsheet.onPointerLeave$.subscribeEvent(()=>{_pointerScrolling=!1}),spreadsheet.onPointerOut$.subscribeEvent(()=>{_pointerScrolling=!1}),scene.onPointerOut$.subscribeEvent(()=>{_pointerScrolling=!1}),scene.onPointerCancel$.subscribeEvent(()=>{_pointerScrolling=!1})}_updateSceneSize(param){var _a61;if(param==null)return;const{unitId}=this._context,{skeleton}=param,scene=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.scene;if(skeleton==null||scene==null)return;const{rowTotalHeight,columnTotalWidth,rowHeaderWidthAndMarginLeft,columnHeaderHeightAndMarginTop}=skeleton,worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const zoomRatio=worksheet.getZoomRatio()||1;scene==null||scene.setScaleValue(zoomRatio,zoomRatio),scene==null||scene.transformByState({width:rowHeaderWidthAndMarginLeft+columnTotalWidth,height:columnHeaderHeightAndMarginTop+rowTotalHeight})}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_scrollToSelectionByDirection(range){const bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let row=0,column=0;const{startRow,startColumn,endRow,endColumn}=range;startRow>=viewportStartRow&&(row=endRow),endRow<=viewportEndRow&&(row=startRow),startColumn>=viewportStartColumn&&(column=endColumn),endColumn<=viewportEndColumn&&(column=startColumn),this._scrollToCell(row,column)}_scrollToSelection(targetIsActualRowAndColumn=!0){const selection=this._selectionManagerService.getCurrentLastSelection();if(selection==null)return;const{startRow,startColumn,actualRow,actualColumn}=selection.primary,selectionStartRow=targetIsActualRowAndColumn?actualRow:startRow,selectionStartColumn=targetIsActualRowAndColumn?actualColumn:startColumn;this._scrollToCell(selectionStartRow,selectionStartColumn)}_getViewportBounding(){var _a61,_b;const scene=(_a61=this._getSheetObject())==null?void 0:_a61.scene;if(scene==null)return;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null)return;const skeleton=(_b=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_b.skeleton;if(skeleton!=null)return skeleton.getRangeByViewport(viewport.calcViewportInfo())}_scrollToCell(row,column){var _a61,_b,_c,_d;const{rowHeightAccumulation,columnWidthAccumulation}=(_b=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton)!=null?_b:{};if(rowHeightAccumulation==null||columnWidthAccumulation==null)return!1;const scene=(_c=this._getSheetObject())==null?void 0:_c.scene;if(scene==null)return!1;const viewport=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(viewport==null||((_d=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_d.skeleton)==null)return!1;const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return!1;const{startColumn:freezeStartColumn,startRow:freezeStartRow,ySplit:freezeYSplit,xSplit:freezeXSplit}=worksheet.getFreeze(),bounds=this._getViewportBounding();if(bounds==null)return!1;const{startRow:viewportStartRow,startColumn:viewportStartColumn,endRow:viewportEndRow,endColumn:viewportEndColumn}=bounds;let startSheetViewRow,startSheetViewColumn;if(row>=freezeStartRow&&column>=freezeStartColumn-freezeXSplit&&(row<=viewportStartRow&&(startSheetViewRow=row),row>=viewportEndRow)){const minRowAccumulation=rowHeightAccumulation[row]-viewport.height;for(let r2=viewportStartRow;r2<=row;r2++)if(rowHeightAccumulation[r2]>=minRowAccumulation){startSheetViewRow=r2+1;break}}if(column>=freezeStartColumn&&row>=freezeStartRow-freezeYSplit&&(column<=viewportStartColumn&&(startSheetViewColumn=column),column>=viewportEndColumn)){const minColumnAccumulation=columnWidthAccumulation[column]-viewport.width;for(let c=viewportStartColumn;c<=column;c++)if(columnWidthAccumulation[c]>=minColumnAccumulation){startSheetViewColumn=c+1;break}}if(startSheetViewRow===void 0&&startSheetViewColumn===void 0)return!1;const{offsetX,offsetY}=this._scrollManagerService.getCurrentScrollState()||{};return this._commandService.syncExecuteCommand(ScrollCommand.id,{sheetViewStartRow:startSheetViewRow,sheetViewStartColumn:startSheetViewColumn,offsetX:startSheetViewColumn===void 0?offsetX:0,offsetY:startSheetViewRow===void 0?offsetY:0})}},__name(_a46,"MobileSheetsScrollRenderController"),_a46);MobileSheetsScrollRenderController=__decorateClass$e([__decorateParam$e(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$e(2,core.ICommandService),__decorateParam$e(3,engineRender.IRenderManagerService),__decorateParam$e(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$e(5,core.Inject(exports.SheetScrollManagerService)),__decorateParam$e(6,core.IUniverInstanceService)],MobileSheetsScrollRenderController);const PRINTING_RANGE=core.createInterceptorKey("PRINTING_RANGE"),PRINTING_COMPONENT_COLLECT=core.createInterceptorKey("PRINTING_COMPONENT_COLLECT"),_SheetPrintInterceptorService=class _SheetPrintInterceptorService extends core.Disposable{constructor(){super();__publicField(this,"interceptor",new core.InterceptorManager({PRINTING_RANGE,PRINTING_COMPONENT_COLLECT}));this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().PRINTING_RANGE,{priority:-1,handler:__name(_value=>_value,"handler")})),this.disposeWithMe(this.interceptor.intercept(this.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{priority:-1,handler:__name(_value=>_value,"handler")}))}};__name(_SheetPrintInterceptorService,"SheetPrintInterceptorService");let SheetPrintInterceptorService=_SheetPrintInterceptorService;const _MobileSelectionControl=class _MobileSelectionControl extends SelectionControl{constructor(_scene,_zIndex,_themeService,options){super(_scene,_zIndex,_themeService,options);__publicField(this,"_fillControlTopLeft");__publicField(this,"_fillControlBottomRight");__publicField(this,"_rangeType",core.RANGE_TYPE.NORMAL);this._scene=_scene,this._zIndex=_zIndex,this._themeService=_themeService,this._rangeType=(options==null?void 0:options.rangeType)||core.RANGE_TYPE.NORMAL,this.initControlPoints()}initControlPoints(){const defaultStyle=this.currentStyle,expandCornerSize=defaultStyle.expandCornerSize||0,expandCornerInnerSize=(defaultStyle.expandCornerSize||0)/4,AutofillStrokeWidth=defaultStyle.autofillStrokeWidth||0,stroke=defaultStyle.stroke,AutofillStroke=defaultStyle.autofillStroke,zIndex=this.zIndex;this._fillControlTopLeft=new engineRender.Rect(SELECTION_MANAGER_KEY.fillTopLeft+zIndex,{zIndex:zIndex+2,width:expandCornerSize,height:expandCornerSize,radius:expandCornerSize/2,visualWidth:expandCornerInnerSize,visualHeight:expandCornerInnerSize,strokeWidth:AutofillStrokeWidth}),this._fillControlBottomRight=new engineRender.Rect(SELECTION_MANAGER_KEY.fillBottomRight+zIndex,{zIndex:zIndex+2,width:expandCornerSize,height:expandCornerSize,radius:expandCornerSize/2,visualHeight:expandCornerInnerSize,visualWidth:expandCornerInnerSize,strokeWidth:AutofillStrokeWidth});const fillProps={fill:stroke,stroke:AutofillStroke,strokeScaleEnabled:!1};this._fillControlTopLeft.setProps({...fillProps}),this._fillControlBottomRight.setProps({...fillProps});const objs=[this._fillControlTopLeft,this._fillControlBottomRight];switch(this._rangeType){case core.RANGE_TYPE.ROW:this.rowHeaderGroup.addObjects(...objs);break;case core.RANGE_TYPE.COLUMN:this.columnHeaderGroup.addObjects(...objs);break;case core.RANGE_TYPE.NORMAL:this.selectionShapeGroup.addObjects(...objs)}this.getScene().addObjects(objs,SHEET_COMPONENT_SELECTION_LAYER_INDEX)}get fillControlTopLeft(){return this._fillControlTopLeft}set fillControlTopLeft(value){this._fillControlTopLeft=value}get fillControlBottomRight(){return this._fillControlBottomRight}set fillControlBottomRight(value){this._fillControlBottomRight=value}get rangeType(){return this._rangeType}set rangeType(value){this._rangeType=value}dispose(){var _a61,_b;(_a61=this._fillControlBottomRight)==null||_a61.dispose(),(_b=this._fillControlTopLeft)==null||_b.dispose(),super.dispose()}_updateLayoutOfSelectionControl(style){var _a61,_b;super._updateLayoutOfSelectionControl(style);const defaultStyle=this.currentStyle;style==null&&(style=defaultStyle);const{widgets=defaultStyle.widgets}=style;if(this.currentStyle=style,this._enableAutoFill===!0&&!super._hasWidgets(widgets)){const{viewportScrollX,viewportScrollY}=this.getViewportMainScrollInfo(),{endX,endY}=this.selectionModel;this.transformControlPoint(viewportScrollX,viewportScrollY,endX,endY),this.fillControlTopLeft.show(),this.fillControlBottomRight.show()}else(_a61=this.fillControlTopLeft)==null||_a61.hide(),(_b=this.fillControlBottomRight)==null||_b.hide()}getViewportMainScrollInfo(){const viewMain=this.getScene().getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);return{viewportScrollX:(viewMain==null?void 0:viewMain.viewportScrollX)||0,viewportScrollY:(viewMain==null?void 0:viewMain.viewportScrollY)||0,width:(viewMain==null?void 0:viewMain.width)||0,height:(viewMain==null?void 0:viewMain.height)||0}}transformControlPoint(viewportScrollX=0,viewportScrollY=0,sheetContentWidth=0,sheetContentHeight=0){const style=this.currentStyle,rangeType=this.selectionModel.rangeType,expandCornerSize=style.expandCornerSize,{startX,startY,endX,endY}=this.selectionModel,viewportSizeInfo=this.getViewportMainScrollInfo(),viewportW=viewportSizeInfo.width,viewportH=viewportSizeInfo.height;switch(rangeType){case core.RANGE_TYPE.NORMAL:this.fillControlTopLeft.transformByState({left:-expandCornerSize/2,top:-expandCornerSize/2}),this.fillControlBottomRight.transformByState({left:endX-startX-expandCornerSize/2,top:endY-startY-expandCornerSize/2});break;case core.RANGE_TYPE.ROW:{const left=Math.min(viewportW/2+viewportScrollX,sheetContentWidth),controlLeft=-expandCornerSize/2+left;this.fillControlTopLeft.transformByState({left:controlLeft,top:-expandCornerSize/2}),this.fillControlBottomRight.transformByState({left:controlLeft,top:-expandCornerSize/2+endY-startY})}break;case core.RANGE_TYPE.COLUMN:{const top=Math.min(+viewportH/2+viewportScrollY,sheetContentHeight),controlTop=-expandCornerSize/2+top;this.fillControlTopLeft.transformByState({left:-expandCornerSize/2,top:controlTop}),this.fillControlBottomRight.transformByState({left:-expandCornerSize/2+endX-startX,top:controlTop})}break;default:console.error("unknown range type")}}};__name(_MobileSelectionControl,"MobileSelectionControl");let MobileSelectionControl=_MobileSelectionControl;var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$d(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$d(target,key,result),result},"__decorateClass$d"),__decorateParam$d=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$d"),_a47;let MobileSheetsSelectionRenderService=(_a47=class extends BaseSelectionRenderService{constructor(_context,injector,themeService,shortcutService,selectionManagerService,sheetSkeletonManagerService,_logService,_commandService,_contextService,_scrollManagerService){super(injector,themeService,shortcutService,sheetSkeletonManagerService,_contextService);__publicField(this,"_workbookSelections");__publicField(this,"_renderDisposable",null);__publicField(this,"_expandingSelection",!1);__publicField(this,"_selectionControls",[]);__publicField(this,"expandingControlMode","bottom-right");this._context=_context,this._logService=_logService,this._commandService=_commandService,this._contextService=_contextService,this._scrollManagerService=_scrollManagerService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this._init()}_init(){const sheetObject=this._getSheetObject();this._initEventListeners(sheetObject),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._updateControlPointWhenScrolling()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(param==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const unitId=this._context.unitId,{sheetId,skeleton}=param,{scene}=this._context,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._changeRuntime(skeleton,scene,viewportMain),this._workbookSelections.getCurrentLastSelection()||this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,selections:[getTopLeftSelectionOfCurrSheet(skeleton)]})}))}_initSelectionChangeListener(){}_initEventListeners(sheetObject){const{spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheet,spreadsheetLeftTopPlaceholder}=sheetObject,{scene}=this._context;this._initSpreadsheetEvent(sheetObject),this.disposeWithMe(spreadsheetRowHeader==null?void 0:spreadsheetRowHeader.onPointerUp$.subscribeEvent((evt,_state)=>{if(this._normalSelectionDisabled())return;const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{row}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);isThisRowSelected(this._workbookSelections.getCurrentSelections(),row)||(this.createNewSelection(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.ROW,this._getActiveViewport(evt)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(spreadsheetColumnHeader==null?void 0:spreadsheetColumnHeader.onPointerUp$.subscribeEvent((evt,_state)=>{if(this._normalSelectionDisabled())return;const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);isThisColSelected(this._workbookSelections.getCurrentSelections(),column)||(this.createNewSelection(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.COLUMN,this._getActiveViewport(evt)),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()))})),this.disposeWithMe(spreadsheetLeftTopPlaceholder==null?void 0:spreadsheetLeftTopPlaceholder.onPointerUp$.subscribeEvent((_evt,state)=>{if(this._normalSelectionDisabled())return;this._reset();const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,selectionWithStyle=selectionDataForSelectAll(skeleton);this._addSelectionControlByModelData(selectionWithStyle),this.refreshSelectionMoveStart(),state.stopPropagation(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}))}_initSpreadsheetEvent(sheetObject){const{spreadsheet}=sheetObject;let longPressTimer;const longPressDuration=500,pointerDownPos={x:0,y:0},clearLongPressTimer=__name(()=>{clearTimeout(longPressTimer)},"clearLongPressTimer"),createNewSelection=__name((evt,showContextMenu)=>{this.createNewSelection(evt,spreadsheet.zIndex+1,core.RANGE_TYPE.NORMAL,this._getActiveViewport(evt)),showContextMenu&&this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())},"createNewSelection");spreadsheet==null||spreadsheet.onPointerMove$.subscribeEvent((evt,_state)=>{(Math.abs(evt.offsetX-pointerDownPos.x)>10||Math.abs(evt.offsetY-pointerDownPos.y)>10)&&clearLongPressTimer()});const spreadsheetPointerDownSub=spreadsheet==null?void 0:spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{pointerDownPos.x=evt.offsetX,pointerDownPos.y=evt.offsetY,longPressTimer=setTimeout(()=>{createNewSelection(evt,!0)},longPressDuration),state.stopPropagation()}),spreadsheetPointerUpSub=spreadsheet==null?void 0:spreadsheet.onPointerUp$.subscribeEvent((evt,state)=>{if(this._normalSelectionDisabled())return;clearTimeout(longPressTimer);const edge=10;Math.abs(evt.offsetX-pointerDownPos.x)>edge||Math.abs(evt.offsetY-pointerDownPos.y)>edge||(createNewSelection(evt,!1),state.stopPropagation())});this.disposeWithMe(core.toDisposable(spreadsheetPointerDownSub)),this.disposeWithMe(core.toDisposable(spreadsheetPointerUpSub))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(sheets.REF_SELECTIONS_ENABLED).pipe(rxjs.startWith(!1),rxjs.distinctUntilChanged()).subscribe(disabled=>{var _a61;disabled?((_a61=this._renderDisposable)==null||_a61.dispose(),this._renderDisposable=null,this._reset()):this._renderDisposable=core.toDisposable(this.selectionMoveEnd$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVE_END)))}))}_updateSelections(selectionDataWithStyleList,type){const workbook=this._context.unit,unitId=workbook.getUnitId(),sheetId=workbook.getActiveSheet().getSheetId();selectionDataWithStyleList.length!==0&&this._commandService.executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,type,selections:selectionDataWithStyleList.map(selectionDataWithStyle=>sheets.convertSelectionDataToRange(selectionDataWithStyle))})}createNewSelection(evt,_zIndex=0,rangeType=core.RANGE_TYPE.NORMAL,viewport){this._rangeType=rangeType;const skeleton=this._skeleton,scene=this._scene;if(!scene||!skeleton)return;viewport&&(this._activeViewport=viewport);const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:offsetX,y:offsetY}=relativeCoords;this._startViewportPosX=offsetX,this._startViewportPosY=offsetY;const scrollXY=scene.getScrollXYInfoByViewport(relativeCoords),{scaleX,scaleY}=scene.getAncestorScale(),selectCell=this._skeleton.getCellByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY);if(!selectCell)return;switch(rangeType){case core.RANGE_TYPE.NORMAL:break;case core.RANGE_TYPE.ROW:selectCell.startColumn=0,selectCell.endColumn=this._skeleton.getColumnCount()-1;break;case core.RANGE_TYPE.COLUMN:selectCell.startRow=0,selectCell.endRow=this._skeleton.getRowCount()-1;break;case core.RANGE_TYPE.ALL:selectCell.startRow=0,selectCell.startColumn=0,selectCell.endRow=this._skeleton.getRowCount()-1,selectCell.endColumn=this._skeleton.getColumnCount()-1}const selectionWithStyle={range:selectCell,primary:selectCell,style:null};selectionWithStyle.range.rangeType=rangeType;const selectionCellWithCoord=attachSelectionWithCoord(selectionWithStyle,this._skeleton);this._startRangeWhenPointerDown={...selectionCellWithCoord.rangeWithCoord};let activeSelectionControl=this.getActiveSelectionControl();const cursorRangeWidthCoord={...selectionCellWithCoord.rangeWithCoord};for(const control of this.getSelectionControls())if(control.model.isEqual(cursorRangeWidthCoord)){activeSelectionControl=control;break}(activeSelectionControl==null?void 0:activeSelectionControl.model.rangeType)!==rangeType?(this._clearAllSelectionControls(),activeSelectionControl=this.newSelectionControl(scene,skeleton,selectionWithStyle)):activeSelectionControl.updateRangeBySelectionWithCoord(selectionCellWithCoord),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._expandingSelection=!1}newSelectionControl(scene,skeleton,selection){const selectionControls=this.getSelectionControls(),{rowHeaderWidth,columnHeaderHeight}=skeleton,rangeType=selection.range.rangeType,control=new MobileSelectionControl(scene,selectionControls.length,this._themeService,{highlightHeader:this._highlightHeader,rowHeaderWidth,columnHeaderHeight,rangeType}),selectionWithCoord=attachSelectionWithCoord(selection,skeleton);control.updateRangeBySelectionWithCoord(selectionWithCoord),this._selectionControls.push(control);const{expandingModeForTopLeft,expandingModeForBottomRight}=(()=>{switch(rangeType){case core.RANGE_TYPE.NORMAL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};case core.RANGE_TYPE.ROW:return{expandingModeForTopLeft:"top",expandingModeForBottomRight:"bottom"};case core.RANGE_TYPE.COLUMN:return{expandingModeForTopLeft:"left",expandingModeForBottomRight:"right"};case core.RANGE_TYPE.ALL:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"};default:return{expandingModeForTopLeft:"top-left",expandingModeForBottomRight:"bottom-right"}}})();return control.fillControlTopLeft.onPointerDown$.subscribeEvent(evt=>{this._expandingSelection=!0,this.expandingControlMode=expandingModeForTopLeft,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(evt,rangeType,this._activeViewport)}),control.fillControlBottomRight.onPointerDown$.subscribeEvent(evt=>{this._expandingSelection=!0,this.expandingControlMode=expandingModeForBottomRight,this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._fillControlPointerDownHandler(evt,rangeType,this._activeViewport)}),(rangeType===core.RANGE_TYPE.ROW||rangeType===core.RANGE_TYPE.COLUMN)&&!scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),control}_getActiveViewport(evt){const sheetObject=this._getSheetObject();return sheetObject==null?void 0:sheetObject.scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]))}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_normalSelectionDisabled(){return this._contextService.getContextValue(sheets.REF_SELECTIONS_ENABLED)}getSelectionControls(){return this._selectionControls}_fillControlPointerDownHandler(evt,rangeType=core.RANGE_TYPE.NORMAL,viewport,scrollTimerType=engineRender.ScrollTimerType.ALL){var _a61,_b,_c;const skeleton=this._skeleton,scene=this._scene;if(!scene||!skeleton)return;viewport&&(this._activeViewport=viewport);const viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),activeSelectionControl=this.getActiveSelectionControl();if(!activeSelectionControl)return;this._changeCurrCellWhenControlPointerDown(),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._clearUpdatingListeners(),this._addEndingListeners(),this._scrollTimer=engineRender.ScrollTimer.create(this._scene,scrollTimerType),this._scrollTimer.startScroll((_a61=viewportMain==null?void 0:viewportMain.left)!=null?_a61:0,(_b=viewportMain==null?void 0:viewportMain.top)!=null?_b:0,viewportMain),(_c=scene.getTransformer())==null||_c.clearSelectedObjects();const relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]));this._setupPointerMoveListener(viewportMain,activeSelectionControl,rangeType,scrollTimerType,relativeCoords.x,relativeCoords.y);const disposableShortcut=this._shortcutService.forceEscape();this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(_evt=>{this.endSelection(),this._expandingSelection=!1,this.expandingControlMode="bottom-right",this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),disposableShortcut.dispose()})}_changeCurrCellWhenControlPointerDown(){const activeSelectionControl=this.getActiveSelectionControl(),skeleton=this._skeleton;let currCellRange;const{startRow,startColumn,endRow,endColumn}=activeSelectionControl.model;switch(this.expandingControlMode){case"top-left":currCellRange=skeleton.getCellWithCoordByIndex(endRow,endColumn);break;case"bottom-right":currCellRange=skeleton.getCellWithCoordByIndex(startRow,startColumn);break;case"left":currCellRange=skeleton.getCellWithCoordByIndex(startRow,endColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;case"right":currCellRange=skeleton.getCellWithCoordByIndex(startRow,startColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;case"top":currCellRange=skeleton.getCellWithCoordByIndex(endRow,startColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;case"bottom":currCellRange=skeleton.getCellWithCoordByIndex(startRow,startColumn),currCellRange.isMerged=!1,currCellRange.isMergedMainCell=!1;break;default:currCellRange=skeleton.getCellWithCoordByIndex(startRow,startColumn)}return activeSelectionControl.updateCurrCell(currCellRange),currCellRange}_movingHandler(offsetX,offsetY,activeSelectionControl,rangeType){var _a61,_b,_c,_d,_e,_f,_g,_h,_i,_j,_k,_l,_m;this._rangeType=rangeType;const skeleton=this._skeleton,scene=this._scene,currSelectionRange={startRow:activeSelectionControl.model.startRow,endRow:activeSelectionControl.model.endRow,startColumn:activeSelectionControl.model.startColumn,endColumn:activeSelectionControl.model.endColumn},viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),targetViewport=(_a61=this._getViewportByCell(currSelectionRange.endRow,currSelectionRange.endColumn))!=null?_a61:viewportMain,scrollXY=scene.getScrollXYInfoByViewport(engineRender.Vector2.FromArray([this._startViewportPosX,this._startViewportPosY]),targetViewport),{scaleX,scaleY}=scene.getAncestorScale();rangeType===core.RANGE_TYPE.ROW?offsetX=Number.POSITIVE_INFINITY:rangeType===core.RANGE_TYPE.COLUMN&&(offsetY=Number.POSITIVE_INFINITY);const cursorCellRangeInfo=this._getSelectionWithCoordByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY);if(!cursorCellRangeInfo)return!1;const{rangeWithCoord:cursorCellRange}=cursorCellRangeInfo,currCellRange=activeSelectionControl.model.currentCell,startRowOfActiveCell=(_b=currCellRange==null?void 0:currCellRange.mergeInfo.startRow)!=null?_b:-1,endRowOfActiveCell=(_c=currCellRange==null?void 0:currCellRange.mergeInfo.endRow)!=null?_c:-1,startColumnOfActiveCell=(_d=currCellRange==null?void 0:currCellRange.mergeInfo.startColumn)!=null?_d:-1,endColOfActiveCell=(_e=currCellRange==null?void 0:currCellRange.mergeInfo.endColumn)!=null?_e:-1;let newSelectionRange={startRow:Math.min(cursorCellRange.startRow,startRowOfActiveCell),startColumn:Math.min(cursorCellRange.startColumn,startColumnOfActiveCell),endRow:Math.max(cursorCellRange.endRow,endRowOfActiveCell),endColumn:Math.max(cursorCellRange.endColumn,endColOfActiveCell)};if(rangeType===core.RANGE_TYPE.NORMAL?newSelectionRange=skeleton.expandRangeByMerge(newSelectionRange):rangeType===core.RANGE_TYPE.COLUMN?newSelectionRange={startRow:Math.min(cursorCellRange.startRow,(_f=currCellRange==null?void 0:currCellRange.actualRow)!=null?_f:-1),startColumn:Math.min(cursorCellRange.startColumn,(_g=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_g:-1),endRow:Math.max(cursorCellRange.endRow,(_h=currCellRange==null?void 0:currCellRange.actualRow)!=null?_h:-1),endColumn:Math.max(cursorCellRange.endColumn,(_i=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_i:-1)}:rangeType===core.RANGE_TYPE.ROW&&(newSelectionRange={startRow:Math.min(cursorCellRange.startRow,(_j=currCellRange==null?void 0:currCellRange.actualRow)!=null?_j:-1),startColumn:Math.min(cursorCellRange.startColumn,(_k=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_k:-1),endRow:Math.max(cursorCellRange.endRow,(_l=currCellRange==null?void 0:currCellRange.actualRow)!=null?_l:-1),endColumn:Math.max(cursorCellRange.endColumn,(_m=currCellRange==null?void 0:currCellRange.actualColumn)!=null?_m:-1)}),!newSelectionRange)return!1;const newSelectionRangeWithCoord=attachSelectionWithCoord({range:newSelectionRange,style:null,primary:null},skeleton);(currSelectionRange.startRow!==newSelectionRange.startRow||currSelectionRange.startColumn!==newSelectionRange.startColumn||currSelectionRange.endRow!==newSelectionRange.endRow||currSelectionRange.endColumn!==newSelectionRange.endColumn)&&activeSelectionControl&&(activeSelectionControl.updateRangeBySelectionWithCoord(newSelectionRangeWithCoord),this._selectionMoving$.next(this.getSelectionDataWithStyle()))}_updateControlPointWhenScrolling(){const{scene}=this._context;if(!scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN))return;const sub=this._scrollManagerService.validViewportScrollInfo$.subscribe(param=>{var _a61;if(param==null)return;const{viewportScrollX,viewportScrollY}=param,activeControl=this.getActiveSelectionControl();if(activeControl==null)return;const skeleton=(_a61=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a61.skeleton,sheetContentHeight=skeleton==null?void 0:skeleton.rowTotalHeight,sheetContentWidth=skeleton==null?void 0:skeleton.columnTotalWidth,rangeType=activeControl.rangeType;rangeType===core.RANGE_TYPE.COLUMN?activeControl.transformControlPoint(0,viewportScrollY,sheetContentWidth,sheetContentHeight):rangeType===core.RANGE_TYPE.ROW&&activeControl.transformControlPoint(viewportScrollX,0,sheetContentWidth,sheetContentHeight)});this.disposeWithMe(core.toDisposable(sub))}},__name(_a47,"MobileSheetsSelectionRenderService"),_a47);MobileSheetsSelectionRenderService=__decorateClass$d([__decorateParam$d(1,core.Inject(core.Injector)),__decorateParam$d(2,core.Inject(core.ThemeService)),__decorateParam$d(3,ui.IShortcutService),__decorateParam$d(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$d(5,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$d(6,core.ILogService),__decorateParam$d(7,core.ICommandService),__decorateParam$d(8,core.IContextService),__decorateParam$d(9,core.Inject(exports.SheetScrollManagerService))],MobileSheetsSelectionRenderService);var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__defNormalProp$1=__name((obj,key,value)=>key in obj?__defProp$c(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp$1"),__decorateClass$c=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$c(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$c(target,key,result),result},"__decorateClass$c"),__decorateParam$c=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$c"),__publicField$1=__name((obj,key,value)=>__defNormalProp$1(obj,typeof key!="symbol"?key+"":key,value),"__publicField$1"),_a48;exports.UniverSheetsMobileUIPlugin=(_a48=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_renderManagerService,_univerInstanceService){super(),this._config=_config,this._injector=_injector,this._renderManagerService=_renderManagerService,this._univerInstanceService=_univerInstanceService}onStarting(){[[ShortcutExperienceService],[ISheetClipboardService,{useClass:exports.SheetClipboardService}],[ISheetBarService,{useClass:SheetBarService}],[IFormatPainterService,{useClass:FormatPainterService}],[IAutoFillService,{useClass:exports.AutoFillService}],[SheetPrintInterceptorService],[ISheetSelectionRenderService,{useClass:MobileSheetsSelectionRenderService}],[IStatusBarService,{useClass:StatusBarService}],[IMarkSelectionService,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[SelectAllService],[ActiveWorksheetController],[exports.AutoHeightController],[SheetClipboardController],[exports.SheetsRenderService],[SheetUIMobileController],[exports.StatusBarController],[sheets.IRefSelectionsService,{useClass:sheets.RefSelectionsService}],[SheetPermissionPanelModel],[SheetPermissionUserManagerService],[WorksheetProtectionRenderController],[SheetPermissionInterceptorClipboardController],[exports.SheetPermissionCheckUIController],[SheetPermissionRenderManagerController]].forEach(d=>this._injector.add(d))}onReady(){this._markSheetAsFocused(),this._registerRenderBasics(),this._injector.get(SheetUIMobileController)}onRendered(){this._registerRenderModules()}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[exports.SheetRenderController],[ISheetSelectionRenderService,{useClass:MobileSheetsSelectionRenderService}],[exports.SheetScrollManagerService]].forEach(renderDep=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,renderDep))})}_registerRenderModules(){[[exports.HeaderMoveRenderController],[exports.HeaderFreezeRenderController],[MobileSheetsScrollRenderController],[SheetsZoomRenderController],[FormatPainterRenderController],[CellAlertRenderController],[ForceStringAlertRenderController],[MarkSelectionRenderController],[exports.HoverRenderController],[exports.DragRenderController],[ForceStringRenderController],[exports.CellCustomRenderController],[SheetContextMenuMobileRenderController],[SheetPermissionInterceptorCanvasRenderController],[SheetPermissionInterceptorFormulaRenderController],[SheetPermissionRenderController]].forEach(renderModule=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,renderModule))})}_markSheetAsFocused(){const univerInstanceService=this._univerInstanceService;this.disposeWithMe(univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(operators.filter(v=>!!v)).subscribe(workbook=>{univerInstanceService.focusUnit(workbook.getUnitId())}))}},__name(_a48,"UniverSheetsMobileUIPlugin"),_a48);__publicField$1(exports.UniverSheetsMobileUIPlugin,"pluginName","SHEET_UI_PLUGIN");__publicField$1(exports.UniverSheetsMobileUIPlugin,"type",core.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsMobileUIPlugin=__decorateClass$c([core.DependentOn(sheets.UniverSheetsPlugin,ui.UniverMobileUIPlugin),__decorateParam$c(1,core.Inject(core.Injector)),__decorateParam$c(2,engineRender.IRenderManagerService),__decorateParam$c(3,core.IUniverInstanceService)],exports.UniverSheetsMobileUIPlugin);var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$b(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$b(target,key,result),result},"__decorateClass$b"),__decorateParam$b=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$b"),_a49;let SheetCheckboxController=(_a49=class extends core.Disposable{constructor(_hoverManagerService,_commandService,_renderManagerService){super();__publicField(this,"_isPointer",!1);this._hoverManagerService=_hoverManagerService,this._commandService=_commandService,this._renderManagerService=_renderManagerService,this._initPointerEvent(),this._initHover()}get _mainComponent(){var _a61;return(_a61=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET))==null?void 0:_a61.mainComponent}_initHover(){this.disposeWithMe(this._hoverManagerService.currentRichText$.subscribe(richText=>{var _a61,_b;richText!=null&&richText.bullet?(this._isPointer||(_a61=this._mainComponent)==null||_a61.setCursor(engineRender.CURSOR_TYPE.POINTER),this._isPointer=!0):(this._isPointer&&((_b=this._mainComponent)==null||_b.setCursor(engineRender.CURSOR_TYPE.AUTO)),this._isPointer=!1)}))}_initPointerEvent(){this.disposeWithMe(this._hoverManagerService.currentClickedCell$.subscribe(cell=>{const{location,bullet}=cell;bullet&&this._commandService.executeCommand(sheets.ToggleCellCheckboxCommand.id,{unitId:location.unitId,subUnitId:location.subUnitId,row:location.row,col:location.col,paragraphIndex:bullet.startIndex})}))}},__name(_a49,"SheetCheckboxController"),_a49);SheetCheckboxController=__decorateClass$b([__decorateParam$b(0,core.Inject(exports.HoverManagerService)),__decorateParam$b(1,core.ICommandService),__decorateParam$b(2,engineRender.IRenderManagerService)],SheetCheckboxController);var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$a(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$a(target,key,result),result},"__decorateClass$a"),__decorateParam$a=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$a"),_a50;let SheetsDefinedNameController=(_a50=class extends core.Disposable{constructor(_selectionManagerService,_themeService,_instanceSrv,_cmdSrv,_definedNamesService){super(),this._selectionManagerService=_selectionManagerService,this._themeService=_themeService,this._instanceSrv=_instanceSrv,this._cmdSrv=_cmdSrv,this._definedNamesService=_definedNamesService,this._init()}_init(){this.disposeWithMe(rxjs.merge(this._selectionManagerService.selectionMoveStart$,this._selectionManagerService.selectionMoving$,this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionSet$).pipe(rxjs.filter(params=>!!params)).subscribe(params=>{this._syncDefinedNameRange(params)})),this.disposeWithMe(this._definedNamesService.focusRange$.subscribe(async item=>{if(item==null)return;const{unitId}=item;let{formulaOrRefString}=item;if(formulaOrRefString.substring(0,1)===engineFormula.operatorToken.EQUALS&&(formulaOrRefString=formulaOrRefString.substring(1)),!engineFormula.isReferenceStrings(formulaOrRefString))return;const workbook=this._instanceSrv.getUnit(unitId),selections=await this._getSelections(workbook,unitId,formulaOrRefString);this._selectionManagerService.setSelections(selections),this._cmdSrv.executeCommand(sheets.ScrollToCellOperation.id,selections[0].range)}))}_syncDefinedNameRange(params){if(params.length===0)return;const lastSelection=params[params.length-1],workbook=this._instanceSrv.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();worksheet&&this._definedNamesService.setCurrentRange({range:lastSelection.range,unitId:workbook.getUnitId(),sheetId:worksheet.getSheetId()})}async _getSelections(workbook,unitId,formulaOrRefString){const valueArray=formulaOrRefString.split(",");let worksheet=workbook.getActiveSheet();if(!worksheet)return[];const selections=[];for(let i=0;i<valueArray.length;i++){const refString=valueArray[i].trim(),unitRange=engineFormula.deserializeRangeWithSheet(refString.trim());if(i===0){const worksheetCache=workbook.getSheetBySheetName(unitRange.sheetName);worksheetCache&&worksheet.getSheetId()!==worksheetCache.getSheetId()&&(worksheet=worksheetCache,await this._cmdSrv.executeCommand(sheets.SetWorksheetActivateCommand.id,{subUnitId:worksheet.getSheetId(),unitId}))}if(worksheet.getName()!==unitRange.sheetName)continue;let primary=null;if(i===valueArray.length-1){const range=unitRange.range,{startRow,startColumn,endRow,endColumn}=range;primary=sheets.getPrimaryForRange({startRow,startColumn,endRow,endColumn},worksheet)}selections.push({range:unitRange.range,style:genNormalSelectionStyle(this._themeService),primary})}return selections}},__name(_a50,"SheetsDefinedNameController"),_a50);SheetsDefinedNameController=__decorateClass$a([__decorateParam$a(0,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$a(1,core.Inject(core.ThemeService)),__decorateParam$a(2,core.IUniverInstanceService),__decorateParam$a(3,core.ICommandService),__decorateParam$a(4,engineFormula.IDefinedNamesService)],SheetsDefinedNameController);var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$9(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$9(target,key,result),result},"__decorateClass$9"),__decorateParam$9=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$9"),_a51;exports.FormulaEditorController=(_a51=class extends core.RxDisposable{constructor(_univerInstanceService,_renderManagerService,_editorBridgeService,_commandService,_contextService,_formulaEditorManagerService,_undoRedoService,_textSelectionManagerService,_editorService){super();__publicField(this,"_loadedMap",new WeakSet);__publicField(this,"_scheduledCallback",-1);this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._editorBridgeService=_editorBridgeService,this._commandService=_commandService,this._contextService=_contextService,this._formulaEditorManagerService=_formulaEditorManagerService,this._undoRedoService=_undoRedoService,this._textSelectionManagerService=_textSelectionManagerService,this._editorService=_editorService,this._initialize()}_initialize(){this._syncEditorSize(),this._listenFxBtnClick(),this._handleContentChange(),this._renderManagerService.currentRender$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(unitId=>{this._create(unitId)}),this._create(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this.disposeWithMe(this._editorService.focus$.subscribe(()=>{var _a61;((_a61=this._editorService.getFocusEditor())==null?void 0:_a61.getEditorId())===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!1)}))}_handleContentChange(){this.disposeWithMe(this._commandService.onCommandExecuted(commandInfo=>{if(commandInfo.id===docs.RichTextEditingMutation.id){const params=commandInfo.params,{unitId}=params;unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&this.autoScroll()}}))}_create(unitId){if(unitId!==core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;const formulaEditorDocObject=this._renderManagerService.getRenderById(unitId);if(formulaEditorDocObject==null)return;const{mainComponent:documentComponent}=formulaEditorDocObject;documentComponent!=null&&(this._loadedMap.has(documentComponent)||(this._initialMain(unitId),this._loadedMap.add(documentComponent)))}_listenFxBtnClick(){this._formulaEditorManagerService.fxBtnClick$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(()=>{var _a61,_b;if(this._contextService.getContextValue(core.FOCUSING_EDITOR_BUT_HIDDEN)&&!this._contextService.getContextValue(core.EDITOR_ACTIVATED)){this._univerInstanceService.setCurrentUnitForType(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!0);const currentSheet=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),formulaEditorDataModel=this._univerInstanceService.getUniverDocInstance(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:engineRender.DeviceInputEventType.PointerDown,unitId:(_a61=currentSheet==null?void 0:currentSheet.getUnitId())!=null?_a61:""});const content=(_b=formulaEditorDataModel==null?void 0:formulaEditorDataModel.getBody())==null?void 0:_b.dataStream;if(content==null)return;let newContent=content.startsWith("=")?content:`=${content}`;newContent=newContent.replace(/\r\n$/,"");const textRanges=[{startOffset:newContent.length,endOffset:newContent.length}],coverContentParams={unitId:core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body:{dataStream:newContent},segmentId:""};this._commandService.executeCommand(docsUi.CoverContentCommand.id,coverContentParams),this._textSelectionManagerService.replaceDocRanges(textRanges)}})}_initialMain(unitId){const formulaEditorDocObject=this._renderManagerService.getRenderById(unitId);if(formulaEditorDocObject==null)return;const{mainComponent:documentComponent}=formulaEditorDocObject;documentComponent!=null&&this.disposeWithMe(documentComponent.onPointerDown$.subscribeEvent(()=>{this._editorBridgeService.isVisible().visible===!1&&(this._editorBridgeService.changeVisible({visible:!0,eventType:engineRender.DeviceInputEventType.PointerDown,unitId}),this._undoRedoService.clearUndoRedo(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)),this._contextService.setContextValue(core.FOCUSING_FX_BAR_EDITOR,!0)}))}_syncEditorSize(){const addFOrmulaBar$=this._univerInstanceService.unitAdded$.pipe(rxjs.filter(unit=>unit.getUnitId()===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY));this.disposeWithMe(rxjs.combineLatest([this._formulaEditorManagerService.position$,addFOrmulaBar$]).subscribe(([position])=>{if(!position)return this._clearScheduledCallback();const editorObject=getEditorObject(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,this._renderManagerService),formulaEditorDataModel=this._univerInstanceService.getUniverDocInstance(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(editorObject==null||formulaEditorDataModel==null)return this._clearScheduledCallback();const{width,height}=position;if(width===0||height===0)return this._clearScheduledCallback();const{engine}=editorObject;formulaEditorDataModel.updateDocumentDataPageSize(width),this.autoScroll(),this._scheduledCallback=requestIdleCallback(()=>engine.resizeBySize(width,height))}))}_clearScheduledCallback(){this._scheduledCallback!==-1&&cancelIdleCallback(this._scheduledCallback),this._scheduledCallback=-1}autoScroll(){var _a61,_b;const position=this._formulaEditorManagerService.getPosition(),skeleton=(_a61=this._renderManagerService.getRenderById(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getSkeleton(),editorObject=this._renderManagerService.getRenderById(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),formulaEditorDataModel=this._univerInstanceService.getUniverDocInstance(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);if(skeleton==null||position==null||editorObject==null||formulaEditorDataModel==null)return;const{marginTop=0,marginBottom=0}=formulaEditorDataModel.getSnapshot().documentStyle,{scene,mainComponent}=editorObject;let{actualHeight}=skeleton.getActualSize();actualHeight+=marginTop+marginBottom;const{width,height}=position,viewportMain=scene.getViewport(docsUi.VIEWPORT_KEY.VIEW_MAIN);let scrollBar=viewportMain==null?void 0:viewportMain.getScrollBar();scene.transformByState({width,height:actualHeight}),mainComponent==null||mainComponent.resize(width,actualHeight),actualHeight>height?scrollBar==null?viewportMain&&new engineRender.ScrollBar(viewportMain,{enableHorizontal:!1,barSize:8}):viewportMain==null||viewportMain.resetCanvasSizeAndUpdateScroll():(scrollBar=null,viewportMain==null||viewportMain.scrollToViewportPos({viewportScrollX:0,viewportScrollY:0}),(_b=viewportMain==null?void 0:viewportMain.getScrollBar())==null||_b.dispose())}},__name(_a51,"FormulaEditorController"),_a51);exports.FormulaEditorController=__decorateClass$9([__decorateParam$9(0,core.IUniverInstanceService),__decorateParam$9(1,engineRender.IRenderManagerService),__decorateParam$9(2,IEditorBridgeService),__decorateParam$9(3,core.ICommandService),__decorateParam$9(4,core.IContextService),__decorateParam$9(5,IFormulaEditorManagerService),__decorateParam$9(6,core.IUndoRedoService),__decorateParam$9(7,core.Inject(docs.DocSelectionManagerService)),__decorateParam$9(8,docsUi.IEditorService)],exports.FormulaEditorController);var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$8(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$8(target,key,result),result},"__decorateClass$8"),__decorateParam$8=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$8");const formulaEditorStyle={pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY},documentFlavor:core.DocumentFlavor.UNSPECIFIED,marginTop:5,marginBottom:5,marginRight:0,marginLeft:0,paragraphLineGapDefault:0,renderConfig:{horizontalAlign:core.HorizontalAlign.UNSPECIFIED,verticalAlign:core.VerticalAlign.TOP,centerAngle:0,vertexAngle:0,wrapStrategy:core.WrapStrategy.WRAP,isRenderStyle:core.BooleanNumber.FALSE}};var _a52;let EditorDataSyncController=(_a52=class extends core.Disposable{constructor(_univerInstanceService,_renderManagerService,_editorBridgeService,_commandService,_rangeProtectionRuleModel,_worksheetProtectionRuleModel,_formulaEditorController,_formulaEditorManagerService){super(),this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._editorBridgeService=_editorBridgeService,this._commandService=_commandService,this._rangeProtectionRuleModel=_rangeProtectionRuleModel,this._worksheetProtectionRuleModel=_worksheetProtectionRuleModel,this._formulaEditorController=_formulaEditorController,this._formulaEditorManagerService=_formulaEditorManagerService,this._initialize()}_initialize(){this._syncFormulaEditorContent(),this._commandExecutedListener()}_getEditorViewModel(unitId){var _a61;return(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getViewModel()}_syncFormulaEditorContent(){this.disposeWithMe(this._editorBridgeService.currentEditCellState$.subscribe(editCellState=>{editCellState==null||this._editorBridgeService.isForceKeepVisible()||!this._rangeProtectionRuleModel.getRangeRuleInitState()||!this._worksheetProtectionRuleModel.getSheetRuleInitState()||this._editorSyncHandler(editCellState)}))}_editorSyncHandler(param){var _a61,_b,_c;let body=core.Tools.deepClone((_a61=param.documentLayoutObject.documentModel)==null?void 0:_a61.getBody());const drawings=core.Tools.deepClone((_b=param.documentLayoutObject.documentModel)==null?void 0:_b.drawings),drawingsOrder=core.Tools.deepClone((_c=param.documentLayoutObject.documentModel)==null?void 0:_c.getDrawingsOrder());(!body||param.isInArrayFormulaRange===!0&&this._editorBridgeService.isVisible().eventType===engineRender.DeviceInputEventType.Dblclick)&&(body={dataStream:`\r
|
|
62
62
|
`,paragraphs:[{startIndex:0}],textRuns:[]}),this._syncContentAndRender(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body,drawings,drawingsOrder)}_commandExecutedListener(){const INCLUDE_LIST=[core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===docs.RichTextEditingMutation.id){const params=command.params,{unitId,trigger,isSync}=params;if(isSync||trigger===docsUi.ReplaceSnapshotCommand.id)return;if(INCLUDE_LIST.includes(unitId)){const editorDocDataModel=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_DOC),syncId=unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY?core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY:core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY;this._checkAndSetRenderStyleConfig(editorDocDataModel),this._syncActionsAndRender(syncId,params)}}}));const needUpdateFormulaEditorContentCommandList=[sheets.SetRangeValuesMutation.id,sheets.MoveRangeMutation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{var _a61,_b,_c,_d,_e,_f,_g;if(needUpdateFormulaEditorContentCommandList.includes(command.id)){const editCellState=this._editorBridgeService.getLatestEditCellState();if(editCellState==null)return;let needUpdate=!1;const{row,column}=editCellState;if(command.id===sheets.SetRangeValuesMutation.id&&command.params?(_b=(_a61=command.params.cellValue)==null?void 0:_a61[row])!=null&&_b[column]&&(needUpdate=!0):command.id===sheets.MoveRangeMutation.id&&command.params&&(_d=(_c=command.params.to.value)==null?void 0:_c[row])!=null&&_d[column]&&(needUpdate=!0),needUpdate){const body=core.Tools.deepClone((_e=editCellState.documentLayoutObject.documentModel)==null?void 0:_e.getBody()),drawings=core.Tools.deepClone((_f=editCellState.documentLayoutObject.documentModel)==null?void 0:_f.drawings),drawingsOrder=core.Tools.deepClone((_g=editCellState.documentLayoutObject.documentModel)==null?void 0:_g.getDrawingsOrder());if(body==null)return;this._syncContentAndRender(core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,body,drawings,drawingsOrder)}}}))}_syncActionsAndRender(unitId,parmas){var _a61;const INCLUDE_LIST=[core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],currentRender=this._renderManagerService.getRenderById(unitId);if(currentRender==null)return;const skeleton=currentRender.with(docs.DocSkeletonManagerService).getSkeleton(),docDataModel=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_DOC),docViewModel=this._getEditorViewModel(unitId);docDataModel==null||docViewModel==null||(this._commandService.syncExecuteCommand(docs.RichTextEditingMutation.id,{...parmas,textRanges:null,isSync:!0,unitId,syncer:parmas.unitId}),docViewModel.reset(docDataModel),skeleton.calculate(),INCLUDE_LIST.includes(unitId)&&((_a61=currentRender.mainComponent)==null||_a61.makeDirty()))}_syncContentAndRender(unitId,body,drawings,drawingsOrder){var _a61,_b;unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&body.paragraphs&&(body.paragraphs=this._clearParagraph(body.paragraphs));const INCLUDE_LIST=[core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY,core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY],skeleton=(_a61=this._renderManagerService.getRenderById(unitId))==null?void 0:_a61.with(docs.DocSkeletonManagerService).getSkeleton(),docDataModel=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_DOC),docViewModel=this._getEditorViewModel(unitId);if(docDataModel==null||docViewModel==null||skeleton==null)return;docDataModel.getSnapshot().body=body,docDataModel.getSnapshot().drawings=drawings!=null?drawings:{},docDataModel.getSnapshot().drawingsOrder=drawingsOrder!=null?drawingsOrder:[],this._checkAndSetRenderStyleConfig(docDataModel),docViewModel.reset(docDataModel);const currentRender=this._renderManagerService.getRenderById(unitId);currentRender!=null&&(skeleton.calculate(),INCLUDE_LIST.includes(unitId)&&((_b=currentRender.mainComponent)==null||_b.makeDirty()),unitId===core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY&&this._formulaEditorController.autoScroll())}_checkAndSetRenderStyleConfig(documentDataModel){var _a61;const snapshot=documentDataModel.getSnapshot(),{body}=snapshot;if(snapshot.id!==core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY)return;snapshot.documentStyle=formulaEditorStyle;let renderConfig=snapshot.documentStyle.renderConfig;renderConfig==null&&(renderConfig={},snapshot.documentStyle.renderConfig=renderConfig);const position=this._formulaEditorManagerService.getPosition();if(position){const width=position.width;snapshot.documentStyle.pageSize={width,height:1/0}}((_a61=body==null?void 0:body.dataStream)!=null?_a61:"").startsWith("=")?renderConfig.isRenderStyle=core.BooleanNumber.TRUE:renderConfig.isRenderStyle=core.BooleanNumber.FALSE}_clearParagraph(paragraphs){const newParagraphs=core.Tools.deepClone(paragraphs);for(const paragraph of newParagraphs)paragraph.paragraphStyle&&(paragraph.paragraphStyle.horizontalAlign=core.HorizontalAlign.UNSPECIFIED);return newParagraphs}},__name(_a52,"EditorDataSyncController"),_a52);EditorDataSyncController=__decorateClass$8([__decorateParam$8(0,core.IUniverInstanceService),__decorateParam$8(1,engineRender.IRenderManagerService),__decorateParam$8(2,IEditorBridgeService),__decorateParam$8(3,core.ICommandService),__decorateParam$8(4,core.Inject(sheets.RangeProtectionRuleModel)),__decorateParam$8(5,core.Inject(sheets.WorksheetProtectionRuleModel)),__decorateParam$8(6,core.Inject(exports.FormulaEditorController)),__decorateParam$8(7,IFormulaEditorManagerService)],EditorDataSyncController);var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$7(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$7(target,key,result),result},"__decorateClass$7"),__decorateParam$7=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$7"),_a53;let FormatPainterController=(_a53=class extends core.Disposable{constructor(_commandService,_formatPainterService,_univerInstanceService,_renderManagerService,_selectionManagerService,_sheetInterceptorService,_injector){super(),this._commandService=_commandService,this._formatPainterService=_formatPainterService,this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._selectionManagerService=_selectionManagerService,this._sheetInterceptorService=_sheetInterceptorService,this._injector=_injector,this._initialize()}_initialize(){this._commandExecutedListener(),this._addDefaultHook()}_commandExecutedListener(){const selectionRenderService=this._renderManagerService.getCurrentTypeOfRenderer(core.UniverInstanceType.UNIVER_SHEET).with(ISheetSelectionRenderService);this.disposeWithMe(selectionRenderService.selectionMoveEnd$.subscribe(selections=>{var _a61,_b;if(this._formatPainterService.getStatus()!==FormatPainterStatus.OFF){const{rangeWithCoord}=selections[selections.length-1];this._commandService.executeCommand(ApplyFormatPainterCommand.id,{unitId:((_a61=this._univerInstanceService.getFocusedUnit())==null?void 0:_a61.getUnitId())||"",subUnitId:((_b=this._univerInstanceService.getFocusedUnit().getActiveSheet())==null?void 0:_b.getSheetId())||"",range:{startRow:rangeWithCoord.startRow,startColumn:rangeWithCoord.startColumn,endRow:rangeWithCoord.endRow,endColumn:rangeWithCoord.endColumn}}),this._formatPainterService.getStatus()===FormatPainterStatus.ONCE&&this._commandService.executeCommand(SetOnceFormatPainterCommand.id)}}))}_addDefaultHook(){const defaultHook={id:"default-format-painter",priority:0,isDefaultHook:!0,onStatusChange:__name(status=>{if(status!==FormatPainterStatus.OFF){const format=this._collectSelectionRangeFormat();format&&this._formatPainterService.setSelectionFormat(format)}},"onStatusChange"),onApply:__name((unitId,subUnitId,range,format)=>this._getUndoRedoMutationInfo(unitId,subUnitId,range,format),"onApply")};this._formatPainterService.addHook(defaultHook)}_collectSelectionRangeFormat(){const selection=this._selectionManagerService.getCurrentLastSelection(),range=selection==null?void 0:selection.range;if(!range)return null;const{startRow,endRow,startColumn,endColumn}=range,workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook==null?void 0:workbook.getActiveSheet();if(!worksheet)return null;const cellData=worksheet.getCellMatrix(),styles2=workbook.getStyles(),stylesMatrix=new core.ObjectMatrix,merges=[];for(let r2=startRow;r2<=endRow;r2++)for(let c=startColumn;c<=endColumn;c++){const cell=cellData.getValue(r2,c);stylesMatrix.setValue(r2,c,styles2.getStyleByCell(cell)||{});const{isMergedMainCell,...mergeInfo}=worksheet.getCellInfoInMergeData(r2,c);isMergedMainCell&&merges.push({startRow:mergeInfo.startRow,startColumn:mergeInfo.startColumn,endRow:mergeInfo.endRow,endColumn:mergeInfo.endColumn})}return{styles:stylesMatrix,merges}}_getUndoRedoMutationInfo(unitId,subUnitId,originRange,format){const sheetInterceptorService=this._sheetInterceptorService,univerInstanceService=this._univerInstanceService,{merges,styles:stylesMatrix}=format;if(!stylesMatrix)return{undos:[],redos:[]};const{startRow,startColumn,endRow,endColumn}=stylesMatrix.getDataRange(),styleRowsNum=endRow-startRow+1,styleColsNum=endColumn-startColumn+1,range=originRange.startRow===originRange.endRow&&originRange.startColumn===originRange.endColumn?{startRow:originRange.startRow,startColumn:originRange.startColumn,endRow:originRange.startRow+styleRowsNum-1,endColumn:originRange.startColumn+styleColsNum-1}:originRange,styleValues=Array.from({length:range.endRow-range.startRow+1},()=>Array.from({length:range.endColumn-range.startColumn+1},()=>({}))),mergeRanges=[];styleValues.forEach((row,rowIndex)=>{row.forEach((col,colIndex)=>{const mappedRowIndex=rowIndex%styleRowsNum+startRow,mappedColIndex=colIndex%styleColsNum+startColumn,style=stylesMatrix.getValue(mappedRowIndex,mappedColIndex);style&&(styleValues[rowIndex][colIndex].s=Object.keys(style).length>0?style:null)})}),merges.forEach(merge=>{const relatedRange={startRow:merge.startRow-startRow,startColumn:merge.startColumn-startColumn,endRow:merge.endRow-startRow,endColumn:merge.endColumn-startColumn},rowRepeats=Math.max(1,Math.floor((range.endRow-range.startRow+1)/styleRowsNum)),colRepeats=Math.max(1,Math.floor((range.endColumn-range.startColumn+1)/styleColsNum));for(let i=0;i<rowRepeats;i++)for(let j=0;j<colRepeats;j++)mergeRanges.push({startRow:relatedRange.startRow+i*styleRowsNum+range.startRow,startColumn:relatedRange.startColumn+j*styleColsNum+range.startColumn,endRow:relatedRange.endRow+i*styleRowsNum+range.startRow,endColumn:relatedRange.endColumn+j*styleColsNum+range.startColumn})});const currentSelections=[range],clearCellValue=new core.ObjectMatrix,cellValue=new core.ObjectMatrix;if(core.Tools.isArray(styleValues))for(let i=0;i<currentSelections.length;i++){const{startRow:startRow2,startColumn:startColumn2,endRow:endRow2,endColumn:endColumn2}=currentSelections[i];for(let r2=0;r2<=endRow2-startRow2;r2++)for(let c=0;c<=endColumn2-startColumn2;c++)clearCellValue.setValue(r2+startRow2,c+startColumn2,{s:null}),cellValue.setValue(r2+startRow2,c+startColumn2,styleValues[r2][c])}const clearStyleMutationParams={subUnitId,unitId,cellValue:clearCellValue.getMatrix()},setRangeValuesMutationParams={subUnitId,unitId,cellValue:cellValue.getMatrix()},undoSetRangeValuesMutationParams=this._injector.invoke(sheets.SetRangeValuesUndoMutationFactory,clearStyleMutationParams),{undos:interceptorUndos,redos:interceptorRedos}=sheetInterceptorService.onCommandExecute({id:sheets.SetRangeValuesCommand.id,params:{...setRangeValuesMutationParams,range:currentSelections}}),ranges=sheets.getAddMergeMutationRangeByType(mergeRanges),mergeRedos=[],mergeUndos=[],worksheet=univerInstanceService.getUnit(unitId).getSheetBySheetId(subUnitId),willRemoveSomeCell=checkCellContentInRanges(worksheet,ranges),removeMergeMutationParams={unitId,subUnitId,ranges},addMergeMutationParams={unitId,subUnitId,ranges};mergeRedos.push({id:sheets.RemoveWorksheetMergeMutation.id,params:removeMergeMutationParams}),mergeRedos.push({id:sheets.AddWorksheetMergeMutation.id,params:addMergeMutationParams});const undoRemoveMergeMutationParams=this._injector.invoke(sheets.RemoveMergeUndoMutationFactory,removeMergeMutationParams),undoMutationParams=this._injector.invoke(sheets.AddMergeUndoMutationFactory,addMergeMutationParams);if(mergeUndos.push({id:sheets.RemoveWorksheetMergeMutation.id,params:undoMutationParams}),mergeUndos.push({id:sheets.AddWorksheetMergeMutation.id,params:undoRemoveMergeMutationParams}),willRemoveSomeCell){const data=this._injector.invoke(accessor=>getClearContentMutationParamsForRanges(accessor,unitId,worksheet,ranges));mergeRedos.unshift(...data.redos),mergeUndos.push(...data.undos)}return{undos:[{id:sheets.SetRangeValuesMutation.id,params:clearStyleMutationParams},{id:sheets.SetRangeValuesMutation.id,params:undoSetRangeValuesMutationParams},...interceptorUndos,...mergeUndos],redos:[{id:sheets.SetRangeValuesMutation.id,params:clearStyleMutationParams},{id:sheets.SetRangeValuesMutation.id,params:setRangeValuesMutationParams},...interceptorRedos,...mergeRedos]}}},__name(_a53,"FormatPainterController"),_a53);FormatPainterController=__decorateClass$7([__decorateParam$7(0,core.ICommandService),__decorateParam$7(1,IFormatPainterService),__decorateParam$7(2,core.IUniverInstanceService),__decorateParam$7(3,engineRender.IRenderManagerService),__decorateParam$7(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$7(5,core.Inject(sheets.SheetInterceptorService)),__decorateParam$7(6,core.Inject(core.Injector))],FormatPainterController);var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$6(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$6(target,key,result),result},"__decorateClass$6"),__decorateParam$6=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$6"),_a54;let MoveRangeRenderController=(_a54=class extends core.Disposable{constructor(_context,_selectionRenderService,_selectionManagerService,_commandService){super();__publicField(this,"_initialize",__name(()=>{const disposableCollection=new core.DisposableCollection;this.disposeWithMe(this._selectionManagerService.selectionMoveEnd$.subscribe(()=>{disposableCollection.dispose(),this._selectionRenderService.getSelectionControls().forEach(controlSelection=>{disposableCollection.add(core.toDisposable(controlSelection.selectionMoveEnd$.subscribe(_toRange=>{if(!_toRange)return;const _fromRange=controlSelection.model.getRange(),fromRange={startRow:_fromRange.startRow,startColumn:_fromRange.startColumn,endRow:_fromRange.endRow,endColumn:_fromRange.endColumn,rangeType:_fromRange.rangeType},toRange={startRow:_toRange.startRow,startColumn:_toRange.startColumn,endRow:_toRange.endRow,endColumn:_toRange.endColumn,rangeType:_fromRange.rangeType};if(fromRange.startRow===toRange.startRow&&fromRange.startColumn===toRange.startColumn||toRange.startRow<0||toRange.startColumn<0)return;const params={fromRange,toRange};this._commandService.executeCommand(sheets.MoveRangeCommand.id,params)})))})}))},"_initialize"));this._context=_context,this._selectionRenderService=_selectionRenderService,this._selectionManagerService=_selectionManagerService,this._commandService=_commandService,this._initialize()}},__name(_a54,"MoveRangeRenderController"),_a54);MoveRangeRenderController=__decorateClass$6([__decorateParam$6(1,core.Inject(ISheetSelectionRenderService)),__decorateParam$6(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$6(3,core.Inject(core.ICommandService))],MoveRangeRenderController);var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$5(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$5(target,key,result),result},"__decorateClass$5"),__decorateParam$5=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$5"),_a55;let SheetContextMenuRenderController=(_a55=class extends core.Disposable{constructor(_context,_contextMenuService,_selectionManagerService,_selectionRenderService){super(),this._context=_context,this._contextMenuService=_contextMenuService,this._selectionManagerService=_selectionManagerService,this._selectionRenderService=_selectionRenderService,this._init()}_init(){var _a61,_b;const spreadsheetSubscription=((_b=(_a61=this._context)==null?void 0:_a61.mainComponent)==null?void 0:_b.onPointerDown$).subscribeEvent(event=>{if(event.button===2){const selections=this._selectionManagerService.getCurrentSelections(),currentSelection=selections==null?void 0:selections[0];if(!currentSelection)return;const rangeType=currentSelection.range.rangeType,skeleton=this._selectionRenderService.getSkeleton(),range=attachSelectionWithCoord(currentSelection,skeleton).rangeWithCoord,isPointerInRange=__name(()=>{if(!range)return!1;const x=event.offsetX,y=event.offsetY;switch(rangeType){case core.RANGE_TYPE.ROW:return range.startY<=y&&range.endY>=y;case core.RANGE_TYPE.COLUMN:return range.startX<=x&&range.endX>=x;default:return range.startX<=x&&range.endX>=x&&range.startY<=y&&range.endY>=y}},"isPointerInRange"),triggerMenu=__name(position=>{this._contextMenuService.triggerContextMenu(event,position)},"triggerMenu");isPointerInRange()?rangeType===core.RANGE_TYPE.COLUMN?triggerMenu(ui.ContextMenuPosition.COL_HEADER):rangeType===core.RANGE_TYPE.ROW?triggerMenu(ui.ContextMenuPosition.ROW_HEADER):triggerMenu(ui.ContextMenuPosition.MAIN_AREA):triggerMenu(ui.ContextMenuPosition.MAIN_AREA)}});this.disposeWithMe(spreadsheetSubscription);const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),rowHeaderSub=this._context.components.get(SHEET_VIEW_KEY.ROW).onPointerDown$.subscribeEvent(event=>{event.button===2&&this._contextMenuService.triggerContextMenu(event,ui.ContextMenuPosition.ROW_HEADER)});this.disposeWithMe(rowHeaderSub);const colHeaderObserver=spreadsheetColumnHeader.onPointerDown$.subscribeEvent(event=>{event.button===2&&this._contextMenuService.triggerContextMenu(event,ui.ContextMenuPosition.COL_HEADER)});this.disposeWithMe(colHeaderObserver)}},__name(_a55,"SheetContextMenuRenderController"),_a55);SheetContextMenuRenderController=__decorateClass$5([__decorateParam$5(1,ui.IContextMenuService),__decorateParam$5(2,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$5(3,ISheetSelectionRenderService)],SheetContextMenuRenderController);var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4"),_a56;let EditorBridgeRenderController=(_a56=class extends core.RxDisposable{constructor(_context,_instanceSrv,_commandService,_editorBridgeService,_selectionManagerService,_rangeSelectorService,_contextService,_renderManagerService,_editorService,_sheetSkeletonManagerService){super();__publicField(this,"_d");this._context=_context,this._instanceSrv=_instanceSrv,this._commandService=_commandService,this._editorBridgeService=_editorBridgeService,this._selectionManagerService=_selectionManagerService,this._rangeSelectorService=_rangeSelectorService,this._contextService=_contextService,this._renderManagerService=_renderManagerService,this._editorService=_editorService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this.disposeWithMe(this._instanceSrv.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).subscribe(workbook=>{workbook&&workbook.getUnitId()===this._context.unitId?this._d=this._init():this._disposeCurrent()})),this._initialRangeSelector()}_init(){const d=new core.DisposableCollection;return this._initSelectionChangeListener(d),this._initEventListener(d),this._commandExecutedListener(d),this._initialKeyboardListener(d),d}_disposeCurrent(){var _a61;(_a61=this._d)==null||_a61.dispose(),this._d=null}_initSelectionChangeListener(d){d.add(rxjs.merge(this._selectionManagerService.selectionMoveEnd$,this._selectionManagerService.selectionSet$,this._selectionManagerService.selectionMoveStart$).subscribe(params=>this._updateEditorPosition(params)))}_updateEditorPosition(params){var _a61,_b,_c;if(this._editorBridgeService.isVisible().visible||this._rangeSelectorService.selectorModalVisible)return;const primary=(_a61=params==null?void 0:params[params.length-1])==null?void 0:_a61.primary;if(primary){const sheetObject=this._getSheetObject(),{scene,engine}=sheetObject,unitId=this._context.unitId,sheetId=(_b=this._context.unit.getActiveSheet())==null?void 0:_b.getSheetId();if(!sheetId)return;const mergeInfo=(_c=this._sheetSkeletonManagerService.getWorksheetSkeleton(sheetId))==null?void 0:_c.skeleton.getCellWithCoordByIndex(primary.actualRow,primary.actualColumn),newPrimary=mergeInfo?{actualRow:mergeInfo.actualRow,actualColumn:mergeInfo.actualColumn,isMerged:mergeInfo.isMerged,startRow:mergeInfo.mergeInfo.startRow,startColumn:mergeInfo.mergeInfo.startColumn,endRow:mergeInfo.mergeInfo.endRow,endColumn:mergeInfo.mergeInfo.endColumn,isMergedMainCell:mergeInfo.isMergedMainCell}:primary;this._commandService.executeCommand(SetActivateCellEditOperation.id,{scene,engine,primary:newPrimary,unitId,sheetId})}}_initEventListener(d){const sheetObject=this._getSheetObject(),{spreadsheet,spreadsheetColumnHeader,spreadsheetLeftTopPlaceholder,spreadsheetRowHeader}=sheetObject;d.add(spreadsheet.onDblclick$.subscribeEvent(evt=>{evt.button!==2&&this._commandService.executeCommand(SetCellEditVisibleOperation.id,{visible:!0,eventType:engineRender.DeviceInputEventType.Dblclick,unitId:this._context.unitId})})),d.add(spreadsheet.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1})),d.add(spreadsheetColumnHeader.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1})),d.add(spreadsheetLeftTopPlaceholder.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1})),d.add(spreadsheetRowHeader.onPointerDown$.subscribeEvent({next:this._tryHideEditor.bind(this),priority:-1}))}_initialKeyboardListener(d){let disposable=null;const addEvent=__name(render22=>{const docSelectionRenderService=render22.with(docsUi.DocSelectionRenderService);docSelectionRenderService&&(disposable=core.toDisposable(docSelectionRenderService.onInputBefore$.subscribe(config=>{if(!this._isCurrentSheetFocused())return;const isFocusFormulaEditor=this._contextService.getContextValue(core.FOCUSING_FX_BAR_EDITOR),isFocusSheets=this._contextService.getContextValue(core.FOCUSING_SHEET),unitId=render22.unitId;this._editorBridgeService.isVisible().visible||unitId&&isFocusSheets&&!isFocusFormulaEditor&&this._showEditorByKeyboard(config)})),d.add(disposable))},"addEvent"),render2=this._renderManagerService.getRenderById(core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);render2?addEvent(render2):this.disposeWithMe(this._renderManagerService.created$.pipe(rxjs.filter(render22=>render22.unitId===core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)).subscribe(render22=>{disposable==null||disposable.dispose(),addEvent(render22)}))}_commandExecutedListener(d){const refreshCommandSet=new Set([sheets.ClearSelectionFormatCommand.id,SetZoomRatioCommand.id]);d.add(this._commandService.onCommandExecuted(command=>{if(refreshCommandSet.has(command.id)){if(this._editorBridgeService.isVisible().visible)return;this._editorBridgeService.refreshEditCellState()}if(command.id===sheets.SetRangeValuesMutation.id){const params=command.params,{cellValue,unitId,subUnitId}=params;if(!cellValue)return;const editCell=this._editorBridgeService.getEditLocation();if(editCell){const{unitId:editingUnitId,sheetId:editingSheetId,row,column}=editCell;unitId===editingUnitId&&subUnitId===editingSheetId&&cellValue&&cellValue[row]&&Object.prototype.hasOwnProperty.call(cellValue[row],column)&&this._editorBridgeService.refreshEditCellState()}}})),d.add(this._commandService.beforeCommandExecuted((command,options)=>{options!=null&&options.fromCollab||command.id===sheets.SetWorksheetActiveOperation.id&&this._tryHideEditor()}))}_showEditorByKeyboard(config){const event=config==null?void 0:config.event;config==null||!event.data&&event.inputType!=="InsertParagraph"||this._commandService.executeCommand(SetCellEditVisibleOperation.id,{visible:!0,eventType:engineRender.DeviceInputEventType.Keyboard,keycode:event.which,unitId:this._context.unitId})}_tryHideEditor(){this._editorBridgeService.isForceKeepVisible()||this._hideEditor()}_hideEditor(){this._editorBridgeService.isVisible().visible===!0&&this._commandService.syncExecuteCommand(SetCellEditVisibleOperation.id,{visible:!1,eventType:engineRender.DeviceInputEventType.PointerDown,unitId:this._context.unitId})}_initialRangeSelector(){this.disposeWithMe(this._selectionManagerService.selectionMoving$.subscribe(this._rangeSelector.bind(this))),this.disposeWithMe(this._selectionManagerService.selectionMoveStart$.subscribe(this._rangeSelector.bind(this))),this.disposeWithMe(this._rangeSelectorService.openSelector$.subscribe(()=>{const{unitId,sheetId,sheetName}=this._getCurrentUnitIdAndSheetId();if(!sheetId||!sheetName)return;const selectionWithStyle=this._selectionManagerService.getCurrentSelections(),ranges=selectionWithStyle==null?void 0:selectionWithStyle.map(value=>({range:value.range,unitId,sheetId,sheetName}));ranges&&this._rangeSelectorService.selectionChange(ranges)}))}_rangeSelector(selectionWithStyle){if(!selectionWithStyle)return;const{unitId,sheetId,sheetName}=this._getCurrentUnitIdAndSheetId();if(!sheetId||!sheetName)return;const ranges=selectionWithStyle.map(value=>({range:value.range,unitId,sheetId,sheetName}));this._rangeSelectorService.selectionChange(ranges)}_getCurrentUnitIdAndSheetId(){const workbook=this._context.unit,worksheet=workbook.getActiveSheet();return{unitId:workbook.getUnitId(),sheetId:worksheet==null?void 0:worksheet.getSheetId(),sheetName:worksheet==null?void 0:worksheet.getName()}}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_isCurrentSheetFocused(){var _a61;return((_a61=this._instanceSrv.getFocusedUnit())==null?void 0:_a61.getUnitId())===this._context.unitId}},__name(_a56,"EditorBridgeRenderController"),_a56);EditorBridgeRenderController=__decorateClass$4([__decorateParam$4(1,core.IUniverInstanceService),__decorateParam$4(2,core.ICommandService),__decorateParam$4(3,IEditorBridgeService),__decorateParam$4(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$4(5,docsUi.IRangeSelectorService),__decorateParam$4(6,core.IContextService),__decorateParam$4(7,engineRender.IRenderManagerService),__decorateParam$4(8,docsUi.IEditorService),__decorateParam$4(9,core.Inject(exports.SheetSkeletonManagerService))],EditorBridgeRenderController);var HEADER_MENU_SHAPE_TYPE=(HEADER_MENU_SHAPE_TYPE2=>(HEADER_MENU_SHAPE_TYPE2[HEADER_MENU_SHAPE_TYPE2.NORMAL=0]="NORMAL",HEADER_MENU_SHAPE_TYPE2[HEADER_MENU_SHAPE_TYPE2.HIGHLIGHT=1]="HIGHLIGHT",HEADER_MENU_SHAPE_TYPE2))(HEADER_MENU_SHAPE_TYPE||{});const HEADER_MENU_SHAPE_CIRCLE_FILL="rgba(0, 0, 0, 0.15)",HEADER_MENU_SHAPE_TRIANGLE_FILL="rgb(0, 0, 0)",HEADER_MENU_BACKGROUND_COLOR="rgb(255, 255, 255, 1)",_HeaderMenuShape=class _HeaderMenuShape extends engineRender.Shape{constructor(key,props){super(key,props);__publicField(this,"_size",12);__publicField(this,"_iconRatio",.4);__publicField(this,"_mode",0);this.setShapeProps(props)}setShapeProps(props){props!=null&&props.size&&(this._size=props.size),props!=null&&props.mode&&(this._mode=props.mode),this.transformByState({width:this._size,height:this._size})}_draw(ctx){this._mode===1&&engineRender.Rect.drawWith(ctx,{width:this._size,height:this._size,radius:this._size,fill:HEADER_MENU_SHAPE_CIRCLE_FILL});const iconSize=this._size*.5*this._iconRatio,sixtyDegree=Math.PI/180*60,left=iconSize*Math.sin(sixtyDegree),top=iconSize*Math.cos(sixtyDegree);engineRender.RegularPolygon.drawWith(ctx,{pointsGroup:[[{x:-left+this._size/2,y:-top+this._size/2},{x:left+this._size/2,y:-top+this._size/2},{x:this._size/2,y:iconSize+this._size/2}]],fill:HEADER_MENU_SHAPE_TRIANGLE_FILL})}};__name(_HeaderMenuShape,"HeaderMenuShape");let HeaderMenuShape=_HeaderMenuShape;var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3");const HEADER_MENU_CONTROLLER_SHAPE="__SpreadsheetHeaderMenuSHAPEControllerShape__",HEADER_MENU_CONTROLLER_MENU="__SpreadsheetHeaderMenuMAINControllerShape__",HEADER_MENU_CONTROLLER_SHAPE_COLOR="rgba(0, 0, 0, 0.1)";var _a57;let HeaderMenuRenderController=(_a57=class extends core.Disposable{constructor(_context,_sheetSkeletonManagerService,_contextMenuService,_commandService,_selectionManagerService){super();__publicField(this,"_hoverRect");__publicField(this,"_hoverMenu");__publicField(this,"_currentColumn",Number.POSITIVE_INFINITY);__publicField(this,"_headerPointerSubs");__publicField(this,"_colHeaderPointerSubs");this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._contextMenuService=_contextMenuService,this._commandService=_commandService,this._selectionManagerService=_selectionManagerService,this._initialize()}dispose(){var _a61,_b,_c;(_a61=this._hoverRect)==null||_a61.dispose(),(_b=this._hoverMenu)==null||_b.dispose(),(_c=this._headerPointerSubs)==null||_c.unsubscribe(),this._headerPointerSubs=null}_initialize(){const scene=this._context.scene;this._hoverRect=new engineRender.Rect(HEADER_MENU_CONTROLLER_SHAPE,{fill:HEADER_MENU_CONTROLLER_SHAPE_COLOR,evented:!1}),this._hoverMenu=new HeaderMenuShape(HEADER_MENU_CONTROLLER_MENU,{zIndex:100,visible:!1}),scene.addObjects([this._hoverRect,this._hoverMenu],SHEET_COMPONENT_HEADER_LAYER_INDEX),this._initialHover(0),this._initialHover(1),this._initialHoverMenu()}_initialHover(initialType=0){var _a61,_b,_c;const spreadsheetColumnHeader=this._context.components.get(SHEET_VIEW_KEY.COLUMN),spreadsheetRowHeader=this._context.components.get(SHEET_VIEW_KEY.ROW),eventBindingObject=initialType===0?spreadsheetRowHeader:spreadsheetColumnHeader,pointerMoveHandler=__name(evt=>{var _a62,_b2,_c2;const skeleton=(_a62=this._sheetSkeletonManagerService.getCurrent())==null?void 0:_a62.skeleton;if(skeleton==null)return;const{rowHeaderWidth,columnHeaderHeight}=skeleton,{startX,startY,endX,endY,column}=getCoordByOffset(evt.offsetX,evt.offsetY,this._context.scene,skeleton);if(initialType===0)(_b2=this._hoverRect)==null||_b2.transformByState({width:rowHeaderWidth,height:endY-startY,left:0,top:startY});else{if(this._currentColumn=column,(_c2=this._hoverRect)==null||_c2.transformByState({width:endX-startX,height:columnHeaderHeight,left:startX,top:0}),this._hoverMenu==null)return;if(endX-startX<columnHeaderHeight*2){this._hoverMenu.hide();return}const menuSize=columnHeaderHeight*.8;this._hoverMenu.transformByState({left:endX-columnHeaderHeight,top:columnHeaderHeight/2-menuSize/2}),this._hoverMenu.setShapeProps({size:menuSize}),this._hoverMenu.show()}},"pointerMoveHandler"),pointerEnterHandler=__name(()=>{var _a62;(_a62=this._hoverRect)==null||_a62.show()},"pointerEnterHandler"),pointerLeaveHandler=__name(()=>{var _a62,_b2;(_a62=this._hoverRect)==null||_a62.hide(),(_b2=this._hoverMenu)==null||_b2.hide()},"pointerLeaveHandler");this._headerPointerSubs=new rxjs.Subscription;const headerPointerMoveSub=eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveHandler),headerPointerEnterSub=eventBindingObject.onPointerEnter$.subscribeEvent(pointerEnterHandler),headerPointerLeaveSub=eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveHandler);(_a61=this._headerPointerSubs)==null||_a61.add(headerPointerMoveSub),(_b=this._headerPointerSubs)==null||_b.add(headerPointerEnterSub),(_c=this._headerPointerSubs)==null||_c.add(headerPointerLeaveSub)}_initialHoverMenu(){this._hoverMenu!=null&&(this._hoverMenu.onPointerEnter$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:HEADER_MENU_SHAPE_TYPE.HIGHLIGHT,visible:!0}),this._context.scene.setCursor(engineRender.CURSOR_TYPE.POINTER))}),this._hoverMenu.onPointerLeave$.subscribeEvent(()=>{this._hoverMenu!=null&&(this._hoverMenu.setProps({mode:HEADER_MENU_SHAPE_TYPE.NORMAL,visible:!1}),this._context.scene.resetCursor())}),this._hoverMenu.onPointerDown$.subscribeEvent(evt=>{var _a61;const currentColumn=this._currentColumn,currentSelectionDatas=(_a61=this._selectionManagerService.getCurrentSelections())==null?void 0:_a61.map(s=>s.range);if(!!!(currentSelectionDatas!=null&¤tSelectionDatas.filter(range=>range.rangeType===core.RANGE_TYPE.COLUMN).find(data=>{const{startColumn,endColumn}=data;return currentColumn>=startColumn&¤tColumn<=endColumn}))){const selection=this._getSelectionOnColumn(currentColumn);this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,selection)}evt.stopPropagation(),evt.preventDefault(),this._contextMenuService.triggerContextMenu(evt,ui.ContextMenuPosition.COL_HEADER)}))}_getSelectionOnColumn(column){const workbook=this._context.unit,worksheet=workbook.getActiveSheet();if(!worksheet)throw new Error("No active worksheet");return{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),selections:[{range:{startRow:0,startColumn:column,endRow:worksheet.getRowCount()-1,endColumn:column,rangeType:core.RANGE_TYPE.COLUMN},primary:{startRow:0,startColumn:column,endRow:0,endColumn:column,actualRow:0,actualColumn:column,isMerged:!1,isMergedMainCell:!1},style:null}]}}},__name(_a57,"HeaderMenuRenderController"),_a57);HeaderMenuRenderController=__decorateClass$3([__decorateParam$3(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$3(2,ui.IContextMenuService),__decorateParam$3(3,core.ICommandService),__decorateParam$3(4,core.Inject(sheets.SheetsSelectionsService))],HeaderMenuRenderController);var HeaderUnhideShapeType=(HeaderUnhideShapeType2=>(HeaderUnhideShapeType2[HeaderUnhideShapeType2.ROW=0]="ROW",HeaderUnhideShapeType2[HeaderUnhideShapeType2.COLUMN=1]="COLUMN",HeaderUnhideShapeType2))(HeaderUnhideShapeType||{});const UNHIDE_ICON_SIZE=12,UNHIDE_ARROW_RATIO=.4,_HeaderUnhideShape=class _HeaderUnhideShape extends engineRender.Shape{constructor(key,props,onClick){super(key,props);__publicField(this,"_size",UNHIDE_ICON_SIZE);__publicField(this,"_iconRatio",UNHIDE_ARROW_RATIO);__publicField(this,"_hovered",!0);__publicField(this,"_hasPrevious",!0);__publicField(this,"_hasNext",!0);__publicField(this,"_unhideType");props&&this.setShapeProps(props),this.onPointerEnter$.subscribeEvent(()=>this.setShapeProps({hovered:!0})),this.onPointerLeave$.subscribeEvent(()=>this.setShapeProps({hovered:!1})),this.onPointerDown$.subscribeEvent(()=>onClick==null?void 0:onClick())}setShapeProps(props){props.type!==void 0&&(this._unhideType=props.type),props.hovered!==void 0&&(this._hovered=props.hovered),props.hasPrevious!==void 0&&(this._hasPrevious=props.hasPrevious),props.hasNext!==void 0&&(this._hasNext=props.hasNext),this.transformByState({width:this._size*(this._unhideType===1?2:1),height:this._size*(this._unhideType===0?2:1)})}_draw(ctx){this._unhideType===0?this._drawOnRow(ctx):this._drawOnCol(ctx)}_drawOnRow(ctx){this._hovered&&(!this._hasNext||!this._hasPrevious?engineRender.Rect.drawWith(ctx,{width:this._size,height:this._size,stroke:HEADER_MENU_SHAPE_TRIANGLE_FILL,fill:HEADER_MENU_BACKGROUND_COLOR}):engineRender.Rect.drawWith(ctx,{width:this._size,height:2*this._size,stroke:HEADER_MENU_SHAPE_TRIANGLE_FILL,fill:HEADER_MENU_BACKGROUND_COLOR}));const iconSize=this._size*.5*this._iconRatio,sixtyDegree=Math.PI/3,top=iconSize*Math.cos(sixtyDegree),left=iconSize*Math.sin(sixtyDegree);if(this._hasPrevious&&engineRender.RegularPolygon.drawWith(ctx,{pointsGroup:[[{x:this._size/2,y:this._size/2-left},{x:this._size/2-left,y:this._size/2+top},{x:this._size/2+left,y:this._size/2+top}]],fill:HEADER_MENU_SHAPE_TRIANGLE_FILL}),this._hasNext){const offset=this._hasPrevious?3:1;engineRender.RegularPolygon.drawWith(ctx,{pointsGroup:[[{x:this._size/2,y:this._size*offset/2+left},{x:this._size/2-left,y:this._size*offset/2-top},{x:this._size/2+left,y:this._size*offset/2-top}]],fill:HEADER_MENU_SHAPE_TRIANGLE_FILL})}}_drawOnCol(ctx){this._hovered&&(!this._hasNext||!this._hasPrevious?engineRender.Rect.drawWith(ctx,{width:this._size,height:this._size,stroke:HEADER_MENU_SHAPE_TRIANGLE_FILL,fill:HEADER_MENU_BACKGROUND_COLOR}):engineRender.Rect.drawWith(ctx,{width:2*this._size,height:this._size,stroke:HEADER_MENU_SHAPE_TRIANGLE_FILL,fill:HEADER_MENU_BACKGROUND_COLOR}));const iconSize=this._size*.5*this._iconRatio,sixtyDegree=Math.PI/3,top=iconSize*Math.cos(sixtyDegree),left=iconSize*Math.sin(sixtyDegree);if(this._hasPrevious&&engineRender.RegularPolygon.drawWith(ctx,{pointsGroup:[[{x:-top+this._size/2,y:this._size/2},{x:this._size/2+left,y:this._size/2-left},{x:this._size/2+left,y:this._size/2+left}]],fill:HEADER_MENU_SHAPE_TRIANGLE_FILL}),this._hasNext){const offset=this._hasPrevious?3:1;engineRender.RegularPolygon.drawWith(ctx,{pointsGroup:[[{x:top+this._size*offset/2,y:this._size/2},{x:-left+this._size*offset/2,y:this._size/2-left},{x:-left+this._size*offset/2,y:this._size/2+left}]],fill:HEADER_MENU_SHAPE_TRIANGLE_FILL})}}};__name(_HeaderUnhideShape,"HeaderUnhideShape");let HeaderUnhideShape=_HeaderUnhideShape;var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2");const HEADER_UNHIDE_CONTROLLER_SHAPE="__SpreadsheetHeaderUnhideSHAPEControllerShape__";sheets.InsertColMutation.id,sheets.InsertRowMutation.id,sheets.RemoveColMutation.id,sheets.RemoveRowMutation.id,sheets.MoveColsMutation.id,sheets.MoveRowsMutation.id,sheets.SetWorksheetColWidthMutation.id,sheets.SetWorksheetRowIsAutoHeightMutation.id,sheets.SetRowHiddenMutation.id,sheets.SetRowVisibleMutation.id,sheets.SetColHiddenMutation.id,sheets.SetColVisibleMutation.id;var _a58;let HeaderUnhideRenderController=(_a58=class extends core.RxDisposable{constructor(_context,_sheetSkeletonManagerService,_commandService){super();__publicField(this,"_shapes",{cols:[],rows:[]});this._context=_context,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._init()}get _workbook(){return this._context.unit}dispose(){super.dispose(),this._clearShapes()}_init(){let activeSheetId="";this._context.unit.activeSheet$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(worksheet=>{if(this._clearShapes(),!worksheet){activeSheetId="";return}activeSheetId=worksheet.getSheetId(),this._update(this._workbook,worksheet)}),this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(param){const{unitId,sheetId}=param;if(unitId===this._workbook.getUnitId()&&sheetId===activeSheetId){const worksheet=this._workbook.getSheetBySheetId(sheetId);worksheet&&this._update(this._workbook,worksheet)}}}))}_update(workbook,worksheet){var _a61;const skeleton=(_a61=this._sheetSkeletonManagerService.getWorksheetSkeleton(worksheet.getSheetId()))==null?void 0:_a61.skeleton;if(!skeleton)return;const hiddenRowRanges=worksheet.getHiddenRows(),hiddenColRanges=worksheet.getHiddenCols(),sheetObject=this._getSheetObject(),{scene}=sheetObject,rowCount=worksheet.getRowCount(),rowShapes=hiddenRowRanges.map(range=>{const{startRow,endRow}=range,position=getCoordByCell(startRow,0,scene,skeleton),hasPrevious=startRow!==0,hasNext=endRow!==rowCount-1;return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE,{type:HeaderUnhideShapeType.ROW,hovered:!1,hasPrevious,hasNext,top:position.startY-(hasPrevious?UNHIDE_ICON_SIZE:0),left:position.startX-UNHIDE_ICON_SIZE},()=>this._commandService.executeCommand(sheets.SetSpecificRowsVisibleCommand.id,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),ranges:[range]}))}),colCount=worksheet.getColumnCount(),colShapes=hiddenColRanges.map(range=>{const{startColumn,endColumn}=range,position=getCoordByCell(0,startColumn,scene,skeleton),hasPrevious=startColumn!==0,hasNext=endColumn!==colCount-1;return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE,{type:HeaderUnhideShapeType.COLUMN,hovered:!1,hasPrevious,hasNext,top:20-UNHIDE_ICON_SIZE,left:position.startX-(hasPrevious?UNHIDE_ICON_SIZE:0)},()=>this._commandService.executeCommand(sheets.SetSpecificColsVisibleCommand.id,{unitId:workbook.getUnitId(),subUnitId:worksheet.getSheetId(),ranges:[range]}))});scene.addObjects(colShapes,SHEET_COMPONENT_UNHIDE_LAYER_INDEX),scene.addObjects(rowShapes,SHEET_COMPONENT_UNHIDE_LAYER_INDEX),this._clearShapes(),this._shapes={cols:colShapes,rows:rowShapes}}_clearShapes(){this._shapes.cols.forEach(shape=>shape.dispose()),this._shapes.rows.forEach(shape=>shape.dispose()),this._shapes={cols:[],rows:[]}}_getSheetObject(){return getSheetObject(this._workbook,this._context)}},__name(_a58,"HeaderUnhideRenderController"),_a58);HeaderUnhideRenderController=__decorateClass$2([__decorateParam$2(1,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$2(2,core.ICommandService)],HeaderUnhideRenderController);var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),_a59;exports.SheetSelectionRenderService=(_a59=class extends BaseSelectionRenderService{constructor(_context,injector,themeService,shortcutService,selectionManagerService,sheetSkeletonManagerService,_logService,_commandService,_contextService){super(injector,themeService,shortcutService,sheetSkeletonManagerService,_contextService);__publicField(this,"_workbookSelections");__publicField(this,"_renderDisposable",null);this._context=_context,this._logService=_logService,this._commandService=_commandService,this._contextService=_contextService,this._workbookSelections=selectionManagerService.getWorkbookSelections(this._context.unitId),this._init()}_init(){const sheetObject=this._getSheetObject();this._contextService.setContextValue(sheets.SELECTIONS_ENABLED,!0),this._initEventListeners(sheetObject),this._initSelectionModelChangeListener(),this._initThemeChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener()}_initEventListeners(sheetObject){const{spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheet,spreadsheetLeftTopPlaceholder}=sheetObject,{scene}=this._context;this.disposeWithMe(spreadsheet==null?void 0:spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{this.isSelectionDisabled()||this.inRefSelectionMode()||(this._onPointerDown(evt,spreadsheet.zIndex+1,core.RANGE_TYPE.NORMAL,this._getActiveViewport(evt)),evt.button!==2&&state.stopPropagation())})),this.disposeWithMe(spreadsheetRowHeader==null?void 0:spreadsheetRowHeader.onPointerDown$.subscribeEvent((evt,state)=>{if(this.isSelectionDisabled()||this.inRefSelectionMode())return;const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{row}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);isThisRowSelected(this._workbookSelections.getCurrentSelections(),row)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.ROW,this._getActiveViewport(evt),engineRender.ScrollTimerType.Y),evt.button!==2&&state.stopPropagation())})),this.disposeWithMe(spreadsheetColumnHeader==null?void 0:spreadsheetColumnHeader.onPointerDown$.subscribeEvent((evt,state)=>{if(this.isSelectionDisabled()||this.inRefSelectionMode())return;const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{column}=getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);isThisColSelected(this._workbookSelections.getCurrentSelections(),column)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.COLUMN,this._getActiveViewport(evt),engineRender.ScrollTimerType.X),evt.button!==2&&state.stopPropagation())})),this.disposeWithMe(spreadsheetLeftTopPlaceholder==null?void 0:spreadsheetLeftTopPlaceholder.onPointerDown$.subscribeEvent((evt,state)=>{if(this.isSelectionDisabled()||this.inRefSelectionMode())return;this._reset();const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,selectionWithStyle=selectionDataForSelectAll(skeleton);this._addSelectionControlByModelData(selectionWithStyle),this.refreshSelectionMoveEnd(),evt.button!==2&&state.stopPropagation()}))}_initThemeChangeListener(){this.disposeWithMe(this._themeService.currentTheme$.subscribe(()=>{this._initSelectionThemeFromThemeService();const selections=this._workbookSelections.getCurrentSelections();selections&&this.resetSelectionsByModelData(selections)}))}_initSelectionModelChangeListener(){this.disposeWithMe(rxjs.merge(this._workbookSelections.selectionMoveEnd$,this._workbookSelections.selectionSet$).subscribe(selectionWithStyleList=>{this.resetSelectionsByModelData(selectionWithStyleList)}))}disableSelection(){this._contextService.setContextValue(sheets.SELECTIONS_ENABLED,!1)}enableSelection(){this._contextService.setContextValue(sheets.SELECTIONS_ENABLED,!0)}transparentSelection(){this.setSelectionTheme({primaryColor:"transparent"});const selectionsWithStyle=this._workbookSelections.getCurrentSelections();for(let index=0;index<selectionsWithStyle.length;index++){const selectionWithStyle=selectionsWithStyle[index];selectionWithStyle.style=genNormalSelectionStyle(this._selectionTheme)}this.resetSelectionsByModelData(selectionsWithStyle)}showSelection(){const currTheme=this._themeService.getCurrentTheme();this.setSelectionTheme(currTheme);const selectionsWithStyle=this._workbookSelections.getCurrentSelections();for(let index=0;index<selectionsWithStyle.length;index++){const selectionWithStyle=selectionsWithStyle[index];selectionWithStyle.style&&(selectionWithStyle.style=genNormalSelectionStyle(this._selectionTheme))}this.resetSelectionsByModelData(selectionsWithStyle)}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVE_START))),this.disposeWithMe(this.selectionMoving$.subscribe(params=>this._updateSelections(params,sheets.SelectionMoveType.MOVING))),this.disposeWithMe(this._contextService.subscribeContextValue$(sheets.REF_SELECTIONS_ENABLED).pipe(rxjs.startWith(!1),rxjs.distinctUntilChanged()).subscribe(enabled=>{enabled&&this._reset()})),this.disposeWithMe(this._contextService.subscribeContextValue$(sheets.SELECTIONS_ENABLED).pipe(rxjs.startWith(!0),rxjs.distinctUntilChanged()).subscribe(enabled=>{var _a61;enabled?this._renderDisposable=core.toDisposable(this.selectionMoveEnd$.subscribe(params=>{this._updateSelections(params,sheets.SelectionMoveType.MOVE_END)})):((_a61=this._renderDisposable)==null||_a61.dispose(),this._renderDisposable=null,this._reset())}))}_updateSelections(selectionDataWithStyleList,type){const workbook=this._context.unit,unitId=workbook.getUnitId(),sheetId=workbook.getActiveSheet().getSheetId();if(selectionDataWithStyleList.length===0)return;const selectionWithStyles=selectionDataWithStyleList.map(selectionDataWithStyle=>sheets.convertSelectionDataToRange(selectionDataWithStyle));this._commandService.executeCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,type,selections:selectionWithStyles})}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{var _a61,_b;if(param==null){this._logService.error("[SelectionRenderService]: should not receive null!");return}const unitId=this._context.unitId,{sheetId,skeleton}=param,{scene}=this._context,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN),prevSheetId=(_b=(_a61=this._skeleton)==null?void 0:_a61.worksheet)==null?void 0:_b.getSheetId();if(this._changeRuntime(skeleton,scene,viewportMain),prevSheetId!==skeleton.worksheet.getSheetId()){const selections=this._workbookSelections.getCurrentSelections();this._commandService.syncExecuteCommand(sheets.SetSelectionsOperation.id,{unitId,subUnitId:sheetId,selections:selections.length!==0?selections:[getTopLeftSelectionOfCurrSheet(skeleton)]})}const currentSelections=this._workbookSelections.getCurrentSelections();currentSelections!=null&&this.resetSelectionsByModelData(currentSelections)}))}_getActiveViewport(evt){const sheetObject=this._getSheetObject();return sheetObject==null?void 0:sheetObject.scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]))}_getSheetObject(){return getSheetObject(this._context.unit,this._context)}_onPointerDown(evt,_zIndex=0,rangeType=core.RANGE_TYPE.NORMAL,viewport,scrollTimerType=engineRender.ScrollTimerType.ALL){var _a61,_b;this._rangeType=rangeType;const skeleton=this._skeleton,scene=this._scene;if(!scene||!skeleton)return;viewport&&(this._activeViewport=viewport);const{offsetX:evtOffsetX,offsetY:evtOffsetY}=evt,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!viewportMain)return;const relativeCoords=scene.getCoordRelativeToViewport(engineRender.Vector2.FromArray([evtOffsetX,evtOffsetY])),{x:offsetX,y:offsetY}=relativeCoords;this._startViewportPosX=offsetX,this._startViewportPosY=offsetY;const scrollXY=scene.getScrollXYInfoByViewport(relativeCoords),{scaleX,scaleY}=scene.getAncestorScale(),selectCell=this._skeleton.getCellByOffset(offsetX,offsetY,scaleX,scaleY,scrollXY);if(!selectCell)return;switch(rangeType){case core.RANGE_TYPE.NORMAL:break;case core.RANGE_TYPE.ROW:selectCell.startColumn=0,selectCell.endColumn=this._skeleton.getColumnCount()-1,selectCell.startRow=selectCell.actualRow,selectCell.endRow=selectCell.actualRow;break;case core.RANGE_TYPE.COLUMN:selectCell.startRow=0,selectCell.endRow=this._skeleton.getRowCount()-1,selectCell.startColumn=selectCell.actualColumn,selectCell.endColumn=selectCell.actualColumn;break;case core.RANGE_TYPE.ALL:selectCell.startRow=0,selectCell.startColumn=0,selectCell.endRow=this._skeleton.getRowCount()-1,selectCell.endColumn=this._skeleton.getColumnCount()-1}const selectionWithStyle={range:selectCell,primary:selectCell,style:null};selectionWithStyle.range.rangeType=rangeType;const selectionCellWithCoord=attachSelectionWithCoord(selectionWithStyle,this._skeleton);this._startRangeWhenPointerDown={...selectionCellWithCoord.rangeWithCoord};let activeSelectionControl=this.getActiveSelectionControl();const cursorRangeWidthCoord={...selectionCellWithCoord.rangeWithCoord,rangeType},curControls=this.getSelectionControls();for(const control of curControls)if(evt.button===2&&control.model.isInclude(cursorRangeWidthCoord)){activeSelectionControl=control;return}this._checkClearPreviousControls(evt);const currentCell=activeSelectionControl==null?void 0:activeSelectionControl.model.currentCell,expandByShiftKey=evt.shiftKey&¤tCell,remainLastEnable=this._remainLastEnabled&&!evt.ctrlKey&&!evt.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;expandByShiftKey&¤tCell?this._makeSelectionByTwoCells(currentCell,cursorRangeWidthCoord,skeleton,rangeType,activeSelectionControl):remainLastEnable&&activeSelectionControl?activeSelectionControl.updateRangeBySelectionWithCoord(selectionCellWithCoord):activeSelectionControl=this.newSelectionControl(scene,skeleton,selectionWithStyle);for(let i=0;i<this.getSelectionControls().length-1;i++)this.getSelectionControls()[i].clearHighlight();scene.disableObjectsEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(_a61=scene.getTransformer())==null||_a61.clearSelectedObjects(),this._setupPointerMoveListener(viewportMain,activeSelectionControl,rangeType,scrollTimerType,offsetX,offsetY),this._escapeShortcutDisposable=this._shortcutService.forceEscape(),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),this._scenePointerUpSub=scene.onPointerUp$.subscribeEvent(()=>{var _a62;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(_a62=this._escapeShortcutDisposable)==null||_a62.dispose(),this._escapeShortcutDisposable=null}),(_b=this._scene.getEngine())==null||_b.setCapture()}},__name(_a59,"SheetSelectionRenderService"),_a59);exports.SheetSelectionRenderService=__decorateClass$1([__decorateParam$1(1,core.Inject(core.Injector)),__decorateParam$1(2,core.Inject(core.ThemeService)),__decorateParam$1(3,ui.IShortcutService),__decorateParam$1(4,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$1(5,core.Inject(exports.SheetSkeletonManagerService)),__decorateParam$1(6,core.ILogService),__decorateParam$1(7,core.ICommandService),__decorateParam$1(8,core.IContextService)],exports.SheetSelectionRenderService);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__defNormalProp2=__name((obj,key,value)=>key in obj?__defProp2(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp"),__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam"),__publicField2=__name((obj,key,value)=>__defNormalProp2(obj,typeof key!="symbol"?key+"":key,value),"__publicField"),_a60;exports.UniverSheetsUIPlugin=(_a60=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_renderManagerService,_configService,_univerInstanceService){super(),this._config=_config,this._injector=_injector,this._renderManagerService=_renderManagerService,this._configService=_configService,this._univerInstanceService=_univerInstanceService;const{menu,...rest}=core.merge({},defaultPluginConfig,this._config);menu&&this._configService.setConfig("menu",menu,{merge:!0}),this._configService.setConfig(SHEETS_UI_PLUGIN_CONFIG_KEY,rest)}onStarting(){core.registerDependencies(this._injector,core.mergeOverrideWithDependencies([[ShortcutExperienceService],[IEditorBridgeService,{useClass:exports.EditorBridgeService}],[ISheetClipboardService,{useClass:exports.SheetClipboardService}],[ISheetBarService,{useClass:SheetBarService}],[IFormatPainterService,{useClass:FormatPainterService}],[ICellEditorManagerService,{useClass:CellEditorManagerService}],[IFormulaEditorManagerService,{useClass:FormulaEditorManagerService}],[sheets.IRefSelectionsService,{useClass:sheets.RefSelectionsService}],[IAutoFillService,{useClass:exports.AutoFillService}],[SheetPrintInterceptorService],[IStatusBarService,{useClass:StatusBarService}],[IMarkSelectionService,{useClass:exports.MarkSelectionService}],[exports.HoverManagerService],[exports.DragManagerService],[exports.SheetCanvasPopManagerService],[exports.CellAlertManagerService],[SelectAllService],[ActiveWorksheetController],[exports.AutoHeightController],[exports.AutoWidthController],[exports.FormulaEditorController],[exports.SheetsRenderService],[exports.SheetUIController],[exports.StatusBarController],[exports.AutoFillController],[FormatPainterController],[SheetsDefinedNameController],[EditorDataSyncController],[SheetCheckboxController],[SheetPermissionPanelModel],[SheetPermissionUserManagerService],[SheetPermissionInterceptorClipboardController],[exports.SheetPermissionCheckUIController],[SheetPermissionRenderManagerController]],this._config.override)),core.touchDependencies(this._injector,[[SheetPermissionPanelModel]])}onReady(){this._config.disableAutoFocus||this._initAutoFocus(),core.registerDependencies(this._injector,[[SheetClipboardController]]),this._registerRenderBasics(),core.touchDependencies(this._injector,[[exports.SheetUIController],[exports.SheetsRenderService],[ActiveWorksheetController],[exports.SheetPermissionCheckUIController]])}onRendered(){this._registerRenderModules(),core.touchDependencies(this._injector,[[SheetPermissionRenderManagerController],[SheetClipboardController],[exports.FormulaEditorController],[SheetsDefinedNameController],[exports.StatusBarController],[exports.AutoHeightController],[exports.AutoWidthController],[EditorDataSyncController],[SheetCheckboxController]])}onSteady(){core.touchDependencies(this._injector,[[FormatPainterController],[exports.AutoFillController],[SheetPermissionInterceptorClipboardController]])}_registerRenderBasics(){[[exports.SheetSkeletonManagerService],[exports.SheetRenderController],[ISheetSelectionRenderService,{useClass:exports.SheetSelectionRenderService}]].forEach(m=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,m))})}_registerRenderModules(){var _a61;const modules=[[exports.HeaderMoveRenderController],[HeaderUnhideRenderController],[exports.HeaderResizeRenderController],[exports.SheetScrollManagerService],[exports.SheetsScrollRenderController],[exports.HeaderFreezeRenderController],[SheetsZoomRenderController],[exports.SheetCellEditorResizeService],[FormatPainterRenderController],[CellAlertRenderController],[ForceStringAlertRenderController],[MarkSelectionRenderController],[exports.HoverRenderController],[exports.DragRenderController],[ForceStringRenderController],[exports.CellCustomRenderController],[SheetContextMenuRenderController],[MoveRangeRenderController],[EditorBridgeRenderController],[exports.EditingRenderController],[SheetPermissionInterceptorCanvasRenderController],[SheetPermissionInterceptorFormulaRenderController],[SheetPermissionRenderController],[WorksheetProtectionRenderController]],config=this._configService.getConfig(ui.UI_PLUGIN_CONFIG_KEY);((_a61=config==null?void 0:config.contextMenu)!=null?_a61:!0)&&modules.push([HeaderMenuRenderController]),modules.forEach(m=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,m))})}_initAutoFocus(){const univerInstanceService=this._univerInstanceService;this.disposeWithMe(univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(operators.filter(v=>!!v)).subscribe(workbook=>univerInstanceService.focusUnit(workbook.getUnitId())))}},__name(_a60,"UniverSheetsUIPlugin"),_a60);__publicField2(exports.UniverSheetsUIPlugin,"pluginName","SHEET_UI_PLUGIN");__publicField2(exports.UniverSheetsUIPlugin,"type",core.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsUIPlugin=__decorateClass([core.DependentOn(sheets.UniverSheetsPlugin),__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,engineRender.IRenderManagerService),__decorateParam(3,core.IConfigService),__decorateParam(4,core.IUniverInstanceService)],exports.UniverSheetsUIPlugin);const EMBEDDING_FORMULA_EDITOR="embedding_formula_editor",isEmbeddingFormulaEditor=__name(unitId=>unitId.includes(EMBEDDING_FORMULA_EDITOR),"isEmbeddingFormulaEditor");function convertPositionSheetOverGridToAbsolute(unitId,subUnitId,sheetOverGridPosition,sheetSkeletonManagerService){const{from,to}=sheetOverGridPosition,{column:fromColumn,columnOffset:fromColumnOffset,row:fromRow,rowOffset:fromRowOffset}=from,{column:toColumn,columnOffset:toColumnOffset,row:toRow,rowOffset:toRowOffset}=to,skeleton=sheetSkeletonManagerService.getOrCreateSkeleton({sheetId:subUnitId});if(skeleton==null)throw new Error("No current skeleton");const startSelectionCell=attachRangeWithCoord(skeleton,{startColumn:fromColumn,endColumn:fromColumn,startRow:fromRow,endRow:fromRow}),endSelectionCell=attachRangeWithCoord(skeleton,{startColumn:toColumn,endColumn:toColumn,startRow:toRow,endRow:toRow}),{startX:startSelectionX,startY:startSelectionY}=startSelectionCell,{startX:endSelectionX,startY:endSelectionY}=endSelectionCell,left=engineRender.precisionTo(startSelectionX+fromColumnOffset,1),top=engineRender.precisionTo(startSelectionY+fromRowOffset,1);let width=engineRender.precisionTo(endSelectionX+toColumnOffset-left,1),height=engineRender.precisionTo(endSelectionY+toRowOffset-top,1);return startSelectionCell.startX===endSelectionCell.endX&&(width=0),startSelectionCell.startY===endSelectionCell.endY&&(height=0),{unitId,subUnitId,left,top,width,height}}__name(convertPositionSheetOverGridToAbsolute,"convertPositionSheetOverGridToAbsolute");function convertPositionCellToSheetOverGrid(unitId,subUnitId,cellOverGridPosition,width,height,selectionRenderService,sheetSkeletonManagerService){const{column:fromColumn,columnOffset:fromColumnOffset,row:fromRow,rowOffset:fromRowOffset}=cellOverGridPosition,skeleton=sheetSkeletonManagerService.getOrCreateSkeleton({sheetId:subUnitId});if(skeleton==null)throw new Error("No current skeleton");const startSelectionCell=attachRangeWithCoord(skeleton,{startColumn:fromColumn,endColumn:fromColumn,startRow:fromRow,endRow:fromRow}),{startX:startSelectionX,startY:startSelectionY}=startSelectionCell,left=engineRender.precisionTo(startSelectionX+fromColumnOffset,1),top=engineRender.precisionTo(startSelectionY+fromRowOffset,1),endSelectionCell=selectionRenderService.getCellWithCoordByOffset(left+width,top+height,skeleton);if(endSelectionCell==null)throw new Error("No end selection cell");const to={column:endSelectionCell.actualColumn,columnOffset:engineRender.precisionTo(left+width-endSelectionCell.startX,1),row:endSelectionCell.actualRow,rowOffset:engineRender.precisionTo(top+height-endSelectionCell.startY,1)};return{unitId,subUnitId,sheetTransform:{from:{column:fromColumn,columnOffset:fromColumnOffset,row:fromRow,rowOffset:fromRowOffset},to},transform:{left,top,width,height}}}__name(convertPositionCellToSheetOverGrid,"convertPositionCellToSheetOverGrid");exports.AFFECT_LAYOUT_STYLES=AFFECT_LAYOUT_STYLES;exports.APPLY_TYPE=APPLY_TYPE;exports.AddRangeProtectionFromContextMenuCommand=AddRangeProtectionFromContextMenuCommand;exports.AddRangeProtectionFromSheetBarCommand=AddRangeProtectionFromSheetBarCommand;exports.AddRangeProtectionFromToolbarCommand=AddRangeProtectionFromToolbarCommand;exports.ApplyFormatPainterCommand=ApplyFormatPainterCommand;exports.AutoClearContentCommand=AutoClearContentCommand;exports.AutoFillCommand=AutoFillCommand;exports.BaseSelectionRenderService=BaseSelectionRenderService;exports.COPY_TYPE=COPY_TYPE;exports.CellAlertType=CellAlertType;exports.CellEditorManagerService=CellEditorManagerService;exports.ChangeSheetProtectionFromSheetBarCommand=ChangeSheetProtectionFromSheetBarCommand;exports.ChangeZoomRatioCommand=ChangeZoomRatioCommand;exports.DATA_TYPE=DATA_TYPE;exports.DeleteRangeMoveLeftConfirmCommand=DeleteRangeMoveLeftConfirmCommand;exports.DeleteRangeMoveUpConfirmCommand=DeleteRangeMoveUpConfirmCommand;exports.DeleteRangeProtectionFromContextMenuCommand=DeleteRangeProtectionFromContextMenuCommand;exports.DeleteWorksheetProtectionFormSheetBarCommand=DeleteWorksheetProtectionFormSheetBarCommand;exports.EMBEDDING_FORMULA_EDITOR=EMBEDDING_FORMULA_EDITOR;exports.EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY=EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY;exports.ExpandSelectionCommand=ExpandSelectionCommand;exports.FONT_FAMILY_COMPONENT=FONT_FAMILY_COMPONENT;exports.FONT_FAMILY_ITEM_COMPONENT=FONT_FAMILY_ITEM_COMPONENT;exports.FONT_SIZE_COMPONENT=FONT_SIZE_COMPONENT;exports.FormatPainterStatus=FormatPainterStatus;exports.HideColConfirmCommand=HideColConfirmCommand;exports.HideRowConfirmCommand=HideRowConfirmCommand;exports.IAutoFillService=IAutoFillService;exports.ICellEditorManagerService=ICellEditorManagerService;exports.IEditorBridgeService=IEditorBridgeService;exports.IFormatPainterService=IFormatPainterService;exports.IFormulaEditorManagerService=IFormulaEditorManagerService;exports.IMarkSelectionService=IMarkSelectionService;exports.ISheetClipboardService=ISheetClipboardService;exports.ISheetSelectionRenderService=ISheetSelectionRenderService;exports.InsertRangeMoveDownConfirmCommand=InsertRangeMoveDownConfirmCommand;exports.InsertRangeMoveRightConfirmCommand=InsertRangeMoveRightConfirmCommand;exports.JumpOver=JumpOver;exports.MobileSheetBar=MobileSheetBar;exports.MoveSelectionCommand=MoveSelectionCommand;exports.MoveSelectionEnterAndTabCommand=MoveSelectionEnterAndTabCommand;exports.PASTE_SPECIAL_MENU_ID=PASTE_SPECIAL_MENU_ID;exports.PREDEFINED_HOOK_NAME=PREDEFINED_HOOK_NAME;exports.RANGE_SELECTOR_COMPONENT_KEY=RANGE_SELECTOR_COMPONENT_KEY;exports.RANGE_SELECTOR_SYMBOLS=RANGE_SELECTOR_SYMBOLS;exports.RefillCommand=RefillCommand;exports.RemoveColConfirmCommand=RemoveColConfirmCommand;exports.RemoveRowConfirmCommand=RemoveRowConfirmCommand;exports.RemoveSheetConfirmCommand=RemoveSheetConfirmCommand;exports.RenameSheetOperation=RenameSheetOperation;exports.RenderSheetContent=RenderSheetContent;exports.RenderSheetFooter=RenderSheetFooter;exports.RenderSheetHeader=RenderSheetHeader;exports.ResetRangeTextColorCommand=ResetRangeTextColorCommand;exports.ResetScrollCommand=ResetScrollCommand;exports.SELECTION_SHAPE_DEPTH=SELECTION_SHAPE_DEPTH;exports.SHEET_UI_PLUGIN_NAME=SHEET_UI_PLUGIN_NAME;exports.SHEET_VIEW_KEY=SHEET_VIEW_KEY;exports.ScrollCommand=ScrollCommand;exports.ScrollToCellCommand=ScrollToCellCommand;exports.ScrollToRangeOperation=ScrollToRangeOperation;exports.SelectAllCommand=SelectAllCommand;exports.SelectionControl=SelectionControl;exports.SelectionShape=SelectionControl;exports.SelectionShapeExtension=SelectionShapeExtension;exports.SetActivateCellEditOperation=SetActivateCellEditOperation;exports.SetCellEditVisibleArrowOperation=SetCellEditVisibleArrowOperation;exports.SetCellEditVisibleOperation=SetCellEditVisibleOperation;exports.SetCellEditVisibleWithF2Operation=SetCellEditVisibleWithF2Operation;exports.SetColumnFrozenCommand=SetColumnFrozenCommand;exports.SetFormatPainterOperation=SetFormatPainterOperation;exports.SetInfiniteFormatPainterCommand=SetInfiniteFormatPainterCommand;exports.SetOnceFormatPainterCommand=SetOnceFormatPainterCommand;exports.SetRangeBoldCommand=SetRangeBoldCommand;exports.SetRangeFontFamilyCommand=SetRangeFontFamilyCommand;exports.SetRangeFontSizeCommand=SetRangeFontSizeCommand;exports.SetRangeItalicCommand=SetRangeItalicCommand;exports.SetRangeProtectionFromContextMenuCommand=SetRangeProtectionFromContextMenuCommand;exports.SetRangeStrickThroughCommand=SetRangeStrickThroughCommand;exports.SetRangeSubscriptCommand=SetRangeSubscriptCommand;exports.SetRangeSuperscriptCommand=SetRangeSuperscriptCommand;exports.SetRangeTextColorCommand=SetRangeTextColorCommand;exports.SetRangeUnderlineCommand=SetRangeUnderlineCommand;exports.SetRowFrozenCommand=SetRowFrozenCommand;exports.SetScrollOperation=SetScrollOperation;exports.SetScrollRelativeCommand=SetScrollRelativeCommand;exports.SetSelectionFrozenCommand=SetSelectionFrozenCommand;exports.SetWorksheetColAutoWidthCommand=SetWorksheetColAutoWidthCommand;exports.SetZoomRatioCommand=SetZoomRatioCommand;exports.SetZoomRatioOperation=SetZoomRatioOperation;exports.SheetBar=SheetBar;exports.SheetCopyCommand=SheetCopyCommand;exports.SheetCutCommand=SheetCutCommand;exports.SheetMenuPosition=SheetMenuPosition;exports.SheetPasteBesidesBorderCommand=SheetPasteBesidesBorderCommand;exports.SheetPasteColWidthCommand=SheetPasteColWidthCommand;exports.SheetPasteCommand=SheetPasteCommand;exports.SheetPasteFormatCommand=SheetPasteFormatCommand;exports.SheetPasteShortKeyCommand=SheetPasteShortKeyCommand;exports.SheetPasteValueCommand=SheetPasteValueCommand;exports.SheetPermissionOpenDialogOperation=SheetPermissionOpenDialogOperation;exports.SheetPermissionOpenPanelOperation=SheetPermissionOpenPanelOperation;exports.SheetPermissionUserManagerService=SheetPermissionUserManagerService;exports.SheetPrintInterceptorService=SheetPrintInterceptorService;exports.SheetsUIMenuSchema=menuSchema$1;exports.SheetsUIPart=SheetsUIPart;exports.ShowMenuListCommand=ShowMenuListCommand;exports.SidebarDefinedNameOperation=SidebarDefinedNameOperation;exports.UNIVER_SHEET_PERMISSION_BACKGROUND=UNIVER_SHEET_PERMISSION_BACKGROUND;exports.UNIVER_SHEET_PERMISSION_USER_PART=UNIVER_SHEET_PERMISSION_USER_PART;exports.ViewSheetPermissionFromContextMenuCommand=ViewSheetPermissionFromContextMenuCommand;exports.ViewSheetPermissionFromSheetBarCommand=ViewSheetPermissionFromSheetBarCommand;exports.attachPrimaryWithCoord=attachPrimaryWithCoord;exports.attachRangeWithCoord=attachRangeWithCoord;exports.attachSelectionWithCoord=attachSelectionWithCoord;exports.calculateDocSkeletonRects=calculateDocSkeletonRects;exports.checkInHeaderRanges=matchedSelectionByRowColIndex;exports.convertPositionCellToSheetOverGrid=convertPositionCellToSheetOverGrid;exports.convertPositionSheetOverGridToAbsolute=convertPositionSheetOverGridToAbsolute;exports.deriveStateFromActiveSheet$=deriveStateFromActiveSheet$;exports.discreteRangeToRange=discreteRangeToRange;exports.genNormalSelectionStyle=genNormalSelectionStyle;exports.genSelectionByRange=genSelectionByRange;exports.getAllSelection=selectionDataForSelectAll;exports.getAutoFillRepeatRange=getAutoFillRepeatRange;exports.getCellRealRange=getCellRealRange;exports.getCoordByCell=getCoordByCell;exports.getCoordByOffset=getCoordByOffset;exports.getCurrentExclusiveRangeInterest$=getCurrentExclusiveRangeInterest$;exports.getCurrentRangeDisable$=getCurrentRangeDisable$;exports.getCustomRangePosition=getCustomRangePosition;exports.getEditingCustomRangePosition=getEditingCustomRangePosition;exports.getEditorObject=getEditorObject;exports.getMatrixPlainText=getMatrixPlainText;exports.getObservableWithExclusiveRange$=getObservableWithExclusiveRange$;exports.getRepeatRange=getRepeatRange;exports.getSheetObject=getSheetObject;exports.getTopLeftSelectionOfCurrSheet=getTopLeftSelectionOfCurrSheet;exports.getTransformCoord=getTransformCoord;exports.isEmbeddingFormulaEditor=isEmbeddingFormulaEditor;exports.isRangeSelector=isRangeSelector;exports.mergeSetRangeValues=mergeSetRangeValues;exports.rangeToDiscreteRange=rangeToDiscreteRange;exports.useActiveWorkbook=useActiveWorkbook;exports.useActiveWorksheet=useActiveWorksheet;exports.useHighlightRange=useHighlightRange;exports.useWorkbooks=useWorkbooks;exports.virtualizeDiscreteRanges=virtualizeDiscreteRanges;exports.whenFormulaEditorActivated=whenFormulaEditorActivated;exports.whenSheetEditorFocused=whenSheetEditorFocused;
|