@univerjs/sheets-filter-ui 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1,75 +1,7 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/sheets-filter`),n=require(`@univerjs/sheets-ui`),r=require(`@univerjs/ui`),i=require(`@univerjs/engine-render`),a=require(`@univerjs/sheets`),o=require(`rxjs`),s=require(`@univerjs/rpc`),c=require(`@univerjs/design`),l=require(`@univerjs/icons`),u=require(`react`),d=require(`react/jsx-runtime`),f=function(e){return e[e.FIRST=0]=`FIRST`,e[e.SECOND=1]=`SECOND`,e}({}),p=function(e){return e.NONE=`none`,e.STARTS_WITH=`startsWith`,e.DOES_NOT_START_WITH=`doesNotStartWith`,e.ENDS_WITH=`endsWith`,e.DOES_NOT_END_WITH=`doesNotEndWith`,e.CONTAINS=`contains`,e.DOES_NOT_CONTAIN=`doesNotContain`,e.EQUALS=`equals`,e.NOT_EQUALS=`notEquals`,e.EMPTY=`empty`,e.NOT_EMPTY=`notEmpty`,e.BETWEEN=`between`,e.NOT_BETWEEN=`notBetween`,e.CUSTOM=`custom`,e}({}),m;(function(n){let r=n.NONE={label:`sheets-filter.conditions.none`,operator:p.NONE,order:f.SECOND,numOfParameters:0,getDefaultFormParams:()=>{throw Error(`[FilterConditionItems.NONE]: should not have initial form params!`)},testMappingParams:e=>e.operator1===p.NONE,mapToFilterColumn:()=>null,testMappingFilterColumn:e=>!e.customFilters&&!e.filters?{}:!1},i=n.ALL_CONDITIONS=[r,n.EMPTY={label:`sheets-filter.conditions.empty`,operator:p.EMPTY,order:f.SECOND,numOfParameters:0,getDefaultFormParams:()=>{throw Error(`[FilterConditionItems.EMPTY]: should not have initial form params!`)},testMappingParams:({operator1:e})=>e===p.EMPTY,mapToFilterColumn:()=>({customFilters:{customFilters:[{val:``}]}}),testMappingFilterColumn:e=>{var t;if(((t=e.customFilters)==null?void 0:t.customFilters.length)!==1)return!1;let n=e.customFilters.customFilters[0];return n.val===``&&n.operator===void 0?{operator1:p.EMPTY}:!1}},n.NOT_EMPTY={label:`sheets-filter.conditions.not-empty`,operator:p.NOT_EMPTY,order:f.SECOND,numOfParameters:0,getDefaultFormParams:()=>{throw Error(`[FilterConditionItems.NOT_EMPTY]: should not have initial form params!`)},testMappingParams:({operator1:e})=>e===p.NOT_EMPTY,mapToFilterColumn:()=>({customFilters:{customFilters:[{val:``,operator:t.CustomFilterOperator.NOT_EQUALS}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.val===` `&&r.operator===t.CustomFilterOperator.NOT_EQUALS?{operator1:p.NOT_EMPTY}:!1}},n.TEXT_CONTAINS={label:`sheets-filter.conditions.text-contains`,operator:p.CONTAINS,order:f.FIRST,numOfParameters:1,getDefaultFormParams:()=>({operator1:p.CONTAINS,val1:``}),testMappingParams:e=>{let[t]=h(e);return t===p.CONTAINS},mapToFilterColumn:e=>{let{val1:t}=e;return t===``?null:{customFilters:{customFilters:[{val:`*${t}*`}]}}},testMappingFilterColumn:e=>{var t;if(((t=e.customFilters)==null?void 0:t.customFilters.length)!==1)return!1;let n=e.customFilters.customFilters[0],r=n.val.toString();return!n.operator&&r.startsWith(`*`)&&r.endsWith(`*`)?{operator1:p.CONTAINS,val1:r.slice(1,-1)}:!1}},n.DOES_NOT_CONTAIN={label:`sheets-filter.conditions.does-not-contain`,operator:p.DOES_NOT_CONTAIN,order:f.FIRST,numOfParameters:1,getDefaultFormParams:()=>({operator1:p.DOES_NOT_CONTAIN,val1:``}),mapToFilterColumn:e=>({customFilters:{customFilters:[{val:`*${e.val1}*`,operator:t.CustomFilterOperator.NOT_EQUALS}]}}),testMappingParams:e=>{let[t]=h(e);return t===p.DOES_NOT_CONTAIN},testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0],i=r.val.toString();return r.operator===t.CustomFilterOperator.NOT_EQUALS&&i.startsWith(`*`)&&i.endsWith(`*`)?{operator1:p.DOES_NOT_CONTAIN,val1:i.slice(1,-1)}:!1}},n.STARTS_WITH={label:`sheets-filter.conditions.starts-with`,operator:p.STARTS_WITH,order:f.FIRST,numOfParameters:1,getDefaultFormParams:()=>({operator1:p.STARTS_WITH,val1:``}),mapToFilterColumn:e=>({customFilters:{customFilters:[{val:`${e.val1}*`}]}}),testMappingParams:e=>{let[t]=h(e);return t===p.STARTS_WITH},testMappingFilterColumn:e=>{var t;if(((t=e.customFilters)==null?void 0:t.customFilters.length)!==1)return!1;let n=e.customFilters.customFilters[0],r=n.val.toString();return!n.operator&&r.endsWith(`*`)&&!r.startsWith(`*`)?{operator1:p.STARTS_WITH,val1:r.slice(0,-1)}:!1}},n.ENDS_WITH={label:`sheets-filter.conditions.ends-with`,operator:p.ENDS_WITH,order:f.FIRST,numOfParameters:1,getDefaultFormParams:()=>({operator1:p.ENDS_WITH,val1:``}),mapToFilterColumn:e=>({customFilters:{customFilters:[{val:`*${e.val1}`}]}}),testMappingParams:e=>{let[t]=h(e);return t===p.ENDS_WITH},testMappingFilterColumn:e=>{var t;if(((t=e.customFilters)==null?void 0:t.customFilters.length)!==1)return!1;let n=e.customFilters.customFilters[0],r=n.val.toString();return!n.operator&&r.startsWith(`*`)&&!r.endsWith(`*`)?{operator1:p.ENDS_WITH,val1:r.slice(1)}:!1}},n.EQUALS={label:`sheets-filter.conditions.equals`,operator:p.EQUALS,order:f.FIRST,numOfParameters:1,getDefaultFormParams:()=>({operator1:p.EQUALS,val1:``}),testMappingParams:e=>{let[t]=h(e);return t===p.EQUALS},mapToFilterColumn:e=>{let{val1:t}=e;return t===``?null:{customFilters:{customFilters:[{val:t}]}}},testMappingFilterColumn:e=>{var t,n;return((t=e.filters)==null||(t=t.filters)==null?void 0:t.length)===1?{operator1:p.EQUALS,val1:``}:((n=e.customFilters)==null?void 0:n.customFilters.length)===1&&!e.customFilters.customFilters[0].operator?{operator1:p.EQUALS,val1:e.customFilters.customFilters[0].val.toString()}:!1}},n.GREATER_THAN={label:`sheets-filter.conditions.greater-than`,operator:t.CustomFilterOperator.GREATER_THAN,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.GREATER_THAN,val1:``}),mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.GREATER_THAN}]}}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.GREATER_THAN},testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.GREATER_THAN?{operator1:t.CustomFilterOperator.GREATER_THAN,val1:r.val.toString()}:!1}},n.GREATER_THAN_OR_EQUAL={label:`sheets-filter.conditions.greater-than-or-equal`,operator:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,val1:``}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.GREATER_THAN_OR_EQUAL},mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.GREATER_THAN_OR_EQUAL?{operator1:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,val1:r.val.toString()}:!1}},n.LESS_THAN={label:`sheets-filter.conditions.less-than`,operator:t.CustomFilterOperator.LESS_THAN,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.LESS_THAN,val1:``}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.LESS_THAN},mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.LESS_THAN}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.LESS_THAN?{operator1:t.CustomFilterOperator.LESS_THAN,val1:r.val.toString()}:!1}},n.LESS_THAN_OR_EQUAL={label:`sheets-filter.conditions.less-than-or-equal`,operator:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,val1:``}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.LESS_THAN_OR_EQUAL},mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.LESS_THAN_OR_EQUAL}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.LESS_THAN_OR_EQUAL?{operator1:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,val1:r.val.toString()}:!1}},n.EQUAL={label:`sheets-filter.conditions.equal`,operator:t.CustomFilterOperator.EQUAL,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.EQUAL,val1:``}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.EQUAL},mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.EQUAL}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.EQUAL?{operator1:t.CustomFilterOperator.EQUAL,val1:r.val.toString()}:!1}},n.NOT_EQUAL={label:`sheets-filter.conditions.not-equal`,operator:t.CustomFilterOperator.NOT_EQUALS,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.NOT_EQUALS,val1:``}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.NOT_EQUALS},mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.NOT_EQUALS}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.NOT_EQUALS?{operator1:t.CustomFilterOperator.NOT_EQUALS,val1:r.val.toString()}:!1}},n.BETWEEN={label:`sheets-filter.conditions.between`,operator:p.BETWEEN,order:f.SECOND,numOfParameters:2,getDefaultFormParams:()=>({and:!0,operator1:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,val1:``,operator2:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,val2:``}),testMappingParams:e=>{let{and:n,operator1:r,operator2:i}=e;if(!n)return!1;let a=[r,i];return a.includes(t.CustomFilterOperator.GREATER_THAN_OR_EQUAL)&&a.includes(t.CustomFilterOperator.LESS_THAN_OR_EQUAL)},mapToFilterColumn:n=>{let{val1:r,val2:i,operator1:a}=n,o=a===t.CustomFilterOperator.GREATER_THAN_OR_EQUAL;return{customFilters:{and:e.BooleanNumber.TRUE,customFilters:[{val:o?r:i,operator:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL},{val:o?i:r,operator:t.CustomFilterOperator.LESS_THAN_OR_EQUAL}]}}},testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==2)return!1;let[r,i]=e.customFilters.customFilters;return r.operator===t.CustomFilterOperator.GREATER_THAN_OR_EQUAL&&i.operator===t.CustomFilterOperator.LESS_THAN_OR_EQUAL&&e.customFilters.and?{and:!0,operator1:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,val1:r.val.toString(),operator2:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,val2:i.val.toString()}:i.operator===t.CustomFilterOperator.GREATER_THAN_OR_EQUAL&&r.operator===t.CustomFilterOperator.LESS_THAN_OR_EQUAL&&e.customFilters.and?{and:!0,operator1:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,val1:i.val.toString(),operator2:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,val2:r.val.toLocaleString()}:!1}},n.NOT_BETWEEN={label:`sheets-filter.conditions.not-between`,operator:p.NOT_BETWEEN,order:f.SECOND,numOfParameters:2,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.LESS_THAN,val1:``,operator2:t.CustomFilterOperator.GREATER_THAN,val2:``}),testMappingParams:e=>{let{and:n,operator1:r,operator2:i}=e;if(n)return!1;let a=[r,i];return a.includes(t.CustomFilterOperator.GREATER_THAN)&&a.includes(t.CustomFilterOperator.LESS_THAN)},mapToFilterColumn:e=>{let{val1:n,val2:r,operator1:i}=e,a=i===t.CustomFilterOperator.GREATER_THAN;return{customFilters:{customFilters:[{val:a?n:r,operator:t.CustomFilterOperator.GREATER_THAN},{val:a?r:n,operator:t.CustomFilterOperator.LESS_THAN}]}}},testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==2)return!1;let[r,i]=e.customFilters.customFilters;return r.operator===t.CustomFilterOperator.LESS_THAN&&i.operator===t.CustomFilterOperator.GREATER_THAN&&!e.customFilters.and?{operator1:t.CustomFilterOperator.LESS_THAN,val1:r.val.toString(),operator2:t.CustomFilterOperator.GREATER_THAN,val2:i.val.toString()}:i.operator===t.CustomFilterOperator.LESS_THAN&&r.operator===t.CustomFilterOperator.GREATER_THAN&&!e.customFilters.and?{operator1:t.CustomFilterOperator.GREATER_THAN,val1:i.val.toString(),operator2:t.CustomFilterOperator.LESS_THAN,val2:r.val.toLocaleString()}:!1}},n.CUSTOM={label:`sheets-filter.conditions.custom`,operator:p.CUSTOM,order:f.SECOND,numOfParameters:2,getDefaultFormParams:()=>({operator1:p.NONE,val1:``,operator2:p.NONE,val2:``}),testMappingParams:()=>!0,mapToFilterColumn:t=>{let{and:n,val1:a,val2:o,operator1:s,operator2:c}=t;function l(e,t){for(let n of i)if(n.operator===e)return n.mapToFilterColumn({val1:t,operator1:e})}let u=!s||s===m.NONE.operator,d=!c||c===m.NONE.operator;if(u&&d)return r.mapToFilterColumn({});if(u)return l(c,o);if(d)return l(s,a);let f=l(s,a),p=l(c,o),h={customFilters:[f.customFilters.customFilters[0],p.customFilters.customFilters[0]]};return n&&(h.and=e.BooleanNumber.TRUE),{customFilters:h}},testMappingFilterColumn:e=>{var t;if(((t=e.customFilters)==null?void 0:t.customFilters.length)!==2)return!1;let n=e.customFilters.customFilters.map(e=>l({customFilters:{customFilters:[e]}})),r={operator1:n[0][0].operator,val1:n[0][1].val1,operator2:n[1][0].operator,val2:n[1][1].val1};return e.customFilters.and&&(r.and=!0),r}}];function a(e){let t=i.find(t=>t.operator===e);if(!t)throw Error(`[SheetsFilter]: no condition item found for operator: ${e}`);return t}n.getItemByOperator=a;function o(e,t){for(let n of i.filter(e=>e.numOfParameters===t))if(n.numOfParameters!==0&&n.testMappingParams(e))return n;for(let t of i)if(t.testMappingParams(e))return t;throw Error(`[SheetsFilter]: no condition item can be mapped from the filter map params!`)}n.testMappingParams=o;function s(e){let t=i.find(t=>t.operator===e);return(t==null?void 0:t.numOfParameters)===0?{operator1:t.operator}:t.getDefaultFormParams()}n.getInitialFormParams=s;function c(e,t){return e.mapToFilterColumn(t)}n.mapToFilterColumn=c;function l(e){if(!e)return[r,{}];for(let t of i){let n=t.testMappingFilterColumn(e);if(n)return[t,n]}return[r,{}]}n.testMappingFilterColumn=l})(m||(m={}));function h(e){let{operator1:t,operator2:n,val1:r,val2:i}=e;if(t&&n)throw Error(`Both operator1 and operator2 are set!`);if(!t&&!n)throw Error(`Neither operator1 and operator2 and both not set!`);return t?[t,r]:[n,i]}function g(e){let t=[],n=[],r=0,i=0;function a(e){e.leaf&&(e.checked?(t.push(e),r+=e.count):(n.push(e),i+=e.count)),e.children&&e.children.forEach(a)}return e.forEach(a),{checkedItems:t,uncheckedItems:n,checked:r,unchecked:i}}function _(e,t){return function(n,r){t(n,r,e)}}function v(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}const y=`sheets-filter.generate-filter-values.service`,b=(0,e.createIdentifier)(y);let x=class extends e.Disposable{constructor(e,t,n){super(),this._localeService=e,this._univerInstanceService=t,this._logService=n}async getFilterValues(e){var t;let{unitId:n,subUnitId:r,filteredOutRowsByOtherColumns:i,filterColumn:a,filters:o,blankChecked:s,iterateRange:c,alreadyChecked:l}=e,u=this._univerInstanceService.getUnit(n),d=(t=this._univerInstanceService.getUnit(n))==null?void 0:t.getSheetBySheetId(r);return!u||!d?[]:(this._logService.debug(`[SheetsGenerateFilterValuesService]`,`getFilterValues for`,{unitId:n,subUnitId:r}),S(o,this._localeService,c,d,new Set(i),a,new Set(l.map(String)),s,u.getStyles()))}};x=v([_(0,(0,e.Inject)(e.LocaleService)),_(1,e.IUniverInstanceService),_(2,e.ILogService)],x);function S(n,r,i,a,o,s,c,l,u){var d;let f=new Map,p=new Map,m=`empty`,h=!n&&((s==null?void 0:s.filterBy)===t.FilterBy.COLORS||(s==null?void 0:s.filterBy)===t.FilterBy.CONDITIONS)&&((d=s.filteredOutRows)==null?void 0:d.size),g=0;for(let t of a.iterateByColumn(i,!1,!1)){let{row:n,rowSpan:i=1}=t,s=0;for(;s<i;){var _,v,y;let d=n+s;if(o.has(d)){s++;continue}let m=t!=null&&t.value?(0,e.extractPureTextFromCell)(t.value):``;if(!m){g+=1,s+=i;continue}let C=(_=t.value)!=null&&_.v&&!t.value.p?(v=u.get((y=t.value)==null?void 0:y.s))==null||(v=v.n)==null?void 0:v.pattern:``,E=C&&e.numfmt.getFormatInfo(C).isDate,D=!1;if(E){let{year:t,month:n,day:r}=e.numfmt.getFormatDateInfo(C);D=t||n||r}if(C&&E&&D){var b,x,S;let n=(b=a.getCellRaw(t.row,t.col))==null?void 0:b.v;if(!n){s++;continue}let[i,o,u]=e.numfmt.format(`yyyy-mm-dd`,Number(n)).split(`-`).map(Number),d=f.get(`${i}`);d||(d={title:`${i}`,key:`${i}`,children:[],count:0,leaf:!1,checked:!1},f.set(`${i}`,d),p.set(`${i}`,[`${i}`]));let g=(x=d.children)==null?void 0:x.find(e=>e.key===`${i}-${o}`);if(!g){var w;g={title:r.t(`sheets-filter.date.${o}`),key:`${i}-${o}`,children:[],count:0,leaf:!1,checked:!1},(w=d.children)==null||w.push(g),p.set(`${i}-${o}`,[`${i}`,`${i}-${o}`])}let _=g==null||(S=g.children)==null?void 0:S.find(e=>e.key===`${i}-${o}-${u}`);if(_)_.originValues.add(m),_.count++,g.count++,d.count++;else{var T;(T=g.children)==null||T.push({title:`${u}`,key:`${i}-${o}-${u}`,count:1,originValues:new Set([m]),leaf:!0,checked:h?!1:c.size?c.has(m):!l}),g.count++,d.count++,p.set(`${i}-${o}-${u}`,[`${i}`,`${i}-${o}`,`${i}-${o}-${u}`])}}else{let e=m,t=f.get(e);t?t.count++:(t={title:m,leaf:!0,checked:h?!1:c.size?c.has(m):!l,key:e,count:1},f.set(e,t),p.set(e,[e]))}s++}}let E=h?!1:n?l:!0;if(g>0){let e={title:r.t(`sheets-filter.panel.empty`),count:g,leaf:!0,checked:E,key:m};f.set(`empty`,e),p.set(`empty`,[m])}return{filterTreeItems:C(Array.from(f.values())),filterTreeMapCache:p}}function C(e){return Array.from(e).sort((e,t)=>e.children&&!t.children?-1:!e.children&&t.children?1:T(e.title,t.title)).map(e=>(e.children&&e.children.sort((e,t)=>Number.parseInt(e.key.split(`-`)[1],10)-Number.parseInt(t.key.split(`-`)[1],10)).forEach(e=>{e.children&&e.children.sort((e,t)=>Number.parseInt(e.key.split(`-`)[2],10)-Number.parseInt(t.key.split(`-`)[2],10))}),e))}const w=e=>!Number.isNaN(Number(e))&&!Number.isNaN(Number.parseFloat(e));function T(e,t){let n=w(e),r=w(t);return n&&r?Number.parseFloat(e)-Number.parseFloat(t):n&&!r?-1:!n&&r?1:e.localeCompare(t)}function E(e,t){for(let n of e){if(n.key===t)return n;if(n.children){let e=E(n.children,t);if(e)return e}}return null}function D(e){return e.leaf?e.checked:e.children?e.children.every(e=>D(e)):!0}function O(e,t){e.leaf&&(t===void 0?e.checked=!e.checked:e.checked=t),e.children&&e.children.forEach(e=>O(e,t))}function ee(e,t){let n=[];return e.forEach(e=>{let r=e.originValues?t.some(t=>Array.from(e.originValues).some(e=>e.toLowerCase().includes(t.toLowerCase()))):!1,i=!r&&t.some(t=>e.title.toLowerCase().includes(t.toLowerCase()));if(r||i)n.push({...e});else if(e.children){let r=ee(e.children,t);if(r.length>0){let t=r.reduce((e,t)=>e+t.count,0);n.push({...e,count:t,children:r})}}}),n}function k(e){"@babel/helpers - typeof";return k=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},k(e)}function te(e,t){if(k(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(k(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ne(e){var t=te(e,`string`);return k(t)==`symbol`?t:t+``}function A(e,t,n){return(t=ne(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var j,M,N;(0,e.createIdentifier)(`sheets-filter-ui.sheets-filter-panel.service`);let P=class extends e.Disposable{get filterBy(){return this._filterBy$.getValue()}get filterByModel(){return this._filterByModel}set filterByModel(e){this._filterByModel=e,this._filterByModel$.next(e)}get filterModel(){return this._filterModel}get col(){return this._col$.getValue()}constructor(e,n){super(),this._injector=e,this._refRangeService=n,A(this,`_filterBy$`,new o.BehaviorSubject(t.FilterBy.VALUES)),A(this,`filterBy$`,this._filterBy$.asObservable()),A(this,`_filterByModel$`,new o.ReplaySubject(1)),A(this,`filterByModel$`,this._filterByModel$.asObservable()),A(this,`_filterByModel`,null),A(this,`_hasCriteria$`,new o.BehaviorSubject(!1)),A(this,`hasCriteria$`,this._hasCriteria$.asObservable()),A(this,`_filterModel`,null),A(this,`_col$`,new o.BehaviorSubject(-1)),A(this,`col$`,this._col$.asObservable()),A(this,`_filterHeaderListener`,null)}dispose(){this._filterBy$.complete(),this._filterByModel$.complete(),this._hasCriteria$.complete()}setupCol(e,t){this.terminate(),this._filterModel=e,this._col$.next(t);let n=e.getFilterColumn(t);if(n){let r=n.getColumnData();if(r.customFilters){this._hasCriteria$.next(!0),this._setupByConditions(e,t);return}if(r.colorFilters){this._hasCriteria$.next(!0),this._setupByColors(e,t);return}if(r.filters){this._hasCriteria$.next(!0),this._setupByValues(e,t);return}this._hasCriteria$.next(!1),this._setupByValues(e,t);return}this._hasCriteria$.next(!1),this._setupByValues(e,t)}changeFilterBy(e){if(!this._filterModel||this.col===-1)return!1;switch(e){case t.FilterBy.VALUES:this._setupByValues(this._filterModel,this.col);break;case t.FilterBy.COLORS:this._setupByColors(this._filterModel,this.col);break;case t.FilterBy.CONDITIONS:this._setupByConditions(this._filterModel,this.col);break}return!0}terminate(){return this._filterModel=null,this._col$.next(-1),this._disposeFilterHeaderChangeListener(),!0}_disposeFilterHeaderChangeListener(){var e;(e=this._filterHeaderListener)==null||e.dispose(),this._filterHeaderListener=null}_listenToFilterHeaderChange(e,t){this._disposeFilterHeaderChangeListener();let n=e.unitId,r=e.subUnitId,i=e.getRange(),a={startColumn:t,startRow:i.startRow,endRow:i.startRow,endColumn:t};this._filterHeaderListener=this._refRangeService.watchRange(n,r,a,(e,t)=>{if(!t)this.terminate();else{let n=t.startColumn-e.startColumn;n!==0&&this._filterByModel.deltaCol(n)}})}async _setupByValues(e,n){this._disposePreviousModel();let r=e.getRange();return r.startRow===r.endRow?!1:(this.filterByModel=await I.fromFilterColumn(this._injector,e,n),this._filterBy$.next(t.FilterBy.VALUES),this._listenToFilterHeaderChange(e,n),!0)}async _setupByColors(e,n){this._disposePreviousModel();let r=e.getRange();return r.startRow===r.endRow?!1:(this.filterByModel=await L.fromFilterColumn(this._injector,e,n),this._filterBy$.next(t.FilterBy.COLORS),this._listenToFilterHeaderChange(e,n),!0)}_setupByConditions(e,n){this._disposePreviousModel();let r=e.getRange();return r.startRow===r.endRow?!1:(this.filterByModel=F.fromFilterColumn(this._injector,e,n,e.getFilterColumn(n)),this._filterBy$.next(t.FilterBy.CONDITIONS),this._listenToFilterHeaderChange(e,n),!0)}_disposePreviousModel(){var e;(e=this._filterByModel)==null||e.dispose(),this.filterByModel=null}};P=v([_(0,(0,e.Inject)(e.Injector)),_(1,(0,e.Inject)(a.RefRangeService))],P);let F=j=class extends e.Disposable{static fromFilterColumn(e,t,n,r){let[i,a]=m.testMappingFilterColumn(r==null?void 0:r.getColumnData());return e.createInstance(j,t,n,i,a)}get conditionItem(){return this._conditionItem$.getValue()}get filterConditionFormParams(){return this._filterConditionFormParams$.getValue()}constructor(e,t,n,r,i){super(),this._filterModel=e,this.col=t,this._commandService=i,A(this,`canApply$`,(0,o.of)(!0)),A(this,`_conditionItem$`,void 0),A(this,`conditionItem$`,void 0),A(this,`_filterConditionFormParams$`,void 0),A(this,`filterConditionFormParams$`,void 0),this._conditionItem$=new o.BehaviorSubject(n),this.conditionItem$=this._conditionItem$.asObservable(),this._filterConditionFormParams$=new o.BehaviorSubject(r),this.filterConditionFormParams$=this._filterConditionFormParams$.asObservable()}dispose(){super.dispose(),this._conditionItem$.complete(),this._filterConditionFormParams$.complete()}deltaCol(e){this.col+=e}clear(){return this._disposed?Promise.resolve(!1):this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:null})}async apply(){if(this._disposed)return!1;let e=m.mapToFilterColumn(this.conditionItem,this.filterConditionFormParams);return this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:e})}onPrimaryConditionChange(e){let t=m.ALL_CONDITIONS.find(t=>t.operator===e);if(!t)throw Error(`[ByConditionsModel]: condition item not found for operator: ${e}!`);this._conditionItem$.next(t),this._filterConditionFormParams$.next(m.getInitialFormParams(e))}onConditionFormChange(e){let t={...this.filterConditionFormParams,...e};if(t.and!==!0&&delete t.and,e.and!==void 0||e.operator1!==void 0||e.operator2!==void 0){let e=m.testMappingParams(t,this.conditionItem.numOfParameters);this._conditionItem$.next(e)}this._filterConditionFormParams$.next(t)}};F=j=v([_(4,e.ICommandService)],F);let I=M=class extends e.Disposable{static async fromFilterColumn(t,n,r){let i=t.get(e.IUniverInstanceService),a=t.get(e.LocaleService),o=t.get(b,e.Quantity.OPTIONAL),{unitId:s,subUnitId:c}=n,l=i.getUniverSheetInstance(s);if(!l)throw Error(`[ByValuesModel]: Workbook not found for filter model with unitId: ${s}!`);let u=l==null?void 0:l.getSheetBySheetId(c);if(!u)throw Error(`[ByValuesModel]: Worksheet not found for filter model with unitId: ${s} and subUnitId: ${c}!`);let d=n.getRange(),f=r,p=n.getFilterColumn(r),m=p==null?void 0:p.getColumnData().filters,h=new Set(m==null?void 0:m.filters),g=!!(m&&m.blank),_=n.getFilteredOutRowsExceptCol(r),v={...d,startRow:d.startRow+1,startColumn:f,endColumn:f},y,x;if(o){let e=await o.getFilterValues({unitId:s,subUnitId:c,filteredOutRowsByOtherColumns:Array.from(_),filterColumn:p,filters:!!m,blankChecked:g,iterateRange:v,alreadyChecked:Array.from(h)});y=e.filterTreeItems,x=e.filterTreeMapCache}else{let e=S(!!m,a,v,u,_,p,h,g,l.getStyles());y=e.filterTreeItems,x=e.filterTreeMapCache}return t.createInstance(M,n,r,y,x)}get rawFilterItems(){return this._rawFilterItems$.getValue()}get filterItems(){return this._filterItems}get treeMapCache(){return this._treeMapCache}constructor(e,t,n,r,i){super(),this._filterModel=e,this.col=t,this._commandService=i,A(this,`_rawFilterItems$`,void 0),A(this,`rawFilterItems$`,void 0),A(this,`filterItems$`,void 0),A(this,`_filterItems`,[]),A(this,`_treeMapCache`,void 0),A(this,`canApply$`,void 0),A(this,`_manuallyUpdateFilterItems$`,void 0),A(this,`_searchString$`,void 0),A(this,`searchString$`,void 0),this._treeMapCache=r,this._searchString$=new o.BehaviorSubject(``),this.searchString$=this._searchString$.asObservable(),this._rawFilterItems$=new o.BehaviorSubject(n),this.rawFilterItems$=this._rawFilterItems$.asObservable(),this._manuallyUpdateFilterItems$=new o.Subject,this.filterItems$=(0,o.merge)((0,o.combineLatest)([this._searchString$.pipe((0,o.throttleTime)(500,void 0,{leading:!0,trailing:!0}),(0,o.startWith)(void 0)),this._rawFilterItems$]).pipe((0,o.map)(([e,t])=>e?ee(t,e.toLowerCase().split(/\s+/).filter(e=>!!e)):t)),this._manuallyUpdateFilterItems$).pipe((0,o.shareReplay)(1)),this.canApply$=this.filterItems$.pipe((0,o.map)(e=>g(e).checked>0)),this.disposeWithMe(this.filterItems$.subscribe(e=>this._filterItems=e))}dispose(){this._rawFilterItems$.complete(),this._searchString$.complete()}deltaCol(e){this.col+=e}setSearchString(e){this._searchString$.next(e)}onCheckAllToggled(t){let n=e.Tools.deepClone(this._filterItems);n.forEach(e=>O(e,t)),this._manuallyUpdateFilterItems(n)}onFilterCheckToggled(t){let n=e.Tools.deepClone(this._filterItems),r=E(n,t.key);r&&(O(r,!D(r)),this._manuallyUpdateFilterItems(n))}onFilterOnly(t){let n=e.Tools.deepClone(this._filterItems);n.forEach(e=>O(e,!1)),t.forEach(e=>{let t=E(n,e);t&&O(t,!0)}),this._manuallyUpdateFilterItems(n)}_manuallyUpdateFilterItems(e){this._manuallyUpdateFilterItems$.next(e)}clear(){return this._disposed?Promise.resolve(!1):this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:null})}async apply(){if(this._disposed)return!1;let e=g(this._filterItems),{checked:n,checkedItems:r}=e,i=this.rawFilterItems,a=0;for(let e of i)a+=e.count;let o=n===0,s=e.checked===a,c={colId:this.col};if(o)throw Error(`[ByValuesModel]: no checked items!`);if(s)return this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:null});{c.filters={};let e=r.filter(e=>e.key!==`empty`);e.length>0&&(c.filters={filters:e.flatMap(e=>e.originValues?Array.from(e.originValues):[e.title])}),e.length!==r.length&&(c.filters.blank=!0)}return this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:c})}};I=M=v([_(4,e.ICommandService)],I);let L=N=class extends e.Disposable{static async fromFilterColumn(t,n,r){var a,o,s;let c=t.get(e.IUniverInstanceService),{unitId:l,subUnitId:u}=n,d=c.getUniverSheetInstance(l);if(!d)throw Error(`[ByColorsModel]: Workbook not found for filter model with unitId: ${l}!`);let f=d==null?void 0:d.getSheetBySheetId(u);if(!f)throw Error(`[ByColorsModel]: Worksheet not found for filter model with unitId: ${l} and subUnitId: ${u}!`);let p=n.getRange(),m=r,h=(a=n.getFilterColumn(r))==null?void 0:a.getColumnData().colorFilters,g=n.getFilteredOutRowsExceptCol(r),_={...p,startRow:p.startRow+1,startColumn:m,endColumn:m},v=new Map,y=new Set((o=h==null?void 0:h.cellFillColors)==null?[]:o),b=new Map,x=new Set((s=h==null?void 0:h.cellTextColors)==null?[]:s);for(let t of f.iterateByColumn(_,!1,!0)){let{row:n,col:r,value:a}=t;if(g.has(n))continue;let o=f.getComposedCellStyleByCellData(n,r,a);if(o.bg&&o.bg.rgb){let t=new e.ColorKit(o.bg.rgb).toRgbString();v.has(t)||v.set(t,{color:t,checked:y.has(t)})}else v.set(`default-fill-color`,{color:null,checked:y.has(null)});if(o.cl&&o.cl.rgb){let t=new e.ColorKit(o.cl.rgb).toRgbString();b.has(t)||b.set(t,{color:t,checked:x.has(t)})}else b.set(`default-font-color`,{color:i.COLOR_BLACK_RGB,checked:x.has(i.COLOR_BLACK_RGB)})}return t.createInstance(N,n,r,v,b)}get cellFillColors(){return this._cellFillColors$.getValue()}get cellTextColors(){return this._cellTextColors$.getValue()}constructor(e,t,n,r,i){super(),this._filterModel=e,this.col=t,this._commandService=i,A(this,`canApply$`,(0,o.of)(!0)),A(this,`_cellFillColors$`,void 0),A(this,`cellFillColors$`,void 0),A(this,`_cellTextColors$`,void 0),A(this,`cellTextColors$`,void 0),this._cellFillColors$=new o.BehaviorSubject(Array.from(n.values())),this.cellFillColors$=this._cellFillColors$.asObservable(),this._cellTextColors$=new o.BehaviorSubject(Array.from(r.values())),this.cellTextColors$=this._cellTextColors$.asObservable()}dispose(){super.dispose(),this._cellFillColors$.complete()}deltaCol(e){this.col+=e}clear(){return this._disposed?Promise.resolve(!1):this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:null})}onFilterCheckToggled(e,t=!0){let n=t?this.cellFillColors:this.cellTextColors,r=[],i=!1;for(let t=0;t<n.length;t++){let a=n[t];if(a.color===e.color){i=!0,r.push({color:a.color,checked:!a.checked});continue}r.push({color:a.color,checked:a.checked})}i&&(this._resetColorsCheckedStatus(!t),t?this._cellFillColors$.next([...r]):this._cellTextColors$.next([...r]))}_resetColorsCheckedStatus(e=!0){let t=e?this.cellFillColors:this.cellTextColors,n=[];for(let e=0;e<t.length;e++)n.push({color:t[e].color,checked:!1});e?this._cellFillColors$.next([...n]):this._cellTextColors$.next([...n])}async apply(){if(this._disposed)return!1;let e=this.cellFillColors.filter(e=>e.checked).map(e=>e.color),n=this.cellTextColors.filter(e=>e.checked).map(e=>e.color);if(e.length===0&&n.length===0)return this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:null});let r={colId:this.col};return e.length>0?r.colorFilters={cellFillColors:e}:n.length>0&&(r.colorFilters={cellTextColors:n}),this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:r})}};L=N=v([_(4,e.ICommandService)],L);const R=`FILTER_PANEL_OPENED`,z={id:`sheet.operation.open-filter-panel`,type:e.CommandType.OPERATION,handler:(r,i)=>{let a=r.get(e.IContextService),o=r.get(t.SheetsFilterService),s=r.get(P),c=r.get(e.ICommandService),l=r.has(n.IEditorBridgeService)?r.get(n.IEditorBridgeService):null;l!=null&&l.isVisible().visible&&c.syncExecuteCommand(n.SetCellEditVisibleOperation.id,{visible:!1});let{unitId:u,subUnitId:d,col:f}=i,p=o.getFilterModel(u,d);return p?(s.setupCol(p,f),a.getContextValue(`FILTER_PANEL_OPENED`)||a.setContextValue(R,!0),!0):!1}},B={id:`sheet.operation.close-filter-panel`,type:e.CommandType.OPERATION,handler:t=>{let n=t.get(e.IContextService),i=t.get(P),a=t.get(r.ILayoutService,e.Quantity.OPTIONAL);return n.getContextValue(`FILTER_PANEL_OPENED`)?(n.setContextValue(R,!1),a==null||a.focus(),i.terminate()):!1}},V={id:`sheet.operation.apply-filter`,type:e.CommandType.OPERATION,handler:(e,t)=>{let{filterBy:n}=t;return e.get(P).changeFilterBy(n)}};var H=`@univerjs/sheets-filter-ui`,U=`0.18.0`;const W=`sheets-filter-ui.config`;Symbol(W);const G={};let K=class extends e.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetsFilterService=e,this._localeService=t,this._commandService=n,this._sheetPermissionCheckPermission=r,this._injector=i,this._sheetsSelectionService=a,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(n=>{if(n.id===t.SmartToggleSheetsFilterCommand.id){var r;let t=(0,a.getSheetCommandTarget)(this._injector.get(e.IUniverInstanceService));if(!t)return;let{unitId:n,subUnitId:o,worksheet:s}=t,c=(r=this._sheetsFilterService.getFilterModel(n,o))==null?void 0:r.getRange(),l;if(c)l=this._sheetPermissionCheckPermission.permissionCheckWithRanges({rangeTypes:[a.RangeProtectionPermissionViewPoint],worksheetTypes:[a.WorksheetFilterPermission,a.WorksheetViewPermission]},[c],n,o);else{var i;let e=(i=this._sheetsSelectionService.getCurrentLastSelection())==null?void 0:i.range;if(e){let t={...e};t=e.startColumn===e.endColumn&&e.startRow===e.endRow?(0,a.expandToContinuousRange)(t,{left:!0,right:!0,up:!0,down:!0},s):t,l=this._sheetPermissionCheckPermission.permissionCheckWithRanges({rangeTypes:[a.RangeProtectionPermissionViewPoint],worksheetTypes:[a.WorksheetViewPermission,a.WorksheetFilterPermission]},[t],n,o)}else l=this._sheetPermissionCheckPermission.permissionCheckWithoutRange({rangeTypes:[a.RangeProtectionPermissionViewPoint],worksheetTypes:[a.WorksheetViewPermission,a.WorksheetFilterPermission]})}l||this._sheetPermissionCheckPermission.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.filterErr`))}if(n.id===z.id){var o;let t=n.params,{unitId:r,subUnitId:i}=t,s=(o=this._sheetsFilterService.getFilterModel(r,i))==null?void 0:o.getRange(),c=e.Tools.deepClone(s);c&&(c.startColumn=t.col,c.endColumn=t.col,this._sheetPermissionCheckPermission.permissionCheckWithRanges({rangeTypes:[a.RangeProtectionPermissionViewPoint],worksheetTypes:[a.WorksheetFilterPermission,a.WorksheetViewPermission]},[c],r,i)||this._sheetPermissionCheckPermission.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.filterErr`)))}}))}};K=v([_(0,(0,e.Inject)(t.SheetsFilterService)),_(1,(0,e.Inject)(e.LocaleService)),_(2,e.ICommandService),_(3,(0,e.Inject)(a.SheetPermissionCheckController)),_(4,(0,e.Inject)(e.Injector)),_(5,(0,e.Inject)(a.SheetsSelectionsService))],K);const re=new Path2D(`M3.30363 3C2.79117 3 2.51457 3.60097 2.84788 3.99024L6.8 8.60593V12.5662C6.8 12.7184 6.8864 12.8575 7.02289 12.9249L8.76717 13.7863C8.96655 13.8847 9.2 13.7396 9.2 13.5173V8.60593L13.1521 3.99024C13.4854 3.60097 13.2088 3 12.6964 3H3.30363Z`);var ie=class{static drawNoCriteria(e,t,n,r){e.save(),i.Rect.drawWith(e,{radius:2,width:16,height:16,fill:r}),e.lineCap=`square`,e.strokeStyle=n,e.scale(t/16,t/16),e.beginPath(),e.lineWidth=1,e.lineCap=`round`,e.moveTo(3,4),e.lineTo(13,4),e.moveTo(4.5,8),e.lineTo(11.5,8),e.moveTo(6,12),e.lineTo(10,12),e.stroke(),e.restore()}static drawHasCriteria(e,t,n,r){e.save(),i.Rect.drawWith(e,{radius:2,width:16,height:16,fill:r}),e.scale(t/16,t/16),e.fillStyle=n,e.fill(re),e.restore()}};let q=class extends i.Shape{constructor(e,t,n,r,i){super(e,t),this._contextService=n,this._commandService=r,this._themeService=i,A(this,`_cellWidth`,0),A(this,`_cellHeight`,0),A(this,`_filterParams`,void 0),A(this,`_hovered`,!1),this.setShapeProps(t),this.onPointerDown$.subscribeEvent(e=>this.onPointerDown(e)),this.onPointerEnter$.subscribeEvent(()=>this.onPointerEnter()),this.onPointerLeave$.subscribeEvent(()=>this.onPointerLeave())}setShapeProps(e){e.cellHeight!==void 0&&(this._cellHeight=e.cellHeight),e.cellWidth!==void 0&&(this._cellWidth=e.cellWidth),e.filterParams!==void 0&&(this._filterParams=e.filterParams),this.transformByState({width:e.width,height:e.height})}_draw(e){let t=this._cellHeight,n=this._cellWidth,r=16-n,i=16-t;e.save();let a=new Path2D;a.rect(r,i,n,t),e.clip(a);let{hasCriteria:o}=this._filterParams,s=this._themeService.getColorFromTheme(`primary.600`),c=this._hovered?this._themeService.getColorFromTheme(`gray.50`):`rgba(255, 255, 255, 1.0)`;o?ie.drawHasCriteria(e,16,s,c):ie.drawNoCriteria(e,16,s,c),e.restore()}onPointerDown(e){if(e.button===2)return;let{col:t,unitId:n,subUnitId:r}=this._filterParams;this._contextService.getContextValue(`FILTER_PANEL_OPENED`)||!this._commandService.hasCommand(z.id)||setTimeout(()=>{this._commandService.executeCommand(z.id,{unitId:n,subUnitId:r,col:t})},200)}onPointerEnter(){this._hovered=!0,this.makeDirty(!0)}onPointerLeave(){this._hovered=!1,this.makeDirty(!0)}};q=v([_(2,e.IContextService),_(3,e.ICommandService),_(4,(0,e.Inject)(e.ThemeService))],q);function ae(t,n,r,i){switch(i){case e.VerticalAlign.TOP:return t+1;case e.VerticalAlign.MIDDLE:return t+Math.max(0,(r-16)/2);case e.VerticalAlign.BOTTOM:default:return n-16-1}}let J=class extends e.RxDisposable{constructor(e,t,n,r,i,a,o,s){super(),this._context=e,this._injector=t,this._sheetSkeletonManagerService=n,this._sheetsFilterService=r,this._themeService=i,this._sheetInterceptorService=a,this._commandService=o,this._selectionRenderService=s,A(this,`_filterRangeShape`,null),A(this,`_buttonRenderDisposable`,null),A(this,`_filterButtonShapes`,[]),this._initRenderer()}dispose(){super.dispose(),this._disposeRendering()}_initRenderer(){this._sheetSkeletonManagerService.currentSkeleton$.pipe((0,o.switchMap)(n=>{var r,i;if(!n)return(0,o.of)(null);let{unit:s,unitId:c}=this._context,l=((r=s.getActiveSheet())==null?void 0:r.getSheetId())||``,u=(i=this._sheetsFilterService.getFilterModel(c,l))==null?void 0:i,d=()=>({unitId:c,worksheetId:l,filterModel:u,range:u==null?void 0:u.getRange(),skeleton:n.skeleton});return(0,e.fromCallback)(this._commandService.onCommandExecuted.bind(this._commandService)).pipe((0,o.filter)(([n])=>{var r;return n.type===e.CommandType.MUTATION&&((r=n.params)==null?void 0:r.unitId)===s.getUnitId()&&(t.FILTER_MUTATIONS.has(n.id)||n.id===a.SetRangeValuesMutation.id)}),(0,o.throttleTime)(20,void 0,{leading:!1,trailing:!0}),(0,o.map)(d),(0,o.startWith)(d()))}),(0,o.takeUntil)(this.dispose$)).subscribe(e=>{this._disposeRendering(),!(!e||!e.range)&&(this._renderRange(e.range,e.skeleton),this._renderButtons(e))})}_renderRange(e,t){let{scene:r}=this._context,{rowHeaderWidth:i,columnHeaderHeight:a}=t,o=this._filterRangeShape=new n.SelectionControl(r,1e3,this._themeService,{rowHeaderWidth:i,columnHeaderHeight:a,enableAutoFill:!1,highlightHeader:!1}),s=(0,n.attachSelectionWithCoord)({range:e,primary:null,style:{fill:`rgba(0, 0, 0, 0.0)`}},t);o.updateRangeBySelectionWithCoord(s),o.setEvent(!1),r.makeDirty(!0)}_renderButtons(t){let{range:r,filterModel:i,unitId:a,skeleton:o,worksheetId:s}=t,{unit:c,scene:l}=this._context,u=c.getSheetBySheetId(s);if(!u)return;this._interceptCellContent(a,s,t.range);let{startColumn:d,endColumn:f,startRow:p}=r;for(let t=d;t<=f;t++){let r=`sheets-filter-button-${t}`,c=(0,n.getCoordByCell)(p,t,l,o),d=u.getComposedCellStyle(p,t),f=(d==null?void 0:d.vt)||e.VerticalAlign.BOTTOM,{startX:m,startY:h,endX:g,endY:_}=c,v=g-m,y=_-h;if(y<=1||v<=1)continue;let b=!!i.getFilterColumn(t),x={left:g-16-1,top:ae(h,_,y,f),height:16,width:16,zIndex:5e3,cellHeight:y,cellWidth:v,filterParams:{unitId:a,subUnitId:s,col:t,hasCriteria:b}},S=this._injector.createInstance(q,r,x);this._filterButtonShapes.push(S)}l.addObjects(this._filterButtonShapes),l.makeDirty()}_interceptCellContent(t,n,r){let{startRow:i,startColumn:o,endColumn:s}=r;this._buttonRenderDisposable=this._sheetInterceptorService.intercept(a.INTERCEPTOR_POINT.CELL_CONTENT,{effect:e.InterceptorEffectEnum.Style,handler:(e,r,a)=>{let{row:c,col:l,unitId:u,subUnitId:d}=r;return u!==t||d!==n||c!==i||l<o||l>s?a(e):((!e||e===r.rawData)&&(e={...r.rawData}),e.fontRenderExtension={...e==null?void 0:e.fontRenderExtension,rightOffset:16},a(e))},priority:10})}_disposeRendering(){var e,t;(e=this._filterRangeShape)==null||e.dispose(),this._filterButtonShapes.forEach(e=>e.dispose()),(t=this._buttonRenderDisposable)==null||t.dispose(),this._filterRangeShape=null,this._buttonRenderDisposable=null,this._filterButtonShapes=[]}};J=v([_(1,(0,e.Inject)(e.Injector)),_(2,(0,e.Inject)(n.SheetSkeletonManagerService)),_(3,(0,e.Inject)(t.SheetsFilterService)),_(4,(0,e.Inject)(e.ThemeService)),_(5,(0,e.Inject)(a.SheetInterceptorService)),_(6,e.ICommandService),_(7,n.ISheetSelectionRenderService)],J);let Y=class extends e.RxDisposable{constructor(n,r){super(),this._renderManagerService=n,this._sheetsRenderService=r,[t.SetSheetsFilterRangeMutation,t.SetSheetsFilterCriteriaMutation,t.RemoveSheetsFilterMutation,t.ReCalcSheetsFilterMutation].forEach(e=>this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(e.id))),this.disposeWithMe(this._renderManagerService.registerRenderModule(e.UniverInstanceType.UNIVER_SHEET,[J]))}};Y=v([_(0,i.IRenderManagerService),_(1,(0,e.Inject)(n.SheetsRenderService))],Y);let X=class extends e.Plugin{constructor(t=G,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{menu:i,...a}=(0,e.merge)({},G,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(W,a)}onStarting(){[[K],[Y]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(K)}onRendered(){this._injector.get(Y)}};A(X,`type`,e.UniverInstanceType.UNIVER_SHEET),A(X,`pluginName`,`SHEET_FILTER_UI_PLUGIN`),A(X,`packageName`,H),A(X,`version`,U),X=v([(0,e.DependentOn)(t.UniverSheetsFilterPlugin),_(1,(0,e.Inject)(e.Injector)),_(2,e.IConfigService)],X);function oe(i){let s=i.get(t.SheetsFilterService);return{id:t.SmartToggleSheetsFilterCommand.id,type:r.MenuItemType.BUTTON_SELECTOR,icon:`FilterIcon`,tooltip:`sheets-filter.toolbar.smart-toggle-filter-tooltip`,hidden$:(0,r.getMenuHiddenObservable)(i,e.UniverInstanceType.UNIVER_SHEET),activated$:s.activeFilterModel$.pipe((0,o.map)(e=>!!e)),disabled$:(0,n.getObservableWithExclusiveRange$)(i,(0,n.getCurrentRangeDisable$)(i,{worksheetTypes:[a.WorksheetFilterPermission,a.WorksheetViewPermission],rangeTypes:[a.RangeProtectionPermissionViewPoint]}))}}function se(n){let i=n.get(t.SheetsFilterService);return{id:t.ClearSheetsFilterCriteriaCommand.id,type:r.MenuItemType.BUTTON,title:`sheets-filter.toolbar.clear-filter-criteria`,hidden$:(0,r.getMenuHiddenObservable)(n,e.UniverInstanceType.UNIVER_SHEET),disabled$:i.activeFilterModel$.pipe((0,o.switchMap)(e=>{var t;return(t=e==null?void 0:e.hasCriteria$.pipe((0,o.map)(e=>!e)))==null?(0,o.of)(!0):t}))}}function ce(n){let i=n.get(t.SheetsFilterService);return{id:t.ReCalcSheetsFilterCommand.id,type:r.MenuItemType.BUTTON,title:`sheets-filter.toolbar.re-calc-filter-conditions`,hidden$:(0,r.getMenuHiddenObservable)(n,e.UniverInstanceType.UNIVER_SHEET),disabled$:i.activeFilterModel$.pipe((0,o.switchMap)(e=>{var t;return(t=e==null?void 0:e.hasCriteria$.pipe((0,o.map)(e=>!e)))==null?(0,o.of)(!0):t}))}}const le={[r.RibbonDataGroup.ORGANIZATION]:{[t.SmartToggleSheetsFilterCommand.id]:{order:2,menuItemFactory:oe,[t.ClearSheetsFilterCriteriaCommand.id]:{order:0,menuItemFactory:se},[t.ReCalcSheetsFilterCommand.id]:{order:1,menuItemFactory:ce}}}};function ue(t){let{model:n}=t,i=(0,r.useDependency)(e.LocaleService),a=(0,r.useObservable)(n.cellFillColors$,[],!0),o=(0,r.useObservable)(n.cellTextColors$,[],!0),s=(0,u.useCallback)(e=>{n.onFilterCheckToggled(e)},[n]),f=(0,u.useCallback)(e=>{n.onFilterCheckToggled(e,!1)},[n]);return(0,d.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-colors-container`,className:`univer-flex univer-h-full univer-min-h-[300px] univer-flex-col`,children:(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel`,className:(0,c.clsx)(`
2
- univer-mt-2 univer-box-border univer-flex univer-h-[300px] univer-flex-grow univer-flex-col
3
- univer-gap-4 univer-overflow-auto univer-rounded-md univer-px-2 univer-py-2.5
4
- `,c.borderClassName),children:[a.length>1&&(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`
5
- univer-mb-2 univer-text-sm univer-text-gray-900
6
- dark:!univer-text-white
7
- `,children:i.t(`sheets-filter.panel.filter-by-cell-fill-color`)}),(0,d.jsx)(`div`,{className:`
8
- univer-grid univer-grid-cols-8 univer-items-center univer-justify-start univer-gap-2
9
- `,children:a.map((e,t)=>(0,d.jsxs)(`div`,{className:`univer-relative univer-size-6`,onClick:()=>s(e),children:[e.color?(0,d.jsx)(`button`,{type:`button`,className:(0,c.clsx)(`
10
- univer-box-border univer-size-6 univer-cursor-pointer
11
- univer-rounded-full univer-border univer-border-solid
12
- univer-border-transparent univer-bg-gray-300 univer-transition-shadow
13
- hover:univer-ring-2 hover:univer-ring-offset-2
14
- hover:univer-ring-offset-white
15
- `),style:{backgroundColor:e.color}}):(0,d.jsx)(l.BanIcon,{className:`
16
- univer-size-6 univer-cursor-pointer univer-rounded-full
17
- hover:univer-ring-2 hover:univer-ring-offset-2
18
- hover:univer-ring-offset-white
19
- `}),e.checked&&(0,d.jsx)(de,{})]},`sheets-filter-cell-fill-color-${t}`))})]}),o.length>1&&(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`
20
- univer-mb-2 univer-text-sm univer-text-gray-900
21
- dark:!univer-text-white
22
- `,children:i.t(`sheets-filter.panel.filter-by-cell-text-color`)}),(0,d.jsx)(`div`,{className:`
23
- univer-grid univer-grid-cols-8 univer-items-center univer-justify-start univer-gap-2
24
- `,children:o.map((e,t)=>(0,d.jsxs)(`div`,{className:`univer-relative univer-size-6`,onClick:()=>f(e),children:[(0,d.jsx)(`div`,{className:`
25
- univer-box-border univer-flex univer-size-full univer-cursor-pointer
26
- univer-items-center univer-justify-center univer-rounded-full univer-border
27
- univer-border-solid univer-border-[rgba(13,13,13,0.06)] univer-p-0.5
28
- hover:univer-ring-2 hover:univer-ring-offset-2 hover:univer-ring-offset-white
29
- dark:!univer-border-[rgba(255,255,255,0.06)]
30
- `,children:(0,d.jsx)(l.AIcon,{style:{color:e.color}})}),e.checked&&(0,d.jsx)(de,{})]},`sheets-filter-cell-text-color-${t}`))})]}),a.length<=1&&o.length<=1&&(0,d.jsx)(`div`,{className:`
31
- univer-flex univer-size-full univer-items-center univer-justify-center univer-text-sm
32
- univer-text-gray-900
33
- dark:!univer-text-gray-200
34
- `,children:i.t(`sheets-filter.panel.filter-by-color-none`)})]})})}function de(){return(0,d.jsx)(`div`,{className:`
35
- univer-absolute -univer-bottom-0.5 -univer-right-0.5 univer-flex univer-size-3 univer-cursor-pointer
36
- univer-items-center univer-justify-center univer-rounded-full univer-bg-white
37
- `,children:(0,d.jsx)(l.SuccessIcon,{className:`univer-size-full univer-font-bold univer-text-[#418F1F]`})})}function fe(t){var n,i;let{model:a}=t,o=(0,r.useDependency)(e.LocaleService),s=(0,r.useObservable)(a.conditionItem$,void 0),l=(0,r.useObservable)(a.filterConditionFormParams$,void 0),f=l!=null&&l.and?`AND`:`OR`,p=(0,u.useCallback)(e=>{a.onConditionFormChange({and:e===`AND`})},[a]),h=pe(o),g=(0,u.useCallback)(e=>{a.onPrimaryConditionChange(e)},[a]),_=me(o),v=(0,u.useCallback)(e=>{a.onConditionFormChange(e)},[a]),y=o.t(`sheets-filter.panel.input-values-placeholder`);function b(e,t,n){let r=m.getItemByOperator(e).numOfParameters===1;return(0,d.jsxs)(d.Fragment,{children:[n===`operator2`&&(0,d.jsxs)(c.RadioGroup,{value:f,onChange:p,children:[(0,d.jsx)(c.Radio,{value:`AND`,children:o.t(`sheets-filter.panel.and`)}),(0,d.jsx)(c.Radio,{value:`OR`,children:o.t(`sheets-filter.panel.or`)})]}),(0,d.jsx)(c.Select,{value:e,options:_,onChange:e=>v({[n]:e})}),r&&(0,d.jsx)(`div`,{children:(0,d.jsx)(c.Input,{className:`univer-mt-2`,value:t,placeholder:y,onChange:e=>v({[n===`operator1`?`val1`:`val2`]:e})})})]})}return(0,d.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-conditions-container`,className:`univer-flex univer-h-full univer-min-h-[300px] univer-flex-col`,children:s&&l&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c.Select,{value:s.operator,options:h,onChange:g}),m.getItemByOperator(s.operator).numOfParameters===0?null:(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-conditions-container-inner`,className:(0,c.clsx)(`
38
- univer-mt-2 univer-flex-grow univer-overflow-hidden univer-rounded-md univer-p-2
39
- `,c.borderClassName),children:[s.numOfParameters>=1&&b(l.operator1,(n=l.val1)==null?``:n,`operator1`),s.numOfParameters>=2&&b(l.operator2,(i=l.val2)==null?``:i,`operator2`),(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-conditions-desc`,className:`univer-mt-2 univer-text-xs univer-text-gray-500`,children:[o.t(`sheets-filter.panel.?`),(0,d.jsx)(`br`,{}),o.t(`sheets-filter.panel.*`)]})]})]})})}function pe(e){return(0,u.useMemo)(()=>[{options:[{label:e.t(m.NONE.label),value:m.NONE.operator}]},{options:[{label:e.t(m.EMPTY.label),value:m.EMPTY.operator},{label:e.t(m.NOT_EMPTY.label),value:m.NOT_EMPTY.operator}]},{options:[{label:e.t(m.TEXT_CONTAINS.label),value:m.TEXT_CONTAINS.operator},{label:e.t(m.DOES_NOT_CONTAIN.label),value:m.DOES_NOT_CONTAIN.operator},{label:e.t(m.STARTS_WITH.label),value:m.STARTS_WITH.operator},{label:e.t(m.ENDS_WITH.label),value:m.ENDS_WITH.operator},{label:e.t(m.EQUALS.label),value:m.EQUALS.operator}]},{options:[{label:e.t(m.GREATER_THAN.label),value:m.GREATER_THAN.operator},{label:e.t(m.GREATER_THAN_OR_EQUAL.label),value:m.GREATER_THAN_OR_EQUAL.operator},{label:e.t(m.LESS_THAN.label),value:m.LESS_THAN.operator},{label:e.t(m.LESS_THAN_OR_EQUAL.label),value:m.LESS_THAN_OR_EQUAL.operator},{label:e.t(m.EQUAL.label),value:m.EQUAL.operator},{label:e.t(m.NOT_EQUAL.label),value:m.NOT_EQUAL.operator},{label:e.t(m.BETWEEN.label),value:m.BETWEEN.operator},{label:e.t(m.NOT_BETWEEN.label),value:m.NOT_BETWEEN.operator}]},{options:[{label:e.t(m.CUSTOM.label),value:m.CUSTOM.operator}]}],[e.getCurrentLocale(),e])}function me(e){return(0,u.useMemo)(()=>m.ALL_CONDITIONS.filter(e=>e.numOfParameters!==2).map(t=>({label:e.t(t.label),value:t.operator})),[e.getCurrentLocale(),e])}function he(t){let{model:n}=t,i=(0,r.useDependency)(e.LocaleService),a=(0,r.useObservable)(n.searchString$,``,!0),o=(0,r.useObservable)(n.filterItems$,void 0,!0),s=i.t(`sheets-filter.panel.filter-only`),l=g(o),f=l.checked>0&&l.unchecked===0,p=l.checked>0&&l.unchecked>0,m=n.treeMapCache,h=(0,u.useCallback)(()=>{n.onCheckAllToggled(!f)},[n,f]),_=(0,u.useCallback)(e=>{n.setSearchString(e)},[n]);function v(e){let t=[];return e.forEach(e=>{e.checked&&t.push(e.key),e.children&&(t=t.concat(v(e.children)))}),t}return(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-values-container`,className:`univer-flex univer-h-full univer-min-h-[300px] univer-flex-col`,children:[(0,d.jsx)(c.Input,{autoFocus:!0,value:a,placeholder:i.t(`sheets-filter.panel.search-placeholder`),onChange:_}),(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel`,className:(0,c.clsx)(`
40
- univer-mt-2 univer-box-border univer-flex univer-flex-grow univer-flex-col univer-overflow-hidden
41
- univer-rounded-md univer-px-2 univer-py-2.5
42
- `,c.borderClassName),children:[(0,d.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-values-item`,className:`univer-box-border univer-h-8 univer-w-full univer-py-0.5`,children:(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-values-item-inner`,className:`
43
- univer-box-border univer-flex univer-h-7 univer-items-center univer-rounded-md univer-py-0
44
- univer-pl-5 univer-pr-0.5 univer-text-sm
45
- `,children:[(0,d.jsx)(c.Checkbox,{indeterminate:p,disabled:o.length===0,checked:f,onChange:h}),(0,d.jsx)(`span`,{"data-u-comp":`sheets-filter-panel-values-item-text`,className:`
46
- univer-mx-1 univer-inline-block univer-flex-shrink univer-truncate univer-text-gray-900
47
- dark:!univer-text-white
48
- `,children:`${i.t(`sheets-filter.panel.select-all`)}`}),(0,d.jsx)(`span`,{"data-u-comp":`sheets-filter-panel-values-item-count`,className:`
49
- univer-text-gray-400
50
- dark:!univer-text-gray-500
51
- `,children:`(${l.checked}/${l.checked+l.unchecked})`})]})}),(0,d.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-values-virtual`,className:`univer-flex-grow`,children:(0,d.jsx)(c.Tree,{data:o,defaultExpandAll:!1,valueGroup:v(o),onChange:e=>{n.onFilterCheckToggled(e)},defaultCache:m,itemHeight:28,treeNodeClassName:`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/sheets-filter`),n=require(`@univerjs/sheets-ui`),r=require(`@univerjs/ui`),i=require(`@univerjs/engine-render`),a=require(`@univerjs/sheets`),o=require(`rxjs`),s=require(`@univerjs/rpc`),c=require(`@univerjs/design`),l=require(`@univerjs/icons`),u=require(`react`),d=require(`react/jsx-runtime`),f=function(e){return e[e.FIRST=0]=`FIRST`,e[e.SECOND=1]=`SECOND`,e}({}),p=function(e){return e.NONE=`none`,e.STARTS_WITH=`startsWith`,e.DOES_NOT_START_WITH=`doesNotStartWith`,e.ENDS_WITH=`endsWith`,e.DOES_NOT_END_WITH=`doesNotEndWith`,e.CONTAINS=`contains`,e.DOES_NOT_CONTAIN=`doesNotContain`,e.EQUALS=`equals`,e.NOT_EQUALS=`notEquals`,e.EMPTY=`empty`,e.NOT_EMPTY=`notEmpty`,e.BETWEEN=`between`,e.NOT_BETWEEN=`notBetween`,e.CUSTOM=`custom`,e}({}),m;(function(n){let r=n.NONE={label:`sheets-filter.conditions.none`,operator:p.NONE,order:f.SECOND,numOfParameters:0,getDefaultFormParams:()=>{throw Error(`[FilterConditionItems.NONE]: should not have initial form params!`)},testMappingParams:e=>e.operator1===p.NONE,mapToFilterColumn:()=>null,testMappingFilterColumn:e=>!e.customFilters&&!e.filters?{}:!1},i=n.ALL_CONDITIONS=[r,n.EMPTY={label:`sheets-filter.conditions.empty`,operator:p.EMPTY,order:f.SECOND,numOfParameters:0,getDefaultFormParams:()=>{throw Error(`[FilterConditionItems.EMPTY]: should not have initial form params!`)},testMappingParams:({operator1:e})=>e===p.EMPTY,mapToFilterColumn:()=>({customFilters:{customFilters:[{val:``}]}}),testMappingFilterColumn:e=>{var t;if(((t=e.customFilters)==null?void 0:t.customFilters.length)!==1)return!1;let n=e.customFilters.customFilters[0];return n.val===``&&n.operator===void 0?{operator1:p.EMPTY}:!1}},n.NOT_EMPTY={label:`sheets-filter.conditions.not-empty`,operator:p.NOT_EMPTY,order:f.SECOND,numOfParameters:0,getDefaultFormParams:()=>{throw Error(`[FilterConditionItems.NOT_EMPTY]: should not have initial form params!`)},testMappingParams:({operator1:e})=>e===p.NOT_EMPTY,mapToFilterColumn:()=>({customFilters:{customFilters:[{val:``,operator:t.CustomFilterOperator.NOT_EQUALS}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.val===` `&&r.operator===t.CustomFilterOperator.NOT_EQUALS?{operator1:p.NOT_EMPTY}:!1}},n.TEXT_CONTAINS={label:`sheets-filter.conditions.text-contains`,operator:p.CONTAINS,order:f.FIRST,numOfParameters:1,getDefaultFormParams:()=>({operator1:p.CONTAINS,val1:``}),testMappingParams:e=>{let[t]=h(e);return t===p.CONTAINS},mapToFilterColumn:e=>{let{val1:t}=e;return t===``?null:{customFilters:{customFilters:[{val:`*${t}*`}]}}},testMappingFilterColumn:e=>{var t;if(((t=e.customFilters)==null?void 0:t.customFilters.length)!==1)return!1;let n=e.customFilters.customFilters[0],r=n.val.toString();return!n.operator&&r.startsWith(`*`)&&r.endsWith(`*`)?{operator1:p.CONTAINS,val1:r.slice(1,-1)}:!1}},n.DOES_NOT_CONTAIN={label:`sheets-filter.conditions.does-not-contain`,operator:p.DOES_NOT_CONTAIN,order:f.FIRST,numOfParameters:1,getDefaultFormParams:()=>({operator1:p.DOES_NOT_CONTAIN,val1:``}),mapToFilterColumn:e=>({customFilters:{customFilters:[{val:`*${e.val1}*`,operator:t.CustomFilterOperator.NOT_EQUALS}]}}),testMappingParams:e=>{let[t]=h(e);return t===p.DOES_NOT_CONTAIN},testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0],i=r.val.toString();return r.operator===t.CustomFilterOperator.NOT_EQUALS&&i.startsWith(`*`)&&i.endsWith(`*`)?{operator1:p.DOES_NOT_CONTAIN,val1:i.slice(1,-1)}:!1}},n.STARTS_WITH={label:`sheets-filter.conditions.starts-with`,operator:p.STARTS_WITH,order:f.FIRST,numOfParameters:1,getDefaultFormParams:()=>({operator1:p.STARTS_WITH,val1:``}),mapToFilterColumn:e=>({customFilters:{customFilters:[{val:`${e.val1}*`}]}}),testMappingParams:e=>{let[t]=h(e);return t===p.STARTS_WITH},testMappingFilterColumn:e=>{var t;if(((t=e.customFilters)==null?void 0:t.customFilters.length)!==1)return!1;let n=e.customFilters.customFilters[0],r=n.val.toString();return!n.operator&&r.endsWith(`*`)&&!r.startsWith(`*`)?{operator1:p.STARTS_WITH,val1:r.slice(0,-1)}:!1}},n.ENDS_WITH={label:`sheets-filter.conditions.ends-with`,operator:p.ENDS_WITH,order:f.FIRST,numOfParameters:1,getDefaultFormParams:()=>({operator1:p.ENDS_WITH,val1:``}),mapToFilterColumn:e=>({customFilters:{customFilters:[{val:`*${e.val1}`}]}}),testMappingParams:e=>{let[t]=h(e);return t===p.ENDS_WITH},testMappingFilterColumn:e=>{var t;if(((t=e.customFilters)==null?void 0:t.customFilters.length)!==1)return!1;let n=e.customFilters.customFilters[0],r=n.val.toString();return!n.operator&&r.startsWith(`*`)&&!r.endsWith(`*`)?{operator1:p.ENDS_WITH,val1:r.slice(1)}:!1}},n.EQUALS={label:`sheets-filter.conditions.equals`,operator:p.EQUALS,order:f.FIRST,numOfParameters:1,getDefaultFormParams:()=>({operator1:p.EQUALS,val1:``}),testMappingParams:e=>{let[t]=h(e);return t===p.EQUALS},mapToFilterColumn:e=>{let{val1:t}=e;return t===``?null:{customFilters:{customFilters:[{val:t}]}}},testMappingFilterColumn:e=>{var t,n;return((t=e.filters)==null||(t=t.filters)==null?void 0:t.length)===1?{operator1:p.EQUALS,val1:``}:((n=e.customFilters)==null?void 0:n.customFilters.length)===1&&!e.customFilters.customFilters[0].operator?{operator1:p.EQUALS,val1:e.customFilters.customFilters[0].val.toString()}:!1}},n.GREATER_THAN={label:`sheets-filter.conditions.greater-than`,operator:t.CustomFilterOperator.GREATER_THAN,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.GREATER_THAN,val1:``}),mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.GREATER_THAN}]}}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.GREATER_THAN},testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.GREATER_THAN?{operator1:t.CustomFilterOperator.GREATER_THAN,val1:r.val.toString()}:!1}},n.GREATER_THAN_OR_EQUAL={label:`sheets-filter.conditions.greater-than-or-equal`,operator:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,val1:``}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.GREATER_THAN_OR_EQUAL},mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.GREATER_THAN_OR_EQUAL?{operator1:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,val1:r.val.toString()}:!1}},n.LESS_THAN={label:`sheets-filter.conditions.less-than`,operator:t.CustomFilterOperator.LESS_THAN,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.LESS_THAN,val1:``}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.LESS_THAN},mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.LESS_THAN}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.LESS_THAN?{operator1:t.CustomFilterOperator.LESS_THAN,val1:r.val.toString()}:!1}},n.LESS_THAN_OR_EQUAL={label:`sheets-filter.conditions.less-than-or-equal`,operator:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,val1:``}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.LESS_THAN_OR_EQUAL},mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.LESS_THAN_OR_EQUAL}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.LESS_THAN_OR_EQUAL?{operator1:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,val1:r.val.toString()}:!1}},n.EQUAL={label:`sheets-filter.conditions.equal`,operator:t.CustomFilterOperator.EQUAL,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.EQUAL,val1:``}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.EQUAL},mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.EQUAL}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.EQUAL?{operator1:t.CustomFilterOperator.EQUAL,val1:r.val.toString()}:!1}},n.NOT_EQUAL={label:`sheets-filter.conditions.not-equal`,operator:t.CustomFilterOperator.NOT_EQUALS,numOfParameters:1,order:f.FIRST,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.NOT_EQUALS,val1:``}),testMappingParams:e=>{let[n]=h(e);return n===t.CustomFilterOperator.NOT_EQUALS},mapToFilterColumn:e=>({customFilters:{customFilters:[{val:e.val1,operator:t.CustomFilterOperator.NOT_EQUALS}]}}),testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==1)return!1;let r=e.customFilters.customFilters[0];return r.operator===t.CustomFilterOperator.NOT_EQUALS?{operator1:t.CustomFilterOperator.NOT_EQUALS,val1:r.val.toString()}:!1}},n.BETWEEN={label:`sheets-filter.conditions.between`,operator:p.BETWEEN,order:f.SECOND,numOfParameters:2,getDefaultFormParams:()=>({and:!0,operator1:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,val1:``,operator2:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,val2:``}),testMappingParams:e=>{let{and:n,operator1:r,operator2:i}=e;if(!n)return!1;let a=[r,i];return a.includes(t.CustomFilterOperator.GREATER_THAN_OR_EQUAL)&&a.includes(t.CustomFilterOperator.LESS_THAN_OR_EQUAL)},mapToFilterColumn:n=>{let{val1:r,val2:i,operator1:a}=n,o=a===t.CustomFilterOperator.GREATER_THAN_OR_EQUAL;return{customFilters:{and:e.BooleanNumber.TRUE,customFilters:[{val:o?r:i,operator:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL},{val:o?i:r,operator:t.CustomFilterOperator.LESS_THAN_OR_EQUAL}]}}},testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==2)return!1;let[r,i]=e.customFilters.customFilters;return r.operator===t.CustomFilterOperator.GREATER_THAN_OR_EQUAL&&i.operator===t.CustomFilterOperator.LESS_THAN_OR_EQUAL&&e.customFilters.and?{and:!0,operator1:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,val1:r.val.toString(),operator2:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,val2:i.val.toString()}:i.operator===t.CustomFilterOperator.GREATER_THAN_OR_EQUAL&&r.operator===t.CustomFilterOperator.LESS_THAN_OR_EQUAL&&e.customFilters.and?{and:!0,operator1:t.CustomFilterOperator.GREATER_THAN_OR_EQUAL,val1:i.val.toString(),operator2:t.CustomFilterOperator.LESS_THAN_OR_EQUAL,val2:r.val.toLocaleString()}:!1}},n.NOT_BETWEEN={label:`sheets-filter.conditions.not-between`,operator:p.NOT_BETWEEN,order:f.SECOND,numOfParameters:2,getDefaultFormParams:()=>({operator1:t.CustomFilterOperator.LESS_THAN,val1:``,operator2:t.CustomFilterOperator.GREATER_THAN,val2:``}),testMappingParams:e=>{let{and:n,operator1:r,operator2:i}=e;if(n)return!1;let a=[r,i];return a.includes(t.CustomFilterOperator.GREATER_THAN)&&a.includes(t.CustomFilterOperator.LESS_THAN)},mapToFilterColumn:e=>{let{val1:n,val2:r,operator1:i}=e,a=i===t.CustomFilterOperator.GREATER_THAN;return{customFilters:{customFilters:[{val:a?n:r,operator:t.CustomFilterOperator.GREATER_THAN},{val:a?r:n,operator:t.CustomFilterOperator.LESS_THAN}]}}},testMappingFilterColumn:e=>{var n;if(((n=e.customFilters)==null?void 0:n.customFilters.length)!==2)return!1;let[r,i]=e.customFilters.customFilters;return r.operator===t.CustomFilterOperator.LESS_THAN&&i.operator===t.CustomFilterOperator.GREATER_THAN&&!e.customFilters.and?{operator1:t.CustomFilterOperator.LESS_THAN,val1:r.val.toString(),operator2:t.CustomFilterOperator.GREATER_THAN,val2:i.val.toString()}:i.operator===t.CustomFilterOperator.LESS_THAN&&r.operator===t.CustomFilterOperator.GREATER_THAN&&!e.customFilters.and?{operator1:t.CustomFilterOperator.GREATER_THAN,val1:i.val.toString(),operator2:t.CustomFilterOperator.LESS_THAN,val2:r.val.toLocaleString()}:!1}},n.CUSTOM={label:`sheets-filter.conditions.custom`,operator:p.CUSTOM,order:f.SECOND,numOfParameters:2,getDefaultFormParams:()=>({operator1:p.NONE,val1:``,operator2:p.NONE,val2:``}),testMappingParams:()=>!0,mapToFilterColumn:t=>{let{and:n,val1:a,val2:o,operator1:s,operator2:c}=t;function l(e,t){for(let n of i)if(n.operator===e)return n.mapToFilterColumn({val1:t,operator1:e})}let u=!s||s===m.NONE.operator,d=!c||c===m.NONE.operator;if(u&&d)return r.mapToFilterColumn({});if(u)return l(c,o);if(d)return l(s,a);let f=l(s,a),p=l(c,o),h={customFilters:[f.customFilters.customFilters[0],p.customFilters.customFilters[0]]};return n&&(h.and=e.BooleanNumber.TRUE),{customFilters:h}},testMappingFilterColumn:e=>{var t;if(((t=e.customFilters)==null?void 0:t.customFilters.length)!==2)return!1;let n=e.customFilters.customFilters.map(e=>l({customFilters:{customFilters:[e]}})),r={operator1:n[0][0].operator,val1:n[0][1].val1,operator2:n[1][0].operator,val2:n[1][1].val1};return e.customFilters.and&&(r.and=!0),r}}];function a(e){let t=i.find(t=>t.operator===e);if(!t)throw Error(`[SheetsFilter]: no condition item found for operator: ${e}`);return t}n.getItemByOperator=a;function o(e,t){for(let n of i.filter(e=>e.numOfParameters===t))if(n.numOfParameters!==0&&n.testMappingParams(e))return n;for(let t of i)if(t.testMappingParams(e))return t;throw Error(`[SheetsFilter]: no condition item can be mapped from the filter map params!`)}n.testMappingParams=o;function s(e){let t=i.find(t=>t.operator===e);return(t==null?void 0:t.numOfParameters)===0?{operator1:t.operator}:t.getDefaultFormParams()}n.getInitialFormParams=s;function c(e,t){return e.mapToFilterColumn(t)}n.mapToFilterColumn=c;function l(e){if(!e)return[r,{}];for(let t of i){let n=t.testMappingFilterColumn(e);if(n)return[t,n]}return[r,{}]}n.testMappingFilterColumn=l})(m||(m={}));function h(e){let{operator1:t,operator2:n,val1:r,val2:i}=e;if(t&&n)throw Error(`Both operator1 and operator2 are set!`);if(!t&&!n)throw Error(`Neither operator1 and operator2 and both not set!`);return t?[t,r]:[n,i]}function g(e){let t=[],n=[],r=0,i=0;function a(e){e.leaf&&(e.checked?(t.push(e),r+=e.count):(n.push(e),i+=e.count)),e.children&&e.children.forEach(a)}return e.forEach(a),{checkedItems:t,uncheckedItems:n,checked:r,unchecked:i}}function _(e,t){return function(n,r){t(n,r,e)}}function v(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}const y=`sheets-filter.generate-filter-values.service`,b=(0,e.createIdentifier)(y);let x=class extends e.Disposable{constructor(e,t,n){super(),this._localeService=e,this._univerInstanceService=t,this._logService=n}async getFilterValues(e){var t;let{unitId:n,subUnitId:r,filteredOutRowsByOtherColumns:i,filterColumn:a,filters:o,blankChecked:s,iterateRange:c,alreadyChecked:l}=e,u=this._univerInstanceService.getUnit(n),d=(t=this._univerInstanceService.getUnit(n))==null?void 0:t.getSheetBySheetId(r);return!u||!d?[]:(this._logService.debug(`[SheetsGenerateFilterValuesService]`,`getFilterValues for`,{unitId:n,subUnitId:r}),S(o,this._localeService,c,d,new Set(i),a,new Set(l.map(String)),s,u.getStyles()))}};x=v([_(0,(0,e.Inject)(e.LocaleService)),_(1,e.IUniverInstanceService),_(2,e.ILogService)],x);function S(n,r,i,a,o,s,c,l,u){var d;let f=new Map,p=new Map,m=`empty`,h=!n&&((s==null?void 0:s.filterBy)===t.FilterBy.COLORS||(s==null?void 0:s.filterBy)===t.FilterBy.CONDITIONS)&&((d=s.filteredOutRows)==null?void 0:d.size),g=0;for(let t of a.iterateByColumn(i,!1,!1)){let{row:n,rowSpan:i=1}=t,s=0;for(;s<i;){var _,v,y;let d=n+s;if(o.has(d)){s++;continue}let m=t!=null&&t.value?(0,e.extractPureTextFromCell)(t.value):``;if(!m){g+=1,s+=i;continue}let C=(_=t.value)!=null&&_.v&&!t.value.p?(v=u.get((y=t.value)==null?void 0:y.s))==null||(v=v.n)==null?void 0:v.pattern:``,E=C&&e.numfmt.getFormatInfo(C).isDate,D=!1;if(E){let{year:t,month:n,day:r}=e.numfmt.getFormatDateInfo(C);D=t||n||r}if(C&&E&&D){var b,x,S;let n=(b=a.getCellRaw(t.row,t.col))==null?void 0:b.v;if(!n){s++;continue}let[i,o,u]=e.numfmt.format(`yyyy-mm-dd`,Number(n)).split(`-`).map(Number),d=f.get(`${i}`);d||(d={title:`${i}`,key:`${i}`,children:[],count:0,leaf:!1,checked:!1},f.set(`${i}`,d),p.set(`${i}`,[`${i}`]));let g=(x=d.children)==null?void 0:x.find(e=>e.key===`${i}-${o}`);if(!g){var w;g={title:r.t(`sheets-filter.date.${o}`),key:`${i}-${o}`,children:[],count:0,leaf:!1,checked:!1},(w=d.children)==null||w.push(g),p.set(`${i}-${o}`,[`${i}`,`${i}-${o}`])}let _=g==null||(S=g.children)==null?void 0:S.find(e=>e.key===`${i}-${o}-${u}`);if(_)_.originValues.add(m),_.count++,g.count++,d.count++;else{var T;(T=g.children)==null||T.push({title:`${u}`,key:`${i}-${o}-${u}`,count:1,originValues:new Set([m]),leaf:!0,checked:h?!1:c.size?c.has(m):!l}),g.count++,d.count++,p.set(`${i}-${o}-${u}`,[`${i}`,`${i}-${o}`,`${i}-${o}-${u}`])}}else{let e=m,t=f.get(e);t?t.count++:(t={title:m,leaf:!0,checked:h?!1:c.size?c.has(m):!l,key:e,count:1},f.set(e,t),p.set(e,[e]))}s++}}let E=h?!1:n?l:!0;if(g>0){let e={title:r.t(`sheets-filter.panel.empty`),count:g,leaf:!0,checked:E,key:m};f.set(`empty`,e),p.set(`empty`,[m])}return{filterTreeItems:C(Array.from(f.values())),filterTreeMapCache:p}}function C(e){return Array.from(e).sort((e,t)=>e.children&&!t.children?-1:!e.children&&t.children?1:T(e.title,t.title)).map(e=>(e.children&&e.children.sort((e,t)=>Number.parseInt(e.key.split(`-`)[1],10)-Number.parseInt(t.key.split(`-`)[1],10)).forEach(e=>{e.children&&e.children.sort((e,t)=>Number.parseInt(e.key.split(`-`)[2],10)-Number.parseInt(t.key.split(`-`)[2],10))}),e))}const w=e=>!Number.isNaN(Number(e))&&!Number.isNaN(Number.parseFloat(e));function T(e,t){let n=w(e),r=w(t);return n&&r?Number.parseFloat(e)-Number.parseFloat(t):n&&!r?-1:!n&&r?1:e.localeCompare(t)}function E(e,t){for(let n of e){if(n.key===t)return n;if(n.children){let e=E(n.children,t);if(e)return e}}return null}function D(e){return e.leaf?e.checked:e.children?e.children.every(e=>D(e)):!0}function O(e,t){e.leaf&&(t===void 0?e.checked=!e.checked:e.checked=t),e.children&&e.children.forEach(e=>O(e,t))}function ee(e,t){let n=[];return e.forEach(e=>{let r=e.originValues?t.some(t=>Array.from(e.originValues).some(e=>e.toLowerCase().includes(t.toLowerCase()))):!1,i=!r&&t.some(t=>e.title.toLowerCase().includes(t.toLowerCase()));if(r||i)n.push({...e});else if(e.children){let r=ee(e.children,t);if(r.length>0){let t=r.reduce((e,t)=>e+t.count,0);n.push({...e,count:t,children:r})}}}),n}function k(e){"@babel/helpers - typeof";return k=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},k(e)}function te(e,t){if(k(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(k(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ne(e){var t=te(e,`string`);return k(t)==`symbol`?t:t+``}function A(e,t,n){return(t=ne(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var j,M,N;(0,e.createIdentifier)(`sheets-filter-ui.sheets-filter-panel.service`);let P=class extends e.Disposable{get filterBy(){return this._filterBy$.getValue()}get filterByModel(){return this._filterByModel}set filterByModel(e){this._filterByModel=e,this._filterByModel$.next(e)}get filterModel(){return this._filterModel}get col(){return this._col$.getValue()}constructor(e,n){super(),this._injector=e,this._refRangeService=n,A(this,`_filterBy$`,new o.BehaviorSubject(t.FilterBy.VALUES)),A(this,`filterBy$`,this._filterBy$.asObservable()),A(this,`_filterByModel$`,new o.ReplaySubject(1)),A(this,`filterByModel$`,this._filterByModel$.asObservable()),A(this,`_filterByModel`,null),A(this,`_hasCriteria$`,new o.BehaviorSubject(!1)),A(this,`hasCriteria$`,this._hasCriteria$.asObservable()),A(this,`_filterModel`,null),A(this,`_col$`,new o.BehaviorSubject(-1)),A(this,`col$`,this._col$.asObservable()),A(this,`_filterHeaderListener`,null)}dispose(){this._filterBy$.complete(),this._filterByModel$.complete(),this._hasCriteria$.complete()}setupCol(e,t){this.terminate(),this._filterModel=e,this._col$.next(t);let n=e.getFilterColumn(t);if(n){let r=n.getColumnData();if(r.customFilters){this._hasCriteria$.next(!0),this._setupByConditions(e,t);return}if(r.colorFilters){this._hasCriteria$.next(!0),this._setupByColors(e,t);return}if(r.filters){this._hasCriteria$.next(!0),this._setupByValues(e,t);return}this._hasCriteria$.next(!1),this._setupByValues(e,t);return}this._hasCriteria$.next(!1),this._setupByValues(e,t)}changeFilterBy(e){if(!this._filterModel||this.col===-1)return!1;switch(e){case t.FilterBy.VALUES:this._setupByValues(this._filterModel,this.col);break;case t.FilterBy.COLORS:this._setupByColors(this._filterModel,this.col);break;case t.FilterBy.CONDITIONS:this._setupByConditions(this._filterModel,this.col);break}return!0}terminate(){return this._filterModel=null,this._col$.next(-1),this._disposeFilterHeaderChangeListener(),!0}_disposeFilterHeaderChangeListener(){var e;(e=this._filterHeaderListener)==null||e.dispose(),this._filterHeaderListener=null}_listenToFilterHeaderChange(e,t){this._disposeFilterHeaderChangeListener();let n=e.unitId,r=e.subUnitId,i=e.getRange(),a={startColumn:t,startRow:i.startRow,endRow:i.startRow,endColumn:t};this._filterHeaderListener=this._refRangeService.watchRange(n,r,a,(e,t)=>{if(!t)this.terminate();else{let n=t.startColumn-e.startColumn;n!==0&&this._filterByModel.deltaCol(n)}})}async _setupByValues(e,n){this._disposePreviousModel();let r=e.getRange();return r.startRow===r.endRow?!1:(this.filterByModel=await I.fromFilterColumn(this._injector,e,n),this._filterBy$.next(t.FilterBy.VALUES),this._listenToFilterHeaderChange(e,n),!0)}async _setupByColors(e,n){this._disposePreviousModel();let r=e.getRange();return r.startRow===r.endRow?!1:(this.filterByModel=await L.fromFilterColumn(this._injector,e,n),this._filterBy$.next(t.FilterBy.COLORS),this._listenToFilterHeaderChange(e,n),!0)}_setupByConditions(e,n){this._disposePreviousModel();let r=e.getRange();return r.startRow===r.endRow?!1:(this.filterByModel=F.fromFilterColumn(this._injector,e,n,e.getFilterColumn(n)),this._filterBy$.next(t.FilterBy.CONDITIONS),this._listenToFilterHeaderChange(e,n),!0)}_disposePreviousModel(){var e;(e=this._filterByModel)==null||e.dispose(),this.filterByModel=null}};P=v([_(0,(0,e.Inject)(e.Injector)),_(1,(0,e.Inject)(a.RefRangeService))],P);let F=j=class extends e.Disposable{static fromFilterColumn(e,t,n,r){let[i,a]=m.testMappingFilterColumn(r==null?void 0:r.getColumnData());return e.createInstance(j,t,n,i,a)}get conditionItem(){return this._conditionItem$.getValue()}get filterConditionFormParams(){return this._filterConditionFormParams$.getValue()}constructor(e,t,n,r,i){super(),this._filterModel=e,this.col=t,this._commandService=i,A(this,`canApply$`,(0,o.of)(!0)),A(this,`_conditionItem$`,void 0),A(this,`conditionItem$`,void 0),A(this,`_filterConditionFormParams$`,void 0),A(this,`filterConditionFormParams$`,void 0),this._conditionItem$=new o.BehaviorSubject(n),this.conditionItem$=this._conditionItem$.asObservable(),this._filterConditionFormParams$=new o.BehaviorSubject(r),this.filterConditionFormParams$=this._filterConditionFormParams$.asObservable()}dispose(){super.dispose(),this._conditionItem$.complete(),this._filterConditionFormParams$.complete()}deltaCol(e){this.col+=e}clear(){return this._disposed?Promise.resolve(!1):this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:null})}async apply(){if(this._disposed)return!1;let e=m.mapToFilterColumn(this.conditionItem,this.filterConditionFormParams);return this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:e})}onPrimaryConditionChange(e){let t=m.ALL_CONDITIONS.find(t=>t.operator===e);if(!t)throw Error(`[ByConditionsModel]: condition item not found for operator: ${e}!`);this._conditionItem$.next(t),this._filterConditionFormParams$.next(m.getInitialFormParams(e))}onConditionFormChange(e){let t={...this.filterConditionFormParams,...e};if(t.and!==!0&&delete t.and,e.and!==void 0||e.operator1!==void 0||e.operator2!==void 0){let e=m.testMappingParams(t,this.conditionItem.numOfParameters);this._conditionItem$.next(e)}this._filterConditionFormParams$.next(t)}};F=j=v([_(4,e.ICommandService)],F);let I=M=class extends e.Disposable{static async fromFilterColumn(t,n,r){let i=t.get(e.IUniverInstanceService),a=t.get(e.LocaleService),o=t.get(b,e.Quantity.OPTIONAL),{unitId:s,subUnitId:c}=n,l=i.getUniverSheetInstance(s);if(!l)throw Error(`[ByValuesModel]: Workbook not found for filter model with unitId: ${s}!`);let u=l==null?void 0:l.getSheetBySheetId(c);if(!u)throw Error(`[ByValuesModel]: Worksheet not found for filter model with unitId: ${s} and subUnitId: ${c}!`);let d=n.getRange(),f=r,p=n.getFilterColumn(r),m=p==null?void 0:p.getColumnData().filters,h=new Set(m==null?void 0:m.filters),g=!!(m&&m.blank),_=n.getFilteredOutRowsExceptCol(r),v={...d,startRow:d.startRow+1,startColumn:f,endColumn:f},y,x;if(o){let e=await o.getFilterValues({unitId:s,subUnitId:c,filteredOutRowsByOtherColumns:Array.from(_),filterColumn:p,filters:!!m,blankChecked:g,iterateRange:v,alreadyChecked:Array.from(h)});y=e.filterTreeItems,x=e.filterTreeMapCache}else{let e=S(!!m,a,v,u,_,p,h,g,l.getStyles());y=e.filterTreeItems,x=e.filterTreeMapCache}return t.createInstance(M,n,r,y,x)}get rawFilterItems(){return this._rawFilterItems$.getValue()}get filterItems(){return this._filterItems}get treeMapCache(){return this._treeMapCache}constructor(e,t,n,r,i){super(),this._filterModel=e,this.col=t,this._commandService=i,A(this,`_rawFilterItems$`,void 0),A(this,`rawFilterItems$`,void 0),A(this,`filterItems$`,void 0),A(this,`_filterItems`,[]),A(this,`_treeMapCache`,void 0),A(this,`canApply$`,void 0),A(this,`_manuallyUpdateFilterItems$`,void 0),A(this,`_searchString$`,void 0),A(this,`searchString$`,void 0),this._treeMapCache=r,this._searchString$=new o.BehaviorSubject(``),this.searchString$=this._searchString$.asObservable(),this._rawFilterItems$=new o.BehaviorSubject(n),this.rawFilterItems$=this._rawFilterItems$.asObservable(),this._manuallyUpdateFilterItems$=new o.Subject,this.filterItems$=(0,o.merge)((0,o.combineLatest)([this._searchString$.pipe((0,o.throttleTime)(500,void 0,{leading:!0,trailing:!0}),(0,o.startWith)(void 0)),this._rawFilterItems$]).pipe((0,o.map)(([e,t])=>e?ee(t,e.toLowerCase().split(/\s+/).filter(e=>!!e)):t)),this._manuallyUpdateFilterItems$).pipe((0,o.shareReplay)(1)),this.canApply$=this.filterItems$.pipe((0,o.map)(e=>g(e).checked>0)),this.disposeWithMe(this.filterItems$.subscribe(e=>this._filterItems=e))}dispose(){this._rawFilterItems$.complete(),this._searchString$.complete()}deltaCol(e){this.col+=e}setSearchString(e){this._searchString$.next(e)}onCheckAllToggled(t){let n=e.Tools.deepClone(this._filterItems);n.forEach(e=>O(e,t)),this._manuallyUpdateFilterItems(n)}onFilterCheckToggled(t){let n=e.Tools.deepClone(this._filterItems),r=E(n,t.key);r&&(O(r,!D(r)),this._manuallyUpdateFilterItems(n))}onFilterOnly(t){let n=e.Tools.deepClone(this._filterItems);n.forEach(e=>O(e,!1)),t.forEach(e=>{let t=E(n,e);t&&O(t,!0)}),this._manuallyUpdateFilterItems(n)}_manuallyUpdateFilterItems(e){this._manuallyUpdateFilterItems$.next(e)}clear(){return this._disposed?Promise.resolve(!1):this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:null})}async apply(){if(this._disposed)return!1;let e=g(this._filterItems),{checked:n,checkedItems:r}=e,i=this.rawFilterItems,a=0;for(let e of i)a+=e.count;let o=n===0,s=e.checked===a,c={colId:this.col};if(o)throw Error(`[ByValuesModel]: no checked items!`);if(s)return this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:null});{c.filters={};let e=r.filter(e=>e.key!==`empty`);e.length>0&&(c.filters={filters:e.flatMap(e=>e.originValues?Array.from(e.originValues):[e.title])}),e.length!==r.length&&(c.filters.blank=!0)}return this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:c})}};I=M=v([_(4,e.ICommandService)],I);let L=N=class extends e.Disposable{static async fromFilterColumn(t,n,r){var a,o,s;let c=t.get(e.IUniverInstanceService),{unitId:l,subUnitId:u}=n,d=c.getUniverSheetInstance(l);if(!d)throw Error(`[ByColorsModel]: Workbook not found for filter model with unitId: ${l}!`);let f=d==null?void 0:d.getSheetBySheetId(u);if(!f)throw Error(`[ByColorsModel]: Worksheet not found for filter model with unitId: ${l} and subUnitId: ${u}!`);let p=n.getRange(),m=r,h=(a=n.getFilterColumn(r))==null?void 0:a.getColumnData().colorFilters,g=n.getFilteredOutRowsExceptCol(r),_={...p,startRow:p.startRow+1,startColumn:m,endColumn:m},v=new Map,y=new Set((o=h==null?void 0:h.cellFillColors)==null?[]:o),b=new Map,x=new Set((s=h==null?void 0:h.cellTextColors)==null?[]:s);for(let t of f.iterateByColumn(_,!1,!0)){let{row:n,col:r,value:a}=t;if(g.has(n))continue;let o=f.getComposedCellStyleByCellData(n,r,a);if(o.bg&&o.bg.rgb){let t=new e.ColorKit(o.bg.rgb).toRgbString();v.has(t)||v.set(t,{color:t,checked:y.has(t)})}else v.set(`default-fill-color`,{color:null,checked:y.has(null)});if(o.cl&&o.cl.rgb){let t=new e.ColorKit(o.cl.rgb).toRgbString();b.has(t)||b.set(t,{color:t,checked:x.has(t)})}else b.set(`default-font-color`,{color:i.COLOR_BLACK_RGB,checked:x.has(i.COLOR_BLACK_RGB)})}return t.createInstance(N,n,r,v,b)}get cellFillColors(){return this._cellFillColors$.getValue()}get cellTextColors(){return this._cellTextColors$.getValue()}constructor(e,t,n,r,i){super(),this._filterModel=e,this.col=t,this._commandService=i,A(this,`canApply$`,(0,o.of)(!0)),A(this,`_cellFillColors$`,void 0),A(this,`cellFillColors$`,void 0),A(this,`_cellTextColors$`,void 0),A(this,`cellTextColors$`,void 0),this._cellFillColors$=new o.BehaviorSubject(Array.from(n.values())),this.cellFillColors$=this._cellFillColors$.asObservable(),this._cellTextColors$=new o.BehaviorSubject(Array.from(r.values())),this.cellTextColors$=this._cellTextColors$.asObservable()}dispose(){super.dispose(),this._cellFillColors$.complete()}deltaCol(e){this.col+=e}clear(){return this._disposed?Promise.resolve(!1):this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:null})}onFilterCheckToggled(e,t=!0){let n=t?this.cellFillColors:this.cellTextColors,r=[],i=!1;for(let t=0;t<n.length;t++){let a=n[t];if(a.color===e.color){i=!0,r.push({color:a.color,checked:!a.checked});continue}r.push({color:a.color,checked:a.checked})}i&&(this._resetColorsCheckedStatus(!t),t?this._cellFillColors$.next([...r]):this._cellTextColors$.next([...r]))}_resetColorsCheckedStatus(e=!0){let t=e?this.cellFillColors:this.cellTextColors,n=[];for(let e=0;e<t.length;e++)n.push({color:t[e].color,checked:!1});e?this._cellFillColors$.next([...n]):this._cellTextColors$.next([...n])}async apply(){if(this._disposed)return!1;let e=this.cellFillColors.filter(e=>e.checked).map(e=>e.color),n=this.cellTextColors.filter(e=>e.checked).map(e=>e.color);if(e.length===0&&n.length===0)return this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:null});let r={colId:this.col};return e.length>0?r.colorFilters={cellFillColors:e}:n.length>0&&(r.colorFilters={cellTextColors:n}),this._commandService.executeCommand(t.SetSheetsFilterCriteriaCommand.id,{unitId:this._filterModel.unitId,subUnitId:this._filterModel.subUnitId,col:this.col,criteria:r})}};L=N=v([_(4,e.ICommandService)],L);const R=`FILTER_PANEL_OPENED`,z={id:`sheet.operation.open-filter-panel`,type:e.CommandType.OPERATION,handler:(r,i)=>{let a=r.get(e.IContextService),o=r.get(t.SheetsFilterService),s=r.get(P),c=r.get(e.ICommandService),l=r.has(n.IEditorBridgeService)?r.get(n.IEditorBridgeService):null;l!=null&&l.isVisible().visible&&c.syncExecuteCommand(n.SetCellEditVisibleOperation.id,{visible:!1});let{unitId:u,subUnitId:d,col:f}=i,p=o.getFilterModel(u,d);return p?(s.setupCol(p,f),a.getContextValue(`FILTER_PANEL_OPENED`)||a.setContextValue(R,!0),!0):!1}},B={id:`sheet.operation.close-filter-panel`,type:e.CommandType.OPERATION,handler:t=>{let n=t.get(e.IContextService),i=t.get(P),a=t.get(r.ILayoutService,e.Quantity.OPTIONAL);return n.getContextValue(`FILTER_PANEL_OPENED`)?(n.setContextValue(R,!1),a==null||a.focus(),i.terminate()):!1}},V={id:`sheet.operation.apply-filter`,type:e.CommandType.OPERATION,handler:(e,t)=>{let{filterBy:n}=t;return e.get(P).changeFilterBy(n)}};var H=`@univerjs/sheets-filter-ui`,U=`0.19.0`;const W=`sheets-filter-ui.config`;Symbol(W);const G={};let K=class extends e.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetsFilterService=e,this._localeService=t,this._commandService=n,this._sheetPermissionCheckPermission=r,this._injector=i,this._sheetsSelectionService=a,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(n=>{if(n.id===t.SmartToggleSheetsFilterCommand.id){var r;let t=(0,a.getSheetCommandTarget)(this._injector.get(e.IUniverInstanceService));if(!t)return;let{unitId:n,subUnitId:o,worksheet:s}=t,c=(r=this._sheetsFilterService.getFilterModel(n,o))==null?void 0:r.getRange(),l;if(c)l=this._sheetPermissionCheckPermission.permissionCheckWithRanges({rangeTypes:[a.RangeProtectionPermissionViewPoint],worksheetTypes:[a.WorksheetFilterPermission,a.WorksheetViewPermission]},[c],n,o);else{var i;let e=(i=this._sheetsSelectionService.getCurrentLastSelection())==null?void 0:i.range;if(e){let t={...e};t=e.startColumn===e.endColumn&&e.startRow===e.endRow?(0,a.expandToContinuousRange)(t,{left:!0,right:!0,up:!0,down:!0},s):t,l=this._sheetPermissionCheckPermission.permissionCheckWithRanges({rangeTypes:[a.RangeProtectionPermissionViewPoint],worksheetTypes:[a.WorksheetViewPermission,a.WorksheetFilterPermission]},[t],n,o)}else l=this._sheetPermissionCheckPermission.permissionCheckWithoutRange({rangeTypes:[a.RangeProtectionPermissionViewPoint],worksheetTypes:[a.WorksheetViewPermission,a.WorksheetFilterPermission]})}l||this._sheetPermissionCheckPermission.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.filterErr`))}if(n.id===z.id){var o;let t=n.params,{unitId:r,subUnitId:i}=t,s=(o=this._sheetsFilterService.getFilterModel(r,i))==null?void 0:o.getRange(),c=e.Tools.deepClone(s);c&&(c.startColumn=t.col,c.endColumn=t.col,this._sheetPermissionCheckPermission.permissionCheckWithRanges({rangeTypes:[a.RangeProtectionPermissionViewPoint],worksheetTypes:[a.WorksheetFilterPermission,a.WorksheetViewPermission]},[c],r,i)||this._sheetPermissionCheckPermission.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.filterErr`)))}}))}};K=v([_(0,(0,e.Inject)(t.SheetsFilterService)),_(1,(0,e.Inject)(e.LocaleService)),_(2,e.ICommandService),_(3,(0,e.Inject)(a.SheetPermissionCheckController)),_(4,(0,e.Inject)(e.Injector)),_(5,(0,e.Inject)(a.SheetsSelectionsService))],K);const re=new Path2D(`M3.30363 3C2.79117 3 2.51457 3.60097 2.84788 3.99024L6.8 8.60593V12.5662C6.8 12.7184 6.8864 12.8575 7.02289 12.9249L8.76717 13.7863C8.96655 13.8847 9.2 13.7396 9.2 13.5173V8.60593L13.1521 3.99024C13.4854 3.60097 13.2088 3 12.6964 3H3.30363Z`);var ie=class{static drawNoCriteria(e,t,n,r){e.save(),i.Rect.drawWith(e,{radius:2,width:16,height:16,fill:r}),e.lineCap=`square`,e.strokeStyle=n,e.scale(t/16,t/16),e.beginPath(),e.lineWidth=1,e.lineCap=`round`,e.moveTo(3,4),e.lineTo(13,4),e.moveTo(4.5,8),e.lineTo(11.5,8),e.moveTo(6,12),e.lineTo(10,12),e.stroke(),e.restore()}static drawHasCriteria(e,t,n,r){e.save(),i.Rect.drawWith(e,{radius:2,width:16,height:16,fill:r}),e.scale(t/16,t/16),e.fillStyle=n,e.fill(re),e.restore()}};let q=class extends i.Shape{constructor(e,t,n,r,i){super(e,t),this._contextService=n,this._commandService=r,this._themeService=i,A(this,`_cellWidth`,0),A(this,`_cellHeight`,0),A(this,`_filterParams`,void 0),A(this,`_hovered`,!1),this.setShapeProps(t),this.onPointerDown$.subscribeEvent(e=>this.onPointerDown(e)),this.onPointerEnter$.subscribeEvent(()=>this.onPointerEnter()),this.onPointerLeave$.subscribeEvent(()=>this.onPointerLeave())}setShapeProps(e){e.cellHeight!==void 0&&(this._cellHeight=e.cellHeight),e.cellWidth!==void 0&&(this._cellWidth=e.cellWidth),e.filterParams!==void 0&&(this._filterParams=e.filterParams),this.transformByState({width:e.width,height:e.height})}_draw(e){let t=this._cellHeight,n=this._cellWidth,r=16-n,i=16-t;e.save();let a=new Path2D;a.rect(r,i,n,t),e.clip(a);let{hasCriteria:o}=this._filterParams,s=this._themeService.getColorFromTheme(`primary.600`),c=this._hovered?this._themeService.getColorFromTheme(`gray.50`):`rgba(255, 255, 255, 1.0)`;o?ie.drawHasCriteria(e,16,s,c):ie.drawNoCriteria(e,16,s,c),e.restore()}onPointerDown(e){if(e.button===2)return;let{col:t,unitId:n,subUnitId:r}=this._filterParams;this._contextService.getContextValue(`FILTER_PANEL_OPENED`)||!this._commandService.hasCommand(z.id)||setTimeout(()=>{this._commandService.executeCommand(z.id,{unitId:n,subUnitId:r,col:t})},200)}onPointerEnter(){this._hovered=!0,this.makeDirty(!0)}onPointerLeave(){this._hovered=!1,this.makeDirty(!0)}};q=v([_(2,e.IContextService),_(3,e.ICommandService),_(4,(0,e.Inject)(e.ThemeService))],q);function ae(t,n,r,i){switch(i){case e.VerticalAlign.TOP:return t+1;case e.VerticalAlign.MIDDLE:return t+Math.max(0,(r-16)/2);case e.VerticalAlign.BOTTOM:default:return n-16-1}}let J=class extends e.RxDisposable{constructor(e,t,n,r,i,a,o,s){super(),this._context=e,this._injector=t,this._sheetSkeletonManagerService=n,this._sheetsFilterService=r,this._themeService=i,this._sheetInterceptorService=a,this._commandService=o,this._selectionRenderService=s,A(this,`_currentRenderParams`,null),A(this,`_filterRangeShape`,null),A(this,`_buttonRenderDisposable`,null),A(this,`_filterButtonShapes`,[]),this._initRenderer()}dispose(){super.dispose(),this._disposeRendering()}_initRenderer(){this.disposeWithMe(this._themeService.currentTheme$.subscribe(()=>{this._refreshRendering(this._currentRenderParams)})),this._sheetSkeletonManagerService.currentSkeleton$.pipe((0,o.switchMap)(n=>{var r,i;if(!n)return(0,o.of)(null);let{unit:s,unitId:c}=this._context,l=((r=s.getActiveSheet())==null?void 0:r.getSheetId())||``,u=(i=this._sheetsFilterService.getFilterModel(c,l))==null?void 0:i,d=()=>({unitId:c,worksheetId:l,filterModel:u,range:u==null?void 0:u.getRange(),skeleton:n.skeleton});return(0,e.fromCallback)(this._commandService.onCommandExecuted.bind(this._commandService)).pipe((0,o.filter)(([n])=>{var r;return n.type===e.CommandType.MUTATION&&((r=n.params)==null?void 0:r.unitId)===s.getUnitId()&&(t.FILTER_MUTATIONS.has(n.id)||n.id===a.SetRangeValuesMutation.id)}),(0,o.throttleTime)(20,void 0,{leading:!1,trailing:!0}),(0,o.map)(d),(0,o.startWith)(d()))}),(0,o.takeUntil)(this.dispose$)).subscribe(e=>{this._currentRenderParams=e,this._refreshRendering(e)})}_refreshRendering(e){this._disposeRendering(),!(!e||!e.range)&&(this._renderRange(e.range,e.skeleton),this._renderButtons(e))}_renderRange(e,t){let{scene:r}=this._context,{rowHeaderWidth:i,columnHeaderHeight:a}=t,o=this._filterRangeShape=new n.SelectionControl(r,1e3,this._themeService,{rowHeaderWidth:i,columnHeaderHeight:a,enableAutoFill:!1,highlightHeader:!1}),s=(0,n.attachSelectionWithCoord)({range:e,primary:null,style:{fill:`rgba(0, 0, 0, 0.0)`}},t);o.updateRangeBySelectionWithCoord(s),o.setEvent(!1),r.makeDirty(!0)}_renderButtons(t){let{range:r,filterModel:i,unitId:a,skeleton:o,worksheetId:s}=t,{unit:c,scene:l}=this._context,u=c.getSheetBySheetId(s);if(!u)return;this._interceptCellContent(a,s,t.range);let{startColumn:d,endColumn:f,startRow:p}=r;for(let t=d;t<=f;t++){let r=`sheets-filter-button-${t}`,c=(0,n.getCoordByCell)(p,t,l,o),d=u.getComposedCellStyle(p,t),f=(d==null?void 0:d.vt)||e.VerticalAlign.BOTTOM,{startX:m,startY:h,endX:g,endY:_}=c,v=g-m,y=_-h;if(y<=1||v<=1)continue;let b=!!i.getFilterColumn(t),x={left:g-16-1,top:ae(h,_,y,f),height:16,width:16,zIndex:5e3,cellHeight:y,cellWidth:v,filterParams:{unitId:a,subUnitId:s,col:t,hasCriteria:b}},S=this._injector.createInstance(q,r,x);this._filterButtonShapes.push(S)}l.addObjects(this._filterButtonShapes),l.makeDirty()}_interceptCellContent(t,n,r){let{startRow:i,startColumn:o,endColumn:s}=r;this._buttonRenderDisposable=this._sheetInterceptorService.intercept(a.INTERCEPTOR_POINT.CELL_CONTENT,{effect:e.InterceptorEffectEnum.Style,handler:(e,r,a)=>{let{row:c,col:l,unitId:u,subUnitId:d}=r;return u!==t||d!==n||c!==i||l<o||l>s?a(e):((!e||e===r.rawData)&&(e={...r.rawData}),e.fontRenderExtension={...e==null?void 0:e.fontRenderExtension,rightOffset:16},a(e))},priority:10})}_disposeRendering(){var e,t;(e=this._filterRangeShape)==null||e.dispose(),this._filterButtonShapes.forEach(e=>e.dispose()),(t=this._buttonRenderDisposable)==null||t.dispose(),this._filterRangeShape=null,this._buttonRenderDisposable=null,this._filterButtonShapes=[]}};J=v([_(1,(0,e.Inject)(e.Injector)),_(2,(0,e.Inject)(n.SheetSkeletonManagerService)),_(3,(0,e.Inject)(t.SheetsFilterService)),_(4,(0,e.Inject)(e.ThemeService)),_(5,(0,e.Inject)(a.SheetInterceptorService)),_(6,e.ICommandService),_(7,n.ISheetSelectionRenderService)],J);let Y=class extends e.RxDisposable{constructor(n,r){super(),this._renderManagerService=n,this._sheetsRenderService=r,[t.SetSheetsFilterRangeMutation,t.SetSheetsFilterCriteriaMutation,t.RemoveSheetsFilterMutation,t.ReCalcSheetsFilterMutation].forEach(e=>this.disposeWithMe(this._sheetsRenderService.registerSkeletonChangingMutations(e.id))),this.disposeWithMe(this._renderManagerService.registerRenderModule(e.UniverInstanceType.UNIVER_SHEET,[J]))}};Y=v([_(0,i.IRenderManagerService),_(1,(0,e.Inject)(n.SheetsRenderService))],Y);let X=class extends e.Plugin{constructor(t=G,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{menu:i,...a}=(0,e.merge)({},G,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(W,a)}onStarting(){[[K],[Y]].forEach(e=>this._injector.add(e))}onReady(){this._injector.get(K)}onRendered(){this._injector.get(Y)}};A(X,`type`,e.UniverInstanceType.UNIVER_SHEET),A(X,`pluginName`,`SHEET_FILTER_UI_PLUGIN`),A(X,`packageName`,H),A(X,`version`,U),X=v([(0,e.DependentOn)(t.UniverSheetsFilterPlugin),_(1,(0,e.Inject)(e.Injector)),_(2,e.IConfigService)],X);function oe(i){let s=i.get(t.SheetsFilterService);return{id:t.SmartToggleSheetsFilterCommand.id,type:r.MenuItemType.BUTTON_SELECTOR,icon:`FilterIcon`,tooltip:`sheets-filter.toolbar.smart-toggle-filter-tooltip`,hidden$:(0,r.getMenuHiddenObservable)(i,e.UniverInstanceType.UNIVER_SHEET),activated$:s.activeFilterModel$.pipe((0,o.map)(e=>!!e)),disabled$:(0,n.getObservableWithExclusiveRange$)(i,(0,n.getCurrentRangeDisable$)(i,{worksheetTypes:[a.WorksheetFilterPermission,a.WorksheetViewPermission],rangeTypes:[a.RangeProtectionPermissionViewPoint]}))}}function se(n){let i=n.get(t.SheetsFilterService);return{id:t.ClearSheetsFilterCriteriaCommand.id,type:r.MenuItemType.BUTTON,title:`sheets-filter.toolbar.clear-filter-criteria`,hidden$:(0,r.getMenuHiddenObservable)(n,e.UniverInstanceType.UNIVER_SHEET),disabled$:i.activeFilterModel$.pipe((0,o.switchMap)(e=>{var t;return(t=e==null?void 0:e.hasCriteria$.pipe((0,o.map)(e=>!e)))==null?(0,o.of)(!0):t}))}}function ce(n){let i=n.get(t.SheetsFilterService);return{id:t.ReCalcSheetsFilterCommand.id,type:r.MenuItemType.BUTTON,title:`sheets-filter.toolbar.re-calc-filter-conditions`,hidden$:(0,r.getMenuHiddenObservable)(n,e.UniverInstanceType.UNIVER_SHEET),disabled$:i.activeFilterModel$.pipe((0,o.switchMap)(e=>{var t;return(t=e==null?void 0:e.hasCriteria$.pipe((0,o.map)(e=>!e)))==null?(0,o.of)(!0):t}))}}const le={[r.RibbonDataGroup.ORGANIZATION]:{[t.SmartToggleSheetsFilterCommand.id]:{order:2,menuItemFactory:oe,[t.ClearSheetsFilterCriteriaCommand.id]:{order:0,menuItemFactory:se},[t.ReCalcSheetsFilterCommand.id]:{order:1,menuItemFactory:ce}}}};function ue(t){let{model:n}=t,i=(0,r.useDependency)(e.LocaleService),a=(0,r.useObservable)(n.cellFillColors$,[],!0),o=(0,r.useObservable)(n.cellTextColors$,[],!0),s=(0,u.useCallback)(e=>{n.onFilterCheckToggled(e)},[n]),f=(0,u.useCallback)(e=>{n.onFilterCheckToggled(e,!1)},[n]);return(0,d.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-colors-container`,className:`univer-flex univer-h-full univer-min-h-[300px] univer-flex-col`,children:(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel`,className:(0,c.clsx)(`univer-mt-2 univer-box-border univer-flex univer-h-[300px] univer-flex-grow univer-flex-col univer-gap-4 univer-overflow-auto univer-rounded-md univer-px-2 univer-py-2.5`,c.borderClassName),children:[a.length>1&&(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`univer-mb-2 univer-text-sm univer-text-gray-900 dark:!univer-text-white`,children:i.t(`sheets-filter.panel.filter-by-cell-fill-color`)}),(0,d.jsx)(`div`,{className:`univer-grid univer-grid-cols-8 univer-items-center univer-justify-start univer-gap-2`,children:a.map((e,t)=>(0,d.jsxs)(`div`,{className:`univer-relative univer-size-6`,onClick:()=>s(e),children:[e.color?(0,d.jsx)(`button`,{type:`button`,className:(0,c.clsx)(`univer-box-border univer-size-6 univer-cursor-pointer univer-rounded-full univer-border univer-border-solid univer-border-transparent univer-bg-gray-300 univer-transition-shadow hover:univer-ring-2 hover:univer-ring-offset-2 hover:univer-ring-offset-white`),style:{backgroundColor:e.color}}):(0,d.jsx)(l.BanIcon,{className:`univer-size-6 univer-cursor-pointer univer-rounded-full hover:univer-ring-2 hover:univer-ring-offset-2 hover:univer-ring-offset-white`}),e.checked&&(0,d.jsx)(de,{})]},`sheets-filter-cell-fill-color-${t}`))})]}),o.length>1&&(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`univer-mb-2 univer-text-sm univer-text-gray-900 dark:!univer-text-white`,children:i.t(`sheets-filter.panel.filter-by-cell-text-color`)}),(0,d.jsx)(`div`,{className:`univer-grid univer-grid-cols-8 univer-items-center univer-justify-start univer-gap-2`,children:o.map((e,t)=>(0,d.jsxs)(`div`,{className:`univer-relative univer-size-6`,onClick:()=>f(e),children:[(0,d.jsx)(`div`,{className:`univer-box-border univer-flex univer-size-full univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-full univer-border univer-border-solid univer-border-[rgba(13,13,13,0.06)] univer-p-0.5 hover:univer-ring-2 hover:univer-ring-offset-2 hover:univer-ring-offset-white dark:!univer-border-[rgba(255,255,255,0.06)]`,children:(0,d.jsx)(l.AIcon,{style:{color:e.color}})}),e.checked&&(0,d.jsx)(de,{})]},`sheets-filter-cell-text-color-${t}`))})]}),a.length<=1&&o.length<=1&&(0,d.jsx)(`div`,{className:`univer-flex univer-size-full univer-items-center univer-justify-center univer-text-sm univer-text-gray-900 dark:!univer-text-gray-200`,children:i.t(`sheets-filter.panel.filter-by-color-none`)})]})})}function de(){return(0,d.jsx)(`div`,{className:`univer-absolute -univer-bottom-0.5 -univer-right-0.5 univer-flex univer-size-3 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded-full univer-bg-white`,children:(0,d.jsx)(l.SuccessIcon,{className:`univer-size-full univer-font-bold univer-text-[#418F1F]`})})}function fe(t){var n,i;let{model:a}=t,o=(0,r.useDependency)(e.LocaleService),s=(0,r.useObservable)(a.conditionItem$,void 0),l=(0,r.useObservable)(a.filterConditionFormParams$,void 0),f=l!=null&&l.and?`AND`:`OR`,p=(0,u.useCallback)(e=>{a.onConditionFormChange({and:e===`AND`})},[a]),h=pe(o),g=(0,u.useCallback)(e=>{a.onPrimaryConditionChange(e)},[a]),_=me(o),v=(0,u.useCallback)(e=>{a.onConditionFormChange(e)},[a]),y=o.t(`sheets-filter.panel.input-values-placeholder`);function b(e,t,n){let r=m.getItemByOperator(e).numOfParameters===1;return(0,d.jsxs)(d.Fragment,{children:[n===`operator2`&&(0,d.jsxs)(c.RadioGroup,{value:f,onChange:p,children:[(0,d.jsx)(c.Radio,{value:`AND`,children:o.t(`sheets-filter.panel.and`)}),(0,d.jsx)(c.Radio,{value:`OR`,children:o.t(`sheets-filter.panel.or`)})]}),(0,d.jsx)(c.Select,{value:e,options:_,onChange:e=>v({[n]:e})}),r&&(0,d.jsx)(`div`,{children:(0,d.jsx)(c.Input,{className:`univer-mt-2`,value:t,placeholder:y,onChange:e=>v({[n===`operator1`?`val1`:`val2`]:e})})})]})}return(0,d.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-conditions-container`,className:`univer-flex univer-h-full univer-min-h-[300px] univer-flex-col`,children:s&&l&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c.Select,{value:s.operator,options:h,onChange:g}),m.getItemByOperator(s.operator).numOfParameters===0?null:(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-conditions-container-inner`,className:(0,c.clsx)(`univer-mt-2 univer-flex-grow univer-overflow-hidden univer-rounded-md univer-p-2`,c.borderClassName),children:[s.numOfParameters>=1&&b(l.operator1,(n=l.val1)==null?``:n,`operator1`),s.numOfParameters>=2&&b(l.operator2,(i=l.val2)==null?``:i,`operator2`),(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-conditions-desc`,className:`univer-mt-2 univer-text-xs univer-text-gray-500`,children:[o.t(`sheets-filter.panel.?`),(0,d.jsx)(`br`,{}),o.t(`sheets-filter.panel.*`)]})]})]})})}function pe(e){return(0,u.useMemo)(()=>[{options:[{label:e.t(m.NONE.label),value:m.NONE.operator}]},{options:[{label:e.t(m.EMPTY.label),value:m.EMPTY.operator},{label:e.t(m.NOT_EMPTY.label),value:m.NOT_EMPTY.operator}]},{options:[{label:e.t(m.TEXT_CONTAINS.label),value:m.TEXT_CONTAINS.operator},{label:e.t(m.DOES_NOT_CONTAIN.label),value:m.DOES_NOT_CONTAIN.operator},{label:e.t(m.STARTS_WITH.label),value:m.STARTS_WITH.operator},{label:e.t(m.ENDS_WITH.label),value:m.ENDS_WITH.operator},{label:e.t(m.EQUALS.label),value:m.EQUALS.operator}]},{options:[{label:e.t(m.GREATER_THAN.label),value:m.GREATER_THAN.operator},{label:e.t(m.GREATER_THAN_OR_EQUAL.label),value:m.GREATER_THAN_OR_EQUAL.operator},{label:e.t(m.LESS_THAN.label),value:m.LESS_THAN.operator},{label:e.t(m.LESS_THAN_OR_EQUAL.label),value:m.LESS_THAN_OR_EQUAL.operator},{label:e.t(m.EQUAL.label),value:m.EQUAL.operator},{label:e.t(m.NOT_EQUAL.label),value:m.NOT_EQUAL.operator},{label:e.t(m.BETWEEN.label),value:m.BETWEEN.operator},{label:e.t(m.NOT_BETWEEN.label),value:m.NOT_BETWEEN.operator}]},{options:[{label:e.t(m.CUSTOM.label),value:m.CUSTOM.operator}]}],[e.getCurrentLocale(),e])}function me(e){return(0,u.useMemo)(()=>m.ALL_CONDITIONS.filter(e=>e.numOfParameters!==2).map(t=>({label:e.t(t.label),value:t.operator})),[e.getCurrentLocale(),e])}function he(t){let{model:n}=t,i=(0,r.useDependency)(e.LocaleService),a=(0,r.useObservable)(n.searchString$,``,!0),o=(0,r.useObservable)(n.filterItems$,void 0,!0),s=i.t(`sheets-filter.panel.filter-only`),l=g(o),f=l.checked>0&&l.unchecked===0,p=l.checked>0&&l.unchecked>0,m=n.treeMapCache,h=(0,u.useCallback)(()=>{n.onCheckAllToggled(!f)},[n,f]),_=(0,u.useCallback)(e=>{n.setSearchString(e)},[n]);function v(e){let t=[];return e.forEach(e=>{e.checked&&t.push(e.key),e.children&&(t=t.concat(v(e.children)))}),t}return(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-values-container`,className:`univer-flex univer-h-full univer-min-h-[300px] univer-flex-col`,children:[(0,d.jsx)(c.Input,{autoFocus:!0,value:a,placeholder:i.t(`sheets-filter.panel.search-placeholder`),onChange:_}),(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel`,className:(0,c.clsx)(`univer-mt-2 univer-box-border univer-flex univer-flex-grow univer-flex-col univer-overflow-hidden univer-rounded-md univer-px-2 univer-py-2.5`,c.borderClassName),children:[(0,d.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-values-item`,className:`univer-box-border univer-h-8 univer-w-full univer-py-0.5`,children:(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-values-item-inner`,className:`univer-box-border univer-flex univer-h-7 univer-items-center univer-rounded-md univer-py-0 univer-pl-5 univer-pr-0.5 univer-text-sm`,children:[(0,d.jsx)(c.Checkbox,{indeterminate:p,disabled:o.length===0,checked:f,onChange:h}),(0,d.jsx)(`span`,{"data-u-comp":`sheets-filter-panel-values-item-text`,className:`univer-mx-1 univer-inline-block univer-flex-shrink univer-truncate univer-text-gray-900 dark:!univer-text-white`,children:`${i.t(`sheets-filter.panel.select-all`)}`}),(0,d.jsx)(`span`,{"data-u-comp":`sheets-filter-panel-values-item-count`,className:`univer-text-gray-400 dark:!univer-text-gray-500`,children:`(${l.checked}/${l.checked+l.unchecked})`})]})}),(0,d.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-values-virtual`,className:`univer-flex-grow`,children:(0,d.jsx)(c.Tree,{data:o,defaultExpandAll:!1,valueGroup:v(o),onChange:e=>{n.onFilterCheckToggled(e)},defaultCache:m,itemHeight:28,treeNodeClassName:`
52
2
  univer-pr-2 univer-border-box univer-rounded-md
53
3
  [&:hover_a]:univer-inline-block
54
4
  hover:univer-bg-gray-50 univer-h-full
55
5
  univer-text-gray-900 dark:hover:!univer-bg-gray-900
56
6
  dark:!univer-text-white
57
- `,attachRender:e=>(0,d.jsxs)(`div`,{className:`
58
- univer-ml-1 univer-flex univer-h-5 univer-flex-1 univer-cursor-pointer
59
- univer-items-center univer-justify-between univer-text-sm univer-text-primary-500
60
- `,children:[(0,d.jsx)(`span`,{"data-u-comp":`sheets-filter-panel-values-item-count`,className:`
61
- univer-text-gray-400
62
- dark:!univer-text-gray-500
63
- `,children:`(${e.count})`}),(0,d.jsx)(`a`,{className:`
64
- univer-box-border univer-hidden univer-h-4 univer-whitespace-nowrap univer-px-1.5
65
- `,onClick:()=>{let t=[];e.children?e.children.forEach(e=>{e.children?e.children.forEach(e=>{t.push(e.key)}):t.push(e.key)}):t.push(e.key),n.onFilterOnly(t)},children:s})]})})})]})]})}function ge(){let n=(0,r.useDependency)(t.SheetsFilterSyncController);if(!(0,r.useObservable)(n.visible$,void 0,!0))return null;let i=(0,r.useDependency)(e.LocaleService),a=(0,r.useDependency)(r.IMessageService),o=(0,r.useObservable)(n.enabled$,void 0,!0);return(0,d.jsxs)(`div`,{className:`
66
- univer-mt-2 univer-flex univer-items-center univer-justify-between univer-text-sm univer-text-gray-900
67
- dark:!univer-text-gray-200
68
- `,children:[(0,d.jsxs)(`div`,{className:`univer-flex univer-items-center univer-gap-1`,children:[(0,d.jsx)(`span`,{children:i.t(`sheets-filter.sync.title`)}),(0,d.jsx)(c.Tooltip,{title:o?i.t(`sheets-filter.sync.statusTips.off`):i.t(`sheets-filter.sync.statusTips.on`),asChild:!0,children:(0,d.jsx)(l.InfoIcon,{className:`univer-block`})})]}),(0,d.jsx)(c.Switch,{defaultChecked:o,onChange:e=>{let t=e?i.t(`sheets-filter.sync.switchTips.on`):i.t(`sheets-filter.sync.switchTips.off`);n.setEnabled(e),a.show({content:t,type:c.MessageType.Success,duration:2e3})}})]})}function _e(){var i;let a=(0,r.useDependency)(P),s=(0,r.useDependency)(e.LocaleService),l=(0,r.useDependency)(e.ICommandService),f=(0,r.useObservable)(a.filterBy$,void 0,!0),p=(0,r.useObservable)(a.filterByModel$,void 0,!1),m=(0,r.useObservable)(()=>(p==null?void 0:p.canApply$)||(0,o.of)(!1),void 0,!1,[p]),h=ve(s),g=!(0,r.useObservable)(a.hasCriteria$),_=(0,u.useCallback)(e=>{l.executeCommand(V.id,{filterBy:e})},[l]),v=(0,u.useCallback)(async()=>{await(p==null?void 0:p.clear()),l.executeCommand(B.id)},[p,l]),y=(0,u.useCallback)(()=>{l.executeCommand(B.id)},[l]),b=(0,u.useCallback)(async()=>{await(p==null?void 0:p.apply()),l.executeCommand(B.id)},[p,l]),x=(i=(0,r.useDependency)(t.SheetsFilterService).activeFilterModel)==null?void 0:i.getRange(),S=a.col,C=(0,r.useComponentsOfPart)(n.SheetsUIPart.FILTER_PANEL_EMBED_POINT);return(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel`,className:`
69
- univer-box-border univer-flex univer-max-h-[500px] univer-w-[400px] univer-flex-col univer-rounded-lg
70
- univer-bg-white univer-p-4 univer-shadow-lg
71
- dark:!univer-border-gray-600 dark:!univer-bg-gray-700
72
- `,children:[(0,d.jsx)(r.ComponentContainer,{components:C,sharedProps:{range:x,colIndex:S,onClose:y}}),(0,d.jsx)(`div`,{className:`univer-mb-1 univer-flex-shrink-0 univer-flex-grow-0`,children:(0,d.jsx)(c.Segmented,{value:f,items:h,onChange:e=>_(e)})}),p?(0,d.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-content`,className:`univer-flex-shrink univer-flex-grow univer-pt-2`,children:f===t.FilterBy.VALUES?(0,d.jsx)(he,{model:p}):f===t.FilterBy.COLORS?(0,d.jsx)(ue,{model:p}):(0,d.jsx)(fe,{model:p})}):(0,d.jsx)(`div`,{className:`univer-flex-1`}),(0,d.jsx)(ge,{}),(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-footer`,className:`
73
- univer-mt-4 univer-inline-flex univer-flex-shrink-0 univer-flex-grow-0 univer-flex-nowrap
74
- univer-justify-between univer-overflow-hidden
75
- `,children:[(0,d.jsx)(c.Button,{variant:`link`,onClick:v,disabled:g,children:s.t(`sheets-filter.panel.clear-filter`)}),(0,d.jsxs)(`span`,{className:`univer-flex univer-gap-2`,children:[(0,d.jsx)(c.Button,{variant:`default`,onClick:y,children:s.t(`sheets-filter.panel.cancel`)}),(0,d.jsx)(c.Button,{disabled:!m,variant:`primary`,onClick:b,children:s.t(`sheets-filter.panel.confirm`)})]})]})]})}function ve(e){return(0,u.useMemo)(()=>[{label:e.t(`sheets-filter.panel.by-values`),value:t.FilterBy.VALUES},{label:e.t(`sheets-filter.panel.by-colors`),value:t.FilterBy.COLORS},{label:e.t(`sheets-filter.panel.by-conditions`),value:t.FilterBy.CONDITIONS}],[e.getCurrentLocale(),e])}const ye={id:t.SmartToggleSheetsFilterCommand.id,binding:r.KeyCode.L|r.MetaKeys.CTRL_COMMAND|r.MetaKeys.SHIFT,description:`sheets-filter.shortcut.smart-toggle-filter`,preconditions:n.whenSheetEditorFocused,group:`4_sheet-edit`},be=`FILTER_PANEL_POPUP`;let Z=class extends Y{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){super(f,d),this._injector=e,this._componentManager=t,this._sheetsFilterPanelService=n,this._sheetCanvasPopupService=r,this._sheetsFilterService=i,this._localeService=a,this._shortcutService=o,this._commandService=s,this._menuManagerService=c,this._contextService=l,this._messageService=u,A(this,`_popupDisposable`,void 0),this._initCommands(),this._initShortcuts(),this._initMenuItems(),this._initUI()}dispose(){super.dispose(),this._closeFilterPopup()}_initShortcuts(){[ye].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_initCommands(){[t.SmartToggleSheetsFilterCommand,t.RemoveSheetFilterCommand,t.SetSheetFilterRangeCommand,t.SetSheetsFilterCriteriaCommand,t.ClearSheetsFilterCriteriaCommand,t.ReCalcSheetsFilterCommand,V,z,B].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenuItems(){this._menuManagerService.mergeMenu(le)}_initUI(){[[be,_e],[`FilterIcon`,l.FilterIcon]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))}),this.disposeWithMe(this._contextService.subscribeContextValue$(R).pipe((0,o.distinctUntilChanged)()).subscribe(e=>{e?this._openFilterPopup():this._closeFilterPopup()})),this.disposeWithMe(this._sheetsFilterService.errorMsg$.subscribe(e=>{e&&this._messageService.show({type:c.MessageType.Error,content:this._localeService.t(e)})}))}_openFilterPopup(){let e=this._sheetsFilterPanelService.filterModel;if(!e)throw Error(`[SheetsFilterUIController]: no filter model when opening filter popup!`);let t=e.getRange(),n=this._sheetsFilterPanelService.col,{startRow:r}=t;this._popupDisposable=this._sheetCanvasPopupService.attachPopupToCell(r,n,{componentKey:be,direction:`horizontal`,onClickOutside:()=>this._commandService.syncExecuteCommand(B.id),offset:[5,0]})}_closeFilterPopup(){var e;(e=this._popupDisposable)==null||e.dispose(),this._popupDisposable=null}};Z=v([_(0,(0,e.Inject)(e.Injector)),_(1,(0,e.Inject)(r.ComponentManager)),_(2,(0,e.Inject)(P)),_(3,(0,e.Inject)(n.SheetCanvasPopManagerService)),_(4,(0,e.Inject)(t.SheetsFilterService)),_(5,(0,e.Inject)(e.LocaleService)),_(6,r.IShortcutService),_(7,e.ICommandService),_(8,r.IMenuManagerService),_(9,e.IContextService),_(10,r.IMessageService),_(11,(0,e.Inject)(n.SheetsRenderService)),_(12,i.IRenderManagerService)],Z);let Q=class extends e.Plugin{constructor(t=G,n,r,i){super(),this._config=t,this._injector=n,this._configService=r,this._rpcChannelService=i;let{menu:a,...o}=(0,e.merge)({},G,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(W,o)}onStarting(){(0,e.registerDependencies)(this._injector,[[P],[K],[Z]]),this._config.useRemoteFilterValuesGenerator&&this._rpcChannelService&&this._injector.add([b,{useFactory:()=>(0,s.toModule)(this._rpcChannelService.requestChannel(y))}])}onReady(){(0,e.touchDependencies)(this._injector,[[K]])}onRendered(){(0,e.touchDependencies)(this._injector,[[Z]])}};A(Q,`type`,e.UniverInstanceType.UNIVER_SHEET),A(Q,`pluginName`,`SHEET_FILTER_UI_PLUGIN`),A(Q,`packageName`,H),A(Q,`version`,U),Q=v([(0,e.DependentOn)(t.UniverSheetsFilterPlugin),_(1,(0,e.Inject)(e.Injector)),_(2,e.IConfigService),_(3,(0,e.Optional)(s.IRPCChannelService))],Q);let $=class extends e.Plugin{constructor(e,t,n){super(),this._config=e,this._injector=t,this._rpcChannelService=n}onStarting(){[[b,{useClass:x}]].forEach(e=>this._injector.add(e))}onReady(){this._rpcChannelService.registerChannel(y,(0,s.fromModule)(this._injector.get(b)))}};A($,`type`,e.UniverInstanceType.UNIVER_SHEET),A($,`pluginName`,`SHEET_FILTER_UI_WORKER_PLUGIN`),A($,`packageName`,H),A($,`version`,U),$=v([_(1,(0,e.Inject)(e.Injector)),_(2,s.IRPCChannelService)],$),exports.ChangeFilterByOperation=V,exports.CloseFilterPanelOperation=B,exports.OpenFilterPanelOperation=z,Object.defineProperty(exports,`UniverSheetsFilterMobileUIPlugin`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`UniverSheetsFilterUIPlugin`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`UniverSheetsFilterUIWorkerPlugin`,{enumerable:!0,get:function(){return $}});
7
+ `,attachRender:e=>(0,d.jsxs)(`div`,{className:`univer-ml-1 univer-flex univer-h-5 univer-flex-1 univer-cursor-pointer univer-items-center univer-justify-between univer-text-sm univer-text-primary-500`,children:[(0,d.jsx)(`span`,{"data-u-comp":`sheets-filter-panel-values-item-count`,className:`univer-text-gray-400 dark:!univer-text-gray-500`,children:`(${e.count})`}),(0,d.jsx)(`a`,{className:`univer-box-border univer-hidden univer-h-4 univer-whitespace-nowrap univer-px-1.5`,onClick:()=>{let t=[];e.children?e.children.forEach(e=>{e.children?e.children.forEach(e=>{t.push(e.key)}):t.push(e.key)}):t.push(e.key),n.onFilterOnly(t)},children:s})]})})})]})]})}function ge(){let n=(0,r.useDependency)(t.SheetsFilterSyncController);if(!(0,r.useObservable)(n.visible$,void 0,!0))return null;let i=(0,r.useDependency)(e.LocaleService),a=(0,r.useDependency)(r.IMessageService),o=(0,r.useObservable)(n.enabled$,void 0,!0);return(0,d.jsxs)(`div`,{className:`univer-mt-2 univer-flex univer-items-center univer-justify-between univer-text-sm univer-text-gray-900 dark:!univer-text-gray-200`,children:[(0,d.jsxs)(`div`,{className:`univer-flex univer-items-center univer-gap-1`,children:[(0,d.jsx)(`span`,{children:i.t(`sheets-filter.sync.title`)}),(0,d.jsx)(c.Tooltip,{title:o?i.t(`sheets-filter.sync.statusTips.off`):i.t(`sheets-filter.sync.statusTips.on`),asChild:!0,children:(0,d.jsx)(l.InfoIcon,{className:`univer-block`})})]}),(0,d.jsx)(c.Switch,{defaultChecked:o,onChange:e=>{let t=e?i.t(`sheets-filter.sync.switchTips.on`):i.t(`sheets-filter.sync.switchTips.off`);n.setEnabled(e),a.show({content:t,type:c.MessageType.Success,duration:2e3})}})]})}function _e(){var i;let a=(0,r.useDependency)(P),s=(0,r.useDependency)(e.LocaleService),l=(0,r.useDependency)(e.ICommandService),f=(0,r.useObservable)(a.filterBy$,void 0,!0),p=(0,r.useObservable)(a.filterByModel$,void 0,!1),m=(0,r.useObservable)(()=>(p==null?void 0:p.canApply$)||(0,o.of)(!1),void 0,!1,[p]),h=ve(s),g=!(0,r.useObservable)(a.hasCriteria$),_=(0,u.useCallback)(e=>{l.executeCommand(V.id,{filterBy:e})},[l]),v=(0,u.useCallback)(async()=>{await(p==null?void 0:p.clear()),l.executeCommand(B.id)},[p,l]),y=(0,u.useCallback)(()=>{l.executeCommand(B.id)},[l]),b=(0,u.useCallback)(async()=>{await(p==null?void 0:p.apply()),l.executeCommand(B.id)},[p,l]),x=(i=(0,r.useDependency)(t.SheetsFilterService).activeFilterModel)==null?void 0:i.getRange(),S=a.col,C=(0,r.useComponentsOfPart)(n.SheetsUIPart.FILTER_PANEL_EMBED_POINT);return(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel`,className:`univer-box-border univer-flex univer-max-h-[500px] univer-w-[400px] univer-flex-col univer-rounded-lg univer-bg-white univer-p-4 univer-shadow-lg dark:!univer-border-gray-600 dark:!univer-bg-gray-700`,children:[(0,d.jsx)(r.ComponentContainer,{components:C,sharedProps:{range:x,colIndex:S,onClose:y}}),(0,d.jsx)(`div`,{className:`univer-mb-1 univer-flex-shrink-0 univer-flex-grow-0`,children:(0,d.jsx)(c.Segmented,{value:f,items:h,onChange:e=>_(e)})}),p?(0,d.jsx)(`div`,{"data-u-comp":`sheets-filter-panel-content`,className:`univer-flex-shrink univer-flex-grow univer-pt-2`,children:f===t.FilterBy.VALUES?(0,d.jsx)(he,{model:p}):f===t.FilterBy.COLORS?(0,d.jsx)(ue,{model:p}):(0,d.jsx)(fe,{model:p})}):(0,d.jsx)(`div`,{className:`univer-flex-1`}),(0,d.jsx)(ge,{}),(0,d.jsxs)(`div`,{"data-u-comp":`sheets-filter-panel-footer`,className:`univer-mt-4 univer-inline-flex univer-flex-shrink-0 univer-flex-grow-0 univer-flex-nowrap univer-justify-between univer-overflow-hidden`,children:[(0,d.jsx)(c.Button,{variant:`link`,onClick:v,disabled:g,children:s.t(`sheets-filter.panel.clear-filter`)}),(0,d.jsxs)(`span`,{className:`univer-flex univer-gap-2`,children:[(0,d.jsx)(c.Button,{variant:`default`,onClick:y,children:s.t(`sheets-filter.panel.cancel`)}),(0,d.jsx)(c.Button,{disabled:!m,variant:`primary`,onClick:b,children:s.t(`sheets-filter.panel.confirm`)})]})]})]})}function ve(e){return(0,u.useMemo)(()=>[{label:e.t(`sheets-filter.panel.by-values`),value:t.FilterBy.VALUES},{label:e.t(`sheets-filter.panel.by-colors`),value:t.FilterBy.COLORS},{label:e.t(`sheets-filter.panel.by-conditions`),value:t.FilterBy.CONDITIONS}],[e.getCurrentLocale(),e])}const ye={id:t.SmartToggleSheetsFilterCommand.id,binding:r.KeyCode.L|r.MetaKeys.CTRL_COMMAND|r.MetaKeys.SHIFT,description:`sheets-filter.shortcut.smart-toggle-filter`,preconditions:n.whenSheetEditorFocused,group:`4_sheet-edit`},be=`FILTER_PANEL_POPUP`;let Z=class extends Y{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){super(f,d),this._injector=e,this._componentManager=t,this._sheetsFilterPanelService=n,this._sheetCanvasPopupService=r,this._sheetsFilterService=i,this._localeService=a,this._shortcutService=o,this._commandService=s,this._menuManagerService=c,this._contextService=l,this._messageService=u,A(this,`_popupDisposable`,void 0),this._initCommands(),this._initShortcuts(),this._initMenuItems(),this._initUI()}dispose(){super.dispose(),this._closeFilterPopup()}_initShortcuts(){[ye].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_initCommands(){[t.SmartToggleSheetsFilterCommand,t.RemoveSheetFilterCommand,t.SetSheetFilterRangeCommand,t.SetSheetsFilterCriteriaCommand,t.ClearSheetsFilterCriteriaCommand,t.ReCalcSheetsFilterCommand,V,z,B].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenuItems(){this._menuManagerService.mergeMenu(le)}_initUI(){[[be,_e],[`FilterIcon`,l.FilterIcon]].forEach(([e,t])=>{this.disposeWithMe(this._componentManager.register(e,t))}),this.disposeWithMe(this._contextService.subscribeContextValue$(R).pipe((0,o.distinctUntilChanged)()).subscribe(e=>{e?this._openFilterPopup():this._closeFilterPopup()})),this.disposeWithMe(this._sheetsFilterService.errorMsg$.subscribe(e=>{e&&this._messageService.show({type:c.MessageType.Error,content:this._localeService.t(e)})}))}_openFilterPopup(){let e=this._sheetsFilterPanelService.filterModel;if(!e)throw Error(`[SheetsFilterUIController]: no filter model when opening filter popup!`);let t=e.getRange(),n=this._sheetsFilterPanelService.col,{startRow:r}=t;this._popupDisposable=this._sheetCanvasPopupService.attachPopupToCell(r,n,{componentKey:be,direction:`horizontal`,onClickOutside:()=>this._commandService.syncExecuteCommand(B.id),offset:[5,0]})}_closeFilterPopup(){var e;(e=this._popupDisposable)==null||e.dispose(),this._popupDisposable=null}};Z=v([_(0,(0,e.Inject)(e.Injector)),_(1,(0,e.Inject)(r.ComponentManager)),_(2,(0,e.Inject)(P)),_(3,(0,e.Inject)(n.SheetCanvasPopManagerService)),_(4,(0,e.Inject)(t.SheetsFilterService)),_(5,(0,e.Inject)(e.LocaleService)),_(6,r.IShortcutService),_(7,e.ICommandService),_(8,r.IMenuManagerService),_(9,e.IContextService),_(10,r.IMessageService),_(11,(0,e.Inject)(n.SheetsRenderService)),_(12,i.IRenderManagerService)],Z);let Q=class extends e.Plugin{constructor(t=G,n,r,i){super(),this._config=t,this._injector=n,this._configService=r,this._rpcChannelService=i;let{menu:a,...o}=(0,e.merge)({},G,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(W,o)}onStarting(){(0,e.registerDependencies)(this._injector,[[P],[K],[Z]]),this._config.useRemoteFilterValuesGenerator&&this._rpcChannelService&&this._injector.add([b,{useFactory:()=>(0,s.toModule)(this._rpcChannelService.requestChannel(y))}])}onReady(){(0,e.touchDependencies)(this._injector,[[K]])}onRendered(){(0,e.touchDependencies)(this._injector,[[Z]])}};A(Q,`type`,e.UniverInstanceType.UNIVER_SHEET),A(Q,`pluginName`,`SHEET_FILTER_UI_PLUGIN`),A(Q,`packageName`,H),A(Q,`version`,U),Q=v([(0,e.DependentOn)(t.UniverSheetsFilterPlugin),_(1,(0,e.Inject)(e.Injector)),_(2,e.IConfigService),_(3,(0,e.Optional)(s.IRPCChannelService))],Q);let $=class extends e.Plugin{constructor(e,t,n){super(),this._config=e,this._injector=t,this._rpcChannelService=n}onStarting(){[[b,{useClass:x}]].forEach(e=>this._injector.add(e))}onReady(){this._rpcChannelService.registerChannel(y,(0,s.fromModule)(this._injector.get(b)))}};A($,`type`,e.UniverInstanceType.UNIVER_SHEET),A($,`pluginName`,`SHEET_FILTER_UI_WORKER_PLUGIN`),A($,`packageName`,H),A($,`version`,U),$=v([_(1,(0,e.Inject)(e.Injector)),_(2,s.IRPCChannelService)],$),exports.ChangeFilterByOperation=V,exports.CloseFilterPanelOperation=B,exports.OpenFilterPanelOperation=z,Object.defineProperty(exports,`UniverSheetsFilterMobileUIPlugin`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`UniverSheetsFilterUIPlugin`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`UniverSheetsFilterUIWorkerPlugin`,{enumerable:!0,get:function(){return $}});