var{defineProperty:BQ,getOwnPropertyNames:g9}=Object;var GU=Object.prototype.hasOwnProperty;function DU(G){return this[G]}var L=(G,D,z)=>{var B=g9(D);for(let Q of B)if(!GU.call(G,Q)&&Q!=="default")BQ(G,Q,{get:DU.bind(D,Q),enumerable:!0});if(z){for(let Q of B)if(!GU.call(z,Q)&&Q!=="default")BQ(z,Q,{get:DU.bind(D,Q),enumerable:!0});return z}};var T9=(G)=>G;function y9(G,D){this[G]=T9.bind(null,D)}var x9=(G,D)=>{for(var z in D)BQ(G,z,{get:D[z],enumerable:!0,configurable:!0,set:y9.bind(D,z)})};import{ModuleRegistry as Hn,ValidationModule as _n,ColumnAutoSizeModule as kn,CellStyleModule as wn,QuickFilterModule as Kn,RowSelectionModule as fn,TextEditorModule as Nn,ClientSideRowModelModule as Fn,themeQuartz as WzG,iconSetQuartzLight as qzG,createGrid as En}from"ag-grid-community";var $={};x9($,{getMultipleSheetsAsExcel:()=>x1,exportMultipleSheetsAsExcel:()=>mX,distributeGroupValue:()=>i8,_AgVirtualListDragFeature:()=>C6,_AgVirtualList:()=>R6,_AgTabbedLayout:()=>YJ,_AgSliderSelector:()=>WG,_AgSlider:()=>kG,_AgPanel:()=>LJ,_AgMenuList:()=>uB,_AgMenuItemRenderer:()=>O6,_AgMenuItemComponent:()=>NB,_AgInputRangeSelector:()=>b6,_AgInputRange:()=>V6,_AgGroupComponentSelector:()=>p,_AgGroupComponent:()=>jG,_AgDialog:()=>SJ,_AgContextMenuService:()=>v6,_AgColorPickerSelector:()=>uY,_AgColorPicker:()=>XJ,ViewportRowModelModule:()=>a7,TreeDataModule:()=>$8,StatusBarModule:()=>xB,SparklinesModule:()=>T8,SideBarModule:()=>jD,SetFilterModule:()=>R7,ServerSideRowModelModule:()=>L8,ServerSideRowModelApiModule:()=>S8,RowNumbersModule:()=>bJ,RowGroupingPanelModule:()=>o7,RowGroupingModule:()=>VJ,RowGroupingEditModule:()=>d8,RichSelectModule:()=>I7,RangeSelectionModule:()=>qb,PivotModule:()=>pB,NewFiltersToolPanelModule:()=>B8,MultiFilterModule:()=>iB,MenuModule:()=>Qf,MasterDetailModule:()=>lB,LicenseManager:()=>j1,IntegratedChartsModule:()=>j9,GroupFilterModule:()=>r7,GridChartsModule:()=>Sn,FormulaModule:()=>g8,FindModule:()=>x8,FiltersToolPanelModule:()=>z8,ExcelExportModule:()=>cB,ContextMenuModule:()=>FJ,ColumnsToolPanelModule:()=>yB,ColumnMenuModule:()=>W0,ClipboardModule:()=>nB,CellSelectionModule:()=>Xz,BatchEditModule:()=>c8,AllEnterpriseModule:()=>Yn,AiToolkitModule:()=>o6,AggregationModule:()=>MJ,AdvancedFilterModule:()=>l6});L($,XzG);import{BeanStub as c9,_getDocument as h9}from"ag-grid-community";import{_exists as i9,_logPreInitWarn as n9}from"ag-grid-community";import{Component as l9,RefPlaceholder as p9}from"ag-grid-community";import{BaseCreator as r9,_addGridCommonParams as zU,_downloadFile as P1,_getHeaderClassesFromColDef as a9,_getHeaderRowCount as e9,_warn as W6}from"ag-grid-community";import{BaseGridSerializingSession as G$,_addGridCommonParams as QQ,_isExpressionString as D$,_last as z$,_mergeDeep as B$,_warn as Q$}from"ag-grid-community";import{_escapeString as J$}from"ag-grid-community";import{_escapeString as H$,_warn as ZJ}from"ag-grid-community";import{_escapeString as JU}from"ag-grid-community";import{_escapeString as NL}from"ag-grid-community";import{_escapeString as gL}from"ag-grid-community";import{_escapeString as HS}from"ag-grid-community";import{_escapeString as LU}from"ag-grid-community";import{_errMsg as vX}from"ag-grid-community";import{KeyCode as MG,RefPlaceholder as sX,_AgTabGuardComp as oX,_createAgElement as rX,_getAriaPosInSet as aX,_observeResize as eX,_requestAnimationFrame as YU,_setAriaLabel as GY,_setAriaPosInSet as DY,_setAriaRole as zY,_setAriaSetSize as BY,_waitUntil as QY}from"ag-grid-community";import{AutoScrollService as ZY,_AgBeanStub as $Y,_radioCssClass as WU}from"ag-grid-community";import{AgAbstractLabel as SY,AgInputNumberFieldSelector as XY,RefPlaceholder as LQ}from"ag-grid-community";import{AgAbstractInputField as YY}from"ag-grid-community";import{AgPickerField as WY,_createElement as qU}from"ag-grid-community";import{KeyCode as xG,RefPlaceholder as cG,_AgComponentStub as qY,_exists as HY,_setDisplayed as _Y}from"ag-grid-community";import{AgInputTextField as kY,RefPlaceholder as wY}from"ag-grid-community";import{_AgComponentStub as FY,_AgTabGuardFeature as EY,_findNextFocusableElement as IY,_setDisplayed as _U}from"ag-grid-community";import{RefPlaceholder as E0,_AgComponentStub as kU,_AgPositionableFeature as MY,_getActiveDomElement as AY,_getInnerHeight as RY,_getInnerWidth as CY,_isVisible as VY,_setDisplayed as bY}from"ag-grid-community";import{AgPromise as SQ,KeyCode as AG,_AgTabGuardComp as jY,_createAgElement as PY,_last as gY}from"ag-grid-community";import{KeyCode as wU,_AgBeanStub as TY,_createElement as yY,_setAriaDisabled as xY,_setAriaExpanded as cY,_setAriaHasPopup as hY,_setAriaRole as iY}from"ag-grid-community";import{KeyCode as nY,_AgTabGuardComp as dY}from"ag-grid-community";import{_AgBeanStub as pY,_AgComponentStub as mY,_anchorElementToMouseMoveEvent as KU,_createAgElement as tY,_focusInto as sY,_getPageBody as oY,_getRootNode as rY,_isPromise as aY,_isVisible as eY}from"ag-grid-community";import{_AgComponentStub as B4,_createAgElement as I0,_isNodeOrElement as Q4,_setAriaChecked as J4,_setAriaExpanded as U4}from"ag-grid-community";import{KeyCode as wz,RefPlaceholder as fU,_AgTabGuardComp as Z4,_clearElement as $4,_createAgElement as M0,_findNextFocusableElement as L4,_focusInto as NU,_getActiveDomElement as FU,_getDocument as S4,_isKeyboardMode as X4,_setAriaLabel as EU,_setAriaRole as Y4}from"ag-grid-community";import{TabGuardClassNames as W4,_FOCUS_MANAGED_CLASS as q4,_findFocusableElements as H4}from"ag-grid-community";import{AgCheckboxSelector as k4,AgToggleButton as w4,KeyCode as Kz,RefPlaceholder as Gz,_AgComponentStub as j6,_isComponent as XQ,_removeFromParent as K4,_setAriaExpanded as f4,_setAriaRole as YQ,_setDisplayed as AD}from"ag-grid-community";import{TooltipModule as M4,_FilterCoreModule as A4,_FilterValueModule as R4,_PopupModule as C4,_SharedDragAndDropModule as V4}from"ag-grid-community";import{BeanStub as P4,_exists as g4,_parseDateTimeFromString as IU,_serialiseDate as MU,_toStringOrNull as xD}from"ag-grid-community";import{_parseBigIntOrNull as P6}from"ag-grid-community";import{BeanStub as l4,_exists as p4,_isClientSideRowModel as m4,_isServerSideRowModel as t4,_warn as s4}from"ag-grid-community";import{BeanStub as o4,_getAbsoluteHeight as r4,_getAbsoluteWidth as a4,_removeFromParent as e4}from"ag-grid-community";import{_STOP_PROPAGATION_CALLBACKS as GW,_focusNextGridCoreContainer as DW}from"ag-grid-community";import{AgFilterButtonSelector as zW,Component as BW,RefPlaceholder as fz,_createIconNoSpan as QW,_makeNull as JW,_setDisabled as RU,_setDisplayed as CU}from"ag-grid-community";import{AgInputTextFieldSelector as UW,Component as ZW,KeyCode as RG,RefPlaceholder as $W,_isNothingFocused as LW,_makeNull as VU}from"ag-grid-community";import{AgPopupComponent as SW,KeyCode as XW,RefPlaceholder as YW,_exists as WW,_fuzzySuggestions as qW,_isVisible as HW}from"ag-grid-community";import{_STOP_PROPAGATION_CALLBACKS as _W}from"ag-grid-community";import{Component as kW,_clearElement as wW,_createElement as KW,_exists as fW}from"ag-grid-community";import{Component as CW,KeyCode as Nz,_clearElement as VW,_findNextFocusableElement as bW,_focusInto as vW,_getActiveDomElement as OW,_getFloatingFiltersHeight as uW,_setAriaColIndex as jW,_setAriaColSpan as PW,_setAriaRole as gW,_setAriaRowIndex as TW,_setDisplayed as yW}from"ag-grid-community";import{Component as hW,FilterButtonComp as iW,RefPlaceholder as nW,_exists as dW,_removeFromParent as lW}from"ag-grid-community";import{BeanStub as pW,DragSourceType as mW}from"ag-grid-community";import{Component as sW,RefPlaceholder as oW,_setAriaLabel as rW,_setAriaLevel as aW}from"ag-grid-community";import{AgInputTextFieldSelector as eW,_setAriaLabel as Gq,_setAriaLabelledBy as Dq,_setDisplayed as zq,_stopPropagationForAgGrid as Bq}from"ag-grid-community";import{AgInputTextFieldSelector as vU,AgPickerField as Qq,KeyCode as o,RefPlaceholder as OU,_addGridCommonParams as Jq,_addOrRemoveAttribute as Uq,_clearElement as HQ,_createIconNoSpan as Zq,_debounce as _Q,_exists as $q,_fuzzySuggestions as Lq,_getActiveDomElement as uU,_getEditorRendererDetails as Sq,_isElementOverflowingCallback as Xq,_isEventFromPrintableCharacter as Yq,_isVisible as Wq,_setAriaActiveDescendant as qq,_setScrollLeft as jU,_stopPropagationForAgGrid as Hq}from"ag-grid-community";import{_consoleError as kQ}from"ag-grid-community";import{Component as Kq,KeyCode as oG,_clearElement as fq,_findFocusableElements as Nq,_findNextFocusableElement as Fq,_getActiveDomElement as PU,_getDocument as Eq,_setAriaPosInSet as Iq,_setAriaRole as Mq,_setAriaSetSize as Aq}from"ag-grid-community";import{Component as Rq,RefPlaceholder as gU}from"ag-grid-community";import{KeyCode as uq,_addOrRemoveAttribute as jq,_createElement as TU,_createIconNoSpan as Pq,_requestAnimationFrame as wQ,_setAriaActiveDescendant as gq,_setAriaControlsAndLabel as Tq,_setAriaLabel as yq,_setDisplayed as kD}from"ag-grid-community";import{Component as xq,_addGridCommonParams as cq,_clearElement as hq,_createElement as yU,_exists as Fz,_getEditorRendererDetails as iq,_isElementOverflowingCallback as nq,_setAriaSelected as dq,_toString as lq}from"ag-grid-community";import{BeanStub as eq,KeyCode as Ez,_getActiveDomElement as iU,_isStopPropagationForAgGrid as nU,_stopPropagationForAgGrid as R0}from"ag-grid-community";import{DragSourceType as zH,KeyCode as KQ,RefPlaceholder as rG,TabGuardComp as BH,_createElement as dU,_createIconNoSpan as Iz,_removeAriaExpanded as QH,_setAriaDisabled as lU,_setAriaExpanded as pU,_setAriaLabel as C0,_setAriaLevel as JH,_setDisplayed as V0,_setVisible as UH,_stopPropagationForAgGrid as fQ}from"ag-grid-community";import{Component as ZH,_exists as Mz,_removeFromParent as $H,_toStringOrNull as LH}from"ag-grid-community";import{AgInputDateField as b0,AgInputNumberField as XH,AgInputTextField as v0,Component as YH,KeyCode as NQ,RefPlaceholder as mU,_exists as WH,_setAriaDescribedBy as qH,_setAriaLabel as HH,_setDisplayed as tU,_stopPropagationForAgGrid as FQ}from"ag-grid-community";import{Component as KH}from"ag-grid-community";import{AgInputTextFieldSelector as NH,_setAriaLabel as FH,_setAriaLabelledBy as EH,_stopPropagationForAgGrid as IH}from"ag-grid-community";import{ColumnApiModule as gH}from"ag-grid-community";import{STRUCTURED_SCHEMA_FEATURES as TH}from"ag-grid-community";import{_ColumnMoveModule as E_,_PopupModule as I_,_SharedDragAndDropModule as M_}from"ag-grid-community";import{_HorizontalResizeModule as A_}from"ag-grid-community";import{_unwrapUserComp as R_}from"ag-grid-community";import{BeanStub as y_}from"ag-grid-community";import{Component as x_,KeyCode as O0,ManagedFocusFeature as c_,RefPlaceholder as h_,_addFocusableContainerListener as i_,_addGridCommonParams as sU,_findNextFocusableElement as n_,_focusInto as d_,_focusNextGridCoreContainer as l_,_getActiveDomElement as oU,_isVisible as p_,_removeFromParent as rU,_setAriaControlsAndLabel as m_,_skipFocusableContainerListenerForAgGrid as t_,_warn as IQ}from"ag-grid-community";import{Component as o_,KeyCode as r_,_clearElement as a_,_focusNextGridCoreContainer as e_,_stopPropagationForAgGrid as Gk}from"ag-grid-community";import{Component as Dk,RefPlaceholder as MQ,_createIconNoSpan as zk,_setAriaExpanded as Bk}from"ag-grid-community";import{_warn as r6}from"ag-grid-community";import{Component as Yk,RefPlaceholder as Wk}from"ag-grid-community";import{Component as qk}from"ag-grid-community";import{_warn as Mk}from"ag-grid-community";import{Component as Ak,FilterButtonComp as Rk,_addGridCommonParams as Ck,_areEqual as aG,_clearElement as Vk,_last as bk,_warn as vk}from"ag-grid-community";import{Component as Ok,PositionableFeature as uk,RefPlaceholder as eU}from"ag-grid-community";import{AgCheckboxSelector as Pk,AgInputTextFieldSelector as gk,Component as Tk,KeyCode as yk,RefPlaceholder as AQ,_createIconNoSpan as RQ,_debounce as xk,_setDisplayed as hD}from"ag-grid-community";import{Component as dk,DragSourceType as lk,_exists as GZ,_setAriaLabel as pk,_setAriaLevel as mk,_warn as tk,isProvidedColumnGroup as sk}from"ag-grid-community";import{AgProvidedColumnGroup as ok,_warn as rk,isProvidedColumnGroup as ak}from"ag-grid-community";import{_last as ek}from"ag-grid-community";import{LocalEventService as z3}from"ag-grid-community";import{isProvidedColumnGroup as B3}from"ag-grid-community";import{AgCheckboxSelector as Q3,Component as J3,DragSourceType as U3,KeyCode as CQ,RefPlaceholder as Az,TouchListener as zZ,_createIcon as BZ,_createIconNoSpan as Z3,_getShouldDisplayTooltip as $3,_getToolPanelClassesFromColDef as L3,_setAriaDescribedBy as S3,_setAriaExpanded as X3,_setAriaLabel as Y3,_setDisplayed as VQ}from"ag-grid-community";import{Component as w3,_createIconNoSpan as QZ,_focusInto as K3,isColumn as f3,isProvidedColumnGroup as N3}from"ag-grid-community";import{AgPromise as $Z,_STOP_PROPAGATION_CALLBACKS as E3,_addGridCommonParams as I3,_warn as M3}from"ag-grid-community";import{_getRootNode as A3,_isBrowserFirefox as R3,_isBrowserSafari as C3}from"ag-grid-community";import{AgCheckboxSelector as T3,Component as y3,DragSourceType as x3,KeyCode as c3,RefPlaceholder as XZ,TouchListener as h3,_createIconNoSpan as i3,_getShouldDisplayTooltip as n3,_getToolPanelClassesFromColDef as d3,_setAriaDescribedBy as l3,_setAriaLabel as p3,_setDisplayed as m3,_warn as t3}from"ag-grid-community";import{BeanStub as Jw}from"ag-grid-community";import{_addFocusableContainerListener as Uw,_createIconNoSpan as Zw}from"ag-grid-community";import{DragSourceType as YZ,_shouldUpdateColVisibilityAfterGroup as $w}from"ag-grid-community";import{Component as Lw,KeyCode as iD,ManagedFocusFeature as Sw,PositionableFeature as Xw,_areEqual as Yw,_clearElement as WZ,_createElement as u0,_createIconNoSpan as Ww,_findFocusableElements as qw,_findNextFocusableElement as vQ,_getActiveDomElement as qZ,_isKeyboardMode as Hw,_last as _w,_setAriaHidden as kw,_setAriaLabel as ww,_setAriaPosInSet as Kw,_setAriaRole as fw,_setAriaSetSize as Nw}from"ag-grid-community";import{Component as Iw,DragSourceType as Mw,KeyCode as nD,RefPlaceholder as Aw,_createElement as Rw}from"ag-grid-community";import{Component as Cw,KeyCode as _Z,RefPlaceholder as OQ,TouchListener as Vw,_createIconNoSpan as kZ,_setAriaLabel as bw,_setDisplayed as vw}from"ag-grid-community";import{_addFocusableContainerListener as Pw,_createIconNoSpan as gw}from"ag-grid-community";import{_createIconNoSpan as Tw}from"ag-grid-community";import{AgToggleButtonSelector as xw,Component as cw,RefPlaceholder as hw}from"ag-grid-community";import{BeanStub as lw}from"ag-grid-community";import{BeanStub as pw,_applyColumnState as J0,_areEqual as j0,isColumnGroupAutoCol as mw,isSpecialCol as tw}from"ag-grid-community";import{_ColumnMoveModule as DK,_PopupModule as zK,_SharedDragAndDropModule as BK,_SharedMenuModule as QK}from"ag-grid-community";import{BeanStub as JK,_createIconNoSpan as f7,_warn as fZ}from"ag-grid-community";import{BeanStub as LK,_addGridCommonParams as SK,_findNextFocusableElement as XK}from"ag-grid-community";import{BeanStub as WK,_addGridCommonParams as qK,_getDisplaySortForColumn as HK,_getGrandTotalRow as _K,_isClientSideRowModel as kK,_isLegacyMenuEnabled as wK}from"ag-grid-community";import{BeanStub as KK,_createIconNoSpan as a,_exists as fK,_getRowNode as NK,_normalizeSortType as FK,_resetColumnState as EK,_warn as IK}from"ag-grid-community";import{BeanStub as vK,_addGridCommonParams as OK,_attemptToRestoreCellFocus as uK,_exists as NZ,_getGrandTotalRow as jK,_isIOSUserAgent as PK}from"ag-grid-community";import{AgPromise as TQ,BeanStub as F7,Component as TK,FilterComp as yK,RefPlaceholder as xK,_createElement as cK,_createIconNoSpan as yQ,_error as hK,_focusInto as iK,_isColumnMenuAnchoringEnabled as nK,_isLegacyMenuEnabled as P0,_setColMenuVisible as EZ,_warn as dK,isColumn as lK}from"ag-grid-community";import{BeanStub as aK,_findTabbableParent as eK,_getActiveDomElement as Gf,_isNothingFocused as IZ,_isVisible as Df,_last as zf}from"ag-grid-community";import{_EditCoreModule as Jf}from"ag-grid-community";import{AgAbstractCellEditor as Uf,KeyCode as MZ,_addGridCommonParams as Zf,_consoleError as $f,_missing as AZ,_warn as Cz}from"ag-grid-community";import{_ColumnFilterModule as Sf}from"ag-grid-community";import{AgInputTextFieldSelector as Xf,KeyCode as Vz,ProvidedFilter as Yf,RefPlaceholder as bz,_areEqual as Wf,_createIconNoSpan as qf,_exists as Hf,_getActiveDomElement as _f,_makeNull as CZ,_setDisplayed as xQ,_warn as vz}from"ag-grid-community";import{AgCheckboxSelector as wf,Component as Kf,RefPlaceholder as g0,_addGridCommonParams as ff,_createIcon as cQ,_getCellRendererDetails as VZ,_getShouldDisplayTooltip as Nf,_isShowTooltipWhenTruncated as Ff,_setAriaChecked as Ef,_setAriaDescribedBy as If,_setAriaExpanded as Mf,_setAriaLabel as Af,_setAriaLabelledBy as Rf,_setAriaLevel as Cf,_setDisplayed as hQ,_toStringOrNull as bZ,_warn as Vf}from"ag-grid-community";import{_defaultComparator as uf,_last as jf,_makeNull as Pf,_toStringOrNull as gf,_translate as Tf,_warn as yf}from"ag-grid-community";import{_getDateParts as nf,_warn as df}from"ag-grid-community";import{BeanStub as tf,_addGridCommonParams as sf,_debounce as of,_error as OZ,_isClientSideRowModel as rf,_last as af,_makeNull as iQ,_toStringOrNull as nQ}from"ag-grid-community";import{AgPromise as ef,BeanStub as GN,_makeNull as DN}from"ag-grid-community";import{AgPromise as T0,BeanStub as QN,_addGridCommonParams as JN,_defaultComparator as uZ,_error as UN,_makeNull as ZN,_warn as jZ}from"ag-grid-community";import{AgInputTextFieldSelector as SN,Component as XN,RefPlaceholder as YN,_error as WN}from"ag-grid-community";import{_KeyboardNavigationModule as _N}from"ag-grid-community";import{AgPromise as y0,Component as kN,RefPlaceholder as lQ,_addFocusableContainerListener as wN,_addGridCommonParams as PZ,_clearElement as pQ,_removeFromParent as KN,_warn as fN}from"ag-grid-community";import{Component as CN,RefPlaceholder as Oz,_createCellId as VN,_exists as bN,_formatNumberCommas as vN,_getRowBelow as ON,_getRowNode as uN,_isRowBefore as jN,_missing as mQ,_parseBigIntOrNull as PN}from"ag-grid-community";import{Component as gN,RefPlaceholder as gZ,_addGridCommonParams as TN}from"ag-grid-community";import{_formatNumberCommas as lN}from"ag-grid-community";import{_formatNumberCommas as mN}from"ag-grid-community";import{_formatNumberCommas as TZ}from"ag-grid-community";import{_formatNumberCommas as oN}from"ag-grid-community";import{_unwrapUserComp as aN}from"ag-grid-community";import{BeanStub as GF}from"ag-grid-community";import{_SharedExportModule as zF}from"ag-grid-community";import{_warn as BF}from"ag-grid-community";import{_ColumnFilterModule as LF}from"ag-grid-community";import{AgPromise as eG,FilterWrapperComp as SF,LocalEventService as XF,ProvidedFilter as YF,_getFilterModel as WF,_refreshFilterUi as qF,_refreshHandlerAndUi as yZ,_removeFromArray as HF,_updateFilterModel as _F}from"ag-grid-community";import{AgPromise as dD,KeyCode as uz,TabGuardComp as kF,_createElement as wF,_focusInto as KF,_getActiveDomElement as fF,_isNothingFocused as NF,_setAriaRole as FF}from"ag-grid-community";import{ProvidedFilter as EF}from"ag-grid-community";import{BeanStub as MF,_removeFromArray as AF,_warn as xZ}from"ag-grid-community";import{BeanStub as CF,_getDefaultSimpleFilter as VF,_getFilterParamsForDataType as bF}from"ag-grid-community";import{AgPromise as tQ,_getFilterDetails as OF,_isUseApplyButton as uF,_refreshFilterUi as jF,_warn as PF}from"ag-grid-community";import{AgPromise as gF,Component as TF,_clearElement as yF,_error as xF,_getDefaultFloatingFilterType as cF,_getFloatingFilterCompDetails as hF,_mergeDeep as iF,_setDisplayed as jz}from"ag-grid-community";import{_ColumnFilterModule as lF,_PopupModule as pF}from"ag-grid-community";import{BeanStub as mF,_exists as tF}from"ag-grid-community";import{BeanStub as oF,_exists as cZ,_last as rF}from"ag-grid-community";import{BeanStub as LE,_getGroupAggFiltering as SE}from"ag-grid-community";import{BeanStub as HE,_forEachChangedGroupDepthFirst as hZ,_getGrandTotalRow as _E,_getGroupAggFiltering as kE,_warn as wE}from"ag-grid-community";import{BeanStub as EE,_forEachChangedGroupDepthFirst as IE,_getGroupAggFiltering as ME}from"ag-grid-community";import{BeanStub as RE,_addGridCommonParams as CE,_getGrandTotalRow as VE,_getGroupTotalRowCallback as bE,_warn as vE}from"ag-grid-community";import{_createRowNodeSibling as OE}from"ag-grid-community";import{BaseColsService as PE,_exists as gE,_removeFromArray as TE,_warn as yE}from"ag-grid-community";import{BaseColsService as xE,_removeFromArray as cE}from"ag-grid-community";import{BaseColsService as hE,_removeFromArray as iE,_shouldUpdateColVisibilityAfterGroup as nE}from"ag-grid-community";import{AgColumn as lE,BeanStub as pE,GROUP_AUTO_COLUMN_ID as iZ,_addColumnDefaultAndTypes as mE,_applyColumnState as tE,_areColIdsEqual as sE,_columnsMatch as oE,_convertColumnEventSourceType as rE,_destroyColumnTree as nZ,_getColumnStateFromColDef as aE,_isColumnsSortingCoupledToGroup as eE,_isGroupHideColumnsUntilExpanded as GI,_isGroupMultiAutoColumn as DI,_isGroupUseEntireRow as zI,_mergeDeep as BI,_missing as sQ,_updateColsMap as QI,_warn as JI,isColumnGroupAutoCol as UI}from"ag-grid-community";import{BeanStub as $I}from"ag-grid-community";import{_exists as WI}from"ag-grid-community";import{BeanStub as qI,_addGridCommonParams as HI,_createGlobalRowEvent as _I,_setAriaExpanded as kI}from"ag-grid-community";import{BeanStub as KI}from"ag-grid-community";import{_getGrandTotalRow as fI,_getGroupTotalRowCallback as NI,_isGroupMultiAutoColumn as FI}from"ag-grid-community";import{BeanStub as II,_ChangedRowNodes as d7,_csrmFirstLeaf as MI,_csrmReorderAllLeafs as AI,_getCellByPosition as RI,_isClientSideRowModel as CI,_prevOrNextDisplayedRow as VI}from"ag-grid-community";import{BeanStub as uI}from"ag-grid-community";import{Component as TI,RefPlaceholder as Pz,_setAriaRole as yI,_setDisplayed as sZ}from"ag-grid-community";import{BeanStub as xI,KeyCode as oZ,_createIconNoSpan as cI,_getCellRendererDetails as rZ,_getCheckboxLocation as hI,_getCheckboxes as iI,_getInnerCellRendererDetails as x0,_isElementInEventPath as aZ,_isRowSelection as nI,_isStopPropagationForAgGrid as eZ,_removeAriaExpanded as dI,_setAriaExpanded as lI,_stopPropagationForAgGrid as pI}from"ag-grid-community";import{BeanStub as sI}from"ag-grid-community";import{BeanStub as rI}from"ag-grid-community";import{BeanStub as eI,_isClientSideRowModel as GM,_isGroupRowsSticky as DM,_isServerSideRowModel as zM}from"ag-grid-community";import{BeanStub as BM,_getRowHeightForNode as QM,_isClientSideRowModel as JM,_isGroupRowsSticky as UM,_last as ZM}from"ag-grid-community";import{AgColumn as YM,BeanStub as WM,GROUP_HIERARCHY_COLUMN_ID_PREFIX as qM,_addColumnDefaultAndTypes as z2,_areColIdsEqual as HM,_columnsMatch as B2,_destroyColumnTree as _M,_removeAllFromArray as kM,_updateColsMap as wM}from"ag-grid-community";import{_MONTHS as s7,_getDateParts as KM,_parseDateTimeFromString as fM}from"ag-grid-community";import{Component as RM,_createElement as CM}from"ag-grid-community";import{AgPromise as gz,AgSelect as vM,FilterComp as OM,RefPlaceholder as J2,TabGuardComp as uM,_clearElement as oQ,_createElement as jM,_setDisplayed as PM,_warn as rQ}from"ag-grid-community";import{BeanStub as xM,_warn as U2}from"ag-grid-community";import{BeanStub as hM}from"ag-grid-community";import{AgInputTextField as nM,AgPromise as aQ,Component as dM,RefPlaceholder as lM,_clearElement as pM,_isGroupMultiAutoColumn as mM}from"ag-grid-community";import{BeanStub as oM,RowNode as rM,_csrmFirstLeaf as Z2,_forEachChangedGroupDepthFirst as $2,_warn as aM}from"ag-grid-community";import{BeanStub as $A,RowNode as X2,_addGridCommonParams as LA,_getRowHeightAsNumber as Y2,_getRowIdCallback as SA,_warn as XA}from"ag-grid-community";import{CsvExportModule as WA,HighlightChangesModule as qA,_KeyboardNavigationModule as HA}from"ag-grid-community";import{BeanStub as FA,_createCellId as lD,_exists as EA,_forEachChangedGroupDepthFirst as IA,_getActiveDomElement as MA,_getDocument as W2,_getRowBelow as eQ,_getRowNode as G1,_isClientSideRowModel as q2,_isSameRow as H2,_last as AA,_removeFromArray as RA,_warn as c0,isColumnSelectionCol as CA,isSpecialCol as VA}from"ag-grid-community";import{CellStyleModule as OA,_SharedDragAndDropModule as uA}from"ag-grid-community";import{Component as PA,Direction as gA,_getRowNode as TA}from"ag-grid-community";import{AgColumn as cA,BeanStub as hA,KeyCode as B1,ROW_NUMBERS_COLUMN_ID as iA,_addGridCommonParams as nA,_applyColumnState as dA,_areColIdsEqual as lA,_convertColumnEventSourceType as pA,_createElement as mA,_debounce as tA,_destroyColumnTree as _2,_getColumnStateFromColDef as sA,_getFirstRow as oA,_getRowNode as rA,_interpretAsRightClick as aA,_isRowNumbers as pD,_selectAllCells as eA,_setAriaLabel as GR,_updateColsMap as DR,isRowNumberCol as wD}from"ag-grid-community";import{_isRowNumbers as zR,_warn as BR}from"ag-grid-community";import{_ColumnFilterModule as G8}from"ag-grid-community";import{Component as UR,RefPlaceholder as k2}from"ag-grid-community";import{AgInputTextFieldSelector as ZR,Component as $R,RefPlaceholder as w2,_createIconNoSpan as Q1,_debounce as LR,_setDisplayed as Tz}from"ag-grid-community";import{Component as WR,_addGridCommonParams as qR,_clearElement as HR,_exists as J1,_getActiveDomElement as _R,_mergeDeep as kR,_setAriaLabel as wR,_warn as K2,isProvidedColumnGroup as f2}from"ag-grid-community";import{Component as KR,FilterComp as fR,KeyCode as N2,RefPlaceholder as yz,_clearElement as NR,_createElement as FR,_createIconNoSpan as U1,_setAriaExpanded as F2,_setAriaLabel as ER,_setAriaRole as IR,_setDisplayed as zD}from"ag-grid-community";import{Component as AR,RefPlaceholder as RR,_clearElement as CR,_createIconNoSpan as VR,_getShouldDisplayTooltip as bR,_setAriaLabel as vR,_setAriaRole as OR,isProvidedColumnGroup as i0}from"ag-grid-community";import{BeanStub as yR,FilterComp as xR}from"ag-grid-community";import{BeanStub as hR,_addGridCommonParams as iR,_getDefaultSimpleFilter as nR,_getFilterParamsForDataType as dR,_isSetFilterByDefault as lR,_warn as pR}from"ag-grid-community";import{_removeFromParent as mR,_translate as tR}from"ag-grid-community";import{Component as aR,_warn as eR}from"ag-grid-community";import{Component as GC,FilterButtonComp as DC,RefPlaceholder as zC,_focusInto as I2,_getActiveDomElement as BC,_isNothingFocused as M2,_removeFromParent as QC,_translateForFilter as JC}from"ag-grid-community";import{Component as UC,_clearElement as A2,_createElement as ZC,_createIconNoSpan as $C}from"ag-grid-community";import{Component as XC,RefPlaceholder as mD,_clearElement as YC,_createIcon as Z1,_removeFromParent as WC,_setAriaControls as R2,_setAriaExpanded as qC,_setAriaLabel as C2,_setDisplayed as HC}from"ag-grid-community";import{AgSelectSelector as _C,Component as kC,RefPlaceholder as wC,_removeFromParent as KC}from"ag-grid-community";import{Component as FC}from"ag-grid-community";import{EventApiModule as uC}from"ag-grid-community";import{Component as jC,RefPlaceholder as PC,_getGridRegisteredModules as gC,_missing as TC,_warn as V2,createGrid as yC}from"ag-grid-community";import{BeanStub as xC,_addGridCommonParams as cC,_focusInto as hC,_isSameRow as iC,_missing as nC,_warn as n0}from"ag-grid-community";import{BeanStub as eC,RowNode as GV,_exists as DV,_getClientSideRowModel as zV,_isClientSideRowModel as b2,_isServerSideRowModel as v2,_observeResize as BV}from"ag-grid-community";import{_DragModule as UV,_KeyboardNavigationModule as ZV}from"ag-grid-community";import{_addGridCommonParams as $V,_getCellByPosition as d0,_getFillHandle as $1,_getLastRow as LV,_getNormalisedMousePosition as O2,_getRowAbove as L1,_getRowBelow as xz,_getRowNode as SV,_isRowBefore as XV,_isSameRow as FG,_last as tD,_stopPropagationForAgGrid as YV,_toStringOrNull as WV,_warn as qV,isRowNumberCol as HV}from"ag-grid-community";import{Component as _V,_areCellsEqual as kV,_getCellPositionForEvent as wV,_getPageBody as u2,_isRowBefore as KV,_isVisible as fV,_last as NV,_setDisplayed as FV}from"ag-grid-community";import{CellRangeType as P2,_isSameRow as AV,_last as g2}from"ag-grid-community";import{AutoScrollService as vV,BeanStub as OV,KeyCode as uV,_areCellsEqual as jV,_areEqual as y2,_exists as PV,_getAbsoluteRowIndex as x2,_getCellCtrlForEventTarget as gV,_getEnableColumnSelection as TV,_getFirstRow as S1,_getLastRow as X1,_getRowAbove as cz,_getRowBelow as sD,_getRowCtrlForEventTarget as yV,_getRowNode as xV,_getSuppressMultiRanges as cV,_interpretAsRightClick as hV,_isCellSelectionEnabled as l0,_isDomLayout as iV,_isRowBefore as XG,_isSameRow as CG,_isUsingNewCellSelectionAPI as nV,_last as DG,_makeNull as c2,_missing as dV,_removeAllFromArray as lV,_removeFromArray as p0,_warn as Y1}from"ag-grid-community";import{CellRangeType as hz,_isSameRow as h2,_last as pV,_missing as mV,_setAriaSelected as tV}from"ag-grid-community";import{BeanStub as Qb,_isCellSelectionEnabled as d2}from"ag-grid-community";import{BeanStub as Ub}from"ag-grid-community";import{BeanStub as $b}from"ag-grid-community";import{_CsrmSsrmSharedApiModule as Hb,_RowModelSharedApiModule as _b,_SharedRowSelectionModule as kb,_SortModule as wb,_SsrmInfiniteSharedApiModule as Kb,onRowHeightChanged as fb,resetRowHeights as Nb}from"ag-grid-community";import{Component as Fb,RefPlaceholder as p2,_createIconNoSpan as Eb}from"ag-grid-community";import{_ColumnGroupModule as Rb}from"ag-grid-community";import{BeanStub as cb}from"ag-grid-community";import{BeanStub as db,_areEqual as lb,_createColumnTree as pb,_createColumnTreeWithIds as mb,_destroyColumnTree as t2,_exists as tb,_getColumnsFromTree as sb}from"ag-grid-community";import{BeanStub as rb,_forEachChangedGroupDepthFirst as ab,_jsonEquals as eb,_missing as Gv}from"ag-grid-community";import{BeanStub as zv,RowNode as Bv,_removeFromArray as Qv,_warn as t0}from"ag-grid-community";import{BeanStub as $v,RowNode as Lv,_doOnce as Sv,_exists as H1,_getGroupTotalRowCallback as r2,_getRowHeightAsNumber as Xv,_getRowHeightForNode as a2,_warn as Yv}from"ag-grid-community";import{BeanStub as Hv,_isServerSideRowModel as _v}from"ag-grid-community";import{BeanStub as wv,_isServerSideRowModel as Kv,_jsonEquals as fv}from"ag-grid-community";import{BeanStub as Fv}from"ag-grid-community";import{BeanStub as Iv,_isServerSideRowModel as Mv}from"ag-grid-community";import{BeanStub as Rv,_warn as Cv}from"ag-grid-community";import{BeanStub as bv,RowNode as vv,_debounce as Ov,_getRowHeightAsNumber as uv,_getRowHeightForNode as dz,_isGetRowHeightFunction as jv,_isRowSelection as Pv,_jsonEquals as gv,_warn as Tv}from"ag-grid-community";import{_getServerSideRowModel as mB,_warn as xv}from"ag-grid-community";import{RowNode as sv,_exists as ov,_getRowHeightForNode as rv}from"ag-grid-community";import{BeanStub as av}from"ag-grid-community";import{BeanStub as ev}from"ag-grid-community";import{BaseSelectionService as DO,_error as zO,_getGroupSelectsDescendants as G5,_getRowSelectionMode as D5,_isMultiRowSelection as BO,_isRowSelection as a0,_isUsingNewRowSelectionAPI as QO,_warn as ED}from"ag-grid-community";import{BeanStub as JO,_error as e0,_isMultiRowSelection as z5,_isUsingNewRowSelectionAPI as UO,_warn as GB}from"ag-grid-community";import{BeanStub as ZO,_error as KD,_isMultiRowSelection as $O,_warn as LO}from"ag-grid-community";import{BeanStub as XO}from"ag-grid-community";import{BeanStub as WO,_addGridCommonParams as qO,_getMaxConcurrentDatasourceRequests as HO}from"ag-grid-community";import{BeanStub as kO,_warn as Q5}from"ag-grid-community";import{BeanStub as wO,ServerSideTransactionResultStatus as k1,_getGroupTotalRowCallback as J5,_getRowHeightAsNumber as U5,_getRowIdCallback as KO,_warn as fO}from"ag-grid-community";import{BeanStub as NO,_getRowHeightAsNumber as FO,_getRowIdCallback as EO,_warn as IO}from"ag-grid-community";import{BeanStub as VO,_isServerSideRowModel as Z5}from"ag-grid-community";import{BeanStub as vO,ServerSideTransactionResultStatus as fD}from"ag-grid-community";import{AgAbstractCellEditor as uO,KeyCode as K1,RefPlaceholder as jO,_isBrowserSafari as PO,_placeCaretAtEnd as gO}from"ag-grid-community";import{AgContentEditableField as TO,_createElement as yO,_getDocument as vJ,_getWindow as X8,_placeCaretAtEnd as xO}from"ag-grid-community";import{BeanStub as nO,KeyCode as iG,_getDocument as dO}from"ag-grid-community";import{isSpecialCol as lO}from"ag-grid-community";import{BeanStub as Gu,_last as N1,isSpecialCol as Du}from"ag-grid-community";import{BeanStub as Ku,_addGridCommonParams as fu,_isExpressionString as Nu}from"ag-grid-community";import{BeanStub as Eu}from"ag-grid-community";import{BeanStub as Mu,_convertColumnEventSourceType as Au,_isExpressionString as Ru,_warn as oD}from"ag-grid-community";import{_getClientSideRowModel as Cu,_isExpressionString as Vu}from"ag-grid-community";import{_getClientSideRowModel as yu}from"ag-grid-community";import{_getClientSideRowModel as TJ}from"ag-grid-community";import{_preInitErrMsg as Pj}from"ag-grid-community";import{Component as Tj,RefPlaceholder as yj,_batchCall as xj,_formatNumberCommas as cj,_setAriaLabel as hj,_setAriaLabelledBy as A5}from"ag-grid-community";import{Component as SP,_clearElement as XP,_createElement as YP,_toString as b5}from"ag-grid-community";import{BeanStub as HP,_addGridCommonParams as v5,_debounce as _P,_isClientSideRowModel as O5,_isFullWidthGroupRow as kP,_jsonEquals as wP,_missing as C1,_toString as y8,isSpecialCol as KP}from"ag-grid-community";import{_EditCoreModule as FP}from"ag-grid-community";import{_isClientSideRowModel as EP,_warn as IP}from"ag-grid-community";import{BeanStub as VP}from"ag-grid-community";import{_PopupModule as PP,_SharedDragAndDropModule as gP,_preInitErrMsg as l8}from"ag-grid-community";import{BeanStub as TP}from"ag-grid-community";import{BeanStub as xP}from"ag-grid-community";import{_parseDateTimeFromString as cP}from"ag-grid-community";import{_warn as Gg}from"ag-grid-community";import{GROUP_AUTO_COLUMN_ID as Yg}from"ag-grid-community";import{BeanStub as Eg,CellRangeType as pz,_normalizeSortType as Ig,isColumnGroupAutoCol as Mg}from"ag-grid-community";import{BeanStub as Ag,GROUP_AUTO_COLUMN_ID as Rg,_isClientSideRowModel as Cg,_isServerSideRowModel as Vg,_last as bg,_warn as b1}from"ag-grid-community";import{BeanStub as Og,_getRowNode as ug,_warn as g5}from"ag-grid-community";import{BeanStub as Pg,_warn as v1}from"ag-grid-community";import{BeanStub as ig,TabGuardComp as ng,_findFocusableElements as G9,_findNextFocusableElement as dg}from"ag-grid-community";import{Component as lg}from"ag-grid-community";import{BeanStub as pg,_removeFromParent as mg}from"ag-grid-community";import{AgInputNumberFieldSelector as tg,Component as sg}from"ag-grid-community";import{AgCheckboxSelector as rg,Component as ag}from"ag-grid-community";import{AgCheckboxSelector as GT,Component as DT}from"ag-grid-community";import{AgCheckboxSelector as BT,Component as QT,RefPlaceholder as JT}from"ag-grid-community";import{BeanStub as XT,Component as YT,RefPlaceholder as WT,_addGridCommonParams as qT,_createIconNoSpan as HT,_focusInto as _T,_isNothingFocused as kT}from"ag-grid-community";import{BeanStub as fT,_warn as NT}from"ag-grid-community";import{BeanStub as AT,_warn as y5}from"ag-grid-community";import{BeanStub as VT}from"ag-grid-community";import{BeanStub as OT,_focusInto as uT,_warn as zB}from"ag-grid-community";import{Component as jT,RefPlaceholder as mz,_addGridCommonParams as PT,_clearElement as gT,_errMsg as x5,_focusGridInnerElement as TT,_focusInto as yT,_getAbsoluteHeight as xT,_getAbsoluteWidth as cT,_mergeDeep as hT,_removeFromParent as iT,_setDisplayed as c5,_warn as h5}from"ag-grid-community";import{BeanStub as nT,_warn as i5}from"ag-grid-community";import{_warnOnce as U0}from"ag-grid-community";import{AgPromise as Yy,Component as Wy,_warn as qy}from"ag-grid-community";import{Component as Hy,RefPlaceholder as _y,_clearElement as ky,_createElement as wy,_createIconNoSpan as Ky}from"ag-grid-community";import{AgPromise as Ny,Component as Fy,_createElement as d5}from"ag-grid-community";import{AgToggleButton as Ey,Component as Iy,_getDocument as My,_setDisplayed as Ay,_warn as Ry}from"ag-grid-community";import{AgSelect as Cy,AgToggleButton as Vy}from"ag-grid-community";import{AgSelect as by,Component as vy}from"ag-grid-community";import{AgSelect as Oy,Component as uy,DragSourceType as $9,_escapeString as jy,_getActiveDomElement as Py,_removeFromParent as gy}from"ag-grid-community";import{AgSelect as l5,AgToggleButton as ny,Component as dy,RefPlaceholder as ly}from"ag-grid-community";import{BeanStub as py}from"ag-grid-community";import{AgCheckbox as ty,AgSelect as sy,Component as oy,_areEqual as ry,_clearElement as ay}from"ag-grid-community";import{AgToggleButton as Gx}from"ag-grid-community";import{Component as Qx,_warn as p5}from"ag-grid-community";import{AgCheckbox as Jx,AgSelectSelector as Ux,Component as Zx,RefPlaceholder as BB,_removeFromParent as m5,_setDisplayed as $x}from"ag-grid-community";import{AgAbstractLabel as Lx,AgInputNumberFieldSelector as Sx,RefPlaceholder as QB,_exists as Xx,_getActiveDomElement as Yx,_setFixedWidth as Wx}from"ag-grid-community";import{AgSelectSelector as Hx,Component as _x,RefPlaceholder as kx,_removeFromParent as wx}from"ag-grid-community";import{Component as fx,RefPlaceholder as Nx}from"ag-grid-community";import{Component as Ex}from"ag-grid-community";import{AgSelect as Ax,Component as Rx,RefPlaceholder as Cx}from"ag-grid-community";import{Component as bx,RefPlaceholder as vx}from"ag-grid-community";import{Component as Ox}from"ag-grid-community";import{Component as jx,RefPlaceholder as Px}from"ag-grid-community";import{BeanStub as yx}from"ag-grid-community";import{AgCheckbox as cx,AgSelect as hx,Component as ix,RefPlaceholder as t5}from"ag-grid-community";import{AgSelect as O1,Component as dx,RefPlaceholder as lx,_error as px,_removeFromParent as mx}from"ag-grid-community";import{Component as tx,RefPlaceholder as sx,_removeFromParent as ox}from"ag-grid-community";import{Component as ax}from"ag-grid-community";import{Component as Gc}from"ag-grid-community";import{Component as zc}from"ag-grid-community";import{AgSelectSelector as Qc,Component as Jc}from"ag-grid-community";import{AgSelectSelector as Zc,Component as $c,RefPlaceholder as Lc,_removeFromParent as Sc}from"ag-grid-community";import{Component as Yc}from"ag-grid-community";import{Component as qc}from"ag-grid-community";import{AgSelectSelector as _c,Component as kc,RefPlaceholder as wc}from"ag-grid-community";import{Component as Nc}from"ag-grid-community";import{Component as Ic,RefPlaceholder as Mc}from"ag-grid-community";import{AgInputTextField as Ac,Component as Rc}from"ag-grid-community";import{Component as Oc,RefPlaceholder as oz,_areEqual as uc,_clearElement as o5,_createIconNoSpan as r5,_getAbsoluteWidth as jc,_radioCssClass as a5,_setDisplayed as Pc}from"ag-grid-community";import{Component as gc,KeyCode as e5,_setAriaLabel as Tc,_warn as G6}from"ag-grid-community";import{Component as yc,_error as xc}from"ag-grid-community";import{_last as X9}from"ag-grid-community";import{_flatten as Qh}from"ag-grid-community";import{_flatten as Yh}from"ag-grid-community";import{BeanStub as fi,_error as Ni}from"ag-grid-community";import{_errMsg as Ri}from"ag-grid-community";import{AllCommunityModule as Xn}from"ag-grid-community";import"ag-grid-community";var d9=class{constructor(){this.ieCompatibility=!1}init(){this.ieCompatibility=this.md5("hello")!="5d41402abc4b2a76b9719d911017c592"}md5cycle(G,D){let z=G[0],B=G[1],Q=G[2],J=G[3];z=this.ff(z,B,Q,J,D[0],7,-680876936),J=this.ff(J,z,B,Q,D[1],12,-389564586),Q=this.ff(Q,J,z,B,D[2],17,606105819),B=this.ff(B,Q,J,z,D[3],22,-1044525330),z=this.ff(z,B,Q,J,D[4],7,-176418897),J=this.ff(J,z,B,Q,D[5],12,1200080426),Q=this.ff(Q,J,z,B,D[6],17,-1473231341),B=this.ff(B,Q,J,z,D[7],22,-45705983),z=this.ff(z,B,Q,J,D[8],7,1770035416),J=this.ff(J,z,B,Q,D[9],12,-1958414417),Q=this.ff(Q,J,z,B,D[10],17,-42063),B=this.ff(B,Q,J,z,D[11],22,-1990404162),z=this.ff(z,B,Q,J,D[12],7,1804603682),J=this.ff(J,z,B,Q,D[13],12,-40341101),Q=this.ff(Q,J,z,B,D[14],17,-1502002290),B=this.ff(B,Q,J,z,D[15],22,1236535329),z=this.gg(z,B,Q,J,D[1],5,-165796510),J=this.gg(J,z,B,Q,D[6],9,-1069501632),Q=this.gg(Q,J,z,B,D[11],14,643717713),B=this.gg(B,Q,J,z,D[0],20,-373897302),z=this.gg(z,B,Q,J,D[5],5,-701558691),J=this.gg(J,z,B,Q,D[10],9,38016083),Q=this.gg(Q,J,z,B,D[15],14,-660478335),B=this.gg(B,Q,J,z,D[4],20,-405537848),z=this.gg(z,B,Q,J,D[9],5,568446438),J=this.gg(J,z,B,Q,D[14],9,-1019803690),Q=this.gg(Q,J,z,B,D[3],14,-187363961),B=this.gg(B,Q,J,z,D[8],20,1163531501),z=this.gg(z,B,Q,J,D[13],5,-1444681467),J=this.gg(J,z,B,Q,D[2],9,-51403784),Q=this.gg(Q,J,z,B,D[7],14,1735328473),B=this.gg(B,Q,J,z,D[12],20,-1926607734),z=this.hh(z,B,Q,J,D[5],4,-378558),J=this.hh(J,z,B,Q,D[8],11,-2022574463),Q=this.hh(Q,J,z,B,D[11],16,1839030562),B=this.hh(B,Q,J,z,D[14],23,-35309556),z=this.hh(z,B,Q,J,D[1],4,-1530992060),J=this.hh(J,z,B,Q,D[4],11,1272893353),Q=this.hh(Q,J,z,B,D[7],16,-155497632),B=this.hh(B,Q,J,z,D[10],23,-1094730640),z=this.hh(z,B,Q,J,D[13],4,681279174),J=this.hh(J,z,B,Q,D[0],11,-358537222),Q=this.hh(Q,J,z,B,D[3],16,-722521979),B=this.hh(B,Q,J,z,D[6],23,76029189),z=this.hh(z,B,Q,J,D[9],4,-640364487),J=this.hh(J,z,B,Q,D[12],11,-421815835),Q=this.hh(Q,J,z,B,D[15],16,530742520),B=this.hh(B,Q,J,z,D[2],23,-995338651),z=this.ii(z,B,Q,J,D[0],6,-198630844),J=this.ii(J,z,B,Q,D[7],10,1126891415),Q=this.ii(Q,J,z,B,D[14],15,-1416354905),B=this.ii(B,Q,J,z,D[5],21,-57434055),z=this.ii(z,B,Q,J,D[12],6,1700485571),J=this.ii(J,z,B,Q,D[3],10,-1894986606),Q=this.ii(Q,J,z,B,D[10],15,-1051523),B=this.ii(B,Q,J,z,D[1],21,-2054922799),z=this.ii(z,B,Q,J,D[8],6,1873313359),J=this.ii(J,z,B,Q,D[15],10,-30611744),Q=this.ii(Q,J,z,B,D[6],15,-1560198380),B=this.ii(B,Q,J,z,D[13],21,1309151649),z=this.ii(z,B,Q,J,D[4],6,-145523070),J=this.ii(J,z,B,Q,D[11],10,-1120210379),Q=this.ii(Q,J,z,B,D[2],15,718787259),B=this.ii(B,Q,J,z,D[9],21,-343485551),G[0]=this.add32(z,G[0]),G[1]=this.add32(B,G[1]),G[2]=this.add32(Q,G[2]),G[3]=this.add32(J,G[3])}cmn(G,D,z,B,Q,J){return D=this.add32(this.add32(D,G),this.add32(B,J)),this.add32(D<>>32-Q,z)}ff(G,D,z,B,Q,J,U){return this.cmn(D&z|~D&B,G,D,Q,J,U)}gg(G,D,z,B,Q,J,U){return this.cmn(D&B|z&~B,G,D,Q,J,U)}hh(G,D,z,B,Q,J,U){return this.cmn(D^z^B,G,D,Q,J,U)}ii(G,D,z,B,Q,J,U){return this.cmn(z^(D|~B),G,D,Q,J,U)}md51(G){let D=G.length,z=[1732584193,-271733879,-1732584194,271733878],B;for(B=64;B<=G.length;B+=64)this.md5cycle(z,this.md5blk(G.substring(B-64,B)));G=G.substring(B-64);let Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(B=0;B>2]|=G.charCodeAt(B)<<(B%4<<3);if(Q[B>>2]|=128<<(B%4<<3),B>55){this.md5cycle(z,Q);for(B=0;B<16;B++)Q[B]=0}return Q[14]=D*8,this.md5cycle(z,Q),z}md5blk(G){let D=[];for(let z=0;z<64;z+=4)D[z>>2]=G.charCodeAt(z)+(G.charCodeAt(z+1)<<8)+(G.charCodeAt(z+2)<<16)+(G.charCodeAt(z+3)<<24);return D}rhex(G){let D="0123456789abcdef".split(""),z="",B=0;for(;B<4;B++)z+=D[G>>B*8+4&15]+D[G>>B*8&15];return z}hex(G){for(let D=0;D>16)+(D>>16)+(z>>16)<<16|z&65535}},w0={"01":"GRID","02":"CHARTS","0102":"BOTH"};var Y6=class G{constructor(D){this.watermarkMessage=void 0,this.totalMessageLength=124,this.document=D,this.md5=new d9,this.md5.init()}validateLicense(){let D=this.getLicenseDetails(G.licenseKey),z=`AG Grid ${D.currentLicenseType==="BOTH"?"and AG Charts ":""}Enterprise`,B=D.suppliedLicenseType===void 0?"":`AG ${D.suppliedLicenseType==="BOTH"?"Grid and AG Charts":D.suppliedLicenseType==="GRID"?"Grid":"Charts"} Enterprise`;if(D.missing){if(!this.isWebsiteUrl()||this.isForceWatermark())this.outputMissingLicenseKey(z)}else if(D.expired){let Q=G.getGridReleaseDate(),J=G.formatDate(Q);this.outputExpiredKey(D.expiry,J,z,B)}else if(!D.valid)this.outputInvalidLicenseKey(!!D.incorrectLicenseType,z,B);else if(D.isTrial&&D.trialExpired)this.outputExpiredTrialKey(D.expiry,z,B)}static extractExpiry(D){let z=D.substring(D.lastIndexOf("_")+1,D.length);return new Date(parseInt(G.decode(z),10))}static extractLicenseComponents(D){let z=D.replace(/[\u200B-\u200D\uFEFF]/g,"");if(z=z.replace(/\r?\n|\r/g,""),D.length<=32)return{md5:null,license:D,version:null,isTrial:null};let B=z.length-32,Q=z.substring(B),J=z.substring(0,B),[U,Z,S]=G.extractBracketedInformation(z);return{md5:Q,license:J,version:U,isTrial:Z,type:S}}getLicenseDetails(D){let z=G.chartsLicenseManager?"BOTH":"GRID";if(!D?.length)return{licenseKey:D,valid:!1,missing:!0,currentLicenseType:z};let B=G.getGridReleaseDate(),{md5:Q,license:J,version:U,isTrial:Z,type:S}=G.extractLicenseComponents(D),X=Q===this.md5.md5(J)&&!D.includes("For_Trialing_ag-Grid_Only"),Y=void 0,W=void 0,q=null,H=!1,_=void 0;function k(){Y=qq,U){case"legacy":case"2":{if(Z)k();break}case"3":if(!S?.length)X=!1;else if(_=S,S!==w0["01"]&&S!==w0["0102"]||z==="BOTH"&&_!=="BOTH")X=!1,H=!0;else if(Z)k()}}if(!X)return{licenseKey:D,valid:X,incorrectLicenseType:H,currentLicenseType:z,suppliedLicenseType:_};return{licenseKey:D,valid:X,expiry:G.formatDate(q),expired:W,version:U,isTrial:Z,trialExpired:Y,incorrectLicenseType:H,currentLicenseType:z,suppliedLicenseType:_}}isDisplayWatermark(){return this.isForceWatermark()||!this.isLocalhost()&&!this.isWebsiteUrl()&&!!this.watermarkMessage?.length}getWatermarkMessage(){return this.watermarkMessage||""}getHostname(){let z=(this.document.defaultView||window).location,{hostname:B=""}=z;return B}isForceWatermark(){let z=(this.document.defaultView||window).location,{pathname:B}=z;return B?B.includes("forceWatermark"):!1}isWebsiteUrl(){return this.getHostname().match(/^(?:[\w-]+\.)?(ag-grid|bryntum)\.com$/)!==null}isLocalhost(){return this.getHostname().match(/^(?:127\.0\.0\.1|localhost)$/)!==null}static formatDate(D){let z=["January","February","March","April","May","June","July","August","September","October","November","December"],B=D.getDate(),Q=D.getMonth(),J=D.getFullYear();return B+" "+z[Q]+" "+J}static getGridReleaseDate(){return new Date(parseInt(G.decode(G.RELEASE_INFORMATION),10))}static decode(D){let B="",Q,J,U,Z,S,X,Y,W=0,q=D.replace(/[^A-Za-z0-9+/=]/g,"");while(W>4,J=(S&15)<<4|X>>2,U=(X&3)<<6|Y,B=B+String.fromCharCode(Q),X!=64)B=B+String.fromCharCode(J);if(Y!=64)B=B+String.fromCharCode(U)}return B=G.utf8_decode(B),B}static utf8_decode(D){D=D.replace(/rn/g,"n");let z="";for(let B=0;B127&&Q<2048)z+=String.fromCharCode(Q>>6|192),z+=String.fromCharCode(Q&63|128);else z+=String.fromCharCode(Q>>12|224),z+=String.fromCharCode(Q>>6&63|128),z+=String.fromCharCode(Q&63|128)}return z}static setChartsLicenseManager(D){this.chartsLicenseManager=D,this.chartsLicenseManager?.setLicenseKey(this.licenseKey,!0)}static setLicenseKey(D){if(i9(this.licenseKey)&&this.licenseKey!==D)n9(291,void 0,"AG Grid: License Key being set multiple times with different values. This can result in an incorrect license key being used.");this.licenseKey=D,this.chartsLicenseManager?.setLicenseKey(D,!0)}static extractBracketedInformation(D){if(!D.includes("["))return["legacy",!1,void 0];let z=D.match(/\[(.*?)\]/g).map((Z)=>Z.replace("[","").replace("]",""));if(!z||z.length===0)return["legacy",!1,void 0];let B=z.filter((Z)=>Z==="TRIAL").length===1,Q=z.filter((Z)=>Z.indexOf("v")===0)[0],J=Q?Q.replace("v",""):"legacy",U=w0[z.filter((Z)=>w0[Z])[0]];return[J,B,U]}centerPadAndOutput(D){let z=this.totalMessageLength-D.length}padAndOutput(D,z="*",B=""){}outputInvalidLicenseKey(D,z,B){}outputExpiredTrialKey(D,z,B){}outputMissingLicenseKey(D){}outputExpiredKey(D,z,B,Q){}};Y6.RELEASE_INFORMATION="MTc3NDQyNTc0Nzc3NQ==";var az=Y6,m9='.ag-watermark{bottom:20px;color:#9b9b9b;opacity:.7;position:absolute;transition:opacity 1s ease-out 3s}:where(.ag-ltr) .ag-watermark{right:25px}:where(.ag-rtl) .ag-watermark{left:25px}.ag-watermark:before{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDkiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyMDkgMzYiPjxwYXRoIGZpbGw9IiM5YjliOWIiIGQ9Ik0xOTIuOTkzIDIzLjY1OHYtNy45NDZoLTEzLjU0MWwtNy45NDcgNy45NDZ6TTIwOC4yNSAzLjk1aC0xNi45NzRsLTguMDEgNy45NDdoMjQuOTg0ek0xNjMuNjIyIDMxLjYwNWw0LjA2OS00LjA2OWgxMy43MzJ2Ny45NDdoLTE3LjgwMXoiLz48cGF0aCBmaWxsPSIjOWI5YjliIiBkPSJNMTY2LjYxIDE5Ljc4aDguNzczbDguMDEtNy45NDZIMTY2LjYxek0xNTcuMDExIDMxLjYwNWg2LjYxMWw3Ljg4My03Ljk0N2gtMTQuNDk0ek0xOTEuMjc2IDMuOTVsLTQuMDY4IDQuMDdIMTYxLjI3Vi4wNzJoMzAuMDA2ek0yMC44NCAzMC4yMDZIOC4zNzhsLTIuMTYyIDUuMzRILjc1TDEyLjI1NyA4LjU5Mmg0Ljc2OEwyOC41MyAzNS41NDZoLTUuNTN6bS0xLjcxNy00LjI2TDE0LjYwOSAxNC45NWwtNC41MTQgMTAuOTk4ek0xMDQuNDM3IDE4LjUwOWMxLjU4OS0yLjM1MiA1LjU5NC0yLjYwNyA3LjI0Ny0yLjYwN3Y0LjU3OGMtMi4wMzQgMC00LjA2OS4wNjMtNS4yNzcuOTUzLTEuMjA3Ljg5LTEuODQzIDIuMDk4LTEuODQzIDMuNTZ2MTAuNTUzaC00Ljk1OVYxNS45MDJoNC43Njh6TTExOS4zNzYgMTUuOTAyaC00Ljk1OHYxOS42NDRoNC45NTh6TTExOS4zNzYgNy4xM2gtNC45NTh2NS44NDhoNC45NTh6TTE0My45NzkgNy4xM3YyOC40MTZoLTQuNzY4bC0uMTI3LTIuOTg4YTguMyA4LjMgMCAwIDEtMi42NyAyLjQ4Yy0xLjA4MS41NzItMi40MTYuODktMy45NDIuODktMS4zMzUgMC0yLjYwNi0uMjU1LTMuNjg3LS43LTEuMTQ0LS41MDgtMi4xNjItMS4xNDQtMi45ODgtMi4wMzRhOS42IDkuNiAwIDAgMS0xLjk3MS0zLjE3OWMtLjUwOC0xLjIwNy0uNjk5LTIuNjA2LS42OTktNC4xMzJzLjI1NC0yLjkyNC42OTktNC4xOTZjLjUwOS0xLjI3MSAxLjE0NS0yLjM1MiAxLjk3MS0zLjI0MnMxLjg0NC0xLjU4OSAyLjk4OC0yLjA5OCAyLjM1Mi0uNzYzIDMuNjg3LS43NjNjMS41MjYgMCAyLjc5Ny4yNTUgMy44NzguODI3czEuOTcxIDEuMzM1IDIuNjcgMi40MTZWNy4xOTNoNC45NTl6bS0xMC40MjYgMjQuNTM4YzEuNjUzIDAgMi45MjQtLjU3MiAzLjk0MS0xLjY1M3MxLjUyNi0yLjU0MyAxLjUyNi00LjMyMy0uNTA5LTMuMTc4LTEuNTI2LTQuMzIyYy0xLjAxNy0xLjA4MS0yLjI4OC0xLjY1My0zLjk0MS0xLjY1My0xLjU5IDAtMi45MjUuNTcyLTMuODc4IDEuNjUzLTEuMDE3IDEuMDgtMS41MjYgMi41NDMtMS41MjYgNC4zMjIgMCAxLjc4LjUwOSAzLjE4IDEuNTI2IDQuMjYgMS4wMTcgMS4xNDQgMi4yODggMS43MTYgMy44NzggMS43MTZNNTcuMjAyIDIwLjM1M0g0NC45MzN2NC4yNTloNi45OTNjLS4xOSAyLjE2MS0xLjAxNyAzLjgxNC0yLjQxNiA1LjE1LTEuMzk4IDEuMjctMy4xNzggMS45MDYtNS40NjcgMS45MDYtMS4yNzEgMC0yLjQ4LS4yNTQtMy40OTYtLjY5OWE3IDcgMCAwIDEtMi43MzQtMS45N2MtLjc2My0uODI3LTEuMzM1LTEuODQ0LTEuNzgtMy4wNTJzLS42MzYtMi40OC0uNjM2LTMuOTQyLjE5LTIuNzMzLjYzNi0zLjk0MWMuMzgxLTEuMjA4IDEuMDE3LTIuMTYyIDEuNzgtMy4wNTIuNzYzLS44MjYgMS42NTMtMS40NjIgMi43MzMtMS45N2E5LjEgOS4xIDAgMCAxIDMuNTYtLjdxNC4wMDUgMCA2LjEwMyAxLjkwN2wzLjMwNi0zLjMwNWMtMi40OC0xLjkwNy01LjY1OC0yLjkyNS05LjQwOS0yLjkyNS0yLjA5NyAwLTQuMDA0LjMxOC01LjcyMSAxLjAxOC0xLjcxNi42OTktMy4xNzkgMS41ODktNC4zODYgMi43OTdBMTIuMSAxMi4xIDAgMCAwIDMxLjIgMTYuMjJjLS42MzUgMS43MTctLjk1MyAzLjYyNC0uOTUzIDUuNjU4cy4zMTggMy45NDIgMS4wMTcgNS42NThjLjcgMS43MTcgMS41OSAzLjE3OSAyLjc5NyA0LjM4N2ExMi4xIDEyLjEgMCAwIDAgNC4zODcgMi43OTdjMS43MTYuNyAzLjYyMyAxLjAxNyA1LjY1NyAxLjAxNyAyLjAzNSAwIDMuODc4LS4zMTggNS41MzEtMS4wMTcgMS42NTMtLjcgMy4wNTItMS41OSA0LjE5Ni0yLjc5N3ExLjcxNi0xLjgxMiAyLjY3LTQuMzg3Yy42MzYtMS43MTYuOTU0LTMuNjIzLjk1NC01LjY1OHYtLjgyNmMtLjE5MS0uMTI3LS4yNTUtLjQ0NS0uMjU1LS43TTk1Ljk4MiAyMC4zNTNoLTEyLjI3djQuMjU5aDYuOTkzYy0uMTkgMi4xNjEtMS4wMTcgMy44MTQtMi40MTYgNS4xNS0xLjM5OCAxLjI3LTMuMTc4IDEuOTA2LTUuNDY3IDEuOTA2LTEuMjcxIDAtMi40OC0uMjU0LTMuNDk2LS42OTlhNyA3IDAgMCAxLTIuNzM0LTEuOTdjLS43NjMtLjgyNy0xLjMzNS0xLjg0NC0xLjc4LTMuMDUycy0uNjM2LTIuNDgtLjYzNi0zLjk0Mi4xOS0yLjczMy42MzYtMy45NDFjLjM4MS0xLjIwOCAxLjAxNy0yLjE2MiAxLjc4LTMuMDUyLjc2My0uODI2IDEuNjUzLTEuNDYyIDIuNzM0LTEuOTdhOS4xIDkuMSAwIDAgMSAzLjU2LS43cTQuMDA1IDAgNi4xMDMgMS45MDdsMy4zMDUtMy4zMDVjLTIuNDc5LTEuOTA3LTUuNjU4LTIuOTI1LTkuNDA4LTIuOTI1LTIuMDk4IDAtNC4wMDUuMzE4LTUuNzIyIDEuMDE4LTEuNzE2LjY5OS0zLjE3OCAxLjU4OS00LjM4NiAyLjc5N2ExMi4xIDEyLjEgMCAwIDAtMi43OTcgNC4zODZjLS42MzYgMS43MTctLjk1NCAzLjYyNC0uOTU0IDUuNjU4cy4zMTggMy45NDIgMS4wMTcgNS42NThjLjcgMS43MTcgMS41OSAzLjE3OSAyLjc5NyA0LjM4N2ExMi4xIDEyLjEgMCAwIDAgNC4zODcgMi43OTdjMS43MTYuNyAzLjYyMyAxLjAxNyA1LjY1OCAxLjAxNyAyLjAzNCAwIDMuODc4LS4zMTggNS41My0xLjAxNyAxLjY1My0uNyAzLjA1Mi0xLjU5IDQuMTk2LTIuNzk3cTEuNzE4LTEuODEyIDIuNjctNC4zODdjLjYzNi0xLjcxNi45NTQtMy42MjMuOTU0LTUuNjU4di0uODI2Yy0uMTktLjEyNy0uMjU1LS40NDUtLjI1NS0uNyIvPjwvc3ZnPg==");background-repeat:no-repeat;background-size:170px 40px;content:"";display:block;height:40px;width:170px}.ag-watermark-text{font-family:Impact,sans-serif;font-size:19px;font-weight:700;opacity:.5}:where(.ag-ltr) .ag-watermark-text{padding-left:.7rem}:where(.ag-rtl) .ag-watermark-text{padding-right:.7rem}',t9={tag:"div",cls:"ag-watermark",children:[{tag:"div",ref:"eLicenseTextRef",cls:"ag-watermark-text"}]},s9=class extends l9{constructor(){super(t9);this.eLicenseTextRef=p9,this.registerCSS(m9)}wireBeans(G){this.licenseManager=G.licenseManager}postConstruct(){let G=this.shouldDisplayWatermark();if(this.setDisplayed(G),G)this.eLicenseTextRef.textContent=this.licenseManager.getWatermarkMessage(),window.setTimeout(()=>this.addCss("ag-opacity-zero"),0),window.setTimeout(()=>this.setDisplayed(!1),5000)}shouldDisplayWatermark(){return this.licenseManager.isDisplayWatermark()}},o9={selector:"AG-WATERMARK",component:s9},j1=class extends c9{constructor(){super(...arguments);this.beanName="licenseManager"}postConstruct(){this.validateLicense()}validateLicense(){let G=this.beans;if(G.withinStudio)this.licenseManager={isDisplayWatermark:()=>!1,getWatermarkMessage:()=>""};else{let D=new az(h9(G));this.licenseManager=D,D.validateLicense()}}static getLicenseDetails(G){return new az(null).getLicenseDetails(G)}getWatermarkSelector(){return o9}isDisplayWatermark(){return this.licenseManager.isDisplayWatermark()}getWatermarkMessage(){return this.licenseManager.getWatermarkMessage()}static setLicenseKey(G){az.setLicenseKey(G)}static setChartsLicenseManager(G){az.setChartsLicenseManager(G)}},U$=9525,BU={"0":1,"0.00":2,"#,##0":3,"#,##0.00":4,"0%":9,"0.00%":10,"0.00E+00":11,"# ?/?":12,"# ??/??":13,"mm-dd-yy":14,"d-mmm-yy":15,"d-mmm":16,"mmm-yy":17,"h:mm AM/PM":18,"h:mm:ss AM/PM":19,"h:mm":20,"h:mm:ss":21,"m/d/yy h:mm":22,"#,##0 ;(#,##0)":37,"#,##0 ;[Red](#,##0)":38,"#,##0.00;(#,##0.00)":39,"#,##0.00;[Red](#,##0.00)":40,"mm:ss":45,"[h]:mm:ss":46,"mmss.0":47,"##0.0E+0":48,"@":49},K0=`\r `;function QU(G,D,z){if(!D&&D!==""&&D!==0)return"";let B=D;if(typeof D==="boolean"){if(z)B=z(D)}return` ${G}="${B}"`}function Z$(G={}){let B=["version"];if(!G.version)G.version="1.0";if(G.encoding)B.push("encoding");if(G.standalone)B.push("standalone");return``${J}="${G[J]}"`).join(" ")} ?>`}function q6(G,D){let z="";if(G.properties){if(G.properties.prefixedAttributes)G.properties.prefixedAttributes.forEach((Q)=>{for(let J of Object.keys(Q.map))z+=QU(Q.prefix+J,Q.map[J],D)});if(G.properties.rawMap)for(let Q of Object.keys(G.properties.rawMap))z+=QU(Q,G.properties.rawMap[Q],D)}let B="<"+G.name+z;if(!G.children&&G.textNode==null)return B+"/>"+K0;if(G.textNode!=null)return B+">"+G.textNode+""+K0;if(B+=">"+K0,G.children)for(let Q of G.children)B+=q6(Q,D);return B+""+K0}var $$=(G)=>{return Math.round(G*96/72)},yD=(G)=>{return Math.ceil(G*U$)},L$=(G)=>{if(G===void 0)return;let z=["Automatic","Roman","Swiss","Modern","Script","Decorative"].indexOf(G||"Automatic");return Math.max(z,0)},$B=(G,D)=>{if(!D)return;let z;if(typeof D==="number")z=D;else z=D({rowIndex:G});return z},S$=(G,D)=>{let{colSpan:z,column:B}=G.position;if(!G.width)return;if(z){let Q=D.slice(B-1,B+z-1),J=0;for(let U=0;U{let{rowSpan:z,row:B}=G.position;if(!G.height)return;if(z){let Q=0,J=0;for(let U=B;U{let z=Z$({encoding:"UTF-8",standalone:"yes"}),B=q6(G);if(D)return B;return`${z}${B}`},OD=(G)=>{let B=String.fromCharCode,Q=Math.floor(G/26),J=G%26;if(!Q||G===26)return B(65+G-1);if(!J)return OD(Q-1)+"Z";if(Q<26)return B(65+Q-1)+B(65+J-1);return OD(Q)+B(65+J-1)},Y$=(G)=>{return G.replaceAll(` `,"_x000a_")},kB=(G)=>{if(G==null)return null;let D="";for(let z=0;z=0&&B<=31&&B!==10){let U=`_x${B.toString(16).toUpperCase().padStart(4,"0")}_`;D+=U}else D+=G[z]}return D},W$=(G)=>{let D=[];for(let z of G.keys()){let B=z.toString(),Q={name:"t",textNode:J$(kB(B))};if(B.trim().length!==B.length)Q.properties={rawMap:{"xml:space":"preserve"}};D.push({name:"si",children:[Q]})}return D},q$=class extends G${constructor(G){super(G);this.mixedStyles={},this.mixedStyleCounter=0,this.rows=[],this.frozenRowCount=0,this.skipFrozenRows=!1,this.frozenColumnCount=0,this.skipFrozenColumns=!1,this.formulaSvc=G.formulaSvc,this.config=Object.assign({},G),this.workbook=G.workbook,this.stylesByIds={};for(let z of this.config.baseExcelStyles)this.stylesByIds[z.id]=z;let D={id:"_quotePrefix",quotePrefix:1};this.stylesByIds[D.id]=D,this.excelStyles=[...this.config.baseExcelStyles,D]}addCustomContent(G){for(let D of G){let z=this.rows.length+1,B;if(!this.config.suppressRowOutline&&D.outlineLevel!=null)B=D.outlineLevel;let Q={height:$B(z,D.height||this.config.rowHeight),cells:(D.cells||[]).map((J,U)=>{let Z=this.addImage(z,this.columnsToExport[U],J.data?.value),S=null;if(J.styleId)S=typeof J.styleId==="string"?[J.styleId]:J.styleId;let X=this.getStyleId(S);if(Z)return this.createCell(X,this.getDataTypeForValue(Z.value),Z.value==null?"":Z.value);let Y=J.data?.value??"",W=this.getDataTypeForValue(Y);if(J.mergeAcross)return this.createMergedCell(X,W,Y,J.mergeAcross);return this.createCell(X,W,Y)}),outlineLevel:B};if(D.collapsed!=null)Q.collapsed=D.collapsed;if(D.hidden!=null)Q.hidden=D.hidden;this.rows.push(Q)}}onNewHeaderGroupingRow(){let G=[],{freezeRows:D,headerRowHeight:z}=this.config;if(this.rows.push({cells:G,height:$B(this.rows.length+1,z)}),D)this.frozenRowCount++;return{onColumn:(B,Q,J,U,Z)=>{let S=this.config.styleLinker({rowType:"HEADER_GROUPING",rowIndex:1,value:`grouping-${Q}`,columnGroup:B});G.push({...this.createMergedCell(this.getStyleId(S),this.getDataTypeForValue("string"),Q,U),collapsibleRanges:Z})}}}onNewHeaderRow(){let{freezeRows:G,headerRowHeight:D}=this.config;if(G)this.frozenRowCount++;return this.onNewRow(this.onNewHeaderColumn,D)}onNewBodyRow(G){let{freezeRows:D,rowHeight:z}=this.config;if(!this.skipFrozenRows)if(D==="headersAndPinnedRows"&&G?.rowPinned==="top")this.frozenRowCount++;else if(typeof D==="function")if(D(QQ(this.gos,{node:G})))this.frozenRowCount++;else this.skipFrozenRows=!0;else this.skipFrozenRows=!0;let B=this.onNewRow(this.onNewBodyColumn,z);if(G)this.addRowOutlineIfNecessary(G);return B}prepare(G){super.prepare(G),this.columnsToExport=[...G],this.cols=G.map((D,z)=>this.convertColumnToExcel(D,z))}parse(){let G=this.rows.reduce((z,B)=>Math.max(z,B.cells.length),0);while(this.cols.length{let B=this.extractHeaderValue(z),Q=this.config.styleLinker({rowType:"HEADER",rowIndex:G,value:B,column:z});D.push(this.createCell(this.getStyleId(Q),this.getDataTypeForValue("string"),B))}}onNewBodyColumn(G,D){let z=0,{freezeColumns:B,rightToLeft:Q}=this.config;return(J,U,Z)=>{if(z>0){z-=1;return}if(!this.skipFrozenColumns){let w=J.getPinned();if(B==="pinned"&&w&&(w===!0||w==="left")!==Q)this.frozenColumnCount++;else if(typeof B==="function"&&B(QQ(this.gos,{column:J})))this.frozenColumnCount++;else this.skipFrozenColumns=!0}let{value:S,valueFormatted:X}=this.extractRowCellValue({column:J,node:Z,currentColumnIndex:U,accumulatedRowIndex:G,type:"excel",useRawFormula:!0}),Y=S,W=typeof Y==="bigint"?Y.toString():Y,q=this.config.styleLinker({rowType:"BODY",rowIndex:G,value:Y,column:J,node:Z}),H=this.getStyleId(q),_=J.getColSpan(Z),k=this.addImage(G,J,W);if(k)D.push(this.createCell(H,this.getDataTypeForValue(k.value),k.value==null?"":k.value));else if(_>1)z=_-1,D.push(this.createMergedCell(H,this.getDataTypeForValue(Y),W,_-1));else{let w=J.isAllowFormula()&&this.formulaSvc?.isFormula(W),K=this.createCell(H,w?"f":this.getDataTypeForValue(Y),w?this.formulaSvc?.updateFormulaByOffset({value:W,rowDelta:G-(Z.formulaRowIndex+1),useRefFormat:!1}):W,X);D.push(K)}}}onNewRow(G,D){let z=[];return this.rows.push({cells:z,height:$B(this.rows.length+1,D)}),{onColumn:G.bind(this,this.rows.length,z)()}}addWorksheetToWorkbook(G){let{excelStyles:D,config:z}=this;if(this.mapSharedStrings(G),this.frozenColumnCount)z.frozenColumnCount=this.frozenColumnCount;if(this.frozenRowCount)z.frozenRowCount=this.frozenRowCount;return this.workbook.addWorksheet(D,G,z)}mapSharedStrings(G){let D;for(let z of G.table.rows)for(let B of z.cells){let Q=B.data;if(!Q||Q.type!=="s")continue;let J=Q.value;if(J==null)continue;if(J===""){D??(D=this.workbook.getStringPosition("").toString()),Q.value=D;continue}Q.value=this.workbook.getStringPosition(String(J)).toString()}}getDataTypeForValue(G){if(G===void 0)return"empty";let D="s";try{if(this.isNumerical(G))D="n"}catch(z){}return D}getTypeFromStyle(G,D){if(this.isFormula(D))return"f";if(G?.dataType)switch(G.dataType.toLocaleLowerCase()){case"formula":return"f";case"string":return"s";case"number":return"n";case"datetime":return"d";case"error":return"e";case"boolean":return"b";default:Q$(162,{id:G.id,dataType:G.dataType})}return null}addImage(G,D,z){if(!this.config.addImageToCell)return;let B=this.config.addImageToCell(G,D,z);if(!B)return;return this.workbook.addBodyImageToMap(B.image,G,D,this.columnsToExport,this.config.rowHeight),B}createCell(G,D,z,B){let Q=this.getStyleById(G);if(!Q?.dataType&&D==="s"&&B!=null)z=B;let J=this.getTypeFromStyle(Q,z)||D,{value:U,escaped:Z}=this.getCellValue(J,z),S=[];if(Q)S.push(G);if(Z)S.push("_quotePrefix");return G=this.getStyleId(S)||void 0,{styleId:G,data:{type:J,value:U}}}createMergedCell(G,D,z,B){let Q=z==null?"":z;return{styleId:this.getStyleById(G)?G:void 0,data:{type:D,value:D==="s"?String(Q):z},mergeAcross:B}}getCellValue(G,D){let z=!1;if(D==null||G==="s"&&D==="")return{value:"",escaped:!1};if(G==="s"){if(D=String(D),D[0]==="'")z=!0,D=D.slice(1)}else if(G==="f")D=this.addXlfnPrefix(D).slice(1);else if(G==="n"){let B=Number(D);if(isNaN(B))D="";else if(D!=="")D=B.toString()}return{value:D,escaped:z}}addXlfnPrefix(G){if(!G)return G;let D=/(^|[^A-Z0-9._])(CONCAT)(\s*\()/gi;return G.replace(D,(z,B,Q,J)=>`${B}_xlfn.${Q}${J}`)}getStyleId(G){if(!G?.length)return null;let D=G.filter((B)=>this.stylesByIds[B]!=null);if(!D.length)return null;if(D.length===1)return D[0];let z=D.join("-");if(!this.mixedStyles[z])this.addNewMixedStyle(D);return this.mixedStyles[z].excelID}addNewMixedStyle(G){this.mixedStyleCounter+=1;let D=`mixedStyle${this.mixedStyleCounter}`,z={};for(let Q of G){let J=this.stylesByIds[Q];if(J)B$(z,J,!0,!0)}z.id=D;let B=G.join("-");this.mixedStyles[B]={excelID:D,key:B,result:z},this.excelStyles.push(z),this.stylesByIds[D]=z}isFormula(G){if(G==null)return!1;let D=String(G);return this.config.autoConvertFormulas&&D$(D)}isNumerical(G){if(typeof G==="bigint")return!1;return isFinite(G)&&G!==""&&!isNaN(parseFloat(G))}getStyleById(G){if(G==null)return null;return this.stylesByIds[G]||null}},_$={getTemplate(G){let{name:D,ContentType:z,Extension:B,PartName:Q}=G;return{name:D,properties:{rawMap:{Extension:B,PartName:Q,ContentType:z}}}}},k$=_$,vB=(G)=>G==="jpg"?"jpeg":G,w$={getTemplate({sheetLen:G,hasCustomProperties:D}){let z=Array(G).fill(void 0).map((W,q)=>({name:"Override",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",PartName:`/xl/worksheets/sheet${q+1}.xml`})),B=qD.size,Q=mG.size,J={};Qz.forEach((W)=>{J[vB(W.type)]=!0});let U=Array(B).fill(void 0).map((W,q)=>({name:"Override",ContentType:"application/vnd.openxmlformats-officedocument.drawing+xml",PartName:`/xl/drawings/drawing${q+1}.xml`})),Z=[];uG.forEach(({name:W})=>{Z.push({name:"Override",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml",PartName:`/xl/tables/${W}.xml`})});let S=D?[{name:"Override",ContentType:"application/vnd.openxmlformats-officedocument.custom-properties+xml",PartName:"/docProps/custom.xml"}]:[],X=Object.keys(J).map((W)=>({name:"Default",ContentType:`image/${W}`,Extension:W}));if(Q)X.push({name:"Default",Extension:"vml",ContentType:"application/vnd.openxmlformats-officedocument.vmlDrawing"});let Y=[...X,{name:"Default",Extension:"rels",ContentType:"application/vnd.openxmlformats-package.relationships+xml"},{name:"Default",ContentType:"application/xml",Extension:"xml"},{name:"Override",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",PartName:"/xl/workbook.xml"},...z,{name:"Override",ContentType:"application/vnd.openxmlformats-officedocument.theme+xml",PartName:"/xl/theme/theme1.xml"},{name:"Override",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",PartName:"/xl/styles.xml"},{name:"Override",ContentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",PartName:"/xl/sharedStrings.xml"},...U,...Z,{name:"Override",ContentType:"application/vnd.openxmlformats-package.core-properties+xml",PartName:"/docProps/core.xml"},...S].map((W)=>k$.getTemplate(W));return{name:"Types",properties:{rawMap:{xmlns:"http://schemas.openxmlformats.org/package/2006/content-types"}},children:Y}}},K$=w$,f$={getTemplate(G){let z=new Date().toJSON();return{name:"cp:coreProperties",properties:{prefixedAttributes:[{prefix:"xmlns:",map:{cp:"http://schemas.openxmlformats.org/package/2006/metadata/core-properties",dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",xsi:"http://www.w3.org/2001/XMLSchema-instance"}}]},children:[{name:"dc:creator",textNode:G},{name:"dc:title",textNode:"Workbook"},{name:"dcterms:created",properties:{rawMap:{"xsi:type":"dcterms:W3CDTF"}},textNode:z},{name:"dcterms:modified",properties:{rawMap:{"xsi:type":"dcterms:W3CDTF"}},textNode:z}]}}},N$=f$,F$="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",E$=(G)=>{return Object.keys(G).filter((z)=>z&&G[z]!=null).map((z,B)=>({name:"property",properties:{rawMap:{fmtid:F$,pid:(B+2).toString(),name:JU(z)??""}},children:[{name:"vt:lpwstr",textNode:JU(kB(String(G[z])))??""}]}))},I$={getTemplate(G){return{name:"Properties",properties:{rawMap:{xmlns:"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties","xmlns:vt":"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"}},children:E$(G)}}},M$=I$,UU=(G,D)=>({name:`xdr:${G}`,children:[{name:"xdr:col",textNode:D.col.toString()},{name:"xdr:colOff",textNode:D.offsetX.toString()},{name:"xdr:row",textNode:D.row.toString()},{name:"xdr:rowOff",textNode:D.offsetY.toString()}]}),A$=(G)=>{let D=[{name:"a:ext",properties:{rawMap:{uri:"{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}"}},children:[{name:"a16:creationId",properties:{rawMap:{id:"{822E6D20-D7BC-2841-A643-D49A6EF008A2}","xmlns:a16":"http://schemas.microsoft.com/office/drawing/2014/main"}}}]}];switch(G.recolor?.toLowerCase()){case"grayscale":case"sepia":case"washout":D.push({name:"a:ext",properties:{rawMap:{uri:"{C183D7F6-B498-43B3-948B-1728B52AA6E4}"}},children:[{name:"adec:decorative",properties:{rawMap:{val:"0","xmlns:adec":"http://schemas.microsoft.com/office/drawing/2017/decorative"}}}]})}return{name:"a:extLst",children:D}},R$=(G,D)=>({name:"xdr:nvPicPr",children:[{name:"xdr:cNvPr",properties:{rawMap:{id:D,name:G.id,descr:G.altText!=null?G.altText:void 0}},children:[A$(G)]},{name:"xdr:cNvPicPr",properties:{rawMap:{preferRelativeResize:"0"}},children:[{name:"a:picLocks"}]}]}),ZU=(G)=>{if(!G.saturation&&!G.tint)return;let D=[];if(G.saturation)D.push({name:"a:satMod",properties:{rawMap:{val:G.saturation*1000}}});if(G.tint)D.push({name:"a:tint",properties:{rawMap:{val:G.tint*1000}}});return D},C$=(G,D)=>{return{name:"a:duotone",children:[{name:"a:prstClr",properties:{rawMap:{val:G.color}},children:ZU(G)},{name:"a:srgbClr",properties:{rawMap:{val:D.color}},children:ZU(D)}]}},V$=(G,D)=>{let z;if(G.transparency){let B=Math.min(Math.max(G.transparency,0),100);z=[{name:"a:alphaModFix",properties:{rawMap:{amt:1e5-Math.round(B*1000)}}}]}if(G.recolor){if(!z)z=[];switch(G.recolor.toLocaleLowerCase()){case"grayscale":z.push({name:"a:grayscl"});break;case"sepia":z.push(C$({color:"black"},{color:"D9C3A5",tint:50,saturation:180}));break;case"washout":z.push({name:"a:lum",properties:{rawMap:{bright:"70000",contrast:"-70000"}}});break;default:}}return{name:"xdr:blipFill",children:[{name:"a:blip",properties:{rawMap:{cstate:"print","r:embed":`rId${D}`,"xmlns:r":"http://schemas.openxmlformats.org/officeDocument/2006/relationships"}},children:z},{name:"a:stretch",children:[{name:"a:fillRect"}]}]}},b$=(G,D)=>{let z={name:"a:xfrm",children:[{name:"a:off",properties:{rawMap:{x:0,y:0}}},{name:"a:ext",properties:{rawMap:{cx:D.width,cy:D.height}}}]};if(G.rotation){let J=G.rotation;z.properties={rawMap:{rot:Math.min(Math.max(J,0),360)*60000}}}return{name:"xdr:spPr",children:[z,{name:"a:prstGeom",properties:{rawMap:{prst:"rect"}},children:[{name:"a:avLst"}]}]}},v$=(G)=>{G.fitCell=!!G.fitCell||!G.width||!G.height;let{position:D={},fitCell:z,width:B=0,height:Q=0,totalHeight:J,totalWidth:U}=G,{offsetX:Z=0,offsetY:S=0,row:X=1,rowSpan:Y=1,column:W=1,colSpan:q=1}=D;return{from:{row:X-1,col:W-1,offsetX:yD(Z),offsetY:yD(S)},to:{row:X-1+(z?1:Y-1),col:W-1+(z?1:q-1),offsetX:yD(B+Z),offsetY:yD(Q+S)},height:yD(J||Q),width:yD(U||B)}},O$=(G,D,z,B)=>{return{name:"xdr:pic",children:[R$(G,D+1),V$(G,z+1),b$(G,B)]}},u$={getTemplate(G){let{sheetIndex:D}=G,z=qD.get(D),B=Jz.get(D),Q=z.map((J,U)=>{let Z=v$(J);return{name:"xdr:twoCellAnchor",properties:{rawMap:{editAs:"absolute"}},children:[UU("from",Z.from),UU("to",Z.to),O$(J,U,B.get(J.id).index,Z),{name:"xdr:clientData"}]}});return{name:"xdr:wsDr",properties:{rawMap:{"xmlns:a":"http://schemas.openxmlformats.org/drawingml/2006/main","xmlns:xdr":"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"}},children:Q}}},j$=u$,P$={getTemplate(G){let{Id:D,Type:z,Target:B}=G;return{name:"Relationship",properties:{rawMap:{Id:D,Type:z,Target:B}}}}},g$=P$,T$={getTemplate(G){let D=G.map((z)=>g$.getTemplate(z));return{name:"Relationships",properties:{rawMap:{xmlns:"http://schemas.openxmlformats.org/package/2006/relationships"}},children:D}}},Y0=T$,y$={getTemplate(G){return{name:"sst",properties:{rawMap:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main",count:G.size,uniqueCount:G.size}},children:W$(G)}}},x$=y$,c$=(G)=>{switch(G){case 1:return"thin";case 2:return"medium";case 3:return"thick";default:return"hair"}},h$={None:"None",Dot:"Dotted",Dash:"Dashed",Double:"Double",DashDot:"DashDot",DashDotDot:"DashDotDot",SlantDashDot:"SlantDashDot",Continuous:"Continuous"},i$=["Dashed","DashDot","DashDotDot"],n$={None:"none",Solid:"solid",Gray50:"mediumGray",Gray75:"darkGray",Gray25:"lightGray",HorzStripe:"darkHorizontal",VertStripe:"darkVertical",ReverseDiagStripe:"darkDown",DiagStripe:"darkUp",DiagCross:"darkGrid",ThickDiagCross:"darkTrellis",ThinHorzStripe:"lightHorizontal",ThinVertStripe:"lightVertical",ThinReverseDiagStripe:"lightDown",ThinDiagStripe:"lightUp",ThinHorzCross:"lightGrid",ThinDiagCross:"lightTrellis",Gray125:"gray125",Gray0625:"gray0625"},d$={Automatic:"general",Left:"left",Center:"center",Right:"right",Fill:"fill",Justify:"justify",CenterAcrossSelection:"centerContinuous",Distributed:"distributed",JustifyDistributed:"justify"},l$={Automatic:void 0,Top:"top",Bottom:"bottom",Center:"center",Justify:"justify",Distributed:"distributed",JustifyDistributed:"justify"},p$=(G)=>{if(!G)return"none";return n$[G]||G},LD=(G)=>{if(G==null)return G;if(G.charAt(0)==="#")G=G.substring(1);return G.length===6?"FF"+G:G},f0=(G,D)=>{if(!G)return"thin";let z=c$(D);if(G==="Continuous")return z;let B=h$[G];if(z==="medium"&&i$.some((Q)=>Q===B))return`medium${B}`;return`${B.charAt(0).toLowerCase()}${B.substring(1)}`},m$=(G)=>{return d$[G]||"general"},t$=(G)=>{return l$[G]||void 0},kz=(G)=>{return{name:"color",properties:{rawMap:{rgb:LD(G||"#000000")}}}},s$={getTemplate(G){let{left:D,right:z,top:B,bottom:Q,diagonal:J}=G,U=D?[kz(D.color)]:void 0,Z=z?[kz(z.color)]:void 0,S=B?[kz(B.color)]:void 0,X=Q?[kz(Q.color)]:void 0,Y=J?[kz(J.color)]:void 0;return{name:"border",children:[{name:"left",properties:{rawMap:{style:D?.style}},children:U},{name:"right",properties:{rawMap:{style:z?.style}},children:Z},{name:"top",properties:{rawMap:{style:B?.style}},children:S},{name:"bottom",properties:{rawMap:{style:Q?.style}},children:X},{name:"diagonal",properties:{rawMap:{style:J?.style}},children:Y}]}}},o$=s$,r$={getTemplate(G){return{name:"borders",properties:{rawMap:{count:G.length}},children:G.map((D)=>o$.getTemplate(D))}}},a$=r$,e$=(G)=>{let z=["Context","LeftToRight","RightToLeft"].indexOf(G);return Math.max(z,0)},GL={getTemplate(G){let{horizontal:D,indent:z,readingOrder:B,rotate:Q,shrinkToFit:J,vertical:U,wrapText:Z}=G;return{name:"alignment",properties:{rawMap:{horizontal:D&&m$(D),indent:z,readingOrder:B&&e$(B),textRotation:Q,shrinkToFit:J,vertical:U&&t$(U),wrapText:Z}}}}},DL=GL,zL={getTemplate(G){let D=G.protected===!1?0:1;return{name:"protection",properties:{rawMap:{hidden:G.hideFormula===!0?1:0,locked:D}}}}},BL=zL,QL={getTemplate(G){let{alignment:D,borderId:z,fillId:B,fontId:Q,numFmtId:J,protection:U,quotePrefix:Z,xfId:S}=G,X=[];if(D)X.push(DL.getTemplate(D));if(U)X.push(BL.getTemplate(U));return{name:"xf",properties:{rawMap:{applyAlignment:D?1:void 0,applyProtection:U?1:void 0,applyBorder:z?1:void 0,applyFill:B?1:void 0,borderId:z,fillId:B,applyFont:Q?1:void 0,fontId:Q,applyNumberFormat:J?1:void 0,numFmtId:J,quotePrefix:Z?1:void 0,xfId:S}},children:X.length?X:void 0}}},H6=QL,JL={getTemplate(G){return{name:"cellStyleXfs",properties:{rawMap:{count:G.length}},children:G.map((D)=>H6.getTemplate(D))}}},UL=JL,ZL={getTemplate(G){let{builtinId:D,name:z,xfId:B}=G;return{name:"cellStyle",properties:{rawMap:{builtinId:D,name:z,xfId:B}}}}},$L=ZL,LL={getTemplate(G){return{name:"cellStyles",properties:{rawMap:{count:G.length}},children:G.map((D)=>$L.getTemplate(D))}}},SL=LL,XL={getTemplate(G){return{name:"cellXfs",properties:{rawMap:{count:G.length}},children:G.map((D)=>H6.getTemplate(D))}}},YL=XL,WL={getTemplate(G){let{patternType:D,fgTheme:z,fgTint:B,fgRgb:Q,bgRgb:J,bgIndexed:U}=G,Z={name:"patternFill",properties:{rawMap:{patternType:D}}};if(z||B||Q)Z.children=[{name:"fgColor",properties:{rawMap:{theme:z,tint:B,rgb:Q}}}];if(U||J){if(!Z.children)Z.children=[];Z.children.push({name:"bgColor",properties:{rawMap:{indexed:U,rgb:J}}})}return{name:"fill",children:[Z]}}},qL=WL,HL={getTemplate(G){return{name:"fills",properties:{rawMap:{count:G.length}},children:G.map((D)=>qL.getTemplate(D))}}},_L=HL,kL={getTemplate(G){let{size:D,colorTheme:z,color:B="FF000000",fontName:Q="Calibri",family:J,scheme:U,italic:Z,bold:S,strikeThrough:X,outline:Y,shadow:W,underline:q,verticalAlign:H}=G,_=[{name:"sz",properties:{rawMap:{val:D}}},{name:"color",properties:{rawMap:{theme:z,rgb:B}}},{name:"name",properties:{rawMap:{val:Q}}}];if(J)_.push({name:"family",properties:{rawMap:{val:J}}});if(U)_.push({name:"scheme",properties:{rawMap:{val:U}}});if(Z)_.push({name:"i"});if(S)_.push({name:"b"});if(X)_.push({name:"strike"});if(Y)_.push({name:"outline"});if(W)_.push({name:"shadow"});if(q)_.push({name:"u",properties:{rawMap:{val:q}}});if(H)_.push({name:"vertAlign",properties:{rawMap:{val:H}}});return{name:"font",children:_}}},wL=kL,KL={getTemplate(G){return{name:"fonts",properties:{rawMap:{count:G.length}},children:G.map((D)=>wL.getTemplate(D))}}},fL=KL;function FL(G){let D=G.split(/(\[[^\]]*\])/);for(let z=0;zIL.getTemplate(D))}}},AL=ML,wB,rD,G0,D0,z0,_6,KB,k6,g1,w6=(G,D)=>{if(G.includes("mixedStyle")&&D>1)G+=`_${D}`;return G},K6=()=>{wB={base:0},rD=[],G0=[{fontName:"Calibri",colorTheme:"1",family:"2",scheme:"minor"}],D0=[{patternType:"none"},{patternType:"gray125"}],z0=[{left:void 0,right:void 0,top:void 0,bottom:void 0,diagonal:void 0}],_6=[{borderId:0,fillId:0,fontId:0,numFmtId:0}],KB=[{borderId:0,fillId:0,fontId:0,numFmtId:0,xfId:0}],k6=[{builtinId:0,name:"Normal",xfId:0}]},RL=(G)=>{let D=p$(G.pattern),z=LD(G.color),B=LD(G.patternColor),Q=D0.findIndex((J)=>{let{patternType:U,fgRgb:Z,bgRgb:S}=J;return!(U!=D||Z!=z||S!=B)});if(Q===-1)Q=D0.length,D0.push({patternType:D,fgRgb:z,bgRgb:B});return Q},CL=(G)=>{if(BU[G])return BU[G];let D=rD.findIndex((z)=>z.formatCode===G);if(D===-1)D=rD.length+164,rD.push({formatCode:G,numFmtId:D});else D=rD[D].numFmtId;return D},VL=(G)=>{let{borderBottom:D,borderTop:z,borderLeft:B,borderRight:Q}=G,J,U,Z,S,X,Y,W,q;if(B)Z=f0(B.lineStyle,B.weight),W=LD(B.color);if(Q)S=f0(Q.lineStyle,Q.weight),q=LD(Q.color);if(D)J=f0(D.lineStyle,D.weight),X=LD(D.color);if(z)U=f0(z.lineStyle,z.weight),Y=LD(z.color);let H=z0.findIndex((_)=>{let{left:k,right:w,top:K,bottom:f}=_;if(!k&&(Z||W))return!1;if(!w&&(S||q))return!1;if(!K&&(U||Y))return!1;if(!f&&(J||X))return!1;let{style:N,color:F}=k||{},{style:E,color:I}=w||{},{style:V,color:A}=K||{},{style:R,color:O}=f||{};if(N!=Z||F!=W)return!1;if(E!=S||I!=q)return!1;if(V!=U||A!=Y)return!1;if(R!=J||O!=X)return!1;return!0});if(H===-1)H=z0.length,z0.push({left:{style:Z,color:W},right:{style:S,color:q},top:{style:U,color:Y},bottom:{style:J,color:X},diagonal:{style:void 0,color:void 0}});return H},bL=(G)=>{let{fontName:D="Calibri",color:z,size:B,bold:Q,italic:J,outline:U,shadow:Z,strikeThrough:S,underline:X,family:Y,verticalAlign:W}=G,q=LD(z),H=L$(Y),_=X?X.toLocaleLowerCase():void 0,k=W?W.toLocaleLowerCase():void 0,w=G0.findIndex((K)=>{return!(K.fontName!=D||K.color!=q||K.size!=B||K.bold!=Q||K.italic!=J||K.outline!=U||K.shadow!=Z||K.strikeThrough!=S||K.underline!=_||K.verticalAlign!=k||K.family!=H)});if(w===-1)w=G0.length,G0.push({fontName:D,color:q,size:B,bold:Q,italic:J,outline:U,shadow:Z,strikeThrough:S,underline:_,verticalAlign:k,family:H!=null?H.toString():void 0});return w},vL=(G)=>{let{alignment:D,borders:z,font:B,interior:Q,numberFormat:J,protection:U,quotePrefix:Z}=G,{id:S}=G,X=0,Y=0,W=0,q=0;if(!S)return;if(S=w6(S,g1),wB[S]!=null)return;if(Q)X=RL(Q);if(z)Y=VL(z);if(B)W=bL(B);if(J)q=CL(J.format);wB[S]=KB.length,KB.push({alignment:D,borderId:Y||0,fillId:X||0,fontId:W||0,numFmtId:q||0,protection:U,quotePrefix:Z,xfId:0})},OL={getTemplate(G){let D=AL.getTemplate(rD),z=fL.getTemplate(G0.map((S)=>({...S,size:S.size!=null?S.size:G}))),B=_L.getTemplate(D0),Q=a$.getTemplate(z0),J=UL.getTemplate(_6),U=YL.getTemplate(KB),Z=SL.getTemplate(k6);return K6(),{name:"styleSheet",properties:{rawMap:{"mc:Ignorable":"x14ac x16r2 xr",xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","xmlns:x14ac":"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac","xmlns:x16r2":"http://schemas.microsoft.com/office/spreadsheetml/2015/02/main","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision"}},children:[D,z,B,Q,J,U,Z,{name:"tableStyles",properties:{rawMap:{count:0,defaultPivotStyle:"PivotStyleLight16",defaultTableStyle:"TableStyleMedium2"}}}]}}},uL=(G,D)=>{return wB[w6(G,D)]||0},jL=(G,D)=>{if(g1=D,g1===1)K6();G.forEach(vL)},PL=OL,TL={getTemplate(G,D){let{name:z,columns:B,rowRange:Q,displayName:J,showRowStripes:U,showColumnStripes:Z,showFilterButtons:S,highlightFirstColumn:X,highlightLastColumn:Y}=G||{},W=!Q||Q[0]-Q[1]===0;if(!G||!z||!Array.isArray(B)||!B.length||W)return{name:"table"};let q=B.map((f,N)=>({name:"filterColumn",properties:{rawMap:{colId:N.toString(),hiddenButton:S[N]?0:1}}})),H=`A${Q[0]}`,_=`${OD(B.length)}${Q[1]}`,k=`${H}:${_}`,w=`${D+1}`,K=D?`${J}_${w}`:J;return{name:"table",properties:{rawMap:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main","xmlns:mc":"http://schemas.openxmlformats.org/markup-compatibility/2006","mc:Ignorable":"xr xr3","xmlns:xr":"http://schemas.microsoft.com/office/spreadsheetml/2014/revision","xmlns:xr3":"http://schemas.microsoft.com/office/spreadsheetml/2016/revision3",name:K,displayName:K,ref:k,totalsRowShown:0,id:w}},children:[{name:"autoFilter",properties:{rawMap:{ref:k}},children:q},{name:"tableColumns",properties:{rawMap:{count:B.length}},children:B.map((f,N)=>({name:"tableColumn",properties:{rawMap:{id:(N+1).toString(),name:gL(Y$(f)),dataCellStyle:"Normal"}}}))},{name:"tableStyleInfo",properties:{rawMap:{name:"TableStyleLight1",showFirstColumn:X?1:0,showLastColumn:Y?1:0,showRowStripes:U?1:0,showColumnStripes:Z?1:0}}}]}}},yL=TL,NG=(G)=>{let[D,z,B,Q]=G;return{name:`a:${D}`,children:[{name:`a:${z}`,properties:{rawMap:{val:B,lastClr:Q}}}]}},xL={getTemplate(){return{name:"a:clrScheme",properties:{rawMap:{name:"Office"}},children:[NG(["dk1","sysClr","windowText","000000"]),NG(["lt1","sysClr","window","FFFFFF"]),NG(["dk2","srgbClr","44546A"]),NG(["lt2","srgbClr","E7E6E6"]),NG(["accent1","srgbClr","4472C4"]),NG(["accent2","srgbClr","ED7D31"]),NG(["accent3","srgbClr","A5A5A5"]),NG(["accent4","srgbClr","FFC000"]),NG(["accent5","srgbClr","5B9BD5"]),NG(["accent6","srgbClr","70AD47"]),NG(["hlink","srgbClr","0563C1"]),NG(["folHlink","srgbClr","954F72"])]}}},cL=xL,C=(G)=>{let[D,z,B,Q]=G;return{name:`a:${D}`,properties:{rawMap:{script:B,typeface:z,panose:Q}}}},hL={getTemplate(){return{name:"a:fontScheme",properties:{rawMap:{name:"Office"}},children:[{name:"a:majorFont",children:[C(["latin","Calibri Light",void 0,"020F0302020204030204"]),C(["ea",""]),C(["cs",""]),C(["font","游ゴシック Light","Jpan"]),C(["font","맑은 고딕","Hang"]),C(["font","等线 Light","Hans"]),C(["font","新細明體","Hant"]),C(["font","Times New Roman","Arab"]),C(["font","Times New Roman","Hebr"]),C(["font","Tahoma","Thai"]),C(["font","Nyala","Ethi"]),C(["font","Vrinda","Beng"]),C(["font","Shruti","Gujr"]),C(["font","MoolBoran","Khmr"]),C(["font","Tunga","Knda"]),C(["font","Raavi","Guru"]),C(["font","Euphemia","Cans"]),C(["font","Plantagenet Cherokee","Cher"]),C(["font","Microsoft Yi Baiti","Yiii"]),C(["font","Microsoft Himalaya","Tibt"]),C(["font","MV Boli","Thaa"]),C(["font","Mangal","Deva"]),C(["font","Gautami","Telu"]),C(["font","Latha","Taml"]),C(["font","Estrangelo Edessa","Syrc"]),C(["font","Kalinga","Orya"]),C(["font","Kartika","Mlym"]),C(["font","DokChampa","Laoo"]),C(["font","Iskoola Pota","Sinh"]),C(["font","Mongolian Baiti","Mong"]),C(["font","Times New Roman","Viet"]),C(["font","Microsoft Uighur","Uigh"]),C(["font","Sylfaen","Geor"]),C(["font","Arial","Armn"]),C(["font","Leelawadee UI","Bugi"]),C(["font","Microsoft JhengHei","Bopo"]),C(["font","Javanese Text","Java"]),C(["font","Segoe UI","Lisu"]),C(["font","Myanmar Text","Mymr"]),C(["font","Ebrima","Nkoo"]),C(["font","Nirmala UI","Olck"]),C(["font","Ebrima","Osma"]),C(["font","Phagspa","Phag"]),C(["font","Estrangelo Edessa","Syrn"]),C(["font","Estrangelo Edessa","Syrj"]),C(["font","Estrangelo Edessa","Syre"]),C(["font","Nirmala UI","Sora"]),C(["font","Microsoft Tai Le","Tale"]),C(["font","Microsoft New Tai Lue","Talu"]),C(["font","Ebrima","Tfng"])]},{name:"a:minorFont",children:[C(["latin","Calibri",void 0,"020F0502020204030204"]),C(["ea",""]),C(["cs",""]),C(["font","游ゴシック","Jpan"]),C(["font","맑은 고딕","Hang"]),C(["font","等线","Hans"]),C(["font","新細明體","Hant"]),C(["font","Arial","Arab"]),C(["font","Arial","Hebr"]),C(["font","Tahoma","Thai"]),C(["font","Nyala","Ethi"]),C(["font","Vrinda","Beng"]),C(["font","Shruti","Gujr"]),C(["font","DaunPenh","Khmr"]),C(["font","Tunga","Knda"]),C(["font","Raavi","Guru"]),C(["font","Euphemia","Cans"]),C(["font","Plantagenet Cherokee","Cher"]),C(["font","Microsoft Yi Baiti","Yiii"]),C(["font","Microsoft Himalaya","Tibt"]),C(["font","MV Boli","Thaa"]),C(["font","Mangal","Deva"]),C(["font","Gautami","Telu"]),C(["font","Latha","Taml"]),C(["font","Estrangelo Edessa","Syrc"]),C(["font","Kalinga","Orya"]),C(["font","Kartika","Mlym"]),C(["font","DokChampa","Laoo"]),C(["font","Iskoola Pota","Sinh"]),C(["font","Mongolian Baiti","Mong"]),C(["font","Arial","Viet"]),C(["font","Microsoft Uighur","Uigh"]),C(["font","Sylfaen","Geor"]),C(["font","Arial","Armn"]),C(["font","Leelawadee UI","Bugi"]),C(["font","Microsoft JhengHei","Bopo"]),C(["font","Javanese Text","Java"]),C(["font","Segoe UI","Lisu"]),C(["font","Myanmar Text","Mymr"]),C(["font","Ebrima","Nkoo"]),C(["font","Nirmala UI","Olck"]),C(["font","Ebrima","Osma"]),C(["font","Phagspa","Phag"]),C(["font","Estrangelo Edessa","Syrn"]),C(["font","Estrangelo Edessa","Syrj"]),C(["font","Estrangelo Edessa","Syre"]),C(["font","Nirmala UI","Sora"]),C(["font","Microsoft Tai Le","Tale"]),C(["font","Microsoft New Tai Lue","Talu"]),C(["font","Ebrima","Tfng"])]}]}}},iL=hL,vG=(G,D,z)=>({name:`a:${G}`,properties:{rawMap:{val:D}},children:z}),JQ=(G)=>{let[D,z,B,Q,J,U]=G,Z=[];if(Z.push(vG("satMod",B)),Q)Z.push(vG("lumMod",Q));if(J)Z.push(vG("tint",J));if(U)Z.push(vG("shade",U));return{name:"a:gs",properties:{rawMap:{pos:D}},children:[{name:"a:schemeClr",properties:{rawMap:{val:z}},children:Z}]}},fB=(G,D)=>({name:"a:solidFill",children:[vG("schemeClr",G,D)]}),T1=(G)=>{let[D,z,B,Q,J]=G,[U,Z]=J;return{name:"a:gradFill",properties:{rawMap:{rotWithShape:D}},children:[{name:"a:gsLst",children:[JQ(z),JQ(B),JQ(Q)]},{name:"a:lin",properties:{rawMap:{ang:U,scaled:Z}}}]}},UQ=(G)=>{let[D,z,B,Q]=G;return{name:"a:ln",properties:{rawMap:{w:D,cap:z,cmpd:B,algn:Q}},children:[fB("phClr"),vG("prstDash","solid"),{name:"a:miter",properties:{rawMap:{lim:"800000"}}}]}},ZQ=(G)=>{let D=[];if(G){let[z,B,Q,J,U]=G;D.push({name:"a:outerShdw",properties:{rawMap:{blurRad:z,dist:B,dir:Q,algn:J,rotWithShape:U}},children:[vG("srgbClr","000000",[vG("alpha","63000")])]})}return{name:"a:effectStyle",children:[Object.assign({},{name:"a:effectLst"},D.length?{children:D}:{})]}},nL=()=>({name:"a:fillStyleLst",children:[fB("phClr"),T1(["1",["0","phClr","105000","110000","67000"],["50000","phClr","103000","105000","73000"],["100000","phClr","109000","105000","81000"],["5400000","0"]]),T1(["1",["0","phClr","103000","102000","94000"],["50000","phClr","110000","100000",void 0,"100000"],["100000","phClr","120000","99000",void 0,"78000"],["5400000","0"]])]}),dL=()=>({name:"a:lnStyleLst",children:[UQ(["6350","flat","sng","ctr"]),UQ(["12700","flat","sng","ctr"]),UQ(["19050","flat","sng","ctr"])]}),lL=()=>({name:"a:effectStyleLst",children:[ZQ(),ZQ(),ZQ(["57150","19050","5400000","ctr","0"])]}),pL=()=>({name:"a:bgFillStyleLst",children:[fB("phClr"),fB("phClr",[vG("tint","95000"),vG("satMod","170000")]),T1(["1",["0","phClr","150000","102000","93000","98000"],["50000","phClr","130000","103000","98000","90000"],["100000","phClr","120000",void 0,void 0,"63000"],["5400000","0"]])]}),mL={getTemplate(){return{name:"a:fmtScheme",properties:{rawMap:{name:"Office"}},children:[nL(),dL(),lL(),pL()]}}},tL=mL,sL={getTemplate(){return{name:"a:themeElements",children:[cL.getTemplate(),iL.getTemplate(),tL.getTemplate()]}}},oL=sL,rL={getTemplate(){return{name:"a:theme",properties:{prefixedAttributes:[{prefix:"xmlns:",map:{a:"http://schemas.openxmlformats.org/drawingml/2006/main"}}],rawMap:{name:"Office Theme"}},children:[oL.getTemplate(),{name:"a:objectDefaults"},{name:"a:extraClrSchemeLst"}]}}},aL=rL,eL=()=>({name:"o:shapelayout",properties:{prefixedAttributes:[{prefix:"v:",map:{ext:"edit"}}]},children:[{name:"o:idmap",properties:{prefixedAttributes:[{prefix:"v:",map:{ext:"edit"}}],rawMap:{data:"1"}}}]}),GS=()=>({name:"v:stroke",properties:{rawMap:{joinstyle:"miter"}}}),DS=(G)=>({name:"v:formulas",children:G.map((D)=>({name:"v:f",properties:{rawMap:{eqn:D}}}))}),zS=()=>({name:"v:path",properties:{prefixedAttributes:[{prefix:"o:",map:{connecttype:"rect",extrusionok:"f"}}],rawMap:{gradientshapeok:"t"}}}),f6=(G)=>{let{aspectratio:D,rotation:z}=G||{},B={};if(D)B.aspectratio="t";if(z)B.rotation="t";return{name:"o:lock",properties:{prefixedAttributes:[{prefix:"v:",map:{ext:"edit"}}],rawMap:B}}};function BS(G,D,z,B,Q){return(G-D)/(z-D)*(Q-B)+B}var QS=(G,D)=>{let z,{recolor:B,brightness:Q,contrast:J,id:U}=G;if(B){if(z={},B==="Washout"||B==="Grayscale")z.gain="19661f",z.blacklevel="22938f";if(B==="Black & White"||B==="Grayscale"){if(z.grayscale="t",B==="Black & White")z.bilevel="t"}}if(!B||B==="Grayscale"){if(!z)z={};if(J!=null&&J!==50){let Z="1";if(J>=0){if(J<50)Z=String(J/50);else if(J<100)Z=String(50/(100-J));else if(J===100)Z="2147483647f"}z.gain=Z}if(Q!=null&&Q!==50)z.blacklevel=BS(Q,0,100,-0.5,0.5).toString()}return{name:"v:imagedata",properties:{prefixedAttributes:[{prefix:"o:",map:{relid:`rId${D}`,title:U}}],rawMap:z}}},JS=()=>{let G=["if lineDrawn pixelLineWidth 0","sum @0 1 0","sum 0 0 @1","prod @2 1 2","prod @3 21600 pixelWidth","prod @3 21600 pixelHeight","sum @0 0 1","prod @6 1 2","prod @7 21600 pixelWidth","sum @8 21600 0","prod @7 21600 pixelHeight","sum @10 21600 0"];return{name:"v:shapetype",properties:{prefixedAttributes:[{prefix:"o:",map:{spt:"75",preferrelative:"t"}}],rawMap:{coordsize:"21600,21600",filled:"f",id:"_x0000_t75",path:"m@4@5l@4@11@9@11@9@5xe",stroked:"f"}},children:[GS(),DS(G),zS(),f6({aspectratio:!0})]}},$U=(G)=>Math.floor((G??0)*0.74999943307122),US=(G,D)=>{let{width:z=0,height:B=0,altText:Q}=G,J=$U(z),U=$U(B);return{name:"v:shape",properties:{rawMap:{id:G.headerFooterPosition,"o:spid":"_x0000_s1025",style:`position: absolute; margin-left: 0; margin-top: 10in; margin-bottom: 0; margin-right: 0; width: ${J}pt; height: ${U}pt; z-index: ${D+1}`,type:"#_x0000_t75",alt:Q}},children:[QS(G,D+1),f6({rotation:!0})]}},ZS={getTemplate(G){let D=mG.get(G.sheetIndex)||[],z=[eL(),JS(),...D.map((B,Q)=>US(B,Q))];return{name:"xml",properties:{prefixedAttributes:[{prefix:"xmlns:",map:{v:"urn:schemas-microsoft-com:vml",o:"urn:schemas-microsoft-com:office:office",x:"urn:schemas-microsoft-com:office:excel"}}]},children:z}}},$S=ZS,LS={getTemplate(G,D){let z=(D+1).toString();return{name:"sheet",properties:{rawMap:{name:G,sheetId:z,"r:id":`rId${z}`}}}}},SS=LS,XS={getTemplate(G){return{name:"sheets",children:G.map((D,z)=>SS.getTemplate(D,z))}}},YS=XS,WS={getTemplate(G,D){return{name:"workbook",properties:{prefixedAttributes:[{prefix:"xmlns:",map:{r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships"}}],rawMap:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main"}},children:[{name:"bookViews",children:[{name:"workbookView",properties:{rawMap:{activeTab:D}}}]},YS.getTemplate(G)]}}},qS=WS,_S=(G)=>Math.ceil((G-12)/7+1),kS={getTemplate(G){let{min:D,max:z,outlineLevel:B,s:Q,width:J,hidden:U,bestFit:Z}=G,S=1,X="0";if(J>1)S=_S(J),X="1";return{name:"col",properties:{rawMap:{min:D,max:z,outlineLevel:B!=null?B:void 0,width:S,style:Q,hidden:U?"1":"0",bestFit:Z?"1":"0",customWidth:X}}}}},wS=kS,KS={getTemplate(G){return{name:"mergeCell",properties:{rawMap:{ref:G}}}}},fS=KS,NS=(G)=>{let D=G.charAt(0).toLowerCase();return D==="s"?"inlineStr":D},FS={getTemplate(G,D,z){let{ref:B,data:Q,styleId:J}=G,{type:U,value:Z}=Q||{type:"empty",value:null},S=U;if(U==="f")S="str";else if(U.charAt(0)===U.charAt(0).toUpperCase())S=NS(U);let X={name:"c",properties:{rawMap:{r:B,t:S==="empty"?void 0:S,s:J?uL(J,z):void 0}}};if(S==="empty")return X;let Y;if(S==="str"&&U==="f")Y=[{name:"f",textNode:LU(kB(Z))}];else if(S==="inlineStr")Y=[{name:"is",children:[{name:"t",textNode:LU(kB(Z))}]}];else Y=[{name:"v",textNode:Z}];return Object.assign({},X,{children:Y})}},ES=FS,IS=(G,D)=>{let z=[],B=0;for(let Q=0;Q=0;Q--){let J=[],U=G[z[Q].pos];for(let Z=1;Z<=U.mergeAcross;Z++)J.push({ref:`${OD(z[Q].excelPos+1+Z)}${D+1}`,styleId:U.styleId,data:{type:"empty",value:null}});if(J.length)G.splice(z[Q].pos+1,0,...J)}},MS=(G)=>G.data?.value!==""||G.styleId!==void 0,AS={getTemplate(G,D,z){let{collapsed:B,hidden:Q,height:J,outlineLevel:U,cells:Z=[]}=G;IS(Z,D);let S=Z.filter(MS).map((X,Y)=>ES.getTemplate(X,Y,z));return{name:"row",properties:{rawMap:{r:D+1,collapsed:B?"1":"0",hidden:Q?"1":"0",ht:J,customHeight:J!=null?"1":"0",spans:"1:1",outlineLevel:U||void 0}},children:S}}},RS=AS,CS=(G,D,z)=>{let B=[],Q=[];G.forEach((Z,S)=>{let X=Z.cells,Y=0,W;X.forEach((q,H)=>{let _=H+Y+1,k=OD(_),w=S+1;if(q.mergeAcross){Y+=q.mergeAcross;let f=OD(H+Y+1);B.push(`${k}${w}:${f}${w}`)}if(!D[_-1])D[_-1]={};let{collapsibleRanges:K}=q;if(K)K.forEach((f)=>{Q.push([_+f[0],_+f[1]])});W=D[_-1],W.min=_,W.max=_,q.ref=`${k}${w}`})}),Q.sort((Z,S)=>{if(Z[0]!==S[0])return Z[0]-S[0];return S[1]-Z[1]});let J=new Map,U=new Map;return Q.filter((Z)=>{let S=Z.toString();if(J.get(S))return!1;return J.set(S,!0),!0}).forEach((Z)=>{let S=D.find((Y)=>Y.min==Z[0]&&Y.max==Z[1]),X=U.get(Z[0]);D.push({min:Z[0],max:Z[1],outlineLevel:z?void 0:X||1,width:(S||{width:100}).width}),U.set(Z[0],(X||0)+1)}),B},VS=(G)=>{if(!G||G!=="Portrait"&&G!=="Landscape")return"portrait";return G.toLocaleLowerCase()},bS=(G)=>{if(G==null)return 1;let z=["Letter","Letter Small","Tabloid","Ledger","Legal","Statement","Executive","A3","A4","A4 Small","A5","A6","B4","B5","Folio","Envelope","Envelope DL","Envelope C5","Envelope B5","Envelope C3","Envelope C4","Envelope C6","Envelope Monarch","Japanese Postcard","Japanese Double Postcard"].indexOf(G);return z===-1?1:z+1},vS=(G)=>{let D={"&[Page]":"&P","&[Pages]":"&N","&[Date]":"&D","&[Time]":"&T","&[Tab]":"&A","&[Path]":"&Z","&[File]":"&F","&[Picture]":"&G"};for(let z of Object.keys(D))G=G.replace(z,D[z]);return G},OS=(G)=>{if(G==="Center")return"C";if(G==="Right")return"R";return"L"},uS=(G,D)=>{if(!D)return G;if(G+="&"",G+=D.fontName||"Calibri",D.bold!==D.italic)G+=D.bold?",Bold":",Italic";else if(D.bold)G+=",Bold Italic";else G+=",Regular";if(G+=""",D.size)G+=`&${D.size}`;if(D.strikeThrough)G+="&S";if(D.underline)G+=`&${D.underline==="Double"?"E":"U"}`;if(D.color)G+=`&K${D.color.replace("#","").toUpperCase()}`;return G},jS=(G,D,z)=>G.reduce((B,Q,J)=>{let U=OS(Q.position),Z=uS(`${B}&${U}`,Q.font),S=["Left","Center","Right"];if(!Q.position)Q.position=S[J];let{image:X}=Q;if(Q.value==="&[Picture]"&&X){let Y=`${U}${D}${z}`;N6(X,Y)}return`${Z}${HS(vS(Q.value))}`},""),PS=(G)=>{let D=["all","first","even"],z=[];return D.forEach((B)=>{let Q=G[B],J=B==="all"?"odd":B;if(!Q)return;for(let U of Object.keys(Q)){let Z=Q[U],S=`${U.charAt(0).toUpperCase()}${U.slice(1)}`,X=U[0].toUpperCase();if(Z){let Y=B==="all"?"":B.toUpperCase();z.push({name:`${J}${S}`,properties:{rawMap:{"xml:space":"preserve"}},textNode:jS(Z,X,Y)})}}}),z},gS=(G)=>{return(D)=>{if(G.length)D.children.push({name:"cols",children:G.map((z)=>wS.getTemplate(z))});return D}},TS=(G,D)=>{return(z)=>{if(G.length)z.children.push({name:"sheetData",children:G.map((B,Q)=>RS.getTemplate(B,Q,D))});return z}},yS=(G)=>{let D=G.length;if(!D)return"";let z=Array(D+1);z[0]=D;for(let Q=1;Q<=D;Q++)z[Q]=G.charCodeAt(Q-1)&255;let B=0;for(let Q=z.length-1;Q>=0;Q--){let J=z[Q],U=(B&16384)===0?0:1,Z=B<<1&32767;B=(U|Z)^J}return(B^52811).toString(16).toUpperCase().padStart(4,"0")},xS=(G)=>{return(D)=>{if(!G)return D;let z=typeof G==="boolean"?{}:G,B={sheet:1},Q=z.password?yS(z.password):"";if(Q)B.password=Q;let J={autoFilter:!1,deleteColumns:!1,deleteRows:!1,formatCells:!1,formatColumns:!1,formatRows:!1,insertColumns:!1,insertHyperlinks:!1,insertRows:!1,pivotTables:!1,selectLockedCells:!0,selectUnlockedCells:!0};return Object.keys(J).forEach((U)=>{let Z=z[U];if(Z==null||Z===J[U])return;B[U]=Z?0:1}),D.children.push({name:"sheetProtection",properties:{rawMap:B}}),D}},cS=(G)=>{return(D)=>{if(G.length)D.children.push({name:"mergeCells",properties:{rawMap:{count:G.length}},children:G.map((z)=>fS.getTemplate(z))});return D}},hS=(G)=>{return(D)=>{let{top:z=0.75,right:B=0.7,bottom:Q=0.75,left:J=0.7,header:U=0.3,footer:Z=0.3}=G;return D.children.push({name:"pageMargins",properties:{rawMap:{bottom:Q,footer:Z,header:U,left:J,right:B,top:z}}}),D}},iS=(G)=>{return(D)=>{if(G)D.children.push({name:"pageSetup",properties:{rawMap:{horizontalDpi:0,verticalDpi:0,orientation:VS(G.orientation),paperSize:bS(G.pageSize)}}});return D}},nS=(G)=>{return(D)=>{if(!G)return D;let z=G.first!=null?1:0,B=G.even!=null?1:0;return D.children.push({name:"headerFooter",properties:{rawMap:{differentFirst:z,differentOddEven:B}},children:PS(G)}),D}},dS=(G)=>{return(D)=>{if(G)D.children.push({name:"tableParts",properties:{rawMap:{count:"1"}},children:[{name:"tablePart",properties:{rawMap:{"r:id":`rId${++D.rIdCounter}`}}}]});return D}},lS=(G)=>{return(D)=>{if(qD.get(G)?.length)D.children.push({name:"drawing",properties:{rawMap:{"r:id":`rId${++D.rIdCounter}`}}});return D}},pS=(G)=>{return(D)=>{if(mG.get(G))D.children.push({name:"legacyDrawingHF",properties:{rawMap:{"r:id":`rId${++D.rIdCounter}`}}});return D}},mS=(G=0,D=0)=>{let z=G>0||D>0;return z?[{name:"pane",properties:{rawMap:{state:z?"frozen":void 0,topLeftCell:z?`${OD(G+1)}${D+1}`:void 0,xSplit:G===0?void 0:G,ySplit:D===0?void 0:D}}}]:void 0},tS=(G=!1,D,z)=>{return(B)=>{return B.children.push({name:"sheetViews",children:[{name:"sheetView",properties:{rawMap:{rightToLeft:G===!0?"1":"0",workbookViewId:"0"}},children:mS(D,z)}]}),B}},sS=()=>{return(G)=>{return G.children.push({name:"sheetPr",children:[{name:"outlinePr",properties:{rawMap:{summaryBelow:0}}}]}),G}},oS=(G)=>{return(D)=>{let z=G.reduce((B,Q)=>{if(Q.outlineLevel&&Q.outlineLevel>B)return Q.outlineLevel;return B},0);return D.children.push({name:"sheetFormatPr",properties:{rawMap:{baseColWidth:10,defaultRowHeight:16,outlineLevelRow:z?z:void 0}}}),D}},rS={getTemplate(G){let{worksheet:D,currentSheet:z,config:B}=G,{margins:Q={},pageSetup:J,headerFooterConfig:U,suppressColumnOutline:Z,rightToLeft:S,frozenRowCount:X,frozenColumnCount:Y,protectSheet:W}=B,{table:q}=D,{rows:H,columns:_}=q,k=_?.length?CS(H,_,!!Z):[],w=uG.get(z),{children:K}=[sS(),tS(S,Y,X),oS(H),gS(_),TS(H,z+1),xS(W),cS(k),hS(Q),iS(J),nS(U),lS(z),pS(z),dS(w)].reduce((f,N)=>N(f),{children:[],rIdCounter:0});return{name:"worksheet",properties:{prefixedAttributes:[{prefix:"xmlns:",map:{r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships"}}],rawMap:{xmlns:"http://schemas.openxmlformats.org/spreadsheetml/2006/main"}},children:K}}},aS=rS,MD=new Map,KG=[],bD=[],vD=new Map,WD=new Map,qD=new Map,mG=new Map,Qz=new Map,Jz=new Map,uG=new Map,eS="AG-GRID-TABLE",$J="SINGLE_SHEET";function GX(){return $J}function DX(G){$J=G}function zX(G,D,z){ZX(D),jL(G,KG.length);let B=Object.assign({},z);if(z.exportAsExcelTable&&z.pivotModeActive)ZJ(163,{featureName:"pivot mode"}),B.exportAsExcelTable=!1;JX(D,B);let Q=MX(D,B);return AX(Q),Q}function BX(G){return G.replace(/^[^a-zA-Z_]+/,"_").replace(/\s/g,"_").replace(/[^a-zA-Z0-9_]/g,"_")}function QX(G,D){if(uG.has(G)){ZJ(164);return}uG.set(G,D)}function JX(G,D){let{exportAsExcelTable:z,prependContent:B,appendContent:Q,headerRowCount:J=0}=D;if(!z)return;let U=typeof z==="boolean"?{}:z,{name:Z,showColumnStripes:S,showRowStripes:X,showFilterButton:Y,highlightFirstColumn:W,highlightLastColumn:q}=U,H=BX(Z||eS),_=KG.length-1,{table:k}=G,{rows:w,columns:K}=k,f=B?B.length:0,N=Q?Q.length:0,F=w.length,E=K.length,I=[],V=[];for(let A=0;AJ.id===G.id))Q.push(G)}function UX(G,D,z,B,Q){let J=KG.length,{row:U,column:Z}=G.position||{},S=G;if(B){if(D!=null&&z!=null&&(!U||!Z)){if(!G.position)G.position={};G.position=Object.assign({},G.position,{row:D,column:B.indexOf(z)+1})}S$(S,B),X$(S,Q)}F6({imageToAdd:S,idx:J});let X=Jz.get(J);if(!X)X=new Map,Jz.set(J,X);let Y=qD.get(J);if(!Y)qD.set(J,[S]);else Y.push(S);if(!X.get(G.id))X.set(G.id,{index:X.size,type:G.imageType})}function F6(G){let{imageToAdd:D,idx:z}=G,B=WD.get(D.id);if(B){let Q=B.find((J)=>J.sheetId===z);if(Q)Q.image.push(D);else B.push({sheetId:z,image:[D]})}else WD.set(D.id,[{sheetId:z,image:[D]}]),Qz.set(D.id,{type:D.imageType,index:Qz.size})}function ZX(G){let D=H$(G.name)||"",z="";while(KG.indexOf(`${D}${z}`)!==-1)if(z==="")z="_1";else z=`_${parseInt(z.slice(1),10)+1}`;G.name=`${D}${z}`,KG.push(G.name)}function $X(G){if(MD.has(G))return MD.get(G);return MD.set(G,MD.size),MD.size-1}function LX(){MD.clear(),WD.clear(),qD.clear(),mG.clear(),Qz.clear(),Jz.clear(),uG.clear(),KG=[],bD=[],vD=new Map,$J="SINGLE_SHEET"}function SX(G){return SG(qS.getTemplate(KG,G))}function XX(G){return SG(PL.getTemplate(G))}function YX(){return SG(x$.getTemplate(MD))}function WX(G){return SG(N$.getTemplate(G))}function qX(G){return SG(M$.getTemplate(G))}function HX(G,D){return SG(K$.getTemplate({sheetLen:G,hasCustomProperties:D}))}function _X(G){let D=[{Id:"rId1",Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",Target:"xl/workbook.xml"},{Id:"rId2",Type:"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",Target:"docProps/core.xml"}];if(G)D.push({Id:"rId3",Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties",Target:"docProps/custom.xml"});let z=Y0.getTemplate(D);return SG(z)}function kX(){return SG(aL.getTemplate())}function wX(G,D){return SG(yL.getTemplate(G,D))}function KX(G){let D=Array(G).fill(void 0).map((B,Q)=>({Id:`rId${Q+1}`,Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet",Target:`worksheets/sheet${Q+1}.xml`})),z=Y0.getTemplate([...D,{Id:`rId${G+1}`,Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",Target:"theme/theme1.xml"},{Id:`rId${G+2}`,Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",Target:"styles.xml"},{Id:`rId${G+3}`,Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",Target:"sharedStrings.xml"}]);return SG(z)}function fX(G){return SG(j$.getTemplate({sheetIndex:G}))}function NX(G){let D=Jz.get(G)||[],z=[];for(let[B,Q]of D){let{index:J,type:U}=Q;z.push({Id:`rId${J+1}`,Type:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",Target:`../media/image${Qz.get(B).index+1}.${vB(U)}`})}return SG(Y0.getTemplate(z))}function FX(G){return SG($S.getTemplate({sheetIndex:G}),!0)}function EX(G){let D=mG.get(G)||[],z=[];for(let B=0;B{if(!G.size)return;let z=new Map;D.forEach((B,Q)=>{if(G.has(B))z.set(Q,G.get(B))}),G.clear(),z.forEach((B,Q)=>G.set(Q,B))},AX=(G)=>{let D=vD.get(G)??[];D.push(KG.length-1),vD.set(G,D),bD.push(G)},RX=(G)=>{let D=new Map(vD),z=[];for(let B of G){let Q=D.get(B);if(!Q?.length)return null;let J=Q.shift();z.push(J),D.set(B,Q)}return z},CX=(G)=>{if(!G.length||bD.length===0)return null;let D=new Set,z=[];for(let B of G){let Q=bD.findIndex((J,U)=>!D.has(U)&&J===B);if(Q===-1)return null;D.add(Q),z.push(Q)}return z},VX=(G)=>{let D=new Map;G.forEach((z,B)=>D.set(z,B)),KG=G.map((z)=>KG[z]),bD=G.map((z)=>bD[z]),N0(qD,G),N0(mG,G),N0(uG,G),N0(Jz,G),WD.forEach((z)=>{z.forEach((B)=>{let Q=D.get(B.sheetId);if(Q!=null)B.sheetId=Q})}),vD=new Map,bD.forEach((z,B)=>{let Q=vD.get(z)??[];Q.push(B),vD.set(z,Q)})},bX=(G)=>{if(G.length<=1)return;let D=RX(G)??CX(G);if(!D)return;VX(D)},OB=class{getStringPosition(G){return $X(G)}addBodyImageToMap(G,D,z,B,Q){UX(G,D,z,B,Q)}addHeaderFooterImageToMap(G,D){N6(G,D)}addWorksheet(G,D,z){return zX(G,D,z)}syncOrderWithSheetData(G){bX(G)}reset(){LX()}setFactoryMode(G){DX(G)}getFactoryMode(){return GX()}getSheetNames(){return[...KG]}},OX=async(G)=>{let D=0,z=[],B=new WritableStream({write:(U)=>{z.push(U),D+=U.length}}),Q=new ReadableStream({start:(U)=>{let Z=new FileReader;Z.onload=(S)=>{if(S.target?.result)U.enqueue(S.target.result);U.close()},Z.readAsArrayBuffer(G)}}),J=new window.CompressionStream("deflate-raw");return await Q.pipeThrough(J).pipeTo(B),{size:D,content:new Blob(z)}},uX=async(G)=>{let D=new Blob([G]),{size:z,content:B}=await OX(D),Q=new Uint8Array(await B.arrayBuffer());return{size:z,content:Q}},jX=(G)=>{let D=G.getHours();return D<<=6,D=D|G.getMinutes(),D<<=5,D=D|G.getSeconds()/2,D},PX=(G)=>{let D=G.getFullYear()-1980;return D<<=4,D=D|G.getMonth()+1,D<<=5,D=D|G.getDate(),D};function LG(G,D){let z="";for(let B=0;B>>=8;return z}var SU=(G)=>{if(!G.length)return 0;let D=-1,z=0,B=0,Q=0;for(let J=0;J>>8^Q;return D^-1},XU=(G)=>{if(!G.length)return 0;if(typeof G==="string")return SU(new TextEncoder().encode(G));return SU(G)},gX=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function TX(G){let D=String.fromCharCode;function z(W){let q=[];if(!W)return[];let H=W.length,_=0,k,w;while(_=55296&&k<=56319&&_=55296&&W<=57343)throw Error(vX(255,{point:W}))}function Q(W,q){return D(W>>q&63|128)}function J(W){if((W&4294967168)==0)return D(W);let q="";if((W&4294965248)==0)q=D(W>>6&31|192);else if((W&4294901760)==0)B(W),q=D(W>>12&15|224),q+=Q(W,6);else if((W&4292870144)==0)q=D(W>>18&7|240),q+=Q(W,12),q+=Q(W,6);return q+=D(W&63|128),q}let U=z(G),Z=U.length,S=-1,X,Y="";while(++S{let{content:U,path:Z,created:S}=G,X=jX(S),Y=PX(S),W=XU(Q),q=J!==void 0?J:B,H=TX(Z),_=H!==Z,k="";if(_){let N=LG(1,1)+LG(XU(H),4)+H;k="up"+LG(N.length,2)+N}let w="\x14\x00"+(_?"\x00\b":"\x00\x00")+LG(D?8:0,2)+LG(X,2)+LG(Y,2)+LG(q?W:0,4)+LG(J??B,4)+LG(B,4)+LG(H.length,2)+LG(k.length,2),K="PK\x03\x04"+w+H+k,f="PK\x01\x02\x14\x00"+w+"\x00\x00\x00\x00\x00\x00"+(U?"\x00\x00\x00\x00":"\x10\x00\x00\x00")+LG(z,4)+H+k;return{localFileHeader:Uint8Array.from(K,(N)=>N.charCodeAt(0)),centralDirectoryHeader:Uint8Array.from(f,(N)=>N.charCodeAt(0))}},I6=(G)=>{let D;if(typeof G==="string"){let z=atob(G.split(";base64,")[1]);D=Uint8Array.from(z,(B)=>B.charCodeAt(0))}else D=G;return{size:D.length,content:D}},yX=async(G)=>{let{content:D}=G,{size:z,content:B}=!D?{size:0,content:Uint8Array.from([])}:I6(D),Q,J,U=!1;if(G.type==="file"&&B&&z>0){let S=await uX(B);Q=S.content,J=S.size,U=!0}return{rawContent:B,rawSize:z,deflatedContent:Q,deflatedSize:J,isCompressed:U}},xX=(G,D)=>{let{content:z}=G,{content:B}=!z?{content:Uint8Array.from([])}:I6(z);return{...E6(G,!1,D,B.length,B,void 0),content:B,isCompressed:!1}},cX=(G,D,z)=>{let B="PK\x05\x06\x00\x00\x00\x00"+LG(G,2)+LG(G,2)+LG(D,4)+LG(z,4)+"\x00\x00";return Uint8Array.from(B,(Q)=>Q.charCodeAt(0))},M6=class{constructor(){this.folders=[],this.files=[]}addFolders(G){G.forEach(this.addFolder.bind(this))}addFolder(G){this.folders.push({path:G,created:new Date,isBase64:!1,type:"folder"})}addFile(G,D,z=!1){this.files.push({path:G,created:new Date,content:z?D:new TextEncoder().encode(D),isBase64:z,type:"file"})}async getZipFile(G="application/zip"){let D=await this.buildCompressedFileStream();return this.clearStream(),new Blob([D],{type:G})}getUncompressedZipFile(G="application/zip"){let D=this.buildFileStream();return this.clearStream(),new Blob([D],{type:G})}clearStream(){this.folders=[],this.files=[]}packageFiles(G){let D=0,z=0;for(let X of G){let{localFileHeader:Y,centralDirectoryHeader:W,content:q}=X;D+=Y.length+q.length,z+=W.length}let B=new Uint8Array(D),Q=new Uint8Array(z),J=0,U=0;for(let X of G){let{localFileHeader:Y,centralDirectoryHeader:W,content:q}=X;B.set(Y,J),J+=Y.length,B.set(q,J),J+=q.length,Q.set(W,U),U+=W.length}let Z=cX(G.length,z,D),S=new Uint8Array(B.length+Q.length+Z.length);return S.set(B),S.set(Q,B.length),S.set(Z,B.length+Q.length),S}async buildCompressedFileStream(){let G=[...this.folders,...this.files],D=await Promise.all(G.map(yX)),z=[],B=0;for(let Q=0;Q{if(G.addFolders(["_rels/","docProps/","xl/","xl/theme/","xl/_rels/","xl/worksheets/"]),!WD.size)return;G.addFolders(["xl/worksheets/_rels","xl/drawings/","xl/drawings/_rels","xl/media/"]);let D=0;WD.forEach((z)=>{let B=z[0].image[0],{base64:Q,imageType:J}=B;G.addFile(`xl/media/image${++D}.${vB(J)}`,Q,!0)})},iX=(G,D)=>{let z=0,B=0;for(let Q=0;Q0&&qD.has(Q),Z=uG.size>0&&uG.get(Q),S=WD.size&&mG.has(Q);if(!U&&!Z&&!S)continue;let X,Y,W;if(U)nX(G,Q,z),Y=z,z++;if(S)dX(G,Q,B),W=B,B++;if(Z)X=Z.name;let q=`xl/worksheets/_rels/sheet${Q+1}.xml.rels`;G.addFile(q,IX({tableName:X,drawingIndex:Y,vmlDrawingIndex:W}))}},nX=(G,D,z)=>{let Q=`xl/drawings/drawing${z+1}.xml`,J=`xl/drawings/_rels/drawing${z+1}.xml.rels`;G.addFile(J,NX(D)),G.addFile(Q,fX(D))},dX=(G,D,z)=>{let Q=`xl/drawings/vmlDrawing${z+1}.vml`,J=`xl/drawings/_rels/vmlDrawing${z+1}.vml.rels`;G.addFile(Q,FX(D)),G.addFile(J,EX(D))},lX=(G)=>{let D=uG,z=Array.from(D.keys());for(let B=0;B{let U=!!J&&Object.keys(J).some((Z)=>J[Z]!=null);if(G.addFile("xl/workbook.xml",SX(Q)),G.addFile("xl/styles.xml",XX(D)),G.addFile("xl/sharedStrings.xml",YX()),G.addFile("xl/theme/theme1.xml",kX()),G.addFile("xl/_rels/workbook.xml.rels",KX(B)),G.addFile("docProps/core.xml",WX(z)),U)G.addFile("docProps/custom.xml",qX(J));G.addFile("[Content_Types].xml",HX(B,U)),G.addFile("_rels/.rels",_X(U))},A6=(G,D,z={},B)=>{if(!D||D.length===0)return W6(159),B.reset(),!1;B.syncOrderWithSheetData(D);let{fontSize:Q=11,author:J="AG Grid",activeTab:U=0,customMetadata:Z}=z,S=D.length,X=Math.max(Math.min(U,S-1),0);return hX(G),lX(G),iX(G,D),pX(G,Q,J,S,X,Z),B.reset(),!0},y1=(G,D=new OB)=>{let{data:z,fontSize:B,author:Q,activeSheetIndex:J,customMetadata:U}=G,Z=G.mimeType||"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",S=new M6;if(!A6(S,z,{author:Q,fontSize:B,activeTab:J,customMetadata:U},D))return Promise.resolve(void 0);return S.getZipFile(Z)},x1=(G,D=new OB)=>{let{data:z,fontSize:B,author:Q,activeSheetIndex:J,customMetadata:U}=G,Z=G.mimeType||"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",S=new M6;if(!A6(S,z,{author:Q,fontSize:B,activeTab:J,customMetadata:U},D))return;return S.getUncompressedZipFile(Z)},mX=(G)=>{let{fileName:D="export.xlsx"}=G,z=new OB;y1(G,z).then((B)=>{if(B){let Q=typeof D==="function"?D():D;P1(Q,B)}})},tX=class extends r9{constructor(){super(...arguments);this.beanName="excelCreator",this.workbook=new OB}getMergedParams(G){let D=this.gos.get("defaultExcelExportParams");return Object.assign({},D,G)}export(G){if(this.isExportSuppressed()){W6(160);return}let D=()=>{let B=this.getMergedParams(G),Q=this.getData(B),{fontSize:J,author:U,mimeType:Z,customMetadata:S}=B,X={data:[Q],fontSize:J,author:U,mimeType:Z,customMetadata:S};this.packageCompressedFile(X).then((Y)=>{if(Y){let{fileName:W}=B,q=typeof W==="function"?W(zU(this.gos,{})):W;P1(this.getFileName(q),Y)}})},{overlays:z}=this.beans;if(z)z.showExportOverlay(D);else D()}exportDataAsExcel(G){this.export(G)}getDataAsExcel(G){let D=this.getMergedParams(G),z=this.getData(D),{fontSize:B,author:Q,mimeType:J,customMetadata:U}=D,Z={data:[z],fontSize:B,author:Q,mimeType:J,customMetadata:U};return this.packageFile(Z)}setFactoryMode(G){this.workbook.setFactoryMode(G)}getFactoryMode(){return this.workbook.getFactoryMode()}getSheetDataForExcel(G){let D=this.getMergedParams(G);return this.getData(D)}getMultipleSheetsAsExcel(G){return x1(G,this.workbook)}exportMultipleSheetsAsExcel(G){y1(G,this.workbook).then((D)=>{let{fileName:z="export.xlsx"}=G;if(D){let B=typeof z==="function"?z():z;P1(B,D)}})}getDefaultFileExtension(){return"xlsx"}createSerializingSession(G){let{colModel:D,colNames:z,rowGroupColsSvc:B,valueSvc:Q,formula:J,gos:U}=this.beans,Z=U.get("excelStyles")||[],S=this.createStyleLinker(Z),X={...G,colModel:D,colNames:z,rowGroupColsSvc:B,valueSvc:Q,formulaSvc:J,gos:U,suppressRowOutline:G.suppressRowOutline||G.skipRowGroups,headerRowHeight:G.headerRowHeight||G.rowHeight,baseExcelStyles:Z,rightToLeft:G.rightToLeft??U.get("enableRtl"),styleLinker:S,headerRowCount:e9(D),pivotModeActive:D.isPivotActive(),workbook:this.workbook};return new q$(X)}createStyleLinker(G){let D=[],z=new Set,B=new Map;G.forEach((U,Z)=>{D.push(U.id),z.add(U.id),B.set(U.id,Z)});let{gos:Q,cellStyles:J}=this.beans;return(U)=>{let{rowType:Z,rowIndex:S,value:X,column:Y,columnGroup:W,node:q}=U,H=Z==="HEADER",_=Z==="HEADER_GROUPING",k=H?Y:W,w=[];if(H||_){if(w.push("header"),_)w.push("headerGroup");if(k)w=w.concat(a9(k.getDefinition(),Q,Y||null,W||null));return w}let K=["cell"];if(!D.length)return K;let f=Y.getDefinition();return J?.processAllCellClasses(f,zU(Q,{value:X,data:q.data,node:q,colDef:f,column:Y,rowIndex:S}),(N)=>{if(z.has(N))K.push(N)}),K.sort((N,F)=>{let E=B.get(N)??-1,I=B.get(F)??-1;return E===I?0:Ethis.onFocusIn(G),onFocusOut:(G)=>this.onFocusOut(G),focusInnerElement:(G)=>this.focusInnerElement(G),onTabKeyDown:(G)=>this.onTabKeyDown(G),handleKeyDown:(G)=>this.handleKeyDown(G)},this.stopPropagationCallbacks),this.refreshAriaProperties(),this.addManagedEventListeners({stylesChanged:this.onStylesChanged.bind(this)})}onStylesChanged(G){if(G.listItemHeightChanged)this.rowHeight=this.getItemHeight(),this.refresh()}refreshAriaProperties(){let D=this.getLocaleTextFunc()("ariaDefaultListName",this.listName||"List"),z=this.eContainer;zY(z,this.model?.getRowCount()>0?this.ariaRole:"presentation"),GY(z,D)}addResizeObserver(){let G=()=>YU(this.beans,()=>this.drawVirtualRows()),D=eX(this.beans,this.getGui(),G);this.addDestroyFunc(D)}focusInnerElement(G){return this.focusRow(G?this.model.getRowCount()-1:0),!0}onFocusIn(G){let D=G.target;if(D.classList.contains("ag-virtual-list-item"))this.lastFocusedRowIndex=aX(D)-1}onFocusOut(G){if(!this.getFocusableElement().contains(G.relatedTarget))this.lastFocusedRowIndex=null}handleKeyDown(G){let{key:D,shiftKey:z}=G;switch(D){case MG.UP:case MG.DOWN:{let B=D===MG.UP;if(G.preventDefault(),z)this.moveItem(B);else this.navigate(B)}break;case MG.PAGE_HOME:case MG.PAGE_END:case MG.PAGE_UP:case MG.PAGE_DOWN:if(this.navigateToPage(D)!==null)G.preventDefault();break}}onTabKeyDown(G){this.stopPropagationCallbacks?.stopPropagation(G),this.forceFocusOutOfContainer(G.shiftKey)}getNextRow(G){if(this.lastFocusedRowIndex==null)return;let D=this.lastFocusedRowIndex+(G?-1:1);if(D<0||D>=this.model.getRowCount())return;return D}moveItem(G){if(!this.moveItemCallback)return;let D=this.getComponentAt(this.lastFocusedRowIndex);if(!D)return;this.moveItemCallback(D,G)}navigate(G){let D=this.getNextRow(G);if(D===void 0)return;this.focusRow(D)}navigateToPage(G,D="focused"){let z=!1;if(D==="focused")D=this.getLastFocusedRow(),z=!0;let B=this.model.getRowCount()-1,Q=-1;if(G===MG.PAGE_HOME)Q=0;else if(G===MG.PAGE_END)Q=B;else if(G===MG.PAGE_DOWN)Q=Math.min(D+this.pageSize,B);else if(G===MG.PAGE_UP)Q=Math.max(D-this.pageSize,0);if(Q===-1)return null;if(z)this.focusRow(Q);else this.ensureIndexVisible(Q);return Q}getLastFocusedRow(){return this.lastFocusedRowIndex}focusRow(G){if(this.isScrolling)return;this.isScrolling=!0,this.ensureIndexVisible(G),YU(this.beans,()=>{if(this.isScrolling=!1,!this.isAlive())return;let D=this.renderedRows.get(G);if(D)D.eDiv.focus()})}getComponentAt(G){let D=this.renderedRows.get(G);return D&&D.rowComponent}forEachRenderedRow(G){this.renderedRows.forEach((D,z)=>G(D.rowComponent,z))}getItemHeight(){if(!this.isHeightFromTheme)return this.rowHeight;return this.beans.environment.getDefaultListItemHeight()}ensureIndexVisible(G,D=!0){let z=this.model.getRowCount();if(typeof G!=="number"||G<0||G>=z)return!1;let B=G*this.rowHeight,Q=B+this.rowHeight,J=this.getGui(),U=J.scrollTop,Z=J.offsetHeight,S=U+Z,X=D?0:this.rowHeight,Y=U>B+X,W=S{if(!this.isAlive())return;if(this.canSoftRefresh(G))this.drawVirtualRows(!0);else this.clearVirtualRows(),this.drawVirtualRows()})}awaitStable(G){if(this.awaitStableCallbacks.push(G),this.awaitStableCallbacks.length>1)return;let D=this.model.getRowCount();QY(this,()=>this.eContainer.clientHeight>=D*this.rowHeight,()=>{if(!this.isAlive())return;let z=this.awaitStableCallbacks;this.awaitStableCallbacks=[];for(let B of z)B()})}canSoftRefresh(G){return!!(G&&this.renderedRows.size&&typeof this.model.areRowsEqual==="function"&&this.componentUpdater)}clearVirtualRows(){this.renderedRows.forEach((G,D)=>this.removeRow(D))}drawVirtualRows(G){if(!this.isAlive()||!this.model)return;let D=this.getGui(),z=D.scrollTop,B=z+D.offsetHeight;if(z===B)this.clearVirtualRows();else{let Q=Math.floor(z/this.rowHeight),J=Math.floor(B/this.rowHeight);this.pageSize=Math.floor((B-z)/this.rowHeight),this.ensureRowsRendered(Q,J,G)}}ensureRowsRendered(G,D,z){if(this.renderedRows.forEach((B,Q)=>{if((QD)&&Q!==this.lastFocusedRowIndex)this.removeRow(Q)}),z)this.refreshRows();for(let B=G;B<=D;B++){if(this.renderedRows.has(B))continue;if(B=D.getRowCount())return;let{cssIdentifier:z,ariaRole:B,renderedRows:Q,eContainer:J}=this,U=D.getRow(G),Z=B==="tree"?"treeitem":"option",S=rX({tag:"div",cls:`ag-virtual-list-item ag-${z}-virtual-list-item`,role:Z,attrs:{tabindex:"-1"}});BY(S,D.getRowCount()),DY(S,G+1);let X=this.rowHeight;S.style.height=`${X}px`,S.style.top=`${X*G}px`;let Y=this.componentCreator(U,S);if(Y.addGuiEventListener("focusin",()=>this.lastFocusedRowIndex=G),S.appendChild(Y.getGui()),Q.has(G-1))Q.get(G-1).eDiv.insertAdjacentElement("afterend",S);else if(Q.has(G+1))Q.get(G+1).eDiv.insertAdjacentElement("beforebegin",S);else J.appendChild(S);Q.set(G,{rowComponent:Y,eDiv:S,value:U})}removeRow(G){let D=this.renderedRows.get(G);D.eDiv.remove(),this.destroyBean(D.rowComponent),this.renderedRows.delete(G)}refreshRows(){let G=this.model.getRowCount();this.renderedRows.forEach((D,z)=>{if(z>=G)this.removeRow(z);else{let B=this.model.getRow(z);if(this.model.areRowsEqual?.(D.value,B))this.componentUpdater(B,D.rowComponent);else this.removeRow(z)}})}addScrollListener(){this.addGuiEventListener("scroll",()=>this.drawVirtualRows(),{passive:!0})}setModel(G){this.model=G}getAriaElement(){return this.eContainer}destroy(){if(!this.isAlive())return;this.clearVirtualRows(),this.awaitStableCallbacks.length=0,super.destroy()}},LY='.ag-list-item-hovered:after{background-color:var(--ag-accent-color);content:"";height:1px;left:0;position:absolute;right:0}.ag-item-highlight-top:after{top:0}.ag-item-highlight-bottom:after{bottom:0}',$Q="ag-list-item-hovered",C6=class extends $Y{constructor(G,D,z){super();this.comp=G,this.virtualList=D,this.params=z,this.currentDragValue=null,this.lastHoveredListItem=null}postConstruct(){this.beans.environment.addGlobalCSS(LY,"component-AgVirtualListDragFeature"),this.params.addListeners(this,this.listItemDragStart.bind(this),this.listItemDragEnd.bind(this)),this.createDropTarget(),this.createAutoScrollService()}listItemDragStart(G){this.currentDragValue=this.params.getCurrentDragValue(G),this.moveBlocked=this.params.isMoveBlocked(this.currentDragValue)}listItemDragEnd(){window.setTimeout(()=>{this.currentDragValue=null,this.moveBlocked=!1},10)}createDropTarget(){let G={isInterestedIn:(D)=>D===this.params.dragSourceType,getIconName:()=>this.moveBlocked?"pinned":"move",getContainer:()=>this.comp.getGui(),onDragging:(D)=>this.onDragging(D),onDragStop:()=>this.onDragStop(),onDragLeave:()=>this.onDragLeave(),onDragCancel:()=>this.onDragCancel()};this.beans.dragAndDrop?.addDropTarget(G)}createAutoScrollService(){let G=this.virtualList.getGui();this.autoScrollService=new ZY({scrollContainer:G,scrollAxis:"y",getVerticalPosition:()=>G.scrollTop,setVerticalPosition:(D)=>G.scrollTop=D})}onDragging(G){if(!this.currentDragValue||this.moveBlocked)return;let D=this.getListDragItem(G),z=this.virtualList.getComponentAt(D.rowIndex);if(!z)return;let B=z.getGui().parentElement;if(this.lastHoveredListItem&&this.lastHoveredListItem.rowIndex===D.rowIndex&&this.lastHoveredListItem.position===D.position)return;this.autoScrollService.check(G.event),this.clearHoveredItems(),this.lastHoveredListItem=D,WU(B,$Q),WU(B,`ag-item-highlight-${D.position}`)}getListDragItem(G){let D=this.virtualList.getGui(),z=Number.parseFloat(window.getComputedStyle(D).paddingTop),B=this.virtualList.getRowHeight(),Q=this.virtualList.getScrollTop(),J=Math.max(0,(G.y-z+Q)/B),U=this.params.getNumRows(this.comp)-1,Z=Math.min(U,J)|0;return{rowIndex:Z,position:Math.round(J)>J||J>U?"bottom":"top",component:this.virtualList.getComponentAt(Z)}}onDragStop(){if(this.moveBlocked)return;this.params.moveItem(this.currentDragValue,this.lastHoveredListItem),this.clearDragProperties()}onDragCancel(){this.clearDragProperties()}onDragLeave(){this.clearDragProperties()}clearDragProperties(){this.clearHoveredItems(),this.autoScrollService.ensureCleared()}clearHoveredItems(){let G=this.virtualList.getGui();for(let D of G.querySelectorAll(`.${$Q}`))for(let z of[$Q,"ag-item-highlight-top","ag-item-highlight-bottom"])D.classList.remove(z);this.lastHoveredListItem=null}},V6=class extends YY{constructor(G){super(G,"ag-range-field","range")}postConstruct(){super.postConstruct();let{min:G,max:D,step:z}=this.config;if(G!=null)this.setMinValue(G);if(D!=null)this.setMaxValue(D);this.setStep(z||1)}addInputListeners(){this.addManagedElementListeners(this.eInput,{input:(G)=>{let D=G.target.value;this.setValue(D)}})}setMinValue(G){return this.min=G,this.eInput.setAttribute("min",G.toString()),this}setMaxValue(G){return this.max=G,this.eInput.setAttribute("max",G.toString()),this}setStep(G){return this.eInput.setAttribute("step",G.toString()),this}setValue(G,D){if(this.min!=null)G=Math.max(parseFloat(G),this.min).toString();if(this.max!=null)G=Math.min(parseFloat(G),this.max).toString();let z=super.setValue(G,D);return this.eInput.value=G,z}},b6={selector:"AG-INPUT-RANGE",component:V6},kG=class extends SY{constructor(G){super(G,`
`,[b6,XY]);this.eLabel=LQ,this.eSlider=LQ,this.eText=LQ,this.labelAlignment="top"}postConstruct(){super.postConstruct(),this.eSlider.addCss("ag-slider-field");let{minValue:G,maxValue:D,textFieldWidth:z,step:B,value:Q,onValueChange:J}=this.config;if(G!=null)this.setMinValue(G);if(D!=null)this.setMaxValue(D);if(z!=null)this.setTextFieldWidth(z);if(B!=null)this.setStep(B);if(Q!=null)this.setValue(Q);if(J!=null)this.onValueChange(J)}onValueChange(G){return this.addManagedListeners(this.eText,{fieldValueChanged:()=>{let D=parseFloat(this.eText.getValue());this.eSlider.setValue(D.toString(),!0),G(D||0)}}),this.addManagedListeners(this.eSlider,{fieldValueChanged:()=>{let D=this.eSlider.getValue();this.eText.setValue(D,!0),G(parseFloat(D))}}),this}setSliderWidth(G){return this.eSlider.setWidth(G),this}setTextFieldWidth(G){return this.eText.setWidth(G),this}setMinValue(G){return this.eSlider.setMinValue(G),this.eText.setMin(G),this}setMaxValue(G){return this.eSlider.setMaxValue(G),this.eText.setMax(G),this}getValue(){return this.eText.getValue()}setValue(G,D){if(this.getValue()===G)return this;if(this.eText.setValue(G,!0),this.eSlider.setValue(G,!0),!D)this.dispatchLocalEvent({type:"fieldValueChanged"});return this}setStep(G){return this.eSlider.setStep(G),this.eText.setStep(G),this}},WG={selector:"AG-SLIDER",component:kG},KY=class extends kY{constructor(){super({template:{tag:"div",cls:"ag-color-input",role:"presentation",children:[{tag:"div",ref:"eLabel",cls:"ag-input-field-label"},{tag:"div",ref:"eWrapper",cls:"ag-wrapper ag-input-wrapper",role:"presentation",children:[{tag:"input",ref:"eInput",cls:"ag-input-field-input"},{tag:"div",ref:"eColor",cls:"ag-color-input-color"}]}]}});this.eColor=wY}wireBeans(G){this.color=G.agChartsExports._Util.Color}setColor(G){let D=G.toRgbaString();this.setValue(this.color.fromString(D).toHexString().toUpperCase(),!0),this.eColor.style.backgroundColor=D}setValue(G,D){let z=this.color.validColorString(G??"");if(this.eInput.setCustomValidity(z?"":this.getLocaleTextFunc()("invalidColor","Color value is invalid")),super.setValue(G,D),z&&!D)this.dispatchLocalEvent({type:"colorChanged"});return this}onColorChanged(G){this.addManagedListeners(this,{colorChanged:()=>G(this.color.fromString(this.value))})}},fY={selector:"AG-COLOR-INPUT",component:KY},HU=8,F0=[],NY=class extends qY{constructor(G){super(`
`,[fY]);this.H=1,this.S=1,this.B=1,this.A=1,this.isSpectrumDragging=!1,this.isSpectrumHueDragging=!1,this.isSpectrumAlphaDragging=!1,this.colorChanged=!1,this.spectrumColor=cG,this.spectrumVal=cG,this.spectrumDragger=cG,this.spectrumHue=cG,this.spectrumHueSlider=cG,this.spectrumAlpha=cG,this.spectrumAlphaSlider=cG,this.colorInput=cG,this.recentColors=cG,this.picker=G.picker}wireBeans(G){this._Color=G.agChartsExports._Util.Color}postConstruct(){this.initTabIndex(),this.initRecentColors(),this.addGuiEventListener("focus",()=>this.spectrumColor.focus()),this.addGuiEventListener("keydown",(G)=>{if(G.key===xG.ENTER&&!G.defaultPrevented)this.destroy()}),this.addManagedListeners(this.spectrumColor,{keydown:(G)=>this.moveDragger(G)}),this.addManagedListeners(this.spectrumAlphaSlider,{keydown:(G)=>this.moveAlphaSlider(G)}),this.addManagedListeners(this.spectrumHueSlider,{keydown:(G)=>this.moveHueSlider(G)}),this.addManagedListeners(this.spectrumVal,{mousedown:this.onSpectrumDraggerDown.bind(this)}),this.addManagedListeners(this.spectrumHue,{mousedown:this.onSpectrumHueDown.bind(this)}),this.addManagedListeners(this.spectrumAlpha,{mousedown:this.onSpectrumAlphaDown.bind(this)}),this.addGuiEventListener("mousemove",(G)=>{this.onSpectrumDraggerMove(G),this.onSpectrumHueMove(G),this.onSpectrumAlphaMove(G)}),this.addManagedListeners(document,{mouseup:this.onMouseUp.bind(this)}),this.colorInput.onColorChanged(this.setColor.bind(this)),this.addManagedListeners(this.recentColors,{click:this.onRecentColorClick.bind(this),keydown:(G)=>{if(G.key===xG.ENTER||G.key===xG.SPACE)G.preventDefault(),this.onRecentColorClick(G)}})}initTabIndex(){let G=this.tabIndex=this.gos.get("tabIndex").toString();this.spectrumColor.setAttribute("tabindex",G),this.spectrumHueSlider.setAttribute("tabindex",G),this.spectrumAlphaSlider.setAttribute("tabindex",G)}refreshSpectrumRect(){return this.spectrumValRect=this.spectrumVal.getBoundingClientRect()}refreshHueRect(){return this.spectrumHueRect=this.spectrumHue.getBoundingClientRect()}refreshAlphaRect(){return this.spectrumAlphaRect=this.spectrumAlpha.getBoundingClientRect()}onSpectrumDraggerDown(G){G.preventDefault(),this.refreshSpectrumRect(),this.isSpectrumDragging=!0,this.moveDragger(G)}onSpectrumDraggerMove(G){if(this.isSpectrumDragging)this.moveDragger(G)}onSpectrumHueDown(G){this.refreshHueRect(),this.isSpectrumHueDragging=!0,this.moveHueSlider(G)}onSpectrumHueMove(G){if(this.isSpectrumHueDragging)this.moveHueSlider(G)}onSpectrumAlphaDown(G){this.refreshAlphaRect(),this.isSpectrumAlphaDragging=!0,this.moveAlphaSlider(G)}onSpectrumAlphaMove(G){if(this.isSpectrumAlphaDragging)this.moveAlphaSlider(G)}onMouseUp(){this.isSpectrumDragging=!1,this.isSpectrumHueDragging=!1,this.isSpectrumAlphaDragging=!1}moveDragger(G){let D=this.spectrumValRect;if(!D)return;let z,B;if(G instanceof MouseEvent)z=G.clientX-D.left,B=G.clientY-D.top;else{let Q=G.key===xG.LEFT,J=G.key===xG.RIGHT,U=G.key===xG.UP,Z=G.key===xG.DOWN,S=U||Z,X=Q||J;if(!S&&!X)return;G.preventDefault();let{x:Y,y:W}=this.getSpectrumValue();z=Y+(X?Q?-5:5:0),B=W+(S?U?-5:5:0)}z=Math.max(z,0),z=Math.min(z,D.width),B=Math.max(B,0),B=Math.min(B,D.height),this.setSpectrumValue(z/D.width,1-B/D.height)}moveHueSlider(G){let D=this.spectrumHueRect;if(!D)return;let z=this.moveSlider(this.spectrumHueSlider,G);if(z==null)return;this.H=1-z/D.width,this.update()}moveAlphaSlider(G){let D=this.spectrumAlphaRect;if(!D)return;let z=this.moveSlider(this.spectrumAlphaSlider,G);if(z==null)return;this.A=z/D.width,this.update()}moveSlider(G,D){let z=G.getBoundingClientRect(),B=G.parentElement?.getBoundingClientRect();if(!G||!B)return null;let Q=z.width/2,J;if(D instanceof MouseEvent)J=Math.floor(D.clientX-B.left);else{let U=D.key===xG.LEFT,Z=D.key===xG.RIGHT;if(!U&&!Z)return null;D.preventDefault();let S=U?-5:5;J=parseFloat(G.style.left)+Q+S}return J=Math.max(J,0),J=Math.min(J,B.width),G.style.left=J-Q+"px",J}update(G){let{A:D,S:z,B,H:Q,_Color:J}=this,U=Q*360,Z=J.fromHSB(U,z,B,D),S=Z.toRgbaString(),Y=J.fromHSB(U,z,B).toRgbaString(),q=J.fromHSB(U,1,1).toRgbaString(),H=this.picker;if(J.fromString(H.getValue()).toRgbaString()!==S)this.colorChanged=!0;if(H.setValue(S),this.spectrumColor.style.backgroundColor=q,this.spectrumDragger.style.backgroundColor=Y,this.spectrumHueSlider.style.backgroundColor=q,this.spectrumAlpha.style.setProperty("--ag-internal-spectrum-alpha-color-from",J.fromHSB(U,z,B,0).toRgbaString()),this.spectrumAlpha.style.setProperty("--ag-internal-spectrum-alpha-color-to",Y),this.spectrumAlpha.style.setProperty("--ag-internal-spectrum-alpha-color",S),!G)this.colorInput.setColor(Z)}setSpectrumValue(G,D,z){let B=this.spectrumValRect||this.refreshSpectrumRect();if(B==null)return;let Q=this.spectrumDragger,J=Q.getBoundingClientRect();G=Math.max(0,G),G=Math.min(1,G),D=Math.max(0,D),D=Math.min(1,D),this.S=G,this.B=D,Q.style.left=G*B.width-J.width/2+"px",Q.style.top=(1-D)*B.height-J.height/2+"px",this.update(z)}getSpectrumValue(){let G=this.spectrumDragger,D=G.getBoundingClientRect(),z=parseFloat(G.style.left)+D.width/2,B=parseFloat(G.style.top)+D.height/2;return{x:z,y:B}}initRecentColors(){let G=F0,D=G.map((z,B)=>{return`
`});this.recentColors.innerHTML=D.join(""),_Y(this.recentColors,!!G.length)}setValue(G){let D=this._Color.fromString(G);this.setColor(D,!0)}setColor(G,D){let[z,B,Q]=G.toHSB();this.H=(isNaN(z)?0:z)/360,this.A=G.a;let J=this.spectrumHueRect||this.refreshHueRect(),U=this.spectrumAlphaRect||this.refreshAlphaRect();this.spectrumHueSlider.style.left=`${(this.H-1)*-J.width-this.spectrumHueSlider.getBoundingClientRect().width/2}px`,this.spectrumAlphaSlider.style.left=`${this.A*U.width-this.spectrumAlphaSlider.getBoundingClientRect().width/2}px`,this.setSpectrumValue(B,Q,!D)}onRecentColorClick(G){let D=G.target;if(!HY(D.id))return;let z=parseInt(D.id,10);this.setValue(F0[z]),this.destroy()}addRecentColor(){let D=this._Color.fromHSB(this.H*360,this.S,this.B,this.A).toRgbaString(),z=F0;if(!this.colorChanged||z[0]===D)return;if(z=z.filter((B)=>B!=D),z=[D].concat(z),z.length>HU)z=z.slice(0,HU);F0=z}destroy(){this.addRecentColor(),super.destroy()}},vY=".ag-panel{background-color:var(--ag-panel-background-color);display:flex;flex-direction:column;overflow:hidden;position:relative}.ag-dialog{border:var(--ag-dialog-border);border-radius:var(--ag-border-radius);box-shadow:var(--ag-dialog-shadow);position:absolute}.ag-panel-title-bar{align-items:center;background-color:var(--ag-panel-title-bar-background-color);border-bottom:var(--ag-panel-title-bar-border);color:var(--ag-panel-title-bar-text-color);cursor:default;display:flex;flex:none;font-family:var(--ag-panel-title-bar-font-family);font-size:var(--ag-panel-title-bar-font-size);font-weight:var(--ag-panel-title-bar-font-weight);height:var(--ag-panel-title-bar-height);padding:var(--ag-spacing) var(--ag-cell-horizontal-padding)}.ag-panel-title-bar-button{cursor:pointer;:where(.ag-icon){color:var(--ag-panel-title-bar-icon-color)}}:where(.ag-ltr) .ag-panel-title-bar-button{margin-left:calc(var(--ag-spacing)*2);margin-right:var(--ag-spacing)}:where(.ag-rtl) .ag-panel-title-bar-button{margin-left:var(--ag-spacing);margin-right:calc(var(--ag-spacing)*2)}.ag-panel-title-bar-title{flex:1 1 auto}.ag-panel-title-bar-buttons{display:flex}.ag-panel-content-wrapper{display:flex;flex:1 1 auto;overflow:hidden;position:relative}:where(.ag-dragging-fill-handle) .ag-dialog,:where(.ag-dragging-range-handle) .ag-dialog{opacity:.7;pointer-events:none}";function OY(G){return G??(G=G||"default"),{tag:"div",cls:`ag-panel ag-${G}-panel`,attrs:{tabindex:"-1"},children:[{tag:"div",ref:"eTitleBar",cls:`ag-panel-title-bar ag-${G}-panel-title-bar ag-unselectable`,children:[{tag:"span",ref:"eTitle",cls:`ag-panel-title-bar-title ag-${G}-panel-title-bar-title`},{tag:"div",ref:"eTitleBarButtons",cls:`ag-panel-title-bar-buttons ag-${G}-panel-title-bar-buttons`}]},{tag:"div",ref:"eContentWrapper",cls:`ag-panel-content-wrapper ag-${G}-panel-content-wrapper`}]}}var LJ=class extends kU{constructor(G){super(OY(G.cssIdentifier));this.config=G,this.closable=!0,this.eContentWrapper=E0,this.eTitleBar=E0,this.eTitleBarButtons=E0,this.eTitle=E0,this.registerCSS(vY)}postConstruct(){let{component:G,closable:D,hideTitleBar:z,title:B,minWidth:Q=250,width:J,minHeight:U=250,height:Z,centered:S,popup:X,x:Y,y:W,postProcessPopupParams:q}=this.config,H=this.beans,_=this.createManagedBean(new MY(this.getGui(),{minWidth:Q,width:J,minHeight:U,height:Z,centered:S,x:Y,y:W,popup:X,calculateTopBuffer:()=>this.positionableFeature.getHeight()-this.getBodyHeight()}));this.positionableFeature=_;let k=this.getGui();if(G)this.setBodyComponent(G);if(!z){if(B)this.setTitle(B);this.setClosable(D!=null?D:this.closable)}else bY(this.eTitleBar,!1);if(this.addManagedElementListeners(this.eTitleBar,{mousedown:(K)=>{if(k.contains(K.relatedTarget)||k.contains(AY(H))||this.eTitleBarButtons.contains(K.target)){K.preventDefault();return}let f=this.eContentWrapper.querySelector("button, [href], input, select, textarea, [tabindex]");if(f)f.focus()}}),X&&_.isPositioned())return;if(this.renderComponent)this.renderComponent();let w;if(q){let{type:K,eventSource:f,mouseEvent:N}=q;w=()=>H.popupSvc?.callPostProcessPopup(q,K,k,f,N)}_.initialisePosition(w),this.eContentWrapper.style.height="0"}renderComponent(){let G=this.getGui();G.focus(),this.close=()=>{G.remove(),this.destroy()}}getHeight(){return this.positionableFeature.getHeight()}setHeight(G){this.positionableFeature.setHeight(G)}getWidth(){return this.positionableFeature.getWidth()}setWidth(G){this.positionableFeature.setWidth(G)}setClosable(G){if(G!==this.closable)this.closable=G;if(G){let D=this.closeButtonComp=new kU({tag:"div",cls:"ag-button"});this.createBean(D);let z=D.getGui(),B=this.beans.iconSvc.createIconNoSpan("close",this.beans);B.classList.add("ag-panel-title-bar-button-icon"),z.appendChild(B),this.addTitleBarButton(D),D.addManagedElementListeners(z,{click:this.onBtClose.bind(this)})}else if(this.closeButtonComp)this.closeButtonComp.getGui().remove(),this.closeButtonComp=this.destroyBean(this.closeButtonComp)}setBodyComponent(G){G.setParentComponent(this),this.eContentWrapper.appendChild(G.getGui())}addTitleBarButton(G,D){let z=this.eTitleBarButtons,B=z.children,Q=B.length;if(D==null)D=Q;D=Math.max(0,Math.min(D,Q)),G.addCss("ag-panel-title-bar-button");let J=G.getGui();if(D===0)z.prepend(J);else if(D===Q)z.append(J);else B[D-1].after(J);G.setParentComponent(this)}getBodyHeight(){return RY(this.eContentWrapper)}getBodyWidth(){return CY(this.eContentWrapper)}setTitle(G){this.eTitle.innerText=G}onBtClose(){this.close()}destroy(){if(this.closeButtonComp)this.closeButtonComp=this.destroyBean(this.closeButtonComp);let G=this.getGui();if(G&&VY(G))this.close();super.destroy()}},SJ=class extends LJ{constructor(G,D){super({...G,popup:!0});this.callbacks=D,this.isMaximizable=!1,this.isMaximized=!1,this.maximizeListeners=[],this.resizeListenerDestroy=null,this.lastPosition={x:0,y:0,width:0,height:0}}wireBeans(G){this.popupSvc=G.popupSvc}postConstruct(){let G=this.getGui(),{movable:D,resizable:z,maximizable:B,modal:Q}=this.config;if(this.addCss("ag-dialog"),super.postConstruct(),this.tabGuardFeature=this.createManagedBean(new EY(this,this.callbacks?.stopPropagationCallbacks)),this.tabGuardFeature.initialiseTabGuard({isFocusableContainer:!0,onFocusIn:()=>{this.popupSvc?.bringPopupToFront(G)},onTabKeyDown:(J)=>{if(Q)return;let U=J.shiftKey,Z=IY(this.beans,G,!1,U);if(!Z||this.tabGuardFeature.getTabGuardCtrl().isTabGuard(Z)){if(this.callbacks?.focusNextContainer(this.beans,U))J.preventDefault()}}}),D)this.setMovable(D);if(B)this.setMaximizable(B);if(z)this.setResizable(z);if(!this.config.modal)this.callbacks?.configureFocusableContainer(this.beans,this)}setAllowFocus(G){this.tabGuardFeature.getTabGuardCtrl().setAllowFocus(G)}renderComponent(){let G=this.getGui(),{alwaysOnTop:D,modal:z,title:B,afterGuiAttached:Q}=this.config,J=this.getLocaleTextFunc(),U=this.popupSvc?.addPopup({modal:z,eChild:G,closeOnEsc:!0,closedCallback:this.onClosed.bind(this),alwaysOnTop:D,ariaLabel:B||J("ariaLabelDialog","Dialog"),afterGuiAttached:Q});if(U)this.close=U.hideFunc}onClosed(G){this.destroy(),this.config.closedCallback?.(G)}setMaximized(G){if(this.isMaximizable&&G!==this.isMaximized)this.toggleMaximize()}toggleMaximize(){let G=this.positionableFeature.getPosition();if(this.isMaximized){let{x:D,y:z,width:B,height:Q}=this.lastPosition;this.setWidth(B),this.setHeight(Q),this.positionableFeature.offsetElement(D,z)}else this.lastPosition.width=this.getWidth(),this.lastPosition.height=this.getHeight(),this.lastPosition.x=G.x,this.lastPosition.y=G.y,this.positionableFeature.offsetElement(0,0),this.setHeight("100%"),this.setWidth("100%");this.isMaximized=!this.isMaximized,this.refreshMaximizeIcon()}refreshMaximizeIcon(){_U(this.maximizeIcon,!this.isMaximized),_U(this.minimizeIcon,this.isMaximized)}clearMaximizebleListeners(){if(this.maximizeListeners.length){for(let G of this.maximizeListeners)G();this.maximizeListeners.length=0}if(this.resizeListenerDestroy)this.resizeListenerDestroy(),this.resizeListenerDestroy=null}destroy(){this.maximizeButtonComp=this.destroyBean(this.maximizeButtonComp),this.clearMaximizebleListeners(),super.destroy()}setResizable(G){this.positionableFeature.setResizable(G)}setMovable(G){this.positionableFeature.setMovable(G,this.eTitleBar)}setMaximizable(G){if(!G){if(this.clearMaximizebleListeners(),this.maximizeButtonComp)this.destroyBean(this.maximizeButtonComp),this.maximizeButtonComp=this.maximizeIcon=this.minimizeIcon=void 0;return}let D=this.eTitleBar;if(!D||G===this.isMaximizable)return;this.isMaximizable=G;let z=this.buildMaximizeAndMinimizeElements();this.refreshMaximizeIcon(),z.addManagedElementListeners(z.getGui(),{click:this.toggleMaximize.bind(this)}),this.addTitleBarButton(z,0),this.maximizeListeners.push(...this.addManagedElementListeners(D,{dblclick:this.toggleMaximize.bind(this)})),[this.resizeListenerDestroy]=this.addManagedListeners(this.positionableFeature,{resize:()=>{this.isMaximized=!1,this.refreshMaximizeIcon()}})}buildMaximizeAndMinimizeElements(){let G=this.maximizeButtonComp=this.createBean(new FY({tag:"div",cls:"ag-dialog-button"})),D=G.getGui(),z=this.beans.iconSvc;return this.maximizeIcon=z.createIconNoSpan("maximize"),D.appendChild(this.maximizeIcon),this.maximizeIcon.classList.add("ag-panel-title-bar-button-icon"),this.minimizeIcon=z.createIconNoSpan("minimize"),D.appendChild(this.minimizeIcon),this.minimizeIcon.classList.add("ag-panel-title-bar-button-icon"),G}},XJ=class extends WY{constructor(G){super({pickerAriaLabelKey:"ariaLabelColorPicker",pickerAriaLabelValue:"Color Picker",pickerType:"ag-list",className:"ag-color-picker",pickerIcon:"chartsColorPicker",...G})}postConstruct(){if(this.eDisplayFieldColor=qU({tag:"span",cls:"ag-color-picker-color"}),this.eDisplayFieldText=qU({tag:"span",cls:"ag-color-picker-value"}),this.eDisplayField.append(this.eDisplayFieldColor,this.eDisplayFieldText),super.postConstruct(),this.value)this.setValue(this.value)}createPickerComponent(){let G=this.eWrapper.getBoundingClientRect(),D=this.beans.popupSvc.getParentRect();return this.createBean(new SJ({closable:!1,modal:!0,hideTitleBar:!0,minWidth:190,width:190,height:250,x:G.right-D.left-190,y:G.top-D.top-250-(this.config.pickerGap??0),postProcessPopupParams:{type:"colorPicker",eventSource:this.eWrapper}},this.config.dialogCallbacks))}renderAndPositionPicker(){let G=this.pickerComponent,D=this.createBean(new NY({picker:this}));return G.addCss("ag-color-dialog"),D.addDestroyFunc(()=>{if(G.isAlive())this.destroyBean(G)}),G.setParentComponent(this),G.setBodyComponent(D),D.setValue(this.getValue()),D.getGui().focus(),G.addDestroyFunc(()=>{if(!this.isDestroyingPicker){if(this.beforeHidePicker(),this.isDestroyingPicker=!0,D.isAlive())this.destroyBean(D);if(this.isAlive())this.getFocusableElement().focus()}else this.isDestroyingPicker=!1}),()=>this.pickerComponent?.close()}setValue(G){if(this.value===G)return this;return this.eDisplayFieldColor.style.backgroundColor=G,this.eDisplayFieldText.textContent=this.beans.agChartsExports._Util.Color.fromString(G).toHexString().toUpperCase(),super.setValue(G)}getValue(){return this.value}},uY={selector:"AG-COLOR-PICKER",component:XJ},lY=class extends dY{constructor(G){super();this.setTemplateFromElement(G.getGui(),void 0,void 0,!0)}postConstruct(){this.initialiseTabGuard({onTabKeyDown:(G)=>this.onTabKeyDown(G),handleKeyDown:(G)=>this.handleKeyDown(G)})}handleKeyDown(G){if(G.key===nY.ESCAPE)this.closePanel()}onTabKeyDown(G){if(G.defaultPrevented)return;this.closePanel(),G.preventDefault()}closePanel(){let G=this.parentComponent;G.closeSubMenu(),setTimeout(()=>G.getGui().focus(),0)}},NB=class extends TY{constructor(G){super();this.callbacks=G,this.ACTIVATION_DELAY=80,this.isActive=!1,this.subMenuIsOpen=!1,this.subMenuIsOpening=!1,this.suppressRootStyles=!0,this.suppressAria=!0,this.suppressFocus=!0}init(G){let{menuItemDef:D,isAnotherSubMenuOpen:z,level:B,childComponent:Q,contextParams:J}=G;return this.params=G.menuItemDef,this.level=B,this.isAnotherSubMenuOpen=z,this.childComponent=Q,this.contextParams=J,this.cssClassPrefix=this.params.menuItemParams?.cssClassPrefix??"ag-menu-option",this.callbacks.getMenuItemComp(this.beans,this.params,{...D,level:B,isAnotherSubMenuOpen:z,openSubMenu:(U)=>this.openSubMenu(U),closeSubMenu:()=>this.closeSubMenu(),closeMenu:(U)=>this.closeMenu(U),updateTooltip:(U,Z)=>this.refreshTooltip(U,Z),onItemActivated:()=>this.onItemActivated()}).then((U)=>{if(!U)return;this.menuItemComp=U;let Z=U.configureDefaults?.();if(Z)this.configureDefaults(Z===!0?void 0:Z)})}addListeners(G,D){if(!D?.suppressClick)this.addManagedElementListeners(G,{click:(z)=>this.onItemSelected(z)});if(!D?.suppressKeyboardSelect)this.addManagedElementListeners(G,{keydown:(z)=>{if(z.key===wU.ENTER||z.key===wU.SPACE)z.preventDefault(),this.onItemSelected(z)}});if(!D?.suppressMouseDown)this.addManagedElementListeners(G,{mousedown:(z)=>{z.stopPropagation(),z.preventDefault()}});if(!D?.suppressMouseOver)this.addManagedElementListeners(G,{mouseenter:()=>this.onMouseEnter(),mouseleave:()=>this.onMouseLeave()})}isDisabled(){return!!this.params.disabled}openSubMenu(G=!1,D){if(this.closeSubMenu(),!this.params.subMenu)return;this.subMenuIsOpening=!0;let z=yY({tag:"div",cls:"ag-menu",role:"presentation"});this.eSubMenuGui=z;let B,Q=()=>{this.subMenuIsOpening=!1};if(this.childComponent){let X=this.createBean(new lY(this.childComponent));X.setParentComponent(this);let Y=X.getGui(),W="mouseenter",q=()=>this.cancelDeactivate();if(Y.addEventListener(W,q),B=()=>{Y.removeEventListener(W,q),this.destroyBean(X)},z.appendChild(Y),this.childComponent.afterGuiAttached)Q=()=>{this.childComponent.afterGuiAttached(),this.subMenuIsOpening=!1}}else if(this.params.subMenu){let X=this.createBean(new uB(this.level+1,this.contextParams,this.callbacks));if(X.setParentComponent(this),X.addMenuItems(this.params.subMenu),z.appendChild(X.getGui()),this.addManagedListeners(X,{closeMenu:(Y)=>this.dispatchLocalEvent(Y)}),X.addGuiEventListener("mouseenter",()=>this.cancelDeactivate()),B=()=>this.destroyBean(X),G)Q=()=>{X.activateFirstItem(),this.subMenuIsOpening=!1}}let J=this.beans.popupSvc,U=()=>{let X=this.eGui;J?.positionPopupForMenu({eventSource:X,ePopup:z,event:D instanceof MouseEvent?D:void 0,additionalParams:this.callbacks.getPostProcessPopupParams(this.contextParams)})},Z=this.getLocaleTextFunc(),S=J?.addPopup({modal:!0,eChild:z,positionCallback:U,anchorToElement:this.eGui,ariaLabel:Z("ariaLabelSubMenu","SubMenu"),afterGuiAttached:Q});this.subMenuIsOpen=!0,this.setAriaExpanded(!0),this.hideSubMenu=()=>{if(S)S.hideFunc();this.subMenuIsOpen=!1,this.setAriaExpanded(!1),B(),this.menuItemComp.setExpanded?.(!1),this.eSubMenuGui=void 0},this.menuItemComp.setExpanded?.(!0)}setAriaExpanded(G){if(!this.suppressAria)cY(this.eGui,G)}closeSubMenu(){if(!this.hideSubMenu)return;this.hideSubMenu(),this.hideSubMenu=null,this.setAriaExpanded(!1)}isSubMenuOpen(){return this.subMenuIsOpen}isSubMenuOpening(){return this.subMenuIsOpening}activate(G,D){if(this.cancelActivate(),this.params.disabled&&!D)return;if(this.isActive=!0,!this.suppressRootStyles)this.eGui.classList.add(`${this.cssClassPrefix}-active`);if(this.menuItemComp.setActive?.(!0),!this.suppressFocus)this.callbacks.preserveRangesWhile(this.beans,()=>this.eGui.focus({preventScroll:!D}));if(G&&this.params.subMenu)window.setTimeout(()=>{if(this.isAlive()&&this.isActive)this.openSubMenu()},300);this.onItemActivated()}deactivate(){if(this.cancelDeactivate(),!this.suppressRootStyles)this.eGui.classList.remove(`${this.cssClassPrefix}-active`);if(this.menuItemComp.setActive?.(!1),this.isActive=!1,this.subMenuIsOpen)this.closeSubMenu()}getGui(){return this.menuItemComp.getGui()}getParentComponent(){return this.parentComponent}setParentComponent(G){this.parentComponent=G}getSubMenuGui(){return this.eSubMenuGui}onItemSelected(G){if(this.menuItemComp.select?.(),this.params.action)this.beans.frameworkOverrides.wrapOutgoing(()=>this.params.action(this.gos.addCommon({...this.contextParams})));else this.openSubMenu(G&&G.type==="keydown",G);if(this.params.subMenu&&!this.params.action||this.params.suppressCloseOnSelect)return;this.closeMenu(G)}closeMenu(G){let D={type:"closeMenu"};if(G)if(G instanceof MouseEvent)D.mouseEvent=G;else D.keyboardEvent=G;this.dispatchLocalEvent(D)}onItemActivated(){let G={type:"menuItemActivated",menuItem:this};this.dispatchLocalEvent(G)}cancelActivate(){if(this.activateTimeoutId)window.clearTimeout(this.activateTimeoutId),this.activateTimeoutId=0}cancelDeactivate(){if(this.deactivateTimeoutId)window.clearTimeout(this.deactivateTimeoutId),this.deactivateTimeoutId=0}onMouseEnter(){if(this.cancelDeactivate(),this.isAnotherSubMenuOpen())this.activateTimeoutId=window.setTimeout(()=>this.activate(!0),this.ACTIVATION_DELAY);else this.activate(!0)}onMouseLeave(){if(this.cancelActivate(),this.isSubMenuOpen())this.deactivateTimeoutId=window.setTimeout(()=>this.deactivate(),this.ACTIVATION_DELAY);else this.deactivate()}refreshRootElementGui(G){let D=this.menuItemComp.getGui(),{cssClassPrefix:z,params:{cssClasses:B,disabled:Q}}=this,J=this.menuItemComp.getRootElement?.();if(J){if(!G)D.classList.add("ag-menu-option-custom");D=J}if(this.suppressRootStyles=!!G,!this.suppressRootStyles){D.classList.add(z);for(let U of B??[])D.classList.add(U);if(Q)D.classList.add(`${z}-disabled`)}return D}applyAriaProperties(G){let{params:{checked:D,subMenu:z,subMenuRole:B,disabled:Q}}=this,J=D!=null;if(iY(G,J?"menuitemcheckbox":"menuitem"),z)hY(G,B??"menu");if(Q)xY(G,!0)}configureDefaults(G){if(!this.menuItemComp){setTimeout(()=>this.configureDefaults(G));return}let{suppressRootStyles:D,suppressTooltip:z,suppressAria:B,suppressTabIndex:Q,suppressFocus:J}=G||{},{params:{tooltip:U,disabled:Z}}=this,S=this.eGui=this.refreshRootElementGui(!!D);if(this.suppressAria=!!B,!B)this.applyAriaProperties(S);if(!Q)S.setAttribute("tabindex","-1");if(!z)this.refreshTooltip(U);if(!Z)this.addListeners(S,G);this.suppressFocus=!!J}refreshTooltip(G,D){if(this.tooltip=G,this.tooltipFeature=this.destroyBean(this.tooltipFeature),!G||!this.menuItemComp)return;let z=this.beans.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.getGui(),getTooltipValue:()=>this.tooltip,getLocation:()=>"menu",shouldDisplayTooltip:D});if(z)this.tooltipFeature=this.createBean(z)}destroy(){this.tooltipFeature=this.destroyBean(this.tooltipFeature),this.menuItemComp?.destroy?.(),super.destroy()}},uB=class extends jY{constructor(G=0,D,z){super({tag:"div",cls:"ag-menu-list",role:"menu"});this.level=G,this.menuActionParams=D,this.callbacks=z,this.menuItems=[]}postConstruct(){this.initialiseTabGuard({onTabKeyDown:(G)=>this.onTabKeyDown(G),handleKeyDown:(G)=>this.callbacks.preserveRangesWhile(this.beans,()=>this.handleKeyDown(G)),onFocusIn:(G)=>this.handleFocusIn(G),onFocusOut:(G)=>this.handleFocusOut(G)})}onTabKeyDown(G){if(!this.getParentComponent()?.getGui()?.classList.contains("ag-focus-managed"))G.preventDefault();if(G.shiftKey)this.closeIfIsChild(G)}handleKeyDown(G){switch(G.key){case AG.UP:case AG.RIGHT:case AG.DOWN:case AG.LEFT:G.preventDefault(),this.handleNavKey(G.key);break;case AG.ESCAPE:if(this.closeIfIsChild())this.callbacks.stopPropagationCallbacks.stopPropagation(G);break}}handleFocusIn(G){let D=G.relatedTarget;if(!this.tabGuardFeature.getTabGuardCtrl().isTabGuard(D)&&(this.getGui().contains(D)||this.activeMenuItem?.getSubMenuGui()?.contains(D)))return;if(this.activeMenuItem)this.activeMenuItem.activate();else this.activateFirstItem()}handleFocusOut(G){let D=G.relatedTarget;if(!this.activeMenuItem||this.getGui().contains(D)||this.activeMenuItem.getSubMenuGui()?.contains(D))return;if(!this.activeMenuItem.isSubMenuOpening())this.activeMenuItem.deactivate()}clearActiveItem(){if(this.activeMenuItem)this.activeMenuItem.deactivate(),this.activeMenuItem=null}addMenuItems(G){if(G==null)return;SQ.all(G.map((D)=>{if(D==="separator")return SQ.resolve({eGui:this.createSeparator()});else if(typeof D==="string")return this.callbacks.warnNoItem?.(D),SQ.resolve({eGui:null});else return this.addItem(D)})).then((D)=>{for(let z of D??[])if(z?.eGui){if(this.appendChild(z.eGui),z.comp)this.menuItems.push(z.comp)}})}addItem(G){let D=this.createManagedBean(new NB(this.callbacks));return D.init({menuItemDef:G,isAnotherSubMenuOpen:()=>this.menuItems.some((z)=>z.isSubMenuOpen()),level:this.level,contextParams:this.menuActionParams}).then(()=>{return D.setParentComponent(this),this.addManagedListeners(D,{closeMenu:(z)=>{this.dispatchLocalEvent(z)},menuItemActivated:(z)=>{if(this.activeMenuItem&&this.activeMenuItem!==z.menuItem)this.activeMenuItem.deactivate();this.activeMenuItem=z.menuItem}}),{comp:D,eGui:D.getGui()}})}activateFirstItem(){let G=this.menuItems.filter((D)=>!D.isDisabled())[0];if(!G)return;G.activate()}createSeparator(){let G={tag:"div",cls:"ag-menu-separator-part"};return PY({tag:"div",cls:"ag-menu-separator",attrs:{"aria-hidden":"true"},children:[G,G,G,G]})}handleNavKey(G){switch(G){case AG.UP:case AG.DOWN:{let z=this.findNextItem(G===AG.UP);if(z&&z!==this.activeMenuItem)z.activate(!1,!0);return}}let D=this.gos.get("enableRtl")?AG.RIGHT:AG.LEFT;if(G===D)this.closeIfIsChild();else this.openChild()}closeIfIsChild(G){let D=this.getParentComponent();if(D&&D instanceof NB){if(G)G.preventDefault();return D.closeSubMenu(),D.getGui().focus(),!0}return!1}openChild(){if(this.activeMenuItem)this.activeMenuItem.openSubMenu(!0)}findNextItem(G){let D=[...this.menuItems];if(!D.length)return;if(!this.activeMenuItem)return G?gY(D):D[0];if(G)D.reverse();let z,B=!1;for(let Q of D){if(!B){if(Q===this.activeMenuItem)B=!0;continue}z=Q;break}if(B&&!z)return D[0];return z||this.activeMenuItem}destroy(){this.clearActiveItem(),super.destroy()}},G4="ag-menu",D4="ag-context-menu-loading-icon",v6=class extends pY{constructor(G){super();this.params=G,this.destroyLoadingSpinner=null,this.lastPromise=0}hideActiveMenu(){this.destroyBean(this.activeMenu)}showMenu(G,D,z){let{getMenuItems:B,shouldBlockMenuOpen:Q}=this.params,J=B(G,D);if(aY(J)){let U=this.lastPromise+1;if(this.lastPromise=U,!this.destroyLoadingSpinner)this.createLoadingIcon(D);return J.then((Z)=>{if(this.lastPromise!==U)return;let{target:S}=D,X=!S;if(Z?.length&&(X||eY(S))&&!Q?.())this.createContextMenu({menuItems:Z,menuActionParams:G,mouseEvent:D,anchorToElement:z});this.destroyLoadingSpinner?.()}),!0}if(!J?.length)return!1;return this.createContextMenu({menuItems:J,menuActionParams:G,mouseEvent:D,anchorToElement:z}),!0}createLoadingIcon(G){let{beans:D}=this,z=this.getLocaleTextFunc(),B=D.iconSvc.createIconNoSpan("loadingMenuItems"),Q=tY({tag:"div",cls:D4});Q.appendChild(B);let J=rY(D),U=oY(D);if(!U)return;U.appendChild(Q),D.ariaAnnounce?.announceValue(z("ariaLabelLoadingContextMenu","Loading Context Menu"),"contextmenu"),D.environment.applyThemeClasses(Q),KU(Q,G,D);let Z=(S)=>{KU(Q,S,D)};J.addEventListener("mousemove",Z),this.destroyLoadingSpinner=()=>{J.removeEventListener("mousemove",Z),Q.remove(),this.destroyLoadingSpinner=null}}createContextMenu(G){let{mapMenuItems:D,menuItemCallbacks:z,beforeMenuOpen:B,onMenuClose:Q,afterMenuDestroyed:J,onVisibleChanged:U,onMenuOpen:Z}=this.params,{menuItems:S,menuActionParams:X,mouseEvent:Y,anchorToElement:W}=G,q=this.beans.popupSvc,_=new z4(D?(F)=>D(S,X,F):()=>S,X,z);this.createBean(_);let k=_.getGui();B?.(X);let w={additionalParams:z.getPostProcessPopupParams(X),type:"contextMenu",mouseEvent:Y,ePopup:k,nudgeY:1},K=this.getLocaleTextFunc(),f=q?.addPopup({modal:!0,eChild:k,closeOnEsc:!0,closedCallback:(F)=>{z.preserveRangesWhile(this.beans,()=>{Q?.(),this.destroyBean(_),J?.(),U?.(!1,F===void 0?"api":"ui")})},click:Y,positionCallback:()=>{let F=this.gos.get("enableRtl");q?.positionPopupUnderMouseEvent({...w,nudgeX:F?(k.offsetWidth+1)*-1:1})},anchorToElement:W,ariaLabel:K("ariaLabelContextMenu","Context Menu")});if(f)Z?.(),_.afterGuiAttached({container:"contextMenu",hidePopup:f.hideFunc});if(this.activeMenu)this.hideActiveMenu();if(this.activeMenu=_,_.addEventListener("destroyed",()=>{if(this.activeMenu===_)this.activeMenu=null}),f)_.addEventListener("closeMenu",(F)=>f.hideFunc({mouseEvent:F.mouseEvent??void 0,keyboardEvent:F.keyboardEvent??void 0,forceHide:!0}));let N=Y&&Y instanceof MouseEvent&&Y.type==="mousedown";U?.(!0,N?"api":"ui")}destroy(){this.destroyLoadingSpinner?.(),super.destroy()}},z4=class extends mY{constructor(G,D,z){super({tag:"div",cls:G4,role:"presentation"});this.getMenuItems=G,this.menuActionParams=D,this.callbacks=z,this.menuList=null}postConstruct(){let G=this.createManagedBean(new uB(0,this.menuActionParams,this.callbacks)),D=this.getMenuItems(()=>this.getGui());G.addMenuItems(D),this.appendChild(G),this.menuList=G,G.addEventListener("closeMenu",(z)=>this.dispatchLocalEvent(z))}afterGuiAttached({hidePopup:G}){if(G)this.addDestroyFunc(G);let D=this.menuList;if(D)this.callbacks.preserveRangesWhile(this.beans,()=>sY(D.getGui()))}},O6=class extends B4{constructor(G){super({tag:"div"});this.callbacks=G}init(G){this.params=G,this.cssClassPrefix=this.params.cssClassPrefix??"ag-menu-option",this.addAriaAttributes(),this.addIcon(),this.addName(),this.addShortcut(),this.addSubMenu()}configureDefaults(){return!0}addAriaAttributes(){let{checked:G,subMenu:D}=this.params,z=this.getGui();if(G)J4(z,G);if(D)U4(z,!1)}addIcon(){if(this.params.isCompact)return;let G=I0({tag:"span",ref:"eIcon",cls:`${this.getClassName("part")} ${this.getClassName("icon")}`,role:"presentation"}),{checked:D,icon:z}=this.params;if(D)G.appendChild(this.beans.iconSvc.createIconNoSpan("check"));else if(z)if(Q4(z))G.appendChild(z);else if(typeof z==="string")G.innerHTML=z;else this.callbacks?.warnNoIcon?.();this.getGui().appendChild(G)}addName(){let G=I0({tag:"span",ref:"eName",cls:`${this.getClassName("part")} ${this.getClassName("text")}`,children:this.params.name||""});this.getGui().appendChild(G)}addShortcut(){if(this.params.isCompact)return;let G=I0({tag:"span",ref:"eShortcut",cls:`${this.getClassName("part")} ${this.getClassName("shortcut")}`,children:this.params.shortcut||""});this.getGui().appendChild(G)}addSubMenu(){let G=I0({tag:"span",ref:"ePopupPointer",cls:`${this.getClassName("part")} ${this.getClassName("popup-pointer")}`}),D=this.getGui();if(this.params.subMenu){let z=this.gos.get("enableRtl")?"subMenuOpenRtl":"subMenuOpen";G.appendChild(this.beans.iconSvc.createIconNoSpan(z))}D.appendChild(G)}getClassName(G){return`${this.cssClassPrefix}-${G}`}};function c1(G,D){if(!D)return null;let z=H4(G),B=z.indexOf(D);if(B===-1)return null;let Q=-1;for(let J=B-1;J>=0;J--)if(z[J].classList.contains(W4.TAB_GUARD_TOP)){Q=J;break}if(Q<=0)return null;return z[Q-1]}function u6(G,D){if(!D)return!1;let z=G.querySelectorAll(`.${q4}`);if(!z.length)return!1;for(let B=0;Bthis.activeItem?.tabbedItem?.afterDetachedCallback?.())}setupHeader(){let{enableCloseButton:G,cssClass:D}=this.params,z=(B,Q)=>{if(B.classList.add(`ag-tabs-${Q}`),D)B.classList.add(`${D}-${Q}`)};if(G)this.setupCloseButton(z),this.eTabHeader=M0({tag:"div",role:"presentation"}),z(this.eHeader,"header-wrapper"),this.eHeader.appendChild(this.eTabHeader);else this.eTabHeader=this.eHeader;Y4(this.eTabHeader,"tablist"),z(this.eTabHeader,"header")}setupCloseButton(G){let D=M0({tag:"button"});G(D,"close-button");let z=this.beans.iconSvc.createIconNoSpan("close");EU(D,this.params.closeButtonAriaLabel),D.appendChild(z),this.addManagedElementListeners(D,{click:()=>this.params.onCloseClicked?.()});let B=M0({tag:"div",role:"presentation"});G(B,"close-button-wrapper"),B.appendChild(D),this.eHeader.appendChild(B),this.eCloseButton=D}handleKeyDown(G){switch(G.key){case wz.RIGHT:case wz.LEFT:{if(!this.eTabHeader.contains(FU(this.beans)))return;let D=G.key===wz.RIGHT,z=this.gos.get("enableRtl"),B=this.items.indexOf(this.activeItem),Q=D!==z?Math.min(B+1,this.items.length-1):Math.max(B-1,0);if(B===Q)return;G.preventDefault();let J=this.items[Q];this.showItemWrapper(J),J.eHeaderButton.focus();break}case wz.UP:case wz.DOWN:G.stopPropagation();break}}onTabKeyDown(G){if(G.defaultPrevented)return;let{beans:D,eHeader:z,eBody:B,activeItem:Q,params:J}=this,{suppressTrapFocus:U,enableCloseButton:Z}=J,S=FU(D),X=G.target,Y=G.shiftKey;if(z.contains(S)){if(G.preventDefault(),Z&&Y&&!this.eCloseButton?.contains(S))this.eCloseButton?.focus();else if(U&&Y)c1(S4(D).body,X)?.focus();else this.focusBody(G.shiftKey);return}let W=null;if(u6(B,X)){if(Y)W=c1(B,X);if(!W&&!U)W=Q.eHeaderButton}if(!W&&B.contains(S)){if(W=L4(D,B,!1,Y),!W){if(U&&!Y)this.forceFocusOutOfContainer(Y);else if(Z&&!Y)G.preventDefault(),this.eCloseButton?.focus();else G.preventDefault(),this.focusHeader();return}}if(W)G.preventDefault(),W.focus()}focusInnerElement(G){if(G)return this.focusBody(!0);else return this.focusHeader(),!0}focusHeader(G){this.activeItem.eHeaderButton.focus({preventScroll:G})}focusBody(G){return NU(this.eBody,G)}setAfterAttachedParams(G){this.afterAttachedParams=G}showFirstItem(){if(this.items.length>0)this.showItemWrapper(this.items[0])}addItem(G){let D=M0({tag:"span",cls:"ag-tab",role:"tab",attrs:{tabindex:"-1"}});D.appendChild(G.title),this.eTabHeader.appendChild(D),EU(D,G.titleLabel);let z={tabbedItem:G,eHeaderButton:D};this.items.push(z),D.addEventListener("click",this.showItemWrapper.bind(this,z))}showItem(G){let D=this.items.find((z)=>z.tabbedItem===G);if(D)this.showItemWrapper(D)}showItemWrapper(G){let{tabbedItem:D,eHeaderButton:z}=G;if(this.params.onItemClicked?.({item:D}),this.activeItem===G){this.params.onActiveItemClicked?.();return}if(this.lastScrollListener)this.lastScrollListener=this.lastScrollListener();if($4(this.eBody),D.bodyPromise.then((B)=>{this.eBody.appendChild(B);let Q=!X4();if(!this.params.suppressFocusBodyOnOpen)NU(this.eBody,!1,Q);if(D.afterAttachedCallback)D.afterAttachedCallback(this.afterAttachedParams);if(this.params.keepScrollPosition){let J=D.getScrollableContainer?.()||B;[this.lastScrollListener]=this.addManagedElementListeners(J,{scroll:()=>{this.tabbedItemScrollMap.set(D.name,J.scrollTop)}});let U=this.tabbedItemScrollMap.get(D.name);if(U!==void 0)setTimeout(()=>{J.scrollTop=U},0)}}),this.activeItem)this.activeItem.eHeaderButton.classList.remove("ag-tab-selected"),this.activeItem.tabbedItem.afterDetachedCallback?.();z.classList.add("ag-tab-selected"),this.activeItem=G}},N4=".ag-group{position:relative;width:100%}.ag-group-title-bar{align-items:center;display:flex;padding:var(--ag-spacing)}.ag-group-title{display:inline;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:where(.ag-group-title-bar) .ag-group-title{cursor:default}.ag-group-toolbar{align-items:center;display:flex;padding:var(--ag-spacing)}.ag-group-container{display:flex}.ag-disabled .ag-group-container{pointer-events:none}.ag-disabled-group-container,.ag-disabled-group-title-bar{opacity:.5}.ag-group-container-horizontal{flex-flow:row wrap}.ag-group-container-vertical{flex-direction:column}.ag-group-title-bar-icon{cursor:pointer;flex:none}:where(.ag-ltr) .ag-group-title-bar-icon{margin-right:var(--ag-spacing)}:where(.ag-rtl) .ag-group-title-bar-icon{margin-left:var(--ag-spacing)}:where(.ag-group-item-alignment-stretch) .ag-group-item{align-items:stretch}:where(.ag-group-item-alignment-start) .ag-group-item{align-items:flex-start}:where(.ag-group-item-alignment-end) .ag-group-item{align-items:flex-end}";function F4(G){let D=G.cssIdentifier||"default",z=G.direction||"vertical";return{tag:"div",cls:`ag-group ag-${D}-group`,role:"presentation",children:[{tag:"div",ref:"eToolbar",cls:`ag-group-toolbar ag-${D}-group-toolbar`,children:[{tag:"ag-checkbox",ref:"cbGroupEnabled"}]},{tag:"div",ref:"eContainer",cls:`ag-group-container ag-group-container-${z} ag-${D}-group-container`}]}}var jG=class extends j6{constructor(G={}){super(F4(G),[k4]);this.params=G,this.suppressEnabledCheckbox=!0,this.suppressToggleExpandOnEnableChange=!1,this.eToolbar=Gz,this.cbGroupEnabled=Gz,this.eContainer=Gz,this.registerCSS(N4);let{enabled:D,items:z,suppressEnabledCheckbox:B,expanded:Q,suppressToggleExpandOnEnableChange:J,useToggle:U}=G;if(this.cssIdentifier=G.cssIdentifier||"default",this.enabled=D!=null?D:!0,this.items=z||[],this.useToggle=U??!1,this.alignItems=G.alignItems||"center",this.expanded=Q==null?!0:Q,B!=null)this.suppressEnabledCheckbox=B;if(J!=null)this.suppressToggleExpandOnEnableChange=J}postConstruct(){if(this.setupTitleBar(),this.items.length){let Q=this.items;this.items=[],this.addItems(Q)}let G=this.getLocaleTextFunc();if(this.cbGroupEnabled.setLabel(G("enabled","Enabled")),this.enabled)this.setEnabled(this.enabled,void 0,!0);this.setAlignItems(this.alignItems);let{onEnableChange:D,onExpandedChange:z,suppressOpenCloseIcons:B}=this.params;if(this.hideEnabledCheckbox(this.suppressEnabledCheckbox),this.hideOpenCloseIcons(B??!1),this.refreshChildDisplay(),AD(this.eContainer,this.expanded),this.cbGroupEnabled.onValueChange((Q)=>{this.setEnabled(Q,!0,this.suppressToggleExpandOnEnableChange),this.dispatchEnableChangeEvent(Q)}),D!=null)this.onEnableChange(D);if(z!=null)this.onExpandedChange(z)}refreshChildDisplay(){AD(this.eToolbar,this.expanded&&!this.suppressEnabledCheckbox),this.eTitleBar?.refreshOnExpand(this.expanded)}isExpanded(){return this.expanded}setAlignItems(G){if(this.alignItems!==G)this.removeCss(`ag-group-item-alignment-${this.alignItems}`);this.alignItems=G;let D=`ag-group-item-alignment-${this.alignItems}`;return this.addCss(D),this}toggleGroupExpand(G,D){if(this.eTitleBar?.isSuppressCollapse()&&!this.useToggle)G=!0,D=!0;else if(G=G!=null?G:!this.expanded,this.expanded===G)return this;if(this.expanded=G,this.refreshChildDisplay(),AD(this.eContainer,G),!D)this.dispatchLocalEvent({type:G?"expanded":"collapsed"});return this}addItems(G){for(let D of G)this.addItem(D)}prependItem(G){this.insertItem(G,!0)}addItem(G){this.insertItem(G,!1)}updateItems(G){let D=this.items,z=0;for(let B=0;BG(D.enabled)}),this}onExpandedChange(G){return this.addManagedListeners(this,{expanded:()=>G(!0),collapsed:()=>G(!1)}),this}hideEnabledCheckbox(G){return this.suppressEnabledCheckbox=G,this.refreshChildDisplay(),this.refreshDisabledStyles(),this}hideOpenCloseIcons(G){return this.eTitleBar?.hideOpenCloseIcons(G),this}refreshDisabledStyles(){let G=!this.enabled;this.eContainer.classList.toggle("ag-disabled",G),this.eTitleBar?.refreshDisabledStyles(this.suppressEnabledCheckbox&&G),this.eContainer.classList.toggle("ag-disabled-group-container",G)}setupTitleBar(){let G=this.useToggle?this.createToggleTitleBar():this.createDefaultTitleBar();this.eToolbar.insertAdjacentElement("beforebegin",G.getGui())}createDefaultTitleBar(){let G=this.createManagedBean(new I4(this.params));return this.eTitleBar=G,G.refreshOnExpand(this.expanded),this.addManagedListeners(G,{expandedChanged:(D)=>this.toggleGroupExpand(D.expanded)}),G}createToggleTitleBar(){let G=this.createManagedBean(new w4({value:this.enabled,label:this.params.title,labelAlignment:"left",labelWidth:"flex",onValueChange:(D)=>{this.setEnabled(D,!0),this.dispatchEnableChangeEvent(D)}}));return G.addCss("ag-group-title-bar"),G.addCss(`ag-${this.params.cssIdentifier??"default"}-group-title-bar ag-unselectable`),this.eToggle=G,this.toggleGroupExpand(this.enabled),G}},WQ="ag-disabled-group-title-bar";function E4(G){let D=G.cssIdentifier??"default";return{tag:"div",cls:`ag-group-title-bar ag-${D}-group-title-bar ag-unselectable`,role:G.suppressKeyboardNavigation?"presentation":"group",children:[{tag:"span",ref:"eGroupOpenedIcon",cls:`ag-group-title-bar-icon ag-${D}-group-title-bar-icon`,role:"presentation"},{tag:"span",ref:"eGroupClosedIcon",cls:`ag-group-title-bar-icon ag-${D}-group-title-bar-icon`,role:"presentation"},{tag:"span",ref:"eTitle",cls:`ag-group-title ag-${D}-group-title`}]}}var I4=class extends j6{constructor(G={}){super(E4(G));this.suppressOpenCloseIcons=!1,this.suppressKeyboardNavigation=!1,this.eGroupOpenedIcon=Gz,this.eGroupClosedIcon=Gz,this.eTitle=Gz;let{title:D,suppressOpenCloseIcons:z,suppressKeyboardNavigation:B}=G;if(!!D&&D.length>0)this.title=D;if(z!=null)this.suppressOpenCloseIcons=z;this.suppressKeyboardNavigation=B??!1}postConstruct(){this.setTitle(this.title),this.hideOpenCloseIcons(this.suppressOpenCloseIcons),this.setupExpandContract()}setupExpandContract(){let G=this.beans.iconSvc;this.eGroupClosedIcon.appendChild(G.createIconNoSpan("accordionClosed")),this.eGroupOpenedIcon.appendChild(G.createIconNoSpan("accordionOpen")),this.addManagedElementListeners(this.getGui(),{click:()=>this.dispatchExpandChanged(),keydown:(D)=>{switch(D.key){case Kz.ENTER:case Kz.SPACE:D.preventDefault(),this.dispatchExpandChanged();break;case Kz.RIGHT:case Kz.LEFT:D.preventDefault(),this.dispatchExpandChanged(D.key===Kz.RIGHT);break}}})}refreshOnExpand(G){this.refreshAriaStatus(G),this.refreshOpenCloseIcons(G)}refreshAriaStatus(G){if(!this.suppressOpenCloseIcons)f4(this.getGui(),G)}refreshOpenCloseIcons(G){let D=!this.suppressOpenCloseIcons;AD(this.eGroupOpenedIcon,D&&G),AD(this.eGroupClosedIcon,D&&!G)}isSuppressCollapse(){return this.suppressOpenCloseIcons}dispatchExpandChanged(G){let D={type:"expandedChanged",expanded:G};this.dispatchLocalEvent(D)}setTitle(G){let D=this.getGui(),z=!!G&&G.length>0;if(G=z?G:void 0,this.eTitle.textContent=G??"",AD(D,z),G!==this.title)this.title=G;let B=D.classList.contains(WQ);return this.refreshDisabledStyles(B),this}addWidget(G){return this.getGui().appendChild(G),this}hideOpenCloseIcons(G){if(this.suppressOpenCloseIcons=G,G)this.dispatchExpandChanged(!0);return this}refreshDisabledStyles(G){let D=this.getGui();if(G)D.classList.add(WQ),D.removeAttribute("tabindex"),YQ(D,"presentation");else if(D.classList.remove(WQ),typeof this.title==="string"&&!this.suppressKeyboardNavigation)this.activateTabIndex([D]),YQ(D,"group");else D.removeAttribute("tabindex"),YQ(D,"presentation")}},p={selector:"AG-GROUP-COMPONENT",component:jG},j="35.2.0",i={moduleName:"EnterpriseCore",version:j,beans:[j1],icons:{accordionOpen:"tree-open",accordionClosed:"tree-closed",accordionIndeterminate:"tree-indeterminate",close:"cross",cancel:"cancel",maximize:"maximize",minimize:"minimize",columnDrag:"grip"},dependsOn:[],setLicenseKey:j1.setLicenseKey},b4=".ag-advanced-filter-header{align-items:center;background-color:var(--ag-header-background-color);border-bottom:var(--ag-header-row-border);display:flex;position:relative}.ag-advanced-filter{align-items:center;display:flex;width:100%}.ag-advanced-filter-buttons{display:contents}.ag-advanced-filter-header-cell{height:100%;padding-left:var(--ag-cell-horizontal-padding);padding-right:var(--ag-cell-horizontal-padding)}.ag-advanced-filter-apply-button,.ag-advanced-filter-builder-button{align-items:center;background-color:unset;border:0;display:flex;font-size:var(--ag-font-size);font-weight:600;line-height:normal;padding:var(--ag-spacing);white-space:nowrap;&:where(.ag-standard-button):where(:not(:disabled)){cursor:pointer;&:where(.ag-standard-button):hover{background-color:var(--ag-row-hover-color)}}}:where(.ag-ltr) .ag-advanced-filter-apply-button,:where(.ag-ltr) .ag-advanced-filter-builder-button{margin-left:calc(var(--ag-spacing)*2)}:where(.ag-rtl) .ag-advanced-filter-apply-button,:where(.ag-rtl) .ag-advanced-filter-builder-button{margin-right:calc(var(--ag-spacing)*2)}:where(.ag-ltr) .ag-advanced-filter-builder-button-label{margin-left:var(--ag-spacing)}:where(.ag-rtl) .ag-advanced-filter-builder-button-label{margin-right:var(--ag-spacing)}.ag-advanced-filter-builder{display:flex;flex-direction:column;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.ag-advanced-filter-builder-list{flex:1;overflow:auto}.ag-advanced-filter-builder-button-panel{border-top:var(--ag-advanced-filter-builder-button-bar-border);display:flex;justify-content:flex-end;padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding)}:where(.ag-ltr) .ag-advanced-filter-builder-apply-button,:where(.ag-ltr) .ag-advanced-filter-builder-cancel-button{margin-left:calc(var(--ag-spacing)*2)}:where(.ag-rtl) .ag-advanced-filter-builder-apply-button,:where(.ag-rtl) .ag-advanced-filter-builder-cancel-button{margin-right:calc(var(--ag-spacing)*2)}.ag-advanced-filter-builder-item-wrapper{align-items:center;display:flex;flex:1 1 auto;justify-content:space-between;overflow:hidden}:where(.ag-ltr) .ag-advanced-filter-builder-item-wrapper{padding-left:calc(var(--ag-icon-size)/2);padding-right:var(--ag-icon-size)}:where(.ag-rtl) .ag-advanced-filter-builder-item-wrapper{padding-left:var(--ag-icon-size);padding-right:calc(var(--ag-icon-size)/2)}:where(.ag-virtual-list-viewport) .ag-advanced-filter-builder-item-wrapper .ag-tab-guard{position:absolute}.ag-advanced-filter-builder-item-tree-line{width:var(--ag-advanced-filter-builder-indent-size)}.ag-advanced-filter-builder-item-tree-line-root{width:var(--ag-icon-size)}.ag-advanced-filter-builder-item-tree-line-root:before{height:50%;top:50%}.ag-advanced-filter-builder-item-tree-line-horizontal,.ag-advanced-filter-builder-item-tree-line-vertical,.ag-advanced-filter-builder-item-tree-line-vertical-bottom,.ag-advanced-filter-builder-item-tree-line-vertical-top{align-items:center;display:flex;height:100%;position:relative}.ag-advanced-filter-builder-item-tree-line-horizontal:after,.ag-advanced-filter-builder-item-tree-line-horizontal:before,.ag-advanced-filter-builder-item-tree-line-vertical-bottom:after,.ag-advanced-filter-builder-item-tree-line-vertical-bottom:before,.ag-advanced-filter-builder-item-tree-line-vertical-top:after,.ag-advanced-filter-builder-item-tree-line-vertical-top:before,.ag-advanced-filter-builder-item-tree-line-vertical:after,.ag-advanced-filter-builder-item-tree-line-vertical:before{content:\"\";height:100%;position:absolute}.ag-advanced-filter-builder-item-tree-line-horizontal:after{border-bottom:var(--ag-border-width) solid var(--ag-border-color);height:50%;top:0;width:calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size))}:where(.ag-ltr) .ag-advanced-filter-builder-item-tree-line-horizontal:after{left:calc(var(--ag-icon-size)/2)}:where(.ag-rtl) .ag-advanced-filter-builder-item-tree-line-horizontal:after{right:calc(var(--ag-icon-size)/2)}.ag-advanced-filter-builder-item-tree-line-vertical:before{top:0;width:calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size)/2)}:where(.ag-ltr) .ag-advanced-filter-builder-item-tree-line-vertical:before{border-left:var(--ag-border-width) solid var(--ag-border-color);left:calc(var(--ag-icon-size)/2)}:where(.ag-rtl) .ag-advanced-filter-builder-item-tree-line-vertical:before{border-right:var(--ag-border-width) solid var(--ag-border-color);right:calc(var(--ag-icon-size)/2)}.ag-advanced-filter-builder-item-tree-line-vertical-top:before{height:50%;top:0;width:calc(var(--ag-advanced-filter-builder-indent-size) - var(--ag-icon-size)/2)}:where(.ag-ltr) .ag-advanced-filter-builder-item-tree-line-vertical-top:before{border-left:var(--ag-border-width) solid var(--ag-border-color);left:calc(var(--ag-icon-size)/2)}:where(.ag-rtl) .ag-advanced-filter-builder-item-tree-line-vertical-top:before{border-right:var(--ag-border-width) solid var(--ag-border-color);right:calc(var(--ag-icon-size)/2)}.ag-advanced-filter-builder-item-tree-line-vertical-bottom:before{height:calc(50% - var(--ag-icon-size)*1.5/2);top:calc(50% + var(--ag-icon-size)*1.5/2);width:calc(var(--ag-icon-size)/2)}:where(.ag-ltr) .ag-advanced-filter-builder-item-tree-line-vertical-bottom:before{border-left:var(--ag-border-width) solid var(--ag-border-color);left:calc(var(--ag-icon-size)/2)}:where(.ag-rtl) .ag-advanced-filter-builder-item-tree-line-vertical-bottom:before{border-right:var(--ag-border-width) solid var(--ag-border-color);right:calc(var(--ag-icon-size)/2)}.ag-advanced-filter-builder-item-condition{padding-bottom:var(--ag-spacing);padding-top:var(--ag-spacing)}.ag-advanced-filter-builder-item,.ag-advanced-filter-builder-item-buttons,.ag-advanced-filter-builder-item-condition,.ag-advanced-filter-builder-item-tree-lines,.ag-advanced-filter-builder-pill,.ag-advanced-filter-builder-pill-wrapper{align-items:center;display:flex;height:100%}.ag-advanced-filter-builder-pill-wrapper{margin:0 var(--ag-spacing)}.ag-advanced-filter-builder-pill{border-radius:var(--ag-border-radius);min-height:calc(100% - var(--ag-spacing)*3);min-width:calc(var(--ag-spacing)*2);padding:var(--ag-spacing) calc(var(--ag-spacing)*2);position:relative}:where(.ag-advanced-filter-builder-pill){.ag-advanced-filter-builder-value-number{font-family:monospace;font-weight:700}.ag-advanced-filter-builder-value-empty{color:var(--ag-subtle-text-color)}}:where(.ag-ltr) :where(.ag-advanced-filter-builder-pill){.ag-picker-field-display{margin-right:var(--ag-spacing)}}:where(.ag-rtl) :where(.ag-advanced-filter-builder-pill){.ag-picker-field-display{margin-left:var(--ag-spacing)}}.ag-advanced-filter-builder-pill-display{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ag-advanced-filter-builder-join-pill{background-color:var(--ag-advanced-filter-builder-join-pill-color);cursor:pointer}.ag-advanced-filter-builder-column-pill{background-color:var(--ag-advanced-filter-builder-column-pill-color);cursor:pointer}.ag-advanced-filter-builder-option-pill{background-color:var(--ag-advanced-filter-builder-option-pill-color);cursor:pointer}.ag-advanced-filter-builder-value-pill{background-color:var(--ag-advanced-filter-builder-value-pill-color);cursor:text;max-width:140px;:where(.ag-advanced-filter-builder-pill-display){display:block}}.ag-advanced-filter-builder-item-buttons{display:flex;gap:var(--ag-spacing);padding:0 calc(var(--ag-spacing)*.5)}.ag-advanced-filter-builder-item-button{color:var(--ag-subtle-text-color);cursor:pointer;position:relative}.ag-advanced-filter-builder-item-button,.ag-advanced-filter-builder-pill{&:focus-visible{box-shadow:var(--ag-focus-shadow)}}.ag-advanced-filter-builder-item-button-disabled{cursor:default;opacity:.5}.ag-advanced-filter-builder-virtual-list-container{top:var(--ag-spacing)}.ag-advanced-filter-builder-virtual-list-item{cursor:default;display:flex;height:var(--ag-list-item-height)}.ag-advanced-filter-builder-virtual-list-item:hover{background-color:var(--ag-row-hover-color);:where(.ag-advanced-filter-builder-item-button){opacity:1}}.ag-advanced-filter-builder-invalid{color:var(--ag-subtle-text-color);cursor:default;margin:0 var(--ag-spacing)}:where(.ag-advanced-filter-builder-validation) .ag-advanced-filter-builder-invalid{color:var(--ag-invalid-color)}:where(.ag-advanced-filter-builder-virtual-list-item-highlight) .ag-advanced-filter-builder-item-button:focus-visible{opacity:1}";function v4(G){return G.filterManager?.getAdvFilterModel()??null}function O4(G,D){G.filterManager?.setAdvFilterModel(D)}function u4(G){G.filterManager?.toggleAdvFilterBuilder(!0,"api")}function j4(G){G.filterManager?.toggleAdvFilterBuilder(!1,"api")}var T4={ariaAdvancedFilterBuilderItem:(G)=>`${G[0]}. Level ${G[1]}. Press ENTER to edit`,ariaAdvancedFilterBuilderItemValidation:(G)=>`${G[0]}. Level ${G[1]}. ${G[2]} Press ENTER to edit`,ariaAdvancedFilterBuilderList:"Advanced Filter Builder List",ariaAdvancedFilterBuilderFilterItem:"Filter Condition",ariaAdvancedFilterBuilderGroupItem:"Filter Group",ariaAdvancedFilterBuilderColumn:"Column",ariaAdvancedFilterBuilderOption:"Option",ariaAdvancedFilterBuilderValue:"Value",ariaAdvancedFilterBuilderJoinOperator:"Join Operator",ariaAdvancedFilterInput:"Advanced Filter Input",ariaLabelAdvancedFilterAutocomplete:"Advanced Filter Autocomplete",advancedFilterContains:"contains",advancedFilterNotContains:"does not contain",advancedFilterTextEquals:"equals",advancedFilterTextNotEqual:"does not equal",advancedFilterStartsWith:"begins with",advancedFilterEndsWith:"ends with",advancedFilterBlank:"is blank",advancedFilterNotBlank:"is not blank",advancedFilterEquals:"=",advancedFilterNotEqual:"!=",advancedFilterGreaterThan:">",advancedFilterGreaterThanOrEqual:">=",advancedFilterLessThan:"<",advancedFilterLessThanOrEqual:"<=",advancedFilterTrue:"is true",advancedFilterFalse:"is false",advancedFilterAnd:"AND",advancedFilterOr:"OR",advancedFilterApply:"Apply",advancedFilterReset:"Reset",advancedFilterCancel:"Cancel",advancedFilterClear:"Clear",advancedFilterBuilder:"Builder",advancedFilterValidationMissingColumn:"Column is missing",advancedFilterValidationMissingOption:"Option is missing",advancedFilterValidationMissingValue:"Value is missing",advancedFilterValidationInvalidColumn:"Column not found",advancedFilterValidationInvalidOption:"Option not found",advancedFilterValidationMissingQuote:"Value is missing an end quote",advancedFilterValidationNotANumber:"Value is not a number",advancedFilterValidationNotABigInt:"Value is not a big integer",advancedFilterValidationInvalidDate:"Value is not a valid date",advancedFilterValidationMissingCondition:"Condition is missing",advancedFilterValidationJoinOperatorMismatch:"Join operators within a condition must be the same",advancedFilterValidationInvalidJoinOperator:"Join operator not found",advancedFilterValidationMissingEndBracket:"Missing end bracket",advancedFilterValidationExtraEndBracket:"Too many end brackets",advancedFilterValidationMessage:(G)=>`Expression has an error. ${G[0]} - ${G[1]}.`,advancedFilterValidationMessageAtEnd:(G)=>`Expression has an error. ${G[0]} at end of expression.`,advancedFilterBuilderTitle:"Advanced Filter",advancedFilterBuilderApply:"Apply",advancedFilterBuilderCancel:"Cancel",advancedFilterBuilderClear:"Clear",advancedFilterBuilderReset:"Reset",advancedFilterBuilderAddButtonTooltip:"Add Filter or Group",advancedFilterBuilderRemoveButtonTooltip:"Remove",advancedFilterBuilderMoveUpButtonTooltip:"Move Up",advancedFilterBuilderMoveDownButtonTooltip:"Move Down",advancedFilterBuilderAddJoin:"Add Group",advancedFilterBuilderAddCondition:"Add Filter",advancedFilterBuilderSelectColumn:"Select a column",advancedFilterBuilderSelectOption:"Select an option",advancedFilterBuilderEnterValue:"Enter a value...",advancedFilterBuilderValidationAlreadyApplied:"Current filter already applied.",advancedFilterBuilderValidationIncomplete:"Not all conditions are complete.",advancedFilterBuilderValidationSelectColumn:"Must select a column.",advancedFilterBuilderValidationSelectOption:"Must select an option.",advancedFilterBuilderValidationEnterValue:"Must enter a value."};function h1(G,D,z){if(!G)return"";let B=z-D;return B?G.slice(0,G.length-B):G}function XD(G,D,z,B,Q,J,U){let Z=z+(!G.length||U?0:1),S=0;if(Q){if(G[Z]===" ")S=1;else if(B+=" ",J)B+='"'}return{updatedValue:G.slice(0,D)+B+G.slice(Z),updatedPosition:D+B.length+S}}function y4(G,D,z){let B=D;while(B{if(this.quotes||isNaN(this.modelValue))this.valid=!1,this.validationMessage=this.params.advFilterExpSvc.translate("advancedFilterValidationNotANumber")},bigint:()=>{if(this.quotes||P6(this.modelValue)===null)this.valid=!1,this.validationMessage=this.params.advFilterExpSvc.translate("advancedFilterValidationNotABigInt")},date:(Q)=>{if(Q==null)this.valid=!1,this.validationMessage=this.params.advFilterExpSvc.translate("advancedFilterValidationInvalidDate")},dateString:(...Q)=>this.filterValidationSetters.date(...Q),dateTime:(...Q)=>this.filterValidationSetters.date(...Q),dateTimeString:(...Q)=>this.filterValidationSetters.date(...Q),boolean(){},object(){},text(){}}}parse(G,D){if(G===" ")if(this.quotes)this.operand+=G;else return this.parseOperand(!1,D),!0;else if(G===")")if(this.baseCellDataType==="number"||!this.quotes)return this.parseOperand(!1,D-1),!0;else this.operand+=G;else if(!this.operand&&!this.quotes&&(G==="'"||G==='"'))this.quotes=G;else if(this.quotes&&G===this.quotes)return this.parseOperand(!1,D),!1;else this.operand+=G;return}complete(G){this.parseOperand(!0,G)}getValidationError(){return this.validationMessage?{message:this.validationMessage,startPosition:this.startPosition,endPosition:this.endPosition??this.params.expression.length-1}:null}getRawValue(){return this.operand}getModelValue(){return this.modelValue}parseOperand(G,D){let{advFilterExpSvc:z}=this.params;if(this.endPosition=D,this.modelValue=this.operand,G&&this.quotes)this.valid=!1,this.validationMessage=z.translate("advancedFilterValidationMissingQuote");else if(this.modelValue==="")this.valid=!1,this.validationMessage=z.translate("advancedFilterValidationMissingValue");else{let B=z.getOperandModelValue(this.operand,this.baseCellDataType,this.column);if(B!=null)this.modelValue=B;this.filterValidationSetters[this.baseCellDataType](B)}}},n1="[",d1="]",i4=class{constructor(G,D){this.params=G,this.startPosition=D,this.isAwaiting=!0,this.operandValueGetters={number:Number,bigint:(z)=>P6(z),date:(z)=>this.params.valueSvc.parseValue(this.columnParser.column,null,z,void 0),dateString:(z)=>this.operandValueGetters.date(z),dateTime:(z)=>this.operandValueGetters.date(z),dateTimeString:(z)=>this.operandValueGetters.date(z),boolean:(z)=>z,object:(z)=>z,text:(z)=>z}}parseExpression(){let G=this.startPosition,{expression:D}=this.params;while(G{return(J,U,Z)=>Z.operators[z].evaluator(J.getValue(B,U),U,Z.evaluatorParams[Q],D==null?void 0:Z.operands[D])})}getAutocompleteListParams(G){if(this.isColumnPosition(G))return this.getColumnAutocompleteListParams(G);if(this.isOperatorPosition(G))return this.getOperatorAutocompleteListParams(G);if(this.isBeyondEndPosition(G))return;return{enabled:!1}}updateExpression(G,D,z){let{expression:B}=this.params;if(this.isColumnPosition(G))return XD(this.params.expression,this.startPosition,this.columnParser?.getColId()?this.columnParser.endPosition:i1(B,G).endPosition,this.params.advFilterExpSvc.getColumnValue(D),!0);else if(this.isOperatorPosition(G)){let Q=this.getBaseCellDataTypeFromOperatorAutocompleteType(z),J=this.hasOperand(Q,D.key),U=J&&this.doesOperandNeedQuotes(Q),Z;if(this.operatorParser?.startPosition!=null&&Gthis.endPosition+1&&this.endPosition+10,Q=this.columnParser?.hasEndChar&&z.length===D.length+2;if(B)return z.slice(1,Q?-1:void 0);return z}getOperatorAutocompleteListParams(G){let D=this.columnParser?.column;if(!D)return{enabled:!1};let z=this.columnParser.baseCellDataType,B=this.operatorParser?.startPosition!=null&&G0}doesOperandNeedQuotes(G){return G!=="number"&&G!=="bigint"}addToListAndGetIndex(G,D){let z=G.length;return G.push(D),z}};function jB(G,D,z){let B=!1,Q=G.toLocaleLowerCase(),J=Q+" ",U=Object.keys(D).find((Z)=>{let S=D[Z],X=z(S).toLocaleLowerCase();if(X.startsWith(J))B=!0;return X===Q});if(U)return U;else if(B)return null;else return}function qJ(G,D){return(D??Object.keys(G)).map((B)=>({key:B,displayValue:G[B].displayValue}))}var AU=class{constructor(G){this.params=G,this.initOperators()}getEntries(G){return qJ(this.operators,G)}findOperator(G){return jB(G,this.operators,({displayValue:D})=>D)}initOperators(){let{translate:G}=this.params;this.operators={contains:{displayValue:G("advancedFilterContains"),evaluator:(D,z,B,Q)=>this.evaluateExpression(D,z,B,Q,!1,(J,U)=>J.includes(U)),numOperands:1},notContains:{displayValue:G("advancedFilterNotContains"),evaluator:(D,z,B,Q)=>this.evaluateExpression(D,z,B,Q,!0,(J,U)=>!J.includes(U)),numOperands:1},equals:{displayValue:G("advancedFilterTextEquals"),evaluator:(D,z,B,Q)=>this.evaluateExpression(D,z,B,Q,!1,(J,U)=>J===U),numOperands:1},notEqual:{displayValue:G("advancedFilterTextNotEqual"),evaluator:(D,z,B,Q)=>this.evaluateExpression(D,z,B,Q,!0,(J,U)=>J!=U),numOperands:1},startsWith:{displayValue:G("advancedFilterStartsWith"),evaluator:(D,z,B,Q)=>this.evaluateExpression(D,z,B,Q,!1,(J,U)=>J.startsWith(U)),numOperands:1},endsWith:{displayValue:G("advancedFilterEndsWith"),evaluator:(D,z,B,Q)=>this.evaluateExpression(D,z,B,Q,!1,(J,U)=>J.endsWith(U)),numOperands:1},blank:{displayValue:G("advancedFilterBlank"),evaluator:(D)=>D==null||typeof D==="string"&&D.trim().length===0,numOperands:0},notBlank:{displayValue:G("advancedFilterNotBlank"),evaluator:(D)=>D!=null&&(typeof D!=="string"||D.trim().length>0),numOperands:0}}}evaluateExpression(G,D,z,B,Q,J){if(G==null)return Q;return z.caseSensitive?J(z.valueConverter(G,D),B):J(z.valueConverter(G,D).toLocaleLowerCase(),B.toLocaleLowerCase())}},cD=class{constructor(G){this.params=G,this.initOperators()}getEntries(G){return qJ(this.operators,G)}findOperator(G){return jB(G,this.operators,({displayValue:D})=>D)}initOperators(){let{translate:G,equals:D}=this.params;this.operators={equals:{displayValue:G("advancedFilterEquals"),evaluator:(z,B,Q,J)=>this.evaluateSingleOperandExpression(z,B,Q,J,!!Q.includeBlanksInEquals,D),numOperands:1},notEqual:{displayValue:G("advancedFilterNotEqual"),evaluator:(z,B,Q,J)=>this.evaluateSingleOperandExpression(z,B,Q,J,!!Q.includeBlanksInEquals,(U,Z)=>!D(U,Z)),numOperands:1},greaterThan:{displayValue:G("advancedFilterGreaterThan"),evaluator:(z,B,Q,J)=>this.evaluateSingleOperandExpression(z,B,Q,J,!!Q.includeBlanksInGreaterThan,(U,Z)=>U>Z),numOperands:1},greaterThanOrEqual:{displayValue:G("advancedFilterGreaterThanOrEqual"),evaluator:(z,B,Q,J)=>this.evaluateSingleOperandExpression(z,B,Q,J,!!Q.includeBlanksInGreaterThan,(U,Z)=>U>=Z),numOperands:1},lessThan:{displayValue:G("advancedFilterLessThan"),evaluator:(z,B,Q,J)=>this.evaluateSingleOperandExpression(z,B,Q,J,!!Q.includeBlanksInLessThan,(U,Z)=>Uthis.evaluateSingleOperandExpression(z,B,Q,J,!!Q.includeBlanksInLessThan,(U,Z)=>U<=Z),numOperands:1},blank:{displayValue:G("advancedFilterBlank"),evaluator:(z)=>z==null,numOperands:0},notBlank:{displayValue:G("advancedFilterNotBlank"),evaluator:(z)=>z!=null,numOperands:0}}}evaluateSingleOperandExpression(G,D,z,B,Q,J){if(G==null)return Q;return J(z.valueConverter(G,D),B)}},n4=class{constructor(G){this.params=G,this.initOperators()}getEntries(G){return qJ(this.operators,G)}findOperator(G){return jB(G,this.operators,({displayValue:D})=>D)}initOperators(){let{translate:G}=this.params;this.operators={true:{displayValue:G("advancedFilterTrue"),evaluator:(D)=>!!D,numOperands:0},false:{displayValue:G("advancedFilterFalse"),evaluator:(D)=>D===!1,numOperands:0},blank:{displayValue:G("advancedFilterBlank"),evaluator:(D)=>D==null,numOperands:0},notBlank:{displayValue:G("advancedFilterNotBlank"),evaluator:(D)=>D!=null,numOperands:0}}}},d4=class extends P4{constructor(){super(...arguments);this.beanName="advFilterExpSvc",this.filterOperandGetters={number:(G)=>xD(G.filter)??"",bigint:(G)=>xD(G.filter)??"",date:(G)=>{let D=this.colModel.getColDefCol(G.colId);if(!D)return null;return this.valueSvc.formatValue(D,null,IU(xD(G.filter)??""))},dateTime:(G)=>this.filterOperandGetters.date(G),dateString:(G)=>{let D=this.colModel.getColDefCol(G.colId);if(!D)return null;let{filter:z}=G,Q=this.dataTypeSvc?.getDateFormatterFunction(D)?.(IU(xD(G.filter)??"")??void 0)??z;return this.valueSvc.formatValue(D,null,Q)},dateTimeString:(G)=>this.filterOperandGetters.dateString(G),boolean:()=>null,object:()=>null,text:()=>null},this.operandModelValueGetters={number:(G)=>g4(G)?Number(G):null,bigint:(G)=>G,date:(G,D,z)=>MU(this.valueSvc.parseValue(D,null,G,void 0),!!this.dataTypeSvc?.getDateIncludesTimeFlag(z)),dateTime:(...G)=>this.operandModelValueGetters.date(...G),dateString:(G,D,z)=>{let B=this.valueSvc.parseValue(D,null,G,void 0);if(this.dataTypeSvc)return MU(this.dataTypeSvc.getDateParserFunction(D)(B)??null,this.dataTypeSvc.getDateIncludesTimeFlag(z));return B},dateTimeString:(...G)=>this.operandModelValueGetters.dateString(...G),boolean:(G)=>G,object:(G)=>G,text:(G)=>G},this.columnNameToIdMap={},this.columnAutocompleteEntries=null,this.expressionEvaluatorParams={}}wireBeans(G){this.valueSvc=G.valueSvc,this.colModel=G.colModel,this.colNames=G.colNames,this.dataTypeSvc=G.dataTypeSvc}postConstruct(){this.expressionJoinOperators=this.generateExpressionJoinOperators(),this.expressionOperators=this.generateExpressionOperators()}parseJoinOperator(G){let{type:D}=G;return this.expressionJoinOperators[D]??D}getColumnDisplayValue(G){let{colId:D}=G,B=this.getColumnAutocompleteEntries().find(({key:J})=>J===D),Q;if(B)Q=B.displayValue,this.columnNameToIdMap[Q.toLocaleUpperCase()]={colId:D,columnName:Q};else Q=D;return Q}getOperatorDisplayValue(G){return this.getExpressionOperator(G.filterType,G.type)?.displayValue??G.type}getOperandModelValue(G,D,z){return this.operandModelValueGetters[D](G,z,D)}getOperandDisplayValue(G,D){let{filter:z,filterType:B}=G;if(z==null)return"";let Q=this.filterOperandGetters[B](G);if(B!=="number"&&B!=="bigint"){if(Q??(Q=xD(z)??""),!D)Q=`"${Q}"`}return D?Q:` ${Q}`}parseColumnFilterModel(G){let D=this.getColumnDisplayValue(G)??"",z=this.getOperatorDisplayValue(G)??"",B=this.getOperandDisplayValue(G);return`[${D}] ${z}${B}`}updateAutocompleteCache(G,D){if(D==="column"){let{key:z,displayValue:B}=G;this.columnNameToIdMap[G.displayValue.toLocaleUpperCase()]={colId:z,columnName:B}}}translate(G,D){let z=T4[G];if(typeof z==="function")z=z(D);return this.getLocaleTextFunc()(G,z,D)}generateAutocompleteListParams(G,D,z){return{enabled:!0,type:D,searchString:z,entries:G}}getColumnAutocompleteEntries(){if(this.columnAutocompleteEntries)return this.columnAutocompleteEntries;let G=this.colModel.getColDefCols()??[],D=[],z=this.gos.get("includeHiddenColumnsInAdvancedFilter");for(let B of G)if(B.getColDef().filter&&(z||B.isVisible()||B.isRowGroupActive()))D.push({key:B.getColId(),displayValue:this.colNames.getDisplayNameForColumn(B,"advancedFilter")});return D.sort((B,Q)=>{let J=B.displayValue??"",U=Q.displayValue??"";if(JJ)return 1;return 0}),D}getOperatorAutocompleteEntries(G,D){let z=this.getActiveOperators(G);return this.getDataTypeExpressionOperator(D).getEntries(z)}getJoinOperatorAutocompleteEntries(){return Object.entries(this.expressionJoinOperators).map(([G,D])=>({key:G,displayValue:D}))}getDefaultAutocompleteListParams(G){return this.generateAutocompleteListParams(this.getColumnAutocompleteEntries(),"column",G)}getDataTypeExpressionOperator(G){return this.expressionOperators[G]}getExpressionOperator(G,D){return this.getDataTypeExpressionOperator(G)?.operators?.[D]}getExpressionJoinOperators(){return this.expressionJoinOperators}getColId(G){let D=G.toLocaleUpperCase(),z=this.columnNameToIdMap[D];if(z)return z;let Q=this.getColumnAutocompleteEntries().find(({displayValue:J})=>J.toLocaleUpperCase()===D);if(Q){let{key:J,displayValue:U}=Q,Z={colId:J,columnName:U};return this.columnNameToIdMap[D]=Z,Z}return null}getExpressionEvaluatorParams(G){let D=this.expressionEvaluatorParams[G];if(D)return D;let z=this.colModel.getColDefCol(G);if(!z)return{valueConverter:(J)=>J};switch(this.dataTypeSvc?.getBaseDataType(z)){case"dateTimeString":case"dateString":D={valueConverter:this.dataTypeSvc?.getDateParserFunction(z)??((J)=>J)};break;case"object":if(z.getColDef().filterValueGetter)D={valueConverter:(J)=>J};else D={valueConverter:(J,U)=>this.valueSvc.formatValue(z,U,J)??(typeof J.toString==="function"?J.toString():"")};break;case"text":case void 0:D={valueConverter:(J)=>xD(J)};break;default:D={valueConverter:(J)=>J};break}let{filterParams:Q}=z.getColDef();if(Q)["caseSensitive","includeBlanksInEquals","includeBlanksInLessThan","includeBlanksInGreaterThan"].forEach((J)=>{let U=Q[J];if(U)D[J]=U});return this.expressionEvaluatorParams[G]=D,D}getColumnDetails(G){let D=this.colModel.getColDefCol(G)??void 0,z=(D?this.dataTypeSvc?.getBaseDataType(D):void 0)??"text";return{column:D,baseCellDataType:z}}generateExpressionOperators(){let G=(z,B)=>this.translate(z,B),D={translate:G,equals:(z,B)=>z.getTime()===B.getTime()};return{text:new AU({translate:G}),boolean:new n4({translate:G}),object:new AU({translate:G}),number:new cD({translate:G,equals:(z,B)=>z===B}),bigint:new cD({translate:G,equals:(z,B)=>z===B}),date:new cD(D),dateString:new cD(D),dateTime:new cD(D),dateTimeString:new cD(D)}}getColumnValue({displayValue:G}){return`${n1}${G}${d1}`}generateExpressionJoinOperators(){return{AND:this.translate("advancedFilterAnd"),OR:this.translate("advancedFilterOr")}}getActiveOperators(G){let D=G.getColDef().filterParams?.filterOptions;if(!D)return;return D.every((B)=>typeof B==="string")?D:void 0}resetColumnCaches(){this.columnAutocompleteEntries=null,this.columnNameToIdMap={},this.expressionEvaluatorParams={}}},g6={stopPropagationCallbacks:GW,focusNextContainer:(G,D)=>{return DW(G,D)},configureFocusableContainer:(G,D)=>{let z=G.ctrlsSvc.get("gridCtrl");z.addFocusableContainer(D),D.addDestroyFunc(()=>z.removeFocusableContainer(D))}},PB=class extends SJ{constructor(G){super(G,g6)}getFocusableContainerName(){return"dialog"}},T6=".ag-autocomplete{align-items:center;display:flex;width:100%;>:where(.ag-text-field){flex:1 1 auto}}.ag-autocomplete-list-popup{background-color:var(--ag-background-color);border-radius:var(--ag-border-radius);box-shadow:var(--ag-dropdown-shadow);padding:0;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ag-autocomplete-list{height:calc(var(--ag-row-height)*6.5);min-width:200px;position:relative;width:100%}.ag-autocomplete-virtual-list-item{cursor:default;display:flex;height:var(--ag-list-item-height);&:focus-visible:after{content:none}}.ag-autocomplete-virtual-list-item:hover{background-color:var(--ag-row-hover-color)}.ag-autocomplete-row{align-items:center;display:flex;flex:1 1 auto;overflow:hidden}.ag-autocomplete-row-label{margin:0 var(--ag-widget-container-horizontal-padding);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ag-autocomplete-row-selected{background-color:var(--ag-selected-row-background-color)}",Lz=class extends R6{constructor(G){super(_W,G)}},NW={tag:"div",cls:"ag-autocomplete-row",role:"presentation",children:[{tag:"div",cls:"ag-autocomplete-row-label"}]},FW=class extends kW{constructor(){super(NW);this.hasHighlighting=!1}setState(G,D){this.value=G,this.render(),this.updateSelected(D)}updateSelected(G){this.toggleCss("ag-autocomplete-row-selected",G)}setSearchString(G){let D=!1,{value:z}=this;if(z&&fW(G)){let B=z.toLocaleLowerCase().indexOf(G.toLocaleLowerCase());if(B>=0){D=!0,this.hasHighlighting=!0;let Q=B+G.length,J=this.getGui().lastElementChild;wW(J),J.append(z.slice(0,B),KW({tag:"b",children:z.slice(B,Q)}),z.slice(Q))}}if(!D&&this.hasHighlighting)this.hasHighlighting=!1,this.render()}render(){this.getGui().lastElementChild.textContent=this.value??" "}},EW={tag:"div",cls:"ag-autocomplete-list-popup",children:[{tag:"div",ref:"eList",cls:"ag-autocomplete-list"}]},y6=class extends SW{constructor(G){super(EW);this.params=G,this.eList=YW,this.searchString="",this.lastAutoListHeight=null}postConstruct(){this.autocompleteEntries=this.params.autocompleteEntries,this.virtualList=this.createManagedBean(new Lz({cssIdentifier:"autocomplete"})),this.virtualList.setComponentCreator(this.createRowComponent.bind(this)),this.eList.appendChild(this.virtualList.getGui()),this.virtualList.setModel({getRowCount:()=>this.autocompleteEntries.length,getRow:(D)=>this.autocompleteEntries[D]});let G=this.virtualList.getGui();this.addManagedListeners(G,{click:()=>this.params.onConfirmed(),mousemove:this.onMouseMove.bind(this),mousedown:(D)=>D.preventDefault()}),this.setSelectedValue(0),this.updateListHeight()}onNavigationKeyDown(G,D){G.preventDefault();let z=this.autocompleteEntries.indexOf(this.selectedValue),B=D===XW.UP?z-1:z+1;this.checkSetSelectedValue(B)}setSearch(G){if(this.searchString=G,WW(G))this.runSearch();else this.autocompleteEntries=this.params.autocompleteEntries,this.virtualList.refresh(),this.checkSetSelectedValue(0),this.updateListHeight();this.updateSearchInList()}runContainsSearch(G,D){let z,B=!1,Q=G.toLocaleLowerCase(),J=D.filter((U)=>{let S=U.toLocaleLowerCase().indexOf(Q),X=S===0,Y=S>=0;if(Y&&(!z||!B&&X||B===X&&U.lengthJ.toLocaleLowerCase().startsWith(z));return{topMatch:B[0],allMatches:B}}runSearch(){let{autocompleteEntries:G,useFuzzySearch:D,useStartsWithSearch:z,forceLastSelection:B}=this.params,Q=G.map((X)=>X.displayValue??X.key),J,U;if(D)J=qW({inputValue:this.searchString,allSuggestions:Q,hideIrrelevant:!0}).values,U=J.length?J[0]:void 0;else{let X=z?this.runStartsWithSearch(this.searchString,Q):this.runContainsSearch(this.searchString,Q);J=X.allMatches,U=X.topMatch}let Z=G.filter(({key:X,displayValue:Y})=>J.includes(Y??X));if(!Z.length&&this.selectedValue&&B?.(this.selectedValue,this.searchString))Z=[this.selectedValue];if(this.autocompleteEntries=Z,this.virtualList.refresh(),this.updateListHeight(),!U)return;let S=J.indexOf(U);this.checkSetSelectedValue(S)}updateSearchInList(){this.virtualList.forEachRenderedRow((G)=>G.setSearchString(this.searchString))}updateListHeight(){if(!this.params.autoSizeList)return;let G=this.autocompleteEntries.length,D=this.virtualList.getRowHeight(),z=this.params.maxVisibleItems??G,Q=Math.min(G,z)*D;if(G===0)Q=D;if(this.lastAutoListHeight===Q)return;if(this.lastAutoListHeight=Q,this.eList.style.height=`${Q}px`,HW(this.eList))this.params.onListHeightChanged?.()}checkSetSelectedValue(G){if(G>=0&&G{z.updateSelected(G===B)})}createRowComponent(G){let D=new FW;return this.createBean(D),D.setState(G.displayValue??G.key,G===this.selectedValue),D}onMouseMove(G){let D=this.virtualList,z=D.getGui().getBoundingClientRect(),B=D.getScrollTop(),Q=G.clientY-z.top+B,J=Math.floor(Q/D.getRowHeight());this.checkSetSelectedValue(J)}afterGuiAttached(){this.virtualList.refresh(),this.updateListHeight()}getSelectedValue(){if(!this.autocompleteEntries.length)return null;return this.selectedValue??null}},IW={tag:"div",cls:"ag-autocomplete",role:"presentation",children:[{tag:"ag-input-text-field",ref:"eAutocompleteInput"}]},MW=class extends ZW{constructor(){super(IW,[UW]);this.eAutocompleteInput=$W,this.isListOpen=!1,this.lastPosition=0,this.valid=!0,this.registerCSS(T6)}wireBeans(G){this.popupSvc=G.popupSvc}postConstruct(){this.eAutocompleteInput.onValueChange((G)=>this.onValueChanged(G)),this.eAutocompleteInput.getInputElement().setAttribute("autocomplete","off"),this.addGuiEventListener("keydown",this.onKeyDown.bind(this)),this.addGuiEventListener("click",this.updatePositionAndList.bind(this)),this.addDestroyFunc(()=>{this.destroyBean(this.autocompleteList)}),this.addGuiEventListener("focusout",()=>this.onFocusOut())}onValueChanged(G){let D=VU(G);this.updateValue(D),this.updateAutocompleteList(D)}updateValue(G){this.updateLastPosition(),this.dispatchLocalEvent({type:"eventValueChanged",value:G}),this.validate(G)}updateAutocompleteList(G){let D=this.listGenerator?.(G,this.lastPosition)??{enabled:!1};if(!D.type||D.type!==this.autocompleteListParams?.type){if(this.isListOpen)this.closeList()}let z=this.isListOpen;if(this.autocompleteListParams=D,D?.enabled){if(!z)this.openList();let{searchString:B}=D;this.autocompleteList.setSearch(B??"")}else if(z)this.closeList()}onKeyDown(G){let D=G.key;switch(this.updateLastPosition(),D){case RG.ENTER:this.onEnterKeyDown(G);break;case RG.TAB:this.onTabKeyDown(G);break;case RG.DOWN:case RG.UP:this.onUpDownKeyDown(G,D);break;case RG.LEFT:case RG.RIGHT:case RG.PAGE_HOME:case RG.PAGE_END:setTimeout(()=>{this.updatePositionAndList()});break;case RG.ESCAPE:this.onEscapeKeyDown(G);break;case RG.SPACE:if(G.ctrlKey&&!this.isListOpen)G.preventDefault(),this.forceOpenList();break}}confirmSelection(){let G=this.autocompleteList?.getSelectedValue();if(G)this.closeList(),this.dispatchLocalEvent({type:"eventOptionSelected",value:this.getValue(),position:this.lastPosition,updateEntry:G,autocompleteType:this.autocompleteListParams.type})}onTabKeyDown(G){if(this.isListOpen)G.preventDefault(),G.stopPropagation(),this.confirmSelection()}onEnterKeyDown(G){if(G.preventDefault(),this.isListOpen)this.confirmSelection();else this.onCompleted()}onUpDownKeyDown(G,D){if(G.preventDefault(),!this.isListOpen)this.forceOpenList();else this.autocompleteList?.onNavigationKeyDown(G,D)}onEscapeKeyDown(G){if(this.isListOpen)G.preventDefault(),G.stopPropagation(),this.closeList(),this.setCaret(this.lastPosition,!0)}onFocusOut(){if(this.isListOpen)this.closeList()}updatePositionAndList(){this.updateLastPosition(),this.updateAutocompleteList(this.eAutocompleteInput.getValue()??null)}setCaret(G,D){if(D||LW(this.beans))this.eAutocompleteInput.getFocusableElement().focus();let z=this.eAutocompleteInput.getInputElement();if(z.setSelectionRange(G,G),G===z.value.length)z.scrollLeft=z.scrollWidth}forceOpenList(){this.onValueChanged(this.eAutocompleteInput.getValue())}updateLastPosition(){this.lastPosition=this.eAutocompleteInput.getInputElement().selectionStart??0}validate(G){if(!this.validator)return;let D=this.validationMessage=this.validator(G);this.eAutocompleteInput.getInputElement().setCustomValidity(D??""),this.valid=!D,this.dispatchLocalEvent({type:"eventValidChanged",isValid:this.valid,validationMessage:D})}openList(){this.isListOpen=!0,this.autocompleteList=this.createBean(new y6({autocompleteEntries:this.autocompleteListParams.entries,onConfirmed:()=>this.confirmSelection(),forceLastSelection:this.forceLastSelection}));let G=this.autocompleteList.getGui(),D={ePopup:G,type:"autocomplete",eventSource:this.getGui(),position:"under",alignSide:this.gos.get("enableRtl")?"right":"left",keepWithinBounds:!0},z=this.popupSvc.addPopup({eChild:G,anchorToElement:this.getGui(),positionCallback:()=>this.popupSvc.positionPopupByComponent(D),ariaLabel:this.listAriaLabel});this.hidePopup=z.hideFunc,this.autocompleteList.afterGuiAttached()}closeList(){this.isListOpen=!1,this.hidePopup(),this.destroyBean(this.autocompleteList),this.autocompleteList=null}onCompleted(){if(this.isListOpen)this.closeList();this.dispatchLocalEvent({type:"eventValueConfirmed",value:this.getValue(),isValid:this.isValid()})}getValue(){return VU(this.eAutocompleteInput.getValue())}setInputPlaceholder(G){return this.eAutocompleteInput.setInputPlaceholder(G),this}setInputAriaLabel(G){return this.eAutocompleteInput.setInputAriaLabel(G),this}setListAriaLabel(G){return this.listAriaLabel=G,this}setListGenerator(G){return this.listGenerator=G,this}setValidator(G){return this.validator=G,this}isValid(){return this.valid}setValue(G){let{value:D,position:z,silent:B,updateListOnlyIfOpen:Q,restoreFocus:J}=G;if(this.eAutocompleteInput.setValue(D,!0),this.setCaret(z??this.lastPosition,J),!B)this.updateValue(D);if(!Q||this.isListOpen)this.updateAutocompleteList(D)}setForceLastSelection(G){return this.forceLastSelection=G,this}setInputDisabled(G){return this.eAutocompleteInput.setDisabled(G),this}},AW={selector:"AG-AUTOCOMPLETE",component:MW},qQ={buttons:["apply"],suppressBuilderButton:!1},bU={apply:"advancedFilterApply",clear:"advancedFilterClear",cancel:"advancedFilterCancel",reset:"advancedFilterReset"},RW={tag:"div",cls:"ag-advanced-filter",role:"presentation",attrs:{tabindex:"-1"},children:[{tag:"ag-autocomplete",ref:"eAutocomplete"},{tag:"ag-filter-button",ref:"eButtons",cls:"ag-advanced-filter-buttons"},{tag:"button",ref:"eBuilderFilterButton",cls:"ag-button ag-advanced-filter-builder-button",children:[{tag:"span",ref:"eBuilderFilterButtonIcon",attrs:{"aria-hidden":"true"}},{tag:"span",ref:"eBuilderFilterButtonLabel",cls:"ag-advanced-filter-builder-button-label"}]}]},x6=class extends BW{constructor(){super(RW,[AW,zW]);this.eAutocomplete=fz,this.eButtons=fz,this.eBuilderFilterButton=fz,this.eBuilderFilterButtonIcon=fz,this.eBuilderFilterButtonLabel=fz,this.expressionParser=null,this.isApplyDisabled=!0,this.builderOpen=!1}wireBeans(G){this.advFilterExpSvc=G.advFilterExpSvc,this.advancedFilter=G.advancedFilter,this.filterManager=G.filterManager,this.registry=G.registry}postConstruct(){this.tooltipFeature=this.createOptionalManagedBean(this.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.getGui(),getTooltipShowDelayOverride:()=>1000,getLocation:()=>"advancedFilter"})),this.eAutocomplete.setListGenerator((z,B)=>this.generateAutocompleteListParams(B)).setValidator(()=>this.validateValue()).setForceLastSelection((z,B)=>this.forceLastSelection(z,B)).setInputAriaLabel(this.advFilterExpSvc.translate("ariaAdvancedFilterInput")).setListAriaLabel(this.advFilterExpSvc.translate("ariaLabelAdvancedFilterAutocomplete")),this.refresh(),this.addManagedListeners(this.eAutocomplete,{eventValueChanged:({value:z})=>this.onValueChanged(z),eventValueConfirmed:({isValid:z})=>this.onValueConfirmed(z),eventOptionSelected:({position:z,updateEntry:B,autocompleteType:Q})=>this.onOptionSelected(z,B,Q),eventValidChanged:({isValid:z,validationMessage:B})=>this.onValidChanged(z,B)});let{buttons:G,suppressBuilderButton:D}={...qQ,...this.gos.get("advancedFilterParams")};this.setupButtons(G),this.setupBuilderButton(D),this.beans.gos.addManagedPropertyListener("advancedFilterParams",(z)=>{let B={...qQ,...z.currentValue},Q={...qQ,...z.previousValue};if(B.buttons!==Q.buttons){let J=B.buttons.map((U)=>({type:U,label:this.advFilterExpSvc.translate(bU[U])}));this.eButtons.updateButtons(J)}if(B.suppressBuilderButton!==Q.suppressBuilderButton)CU(this.eBuilderFilterButton,!B.suppressBuilderButton)})}refresh(){let G=this.advancedFilter.getExpressionDisplayValue();this.eAutocomplete.setValue({value:G??"",position:G?.length,updateListOnlyIfOpen:!0})}setInputDisabled(G){this.eAutocomplete.setInputDisabled(G),this.eButtons.updateValidity(!G&&!this.isApplyDisabled&&!this.advancedFilter.isCurrentExpressionApplied())}setupButtons(G){let D=G.map((B)=>({type:B,label:this.advFilterExpSvc.translate(bU[B])})),z=(B)=>()=>{this.updateModel(B)};this.eButtons.addManagedListeners(this.eButtons,{apply:z("apply"),clear:z("clear"),reset:z("reset"),cancel:z("cancel")}),this.eButtons.updateButtons(D)}updateModel(G){switch(G){case"apply":this.onValueConfirmed(this.eAutocomplete.isValid());break;case"reset":this.advancedFilter.setModel(null),this.filterManager?.onFilterChanged({source:"advancedFilter"});break;case"cancel":this.advancedFilter.setModel(this.advancedFilter.getModel()),this.filterManager?.onFilterChanged({source:"advancedFilter"});break;case"clear":this.eAutocomplete.setValue({value:"",restoreFocus:!0});break}}setupBuilderButton(G){this.eBuilderFilterButtonIcon.appendChild(QW("advancedFilterBuilder",this.beans)),this.eBuilderFilterButtonLabel.textContent=this.advFilterExpSvc.translate("advancedFilterBuilder"),this.activateTabIndex([this.eBuilderFilterButton]),this.addManagedElementListeners(this.eBuilderFilterButton,{click:()=>this.openBuilder()}),this.addManagedListeners(this.advancedFilter.getCtrl(),{advancedFilterBuilderClosed:()=>this.closeBuilder()}),CU(this.eBuilderFilterButton,!G)}onValueChanged(G){G=JW(G),this.advancedFilter.setExpressionDisplayValue(G),this.expressionParser=this.advancedFilter.createExpressionParser(G);let D=this.expressionParser?.parseExpression();if(D&&D!==G)this.eAutocomplete.setValue({value:D,silent:!0,restoreFocus:!0})}onValueConfirmed(G){if(!G||this.isApplyDisabled)return;this.eButtons?.updateValidity(!1),this.advancedFilter.applyExpression(),this.filterManager?.onFilterChanged({source:"advancedFilter"})}onOptionSelected(G,D,z){let{updatedValue:B,updatedPosition:Q,hideAutocomplete:J}=this.updateExpression(G,D,z);this.eAutocomplete.setValue({value:B,position:Q,updateListOnlyIfOpen:J,restoreFocus:!0})}validateValue(){return this.expressionParser?.isValid()?null:this.expressionParser?.getValidationMessage()??null}onValidChanged(G,D){this.isApplyDisabled=!G||this.advancedFilter.isCurrentExpressionApplied(),this.eButtons.updateValidity(!this.isApplyDisabled),this.tooltipFeature?.setTooltipAndRefresh(D)}generateAutocompleteListParams(G){return this.expressionParser?this.expressionParser.getAutocompleteListParams(G):this.advFilterExpSvc.getDefaultAutocompleteListParams("")}updateExpression(G,D,z){return this.advFilterExpSvc.updateAutocompleteCache(D,z),this.expressionParser?.updateExpression(G,D,z)??this.advancedFilter.getDefaultExpression(D)}forceLastSelection({key:G,displayValue:D},z){return!!z.toLocaleLowerCase().match(`^${(D??G).toLocaleLowerCase()}\\s*$`)}openBuilder(){if(this.builderOpen)return;this.builderOpen=!0,RU(this.eBuilderFilterButton,!0),this.advancedFilter.getCtrl().toggleFilterBuilder({source:"ui",eventSource:this.eBuilderFilterButton})}closeBuilder(){if(!this.builderOpen)return;this.builderOpen=!1,RU(this.eBuilderFilterButton,!1),this.eBuilderFilterButton.focus()}},xW={tag:"div",cls:"ag-advanced-filter-header",role:"row"},cW=class extends CW{constructor(G){super(xW);this.enabled=G}wireBeans(G){this.colModel=G.colModel,this.focusSvc=G.focusSvc,this.ctrlsSvc=G.ctrlsSvc}postConstruct(){this.setupAdvancedFilter(this.enabled),this.addDestroyFunc(()=>this.destroyBean(this.eAdvancedFilter));let G=()=>{if(this.enabled)this.setEnabledHeight()};this.addManagedEventListeners({gridColumnsChanged:()=>this.onGridColumnsChanged(),columnHeaderHeightChanged:G,stylesChanged:G}),this.addManagedPropertyListener("headerHeight",G),this.addManagedPropertyListener("floatingFiltersHeight",G),this.addGuiEventListener("keydown",(D)=>this.onKeyDown(D)),this.addGuiEventListener("focusout",(D)=>{if(!this.getFocusableElement().contains(D.relatedTarget))this.focusSvc.clearAdvancedFilterColumn()})}getFocusableElement(){return this.eAdvancedFilter?.getGui()??this.getGui()}setEnabled(G){if(G===this.enabled)return;this.setupAdvancedFilter(G)}refresh(){this.eAdvancedFilter?.refresh()}getHeight(){return this.height}setInputDisabled(G){this.eAdvancedFilter?.setInputDisabled(G)}setupAdvancedFilter(G){let D=this.getGui();if(G){this.eAdvancedFilter=this.createBean(new x6);let z=this.eAdvancedFilter.getGui();this.eAdvancedFilter.addCss("ag-advanced-filter-header-cell"),this.setEnabledHeight(),this.setAriaRowIndex(),gW(z,"gridcell"),jW(z,1),this.setAriaColumnCount(z),D.appendChild(z)}else VW(D),this.destroyBean(this.eAdvancedFilter),this.height=0;yW(D,G),this.enabled=G}setEnabledHeight(){let G=this.getGui();this.height=uW(this.beans);let D=`${this.height}px`;G.style.height=D,G.style.minHeight=D}setAriaColumnCount(G){PW(G,this.colModel.getCols().length)}setAriaRowIndex(){TW(this.getGui(),this.ctrlsSvc.getHeaderRowContainerCtrl()?.getRowCount()??0)}onGridColumnsChanged(){if(!this.eAdvancedFilter)return;this.setAriaColumnCount(this.eAdvancedFilter.getGui()),this.setAriaRowIndex()}onKeyDown(G){switch(G.key){case Nz.ENTER:{if(this.hasFocus()){if(vW(this.getFocusableElement()))G.preventDefault()}break}case Nz.ESCAPE:if(!this.hasFocus())this.getFocusableElement().focus();break;case Nz.UP:this.navigateUpDown(!0,G);break;case Nz.DOWN:this.navigateUpDown(!1,G);break;case Nz.TAB:if(this.hasFocus())this.navigateLeftRight(G);else{let D=bW(this.beans,this.getFocusableElement(),null,G.shiftKey);if(D)G.preventDefault(),D.focus();else this.navigateLeftRight(G)}break}}navigateUpDown(G,D){if(this.hasFocus()){if(this.focusSvc.focusNextFromAdvancedFilter(G))D.preventDefault()}}navigateLeftRight(G){if(G.shiftKey?this.focusSvc.focusLastHeader():this.focusSvc.focusNextFromAdvancedFilter(!1,!0))G.preventDefault()}hasFocus(){return OW(this.beans)===this.getFocusableElement()}},c6=class extends C6{},tW=class extends pW{constructor(G,D){super();this.comp=G,this.virtualList=D}postConstruct(){this.createManagedBean(new c6(this.comp,this.virtualList,{dragSourceType:mW.AdvancedFilterBuilder,addListeners:(G,D,z)=>{G.addManagedListeners(this,{advancedFilterBuilderDragStarted:D,advancedFilterBuilderDragEnded:z})},getCurrentDragValue:(G)=>this.getCurrentDragValue(G),isMoveBlocked:()=>!1,getNumRows:(G)=>G.getNumItems(),moveItem:(G,D)=>this.moveItem(G,D)}))}getCurrentDragValue(G){return G.item}moveItem(G,D){this.comp.moveItem(G,D)}},_q=100;function kq(G){let{host:D,source:z,useAsyncSearch:B,onMisconfiguredSearchSource:Q,onFirstValuesPageLoaded:J}=G,U=new wq({host:D,source:z,onMisconfiguredSearchSource:Q,onFirstValuesPageLoaded:J??(()=>{})}),Z=typeof z.loadValuesPage==="function";return{controller:U,hasPagedSource:Z,onSearch:B?(S)=>U.onSearch(S):void 0,onLoadMoreRows:Z?(S)=>U.loadValuesPage(S??"down"):void 0}}var wq=class{constructor(G){this.ctrlParams=G,this.currentSearchRequest=0,this.currentValuesPageRequest=0,this.valuesPageLoading=!1,this.valuesPageHasMoreNext=!1,this.valuesPageHasMorePrev=!1,this.valuesPageLoadedValues=[],this.valuesPageSearch="",this.valuesPageWindowStartRow=0,this.destroyed=!1}destroy(){this.destroyed=!0,this.currentSearchRequest++,this.currentValuesPageRequest++}onSearch(G){if(this.destroyed)return;if(this.isValuesPaged()){this.resetValuesPage(G);return}let D=++this.currentSearchRequest,{host:z,source:B,onMisconfiguredSearchSource:Q}=this.ctrlParams;if(z.setValueList({refresh:!0,valueList:void 0}),!G)return;if(typeof B.searchValues!=="function"){Q?.();return}let J;try{J=B.searchValues(G)}catch(U){if(kQ("Rich Select",U),D===this.currentSearchRequest)z.setValueList({refresh:!0,valueList:[]});return}if(Array.isArray(J)){Q?.(),z.setValueList({refresh:!0,valueList:J});return}z.setValueList({valueList:J.then((U)=>{if(D===this.currentSearchRequest)return U}).catch((U)=>{if(kQ("Rich Select",U),D===this.currentSearchRequest)return[]}),refresh:!0})}resetValuesPage(G){if(this.destroyed)return;this.valuesPageSearch=G,this.valuesPageLoadedValues=[],this.valuesPageWindowStartRow=this.resolveValuesPageStartRow(G),this.valuesPageNextCursor=void 0,this.valuesPageHasMoreNext=!0,this.valuesPageHasMorePrev=this.valuesPageWindowStartRow>0,this.valuesPageLoading=!1,this.currentValuesPageRequest++,this.ctrlParams.host.setValueList({valueList:void 0,refresh:!0,isInitial:!0}),this.loadValuesPage("down")}loadValuesPage(G){if(this.destroyed)return;let D=this.ctrlParams.source.loadValuesPage;if(typeof D!=="function"||this.valuesPageLoading)return;if(G==="up"&&!this.valuesPageHasMorePrev||G==="down"&&!this.valuesPageHasMoreNext)return;let z=Math.max(this.ctrlParams.source.valuesPageSize??_q,1),B=G==="up"?Math.max(this.valuesPageWindowStartRow-z,0):this.valuesPageWindowStartRow+this.valuesPageLoadedValues.length,Q=G==="up"?this.valuesPageWindowStartRow:B+z;if(B>=Q){if(G==="up")this.valuesPageHasMorePrev=!1;else this.valuesPageHasMoreNext=!1;return}let J=this.currentValuesPageRequest,U={search:this.valuesPageSearch,startRow:B,endRow:Q,cursor:G==="down"?this.valuesPageNextCursor:void 0};if(this.valuesPageLoading=!0,this.valuesPageLoadedValues.length===0)this.ctrlParams.host.setIsLoading();let Z;try{Z=D(U)}catch(S){this.handleValuesPageError(S,J);return}Promise.resolve(Z).then((S)=>this.applyValuesPageResult(S,z,J,G,B,Q)).catch((S)=>this.handleValuesPageError(S,J))}applyValuesPageResult(G,D,z,B,Q,J){if(this.destroyed||z!==this.currentValuesPageRequest)return;this.valuesPageLoading=!1;let U=this.valuesPageLoadedValues.length===0,Z=G?.values??[];if(B==="up"){if(Z.length)this.valuesPageLoadedValues=[...Z,...this.valuesPageLoadedValues],this.valuesPageWindowStartRow=Q;let S=J-Q;this.valuesPageHasMorePrev=Q>0&&Z.length>=S}else{if(Z.length)this.valuesPageLoadedValues=[...this.valuesPageLoadedValues,...Z];this.valuesPageNextCursor=G?.cursor;let S=this.valuesPageLoadedValues.length;if(typeof G?.lastRow==="number")this.valuesPageHasMoreNext=this.valuesPageWindowStartRow+S=D}if(this.ctrlParams.host.setValueList({valueList:this.valuesPageLoadedValues,refresh:!0,isInitial:!0,scrollToCurrentValue:U,prependedRowCount:B==="up"?Z.length:void 0}),U)this.ctrlParams.onFirstValuesPageLoaded()}handleValuesPageError(G,D){if(kQ("Rich Select",G),this.destroyed||D!==this.currentValuesPageRequest)return;this.valuesPageLoading=!1,this.valuesPageHasMoreNext=!1,this.valuesPageHasMorePrev=!1,this.ctrlParams.host.setValueList({valueList:this.valuesPageLoadedValues,refresh:!0,isInitial:!0})}resolveValuesPageStartRow(G){if(G)return 0;let D=this.ctrlParams.source.valuesPageInitialStartRow?.(G);return Math.max(Math.floor(D??0),0)}isValuesPaged(){return typeof this.ctrlParams.source.loadValuesPage==="function"}},Cq={tag:"div",cls:"ag-pill",role:"option",children:[{tag:"span",ref:"eText",cls:"ag-pill-text"},{tag:"span",ref:"eButton",cls:"ag-button ag-pill-button",role:"presentation"}]},Vq=class extends Rq{constructor(G){super(Cq);this.config=G,this.eText=gU,this.eButton=gU}postConstruct(){let{config:G,eButton:D}=this,{onKeyDown:z,onButtonClick:B}=G;if(this.getGui().setAttribute("tabindex",String(this.gos.get("tabIndex"))),this.addGuiEventListener("focus",()=>{this.eButton.focus()}),z)this.addGuiEventListener("keydown",z);if(B)this.addManagedElementListeners(D,{click:B})}toggleCloseButtonClass(G,D){this.eButton.classList.toggle(G,D)}setText(G){this.eText.textContent=G}getText(){return this.eText.textContent}},bq={tag:"div",cls:"ag-pill-container"},vq=class extends Kq{constructor(){super(bq);this.pills=[]}init(G){this.params=G,this.getKey=G.valueFormatter??((D)=>String(D)),this.refresh()}refresh(){this.clearPills();let{params:G,onPillKeyDown:D,getKey:z}=this,B=G.getValue();if(!Array.isArray(B)){if(B==null)return;B=[B]}let Q=G.valueFormatter??((U)=>String(U)),J=B.length;Mq(this.getGui(),J===0?"presentation":"listbox");for(let U=0;Uthis.onPillButtonClick(S),onKeyDown:D.bind(this)})),X=S.getGui();if(Iq(X,U+1),Aq(X,J),G.onPillMouseDown)S.addGuiEventListener("mousedown",G.onPillMouseDown);if(G.announceItemFocus)S.addGuiEventListener("focus",G.announceItemFocus);S.setText(Q(Z)??""),S.toggleCloseButtonClass("ag-icon-cancel",!0),this.appendChild(X),this.pills.push({key:z(Z)??U.toString(),pill:S})}}onNavigationKeyDown(G){let{key:D}=G,z=this.gos.get("enableRtl"),B=!z&&D===oG.LEFT||z&&D===oG.RIGHT,Q=!z&&D===oG.RIGHT||z&&D===oG.LEFT;if(!this.pills.length||!B&&!Q)return;G.preventDefault();let{beans:J,params:U}=this,Z=PU(J),S=this.getGui(),X=Nq(S);if(S.contains(Z)){let Y=X.find((q)=>q.contains(Z));if(Y&&Y!==Z)Y.focus();let W=Fq(J,S,!1,B);if(W)W.focus();else if(Q)U.focusAfterForwardBoundary?.()}else if(X.length>0)X[Q?0:X.length-1].focus()}clearPills(){let G=this.getGui();if(G.contains(PU(this.beans))&&this.params.eWrapper)this.params.eWrapper.focus();fq(G),this.destroyBeans(this.pills.map(({pill:D})=>D)),this.pills=[]}onPillButtonClick(G){this.deletePill(G)}onPillKeyDown(G){let D=G.key;if(D===oG.LEFT||D===oG.RIGHT){if(G.stopPropagation(),this.params.onHorizontalArrowKeyDown)this.params.onHorizontalArrowKeyDown(G);else this.onNavigationKeyDown(G);return}if(D!==oG.DELETE&&D!==oG.BACKSPACE)return;G.preventDefault();let z=Eq(this.beans),B=this.pills.findIndex(({pill:J})=>J.getGui().contains(z.activeElement));if(B===-1)return;let Q=this.pills[B];if(Q?.pill)this.deletePill(Q.pill,B)}deletePill(G,D){let{getKey:z,pills:B,params:Q}=this,J=(B[D??-1]??B.find(({pill:Z})=>Z===G))?.key,U=(Q.getValue()||[]).filter((Z)=>z(Z)!==J);if(Q.setValue(U),!U.length)if(Q.focusAfterDelete)Q.focusAfterDelete();else Q.eWrapper?.focus();else if(D!=null){let{pill:Z}=B[Math.min(D,B.length-1)];if(Z)Z.getFocusableElement().focus()}}destroy(){this.clearPills(),super.destroy()}},Oq=".ag-rich-select{cursor:default;height:100%}.ag-rich-select-value{align-items:center;background-color:var(--ag-picker-button-background-color);display:flex;height:100%;padding:var(--ag-spacing);:where(.ag-picker-field-display){overflow:hidden;text-overflow:ellipsis;&:where(.ag-display-as-placeholder){opacity:.5}}}.ag-virtual-list-viewport.ag-rich-select-list{background-color:var(--ag-picker-list-background-color);border:var(--ag-picker-list-border);border-radius:var(--ag-input-border-radius);box-shadow:var(--ag-dropdown-shadow);height:auto;position:relative;width:100%;:where(.ag-rich-select-loading){display:flex;padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);:where(.ag-loading-text){overflow:hidden;text-overflow:ellipsis}}}.ag-rich-select-row{align-items:center;display:flex;flex:1 1 auto;height:100%;overflow:hidden;padding:0 var(--ag-spacing);white-space:nowrap}.ag-rich-select-row-selected{background-color:var(--ag-selected-row-background-color)}.ag-rich-select-row-highlighted,.ag-rich-select-row:hover{background-image:linear-gradient(var(--ag-row-hover-color),var(--ag-row-hover-color))}.ag-rich-select-row-text-highlight{font-weight:700}.ag-rich-select-field-input{flex:1 1 auto;:where(.ag-input-field-input){border:none!important;box-shadow:none!important;padding:0!important;text-overflow:ellipsis;&::-moz-placeholder{opacity:.8}&::placeholder{opacity:.8}}}:where(.ag-ltr) .ag-rich-select-field-input{left:var(--ag-spacing)}:where(.ag-rtl) .ag-rich-select-field-input{right:var(--ag-spacing)}.ag-rich-select-typing-multi{:where(.ag-picker-field-display){flex:0 1 auto;max-width:100%;min-width:0}:where(.ag-rich-select-pill-display){align-items:center;display:flex;flex:0 1 auto;max-width:100%;min-width:0;overflow:hidden;:where(.ag-pill-container){flex:0 1 auto;max-width:100%;min-width:0;overflow:hidden}}:where(.ag-rich-select-field-input){flex:0 0 auto;max-width:100%;min-width:0;:where(.ag-input-wrapper){flex:0 0 auto;max-width:100%}:where(.ag-input-field-input){max-width:100%;min-width:1ch;width:auto}}}:where(.ag-ltr) .ag-rich-select-typing-multi{:where(.ag-rich-select-field-input){margin-left:.25rem}:where(.ag-rich-select-deselect-button){margin-left:auto}:where(.ag-rich-select-deselect-button.ag-hidden+.ag-picker-field-icon){margin-left:auto}}:where(.ag-rtl) .ag-rich-select-typing-multi{:where(.ag-rich-select-field-input){margin-right:.25rem}:where(.ag-rich-select-deselect-button){margin-right:auto}:where(.ag-rich-select-deselect-button.ag-hidden+.ag-picker-field-icon){margin-right:auto}}:where(.ag-popup-editor) .ag-rich-select-value{height:var(--ag-row-height);min-width:200px}.ag-rich-select-virtual-list-item{cursor:default;height:var(--ag-list-item-height)}.ag-pill-container{display:flex;flex-wrap:nowrap;gap:.25rem;min-width:0}.ag-pill{align-items:center;background:var(--ag-select-cell-background-color);border:var(--ag-select-cell-border);border-radius:var(--ag-border-radius);display:flex;padding:0 .25rem;white-space:nowrap}.ag-pill-button{border:none;padding:0}:where(.ag-ltr) .ag-pill-button{margin-left:var(--ag-spacing)}:where(.ag-rtl) .ag-pill-button{margin-right:var(--ag-spacing)}.ag-pill-button:hover{color:var(--ag-accent-color);cursor:pointer}",pq={tag:"div",cls:"ag-rich-select-row",role:"presentation"},mq=class extends xq{constructor(G){super(pq);this.params=G,this.valueFormatter=HJ(G.valueFormatter)}wireBeans(G){this.userCompFactory=G.userCompFactory,this.registry=G.registry}postConstruct(){this.tooltipFeature=this.createOptionalManagedBean(this.registry.createDynamicBean("highlightTooltipFeature",!1,{getGui:()=>this.getGui(),shouldDisplayTooltip:()=>this.shouldDisplayTooltip?.()??!0},this))}setState(G){let D=this.valueFormatter(G);if(!this.populateWithRenderer(G,D))this.populateWithoutRenderer(G,D);this.value=G}highlightString(G){let{parsedValue:D,params:z}=this;if(z.cellRenderer||!Fz(D))return;let B=Fz(G);if(B){let Q=D?.toLocaleLowerCase().indexOf(G.toLocaleLowerCase());if(Q>=0){let J=Q+G.length,U=this.getGui().querySelector("span");if(U)hq(U),U.append(D.slice(0,Q),yU({tag:"span",cls:"ag-rich-select-row-text-highlight",children:D.slice(Q,J)}),D.slice(J))}else B=!1}if(!B)this.renderValueWithoutRenderer(D)}updateSelected(G){let D=this.getGui();dq(D.parentElement,G),this.toggleCss("ag-rich-select-row-selected",G)}getValue(){return this.value}toggleHighlighted(G){this.toggleCss("ag-rich-select-row-highlighted",G),this.dispatchLocalEvent({type:"itemHighlighted",highlighted:G})}populateWithoutRenderer(G,D){let z=this.getGui(),B=yU({tag:"span"});B.style.overflow="hidden",B.style.textOverflow="ellipsis";let Q=lq(Fz(D)?D:G);this.parsedValue=Fz(Q)?Q:null,z.appendChild(B),this.renderValueWithoutRenderer(Q),this.shouldDisplayTooltip=nq(()=>B),this.tooltipFeature?.setTooltipAndRefresh(this.parsedValue)}renderValueWithoutRenderer(G){let D=this.getGui().querySelector("span");if(!D)return;D.textContent=Fz(G)?G:" "}populateWithRenderer(G,D){let z,B,{cellRenderer:Q,cellRendererParams:J}=this.params;if(Q){let U=this.getParentComponent()?.getParentComponent();B=iq(this.userCompFactory,this.params,cq(this.gos,{value:G,valueFormatted:D,cellRendererParams:J,getValue:()=>U?.getValue(),setValue:(Z)=>{U?.setValue(Z,!0)},setTooltip:(Z,S)=>{this.gos.assertModuleRegistered("Tooltip",3),this.shouldDisplayTooltip=S,this.tooltipFeature?.setTooltipAndRefresh(Z)}}))}if(B)z=B.newAgStackInstance();if(z)h6(z,this.getGui());if(z)return z.then((U)=>{this.addDestroyFunc(()=>{this.destroyBean(U)})}),!0;return!1}},xU="ag-rich-select-list",cU="ag-rich-select-row",A0=0,tq=1,LB=2,l1=3,sq=class extends Lz{constructor(G,D,z){super({cssIdentifier:"rich-select"});this.params=G,this.richSelectWrapper=D,this.getSearchString=z,this.lastRowHovered=-1,this.selectedItems=new Set,this.loadingState=l1,this.loadMoreRowsThreshold=10,this.valueFormatter=HJ(G.valueFormatter),this.setComponentCreator(this.createRowComponent.bind(this)),this.setComponentUpdater(()=>{})}postConstruct(){super.postConstruct();let G=this.getLocaleTextFunc();this.loadingLabel=G("loadingOoo","Loading..."),this.noMatchesLabel=G("noMatches","No matches to show"),this.eLoadingIcon=Pq("richSelectLoading",this.beans,null),this.eStateCompLabel=TU({tag:"span",cls:"ag-loading-text",children:this.loadingLabel}),this.eStateComp=TU({tag:"div",cls:"ag-rich-select-loading",children:[{tag:"span",cls:"ag-loading-icon",children:[this.eLoadingIcon?()=>this.eLoadingIcon:void 0]},{tag:"span",cls:"ag-loading-text",children:[()=>this.eStateCompLabel]}]}),this.appendChild(this.eStateComp);let{cellRowHeight:D,pickerAriaLabelKey:z,pickerAriaLabelValue:B}=this.params;if(D)this.setRowHeight(D);let Q=this.getGui(),J=this.getAriaElement();this.addManagedListeners(Q,{mousemove:this.onMouseMove.bind(this),mouseout:this.onMouseOut.bind(this),mousedown:this.onMouseDown.bind(this),click:this.onClick.bind(this),scroll:this.onGuiScroll.bind(this)}),Q.classList.add(xU);let U=`${xU}-${this.getCompId()}`;J.setAttribute("id",U);let Z=G(z,B);yq(J,Z),Tq(this.richSelectWrapper,J)}setIsLoading(){this.setLoadingState(A0)}setLoadingState(G){let D=this.loadingState!==G;if(this.loadingState=G,this.toggleStateComp(),this.toggleVisibility(),D){let z=this.getStateAnnouncementText(G);if(z)this.stateAnnouncementCallback?.(z)}}toggleStateComp(){let{eStateComp:G,eStateCompLabel:D,eLoadingIcon:z,loadingState:B,loadingLabel:Q,noMatchesLabel:J,params:U}=this;if(!G)return;if(B===A0){if(D.textContent=Q,z)kD(z,!0);kD(G,!0);return}if(B===LB&&U.allowNoResultsCopy){if(D.textContent=J,z)kD(z,!1);kD(G,!0);return}kD(G,!1)}shouldBeVisible(){if(this.loadingState===LB)return!!this.params.allowNoResultsCopy;return this.loadingState!==l1}toggleVisibility(G){let D=this.getGui();if(G===void 0)kD(D,this.shouldBeVisible());else kD(D,G);this.scheduleMaybeRequestMoreRows()}setLoadMoreRowsCallback(G,D=10){this.loadMoreRowsCallback=G,this.loadMoreRowsThreshold=Math.max(D,1),this.maybeRequestMoreRows()}setStateAnnouncementCallback(G){this.stateAnnouncementCallback=G}navigateToPage(G){let D=super.navigateToPage(G,this.lastRowHovered);if(D!=null)wQ(this.beans,()=>{if(!this.isAlive())return null;this.highlightIndex(D)});return D}drawVirtualRows(G){if(super.drawVirtualRows(G),this.refreshSelectedItems(),this.lastRowHovered!==-1)this.updateRenderedHighlightState(this.lastRowHovered)}highlightFilterMatch(G){this.forEachRenderedRow((D)=>{D.highlightString(G)})}onNavigationKeyDown(G,D){wQ(this.beans,()=>{if(!this.currentList||!this.isAlive())return;let z=this.currentList.length,B=this.lastRowHovered,Q=G===uq.DOWN?1:-1,J=Math.min(Math.max(B===-1?0:B+Q,0),z-1);this.highlightIndex(J),D()})}selectValue(G){if(!this.currentList||G==null)return!1;let D=this.getIndicesForValues(G),z=D.length>0;if(z)this.refresh(),this.ensureIndexVisible(D[0]),this.refresh(!0);if(this.selectListItems(Array.isArray(G)?G:[G]),z)this.highlightIndex(D[0],!0);return z}selectListItems(G,D=!1){if(!D)this.selectedItems.clear();for(let z=0;zG.length,getRow:(z)=>G[z],areRowsEqual:(z,B)=>z===B})}offsetHoveredIndexOnPrependedRows(G){if(G<=0||this.lastRowHovered<0)return;this.lastRowHovered+=G}restoreScrollOnPrependedRows(G,D){if(D<=0)return;let z=this.getGui(),B=this.getRowHeight(),Q=G+D*B;this.awaitStable(()=>{if(!this.isAlive())return;z.scrollTop=Q})}getSelectedItems(){return this.selectedItems}getLastItemHovered(){return this.currentList?.[this.lastRowHovered]}highlightIndex(G,D){if(!this.currentList)return;if(G<0||G>=this.currentList.length)this.lastRowHovered=-1,this.setActiveOption();else if(this.lastRowHovered=G,this.ensureIndexVisible(G,!D)&&!D)this.refresh(!0);this.updateRenderedHighlightState(G)}updateRenderedHighlightState(G){let D;this.forEachRenderedRow((z,B)=>{let Q=G===B;if(z.toggleHighlighted(Q),Q)D=`${cU}-${z.getCompId()}`}),this.setActiveOption(D)}setActiveOption(G){gq(this.richSelectWrapper,G??null),jq(this.richSelectWrapper,"data-active-option",G)}getIndicesForValues(G){let{currentList:D}=this;if(!D||D.length===0||G===void 0)return[];let z=Array.isArray(G)?G:[G];if(z.length===0)return[];let B=[],Q;for(let J of z){let U=D.indexOf(J);if(U===-1&&J!=null){Q??(Q=D.map((S)=>this.valueFormatter(S)));let Z=this.getComparableFormattedValue(J);U=Q.indexOf(Z)}if(U>=0)B.push(U)}return B}toggleListItemSelection(G){let D=this.findItemInSelected(G);if(D!==void 0)this.selectedItems.delete(D);else this.selectedItems.add(G);this.refreshSelectedItems(),this.dispatchValueSelected()}refreshSelectedItems(){this.forEachRenderedRow((G)=>{let D=this.findItemInSelected(G.getValue())!==void 0;G.updateSelected(D)})}findItemInSelected(G){if(typeof G==="object"){if(this.selectedItems.has(G))return G;let D=this.valueFormatter(G);for(let z of this.selectedItems)if(this.valueFormatter(z)===D)return z}else return this.selectedItems.has(G)?G:void 0}getComparableFormattedValue(G){return G!=null&&typeof G==="object"?this.valueFormatter(G):String(G??"")}createRowComponent(G,D){let z=new mq(this.params);D.setAttribute("id",`${cU}-${z.getCompId()}`),z.setParentComponent(this),this.createBean(z),z.setState(G);let{highlightMatch:B,searchType:Q="fuzzy"}=this.params;if(B&&Q!=="fuzzy")z.highlightString(this.getSearchString());return z}getRowForMouseEvent(G){if(!this.model)return-1;let z=this.getGui().getBoundingClientRect(),B=this.getScrollTop(),Q=G.clientY-z.top+B;return Math.min(Math.max(Math.floor(Q/this.getRowHeight()),0),this.model.getRowCount()-1)}onMouseMove(G){let D=this.getRowForMouseEvent(G);if(D!==-1&&D!=this.lastRowHovered)this.lastRowHovered=D,this.highlightIndex(D,!0)}onGuiScroll(){this.maybeRequestMoreRows(!0)}scheduleMaybeRequestMoreRows(){if(this.beans){wQ(this.beans,()=>this.maybeRequestMoreRows(!1));return}this.maybeRequestMoreRows(!1)}maybeRequestMoreRows(G=!1){let D=this.loadMoreRowsCallback,z=this.currentList;if(!D||!z||this.loadingState===A0)return;let B=this.getGui();if(B.clientHeight<=0)return;let J=(B.scrollHeight-(B.scrollTop+B.clientHeight))/this.getRowHeight(),U=B.scrollTop/this.getRowHeight(),Z=B.scrollHeight>B.clientHeight;if(U<=this.loadMoreRowsThreshold&&(G||!Z))D("up");if(J<=this.loadMoreRowsThreshold)D("down")}getStateAnnouncementText(G){if(G===A0)return this.loadingLabel;if(G===LB&&this.params.allowNoResultsCopy)return this.noMatchesLabel;return}onMouseDown(G){G.preventDefault()}onMouseOut(G){if(!this.getGui().contains(G.relatedTarget))this.highlightIndex(-1)}onClick(G){let{multiSelect:D}=this.params;if(!this.currentList?.length)return;let z=this.getRowForMouseEvent(G),B=this.currentList[z];if(D)this.toggleListItemSelection(B);else this.selectListItems([B]),this.dispatchValueSelected()}dispatchValueSelected(){this.dispatchLocalEvent({type:"richSelectListRowSelected",fromEnterKey:!1,value:this.selectedItems})}destroy(){super.destroy(),this.eStateComp=void 0}};function oq(G){if(!G)return l1;if(G.length)return tq;return LB}var hU=300,rq={tag:"div",cls:"ag-picker-field",role:"presentation",children:[{tag:"div",ref:"eLabel"},{tag:"div",ref:"eWrapper",cls:"ag-wrapper ag-picker-field-wrapper ag-rich-select-value ag-picker-collapsed",children:[{tag:"span",ref:"eDisplayField",cls:"ag-picker-field-display"},{tag:"ag-input-text-field",ref:"eInput",cls:"ag-rich-select-field-input"},{tag:"span",ref:"eDeselect",cls:"ag-rich-select-deselect-button ag-picker-field-icon",role:"presentation"},{tag:"span",ref:"eIcon",cls:"ag-picker-field-icon",attrs:{"aria-hidden":"true"}}]}]},gB=class extends Qq{constructor(G){let D=HJ(G?.valueFormatter),z=G?.agComponents?.includes(vU)?G.agComponents:[vU,...G?.agComponents??[]];super({...G,pickerAriaLabelKey:G?.pickerAriaLabelKey??"ariaLabelRichSelectField",pickerAriaLabelValue:G?.pickerAriaLabelValue??"Rich Select Field",pickerType:G?.pickerType??"ag-list",className:G?.className??"ag-rich-select",pickerIcon:G?.pickerIcon??"richSelectOpen",ariaRole:G?.ariaRole??"combobox",template:G?.template??rq,agComponents:z,modalPicker:G?.modalPicker??!1,valueFormatter:D,maxPickerHeight:G?.maxPickerHeight??"calc(var(--ag-row-height) * 6.5)"});this.searchString="",this.loadMoreRowsThreshold=10,this.hasPagedAsyncSource=!1,this.searchStringCreator=null,this.eInput=OU,this.eDeselect=OU,this.skipWrapperAnnouncement=!1,this.onPillHorizontalArrowKeyDown=(S)=>{this.handleHorizontalNavigationKey(S)},this.valueFormatter=D;let{value:B,valueList:Q,searchStringCreator:J,onSearch:U}=G??{};if(B!==void 0)this.value=B;if(J)this.searchStringCreator=J;if(Q!=null)this.setValueList({valueList:Q,isInitial:!0});let{searchDebounceDelay:Z=hU}=this.config;if(U)this.onSearchCallbackDebounced=_Q(this,U,Z);this.registerCSS(Oq)}wireBeans(G){this.userCompFactory=G.userCompFactory,this.ariaAnnounce=G.ariaAnnounce,this.registry=G.registry}postConstruct(){this.tooltipFeature=this.createOptionalManagedBean(this.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.getGui(),shouldDisplayTooltip:()=>this.shouldDisplayTooltip?.()??!0})),super.postConstruct(),this.createListComponent(),this.eDeselect.appendChild(Zq("richSelectRemove",this.beans));let{allowTyping:G,placeholder:D,multiSelect:z,suppressDeselectAll:B,suppressMultiSelectPillRenderer:Q}=this.config;if(this.eDeselect.classList.add("ag-hidden"),G){if(this.eInput.setAutoComplete(!1).setInputPlaceholder(D),!z)this.eDisplayField.classList.add("ag-hidden");else if(this.eWrapper.classList.add("ag-rich-select-typing-multi"),!Q)this.eDisplayField.classList.add("ag-rich-select-pill-display")}else this.eInput.setDisplayed(!1);this.setupAriaProperties();let{searchDebounceDelay:J=300}=this.config;if(this.clearSearchString=_Q(this,this.clearSearchString.bind(this),J),this.renderSelectedValue(),G)this.eInput.onValueChange((U)=>{this.openPickerOnTypingIfNeeded(U),this.updateTypingMultiSelectPlaceholder(U),this.searchTextFromString(U)});if(this.addManagedElementListeners(this.eWrapper,{focus:this.onWrapperFocus.bind(this)}),this.addManagedElementListeners(this.eWrapper,{focusout:this.onWrapperFocusOut.bind(this)}),!B)this.addManagedElementListeners(this.eDeselect,{mousedown:this.onDeselectAllMouseDown.bind(this),click:this.onDeselectAllClick.bind(this)})}setupAriaProperties(){let{eWrapper:G,gos:D}=this;G.tabIndex=D.get("tabIndex");let z=this.getLocaleTextFunc();this.ariaDeleteSelection=z("ariaLabelRichSelectDeleteSelection","Press DELETE to deselect item"),this.ariaDeselectAllItems=z("ariaLabelRichSelectDeselectAllItems","Press DELETE to deselect all items"),this.ariaToggleSelection=z("ariaLabelRichSelectToggleSelection","Press SPACE to toggle selection")}createListComponent(){this.listComponent=this.createBean(new sq(this.config,this.getFocusableElement(),()=>this.searchString)),this.listComponent.setLoadMoreRowsCallback(this.loadMoreRowsCallback,this.loadMoreRowsThreshold),this.listComponent.setStateAnnouncementCallback((G)=>this.announceAriaValue(G)),this.listComponent.setParentComponent(this),this.addManagedListeners(this.listComponent,{richSelectListRowSelected:(G)=>{this.onListValueSelected(G.value,G.fromEnterKey)}})}renderSelectedValue(G){let{value:D,eDisplayField:z,config:B,gos:Q}=this,{allowTyping:J,cellRenderer:U,cellRendererParams:Z,initialInputValue:S,multiSelect:X,suppressDeselectAll:Y,suppressMultiSelectPillRenderer:W,onSearch:q}=B,H=this.valueFormatter(D),_=!!(J&&X);if(J){let K=_?S??this.eInput.getValue()??"":S??(D===""?"":H);if(this.eInput.setValue(K,!!G&&!!q),!_)return;this.updateTypingMultiSelectPlaceholder(K)}if(X&&!Y){let K=D==null||Array.isArray(D)&&D.length===0;this.eDeselect.classList.toggle("ag-hidden",K)}let k;if(X&&!W){this.createOrUpdatePillContainer(z);return}if(U&&!J)k=Sq(this.userCompFactory,B,Jq(this.gos,{value:D,valueFormatted:H,cellRendererParams:Z,getValue:()=>this.getValue(),setValue:(K)=>{this.setValue(K,!0)},setTooltip:(K,f)=>{Q.assertModuleRegistered("Tooltip",3),this.shouldDisplayTooltip=f,this.tooltipFeature?.setTooltipAndRefresh(K)}}));let w;if(k)w=k.newAgStackInstance();if(w)HQ(z),h6(w,z),w.then((K)=>{this.addDestroyFunc(()=>this.destroyBean(K))});else{if(D!=null)z.innerText=H,z.classList.remove("ag-display-as-placeholder");else{let{placeholder:K}=B;if($q(K))z.textContent=K,z.classList.add("ag-display-as-placeholder");else HQ(z)}this.shouldDisplayTooltip=Xq(()=>this.eDisplayField),this.tooltipFeature?.setTooltipAndRefresh(H??null)}}createPickerComponent(){let{values:G}=this;if(G)this.setValueList({valueList:G});return this.listComponent}setSearchStringCreator(G){this.searchStringCreator=G}setAsyncValuesSource(G){let{source:D,thresholdRows:z,useAsyncSearch:B,onMisconfiguredSearchSource:Q,onFirstValuesPageLoaded:J}=G;this.asyncRequests?.destroy();let U=kq({host:{setValueList:(Z)=>this.setValueList(Z),setIsLoading:()=>this.setIsLoading()},source:D,useAsyncSearch:B,onMisconfiguredSearchSource:Q,onFirstValuesPageLoaded:J});if(this.asyncRequests=U.controller,this.hasPagedAsyncSource=U.hasPagedSource,U.onSearch){let{searchDebounceDelay:Z=hU}=this.config;this.onSearchCallbackDebounced=_Q(this,U.onSearch,Z)}else if(!this.config.onSearch)this.onSearchCallbackDebounced=void 0;this.setLoadMoreRowsCallback(U.onLoadMoreRows,z??this.loadMoreRowsThreshold)}resetAsyncValues(G=""){if(!this.hasPagedAsyncSource)return;this.asyncRequests?.resetValuesPage(G)}setLoadMoreRowsCallback(G,D=10){this.loadMoreRowsCallback=G,this.loadMoreRowsThreshold=Math.max(D,1),this.listComponent?.setLoadMoreRowsCallback(this.loadMoreRowsCallback,this.loadMoreRowsThreshold)}setIsLoading(){this.listComponent?.setIsLoading()}setValueListInternal(G){let{listComponent:D,isPickerDisplayed:z,value:B}=this,{valueList:Q,refresh:J,isInitial:U,scrollToCurrentValue:Z=!0,prependedRowCount:S=0}=G;if(U)this.setValues(Q);if(!D)return;let X=S>0?D.getScrollTop():void 0;if(S>0)D.offsetHoveredIndexOnPrependedRows(S);if(D.setCurrentList(Q),!J)return;if(z&&X!=null&&S>0)D.restoreScrollOnPrependedRows?.(X,S);if(this.values){D.refresh(!0);let Y=B!=null&&D.getIndicesForValues(B).length>0;if(z&&Y&&Z)D.selectValue(B)}else if(z){if(!D.selectValue(B))D.refresh()}this.alignPickerToComponent()}setValueList(G){let{valueList:D}=G;if(!D||Array.isArray(D)){this.setValueListInternal(G);return}this.listComponent?.setIsLoading(),D.then((z)=>{if(z!==void 0)this.setValueListInternal({...G,valueList:z})}).catch(()=>{this.setValueListInternal({...G,valueList:[],refresh:!0})})}setValues(G){this.values=G,this.searchStrings=this.getSearchStringsFromValues(G||[])}showPicker(){let{listComponent:G,value:D}=this;if(!G)return;super.showPicker();let z=D??null;G.selectValue(z);let B=G.getIndicesForValues(z)[0];if(B!=null)this.tooltipFeature?.attemptToHideTooltip(),G.highlightIndex(B);else G.refresh()}createOrUpdatePillContainer(G){if(!this.pillContainer){let z=this.pillContainer=this.createBean(new vq);this.addDestroyFunc(()=>{this.destroyBean(this.pillContainer),this.pillContainer=null}),HQ(G),G.appendChild(z.getGui());let{config:B,eWrapper:Q,ariaDeleteSelection:J}=this;z.init({eWrapper:Q,valueFormatter:this.valueFormatter,onPillMouseDown:(U)=>{U.stopImmediatePropagation()},announceItemFocus:()=>{this.announceAriaValue(J)},focusAfterDelete:B.allowTyping?()=>this.focusTypingInputAtBoundary():void 0,focusAfterForwardBoundary:B.allowTyping?()=>this.focusTypingInputAtBoundary():void 0,onHorizontalArrowKeyDown:this.onPillHorizontalArrowKeyDown,getValue:()=>this.getValue(),setValue:(U)=>this.setValue(U,!0)})}let D=this.pillContainer.getGui().childElementCount;this.doWhileBlockingAnnouncement(()=>this.pillContainer?.refresh()),this.scrollTypingMultiSelectPillsToEndOnAdd(D)}scrollTypingMultiSelectPillsToEndOnAdd(G){let{allowTyping:D,multiSelect:z,suppressMultiSelectPillRenderer:B}=this.config;if(!D||!z||B)return;let Q=this.pillContainer?.getGui();if(!Q||Q.childElementCount<=G)return;jU(Q,Q.scrollWidth,this.isRtl())}doWhileBlockingAnnouncement(G){this.skipWrapperAnnouncement=!0,G(),this.skipWrapperAnnouncement=!1}isPreviousHorizontalNavigation(G){return G===o.LEFT!==this.isRtl()}isRtl(){return!!this.gos?.get("enableRtl")}isTypingInputAtPillBoundary(){let G=this.eInput.getInputElement(),{selectionStart:D,selectionEnd:z,value:B}=G;if(D==null||z==null||D!==z)return!1;return this.isRtl()?D===(B??"").length:D===0}focusTypingInputAtBoundary(){let G=this.eInput.getInputElement();G.focus();let D=this.isRtl()?G.value.length:0;G.setSelectionRange(D,D)}getActiveElementForKeyboardNavigation(){if(this.beans?.eRootDiv)return uU(this.beans);let G=this.getTypingInputElement();if(!G)return document.activeElement;return G.ownerDocument?.activeElement??document.activeElement}onWrapperFocus(){let{eInput:G,config:D}=this,{allowTyping:z,multiSelect:B,suppressDeselectAll:Q}=D;if(z){let J=G.getFocusableElement();J.focus(),J.select()}else if(B&&!Q&&!this.skipWrapperAnnouncement)this.announceAriaValue(this.ariaDeselectAllItems)}onWrapperFocusOut(G){if(!this.eWrapper.contains(G.relatedTarget))this.hidePicker()}onDeselectAllMouseDown(G){G.stopImmediatePropagation()}onDeselectAllClick(){this.setValue([],!0)}buildSearchStringFromKeyboardEvent(G){let{key:D}=G;if(D===o.BACKSPACE)this.searchString=this.searchString.slice(0,-1),D="";else if(!Yq(G))return;G.preventDefault(),this.searchTextFromCharacter(D)}searchTextFromCharacter(G){this.searchString+=G,this.runSearch(),this.clearSearchString()}searchTextFromString(G){if(G==null)G="";if(this.searchString=G,this.onSearchCallbackDebounced)this.setValueList({valueList:void 0,refresh:!0});this.runSearch()}getSearchStringsFromValues(G){if(typeof G[0]==="object"&&this.searchStringCreator)return this.searchStringCreator(G);return G.map((D)=>D===""?"":this.valueFormatter(D))}filterListModel(G){let{filterList:D}=this.config;if(!D)return;this.setValueList({valueList:G,refresh:!0})}runSearch(){if(!this.listComponent)return;if(this.onSearchCallbackDebounced){this.onSearchCallbackDebounced(this.searchString);return}let G=this.searchStrings;if(!G){this.listComponent.highlightIndex(-1);return}let{suggestions:D,filteredValues:z}=this.getSuggestionsAndFilteredValues(this.searchString,G),{filterList:B,highlightMatch:Q,searchType:J="fuzzy"}=this.config,U=!!(B&&this.searchString!=="");if(this.filterListModel(U?z:this.values||[]),!this.highlightEmptyValue())this.highlightListValue(D,z,U);if(Q&&J!=="fuzzy")this.listComponent?.highlightFilterMatch(this.searchString);this.listComponent?.toggleVisibility()}highlightEmptyValue(){if(this.searchString===""){let G=this.searchStrings?.indexOf("");if(G!==void 0&&G!==-1)return this.listComponent?.highlightIndex(G),!0}return!1}highlightListValue(G,D,z){if(G.length){let B=z?0:this.searchStrings?.indexOf(G[0]);if(B!==void 0)this.listComponent?.highlightIndex(B)}else if(this.listComponent?.highlightIndex(-1),!z||D.length)this.listComponent?.ensureIndexVisible(0);else if(z){let B=this.getFocusableElement();Uq(B,"data-active-option",null),qq(B,null)}}getSuggestionsAndFilteredValues(G,D){let z=[],B=[];if(!G.length)return{suggestions:z,filteredValues:B};let{searchType:Q="fuzzy",filterList:J}=this.config,U=this.values||[];if(Q==="fuzzy"){let Z=Lq({inputValue:G,allSuggestions:D,hideIrrelevant:!0});z=Z.values;let S=Z.indices;if(J&&S.length)for(let X=0;X{let X=Z.toLocaleLowerCase(),Y=this.searchString.toLocaleLowerCase(),W=Q==="match"?X.startsWith(Y):X.includes(Y);if(J&&W)B.push(U[S]);return W});return{suggestions:z,filteredValues:B}}clearSearchString(){this.searchString=""}setValue(G,D,z,B){if(this.value===G)return this.updateTypingMultiSelectPlaceholder(),this;let Q=Array.isArray(G);if(G!=null){if(!Q){if(!this.listComponent?.getIndicesForValues(G)?.length)return this}if(!z)this.listComponent?.selectValue(G)}if(super.setValue(G,D),!B)this.renderSelectedValue(z);else this.updateTypingMultiSelectPlaceholder();return this}onNavigationKeyDown(G,D,z){G.preventDefault();let B=D===o.DOWN;if(!this.isPickerDisplayed&&B){this.showPicker();return}this.listComponent?.onNavigationKeyDown(D,z)}onEnterKeyDown(G){let D=!!(this.config.allowTyping&&this.config.multiSelect);if(!this.isPickerDisplayed){if(D)G.preventDefault(),this.dispatchPickerEventAndHidePicker(this.value,!0);return}if(G.preventDefault(),this.listComponent?.getCurrentList()){let z=this.listComponent.getLastItemHovered();if(D){if(z!==void 0){let B=this.getCurrentSelectionWithAppendedItem(z);this.listComponent.selectValue(B),this.setValue(B,!1,!0),this.resetTypingMultiSelectSearchState(),this.hidePicker()}return}if(this.config.multiSelect||z===void 0)this.dispatchPickerEventAndHidePicker(this.value,!0);else this.onListValueSelected(new Set([z]),!0)}}getCurrentSelectionWithAppendedItem(G){let D=this.getValue(),z=Array.isArray(D)?[...D]:D!=null?[D]:[];if(!z.some((B)=>this.areValuesEquivalent(B,G)))z.push(G);return z}areValuesEquivalent(G,D){if(G===D)return!0;if(typeof G==="object"&&typeof D==="object"&&G!=null&&D!=null)return this.valueFormatter(G)===this.valueFormatter(D);return!1}resetTypingMultiSelectSearchState(){if(this.searchString="",this.eInput.setValue("",!0),this.onSearchCallbackDebounced){this.setValueList({valueList:void 0,refresh:!0});return}if(this.config.filterList&&this.values)this.setValueList({valueList:this.values,refresh:!0})}updateTypingMultiSelectPlaceholder(G){let{allowTyping:D,multiSelect:z,placeholder:B}=this.config;if(!D||!z)return;let Q=G??this.eInput.getValue()??"",J=Q.length>0,U=this.value,Z=(Array.isArray(U)?U.length>0:U!=null)||(this.listComponent?.getSelectedItems().size??0)>0,S=!J&&!Z?B:"";this.eInput.setInputPlaceholder(S),this.updateTypingMultiSelectInputSize(Q,S)}updateTypingMultiSelectInputSize(G,D){let z=this.getTypingInputElement();if(!z)return;let Q=Math.max(1,Math.min((G||D||"").length+1,32));if(z.size!==Q)z.size=Q;if(G){let J=this.pillContainer?.getGui();if(J)jU(J,J.scrollWidth,this.isRtl())}}getTypingInputElement(){let G=this.eInput.getInputElement;if(typeof G!=="function")return;return G.call(this.eInput)}openPickerOnTypingIfNeeded(G){let{isPickerDisplayed:D,config:{allowTyping:z,multiSelect:B}}=this;if(z&&B&&!D&&!!G)this.showPicker()}onDeleteKeyDown(G){let{eWrapper:D,beans:z}=this;if(uU(z)===D)G.preventDefault(),this.setValue([],!0)}onBackspaceKeyDown(G){if(!this.isTypingInputAtPillBoundary())return;let D=this.getValue(),z=Array.isArray(D)?D:D!=null?[D]:Array.from(this.listComponent?.getSelectedItems()??[]);if(!z.length)return;G.preventDefault(),this.setValue(z.slice(0,-1),!0)}onTabKeyDown(){let{config:G,isPickerDisplayed:D,listComponent:z}=this,{multiSelect:B}=G;if(!D||!z)return;if(B){let Q=this.getValueFromSet(z.getSelectedItems());if(Q)this.setValue(Q,!1,!0,!0)}else{let Q=z.getLastItemHovered();if(Q!==void 0)this.setValue(Q,!1,!0)}this.hidePicker()}getValueFromSet(G){let{multiSelect:D}=this.config;if(!D)return G.size?G.values().next().value:null;let z=Array.from(G);return z.length?z:null}onListValueSelected(G,D){let z=this.getValueFromSet(G);this.setValue(z,!1,!0);let{multiSelect:B,allowTyping:Q}=this.config;if(B&&Q)this.resetTypingMultiSelectSearchState(),this.hidePicker();else if(!B)this.dispatchPickerEventAndHidePicker(z,D)}dispatchPickerEventAndHidePicker(G,D){let z={type:"fieldPickerValueSelected",fromEnterKey:D,value:G};this.dispatchLocalEvent(z),this.hidePicker()}getFocusableElement(){let{allowTyping:G}=this.config;if(G)return this.eInput.getFocusableElement();return super.getFocusableElement()}handleHorizontalNavigationKey(G){let{allowTyping:D,multiSelect:z}=this.config;if(!D){G.preventDefault(),this.listComponent?.highlightIndex(-1),this.pillContainer?.onNavigationKeyDown(G);return}let B=this.pillContainer;if(!B)return;if(!z)return;let Q=this.getActiveElementForKeyboardNavigation(),J=this.isPreviousHorizontalNavigation(G.key),U=this.eInput.getInputElement();if(Q===U){if(J&&this.isTypingInputAtPillBoundary())this.listComponent?.highlightIndex(-1),B.onNavigationKeyDown(G);return}if(B.getGui().contains(Q)){this.listComponent?.highlightIndex(-1);let Z=Q;if(B.onNavigationKeyDown(G),!J&&this.getActiveElementForKeyboardNavigation()===Z)this.focusTypingInputAtBoundary()}}handlePageNavigationKey(G,D){let{allowTyping:z}=this.config;if(z&&(D===o.PAGE_HOME||D===o.PAGE_END)){G.preventDefault();let B=this.eInput.getInputElement(),Q=D===o.PAGE_HOME?0:B.value.length;B.setSelectionRange(Q,Q);return}if(G.preventDefault(),this.pickerComponent)this.listComponent?.navigateToPage(D)}handleVerticalNavigationKey(G,D,z){if(z)return;this.onNavigationKeyDown(G,D,()=>{if(this.config.multiSelect)this.doWhileBlockingAnnouncement(()=>this.eWrapper.focus()),this.announceAriaValue(this.ariaToggleSelection)})}handleEscapeKey(G){if(!this.isPickerDisplayed)return;if(Wq(this.listComponent.getGui()))G.preventDefault(),Hq(G);this.hidePicker()}handleEnterKey(G,D){if(D){G.preventDefault();return}this.onEnterKeyDown(G)}handleSpaceKey(G,D){let{allowTyping:z,multiSelect:B}=this.config,{isPickerDisplayed:Q,listComponent:J}=this,U=!D&&Q&&B&&!!J&&(!z||(this.eInput.getValue()??"")==="");if(!z||D||U)G.preventDefault();if(U&&J){let Z=J.getLastItemHovered();if(Z!==void 0)J.toggleListItemSelection(Z)}}handleBackspaceKey(G,D){if(!D&&this.config.allowTyping&&this.config.multiSelect)this.onBackspaceKeyDown(G)}handleDeleteKey(G){if(this.config.multiSelect&&!this.config.suppressDeselectAll)this.onDeleteKeyDown(G)}handleSearchWithoutTyping(G){if(!this.config.allowTyping)this.buildSearchStringFromKeyboardEvent(G)}onKeyDown(G){let{key:D,isComposing:z}=G;switch(D){case o.LEFT:case o.RIGHT:this.handleHorizontalNavigationKey(G);break;case o.PAGE_HOME:case o.PAGE_END:case o.PAGE_UP:case o.PAGE_DOWN:this.handlePageNavigationKey(G,D);break;case o.DOWN:case o.UP:this.handleVerticalNavigationKey(G,D,z);break;case o.ESCAPE:this.handleEscapeKey(G);break;case o.ENTER:this.handleEnterKey(G,z);break;case o.SPACE:this.handleSpaceKey(G,z);break;case o.BACKSPACE:this.handleBackspaceKey(G,z);break;case o.TAB:this.onTabKeyDown();break;case o.DELETE:this.handleDeleteKey(G);break;default:this.handleSearchWithoutTyping(G)}}announceAriaValue(G){this.ariaAnnounce?.announceValue(G,"richSelect")}destroy(){if(this.asyncRequests?.destroy(),this.asyncRequests=void 0,this.hasPagedAsyncSource=!1,this.listComponent)this.listComponent=this.destroyBean(this.listComponent);this.searchStrings=void 0,super.destroy()}};function h6(G,D){G.then((z)=>{let B=z.getGui();if(B!=null)D.appendChild(B)})}function HJ(G){return(D)=>G?.(D)??String(D??"")}var aq={tag:"div",cls:"ag-picker-field",role:"presentation",children:[{tag:"div",ref:"eLabel"},{tag:"div",ref:"eWrapper",cls:"ag-wrapper ag-picker-collapsed",children:[{tag:"div",ref:"eDisplayField",cls:"ag-picker-field-display"},{tag:"ag-input-text-field",ref:"eInput",cls:"ag-rich-select-field-input"},{tag:"span",ref:"eDeselect",cls:"ag-rich-select-deselect-button ag-picker-field-icon",role:"presentation"},{tag:"div",ref:"eIcon",cls:"ag-picker-field-icon",attrs:{"aria-hidden":"true"}}]}]},i6=class extends gB{constructor(G){super({...G,template:aq,agComponents:[eW]});this.params=G}showPicker(){setTimeout(()=>super.showPicker())}hidePicker(){setTimeout(()=>super.hidePicker())}postConstruct(){super.postConstruct();let{wrapperClassName:G,ariaLabel:D}=this.params;if(zq(this.eDisplayField,!1),G)this.eWrapper.classList.add(G);Dq(this.eWrapper,""),Gq(this.eWrapper,D)}onEnterKeyDown(G){if(Bq(G),this.isPickerDisplayed)super.onEnterKeyDown(G);else G.preventDefault(),this.showPicker()}},n6=class extends eq{constructor(G,D,z){super();this.eGui=G,this.focusWrapper=D,this.eFocusableComp=z}postConstruct(){this.addManagedElementListeners(this.eGui,{keydown:(D)=>{switch(D.key){case Ez.TAB:if(!D.defaultPrevented)R0(D);break;case Ez.UP:case Ez.DOWN:R0(D);break;case Ez.ESCAPE:if(nU(D))return;if(this.eGui.contains(iU(this.beans)))D.preventDefault(),R0(D),this.focusWrapper.focus();break}}});let G="ag-advanced-filter-builder-virtual-list-item-highlight";this.addManagedListeners(this.focusWrapper,{keydown:(D)=>{if(D.key===Ez.ENTER){if(nU(D))return;if(iU(this.beans)===this.focusWrapper)D.preventDefault(),R0(D),this.eFocusableComp.getFocusableElement().focus()}},focusin:()=>{this.focusWrapper.classList.add(G)},focusout:(D)=>{if(!this.focusWrapper.contains(D.relatedTarget))this.focusWrapper.classList.remove(G)}})}};function d6(G,D){return{pickerAriaLabelKey:"ariaLabelAdvancedFilterBuilderAddField",pickerAriaLabelValue:"Advanced Filter Builder Add Field",pickerType:"ag-list",valueList:[{key:"condition",displayValue:G("advancedFilterBuilderAddCondition")},{key:"join",displayValue:G("advancedFilterBuilderAddJoin")}],valueFormatter:(z)=>z==null?"":z.displayValue??z.key,pickerIcon:"advancedFilterBuilderAdd",maxPickerWidth:`${D??120}px`,wrapperClassName:"ag-advanced-filter-builder-item-button",ariaLabel:G("advancedFilterBuilderAddButtonTooltip")}}var GH={tag:"div",cls:"ag-advanced-filter-builder-item-wrapper",role:"presentation",children:[{tag:"div",ref:"eItem",cls:"ag-advanced-filter-builder-item",role:"presentation",children:[{tag:"div",cls:"ag-advanced-filter-builder-item-tree-lines",attrs:{"aria-hidden":"true"},children:[{tag:"div",cls:"ag-advanced-filter-builder-item-tree-line ag-advanced-filter-builder-item-tree-line-vertical-top ag-advanced-filter-builder-item-tree-line-horizontal"}]}]}]},DH=class extends sW{constructor(G,D){super(GH);this.item=G,this.focusWrapper=D,this.eItem=oW}wireBeans(G){this.advFilterExpSvc=G.advFilterExpSvc,this.registry=G.registry}postConstruct(){aW(this.focusWrapper,2);let G=d6((z)=>this.advFilterExpSvc.translate(z),this.gos.get("advancedFilterBuilderParams")?.addSelectWidth),D=this.createManagedBean(new i6(G));this.addManagedListeners(D,{fieldPickerValueSelected:({value:z})=>{this.dispatchLocalEvent({type:"advancedFilterBuilderAdded",item:this.item,isJoin:z.key==="join"})}}),this.eItem.appendChild(D.getGui()),this.createOptionalManagedBean(this.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>D.getGui(),getLocation:()=>"advancedFilter",getTooltipValue:()=>this.advFilterExpSvc.translate("advancedFilterBuilderAddButtonTooltip")})),this.createManagedBean(new n6(this.getGui(),this.focusWrapper,D)),rW(this.focusWrapper,this.advFilterExpSvc.translate("ariaAdvancedFilterBuilderItem",[this.advFilterExpSvc.translate("advancedFilterBuilderAddButtonTooltip"),`${this.item.level+1}`]))}afterAdd(){}},SH=class extends ZH{constructor(){super({tag:"div",cls:"ag-advanced-filter-builder-item-condition",role:"presentation"});this.validationMessage=null}wireBeans(G){this.advFilterExpSvc=G.advFilterExpSvc}init(G){let{item:D,createPill:z}=G;this.item=D,this.createPill=z,this.filterModel=D.filterModel,this.setupColumnCondition(this.filterModel),this.validate(),this.addDestroyFunc(()=>this.destroyBeans([this.eColumnPill,this.eOperatorPill,this.eOperandPill]))}getDragName(){return this.filterModel.colId?this.advFilterExpSvc.parseColumnFilterModel(this.filterModel):this.getDefaultColumnDisplayValue()}getAriaLabel(){return`${this.advFilterExpSvc.translate("ariaAdvancedFilterBuilderFilterItem")} ${this.getDragName()}`}getValidationMessage(){return this.validationMessage}getFocusableElement(){return this.eColumnPill.getFocusableElement()}setupColumnCondition(G){let D=this.advFilterExpSvc.getColumnDetails(G.colId);if(this.baseCellDataType=D.baseCellDataType,this.column=D.column,this.numOperands=this.getNumOperands(this.getOperatorKey()),this.eColumnPill=this.createPill({key:this.getColumnKey(),displayValue:this.getColumnDisplayValue()??this.getDefaultColumnDisplayValue(),cssClass:"ag-advanced-filter-builder-column-pill",isSelect:!0,getEditorParams:()=>({values:this.advFilterExpSvc.getColumnAutocompleteEntries()}),update:(z)=>this.setColumnKey(z),pickerAriaLabelKey:"ariaLabelAdvancedFilterBuilderColumnSelectField",pickerAriaLabelValue:"Advanced Filter Builder Column Select Field",ariaLabel:this.advFilterExpSvc.translate("ariaAdvancedFilterBuilderColumn")}),this.getGui().appendChild(this.eColumnPill.getGui()),Mz(this.getColumnKey())){if(this.createOperatorPill(),this.hasOperand())this.createOperandPill()}}createOperatorPill(){this.eOperatorPill=this.createPill({key:this.getOperatorKey(),displayValue:this.getOperatorDisplayValue()??this.getDefaultOptionSelectValue(),cssClass:"ag-advanced-filter-builder-option-pill",isSelect:!0,getEditorParams:()=>({values:this.getOperatorAutocompleteEntries()}),update:(G)=>this.setOperatorKey(G),pickerAriaLabelKey:"ariaLabelAdvancedFilterBuilderOptionSelectField",pickerAriaLabelValue:"Advanced Filter Builder Option Select Field",ariaLabel:this.advFilterExpSvc.translate("ariaAdvancedFilterBuilderOption")}),this.eColumnPill.getGui().insertAdjacentElement("afterend",this.eOperatorPill.getGui())}createOperandPill(){let{filter:G}=this.filterModel,D=(typeof G==="number"||typeof G==="bigint"?LH(G):G)??"";this.eOperandPill=this.createPill({key:D,valueFormatter:(z)=>this.advFilterExpSvc.getOperandDisplayValue({...this.filterModel,filter:z},!0),baseCellDataType:this.baseCellDataType,cssClass:"ag-advanced-filter-builder-value-pill",isSelect:!1,update:(z)=>this.setOperand(z),ariaLabel:this.advFilterExpSvc.translate("ariaAdvancedFilterBuilderValue")}),this.getGui().appendChild(this.eOperandPill.getGui())}getColumnKey(){return this.filterModel.colId}getColumnDisplayValue(){return this.advFilterExpSvc.getColumnDisplayValue(this.filterModel)}getOperatorKey(){return this.filterModel.type}getOperatorDisplayValue(){return this.advFilterExpSvc.getOperatorDisplayValue(this.filterModel)}getOperandDisplayValue(){return this.advFilterExpSvc.getOperandDisplayValue(this.filterModel,!0)}hasOperand(){return this.numOperands>0}getOperatorAutocompleteEntries(){return this.column?this.advFilterExpSvc.getOperatorAutocompleteEntries(this.column,this.baseCellDataType):[]}setColumnKey(G){if(!this.eOperatorPill)this.createOperatorPill();let D=this.advFilterExpSvc.getColumnDetails(G);this.column=D.column;let z=D.baseCellDataType;if(this.baseCellDataType!==z){if(this.baseCellDataType=z,this.setOperatorKey(void 0),this.eOperatorPill)$H(this.eOperatorPill.getGui()),this.destroyBean(this.eOperatorPill),this.createOperatorPill();this.validate()}this.filterModel.colId=G,this.filterModel.filterType=this.baseCellDataType}setOperatorKey(G){let D=this.getNumOperands(G);if(D!==this.numOperands){if(this.numOperands=D,D===0)this.destroyOperandPill();else if(this.createOperandPill(),this.baseCellDataType!=="number")this.setOperand("")}this.filterModel.type=G,this.validate()}setOperand(G){let D=G;if(this.baseCellDataType==="number")D=Mz(G)?Number(G):"";this.filterModel.filter=D,this.validate()}getNumOperands(G){return this.advFilterExpSvc.getExpressionOperator(this.baseCellDataType,G)?.numOperands??0}destroyOperandPill(){delete this.filterModel.filter,this.eOperandPill?.getGui().remove(),this.destroyBean(this.eOperandPill),this.eOperandPill=void 0}validate(){let G=null;if(!Mz(this.getColumnKey()))G=this.advFilterExpSvc.translate("advancedFilterBuilderValidationSelectColumn");else if(!Mz(this.getOperatorKey()))G=this.advFilterExpSvc.translate("advancedFilterBuilderValidationSelectOption");else if(this.numOperands>0&&!Mz(this.getOperandDisplayValue()))G=this.advFilterExpSvc.translate("advancedFilterBuilderValidationEnterValue");if(this.item.valid=!G,G!==this.validationMessage)this.validationMessage=G,this.dispatchLocalEvent({type:"advancedFilterBuilderValidChanged"})}getDefaultColumnDisplayValue(){return this.advFilterExpSvc.translate("advancedFilterBuilderSelectColumn")}getDefaultOptionSelectValue(){return this.advFilterExpSvc.translate("advancedFilterBuilderSelectOption")}},_H={number:[XH],bigint:[v0],boolean:[v0],object:[v0],text:[v0],date:[b0],dateString:[b0],dateTime:[b0,(G)=>G.setIncludeTime(!0)],dateTimeString:[b0,(G)=>G.setIncludeTime(!0)]},kH={tag:"div",cls:"ag-advanced-filter-builder-pill-wrapper",role:"presentation",children:[{tag:"div",ref:"ePill",cls:"ag-advanced-filter-builder-pill",role:"button",children:[{tag:"span",ref:"eLabel",cls:"ag-advanced-filter-builder-pill-display"}]}]},wH=class extends YH{constructor(G){super(kH);this.params=G,this.ePill=mU,this.eLabel=mU;let{value:D,valueFormatter:z}=G;this.value=D,this.displayValue=z(D)}wireBeans(G){this.advFilterExpSvc=G.advFilterExpSvc}postConstruct(){let{cssClass:G,ariaLabel:D}=this.params;this.ePill.classList.add(G),this.activateTabIndex([this.ePill]),this.eLabel.id=`${this.getCompId()}`,qH(this.ePill,this.eLabel.id),HH(this.ePill,D),this.renderValue(),this.addManagedListeners(this.ePill,{click:(z)=>{z.preventDefault(),this.showEditor()},keydown:(z)=>{if(z.key===NQ.ENTER)z.preventDefault(),FQ(z),this.showEditor()}}),this.addDestroyFunc(()=>this.destroyBean(this.eEditor))}getFocusableElement(){return this.ePill}showEditor(){if(this.eEditor)return;tU(this.ePill,!1),this.eEditor=this.createEditorComp(this.params.type),this.eEditor.setValue(this.value);let G=this.eEditor.getGui();this.eEditor.addManagedElementListeners(G,{keydown:(D)=>{switch(D.key){case NQ.ENTER:D.preventDefault(),FQ(D),this.updateValue(!0);break;case NQ.ESCAPE:D.preventDefault(),FQ(D),this.hideEditor(!0);break}},focusout:()=>this.updateValue(!1)}),this.getGui().appendChild(G),this.eEditor.getFocusableElement().focus()}createEditorComp(G){let[D,z]=_H[G],B=this.createBean(new D);return z?.(B),B}hideEditor(G){let{eEditor:D}=this;if(!D)return;if(this.eEditor=void 0,D.getGui().remove(),this.destroyBean(D),tU(this.ePill,!0),G)this.ePill.focus()}renderValue(){let G,{displayValue:D,eLabel:z,params:B}=this,{type:Q}=B,{classList:J}=z;if(J.remove("ag-advanced-filter-builder-value-empty","ag-advanced-filter-builder-value-number","ag-advanced-filter-builder-value-text"),!WH(D))G=this.advFilterExpSvc.translate("advancedFilterBuilderEnterValue"),J.add("ag-advanced-filter-builder-value-empty");else if(Q==="number"||Q==="bigint")G=D,J.add("ag-advanced-filter-builder-value-number");else G=`"${D}"`,J.add("ag-advanced-filter-builder-value-text");z.textContent=G}updateValue(G){if(!this.eEditor)return;let D=this.eEditor.getValue()??"";this.dispatchLocalEvent({type:"fieldValueChanged",value:D}),this.value=D,this.displayValue=this.params.valueFormatter(D),this.renderValue(),this.hideEditor(G)}},fH=class extends KH{wireBeans(G){this.advFilterExpSvc=G.advFilterExpSvc}constructor(){super({tag:"div",cls:"ag-advanced-filter-builder-item-condition",role:"presentation"})}init(G){let{item:D,createPill:z}=G,B=D.filterModel;this.filterModel=B,this.ePill=z({key:B.type,displayValue:this.advFilterExpSvc.parseJoinOperator(B),cssClass:"ag-advanced-filter-builder-join-pill",isSelect:!0,getEditorParams:()=>({values:this.advFilterExpSvc.getJoinOperatorAutocompleteEntries()}),update:(Q)=>B.type=Q,pickerAriaLabelKey:"ariaLabelAdvancedFilterBuilderJoinSelectField",pickerAriaLabelValue:"Advanced Filter Builder Join Operator Select Field",ariaLabel:this.advFilterExpSvc.translate("ariaAdvancedFilterBuilderJoinOperator")}),this.getGui().appendChild(this.ePill.getGui()),this.addDestroyFunc(()=>this.destroyBean(this.ePill))}getDragName(){return this.advFilterExpSvc.parseJoinOperator(this.filterModel)}getAriaLabel(){return`${this.advFilterExpSvc.translate("ariaAdvancedFilterBuilderGroupItem")} ${this.getDragName()}`}getValidationMessage(){return null}getFocusableElement(){return this.ePill.getFocusableElement()}},MH={tag:"div",cls:"ag-picker-field ag-advanced-filter-builder-pill-wrapper",role:"presentation",children:[{tag:"div",ref:"eLabel"},{tag:"div",ref:"eWrapper",cls:"ag-wrapper ag-advanced-filter-builder-pill ag-picker-collapsed",children:[{tag:"div",ref:"eDisplayField",cls:"ag-picker-field-display ag-advanced-filter-builder-pill-display"},{tag:"ag-input-text-field",ref:"eInput",cls:"ag-rich-select-field-input"},{tag:"span",ref:"eDeselect",cls:"ag-rich-select-deselect-button ag-picker-field-icon",role:"presentation"},{tag:"div",ref:"eIcon",cls:"ag-picker-field-icon",attrs:{"aria-hidden":"true"}}]}]},AH=class extends gB{constructor(G){super({...G,template:MH,agComponents:[NH]});this.params=G}getFocusableElement(){return this.eWrapper}showPicker(){setTimeout(()=>super.showPicker())}hidePicker(){setTimeout(()=>super.hidePicker())}postConstruct(){super.postConstruct();let{wrapperClassName:G,ariaLabel:D}=this.params;this.eWrapper.classList.add(G),EH(this.eWrapper,""),FH(this.eWrapper,D)}createPickerComponent(){if(!this.values){let{values:G}=this.params.getEditorParams();this.values=G;let D=this.value.key,z=G.find((B)=>B.key===D)??{key:D,displayValue:this.value.displayValue};this.value=z}return super.createPickerComponent()}onEnterKeyDown(G){if(IH(G),this.isPickerDisplayed)super.onEnterKeyDown(G);else G.preventDefault(),this.showPicker()}},RH={tag:"div",cls:"ag-advanced-filter-builder-item-wrapper",role:"presentation",children:[{tag:"div",cls:"ag-advanced-filter-builder-item",role:"presentation",children:[{tag:"div",ref:"eTreeLines",cls:"ag-advanced-filter-builder-item-tree-lines",attrs:{"aria-hidden":"true"}},{tag:"span",ref:"eDragHandle",cls:"ag-drag-handle",attrs:{"aria-hidden":"true"}},{tag:"span",ref:"eValidation",cls:"ag-advanced-filter-builder-item-button ag-advanced-filter-builder-invalid",attrs:{"aria-hidden":"true"}}]},{tag:"div",ref:"eButtons",cls:"ag-advanced-filter-builder-item-buttons",children:[{tag:"span",ref:"eMoveUpButton",cls:"ag-advanced-filter-builder-item-button",role:"button"},{tag:"span",ref:"eMoveDownButton",cls:"ag-advanced-filter-builder-item-button",role:"button"},{tag:"div",ref:"eAddButton",role:"presentation"},{tag:"span",ref:"eRemoveButton",cls:"ag-advanced-filter-builder-item-button",role:"button"}]}]},EQ=class extends BH{constructor(G,D,z){super(RH);this.item=G,this.dragFeature=D,this.focusWrapper=z,this.eTreeLines=rG,this.eDragHandle=rG,this.eButtons=rG,this.eValidation=rG,this.eMoveUpButton=rG,this.eMoveDownButton=rG,this.eAddButton=rG,this.eRemoveButton=rG,this.moveUpDisabled=!1,this.moveDownDisabled=!1}wireBeans(G){this.dragAndDrop=G.dragAndDrop,this.advFilterExpSvc=G.advFilterExpSvc,this.registry=G.registry}postConstruct(){let{filterModel:G,level:D,showMove:z}=this.item,B=G.filterType==="join";if(this.ePillWrapper=this.createManagedBean(B?new fH:new SH),this.ePillWrapper.init({item:this.item,createPill:(Q)=>this.createPill(Q)}),this.eDragHandle.insertAdjacentElement("afterend",this.ePillWrapper.getGui()),D===0){let Q=dU({tag:"div",cls:"ag-advanced-filter-builder-item-tree-line ag-advanced-filter-builder-item-tree-line-vertical-bottom ag-advanced-filter-builder-item-tree-line-root"});this.eTreeLines.appendChild(Q),V0(this.eDragHandle,!1),V0(this.eButtons,!1),pU(this.focusWrapper,!0)}else this.setupTreeLines(D),this.eDragHandle.appendChild(Iz("advancedFilterBuilderDrag",this.beans)),this.setupValidation(),this.setupMoveButtons(z),this.setupAddButton(),this.setupRemoveButton(),this.setupDragging(),this.updateAriaExpanded();JH(this.focusWrapper,D+1),this.initialiseTabGuard({}),this.createManagedBean(new n6(this.getGui(),this.focusWrapper,this.ePillWrapper)),this.updateAriaLabel(),this.addManagedListeners(this.ePillWrapper,{advancedFilterBuilderValueChanged:()=>this.dispatchLocalEvent({type:"advancedFilterBuilderValueChanged"}),advancedFilterBuilderValidChanged:()=>this.updateValidity()})}setState(G){let{level:D}=this.item;if(D===0)return;let{showMove:z}=this.item,{disableMoveUp:B,disableMoveDown:Q,treeLines:J,showStartTreeLine:U}=G;if(this.updateTreeLines(J,U),this.updateAriaExpanded(),z)this.moveUpDisabled=!!B,this.moveDownDisabled=!!Q,this.eMoveUpButton.classList.toggle("ag-advanced-filter-builder-item-button-disabled",B),this.eMoveDownButton.classList.toggle("ag-advanced-filter-builder-item-button-disabled",Q),lU(this.eMoveUpButton,!!B),lU(this.eMoveDownButton,!!Q),this.moveUpTooltipFeature?.refreshTooltip(),this.moveDownTooltipFeature?.refreshTooltip()}focusMoveButton(G){(G?this.eMoveUpButton:this.eMoveDownButton).focus()}afterAdd(){this.ePillWrapper.getFocusableElement().focus()}setupTreeLines(G){for(let D=0;Dthis.eValidation,getLocation:()=>"advancedFilter",getTooltipValue:()=>this.ePillWrapper.getValidationMessage(),getTooltipShowDelayOverride:()=>1000})),this.updateValidity()}setupAddButton(){let G=d6((z)=>this.advFilterExpSvc.translate(z),this.gos.get("advancedFilterBuilderParams")?.addSelectWidth),D=this.createManagedBean(new i6(G));this.addManagedListeners(D,{fieldPickerValueSelected:({value:z})=>this.dispatchLocalEvent({type:"advancedFilterBuilderAdded",item:this.item,isJoin:z.key==="join"})}),this.eAddButton.appendChild(D.getGui()),this.createOptionalManagedBean(this.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.eAddButton,getLocation:()=>"advancedFilter",getTooltipValue:()=>this.advFilterExpSvc.translate("advancedFilterBuilderAddButtonTooltip")}))}setupRemoveButton(){this.eRemoveButton.appendChild(Iz("advancedFilterBuilderRemove",this.beans)),this.addManagedListeners(this.eRemoveButton,{click:()=>this.removeItem(),keydown:(G)=>{if(G.key===KQ.ENTER)G.preventDefault(),fQ(G),this.removeItem()}}),this.createOptionalManagedBean(this.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.eRemoveButton,getLocation:()=>"advancedFilter",getTooltipValue:()=>this.advFilterExpSvc.translate("advancedFilterBuilderRemoveButtonTooltip")})),C0(this.eRemoveButton,this.advFilterExpSvc.translate("advancedFilterBuilderRemoveButtonTooltip")),this.activateTabIndex([this.eRemoveButton])}setupMoveButtons(G){if(G)this.eMoveUpButton.appendChild(Iz("advancedFilterBuilderMoveUp",this.beans)),this.addManagedListeners(this.eMoveUpButton,{click:()=>this.moveItem(!0),keydown:(D)=>{if(D.key===KQ.ENTER)D.preventDefault(),fQ(D),this.moveItem(!0)}}),this.moveUpTooltipFeature=this.createOptionalManagedBean(this.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.eMoveUpButton,getLocation:()=>"advancedFilter",getTooltipValue:()=>this.moveUpDisabled?null:this.advFilterExpSvc.translate("advancedFilterBuilderMoveUpButtonTooltip")})),C0(this.eMoveUpButton,this.advFilterExpSvc.translate("advancedFilterBuilderMoveUpButtonTooltip")),this.eMoveDownButton.appendChild(Iz("advancedFilterBuilderMoveDown",this.beans)),this.addManagedListeners(this.eMoveDownButton,{click:()=>this.moveItem(!1),keydown:(D)=>{if(D.key===KQ.ENTER)D.preventDefault(),fQ(D),this.moveItem(!1)}}),this.moveDownTooltipFeature=this.createOptionalManagedBean(this.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.eMoveDownButton,getLocation:()=>"advancedFilter",getTooltipValue:()=>this.moveDownDisabled?null:this.advFilterExpSvc.translate("advancedFilterBuilderMoveDownButtonTooltip")})),C0(this.eMoveDownButton,this.advFilterExpSvc.translate("advancedFilterBuilderMoveDownButtonTooltip")),this.activateTabIndex([this.eMoveUpButton,this.eMoveDownButton]);else V0(this.eMoveUpButton,!1),V0(this.eMoveDownButton,!1)}updateValidity(){UH(this.eValidation,!this.item.valid),this.validationTooltipFeature?.refreshTooltip(),this.updateAriaLabel()}createPill(G){let{key:D,cssClass:z,update:B,ariaLabel:Q}=G,J=(U)=>{if(U==null)return;B(U),this.dispatchLocalEvent({type:"advancedFilterBuilderValueChanged"})};if(G.isSelect){let{getEditorParams:U,pickerAriaLabelKey:Z,pickerAriaLabelValue:S,displayValue:X}=G,Y=this.gos.get("advancedFilterBuilderParams"),W=`${Y?.pillSelectMinWidth??140}px`,q=`${Y?.pillSelectMaxWidth??200}px`,H=this.createBean(new AH({pickerAriaLabelKey:Z,pickerAriaLabelValue:S,pickerType:"ag-list",value:{key:D,displayValue:X},valueFormatter:(_)=>_==null?"":_.displayValue??_.key,variableWidth:!0,minPickerWidth:W,maxPickerWidth:q,getEditorParams:U,wrapperClassName:z,ariaLabel:Q,pickerIcon:"advancedFilterBuilderSelectOpen"}));return this.addManagedListeners(H,{fieldPickerValueSelected:({value:_})=>J(_?.key)}),H}else{let{baseCellDataType:U,valueFormatter:Z}=G,S=this.createBean(new wH({value:D,valueFormatter:Z,cssClass:z,type:U,ariaLabel:Q}));return this.addManagedListeners(S,{fieldValueChanged:({value:X})=>J(X)}),S}}setupDragging(){let G={type:zH.AdvancedFilterBuilder,eElement:this.eDragHandle,dragItemName:()=>this.ePillWrapper.getDragName(),getDefaultIconName:()=>"notAllowed",getDragItem:()=>({}),onDragStarted:()=>this.dragFeature.dispatchLocalEvent({type:"advancedFilterBuilderDragStarted",item:this.item}),onDragStopped:()=>this.dragFeature.dispatchLocalEvent({type:"advancedFilterBuilderDragEnded"})};this.dragAndDrop.addDragSource(G,!0),this.addDestroyFunc(()=>this.dragAndDrop.removeDragSource(G))}updateAriaLabel(){let G=this.ePillWrapper.getAriaLabel(),D=`${this.item.level+1}`,z=this.ePillWrapper.getValidationMessage(),B;if(z)B=this.advFilterExpSvc.translate("ariaAdvancedFilterBuilderItemValidation",[G,D,z]);else B=this.advFilterExpSvc.translate("ariaAdvancedFilterBuilderItem",[G,D]);C0(this.focusWrapper,B)}updateAriaExpanded(){QH(this.focusWrapper);let{filterModel:G}=this.item;if(G?.filterType==="join"&&G.conditions.length)pU(this.focusWrapper,!0)}removeItem(){this.dispatchLocalEvent({type:"advancedFilterBuilderRemoved",item:this.item})}moveItem(G){this.dispatchLocalEvent({type:"advancedFilterBuilderMoved",item:this.item,backwards:G})}},CH={apply:"advancedFilterBuilderApply",clear:"advancedFilterBuilderClear",cancel:"advancedFilterBuilderCancel",reset:"advancedFilterBuilderReset"},VH={tag:"div",cls:"ag-advanced-filter-builder",role:"presentation",attrs:{tabindex:"-1"},children:[{tag:"div",ref:"eList",cls:"ag-advanced-filter-builder-list",role:"presentation"}]},bH=class extends hW{constructor(){super(VH);this.eList=nW}wireBeans(G){this.filterManager=G.filterManager,this.advancedFilter=G.advancedFilter,this.advFilterExpSvc=G.advFilterExpSvc}postConstruct(){let G=this.gos.get("advancedFilterBuilderParams");this.params={buttons:["apply","cancel"],...G},this.addManagedPropertyListener("advancedFilterBuilderParams",({currentValue:D})=>{this.params.showMoveButtons=!!D?.showMoveButtons,this.params.buttons=D?.buttons??["apply","cancel"],this.refreshList(!1)}),this.filterModel=this.setupFilterModel(),this.setupVirtualList(),this.dragFeature=this.createManagedBean(new tW(this,this.virtualList)),this.resetButtonsPanel(this.params.buttons)}refresh(){let G=this.virtualList,D=G.getLastFocusedRow();if(this.setupFilterModel(),this.validateItems(),this.refreshList(!1),D!=null){if(!G.getComponentAt(D))D=0;G.focusRow(D)}}getNumItems(){return this.items.length}moveItem(G,D){if(!D||!G)return;this.moveItemToIndex(G,D.rowIndex,D.position)}afterGuiAttached(){this.virtualList.awaitStable(()=>this.virtualList.focusRow(0))}setupVirtualList(){let G=this.virtualList=this.createManagedBean(new Lz({cssIdentifier:"advanced-filter-builder",ariaRole:"tree",listName:this.advFilterExpSvc.translate("ariaAdvancedFilterBuilderList"),moveItemCallback:this.virtualListMoveItemCallback.bind(this)}));G.setComponentCreator(this.createItemComponent.bind(this)),G.setComponentUpdater(this.updateItemComponent.bind(this)),G.setRowHeight(40),this.eList.appendChild(G.getGui()),G.setModel({getRowCount:()=>this.items?.length||0,getRow:(D)=>this.items[D],areRowsEqual:(D,z)=>D===z}),this.buildList(),G.refresh()}resetButtonsPanel(G){let D=G&&G.length>0,z=this.eButtons;if(D){let B=G.map((J)=>({type:J,label:this.advFilterExpSvc.translate(CH[J])}));if(!z){z=this.createBean(new iW),this.appendChild(z.getGui());let J=(U)=>({event:Z})=>{this.updateModel(U),this.afterAction(U,Z)};z.addManagedListeners(z,{apply:J("apply"),clear:J("clear"),reset:J("reset"),cancel:J("cancel")}),this.eButtons=z}z.updateButtons(B);let Q=z.getApplyButton();if(Q){let J=(U)=>this.toggleCss("ag-advanced-filter-builder-validation",U);this.addManagedElementListeners(Q,{mouseenter:()=>J(!0),mouseleave:()=>J(!1)})}}else if(z)lW(z.getGui()),this.eButtons=this.destroyBean(z)}updateModel(G){switch(G){case"apply":this.advancedFilter.setModel(this.filterModel),this.filterManager?.onFilterChanged({source:"advancedFilter"});break;case"reset":this.advancedFilter.setModel(null),this.filterManager?.onFilterChanged({source:"advancedFilter"});break;case"cancel":break;case"clear":this.filterModel=this.formatFilterModel(null),this.refreshList(!1);break}}afterAction(G,D){switch(G){case"apply":{D?.preventDefault(),this.close();break}case"reset":{this.close();break}case"cancel":{this.close();break}}}removeItemFromParent(G){let D=G.parent.conditions.indexOf(G.filterModel);return G.parent.conditions.splice(D,1),D}moveItemToIndex(G,D,z){let B=this.items[D],Q=B.filterModel?.filterType==="join"&&z==="bottom",J=Q?B.filterModel:B.parent;if(!J)return;if(this.isChildOrSelf(J,G.filterModel)||B===G)return;this.removeItemFromParent(G);let U;if(Q)U=0;else if(U=J.conditions.indexOf(B.filterModel),U===-1)U=J.conditions.length;else if(z==="bottom")U+=1;J.conditions.splice(U,0,G.filterModel),this.refreshList(!1)}isChildOrSelf(G,D){return G===D||D.filterType==="join"&&D.conditions.some((z)=>this.isChildOrSelf(G,z))}setupFilterModel(){let G=this.formatFilterModel(this.advancedFilter.getModel());return this.stringifiedModel=JSON.stringify(G),G}formatFilterModel(G){if(G=G??{filterType:"join",type:"AND",conditions:[]},G.filterType!=="join")G={filterType:"join",type:"AND",conditions:[G]};return G}buildList(){let G=(D,z,B,Q)=>{if(z.push({filterModel:D,level:B,parent:Q,valid:!0,showMove:this.params.showMoveButtons}),D.filterType==="join"){for(let J of D.conditions)G(J,z,B+1,D);if(B===0)z.push({filterModel:null,level:B+1,parent:D,valid:!0})}};this.items=[],G(this.filterModel,this.items,0)}refreshList(G){if(!G){let D=[];for(let z of this.items)if(!z.valid)D.push(z.filterModel);if(this.buildList(),D.length){for(let z of this.items)if(z.filterModel&&D.includes(z.filterModel))z.valid=!1}}this.virtualList.refresh(G),this.validate()}updateItemComponent(G,D){let z=this.items.indexOf(G),B=(Z,S)=>{let Y=this.items.find((W)=>W.filterModel===Z)?.parent;if(Y){let{conditions:W}=Y;B(Y,S),S.push(W[W.length-1]===Z)}},Q=[],{filterModel:J}=G;if(J)B(J,Q),Q[0]=!1;let U=J?.filterType==="join"&&!!J.conditions.length;D.setState({disableMoveUp:z===1,disableMoveDown:!this.canMoveDown(G,z),treeLines:Q,showStartTreeLine:U})}createItemComponent(G,D){let z=this.createBean(G.filterModel?new EQ(G,this.dragFeature,D):new DH(G,D));if(z.addManagedListeners(z,{advancedFilterBuilderRemoved:({item:B})=>this.removeItem(B),advancedFilterBuilderValueChanged:()=>this.validate(),advancedFilterBuilderAdded:({item:B,isJoin:Q})=>this.addItem(B,Q),advancedFilterBuilderMoved:({item:B,backwards:Q})=>this.moveItemUpDown(B,Q)}),z instanceof EQ)this.updateItemComponent(G,z);return z}addItem(G,D){let{parent:z,level:B,filterModel:Q}=G,J=Q?.filterType==="join",U=D?{filterType:"join",type:"AND",conditions:[]}:{},Z=J?Q:z,S=J?0:Z.conditions.indexOf(Q);if(S>=0){if(!J)S+=1;Z.conditions.splice(S,0,U)}else Z.conditions.push(U);let X=this.items.indexOf(G),Y=X>=0;if(Y){if(G.filterModel)X++;let W=[{filterModel:U,level:J?B+1:B,parent:Z,valid:D,showMove:this.params.showMoveButtons}];this.items.splice(X,0,...W)}if(this.refreshList(Y),Y)this.virtualList.getComponentAt(X)?.afterAdd()}removeItem(G){let D=G.parent,{filterModel:z}=G,B=D.conditions.indexOf(z);D.conditions.splice(B,1);let Q=G.filterModel?.filterType==="join",J=this.items.indexOf(G),U=!Q&&J>=0;if(U)this.items.splice(J,1);if(this.refreshList(U),J>=0)this.virtualList.focusRow(J)}moveItemUpDown(G,D,z){let B=this.items.indexOf(G),Q=D?B-1:B+1;if(Q===0||!D&&!this.canMoveDown(G,B))return;let J=this.items[Q],U=this.removeItemFromParent(G),{level:Z,filterModel:S,parent:X}=G,{level:Y,filterModel:W,parent:q}=J;if(D)if(Y===Z&&W.filterType==="join")W.conditions.push(S);else if(Y<=Z){let k=q.conditions.indexOf(W);q.conditions.splice(k,0,S)}else X.conditions[U-1].conditions.push(S);else if(Y===Z)if(W.filterType==="join")W.conditions.splice(0,0,S);else{let k=q.conditions.indexOf(W);q.conditions.splice(k+1,0,S)}else if(UK.filterModel===X),w=k.parent.conditions.indexOf(k.filterModel)+1;k.parent.conditions.splice(w,0,S)}this.refreshList(!1);let H=this.items.findIndex(({filterModel:k})=>k===S);if(H<0)return;let _=this.virtualList.getComponentAt(H);if(!(_ instanceof EQ))return;if(!z)_.focusMoveButton(D)}virtualListMoveItemCallback(G,D){let z=G.item,B=this.items.indexOf(z);if(B<=0||B===this.items.length-1)return;if(D&&B===1||!D&&!this.canMoveDown(z,B))return;this.moveItemUpDown(z,D,!0),this.virtualList.focusRow(B+(D?-1:1))}canMoveDown(G,D){return!(G.level===1&&D===this.items.length-2||G.level===1&&G.parent.conditions[G.parent.conditions.length-1]===G.filterModel)}close(){this.advancedFilter.getCtrl().toggleFilterBuilder({source:"ui"})}validate(){let G=this.items.every(({valid:z})=>z),D=null;if(G){if(G=JSON.stringify(this.filterModel)!==this.stringifiedModel,!G)D=this.advFilterExpSvc.translate("advancedFilterBuilderValidationAlreadyApplied")}else D=this.advFilterExpSvc.translate("advancedFilterBuilderValidationIncomplete");this.eButtons?.updateValidity(G,D)}validateItems(){let G=(z)=>{z.type=void 0},D=(z)=>{delete z.filter};for(let z of this.items){if(!z.valid||!z.filterModel||z.filterModel.filterType==="join")continue;let{filterModel:B}=z,{colId:Q}=B,J=this.advFilterExpSvc.getColumnAutocompleteEntries().find(({key:X})=>X===Q),U=this.advFilterExpSvc.getColumnDetails(B.colId);if(!J||!U.column){z.valid=!1,B.colId=void 0,G(B),D(B);continue}let S=this.advFilterExpSvc.getDataTypeExpressionOperator(U.baseCellDataType).operators[B.type];if(!S){z.valid=!1,G(B),D(B);continue}if(S.numOperands>0&&!dW(B.filter))z.valid=!1}}},vH=class extends o4{constructor(G){super();this.enabled=G}wireBeans(G){this.ctrlsSvc=G.ctrlsSvc,this.popupSvc=G.popupSvc,this.advFilterExpSvc=G.advFilterExpSvc,this.environment=G.environment}postConstruct(){this.hasAdvancedFilterParent=!!this.gos.get("advancedFilterParent"),this.ctrlsSvc.whenReady(this,()=>this.setAdvancedFilterComp()),this.addManagedEventListeners({advancedFilterEnabledChanged:({enabled:G})=>this.onEnabledChanged(G)}),this.addManagedPropertyListener("advancedFilterParent",()=>this.updateComps()),this.addManagedPropertyListener("advancedFilterBuilderParams",(G)=>{if(G.currentValue?.suppressFullScreenButton!==G.previousValue?.suppressFullScreenButton)this.eBuilderDialog?.setMaximizable(G.currentValue?.suppressFullScreenButton??!0)}),this.addDestroyFunc(()=>{if(this.destroyAdvancedFilterComp(),this.destroyBean(this.eBuilderComp),this.eBuilderDialog?.isAlive())this.destroyBean(this.eBuilderDialog)})}setupHeaderComp(G){if(this.eHeaderComp)this.eHeaderComp?.getGui().remove(),this.destroyBean(this.eHeaderComp);this.eHeaderComp=this.createManagedBean(new cW(this.enabled&&!this.hasAdvancedFilterParent)),G.insertAdjacentElement("beforebegin",this.eHeaderComp.getGui())}focusHeaderComp(){if(this.eHeaderComp)return this.eHeaderComp.getFocusableElement().focus(),!0;return!1}refreshComp(){this.eFilterComp?.refresh(),this.eHeaderComp?.refresh()}refreshBuilderComp(){this.eBuilderComp?.refresh()}getHeaderHeight(){return this.eHeaderComp?.getHeight()??0}setInputDisabled(G){this.eFilterComp?.setInputDisabled(G),this.eHeaderComp?.setInputDisabled(G)}toggleFilterBuilder(G){let{source:D,force:z,eventSource:B}=G;if(z&&this.eBuilderDialog||z===!1&&!this.eBuilderDialog)return;if(this.eBuilderDialog){this.builderDestroySource=D,this.destroyBean(this.eBuilderDialog);return}this.setInputDisabled(!0);let{width:Q,height:J,minWidth:U}=this.getBuilderDialogSize(),{suppressFullScreenButton:Z}={suppressFullScreenButton:!1,...this.gos.get("advancedFilterBuilderParams")};this.eBuilderComp=this.createBean(new bH),this.eBuilderDialog=this.createBean(new PB({title:this.advFilterExpSvc.translate("advancedFilterBuilderTitle"),component:this.eBuilderComp,width:Q,height:J,resizable:!0,movable:!0,maximizable:!Z,centered:!0,closable:!0,minWidth:U,afterGuiAttached:()=>this.eBuilderComp?.afterGuiAttached(),postProcessPopupParams:{type:"advancedFilterBuilder",eventSource:B}})),this.dispatchFilterBuilderVisibleChangedEvent(D,!0),this.eBuilderDialog.addEventListener("destroyed",()=>{this.destroyBean(this.eBuilderComp),this.eBuilderComp=void 0,this.eBuilderDialog=void 0,this.setInputDisabled(!1),this.dispatchLocalEvent({type:"advancedFilterBuilderClosed"}),this.dispatchFilterBuilderVisibleChangedEvent(this.builderDestroySource??"ui",!1),this.builderDestroySource=void 0})}dispatchFilterBuilderVisibleChangedEvent(G,D){this.eventSvc.dispatchEvent({type:"advancedFilterBuilderVisibleChanged",source:G,visible:D})}getBuilderDialogSize(){let G=this.gos.get("advancedFilterBuilderParams")?.minWidth??500,D=this.popupSvc.getPopupParent(),z=Math.round(a4(D))-2,B=Math.round(r4(D)*0.75)-2,Q=Math.min(Math.max(700,G),z),J=Math.min(600,B);return{width:Q,height:J,minWidth:G}}onEnabledChanged(G){this.enabled=G,this.updateComps()}updateComps(){this.setAdvancedFilterComp(),this.setHeaderCompEnabled(),this.eventSvc.dispatchEvent({type:"headerHeightChanged"})}setAdvancedFilterComp(){if(this.destroyAdvancedFilterComp(),!this.enabled)return;let G=this.gos.get("advancedFilterParent");if(this.hasAdvancedFilterParent=!!G,G){let D=this.createBean(new x6),z=D.getGui();this.environment.applyThemeClasses(z),z.classList.add(this.gos.get("enableRtl")?"ag-rtl":"ag-ltr"),G.appendChild(z),this.eFilterComp=D}}setHeaderCompEnabled(){this.eHeaderComp?.setEnabled(this.enabled&&!this.hasAdvancedFilterParent)}destroyAdvancedFilterComp(){if(this.eFilterComp)e4(this.eFilterComp.getGui()),this.destroyBean(this.eFilterComp)}},OH=class{constructor(G){this.params=G,this.operators=[],this.operatorStartPositions=[],this.operatorEndPositions=[],this.activeOperator=0,this.validationError=null}parseExpression(G){this.operators.push(""),this.operatorStartPositions.push(G),this.operatorEndPositions.push(void 0);let{expression:D}=this.params;while(GQ===this.parsedOperator);return this.params.advFilterExpSvc.generateAutocompleteListParams(B,"join",z)}updateExpression(G,D,z){let{expression:B}=this.params,Q=D.displayValue??D.key;if(z===0)for(let Z=this.operatorEndPositions.length-1;Z>0;Z--){let S=this.operatorEndPositions[Z];if(S==null)continue;B=XD(B,this.operatorStartPositions[Z],S,Q).updatedValue}let J=this.operatorStartPositions.length>z?this.operatorStartPositions[z]:G,U=(this.operatorEndPositions.length>z?this.operatorEndPositions[z]:void 0)??i1(B,G,!0).endPosition;return XD(B,J,U,Q,!0)}getNumOperators(){return this.operators.length}getLastOperatorEndPosition(){return this.operatorEndPositions[this.operatorEndPositions.length-1]}parseOperator(G){let D=this.operators.length>this.activeOperator?this.operators[this.activeOperator]:"",z=this.params.advFilterExpSvc.getExpressionJoinOperators(),B=jB(D,z,(Q)=>Q);if(B){this.operatorEndPositions[this.activeOperator]=G;let Q=z[B];if(this.activeOperator){if(B!==this.parsedOperator){if(!this.validationError)this.validationError={message:this.params.advFilterExpSvc.translate("advancedFilterValidationJoinOperatorMismatch"),startPosition:G-D.length+1,endPosition:G};return!1}}else this.parsedOperator=B;if(D!==Q)WJ(this.params,D,Q,G),this.operators[this.activeOperator]=Q;return!0}else if(B===null)return!1;else{if(!this.validationError)this.validationError={message:this.params.advFilterExpSvc.translate("advancedFilterValidationInvalidJoinOperator"),startPosition:G-D.length+1,endPosition:G};return!0}}},uH=class G{constructor(D,z){this.params=D,this.startPosition=z,this.expectingExpression=!0,this.expectingOperator=!1,this.expressionParsers=[],this.operatorParser=new OH(this.params),this.missingEndBracket=!1,this.extraEndBracket=!1}parseExpression(){let D=this.startPosition,{expression:z}=this.params;while(D0)this.missingEndBracket=!0;return D}isValid(){return!this.missingEndBracket&&!this.extraEndBracket&&this.expressionParsers.length===this.operatorParser.getNumOperators()+1&&this.operatorParser.isValid()&&this.expressionParsers.every((D)=>D.isValid())}getValidationError(){let D=this.operatorParser.getValidationError();for(let B=0;BJ.getFunction(D)),Q=z==="&&"?"every":"some";return(J,U,Z)=>B[Q]((S)=>S(J,U,Z))}getAutocompleteListParams(D){if(this.endPosition!=null&&D>this.endPosition+1)return;if(!this.expressionParsers.length)return this.getColumnAutocompleteListParams();let z=this.getExpressionParserIndex(D);if(z==null){if(this.params.expression[D]==="(")return{enabled:!1};return this.getColumnAutocompleteListParams()}let Q=this.expressionParsers[z].getAutocompleteListParams(D);if(!Q){if(zthis.endPosition+1)return null;else return this.operatorParser.updateExpression(D,z,J);return Z}getModel(){if(this.expressionParsers.length>1)return{filterType:"join",type:this.operatorParser.getModel(),conditions:this.expressionParsers.map((D)=>D.getModel())};else return this.expressionParsers[0].getModel()}getColumnAutocompleteListParams(){return this.params.advFilterExpSvc.generateAutocompleteListParams(this.params.advFilterExpSvc.getColumnAutocompleteEntries(),"column","")}getExpressionParserIndex(D){let z;for(let B=0;BD)break;z=B}return z}},jH=class{constructor(G){this.params=G,this.valid=!1}parseExpression(){this.joinExpressionParser=new uH(this.params,0);let G=this.joinExpressionParser.parseExpression();return this.valid=G>=this.params.expression.length-1&&this.joinExpressionParser.isValid(),this.params.expression}isValid(){return this.valid}getValidationMessage(){let G=this.joinExpressionParser.getValidationError();if(!G)return null;let{message:D,startPosition:z,endPosition:B}=G;return z{let z=this.colModel.getColDefCol(G);return z?this.filterValueSvc.getValue(z,D):void 0}},this.addManagedPropertyListener("enableAdvancedFilter",(G)=>this.setEnabled(!!G.currentValue)),this.addManagedEventListeners({newColumnsLoaded:(G)=>this.onNewColumnsLoaded(G)}),this.addManagedPropertyListener("includeHiddenColumnsInAdvancedFilter",()=>{if(this.updateValidity())this.filterManager?.onFilterChanged({source:"advancedFilter"})})}isEnabled(){return this.enabled}isFilterPresent(){return!!this.expressionFunction}doesFilterPass(G){return this.expressionFunction(this.expressionProxy,G,this.expressionParams)}getModel(){let G=this.createExpressionParser(this.appliedExpression);return G?.parseExpression(),G?.getModel()??null}setModel(G){let D=(B,Q)=>{if(B.filterType==="join"){let J=this.advFilterExpSvc.parseJoinOperator(B),U=B.conditions.map((Z)=>D(Z)).filter((Z)=>p4(Z)).join(` ${J} `);return Q||B.conditions.length<=1?U:`(${U})`}else return this.advFilterExpSvc.parseColumnFilterModel(B)},z=G?D(G,!0):null;this.setExpressionDisplayValue(z),this.applyExpression(),this.ctrl.refreshComp(),this.ctrl.refreshBuilderComp()}getExpressionDisplayValue(){return this.expression}setExpressionDisplayValue(G){this.expression=G}isCurrentExpressionApplied(){return this.appliedExpression===this.expression}createExpressionParser(G){if(!G)return null;return new jH({expression:G,colModel:this.colModel,dataTypeSvc:this.dataTypeSvc,valueSvc:this.valueSvc,advFilterExpSvc:this.advFilterExpSvc})}getDefaultExpression(G){let D=this.advFilterExpSvc.getColumnValue(G)+" ";return{updatedValue:D,updatedPosition:D.length}}isHeaderActive(){return!this.gos.get("advancedFilterParent")}getCtrl(){return this.ctrl}setEnabled(G,D){let z=this.enabled,B=m4(this.gos)||t4(this.gos);if(G&&!B)s4(123);if(this.enabled=G&&B,!D&&this.enabled!==z)this.eventSvc.dispatchEvent({type:"advancedFilterEnabledChanged",enabled:this.enabled})}applyExpression(){let G=this.createExpressionParser(this.expression);G?.parseExpression(),this.applyExpressionFromParser(G)}getAppliedExpressionDisplayValue(){return this.appliedExpression}applyExpressionFromParser(G){if(this.isValid=!G||G.isValid(),!G||!this.isValid){this.expressionFunction=null,this.expressionParams=null,this.appliedExpression=null;return}let{expressionFunction:D,params:z}=G.getFunction();this.expressionFunction=D,this.expressionParams=z,this.appliedExpression=this.expression}updateValidity(){this.advFilterExpSvc.resetColumnCaches();let G=this.createExpressionParser(this.expression);G?.parseExpression();let z=(!G||G.isValid())!==this.isValid;return this.applyExpressionFromParser(G),this.ctrl.refreshComp(),this.ctrl.refreshBuilderComp(),z}onNewColumnsLoaded(G){if(G.source!=="gridInitializing"||!this.dataTypeSvc?.isPendingInference)return;this.ctrl.setInputDisabled(!0);let[D]=this.addManagedEventListeners({dataTypesInferred:()=>{D?.(),this.ctrl.setInputDisabled(!1)}})}},l6={moduleName:"AdvancedFilter",version:j,beans:[PH,d4],icons:{advancedFilterBuilder:"group",advancedFilterBuilderDrag:"grip",advancedFilterBuilderInvalid:"not-allowed",advancedFilterBuilderMoveUp:"up",advancedFilterBuilderMoveDown:"down",advancedFilterBuilderAdd:"plus",advancedFilterBuilderRemove:"minus",advancedFilterBuilderSelectOpen:"small-down",richSelectRemove:"cancel",richSelectLoading:"loading"},apiFunctions:{getAdvancedFilterModel:v4,setAdvancedFilterModel:O4,showAdvancedFilterBuilder:u4,hideAdvancedFilterBuilder:j4},dependsOn:[i,A4,V4,C4,R4,M4],css:[b4]},Sz=class{constructor(G){this._defs={},this._nullable=!1,this.description=G}_collectNestedDefs(G){let D={...this._defs};for(let z of G)if(z&&typeof z==="object"&&"$defs"in z)Object.assign(D,z.$defs),delete z.$defs;return D}_toJSON(G={}){let D={type:this._nullable?[this.type,"null"]:this.type,description:this.description,...G};if(Object.keys(this._defs).length>0)D.$defs=this._defs;return D}nullable(){return this._nullable=!0,this}define(G,D){return this._defs[G]=D,this}},yH=class extends Sz{constructor(G){super(typeof G==="string"?G:G?.description);if(this.type="string",typeof G==="object"&&G)this._pattern=G.pattern,this._format=G.format}pattern(G){return this._pattern=G,this}format(G){return this._format=G,this}toJSON(){return this._toJSON({pattern:this._pattern,format:this._format})}},xH=class extends Sz{constructor(G){super(typeof G==="string"?G:G?.description);if(this.type="number",typeof G==="object"&&G)this._minimum=G.minimum,this._maximum=G.maximum,this._exclusiveMinimum=G.exclusiveMinimum,this._exclusiveMaximum=G.exclusiveMaximum,this._multipleOf=G.multipleOf}minimum(G){return this._minimum=G,this}exclusiveMinimum(G){return this._exclusiveMinimum=G,this}maximum(G){return this._maximum=G,this}exclusiveMaximum(G){return this._exclusiveMaximum=G,this}multipleOf(G){return this._multipleOf=G,this}toJSON(){return this._toJSON({minimum:this._minimum,exclusiveMinimum:this._exclusiveMinimum,maximum:this._maximum,exclusiveMaximum:this._exclusiveMaximum,multipleOf:this._multipleOf})}},p6=class extends Sz{constructor(G,D){super(D);this._enum=G,this.type="string"}toJSON(){return this._toJSON({enum:this._enum})}},cH=class extends p6{constructor(G,D){super([G],D)}},hH=class extends Sz{constructor(G){super(G);this.type="boolean"}toJSON(){return this._toJSON()}},iH=class extends Sz{constructor(G,D){super(typeof D==="string"?D:D?.description);if(this.items=G,this.type="array",typeof D==="object"&&D)this._minItems=D.minItems,this._maxItems=D.maxItems}minItems(G){return this._minItems=G,this}maxItems(G){return this._maxItems=G,this}toJSON(){let G=this.items.toJSON(),D=this._collectNestedDefs([G]);return this._defs=D,this._toJSON({items:G,minItems:this._minItems,maxItems:this._maxItems})}},nH=class extends Sz{constructor(G,D){super(D);this.properties=G,this.type="object"}toJSON(){let G=Object.fromEntries(Object.keys(this.properties).map((z)=>[z,this.properties[z].toJSON()])),D=this._collectNestedDefs(Object.values(G));return this._defs=D,this._toJSON({required:Object.keys(this.properties),additionalProperties:!1,properties:G})}},dH=class{constructor(G,D){this.schemas=G,this._nullable=!1,this._defs={},this.description=D}nullable(){return this._nullable=!0,this}define(G,D){return this._defs[G]=D,this}_collectNestedDefs(G){let D=this._defs;for(let z of G)if(z&&typeof z==="object"&&"$defs"in z)Object.assign(D,z.$defs),delete z.$defs;return D}toJSON(){let G=this.schemas.map((B)=>B.toJSON()),D=this._collectNestedDefs(G),z={anyOf:this._nullable?[...G,{type:"null"}]:G};if(this.description)z.description=this.description;if(Object.keys(D).length>0)z.$defs=D;return z}},lH=class{constructor(G){this.id=G}nullable(){return this}toJSON(){return{$ref:`#/$defs/${this.id}`}}},M={string:(G)=>new yH(G),number:(G)=>new xH(G),enum:(G,D)=>new p6(G,D),boolean:(G)=>new hH(G),array:(G,D)=>new iH(G,D),object:(G,D)=>new nH(G,D),union:(G,D)=>new dH(G,D),literal:(G,D)=>new cH(G,D),ref:(G)=>new lH(G)},pH=(G)=>{let{aggFuncSvc:D}=G;if(!D)return;let B=G.colModel.getCols().filter((Q)=>Q.isAllowValue()&&D.getFuncNames(Q).length>0);if(B.length===0)return;return M.object({aggregationModel:M.array(M.union(B.map((Q)=>M.object({colId:M.literal(Q.getColId(),"Column identifier"),aggFunc:M.enum(G.aggFuncSvc?.getFuncNames(Q)||[],"Aggregation function")}))),"Array of column aggregations")},"Aggregation configuration for the grid").nullable()},mH=(G)=>{let z=G.colModel.getCols().filter((Q)=>Q.isResizable());if(z.length===0)return;let B=z.map((Q)=>Q.getColId());return M.object({columnSizingModel:M.array(M.union([M.object({colId:M.ref("resizableColumnId"),width:M.number("Fixed width in pixels").minimum(20)}),M.object({colId:M.ref("resizableColumnId"),flex:M.number("Flex sizing ratio").minimum(0)})]),"Array of column sizing configurations")},"Column sizing configuration for the grid").define("resizableColumnId",M.enum(B,"Column ID that supports resizing"))},tH=()=>{return M.object({hiddenColIds:M.array(M.ref("allColumnIds"),"Array of column IDs to hide")},"Column visibility configuration for the grid").nullable()},sH=({colModel:G,dataTypeSvc:D})=>{if(!D)return;let z=G.getCols(),B={boolean:[],object:[],date:[],dateString:[],dateTime:[],dateTimeString:[],number:[],bigint:[],text:[]};for(let U of z){let Z=D.getBaseDataType(U);if(Z)B[Z].push(U.colId)}let Q=[],J={};for(let U of Object.keys(B))if(B[U].length>0){let Z=`${U}AdvancedFilterModel`,S=J_[U];J[Z]=S(B[U]),Q.push({$ref:`#/$defs/${Z}`})}return J.joinAdvancedFilterModel=M.object({filterType:M.literal("join","Filter type identifier for joining multiple advanced filter conditions"),type:M.enum(["AND","OR"],"Logical operator to combine multiple advanced filter conditions"),conditions:M.array(M.ref("advancedFilterModel"),"Array of advanced filter conditions to be combined")}),J.advancedFilterModel={anyOf:[...Q,{$ref:"#/$defs/joinAdvancedFilterModel"}]},M.object({advancedFilterModel:M.ref("advancedFilterModel")},"Advanced filter configuration for the grid").nullable()},oH=(G)=>{return M.object({filterType:M.literal("boolean","Filter type identifier for boolean column filters"),colId:M.enum(G,"Column identifier for the boolean column to filter"),type:M.enum(["true","false"],"Boolean value to filter by")})},rH=(G)=>{return M.object({filterType:M.literal("object","Filter type identifier for object column filters"),colId:M.enum(G,"Column identifier for the object column to filter"),filter:M.string("Filter value to compare against object column values").nullable(),type:M.enum(["equals","notEqual","contains","notContains","startsWith","endsWith","blank","notBlank"],"Object filter operation type")})},aH=(G)=>{return M.object({filterType:M.literal("date","Filter type identifier for date column filters"),colId:M.enum(G,"Column identifier for the date column to filter"),filter:M.string({pattern:"^\\d{4}-\\d{2}-\\d{2}$",description:"Date value in YYYY-MM-DD format"}).nullable(),type:M.enum(["equals","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","blank","notBlank"],"Date filter operation type")})},eH=(G)=>{return M.object({filterType:M.literal("date","Filter type identifier for date string column filters"),colId:M.enum(G,"Column identifier for the date string column to filter"),filter:M.string({pattern:"^\\d{4}-\\d{2}-\\d{2}$",description:"Date value in YYYY-MM-DD format"}).nullable(),type:M.enum(["equals","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","blank","notBlank"],"Date string filter operation type")})},G_=(G)=>{return M.object({filterType:M.literal("dateTime","Filter type identifier for datetime column filters"),colId:M.enum(G,"Column identifier for the datetime column to filter"),filter:M.string({pattern:"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$",description:"DateTime value in YYYY-MM-DDTHH:mm:ss format"}).nullable(),type:M.enum(["equals","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","blank","notBlank"],"DateTime filter operation type")})},D_=(G)=>{return M.object({filterType:M.literal("dateTimeString","Filter type identifier for datetime string column filters"),colId:M.enum(G,"Column identifier for the datetime string column to filter"),filter:M.string({pattern:"^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",description:"DateTime value in YYYY-MM-DD HH:mm:ss format"}).nullable(),type:M.enum(["equals","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","blank","notBlank"],"DateTime string filter operation type")})},z_=(G)=>{return M.object({filterType:M.literal("number","Filter type identifier for number column filters"),colId:M.enum(G,"Column identifier for the number column to filter"),filter:M.number("Numeric value to filter by").nullable(),type:M.enum(["equals","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","blank","notBlank"],"Number filter operation type")})},B_=(G)=>{return M.object({filterType:M.literal("bigint","Filter type identifier for bigint column filters"),colId:M.enum(G,"Column identifier for the bigint column to filter"),filter:M.string({pattern:"^-?\\d+$",description:"BigInt value to filter by"}).nullable(),type:M.enum(["equals","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","blank","notBlank"],"BigInt filter operation type")})},Q_=(G)=>{return M.object({filterType:M.literal("text","Filter type identifier for text column filters"),colId:M.enum(G,"Column identifier for the text column to filter"),filter:M.string("Text value to filter by").nullable(),type:M.enum(["equals","notEqual","contains","notContains","startsWith","endsWith","blank","notBlank"],"Text filter operation type")})},J_={boolean:oH,object:rH,date:aH,dateString:eH,dateTime:G_,dateTimeString:D_,number:z_,bigint:B_,text:Q_},U_="agTextColumnFilter",m6="agNumberColumnFilter",t6="agDateColumnFilter",Z_="agSetColumnFilter",$_="agMultiColumnFilter",L_=[U_,m6,t6],S_=(G,D)=>{let{advancedFilter:z}=G;if(z?.isEnabled())return sH(G);else return X_(G,D)},X_=(G,D)=>{let{gos:z,colFilter:B,colModel:Q}=G;if(!B)return;let U=Q.getCols().filter((X)=>X.isFilterAllowed());if(U.length===0)return;let Z={},S=z.get("enableFilterHandlers");for(let X of U){let Y=D?.columns?D.columns[X.getColId()]:void 0,W=X.getColDef(),q=B.getDefaultFilter(X),H=Y?.includeSetValues??!1,_=s6(W.filter,W.filterParams,q,(k=!1,w=0)=>{if(!H)return[];let K=void 0;if(!k)K=B.getHandler(X,!0);else if(S)K=B.getHandler(X,!0).getHandler(w);if(!K)return[];return K.getFilterKeys()});if(_)Z[X.colId]=_.nullable()}return M.object({filterModel:M.object(Z)}).nullable()};function s6(G,D,z,B){let Q=void 0;if(typeof G==="string")Q=G;else if(typeof G==="object"&&typeof G.component==="string")Q=G.component;else if(G===!0||typeof G==="object"&&G.component===!0)Q=z;if(!Q)return null;if(L_.includes(Q)){let J=D?.maxNumConditions,U=D?.filterOptions?D.filterOptions.map((S)=>{if(typeof S==="string")return S;if(typeof S==="object"&&S.displayKey)return S.displayKey;return null}).filter(Boolean):void 0,Z=D?.useIsoSeparator||!1;return Y_(Q,{maxConditions:J,filterOptions:U,useIsoSeparator:Z})}else if(Q===Z_)return __(B);else if(Q===$_)return k_(D.filters,z,B);return null}var Y_=(G,D)=>{if(G===t6)return H_(D);else if(G===m6)return q_(D);else return W_(D)},_J=(G,D,z=2)=>{if(z===1)return G;return M.object({filterType:M.literal(D,`Filter type identifier for ${D} filters with multiple conditions`),operator:M.enum(["AND","OR"],"Logical operator to combine multiple filter conditions. Must be included even with a single filter to adhere to the API."),conditions:M.array(G,"Array of filter conditions to be combined").minItems(2).maxItems(z)})},W_=(G)=>{let D=G.filterOptions??["contains","notContains","equals","notEqual","startsWith","endsWith","blank","notBlank"],z=M.object({filterType:M.literal("text","Filter type identifier for text filters"),type:M.enum(D,"Text filter operation type"),filter:M.string("Primary filter value").nullable(),filterTo:M.string("Secondary filter value for range operations").nullable()});return _J(z,"text",G.maxConditions)},q_=(G)=>{let D=G.filterOptions??["equals","notEqual","greaterThan","greaterThanOrEqual","lessThan","lessThanOrEqual","inRange","blank","notBlank"],z=M.object({filterType:M.literal("number","Filter type identifier for number filters"),type:M.enum(D,"Number filter operation type"),filter:M.number("Primary filter value").nullable(),filterTo:M.number("Secondary filter value for range operations").nullable()});return _J(z,"number",G.maxConditions)},H_=(G)=>{let D=G.filterOptions??["equals","notEqual","lessThan","greaterThan","inRange","blank","notBlank"],z=G.useIsoSeparator?"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$":"^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",B=M.object({filterType:M.literal("date","Filter type identifier for date filters"),type:M.enum(D,"Date filter operation type"),dateFrom:M.string({pattern:z,description:"Primary date filter value in YYYY-MM-DD HH:mm:ss format"}).nullable(),dateTo:M.string({pattern:z,description:"Secondary date filter value for range operations in YYYY-MM-DD HH:mm:ss format"}).nullable()});return _J(B,"date",G.maxConditions)},__=(G)=>{let D=G?G().filter(Boolean):[];return M.object({filterType:M.literal("set","Filter type identifier for set filters"),values:M.array(D.length>0?M.enum(D,"Available values to filter by"):M.string("Filter values"),"Array of values to include in the filter")})},k_=(G,D,z=()=>[])=>{return M.object({filterType:M.literal("multi","Filter type identifier for multi-condition filters"),filterModels:M.array(M.union(G.map((B,Q)=>s6(B.filter,B.filterParams,D,()=>z(!0,Q))),"Union of different filter types that can be combined").nullable(),"Array of filter conditions to be combined with AND/OR logic")})},w_=(G)=>{let z=G.colModel.getCols().filter((B)=>B.isAllowPivot()).map((B)=>B.getColId());if(z.length===0)return;return M.object({pivotMode:M.boolean("Whether pivot mode is enabled"),pivotColIds:M.array(M.enum(z,"Column ID that supports pivoting"),"Array of column IDs to use as pivot columns")},"Pivot configuration for the grid").nullable()},K_=(G)=>{let z=G.colModel.getCols().filter((Q)=>Q.isAllowRowGroup());if(z.length===0)return;let B=z.map((Q)=>Q.getColId());return M.object({groupColIds:M.array(M.enum(B,"Column ID that supports row grouping"),"Array of column IDs to group by")},"Row grouping configuration for the grid")},f_=(G)=>{let{sortSvc:D}=G;if(!D)return;let B=G.colModel.getCols().filter((J)=>J.isSortable());if(B.length===0)return;let Q=B.map((J)=>J.getColId());return M.object({sortModel:M.array(M.object({colId:M.enum(Q,"Column ID that supports sorting"),sort:M.enum(["asc","desc"],"Sort direction: ascending or descending"),type:M.enum(["default","absolute"],"Sort type: default or absolute values")}),"Array of sort configurations")},"Sort configuration for the grid").nullable()},N_={aggregation:pH,filter:S_,sort:f_,pivot:w_,columnVisibility:tH,columnSizing:mH,rowGroup:K_};function F_(G,D){let z=G.colModel.getCols().map((Z)=>Z.getColId()),B={};for(let Z of TH){if(D?.exclude?.includes(Z))continue;let S=N_[Z],X=S(G,D);if(X)B[Z]=X.nullable()}let Q=D?.columns??{},J=z.map((Z)=>{if(Q[Z]?.description)return`${Z}: ${Q[Z].description}`;else return Z}).filter(Boolean).join(` `);return M.object(B).define("allColumnIds",M.enum(z,J)).toJSON()}var o6={moduleName:"AiToolkit",version:j,beans:[],dependsOn:[i,gH],apiFunctions:{getStructuredSchema:F_}};function C_(G){return G.sideBar?.comp.isDisplayed()??!1}function V_(G,D){G.sideBar?.comp.setDisplayed(D)}function b_(G,D){G.sideBar?.comp.setSideBarPosition(D)}function v_(G,D,z){G.sideBar?.comp.openToolPanel(D,"api",z)}function O_(G){G.sideBar?.comp.close("api")}function u_(G){return G.sideBar?.comp.openedItem()??null}function j_(G){G.sideBar?.comp.refresh()}function P_(G){return G.sideBar?.comp.isToolPanelShowing()??!1}function g_(G,D){let z=G.sideBar?.comp.getToolPanelInstance(D);return R_(z)}function T_(G){return G.sideBar?.comp.getDef()}var s_=`.ag-tool-panel-wrapper{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--ag-horizontal-size,var(--ag-side-bar-panel-width))}.ag-tool-panel-content{display:flex;height:100%;overflow:hidden auto}.ag-tool-panel-wrapper.ag-tool-panel-animating{ /* !important required to override .ag-hidden to tool panel remains visible while animating */display:block!important;transition:width var(--ag-side-bar-panel-animation-duration) ease-in-out}@media (prefers-reduced-motion:reduce){.ag-tool-panel-wrapper.ag-tool-panel-animating{transition:none}}.ag-tool-panel-external{display:flex;flex-direction:row}:where(.ag-tool-panel-external) .ag-tool-panel-wrapper{flex-grow:1}.ag-select-agg-func-item{align-items:center;display:flex;flex:1 1 auto;flex-flow:row nowrap;height:100%;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.ag-tool-panel-horizontal-resize{cursor:ew-resize;height:100%;position:absolute;top:0;width:5px;z-index:1}.ag-side-bar{background-color:var(--ag-side-bar-background-color);display:flex;flex-direction:row-reverse;position:relative}:where(.ag-ltr) :where(.ag-side-bar-left) .ag-tool-panel-horizontal-resize{right:-3px}:where(.ag-rtl) :where(.ag-side-bar-left) .ag-tool-panel-horizontal-resize{left:-3px}:where(.ag-ltr) :where(.ag-side-bar-right) .ag-tool-panel-horizontal-resize{left:-3px}:where(.ag-rtl) :where(.ag-side-bar-right) .ag-tool-panel-horizontal-resize{right:-3px}.ag-side-bar-left{flex-direction:row;order:-1}.ag-side-buttons{background-color:var(--ag-side-button-bar-background-color);padding-top:var(--ag-side-button-bar-top-padding);position:relative}.ag-side-button{background-color:var(--ag-side-button-background-color);border-bottom:var(--ag-side-button-border);border-top:var(--ag-side-button-border);color:var(--ag-side-button-text-color);margin-top:-1px;position:relative}.ag-side-button:before{background-color:transparent;bottom:0;content:"";display:block;position:absolute;top:0;transition:background-color var(--ag-side-button-selected-underline-transition-duration);width:var(--ag-side-button-selected-underline-width)}:where(.ag-ltr) .ag-side-button:before{left:0}:where(.ag-rtl) .ag-side-button:before{right:0}.ag-side-button:hover{background-color:var(--ag-side-button-hover-background-color);color:var(--ag-side-button-hover-text-color)}.ag-side-button.ag-selected{background-color:var(--ag-side-button-selected-background-color);border-bottom:var(--ag-side-button-selected-border);border-top:var(--ag-side-button-selected-border);color:var(--ag-side-button-selected-text-color)}.ag-side-button.ag-selected:before{background-color:var(--ag-side-button-selected-underline-color)}.ag-side-button-button{align-items:center;display:flex;flex-direction:column;gap:var(--ag-spacing);position:relative;white-space:nowrap;width:100%;&:focus{box-shadow:none}}:where(.ag-ltr) .ag-side-button-button{padding:var(--ag-side-button-vertical-padding) var(--ag-side-button-right-padding) var(--ag-side-button-vertical-padding) var(--ag-side-button-left-padding)}:where(.ag-rtl) .ag-side-button-button{padding:var(--ag-side-button-vertical-padding) var(--ag-side-button-left-padding) var(--ag-side-button-vertical-padding) var(--ag-side-button-right-padding)}.ag-side-button-button:focus-visible{box-shadow:inset var(--ag-focus-shadow)}.ag-side-button-label{writing-mode:vertical-lr}@media (resolution <= 1.5x){.ag-side-button-label{font-family:"Segoe UI",var(--ag-font-family)}:where(.ag-ltr) .ag-side-button-label{transform:rotate(.05deg)}:where(.ag-rtl) .ag-side-button-label{transform:rotate(-.05deg)}}:where(.ag-ltr) .ag-side-bar-left,:where(.ag-rtl) .ag-side-bar-right{border-right:var(--ag-side-panel-border);:where(.ag-tool-panel-wrapper){border-left:var(--ag-side-panel-border)}}:where(.ag-ltr) .ag-side-bar-right,:where(.ag-rtl) .ag-side-bar-left{border-left:var(--ag-side-panel-border);:where(.ag-tool-panel-wrapper){border-right:var(--ag-side-panel-border)}}`,Qk={tag:"div",cls:"ag-side-button",role:"presentation",children:[{tag:"button",ref:"eToggleButton",cls:"ag-button ag-side-button-button",role:"tab",attrs:{type:"button",tabindex:"-1","aria-expanded":"false"},children:[{tag:"div",ref:"eIconWrapper",cls:"ag-side-button-icon-wrapper",attrs:{"aria-hidden":"true"}},{tag:"span",ref:"eLabel",cls:"ag-side-button-label"}]}]},Jk=class extends Dk{constructor(G){super();this.toolPanelDef=G,this.eToggleButton=MQ,this.eIconWrapper=MQ,this.eLabel=MQ}getToolPanelId(){return this.toolPanelDef.id}postConstruct(){this.setTemplate(Qk,[]),this.setLabel(),this.setIcon(),this.addManagedElementListeners(this.eToggleButton,{click:this.onButtonPressed.bind(this)}),this.eToggleButton.setAttribute("id",`ag-${this.getCompId()}-button`)}setLabel(){let G=this.toolPanelDef,D=this.getLocaleTextFunc()(G.labelKey,G.labelDefault);this.eLabel.textContent=D}setIcon(){this.eIconWrapper.insertAdjacentElement("afterbegin",zk(this.toolPanelDef.iconKey,this.beans))}onButtonPressed(){this.dispatchLocalEvent({type:"toggleButtonClicked"})}setSelected(G){this.toggleCss("ag-selected",G),Bk(this.eToggleButton,G)}},Uk={tag:"div",cls:"ag-side-buttons",role:"tablist"},Zk=class extends o_{constructor(){super(Uk);this.buttonComps=[]}postConstruct(){this.addManagedElementListeners(this.getFocusableElement(),{keydown:this.handleKeyDown.bind(this)})}handleKeyDown(G){if(G.key!==r_.TAB||!G.shiftKey)return;if(e_(this.beans,!0)){G.preventDefault();return}Gk(G)}setActiveButton(G){for(let D of this.buttonComps)D.setSelected(G===D.getToolPanelId())}addButtonComp(G){let D=this.createBean(new Jk(G));return this.buttonComps.push(D),this.appendChild(D),D.addEventListener("toggleButtonClicked",()=>{this.dispatchLocalEvent({type:"sideBarButtonClicked",toolPanelId:G.id})}),D}clearButtons(){this.buttonComps=this.destroyBeans(this.buttonComps),a_(this.getGui())}destroy(){this.clearButtons(),super.destroy()}},$k={selector:"AG-SIDE-BAR-BUTTONS",component:Zk},a6={id:"columns",labelDefault:"Columns",labelKey:"columns",iconKey:"columnsToolPanel",toolPanel:"agColumnsToolPanel"},e6={id:"filters",labelDefault:"Filters",labelKey:"filters",iconKey:"filtersToolPanel",toolPanel:"agFiltersToolPanel"},Lk={id:"filters-new",labelDefault:"Filters",labelKey:"filters",iconKey:"filtersToolPanel",toolPanel:"agNewFiltersToolPanel"},B0={columns:a6,filters:e6,"filters-new":Lk};function p1(G){if(!G)return;if(G===!0)return{toolPanels:[a6,e6],defaultToolPanel:"columns"};if(typeof G==="string")return p1([G]);if(Array.isArray(G)){let D=[];for(let z of G){let B=B0[z];if(!B){r6(215,{key:z,defaultByKey:B0});continue}D.push(B)}if(D.length===0)return;return{toolPanels:D,defaultToolPanel:D[0].id}}return{toolPanels:Sk(G.toolPanels),defaultToolPanel:G.defaultToolPanel,hiddenByDefault:G.hiddenByDefault,position:G.position,hideButtons:G.hideButtons}}function Sk(G){let D=[];if(!G)return D;return G.forEach((z)=>{let B=Xk(z);if(!B)return;D.push(B)}),D}function Xk(G){if(typeof G!=="string")return G;if(B0[G])return B0[G];return r6(215,{key:G,defaultByKey:B0}),null}var Hk=class extends qk{constructor(){super({tag:"div",cls:"ag-tool-panel-horizontal-resize"});this.minWidth=100,this.maxWidth=null}postConstruct(){let G=this.beans.horizontalResizeSvc.addResizeBar({eResizeBar:this.getGui(),dragStartPixels:1,onResizeStart:this.onResizeStart.bind(this),onResizing:this.onResizing.bind(this),onResizeEnd:this.onResizeEnd.bind(this)});this.addDestroyFunc(G),this.inverted=this.gos.get("enableRtl")}dispatchResizeEvent(G,D,z){this.eventSvc.dispatchEvent({type:"toolPanelSizeChanged",width:z,started:G,ended:D})}onResizeStart(){this.startingWidth=this.elementToResize.offsetWidth,this.dispatchResizeEvent(!0,!1,this.startingWidth)}onResizeEnd(G){return this.onResizing(G,!0)}onResizing(G,D=!1){let z=this.inverted?-1:1,B=Math.max(this.minWidth,Math.floor(this.startingWidth-G*z));if(this.maxWidth!=null)B=Math.min(this.maxWidth,B);this.elementToResize.style.setProperty("--ag-horizontal-size",`${B}px`),this.dispatchResizeEvent(!1,D,B)}};function _k(G,D,z){return G.getCompDetails(D,kk,void 0,z,!0)}var kk={name:"toolPanel",optionalMethods:["refresh","getState"]},wk={tag:"div",cls:"ag-tool-panel-wrapper",role:"tabpanel",children:[{tag:"div",cls:"ag-tool-panel-content",ref:"eContent"}]},Kk=class extends Yk{constructor(){super(wk);this.eContent=Wk,this.animationId=0,this.defParent=null}postConstruct(){let G=this.getGui(),D=this.resizeBar=this.createManagedBean(new Hk);G.setAttribute("id",`ag-${this.getCompId()}`),D.elementToResize=G,this.appendChild(D)}getToolPanelId(){return this.toolPanelId}getDefParent(){return this.defParent}setDefParent(G){this.defParent=G}setToolPanelDef(G,D){let{id:z,minWidth:B,maxWidth:Q,width:J,parent:U}=G;if(this.toolPanelId=z,this.defParent=U??null,J)this.getGui().style.setProperty("--ag-side-bar-panel-width",`${J}px`);let Z=_k(this.beans.userCompFactory,G,D);if(Z==null)return!1;let S=Z.newAgStackInstance();this.params=Z.params,S.then(this.setToolPanelComponent.bind(this));let X=this.resizeBar;if(B!=null)X.minWidth=B;if(Q!=null)X.maxWidth=Q;return!0}setToolPanelComponent(G){this.toolPanelCompInstance=G;let{eContent:D}=this;D.appendChild(G.getGui()),this.addDestroyFunc(()=>{this.destroyBean(G)})}getToolPanelInstance(){return this.toolPanelCompInstance}setResizerSizerSide(G){let D=this.gos.get("enableRtl"),z=G==="left",B=D?z:!z;this.resizeBar.inverted=B}refresh(){this.toolPanelCompInstance?.refresh(this.params)}animateDisplayed(G){if(this.isDisplayed()===G)return;let D=++this.animationId,{eContent:z}=this,B=()=>{if(this.animationId===D)Q.classList.remove("ag-tool-panel-animating"),z.style.width="",Q.style.width=""},Q=this.getGui(),J=Q.offsetWidth;this.setDisplayed(G),Q.classList.add("ag-tool-panel-animating");let U=getComputedStyle(Q).transitionDuration;if(!parseFloat(U)){B();return}Q.style.transition="none",Q.style.width="",z.style.width=`${z.offsetWidth}px`,Q.style.width=`${J}px`;let Z=Q.offsetWidth;Q.style.transition="",Q.style.width=G?"":"0";let S=setTimeout(B,100);Q.addEventListener("transitionstart",()=>clearTimeout(S),{once:!0}),Q.addEventListener("transitionend",B,{once:!0})}},fk={tag:"div",cls:"ag-side-bar ag-unselectable",children:[{tag:"ag-side-bar-buttons",ref:"sideBarButtons"}]},Nk=class extends x_{constructor(){super(fk,[$k]);this.sideBarButtons=h_,this.toolPanelWrappers=[],this.registerCSS(s_)}postConstruct(){this.sideBarButtons.addEventListener("sideBarButtonClicked",this.onToolPanelButtonClicked.bind(this));let{beans:G,gos:D}=this,{sideBar:z}=D.get("initialState")??{};this.setSideBarDef({sideBarDef:p1(D.get("sideBar")),sideBarState:z}),this.addManagedPropertyListener("sideBar",()=>this.setState()),G.sideBar.comp=this;let B=this.getFocusableElement();this.createManagedBean(new c_(B,{onTabKeyDown:this.onTabKeyDown.bind(this),handleKeyDown:this.handleKeyDown.bind(this)})),i_(G,this,B),this.addManagedPropertyListener("enableAdvancedFilter",this.onAdvancedFilterChanged.bind(this))}getFocusableContainerName(){return"sideBar"}onTabKeyDown(G){if(G.defaultPrevented)return;let{beans:D,sideBarButtons:z}=this,B=this.getGui(),Q=z.getGui(),J=oU(D),U=B.querySelector(".ag-tool-panel-wrapper:not(.ag-hidden)"),Z=G.target,S=G.shiftKey;if(!U){if(l_(D,S,!0))return G.preventDefault(),!0;return t_(G),!1}if(Q.contains(J)){if(d_(U,S))G.preventDefault();return}if(!S)return;let X=null;if(U.contains(J))X=n_(D,U,void 0,!0);else if(u6(U,Z))X=c1(U,Z);if(!X)X=Q.querySelector(".ag-selected button"),X=p_(X)?X:null;if(X&&X!==G.target)G.preventDefault(),X.focus()}handleKeyDown(G){let D=oU(this.beans),z=this.sideBarButtons;if(!z.getGui().contains(D))return;let B=z.getGui(),Q=Array.prototype.slice.call(B.querySelectorAll(".ag-side-button")),J=Q.findIndex((S)=>S.contains(D)),U=null;switch(G.key){case O0.LEFT:case O0.UP:U=Math.max(0,J-1);break;case O0.RIGHT:case O0.DOWN:U=Math.min(J+1,Q.length-1);break}if(U===null)return;let Z=Q[U].querySelector("button");if(Z)Z.focus(),G.preventDefault()}onToolPanelButtonClicked(G){let D=G.toolPanelId;if(this.openedItem()===D)this.openToolPanel(void 0,"sideBarButtonClicked");else this.openToolPanel(D,"sideBarButtonClicked")}clearDownUi(){this.sideBarButtons.clearButtons(),this.destroyToolPanelWrappers()}setSideBarDef({sideBarDef:G,sideBarState:D,existingToolPanelWrappers:z}){if(this.setDisplayed(!1),this.sideBar=G,G)this.sideBarButtons.setDisplayed(!G.hideButtons);if(G?.toolPanels){let B=G.toolPanels;if(this.createToolPanelsAndSideButtons(B,D,z),!this.toolPanelWrappers.length)return;let Q=D?D.visible:!G.hiddenByDefault;if(this.setDisplayed(Q),this.setSideBarPosition(D?D.position:G.position),Q)if(D){let{openToolPanel:J}=D;if(J)this.openToolPanel(J,"sideBarInitializing")}else this.openToolPanel(G.defaultToolPanel,"sideBarInitializing")}}getDef(){return this.sideBar}setSideBarPosition(G){if(!G)G="right";this.position=G;let D=G==="left",z=D?"right":"left";this.toggleCss("ag-side-bar-left",D),this.toggleCss("ag-side-bar-right",!D);for(let B of this.toolPanelWrappers)B.setResizerSizerSide(z);return this.dispatchSideBarUpdated(),this}setDisplayed(G,D){super.setDisplayed(G,D),this.dispatchSideBarUpdated()}getState(){let G={};for(let D of this.toolPanelWrappers)G[D.getToolPanelId()]=D.getToolPanelInstance()?.getState?.();return{visible:this.isDisplayed(),position:this.position,openToolPanel:this.openedItem(),toolPanels:G}}createToolPanelsAndSideButtons(G,D,z){for(let B of G)this.createToolPanelAndSideButton(B,D?.toolPanels?.[B.id],z?.[B.id])}validateDef(G){let{id:D,toolPanel:z}=G;if(D==null)return IQ(212),!1;if(aU(z)){if(this.beans.filterManager?.isAdvFilterEnabled())return IQ(213),!1}return!0}createToolPanelAndSideButton(G,D,z){if(!this.validateDef(G)){this.destroyBean(z);return}let B;if(z)B=z,B.setDefParent(G.parent??null);else if(B=this.createBean(new Kk),!B.setToolPanelDef(G,sU(this.gos,{initialState:D,onStateUpdated:()=>this.dispatchSideBarUpdated()})))return;B.setDisplayed(!1),this.renderToolPanelUnderParent(B,G.parent),this.toolPanelWrappers.push(B);let Q=this.sideBarButtons.addButtonComp(G);m_(Q.eToggleButton,B.getGui())}refresh(){for(let G of this.toolPanelWrappers)G.refresh()}renderToolPanelUnderParent(G,D){let z=G.getGui();if(D)this.beans.environment.applyThemeClasses(D,["ag-external","ag-tool-panel-external"]),z.classList.add(this.gos.get("enableRtl")?"ag-rtl":"ag-ltr");let B=D??G.getDefParent()??this.getGui();if(z.parentElement!==B)B.appendChild(z)}getWrapper(G){return this.toolPanelWrappers.find((D)=>D.getToolPanelId()===G)}openToolPanel(G,D="api",z){let B=this.openedItem(),J=!!G&&!!B||D==="sideBarInitializing";for(let S of this.toolPanelWrappers){let X=G===S.getToolPanelId();if(X)this.renderToolPanelUnderParent(S,z??null);if(J)S.setDisplayed(X);else S.animateDisplayed(X)}let U=this.openedItem();if(B!==U)this.sideBarButtons.setActiveButton(G),this.raiseToolPanelVisibleEvent(G,B??void 0,D)}getToolPanelInstance(G){let D=this.getWrapper(G);if(!D){IQ(214,{key:G});return}return D.getToolPanelInstance()}raiseToolPanelVisibleEvent(G,D,z){let B=!!G&&!!D,Q=this.eventSvc;if(D)Q.dispatchEvent({type:"toolPanelVisibleChanged",source:z,key:D,visible:!1,switchingToolPanel:B});if(G)Q.dispatchEvent({type:"toolPanelVisibleChanged",source:z,key:G,visible:!0,switchingToolPanel:B})}close(G="api"){this.openToolPanel(void 0,G)}isToolPanelShowing(){return!!this.openedItem()}openedItem(){let G=null;for(let D of this.toolPanelWrappers)if(D.isDisplayed())G=D.getToolPanelId();return G}setState(G){let D=p1(this.gos.get("sideBar")),z={};if(D&&this.sideBar)D.toolPanels?.forEach((B)=>{let{id:Q}=B;if(!Q)return;let J=this.sideBar.toolPanels?.find((X)=>X.id===Q);if(!J||B.toolPanel!==J.toolPanel)return;let U=this.getWrapper(Q);if(!U)return;let Z=sU(this.gos,{...B.toolPanelParams??{},initialState:G?.toolPanels?.[Q],onStateUpdated:()=>this.dispatchSideBarUpdated()});if(U.getToolPanelInstance()?.refresh(Z)!==!0)return;this.toolPanelWrappers=this.toolPanelWrappers.filter((X)=>X!==U),rU(U.getGui()),z[Q]=U});this.clearDownUi(),this.setSideBarDef({sideBarDef:D,sideBarState:G,existingToolPanelWrappers:z})}dispatchSideBarUpdated(){this.eventSvc.dispatchEvent({type:"sideBarUpdated"})}destroyToolPanelWrappers(){for(let G of this.toolPanelWrappers)rU(G.getGui()),this.destroyBean(G);this.toolPanelWrappers.length=0}onAdvancedFilterChanged(){if(this.sideBar?.toolPanels?.some((D)=>aU(typeof D==="string"?D:D.toolPanel)))this.setState()}destroy(){this.destroyToolPanelWrappers(),super.destroy()}};function aU(G){return G==="agFiltersToolPanel"||G==="agNewFiltersToolPanel"}var Fk={selector:"AG-SIDE-BAR",component:Nk},Ek=class extends y_{constructor(){super(...arguments);this.beanName="sideBar"}getSelector(){return Fk}},jD={moduleName:"SideBar",version:j,beans:[Ek],apiFunctions:{isSideBarVisible:C_,setSideBarVisible:V_,setSideBarPosition:b_,openToolPanel:v_,closeToolPanel:O_,getOpenedToolPanel:u_,refreshToolPanel:j_,isToolPanelShowing:P_,getToolPanelInstance:g_,getSideBar:T_},dependsOn:[i,A_]},Ik='.ag-menu-list{cursor:default;display:table;padding:var(--ag-spacing) 0;width:100%}.ag-menu-option,.ag-menu-separator{display:table-row}.ag-menu-option-part,.ag-menu-separator-part{display:table-cell;vertical-align:middle}.ag-menu-option{cursor:pointer;font-weight:500}:where(.ag-ltr) :where(.ag-menu-option-popup-pointer) .ag-icon{text-align:right}:where(.ag-rtl) :where(.ag-menu-option-popup-pointer) .ag-icon{text-align:left}.ag-menu-option-text{white-space:nowrap}.ag-menu-option-custom{display:contents}.ag-compact-menu-option{display:flex;flex-wrap:nowrap;width:100%}.ag-compact-menu-option-text{flex:1 1 auto;white-space:nowrap}.ag-menu-separator{height:calc(var(--ag-spacing)*2 + 1px)}.ag-menu-separator-part:after{border-top:solid var(--ag-border-width) var(--ag-menu-separator-color);content:"";display:block}.ag-compact-menu-option-active,.ag-menu-option-active{background-color:var(--ag-row-hover-color)}.ag-compact-menu-option-part,.ag-menu-option-part{line-height:var(--ag-icon-size);padding:calc(var(--ag-spacing) + 2px) 0}.ag-compact-menu-option-disabled,.ag-menu-option-disabled{cursor:not-allowed;opacity:.5}.ag-compact-menu-option-icon,.ag-menu-option-icon{width:var(--ag-icon-size)}:where(.ag-ltr) .ag-compact-menu-option-icon,:where(.ag-ltr) .ag-menu-option-icon{padding-left:calc(var(--ag-spacing)*2)}:where(.ag-rtl) .ag-compact-menu-option-icon,:where(.ag-rtl) .ag-menu-option-icon{padding-right:calc(var(--ag-spacing)*2)}.ag-compact-menu-option-text,.ag-menu-option-text{padding-left:calc(var(--ag-spacing)*2);padding-right:calc(var(--ag-spacing)*2)}:where(.ag-ltr) .ag-compact-menu-option-shortcut,:where(.ag-ltr) .ag-menu-option-shortcut{padding-right:var(--ag-spacing)}:where(.ag-rtl) .ag-compact-menu-option-shortcut,:where(.ag-rtl) .ag-menu-option-shortcut{padding-left:var(--ag-spacing)}:where(.ag-ltr) .ag-compact-menu-option-popup-pointer,:where(.ag-ltr) .ag-menu-option-popup-pointer{padding-right:var(--ag-spacing)}:where(.ag-rtl) .ag-compact-menu-option-popup-pointer,:where(.ag-rtl) .ag-menu-option-popup-pointer{padding-left:var(--ag-spacing)}.ag-menu-column-select-wrapper{height:265px;overflow:auto;:where(.ag-column-select){height:100%}}.ag-menu:where(.ag-tabs){min-width:290px}.ag-context-menu-loading-icon{pointer-events:none;position:absolute}',G7=class extends O6{constructor(){super({warnNoIcon:()=>Mk(227)})}},TB={moduleName:"MenuItem",version:j,userComponents:{agMenuItem:G7},icons:{check:"tick",subMenuOpen:"small-right",subMenuOpenRtl:"small-left"},css:[Ik]},jk=".ag-column-select{display:flex;flex:3 1 0px;flex-direction:column;overflow:hidden;position:relative}.ag-column-select-header{flex:none;height:var(--ag-header-height);padding-left:var(--ag-widget-container-horizontal-padding);padding-right:var(--ag-widget-container-horizontal-padding)}.ag-column-select-column,.ag-column-select-column-group,.ag-column-select-header{align-items:center;display:flex;gap:var(--ag-widget-horizontal-spacing);position:relative}.ag-column-select-column,.ag-column-select-column-group{height:100%}:where(.ag-ltr) .ag-column-select-column,:where(.ag-ltr) .ag-column-select-column-group{padding-left:calc(var(--ag-indentation-level)*var(--ag-column-select-indent-size))}:where(.ag-rtl) .ag-column-select-column,:where(.ag-rtl) .ag-column-select-column-group{padding-right:calc(var(--ag-indentation-level)*var(--ag-column-select-indent-size))}.ag-column-select-column-group:where(:not(:last-child)),.ag-column-select-column:where(:not(:last-child)){margin-bottom:var(--ag-widget-vertical-spacing)}.ag-column-select-header-icon{border-radius:var(--ag-border-radius);cursor:pointer;height:var(--ag-icon-size);position:relative;width:var(--ag-icon-size);&:focus-visible{box-shadow:var(--ag-focus-shadow)}}.ag-column-select-header-filter-wrapper{flex:1 1 auto}.ag-column-select-header-filter{width:100%}.ag-column-select-list{flex:1 1 0px;overflow:hidden}:where(.ag-ltr) .ag-column-select-add-group-indent{margin-left:calc(var(--ag-icon-size) + var(--ag-spacing)*1.5)}:where(.ag-rtl) .ag-column-select-add-group-indent{margin-right:calc(var(--ag-icon-size) + var(--ag-spacing)*1.5)}.ag-column-select-column-group-readonly,.ag-column-select-column-readonly{opacity:.5;pointer-events:none;.ag-icon{opacity:.5}&.ag-icon-grip{opacity:.35}}.ag-column-select-column-readonly{&.ag-icon-grip,.ag-icon-grip{opacity:.35}}.ag-column-select-virtual-list-viewport{padding:calc(var(--ag-widget-container-vertical-padding)*.5) 0}.ag-column-select-virtual-list-item{padding:0 var(--ag-widget-container-horizontal-padding)}.ag-column-select-column-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ag-column-select-checkbox{display:flex}",ck=300,hk={tag:"div",cls:"ag-column-select-header",role:"presentation",children:[{tag:"div",ref:"eExpand",cls:"ag-column-select-header-icon"},{tag:"ag-checkbox",ref:"eSelect",cls:"ag-column-select-header-checkbox"},{tag:"ag-input-text-field",ref:"eFilterTextField",cls:"ag-column-select-header-filter-wrapper"}]},ik=class extends Tk{constructor(){super(hk,[Pk,gk]);this.eExpand=AQ,this.eSelect=AQ,this.eFilterTextField=AQ}postConstruct(){this.createExpandIcons(),this.addManagedListeners(this.eExpand,{click:this.onExpandClicked.bind(this),keydown:(D)=>{if(D.key===yk.SPACE)D.preventDefault(),this.onExpandClicked()}}),this.addManagedElementListeners(this.eSelect.getInputElement(),{click:this.onSelectClicked.bind(this)}),this.addManagedPropertyListener("functionsReadOnly",()=>this.onFunctionsReadOnlyPropChanged()),this.eFilterTextField.setAutoComplete(!1).onValueChange(()=>this.onFilterTextChanged()),this.addManagedEventListeners({newColumnsLoaded:this.showOrHideOptions.bind(this)});let G=this.getLocaleTextFunc();this.eSelect.setInputAriaLabel(G("ariaColumnSelectAll","Toggle All Columns Visibility")),this.eFilterTextField.setInputAriaLabel(G("ariaFilterColumnsInput","Filter Columns Input")),this.activateTabIndex([this.eExpand])}onFunctionsReadOnlyPropChanged(){let G=this.gos.get("functionsReadOnly");this.eSelect.setReadOnly(G),this.eSelect.toggleCss("ag-column-select-column-readonly",G)}init(G){this.params=G;let D=this.gos.get("functionsReadOnly");if(this.eSelect.setReadOnly(D),this.eSelect.toggleCss("ag-column-select-column-readonly",D),this.beans.colModel.ready)this.showOrHideOptions()}createExpandIcons(){let G=this.beans;this.eExpand.appendChild(this.eExpandChecked=RQ("columnSelectOpen",G)),this.eExpand.appendChild(this.eExpandUnchecked=RQ("columnSelectClosed",G)),this.eExpand.appendChild(this.eExpandIndeterminate=RQ("columnSelectIndeterminate",G)),this.setExpandState(0)}showOrHideOptions(){let G=this.params,D=!G.suppressColumnFilter,z=!G.suppressColumnSelectAll,B=!G.suppressColumnExpandAll,Q=!!this.beans.colModel.colDefCols?.treeDepth,J=this.getLocaleTextFunc();this.eFilterTextField.setInputPlaceholder(J("searchOoo","Search...")),hD(this.eFilterTextField.getGui(),D),hD(this.eSelect.getGui(),z),hD(this.eExpand,B&&Q)}onFilterTextChanged(){if(!this.onFilterTextChangedDebounced)this.onFilterTextChangedDebounced=xk(this,()=>{let G=this.eFilterTextField.getValue();this.dispatchLocalEvent({type:"filterChanged",filterText:G})},ck);this.onFilterTextChangedDebounced()}onSelectClicked(){this.dispatchLocalEvent({type:this.selectState?"unselectAll":"selectAll"})}onExpandClicked(){this.dispatchLocalEvent({type:this.expandState===0?"collapseAll":"expandAll"})}setExpandState(G){this.expandState=G,hD(this.eExpandChecked,G===0),hD(this.eExpandUnchecked,G===1),hD(this.eExpandIndeterminate,G===2)}setSelectionState(G){this.selectState=G,this.eSelect.setValue(this.selectState)}},nk={selector:"AG-PRIMARY-COLS-HEADER",component:ik};function Dz(G){return!!G&&typeof G.children<"u"}function JD(G){return Dz(G)?G.groupId:G.colId}function D7(G,D,z){let B=(U,Z)=>{let X=U.children.map(JD).includes(JD(Z)),Y=ek(U.children),W=Y&&JD(Y)!==JD(Z);return X&&W};if(!Dz(G))return!0;let Q=G,J=z;if(B(Q,J))return Q.children.push(J),!0;if(Q.groupId===D){if(!Q.children.map(JD).includes(JD(J)))return Q.children.push(J),!0}for(let U=Q.children.length-1;U>=0;U--)if(D7(Q.children[U],D,z))break;return!1}function z7(G){let D=(Q,J)=>{return Dz(Q)&&Dz(J)&&JD(Q)===JD(J)},z=(Q,J)=>{if(!Dz(J))return Q;let U=Q,Z=J;if(Z.children&&Z.groupId){if(D7(U,Z.groupId,Z.children[0]))return U}for(let S of Z.children)z(U,S);return U},B=[];for(let Q=1;Q<=G.length;Q++){let J=G[Q-1],U=G[Q];if(D(J,U))G[Q]=z(J,U);else B.push(J)}return B}function B7(G,D){let z=[],B=(J,U)=>{if(Dz(J)){let Z=J,S=typeof Z.groupId<"u"?Z.groupId:Z.headerName,X=new ok(Z,S,!1,U),Y=[];for(let W of Z.children){let q=B(W,U+1);if(q)Y.push(q)}return X.setChildren(Y),X}else{let Z=J,S=Z.colId?Z.colId:Z.field,X=G.getColDefCol(S);if(!X)z.push(Z);return X}},Q=[];for(let J of D){let U=B(J,0);if(U)Q.push(U)}if(z.length>0)rk(217,{invalidColIds:z});return Q}function Q7(G,D){let z=J7(D3(G)),B=z7(z);D(B)}function G3(G,D){let z=J7(G),B=z7(z);D(B)}function J7(G){let D=(z,B)=>{let Q;if(ak(z))if(z.isPadding())Q=B;else{let U=Object.assign({},z.getColGroupDef());U.groupId=z.getGroupId(),U.children=[B],Q=U}else{let U=Object.assign({},z.getColDef());U.colId=z.getColId(),Q=U}let J=z.getOriginalParent();if(J)return D(J,Q);else return Q};return G.map((z)=>D(z,z.getColDef()))}function D3(G){return G.getCols().filter((D)=>{let z=D.getColDef();return D.isPrimary()&&!z.showRowGroup})}var DZ=class{constructor(G,D,z,B=!1,Q){if(this.displayName=G,this.depth=z,this.group=B,this.localEventService=new z3,B)this.columnGroup=D,this._expanded=Q,this.children=[];else this.column=D}get expanded(){return!!this._expanded}set expanded(G){if(G===this._expanded)return;this._expanded=G,this.localEventService.dispatchEvent({type:"expandedChanged"})}addEventListener(G,D){this.localEventService.addEventListener(G,D)}removeEventListener(G,D){this.localEventService.removeEventListener(G,D)}};function x(G){return!!G?.buttons?.includes("apply")}function YG(G,D){if(!x(D))return;let z=G.sideBar?.comp.openedItem();if(!z)return;G.sideBar?.comp.getToolPanelInstance(z)?.refreshDeferredUi()}function U7(G,D,z,B,Q){let J=W3(D);Z7(G,J,z,B,Q)}function Z7(G,D,z,B,Q){if(G.columnStateUpdateStrategy.getPivotMode(x(Q)))H3(G,D,z,B,Q);else q3(G,D,z,B,Q)}function W3(G){let D=[],z=(B)=>{for(let Q of B){if(!Q.passesFilter)continue;if(Q.group)z(Q.children);else D.push(Q.column)}};return z(G),D}function q3(G,D,z,B,Q){let J=G.columnStateUpdateStrategy,U=[];for(let Z of D){if(Z.getColDef().lockVisible)continue;if(J.isColumnVisibleInToolPanel(x(Q),Z)!==z)U.push({colId:Z.getId(),hide:!z})}J.applyColumnState(x(Q),U,B),YG(G,Q)}function H3(G,D,z,B,Q){_3(G,D,z,B,Q)}function _3(G,D,z,B,Q){let J=G.columnStateUpdateStrategy,U=[],X=z?(Y)=>{if(J.isColumnSelectedInPivotModeToolPanel(x(Q),Y))return;if(Y.isAllowValue()){let W=typeof Y.getAggFunc()==="string"?Y.getAggFunc():G.aggFuncSvc?.getDefaultAggFunc(Y);U.push({colId:Y.getId(),aggFunc:W})}else if(Y.isAllowRowGroup())U.push({colId:Y.getId(),rowGroup:!0});else if(Y.isAllowPivot())U.push({colId:Y.getId(),pivot:!0})}:(Y)=>{if(J.isColumnSelectedInPivotModeToolPanel(x(Q),Y))U.push({colId:Y.getId(),pivot:!1,rowGroup:!1,aggFunc:null})};D.forEach(X),J.applyColumnState(x(Q),U,B),YG(G,Q)}function $7(G,D){let{columns:z,visibleState:B,pivotState:Q,eventType:J}=D,U=G.columnStateUpdateStrategy,Z=U.getPivotMode(x(D)),S=z.map((X)=>{let Y=X.getColId();if(Z){let W=Q?.[Y];return{colId:Y,pivot:W?.pivot,rowGroup:W?.rowGroup,aggFunc:W?.aggFunc}}else return{colId:Y,hide:!B?.[Y]}});U.applyColumnState(x(D),S,J),YG(G,D)}function k3(G){return{pivot:G.isPivotActive(),rowGroup:G.isRowGroupActive(),aggFunc:G.isValueActive()?G.getAggFunc():void 0}}function L7(G,D,z){if(!z)return k3(G);let B=D.getRowGroupColumns(z).includes(G),Q=D.getPivotColumns(z).includes(G),J=D.getValueColumns(z).includes(G);return{pivot:Q,rowGroup:B,aggFunc:J?D.getColumnAggFunc(z,G):void 0}}var S7=(G,D)=>{if(!D)return[];let z=G;for(let B=0,Q=D.length;B{let B=G.aggData;if(B===D)return;if(G.aggData=D,G.__localEventService)F3(G,B,D,z)},JZ=(G,D,z)=>{aD(G,D,z);let B=G.pinnedSibling;if(B)aD(B,D,z);let Q=G.sibling;if(Q){aD(Q,D,z);let J=Q.pinnedSibling;if(J)aD(J,D,z)}},F3=(G,D,z,B)=>{if(!z){if(!D)return;let U=Object.keys(D);for(let Z=0,S=U.length;Z{let Q=D.getCol(z),J=G._groupData;if(!J)J={},G._groupData=J;let U=Q.getColId(),Z=J[U];if(Z===B)return;J[U]=B,G.dispatchCellChangedEvent(Q,B,Z)},ZZ=(G,D,z)=>{if(!G)return;let B=G.group;if(B===z)return;if(G.group=z,G.updateHasChildren(),B&&!z)aD(G,null,D.colModel),G.setAllChildrenCount(null);D.selectionSvc?.updateRowSelectable(G),G.dispatchRowEvent("groupChanged")},kJ=(G,D,z)=>{ZZ(G,D,z),ZZ(G.pinnedSibling,D,z)},Z0=(G,D)=>{let{gos:z,rowGroupColsSvc:B}=D;if(!B||!G)return!1;let Q=z.get("groupLockGroupColumns");if(!G.isRowGroupActive()||Q===0)return!1;if(Q===-1)return!0;let J=B.columns.findIndex((U)=>U.getColId()===G.getColId());return Q>J},Q0=(G,D,z)=>{let Q=G(D,`${D==="groupBy"?"Group by":"Un-Group by"} ${z}`,[z]);if(Q.indexOf(z)>=0)return Q;else return`${Q} ${z}`};function V3(G){let D=A3(G),z="getSelection"in D?D.getSelection():null,B=[];for(let Q=0;Q<(z?.rangeCount??0);Q++){let J=z?.getRangeAt(Q);if(J)B.push(J)}return{selection:z,ranges:B}}function b3(G,D){if(!G.gos.get("enableCellTextSelection"))return D();if(!R3()&&!C3())return D();let{selection:B,ranges:Q}=V3(G);D(),B?.removeAllRanges();for(let J of Q)B?.addRange(J)}var v3={name:"menuItem",optionalMethods:["setActive","select","setExpanded","configureDefaults"]},wJ={getMenuItemComp:(G,D,z)=>{return G.userCompFactory.getCompDetails(D,v3,"agMenuItem",I3(G.gos,z),!0)?.newAgStackInstance()??$Z.resolve()},getPostProcessPopupParams:({column:G,node:D})=>({column:G,rowNode:D}),preserveRangesWhile:b3,stopPropagationCallbacks:E3,warnNoItem:(G)=>{M3(228,{menuItemOrString:G})}},O3=class extends NB{constructor(){super(wJ)}},KJ=class extends uB{constructor(G,D={column:null,node:null,value:null}){super(G,D,wJ)}},X7=class extends w3{constructor(G,D,z,B={}){super({tag:"div",cls:"ag-menu"});this.column=G,this.mouseEventOrTouch=D,this.parentEl=z,this.params=B,this.displayName=null}postConstruct(){let{column:G,beans:{colNames:D}}=this;this.initializeProperties(G);let z;if(f3(G))z=D.getDisplayNameForColumn(G,"columnToolPanel");else z=D.getDisplayNameForProvidedColumnGroup(null,G,"columnToolPanel");if(this.displayName=z,this.buildMenuItemMap(),this.isActive()){let B=this.mouseEventOrTouch;if("preventDefault"in B)B.preventDefault();let Q=this.getMappedMenuItems();if(Q.length===0)return;this.displayContextMenu(Q)}}initializeProperties(G){let D=this.beans.columnStateUpdateStrategy,z;if(N3(G))z=G.getLeafColumns();else z=[G];this.columns=z;let B=D.getPivotMode(x(this.params));this.allowScrollIntoView=!B&&z.some(this.isColumnValidForScrollIntoView),this.allowGrouping=z.some((Q)=>Q.isPrimary()&&Q.isAllowRowGroup()),this.allowValues=z.some((Q)=>Q.isPrimary()&&Q.isAllowValue()),this.allowPivoting=B&&z.some((Q)=>Q.isPrimary()&&Q.isAllowPivot())}buildMenuItemMap(){let G=this.getLocaleTextFunc(),{beans:D,displayName:z}=this,B=this.beans.columnStateUpdateStrategy,Q=new Map;this.menuItemMap=Q;let J=x(this.params),U=B.getPivotMode(J),Z=new Set(B.getRowGroupColumns(J).map((H)=>H.getColId())),S=new Set(B.getValueColumns(J).map((H)=>H.getColId())),X=new Set(B.getPivotColumns(J).map((H)=>H.getColId()));Q.set("scrollIntoView",{allowedFunction:(H)=>!H.isPinned()&&!U&&this.isColumnValidForScrollIntoView(H),activeFunction:()=>!1,activateLabel:()=>G("scrollColumnIntoView",`Scroll ${z} into View`,[z]),activateFunction:()=>{let H=this.columns.find(this.isColumnValidForScrollIntoView);if(H)this.beans.ctrlsSvc.getScrollFeature().ensureColumnVisible(H)},deActivateFunction:()=>{},addIcon:"ensureColumnVisible"});let Y=(H)=>H.isPrimary()&&H.isAllowRowGroup()&&!Z0(H,D);Q.set("rowGroup",{allowedFunction:Y,activeFunction:(H)=>Z.has(H.getColId()),activateLabel:()=>Q0(G,"groupBy",z),deactivateLabel:()=>Q0(G,"ungroupBy",z),activateFunction:()=>{let H=this.addColumnsToList(B.getRowGroupColumns(J),Y);B.setRowGroupColumns(J,H,"toolPanelUi"),YG(this.beans,this.params)},deActivateFunction:()=>{let H=this.removeColumnsFromList(B.getRowGroupColumns(J),Y);B.setRowGroupColumns(J,H,"toolPanelUi"),YG(this.beans,this.params)},addIcon:"menuAddRowGroup",removeIcon:"menuRemoveRowGroup"});let W=(H)=>H.isPrimary()&&H.isAllowValue();Q.set("value",{allowedFunction:W,activeFunction:(H)=>S.has(H.getColId()),activateLabel:()=>G("addToValues",`Add ${z} to values`,[z]),deactivateLabel:()=>G("removeFromValues",`Remove ${z} from values`,[z]),activateFunction:()=>{let H=this.addColumnsToList(B.getValueColumns(J),W);B.setValueColumns(J,H,"toolPanelUi"),YG(this.beans,this.params)},deActivateFunction:()=>{let H=this.removeColumnsFromList(B.getValueColumns(J),W);B.setValueColumns(J,H,"toolPanelUi"),YG(this.beans,this.params)},addIcon:"valuePanel",removeIcon:"valuePanel"});let q=(H)=>U&&H.isPrimary()&&H.isAllowPivot();Q.set("pivot",{allowedFunction:q,activeFunction:(H)=>X.has(H.getColId()),activateLabel:()=>G("addToLabels",`Add ${z} to labels`,[z]),deactivateLabel:()=>G("removeFromLabels",`Remove ${z} from labels`,[z]),activateFunction:()=>{let H=this.addColumnsToList(B.getPivotColumns(J),q);B.setPivotColumns(J,H,"toolPanelUi"),YG(this.beans,this.params)},deActivateFunction:()=>{let H=this.removeColumnsFromList(B.getPivotColumns(J),q);B.setPivotColumns(J,H,"toolPanelUi"),YG(this.beans,this.params)},addIcon:"pivotPanel",removeIcon:"pivotPanel"})}isColumnValidForScrollIntoView(G){if(!G.isVisible())return!1;let z=G.getParent();if(!z)return!0;return z.getDisplayedChildren()?.includes(G)??!0}addColumnsToList(G,D){return[...G].concat(this.columns.filter((z)=>D(z)&&!G.includes(z)))}removeColumnsFromList(G,D){return G.filter((z)=>!D(z)||!this.columns.includes(z))}displayContextMenu(G){let D=this.getGui(),z=this.createBean(new KJ),B=this.getLocaleTextFunc(),Q=()=>{};D.appendChild(z.getGui()),z.addMenuItems(G),z.addManagedListeners(z,{closeMenu:()=>{this.parentEl.focus(),Q()}});let J=this.beans.popupSvc,U=J.addPopup({modal:!0,eChild:D,closeOnEsc:!0,afterGuiAttached:()=>K3(z.getGui()),ariaLabel:B("ariaLabelContextMenu","Context Menu"),closedCallback:(Z)=>{if(Z instanceof KeyboardEvent)this.parentEl.focus();this.destroyBean(z)}});if(U)Q=U.hideFunc;J.positionPopupUnderMouseEvent({type:"columnContextMenu",mouseEvent:this.mouseEventOrTouch,ePopup:D})}isActive(){return this.allowScrollIntoView||this.allowGrouping||this.allowValues||this.allowPivoting}getMappedMenuItems(){let G=[],{menuItemMap:D,columns:z,displayName:B,beans:Q}=this;for(let J of D.values()){let U=z.some((S)=>J.allowedFunction(S)&&!J.activeFunction(S)),Z=z.some((S)=>J.allowedFunction(S)&&J.activeFunction(S));if(U)G.push({name:J.activateLabel(B),icon:QZ(J.addIcon,Q,null),action:()=>J.activateFunction()});if(Z&&J.removeIcon&&J.deactivateLabel)G.push({name:J.deactivateLabel(B),icon:QZ(J.removeIcon,Q,null),action:()=>J.deActivateFunction?.()})}return G}},u3={tag:"div",cls:"ag-column-select-column-group",children:[{tag:"span",ref:"eColumnGroupIcons",cls:"ag-column-group-icons",children:[{tag:"span",ref:"eGroupClosedIcon",cls:"ag-column-group-closed-icon"},{tag:"span",ref:"eGroupOpenedIcon",cls:"ag-column-group-opened-icon"}]},{tag:"ag-checkbox",ref:"cbSelect",cls:"ag-column-select-checkbox"},{tag:"span",ref:"eLabel",cls:"ag-column-select-column-label"}]},Y7=class extends J3{constructor(G,D,z,B,Q){super();this.modelItem=G,this.allowDragging=D,this.eventType=z,this.focusWrapper=B,this.params=Q,this.cbSelect=Az,this.eLabel=Az,this.eGroupOpenedIcon=Az,this.eGroupClosedIcon=Az,this.eColumnGroupIcons=Az,this.processingColumnStateChange=!1;let{columnGroup:J,depth:U,displayName:Z}=G;this.columnGroup=J,this.columnDepth=U,this.displayName=Z}postConstruct(){this.setTemplate(u3,[Q3]);let{beans:G,cbSelect:D,eLabel:z,displayName:B,columnDepth:Q,modelItem:J,focusWrapper:U,columnGroup:Z}=this,{registry:S,gos:X}=G,Y=Z3("columnDrag",G);this.eDragHandle=Y,Y.classList.add("ag-drag-handle","ag-column-select-column-group-drag-handle");let W=D.getGui(),q=D.getInputElement();W.after(Y),q.setAttribute("tabindex","-1"),z.textContent=B??"",this.setupExpandContract(),this.addCss("ag-column-select-indent-"+Q),this.getGui().style.setProperty("--ag-indentation-level",String(Q)),this.tooltipFeature=this.createOptionalManagedBean(S.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.focusWrapper,getLocation:()=>"columnToolPanelColumnGroup",shouldDisplayTooltip:$3(X,()=>z)})),this.addManagedEventListeners({columnPivotModeChanged:this.onColumnStateChanged.bind(this)}),this.addManagedElementListeners(z,{click:this.onLabelClicked.bind(this)}),this.addManagedListeners(D,{fieldValueChanged:this.onCheckboxChanged.bind(this)}),this.addManagedListeners(J,{expandedChanged:this.onExpandChanged.bind(this)});let H=new zZ(this.getGui(),!1);this.addManagedListeners(H,{longTap:(k)=>this.onContextMenu(k.touchStart)}),this.addDestroyFunc(H.destroy.bind(H)),this.addManagedListeners(U,{keydown:this.handleKeyDown.bind(this),contextmenu:this.onContextMenu.bind(this)}),this.setOpenClosedIcons(),this.setupDragging(),this.onColumnStateChanged(),this.addVisibilityListenersToAllChildren(),this.refreshAriaExpanded(),this.refreshAriaLabel(),this.setupTooltip();let _=L3(Z.getColGroupDef(),X,null,Z);for(let k of _)this.toggleCss(k,!0)}getColumns(){return this.columnGroup.getLeafColumns()}setupTooltip(){let G=this.columnGroup.getColGroupDef();if(!G)return;let D=()=>this.tooltipFeature?.setTooltipAndRefresh(G.headerTooltip);D(),this.addManagedEventListeners({newColumnsLoaded:D})}handleKeyDown(G){switch(G.key){case CQ.LEFT:G.preventDefault(),this.modelItem.expanded=!1;break;case CQ.RIGHT:G.preventDefault(),this.modelItem.expanded=!0;break;case CQ.SPACE:if(G.preventDefault(),this.isSelectable())this.onSelectAllChanged(!this.isSelected());break}}onContextMenu(G){let{columnGroup:D,gos:z}=this;if(z.get("functionsReadOnly"))return;let B=this.createBean(new X7(D,G,this.focusWrapper,this.params));this.addDestroyFunc(()=>{if(B.isAlive())this.destroyBean(B)})}addVisibilityListenersToAllChildren(){let G=this.onColumnStateChanged.bind(this);for(let D of this.columnGroup.getLeafColumns())this.addManagedListeners(D,{visibleChanged:G,columnValueChanged:G,columnPivotChanged:G,columnRowGroupChanged:G})}setupDragging(){if(!this.allowDragging){VQ(this.eDragHandle,!1);return}let G=this.beans,{gos:D,eventSvc:z,dragAndDrop:B}=G,Q=!D.get("suppressDragLeaveHidesColumns"),J={type:U3.ToolPanel,eElement:this.eDragHandle,dragItemName:this.displayName,getDefaultIconName:()=>Q?"hide":"notAllowed",getDragItem:()=>this.createDragItem(),onDragStarted:()=>{Q=!D.get("suppressDragLeaveHidesColumns"),z.dispatchEvent({type:"columnPanelItemDragStart",column:this.columnGroup})},onDragStopped:()=>{z.dispatchEvent({type:"columnPanelItemDragEnd"})},onGridEnter:(U)=>{if(Q)$7(G,{columns:this.columnGroup.getLeafColumns(),visibleState:U?.visibleState,pivotState:U?.pivotState,eventType:this.eventType,buttons:this.params.buttons})},onGridExit:()=>{if(Q)this.onChangeCommon(!1)}};B.addDragSource(J,!0),this.addDestroyFunc(()=>B.removeDragSource(J))}createDragItem(){let G=this.columnGroup.getLeafColumns(),D={},z={},B=this.beans.columnStateUpdateStrategy,Q=x(this.params);for(let J of G){let U=J.getId();D[U]=J.isVisible(),z[U]=L7(J,B,Q)}return{columns:G,visibleState:D,pivotState:z}}setupExpandContract(){let{beans:G,eGroupClosedIcon:D,eGroupOpenedIcon:z,eColumnGroupIcons:B}=this;D.appendChild(BZ("columnSelectClosed",G,null)),z.appendChild(BZ("columnSelectOpen",G,null));let Q=this.onExpandOrContractClicked.bind(this);this.addManagedElementListeners(D,{click:Q}),this.addManagedElementListeners(z,{click:Q});let J=new zZ(B,!0);this.addManagedListeners(J,{tap:Q}),this.addDestroyFunc(J.destroy.bind(J))}onLabelClicked(){let G=!this.cbSelect.getValue();this.onChangeCommon(G)}onCheckboxChanged(G){this.onChangeCommon(G.selected)}getVisibleLeafColumns(){let G=[],D=(z)=>{for(let B of z)if(B.passesFilter)if(B.group)D(B.children);else G.push(B.column)};return D(this.modelItem.children),G}onChangeCommon(G){if(this.refreshAriaLabel(),this.processingColumnStateChange)return;U7(this.beans,this.modelItem.children,G,this.eventType,this.params)}refreshAriaLabel(){let{cbSelect:G,focusWrapper:D,displayName:z}=this,B=this.getLocaleTextFunc(),Q=B("ariaColumnGroup","Column Group"),J=G.getValue(),U=J===void 0?B("ariaIndeterminate","indeterminate"):J?B("ariaVisible","visible"):B("ariaHidden","hidden"),Z=B("ariaToggleVisibility","Press SPACE to toggle visibility");Y3(D,`${z} ${Q}`),G.setInputAriaLabel(`${Z} (${U})`),S3(D,G.getInputElement().id)}onColumnStateChanged(){let G=this.workOutSelectedValue(),D=this.workOutReadOnlyValue();this.processingColumnStateChange=!0;let z=this.cbSelect;z.setValue(G),z.setReadOnly(D),this.toggleCss("ag-column-select-column-group-readonly",D),this.processingColumnStateChange=!1}workOutSelectedValue(){let D=this.beans.columnStateUpdateStrategy.getPivotMode(x(this.params)),z=this.getVisibleLeafColumns(),B=0,Q=0;for(let J of z)if(D||!J.getColDef().lockVisible)if(this.isColumnChecked(J))B++;else Q++;if(B>0&&Q>0)return;return B>0}workOutReadOnlyValue(){let G=this.beans.columnStateUpdateStrategy.getPivotMode(x(this.params)),D=0;for(let z of this.columnGroup.getLeafColumns())if(G){if(z.isAnyFunctionAllowed())D++}else if(!z.getColDef().lockVisible)D++;return D===0}isColumnChecked(G){let D=this.beans.columnStateUpdateStrategy;if(D.getPivotMode(x(this.params)))return D.isColumnSelectedInPivotModeToolPanel(x(this.params),G);return D.isColumnVisibleInToolPanel(x(this.params),G)}onExpandOrContractClicked(){let G=this.modelItem,D=G.expanded;G.expanded=!D}onExpandChanged(){this.setOpenClosedIcons(),this.refreshAriaExpanded()}setOpenClosedIcons(){let G=this.modelItem.expanded;VQ(this.eGroupClosedIcon,!G),VQ(this.eGroupOpenedIcon,G)}refreshAriaExpanded(){X3(this.focusWrapper,this.modelItem.expanded)}getDisplayName(){return this.displayName}onSelectAllChanged(G){let D=this.cbSelect,z=D.getValue();if(!D.isReadOnly()&&(G&&!z||!G&&z))D.toggle()}isSelected(){return this.cbSelect.getValue()}isSelectable(){return!this.cbSelect.isReadOnly()}setSelected(G){this.cbSelect.setValue(G,!0)}},bQ=(G)=>{if(B3(G))return G.getLeafColumns();return G?[G]:[]},j3=(G,D,z,B)=>{if(!D||!G)return null;let Q=B.indexOf(D),J=z?Q:Q+1,U=P3(B,G,J);return J-U},P3=(G,D,z)=>{if(!D)return 0;let B=D[0],Q=D.length;if(G.indexOf(B){let Q=x(B);if(G.get("suppressMovableColumns")||D.columnStateUpdateStrategy.getPivotMode(Q))return!0;return!!z.find(({colDef:Z})=>!!Z.suppressMovable||!!Z.lockPosition)},SZ=(G,D,z,B)=>{if(!z)return;let{component:Q}=z,J=null,U=z.position==="top";if(Q instanceof Y7)J=Q.getColumns()[0],U=!0;else if(Q)J=Q.column;if(!J)return;let Z=x(B),S=Z?G.columnStateUpdateStrategy.getPrimaryColumns(Z):G.colModel.getCols(),X=j3(D,J,U,S);if(X!=null)G.columnStateUpdateStrategy.moveColumns(Z,D,X,"toolPanelUi"),YG(G,B)},g3=(G)=>{return G.column},s3={tag:"div",cls:"ag-column-select-column",children:[{tag:"ag-checkbox",ref:"cbSelect",cls:"ag-column-select-checkbox"},{tag:"span",ref:"eLabel",cls:"ag-column-select-column-label"}]},o3=class extends y3{constructor(G,D,z,B,Q){super();this.modelItem=G,this.allowDragging=D,this.groupsExist=z,this.focusWrapper=B,this.params=Q,this.eLabel=XZ,this.cbSelect=XZ,this.processingColumnStateChange=!1;let{column:J,depth:U,displayName:Z}=G;this.column=J,this.columnDepth=U,this.displayName=Z}postConstruct(){this.setTemplate(s3,[T3]);let{beans:G,cbSelect:D,displayName:z,eLabel:B,columnDepth:Q,groupsExist:J,column:U,gos:Z,focusWrapper:S}=this,X=i3("columnDrag",G);this.eDragHandle=X,X.classList.add("ag-drag-handle","ag-column-select-column-drag-handle");let Y=D.getGui(),W=D.getInputElement();if(Y.after(X),W.setAttribute("tabindex","-1"),B.textContent=z,J)this.addCss("ag-column-select-add-group-indent");this.addCss(`ag-column-select-indent-${Q}`),this.getGui().style.setProperty("--ag-indentation-level",String(Q)),this.tooltipFeature=this.createOptionalManagedBean(G.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.focusWrapper,getLocation:()=>"columnToolPanelColumn",shouldDisplayTooltip:n3(Z,()=>B),getAdditionalParams:()=>({colDef:U.getColDef()})})),this.setupDragging();let q=this.onColumnStateChanged.bind(this);this.addManagedEventListeners({columnPivotModeChanged:q}),this.addManagedListeners(U,{columnValueChanged:q,columnPivotChanged:q,columnRowGroupChanged:q,visibleChanged:q}),this.addManagedListeners(S,{keydown:this.handleKeyDown.bind(this),contextmenu:this.onContextMenu.bind(this)});let H=new h3(S);this.addManagedListeners(H,{longTap:(k)=>this.onContextMenu(k.touchStart)}),this.addDestroyFunc(H.destroy.bind(H)),this.addManagedPropertyListener("functionsReadOnly",this.onColumnStateChanged.bind(this)),this.addManagedListeners(D,{fieldValueChanged:this.onCheckboxChanged.bind(this)}),this.addManagedElementListeners(B,{click:this.onLabelClicked.bind(this)}),this.onColumnStateChanged(),this.refreshAriaLabel(),this.setupTooltip();let _=d3(U.getColDef(),Z,U,null);for(let k of _)this.toggleCss(k,!0)}getColumn(){return this.column}setupTooltip(){let G=()=>this.tooltipFeature?.setTooltipAndRefresh(this.column.getColDef().headerTooltip);G(),this.addManagedEventListeners({newColumnsLoaded:G})}onContextMenu(G){let{column:D,gos:z}=this;if(z.get("functionsReadOnly"))return;let B=this.createBean(new X7(D,G,this.focusWrapper,this.params));this.addDestroyFunc(()=>{if(B.isAlive())this.destroyBean(B)})}handleKeyDown(G){if(G.key===c3.SPACE){if(G.preventDefault(),this.isSelectable())this.onSelectAllChanged(!this.isSelected())}}onLabelClicked(){if(this.gos.get("functionsReadOnly"))return;let G=!this.cbSelect.getValue();this.onChangeCommon(G)}onCheckboxChanged(G){this.onChangeCommon(G.selected)}onChangeCommon(G){if(this.cbSelect.isReadOnly())return;if(this.refreshAriaLabel(),this.processingColumnStateChange)return;Z7(this.beans,[this.column],G,"toolPanelUi",this.params)}refreshAriaLabel(){let{cbSelect:G,focusWrapper:D,displayName:z}=this,B=this.getLocaleTextFunc(),Q=B("ariaColumn","Column"),J=G.getValue()?B("ariaVisible","visible"):B("ariaHidden","hidden"),U=B("ariaToggleVisibility","Press SPACE to toggle visibility");p3(D,`${z} ${Q}`),this.cbSelect.setInputAriaLabel(`${U} (${J})`),l3(D,G.getInputElement().id)}setupDragging(){let G=this.eDragHandle;if(!this.allowDragging){m3(G,!1);return}let D=this.beans,{gos:z,eventSvc:B,dragAndDrop:Q}=D;if(x(this.params))G.setAttribute("data-column-tool-panel-deferred","");let J=!z.get("suppressDragLeaveHidesColumns"),U={type:x3.ToolPanel,eElement:G,dragItemName:this.displayName,getDefaultIconName:()=>J&&!x(this.params)?"hide":"notAllowed",getDragItem:()=>this.createDragItem(),onDragStarted:()=>{J=!z.get("suppressDragLeaveHidesColumns"),B.dispatchEvent({type:"columnPanelItemDragStart",column:this.column})},onDragStopped:()=>{B.dispatchEvent({type:"columnPanelItemDragEnd"})},onGridEnter:(Z)=>{if(J&&!x(this.params))$7(D,{columns:[this.column],visibleState:Z?.visibleState,pivotState:Z?.pivotState,eventType:"toolPanelUi",buttons:this.params.buttons})},onGridExit:()=>{if(J&&!x(this.params))this.onChangeCommon(!1)}};Q.addDragSource(U,!0),this.addDestroyFunc(()=>Q.removeDragSource(U))}createDragItem(){let G=this.column.getColId(),D={[G]:this.column.isVisible()},z=this.beans.columnStateUpdateStrategy,B={[G]:L7(this.column,z,x(this.params))};return{columns:[this.column],visibleState:D,pivotState:B}}onColumnStateChanged(){this.processingColumnStateChange=!0;let G=this.beans.columnStateUpdateStrategy,D=G.getPivotMode(x(this.params));if(D){let Q=G.isColumnSelectedInPivotModeToolPanel(x(this.params),this.column);this.cbSelect.setValue(Q)}else this.cbSelect.setValue(G.isColumnVisibleInToolPanel(x(this.params),this.column));let z=!0,B=!0;if(D){let Q=this.gos.get("functionsReadOnly"),J=!this.column.isAnyFunctionAllowed();z=!Q&&!J,B=z}else{let{enableRowGroup:Q,enableValue:J,lockPosition:U,suppressMovable:Z,lockVisible:S}=this.column.getColDef(),X=!!Q||!!J,Y=!!U||!!Z;z=!S,B=X||!Y}this.cbSelect.setReadOnly(!z),this.eDragHandle.classList.toggle("ag-column-select-column-readonly",!B),this.toggleCss("ag-column-select-column-readonly",!B&&!z),this.cbSelect.setPassive(!1),this.processingColumnStateChange=!1}getDisplayName(){return this.displayName}onSelectAllChanged(G){let D=this.cbSelect;if(G!==D.getValue()){if(!D.isReadOnly())D.toggle()}}isSelected(){return this.cbSelect.getValue()}isSelectable(){return!this.cbSelect.isReadOnly()}isExpandable(){return!1}setExpanded(G){t3(158)}},r3=class{constructor(G){this.items=G}getRowCount(){return this.items.length}getRow(G){return this.items[G]}},a3="ag-column-select-list",e3=class extends dk{constructor(){super({tag:"div",cls:a3,role:"presentation"});this.destroyColumnItemFuncs=[],this.hasLoadedInitialState=!1,this.isInitialState=!1,this.skipRefocus=!1}wireBeans(G){this.colModel=G.colModel}destroy(){this.destroyColumnTree(),super.destroy()}destroyColumnTree(){this.allColsTree=[];for(let G of this.destroyColumnItemFuncs)G();this.destroyColumnItemFuncs=[]}init(G,D,z){this.params=G;let{suppressSyncLayoutWithGrid:B,contractColumnSelection:Q,suppressColumnMove:J}=G;if(this.allowDragging=D,this.eventType=z,!B)this.addManagedEventListeners({columnMoved:this.onColumnsChanged.bind(this)});this.addManagedEventListeners({newColumnsLoaded:this.onColumnsChanged.bind(this)});let U=this.fireSelectionChangedEvent.bind(this);this.addManagedEventListeners({columnPivotChanged:U,columnPivotModeChanged:U,columnRowGroupChanged:U,columnValueChanged:U,columnVisible:U,newColumnsLoaded:U}),this.expandGroupsByDefault=!Q;let Z=J||B,S=this.createManagedBean(new Lz({cssIdentifier:"column-select",ariaRole:"tree",moveItemCallback:(X,Y)=>{if(Z)return;this.moveItems(X,Y)}}));if(this.virtualList=S,this.appendChild(S.getGui()),S.setComponentCreator((X,Y)=>{return mk(Y,X.depth+1),this.createComponentFromItem(X,Y)}),this.colModel.ready)this.onColumnsChanged();if(Z)return;this.createItemDragFeature()}createItemDragFeature(){let{gos:G,beans:D,virtualList:z}=this;this.createManagedBean(new c6(this,z,{dragSourceType:lk.ToolPanel,addListeners:(B,Q,J)=>{B.addManagedEventListeners({columnPanelItemDragStart:Q,columnPanelItemDragEnd:J})},getCurrentDragValue:(B)=>g3(B),isMoveBlocked:(B)=>LZ(G,D,bQ(B),this.params),getNumRows:(B)=>B.getDisplayedColsList().length,moveItem:(B,Q)=>SZ(D,bQ(B),Q,this.params)}))}moveItems(G,D){let{gos:z,beans:B}=this,{modelItem:Q}=G,{group:J,columnGroup:U,column:Z,expanded:S}=Q,X=bQ(J?U:Z);if(LZ(z,B,X,this.params))return;let Y=this.displayedColsList.indexOf(Q),W=D?-1:1,q=0;if(D){let _=G.columnDepth>0?Z.getParent()?.getChildren():null;if(_?.length&&Z===_[0])q=-1}else if(J)q=S?Q.children.length:0;let H=Math.min(Math.max(Y+q+W,0),this.displayedColsList.length-1);this.skipRefocus=!0,SZ(B,X,{rowIndex:H,position:D?"top":"bottom",component:this.virtualList.getComponentAt(H)},this.params),this.focusRowIfAlive(H-q).then(()=>{this.skipRefocus=!1})}createComponentFromItem(G,D){let z=this.allowDragging;if(G.group){let Q=new Y7(G,z,this.eventType,D,this.params);return this.createBean(Q),Q}let B=new o3(G,z,this.groupsExist,D,this.params);return this.createBean(B),B}onColumnsChanged(){let G=this.params;if(!this.hasLoadedInitialState)this.hasLoadedInitialState=!0,this.isInitialState=!!G.initialState;let D=this.getExpandedStates(),z=this.colModel.isPivotMode(),B=x(G),Q=B&&this.beans.columnStateUpdateStrategy.hasDeferredColumnOrder(B);if((!G.suppressSyncLayoutWithGrid||B)&&!z||Q)this.buildTreeFromWhatGridIsDisplaying();else this.buildTreeFromProvidedColumnDefs();this.setExpandedStates(D),this.markFilteredColumns(),this.flattenAndFilterModel(),this.isInitialState=!1}getDisplayedColsList(){return this.displayedColsList}getExpandedStates(){let G={};if(this.isInitialState){let{expandedGroupIds:D}=this.params.initialState;for(let z of D)G[z]=!0;return G}if(!this.allColsTree)return{};return this.forEachItem((D)=>{if(!D.group)return;let z=D.columnGroup;if(z)G[z.getId()]=D.expanded}),G}setExpandedStates(G){if(!this.allColsTree)return;let{isInitialState:D}=this;this.forEachItem((z)=>{if(!z.group)return;let B=z.columnGroup;if(B){let Q=G[B.getId()];if(Q!=null||D)z.expanded=!!Q}})}buildTreeFromWhatGridIsDisplaying(){let G=x(this.params);if(G&&this.beans.columnStateUpdateStrategy.hasDeferredColumnOrder(G)){let D=this.beans.columnStateUpdateStrategy.getPrimaryColumns(G);if(D.length>0){G3(D,this.setColumnLayout.bind(this));return}}if(this.params.suppressSyncLayoutWithGrid){this.buildTreeFromProvidedColumnDefs();return}Q7(this.colModel,this.setColumnLayout.bind(this))}setColumnLayout(G){let D=B7(this.colModel,G);this.buildListModel(D),this.groupsExist=G.some((z)=>{return z&&typeof z.children<"u"}),this.markFilteredColumns(),this.flattenAndFilterModel()}buildTreeFromProvidedColumnDefs(){let G=this.colModel;this.buildListModel(G.getColDefColTree()),this.groupsExist=!!G.colDefCols?.treeDepth}buildListModel(G){let D=this.onColumnExpanded.bind(this),z=(Z)=>{Z.addEventListener("expandedChanged",D);let S=Z.removeEventListener.bind(Z,"expandedChanged",D);this.destroyColumnItemFuncs.push(S)},B=this.beans.colNames,Q=(Z,S,X)=>{for(let Y of Z)if(sk(Y))J(Y,S,X);else U(Y,S,X)},J=(Z,S,X)=>{if(Z.getColGroupDef()?.suppressColumnsToolPanel)return;if(Z.isPadding()){Q(Z.getChildren(),S,X);return}let q=B.getDisplayNameForProvidedColumnGroup(null,Z,"columnToolPanel"),H=new DZ(q,Z,S,!0,this.expandGroupsByDefault);X.push(H),z(H),Q(Z.getChildren(),S+1,H.children)},U=(Z,S,X)=>{if(Z.getColDef()?.suppressColumnsToolPanel)return;let W=B.getDisplayNameForColumn(Z,"columnToolPanel");X.push(new DZ(W,Z,S))};this.destroyColumnTree(),Q(G,0,this.allColsTree)}onColumnExpanded(){this.flattenAndFilterModel()}flattenAndFilterModel(){this.displayedColsList=[];let G=(B)=>{if(!B.passesFilter)return;if(this.displayedColsList.push(B),B.group&&B.expanded)B.children.forEach(G)},D=this.virtualList;this.allColsTree.forEach(G),D.setModel(new r3(this.displayedColsList));let z=null;if(!this.skipRefocus)z=D.getLastFocusedRow();if(D.refresh(),z!=null)this.focusRowIfAlive(z);this.notifyListeners(),this.refreshAriaLabel()}refreshAriaLabel(){let G=this.getLocaleTextFunc(),D=G("ariaColumnPanelList","Column List"),z=G("columns","Columns"),B=this.displayedColsList.length;pk(this.virtualList.getAriaElement(),`${D} ${B} ${z}`)}focusRowIfAlive(G){if(G===-1)return Promise.resolve();return new Promise((D)=>{window.setTimeout(()=>{if(this.isAlive())this.virtualList.focusRow(G);D()},0)})}forEachItem(G){let D=(B)=>{for(let Q of B)if(G(Q),Q.group)D(Q.children)},z=this.allColsTree;if(!z)return;D(z)}doSetExpandedAll(G){this.forEachItem((D)=>{if(D.group)D.expanded=G})}setGroupsExpanded(G,D){if(!D){this.doSetExpandedAll(G);return}let z=[];this.forEachItem((Q)=>{if(!Q.group)return;let J=Q.columnGroup.getId();if(D.indexOf(J)>=0)Q.expanded=G,z.push(J)});let B=D.filter((Q)=>!z.includes(Q));if(B.length>0)tk(157,{unrecognisedGroupIds:B})}getExpandState(){let G=0,D=0;if(this.forEachItem((z)=>{if(!z.group)return;if(z.expanded)G++;else D++}),G>0&&D>0)return 2;if(D>0)return 1;return 0}doSetSelectedAll(G){U7(this.beans,this.allColsTree,G,this.eventType,this.params),this.syncVisibleSelectionState(),this.fireSelectionChangedEvent()}syncVisibleSelectionState(){for(let G=0;G{if(Q.group)return;if(!Q.passesFilter)return;let J=Q.column,U=J.getColDef(),Z;if(B){if(!J.isAllowPivot()&&!J.isAllowRowGroup()&&!J.isAllowValue())return;Z=z.isColumnSelectedInPivotModeToolPanel(x(this.params),J)??!1}else{if(U.lockVisible)return;Z=z.isColumnVisibleInToolPanel(x(this.params),J)??!1}if(Z)G++;else D++}),G>0&&D>0)return;return!(G===0||D>0)}setFilterText(G){this.filterText=GZ(G)?G.toLowerCase():null,this.markFilteredColumns(),this.flattenAndFilterModel()}markFilteredColumns(){let G=(z)=>{if(!GZ(this.filterText))return!0;let B=z.displayName;return B==null||B.toLowerCase().indexOf(this.filterText)!==-1},D=(z,B)=>{let Q=!1;if(z.group){let U=G(z);for(let Z of z.children){let S=D(Z,U||B);if(S)Q=S}}let J=B||Q?!0:G(z);return z.passesFilter=J,J};for(let z of this.allColsTree)D(z,!1)}notifyListeners(){this.fireGroupExpandedEvent(),this.fireSelectionChangedEvent()}fireGroupExpandedEvent(){let G=this.getExpandState();this.dispatchLocalEvent({type:"groupExpanded",state:G})}fireSelectionChangedEvent(){if(!this.allColsTree)return;let G=this.getSelectionState();this.dispatchLocalEvent({type:"selectionChanged",state:G})}getExpandedGroups(){let G=[];if(!this.allColsTree)return G;return this.forEachItem((D)=>{if(D.group&&D.expanded)G.push(D.columnGroup.getId())}),G}},Gw={selector:"AG-PRIMARY-COLS-LIST",component:e3},Dw={tag:"div",cls:"ag-column-select",children:[{tag:"ag-primary-cols-header",ref:"primaryColsHeaderPanel"},{tag:"ag-primary-cols-list",ref:"primaryColsListPanel"}]},W7=class extends Ok{constructor(){super(Dw,[nk,Gw]);this.primaryColsHeaderPanel=eU,this.primaryColsListPanel=eU,this.registerCSS(jk)}init(G,D,z){let{primaryColsHeaderPanel:B,primaryColsListPanel:Q}=this;B.init(D);let{suppressColumnFilter:J,suppressColumnSelectAll:U}=D;if(D.suppressColumnExpandAll&&J&&U)B.setDisplayed(!1);this.addManagedListeners(Q,{groupExpanded:(S)=>{B.setExpandState(S.state),D.onStateUpdated()},selectionChanged:(S)=>B.setSelectionState(S.state)}),Q.init(D,G,z),this.addManagedListeners(B,{expandAll:Q.doSetExpandedAll.bind(Q,!0),collapseAll:Q.doSetExpandedAll.bind(Q,!1),selectAll:Q.doSetSelectedAll.bind(Q,!0),unselectAll:Q.doSetSelectedAll.bind(Q,!1),filterChanged:(S)=>Q.setFilterText(S.filterText)}),this.positionableFeature=this.createManagedBean(new uk(this.getGui(),{minHeight:100}))}toggleResizable(G){this.positionableFeature.setResizable(G?{bottom:!0}:!1)}expandGroups(G){this.primaryColsListPanel.setGroupsExpanded(!0,G)}collapseGroups(G){this.primaryColsListPanel.setGroupsExpanded(!1,G)}setColumnLayout(G){this.primaryColsListPanel.setColumnLayout(G)}syncLayoutWithGrid(){this.primaryColsListPanel.onColumnsChanged()}getExpandedGroups(){return this.primaryColsListPanel.getExpandedGroups()}},zw=".ag-column-panel{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.ag-pivot-mode-panel{display:flex;height:var(--ag-header-height)}.ag-pivot-mode-select{align-items:center;display:flex}:where(.ag-ltr) .ag-pivot-mode-select{margin-left:var(--ag-widget-container-horizontal-padding)}:where(.ag-rtl) .ag-pivot-mode-select{margin-right:var(--ag-widget-container-horizontal-padding)}.ag-column-panel-column-select:where(:not(.ag-last-visible-child)){border-bottom:var(--ag-tool-panel-separator-border)}.ag-column-panel-column-select:where(:nth-child(n+2 of :not(.ag-hidden))){border-top:var(--ag-tool-panel-separator-border)}:where(.ag-column-panel) .ag-column-drop-vertical{flex:1 1 0px;min-height:50px}:where(.ag-column-panel) .ag-column-drop-vertical:where(:not(.ag-last-column-drop)){border-bottom:var(--ag-tool-panel-separator-border)}.ag-column-panel-buttons{display:flex;flex-wrap:wrap;gap:var(--ag-widget-vertical-spacing) var(--ag-widget-horizontal-spacing);justify-content:flex-end;overflow:hidden;padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding) 0;:where(.ag-standard-button){transition:background-color .25s ease-in-out,color .25s ease-in-out}}.ag-column-panel-buttons:where(:last-child){padding-bottom:var(--ag-widget-container-vertical-padding)}.ag-column-panel-buttons-button{line-height:1.5}:where(.ag-column-panel) .ag-column-panel-buttons-apply-button:not(:disabled){background-color:var(--ag-column-panel-apply-button-background-color);color:var(--ag-column-panel-apply-button-color)}",Bw="ag-column-panel-deferred",Qw=class extends Ak{constructor(){super({tag:"div",cls:"ag-column-panel"});this.initialised=!1,this.childDestroyFuncs=[],this.isDeferModeEnabled=!1,this.isCommitting=!1,this.onDeferredApply=()=>{this.isCommitting=!0;try{this.beans.columnStateUpdateStrategy.commit(this.isDeferModeEnabled)}finally{this.isCommitting=!1}this.deferredButtonsComp?.updateValidity(!1),this.lastKnownGridState=this.captureGridState()},this.onDeferredCancel=()=>{this.beans.columnStateUpdateStrategy.reset(this.isDeferModeEnabled),this.deferredButtonsComp?.updateValidity(!1),this.refreshToolPanelLayouts(),this.pivotModePanel?.refreshEditStrategy(),this.lastKnownGridState=this.captureGridState()},this.onPivotModePanelValueChanged=()=>{this.refreshToolPanelLayouts(),this.setLastVisible(),this.deferredButtonsComp?.updateValidity(this.beans.columnStateUpdateStrategy.hasPendingChanges(this.isDeferModeEnabled))},this.onColumnEverythingChanged=()=>{if(!this.isDeferModeEnabled||this.isCommitting)return;let G=this.captureGridState();if(!this.beans.columnStateUpdateStrategy.hasPendingChanges(this.isDeferModeEnabled)){this.lastKnownGridState=G;return}let D=this.lastKnownGridState&&this.isGridStateEqual(this.lastKnownGridState,G);if(this.lastKnownGridState=G,!D)return;this.resetDeferredState()},this.onExternalGridChange=()=>{if(!this.isDeferModeEnabled||this.isCommitting)return;if(!this.beans.columnStateUpdateStrategy.hasPendingChanges(this.isDeferModeEnabled))return;this.resetDeferredState(),this.lastKnownGridState=this.captureGridState()},this.registerCSS(zw)}wireBeans(G){this.colToolPanelFactory=G.colToolPanelFactory}setVisible(G){if(super.setDisplayed(G),G&&!this.initialised)this.init(this.params)}init(G){let z={...Ck(this.gos,{suppressColumnMove:!1,suppressColumnSelectAll:!1,suppressColumnFilter:!1,suppressColumnExpandAll:!1,contractColumnSelection:!1,suppressPivotMode:!1,suppressRowGroups:!1,suppressValues:!1,suppressPivots:!1,suppressSyncLayoutWithGrid:!1}),...G};this.params=z;let{childDestroyFuncs:B,colToolPanelFactory:Q,gos:J}=this,U=J.isModuleRegistered("SharedPivot"),Z=U||J.isModuleRegistered("SharedRowGrouping");if(this.isDeferModeEnabled=x(z),this.toggleCss(Bw,this.isDeferModeEnabled),!z.suppressPivotMode&&Q&&U)this.pivotModePanel=Q.createPivotModePanel(this,B,z,this.onPivotModePanelValueChanged);let S=this.createBean(new W7);if(this.primaryColsPanel=S,B.push(()=>this.destroyBean(this.primaryColsPanel)),S.init(!0,z,"toolPanelUi"),S.addCss("ag-column-panel-column-select"),this.appendChild(S),Q){if(!z.suppressRowGroups&&Z)this.rowGroupDropZonePanel=Q.createRowGroupPanel(this,B,z);if(!z.suppressValues&&Z)this.valuesDropZonePanel=Q.createValuesPanel(this,B,z);if(!z.suppressPivots&&U)this.pivotDropZonePanel=Q.createPivotPanel(this,B,z);this.setLastVisible();let[X]=this.addManagedEventListeners({columnPivotModeChanged:()=>{this.resetChildrenHeight(),this.setLastVisible()}});B.push(()=>X())}if(this.isDeferModeEnabled){let X=this.onExternalGridChange;B.push(...this.addManagedEventListeners({columnEverythingChanged:this.onColumnEverythingChanged,sortChanged:X,columnVisible:X,columnRowGroupChanged:X,columnValueChanged:X,columnPivotChanged:X,columnPivotModeChanged:X,newColumnsLoaded:X,...z.suppressSyncLayoutWithGrid?{}:{columnMoved:X}}))}if(z.buttons){if(!z.buttons.includes("apply"))vk(298);if(z.buttons.length)this.initDeferredButtons(z.buttons)}this.initialised=!0}initDeferredButtons(G){let D=this.createBean(new Rk({className:"ag-column-panel-buttons"}));this.deferredButtonsComp=D,this.childDestroyFuncs.push(()=>{this.deferredButtonsComp=this.destroyBean(this.deferredButtonsComp)});let z=this.getLocaleTextFunc(),B=G.map((Q)=>({type:Q,label:z(Q==="apply"?"applyColumnToolPanel":"cancelColumnToolPanel",Q==="apply"?"Apply":"Cancel")}));D.updateButtons(B),D.updateValidity(!1),D.addManagedListeners(D,{apply:this.onDeferredApply,cancel:this.onDeferredCancel}),this.appendChild(D)}resetDeferredState(){this.beans.columnStateUpdateStrategy.reset(this.isDeferModeEnabled),this.deferredButtonsComp?.updateValidity(!1),this.refreshToolPanelLayouts(),this.pivotModePanel?.refreshEditStrategy()}captureGridState(){let{beans:G}=this,D=(z)=>(z??[]).map((B)=>B.getColId());return{rowGroupColIds:D(G.rowGroupColsSvc?.columns),valueColIds:D(G.valueColsSvc?.columns),pivotColIds:D(G.pivotColsSvc?.columns),pivotMode:G.colModel.isPivotMode(),columnOrder:G.colModel.getCols().map((z)=>z.getColId()),visibleColIds:G.colModel.getCols().filter((z)=>z.isVisible()).map((z)=>z.getColId()),sortState:G.colModel.getCols().filter((z)=>z.getSort()).map((z)=>`${z.getColId()}:${z.getSort()}:${z.getSortIndex()}`),aggFuncState:(G.valueColsSvc?.columns??[]).map((z)=>z.getAggFunc()),widthState:G.colModel.getCols().map((z)=>`${z.getColId()}:${z.getActualWidth()}`)}}isGridStateEqual(G,D){return aG(G.rowGroupColIds,D.rowGroupColIds)&&aG(G.valueColIds,D.valueColIds)&&aG(G.pivotColIds,D.pivotColIds)&&G.pivotMode===D.pivotMode&&aG(G.columnOrder,D.columnOrder)&&aG(G.visibleColIds,D.visibleColIds)&&aG(G.sortState,D.sortState)&&aG(G.aggFuncState,D.aggFuncState)&&aG(G.widthState,D.widthState)}refreshDeferredUi(){this.refreshToolPanelLayouts(),this.setLastVisible(),this.pivotModePanel?.refreshEditStrategy(),this.deferredButtonsComp?.updateValidity(this.beans.columnStateUpdateStrategy.hasPendingChanges(this.isDeferModeEnabled))}refreshToolPanelLayouts(){this.primaryColsPanel.syncLayoutWithGrid(),this.rowGroupDropZonePanel?.refreshGui(),this.valuesDropZonePanel?.refreshGui(),this.pivotDropZonePanel?.refresh()}setPivotModeSectionVisible(G){let D=this.colToolPanelFactory;if(!D)return;this.pivotModePanel=D.setPanelVisible(this.pivotModePanel,G,D.createPivotModePanel.bind(D,this,this.childDestroyFuncs,this.params,this.onPivotModePanelValueChanged,!0)),this.setLastVisible()}setRowGroupsSectionVisible(G){let D=this.colToolPanelFactory;if(!D)return;this.rowGroupDropZonePanel=D.setPanelVisible(this.rowGroupDropZonePanel,G,D.createRowGroupPanel.bind(D,this,this.childDestroyFuncs,this.params)),this.setLastVisible()}setValuesSectionVisible(G){let D=this.colToolPanelFactory;if(!D)return;this.valuesDropZonePanel=D.setPanelVisible(this.valuesDropZonePanel,G,D.createValuesPanel.bind(D,this,this.childDestroyFuncs,this.params)),this.setLastVisible()}setPivotSectionVisible(G){let D=this.colToolPanelFactory;if(!D)return;this.pivotDropZonePanel=D.setPanelVisible(this.pivotDropZonePanel,G,D.createPivotPanel.bind(D,this,this.childDestroyFuncs,this.params)),this.pivotDropZonePanel?.setDisplayed(G),this.setLastVisible()}setResizers(){for(let G of[this.primaryColsPanel,this.rowGroupDropZonePanel,this.valuesDropZonePanel,this.pivotDropZonePanel]){if(!G)continue;let D=G.getGui();G.toggleResizable(!D.classList.contains("ag-last-column-drop")&&!D.classList.contains("ag-hidden")&&!D.classList.contains("ag-last-visible-child"))}}setLastVisible(){let G=this.getGui(),D=Array.prototype.slice.call(G.querySelectorAll(".ag-column-drop"));for(let Q of D)Q.classList.remove("ag-last-column-drop");let z=G.querySelectorAll(".ag-column-drop:not(.ag-hidden)"),B=bk(z);if(B)B.classList.add("ag-last-column-drop");this.primaryColsPanel.getGui().classList.toggle("ag-last-visible-child",!B),this.setResizers()}resetChildrenHeight(){let D=this.getGui().children;for(let z=0;zJ.getGui().getBoundingClientRect()),Q=B.findIndex((J)=>this.horizontal?J.right>z&&J.leftz);if(Q===-1){let J=this.gos.get("enableRtl");if(B.every((S)=>z>(this.horizontal?S.right:S.bottom)))return J&&this.horizontal?0:this.childPillComponents.length;if(B.every((S)=>z<(this.horizontal?S.left:S.top)))return J&&this.horizontal?this.childPillComponents.length:0;return this.insertIndex}if(this.insertIndex<=Q)return Q+1;return Q}checkDragStartedBySelf(G){if(this.state!=="notDragging")return;this.state="rearrangeItems",this.potentialDndItems=this.getItems(G.dragSource.getDragItem()),this.refreshGui(),this.checkInsertIndex(G),this.refreshGui()}onDragging(G){if(this.checkDragStartedBySelf(G),this.checkInsertIndex(G))this.refreshGui()}handleDragEnterEnd(G){}onDragEnter(G){let D=this.getItems(G.dragSource.getDragItem());this.state="newItemsIn";let z=D.filter((Q)=>this.isItemDroppable(Q,G)),B=z.every((Q)=>this.childPillComponents.map((J)=>J.getItem()).indexOf(Q)!==-1);if(z.length===0)return;if(this.potentialDndItems=z,B){this.state="notDragging";return}this.handleDragEnterEnd(G),this.checkInsertIndex(G),this.refreshGui()}isPotentialDndItems(){return!!this.potentialDndItems?.length}handleDragLeaveEnd(G){}onDragLeave(G){if(this.state==="rearrangeItems"){let D=this.getItems(G.dragSource.getDragItem());this.removeItems(D)}if(this.isPotentialDndItems())this.handleDragLeaveEnd(G),this.potentialDndItems=[],this.refreshGui();this.state="notDragging"}onDragCancel(G){if(this.isPotentialDndItems()){if(this.state==="newItemsIn")this.handleDragLeaveEnd(G);this.potentialDndItems=[],this.refreshGui()}this.state="notDragging"}onDragStop(){if(this.isPotentialDndItems()){if(this.state==="newItemsIn")this.addItems(this.potentialDndItems);else this.rearrangeItems(this.potentialDndItems);this.potentialDndItems=[],this.refreshGui()}this.state="notDragging"}removeItems(G){let D=this.getExistingItems().filter((z)=>!G.includes(z));this.updateItems(D),this.refreshGui()}addItems(G){if(!G)return;let D=this.getExistingItems().slice(),z=G.filter((B)=>D.indexOf(B)<0);HZ(D,z,this.insertIndex),this.updateItems(D),this.refreshGui()}addItem(G){this.insertIndex=this.getExistingItems().length,this.addItems([G])}rearrangeItems(G,D){let z;if(!D)z=this.getNonGhostItems().slice();else z=this.getExistingItems().filter((B)=>G.indexOf(B)===-1);if(HZ(z,G,this.insertIndex),Yw(z,this.getExistingItems()))return!1;return this.updateItems(z),this.refreshGui(),!0}refreshGui(){let G=0;if(!this.horizontal)G=this.ePillDropList.scrollTop;let D=this.resizeEnabled,z=this.getFocusedItem(),{eGridDiv:B}=this.beans,Q=Hw(),J=null;if(Q)J=vQ(this.beans,B)??vQ(this.beans,B,!1,!0);if(this.toggleResizable(!1),this.destroyGui(),this.addIconAndTitleToGui(),this.addEmptyMessageToGui(),this.addItemsToGui(),G!==0)this.ePillDropList.scrollTop=G;if(D)this.toggleResizable(D);if(Q)this.restoreFocus(z,J)}getFocusedItem(){let G=this.getGui(),D=qZ(this.beans);if(!G.contains(D))return-1;return Array.from(G.querySelectorAll(".ag-column-drop-cell")).indexOf(D)}focusItemAtIndex(G){let D=this.getGui(),B=Array.from(D.querySelectorAll(".ag-column-drop-cell"))[G];if(!B)return;B.focus({preventScroll:!0})}restoreFocus(G,D){let z=this.getGui(),B=Array.from(z.querySelectorAll(".ag-column-drop-cell"));if(G===-1)return;if(B.length===0)D.focus();let Q=Math.min(B.length-1,G),J=B[Q];if(J)J.focus()}focusList(G){let D=G?this.childPillComponents.length-1:0;this.restoreFocus(D,this.getFocusableElement())}getNonGhostItems(){let G=this.getExistingItems();if(this.isPotentialDndItems())return G.filter((D)=>!this.potentialDndItems.includes(D));return G}addItemsToGui(){let D=this.getNonGhostItems().map((z)=>this.createItemComponent(z,!1));if(this.isPotentialDndItems()){let z=this.potentialDndItems.map((B)=>this.createItemComponent(B,!0));if(this.insertIndex>=D.length)D.push(...z);else D.splice(this.insertIndex,0,...z)}this.appendChild(this.ePillDropList),D.forEach((z,B)=>{if(B>0)this.addArrow(this.ePillDropList);this.ePillDropList.appendChild(z.getGui())}),this.addAriaLabelsToComponents()}addAriaLabelsToComponents(){let{childPillComponents:G,ePillDropList:D}=this,z=G.length;fw(D,z===0?"presentation":"listbox");for(let B=0;Bthis.destroyBean(z)),!D)this.childPillComponents.push(z);return z}addIconAndTitleToGui(){let{title:G,icon:D}=this.params;if(!G||!D)return;let z=u0({tag:"div"});if(kw(z,!0),this.addElementClasses(z,"title-bar"),this.addElementClasses(D,"icon"),this.toggleCss("ag-column-drop-empty",this.isExistingItemsEmpty()),z.appendChild(D),!this.horizontal){let B=u0({tag:"span"});this.addElementClasses(B,"title"),B.textContent=G,z.appendChild(B)}this.appendChild(z)}isExistingItemsEmpty(){return this.getExistingItems().length===0}addEmptyMessageToGui(){let{emptyMessage:G}=this.params;if(!G||!this.isExistingItemsEmpty()||this.isPotentialDndItems())return;let D=u0({tag:"span"});D.textContent=G,this.addElementClasses(D,"empty-message"),this.ePillDropList.appendChild(D)}addArrow(G){if(this.horizontal){let D=this.gos.get("enableRtl"),z=Ww(D?"panelDelimiterRtl":"panelDelimiter",this.beans);this.addElementClasses(z,"cell-separator"),G.appendChild(z)}}},Ow={tag:"span",role:"option",children:[{tag:"span",ref:"eDragHandle",cls:"ag-drag-handle ag-column-drop-cell-drag-handle",role:"presentation"},{tag:"span",ref:"eText",cls:"ag-column-drop-cell-text",attrs:{"aria-hidden":"true"}},{tag:"span",ref:"eButton",cls:"ag-column-drop-cell-button",role:"presentation"}]},H7=class extends Cw{constructor(G,D,z,B,Q){super();this.dragSourceDropTarget=G,this.ghost=D,this.horizontal=z,this.template=B,this.agComponents=Q,this.eText=OQ,this.eDragHandle=OQ,this.eButton=OQ}postConstruct(){this.setTemplate(this.template??Ow,this.agComponents);let G=this.getGui(),{beans:D,eDragHandle:z,eText:B,eButton:Q}=this;if(this.addElementClasses(G),this.addElementClasses(z,"drag-handle"),this.addElementClasses(B,"text"),this.addElementClasses(Q,"button"),z.appendChild(kZ("columnDrag",D)),Q.appendChild(kZ("cancel",D)),this.tooltipFeature=this.createOptionalManagedBean(D.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.getGui()})),this.setupComponents(),!this.ghost&&this.isDraggable())this.addDragSource();this.setupAria(),this.setupTooltip(),this.activateTabIndex(),this.refreshDraggable()}isDraggable(){return!0}refreshDraggable(){this.eDragHandle.classList.toggle("ag-column-select-column-readonly",!this.isDraggable())}setupAria(){let G=this.getLocaleTextFunc(),D=[this.getAriaDisplayName()];this.addAdditionalAriaInstructions(D,G),bw(this.getGui(),D.join(". "))}addAdditionalAriaInstructions(G,D){if(this.isRemovable()){let z=D("ariaDropZoneColumnComponentDescription","Press DELETE to remove");G.push(z)}}setupTooltip(){let G=()=>this.tooltipFeature?.setTooltipAndRefresh(this.getTooltip());G(),this.addManagedEventListeners({newColumnsLoaded:G})}getDragSourceId(){return}getDefaultIconName(){return"notAllowed"}addDragSource(){let{beans:{dragAndDrop:G},eDragHandle:D}=this,z=this.createGetDragItem(),B=this.getDefaultIconName(),Q={type:this.getDragSourceType(),sourceId:this.getDragSourceId(),eElement:D,getDefaultIconName:()=>B,getDragItem:z,dragItemName:this.getDisplayName()};G?.addDragSource(Q,!0),this.addDestroyFunc(()=>G?.removeDragSource(Q))}setupComponents(){if(this.eText.textContent=this.getDisplayValue(),this.setupRemove(),this.ghost)this.addCss("ag-column-drop-cell-ghost")}isRemovable(){return!0}refreshRemove(){vw(this.eButton,this.isRemovable())}setupRemove(){this.refreshRemove();let G={type:"columnRemove"};this.addGuiEventListener("keydown",(z)=>this.onKeyDown(z)),this.addManagedElementListeners(this.eButton,{click:(z)=>{this.dispatchLocalEvent(G),z.stopPropagation()}});let D=new Vw(this.eButton);this.addManagedListeners(D,{tap:()=>this.dispatchLocalEvent(G)}),this.addDestroyFunc(D.destroy.bind(D))}onKeyDown(G){if(G.key===_Z.DELETE){if(this.isRemovable())G.preventDefault(),this.dispatchLocalEvent({type:"columnRemove"})}}getDisplayValue(){return this.getDisplayName()}addElementClasses(G,D){D=D?`-${D}`:"";let z=this.horizontal?"horizontal":"vertical";G.classList.add(`ag-column-drop-cell${D}`,`ag-column-drop-${z}-cell${D}`)}destroy(){super.destroy(),this.dragSourceDropTarget=null}},uw=class extends H7{constructor(G,D,z,B,Q,J){super(D,z,Q);this.column=G,this.dropZonePurpose=B,this.updateParams=J,this.eSortIndicator=Aw,this.popupShowing=!1,this.deferApply=x(J)}postConstruct(){let{sortSvc:G,colNames:D}=this.beans;if(this.template={tag:"span",role:"option",children:[{tag:"span",ref:"eDragHandle",cls:"ag-drag-handle ag-column-drop-cell-drag-handle",role:"presentation"},{tag:"span",ref:"eText",cls:"ag-column-drop-cell-text",attrs:{"aria-hidden":"true"}},G?{tag:"ag-sort-indicator",ref:"eSortIndicator"}:void 0,{tag:"span",ref:"eButton",cls:"ag-column-drop-cell-button",role:"presentation"}]},G)this.agComponents=[G.getSortIndicatorSelector()];if(this.displayName=D.getDisplayNameForColumn(this.column,"columnDrop"),super.postConstruct(),this.deferApply)this.eDragHandle.setAttribute("data-column-tool-panel-deferred","");if(G)this.setupSort(),this.addManagedEventListeners({sortChanged:()=>{this.setupAria()}});if(this.isGroupingZone())this.addManagedPropertyListener("groupLockGroupColumns",()=>{this.refreshRemove(),this.refreshDraggable(),this.setupAria()})}getItem(){return this.column}getDisplayName(){return this.displayName}getTooltip(){return this.column.getColDef().headerTooltip}addAdditionalAriaInstructions(G,D){let z=this.gos.get("rowGroupPanelSuppressSort"),B=this.gos.get("functionsReadOnly");if(this.isAggregationZone()&&!B){let Q=D("ariaDropZoneColumnValueItemDescription","Press ENTER to change the aggregation type");G.push(Q)}if(this.isGroupingZone()&&this.column.isSortable()&&!z){let Q=D("ariaDropZoneColumnGroupItemDescription","Press ENTER to sort");G.push(Q)}super.addAdditionalAriaInstructions(G,D)}isMovable(){return this.isDraggable()}isDraggable(){return this.isReadOnly()}isRemovable(){return this.isReadOnly()}isReadOnly(){return!this.isGroupingAndLocked()&&!this.gos.get("functionsReadOnly")}getAriaDisplayName(){let G=this.getLocaleTextFunc(),{name:D,aggFuncName:z}=this.getColumnAndAggFuncName(),B=G("ariaDropZoneColumnComponentAggFuncSeparator"," of "),Q={asc:G("ariaDropZoneColumnComponentSortAscending","ascending"),desc:G("ariaDropZoneColumnComponentSortDescending","descending")},J=this.getCurrentSortDirection(this.column),U=this.gos.get("rowGroupPanelSuppressSort");return[z&&`${z}${B}`,D,this.isGroupingZone()&&!U&&J&&`, ${Q[J]}`].filter((Z)=>!!Z).join("")}getColumnAndAggFuncName(){let G=this.displayName,D="";if(this.isAggregationZone()){let z=this.beans.columnStateUpdateStrategy.getColumnAggFunc(this.deferApply,this.column),B=typeof z==="string"?z:"agg";D=this.getLocaleTextFunc()(B,B)}return{name:G,aggFuncName:D}}setupSort(){if(!this.column.isSortable()||!this.isGroupingZone())return;let{gos:G,column:D,eSortIndicator:z}=this;if(!G.get("rowGroupPanelSuppressSort")){z.setupSort(D,!0,this.getSortDefOverride.bind(this));let B=(Q)=>{Q.preventDefault(),this.beans.columnStateUpdateStrategy.progressSortFromEvent(this.deferApply,D,Q),z.refresh(),this.setupAria(),YG(this.beans,this.updateParams)};this.addGuiEventListener("click",B),this.addGuiEventListener("keydown",(Q)=>{if(Q.key===nD.ENTER&&this.isGroupingZone())B(Q)})}}getCurrentSortDirection(G){return this.beans.columnStateUpdateStrategy.getSortDef(this.deferApply,G)?.direction??null}getSortDefOverride(){if(!this.deferApply)return;return this.beans.columnStateUpdateStrategy.getSortDef(this.deferApply,this.column)}getDefaultIconName(){return"hide"}createGetDragItem(){let{column:G}=this;return()=>{let D={};return D[G.getId()]=G.isVisible(),{columns:[G],visibleState:D}}}setupComponents(){if(super.setupComponents(),this.isAggregationZone()&&!this.gos.get("functionsReadOnly"))this.addGuiEventListener("click",this.onShowAggFuncSelection.bind(this))}onKeyDown(G){if(super.onKeyDown(G),G.key===nD.ENTER&&this.isAggregationZone()&&!this.gos.get("functionsReadOnly"))G.preventDefault(),this.onShowAggFuncSelection()}getDisplayValue(){let{name:G,aggFuncName:D}=this.getColumnAndAggFuncName();return this.isAggregationZone()?`${D}(${G})`:G}onShowAggFuncSelection(){if(this.popupShowing)return;this.popupShowing=!0;let{aggFuncSvc:G,popupSvc:D}=this.beans,z=new Lz({cssIdentifier:"select-agg-func"}),B=G.getFuncNames(this.column),Q=this.getGui(),J=z.getGui();z.setModel({getRow:function(H){return B[H]},getRowCount:function(){return B.length}}),this.createBean(z);let U=Rw({tag:"div",cls:"ag-select-agg-func-popup"});U.style.top="0px",U.style.left="0px",U.appendChild(J),U.style.width=`${Q.clientWidth}px`;let[Z]=this.addManagedElementListeners(U,{focusout:(H)=>{if(!U.contains(H.relatedTarget)&&Y)Y.hideFunc()}}),S=(H)=>{if(this.destroyBean(z),this.popupShowing=!1,H?.key==="Escape")Q.focus();if(Z)Z()},X=this.getLocaleTextFunc(),Y=D.addPopup({modal:!0,eChild:U,closeOnEsc:!0,closedCallback:S,ariaLabel:X("ariaLabelAggregationFunction","Aggregation Function")});if(Y)z.setComponentCreator(this.createAggSelect.bind(this,Y.hideFunc));z.addGuiEventListener("keydown",(H)=>{if(H.key===nD.ENTER||H.key===nD.SPACE){let _=z.getLastFocusedRow();if(_==null)return;let k=z.getComponentAt(_);if(k)k.selectItem()}}),D.positionPopupByComponent({type:"aggFuncSelect",eventSource:Q,ePopup:U,keepWithinBounds:!0,additionalParams:{column:this.column},position:"under"}),z.refresh();let W=this.beans.columnStateUpdateStrategy.getColumnAggFunc(this.deferApply,this.column),q=B.findIndex((H)=>H===W);if(q===-1)q=0;z.focusRow(q)}createAggSelect(G,D){let z=()=>{if(G(),this.getGui().focus(),this.beans.columnStateUpdateStrategy.setColumnAggFunc(this.deferApply,this.column,D,"toolPanelDragAndDrop"),this.column){let Z=this.getGui().querySelector(".ag-column-drop-cell-text");if(Z)Z.textContent=this.getDisplayValue();this.setupAria()}YG(this.beans,this.updateParams)},B=this.getLocaleTextFunc(),Q=(D||"").toString(),J=B(Q,Q);return new jw(z,J)}isGroupingAndLocked(){return this.isGroupingZone()&&Z0(this.column,this.beans)}isAggregationZone(){return this.dropZonePurpose==="aggregation"}isGroupingZone(){return this.dropZonePurpose==="rowGroup"}getDragSourceType(){return Mw.ToolPanel}destroy(){super.destroy(),this.column=null}},jw=class extends Iw{constructor(G,D){super({tag:"div",cls:"ag-select-agg-func-item",children:D});this.selectItem=G,this.addGuiEventListener("click",this.selectItem)}},fJ=class extends q7{constructor(G,D,z){super(G);this.dropZonePurpose=D,this.updateParams=z,this.addElementClasses(this.getGui(),this.dropZonePurpose.toLowerCase())}init(G){super.init(G),this.addManagedEventListeners({newColumnsLoaded:this.refreshGui.bind(this)}),this.addManagedPropertyListeners(["functionsReadOnly","rowGroupPanelSuppressSort","groupLockGroupColumns"],this.refreshGui.bind(this))}getItems(G){return G.columns??[]}isInterestedIn(G,D){if(G===YZ.HeaderCell)return!0;if(G!==YZ.ToolPanel)return!1;if(!this.horizontal)return!0;return!D.hasAttribute("data-column-tool-panel-deferred")}minimumAllowedNewInsertIndex(){let{gos:G,rowGroupColsSvc:D}=this.beans,z=G.get("groupLockGroupColumns"),B=D?.columns.length??0;if(z===-1)return B;return Math.min(z,B)}showOrHideColumnOnExit(G){return this.isRowGroupPanel()&&$w(this.gos,!0)&&!G.fromNudge}handleDragEnterEnd(G){if(this.showOrHideColumnOnExit(G)){let B=G.dragSource.getDragItem().columns;this.setColumnsVisible(B,!1,"uiColumnDragged")}}handleDragLeaveEnd(G){if(this.showOrHideColumnOnExit(G)){let z=G.dragSource.getDragItem();this.setColumnsVisible(z.columns,!0,"uiColumnDragged")}}setColumnsVisible(G,D,z){if(!G)return;if(x(this.updateParams))return;let B=G.filter((Q)=>!Q.getColDef().lockVisible);this.beans.columnStateUpdateStrategy.setColumnsVisible(!1,B,D,z)}isRowGroupPanel(){return this.dropZonePurpose==="rowGroup"}createPillComponent(G,D,z,B){return new uw(G,D,z,this.dropZonePurpose,B,this.updateParams)}},_7=class extends fJ{constructor(G,D){super(G,"pivot",D)}postConstruct(){let G=this.getLocaleTextFunc(),D=G("pivotColumnsEmptyMessage","Drag here to set column labels"),z=G("pivots","Column Labels");if(super.init({icon:Zw("pivotPanel",this.beans,null),emptyMessage:D,title:z}),this.horizontal)Uw(this.beans,this,this.getGui());this.addManagedEventListeners({newColumnsLoaded:this.refresh.bind(this),columnPivotChanged:this.refresh.bind(this),columnPivotModeChanged:this.checkVisibility.bind(this)}),this.refresh()}getAriaLabel(){return this.getLocaleTextFunc()("ariaPivotDropZonePanelLabel","Column Labels")}refresh(){this.checkVisibility(),this.refreshGui()}checkVisibility(){let G=this.beans.colModel,D=G.isPivotMode();if(this.horizontal)switch(this.gos.get("pivotPanelShow")){case"always":this.setDisplayed(D);break;case"onlyWhenPivoting":{let z=G.isPivotActive();this.setDisplayed(D&&z);break}default:this.setDisplayed(!1);break}else this.setDisplayed(this.beans.columnStateUpdateStrategy.getPivotMode(x(this.updateParams)))}isItemDroppable(G,D){if(this.gos.get("functionsReadOnly")||!G.isPrimary())return!1;let z=this.beans.columnStateUpdateStrategy.getPivotColumns(x(this.updateParams)).includes(G);return G.isAllowPivot()&&(!z||this.isSourceEventFromTarget(D))}updateItems(G){this.beans.columnStateUpdateStrategy.setPivotColumns(x(this.updateParams),G,"toolPanelUi"),YG(this.beans,this.updateParams)}getIconName(){return this.isPotentialDndItems()?"pivot":"notAllowed"}getExistingItems(){return this.beans.columnStateUpdateStrategy.getPivotColumns(x(this.updateParams))}getFocusableContainerName(){return"pivotToolbar"}},k7=class extends fJ{constructor(G,D){super(G,"rowGroup",D)}postConstruct(){let G=this.getLocaleTextFunc(),D=G("rowGroupColumnsEmptyMessage","Drag here to set row groups"),z=G("groups","Row Groups");if(super.init({icon:gw("rowGroupPanel",this.beans,null),emptyMessage:D,title:z}),this.horizontal)Pw(this.beans,this,this.getGui());this.addManagedEventListeners({columnRowGroupChanged:this.refreshGui.bind(this)})}getAriaLabel(){return this.getLocaleTextFunc()("ariaRowGroupDropZonePanelLabel","Row Groups")}isItemDroppable(G,D){if(this.gos.get("functionsReadOnly")||!G.isPrimary()||G.colDef.showRowGroup)return!1;let z=this.beans.columnStateUpdateStrategy.getRowGroupColumns(x(this.updateParams)).includes(G);return G.isAllowRowGroup()&&(!z||this.isSourceEventFromTarget(D))}updateItems(G){this.beans.columnStateUpdateStrategy.setRowGroupColumns(x(this.updateParams),G,"toolPanelUi"),YG(this.beans,this.updateParams)}getIconName(){return this.isPotentialDndItems()?"group":"notAllowed"}getExistingItems(){return this.beans.columnStateUpdateStrategy.getRowGroupColumns(x(this.updateParams))}getFocusableContainerName(){return"rowGroupToolbar"}},yw=class extends fJ{constructor(G,D){super(G,"aggregation",D)}postConstruct(){let G=this.getLocaleTextFunc(),D=G("valueColumnsEmptyMessage","Drag here to aggregate"),z=G("values","Values");super.init({icon:Tw("valuePanel",this.beans,null),emptyMessage:D,title:z}),this.addManagedEventListeners({columnValueChanged:this.refreshGui.bind(this)})}getAriaLabel(){return this.getLocaleTextFunc()("ariaValuesDropZonePanelLabel","Values")}getIconName(){return this.isPotentialDndItems()?"aggregate":"notAllowed"}isItemDroppable(G,D){if(this.gos.get("functionsReadOnly")||!G.isPrimary())return!1;let z=this.beans.columnStateUpdateStrategy.getValueColumns(x(this.updateParams)).includes(G);return G.isAllowValue()&&(!z||this.isSourceEventFromTarget(D))}updateItems(G){this.beans.columnStateUpdateStrategy.setValueColumns(x(this.updateParams),G,"toolPanelUi"),YG(this.beans,this.updateParams)}getExistingItems(){return this.beans.columnStateUpdateStrategy.getValueColumns(x(this.updateParams))}},iw={tag:"div",cls:"ag-pivot-mode-panel",children:[{tag:"ag-toggle-button",ref:"cbPivotMode",cls:"ag-pivot-mode-select"}]},nw=class extends cw{constructor(G,D){super();this.params=G,this.onPivotModeValueChanged=D,this.cbPivotMode=hw}getCurrentPivotMode(){return this.beans.columnStateUpdateStrategy.getPivotMode(x(this.params))}syncFromGrid(){this.cbPivotMode.setValue(this.getCurrentPivotMode())}refreshEditStrategy(){this.syncFromGrid()}postConstruct(){this.setTemplate(iw,[xw]);let G=this.cbPivotMode;G.setValue(this.getCurrentPivotMode());let D=this.getLocaleTextFunc();G.setLabel(D("pivotMode","Pivot Mode"));let z=()=>{let Q=!!G.getValue();this.beans.columnStateUpdateStrategy.setPivotMode(x(this.params),Q,"toolPanelUi"),this.onPivotModeValueChanged?.()},B=()=>{G.setValue(this.getCurrentPivotMode())};this.addManagedListeners(G,{fieldValueChanged:z}),this.addManagedEventListeners({newColumnsLoaded:B,columnPivotModeChanged:B})}},dw=class extends Jw{constructor(){super(...arguments);this.beanName="colToolPanelFactory"}setPanelVisible(G,D,z){if(G)G.setDisplayed(D);else if(D)G=z();return G}createRowGroupPanel(G,D,z){return this.createPanel(G,D,new k7(!1,z))}createValuesPanel(G,D,z){return this.createPanel(G,D,new yw(!1,z))}createPivotPanel(G,D,z){return this.createPanel(G,D,new _7(!1,z))}createPivotModePanel(G,D,z,B,Q){return this.createPanel(G,D,new nw(z,B),Q)}createPanel(G,D,z,B){if(z=G.createBean(z),D.push(()=>G.destroyBean(z)),B)G.prependChild(z);else G.appendChild(z);return z}},wZ=()=>{},sw=class extends pw{constructor(){super(...arguments);this.beanName="columnStateUpdateExecutionStrategy"}applyColumnState(G,D,z){this.getUpdateStrategy(G).applyColumnState(D,z)}commit(G){this.getUpdateStrategy(G).commit()}hasPendingChanges(G){return this.getUpdateStrategy(G).hasPendingChanges()}moveColumns(G,D,z,B){this.getUpdateStrategy(G).moveColumns(D,z,B)}reset(G){this.getUpdateStrategy(G).reset()}setColumnsVisible(G,D,z,B){this.getUpdateStrategy(G).setColumnsVisible(D,z,B)}isColumnVisibleInToolPanel(G,D){return this.getUpdateStrategy(G).isColumnVisibleInToolPanel(D)}setRowGroupColumns(G,D,z){this.getUpdateStrategy(G).setRowGroupColumns(D,z)}getRowGroupColumns(G){return this.getUpdateStrategy(G).getRowGroupColumns()}getPrimaryColumns(G){return this.getUpdateStrategy(G).getPrimaryColumns()}hasDeferredColumnOrder(G){return this.getUpdateStrategy(G).hasDeferredColumnOrder()}setValueColumns(G,D,z){this.getUpdateStrategy(G).setValueColumns(D,z)}getValueColumns(G){return this.getUpdateStrategy(G).getValueColumns()}setColumnAggFunc(G,D,z,B){this.getUpdateStrategy(G).setColumnAggFunc(D,z,B)}getColumnAggFunc(G,D){return this.getUpdateStrategy(G).getColumnAggFunc(D)}setPivotColumns(G,D,z){this.getUpdateStrategy(G).setPivotColumns(D,z)}getPivotColumns(G){return this.getUpdateStrategy(G).getPivotColumns()}setPivotMode(G,D,z){this.getUpdateStrategy(G).setPivotMode(D,z)}getPivotMode(G){return this.getUpdateStrategy(G).getPivotMode()}isColumnSelectedInPivotModeToolPanel(G,D){return this.getUpdateStrategy(G).isColumnSelectedInPivotModeToolPanel(D)}progressSortFromEvent(G,D,z){this.getUpdateStrategy(G).progressSortFromEvent(D,z)}getSortDef(G,D){return this.getUpdateStrategy(G).getSortDef(D)}getUpdateStrategy(G){return G?this.getDeferredUpdateStrategy():this.getSyncUpdateStrategy()}getSyncUpdateStrategy(){return this.syncUpdateStrategy??(this.syncUpdateStrategy=new ow(this.beans))}getDeferredUpdateStrategy(){return this.deferredUpdateStrategy??(this.deferredUpdateStrategy=new rw(this.beans))}},ow=class{constructor(G){this.beans=G,this.lastPivotColIds=[],this.reset=wZ,this.commit=wZ,this.hasPendingChanges=()=>!1,this.hasDeferredColumnOrder=()=>!1}applyColumnState(G,D){if(G.length===0)return;J0(this.beans,{state:G},D)}moveColumns(G,D,z){this.beans.colMoves?.moveColumns(G,D,z),aw(this.beans)}setColumnsVisible(G,D,z){let B=G.filter((Q)=>!Q.getColDef().lockVisible);this.beans.colModel.setColsVisible(B,D,z)}setRowGroupColumns(G,D){this.beans.rowGroupColsSvc?.setColumns(G,D)}getRowGroupColumns(){return this.beans.rowGroupColsSvc?.columns??[]}getPrimaryColumns(){return NJ(this.beans)}setValueColumns(G,D){this.beans.valueColsSvc?.setColumns(G,D)}getValueColumns(){return this.beans.valueColsSvc?.columns??[]}setColumnAggFunc(G,D,z){this.beans.valueColsSvc?.setColumnAggFunc?.(G,D,z)}getColumnAggFunc(G){return G.getAggFunc()}setPivotColumns(G,D){this.lastPivotColIds=G.map((z)=>z.getColId()),this.beans.pivotColsSvc?.setColumns(G,D)}getPivotColumns(){return this.beans.pivotColsSvc?.columns??[]}setPivotMode(G,D){let{colModel:z,gos:B,ctrlsSvc:Q}=this.beans;if(G===z.isPivotMode())return;let J=this.beans.pivotColsSvc?.columns.map((U)=>U.getColId())??[];if(J.length>0)this.lastPivotColIds=J;if(!G){let U=this.beans.colModel.getColDefCols()??[];J0(this.beans,{state:U.map((Z)=>({colId:Z.getColId(),pivot:!1,pivotIndex:null}))},D)}if(B.updateGridOptions({options:{pivotMode:G},source:D}),G&&this.lastPivotColIds.length>0)this.beans.pivotColsSvc?.setColumns(this.lastPivotColIds,D);for(let U of Q.getHeaderRowContainerCtrls())U.refresh()}progressSortFromEvent(G,D){this.beans.sortSvc?.progressSortFromEvent(G,D)}isColumnVisibleInToolPanel(G){return G.isVisible()}isColumnSelectedInPivotModeToolPanel(G){return G.isAnyFunctionActive()}getPivotMode(){return this.beans.colModel.isPivotMode()}getSortDef(G){return G.getSortDef()}},rw=class{constructor(G){this.beans=G,this.state={},this.sequence=0,this.lastPivotColIds=[]}reset(){this.sequence=0,this.state={}}hasPendingChanges(){let{state:G,beans:D}=this,{columnState:z,columnOrder:B,rowGroup:Q,aggregation:J,pivot:U,pivotMode:Z,sort:S,aggFuncs:X}=G,Y=(W)=>(W??[]).map((q)=>q.getColId());if(z)for(let[W,q]of z.patches){let H=D.colModel.getColDefCol(W);if(!H)continue;if(q.hide!==void 0&&q.hide!==!H.isVisible()||q.rowGroup!==void 0&&!!q.rowGroup!==H.isRowGroupActive()||q.pivot!==void 0&&!!q.pivot!==H.isPivotActive()||q.aggFunc!==void 0&&(q.aggFunc??null)!==(H.getAggFunc()??null))return!0}if(B&&!j0(B.colIds,jQ(D)))return!0;if(Q&&!j0(Q.colIds,Y(D.rowGroupColsSvc?.columns)))return!0;if(J&&!j0(J.colIds,Y(D.valueColsSvc?.columns)))return!0;if(U&&!j0(U.colIds,Y(D.pivotColsSvc?.columns)))return!0;if(Z&&Z.pivotMode!==D.colModel.isPivotMode())return!0;if(S){for(let[W,q]of S.sortDefsByColId){let H=D.colModel.getColDefCol(W);if(!H)continue;if((q?.direction??null)!==(H.getSortDef()?.direction??null))return!0}if(S.baselineCleared){let W=NJ(D);for(let q of W)if(!S.sortDefsByColId.has(q.getColId())&&q.getSortDef()!==null)return!0}}if(X)for(let[W,q]of X.values){let H=D.colModel.getColDefCol(W);if(!H)continue;if(q!==H.getAggFunc())return!0}return!1}commit(){let{beans:G,state:D}=this,z=[];for(let Q of Object.keys(D)){let J=D[Q];if(J)z.push({type:Q,...J})}let B=z.sort((Q,J)=>Q.seq-J.seq);for(let Q of B)switch(Q.type){case"columnState":{J0(G,{state:[...Q.patches.values()]},Q.eventType);break}case"columnOrder":{let J=Q.colIds.map((U)=>G.colModel.getColDefCol(U)).filter((U)=>!!U&&$0(U));if(!G.colModel.isPivotMode())for(let U=0;U$0(W)),Y=(X>=0?X:0)+U;if(S[Y]!==Z)G.colMoves?.moveColumns([Z],Y,Q.eventType,!0)}w7(G,J);break}case"rowGroup":{G.rowGroupColsSvc?.setColumns(Q.colIds,Q.eventType);break}case"aggregation":{G.valueColsSvc?.setColumns(Q.colIds,Q.eventType);break}case"pivot":{this.lastPivotColIds=Q.colIds,G.pivotColsSvc?.setColumns(Q.colIds,Q.eventType);break}case"pivotMode":{let{colModel:J,ctrlsSvc:U,gos:Z,stateSvc:S}=G;if(Q.pivotMode!==J.isPivotMode()){let X=G.pivotColsSvc?.columns.map((q)=>q.getColId())??[];if(X.length>0)this.lastPivotColIds=X;let Y=S?.getState().pivot?.pivotColIds??X,W=Q.pivotMode?this.state.pivot?.colIds??this.lastPivotColIds:Y;if(S?.setState({...S.getState(),pivot:{pivotMode:Q.pivotMode,pivotColIds:W}},["pivot"]),!Q.pivotMode){let q=G.colModel.getColDefCols()??[];J0(G,{state:q.map((H)=>({colId:H.getColId(),pivot:!1,pivotIndex:null}))},Q.eventType)}if(Z.updateGridOptions({options:{pivotMode:Q.pivotMode},source:Q.eventType}),Q.pivotMode&&W.length>0)G.pivotColsSvc?.setColumns(W,Q.eventType);for(let q of U.getHeaderRowContainerCtrls())q.refresh()}break}case"sort":{let J=[],U=0;for(let[Z,S]of Q.sortDefsByColId)J.push({colId:Z,sort:S?.direction??null,sortIndex:S?.direction?U++:null,sortType:S?.type??void 0});J0(G,{state:J,defaultState:Q.baselineCleared?{sort:null,sortIndex:null,sortType:void 0}:void 0},Q.eventType);break}case"aggFuncs":{for(let[J,U]of Q.values){let Z=G.colModel.getColDefCol(J);if(!Z)continue;G.valueColsSvc?.setColumnAggFunc?.(Z,U,Q.eventType)}break}}this.reset()}applyColumnState(G,D){for(let B of G)PQ(this.state,B);let z=SB(this.state);z.seq=hG(this.sequence),this.sequence=z.seq,z.eventType=D}moveColumns(G,D,z){let B=new Set(G.map((S)=>S.getColId())),J=(this.state.columnOrder?.colIds??jQ(this.beans)).filter((S)=>!B.has(S)),U=G.map((S)=>S.getColId()),Z=hG(this.sequence);this.sequence=Z,this.state.columnOrder={colIds:[...J.slice(0,D),...U,...J.slice(D)],eventType:z,seq:Z}}setColumnsVisible(G,D,z){for(let Q of G){if(Q.getColDef().lockVisible)continue;PQ(this.state,{colId:Q.getColId(),hide:!D})}let B=SB(this.state);B.seq=hG(this.sequence),this.sequence=B.seq,B.eventType=z}setRowGroupColumns(G,D){gQ(this.state,"rowGroup");let z=hG(this.sequence);this.sequence=z,this.state.rowGroup={colIds:G.map((B)=>B.getColId()),eventType:D,seq:z}}setValueColumns(G,D){gQ(this.state,"aggFunc");let z=new Set((this.beans.valueColsSvc?.columns??[]).map((J)=>J.getColId())),B=KZ(this.state);for(let J of G)if(!z.has(J.getColId())&&!B.values.has(J.getColId())){let U=J.getAggFunc(),Z=U!=null?U:this.beans.aggFuncSvc?.getDefaultAggFunc(J);if(Z!=null)B.values.set(J.getColId(),Z)}let Q=hG(this.sequence);this.sequence=Q,B.seq=Q,B.eventType=D,this.state.aggregation={colIds:G.map((J)=>J.getColId()),eventType:D,seq:Q}}setColumnAggFunc(G,D,z){PQ(this.state,{colId:G.getColId(),aggFunc:D});let B=SB(this.state);B.seq=hG(this.sequence),this.sequence=B.seq,B.eventType=z;let Q=KZ(this.state);Q.seq=B.seq,Q.eventType=z,Q.values.set(G.getColId(),D)}getColumnAggFunc(G){let D=G.getColId();if(this.state.aggFuncs?.values.has(D))return this.state.aggFuncs.values.get(D);return G.getAggFunc()}isColumnVisibleInToolPanel(G){let D=this.state.columnState?.patches.get(G.getColId());if(D?.hide!==void 0)return!D.hide;return G.isVisible()}isColumnSelectedInPivotModeToolPanel(G){let D=G.getColId(),z=this.state.columnState?.patches.get(D),B;if(z?.rowGroup!==void 0)B=!!z.rowGroup;else if(this.state.rowGroup)B=this.state.rowGroup.colIds.includes(D);else B=G.isRowGroupActive();let Q;if(z?.pivot!==void 0)Q=!!z.pivot;else if(this.state.pivot)Q=this.state.pivot.colIds.includes(D);else Q=G.isPivotActive();let J;if(z?.aggFunc!==void 0)J=z.aggFunc!=null;else if(this.state.aggregation)J=this.state.aggregation.colIds.includes(D);else J=G.isValueActive();return B||Q||J}setPivotColumns(G,D){gQ(this.state,"pivot");let z=hG(this.sequence);this.sequence=z,this.state.pivot={colIds:G.map((B)=>B.getColId()),eventType:D,seq:z}}setPivotMode(G,D){let z=hG(this.sequence);this.sequence=z,this.state.pivotMode={pivotMode:G,eventType:D,seq:z}}getRowGroupColumns(){return Rz(this.beans,uQ(this.state.rowGroup?.colIds,this.beans.rowGroupColsSvc?.columns,this.state.columnState?.patches,(G)=>G.rowGroup==null?void 0:!!G.rowGroup))}getPrimaryColumns(){return Rz(this.beans,this.state.columnOrder?.colIds??jQ(this.beans))}hasDeferredColumnOrder(){return!!this.state.columnOrder}getValueColumns(){return Rz(this.beans,uQ(this.state.aggregation?.colIds,this.beans.valueColsSvc?.columns,this.state.columnState?.patches,(G)=>G.aggFunc===void 0?void 0:G.aggFunc!=null))}getPivotColumns(){if(!this.getPivotMode())return[];let G=this.beans.pivotColsSvc?.columns,D=G?.length?G:Rz(this.beans,this.lastPivotColIds);return Rz(this.beans,uQ(this.state.pivot?.colIds,D,this.state.columnState?.patches,(z)=>z.pivot==null?void 0:!!z.pivot))}getPivotMode(){return this.state.pivotMode?.pivotMode??this.beans.colModel.isPivotMode()}getSortDef(G){let D=this.state.sort,z=G.getColId(),B=D?.sortDefsByColId;if(B?.has(z))return B.get(z)??null;if(D?.baselineCleared)return null;return G.getSortDef()}progressSortFromEvent(G,D){let z=this.state.sort??{sortDefsByColId:new Map,baselineCleared:!1,seq:0,eventType:"toolPanelUi"},{sortSvc:B}=this.beans,Q=G.getColId(),J;if(z.sortDefsByColId.has(Q))J=z.sortDefsByColId.get(Q);else if(z.baselineCleared)J=null;else J=G.getSortDef();let U=B?.getNextSortDirection(G,J);if(!U)return;let{gos:Z}=this.beans;if(!(((Z.get("multiSortKey")==="ctrl"?D.ctrlKey||D.metaKey:D.shiftKey)||Z.get("alwaysMultiSort"))&&!Z.get("suppressMultiSort")))z.sortDefsByColId.clear(),z.baselineCleared=!0;z.sortDefsByColId.set(Q,U.direction?U:null),z.seq=hG(this.sequence),this.sequence=z.seq,this.state.sort=z}};function Rz(G,D){if(!D)return[];return D.map((z)=>G.colModel.getColDefCol(z)).filter((z)=>!!z)}function uQ(G,D,z,B){let Q=[...G??D?.map((U)=>U.getColId())??[]];if(!z?.size)return Q;let J=new Set(Q);for(let[U,Z]of z){let S=B(Z);if(S===void 0)continue;if(S){if(!J.has(U))Q.push(U),J.add(U);continue}if(!J.has(U))continue;J.delete(U);let X=Q.indexOf(U);if(X>=0)Q.splice(X,1)}return Q}function aw(G){let D=G.colModel.getCols().filter((z)=>$0(z)).map((z)=>G.colModel.getColDefCol(z.getColId())).filter((z)=>!!z);w7(G,D)}function w7(G,D){let z=ew(G);if(!z)return;let B=new Set(D);z.list=[...D,...z.list.filter((Q)=>$0(Q)&&!B.has(Q))]}function jQ(G){return NJ(G).map((D)=>D.getColId())}function NJ(G){return(G.colModel.getColDefCols()??G.colModel.getCols()).filter((D)=>$0(D))}function ew(G){let D=G.colModel.colDefCols,z=D?.list;if(!Array.isArray(z))return;return D}function $0(G){if(!G.isPrimary())return!1;return!mw(G)&&!tw(G)}function hG(G){return G+1}function PQ(G,D){let z=SB(G),B=z.patches.get(D.colId);z.patches.set(D.colId,B?{...B,...D}:D)}function gQ(G,D){let z=G.columnState?.patches;if(!z?.size)return;for(let[B,Q]of z){if(!(D in Q))continue;let J={...Q};if(delete J[D],Object.keys(J).length===1){z.delete(B);continue}z.set(B,J)}}function SB(G){let{columnState:D}=G;if(!D)D={patches:new Map,seq:0,eventType:"toolPanelUi"},G.columnState=D;return D}function KZ(G){let{aggFuncs:D}=G;if(!D)D={values:new Map,seq:0,eventType:"toolPanelUi"},G.aggFuncs=D;return D}var GK=class extends lw{constructor(){super(...arguments);this.beanName="columnStateUpdateStrategy"}applyColumnState(G,D,z){this.delegate("applyColumnState",G,D,z)}commit(G){this.delegate("commit",G)}hasPendingChanges(G){return this.delegate("hasPendingChanges",G)}moveColumns(G,D,z,B){this.delegate("moveColumns",G,D,z,B)}reset(G){this.delegate("reset",G)}setColumnsVisible(G,D,z,B){this.delegate("setColumnsVisible",G,D,z,B)}isColumnVisibleInToolPanel(G,D){return this.delegate("isColumnVisibleInToolPanel",G,D)}setRowGroupColumns(G,D,z){this.delegate("setRowGroupColumns",G,D,z)}getRowGroupColumns(G){return this.delegate("getRowGroupColumns",G)}getPrimaryColumns(G){return this.delegate("getPrimaryColumns",G)}hasDeferredColumnOrder(G){return this.delegate("hasDeferredColumnOrder",G)}setValueColumns(G,D,z){this.delegate("setValueColumns",G,D,z)}getValueColumns(G){return this.delegate("getValueColumns",G)}setColumnAggFunc(G,D,z,B){this.delegate("setColumnAggFunc",G,D,z,B)}getColumnAggFunc(G,D){return this.delegate("getColumnAggFunc",G,D)}setPivotColumns(G,D,z){this.delegate("setPivotColumns",G,D,z)}getPivotColumns(G){return this.delegate("getPivotColumns",G)}setPivotMode(G,D,z){this.delegate("setPivotMode",G,D,z)}getPivotMode(G){return this.delegate("getPivotMode",G)}isColumnSelectedInPivotModeToolPanel(G,D){return this.delegate("isColumnSelectedInPivotModeToolPanel",G,D)}progressSortFromEvent(G,D,z){this.delegate("progressSortFromEvent",G,D,z)}getSortDef(G,D){return this.delegate("getSortDef",G,D)}getUpdateStrategy(){return this.executionStrategy??(this.executionStrategy=this.createManagedBean(new sw))}delegate(G,...D){let z=this.getUpdateStrategy();return z[G].bind(z)(...D)}},K7={moduleName:"SharedColumnStateUpdateStrategy",version:j,beans:[GK],dependsOn:[i]},yB={moduleName:"ColumnsToolPanel",version:j,beans:[dw],userComponents:{agColumnsToolPanel:Qw},icons:{ensureColumnVisible:"column-arrow",columnsToolPanel:"columns",menuAddRowGroup:"group",menuRemoveRowGroup:"group",pivotPanel:"pivot",rowGroupPanel:"group",valuePanel:"aggregation",columnSelectClosed:"tree-closed",columnSelectOpen:"tree-open",columnSelectIndeterminate:"tree-indeterminate"},dependsOn:[i,K7,jD,E_,M_,I_,TB]},UK=class extends JK{constructor(){super(...arguments);this.beanName="chartMenuItemMapper"}getChartItems(G){let D=this.beans,z=D.chartSvc,B=G==="pivotChart";if(!z)return null;let Q=this.getLocaleTextFunc.bind(this),J=B?new ZK(D,z,Q):new $K(D,z,Q),U=z.isEnterprise(),Z=J.getMenuItem();if(Z?.subMenu&&!U){let X=(Y)=>({...Y,subMenu:Y.subMenu?.filter((W)=>!W._enterprise).map((W)=>X(W))});Z=X(Z)}let S=this.gos.get("chartToolPanelsDef")?.settingsPanel?.chartGroupsDef;if(S)Z=this.filterAndOrderChartMenu(Z,S,J.getConfigLookup());return this.cleanInternals(Z)}cleanInternals(G){if(!G)return G;let D=(z)=>{delete z?._key,delete z?._enterprise;for(let B of z?.subMenu??[])D(B);return z};return D(G)}buildLookup(G){let D={},z=(B)=>{if(D[B._key]=B,B.subMenu)for(let Q of B.subMenu)z(Q)};return z(G),D}filterAndOrderChartMenu(G,D,z){let B=this.buildLookup(G),Q={...G,subMenu:[]};for(let J of Object.keys(D)){let U=D[J],Z=z[J];if(Z===null)continue;if(Z==null){fZ(173,{group:J});continue}let S=B[Z._key];if(S)if(S.subMenu){let X=U.map((Y)=>{let W=Z[Y];if(W==null){fZ(174,{group:J,chartType:Y});return}return B[W]}).filter((Y)=>Y!==void 0);if(X.length>0)S.subMenu=X,Q.subMenu?.push(S)}else Q.subMenu?.push(S)}if(Q.subMenu?.length==0)return null;return Q}},ZK=class{constructor(G,D,z){this.beans=G,this.chartSvc=D,this.getLocaleTextFunc=z}getMenuItem(){let G=this.getLocaleTextFunc(),D=(z,B,Q,J,U=!1)=>{return{name:G(z,B+"‎"),action:()=>this.chartSvc.createPivotChart({chartType:Q}),_key:J,_enterprise:U}};return{name:G("pivotChart","Pivot Chart"),_key:"pivotChart",subMenu:[{_key:"pivotColumnChart",name:G("columnChart","Column"),subMenu:[D("groupedColumn","Grouped","groupedColumn","pivotGroupedColumn"),D("stackedColumn","Stacked","stackedColumn","pivotStackedColumn"),D("normalizedColumn","100% Stacked","normalizedColumn","pivotNormalizedColumn")]},{_key:"pivotBarChart",name:G("barChart","Bar"),subMenu:[D("groupedBar","Grouped","groupedBar","pivotGroupedBar"),D("stackedBar","Stacked","stackedBar","pivotStackedBar"),D("normalizedBar","100% Stacked","normalizedBar","pivotNormalizedBar")]},{_key:"pivotPieChart",name:G("pieChart","Pie"),subMenu:[D("pie","Pie","pie","pivotPie"),D("donut","Donut","donut","pivotDonut")]},{_key:"pivotLineChart",name:G("lineChart","Line"),subMenu:[D("lineChart","Line","line","pivotLineChart"),D("stackedLine","Stacked","stackedLine","pivotStackedLine"),D("normalizedLine","100% Stacked","normalizedLine","pivotNormalizedLine")]},{_key:"pivotAreaChart",name:G("areaChart","Area"),subMenu:[D("areaChart","Area","area","pivotArea"),D("stackedArea","Stacked","stackedArea","pivotStackedArea"),D("normalizedArea","100% Stacked","normalizedArea","pivotNormalizedArea")]},{_key:"pivotXYChart",name:G("xyChart","X Y (Scatter)"),subMenu:[D("scatter","Scatter","scatter","pivotScatter"),D("bubble","Bubble","bubble","pivotBubble")]},{_key:"pivotStatisticalChart",_enterprise:!1,name:G("statisticalChart","Statistical"),subMenu:[D("histogramChart","Histogram","histogram","pivotHistogram",!1)]},{_key:"pivotHierarchicalChart",_enterprise:!0,name:G("hierarchicalChart","Hierarchical"),subMenu:[D("treemapChart","Treemap","treemap","pivotTreemap",!0),D("sunburstChart","Sunburst","sunburst","pivotSunburst",!0)]},{_key:"pivotFunnel",name:G("funnel","Funnel"),subMenu:[D("funnel","Funnel","funnel","pivotFunnel"),D("coneFunnel","Cone Funnel","coneFunnel","pivotConeFunnel"),D("pyramid","Pyramid","pyramid","pivotPyramid")]},{_key:"pivotCombinationChart",name:G("combinationChart","Combination"),subMenu:[D("columnLineCombo","Column & Line","columnLineCombo","pivotColumnLineCombo"),D("AreaColumnCombo","Area & Column","areaColumnCombo","pivotAreaColumnCombo")]}],icon:f7("chart",this.beans,void 0)}}getConfigLookup(){return{columnGroup:{_key:"pivotColumnChart",column:"pivotGroupedColumn",stackedColumn:"pivotStackedColumn",normalizedColumn:"pivotNormalizedColumn"},barGroup:{_key:"pivotBarChart",bar:"pivotGroupedBar",stackedBar:"pivotStackedBar",normalizedBar:"pivotNormalizedBar"},pieGroup:{_key:"pivotPieChart",pie:"pivotPie",donut:"pivotDonut",doughnut:"pivotDonut"},lineGroup:{_key:"pivotLineChart",line:"pivotLineChart",stackedLine:"pivotStackedLine",normalizedLine:"pivotNormalizedLine"},areaGroup:{_key:"pivotAreaChart",area:"pivotArea",stackedArea:"pivotStackedArea",normalizedArea:"pivotNormalizedArea"},scatterGroup:{_key:"pivotXYChart",bubble:"pivotBubble",scatter:"pivotScatter"},combinationGroup:{_key:"pivotCombinationChart",columnLineCombo:"pivotColumnLineCombo",areaColumnCombo:"pivotAreaColumnCombo",customCombo:null},hierarchicalGroup:{_key:"pivotHierarchicalChart",treemap:"pivotTreemap",sunburst:"pivotSunburst"},statisticalGroup:{_key:"pivotStatisticalChart",histogram:"pivotHistogram",rangeBar:null,rangeArea:null,boxPlot:null},funnelGroup:{_key:"pivotFunnel",funnel:"pivotFunnel",coneFunnel:"pivotConeFunnel",pyramid:"pivotPyramid"},polarGroup:null,specializedGroup:null}}},$K=class{constructor(G,D,z){this.beans=G,this.chartSvc=D,this.getLocaleTextFunc=z}getMenuItem(){let G=this.getLocaleTextFunc(),D=(z,B,Q,J,U=!1)=>{return{name:G(z,B),action:()=>this.chartSvc.createChartFromCurrentRange(Q),_key:J,_enterprise:U}};return{name:G("chartRange","Chart Range"),_key:"chartRange",subMenu:[{name:G("columnChart","Column"),subMenu:[D("groupedColumn","Grouped","groupedColumn","rangeGroupedColumn"),D("stackedColumn","Stacked","stackedColumn","rangeStackedColumn"),D("normalizedColumn","100% Stacked","normalizedColumn","rangeNormalizedColumn")],_key:"rangeColumnChart"},{name:G("barChart","Bar"),subMenu:[D("groupedBar","Grouped","groupedBar","rangeGroupedBar"),D("stackedBar","Stacked","stackedBar","rangeStackedBar"),D("normalizedBar","100% Stacked","normalizedBar","rangeNormalizedBar")],_key:"rangeBarChart"},{name:G("pieChart","Pie"),subMenu:[D("pie","Pie","pie","rangePie"),D("donut","Donut","donut","rangeDonut")],_key:"rangePieChart"},{name:G("lineChart","Line"),subMenu:[D("lineChart","Line","line","rangeLineChart"),D("stackedLine","Stacked","stackedLine","rangeStackedLine"),D("normalizedLine","100% Stacked","normalizedLine","rangeNormalizedLine")],_key:"rangeLineChart"},{name:G("areaChart","Area"),subMenu:[D("areaChart","Area","area","rangeArea"),D("stackedArea","Stacked","stackedArea","rangeStackedArea"),D("normalizedArea","100% Stacked","normalizedArea","rangeNormalizedArea")],_key:"rangeAreaChart"},{name:G("xyChart","X Y (Scatter)"),subMenu:[D("scatter","Scatter","scatter","rangeScatter"),D("bubble","Bubble","bubble","rangeBubble")],_key:"rangeXYChart"},{name:G("polarChart","Polar"),subMenu:[D("radarLine","Radar Line","radarLine","rangeRadarLine"),D("radarArea","Radar Area","radarArea","rangeRadarArea"),D("nightingale","Nightingale","nightingale","rangeNightingale"),D("radialColumn","Radial Column","radialColumn","rangeRadialColumn"),D("radialBar","Radial Bar","radialBar","rangeRadialBar")],_key:"rangePolarChart",_enterprise:!0},{name:G("statisticalChart","Statistical"),subMenu:[D("boxPlot","Box Plot","boxPlot","rangeBoxPlot",!0),D("histogramChart","Histogram","histogram","rangeHistogram",!1),D("rangeBar","Range Bar","rangeBar","rangeRangeBar",!0),D("rangeArea","Range Area","rangeArea","rangeRangeArea",!0)],_key:"rangeStatisticalChart",_enterprise:!1},{name:G("hierarchicalChart","Hierarchical"),subMenu:[D("treemap","Treemap","treemap","rangeTreemap"),D("sunburst","Sunburst","sunburst","rangeSunburst")],_key:"rangeHierarchicalChart",_enterprise:!0},{name:G("specializedChart","Specialized"),subMenu:[D("heatmap","Heatmap","heatmap","rangeHeatmap"),D("waterfall","Waterfall","waterfall","rangeWaterfall")],_key:"rangeSpecializedChart",_enterprise:!0},{name:G("funnel","Funnel"),subMenu:[D("funnel","Funnel","funnel","rangeFunnel"),D("coneFunnel","Cone Funnel","coneFunnel","rangeConeFunnel"),D("pyramid","Pyramid","pyramid","rangePyramid")],_key:"rangeFunnel",_enterprise:!0},{name:G("combinationChart","Combination"),subMenu:[D("columnLineCombo","Column & Line","columnLineCombo","rangeColumnLineCombo"),D("AreaColumnCombo","Area & Column","areaColumnCombo","rangeAreaColumnCombo")],_key:"rangeCombinationChart"}],icon:f7("chart",this.beans,void 0)}}getConfigLookup(){return{columnGroup:{_key:"rangeColumnChart",column:"rangeGroupedColumn",stackedColumn:"rangeStackedColumn",normalizedColumn:"rangeNormalizedColumn"},barGroup:{_key:"rangeBarChart",bar:"rangeGroupedBar",stackedBar:"rangeStackedBar",normalizedBar:"rangeNormalizedBar"},pieGroup:{_key:"rangePieChart",pie:"rangePie",donut:"rangeDonut",doughnut:"rangeDonut"},lineGroup:{_key:"rangeLineChart",line:"rangeLineChart",stackedLine:"rangeStackedLine",normalizedLine:"rangeNormalizedLine"},areaGroup:{_key:"rangeAreaChart",area:"rangeArea",stackedArea:"rangeStackedArea",normalizedArea:"rangeNormalizedArea"},scatterGroup:{_key:"rangeXYChart",bubble:"rangeBubble",scatter:"rangeScatter"},polarGroup:{_key:"rangePolarChart",radarLine:"rangeRadarLine",radarArea:"rangeRadarArea",nightingale:"rangeNightingale",radialColumn:"rangeRadialColumn",radialBar:"rangeRadialBar"},statisticalGroup:{_key:"rangeStatisticalChart",boxPlot:"rangeBoxPlot",histogram:"rangeHistogram",rangeBar:"rangeRangeBar",rangeArea:"rangeRangeArea"},hierarchicalGroup:{_key:"rangeHierarchicalChart",treemap:"rangeTreemap",sunburst:"rangeSunburst"},specializedGroup:{_key:"rangeSpecializedChart",heatmap:"rangeHeatmap",waterfall:"rangeWaterfall"},funnelGroup:{_key:"rangeFunnel",funnel:"rangeFunnel",coneFunnel:"rangeConeFunnel",pyramid:"rangePyramid"},combinationGroup:{_key:"rangeCombinationChart",columnLineCombo:"rangeColumnLineCombo",areaColumnCombo:"rangeAreaColumnCombo",customCombo:null}}}},YK=class extends LK{constructor(){super(...arguments);this.beanName="colChooserFactory"}createColumnSelectPanel(G,D,z,B){let Q=G.createManagedBean(new W7),J=B??D?.getColDef().columnChooserParams??{},{contractColumnSelection:U,suppressColumnExpandAll:Z,suppressColumnFilter:S,suppressColumnSelectAll:X,suppressSyncLayoutWithGrid:Y,columnLayout:W}=J;if(Q.init(!!z,SK(this.gos,{suppressColumnMove:!1,suppressValues:!1,suppressPivots:!1,suppressRowGroups:!1,suppressPivotMode:!1,contractColumnSelection:!!U,suppressColumnExpandAll:!!Z,suppressColumnFilter:!!S,suppressColumnSelectAll:!!X,suppressSyncLayoutWithGrid:!!W||!!Y,onStateUpdated:()=>{}}),"columnMenu"),W)Q.setColumnLayout(W);return Q}showColumnChooser({column:G,chooserParams:D,eventSource:z,headerPosition:B}){this.hideActiveColumnChooser();let Q=this.createColumnSelectPanel(this,G,!0,D),J=this.getLocaleTextFunc(),U=this.beans,{visibleCols:Z,focusSvc:S,menuUtils:X}=U,Y=Z.allCols.indexOf(G),W=G?S.focusedHeader??B??null:null;this.activeColumnChooserDialog=this.createBean(new PB({title:J("chooseColumns","Choose Columns"),component:Q,width:300,height:300,resizable:!0,movable:!0,centered:!0,closable:!0,afterGuiAttached:()=>{XK(U,Q.getGui())?.focus({preventScroll:!0}),this.dispatchVisibleChangedEvent(!0,G)},closedCallback:(q)=>{let H=this.activeColumnChooser.getGui();if(this.destroyBean(this.activeColumnChooser),this.activeColumnChooser=void 0,this.activeColumnChooserDialog=void 0,this.dispatchVisibleChangedEvent(!1,G),G)X.restoreFocusOnClose({column:G,headerPosition:W,columnIndex:Y,eventSource:z},H,q,!0)},postProcessPopupParams:{type:"columnChooser",column:G,eventSource:z}})),this.activeColumnChooser=Q}hideActiveColumnChooser(){this.destroyBean(this.activeColumnChooserDialog)}dispatchVisibleChangedEvent(G,D){this.eventSvc.dispatchEvent({type:"columnMenuVisibleChanged",visible:G,switchingTab:!1,key:"columnChooser",column:D??null})}},MK={pinSubMenu:"PinnedColumn",pinLeft:"PinnedColumn",pinRight:"PinnedColumn",clearPinned:"PinnedColumn",pinRowSubMenu:"PinnedRow",pinBottom:"PinnedRow",pinTop:"PinnedRow",unpinRow:"PinnedRow",valueAggSubMenu:"SharedAggregation",autoSizeThis:"ColumnAutoSize",autoSizeAll:"ColumnAutoSize",rowGroup:"SharedRowGrouping",rowUnGroup:"SharedRowGrouping",resetColumns:"CommunityCore",expandAll:["ClientSideRowModelHierarchy","ServerSideRowModel"],contractAll:["ClientSideRowModelHierarchy","ServerSideRowModel"],copy:"Clipboard",copyWithHeaders:"Clipboard",copyWithGroupHeaders:"Clipboard",cut:"Clipboard",paste:"Clipboard",export:["CsvExport","ExcelExport"],csvExport:"CsvExport",excelExport:"ExcelExport",separator:"CommunityCore",pivotChart:"IntegratedCharts",chartRange:"IntegratedCharts",columnFilter:"ColumnFilter",columnChooser:"ColumnMenu",sortAscending:"Sort",sortDescending:"Sort",sortAbsoluteAscending:"Sort",sortAbsoluteDescending:"Sort",sortUnSort:"Sort"};function AK(G,D){let z=MK[D];if(z)G.assertModuleRegistered(z,`menu item '${D}'`)}var ND="separator";function N7(G,D){if(!G)return;for(let z=G.length-2;z>=0;z--){let B=G[z]===D,Q=G[z+1]===D;if(B&&Q)G.splice(z+1,1)}}var RK={sortAscending:{fallback:"Sort Ascending",getSortDef:()=>({type:"default",direction:"asc"})},sortDescending:{fallback:"Sort Descending",getSortDef:()=>({type:"default",direction:"desc"})},sortAbsoluteAscending:{fallback:"Sort Absolute Ascending",getSortDef:()=>({type:"absolute",direction:"asc"})},sortAbsoluteDescending:{fallback:"Sort Absolute Descending",getSortDef:()=>({type:"absolute",direction:"desc"})},sortUnSort:{fallback:"Clear Sort",getSortDef:(G)=>({type:FK(G.getSortDef()?.type),direction:null})}},CK=class extends KK{constructor(){super(...arguments);this.beanName="menuItemMapper"}mapWithStockItems(G,D,z,B,Q){if(!G)return[];let J=[],U=this.getLocaleTextFunc(),{beans:Z,gos:S}=this,{pinnedCols:X,colAutosize:Y,aggFuncSvc:W,rowGroupColsSvc:q,colNames:H,colModel:_,clipboardSvc:k,expansionSvc:w,focusSvc:K,csvCreator:f,excelCreator:N,menuSvc:F,colChooserFactory:E,sortSvc:I,chartMenuItemMapper:V,valueColsSvc:A,pinnedRowModel:R}=Z,O=(u,v,h,P)=>{switch(AK(S,u),u){case"pinSubMenu":return X&&v?{name:U("pinColumn","Pin Column"),icon:a("menuPin",Z,null),subMenu:["clearPinned","pinLeft","pinRight"]}:null;case"pinLeft":return X&&v?{name:U("pinLeft","Pin Left"),action:()=>X.setColsPinned([v],"left",P),checked:!!v&&v.isPinnedLeft()}:null;case"pinRight":return X&&v?{name:U("pinRight","Pin Right"),action:()=>X.setColsPinned([v],"right",P),checked:!!v&&v.isPinnedRight()}:null;case"clearPinned":return X&&v?{name:U("noPin","No Pin"),action:()=>X.setColsPinned([v],null,P),checked:!!v&&!v.isPinned()}:null;case"pinRowSubMenu":{let b=S.get("enableRowPinning"),g=[],c=z?.rowPinned??z?.pinnedSibling?.rowPinned;if(c)g.push("unpinRow");if(b&&b!=="bottom"&&c!="top")g.push("pinTop");if(b&&b!=="top"&&c!="bottom")g.push("pinBottom");return R?.isManual()?{name:U("pinRow","Pin Row"),icon:a("rowPin",Z,v),subMenu:g}:null}case"pinTop":return R?.isManual()?{name:U("pinTop","Pin to Top"),icon:a("rowPinTop",Z,v),action:({node:b,column:g})=>b&&R.pinRow(b,"top",g)}:null;case"pinBottom":return R?.isManual()?{name:U("pinBottom","Pin to Bottom"),icon:a("rowPinBottom",Z,v),action:({node:b,column:g})=>b&&R.pinRow(b,"bottom",g)}:null;case"unpinRow":return R?.isManual()?{name:U("unpinRow","Unpin Row"),icon:a("rowUnpin",Z,v),action:({node:b,column:g})=>b&&R.pinRow(b,null,g)}:null;case"valueAggSubMenu":if(W&&A&&(v?.isPrimary()||v?.getColDef().pivotValueColumn))return{name:U("valueAggregation","Value Aggregation"),icon:a("menuValue",Z,null),subMenu:VK(v,W,A,U),disabled:S.get("functionsReadOnly")};else return null;case"autoSizeThis":return Y?{name:U("autosizeThisColumn","Autosize This Column"),action:()=>v&&Y.autoSizeColumn(v,P,S.get("skipHeaderOnAutoSize"))}:null;case"autoSizeAll":return Y?{name:U("autosizeAllColumns","Autosize All Columns"),action:()=>Y.autoSizeAllColumns({source:P,skipHeader:S.get("skipHeaderOnAutoSize")})}:null;case"rowGroup":return q?{name:Q0(U,"groupBy",H.getDisplayNameForColumn(v,"header")),disabled:S.get("functionsReadOnly")||v?.isRowGroupActive()||!v?.getColDef().enableRowGroup,action:()=>q.addColumns([v],P),icon:a("menuAddRowGroup",Z,null)}:null;case"rowUnGroup":if(q&&S.isModuleRegistered("SharedRowGrouping")){let b=v?.getColDef().showRowGroup,g=S.get("groupLockGroupColumns"),c,s,m;if(b===!0)c=U("ungroupAll","Un-Group All"),s=S.get("functionsReadOnly")||g===-1||g>=(q.columns.length??0),m=()=>q.setColumns(q.columns.slice(0,g),P);else if(typeof b==="string"){let zG=_.getColDefCol(b),fG=zG!=null?H.getDisplayNameForColumn(zG,"header"):b;c=Q0(U,"ungroupBy",fG),s=S.get("functionsReadOnly")||Z0(zG,Z),m=()=>{q.removeColumns([b],P)}}else c=Q0(U,"ungroupBy",H.getDisplayNameForColumn(v,"header")),s=S.get("functionsReadOnly")||!v?.isRowGroupActive()||!v?.getColDef().enableRowGroup||Z0(v,Z),m=()=>q.removeColumns([v],P);return{name:c,disabled:s,action:m,icon:a("menuRemoveRowGroup",Z,null)}}else return null;case"resetColumns":return{name:U("resetColumns","Reset Columns"),action:()=>EK(Z,P)};case"expandAll":return w?{name:U("expandAll","Expand All Row Groups"),action:()=>w.expandAll(!0)}:null;case"contractAll":return w?{name:U("collapseAll","Collapse All Row Groups"),action:()=>w.expandAll(!1)}:null;case"copy":return k?{name:U("copy","Copy"),shortcut:U("ctrlC","Ctrl+C"),icon:a("clipboardCopy",Z,null),action:()=>k.copyToClipboard()}:null;case"copyWithHeaders":return k?{name:U("copyWithHeaders","Copy with Headers"),icon:a("clipboardCopy",Z,null),action:()=>k.copyToClipboard({includeHeaders:!0})}:null;case"copyWithGroupHeaders":return k?{name:U("copyWithGroupHeaders","Copy with Group Headers"),icon:a("clipboardCopy",Z,null),action:()=>k.copyToClipboard({includeHeaders:!0,includeGroupHeaders:!0})}:null;case"cut":if(k){let b=K.getFocusedCell(),g=b?NK(Z,b):null,c=g?b?.column.isCellEditable(g):!1;return{name:U("cut","Cut"),shortcut:U("ctrlX","Ctrl+X"),icon:a("clipboardCut",Z,null),disabled:!c||S.get("suppressCutToClipboard"),action:()=>k.cutToClipboard(void 0,"contextMenu")}}else return null;case"paste":if(k){let b=S.get("suppressClipboardApi")||S.get("suppressClipboardPaste")||!v||!z||!v.isCellEditable(z)||v.isSuppressPaste(z);return{name:U("paste","Paste"),shortcut:U("ctrlV","Ctrl+V"),icon:a("clipboardPaste",Z,null),disabled:b,action:()=>k.pasteFromClipboard()}}else return null;case"export":{let b=[];if(!S.get("suppressCsvExport")&&f)b.push("csvExport");if(!S.get("suppressExcelExport")&&N)b.push("excelExport");return b.length?{name:U("export","Export"),subMenu:b,icon:a("save",Z,null)}:null}case"csvExport":return f?{name:U("csvExport","CSV Export"),icon:a("csvExport",Z,null),action:()=>f.exportDataAsCsv()}:null;case"excelExport":return N?{name:U("excelExport","Excel Export"),icon:a("excelExport",Z,null),action:()=>N.exportDataAsExcel()}:null;case"separator":return u;case"pivotChart":case"chartRange":return V.getChartItems(u);case"columnFilter":return F&&v?{name:U("columnFilter","Column Filter"),icon:a("filter",Z,null),action:()=>F.showFilterMenu({column:v,buttonElement:h(),containerType:"columnFilter",positionBy:"button"})}:null;case"columnChooser":{let b=K.focusedHeader;return E?{name:U("columnChooser","Choose Columns"),icon:a("columns",Z,null),action:()=>E.showColumnChooser({column:v,eventSource:h(),headerPosition:b})}:null}case"sortUnSort":case"sortAscending":case"sortDescending":case"sortAbsoluteAscending":case"sortAbsoluteDescending":{if(!I||!v)return null;let{fallback:b,getSortDef:g}=RK[u];return{name:U(u,b),icon:a(u,Z,null),action:()=>I.setSortForColumn(v,g(v),!1,P)}}default:return IK(176,{key:u}),null}};for(let u of G){let v;if(typeof u==="string")v=O(u,D,B,Q);else v={...u};if(!v)continue;let h=v,{subMenu:P}=h;if(P&&P instanceof Array)h.subMenu=this.mapWithStockItems(P,D,z,B,Q);if(v!=null)J.push(v)}return N7(J,ND),J}};function VK(G,D,z,B){let Q;if(G.isPrimary())Q=G;else{let U=G.getColDef().pivotValueColumn;Q=fK(U)?U:void 0}let J=[];if(Q){let U=Q.isValueActive(),Z=D.getFuncNames(Q);J.push({name:B("noAggregation","None"),action:()=>{z.removeColumns([Q],"contextMenu"),z.setColumnAggFunc(Q,void 0,"contextMenu")},checked:!U});for(let S of Z)J.push({name:B(S,D.getDefaultFuncLabel(S)),action:()=>{z.setColumnAggFunc(Q,S,"contextMenu"),z.addColumns([Q],"contextMenu")},checked:U&&Q.getAggFunc()===S})}return J}var bK=class extends WK{constructor(){super(...arguments);this.beanName="colMenuFactory"}createMenu(G,D,z,B){let Q=G.createManagedBean(new KJ(0,{column:z??null,node:null,value:null})),J=this.beans.menuItemMapper.mapWithStockItems(D,z??null,null,B,"columnMenu");return Q.addMenuItems(J),Q}getMenuItems(G=null,D=null){let z=this.getDefaultMenuOptions(G),B,Q=(G?.getColDef()??D?.getColGroupDef())?.mainMenuItems;if(Array.isArray(Q))B=Q;else if(typeof Q==="function")B=Q(qK(this.gos,{column:G,columnGroup:D,defaultItems:z}));else{let J=this.gos.getCallback("getMainMenuItems");if(J)B=J({column:G,columnGroup:D,defaultItems:z});else B=z}return N7(B,ND),B}getDefaultMenuOptions(G){let D=[],{beans:z,gos:B}=this,{colChooserFactory:Q,rowGroupColsSvc:J,colModel:U,expansionSvc:Z,sortSvc:S,menuSvc:X,pinnedCols:Y,aggFuncSvc:W,colAutosize:q}=z,H=wK(B),_=()=>{if(!H&&Q)D.push("columnChooser");D.push("resetColumns")};if(!G)return _(),D;let{colDef:k}=G,w=Y&&!k.lockPinned,K=J?.columns.length??0,f=K>0,N=_K(B),F=B.get("treeData"),E=G.isPrimary(),I=!E||W&&G.isAllowValue()&&(f||N||F);if(S&&!H&&G.isSortable()){let{isDefaultSortAllowed:V,isAbsoluteSortAllowed:A,isAbsoluteSort:R,isDefaultSort:O,isAscending:u,isDescending:v,direction:h}=HK(G,z);if(V&&!(u&&O))D.push("sortAscending");if(V&&!(v&&O))D.push("sortDescending");if(A&&!(u&&R))D.push("sortAbsoluteAscending");if(A&&!(v&&R))D.push("sortAbsoluteDescending");if(h)D.push("sortUnSort");D.push(ND)}if(X?.isFilterMenuItemEnabled(G))D.push("columnFilter"),D.push(ND);if(w)D.push("pinSubMenu");if(I)D.push("valueAggSubMenu");if(w||I)D.push(ND);if(q){if(!k.suppressAutoSize)D.push("autoSizeThis");D.push("autoSizeAll"),D.push(ND)}if(J&&B.isModuleRegistered("SharedRowGrouping")){let V=D.length;if(k.showRowGroup)D.push("rowUnGroup");else if(G.isAllowRowGroup()&&E)if(G.isRowGroupActive()){if(!Z0(G,z))D.push("rowUnGroup")}else D.push("rowGroup");if(D.length>V)D.push(ND)}if(_(),Z&&(kK(B)||B.get("ssrmExpandAllAffectsAllRows"))&&(F||K>(U.isPivotMode()?1:0)))D.push("expandAll"),D.push("contractAll");return D}},FZ="ag-context-menu-open",gK=class extends vK{constructor(){super(...arguments);this.beanName="contextMenuSvc",this.focusedCell=null}postConstruct(){this.menu=this.createManagedBean(new v6({menuItemCallbacks:wJ,getMenuItems:this.getMenuItems.bind(this),mapMenuItems:this.mapWithStockItems.bind(this),beforeMenuOpen:this.beforeMenuOpen.bind(this),onMenuOpen:this.onMenuOpen.bind(this),onMenuClose:this.onMenuClose.bind(this),afterMenuDestroyed:this.afterMenuDestroyed.bind(this),onVisibleChanged:this.dispatchVisibleChangedEvent.bind(this),shouldBlockMenuOpen:()=>!!this.beans.overlays?.exclusive}))}hideActiveMenu(){this.menu.hideActiveMenu()}getMenuItems(G,D){let{column:z,node:B,value:Q}=G,J=[],{clipboardSvc:U,chartSvc:Z,csvCreator:S,excelCreator:X,colModel:Y,rangeSvc:W,gos:q}=this.beans;if(NZ(B)&&U){if(z){if(!q.get("suppressCutToClipboard"))J.push("cut");J.push("copy","copyWithHeaders","copyWithGroupHeaders","paste","separator")}}if(q.get("enableCharts")&&Z){if(Y.isPivotMode())J.push("pivotChart");if(W&&!W.isEmpty())J.push("chartRange")}if(NZ(B)){let w=q.get("enableRowPinning"),K=q.get("isRowPinnable");if(w){let I=B.level>-1&&B.footer,V=B.level===-1&&B.footer,A=jK(q);if(V&&!(A==="pinnedBottom"||A==="pinnedTop")||!V&&!I){if(K?.(B)??!0)J.push("pinRowSubMenu")}}let f=q.get("suppressExcelExport")||!X,N=q.get("suppressCsvExport")||!S;if(!PK()&&(!f||!N))J.push("export")}let H=J.length?J:void 0,_=z?.getColDef().contextMenuItems;if(Array.isArray(_))return _;if(typeof _==="function")return _(OK(q,{column:z,node:B,value:Q,defaultItems:H,event:D}));return q.getCallback("getContextMenuItems")?.({column:z,node:B,value:Q,defaultItems:H,event:D})??J}getContextMenuPosition(G,D){let z=this.getRowCtrl(G),B=this.getCellGui(z,D);if(!B)return{x:0,y:z?.getRowYPosition()??0};let Q=B.getBoundingClientRect();return{x:Q.x+Q.width/2,y:Q.y+Q.height/2}}showContextMenu(G){let D=G.rowNode??null,z=G.column??null,{anchorToElement:B,value:Q,source:J}=G;if(D&&z&&Q==null)Q=this.beans.valueSvc.getValueForDisplay({column:z,node:D,from:"edit"}).value;if(B==null)B=this.getContextMenuAnchorElement(D,z);this.beans.menuUtils.onContextMenu({mouseEvent:G.mouseEvent??null,touchEvent:G.touchEvent??null,showMenuCallback:(U)=>this.menu.showMenu({node:D,column:z,value:Q},U,B),source:J})}handleContextMenuMouseEvent(G,D,z,B){let Q=B?.rowNode??z?.rowNode??null,J=B?.column??z?.findFullWidthInfoForEvent(G||D)?.column??null,{valueSvc:U,ctrlsSvc:Z}=this.beans,S=J?U.getValue(J,Q,"edit"):null,X=Z.getGridBodyCtrl(),Y=B?B.eGui:X.eGridBody;this.showContextMenu({mouseEvent:G,touchEvent:D,rowNode:Q,column:J,value:S,anchorToElement:Y,source:"ui"})}beforeMenuOpen(G){if(!G.column)this.beans.focusSvc.clearFocusedCell()}onMenuOpen(){let{ctrlsSvc:G,focusSvc:D}=this.beans;G.getGridBodyCtrl().eGridBody.classList.add(FZ),this.focusedCell=D.getFocusedCell()}onMenuClose(){this.beans.ctrlsSvc.getGridBodyCtrl().eGridBody.classList.remove(FZ)}afterMenuDestroyed(){let{beans:G,focusedCell:D}=this;uK(G,D)}dispatchVisibleChangedEvent(G,D){this.eventSvc.dispatchEvent({type:"contextMenuVisibleChanged",visible:G,source:D})}getRowCtrl(G){let{rowIndex:D,rowPinned:z}=G||{};if(D==null)return;return this.beans.rowRenderer.getRowByPosition({rowIndex:D,rowPinned:z})||void 0}getCellGui(G,D){if(!G||!D)return;return G.getCellCtrl(D)?.eGui||void 0}getContextMenuAnchorElement(G,D){let z=this.beans.ctrlsSvc.getGridBodyCtrl().eGridBody,B=this.getRowCtrl(G);if(!B)return z;let Q=this.getCellGui(B,D);if(Q)return Q;if(B.isFullWidth())return B.getFullWidthElement();return z}mapWithStockItems(G,D,z){let{column:B,node:Q}=D;return this.beans.menuItemMapper.mapWithStockItems(G,B,Q,z,"contextMenu")}},UD="filterMenuTab",ZD="generalMenuTab",FD="columnsMenuTab",XB=[ZD,UD,FD],pK=class extends F7{constructor(){super(...arguments);this.beanName="enterpriseMenuFactory"}hideActiveMenu(){this.destroyBean(this.activeMenu)}showMenuAfterMouseEvent(G,D,z,B,Q){let{column:J,columnGroup:U}=this.splitColumnOrGroup(G),Z=Q?"filterMenuTab":void 0;this.showMenu(J,U,(S)=>{let X=S.getGui();if(this.beans.popupSvc.positionPopupUnderMouseEvent({type:z,additionalParams:{column:J},mouseEvent:D,ePopup:X}),Z)S.showTab?.(Z);this.dispatchVisibleChangedEvent(!0,!1,J,U,Z)},z,Z,void 0,D.target,B)}splitColumnOrGroup(G){let D=G&&lK(G);return{column:D?G:void 0,columnGroup:D?void 0:G}}showMenuAfterButtonClick(G,D,z,B,Q){let J=-1,U="left";if(this.gos.get("enableRtl"))J=1,U="right";let Z=Q?"filterMenuTab":void 0,S=Z?[Z]:void 0,X=P0(this.gos),Y=(X?9:4)*J,W=X?-23:4,{column:q,columnGroup:H}=this.splitColumnOrGroup(G);this.showMenu(q,H,(_)=>{let k=_.getGui();if(this.beans.popupSvc.positionPopupByComponent({type:z,additionalParams:{column:q},eventSource:D,ePopup:k,alignSide:U,nudgeX:Y,nudgeY:W,position:"under",keepWithinBounds:!0}),Z)_.showTab?.(Z);this.dispatchVisibleChangedEvent(!0,!1,q,H,Z)},z,Z,S,D,B)}showMenu(G,D,z,B,Q,J,U,Z){let S=this.getMenuParams(G,D,J,U);if(!S)return;let{menu:X,eMenuGui:Y,anchorToElement:W,restoreFocusParams:q}=S,H=[],{menuUtils:_,popupSvc:k}=this.beans;H.push((K)=>{let f=X.getGui();if(this.destroyBean(X),G)EZ(G,!1,"contextMenu"),_.restoreFocusOnClose(q,f,K);Z?.()});let w=this.getLocaleTextFunc();if(k.addPopup({modal:!0,eChild:Y,closeOnEsc:!0,closedCallback:(K)=>{for(let f of H)f(K);this.dispatchVisibleChangedEvent(!1,!1,G,D,Q)},afterGuiAttached:(K)=>X.afterGuiAttached(Object.assign({},{container:B},K)),positionCallback:Q?()=>z(X):void 0,ariaLabel:w("ariaLabelColumnMenu","Column Menu")}),!Q)X.showTabBasedOnPreviousSelection?.(),z(X);if(nK(this.gos)){let K=k.setPopupPositionRelatedToElement(Y,W);if(K&&G)this.addStopAnchoring(K,G,H)}if(X.addEventListener("tabSelected",(K)=>{this.dispatchVisibleChangedEvent(!1,!0,G),this.lastSelectedTab=K.key,this.dispatchVisibleChangedEvent(!0,!0,G)}),G)EZ(G,!0,"contextMenu");this.activeMenu=X,X.addEventListener("destroyed",()=>{if(this.activeMenu===X)this.activeMenu=null})}addStopAnchoring(G,D,z){G.then((B)=>{D.__addEventListener("leftChanged",B),D.__addEventListener("visibleChanged",B),z.push(()=>{D.__removeEventListener("leftChanged",B),D.__removeEventListener("visibleChanged",B)})})}getMenuParams(G,D,z,B){let{focusSvc:Q,visibleCols:J,ctrlsSvc:U}=this.beans,Z={column:G,headerPosition:Q.focusedHeader,columnIndex:J.allCols.indexOf(G),eventSource:B},S=this.createMenu(G,D,Z,z,B);return S?{menu:S,eMenuGui:S.getGui(),anchorToElement:B||U.getGridBodyCtrl().eGridBody,restoreFocusParams:Z}:void 0}createMenu(G,D,z,B,Q){if(P0(this.gos))return this.createBean(new mK(G,z,this.lastSelectedTab,B,Q));else{let J=this.beans.colMenuFactory.getMenuItems(G,D);return J.length?this.createBean(new tK(J,G,z,Q)):void 0}}dispatchVisibleChangedEvent(G,D,z,B,Q){this.eventSvc.dispatchEvent({type:"columnMenuVisibleChanged",visible:G,switchingTab:D,key:this.lastSelectedTab??Q??(P0(this.gos)?ZD:"columnMenu"),column:z??null,columnGroup:B??null})}isMenuEnabled(G){if(!P0(this.gos))return!0;let D=!this.beans.filterManager?.isFilterAllowed(G),z=G.getColDef().menuTabs??XB;return(D&&z.includes(UD)?z.length-1:z.length)>0}showMenuAfterContextMenuEvent(G,D,z){this.beans.menuUtils.onContextMenu({mouseEvent:D,touchEvent:z,source:"ui",showMenuCallback:(B)=>{return this.showMenuAfterMouseEvent(G,B,"columnMenu"),!0}})}},mK=class extends F7{constructor(G,D,z,B,Q){super();this.column=G,this.restoreFocusParams=D,this.initialSelection=z,this.restrictTo=B,this.sourceElement=Q,this.tabFactories={},this.includeChecks={};let{tabFactories:J,includeChecks:U}=this;J[ZD]=this.createMainPanel.bind(this),J[UD]=this.createFilterPanel.bind(this),J[FD]=this.createColumnsPanel.bind(this),U[ZD]=()=>!0,U[UD]=()=>G?!!this.beans.filterManager?.isFilterAllowed(G):!1,U[FD]=()=>!0}postConstruct(){let G=this.getTabsToCreate().map((z)=>this.createTab(z)),D=new YJ({items:G,cssClass:"ag-menu",onActiveItemClicked:this.onHidePopup.bind(this),onItemClicked:this.onTabItemClicked.bind(this)});this.tabbedLayout=this.createBean(D),this.mainMenuList?.setParentComponent(D),this.addDestroyFunc(()=>this.destroyBean(D))}getTabsToCreate(){if(this.restrictTo)return this.restrictTo;return(this.column?.getColDef().menuTabs??XB).filter((G)=>this.isValidMenuTabItem(G)&&this.isNotSuppressed(G))}isValidMenuTabItem(G){let D=!0,z=XB;if(this.restrictTo!=null)D=this.restrictTo.indexOf(G)>-1,z=this.restrictTo;if(D=D&&XB.indexOf(G)>-1,!D)dK(175,{menuTabName:G,itemsToConsider:z});return D}isNotSuppressed(G){return this.includeChecks[G]()}createTab(G){return this.tabFactories[G]()}showTabBasedOnPreviousSelection(){this.showTab(this.initialSelection)}showTab(G){let{tabItemColumns:D,tabbedLayout:z,tabItemFilter:B,tabItemGeneral:Q}=this;if(D&&G===FD)z.showItem(D);else if(B&&G===UD)z.showItem(B);else if(Q&&G===ZD)z.showItem(Q);else z.showFirstItem()}onTabItemClicked(G){let D=null;switch(G.item){case this.tabItemColumns:D=FD;break;case this.tabItemFilter:D=UD;break;case this.tabItemGeneral:D=ZD;break}if(D)this.activateTab(D)}activateTab(G){let D={type:"tabSelected",key:G};this.dispatchLocalEvent(D)}createMainPanel(){let{beans:G,column:D}=this,z=G.colMenuFactory,B=z.createMenu(this,z.getMenuItems(D),this.column,()=>this.sourceElement??this.getGui());this.mainMenuList=B,B.addEventListener("closeMenu",this.onHidePopup.bind(this));let Q={title:yQ("legacyMenu",G,D),titleLabel:ZD.replace("MenuTab",""),bodyPromise:TQ.resolve(B.getGui()),name:ZD};return this.tabItemGeneral=Q,Q}onHidePopup(G){this.beans.menuUtils.closePopupAndRestoreFocusOnSelect(this.hidePopupFunc,this.restoreFocusParams,G)}createFilterPanel(){let G=this.column?this.createBean(new yK(this.column,"COLUMN_MENU")):null;if(this.filterComp=G,!G?.hasFilter())hK(119);let D=(B)=>G?.afterGuiAttached(B),z=()=>G?.afterGuiDetached();return this.tabItemFilter={title:yQ("filterTab",this.beans,this.column),titleLabel:UD.replace("MenuTab",""),bodyPromise:TQ.resolve(G?.getGui()),afterAttachedCallback:D,afterDetachedCallback:z,name:UD},this.tabItemFilter}createColumnsPanel(){let G=cK({tag:"div",cls:"ag-menu-column-select-wrapper"}),{beans:D,column:z}=this,Q=D.colChooserFactory.createColumnSelectPanel(this,z).getGui();Q.classList.add("ag-menu-column-select"),G.appendChild(Q);let J={title:yQ("columns",D,z),titleLabel:FD.replace("MenuTab",""),bodyPromise:TQ.resolve(G),name:FD};return this.tabItemColumns=J,J}afterGuiAttached(G){let{container:D,hidePopup:z}=G;if(this.tabbedLayout.setAfterAttachedParams({container:D,hidePopup:z}),z)this.hidePopupFunc=z,this.addDestroyFunc(z)}getGui(){return this.tabbedLayout.getGui()}destroy(){super.destroy(),this.destroyBean(this.filterComp)}},tK=class extends TK{constructor(G,D,z,B){super({tag:"div",ref:"eColumnMenu",cls:"ag-menu ag-column-menu",role:"presentation"});this.menuItems=G,this.column=D,this.restoreFocusParams=z,this.sourceElement=B,this.eColumnMenu=xK}postConstruct(){let G=this.beans.colMenuFactory.createMenu(this,this.menuItems,this.column,()=>this.sourceElement??this.getGui());this.mainMenuList=G,G.addEventListener("closeMenu",this.onHidePopup.bind(this)),this.eColumnMenu.appendChild(G.getGui())}onHidePopup(G){this.beans.menuUtils.closePopupAndRestoreFocusOnSelect(this.hidePopupFunc,this.restoreFocusParams,G)}afterGuiAttached({hidePopup:G}){if(G)this.hidePopupFunc=G,this.addDestroyFunc(G);iK(this.mainMenuList.getGui())}};function sK(G,D){let{contextMenuSvc:z}=G;if(!z)return;let{rowNode:B,column:Q,value:J,x:U,y:Z}=D||{},{x:S,y:X}=z.getContextMenuPosition(B,Q);if(U!=null)S=U;if(Z!=null)X=Z;z.showContextMenu({mouseEvent:new MouseEvent("mousedown",{clientX:S,clientY:X}),rowNode:B,column:Q,value:J,source:"api"})}function oK(G,D){G.colChooserFactory?.showColumnChooser({chooserParams:D})}function rK(G){G.colChooserFactory?.hideActiveColumnChooser()}var Bf=class extends aK{constructor(){super(...arguments);this.beanName="menuUtils"}restoreFocusOnClose(G,D,z,B){let{eventSource:Q}=G,J=z instanceof KeyboardEvent;if(!B&&!J||!Q)return;let U=Gf(this.beans);if(!D.contains(U)&&!IZ(this.beans))return;this.focusHeaderCell(G)}closePopupAndRestoreFocusOnSelect(G,D,z){let B;if(z?.keyboardEvent)B=z.keyboardEvent;G(B&&{keyboardEvent:B});let Q=this.beans,J=Q.focusSvc,U=J.getFocusedCell();if(IZ(Q))if(U){let{rowIndex:Z,rowPinned:S,column:X}=U;J.setFocusedCell({rowIndex:Z,column:X,rowPinned:S,forceBrowserFocus:!0,preventScrollOnBrowserFocus:!0})}else this.focusHeaderCell(D)}onContextMenu(G){let{mouseEvent:D,touchEvent:z,showMenuCallback:B,source:Q}=G;if(!this.gos.get("allowContextMenuWithControlKey")){if(D&&(D.ctrlKey||D.metaKey))return}if(D)this.blockMiddleClickScrollsIfNeeded(D);if(Q==="ui"&&this.gos.get("suppressContextMenu"))return;let J=D??z.touches[0];if(B(J)){let U=D??z;if(U?.cancelable)U.preventDefault()}}async focusHeaderCell(G){let{column:D,columnIndex:z,headerPosition:B,eventSource:Q}=G,{visibleCols:J,headerNavigation:U,focusSvc:Z}=this.beans,S=await J.allCols.some((X)=>X===D);if(!this.isAlive())return;if(D?.isAlive()&&S&&Q&&Df(Q)){let X=eK(Q);if(X)U?.scrollToColumn(D),X.focus()}else if(B&&z!==-1){let X=J.allCols,Y=X[z]||zf(X);if(Y)Z.focusHeaderPosition({headerPosition:{headerRowIndex:B.headerRowIndex,column:Y}})}}blockMiddleClickScrollsIfNeeded(G){if(this.gos.get("suppressMiddleClickScrolls")&&G.which===2)G.preventDefault()}},E7={moduleName:"MenuCore",version:j,beans:[CK,UK,Bf],icons:{chart:"chart",columns:"columns",loadingMenuItems:"loading",menuPin:"pin",menuValue:"aggregation",menuAddRowGroup:"group",menuRemoveRowGroup:"group",clipboardCopy:"copy",clipboardCut:"cut",clipboardPaste:"paste",save:"save",csvExport:"csv",excelExport:"excel",sortAscending:"asc",sortDescending:"desc",sortAbsoluteAscending:"aasc",sortAbsoluteDescending:"adesc",sortUnSort:"none"},dependsOn:[i,zK,QK,TB]},W0={moduleName:"ColumnMenu",version:j,beans:[pK,bK,YK],icons:{ensureColumnVisible:"column-arrow",legacyMenu:"menu",filterTab:"filter",columnSelectClosed:"tree-closed",columnSelectOpen:"tree-open",columnSelectIndeterminate:"tree-indeterminate"},apiFunctions:{showColumnChooser:oK,hideColumnChooser:rK},dependsOn:[E7,BK,DK]},FJ={moduleName:"ContextMenu",version:j,beans:[gK],apiFunctions:{showContextMenu:sK},dependsOn:[E7]},Qf={moduleName:"Menu",version:j,dependsOn:[W0,FJ]},Lf=10,RZ=class extends Uf{constructor(){super({tag:"div",cls:"ag-cell-edit-wrapper"});this.pendingInitialEventKey=null,this.initialEventKeyProcessed=!1}initialiseEditor(G){let{cellStartedEdit:D,values:z,valuesPage:B,eventKey:Q}=this.params;if(this.pendingInitialEventKey=null,this.initialEventKeyProcessed=!1,AZ(z)&&AZ(B))Cz(180);let J=this.resolveAsyncMode(),{params:U,valueList:Z}=this.buildRichSelectParams(J),S=this.createManagedBean(new gB(U));this.eEditor=S,S.addCss("ag-cell-editor"),this.appendChild(S);let X=this.getAsyncValuesSource(J);if(X)S.setAsyncValuesSource({source:X,thresholdRows:this.params.valuesPageLoadThreshold??Lf,useAsyncSearch:J.isFullAsync,onMisconfiguredSearchSource:J.isFullAsync?()=>Cz(294):void 0,onFirstValuesPageLoaded:()=>{if(this.pendingInitialEventKey!=null)this.consumeInitialEventKey(this.pendingInitialEventKey),this.pendingInitialEventKey=null}});if(this.eEditor.setValueList({valueList:Z,refresh:!0,isInitial:!0}),J.isValuesPaged)if(this.eEditor.resetAsyncValues(""),J.isFullAsync)this.consumeInitialEventKey(Q);else this.pendingInitialEventKey=Q;else if(Z&&!Array.isArray(Z))Z.then((Y)=>{let W=this.getSearchStringCallback(Y);if(W)S.setSearchStringCreator(W);this.consumeInitialEventKey(Q)}).catch((Y)=>{$f("Rich Select",Y),this.consumeInitialEventKey(Q)});this.addManagedListeners(S,{fieldPickerValueSelected:this.onEditorPickerValueSelected.bind(this)}),this.focusAfterAttached=D}onEditorPickerValueSelected(G){if(this.gos.get("editType")!=="fullRow")setTimeout(()=>this.params.stopEditing(!G.fromEnterKey))}getPlaceholderText(G=this.isFullAsync()){let{valuePlaceholder:D}=this.params;if(D!==void 0)return D;let z=this.getLocaleTextFunc();return G?z("typeToSearchOoo","Type to search..."):z("advancedFilterBuilderSelectOption","Select an option...")}isFullAsync(){let{allowTyping:G,filterListAsync:D,values:z,valuesPage:B}=this.params,Q=typeof z==="function"||typeof B==="function";if(D&&!G)return Cz(294),!1;if(!Q&&D)return Cz(294),!1;return!!(G&&D&&Q)}isValuesPaged(){return typeof this.params.valuesPage==="function"}resolveAsyncMode(){return{isValuesPaged:this.isValuesPaged(),isFullAsync:this.isFullAsync()}}getInitialValueList(G=this.resolveAsyncMode()){let D=this.params,{values:z}=D;if(G.isValuesPaged)return;if(!z)return[];if(Array.isArray(z))return z;if(typeof z!=="function")return[];if(G.isFullAsync)return;return z({...D})}buildRichSelectParams(G=this.resolveAsyncMode()){let D=this.params,{cellRenderer:z,cellRendererParams:B,cellHeight:Q,value:J,values:U,formatValue:Z,searchDebounceDelay:S,valueListGap:X,valueListMaxHeight:Y,valueListMaxWidth:W,allowTyping:q,filterList:H,searchType:_,highlightMatch:k,eventKey:w,multiSelect:K,suppressDeselectAll:f,suppressMultiSelectPillRenderer:N}=D,{isValuesPaged:F,isFullAsync:E}=G,I=Z??((v)=>String(v??"")),A={value:J,cellRenderer:z,cellRendererParams:B,cellRowHeight:Q,searchDebounceDelay:S,valueFormatter:(v)=>{if(Array.isArray(v))return v.map((h)=>I(h)).join(", ");return I(v)},pickerAriaLabelKey:"ariaLabelRichSelectField",pickerAriaLabelValue:"Rich Select Field",pickerType:"virtual-list",pickerGap:X,allowTyping:q,filterList:H,searchType:_,highlightMatch:k,maxPickerHeight:Y,maxPickerWidth:W,placeholder:this.getPlaceholderText(E),initialInputValue:w?.length===1?w:w===MZ.BACKSPACE?"":void 0,multiSelect:K,suppressDeselectAll:f,suppressMultiSelectPillRenderer:N},R=this.getInitialValueList(G),O=Array.isArray(U),u=typeof U==="function";if(F){if(R)A.valueList=R;if(E)A.allowNoResultsCopy=!0,A.filterList=!0}else if(O)A.valueList=R,A.searchStringCreator=this.getSearchStringCallback(R);else if(u&&E)A.allowNoResultsCopy=!0,A.filterList=!0;return{params:A,valueList:R}}getAsyncValuesSource(G=this.resolveAsyncMode()){let{isFullAsync:D,isValuesPaged:z}=G;if(!D&&!z)return;return{searchValues:D?(B)=>this.getAsyncSearchValues(B):void 0,loadValuesPage:z?(B)=>this.getAsyncValuesPage(B):void 0,valuesPageInitialStartRow:z?(B)=>this.resolveValuesPageInitialStartRow(B):void 0,valuesPageSize:z?this.params.valuesPageSize:void 0}}getAsyncSearchValues(G){let{values:D}=this.params;if(typeof D!=="function")return[];return D({...this.params,search:G})}getAsyncValuesPage(G){let{valuesPage:D}=this.params;if(typeof D!=="function")return{values:[]};return D({...this.params,search:G.search,startRow:G.startRow,endRow:G.endRow,cursor:G.cursor})}resolveValuesPageInitialStartRow(G){if(G)return 0;let{valuesPageInitialStartRow:D,value:z}=this.params,B=typeof D==="function"?D(z):D;return Math.max(Math.floor(B??0),0)}getSearchStringCallback(G){if(typeof G[0]!=="object")return;let D=this.params,{colDef:z,formatValue:B}=D,Q=B??((U)=>String(U??""));if(z.cellEditorParams?.formatValue)return(U)=>U.map(Q);let{keyCreator:J}=z;if(J){Cz(266);let{column:U,node:Z,data:S}=D;return(X)=>X.map((Y)=>{let W=Zf(this.gos,{value:Y,colDef:z,column:U,node:Z,data:S});return J(W)})}return(U)=>U.map(Q)}afterGuiAttached(){let{focusAfterAttached:G,params:D}=this;setTimeout(()=>{if(!this.isAlive())return;let z=this.eEditor,{allowTyping:B,eventKey:Q,cellStartedEdit:J}=D;if(G){let U=z.getFocusableElement();if(U.focus(),B&&(!Q||Q.length!==1))U.select()}if(J)z.showPicker();if(this.pendingInitialEventKey==null)this.consumeInitialEventKey(Q)})}consumeInitialEventKey(G){if(!G||this.initialEventKeyProcessed)return;this.initialEventKeyProcessed=!0,this.processEventKey(G)}processEventKey(G){if(!G)return;if(G===MZ.BACKSPACE)this.eEditor.searchTextFromString(null);else if(G?.length===1)this.eEditor.searchTextFromString(G)}focusIn(){this.eEditor.getFocusableElement().focus()}agSetEditValue(G){this.params.value=G,this.eEditor.setValue(G??null,!0)}getValue(){let{params:G}=this,D=this.eEditor.getValue();return G.parseValue?.(D)??D}isPopup(){return!1}getValidationElement(){return this.eEditor.getAriaElement()}getValidationErrors(){let{params:G}=this,{getValidationErrors:D}=G;if(!D)return null;return D({value:this.getValue(),internalErrors:null,cellEditorParams:G})}},I7={moduleName:"RichSelect",version:j,beans:[],userComponents:{agRichSelect:RZ,agRichSelectCellEditor:RZ},icons:{richSelectOpen:"small-down",richSelectRemove:"cancel",richSelectLoading:"loading"},dependsOn:[i,Jf]},RD="__AG_SELECT_ALL__",CD="__AG_ADD_SELECTION_TO_FILTER__",kf=class{constructor(G,D,z,B){this.valueSvc=G,this.getValueFormatter=D,this.formatter=z,this.column=B,this.displayedKeys=[]}updateDisplayedValuesToAllAvailable(G,D,z){this.displayedKeys=Array.from(z)}updateDisplayedValuesToMatchMiniFilter(G,D,z,B,Q){this.displayedKeys=[];let J=this.getValueFormatter();for(let U of z)if(U==null){if(Q)this.displayedKeys.push(U)}else{let Z=G(U),S=this.valueSvc.formatValue(this.column,null,Z,J,!1),X=this.formatter(S);if(B(X))this.displayedKeys.push(U)}}getDisplayedValueCount(){return this.displayedKeys.length}getDisplayedItem(G){return this.displayedKeys[G]}getSelectAllItem(){return RD}getAddSelectionToFilterItem(){return CD}getDisplayedKeys(){return this.displayedKeys}forEachDisplayedKey(G){this.displayedKeys.forEach(G)}someDisplayedKey(G){return this.displayedKeys.some(G)}hasGroups(){return!1}refresh(){}},bf={tag:"div",cls:"ag-set-filter-item",attrs:{"aria-hidden":"true"},children:[{tag:"span",cls:"ag-set-filter-group-icons",children:[{tag:"span",ref:"eGroupClosedIcon",cls:"ag-set-filter-group-closed-icon"},{tag:"span",ref:"eGroupOpenedIcon",cls:"ag-set-filter-group-opened-icon"},{tag:"span",ref:"eGroupIndeterminateIcon",cls:"ag-set-filter-group-indeterminate-icon"}]},{tag:"ag-checkbox",ref:"eCheckbox",cls:"ag-set-filter-item-checkbox"}]},vf={tag:"div",cls:"ag-set-filter-item",children:[{tag:"ag-checkbox",ref:"eCheckbox",cls:"ag-set-filter-item-checkbox"}]},Of=class extends Kf{constructor(G){super(G.isGroup?bf:vf,[wf]);this.eCheckbox=g0,this.eGroupOpenedIcon=g0,this.eGroupClosedIcon=g0,this.eGroupIndeterminateIcon=g0,this.formattedValue=null,this.focusWrapper=G.focusWrapper,this.value=G.value,this.params=G.params,this.translate=G.translate,this.valueFormatter=G.valueFormatter,this.item=G.item,this.isSelected=G.isSelected,this.isTree=G.isTree,this.depth=G.depth??0,this.isGroup=G.isGroup,this.groupsExist=G.groupsExist,this.isExpanded=G.isExpanded,this.hasIndeterminateExpandState=G.hasIndeterminateExpandState}postConstruct(){if(this.tooltipFeature=this.createOptionalManagedBean(this.beans.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.focusWrapper,getLocation:()=>"setFilterValue",shouldDisplayTooltip:()=>this.shouldDisplayTooltip?.()??!0,getAdditionalParams:()=>{let{colDef:G,column:D}=this.params,z={colDef:G,column:D,valueFormatted:this.formattedValue??void 0};if(this.isTree)z.level=this.depth;return z}})),this.addDestroyFunc(()=>this.destroyCellRendererComponent?.()),this.render(),this.eCheckbox.setLabelEllipsis(!0).setValue(this.isSelected,!0).setDisabled(!!this.params.readOnly).getInputElement().setAttribute("tabindex","-1"),this.refreshVariableAriaLabels(),this.isTree){if(this.depth>0)this.addCss("ag-set-filter-indent-"+this.depth),this.getGui().style.setProperty("--ag-indentation-level",String(this.depth));if(this.isGroup)this.setupExpansion();else if(this.groupsExist)this.addCss("ag-set-filter-add-group-indent");Cf(this.getAriaElement(),this.depth+1)}if(this.refreshAriaChecked(),this.params.readOnly)return;this.eCheckbox.onValueChange((G)=>this.onCheckboxChanged(!!G))}getFocusableElement(){return this.focusWrapper}setupExpansion(){let{eGroupClosedIcon:G,eGroupOpenedIcon:D,eGroupIndeterminateIcon:z,hasIndeterminateExpandState:B,beans:Q}=this;G.appendChild(cQ("setFilterGroupClosed",Q,null)),D.appendChild(cQ("setFilterGroupOpen",Q,null));let J=this.onExpandOrContractClicked.bind(this);if(this.addManagedElementListeners(G,{click:J}),this.addManagedElementListeners(D,{click:J}),B)z.appendChild(cQ("setFilterGroupIndeterminate",Q,null)),this.addManagedElementListeners(z,{click:J});this.setExpandedIcons(),this.refreshAriaExpanded()}onExpandOrContractClicked(){this.setExpanded(!this.isExpanded)}setExpanded(G,D){if(this.isGroup&&G!==this.isExpanded){this.isExpanded=G;let z={type:"expandedChanged",isExpanded:!!G,item:this.item};if(!D)this.dispatchLocalEvent(z);this.setExpandedIcons(),this.refreshAriaExpanded()}}setExpandedIcons(){let{isExpanded:G,hasIndeterminateExpandState:D,eGroupClosedIcon:z,eGroupOpenedIcon:B,eGroupIndeterminateIcon:Q}=this;if(hQ(z,D?G===!1:!G),hQ(B,G===!0),D)hQ(Q,G===void 0)}onCheckboxChanged(G){this.isSelected=G;let D={type:"selectionChanged",isSelected:G,item:this.item};this.dispatchLocalEvent(D),this.refreshVariableAriaLabels(),this.refreshAriaChecked()}toggleSelected(){if(this.params.readOnly)return;this.setSelected(!this.isSelected)}setSelected(G,D){this.isSelected=G,this.eCheckbox.setValue(G,D),this.refreshAriaChecked()}refreshVariableAriaLabels(){if(!this.isTree)return;let G=this.getLocaleTextFunc(),D=this.eCheckbox.getValue(),z=D===void 0?G("ariaIndeterminate","indeterminate"):D?G("ariaVisible","visible"):G("ariaHidden","hidden"),B=G("ariaToggleVisibility","Press SPACE to toggle visibility");Rf(this.eCheckbox.getInputElement(),void 0),this.eCheckbox.setInputAriaLabel(`${B} (${z})`)}setupFixedAriaLabels(G){if(!this.isTree)return;let z=this.getLocaleTextFunc()("ariaFilterValue","Filter Value"),B=this.getAriaElement();Af(B,`${G} ${z}`),If(B,this.eCheckbox.getInputElement().id)}refreshAriaChecked(){let G=this.getAriaElement();Ef(G,this.eCheckbox.getValue())}refreshAriaExpanded(){Mf(this.getAriaElement(),!!this.isExpanded)}refresh(G,D,z){if(this.item=G,D!==this.isSelected)this.setSelected(D,!0);this.setExpanded(z,!0);let{cellRendererComponent:B,cellRendererParams:Q,beans:J,params:U}=this;if(this.valueFunction){let Z=this.valueFunction();if(this.setTooltipAndCellRendererParams(Z,Z),!B)this.renderCellWithoutCellRenderer()}if(B){let Z=VZ(J.userCompFactory,U,Q);if(!B.refresh?.(Z?.params??Q)){let X=B;this.renderCell(),this.destroyBean(X)}}}render(){let{params:{column:G}}=this,{value:D}=this,z=null;if(typeof D==="function")this.valueFunction=D,z=this.valueFunction(),D=z;else if(this.isTree)z=bZ(D);else z=this.getFormattedValue(G,D);this.formattedValue=z,this.setTooltipAndCellRendererParams(D,z),this.renderCell()}setTooltipAndCellRendererParams(G,D){let z=this.gos;if(this.params.showTooltips&&(!Ff(z)||!this.params.cellRenderer)){let B=D!=null?D:bZ(G);this.shouldDisplayTooltip=Nf(z,()=>this.eCheckbox.getGui().querySelector(".ag-label")),this.tooltipFeature?.setTooltipAndRefresh(B)}this.cellRendererParams=ff(z,{value:G,valueFormatted:D,colDef:this.params.colDef,column:this.params.column,setTooltip:(B,Q)=>{z.assertModuleRegistered("Tooltip",3),this.shouldDisplayTooltip=Q,this.tooltipFeature?.setTooltipAndRefresh(B)}})}getFormattedValue(G,D){return this.beans.valueSvc.formatValue(G,null,D,this.valueFormatter,!1)}renderCell(){let D=VZ(this.beans.userCompFactory,this.params,this.cellRendererParams)?.newAgStackInstance();if(D==null){this.renderCellWithoutCellRenderer();return}D.then((z)=>{if(z)this.cellRendererComponent=z,this.eCheckbox.setLabel(z.getGui()),this.destroyCellRendererComponent=()=>this.destroyBean(z)})}renderCellWithoutCellRenderer(){let{valueFormatted:G,value:D}=this.cellRendererParams,z=(G==null?D:G)??this.translate("blanks");if(typeof z!=="string")Vf(208),z="";this.eCheckbox.setLabel(z),this.setupFixedAriaLabels(z)}getComponentHolder(){return this.params.column.getColDef()}},xf={loadingOoo:"Loading...",blanks:"(Blanks)",searchOoo:"Search...",selectAll:"(Select All)",selectAllSearchResults:"(Select All Search Results)",addCurrentSelectionToFilter:"Add current selection to filter",noMatches:"No matches.",ariaSearchFilterValues:"Search filter values",ariaFilterList:"Filter List",filterSummaryListInactive:"is (All)",filterSummaryListSeparator:", ",filterSummaryListShort:(G)=>`is (${G[0]})`,filterSummaryListLong:(G)=>`is (${G[0]}) and ${G[1]} more`};function m1(G,D,z){let B=G;if(!B)return null;if(B=B.map((Q)=>gf(Pf(Q))),!D&&z&&B.some((Q)=>Q==null)){if(jf(B)==null)return null;return B.filter((Q)=>Q!=null)}return B}function _G(G,D,z){return Tf(G,xf,D,z)}function cf(G){if(G.excelMode==="windows"){if(!G.buttons)G.buttons=["apply","cancel"];if(G.closeOnApply==null)G.closeOnApply=!0}else if(G.excelMode==="mac"){if(!G.buttons)G.buttons=["reset"];if(G.applyMiniFilterWhileTyping==null)G.applyMiniFilterWhileTyping=!0;if(G.debounceMs==null)G.debounceMs=500}if(G.excelMode&&G.defaultToNothingSelected)G.defaultToNothingSelected=!1,yf(207)}function hf(){return([G,D],[z,B])=>{if(D==null)return B==null?0:-1;else if(B==null)return 1;for(let Q=0;Q=B.length)return 1;let J=uf(D[Q],B[Q]);if(J!==0)return J}return 0}}var vZ=class{constructor(G,D,z,B){this.formatter=G,this.treeListPathGetter=D,this.treeListFormatter=z,this.treeDataOrGrouping=B,this.allDisplayedItemsTree=new Map,this.activeDisplayedItemsFlat=[],this.selectAllItem={depth:0,filterPasses:!0,available:!0,treeKey:RD,children:this.allDisplayedItemsTree,expanded:!0,key:RD,parentTreeKeys:[]},this.addSelectionToFilterItem={depth:0,filterPasses:!0,available:!0,treeKey:CD,expanded:!0,key:CD,parentTreeKeys:[]}}updateParams(G,D){this.treeListPathGetter=G,this.treeListFormatter=D}updateDisplayedValuesToAllAvailable(G,D,z,B){if(B==="reload")this.generateItemTree(G,D,z);else if(B==="otherFilter")this.updateAvailable(z),this.updateExpandAll();else if(B==="miniFilter")this.resetFilter(),this.updateExpandAll();this.flattenItems()}updateDisplayedValuesToMatchMiniFilter(G,D,z,B,Q,J){if(J==="reload")this.generateItemTree(G,D,z);else if(J==="otherFilter")this.updateAvailable(z);this.updateFilter(B,Q),this.updateExpandAll(),this.flattenItems()}generateItemTree(G,D,z){let B=new Map;this.allDisplayedItemsTree=B;let Q=!1,J=this.getTreeListPathGetter(G,z);for(let U of D){let Z=G(U),S=J(Z)??[null],X=S.length;if(X>1)Q=!0;let Y=z.has(U),W=B,q,H=[];for(let _=0;_B;let z=!1;for(let B of D){let Q=G(B);if(Q instanceof Date){z=!0;break}else if(Q!=null)break}if(z)return(B)=>nf(B,!1);return df(211),(B)=>[String(B)]}flattenItems(){this.activeDisplayedItemsFlat=[];let G=(D)=>{for(let z of D.values()){if(!z.filterPasses||!z.available)continue;if(this.activeDisplayedItemsFlat.push(z),z.children&&z.expanded)G(z.children)}};G(this.allDisplayedItemsTree)}resetFilter(){let G=(D)=>{let z=D.children;if(z)for(let B of z.values())G(B);D.filterPasses=!0};for(let D of this.allDisplayedItemsTree.values())G(D)}updateFilter(G,D){let z=(B)=>{if(!B.available)return!1;if(B.treeKey==null)return D;return G(this.formatter(this.treeListFormatter?this.treeListFormatter(B.treeKey,B.depth,B.parentTreeKeys):B.treeKey))};for(let B of this.allDisplayedItemsTree.values())this.recursiveItemCheck(B,!1,z,"filterPasses")}getDisplayedValueCount(){return this.activeDisplayedItemsFlat.length}getDisplayedItem(G){return this.activeDisplayedItemsFlat[G]}getSelectAllItem(){return this.selectAllItem}getAddSelectionToFilterItem(){return this.addSelectionToFilterItem}getDisplayedKeys(){let G=[];return this.forEachDisplayedKey((D)=>G.push(D)),G}forEachDisplayedKey(G){let D=(z,B)=>{let Q=z.children;if(Q){if(!z.expanded||!B){for(let J of Q.values())if(J.filterPasses)D(J,!1)}}else G(z.key)};for(let z of this.activeDisplayedItemsFlat)D(z,!0)}someDisplayedKey(G){let D=(z,B)=>{let Q=z.children;if(Q){if(!z.expanded||!B){for(let J of Q.values())if(J.filterPasses&&D(J,!1))return!0;return!1}}else return G(z.key);return!1};return this.activeDisplayedItemsFlat.some((z)=>D(z,!0))}hasGroups(){return this.groupsExist}refresh(){this.updateExpandAll(),this.flattenItems()}updateExpandAll(){let G=(z,B,Q)=>{for(let J of z.values()){if(!J.filterPasses||!J.available||!J.children)continue;if(B=B||!!J.expanded,Q=Q||!J.expanded,B&&Q)return;let U=G(J.children,B,Q);if(U===void 0)return;else if(U)B=!0;else Q=!0}return B&&Q?void 0:B},D=this.getSelectAllItem();D.expanded=G(D.children,!1,!1)}recursiveItemCheck(G,D,z,B){let Q=!1,J=G.children;if(J)for(let Z of J.values()){let S=this.recursiveItemCheck(Z,D||z(G),z,B);Q=Q||S}let U=D||Q||z(G);return G[B]=U,U}updateAvailable(G){let D=(z)=>G.has(z.key);for(let z of this.allDisplayedItemsTree.values())this.recursiveItemCheck(z,!1,D,"available")}},M7=class extends Yf{constructor(){super("setFilter","set-filter");this.filterType="set",this.eMiniFilter=bz,this.eFilterLoading=bz,this.eFilterLoadingIcon=bz,this.eSetFilterList=bz,this.eFilterNoMatches=bz,this.hardRefreshVirtualList=!1,this.miniFilterText=null,this.addCurrentSelectionToFilter=!1,this.selectedKeys=new Set}setParams(G){super.setParams(G);let D=this.updateHandler(G.getHandler()),{column:z,textFormatter:B,treeList:Q,treeListPathGetter:J,treeListFormatter:U}=G;if(this.formatter=B??((Z)=>Z??null),this.displayValueModel=Q?new vZ(this.formatter,J,U,D.isTreeDataOrGrouping()):new kf(this.beans.valueSvc,()=>this.handler.valueFormatter,this.formatter,z),D.valueModel.allKeys.then((Z)=>{if(!this.isAlive())return;this.updateDisplayedValues("reload",Z??[]),this.resetSelectionState(Z??[])}),D.valueModel.isLoading())this.setIsLoading(!0);this.initialiseFilterBodyUi()}refresh(G){if(this.params.treeList!==G.treeList)return!1;return this.updateHandler(G.getHandler()),super.refresh(G)}updateParams(G,D){if(super.updateParams(G,D),this.updateMiniFilter(),G.suppressSelectAll!==D.suppressSelectAll)this.createVirtualListModel(G);let{textFormatter:z,treeListPathGetter:B,treeListFormatter:Q}=G;if(this.formatter=z??((J)=>J??null),this.displayValueModel instanceof vZ)this.displayValueModel.updateParams(B,Q);this.handler.refreshFilterValues(!0)}updateHandler(G){if(this.handler!==G){for(let z of this.handlerDestroyFuncs??[])z();this.handlerDestroyFuncs=[...this.addManagedListeners(G,{anyFilterChanged:(z)=>{G.valueModel.allKeys.then((B)=>{if(this.isAlive()){if(this.updateDisplayedValues("otherFilter",B??[]),z.updated)this.checkAndRefreshVirtualList(),this.showOrHideResults()}})},dataChanged:({hardRefresh:z})=>{G.valueModel.allKeys.then((B)=>{if(this.isAlive()){if(this.updateDisplayedValues("reload",B??[]),this.setSelectedModel(this.state.model?.values??null),z)this.hardRefreshVirtualList=!0;this.checkAndRefreshVirtualList()}})}}),...this.addManagedListeners(G.valueModel,{loadingStart:()=>this.setIsLoading(!0),loadingEnd:()=>this.setIsLoading(!1)})],this.handler=G}return G}updateUiVisibility(){}createBodyTemplate(){return{tag:"div",cls:"ag-set-filter",children:[{tag:"div",ref:"eFilterLoading",cls:"ag-filter-loading ag-loading ag-hidden",children:[{tag:"span",ref:"eFilterLoadingIcon",cls:"ag-loading-icon"},{tag:"span",cls:"ag-loading-text",children:_G(this,"loadingOoo")}]},{tag:"ag-input-text-field",ref:"eMiniFilter",cls:"ag-mini-filter"},{tag:"div",ref:"eFilterNoMatches",cls:"ag-filter-no-matches ag-hidden",children:_G(this,"noMatches")},{tag:"div",ref:"eSetFilterList",cls:"ag-set-filter-list",role:"presentation"}]}}getAgComponents(){return[Xf]}handleKeyDown(G){if(super.handleKeyDown(G),G.defaultPrevented)return;let D=()=>{if(!this.eSetFilterList.contains(_f(this.beans)))return;let z=this.virtualList.getLastFocusedRow();if(z==null)return;let B=this.virtualList.getComponentAt(z);if(B==null)return;G.preventDefault();let{readOnly:Q}=this.params;if(Q)return;return B};switch(G.key){case Vz.SPACE:D()?.toggleSelected();break;case Vz.ENTER:this.handleKeyEnter(G);break;case Vz.LEFT:D()?.setExpanded(!1);break;case Vz.RIGHT:D()?.setExpanded(!0);break}}handleKeyEnter(G){G.preventDefault();let{excelMode:D,readOnly:z}=this.params;if(!D||!!z)return;if(this.params.onAction("apply",void 0,G),this.params.excelMode==="mac")this.eMiniFilter.getInputElement().select()}setModelAndRefresh(G){return this.setSelectedModel(G).then(()=>{if(this.isAlive())this.checkAndRefreshVirtualList()})}setModelIntoUi(G){this.setMiniFilter(this.params.state.state?.miniFilterValue??null,!0);let D=G==null?null:G.values;return this.setModelAndRefresh(D)}getModelFromUi(){let G=this.getSelectedModel();if(!G)return null;return{values:G,filterType:this.filterType}}areNonNullModelsEqual(G,D){return Wf(G.values,D.values)}setIsLoading(G){if(xQ(this.eFilterLoading,G),!G)this.hardRefreshVirtualList=!0}initialiseFilterBodyUi(){this.initVirtualList(),this.initMiniFilter(),this.initLoading()}initLoading(){let G=qf("setFilterLoading",this.beans,this.params.column);if(G)this.eFilterLoadingIcon.appendChild(G)}initVirtualList(){let G=_G(this,"ariaFilterList"),D=!!this.params.treeList,z=this.virtualList=this.createBean(new Lz({cssIdentifier:"filter",ariaRole:D?"tree":"listbox",listName:G})),B=this.eSetFilterList;if(D)B.classList.add("ag-set-filter-tree-list");B.appendChild(z.getGui());let{cellHeight:Q}=this.params;if(Q!=null)z.setRowHeight(Q);let J=(Z,S)=>this.createSetListItem(Z,D,S);z.setComponentCreator(J);let U=(Z,S)=>this.updateSetListItem(Z,S);z.setComponentUpdater(U),this.createVirtualListModel(this.params)}createVirtualListModel(G){let D;if(G.suppressSelectAll)D=new lf(this.displayValueModel);else D=new pf(this.displayValueModel,this.showAddCurrentSelectionToFilter.bind(this));if(G.treeList)D=new mf(D);this.virtualList.setModel(D)}getSelectAllLabel(){let G=this.miniFilterText==null||!this.params.excelMode?"selectAll":"selectAllSearchResults";return _G(this,G)}getAddSelectionToFilterLabel(){return _G(this,"addCurrentSelectionToFilter")}createSetListItem(G,D,z){let B=this.displayValueModel.hasGroups(),{isSelected:Q,isExpanded:J}=this.isSelectedExpanded(G),{value:U,depth:Z,isGroup:S,hasIndeterminateExpandState:X,selectedListener:Y,expandedListener:W}=this.newSetListItemAttributes(G),q={focusWrapper:z,value:U,params:this.params,translate:(_)=>_G(this,_),valueFormatter:this.handler.valueFormatter,item:G,isSelected:Q,isTree:D,depth:Z,groupsExist:B,isGroup:S,isExpanded:J,hasIndeterminateExpandState:X},H=this.createBean(new Of(q));if(H.addEventListener("selectionChanged",Y),W)H.addEventListener("expandedChanged",W);return H}newSetTreeItemAttributes(G){let D=this.displayValueModel.hasGroups();if(G.key===RD)return{value:()=>this.getSelectAllLabel(),isGroup:D,depth:G.depth,hasIndeterminateExpandState:!0,selectedListener:(z)=>this.onSelectAll(z.isSelected),expandedListener:(z)=>this.onExpandAll(z.item,z.isExpanded)};if(G.key===CD)return{value:()=>this.getAddSelectionToFilterLabel(),depth:G.depth,isGroup:!1,hasIndeterminateExpandState:!1,selectedListener:(z)=>{this.addCurrentSelectionToFilter=z.isSelected,this.refreshAfterSelection()}};if(G.children)return{value:this.params.treeListFormatter?.(G.treeKey,G.depth,G.parentTreeKeys)??G.treeKey,depth:G.depth,isGroup:!0,selectedListener:(z)=>this.onGroupItemSelected(z.item,z.isSelected),expandedListener:(z)=>this.onExpandedChanged(z.item,z.isExpanded)};return{value:this.params.treeListFormatter?.(G.treeKey,G.depth,G.parentTreeKeys)??G.treeKey,depth:G.depth,selectedListener:(z)=>this.onItemSelected(z.item.key,z.isSelected)}}newSetListItemAttributes(G){if(this.isSetFilterModelTreeItem(G))return this.newSetTreeItemAttributes(G);if(G===RD)return{value:()=>this.getSelectAllLabel(),selectedListener:(D)=>this.onSelectAll(D.isSelected)};if(G===CD)return{value:()=>this.getAddSelectionToFilterLabel(),selectedListener:(D)=>{this.addCurrentSelectionToFilter=D.isSelected,this.refreshAfterSelection()}};return{value:this.handler.valueModel.allValues.get(G)??null,selectedListener:(D)=>this.onItemSelected(D.item,D.isSelected)}}updateSetListItem(G,D){let{isSelected:z,isExpanded:B}=this.isSelectedExpanded(G);D.refresh(G,z,B)}isSelectedExpanded(G){let D,z;if(this.isSetFilterModelTreeItem(G))if(z=G.expanded,G.key===RD)D=this.isSelectAllSelected();else if(G.key===CD)D=this.isAddCurrentSelectionToFilterChecked();else if(G.children)D=this.areAllChildrenSelected(G);else D=this.selectedKeys.has(G.key);else if(G===RD)D=this.isSelectAllSelected();else if(G===CD)D=this.isAddCurrentSelectionToFilterChecked();else D=this.selectedKeys.has(G);return{isSelected:D,isExpanded:z}}isSetFilterModelTreeItem(G){return G?.treeKey!==void 0}initMiniFilter(){let{eMiniFilter:G}=this;this.updateMiniFilter(),G.onValueChange(()=>this.onMiniFilterInput()),G.setInputAriaLabel(_G(this,"ariaSearchFilterValues")),this.addManagedElementListeners(G.getInputElement(),{keydown:(D)=>this.onMiniFilterKeyDown(D)})}updateMiniFilter(){let{eMiniFilter:G,miniFilterText:D,params:z}=this;G.setDisplayed(!z.suppressMiniFilter),G.setValue(D)}afterGuiAttached(G){super.afterGuiAttached(G),this.resetExpansion(),this.refreshVirtualList();let{eMiniFilter:D}=this;if(D.setInputPlaceholder(_G(this,"searchOoo")),!G?.suppressFocus)if(D.isDisplayed())D.getFocusableElement().focus();else this.virtualList.awaitStable(()=>this.virtualList.focusRow(0))}afterGuiDetached(){super.afterGuiDetached();let{column:G,excelMode:D,model:z,onStateChange:B}=this.params;if(this.beans.colFilter?.shouldKeepStateOnDetach(G))return;if(D)this.resetMiniFilter();if(D||z!==this.state.model)B({model:z,state:this.getState()}),this.showOrHideResults()}canApply(G){return this.params.excelMode?G==null||G.values.length>0:!0}onNewRowsLoaded(){}setFilterValues(G){vz(283),this.handler.setFilterValues(G)}resetFilterValues(){vz(283),this.handler.resetFilterValues()}refreshFilterValues(){vz(283),this.doRefreshFilterValues()}doRefreshFilterValues(){this.handler.refreshFilterValues()}onAnyFilterChanged(){}onMiniFilterInput(G){if(!this.doSetMiniFilter(this.eMiniFilter.getValue()))return;if(G){this.showOrHideResults();return}let{applyMiniFilterWhileTyping:D,readOnly:z,excelMode:B}=this.params,Q=!z&&(D||!!B),J=D&&!z?"debounce":void 0;this.updateUiAfterMiniFilterChange(Q,J)}updateUiAfterMiniFilterChange(G,D){if(G){let{excelMode:z,readOnly:B,model:Q}=this.params;if(z&&!B&&this.miniFilterText==null)this.setModelAndRefresh(Q?.values??null);else this.selectAllMatchingMiniFilter(!0)}this.checkAndRefreshVirtualList(),this.onUiChanged(G?D:"prevent"),this.showOrHideResults()}showOrHideResults(){let G=this.miniFilterText!=null&&this.displayValueModel.getDisplayedValueCount()<1;xQ(this.eFilterNoMatches,G),xQ(this.eSetFilterList,!G)}resetMiniFilter(){this.eMiniFilter.setValue(null,!0),this.doSetMiniFilter(null)}onMiniFilterKeyDown(G){let{excelMode:D,readOnly:z}=this.params;if(G.key===Vz.ENTER&&!D&&!z)this.updateUiAfterMiniFilterChange(!0,"immediately")}focusRowIfAlive(G){if(G==null)return Promise.resolve();return new Promise((D)=>{window.setTimeout(()=>{if(this.isAlive())this.virtualList.focusRow(G);D()},0)})}onSelectAll(G){if(G)this.selectAllMatchingMiniFilter();else this.deselectAllMatchingMiniFilter();this.refreshAfterSelection()}onGroupItemSelected(G,D){let z=(B)=>{if(!B.filterPasses)return;let Q=B.children;if(Q)for(let J of Q.values())z(J);else this.setKeySelected(B.key,D)};z(G),this.refreshAfterSelection()}onItemSelected(G,D){this.setKeySelected(G,D),this.refreshAfterSelection()}onExpandAll(G,D){let z=(B)=>{if(B.filterPasses&&B.available&&B.children){for(let Q of B.children.values())z(Q);B.expanded=D}};z(G),this.refreshAfterExpansion()}onExpandedChanged(G,D){G.expanded=D,this.refreshAfterExpansion()}refreshAfterExpansion(){let G=this.virtualList.getLastFocusedRow();this.updateDisplayedValues("expansion"),this.checkAndRefreshVirtualList(),this.focusRowIfAlive(G)}refreshAfterSelection(){let G=this.virtualList.getLastFocusedRow();this.checkAndRefreshVirtualList(),this.onUiChanged(),this.focusRowIfAlive(G)}setMiniFilter(G,D){this.eMiniFilter.setValue(G,D),this.onMiniFilterInput(D)}doSetMiniFilter(G){if(G=CZ(G),this.miniFilterText===G)return!1;if(G===null)this.addCurrentSelectionToFilter=!1;return this.miniFilterText=G,this.updateDisplayedValues("miniFilter"),!0}getMiniFilter(){return this.miniFilterText}getUiChangeEventParams(){return{miniFilterValue:this.miniFilterText}}getState(){let G=this.miniFilterText;return G?{miniFilterValue:G}:void 0}checkAndRefreshVirtualList(){if(this.virtualList.refresh(!this.hardRefreshVirtualList),this.hardRefreshVirtualList)this.hardRefreshVirtualList=!1}getFilterKeys(){return vz(283),this.handler.getFilterKeys()}getFilterValues(){return vz(283),this.handler.getFilterValues()}refreshVirtualList(){if(this.params.refreshValuesOnOpen)this.doRefreshFilterValues();else this.checkAndRefreshVirtualList()}isSelectAllSelected(){if(!this.params.defaultToNothingSelected){if(this.hasSelections()&&this.isNothingVisibleSelected())return!1;if(this.isEverythingVisibleSelected())return!0}else{if(this.hasSelections()&&this.isEverythingVisibleSelected())return!0;if(this.isNothingVisibleSelected())return!1}return}areAllChildrenSelected(G){let D=(z)=>{if(z.children){let B=!1,Q=!1;for(let J of z.children.values()){if(!J.filterPasses||!J.available)continue;let U=D(J);if(U===void 0)return;if(U)B=!0;else Q=!0;if(B&&Q)return}return B}else return this.selectedKeys.has(z.key)};if(!this.params.defaultToNothingSelected)return D(G);else return this.hasSelections()&&D(G)}resetExpansion(){if(!this.params.treeList)return;let G=this.displayValueModel.getSelectAllItem();if(this.isSetFilterModelTreeItem(G)){let D=(z)=>{let B=z.children;if(B){for(let Q of B.values())D(Q);z.expanded=!1}};D(G),this.updateDisplayedValues("expansion")}}getModelAsString(G){return this.handler.getModelAsString(G)}getPositionableElement(){return this.eSetFilterList}updateDisplayedValues(G,D){if(G==="expansion"){this.displayValueModel.refresh();return}let z=this.handler,B=z.valueModel;if(this.miniFilterText==null){this.displayValueModel.updateDisplayedValuesToAllAvailable((Z)=>B.allValues.get(Z)??null,D,B.availableKeys,G);return}let Q=z.caseFormat(this.formatter(this.miniFilterText)||""),J=(Z)=>Z!=null&&z.caseFormat(Z).includes(Q),U=!!this.params.excelMode&&J(_G(this,"blanks"));this.displayValueModel.updateDisplayedValuesToMatchMiniFilter((Z)=>B.allValues.get(Z)??null,D,B.availableKeys,J,U,G)}hasSelections(){return this.params.defaultToNothingSelected?this.selectedKeys.size>0:this.handler.valueModel.allValues.size!==this.selectedKeys.size}isInWindowsExcelMode(){return this.params.excelMode==="windows"}isAddCurrentSelectionToFilterChecked(){return this.isInWindowsExcelMode()&&this.addCurrentSelectionToFilter}showAddCurrentSelectionToFilter(){return this.isInWindowsExcelMode()&&Hf(this.miniFilterText)&&this.miniFilterText.length>0}selectAllMatchingMiniFilter(G=!1){if(this.miniFilterText==null)this.selectedKeys=new Set(this.handler.valueModel.allValues.keys());else{if(G)this.selectedKeys.clear();this.displayValueModel.forEachDisplayedKey((D)=>this.selectedKeys.add(D))}}deselectAllMatchingMiniFilter(){if(this.miniFilterText==null)this.selectedKeys.clear();else this.displayValueModel.forEachDisplayedKey((G)=>this.selectedKeys.delete(G))}setKeySelected(G,D){if(D)this.selectedKeys.add(G);else{if(this.params.excelMode&&this.isEverythingVisibleSelected())this.resetSelectionState(this.displayValueModel.getDisplayedKeys());this.selectedKeys.delete(G)}}isEverythingVisibleSelected(){return!this.displayValueModel.someDisplayedKey((G)=>!this.selectedKeys.has(G))}isNothingVisibleSelected(){return!this.displayValueModel.someDisplayedKey((G)=>this.selectedKeys.has(G))}getSelectedModel(){if(!this.hasSelections())return null;let G=this.isAddCurrentSelectionToFilterChecked()?this.params.model?.values:void 0;if(G?.length){if(this.selectedKeys){let D=new Set([...G,...this.selectedKeys]);return Array.from(D)}return Array.from(G)}return Array.from(this.selectedKeys)}setSelectedModel(G){let D=this.handler,z=D.valueModel;return z.allKeys.then((B)=>{if(G==null)this.resetSelectionState(B??[]);else{this.selectedKeys.clear();let Q=new Map;z.allValues.forEach((J,U)=>{Q.set(D.caseFormat(U),U)}),G.forEach((J)=>{let U=D.caseFormat(CZ(J)),Z=Q.get(U);if(Z!==void 0)this.selectedKeys.add(Z)})}})}resetSelectionState(G){if(this.params.defaultToNothingSelected)this.selectedKeys.clear();else this.selectedKeys=new Set(G)}getFilterHandler(){return this.handler}destroy(){this.virtualList=this.destroyBean(this.virtualList);for(let G of this.handlerDestroyFuncs??[])G();this.handler=void 0,this.displayValueModel=void 0,this.selectedKeys.clear(),super.destroy()}},lf=class{constructor(G){this.model=G}getRowCount(){return this.model.getDisplayedValueCount()}getRow(G){return this.model.getDisplayedItem(G)}areRowsEqual(G,D){return G===D}},pf=class{constructor(G,D){this.model=G,this.showAddCurrentSelectionToFilter=D}getRowCount(){let D=this.showAddCurrentSelectionToFilter()?2:1;return this.model.getDisplayedValueCount()+D}getRow(G){if(G===0)return this.model.getSelectAllItem();let D=this.showAddCurrentSelectionToFilter(),z=D?2:1;if(G===1&&D)return this.model.getAddSelectionToFilterItem();return this.model.getDisplayedItem(G-z)}areRowsEqual(G,D){return G===D}},mf=class{constructor(G){this.model=G}getRowCount(){return this.model.getRowCount()}getRow(G){return this.model.getRow(G)}areRowsEqual(G,D){if(G==null&&D==null)return!0;return G!=null&&D!=null&&G.treeKey===D.treeKey&&G.depth===D.depth}},zN=class extends GN{constructor(G,D,z,B,Q){super();this.createKey=G,this.caseFormat=D,this.getValue=z,this.isTreeDataOrGrouping=B,this.isTreeData=Q}extractUniqueValuesAsync(G,D){return new ef((z)=>{if(this.beans.rowModel.rowCountReady)z(this.extractUniqueValues(G,D));else{let[B]=this.addManagedEventListeners({rowCountReady:()=>{B?.(),z(this.extractUniqueValues(G,D))}})}})}extractUniqueValues(G,D){let z=new Map,B=this.extractExistingFormattedKeys(D),Q=new Set,J=this.isTreeData(),U=this.isTreeDataOrGrouping(),Z=this.beans.rowGroupColsSvc?.columns,S=this.gos.get("groupAllowUnbalanced"),X=(Y,W)=>{let q=this.caseFormat(Y);if(!Q.has(q)){Q.add(q);let H=Y,_=DN(W),k=B?.get(q);if(k!=null)H=k,_=D.get(k);z.set(H,_)}};return this.beans.rowModel.forEachLeafNode((Y)=>{if(!Y.data||!G(Y))return;if(U){this.addValueForTreeDataOrGrouping(Y,J,Z,X,S);return}let W=this.getValue(Y);if(W!=null&&Array.isArray(W)){for(let q of W)X(this.createKey(q,Y),q);if(W.length===0)X(null,null)}else X(this.createKey(W,Y),W)}),z}addValueForTreeDataOrGrouping(G,D,z=[],B,Q){let J;if(D){if(G.childrenAfterGroup?.length)return;J=G.getRoute()??[G.key??G.id]}else J=z.map((Z)=>this.beans.valueSvc.getKeyForNode(Z,G)),J.push(this.getValue(G));let U=m1(J,D,Q);B(this.createKey(U),U)}extractExistingFormattedKeys(G){if(!G)return null;let D=new Map;return G.forEach((z,B)=>{D.set(this.caseFormat(B),B)}),D}},BN=class{constructor(G){this.caseFormat=G,this.keys=null}isNull(){return this.keys==null}isEmpty(){return!this.keys?.size}update(G){let D=new Set;this.keys=D;let z=G?.values;if(z){let B=this.caseFormat;for(let Q=0,J=z.length;Q{return G[G.PROVIDED_LIST=0]="PROVIDED_LIST",G[G.PROVIDED_CALLBACK=1]="PROVIDED_CALLBACK",G[G.TAKEN_FROM_GRID_VALUES=2]="TAKEN_FROM_GRID_VALUES",G})(A7||{}),dQ=A7,$N=class extends QN{constructor(G,D,z,B,Q){super();this.clientSideValuesExtractor=G,this.caseFormat=D,this.createKey=z,this.isTreeDataOrGrouping=B,this.params=Q,this.allValues=new Map,this.availableKeys=new Set,this.providedValues=null,this.initialised=!1}postConstruct(){let G=this.params,D=G.handlerParams.filterParams.values;if(this.updateParams(G),D==null)this.valuesType=2;else this.valuesType=Array.isArray(D)?0:1,this.providedValues=D;this.updateAllValues()}refresh(G){let D=G.handlerParams;if(D.source!=="colDef")return;let{values:z,suppressSorting:B}=D.filterParams,Q=this.providedValues,J=this.params.handlerParams.filterParams.suppressSorting;if(this.params=G,this.updateParams(G),this.providedValues=z??null,this.providedValues!==Q||B!==J){if(!z||z.length===0)this.valuesType=2,this.providedValues=null;else this.valuesType=Array.isArray(z)?0:1;this.updateAllValues()}}updateParams(G){let{handlerParams:{colDef:D,filterParams:{comparator:z,treeList:B,treeListPathGetter:Q}},usingComplexObjects:J}=G,U=z??D.comparator,Z=this.isTreeDataOrGrouping(),S;if(Z&&!U)S=hf();else if(B&&!Q&&!U)S=([X,Y],[W,q])=>uZ(Y,q);else S=([X,Y],[W,q])=>U(Y,q);this.entryComparator=S,this.keyComparator=U??uZ,this.compareByValue=!!(J&&U||Z||B&&!Q)}updateAllValues(){return this.allKeys=new T0((G)=>{switch(this.valuesType){case 2:this.getValuesFromRowsAsync().then((D)=>G(this.processAllValues(D)));break;case 0:{G(this.processAllValues(this.uniqueValues(this.validateProvidedValues(this.providedValues))));break}case 1:{this.dispatchLocalEvent({type:"loadingStart"});let D=this.providedValues,{column:z,colDef:B}=this.params.handlerParams,Q=JN(this.gos,{success:(J)=>{this.dispatchLocalEvent({type:"loadingEnd"}),G(this.processAllValues(this.uniqueValues(this.validateProvidedValues(J))))},colDef:B,column:z});window.setTimeout(()=>D(Q),0);break}}}),this.allKeys.then((G)=>{this.updateAvailableKeys(G??[]),this.initialised=!0}),this.allKeys}getAvailableValues(G){return this.sortKeys(this.getValuesFromRows(G))}overrideValues(G){return this.allKeys.then(()=>{this.valuesType=0,this.providedValues=G})}refreshAvailable(){return new T0((G)=>{if(this.showAvailableOnly()){this.allKeys.then((D)=>{let z=D??[];this.updateAvailableKeys(z),G(!0)});return}G(!1)})}refreshAll(){return new T0((G)=>{this.allKeys.then(()=>{this.updateAllValues().then(()=>{G()})})})}isLoading(){return!this.initialised&&this.valuesType===1}isInitialised(){return this.initialised}getValueForFormatter(G){return this.initialised?this.allValues.get(G):G}getAvailableKeys(G){return this.initialised?G.filter((D)=>this.availableKeys.has(D)):G}getParamsForValuesFromRows(G){if(!this.clientSideValuesExtractor){UN(113);return}return G&&!this.params.handlerParams.filterParams.caseSensitive?this.allValues:void 0}getValuesFromRows(G){let D=this.getParamsForValuesFromRows(!0);return this.clientSideValuesExtractor?.extractUniqueValues(G,D)??null}getValuesFromRowsAsync(){let G=this.getParamsForValuesFromRows(!1);return this.clientSideValuesExtractor?.extractUniqueValuesAsync(()=>!0,G)??T0.resolve(null)}processAllValues(G){let D=this.sortKeys(G);return this.allValues=G??new Map,D}uniqueValues(G){let D=new Map,z=new Set,{caseFormat:B,createKey:Q}=this;for(let J of G??[]){let U=ZN(J),Z=Q(U),S=B(Z);if(!z.has(S))z.add(S),D.set(Z,U)}return D}validateProvidedValues(G){if(this.params.usingComplexObjects&&G?.length){let D=G[0];if(D&&typeof D!=="object"&&typeof D!=="function")if(this.createKey(D)==null)jZ(209);else jZ(210)}return G}sortKeys(G){let D=G??new Map,z=this.params.handlerParams.filterParams;if(z.suppressSorting)return Array.from(D.keys());let B;if(this.compareByValue)B=Array.from(D.entries()).sort(this.entryComparator).map(([Q])=>Q);else B=Array.from(D.keys()).sort(this.keyComparator);if(z.excelMode&&D.has(null))B=B.filter((Q)=>Q!=null),B.push(null);return B}showAvailableOnly(){return this.valuesType===2}updateAvailableKeys(G){let D=this.showAvailableOnly()?this.getAvailableValues((z)=>this.params.handlerParams.doesRowPassOtherFilter(z)):G;this.availableKeys=new Set(D),window.setTimeout(()=>{if(this.isAlive())this.dispatchLocalEvent({type:"availableValuesChanged"})})}},LN=class extends tf{constructor(){super(...arguments);this.filterType="set",this.treeDataTreeList=!1,this.groupingTreeList=!1,this.caseSensitive=!1,this.noValueFormatterSupplied=!1}init(G){this.updateParams(G);let D=this.isTreeDataOrGrouping.bind(this),z=()=>this.treeDataTreeList,B=this.createKey,Q=this.caseFormat.bind(this),{gos:J,beans:U}=this,Z=rf(J,U.rowModel)?this.createManagedBean(new zN(B,Q,G.getValue,D,z)):void 0,S=this.createManagedBean(new $N(Z,Q,B,D,{handlerParams:G,usingComplexObjects:!!(G.filterParams.keyCreator??G.colDef.keyCreator)}));this.addManagedListeners(S,{availableValuesChanged:G.onModelAsStringChange}),this.valueModel=S,this.appliedModel=new BN(this.caseFormat.bind(this)),this.appliedModel.update(G.model),this.validateModel(G),this.addEventListenersForDataChanges()}refresh(G){this.updateParams(G),this.valueModel.refresh({handlerParams:G,usingComplexObjects:!!(G.filterParams.keyCreator??G.colDef.keyCreator)}),this.appliedModel.update(G.model),this.validateModel(G)}updateParams(G){this.params=G;let{colDef:D,filterParams:{caseSensitive:z,treeList:B,keyCreator:Q,valueFormatter:J}}=G;this.caseSensitive=!!z;let U=!!D.showRowGroup;this.treeDataTreeList=this.gos.get("treeData")&&!!B&&U,this.groupingTreeList=!!this.beans.rowGroupColsSvc?.columns.length&&!!B&&U;let Z=Q??D.keyCreator;this.createKey=this.generateCreateKey(Z,this.isTreeDataOrGrouping()),this.setValueFormatter(J,Z,!!B,!!D.refData)}doesFilterPass(G){let{appliedModel:D,treeDataTreeList:z,groupingTreeList:B}=this;if(D.isNull())return!0;if(D.isEmpty())return!1;let{node:Q}=G;if(z)return this.doesFilterPassForTreeData(Q);if(B)return this.doesFilterPassForGrouping(Q);let J=this.params.getValue(Q);if(J!=null&&Array.isArray(J)){if(J.length===0)return D.has(null);return J.some((U)=>D.has(this.createKey(U,Q)))}return D.has(this.createKey(J,Q))}getFormattedValue(G){let D=this.valueModel.getValueForFormatter(G);if(this.noValueFormatterSupplied&&this.isTreeDataOrGrouping()&&Array.isArray(D))D=af(D);let z=this.beans.valueSvc.formatValue(this.params.column,null,D,this.valueFormatter,!1);return(z==null?nQ(D):z)??_G(this,"blanks")}getModelAsString(G,D){let{values:z}=G??{},B=D==="filterToolPanel";if(z==null)return B?_G(this,"filterSummaryListInactive"):"";let Q=this.valueModel.getAvailableKeys(z),J=Q.length,U=B?3:10,Z=Q.slice(0,U).map((S)=>this.getFormattedValue(S));if(B){let S=Z.join(_G(this,"filterSummaryListSeparator"));if(J>3)return _G(this,"filterSummaryListLong",[S,String(J-3)]);else return _G(this,"filterSummaryListShort",[S])}return`(${J}) ${Z.join(",")}${J>10?",...":""}`}onAnyFilterChanged(){window.setTimeout(()=>{if(!this.isAlive())return;this.valueModel.refreshAvailable().then((G)=>{this.dispatchLocalEvent({type:"anyFilterChanged",updated:!!G})})})}onNewRowsLoaded(){this.syncAfterDataChange()}setFilterValues(G){this.valueModel.overrideValues(G).then(()=>{this.refreshFilterValues()})}resetFilterValues(){this.valueModel.valuesType=dQ.TAKEN_FROM_GRID_VALUES,this.syncAfterDataChange()}refreshFilterValues(G){if(!this.valueModel.isInitialised())return;this.valueModel.refreshAll().then(()=>{this.dispatchLocalEvent({type:"dataChanged",hardRefresh:!0}),this.validateModel(this.params,void 0,!G)})}getFilterKeys(){return Array.from(this.valueModel.allValues.keys())}getFilterValues(){return Array.from(this.valueModel.allValues.values())}isTreeDataOrGrouping(){return this.treeDataTreeList||this.groupingTreeList}caseFormat(G){if(G==null||typeof G!=="string")return G;return this.caseSensitive?G:G.toUpperCase()}addEventListenersForDataChanges(){this.addManagedPropertyListeners(["groupAllowUnbalanced"],()=>this.syncAfterDataChange());let G=of(this,this.syncAfterDataChange.bind(this),0);this.addManagedEventListeners({cellValueChanged:(D)=>{if(D.column===this.params.column)G()}})}syncAfterDataChange(){if(!this.isValuesTakenFromGrid())return;this.valueModel.refreshAll().then(()=>{this.dispatchLocalEvent({type:"dataChanged"}),this.validateModel(this.params,{afterDataChange:!0})})}validateModel(G,D,z){let B=this.valueModel;B.allKeys.then(()=>{let Q=G.model;if(Q==null)return;let J=new Map,U=(H)=>J.set(this.caseFormat(H),H);if(z)for(let H of B.availableKeys)U(H);else B.allValues.forEach((H,_)=>U(_));let Z=[],S=!1;for(let H of Q.values){let _=this.caseFormat(iQ(H)),k=J.get(_);if(k!==void 0){if(Z.push(k),k!==H)S=!0}else S=!0}let X=Z.length,Y=G.filterParams;if(X===0&&Y.excelMode){G.onModelChange(null,D);return}let q=!Y.defaultToNothingSelected&&(this.valueModel.valuesType===dQ.TAKEN_FROM_GRID_VALUES||!Y.suppressClearModelOnRefreshValues)&&X===J.size;if(S||!Q.filterType||q){let H=q?null:{filterType:this.filterType,values:Z};G.onModelChange(H,D)}})}isValuesTakenFromGrid(){return this.valueModel.valuesType===dQ.TAKEN_FROM_GRID_VALUES}doesFilterPassForTreeData(G){if(G.childrenAfterGroup?.length)return!1;let{gos:D,appliedModel:z}=this;return z.has(this.createKey(m1(G.getRoute()??[G.key??G.id],!0,D.get("groupAllowUnbalanced"))))}doesFilterPassForGrouping(G){let{appliedModel:D,params:z,gos:B,beans:{rowGroupColsSvc:Q,valueSvc:J}}=this,U=(Q?.columns??[]).map((Z)=>J.getKeyForNode(Z,G));return U.push(z.getValue(G)),D.has(this.createKey(m1(U,!1,B.get("groupAllowUnbalanced"))))}generateCreateKey(G,D){if(D&&!G)return OZ(250),()=>null;if(G)return(z,B=null)=>{let Q=this.getKeyCreatorParams(z,B);return iQ(G(Q))};return(z)=>iQ(nQ(z))}getKeyCreatorParams(G,D=null){let{colDef:z,column:B}=this.params;return sf(this.gos,{value:G,colDef:z,column:B,node:D,data:D?.data})}setValueFormatter(G,D,z,B){let Q=G;if(!Q){if(D&&!z){OZ(249);return}if(this.noValueFormatterSupplied=!0,!B)Q=(J)=>nQ(J.value)}this.valueFormatter=Q}getCrossFilterModel(G){let{createKey:D,valueModel:z,params:B}=this;return G(D,z.availableKeys,B.model?.values)}destroy(){this.appliedModel.destroy(),super.destroy(),this.valueModel=void 0}},qN={tag:"div",cls:"ag-floating-filter-input ag-set-floating-filter-input",role:"presentation",children:[{tag:"ag-input-text-field",ref:"eFloatingFilterText"}]},HN=class extends XN{constructor(){super(qN,[SN]);this.eFloatingFilterText=YN}init(G){this.params=G,this.eFloatingFilterText.setDisabled(!0).addGuiEventListener("click",()=>this.params.showParentFilter()),this.setParams(G)}setParams(G){let D=this.beans.colNames.getDisplayNameForColumn(G.column,"header",!0),z=this.getLocaleTextFunc();if(this.eFloatingFilterText.setInputAriaLabel(`${D} ${z("ariaFilterInput","Filter Input")}`),this.gos.get("enableFilterHandlers")){let B=G;this.updateFloatingFilterText(B.model)}}refresh(G){this.params=G,this.setParams(G)}onParentModelChanged(G){this.updateFloatingFilterText(G)}parentSetFilterInstance(G){this.params.parentFilterInstance((D)=>{if(!(D instanceof M7)){WN(248);return}G(D)})}updateFloatingFilterText(G){if(G==null)this.eFloatingFilterText.setValue("");else if(this.gos.get("enableFilterHandlers"))this.eFloatingFilterText.setValue(this.params.getHandler().getModelAsString?.(G)??"");else this.parentSetFilterInstance((D)=>{this.eFloatingFilterText.setValue(D.getModelAsString(G))})}},R7={moduleName:"SetFilter",version:j,userComponents:{agSetColumnFilter:{classImp:M7,params:{useForm:!0},processParams:(G)=>{return cf(G),G}},agSetColumnFloatingFilter:HN},dynamicBeans:{agSetColumnFilterHandler:LN},icons:{setFilterGroupClosed:"tree-closed",setFilterGroupOpen:"tree-open",setFilterGroupIndeterminate:"tree-indeterminate",setFilterLoading:"loading"},dependsOn:[i,Sf]},NN=".ag-status-bar{border-top:var(--ag-footer-row-border);display:flex;justify-content:space-between;line-height:1.5;overflow:hidden;padding-left:calc(var(--ag-spacing)*4);padding-right:calc(var(--ag-spacing)*4)}.ag-status-panel,:where(.ag-status-panel.ag-status-panel-aggregations .ag-status-name-value){display:inline-flex}.ag-status-name-value{color:var(--ag-status-bar-label-color);font-weight:var(--ag-status-bar-label-font-weight);margin-left:var(--ag-spacing);margin-right:var(--ag-spacing);padding-bottom:var(--ag-widget-container-vertical-padding);padding-top:var(--ag-widget-container-vertical-padding);white-space:nowrap}.ag-status-name-value-value{color:var(--ag-status-bar-value-color);font-weight:var(--ag-status-bar-value-font-weight)}.ag-status-bar-left{display:inline-flex}.ag-status-bar-center{display:inline-flex;text-align:center}.ag-status-bar-right{display:inline-flex}";function FN(G,D,z){return G.getCompDetails(D,EN,void 0,z,!0)}var EN={name:"statusPanel",optionalMethods:["refresh"]},IN={agAggregationComponent:{rowModels:["clientSide","serverSide"],warnArgs:[221]},agFilteredRowCountComponent:{rowModels:["clientSide"],warnArgs:[222]},agSelectedRowCountComponent:{rowModels:["clientSide","serverSide"],warnArgs:[223]},agTotalAndFilteredRowCountComponent:{rowModels:["clientSide"],warnArgs:[224]},agTotalRowCountComponent:{rowModels:["clientSide"],warnArgs:[225]}},MN={tag:"div",cls:"ag-status-bar",children:[{tag:"div",ref:"eStatusBarLeft",cls:"ag-status-bar-left",role:"status"},{tag:"div",ref:"eStatusBarCenter",cls:"ag-status-bar-center",role:"status"},{tag:"div",ref:"eStatusBarRight",cls:"ag-status-bar-right",role:"status"}]},AN=class extends kN{constructor(){super(MN);this.updateQueued=!1,this.panelsPromise=y0.resolve(),this.eStatusBarLeft=lQ,this.eStatusBarCenter=lQ,this.eStatusBarRight=lQ,this.compDestroyFunctions={},this.registerCSS(NN)}wireBeans(G){this.userCompFactory=G.userCompFactory,this.statusBarSvc=G.statusBarSvc}postConstruct(){this.processStatusPanels(new Map),this.addManagedPropertyListeners(["statusBar"],this.handleStatusBarChanged.bind(this)),wN(this.beans,this,this.getGui())}getFocusableContainerName(){return"statusBar"}getValidPanels(){let G=this.gos,D=G.get("statusBar")?.statusPanels;if(!D)return D;return D.filter((z)=>{let{rowModels:B,warnArgs:Q}=IN[z.statusPanel]??{};if(!B)return!0;if(B.includes(G.get("rowModelType")))return!0;return fN(...Q),!1})}processStatusPanels(G){let D=this.getValidPanels();if(D){let z=D.filter((J)=>J.align==="left"),B=D.filter((J)=>J.align==="center"),Q=D.filter((J)=>!J.align||J.align==="right");this.panelsPromise=y0.all([this.createAndRenderComponents(z,this.eStatusBarLeft,G),this.createAndRenderComponents(B,this.eStatusBarCenter,G),this.createAndRenderComponents(Q,this.eStatusBarRight,G)])}else this.setDisplayed(!1)}handleStatusBarChanged(){if(this.updateQueued)return;this.updateQueued=!0,this.panelsPromise.then(()=>{this.updateStatusBar(),this.updateQueued=!1})}updateStatusBar(){let G=this.getValidPanels(),D=Array.isArray(G)&&G.length>0;this.setDisplayed(D);let z=new Map;if(D)for(let B of G){let Q=B.key??B.statusPanel,J=this.statusBarSvc.getStatusPanel(Q);if(J?.refresh){let U=PZ(this.gos,{...B.statusPanelParams??{},key:Q});if(J.refresh(U))z.set(Q,J),delete this.compDestroyFunctions[Q],KN(J.getGui())}}if(this.resetStatusBar(),D)this.processStatusPanels(z)}resetStatusBar(){pQ(this.eStatusBarLeft),pQ(this.eStatusBarCenter),pQ(this.eStatusBarRight),this.destroyComponents(),this.statusBarSvc.unregisterAllComponents()}destroy(){this.destroyComponents(),super.destroy()}destroyComponents(){for(let G of Object.values(this.compDestroyFunctions))G();this.compDestroyFunctions={}}createAndRenderComponents(G,D,z){let B=[];for(let Q of G){let J=Q.key||Q.statusPanel,U=z.get(J),Z;if(U)Z=y0.resolve(U);else{let S=FN(this.userCompFactory,Q,PZ(this.gos,{key:J}));if(S==null)continue;Z=S.newAgStackInstance()}B.push({key:J,promise:Z})}return y0.all(B.map((Q)=>Q.promise)).then(()=>{for(let Q of B)Q.promise.then((J)=>{let U=()=>{this.destroyBean(J)};if(this.isAlive())this.statusBarSvc.registerStatusPanel(Q.key,J),D.appendChild(J.getGui()),this.compDestroyFunctions[Q.key]=U;else U()})})}},RN={selector:"AG-STATUS-BAR",component:AN},yN={tag:"div",cls:"ag-status-name-value",children:[{tag:"span",ref:"eLabel"},": ",{tag:"span",ref:"eValue",cls:"ag-status-name-value-value"}]},xN=BigInt(Number.MIN_SAFE_INTEGER),cN=BigInt(Number.MAX_SAFE_INTEGER),q0=class extends gN{constructor(){super(yN);this.eLabel=gZ,this.eValue=gZ}setLabel(G,D){this.setDisplayed(!1),this.eLabel.textContent=this.getLocaleTextFunc()(G,D)}setValue(G,D){let z=null,B;if(typeof G==="bigint"){if(B=G,G>=xN&&G<=cN)z=Number(G)}else z=G;this.eValue.textContent=this.valueFormatter(TN(this.gos,{value:z,bigintValue:B,totalRows:D,key:this.key}))}},hN={selector:"AG-NAME-VALUE",component:q0},C7=(G)=>{let D=0;return G.forEachNodeAfterFilter((z)=>{if(z.data)D++}),D},H0=(G)=>{let D=0;return G.forEachNode((z)=>{if(z.data)D++}),D};function iN(G,D){if(typeof G!=="number")return"";return vN(Math.round(G*100)/100,D)}var nN={tag:"div",cls:"ag-status-panel ag-status-panel-aggregations",children:[{tag:"ag-name-value",ref:"avgAggregationComp"},{tag:"ag-name-value",ref:"countAggregationComp"},{tag:"ag-name-value",ref:"minAggregationComp"},{tag:"ag-name-value",ref:"maxAggregationComp"},{tag:"ag-name-value",ref:"sumAggregationComp"}]},dN=class extends CN{constructor(){super(nN,[hN]);this.sumAggregationComp=Oz,this.countAggregationComp=Oz,this.minAggregationComp=Oz,this.maxAggregationComp=Oz,this.avgAggregationComp=Oz}postConstruct(){this.avgAggregationComp.setLabel("avg","Average"),this.countAggregationComp.setLabel("count","Count"),this.minAggregationComp.setLabel("min","Min"),this.maxAggregationComp.setLabel("max","Max"),this.sumAggregationComp.setLabel("sum","Sum"),this.addManagedEventListeners({cellSelectionChanged:this.onCellSelectionChanged.bind(this),modelUpdated:this.onCellSelectionChanged.bind(this)})}init(G){this.refresh(G)}refresh(G){this.params=G;let D=G.valueFormatter??((B)=>{let{value:Q,bigintValue:J}=B;if(J!=null)return J.toString();return iN(Q,this.getLocaleTextFunc.bind(this))}),z=["avg","count","min","max","sum"];for(let B of z){let Q=this.getAllowedAggregationValueComponent(B);if(Q)Q.key=B,Q.valueFormatter=D.bind(this)}return this.onCellSelectionChanged(),!0}setAggregationComponentValue(G,D,z){let B=this.getAllowedAggregationValueComponent(G),Q=H0(this.beans.rowModel);if(bN(B)&&B)B.setValue(D,Q),B.setDisplayed(z);else this.getAggregationValueComponent(G)?.setDisplayed(!1)}getAllowedAggregationValueComponent(G){let{aggFuncs:D}=this.params;if(!D||D.includes(G))return this.getAggregationValueComponent(G);return null}getAggregationValueComponent(G){let D=`${G}AggregationComp`;return this[D]}onCellSelectionChanged(){let G=this.beans,{rangeSvc:D,valueSvc:z}=G,B=D?.getCellRanges(),Q=0,J=0n,U=!1,Z=!1,S=0,X=0,Y=null,W=null,q=null,H=null,_=(R)=>{if(typeof R==="number"){if(Q+=R,Y===null||RW)W=R;if(!Number.isInteger(R)||!Number.isSafeInteger(R))Z=!0;else{let O=BigInt(R);if(J+=O,q===null||OH)H=O}}else{if(U=!0,J+=R,q===null||RH)H=R;let O=Number(R);if(Q+=O,Y===null||OW)W=O}X++},k={};if(B?.length&&D)for(let R=0;R{if(u===null)return;let b=VN({rowPinned:u.rowPinned,column:P,rowIndex:u.rowIndex});if(k[b])return;k[b]=!0;let g=uN(G,u);if(mQ(g))return;let c=z.getValue(P,g,"data");if(mQ(c)||c==="")return;if(S++,typeof c==="object"&&"value"in c){if(c=c.value,c==="")return}if(typeof c==="string"){let s=c.trim();if(s==="")return;let m=Number(s);if(!Number.isFinite(m))return;if(Q+m>=Number.MAX_SAFE_INTEGER||Q+m<=Number.MIN_SAFE_INTEGER||m>=Number.MAX_SAFE_INTEGER||m<=Number.MIN_SAFE_INTEGER){if(c=PN(s),c===null)c=m}else c=m}if(typeof c==="number"&&!isNaN(c)||typeof c==="bigint")_(c)}),u=ON(G,u)}}let w=S>1,K=X>1,f=U&&!Z,N;if(f)N=J/BigInt(X);else N=Q/X;let F=K?f?J:Q:null,E=K?f?q:Y:null,I=K?f?H:W:null,V=K?N:null,A=K;this.setAggregationComponentValue("count",S,w),this.setAggregationComponentValue("sum",F,K),this.setAggregationComponentValue("min",E,K),this.setAggregationComponentValue("max",I,K),this.setAggregationComponentValue("avg",V,A)}},pN=class extends q0{postConstruct(){this.setLabel("filteredRows","Filtered"),this.addCss("ag-status-panel"),this.addCss("ag-status-panel-filtered-row-count"),this.setDisplayed(!0);let G=this.onDataChanged.bind(this);this.addManagedEventListeners({modelUpdated:G})}onDataChanged(){let{rowModel:G}=this.beans,D=H0(G),z=C7(G);this.setValue(z,D),this.setDisplayed(D!==z)}init(G){this.refresh(G),this.onDataChanged()}updateValueFormatter(G){this.valueFormatter=G??(({value:D})=>lN(D,this.getLocaleTextFunc.bind(this)))}refresh(G){let{key:D,valueFormatter:z}=G;return this.key=D,this.updateValueFormatter(z),!0}},tN=class extends q0{postConstruct(){this.setLabel("selectedRows","Selected"),this.addCss("ag-status-panel"),this.addCss("ag-status-panel-selected-row-count");let G=this.onRowSelectionChanged.bind(this);this.addManagedEventListeners({modelUpdated:G,selectionChanged:G})}onRowSelectionChanged(){let{selectionSvc:G,rowModel:D}=this.beans,z=G?.getSelectionCount()??0,B=H0(D);if(this.setValue(z,B),z<0){this.setDisplayed(!0);return}this.setDisplayed(z>0)}init(G){this.refresh(G),this.onRowSelectionChanged()}updateValueFormatter(G){this.valueFormatter=G??(({value:D})=>{if(D==null||D>=0)return mN(D,this.getLocaleTextFunc.bind(this));return this.getLocaleTextFunc()("statusBarLastRowUnknown","?")})}refresh(G){let{key:D,valueFormatter:z}=G;return this.key=D,this.updateValueFormatter(z),!0}},sN=class extends q0{postConstruct(){this.setLabel("totalAndFilteredRows","Rows"),this.addCss("ag-status-panel"),this.addCss("ag-status-panel-total-and-filtered-row-count"),this.setDisplayed(!0),this.addManagedEventListeners({modelUpdated:this.onDataChanged.bind(this)})}onDataChanged(){let{rowModel:G}=this.beans,D=C7(G),z=H0(G);this.setValue(D,z)}init(G){this.refresh(G),this.onDataChanged()}updateValueFormatter(G){this.valueFormatter=G??(({value:D,totalRows:z})=>{let B=this.getLocaleTextFunc.bind(this),Q=TZ(D,B),J=TZ(z??D,B);if(D===z)return Q;let U=B();return`${Q} ${U("of","of")} ${J}`})}refresh(G){let{key:D,valueFormatter:z}=G;return this.key=D,this.updateValueFormatter(z),!0}},rN=class extends q0{postConstruct(){this.setLabel("totalRows","Total Rows"),this.addCss("ag-status-panel"),this.addCss("ag-status-panel-total-row-count"),this.setDisplayed(!0),this.addManagedEventListeners({modelUpdated:this.onDataChanged.bind(this)})}onDataChanged(){let G=H0(this.beans.rowModel);this.setValue(G,G)}init(G){this.refresh(G),this.onDataChanged()}updateValueFormatter(G){this.valueFormatter=G??(({value:D})=>oN(D,this.getLocaleTextFunc.bind(this)))}refresh(G){let{key:D,valueFormatter:z}=G;return this.key=D,this.updateValueFormatter(z),!0}};function eN(G,D){let z=G.statusBarSvc?.getStatusPanel(D);return aN(z)}var DF=class extends GF{constructor(){super();this.beanName="statusBarSvc",this.comps=new Map}registerStatusPanel(G,D){this.comps.set(G,D)}unregisterStatusPanel(G){this.comps.delete(G)}unregisterAllComponents(){this.comps.clear()}getStatusPanel(G){return this.comps.get(G)}destroy(){this.unregisterAllComponents(),super.destroy()}},xB={moduleName:"StatusBar",version:j,beans:[DF],userComponents:{agAggregationComponent:dN,agTotalRowCountComponent:rN,agFilteredRowCountComponent:pN,agTotalAndFilteredRowCountComponent:sN,agSelectedRowCountComponent:tN},selectors:[RN],apiFunctions:{getStatusPanel:eN},dependsOn:[i,_N]};function V7(G){if(G.excelCreator?.getFactoryMode()==="MULTI_SHEET")return BF(161),!1;return!0}function QF(G,D){if(V7(G))return G.excelCreator?.getDataAsExcel(D);return}function JF(G,D){if(V7(G))G.excelCreator?.exportDataAsExcel(D)}function UF(G,D){return G.excelCreator?.setFactoryMode("MULTI_SHEET"),G.excelCreator?.getSheetDataForExcel(D)}function ZF(G,D){return G.excelCreator?.getMultipleSheetsAsExcel(D)}function $F(G,D){G.excelCreator?.exportMultipleSheetsAsExcel(D)}var cB={moduleName:"ExcelExport",version:j,beans:[tX],apiFunctions:{getDataAsExcel:QF,exportDataAsExcel:JF,getSheetDataForExcel:UF,getMultipleSheetsAsExcel:ZF,exportMultipleSheetsAsExcel:$F},dependsOn:[zF,i]};function hB(G){let{filters:D}=G;return D&&D.length>0?D:[{filter:"agTextColumnFilter"},{filter:"agSetColumnFilter"}]}function FB(G,D){if(G==null)return;for(let z=G.length-1;z>=0;z--)D(G[z],z)}function IF(G,D){if(D.title!=null)return D.title;return G instanceof EF?G.getFilterTitle():"Filter"}function EB(G,D,z,B){let Q=[],J=G?.filterModels;for(let U=0;UU==null)?null:{filterType:"multi",filterModels:Q}}function dG(G,D){return G?.filterModels?.[D]??null}function IB(G,D,z,B){let Q=z.filterValueGetter;return Q?G.colFilter.createGetValue(D,Q):B}var b7=class extends kF{constructor(){super({tag:"div",cls:"ag-multi-filter ag-menu-list-compact"});this.filterDefs=[],this.guiDestroyFuncs=[],this.filterGuis=[],this.lastActivatedMenuItem=null}postConstruct(){this.initialiseTabGuard({onFocusIn:(G)=>this.onFocusIn(G)})}refreshGui(G){if(G===this.lastOpenedInContainer)return dD.resolve();return this.tabGuardFeature.removeAllChildrenExceptTabGuards(),this.destroyChildren(),dD.all(this.getFilterWrappers().map((D,z)=>{if(!D)return dD.resolve(null);let B=this.getFilterFromWrapper(D),Q=this.getCompFromWrapper(D),J=this.filterDefs[z],U=IF(B,J),Z;if(J.display==="subMenu"&&G!=="toolPanel")Z=this.insertFilterMenu(Q,B,U).then((S)=>S.getGui());else if(J.display==="subMenu"||J.display==="accordion"){let S=this.insertFilterGroup(B,Q,U);Z=dD.resolve(S.getGui())}else Z=dD.resolve(Q.getGui());return Z})).then((D)=>{D.forEach((z,B)=>{if(!z)return;if(B>0)this.appendChild(wF({tag:"div",cls:"ag-filter-separator"}));this.appendChild(z)}),this.filterGuis=D,this.lastOpenedInContainer=G})}destroyChildren(){for(let G of this.guiDestroyFuncs)G();this.guiDestroyFuncs.length=0,this.filterGuis.length=0}insertFilterMenu(G,D,z){let B=G.getGui();FF(B,"dialog");let Q=this.createBean(new O3),J={getGui:()=>G.getGui(),afterGuiAttached:(U)=>{if(G.afterGuiAttached?.(U),G!==D)D.afterGuiAttached?.(U)}};return Q.init({menuItemDef:{name:z,subMenu:[],subMenuRole:"dialog",cssClasses:["ag-multi-filter-menu-item"],menuItem:G7,menuItemParams:{cssClassPrefix:"ag-compact-menu-option",isCompact:!0}},level:0,isAnotherSubMenuOpen:()=>!1,childComponent:J,contextParams:{column:null,node:null,value:null}}).then(()=>{Q.setParentComponent(this),this.guiDestroyFuncs.push(()=>this.destroyBean(Q)),this.addManagedListeners(Q,{menuItemActivated:(Z)=>{if(this.lastActivatedMenuItem&&this.lastActivatedMenuItem!==Z.menuItem)this.lastActivatedMenuItem.deactivate();this.lastActivatedMenuItem=Z.menuItem}});let U=Q.getGui();return Q.addManagedElementListeners(U,{keydown:(Z)=>{let{key:S}=Z;switch(S){case uz.UP:case uz.RIGHT:case uz.DOWN:case uz.LEFT:if(Z.preventDefault(),S===uz.RIGHT)Q.openSubMenu(!0);break}},focusin:()=>Q.activate(),focusout:()=>{if(!Q.isSubMenuOpen()&&!Q.isSubMenuOpening())Q.deactivate()}}),Q})}insertFilterGroup(G,D,z){let B=this.createBean(new jG({title:z,cssIdentifier:"multi-filter"}));if(this.guiDestroyFuncs.push(()=>this.destroyBean(B)),B.addItem(D.getGui()),B.toggleGroupExpand(!1),G.afterGuiAttached)B.addManagedListeners(B,{expanded:()=>G.afterGuiAttached({container:this.lastOpenedInContainer,suppressFocus:!0,hidePopup:this.hidePopup})});return B}afterGuiAttached(G){let D;if(G)this.hidePopup=G.hidePopup,D=this.refreshGui(G.container);else this.hidePopup=void 0,D=dD.resolve();let z=G?.suppressFocus;D.then(()=>{let{filterDefs:B,filterGuis:Q,beans:J}=this,U=this.getFilterWrappers(),Z=!!z;if(B)FB(B,(X,Y)=>{let W=Y===0,q=X.display&&X.display!=="inline",H=z||!W||q,_={...G??{},suppressFocus:H},k=U[Y],w=k?this.getFilterFromWrapper(k):void 0;if(k){let K=this.getCompFromWrapper(k);if(K!==w)K.afterGuiAttached(_)}if(w){if(this.executeFunctionIfExistsOnFilter(w,"afterGuiAttached",_),W&&!H)Z=!0}if(!z&&W&&q){let K=Q[Y];if(K){if(!KF(K))K.focus({preventScroll:!0});Z=!0}}});let S=fF(J);if(!Z&&(NF(J)||this.getGui().contains(S)))this.forceFocusOutOfContainer(!0)})}afterGuiDetached(){this.executeFunctionIfExists("afterGuiDetached")}onAnyFilterChanged(){this.executeFunctionIfExists("onAnyFilterChanged",(G)=>this.executeOnWrapper(G,"onAnyFilterChanged"))}onNewRowsLoaded(){this.executeFunctionIfExists("onNewRowsLoaded",(G)=>this.executeOnWrapper(G,"onNewRowsLoaded"))}destroy(){this.destroyChildren(),this.hidePopup=void 0,super.destroy()}executeOnWrapper(G,D){}executeFunctionIfExists(G,D){FB(this.getFilterWrappers(),(z)=>{if(z)D?.(z),this.executeFunctionIfExistsOnFilter(this.getFilterFromWrapper(z),G)})}executeFunctionIfExistsOnFilter(G,D,...z){let B=G[D];if(typeof B==="function")B.apply(G,z)}onFocusIn(G){let D=this.lastActivatedMenuItem;if(D!=null&&!D.getGui().contains(G.target))D.deactivate(),this.lastActivatedMenuItem=null}},v7=class extends b7{constructor(){super(...arguments);this.filterType="multi",this.wrappers=[],this.activeFilterIndices=[],this.afterFiltersReadyFuncs=[]}init(G){this.params=G,this.filterDefs=hB(G);let D=WF(this.beans.colFilter.model,G.column.getColId()),{filterChangedCallback:z}=G;this.filterChangedCallback=z;let B=this.filterDefs.map((Q,J)=>this.createFilter(Q,J,D));return new eG((Q)=>{eG.all(B).then((J)=>{this.wrappers=J,this.refreshGui("columnMenu").then(()=>{Q()})})}).then(()=>{for(let Q of this.afterFiltersReadyFuncs)Q();this.afterFiltersReadyFuncs.length=0})}refresh(G){return this.params=G,!0}isFilterActive(){return this.wrappers.some((G)=>{if(!G)return!1;let{filter:D,handler:z,model:B}=G;if(z)return B!=null;return D.isFilterActive()})}getLastActiveFilterIndex(){let G=this.activeFilterIndices;return G.length>0?G[G.length-1]:null}doesFilterPass(G,D){return this.wrappers.every((z,B)=>{if(!z||D!=null&&B===D)return!0;let{handler:Q,filter:J,model:U}=z;if(Q)return U==null||Q.doesFilterPass({...G,model:U,handlerParams:z.handlerParams});return!J.isFilterActive()||J.doesFilterPass(G)})}getModelFromUi(){return{filterType:this.filterType,filterModels:this.wrappers.map((D)=>{if(!D)return null;let z=D.filter;if(typeof z.getModelFromUi==="function")return z.getModelFromUi();return null})}}getModel(){if(!this.isFilterActive())return null;return{filterType:this.filterType,filterModels:this.wrappers.map((D)=>{if(!D)return null;let{filter:z,handler:B,model:Q}=D;if(B)return Q;return z.isFilterActive()?z.getModel():null})}}setModel(G){let D=(B,Q)=>{return new eG((J)=>{let U=B.setModel(Q);if(U)U.then(J);else J()})},z=[];return this.wrappers.forEach((B,Q)=>{if(!B)return;let J=dG(G,Q),{filter:U,filterParams:Z,handler:S,handlerParams:X,state:Y}=B;if(S){let W={model:J,state:Y?.state};B.state=W,B.model=J,z.push(yZ(()=>eG.resolve({filter:U,filterParams:Z}),S,X,J,W,"api").then(()=>{this.updateActiveListForHandler(Q,B.model)}))}else z.push(D(U,J).then(()=>{this.updateActiveListForFilter(Q,U)}))}),eG.all(z).then(()=>{})}applyModel(G="api"){let D=!1;for(let z of this.wrappers)if(z){let B=z.filter;if(B instanceof YF)D=B.applyModel(G)||D}return D}getChildFilterInstance(G){return this.wrappers[G]?.filter}getNumChildFilters(){return this.wrappers.length}destroy(){for(let G of this.wrappers)this.destroyBean(G?.filter),this.destroyBean(G?.handler);this.wrappers.length=0,super.destroy()}getFilterWrappers(){return this.wrappers}getFilterFromWrapper(G){return G.filter}getCompFromWrapper(G){return G.comp}executeOnWrapper(G,D){G.handler?.[D]?.()}createFilter(G,D,z){let B=this.params.column,Q=null,J,U=this.beans,Z=(H,_)=>{let k=this.wrappers[D];if(!k)return;let w={model:H,state:k.state?.state};k.state=w,k.model=H,yZ(()=>eG.resolve({filter:k.filter,filterParams:k.filterParams}),k.handler,k.handlerParams,H,w,"ui").then(()=>{this.onHandlerModelChanged(D,k.model,_)})},{compDetails:S,handler:X,handlerParams:Y,createFilterUi:W}=U.colFilter.createFilterInstance(B,G,"agTextColumnFilter",(H,_)=>{let k={...H,filterChangedCallback:_?()=>{}:(w)=>{this.executeWhenAllFiltersReady(()=>this.onFilterModelChanged(D,w))},doesRowPassOtherFilter:(w)=>H.doesRowPassOtherFilter(w)&&this.doesFilterPass({node:w,data:w.data},D),getValue:IB(U,B,G,H.getValue)};if(_)Q=dG(z,D),J=this.updateDisplayParams(k,D,Q,()=>S,()=>X,Z);return k});if(!W)return eG.resolve(null);let q;if(X){let{doesRowPassOtherFilter:H,getValue:_}=Y;q={...Y,onModelChange:Z,doesRowPassOtherFilter:(k)=>H(k)&&this.doesFilterPass({node:k,data:k.data},D),getValue:IB(U,B,G,_)},X.init?.({...q,model:Q,source:"init"})}return W().then((H)=>{if(!X)return{filter:H,comp:H};let _=S?.params,k=J(H);return{filter:H,comp:k,filterParams:_,handler:X,handlerParams:q,model:Q}})}updateDisplayParams(G,D,z,B,Q,J){let U=this.params.column,Z=new XF;G.model=z,G.state={model:z},G.onModelChange=J,G.getHandler=Q;let S=(Y,W)=>{Y.state=W,Z.dispatchEvent({type:"filterStateChanged",column:U,state:W})};G.onStateChange=(Y)=>{let W=this.wrappers[D];if(!W)return;S(W,Y),qF(W.filter,W.filterParams,W.model??null,Y,"ui")};let X=(Y,W,q)=>{let H=this.wrappers[D];if(!H)return;let _=()=>H?.model??null;_F({action:W,filterParams:H.filterParams,getFilterUi:()=>{let k=eG.resolve(H.filter);return{created:!0,filterParams:H.filterParams,compDetails:B(),create:()=>k,promise:k}},getModel:_,getState:()=>H?.state??{model:_()},updateState:(k)=>S(H,k),updateModel:(k)=>H.filterParams?.onModelChange(k,q),processModelToApply:H.handler?.processModelToApply?.bind(H.handler)})};return G.onAction=(Y,W,q)=>{X(U,Y,W),Z.dispatchEvent({type:"filterAction",column:U,action:Y,event:q})},(Y)=>{let W=B()?.params;return this.createManagedBean(new SF(U,{comp:Y,params:W,isHandler:!0},Z,X,!1))}}executeWhenAllFiltersReady(G){if((this.wrappers?.length??0)>0)G();else this.afterFiltersReadyFuncs.push(G)}updateActiveListForFilter(G,D){this.updateActiveList(G,()=>D?.isFilterActive())}updateActiveListForHandler(G,D){this.updateActiveList(G,()=>D!=null)}updateActiveList(G,D){let z=this.activeFilterIndices;if(HF(this.activeFilterIndices,G),D())z.push(G)}onFilterModelChanged(G,D){this.updateActiveListForFilter(G,this.wrappers[G]?.filter),this.filterChanged(G,D)}onHandlerModelChanged(G,D,z){this.updateActiveListForHandler(G,D),this.filterChanged(G,z)}filterChanged(G,D){this.filterChangedCallback(D),this.wrappers.forEach((z,B)=>{if(G===B||!z)return;let{filter:Q,handler:J}=z;if(J?.onAnyFilterChanged?.(),typeof Q.onAnyFilterChanged==="function")Q.onAnyFilterChanged()})}getModelAsString(G){if(!G?.filterModels?.length)return"";let D=this.getLastActiveFilterIndex()??0;return this.wrappers[D]?.filter?.getModelAsString?.(G.filterModels[D])??""}},RF=class extends MF{constructor(){super(...arguments);this.filterType="multi",this.handlerWrappers=[],this.activeFilterIndices=[],this.filterDefs=[]}init(G){this.params=G;let D=hB(G.filterParams);this.filterDefs=D,D.forEach((z,B)=>{let Q=this.beans.colFilter.createHandler(G.column,z,"agTextColumnFilter");if(this.handlerWrappers.push(Q),!Q){xZ(278,{colId:G.column.getColId()});return}let{handler:J,handlerParams:U}=Q;J.init?.({...this.updateHandlerParams(U,B,!0),model:dG(G.model,B),source:"init"})}),this.resetActiveList(G.model)}refresh(G){this.params=G;let{model:D,source:z,filterParams:B}=G,Q=B?.filters;if(this.handlerWrappers.forEach((J,U)=>{if(J){let Z=this.updateHandlerParams(G,U,!1,Q?.[U].filterParams);J.handlerParams=Z,J.handler.refresh?.({...Z,model:dG(D,U),source:z})}}),G.source!=="floating"&&G.source!=="ui")this.resetActiveList(G.model);if(G.additionalEventAttributes?.fromButtons)this.onAnyFilterChanged()}updateHandlerParams(G,D,z,B){let{onModelChange:Q,doesRowPassOtherFilter:J,getValue:U}=G,Z={...G,onModelChange:(S,X)=>Q(EB(this.params.model,this.handlerWrappers.length,S,D),X),doesRowPassOtherFilter:(S)=>J(S)&&this.doesFilterPass({node:S,data:S.data,model:this.params.model,handlerParams:Z},D),getValue:IB(this.beans,G.column,this.filterDefs[D],U),filterParams:this.updateFilterParams(G,z,B)};return Z}updateFilterParams(G,D,z){let B=G.filterParams;if(z?.buttons&&D)xZ(292,{colId:G.column.getColId()});let Q=z?{...B,...z}:B;if(!Q.buttons)return Q;if(z)return delete Q.buttons,Q;let{buttons:J,...U}=Q;return U}doesFilterPass(G,D){let z=G.model?.filterModels;if(z==null)return!0;return this.handlerWrappers.every((B,Q)=>{let J=z[Q];if(J==null||D!=null&&Q===D)return!0;let U=B?.handler;return!U||U.doesFilterPass({...G,model:J,handlerParams:B.handlerParams})})}resetActiveList(G){this.activeFilterIndices=[];let D=G?.filterModels;if(D==null)return;for(let z=0;z0?G[G.length-1]:null}getModelAsString(G,D){let z=D==="filterToolPanel",B=()=>z?this.getLocaleTextFunc()("filterSummaryInactive","is (All)"):"";if(!G?.filterModels?.length)return B();let Q=this.getLastActiveFilterIndex()??0;return this.handlerWrappers[Q]?.handler.getModelAsString?.(G.filterModels[Q],D)??B()}getHandler(G){return this.handlerWrappers[G]?.handler}onAnyFilterChanged(){FB(this.handlerWrappers,(G)=>G?.handler?.onAnyFilterChanged?.())}onNewRowsLoaded(){FB(this.handlerWrappers,(G)=>G?.handler?.onNewRowsLoaded?.())}destroy(){for(let G of this.handlerWrappers)this.destroyBean(G?.handler);this.handlerWrappers.length=0,super.destroy()}},vF=class extends CF{constructor(){super(...arguments);this.beanName="multiFilter"}getParamsForDataType(G,D,z,B){let Q=G?.filters,J=this.beans;if(!Q)Q=[{filter:VF(z.baseDataType)},{filter:"agSetColumnFilter"}];let U=this.getLocaleTextFunc();return Q=Q.map((Z)=>{let{filter:S,filterParams:X,filterValueGetter:Y}=Z;if(typeof S!=="string")return Z;let{filterParams:W,filterValueGetter:q}=bF(S,X,Y??D,z,B,J,U);return{...Z,filterParams:W,filterValueGetter:q}}),{filterParams:{...G,filters:Q}}}},O7=class extends b7{constructor(){super(...arguments);this.filterType="multi",this.filters=[],this.filterParams=[],this.validity=[]}init(G){this.params=G;let D=hB(G).map((B)=>{if(B.filterParams?.buttons){PF(292,{colId:G.column.getColId()});let Q={...B.filterParams};return delete Q.buttons,{...B,filterParams:Q}}return B});this.filterDefs=D,this.allState=G.state;let z=this.filterDefs.map((B,Q)=>this.createFilter(B,Q));return new tQ((B)=>{tQ.all(z).then((Q)=>{this.filters=Q,this.refreshGui("columnMenu").then(()=>{B()})})})}refresh(G){let{model:D,state:z,source:B}=G;if(B==="colDef")return!1;this.params=G;let Q=this.filterParams;if(z===this.allState)return!0;this.allState=z;let J=z.state;return this.filters.forEach((U,Z)=>{let S=dG(D,Z),X={state:J?.[Z],model:dG(z.model,Z)};jF(U,Q[Z],S,X,B)}),!0}getLastActiveFilterIndex(){return this.getHandler().getLastActiveFilterIndex?.()??null}getChildFilterInstance(G){return this.filters[G]??void 0}getNumChildFilters(){return this.filters.length}destroy(){for(let G of this.filters)this.destroyBean(G);this.filters.length=0,super.destroy()}getFilterWrappers(){return this.filters}getFilterFromWrapper(G){return G}getCompFromWrapper(G){return G}createFilter(G,D){let z=this.beans.userCompFactory,B=this.updateParams(G,this.params,D),Q=OF(z,G,B,"agTextColumnFilter");if(!Q)return tQ.resolve(null);return this.filterParams[D]=Q.params,Q.newAgStackInstance()}updateParams(G,D,z){let{doesRowPassOtherFilter:B,model:Q,onModelChange:J,state:U,onStateChange:Z,column:S,source:X,onAction:Y,onUiChange:W,getValue:q}=D,H=dG(Q,z),_=U?{model:dG(U.model,z),state:U.state?.[z]}:{model:H},k=()=>{let K=this.getHandler();this.filters.forEach((f,N)=>{if(z!==N)K.getHandler(N)?.onAnyFilterChanged?.(),f?.onAnyFilterChanged?.()})},w=this.beans.colFilter;return{...w.createBaseFilterParams(S),...G,doesRowPassOtherFilter:(K)=>B(K)&&this.getHandler().doesFilterPass({node:K,data:K.data,model:this.params.model,handlerParams:w.getHandlerParams(S)},z),model:H,state:_,onModelChange:(K,f)=>{let{filters:N,params:F}=this,E=EB(F.model,N.length,K,z);this.updateActiveList(z,K),J(E,f),k()},onStateChange:(K)=>this.onStateChange(Z,z,K),getHandler:()=>this.getHandler().getHandler(z),onAction:(K,f,N)=>{if(uF(D))return;let F=K==="apply"||K==="reset";if(F)this.updateActiveList(z,dG(this.params.state.model,z));if(Y(K,f,N),F)k()},onUiChange:W,source:X,getValue:IB(this.beans,S,G,q)}}updateActiveList(G,D){this.getHandler().updateActiveList?.(G,D)}getHandler(){return this.params.getHandler()}onStateChange(G,D,z){let{model:B,state:Q,valid:J}=z,U=this.validity;U[D]=J;let Z=this.allState,S=EB(Z.model,this.filters.length,B,D),X=U.every((q)=>q!==!1),Y=[...Z.state??[]];Y[D]=Q;let W={state:Y,model:S,valid:X};this.allState=W,G(W)}getModelAsString(G){return this.getHandler().getModelAsString?.(G)??""}},nF={tag:"div",cls:"ag-multi-floating-filter ag-floating-filter-input"},dF=class extends TF{constructor(){super(nF);this.floatingFilters=[],this.compDetailsList=[]}init(G){this.params=G;let{compDetailsList:D}=this.getCompDetailsList(G);return this.setParams(D)}setParams(G){let D=[];return G.forEach((z)=>{let B=z?.newAgStackInstance();if(B!=null)this.compDetailsList.push(z),D.push(B)}),gF.all(D).then((z)=>{z.forEach((B,Q)=>{this.floatingFilters.push(B);let J=B.getGui();if(this.appendChild(J),Q>0)jz(J,!1)})})}refresh(G){this.params=G;let{compDetailsList:D,floatingFilterParamsList:z}=this.getCompDetailsList(G);if(D.length===this.compDetailsList.length&&D.every((Q,J)=>!this.beans.colFilter?.areFilterCompsDifferent(this.compDetailsList[J],Q))){if(z.forEach((Q,J)=>{this.floatingFilters[J].refresh?.(Q)}),this.gos.get("enableFilterHandlers")){let Q=G;if(Q.model==null)this.floatingFilters.forEach((J,U)=>{jz(J.getGui(),U===0)});else{let J=Q.getHandler()?.getLastActiveFilterIndex?.();this.floatingFilters.forEach((U,Z)=>{let S=J==null?Z===0:Z===J;jz(U.getGui(),S)})}}}else yF(this.getGui()),this.destroyBeans(this.floatingFilters),this.floatingFilters=[],this.compDetailsList=[],this.setParams(D)}getCompDetailsList(G){let D=[],z=[],B=G.filterParams,Q=G.currentParentModel,J=hB(B);return J.forEach((U,Z)=>{let S={...G,parentFilterInstance:(Y)=>{this.parentMultiFilterInstance((W)=>{let q=W.getChildFilterInstance(Z);if(q==null)return;Y(q)})},currentParentModel:()=>Q()?.filterModels?.[Z]??null};if(this.gos.get("enableFilterHandlers")){let Y=S;Y.model=Y.model?.filterModels?.[Z]??null;let{onModelChange:W,getHandler:q}=Y;Y.onModelChange=(H,_)=>W(EB(this.params.model,J.length,H,Z),_),Y.getHandler=()=>{return q().getHandler(Z)}}iF(S.filterParams,U.filterParams);let X=this.getCompDetails(U,S);if(X)D.push(X),z.push(S)}),{compDetailsList:D,floatingFilterParamsList:z}}onParentModelChanged(G,D){if(D?.afterFloatingFilter)return;this.parentMultiFilterInstance((z)=>{if(G==null)this.floatingFilters.forEach((B,Q)=>{B.onParentModelChanged(null,D),jz(B.getGui(),Q===0)});else{let B=z.getLastActiveFilterIndex();this.floatingFilters.forEach((Q,J)=>{let U=G.filterModels.length>J?G.filterModels[J]:null;Q.onParentModelChanged(U,D);let Z=B==null?J===0:J===B;jz(Q.getGui(),Z)})}})}destroy(){this.destroyBeans(this.floatingFilters),this.floatingFilters.length=0,super.destroy()}getCompDetails(G,D){let{colFilter:z,frameworkOverrides:B,userCompFactory:Q}=this.beans,J=cF(B,G,()=>z.getDefaultFloatingFilter(this.params.column))??"agReadOnlyFloatingFilter";return hF(Q,G,D,J)}parentMultiFilterInstance(G){this.params.parentFilterInstance((D)=>{if(!(D instanceof v7||D instanceof O7))xF(120);G(D)})}},iB={moduleName:"MultiFilter",version:j,userComponents:{agMultiColumnFilter:{getComp:(G)=>G.gos.get("enableFilterHandlers")?{classImp:O7,params:{useForm:!0}}:v7},agMultiColumnFloatingFilter:dF},beans:[vF],dynamicBeans:{agMultiColumnFilterHandler:RF},dependsOn:[i,LF,TB]},sF=class extends mF{constructor(){super(...arguments);this.beanName="aggColNameSvc"}getHeaderName(G,D){if(this.gos.get("suppressAggFuncInHeader"))return D;let{valueColsSvc:z,colModel:B,rowGroupColsSvc:Q}=this.beans,J=G.getColDef().pivotValueColumn,U=tF(J),Z=null,S;if(U){let X=z?.columns??[],Y=this.gos.get("removePivotHeaderRowWhenSingleValueColumn")&&X.length===1,W=G.getColDef().pivotTotalColumnIds!==void 0;if(Y&&!W)return D;Z=J?J.getAggFunc():null,S=!0}else{let X=G.isValueActive(),Y=Q?.columns.length!==0,W=B.isPivotMode()||Y||this.gos.get("treeData");if(X&&W)Z=G.getAggFunc(),S=!0;else S=!1}if(S){let X=typeof Z==="string"?Z:"func";return`${this.getLocaleTextFunc()(X,X)}(${D})`}return D}},aF={sum:"Sum",first:"First",last:"Last",min:"Min",max:"Max",count:"Count",avg:"Average"},eF=class extends oF{constructor(){super(...arguments);this.beanName="aggFuncSvc",this.aggFuncsMap={},this.initialised=!1}postConstruct(){this.init()}init(){if(this.initialised)return;this.initialiseWithDefaultAggregations(),this.addAggFuncs(this.gos.get("aggFuncs"))}initialiseWithDefaultAggregations(){let G=this.aggFuncsMap;G.sum=GE,G.first=DE,G.last=zE,G.min=BE,G.max=QE,G.count=UE,G.avg=$E,this.initialised=!0}isAggFuncPossible(G,D){let B=this.getFuncNames(G).includes(D),Q=cZ(this.aggFuncsMap[D]);return B&&Q}getDefaultFuncLabel(G){return aF[G]??G}getDefaultAggFunc(G){let D=G.getColDef().defaultAggFunc;if(cZ(D)&&this.isAggFuncPossible(G,D))return D;if(this.isAggFuncPossible(G,"sum"))return"sum";let z=this.getFuncNames(G);return z?.length?z[0]:null}addAggFuncs(G){if(this.init(),!G)return;for(let D of Object.keys(G))if(G[D])this.aggFuncsMap[D]=G[D]}getAggFunc(G){return this.init(),this.aggFuncsMap[G]}getFuncNames(G){let D=G.getColDef().allowedAggFuncs;return D==null?Object.keys(this.aggFuncsMap).sort():D}clear(){this.aggFuncsMap={}}};function GE(G){let{values:D}=G,z=null;for(let B=0;B0?G.values[0]:null}function zE(G){return G.values.length>0?rF(G.values):null}function BE(G){let{values:D}=G,z=null;for(let B=0;BQ))z=Q}return z}function QE(G){let{values:D}=G,z=null;for(let B=0;B0)Q=z/(typeof z==="number"?B:BigInt(B));let J=G.rowNode?.aggData?.[G.column?.getColId()];if(J&&J.count===B&&J.value===Q)return J;let U=Object.create(ZE);return U.count=B,U.value=Q,U}var XE=class extends LE{constructor(){super(...arguments);this.beanName="aggChildrenSvc"}getAggregatedChildren(G,D,z){if(!G?.group)return[];if(G.rowPinned){if(G=G.pinnedSibling,!G)return[]}let B=this.gos,Q=u7(G,D,B);if(!z)return Q;let J=[];return j7(Q,D,B,J),J}},u7=(G,D,z)=>{let B=D?.colDef,Q=B?.pivotKeys;if(Q){if(G.leafGroup&&Q.length&&!B.pivotTotalColumnIds)return S7(G.childrenMapped,Q);return G.childrenAfterFilter??G.childrenAfterGroup??[]}if(SE(z)||z.get("suppressAggFilteredOnly"))return G.childrenAfterGroup??[];return G.childrenAfterFilter??G.childrenAfterGroup??[]},j7=(G,D,z,B)=>{for(let Q=0,J=G.length;Q{JZ(I,null,F)})}return}this.hadAgg=!0;let{colModel:J,aggFuncSvc:U}=z,Z=D.get("alwaysAggregateAtRootLevel")||!!_E(D)||J.isPivotMode(),S=!kE(D)&&!D.get("suppressAggFilteredOnly"),X=z.valueSvc,Y=z.gridApi,W=z.gridOptions.context,q=Q??[],H=q.length,_=G?.kind==="cells"?G:void 0,k,w=Array(H);for(let F=0;F=0)k=_;w[F]={column:E,colId:E.colId,colDef:E.colDef,aggFunc:P7(E.getAggFunc(),U,E),colSlot:I}}let K=FE(J,z.pivotResultCols,U),f=H>0?Array(H):null,N=z.rowModel;hZ(N.rootNode,N.hierarchical,G,(F)=>{if(F.level===-1&&!Z){aD(F,null,J);return}let E;if(B)E=B({nodes:F.childrenAfterFilter});else if(!f)E=null;else if(K)E=NE(F,K,X,Y,W);else E=fE(F,w,H,f,k,S,X,Y,W);JZ(F,E,J)})}},fE=(G,D,z,B,Q,J,U,Z,S)=>{let X=(J?G.childrenAfterFilter:G.childrenAfterGroup)??[],Y=X.length,W=G.data,q=Object.create(null),H=Q?Q.getSlot(G):-1,_=H>=0?G.aggData:void 0,k=0;for(let w=0;w=0&&!Q.hasCellBySlot(H,K.colSlot)){if(B[w]=null,_)q[K.colId]=_[K.colId]}else B[w]=Array(Y),++k}if(k===0)return q;for(let w=0;w{let J=D.length,U=G.leafGroup,Z=G.data,S=G.childrenMapped,X=G.childrenAfterFilter??[],Y=Object.create(null),W,q;for(let H=0;H{if(typeof G==="function")return G;if(G==null)return null;let B=D.getAggFunc(G);if(typeof B!=="function")return wE(109,{inputValue:G.toString(),allSuggestions:D.getFuncNames(z)}),null;return B},FE=(G,D,z)=>{if(!G.isPivotActive())return null;let B=D?.getAggregationOrderedList();if(!B||B.length===0)return null;let Q=B.length,J=Array(Q),U=0;for(let Z=0;Z{let D=G.childrenAfterAggFilter,z=0;if(D){let Q=D.length;z=Q;for(let J=0;J=0?null:z;G.setAllChildrenCount(B),G.pinnedSibling?.setAllChildrenCount(B)},this.setAllChildrenCountGridGrouping=(G)=>{let D=G.childrenAfterAggFilter,z=0;for(let B=0,Q=D.length;B!_.node.group,X=(_)=>_.node.leafGroup,Y=ME(this.gos)||(J?X:S),W=Z?this.setAllChildrenCountTreeData:this.setAllChildrenCountGridGrouping,q=(_,k=!1)=>{if(_.childrenAfterFilter){if(_.childrenAfterAggFilter=_.childrenAfterFilter,k){let w=_.childrenAfterAggFilter;for(let K=0,f=w.length;K{if(_.childrenAfterAggFilter=_.childrenAfterFilter?.filter((k)=>{if(Y({node:k})){if(Q.doesRowPassAggregateFilters({rowNode:k}))return q(k,!0),!0}return k.childrenAfterAggFilter?.length})||null,_.hasChildren())W(_);else _.setAllChildrenCount(null),_.pinnedSibling?.setAllChildrenCount(null);if(_.sibling)_.sibling.childrenAfterAggFilter=_.childrenAfterAggFilter};IE(D.rootNode,D.hierarchical,G,U?H:q)}};function pG(G,D){if(G.sibling)return;let z=OE(G,D);z.footer=!0,z.setRowTop(null),z.setRowIndex(null),z.oldRowTop=null,z.id="rowGroupFooter_"+G.id,z.sibling=G,G.sibling=z}function EJ(G){let D=G.sibling;if(!D)return;D._destroy(!1),G.sibling=void 0,D.sibling=void 0}var uE=class extends RE{constructor(){super(...arguments);this.beanName="footerSvc"}addTotalRows(G,D,z,B,Q,J){let U=G;if(Q){let X=B&&VE(this.gos);if(jE(J,X))pG(D,this.beans),z(D.sibling,U++);return U}let Z=bE(this.gos);if((B&&Z({node:D}))===J)pG(D,this.beans),z(D.sibling,U++);return U}getTopDisplayIndex(G,D,z,B){let Q=D;if(G[0].footer){if(D===0)return 0;Q-=1}let J=G[G.length-1],U=Q>=z.length;if(J.footer&&U)return J.rowIndex;return B(Q)}doesCellShowTotalPrefix(G,D){if(!G.footer||!D?.getColDef().showRowGroup)return!1;if(this.gos.get("treeData"))return!0;if(G.level===-1)return this.beans.showRowGroupCols?.columns[0]===D;return!!G.rowGroupColumn&&D?.isRowGroupDisplayed(G.rowGroupColumn.getId())}applyTotalPrefix(G,D,z,B){let Q=B.getColDef().cellRendererParams?.totalValueGetter;if(Q){let J=CE(this.gos,{column:B,node:z,value:G,formattedValue:D});if(typeof Q==="function")return Q(J);if(typeof Q==="string")return this.beans.expressionSvc?.evaluate(Q,J);vE(179)}if(z.level===-1)return this.getLocaleTextFunc()("footerTotal","Total")+" ";return this.getTotalValue(D??G)??""}getTotalValue(G){return this.getLocaleTextFunc()("footerTotal","Total")+" "+(G??"")}};function jE(G,D){switch(D){case"top":case"pinnedTop":return G==="top";case"bottom":case"pinnedBottom":return G==="bottom";default:return!1}}var g7=class extends PE{constructor(){super(...arguments);this.beanName="valueColsSvc",this.eventName="columnValueChanged",this.columnProcessors={set:(G,D,z)=>this.setValueActive(D,G,z),add:(G,D,z)=>this.setValueActive(!0,G,z),remove:(G,D,z)=>this.setValueActive(!1,G,z)},this.columnExtractors={setFlagFunc:(G,D,z)=>this.setColValueActive(G,D,z),getIndexFunc:()=>{return},getInitialIndexFunc:()=>{return},getValueFunc:(G)=>{let D=G.aggFunc;if(D===null||D==="")return null;if(D===void 0)return;return!!D},getInitialValueFunc:(G)=>{return G.initialAggFunc!=null&&G.initialAggFunc!=""}},this.modifyColumnsNoEventsCallbacks={addCol:(G)=>this.columns.push(G),removeCol:(G)=>TE(this.columns,G)}}extractCols(G,D){this.columns=super.extractCols(G,D);for(let z of this.columns){let B=z.getColDef();if(B.aggFunc!=null&&B.aggFunc!="")this.setColAggFunc(z,B.aggFunc);else if(!z.getAggFunc())this.setColAggFunc(z,B.initialAggFunc)}return this.columns}setColumnAggFunc(G,D,z){if(!G)return;let B=this.colModel.getColDefCol(G);if(!B)return;this.setColAggFunc(B,D),this.dispatchColumnChangedEvent(this.eventSvc,this.eventName,[B],z)}syncColumnWithState(G,D,z){let B=z("aggFunc").value1;if(B!==void 0)if(typeof B==="string"){if(this.setColAggFunc(G,B),!G.isValueActive())this.setColValueActive(G,!0,D),this.modifyColumnsNoEventsCallbacks.addCol(G)}else{if(gE(B))yE(33);if(G.isValueActive())this.setColValueActive(G,!1,D),this.modifyColumnsNoEventsCallbacks.removeCol(G)}}setValueActive(G,D,z){if(G===D.isValueActive())return;if(this.setColValueActive(D,G,z),G&&!D.getAggFunc()&&this.aggFuncSvc){let B=this.aggFuncSvc.getDefaultAggFunc(D);this.setColAggFunc(D,B)}}setColAggFunc(G,D){G.aggFunc=D,G.dispatchStateUpdatedEvent("aggFunc")}setColValueActive(G,D,z){if(G.aggregationActive!==D)G.aggregationActive=D,G.dispatchColEvent("columnValueChanged",z)}},IJ={moduleName:"SharedAggregation",version:j,beans:[eF,sF,uE,g7],apiFunctions:{addAggFuncs:YE,clearAggFuncs:WE,setColumnAggFunc:qE},dependsOn:[i]},MJ={moduleName:"Aggregation",version:j,beans:[KE,AE,XE],rowModels:["clientSide"],dependsOn:[IJ]},T7=class extends xE{constructor(){super(...arguments);this.beanName="pivotColsSvc",this.eventName="columnPivotChanged",this.columnProcessors={set:(G,D,z)=>this.setColPivotActive(G,D,z),add:(G,D,z)=>this.setColPivotActive(G,!0,z),remove:(G,D,z)=>this.setColPivotActive(G,!1,z)},this.columnOrdering={enableProp:"pivot",initialEnableProp:"initialPivot",indexProp:"pivotIndex",initialIndexProp:"initialPivotIndex"},this.columnExtractors={setFlagFunc:(G,D,z)=>this.setColPivotActive(G,D,z),getIndexFunc:(G)=>G.pivotIndex,getInitialIndexFunc:(G)=>G.initialPivotIndex,getValueFunc:(G)=>G.pivot,getInitialValueFunc:(G)=>G.initialPivot},this.modifyColumnsNoEventsCallbacks={addCol:(G)=>{if(!this.columns.includes(G))this.columns.push(G)},removeCol:(G)=>cE(this.columns,G)}}syncColumnWithState(G,D,z,B){let{value1:Q,value2:J}=z("pivot","pivotIndex");if(Q!==void 0||J!==void 0){if(typeof J==="number"||Q){if(!G.isPivotActive())this.setColPivotActive(G,!0,D),this.modifyColumnsNoEventsCallbacks.addCol(G);if(B&&typeof J==="number")B[G.getId()]=J}else if(G.isPivotActive())this.setColPivotActive(G,!1,D),this.modifyColumnsNoEventsCallbacks.removeCol(G)}}setColPivotActive(G,D,z){if(G.pivotActive!==D){if(G.pivotActive=D,D)this.beans.groupHierarchyColSvc?.insertVirtualColumnsForCol(this.columns,G)?.forEach((Q)=>this.setColPivotActive(Q,D,z));G.dispatchColEvent("columnPivotChanged",z)}G.dispatchStateUpdatedEvent("pivot")}},dE=class extends hE{constructor(){super(...arguments);this.beanName="rowGroupColsSvc",this.eventName="columnRowGroupChanged",this.columnProcessors={set:(G,D,z)=>this.setActive(D,G,z),add:(G,D,z)=>this.setActive(!0,G,z),remove:(G,D,z)=>this.setActive(!1,G,z)},this.columnOrdering={enableProp:"rowGroup",initialEnableProp:"initialRowGroup",indexProp:"rowGroupIndex",initialIndexProp:"initialRowGroupIndex"},this.columnExtractors={setFlagFunc:(G,D,z)=>this.setColRowGroupActive(G,D,z),getIndexFunc:(G)=>G.rowGroupIndex,getInitialIndexFunc:(G)=>G.initialRowGroupIndex,getValueFunc:(G)=>G.rowGroup,getInitialValueFunc:(G)=>G.initialRowGroup},this.modifyColumnsNoEventsCallbacks={addCol:(G)=>{if(!this.columns.includes(G))this.columns.push(G)},removeCol:(G)=>iE(this.columns,G)}}moveColumn(G,D,z){if(this.columns.length===0)return;let B=this.columns[G],Q=this.columns.slice(G,D);this.columns.splice(G,1),this.columns.splice(D,0,B),this.updateIndexMap(),this.eventSvc.dispatchEvent({type:this.eventName,columns:Q,column:Q.length===1?Q[0]:null,source:z})}syncColumnWithState(G,D,z,B){let{value1:Q,value2:J}=z("rowGroup","rowGroupIndex");if(Q!==void 0||J!==void 0){if(typeof J==="number"||Q){if(!G.isRowGroupActive())this.setColRowGroupActive(G,!0,D),this.modifyColumnsNoEventsCallbacks.addCol(G);if(B&&typeof J==="number")B[G.getId()]=J}else if(G.isRowGroupActive())this.setColRowGroupActive(G,!1,D),this.modifyColumnsNoEventsCallbacks.removeCol(G)}}setActive(G,D,z){if(G===D.isRowGroupActive())return;this.setColRowGroupActive(D,G,z);let B=this.beans.groupHierarchyColSvc?.getColumn(D);if(nE(this.gos,G)&&!B)this.colModel.setColsVisible([D],!G,z)}setColRowGroupActive(G,D,z){if(G.rowGroupActive!==D){if(G.rowGroupActive=D,D)this.beans.groupHierarchyColSvc?.insertVirtualColumnsForCol(this.columns,G)?.forEach((Q)=>this.setColRowGroupActive(Q,D,z));G.dispatchColEvent("columnRowGroupChanged",z)}G.dispatchStateUpdatedEvent("rowGroup")}},ZI=class extends pE{constructor(){super(...arguments);this.beanName="autoColSvc"}postConstruct(){this.addManagedPropertyListener("autoGroupColumnDef",this.updateColumns.bind(this)),this.setupGroupHideColumnsUntilExpanded()}setupGroupHideColumnsUntilExpanded(){let G=()=>this.updateGroupColumnVisibility();this.addManagedEventListeners({modelUpdated:G}),this.addManagedPropertyListeners(["groupHideColumnsUntilExpanded","groupDisplayType","groupHideOpenParents"],G)}addColumns(G){let{columns:D}=this;if(D==null)return;G.list=D.list.concat(G.list),G.tree=D.tree.concat(G.tree),QI(G)}createColumns(G,D,z){let B=this.beans,{colModel:Q,gos:J,rowGroupColsSvc:U,colGroupSvc:Z}=B,S=Q.isPivotMode(),X=zI(J,S),Y=S?J.get("pivotSuppressAutoColumn"):this.isSuppressAutoCol(),W=U?.columns,H=!(W&&W.length>0||J.get("treeData"))||Y||X,_=()=>{if(this.columns)nZ(B,this.columns.tree),this.columns=null};if(H){_();return}let k=this.generateAutoCols(W),w=sE(k,this.columns?.list||null),K=G.treeDepth,N=(this.columns?this.columns.treeDepth:-1)==K;if(w&&N){let V=new Map(k.map((A)=>[A.getId(),A]));for(let A of this.columns?.list??[]){let R=V.get(A.getId());if(R)A.setColDef(R.getColDef(),null,z)}return}_();let F=Z?.findDepth(G.tree)??0,E=Z?.balanceTreeForAutoCols(k,F)??[];this.columns={list:k,tree:E,treeDepth:F,map:{}},D((V)=>{if(!V)return null;let A=V.filter((R)=>!UI(R));return[...k,...A]})}updateColumns(G){let D=rE(G.source);this.columns?.list.forEach((z,B)=>this.updateOneAutoCol(z,B,D))}getColumn(G){return this.columns?.list.find((D)=>oE(D,G))??null}getColumns(){return this.columns?.list??null}generateAutoCols(G=[]){let D=[],{gos:z}=this,B=z.get("treeData"),Q=DI(z);if(B&&Q)JI(182),Q=!1;if(Q)G.forEach((J,U)=>{D.push(this.createOneAutoCol(J,U))});else D.push(this.createOneAutoCol());return D}isSuppressAutoCol(){let G=this.gos;if(G.get("groupDisplayType")==="custom")return!0;return G.get("treeDataDisplayType")==="custom"}createOneAutoCol(G,D){let z;if(G)z=`${iZ}-${G.getId()}`;else z=iZ;let B=this.createAutoColDef(z,G,D);B.colId=z;let Q=new lE(B,null,z,!0);return this.createBean(Q),Q}updateOneAutoCol(G,D,z){let B=G.getColDef(),Q=typeof B.showRowGroup=="string"?B.showRowGroup:void 0,J=this.beans,U=Q!=null?J.colModel.getColDefCol(Q):void 0,Z=G.getId(),S=this.createAutoColDef(Z,U??void 0,D);G.setColDef(S,null,z),tE(J,{state:[aE(S,Z)]},z)}createAutoColDef(G,D,z){let B=this.createBaseColDef(D),Q=this.gos.get("autoGroupColumnDef");if(BI(B,Q),B=mE(this.beans,B,G,!0),Q?.groupRowEditable==null)B.groupRowEditable=void 0;if(Q?.groupRowValueSetter==null)B.groupRowValueSetter=void 0;if(!this.gos.get("treeData")){if(sQ(B.field)&&sQ(B.valueGetter)&&sQ(B.filterValueGetter)&&B.filter!=="agGroupColumnFilter")B.filter=!1}if(z&&z>0)B.headerCheckboxSelection=!1;let J=eE(this.gos),U=B.valueGetter||B.field!=null;if(J&&!U)B.sortIndex=void 0,B.initialSort=void 0;return B}createBaseColDef(G){let D=this.gos.get("autoGroupColumnDef"),B={headerName:this.getLocaleTextFunc()("group","Group"),showRowGroup:G?.getColId()??!0};if(!(D&&(D.cellRenderer||D.cellRendererSelector)))B.cellRenderer="agGroupCellRenderer";if(G)B.headerName=this.beans.colNames.getDisplayNameForColumn(G,"header")??void 0,B.headerValueGetter=G.colDef.headerValueGetter;return B}getDeepestExpandedLevel(G,D){let z=-1;if(!G)return z;for(let B of G){if(!B.group||!B.expanded)continue;if(B.level>z)z=B.level;if(z>=D)return z;let Q=this.getDeepestExpandedLevel(B.childrenAfterGroup,D);if(Q>z)z=Q;if(z>=D)return z}return z}updateGroupColumnVisibility(){let G=this.columns?.list;if(!G||G.length===0)return;let{gos:D,visibleCols:z,rowModel:B}=this.beans,Q=GI(D),J=!1,U=(S,X)=>{if(X!==S.isVisible())S.setVisible(X,"api"),J=!0},Z=()=>{for(let S of G)U(S,!0)};if(!Q)Z();else if(G.length>1){let S=G.length-2,X=B?.rootNode?.childrenAfterGroup,Y=this.getDeepestExpandedLevel(X,S);if(Y>=S)Z();else for(let W=0;W=W)}if(J)z.refresh("api")}destroy(){nZ(this.beans,this.columns?.tree),super.destroy()}},t1=null,dZ=(G)=>{let D=t1,z=new Uint32Array(1<<32-Math.clz32(G|63));if(D)z.set(D);return t1=z,z},LI=(G,D,z,B)=>{let Q=D-B,J=z-1;if(Q===1){let X=0;while(G[X].level===J)++X;if(X0){let Y=G[X];G.copyWithin(1,0,X),G[0]=Y}return G}let U=Array(Q),Z=0,S=0;for(let X=0;X{let z=G[0].level+1,B=z,Q=0,J=z,U=t1;if(!U||z>=U.length)U=dZ(z);++U[z];for(let W=1;Wz){if(z=q,z>=U.length)U=dZ(z)}else if(q=0)return U.fill(0,B,z+1),G;let Z=U[B],S=U[z];if(Z+S===D)return U[B]=0,U[z]=0,LI(G,D,z,S);let X=0;for(let W=z;W>=B;--W){let q=U[W];U[W]=X,X+=q}let Y=Array(D);for(let W=0;W{if(D===2){if(G[0].level16)return SI(G,D);for(let z=1;z=0&&G[J].level=0)z.set(D,-1),D=D.parent;return}let B=this.rows;do z.set(D,-1),B.push(D),D=D.parent;while(D!=null&&!z.has(D));this.unsorted=!0}addCell(G,D){if(D==null){this.addRow(G);return}if(G==null)return;let z=this.slots,B=this.bits,Q=z.get(D)??this.ensureCol(D),J=z.get(G);if(J===void 0)J=this.ensureRow(G);else if(J<0)return;let U=Q<32?B:this.extraBits[(Q>>>5)-1],Z=1<<(Q&31),S=U[J];if((S&Z)!==0)return;U[J]=S|Z;let X=G.parent;while(X!=null){let Y=z.get(X);if(Y<0)break;let W=U[Y];if((W&Z)!==0)break;U[Y]=W|Z,X=X.parent}}hasRow(G){return this.slots.has(G)}getSortedRows(){if(!this.unsorted)return this.rows;this.unsorted=!1;let G=y7(this.rows);return this.rows=G,G}getSlot(G){return this.slots.get(G)??-1}hasCellBySlot(G,D){if(G<0)return!0;if(D<32)return D>=0&&(this.bits[G]&1<>>5)-1][G]&1<<(D&31))!==0}ensureRow(G){let D=this.slots,z=this.rows,B=this.bits,Q=this.extraBits,J=B.push(0),U=J-1;if(Q!==null)for(let S=0,X=Q.length;S=32){let z=(D>>>5)-1,B=this.extraBits;if(B===null)B=[],this.extraBits=B;if(z>=B.length)B.push(Array(this.bits.length).fill(0))}return D}},lZ=class{constructor(){this.kind="rows",this.rows=[],this.unsorted=!1,this.rowSet=new Set}addRow(G){let D=G;if(D==null)return;let z=this.rowSet;if(z.has(D))return;let B=this.rows;do z.add(D),B.push(D),D=D.parent;while(D!=null&&!z.has(D));this.unsorted=!0}addCell(G,D){this.addRow(G)}hasRow(G){return this.rowSet.has(G)}getSortedRows(){if(!this.unsorted)return this.rows;this.unsorted=!1;let G=y7(this.rows);return this.rows=G,G}},YI=class extends $I{constructor(){super(...arguments);this.beanName="changedPathFactory"}newPath(G){return G?new XI:new lZ}ensureRowsPath(G){let D=G.changedPath;if(!D&&G.changedRowNodes&&!G.newData){let z=this.beans.rowModel;if(z.hierarchical)D=new lZ,G.changedPath=D,D.addRow(z.rootNode)}return D}},x7=class extends qI{addExpandedCss(G,D){if(D.isExpandable())G.push("ag-row-group"),G.push(D.expanded?"ag-row-group-expanded":"ag-row-group-contracted")}getRowExpandedListeners(G){let{rowNode:D}=G,z=this.updateExpandedCss.bind(this,G,D);return{expandedChanged:z,hasChildrenChanged:z}}setExpanded(G,D,z,B){if(G.expanded===D)return;G._expanded=D,G.dispatchRowEvent("expandedChanged");let Q={..._I(G,this.gos,"rowGroupOpened"),expanded:D,event:z||null};this.dispatchExpandedEvent(Q,B)}defaultExpanded(G){let z=this.beans.gos,B=G.level??0,Q=G.group&&z.get("isGroupOpenByDefault");if(!Q){let U=z.get("groupDefaultExpanded");return U===-1||B{let J=Q.rowComp;J.toggleCss("ag-row-group",z),J.toggleCss("ag-row-group-expanded",z&&B),J.toggleCss("ag-row-group-contracted",z&&!B),kI(Q.element,z&&B)})}dispatchStateUpdatedEvent(){this.eventSvc.dispatchEvent({type:"rowExpansionStateChanged"})}},wI=class extends x7{constructor(){super(...arguments);this.beanName="expansionSvc",this.events=null,this.dispatchExpandedDebounced=null}destroy(){super.destroy(),this.events=null,this.dispatchExpandedDebounced=null}setExpansionState(G){let D=new Set(G.expandedRowGroupIds);this.beans.rowModel.forEachNode((z)=>{let B=z.id;if(!B)return;z._expanded=D.has(B)}),this.onGroupExpandedOrCollapsed()}getInternalExpansionState(G=!1){let D=[],z=[];return this.beans.rowModel.forEachNode((B)=>{let Q=B.id;if(!Q)return;if(B.expanded)D.push(Q);else if(G&&B.isExpandable())z.push(Q)}),{expandedRowGroupIds:D,collapsedRowGroupIds:z}}getExpansionState(){return this.getInternalExpansionState()}isExpanded(G){if(G.footer)return!!G._expanded;if(!(G.group||G.master)||G.leafGroup&&this.beans.colModel.isPivotMode())return!1;let D=G._expanded;if(D===null)D=this.defaultExpanded(G)??!1,G._expanded=D;return!!D}resetExpansion(){let{rowModel:G}=this.beans;G.forEachNode((D)=>{if(!D.group&&!D.master)return;D._expanded=null}),this.onGroupExpandedOrCollapsed()}expandAll(G){let{gos:D,rowModel:z,colModel:B,eventSvc:Q}=this.beans,J=D.get("treeData"),U=B.isPivotActive(),Z=(X)=>{if(!X)return;for(let Y of X){let W=()=>{Y._expanded=G,Z(Y.childrenAfterGroup)};if(Y.master){W();continue}if(J){if(WI(Y.childrenAfterGroup))W();continue}if(U){if(!Y.leafGroup)W();continue}if(Y.group)W()}},S=z.rootNode;if(S)Z(S.childrenAfterGroup);this.onGroupExpandedOrCollapsed(),Q.dispatchEvent({type:"expandOrCollapseAll",source:G?"expandAll":"collapseAll"})}onGroupExpandedOrCollapsed(){this.dispatchStateUpdatedEvent(),this.beans.rowModel.reMapRows()}setDetailsExpansionState(G){let D=this.getInternalExpansionState(!0),z=D.collapsedRowGroupIds.length===0;if(D.expandedRowGroupIds.length===0===z)return;return z?G.expandAll():G.collapseAll()}dispatchExpandedEvent(G,D){if((this.events??(this.events=[])).push(G),D){this.dispatchExpandedEvents();return}let z=this.dispatchExpandedDebounced;if(!z){if(!this.isAlive())return;z=this.debounce(()=>this.dispatchExpandedEvents()),this.dispatchExpandedDebounced=z}z()}dispatchExpandedEvents(){let{eventSvc:G,rowRenderer:D}=this.beans,z=this.events,B=z?.length;if(!B)return;this.events=null;let Q=Array(B);for(let J=0;Jwindow.setTimeout(G,0);let z=!1;return()=>{if(!D.active){window.setTimeout(G,0);return}if(z)return;z=!0,D.addDestroyTask(()=>{z=!1,G()})}}};function c7(G){let D=G.get("groupHideParentOfSingleChild");if(!D){if(D=G.get("groupRemoveSingleChildren"),!D&&G.get("groupRemoveLowestSingleChildren"))D="leafGroupsOnly"}return{groupHideParentOfSingleChild:D,isGroupMultiAutoColumn:FI(G),hideOpenParents:G.get("groupHideOpenParents"),grandTotalRow:fI(G),groupTotalRow:NI(G)}}function h7(G,D,z){return G.groupHideParentOfSingleChild===!0&&z&&D.childrenAfterGroup.length===1}function i7(G,D,z){return G.groupHideParentOfSingleChild==="leafGroupsOnly"&&z&&D.leafGroup&&D.childrenAfterGroup.length===1}function n7(G,D,z,B,Q,J){if(B&&!z)return!1;if(Q||J)return!1;if(!G.hideOpenParents)return!0;if(D.master||D.level===-1)return!0;if(!(B&&D.leafGroup)&&D.expanded)return!1;return!0}var EI=class extends KI{constructor(){super(...arguments);this.beanName="flattenStage",this.step="map",this.refreshProps=["groupHideParentOfSingleChild","groupRemoveSingleChildren","groupRemoveLowestSingleChildren","groupTotalRow","masterDetail"]}execute(){let{beans:G,gos:D}=this,z=[],B=G.rowModel.rootNode;if(!B)return z;let Q=G.colModel.isPivotMode(),J=Q&&B.leafGroup&&B.aggData,U=J?[B]:B.childrenAfterSort,Z=c7(D);this.recursivelyAddToRowsToDisplay(Z,U,z,Q,0);let S=z.length>0,X=Z.grandTotalRow;if(!J&&S&&X)if(pG(B,G),X==="pinnedBottom"||X==="pinnedTop")this.beans.pinnedRowModel?.setGrandTotalPinned(X==="pinnedBottom"?"bottom":"top");else{let W=X==="top";this.addRowNodeToRowsToDisplay(Z,B.sibling,z,0,W)}return z}recursivelyAddToRowsToDisplay(G,D,z,B,Q){if(!D?.length)return;let J=this.beans.masterDetailSvc;for(let U=0;Uthis.onCsrmCellChange(G),batchEditingStopped:()=>this.flushGroupEdits()})}destroy(){this.stopDragging(!0),super.destroy()}isGroupingDrop(G){if(!G.rowDragManaged||!G.sameGrid)return!1;if(!this.gos.get("refreshAfterGroupEdit"))return!1;return!!this.beans.rowGroupColsSvc?.columns?.length&&!this.beans.colModel.isPivotMode()}initDraggingGroups(G){let D=new Map,z=(B)=>{let Q=B.childrenAfterGroup;if(Q){if(D.has(B))return;let J=Q.slice();D.set(B,J);for(let U of J)z(U)}};for(let B of G.rows)if(B.group)z(B);this.draggingGroups=D}canSetParent(G){if(!G.sameGrid)return!1;if(this.beans.groupStage?.treeData)return!0;if(G.rowDragManaged&&!this.gos.get("refreshAfterGroupEdit"))return!1;return!!this.beans.rowGroupColsSvc?.columns?.length}canDropRow(G,D){if(this.beans.groupStage?.treeData)return!vI(G,D.newParent);let{position:z,target:B,newParent:Q,rootNode:J}=D,U=G.parent;if(G.group&&(mZ(G,B)||mZ(G,Q)))return!1;if(z==="inside")return!0;if(Q&&Q!==U)return Q!==J||U===J;let Z=Q??B?.parent??J;if(Z!==U)return!1;let S=G.group?G.level:U.level??-1,X=-1;if(B)X=B.group?B.level:B.parent?.level??-1;else if(Z)X=Z.level;if(S>=0&&X>=0&&X!==S)return!1;return!0}fixRowsDrop(G,D,z,B){let Q=!!this.beans.groupStage?.treeData;if(G.treeData=Q,!(!!this.beans.rowGroupColsSvc?.columns?.length||this.gos.get("pivotMode"))&&!Q)return;if(!this.draggingGroups&&this.isGroupingDrop(G)&&!G.suppressMoveWhenRowDragging)this.initDraggingGroups(G);let U=G.target,Z=null,S=!1,X=G.rootNode,Y=this.beans.rowModel,W=this.canStartGroup(U,Q);this.updateDropTarget(G,z,W);let q=this.beans.pageBounds?.getLastRow?.()??Y.getRowCount()-1;if(D){if(!U||B>=0.5&&U.rowIndex===q)Z=X;else if(G.moved&&U&&this.dropGroupThrottled&&this.shouldDropTargetBeParent(G))Z=U;if(!Z)Z=U?.parent??X}if(!z&&U&&W&&!(U.group&&U.expanded))this.startDropGroupDelay(U);if(Z){if(U&&Z===U&&Z!==X){let H=Z.expanded?VI(Y,1,U):null;if(H?.parent===Z)U=H,B=-0.5;else S=!0}if(U&&!S){let H=U;while(H&&H!==X&&H!==Z)U=H,H=H.parent}}G.target=U,G.newParent=Z,G.yDelta=B,G.inside=S}clearNewSameParent(G,D){let z=G.newParent;if(z&&(!D||OI(G.rows,z)))G.newParent=null}updateDropTarget(G,D,z){let B=z?G.target:null;if(this.dropGroupTarget&&this.dropGroupTarget!==B)this.resetDragGroup();if(!B?.childrenAfterSort?.length)return;if(D&&this.dropGroupThrottled&&!B.expanded&&B.isExpandable?.())B.setExpanded(!0,void 0,!0);if(this.canDropInTarget(B,G))this.dropGroupThrottled=!0,this.dropGroupTarget=B}canDropInTarget(G,D){if(G.expanded)return!0;if(!G.group)return!1;if(D.pointerPos==="inside")return!0;if(D.treeData)return!1;let z=D.rows,B=G.level;for(let Q=0,J=z.length;Q{this.dropGroupTimer=null,this.dropGroupThrottled=!0,this.beans.dragAndDrop?.nudge()},D)}resetDragGroup(){if(this.dropGroupTimer!==null)window.clearTimeout(this.dropGroupTimer),this.dropGroupTimer=null;this.dropGroupTarget=null,this.dropGroupThrottled=!1}stopDragging(G){if(G)this.draggingGroups=null;this.resetDragGroup()}shouldDropTargetBeParent({target:G,rows:D,pointerPos:z,treeData:B}){if(!G||z==="none")return!1;if(z==="inside")return!0;if(!B&&G.group&&!G.expanded)return!0;if(z==="above")return!1;let Q=this.beans.rowModel,U=G.rowIndex+1,Z;do Z=Q.getRow(U++);while(Z?.footer);let S=this.draggingGroups?.get(G)??G.childrenAfterGroup;if(Z&&Z.parent===G&&S?.length){let X=new Set(D);for(let Y=0,W=S.length;Y{if(X.has(f))return;if(X.add(f),q??(q=this.newGroupValues(J)),this.setRowGroup(f,q))W.add(f)},_=(f)=>{let N=this.draggingGroups?.get(f)??f.childrenAfterGroup,F=N?.length;if(F)for(let E=0;E=0)H(I);else _(I)}};for(let f of G.rows)if(f.group)_(f);else{let N=f.sourceRowIndex>=0&&!f.destroyed?f:this.csrmFirstLeaf(f);if(N)H(N)}let k=z==="inside"?"above":z,w=z==="inside"?this.findFirstLeafForParent(J,X)??B:B,K=!1;if(X.size&&k!=="none")K=AI(Q._leafs,X,w,k==="above");if(!W.size&&!K)return!1;Y.reordered=K;for(let f of X)Y.updates.add(f);if(this.csrmRefresh(Y),S)S.focusCell();else U.clearFocusedCell();return!0}canStartGroup(G,D){if(!G||G.level<0||G.footer||G.detail)return!1;if(G.group)return!0;return D}flushGroupEdits(){let G=this.pendingEditRefresh;if(G)this.pendingEditRefresh=null,this.csrmRefresh(G)}csrmRefresh(G){let D=this.beans.rowModel;if(!D.rootNode)return;D.refreshModel({step:"group",keepRenderedRows:!0,animate:!this.gos.get("suppressAnimationFrame"),changedRowNodes:G})}newGroupValues(G){let D=this.beans.rowGroupColsSvc?.columns??[],z=Array(D.length),B=-1,Q=G;while(Q&&Q.level>=0){let J=D[Q.level];if(J){let U=J.getColId(),Z=Q.level;if(z[Z]=Q.groupData?.[U]??Q.key??void 0,Z>B)B=Z}Q=Q.parent}return{values:z,columns:D,maxLevel:B}}setRowGroup(G,{values:D,columns:z,maxLevel:B}){if(B<0)return!1;let{valueSvc:Q,changeDetectionSvc:J}=this.beans,U=!1;J?.beginDeferred();try{for(let Z=0;ZB)continue;let X=D[Z],Y=Q.getValue(S,G,"data");if(Y===X||Y==null&&X==null)continue;let W=X,q=Q.parseValue(S,G,X,Y);if(q!==void 0)W=q;if(G.setDataValue(S,W,"rowDrag"))U=!0}}finally{J?.endDeferred()}return U}onCsrmCellChange(G){let{column:D,node:z,source:B}=G;if(!this.gos.get("refreshAfterGroupEdit"))return;if(B==="rowDrag")return;if(!D?.isRowGroupActive())return;if(z.group||!z.data)return;if(this.beans.editSvc?.isBatchEditing()){let J=this.pendingEditRefresh;if(!J)J=pZ(),this.pendingEditRefresh=J;J.updates.add(z)}else{let J=pZ();J.updates.add(z),this.csrmRefresh(J)}}csrmFirstLeaf(G){if(!G)return null;let D=this.draggingGroups,z=D?.get(G)??G.childrenAfterGroup;while(z?.length){let B=z[0];if(B.sourceRowIndex>=0){if(!B.destroyed)return B;return this.firstAliveChildLeaf(B)}z=D?.get(B)??B.childrenAfterGroup}return MI(G)}firstAliveChildLeaf(G){let D=this.draggingGroups?.get(G)??G.childrenAfterGroup;if(D){for(let z of D)if(z.sourceRowIndex>=0&&!z.destroyed)return z}return null}findFirstLeafForParent(G,D){if(!G)return null;let z=this.draggingGroups?.get(G)??G?.childrenAfterGroup;if(!z)return null;for(let B=0,Q=z.length;B=0&&!D.has(J))return J;let U=this.findFirstLeafForParent(J,D);if(U!==null)return U}return null}},pZ=()=>{let G=new d7;return G.reordered=!0,G},mZ=(G,D)=>{if(!G||!D)return!1;let z=D;while(z){if(z===G)return!0;z=z.parent}return!1},vI=(G,D)=>{if(!D||G.parent===D)return!1;let z=D,B=G.id;while(z){if(z===G)return!0;if(B!=null&&z.id===B)return!0;z=z.parent}return!1},OI=(G,D)=>{for(let z=0,B=G.length;zthis.strategy?.onShowRowGroupColsSetChanged()})}invalidateGroupCols(){this.columnsInvalidated=!0,this.strategy?.invalidateGroupCols?.()}destroy(){this.strategy=this.destroyBean(this.strategy),super.destroy()}getNonLeaf(G){return this.strategy?.nonLeafsById?.get(G)}getNestedDataGetter(){return this.getStrategy()?.nestedDataGetter}onPropChange(G){let D=this.gos,z=this.strategy?.nestedDataGetter;if(G.has("treeData"))this.gosTreeData=D.get("treeData")&&this.hasTreeData,this.columnsInvalidated=!0;return this.strategy?.onPropChange?.(G),this.getNestedDataGetter()!==z}extractData(){let G=this.beans.rowModel.rootNode,D=this.nested?G?.childrenAfterGroup:G?._leafs;if(!D)return this.gos.get("rowData")??[];let z=D.length,B=Array(z),Q=0;for(let J=0;J{let D=G.sibling;if(!D)return null;let z=D._leafs;if(z!==void 0)return z;return MB(D)},MB=(G)=>{let D=G.childrenAfterGroup,z=D?.length;if(G._leafs=null,!z)return null;let B,Q=z===1?D[0]:null;if(Q?.group&&Q.sourceRowIndex<0){if(B=Q._leafs,B===void 0)B=MB(Q)}else if(G.leafGroup)B=D;else{B=[];for(let J=0;J=0)B.push(U);if(!U.group)continue;let Z=U._leafs;if(Z===void 0)Z=MB(U);if(Z)for(let S=0,X=Z.length;S{let{_leafs:B,sibling:Q}=G;if(G.treeNodeFlags=0,G.childrenAfterGroup=B,G.childrenMapped=null,G._groupData=void 0,G.aggData=null,Q)Q.childrenAfterGroup=G.childrenAfterGroup,Q.childrenAfterAggFilter=G.childrenAfterAggFilter,Q.childrenAfterFilter=G.childrenAfterFilter,Q.childrenAfterSort=G.childrenAfterSort,Q.childrenMapped=null,Q._groupData=void 0,Q.aggData=null;for(let J=0,U=B.length??0;J{G.key=null,G.treeNodeFlags=0,G.allChildrenCount=null,G.childrenAfterGroup=null,G.childrenAfterAggFilter=null,G.childrenAfterFilter=null,G.childrenAfterSort=null,G.childrenMapped=null,G.level=0,G._groupData=void 0};function G2(G,D,z){let B=G,Q=B.level-D.level;if(Q<=0)return!1;if(!z.get("groupHideOpenParents"))return!1;for(let U=0;U{let{rowDragSvc:D}=this.beans;if(!this.params.rowDrag||!D)return;let z=D.createRowDragComp(()=>this.params.value,this.params.node);this.createManagedBean(z),this.eGui.insertAdjacentElement("afterbegin",z.getGui())};this.setupExpand(),G(),this.setupCheckbox(),this.addGroupValue(),this.setupIndent()}getCellAriaRole(){let G=this.params.colDef?.cellAriaRole,D=this.params.column?.getColDef().cellAriaRole;return G||D||"gridcell"}isEmbeddedRowMismatch(){if(!this.params.fullWidth||!this.gos.get("embedFullWidthRows"))return!1;let{visibleCols:G}=this.beans,D=this.params.pinned==="left",z=this.params.pinned==="right",B=!D&&!z;if(this.gos.get("enableRtl")){if(G.isPinningLeft())return!z;return!B}if(G.isPinningLeft())return!D;return!B}addGroupValue(){let{params:{value:G,valueFormatted:D}}=this,z=this.getInnerCompDetails();this.comp.setInnerRenderer(z,D??G??null)}setupExpand(){let{colModel:G}=this.beans,{eGridCell:D,suppressDoubleClickExpand:z}=this.params,B=(S,X)=>{let Y=cI(S,this.beans,null);if(Y)X.appendChild(Y),this.addDestroyFunc(()=>Y.remove())};B("groupExpanded",this.eExpanded),B("groupContracted",this.eContracted);let Q=this.comp,J=()=>{if(!this.isExpandable())return;let X=!!this.displayedNode.expanded;Q.setExpandedDisplayed(X),Q.setContractedDisplayed(!X),lI(D,X)},U=()=>{let S=this.isExpandable();Q.toggleCss("ag-cell-expandable",S),Q.toggleCss("ag-row-group",S);let X=!S&&G.isPivotMode();Q.toggleCss("ag-pivot-leaf-group",X);let Y=!G.isPivotMode()&&(!this.displayedNode.footer||this.displayedNode.level!==-1);Q.toggleCss("ag-row-group-leaf-indent",!S&&Y);let W=this.getChildCount(),q=W>0?`(${W})`:"";if(Q.setChildCount(q),!S)Q.setExpandedDisplayed(!1),Q.setContractedDisplayed(!1),dI(D);else J()};(()=>{if(!z&&!this.isGroupCellEditable(this.displayedNode))this.addManagedListeners(D,{dblclick:this.onCellDblClicked.bind(this)});this.addManagedListeners(this.eExpanded,{click:this.onExpandClicked.bind(this)}),this.addManagedListeners(this.eContracted,{click:this.onExpandClicked.bind(this)}),this.addManagedListeners(D,{keydown:this.onKeyDown.bind(this)}),this.addManagedListeners(this.displayedNode,{allChildrenCountChanged:U,masterChanged:U,groupChanged:U,hasChildrenChanged:U,expandedChanged:J})})(),U()}getInnerCompDetails(){let{userCompFactory:G,findSvc:D}=this.beans,z=this.params;if(z.fullWidth){let S=this.gos.get("groupRowRendererParams"),X=x0(G,S,z);if(X)return X;if(D?.isMatch(z.node,null))return x0(G,{...S,innerRenderer:"agFindCellRenderer"},z);return}let B=(S)=>S&&S.componentClass==this.compClass,Q=x0(G,z,z);if(Q&&!B(Q))return Q;let{displayedNode:{rowGroupColumn:J}}=this,U=J?.colDef,Z=J&&z.column?.isRowGroupDisplayed(J.getId());if(U&&Z){let S=rZ(G,U,z);if(S)if(B(S)){if(U?.cellRendererParams?.innerRenderer)return x0(G,U.cellRendererParams,z)}else return S}if(D?.isMatch(z.node,z.column))return rZ(G,{...U??z.colDef,cellRenderer:"agFindCellRenderer"},z)}getChildCount(){let{column:G,suppressCount:D}=this.params;if(D)return 0;let{allChildrenCount:z,rowGroupColumn:B}=this.displayedNode;if(!((z??0)>0&&(!B||!G||G?.isRowGroupDisplayed(B.getId()))))return 0;if(this.gos.get("showOpenedGroup")&&this.displayedNode!==this.node&&!G2(this.node,this.displayedNode,this.gos))return 0;return z??0}isExpandable(){let{node:G,column:D,colDef:z}=this.params;if(!this.displayedNode.isExpandable())return!1;if(G.rowPinned)return!1;if(!D)return!0;if(G.hasChildren()&&z){let{showRowGroup:J}=z;if(!J)return!1;if(J===!0)return!0}if(G===this.displayedNode){if(G.rowGroupColumn){if(D?.isRowGroupDisplayed(G.rowGroupColumn.getId()))return!0}if(G.master)return z?.showRowGroup===!0||z?.showRowGroup==null;return!1}return G2(this.node,this.displayedNode,this.gos)}setupIndent(){let{suppressPadding:G,node:D,colDef:z}=this.params;if(G)return;let B=()=>{let Q=D.uiLevel;if(z&&z.showRowGroup!==!0)Q=0;let J="ag-row-group-indent-"+Q;if(J===this.indentClass)return;if(this.indentClass)this.comp.toggleCss(this.indentClass,!1);this.indentClass=J,this.comp.toggleCss(J,!0),this.eGui.style.setProperty("--ag-indentation-level",String(Q))};this.addManagedListeners(D,{uiLevelChanged:B.bind(this)}),B()}setupCheckbox(){let{node:G}=this.params;if(!(!G.footer&&!G.rowPinned&&!G.detail))return;this.addManagedPropertyListener("rowSelection",({currentValue:z,previousValue:B})=>{let Q=typeof z==="object"?z:void 0,J=typeof B==="object"?B:void 0;if(Q?.checkboxLocation!==J?.checkboxLocation)this.destroyCheckbox(),this.addCheckbox()}),this.addCheckbox()}addCheckbox(){let{selectionSvc:G}=this.beans;if(!G||!nI(this.gos))return;let{node:D,column:z}=this.params,B=this.gos.get("rowSelection"),Q=hI(B);if(Q==="selectionColumn")return;if(Q==="autoGroupColumn"){let X=z?.getColDef().showRowGroup!=null,Y=!z&&D.group;if(!(X||Y))return}let J=typeof B==="object"?iI(B):this.params.checkbox;if(!(typeof J==="function"||J===!0))return;if(typeof z?.getColDef().showRowGroup==="string"&&!this.isExpandable()){this.comp.setCheckboxSpacing(!0);return}let S=G.createCheckboxSelectionComponent();this.cbComp=S,this.createBean(S),S.init({rowNode:D,column:z,overrides:{isVisible:J,callbackParams:this.params,removeHidden:!0}}),this.eCheckbox.appendChild(S.getGui()),this.comp.setCheckboxVisible(!0)}destroyCheckbox(){this.comp.setCheckboxSpacing(!1),this.comp.setCheckboxVisible(!1),this.cbComp?.getGui().remove(),this.cbComp=this.destroyBean(this.cbComp)}isGroupCellEditable(G){let D=this.params.column;return!!D&&(!!D.getColDef().groupRowEditable||this.gos.get("enableGroupEdit"))&&D.isCellEditable(G)}onExpandClicked(G){if(eZ(G))return;pI(G),this.onExpandOrContract(G)}onKeyDown(G){if(G.key!==oZ.ENTER||this.params.suppressEnterExpand)return;if(this.isGroupCellEditable(this.params.node))return;this.onExpandOrContract(G)}onCellDblClicked(G){if(eZ(G))return;if(!(aZ(this.eExpanded,G)||aZ(this.eContracted,G)))this.onExpandOrContract(G)}onExpandOrContract(G){if(!this.isExpandable())return;let D=this.displayedNode,z=!D.expanded;if(!z&&D.sticky)this.beans.ctrlsSvc.getScrollFeature().setVerticalScrollPosition(D.rowTop-D.stickyRowTop);D.setExpanded(z,G)}destroy(){super.destroy(),this.destroyCheckbox()}},mI={tag:"span",cls:"ag-cell-wrapper",children:[{tag:"span",ref:"eExpanded",cls:"ag-group-expanded ag-hidden"},{tag:"span",ref:"eContracted",cls:"ag-group-contracted ag-hidden"},{tag:"span",ref:"eCheckbox",cls:"ag-group-checkbox ag-invisible"},{tag:"span",ref:"eValue",cls:"ag-group-value"},{tag:"span",ref:"eChildCount",cls:"ag-group-child-count"}]},D2=class extends TI{constructor(){super(mI);this.eExpanded=Pz,this.eContracted=Pz,this.eCheckbox=Pz,this.eValue=Pz,this.eChildCount=Pz}init(G){let D={setInnerRenderer:(J,U)=>this.setRenderDetails(J,U),setChildCount:(J)=>this.eChildCount.textContent=J,toggleCss:(J,U)=>this.toggleCss(J,U),setContractedDisplayed:(J)=>sZ(this.eContracted,J),setExpandedDisplayed:(J)=>sZ(this.eExpanded,J),setCheckboxVisible:(J)=>this.eCheckbox.classList.toggle("ag-invisible",!J),setCheckboxSpacing:(J)=>this.eCheckbox.classList.toggle("ag-group-checkbox-spacing",J)},z=this.createManagedBean(new l7),B=!G.colDef,Q=this.getGui();if(z.init(D,Q,this.eCheckbox,this.eExpanded,this.eContracted,this.constructor,G),B)yI(Q,z.getCellAriaRole())}setRenderDetails(G,D){if(G)G.newAgStackInstance().then((z)=>{if(!z)return;let B=()=>this.destroyBean(z);if(this.isAlive())this.eValue.appendChild(z.getGui()),this.addDestroyFunc(B);else B()});else this.eValue.innerText=D}destroy(){this.destroyBean(this.innerCellRenderer),super.destroy()}refresh(){return!1}},tI=".ag-group-checkbox-spacing{width:var(--ag-icon-size)}:where(.ag-ltr) .ag-group-checkbox-spacing{margin-right:var(--ag-cell-widget-spacing)}:where(.ag-rtl) .ag-group-checkbox-spacing{margin-left:var(--ag-cell-widget-spacing)}",oI=class extends sI{constructor(){super(...arguments);this.beanName="showRowGroupColValueSvc"}getGroupValue(G,D,z){if(!D){if(!G.group)return null;return{displayedNode:G,value:G.groupValue}}let B=this.beans.valueSvc,Q=D.colDef.showRowGroup;if(!Q)return null;if(G.level===-1&&G.footer)return{displayedNode:G,value:null};if(typeof Q==="string"){if((this.beans.rowGroupColsSvc?.getColumnIndex(Q)??-1)>G.level)return null;let Z=this.getDisplayedNode(G,D,!0);if(Z)return{displayedNode:Z,value:B.getValue(D,Z,"data",z)}}let J=B.getValue(D,G,"data",z);if(J==null){let U=this.getDisplayedNode(G,D);if(U)return{displayedNode:U,value:B.getValue(D,U,"data",z)}}return{displayedNode:G,value:J}}formatAndPrefixGroupColValue(G,D,z=!1){let B=this.formatGroupColValue(G,D,z),{value:Q,displayedNode:J}=G,U=this.beans.footerSvc;if(U?.doesCellShowTotalPrefix(J,D))return U.applyTotalPrefix(Q,B,J,D);if(J.footer&&J.level===-1)return null;return B}formatGroupColValue(G,D,z=!1){let B=this.beans.valueSvc,{displayedNode:Q,value:J}=G,U=Q.rowGroupColumn,Z=Q.group&&!D;if(U&&(Z||D?.isRowGroupDisplayed(U.colId))){if(z&&U.colDef.useValueFormatterForExport===!1)return null;let X=B.formatValue(U,Q,J);if(X==null&&Q.key==="")return this.getLocaleTextFunc()("blanks","(Blanks)");return X}if(!D||Q.group)return null;if(z&&D.colDef.useValueFormatterForExport===!1)return null;return B.formatValue(D,Q,J)}getDisplayedNode(G,D,z=!1){let B=this.gos,Q=B.get("groupHideOpenParents"),J=B.get("showOpenedGroup")&&!z;if(!Q&&!J)return;let U=D.colDef.showRowGroup;if(U===!0){if(G.group)return;return G.parent??void 0}let Z=G;while(Z&&Z.rowGroupColumn?.getId()!=U){let S=Z===Z.parent?.getFirstChild();if(!J&&!S)return;Z=Z.parent}if(Z===G)return;return Z??void 0}},aI=class extends rI{constructor(){super(...arguments);this.beanName="showRowGroupCols",this.columns=[],this.colsSet=new Set,this.colsMap=new Map}destroy(){super.destroy(),this.columns.length=0,this.colsSet.clear(),this.colsMap.clear()}refresh(){let{colModel:G,rowGroupColsSvc:D}=this.beans,z=this.columns,B=this.colsSet,Q=this.colsMap;Q.clear();let J=z.length,U=0,Z=!1,S=G.getCols();for(let X=0,Y=S.length;X=J||!B.has(W)),z[U++]=W}if(Z||(Z=U!==J),Z){z.length=U,B.clear();for(let X=0;X{this.gridBodyCtrl=G.gridBodyCtrl}),this.resetStickyContainers()}setOffsetTop(G){if(this.extraTopHeight===G)return;this.extraTopHeight=G,this.eventSvc.dispatchEvent({type:"stickyTopOffsetChanged",offset:G})}setOffsetBottom(G){if(this.extraBottomHeight===G)return;this.extraBottomHeight=G}resetOffsets(){this.setOffsetBottom(0),this.setOffsetTop(0)}getLastPixelOfGroup(G){return this.isClientSide?SM(G):LM(G)}getFirstPixelOfGroup(G){if(G.footer)return G.sibling.rowTop+G.sibling.rowHeight-1;if(G.hasChildren())return G.rowTop-1;return 0}updateStickyRows(G){let D=G==="top",z=0;if(!this.canRowsBeSticky())return this.refreshNodesAndContainerHeight(G,new Set,z);let B=new Set,{rowModel:Q,rowRenderer:J,pinnedRowModel:U,pageBounds:Z,rowContainerHeight:S}=this.beans,{pageFirstPixel:X,pageLastPixel:Y}=Z.getCurrentPagePixelRange(),W=D?J.firstVisibleVPixel-this.extraTopHeight:J.lastVisibleVPixel-this.extraTopHeight,q=S.divStretchOffset??0,H=X+q,_=Y+q,k=(N)=>{if(B.add(N),D){let F=this.getLastPixelOfGroup(N),E=W+z+N.rowHeight;if(FE)N.stickyRowTop=z-(F-E);else N.stickyRowTop=z}z=0,B.forEach((F)=>{let E=F.stickyRowTop+F.rowHeight;if(z{if(!N.displayed)return!1;if(N.footer){if(w===!0)return!1;if(w==="grand"&&N.level===-1)return!1;if(w==="group"&&N.level>-1)return!1;let F=N.sibling.rowIndex?N.sibling.rowIndex+1===N.rowIndex:!1;if(G==="bottom"&&F)return!1;if(N.level===-1&&U?.getGrandTotalPinned())return!1;return!B.has(N)}if(N.isExpandable()){if(K===!0)return!1;if(G==="bottom")return!1;return!B.has(N)&&!!N.expanded}return!1};for(let N=0;N<100;N++){let F=W+z;if(!D)F=W-z;if(D&&F_)F=_;let E=Q.getRowIndexAtPixel(F),I=Q.getRow(E);if(I==null)break;let A=this.getStickyAncestors(I).find((O)=>(D?O.rowIndexE)&&f(O));if(A){k(A);continue}if((D?I.rowTopF)&&f(I)){k(I);continue}break}if(!D)B.forEach((N)=>{N.stickyRowTop=z-(N.stickyRowTop+N.rowHeight)});return this.refreshNodesAndContainerHeight(G,B,z)}areFooterRowsStickySuppressed(){let G=this.gos.get("suppressStickyTotalRow");if(G===!0)return!0;let D=G==="group",z=G==="grand";if(D&&z)return!0;if(z)return"grand";if(D)return"group";return!1}canRowsBeSticky(){let G=UM(this.gos),D=this.areFooterRowsStickySuppressed(),z=this.gos.get("suppressGroupRowsSticky");return G&&(!D||!z)}getStickyAncestors(G){let D=[],z=G.footer?G.sibling:G.parent;while(z){if(z.sibling)D.push(z.sibling);D.push(z),z=z.parent}return D.reverse()}checkStickyRows(){let G=this.updateStickyRows("top"),D=this.updateStickyRows("bottom");return G||D}destroyStickyCtrls(){this.resetStickyContainers()}resetStickyContainers(){this.refreshNodesAndContainerHeight("top",new Set,0),this.refreshNodesAndContainerHeight("bottom",new Set,0)}refreshStickyNode(G){let D=new Set;if(this.stickyTopRowCtrls.some((z)=>z.rowNode===G)){for(let z=0;z{if(Z.has(H))return;H.sticky=!0,S.push(this.createRowCon(H,!1,!1))});let X=!!S.length||U.length!==Q.length;if(B){if(this.topContainerHeight!==z)this.topContainerHeight=z,this.gridBodyCtrl.setStickyTopHeight(z),X=!0}else if(this.bottomContainerHeight!==z)this.bottomContainerHeight=z,this.gridBodyCtrl.setStickyBottomHeight(z),X=!0;this.destroyRowCtrls(J,!1);let Y=[...U,...S];if(Y.sort((H,_)=>_.rowNode.rowIndex-H.rowNode.rowIndex),!B)Y.reverse();for(let H of Y)H.setRowTop(H.rowNode.stickyRowTop);let W=this.beans.pageBounds,q=0;if(B){for(let H of D)if(H.rowIndexthis.topContainerHeight)q=this.topContainerHeight;this.setOffsetTop(q)}else{for(let H of D)if(H.rowIndex>W.getLastRow())q+=H.rowHeight;if(q>this.bottomContainerHeight)q=this.bottomContainerHeight;this.setOffsetBottom(q)}if(!X)return!1;if(B)this.stickyTopRowCtrls=Y;else this.stickyBottomRowCtrls=Y;return!0}ensureRowHeightsValid(){let G=!1,D=(z)=>{let B=z.rowNode;if(B.rowHeightEstimated){let Q=QM(this.beans,B);B.setRowHeight(Q.height),G=!0}};return this.stickyTopRowCtrls.forEach(D),this.stickyBottomRowCtrls.forEach(D),G}};function LM(G){if(G.isExpandable()||G.footer){if(G.master&&G.detailNode)return G.detailNode.rowTop+G.detailNode.rowHeight;if(!G.sibling||Math.abs(G.sibling.rowIndex-G.rowIndex)===1){let z=G.childStore?.getStoreBounds();if(G.footer)z=G.sibling.childStore?.getStoreBounds();return(z?.heightPx??0)+(z?.topPx??0)}if(G.footer)return G.rowTop+G.rowHeight;return G.sibling.rowTop+G.sibling.rowHeight}return Number.MAX_SAFE_INTEGER}function SM(G){if(G.isExpandable()||G.footer){if(G.footer&&G.rowIndex===0)return Number.MAX_SAFE_INTEGER;if(!G.sibling||Math.abs(G.sibling.rowIndex-G.rowIndex)===1){let B=G.footer?G.sibling:G;while(B.isExpandable()&&B.expanded)if(B.master&&B.detailNode)B=B.detailNode;else if(B.childrenAfterSort){if(B.childrenAfterSort.length===0)break;B=ZM(B.childrenAfterSort)}return B.rowTop+B.rowHeight}if(G.footer)return G.rowTop+G.rowHeight;return G.sibling.rowTop+G.sibling.rowHeight}return Number.MAX_SAFE_INTEGER}var XM=class extends eI{constructor(){super(...arguments);this.beanName="stickyRowSvc"}createStickyRowFeature(G,D,z){let B=this.gos;if(DM(B)&&GM(B)||zM(B))return G.createManagedBean(new $M(D,z));return}},p7={moduleName:"GroupCellRenderer",version:j,userComponents:{agGroupRowRenderer:D2,agGroupCellRenderer:D2},dynamicBeans:{groupCellRendererCtrl:l7},icons:{groupContracted:"tree-closed",groupExpanded:"tree-open"},css:[tI],dependsOn:[i]},m7={moduleName:"GroupColumn",version:j,beans:[ZI,aI,oI,dE,T7,g7],dependsOn:[i,p7]},AJ={moduleName:"ChangedPath",version:j,beans:[YI],dependsOn:[i]},_0={moduleName:"ClientSideRowModelHierarchy",version:j,rowModels:["clientSide"],beans:[jI,EI,wI],dependsOn:[i,AJ]},RJ={moduleName:"StickyRow",version:j,beans:[XM]},t7={moduleName:"GroupEdit",version:j,beans:[bI],dependsOn:[i,_0]},NM=({valueSvc:G,dataTypeSvc:D},z,B)=>{let Q=G.getValue(z,B,"data"),J=null;if(Q instanceof Date)J=Q;else if(typeof Q==="string")J=(D?.getDateParserFunction(z)??fM)(Q)??null;return J},GD=(G,D,z,B)=>(Q)=>{let J=NM(G,D,Q.node),U=KM(J);if(!U)return null;return B?.(U[z])??U[z]},DD=({colNames:G},D,z)=>(B)=>{let Q=G.getDisplayNameForColumn(D,B.location);if(Q)return`${Q} (${z})`;return""},FM=Object.fromEntries(s7.map((G)=>[G,G.toLowerCase()])),EM=(G)=>{let D=s7[Number.parseInt(G,10)-1]??G,z=FM[D]??G;return{month:D,localeKey:z}};function Q2(G){return G.groupHierarchy??G.rowGroupingHierarchy}var IM=class extends WM{constructor(){super(...arguments);this.beanName="groupHierarchyColSvc",this.columns=null,this.sourceColumnMap=new WeakMap,this.inverseColumnMap=new WeakMap}addColumns(G){let D=this.columns;if(D==null)return;G.list=D.list.filter((z)=>!G.list.some((B)=>B.getColId()===z.getColId())).concat(G.list),G.tree=D.tree.filter((z)=>!G.tree.some((B)=>B.getId()===z.getId())).concat(G.tree),wM(G)}createColumns(G){let D=new WeakMap,z=new WeakMap,B=this.createGroupHierarchyColumns(G,D,z);if(HM(B,this.columns?.list??[]))return;_M(this.beans,this.columns?.tree),this.columns=null;let{colGroupSvc:J}=this.beans,U=J?.findDepth(G.tree)??0,Z=J?.balanceTreeForAutoCols(B,U)??[];this.columns={list:B,tree:Z,treeDepth:U,map:{}},this.sourceColumnMap=D,this.inverseColumnMap=z}updateColumns(G){}getColumn(G){return this.columns?.list.find((D)=>B2(D,G))??null}getColumns(){return this.columns?.list??null}expandColumnInto(G,D){let z=this.getVirtualColumnsForColumn(D).concat(D);for(let B of z)if(!G.some((Q)=>B2(Q,B)||Q.getColId()===B.getColId()))G.push(B)}compareVirtualColumns(G,D){let z=this.inverseColumnMap.get(G),B=this.inverseColumnMap.get(D);if(z&&z===B){let Q=this.sourceColumnMap.get(z)??[];return Q?.indexOf(G)-Q?.indexOf(D)}if(this.sourceColumnMap.get(G)?.includes(D))return 1;if(this.sourceColumnMap.get(D)?.includes(G))return-1;return null}insertVirtualColumnsForCol(G,D){let z=this.getVirtualColumnsForColumn(D);if(!z)return[];let B=G.indexOf(D);if(B<0)B=G.length-1;return kM(G,z),G.splice(B,0,...z),z}getVirtualColumnsForColumn(G){if(this.isGroupHierarchyColsEnabledForCol(G))return this.sourceColumnMap.get(G)??[];return[]}isGroupHierarchyColsEnabled(G){return G.list.some((D)=>this.isGroupHierarchyColsEnabledForCol(D))}isGroupHierarchyColsEnabledForCol(G){let D=G.getColDef();return!!(Q2(D)&&(D.rowGroup||D.enableRowGroup||D.rowGroupIndex!=null||D.pivot||D.enablePivot||D.pivotIndex!=null))}createGroupHierarchyColDefs(G){let D=[],z=G.getColDef(),B=Q2(z);if(!B)return D;if(!this.isGroupHierarchyColsEnabledForCol(G))return D;for(let Q of B){let J=null;if(typeof Q==="string")J=this.createColDefForPart(Q,G,z);else J=Q;if(J)D.push(J)}return D}createGroupHierarchyColumns(G,D,z){if(!this.isGroupHierarchyColsEnabled(G))return[];let B=[];for(let Q of G.list)for(let J of this.createGroupHierarchyColDefs(Q)){let U=J.colId;this.gos.validateColDef(J,U,!0);let Z=new YM(J,null,U,!0);this.createBean(Z),B.push(Z),MM(D,Q,Z),z.set(Z,Q)}return B}createColDefForPart(G,D,z){let{beans:B,gos:Q}=this,J=`${qM}-${D.getColId()}-${G}`,U={enableRowGroup:z.enableRowGroup,rowGroup:z.rowGroup,enablePivot:z.enablePivot,hide:!0,editable:!1},Z=Q.get("groupHierarchyConfig")??{};if(G in Z){let W={...U,...Z[G]};return W.colId??(W.colId=J),z2(B,W,W.colId,!0)}let S=z2(B,{colId:J,...U},J,!0),X=this.getLocaleTextFunc(),Y=(W,q)=>X?.(W,q)??q;switch(G){case"year":return{...S,headerValueGetter:DD(B,D,Y(G,"Year")),valueGetter:GD(B,D,0)};case"quarter":return{...S,headerValueGetter:DD(B,D,Y(G,"Quarter")),valueGetter:GD(B,D,1,(W)=>(Math.floor(Number(W)/4)+1).toString())};case"month":return{...S,headerValueGetter:DD(B,D,Y(G,"Month")),valueGetter:GD(B,D,1)};case"formattedMonth":return{...S,headerValueGetter:DD(B,D,Y("month","Month")),valueGetter:GD(B,D,1,(W)=>{let q=EM(W);return Y(q.localeKey,q.month)})};case"day":return{...S,headerValueGetter:DD(B,D,Y(G,"Day")),valueGetter:GD(B,D,2)};case"hour":return{...S,headerValueGetter:DD(B,D,Y(G,"Hour")),valueGetter:GD(B,D,3)};case"minute":return{...S,headerValueGetter:DD(B,D,Y(G,"Minute")),valueGetter:GD(B,D,4)};case"second":return{...S,headerValueGetter:DD(B,D,Y(G,"Second")),valueGetter:GD(B,D,5)};default:return null}}};function MM(G,D,z){let B=G.get(D);G.set(D,(B??[]).concat(z))}var AM={moduleName:"GroupHierarchy",version:j,beans:[IM],dependsOn:[AJ]},VM=class extends RM{constructor(){super()}postConstruct(){this.setGui(this.createNorthPanel());let G=this.onRowGroupChanged.bind(this);this.addManagedEventListeners({columnRowGroupChanged:G,newColumnsLoaded:G}),this.addManagedPropertyListener("rowGroupPanelShow",G),this.addManagedPropertyListener("pivotPanelShow",()=>this.onPivotPanelShow()),this.onRowGroupChanged()}createNorthPanel(){let G=CM({tag:"div",cls:"ag-column-drop-wrapper",role:"presentation"}),D=new k7(!0);this.rowGroupComp=this.createManagedBean(D);let z=new _7(!0);this.pivotComp=this.createManagedBean(z),G.appendChild(D.getGui()),G.appendChild(z.getGui());let B=this.onDropPanelVisible.bind(this);return this.addManagedListeners(D,{displayChanged:B}),this.addManagedListeners(z,{displayChanged:B}),this.onDropPanelVisible(),G}onDropPanelVisible(){let{rowGroupComp:G,pivotComp:D}=this,z=G.isDisplayed()&&D.isDisplayed(),B="ag-column-drop-horizontal-half-width";G.toggleCss("ag-column-drop-horizontal-half-width",z),D.toggleCss("ag-column-drop-horizontal-half-width",z)}onRowGroupChanged(){let G=this.rowGroupComp;if(!G)return;let D=this.gos.get("rowGroupPanelShow");if(D==="always")G.setDisplayed(!0);else if(D==="onlyWhenGrouping"){let z=this.beans.rowGroupColsSvc?.columns?.length!==0;G.setDisplayed(z)}else G.setDisplayed(!1)}onPivotPanelShow(){let G=this.pivotComp;if(!G)return;let D=this.gos.get("pivotPanelShow");if(D==="always")G.setDisplayed(!0);else if(D==="onlyWhenPivoting"){let z=this.beans.colModel.isPivotActive();G.setDisplayed(z)}else G.setDisplayed(!1)}getFocusableContainers(){return[this.rowGroupComp,this.pivotComp].filter((G)=>!!G)}},bM={selector:"AG-GRID-HEADER-DROP-ZONES",component:VM};function gM(G){if(G.buttons)G.buttons=[];return G}var TM={tag:"div",cls:"ag-group-filter",children:[{tag:"div",ref:"eGroupField"},{tag:"div",ref:"eUnderlyingFilter"}]},yM=class extends uM{constructor(){super(TM);this.filterType="group",this.eGroupField=J2,this.eUnderlyingFilter=J2}wireBeans(G){this.groupFilterSvc=G.groupFilter}postConstruct(){this.initialiseTabGuard({})}init(G){return this.params=G,this.updateParams().then(()=>{this.addHandlerListeners(this.updateGroups.bind(this))})}refresh(G){let D=G;if(this.params=D,D.source==="colDef")this.updateParams();return!0}updateParams(){return this.validateParams(),this.updateGroups()}validateParams(){let{colDef:G}=this.params;if(G.field)rQ(234);if(G.filterValueGetter)rQ(235);if(G.filterParams)rQ(236)}addHandlerListeners(G){let D=this.addManagedListeners(this.getHandler(),{sourceColumnsChanged:()=>{this.updateGroups()},destroyed:()=>{for(let z of D)z();this.addHandlerListeners(G)}})}updateGroups(){let{sourceColumns:G,selectedColumn:D}=this.updateGroupField();return this.dispatchLocalEvent({type:"columnsChanged"}),this.getUnderlyingFilters(G,D)}updateGroupField(){this.groupColumn=this.params.column;let G=this.getHandler();if(!G)return{sourceColumns:null};let{sourceColumns:D,hasMultipleColumns:z,selectedColumn:B}=G,Q=this.eGroupField;if(oQ(Q),this.eGroupFieldSelect)this.destroyBean(this.eGroupFieldSelect);if(z&&D)this.createGroupFieldSelectElement(D,B),Q.appendChild(this.eGroupFieldSelect.getGui()),Q.appendChild(jM({tag:"div",cls:"ag-filter-separator"}));return PM(Q,z),{sourceColumns:D,selectedColumn:B}}createGroupFieldSelectElement(G,D){let z=this.createManagedBean(new vM);this.eGroupFieldSelect=z;let B=this.getLocaleTextFunc();if(z.setLabel(B("groupFilterSelect","Select field:")),z.setLabelAlignment("top"),z.addOptions(G.map((Q)=>({value:Q.getColId(),text:this.beans.colNames.getDisplayNameForColumn(Q,"groupFilter",!1)??void 0}))),z.setValue(D.getColId()),z.onValueChange((Q)=>this.updateSelectedColumn(Q)),z.addCss("ag-group-filter-field-select-wrapper"),G.length===1)z.setDisabled(!0)}getUnderlyingFilters(G,D){if(!G)return this.filterColumnPairs=void 0,this.selectedFilter=void 0,gz.resolve();let z=[],B=[],Q=this.beans.colFilter;for(let J of G){let U=Q.getOrCreateFilterUi(J);if(U)z.push(U.then((Z)=>{if(Z)B.push({filter:Z,column:J});if(J.getColId()===D.getColId())this.selectedFilter=Z??void 0}))}return gz.all(z).then(()=>{this.filterColumnPairs=B})}addUnderlyingFilterElement(G){if(oQ(this.eUnderlyingFilter),!G)return gz.resolve();let D=this.createManagedBean(new OM(G,"COLUMN_MENU"));if(this.filterComp=D,!D.hasFilter())return gz.resolve();return this.eUnderlyingFilter.appendChild(D.getGui()),D.getFilter()?.then(()=>{if(D.afterGuiAttached?.(this.afterGuiAttachedParams),!this.afterGuiAttachedParams?.suppressFocus&&this.eGroupFieldSelect&&!this.eGroupFieldSelect.isDisabled())this.eGroupFieldSelect.getFocusableElement().focus()})??gz.resolve()}updateSelectedColumn(G){if(!G)return;this.filterComp?.afterGuiDetached(),this.destroyBean(this.filterComp);let D=this.getFilterColumnPair(G),z=D?.column;this.selectedFilter=D?.filter,this.getHandler().setSelectedColumn(z),this.dispatchLocalEvent({type:"columnsChanged"}),this.addUnderlyingFilterElement(z)}isFilterActive(){return this.groupFilterSvc.isFilterActive(this.groupColumn)}doesFilterPass(){return!0}getModel(){return null}setModel(){}afterGuiAttached(G){this.afterGuiAttachedParams=G,this.addUnderlyingFilterElement(this.getHandler().selectedColumn)}afterGuiDetached(){oQ(this.eUnderlyingFilter),this.selectedFilter?.afterGuiDetached?.()}getSelectedColumn(){return this.getHandler().selectedColumn}getHandler(){return this.params.getHandler()}getFilterColumnPair(G){if(!G)return;return this.filterColumnPairs?.find(({column:D})=>D.getColId()===G)}},cM=class extends xM{init(G){this.params=G,this.validateModel(G),this.updateColumns(),this.addManagedEventListeners({columnRowGroupChanged:this.updateColumns.bind(this),filterDestroyed:(D)=>this.onFilterDestroyed(D)})}refresh(G){if(this.params=G,this.validateModel(G),G.source==="colDef")this.updateColumns()}doesFilterPass(){return!0}setSelectedColumn(G){this.selectedColumn=G,this.dispatchLocalEvent({type:"selectedColumnChanged"})}validateModel(G){if(G.model!=null)G.onModelChange(null)}getSourceColumns(){let G=this.params.column;if(this.gos.get("treeData"))return U2(237),[];let D=this.beans.groupFilter.getSourceColumns(G);if(!D)return U2(183),[];return D}updateColumns(){let G=this.getSourceColumns(),D=G.filter((Q)=>Q.isFilterAllowed());this.sourceColumns=D;let z,B;if(!D.length)z=void 0,B=!1;else if(G.length===1)z=D[0],B=!1;else{if(z=this.selectedColumn,!z||!D.some((Q)=>Q.getId()===z.getId()))z=D[0];B=!0}this.selectedColumn=z,this.hasMultipleColumns=B,this.dispatchLocalEvent({type:"sourceColumnsChanged"})}onFilterDestroyed({column:G,source:D}){if(D==="gridDestroyed")return;let z=G.getColId();if(this.sourceColumns?.some((B)=>B.getColId()===z))setTimeout(()=>{if(this.isAlive())this.updateColumns()})}},iM=class extends hM{constructor(){super(...arguments);this.beanName="groupFilter"}postConstruct(){this.addManagedEventListeners({columnRowGroupChanged:()=>this.updateFilterFlags("columnRowGroupChanged")})}isGroupFilter(G){return G.getColDef().filter==="agGroupColumnFilter"}isFilterAllowed(G){let D=this.beans.colFilter;return!!this.getSourceColumns(G)?.some((z)=>D?.isFilterAllowed(z))}isFilterActive(G){let D=this.beans.colFilter;return!!this.getSourceColumns(G)?.some((z)=>D?.isFilterActive(z))}getSourceColumns(G){return this.beans.showRowGroupCols?.getSourceColumnsForGroupColumn(G)}updateFilterFlags(G,D){let{autoColSvc:z,colFilter:B}=this.beans;z?.getColumns()?.forEach((Q)=>{if(this.isGroupFilter(Q))B?.setColFilterActive(Q,this.isFilterActive(Q),G,D)})}},tM={tag:"div",ref:"eFloatingFilter",cls:"ag-group-floating-filter ag-floating-filter-input",role:"presentation"},sM=class extends dM{constructor(){super(tM);this.eFloatingFilter=lM,this.haveAddedColumnListeners=!1}init(G){this.params=G;let D=mM(this.gos),z=this.onColChange.bind(this),B=(Q)=>{if(D)this.setupUnderlyingFloatingFilterElement().then(()=>Q());else this.setupReadOnlyFloatingFilterElement(),Q()};if(this.gos.get("enableFilterHandlers"))return new aQ((Q)=>B(Q)).then(()=>{this.addHandlerListeners(G,z)});else return new aQ((Q)=>{this.params.parentFilterInstance((J)=>{this.parentFilterInstance=J,B(Q)})}).then(()=>{this.addManagedListeners(this.parentFilterInstance,{columnsChanged:z})})}refresh(G){if(this.params=G,this.setParams(),this.gos.get("enableFilterHandlers"))if(this.showingUnderlyingFloatingFilter){let D=this.getSelectedColumn(),z=this.beans.colFilter.getFloatingFilterCompDetails(D,this.params.showParentFilter);this.underlyingFloatingFilter?.refresh?.(z?.params)}else this.updateDisplayedValue()}setParams(){let G=this.beans.colNames.getDisplayNameForColumn(this.params.column,"header",!0),D=this.getLocaleTextFunc();this.eFloatingFilterText?.setInputAriaLabel(`${G} ${D("ariaFilterInput","Filter Input")}`)}addHandlerListeners(G,D){let z=this.addManagedListeners(G.getHandler(),{selectedColumnChanged:D,sourceColumnsChanged:D,destroyed:()=>{for(let B of z)B();this.addHandlerListeners(this.params,D)}})}setupReadOnlyFloatingFilterElement(){if(!this.eFloatingFilterText)this.eFloatingFilterText=this.createManagedBean(new nM),this.eFloatingFilterText.setDisabled(!0).addGuiEventListener("click",()=>this.params.showParentFilter()),this.setParams();this.updateDisplayedValue(),this.eFloatingFilter.appendChild(this.eFloatingFilterText.getGui())}setupUnderlyingFloatingFilterElement(){this.showingUnderlyingFloatingFilter=!1,this.underlyingFloatingFilter=void 0,pM(this.eFloatingFilter);let G=this.getSelectedColumn();if(G&&!G.isVisible()){let D=this.beans.colFilter,z=D.getFloatingFilterCompDetails(G,this.params.showParentFilter);if(z){if(!this.haveAddedColumnListeners)this.haveAddedColumnListeners=!0,this.addManagedListeners(G,{visibleChanged:this.onColumnVisibleChanged.bind(this),colDefChanged:this.onColDefChanged.bind(this)});return z.newAgStackInstance().then((B)=>{this.underlyingFloatingFilter=B,this.underlyingFloatingFilter?.onParentModelChanged(D.getModelForColumn(G)),this.appendChild(B.getGui()),this.showingUnderlyingFloatingFilter=!0})}}return this.setupReadOnlyFloatingFilterElement(),aQ.resolve()}getSelectedColumn(){if(this.gos.get("enableFilterHandlers"))return this.params.getHandler().selectedColumn;else return this.parentFilterInstance.getSelectedColumn()}onColumnVisibleChanged(){this.setupUnderlyingFloatingFilterElement()}onColDefChanged(G){if(!G.column)return;let D=this.beans.colFilter.getFloatingFilterCompDetails(G.column,this.params.showParentFilter);if(D)this.underlyingFloatingFilter?.refresh?.(D.params)}onParentModelChanged(G,D){if(this.showingUnderlyingFloatingFilter)this.underlyingFloatingFilter?.onParentModelChanged(this.beans.colFilter.getModelForColumn(this.getSelectedColumn()),D);else this.updateDisplayedValue()}updateDisplayedValue(){let G=this.eFloatingFilterText;if(!G)return;let D=this.beans.colFilter,z=this.getSelectedColumn(),B=(Q)=>{if(!Q)G.setValue(""),G.setDisplayed(!1);else{let J=z?D.getModelForColumn(z):null;G.setValue(J==null?"":Q.getModelAsString?.(J)??""),G.setDisplayed(!0)}};if(!z)B();else if(this.gos.get("enableFilterHandlers"))B(D.getHandler(z));else D.getOrCreateFilterUi(z)?.then((Q)=>{B(Q)})}onColChange(){if(!this.showingUnderlyingFloatingFilter)this.updateDisplayedValue()}},eM=(G,D)=>{if(!G){D.length=0;return}let z=G.length;D.length=z;for(let B=0;B{let z=G.length;if(z!==D?.length)return!0;for(let B=0;B0){z=!0;break}if(!z)return!1;return G.sort(L2),!0}function L2(G,D){let z=G.sourceRowIndex,B=D.sourceRowIndex,Q=z>=0,J=B>=0,U=Q&&J,Z=!Q&&!J;if(U)return z-B;if(Z)return G.__objectId-D.__objectId;if(Q)return 1;return-1}var zA=class extends oM{constructor(){super(...arguments);this.groupCols=[],this.nonLeafsById=new Map,this.checkGroupCols=!0,this.pivotMode=!1,this.groupEmpty=!1}invalidateGroupCols(){this.checkGroupCols=!0}destroy(){super.destroy(),this.groupCols.length=0,this.nonLeafsById.clear()}clearNonLeafs(){let G=this.nonLeafsById;for(let D of G.values())D._destroy(!1);G.clear()}loadGroupData(G){if(!G.group)return G._groupData=null,null;let D=G.rowGroupColumn,{valueSvc:z,showRowGroupCols:B}=this.beans,Q={};if(G._groupData=Q,!D)return Q;let J=Z2(G),U=D.getId();if(!B)return Q;let Z=B.columns;for(let S=0,X=Z.length;S{let B=z.childrenAfterGroup,Q=B?.length;if(!Q)return;let J=Array(Q),U=0,Z=!1,S;for(let X=0;X1)}}if(Q.size)for(let S of Q){this.insertOneNode(G,S);let X=S.parent;D?.addRow(X),J||(J=(X?.childrenAfterGroup?.length??0)>1)}if(Z.size)S2(Z),this.removeEmptyGroups(Z,U);if(J)this.sortChildren(G,D)}sortChildren(G,D){$2(G,!0,void 0,(z)=>{if(DA(z.childrenAfterGroup))D?.addRow(z)})}orderGroups(G){let D=this.gos.getCallback("initialGroupOrderComparator");if(!D)return;let z=this.beans,B=z.gridApi,Q=z.gridOptions.context,J=(Z,S)=>D({api:B,context:Q,nodeA:Z,nodeB:S}),U=(Z)=>{let S=Z.childrenAfterGroup,X=S?.length;if(!X||Z.leafGroup)return;if(X>1)S.sort(J);for(let Y=0,W=X;Y=0;--Z){let{col:S}=U[Z],X=z.getKeyForNode(S,D);if(X==null||X===""){if(!B)continue;X=""}if(!Q?.parent||Q.key!==X){J=!0;break}Q=Q.parent}if(J||(J=!!Q?.parent),!J)return!1;return this.removeFromParent(D),this.insertOneNode(G,D),D.setData(D.data),!0}groupShouldBeRemoved(G){let D=this.getChildrenMappedKey(G.key,G.rowGroupColumn),z=G.parent?.childrenMapped;if(z?!z[D]:!0)return!1;return!!G.group&&(G.childrenAfterGroup?.length??0)===0}removeEmptyGroups(G,D){let z=this.beans.selectionSvc,B,Q=Array.from(G),J=this.nonLeafsById;do{G.clear();for(let U=0;U=Z-1,k=this.createGroup(z,X,W,H,_,D);this.addToParent(k,z),z=k}if(!z.group)aM(184,{parentGroupData:z.data,childNodeData:D.data});D.parent=z,D.level=z.level+1,z.childrenAfterGroup.push(D),z.updateHasChildren(),YB(z)}createGroup(G,D,z,B,Q,J){let U=D.col,Z=(G.level>=0?G.id+"-":"row-group-")+(U.getColId()+"-"+z),S=this.nonLeafsById,X=S.get(Z),Y=!0;if(X){if(X.childrenAfterGroup!==null)return X._expanded??(X._expanded=null),X;Y=!1,YB(X)}else X=new rM(this.beans),X.group=!0,X.key=z,X.id=Z,X.aggData=null,S.set(Z,X);let W=(k)=>{k.childrenAfterGroup=q,k.childrenMapped=H,k.parent=G,k.level=B,k.rowGroupIndex=B,k.leafGroup=Q},q=[],H={};if(W(X),X.field=D.field??null,X.rowGroupColumn=U,X.groupValue=this.beans.valueSvc.getValue(U,J,"data"),X._expanded??(X._expanded=null),Y)return X.setAllChildrenCount(0),X.updateHasChildren(),X;let _=X.sibling;if(_)W(_);return X.dispatchRowEvent("hasChildrenChanged"),X}getChildrenMappedKey(G,D){return D?D.getId()+"-"+G:G}onShowRowGroupColsSetChanged(){let{rowModel:G,valueSvc:D}=this.beans;for(let B of this.nonLeafsById.values()){B._groupData=void 0;let Q=B.rowGroupColumn,J=Q&&Z2(B);B.groupValue=J&&D.getValue(Q,J,"data")}let z=G.rootNode?._leafs;if(z)for(let B=0,Q=z.length;B{for(let D of G){let z=D?.childrenAfterGroup;if(!z)continue;let B=z.length,Q=0;for(let J=0;J{while(G._leafs!==void 0){let D=G.parent;if(!D)break;G._leafs=void 0,G=D}};function BA(G,D){G.rowGroupColsSvc?.setColumns(D,"api")}function QA(G,D){G.rowGroupColsSvc?.removeColumns(D,"api")}function JA(G,D){G.rowGroupColsSvc?.addColumns(D,"api")}function UA(G,D,z){G.rowGroupColsSvc?.moveColumn?.(D,z,"api")}function ZA(G){return G.rowGroupColsSvc?.columns??[]}var CJ={moduleName:"SharedRowGrouping",version:j,apiFunctions:{setRowGroupColumns:BA,removeRowGroupColumns:QA,addRowGroupColumns:JA,getRowGroupColumns:ZA,moveRowGroupColumn:UA},dependsOn:[i,IJ,m7,RJ,AM]},VJ={moduleName:"RowGrouping",version:j,dynamicBeans:{groupStrategy:zA},rowModels:["clientSide"],dependsOn:[CJ,MJ,_0,t7]},o7={moduleName:"RowGroupingPanel",version:j,selectors:[bM],icons:{pivotPanel:"pivot",rowGroupPanel:"group",panelDelimiter:"small-right",panelDelimiterRtl:"small-left"},dependsOn:[K7,pF]},r7={moduleName:"GroupFilter",version:j,userComponents:{agGroupColumnFilter:{classImp:yM,processParams:gM},agGroupColumnFloatingFilter:sM},beans:[iM],dynamicBeans:{agGroupColumnFilterHandler:cM},dependsOn:[i,lF]},YA=class extends $A{constructor(){super(...arguments);this.beanName="rowModel",this.hierarchical=!1,this.firstRow=-1,this.lastRow=-1,this.rowCount=-1,this.rowNodesByIndex={},this.rootNode=null,this.viewportChangedContext=!1}ensureRowHeightsValid(G,D,z,B){return!1}postConstruct(){let G=this.beans,D=new X2(G);this.rootNode=D,D.level=-1,this.rowHeight=Y2(G),this.addManagedEventListeners({viewportChanged:this.onViewportChanged.bind(this)}),this.addManagedPropertyListener("viewportDatasource",()=>this.updateDatasource()),this.addManagedPropertyListener("rowHeight",()=>{this.rowHeight=Y2(G),this.updateRowHeights()})}start(){this.updateDatasource()}isLastRowIndexKnown(){return!0}destroy(){this.destroyDatasource(),super.destroy(),this.rootNode=null}destroyDatasource(){let G=this.datasource;if(!G)return;G.destroy?.(),this.beans.rowRenderer.datasourceChanged(),this.firstRow=-1,this.lastRow=-1}updateDatasource(){let G=this.gos.get("viewportDatasource");if(G)this.setViewportDatasource(G)}getPageSize(){return this.gos.get("viewportRowModelPageSize")}getBufferSize(){return this.gos.get("viewportRowModelBufferSize")}calculateFirstRow(G){let D=this.getBufferSize(),z=this.getPageSize(),B=G-D;if(B<0)return 0;return Math.floor(B/z)*z}calculateLastRow(G){if(G===-1)return G;let D=this.getBufferSize(),z=this.getPageSize(),B=G+D,Q=Math.ceil(B/z)*z,J=this.rowCount-1;return Math.min(Q,J)}onViewportChanged(G){let D=this.calculateFirstRow(G.firstRow),z=this.calculateLastRow(G.lastRow);if(this.firstRow!==D||this.lastRow!==z)this.firstRow=D,this.lastRow=z,this.purgeRowsNotInViewport(),this.viewportChangedContext=!0,this.datasource?.setViewportRange(this.firstRow,this.lastRow),this.viewportChangedContext=!1}purgeRowsNotInViewport(){let G=this.rowNodesByIndex;for(let D of Object.keys(G)){let z=parseInt(D,10);if(zthis.lastRow){if(this.isRowFocused(z)||this.beans.editSvc?.isRowEditing(G[z]))continue;delete G[z]}}}isRowFocused(G){let D=this.beans.focusSvc.getFocusCellToUseAfterRefresh();if(!D)return!1;if(D.rowPinned!=null)return!1;return D.rowIndex===G}setViewportDatasource(G){if(this.destroyDatasource(),this.datasource=G,this.rowCount=-1,!G.init)XA(226);else G.init(LA(this.gos,{setRowCount:this.setRowCount.bind(this),setRowData:this.setRowData.bind(this),getRow:this.getRow.bind(this)}))}getType(){return"viewport"}getRow(G){if(!this.rowNodesByIndex[G])this.rowNodesByIndex[G]=this.createBlankRowNode(G);return this.rowNodesByIndex[G]}getRowNode(G){let D;return this.forEachNode((z)=>{if(z.id===G)D=z}),D}getRowCount(){return this.rowCount===-1?0:this.rowCount}getRowIndexAtPixel(G){if(this.rowHeight!==0)return Math.floor(G/this.rowHeight);return 0}resetRowHeights(){}onRowHeightChanged(){}getRowBounds(G){let D=this.rowHeight;return{rowHeight:D,rowTop:D*G}}updateRowHeights(){let G=this.rowHeight;this.forEachNode((D)=>{D.setRowHeight(G),D.setRowTop(G*D.rowIndex)}),this.eventSvc.dispatchEvent({type:"modelUpdated",newData:!1,newPage:!1,keepRenderedRows:!0,animate:!1})}getTopLevelRowCount(){return this.getRowCount()}getTopLevelRowDisplayedIndex(G){return G}isEmpty(){return this.rowCount>0}getOverlayType(){return null}isRowsToRender(){return this.rowCount>0}getNodesInRangeForSelection(G,D){let z=G.rowIndex,B=D.rowIndex,Q=zthis.lastRow,J=Bthis.lastRow;if(Q||J)return[];let U=[],Z=z<=B?z:B,S=z<=B?B:z;for(let X=Z;X<=S;X++)U.push(this.rowNodesByIndex[X]);return U}forEachNode(G){let D=0;for(let z of Object.keys(this.rowNodesByIndex)){let B=parseInt(z,10),Q=this.rowNodesByIndex[B];G(Q,D),D++}}setRowData(G){let D=SA(this.beans.gos),z=new Map;if(D)for(let B of Object.values(this.rowNodesByIndex))z.set(B.id,B);for(let B=this.firstRow;B<=this.lastRow;B++){let Q=G[B];if(!Q)continue;let J,U;if(D)J=D({data:Q,rowPinned:void 0,level:0,parentKeys:void 0}),U=z.get(J);else U=this.rowNodesByIndex[B];if(U)U.updateData(Q),U.setRowIndex(B),U.setRowTop(this.rowHeight*B);else U=this.createBlankRowNode(B),U.setDataAndId(Q,J??B.toString());this.rowNodesByIndex[B]=U}if(!this.viewportChangedContext)this.eventSvc.dispatchEvent({type:"modelUpdated",newData:!1,newPage:!1,keepRenderedRows:!0,animate:!1})}createBlankRowNode(G){let D=new X2(this.beans),z=this.rowHeight;return D.setRowHeight(z),D.setRowTop(z*G),D.setRowIndex(G),D}setRowCount(G,D=!1){if(G===this.rowCount)return;this.rowCount=G;let z=this.eventSvc;z.dispatchEventOnce({type:"rowCountReady"}),z.dispatchEvent({type:"modelUpdated",newData:!1,newPage:!1,keepRenderedRows:D,animate:!1})}isRowPresent(G){return!!this.getRowNode(G.id)}},a7={moduleName:"ViewportRowModel",version:j,rowModels:["viewport"],beans:[YA],dependsOn:[i]};function _A(G,D){G.clipboardSvc?.copyToClipboard(D)}function kA(G,D){G.clipboardSvc?.cutToClipboard(D)}function wA(G,D){G.clipboardSvc?.copySelectedRowsToClipboard(D)}function KA(G,D){G.clipboardSvc?.copySelectedRangeToClipboard(D)}function fA(G){G.clipboardSvc?.copyRangeDown()}function NA(G){G.clipboardSvc?.pasteFromClipboard()}var h0="paste",D1="dragCopy",z1="clipboard";function bA(G,D=","){let z=[],B=(J)=>J==="\r"||J===` `,Q=!1;if(G==="")return[[""]];for(let J=0,U=0,Z=0;Z{if(!z[J])z[J]=[];if(!z[J][U])z[J][U]=""};if(W(),X==='"'){if(Q)if(Y==='"')z[J][U]+='"',Z++;else Q=!1;else if(S===void 0||S===D||B(S))Q=!0}if(!Q&&X!=='"'){if(X===D){U++,W();continue}else if(B(X)){if(U=0,J++,W(),X==="\r"&&Y===` `)Z++;continue}}z[J][U]+=X}return z}var vA=class extends FA{constructor(){super(...arguments);this.beanName="clipboardSvc",this.clientSideRowModel=null,this.gridCtrl=null,this.lastPasteOperationTime=0,this.navigatorApiFailed=!1}postConstruct(){let{gos:G,rowModel:D,ctrlsSvc:z}=this.beans;if(q2(G,D))this.clientSideRowModel=D;z.whenReady(this,(B)=>{this.gridCtrl=B.gridCtrl})}destroy(){super.destroy(),this.clientSideRowModel=null,this.gridCtrl=null}pasteFromClipboard(){if(!this.gos.get("suppressClipboardApi")&&!this.navigatorApiFailed&&navigator.clipboard?.readText)navigator.clipboard.readText().then(this.processClipboardData.bind(this)).catch((D)=>{c0(40,{e:D,method:"readText"}),this.navigatorApiFailed=!0,this.pasteFromClipboardLegacy()});else this.pasteFromClipboardLegacy()}pasteFromClipboardLegacy(){let G=!1,D=(z)=>{let B=Date.now();if(B-this.lastPasteOperationTime<50)G=!0,z.preventDefault();this.lastPasteOperationTime=B};this.executeOnTempElement((z)=>{z.addEventListener("paste",D),z.focus({preventScroll:!0})},(z)=>{let B=z.value;if(!G)this.processClipboardData(B);else this.refocusLastFocusedCell();z.removeEventListener("paste",D)})}refocusLastFocusedCell(){let{focusSvc:G}=this.beans,D=G.getFocusedCell();if(D)G.setFocusedCell({rowIndex:D.rowIndex,column:D.column,rowPinned:D.rowPinned,forceBrowserFocus:!0})}getClipboardDelimiter(){let G=this.gos.get("clipboardDelimiter");return EA(G)?G:"\t"}processClipboardData(G){if(G==null)return;let D=bA(G,this.getClipboardDelimiter()),z=this.gos.getCallback("processDataFromClipboard");if(z)D=z({data:D});if(D==null)return;if(this.gos.get("suppressLastEmptyLineOnPaste"))this.removeLastLineIfBlank(D);let{rangeSvc:B,editSvc:Q}=this.beans,J=(U,Z,S,X)=>{if(B?.isMoreThanOneCell()&&!this.hasOnlyOneValueToPaste(D))this.pasteIntoActiveRange(D,U,Z,X);else this.pasteStartingFromFocusedCell(D,U,Z,S,X);Q?.stopEditing(void 0,{source:h0})};this.doPasteOperation(J)}doPasteOperation(G){let{eventSvc:z,focusSvc:B,rowRenderer:Q,gos:J}=this.beans;z.dispatchEvent({type:"pasteStart",source:"clipboard"});let{clientSideRowModel:U}=this,Z=U?.rootNode,S=Z&&this.beans.changedPathFactory?.newPath(J.get("aggregateOnlyChangedColumns")),X={},Y=[],W=B.getFocusedCell();G(X,Y,W,S);let q=Y.slice();if(S)U.doAggregate(S),IA(Z,U.hierarchical,S,(H)=>{q.push(H)});Q.refreshCells({rowNodes:q}),this.dispatchFlashCells(X),this.fireRowChanged(Y),this.refocusLastFocusedCell(),z.dispatchEvent({type:"pasteEnd",source:"clipboard"})}getPreProcessRangeCallback(G){return(D)=>{let{rangeSvc:z}=this.beans;if(!z)return;let{rowDiff:B,colDiff:Q}=this.getAdjustedRangeDimensionForPaste(D,G);if(B!==0)z.extendRangeRowCountBy(D,B);if(Q!==0)z.extendRangeColumnCountBy(D,Q)}}getAdjustedRangeDimensionForPaste(G,D){let z=this.beans.rangeSvc,B=D.length,Q=z.getRangeRowCount(G),J=Q>=B&&Q%B===0,U=D[0].length,Z=G.columns.length,S=Z>=U&&Z%U===0;return{rowDiff:J?0:B-Q,colDiff:S?0:U-Z}}pasteIntoActiveRange(G,D,z,B){let Q=0,J=0,U=(Z,S,X,Y)=>{if(Y-Q>=G.length){if(Y%G.length!==0)return;Q+=J,J=0}let q=G[Y-Q];z.push(S);let H=this.gos.getCallback("processCellFromClipboard"),_=X.columns,k=_.findIndex(CA);if(k!==-1)_.splice(k,1);for(let w=0;w<_.length;w++){let K=_[w];if(!K.isCellEditable(S)||K.isSuppressPaste(S))continue;let f=w;if(w>=q.length)f=w%q.length;let N=this.processCell(S,K,q[f],D1,H,!0);S.setDataValue(K,N,h0),B?.addCell(S.parent,K.getId());let{rowIndex:F,rowPinned:E}=Z,I=lD({rowIndex:F,column:K,rowPinned:E});D[I]=!0}J++};this.iterateActiveRanges(U,!1,this.getPreProcessRangeCallback(G))}getDisplayedColumnsStartingAt(G){let D=G,z=[],{visibleCols:B}=this.beans;while(D&&VA(D))D=B.getColAfter(D);while(D!=null)z.push(D),D=B.getColAfter(D);return z}pasteStartingFromFocusedCell(G,D,z,B,Q){if(!B)return;let J={rowIndex:B.rowIndex,rowPinned:B.rowPinned},U=this.getDisplayedColumnsStartingAt(B.column);if(this.isPasteSingleValueIntoRange(G))this.pasteSingleValueIntoRange(G,z,D,Q);else this.pasteMultipleValues(G,J,z,U,D,z1,Q)}isPasteSingleValueIntoRange(G){let D=this.beans.rangeSvc;return this.hasOnlyOneValueToPaste(G)&&!!D&&!D.isEmpty()}pasteSingleValueIntoRange(G,D,z,B){let Q=G[0][0],J=(U,Z,S)=>{D.push(Z),S.columns.forEach((X)=>this.updateCellValue(Z,X,Q,z,z1,B))};this.iterateActiveRanges(J)}hasOnlyOneValueToPaste(G){return G.length===1&&G[0].length===1}copyRangeDown(){let{rangeSvc:G,gos:D,formula:z,valueSvc:B}=this.beans;if(!G||G.isEmpty())return;let Q=[],J=(U,Z,S,X)=>{let Y=D.getCallback("processCellForClipboard"),W=D.getCallback("processCellFromClipboard"),q=(H,_,k)=>{let{columns:w}=k;if(!Q.length)w.forEach((K)=>{let f=this.processCell(_,K,B.getValue(K,_,"batch"),D1,Y,!1,!0);Q.push(f)});else Z.push(_),w.forEach((K,f)=>{if(!K.isCellEditable(_)||K.isSuppressPaste(_))return;if(K.isAllowFormula()&&z?.isFormula(Q[f]))Q[f]=z?.updateFormulaByOffset({value:Q[f],rowDelta:1});let F=this.processCell(_,K,Q[f],D1,W,!0);_.setDataValue(K,F,h0),X?.addCell(_.parent,K.getId());let{rowIndex:E,rowPinned:I}=H,V=lD({rowIndex:E,column:K,rowPinned:I});U[V]=!0})};this.iterateActiveRanges(q,!0)};this.doPasteOperation(J)}removeLastLineIfBlank(G){let D=AA(G);if(D&&D.length===1&&D[0]===""){if(G.length===1)return;RA(G,D)}}fireRowChanged(G){if(this.gos.get("editType")!=="fullRow")return;for(let D of G)this.eventSvc.dispatchEvent({type:"rowValueChanged",node:D,data:D.data,rowIndex:D.rowIndex,rowPinned:D.rowPinned})}shouldSkipPasteRow(G,D,z){if(G.detail||G.footer)return!0;if(z&&G.group){for(let B of D)if(B.isCellEditable(G))return!1;return!0}return!1}pasteMultipleValues(G,D,z,B,Q,J,U){let Z=D,S=this.beans,{gos:X}=S,Y=this.clientSideRowModel!=null&&!X.get("enableGroupEdit")&&!X.get("treeData"),W=()=>{while(Z){let q=G1(S,Z);if(Z=eQ(S,{rowPinned:Z.rowPinned,rowIndex:Z.rowIndex}),q!=null&&!this.shouldSkipPasteRow(q,B,Y))return q}return null};for(let q of G){let H=W();if(!H)continue;q.forEach((_,k)=>this.updateCellValue(H,B[k],_,Q,J,U)),z.push(H)}}updateCellValue(G,D,z,B,Q,J){if(!G||!D?.isCellEditable(G)||D?.isSuppressPaste(G))return;let U=this.processCell(G,D,z,Q,this.gos.getCallback("processCellFromClipboard"),!0);G.setDataValue(D,U,h0);let{rowIndex:Z,rowPinned:S}=G,X=lD({rowIndex:Z,column:D,rowPinned:S});B[X]=!0,J?.addCell(G.parent,D.getId())}copyToClipboard(G={}){this.copyOrCutToClipboard(G)}cutToClipboard(G={},D="api"){if(this.gos.get("suppressCutToClipboard"))return;this.eventSvc.dispatchEvent({type:"cutStart",source:D}),this.copyOrCutToClipboard(G,!0),this.eventSvc.dispatchEvent({type:"cutEnd",source:D})}copyOrCutToClipboard(G,D){let{includeHeaders:z,includeGroupHeaders:B}=G,{gos:Q,focusSvc:J}=this.beans;if(z==null)z=Q.get("copyHeadersToClipboard");if(B==null)B=Q.get("copyGroupHeadersToClipboard");let U={includeHeaders:z,includeGroupHeaders:B},Z=Q.get("rowSelection"),S=Q.get("cellSelection"),X=null;if(this.shouldCopyCells(S,Z))this.copySelectedRangeToClipboard(U),X=0;else if(this.shouldCopyRows(Z))this.copySelectedRowsToClipboard(U),X=1;else if(J.isAnyCellFocused())this.copyFocusedCellToClipboard(U),X=2;if(D&&X!==null)this.clearCellsAfterCopy(X)}shouldCopyCells(G,D){let{rangeSvc:z,selectionSvc:B,gos:Q}=this.beans;if(!z||z.isEmpty())return!1;if(G)return!(typeof D==="object"&&D.copySelectedRows&&!B?.isEmpty());else{let J=Q.get("suppressCopySingleCellRanges");return!(!z.isMoreThanOneCell()&&J)}}shouldCopyRows(G){let{selectionSvc:D,gos:z}=this.beans;if(D?.isEmpty()??!0)return!1;if(G&&typeof G!=="string")return G.copySelectedRows??!1;else return!z.get("suppressCopyRowsToClipboard")}clearCellsAfterCopy(G){let D=this.beans,{rangeSvc:z,focusSvc:B,eventSvc:Q}=D;if(Q.dispatchEvent({type:"keyShortcutChangedCellStart"}),G===0)z.clearCellRangeCellValues({cellEventSource:"clipboardSvc"});else if(G===1)this.clearSelectedRows();else{let J=B.getFocusedCell();if(J==null)return;let U=G1(D,J);if(U)this.clearCellValue(U,J.column)}Q.dispatchEvent({type:"keyShortcutChangedCellEnd"})}clearSelectedRows(){let{selectionSvc:G,visibleCols:D}=this.beans,z=G?.getSelectedNodes()??[],B=D.allCols;for(let Q of z)for(let J of B)this.clearCellValue(Q,J)}clearCellValue(G,D){if(!D.isCellEditable(G))return;let z=this.beans.valueSvc.getDeleteValue(D,G);G.setDataValue(D,z,"clipboardSvc")}iterateActiveRanges(G,D,z){let B=this.beans.rangeSvc;if(!B||B.isEmpty())return;let Q=B.getCellRanges(),J=D?[Q[0]]:Q;for(let U of J)this.iterateActiveRange({cellRange:U,rowCallback:G,preProcessRange:z})}iterateActiveRange(G){let{cellRange:D,preProcessRange:z,rowCallback:B}=G,{beans:Q}=this,{rangeSvc:J}=Q;if(!J)return;if(z)z(D);let U=J.getRangeStartRow(D),Z=J.getRangeEndRow(D),S=0,X=!1;while(!X&&U!=null){let Y=G1(Q,U);X=H2(U,Z),B(U,Y,D,S++),U=eQ(Q,U)}}copySelectedRangeToClipboard(G={}){let D=this.beans.rangeSvc;if(!D||D.isEmpty())return;let z=D.areAllRangesAbleToMerge(),{data:B,cellsToFlash:Q}=z?this.buildDataFromMergedRanges(D,G):this.buildDataFromRanges(D,G);this.copyDataToClipboard(B),this.dispatchFlashCells(Q)}buildDataFromMergedRanges(G,D){let z=new Set,B=G.getCellRanges(),Q=new Map,J=[],U={},Z=q2(this.gos,this.beans.rowModel),S=new Set;if(!Z)this.beans.rowModel.forEachNode((q)=>{S.add(q.rowIndex)});for(let q of B){q.columns.forEach((k)=>z.add(k));let{rowPositions:H,cellsToFlash:_}=this.getRangeRowPositionsAndCellsToFlash(G,q);for(let k of H){let w=S.has(k.rowIndex);if(!Z&&!w)continue;let K=`${k.rowIndex}-${k.rowPinned||"null"}`;if(!Q.get(K))Q.set(K,!0),J.push(k)}Object.assign(U,_)}let X=this.beans.visibleCols.allCols,Y=Array.from(z);return Y.sort((q,H)=>{let _=X.indexOf(q),k=X.indexOf(H);return _-k}),{data:this.buildExportParams({columns:Y,rowPositions:J,includeHeaders:D.includeHeaders,includeGroupHeaders:D.includeGroupHeaders}),cellsToFlash:U}}buildDataFromRanges(G,D){let z=G.getCellRanges(),B=[],Q={};for(let J of z){let{rowPositions:U,cellsToFlash:Z}=this.getRangeRowPositionsAndCellsToFlash(G,J);Object.assign(Q,Z),B.push(this.buildExportParams({columns:J.columns,rowPositions:U,includeHeaders:D.includeHeaders,includeGroupHeaders:D.includeGroupHeaders}))}return{data:B.join(` `),cellsToFlash:Q}}getRangeRowPositionsAndCellsToFlash(G,D){let z=[],B={},Q=G.getRangeStartRow(D),J=G.getRangeEndRow(D),U=Q;while(U){z.push(U);for(let Z of D.columns){let{rowIndex:S,rowPinned:X}=U,Y=lD({rowIndex:S,column:Z,rowPinned:X});B[Y]=!0}if(H2(U,J))break;U=eQ(this.beans,U)}return{rowPositions:z,cellsToFlash:B}}getCellsToFlashFromRowNodes(G){let D=this.beans.visibleCols.allCols,z={};for(let B=0;B{let{value:W,valueFormatted:q}=this.beans.valueSvc.getValueForDisplay({column:Y,node:X,includeValueFormatted:!0,from:"batch"}),H=q??W??"",_=J.getCallback("processCellForClipboard");if(!_)return H;return _({column:Y,node:X,value:H,type:z1,formatValue:(k)=>this.beans.valueSvc.formatValue(Y,X,k)??k,parseValue:(k)=>this.beans.valueSvc.parseValue(Y,X,k,W)??k})},S={columnKeys:D,rowPositions:z,skipColumnHeaders:!B,skipColumnGroupHeaders:!Q,suppressQuotes:!0,columnSeparator:this.getClipboardDelimiter(),onlySelected:!z,valueFrom:"batch",processCellCallback:J.getCallback("processCellForClipboard"),processRowGroupCallback:Z,processHeaderCallback:J.getCallback("processHeaderForClipboard"),processGroupHeaderCallback:J.getCallback("processGroupHeaderForClipboard")};return U.getDataAsCsv(S,!0)}dispatchFlashCells(G){window.setTimeout(()=>{this.eventSvc.dispatchEvent({type:"flashCells",cells:G})},0)}processCell(G,D,z,B,Q,J,U){let{valueSvc:Z,formula:S}=this.beans;if(Q)return Q({column:D,node:G,value:z,type:B,formatValue:(Y)=>Z.formatValue(D,G??null,Y)??Y,parseValue:(Y)=>Z.parseValue(D,G??null,Y,Z.getValue(D,G,"edit"))});if(J&&D.getColDef().useValueParserForImport!==!1)return Z.parseValue(D,G??null,z,Z.getValue(D,G,"edit"));if(U&&D.getColDef().useValueFormatterForExport!==!1){if(S?.isFormula(z))return z;return Z.formatValue(D,G??null,z)??z}return z}copyDataToClipboard(G){let D=this.gos.getCallback("sendToClipboard");if(D){D({data:G});return}if(!this.gos.get("suppressClipboardApi")&&navigator.clipboard){navigator.clipboard.writeText(G).catch((B)=>{c0(40,{e:B,method:"writeText"}),this.copyDataToClipboardLegacy(G)});return}this.copyDataToClipboardLegacy(G)}copyDataToClipboardLegacy(G){this.executeOnTempElement((D)=>{let z=W2(this.beans),B=MA(this.beans);if(D.value=G||" ",D.select(),D.focus({preventScroll:!0}),!z.execCommand("copy"))c0(41);if(B?.focus!=null)B.focus({preventScroll:!0})})}executeOnTempElement(G,D){if(!this.gridCtrl)return;let z=W2(this.beans),B=z.createElement("textarea"),Q=B.style;Q.width="1px",Q.height="1px";let J=z.documentElement;Q.top=J.scrollTop+"px",Q.left=J.scrollLeft+"px",Q.position="absolute",Q.opacity="0",this.gridCtrl.getGui().appendChild(B);try{G(B)}catch(Z){c0(42)}if(D)window.setTimeout(()=>{D(B),B.remove()},100);else B.remove()}},nB={moduleName:"Clipboard",version:j,beans:[vA],apiFunctions:{copyToClipboard:_A,cutToClipboard:kA,copySelectedRowsToClipboard:wA,copySelectedRangeToClipboard:KA,copySelectedRangeDown:fA,pasteFromClipboard:NA},dependsOn:[i,WA,HA,qA]},jA=".ag-row-number-cell{background-color:var(--ag-header-background-color);border:none;color:var(--ag-header-text-color);font-family:var(--ag-header-font-family);font-size:var(--ag-header-font-size);font-weight:var(--ag-header-font-weight);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;width:100%}:where(.ag-ltr) .ag-row-number-cell{text-align:right}:where(.ag-rtl) .ag-row-number-cell{text-align:left}.ag-row-numbers-resizer{bottom:-2px;cursor:ns-resize;height:4px;position:absolute;width:100%}:where(.ag-ltr) .ag-row-numbers-resizer{left:0}:where(.ag-rtl) .ag-row-numbers-resizer{right:0}.ag-floating-bottom .ag-row-numbers-resizer{bottom:unset;top:-2px}:where(.ag-row-number-header.ag-row-number-selection-enabled){cursor:cell}.ag-row-number-range-highlight{background-color:var(--ag-range-header-highlight-color)}.ag-row-number-range-selected{background-color:var(--ag-row-numbers-selected-color)}:where(.ag-ltr){.ag-row-number-header,:where(.ag-cell.ag-row-number-cell):not(.ag-cell-last-left-pinned){border-right:var(--ag-pinned-column-border)}:where(.ag-cell.ag-row-number-cell.ag-row-number-selection-enabled){cursor:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxLjUiPjxwYXRoIGQ9Ik0zLjQ0NSA4LjkxMVY3LjQwOUg5Ljc1VjYuMDE0bDIuNTM1IDIuMTQ2LTIuNTM1IDIuMTQ2VjguOTExeiIgc3R5bGU9InN0cm9rZTojZmZmO3N0cm9rZS13aWR0aDouNDFweCIgdHJhbnNmb3JtPSJtYXRyaXgoMS41Nzg0IDAgMCAxLjg2NDI5IC00LjQxMyAtNy4yMTIpIi8+PC9zdmc+\"),auto}}:where(.ag-rtl){.ag-row-number-header,:where(.ag-cell.ag-row-number-cell):not(.ag-cell-first-right-pinned){border-left:var(--ag-pinned-column-border)}:where(.ag-cell.ag-row-number-cell.ag-row-number-selection-enabled){cursor:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxLjUiPjxwYXRoIGQ9Ik01Ljk3OSA4LjkxMXYxLjM5NUwzLjQ0NSA4LjE2bDIuNTM0LTIuMTQ2djEuMzk1aDYuMzA2djEuNTAyeiIgc3R5bGU9InN0cm9rZTojZmZmO3N0cm9rZS13aWR0aDouNDFweCIgdHJhbnNmb3JtPSJtYXRyaXgoMS41Nzg0IDAgMCAxLjg2NDI5IC00LjQxMyAtNy4yMTIpIi8+PC9zdmc+\"),auto}}",yA={tag:"div",cls:"ag-row-numbers-resizer"},xA=class extends PA{constructor(G){super(yA);this.cellCtrl=G,this.initialYPosition=-1,this.dragging=!1}postConstruct(){let{beans:G,cellCtrl:D}=this,{dragSvc:z,environment:B}=G;this.defaultRowHeight=B.getDefaultRowHeight(),z.addDragSource({dragStartPixels:0,eElement:this.getGui(),onDragStart:this.onDragStart.bind(this),onDragging:this.onDragging.bind(this),onDragStop:this.onDragStop.bind(this),onDragCancel:this.onDragCancel.bind(this),includeTouch:!0,stopPropagationForTouch:!0});let Q=D.getRowPosition();this.node=TA(this.beans,Q)}onDragStart(G){if(!this.node)return;let{beans:{ctrlsSvc:D,eventSvc:z}}=this;D.get("gridCtrl").setResizeCursor(gA.Vertical),this.dragging=!0,this.initialHeight=this.node.rowHeight,z.dispatchEvent({type:"rowResizeStarted",node:this.node,event:G,rowHeight:this.initialHeight})}onDragging(G){let{clientY:D}=G;if(this.cellCtrl.rowNode.rowPinned==="bottom")D*=-1;if(this.initialYPosition===-1||!this.dragging){this.initialYPosition=D;return}let{beans:z,initialHeight:B,initialYPosition:Q,defaultRowHeight:J,node:U}=this;if(B==null)return;let Z=U?.rowHeight,S=Math.max(B-(Q-D),J);if(Z===S)return;U?.setRowHeight(S);let{rowRenderer:X,rowModel:Y,pinnedRowModel:W}=z,q=!!U?.rowPinned;if(q)X.redraw({afterScroll:!0});if(!q||W?.isManual())Y.onRowHeightChanged({animate:!1})}onDragStop(G){this.beans.eventSvc.dispatchEvent({type:"rowResizeEnded",node:this.node,event:G,rowHeight:this.node?.rowHeight}),this.clearDragDetails(!0)}onDragCancel(){this.clearDragDetails(!0)}clearDragDetails(G){if(this.initialYPosition=-1,this.initialHeight=null,this.dragging=!1,G)this.beans.ctrlsSvc.get("gridCtrl").setResizeCursor(!1)}destroy(){this.clearDragDetails(!1),this.node=void 0,super.destroy()}};function e7(G){let D=zR(G);return!(!D||typeof D!=="object"||!D.enableRowResizer)}var QR=class{constructor(G,D){this.beans=G,this.cellCtrl=D}refreshRowResizer(){if(!e7(this.beans)||!this.isRowResizeSupported(this.cellCtrl.rowNode))this.removeRowResizerFromCellComp();else this.addResizerToCellComp()}isRowResizeSupported(G){let{pinnedRowModel:D,rowModel:z,visibleCols:B}=this.beans,Q=!!z.onRowHeightChanged;if(B.autoHeightCols.length)return BR(276),!1;if(G.rowPinned!=null)return D?.isManual()?Q:!0;return Q}addResizerToCellComp(){let{beans:G,cellCtrl:D}=this,{rowResizer:z}=this;if(!z){if(z=G.registry.createDynamicBean("rowNumberRowResizer",!1,D),!z)return;this.rowResizer=G.context.createBean(z)}D.comp.setRowResizerElement(z.getGui())}removeRowResizerFromCellComp(){let{rowResizer:G,beans:{context:D},cellCtrl:z}=this;if(!G)return;z.comp?.setRowResizerElement(null),this.rowResizer=D.destroyBean(G)}destroy(){this.removeRowResizerFromCellComp()}},JR=class extends hA{constructor(){super(...arguments);this.beanName="rowNumbersSvc",this.isIntegratedWithSelection=!1,this.lastColumnResized=0}postConstruct(){let G=tA(this,this.refreshCells.bind(this),10);this.addManagedEventListeners({columnResized:()=>{this.lastColumnResized=Date.now()},cellFocused:this.onGridCellFocused.bind(this),modelUpdated:(D)=>{G(!1,!D.keepRenderedRows)},rangeSelectionChanged:()=>this.refreshCells(!0),pinnedRowsChanged:()=>G(!1,!0)}),this.addManagedPropertyListeners(["rowNumbers","cellSelection"],(D)=>{this.updateColumns(D)}),this.refreshSelectionIntegration(),this.registerRangeSelectionExtension()}shouldSkipColumn(G){return pD(this.beans)&&wD(G)}isAllColumnsSelectionCell(G){return pD(this.beans)&&wD(G.column)}isAllColumnsRange(G,D){if(!pD(this.beans)||D.length===0)return!1;return G.columns.length===D.length&&D.every((z)=>G.columns.includes(z))}registerRangeSelectionExtension(){let G=this.beans.rangeSvc;if(!G)return;G.registerRangeSelectionExtension(this),this.addDestroyFunc(()=>G.unregisterRangeSelectionExtension?.(this))}addColumns(G){if(this.columns==null)return;G.list=this.columns.list.concat(G.list),G.tree=this.columns.tree.concat(G.tree),DR(G)}createColumns(G,D){let z=()=>{_2(this.beans,this.columns?.tree),this.columns=null},{beans:B}=this;if(!pD(B)){z();return}let Q=G.treeDepth,U=(this.columns?.treeDepth??-1)==Q,Z=this.generateRowNumberCols();if(lA(Z,this.columns?.list??[])&&U)return;z();let{colGroupSvc:X}=this.beans,Y=X?.findDepth(G.tree)??0,W=X?.balanceTreeForAutoCols(Z,Y)??[];this.columns={list:Z,tree:W,treeDepth:Y,map:{}},D((H)=>{if(!H)return null;let _=H.filter((k)=>!wD(k));return[...Z,..._]})}handleMouseDownOnCell(G,D){if(!this.isIntegratedWithSelection||D.target.classList.contains("ag-row-numbers-resizer")){if(this.beans.rangeSvc)D.preventDefault();return D.stopImmediatePropagation(),!1}if(!D.shiftKey&&!aA(this.beans,D))this.focusFirstRenderedCellAtRowPosition(G);return!0}handleKeyDownOnCell(G,D){if(!this.isIntegratedWithSelection)return!1;if(D.key===B1.ENTER)return this.selectRowCells(G,D),D.preventDefault(),!0;return!1}selectRowCells(G,D){let{rangeSvc:z}=this.beans;if(!z)return;z.handleCellKeyboardSelect(D,G)}updateColumns(G){let D=pA(G.source);this.refreshSelectionIntegration();for(let z of this.columns?.list??[]){let B=this.createRowNumbersColDef();z.setColDef(B,null,D),dA(this.beans,{state:[sA(B,z.getColId())]},D)}}getColumn(){return this.columns?.list.find(wD)??null}getColumns(){return this.columns?.list??null}setupForHeader(G){let{column:D,eGridHeader:z}=G.params;if(!wD(D))return;GR(z,"Row Number"),this.addManagedElementListeners(z,{click:this.onHeaderClick.bind(this),keydown:this.onHeaderKeyDown.bind(this),focus:this.onHeaderFocus.bind(this)})}onGridCellFocused(G){if(!this.isIntegratedWithSelection||G.rowIndex==null||!G.column||!wD(G.column))return;let z=this.getLocaleTextFunc()("ariaSelectAllRowCells","Press Enter to select all cells on this row");this.beans.ariaAnnounce?.announceValue(z,"ariaSelectAllRowCells")}createRowNumbersRowResizerFeature(G){if(!e7(this.beans))return;return new QR(this.beans,G)}refreshSelectionIntegration(){let{beans:G}=this,{gos:D,rangeSvc:z}=G,B=D.get("cellSelection");this.refreshRowNumberOverrides(),this.isIntegratedWithSelection=!!z&&!!B&&!this.isSuppressCellSelectionIntegration}refreshRowNumberOverrides(){let G=pD(this.beans);if(this.rowNumberOverrides={},this.isSuppressCellSelectionIntegration=!1,!G||typeof G!=="object")return;if(G.suppressCellSelectionIntegration)this.isSuppressCellSelectionIntegration=!0;let D=["contextMenuItems","context","onCellClicked","onCellContextMenu","onCellDoubleClicked","headerTooltip","headerStyle","headerComponent","headerComponentParams","suppressHeaderKeyboardEvent","suppressNavigable","tooltipField","tooltipValueGetter","tooltipComponent","tooltipComponentParams","tooltipComponentSelector","valueGetter","valueFormatter","width","maxWidth","minWidth","resizable","cellRenderer","cellRendererSelector","cellRendererParams"];for(let z of D)if(G[z]!=null)this.rowNumberOverrides[z]=G[z]}onHeaderFocus(){if(!this.isIntegratedWithSelection)return;let D=this.getLocaleTextFunc()("ariaSelectAllCells","Press Space or Enter to select all cells");this.beans.ariaAnnounce?.announceValue(D,"ariaSelectAllCells")}onHeaderKeyDown(G){if(!this.isIntegratedWithSelection||G.key!==B1.SPACE&&G.key!==B1.ENTER)return;G.preventDefault(),this.selectAllCellsFromHeader()}onHeaderClick(G){if(Date.now()-this.lastColumnResized<100||!this.isIntegratedWithSelection||this.getColumn()?.resizing)return;this.focusAllCellsFromHeaderClick()}selectAllCellsFromHeader(){eA(this.beans)}focusAllCellsFromHeaderClick(){this.selectAllCellsFromHeader(),this.focusFirstRenderedCellAtRowPosition()}refreshCells(G,D){let z=this.getColumn();if(!z)return;if(D){let B=this.beans.autoWidthCalc?.getPreferredWidthForElements([this.createDummyElement(z)],2);if(B!=null)this.beans.colResize?.setColumnWidths([{key:z,newWidth:B}],!1,!0,"rowNumbersService")}this.beans.rowRenderer.refreshCells({columns:[z],force:G})}createDummyElement(G){let D=mA({tag:"div",cls:"ag-cell-value ag-cell"}),z=String(this.beans.rowModel.getRowCount()+1);if(typeof this.rowNumberOverrides.valueFormatter==="function"){let B=nA(this.beans.gos,{data:void 0,value:z,node:null,column:G,colDef:G.colDef});z=this.rowNumberOverrides.valueFormatter(B)}return D.textContent=z,D}createRowNumbersColDef(){let{gos:G,contextMenuSvc:D}=this.beans,z=G.get("enableRtl");return{minWidth:60,width:60,resizable:!1,valueGetter:this.valueGetter.bind(this),contextMenuItems:this.isIntegratedWithSelection||!D?void 0:()=>[],...this.rowNumberOverrides,colId:iA,chartDataType:"excluded",suppressHeaderMenuButton:!0,sortable:!1,suppressMovable:!0,lockPinned:!0,pinned:z?"right":"left",lockPosition:z?"right":"left",editable:!1,suppressFillHandle:!0,suppressAutoSize:!0,suppressSizeToFit:!0,suppressHeaderContextMenu:!0,headerClass:this.getHeaderClass(),cellClass:this.getCellClass.bind(this),cellAriaRole:"rowheader"}}valueGetter(G){let D=G.node,z=this.beans.formula?.active,B=D?.pinnedSibling;if(D?.rowPinned&&B){let Q=z?B.formulaRowIndex:B.rowIndex;return`${Q==null?"-":Q+1}`}return String(((z?D?.formulaRowIndex:D?.rowIndex)||0)+1)}getHeaderClass(){let G=["ag-row-number-header"];if(this.isIntegratedWithSelection)G.push("ag-row-number-selection-enabled");return G}getCellClass(G){let{beans:D}=this,{rangeSvc:z,gos:B}=D,{node:Q}=G,J=["ag-row-number-cell"],U=B.get("cellSelection");if(!z||!U)return J;if(this.isIntegratedWithSelection)J.push("ag-row-number-selection-enabled");let Z=z.getCellRanges();if(!Z.length)return J;let S=this.beans.visibleCols.allCols.length-1,X=typeof U==="object"&&U.enableHeaderHighlight;for(let Y of Z)if(z.isRowInRange({rowIndex:Q.rowIndex,rowPinned:Q.rowPinned},Y)){if(X)J.push("ag-row-number-range-highlight");if(Y.columns.length===S)J.push("ag-row-number-range-selected")}return J}generateRowNumberCols(){let{gos:G,beans:D}=this;if(!pD(D))return[];let z=this.createRowNumbersColDef(),B=z.colId;G.validateColDef(z,B,!0);let Q=new cA(z,null,B,!1);return this.createBean(Q),[Q]}focusFirstRenderedCellAtRowPosition(G){let D=this.beans.editSvc;if(D?.isEditing()&&D.isRangeSelectionEnabledWhileEditing?.())return;if(!G){if(G=oA(this.beans),!G)return}let{beans:z,gos:B}=this,{visibleCols:Q,colViewport:J}=z,U=B.get("enableRtl")?Q.rightCols:Q.leftCols,Z;if(U.length==1){let W=rA(z,G);if(!W)return;Z=J.getColsWithinViewport(W)}else Z=U;let S=Z.find((W)=>!wD(W));if(!S)return;let{rowPinned:X,rowIndex:Y}=G;setTimeout(()=>{z.focusSvc.setFocusedCell({rowIndex:Y,rowPinned:X,column:S,forceBrowserFocus:!0,preventScrollOnBrowserFocus:!0})})}destroy(){_2(this.beans,this.columns?.tree),this.rowNumberOverrides=null,super.destroy()}},bJ={moduleName:"RowNumbers",version:j,beans:[JR],dynamicBeans:{rowNumberRowResizer:xA},dependsOn:[i,OA,uA],css:[jA]},SR={tag:"div",cls:"ag-filter-toolpanel-search",role:"presentation",children:[{tag:"div",ref:"eExpand",cls:"ag-filter-toolpanel-expand"},{tag:"ag-input-text-field",ref:"eFilterTextField",cls:"ag-filter-toolpanel-search-input"}]},XR=class extends $R{constructor(){super(...arguments);this.eExpand=w2,this.eFilterTextField=w2}postConstruct(){this.setTemplate(SR,[ZR]);let G=this.getLocaleTextFunc();this.eFilterTextField.setAutoComplete(!1).setInputAriaLabel(G("ariaFilterColumnsInput","Filter Columns Input")).onValueChange(this.onSearchTextChanged.bind(this)),this.createExpandIcons(),this.setExpandState(0),this.addManagedElementListeners(this.eExpand,{click:this.onExpandClicked.bind(this)}),this.addManagedEventListeners({newColumnsLoaded:this.showOrHideOptions.bind(this)})}init(G){if(this.params=G,this.beans.colModel.ready)this.showOrHideOptions()}createExpandIcons(){let{eExpand:G,beans:D}=this;G.appendChild(this.eExpandChecked=Q1("accordionOpen",D)),G.appendChild(this.eExpandUnchecked=Q1("accordionClosed",D)),G.appendChild(this.eExpandIndeterminate=Q1("accordionIndeterminate",D))}showOrHideOptions(){let{params:G,eFilterTextField:D}=this,z=!G.suppressFilterSearch,B=!G.suppressExpandAll,Q=this.getLocaleTextFunc();D.setInputPlaceholder(Q("searchOoo","Search..."));let J=(Z)=>Z.getOriginalParent()&&Z.isFilterAllowed(),U=this.beans.colModel.getCols().some(J);Tz(D.getGui(),z),Tz(this.eExpand,B&&U)}onSearchTextChanged(){if(!this.onSearchTextChangedDebounced)this.onSearchTextChangedDebounced=LR(this,()=>this.dispatchLocalEvent({type:"searchChanged",searchText:this.eFilterTextField.getValue()}),300);this.onSearchTextChangedDebounced()}onExpandClicked(){let G=this.currentExpandState===0?{type:"collapseAll"}:{type:"expandAll"};this.dispatchLocalEvent(G)}setExpandState(G){this.currentExpandState=G,Tz(this.eExpandChecked,G===0),Tz(this.eExpandUnchecked,G===1),Tz(this.eExpandIndeterminate,G===2)}},YR={selector:"AG-FILTERS-TOOL-PANEL-HEADER",component:XR},MR={tag:"div",cls:"ag-filter-toolpanel-instance",children:[{tag:"div",ref:"eFilterToolPanelHeader",cls:"ag-filter-toolpanel-header ag-filter-toolpanel-instance-header",role:"button",attrs:{"aria-expanded":"false"},children:[{tag:"div",ref:"eExpand",cls:"ag-filter-toolpanel-expand"},{tag:"span",ref:"eFilterName",cls:"ag-header-cell-text"},{tag:"span",ref:"eFilterIcon",cls:"ag-header-icon ag-filter-icon ag-filter-toolpanel-instance-header-icon"}]},{tag:"div",ref:"agFilterToolPanelBody",cls:"ag-filter-toolpanel-instance-body ag-filter"}]},D8=class extends KR{constructor(G,D){super(MR);this.hideHeader=G,this.expandedCallback=D,this.eFilterToolPanelHeader=yz,this.eFilterName=yz,this.agFilterToolPanelBody=yz,this.eFilterIcon=yz,this.eExpand=yz,this.expanded=!1}postConstruct(){let{beans:G,eExpand:D,eFilterIcon:z}=this,B=U1("accordionOpen",G);this.eExpandChecked=B;let Q=U1("accordionClosed",G);this.eExpandUnchecked=Q,D.appendChild(B),D.appendChild(Q);let J=this.getLocaleTextFunc();ER(z,J("ariaFilterActive","Filter Active")),IR(z,"img")}setColumn(G){this.column=G;let{beans:D,eFilterToolPanelHeader:z,eFilterIcon:B,eExpandChecked:Q,hideHeader:J}=this;if(this.eFilterName.innerText=D.colNames.getDisplayNameForColumn(G,"filterToolPanel",!1)||"",this.addManagedListeners(z,{click:this.toggleExpanded.bind(this),keydown:this.onKeyDown.bind(this)}),this.addManagedEventListeners({filterOpened:this.onFilterOpened.bind(this)}),this.addInIcon("filterActive",B,G),zD(B,this.isFilterActive()),zD(Q,!1),J)zD(z,!1),z.removeAttribute("tabindex");else z.setAttribute("tabindex","0");this.addManagedListeners(G,{filterChanged:this.onFilterChanged.bind(this)})}onKeyDown(G){let{key:D}=G,{ENTER:z,SPACE:B,LEFT:Q,RIGHT:J}=N2;if(D!==z&&D!==B&&D!==Q&&D!==J)return;if(G.preventDefault(),D===z||D===B)this.toggleExpanded();else if(D===N2.LEFT)this.collapse();else this.expand()}getColumn(){return this.column}getColumnFilterName(){return this.beans.colNames.getDisplayNameForColumn(this.column,"filterToolPanel",!1)}addCssClassToTitleBar(G){this.eFilterToolPanelHeader.classList.add(G)}addInIcon(G,D,z){if(D==null)return;let B=U1(G,this.beans,z);D.appendChild(B)}isFilterActive(){return!!this.beans.colFilter?.isFilterActive(this.column)}onFilterChanged(){zD(this.eFilterIcon,this.isFilterActive()),this.dispatchLocalEvent({type:"filterChanged"})}toggleExpanded(){if(this.expanded)this.collapse();else this.expand()}expand(){if(this.expanded)return;this.expanded=!0,F2(this.eFilterToolPanelHeader,!0),zD(this.eExpandChecked,!0),zD(this.eExpandUnchecked,!1),this.addFilterElement(),this.expandedCallback()}addFilterElement(G){let D=FR({tag:"div",cls:"ag-filter-toolpanel-instance-filter"}),z=this.createManagedBean(new fR(this.column,"TOOLBAR"));if(this.filterComp=z,!z.hasFilter())return;z.getFilter()?.then((B)=>{if(this.underlyingFilter=B,!B)return;D.appendChild(z.getGui()),this.agFilterToolPanelBody.appendChild(D),z.afterGuiAttached({container:"toolPanel",suppressFocus:G})})}collapse(){if(!this.expanded)return;this.expanded=!1,F2(this.eFilterToolPanelHeader,!1),this.removeFilterElement(),zD(this.eExpandChecked,!1),zD(this.eExpandUnchecked,!0);let G=this.filterComp;G?.afterGuiDetached(),this.destroyBean(G),this.expandedCallback()}removeFilterElement(){NR(this.agFilterToolPanelBody)}isExpanded(){return this.expanded}onPanelHidden(){if(!this.expanded)return;let G=this.underlyingFilter;if(!G)return;G.afterGuiDetached?.()}onFilterOpened(G){if(G.source!=="COLUMN_MENU")return;if(G.column!==this.column)return;if(!this.expanded)return;this.collapse()}},BD=class extends AR{constructor(G,D,z,B,Q){super();this.columnGroup=G,this.childFilterComps=D,this.expandedCallback=z,this.depth=B,this.showingColumn=Q,this.filterGroupComp=RR}postConstruct(){let G={cssIdentifier:"filter-toolpanel",direction:"vertical"};this.setTemplate({tag:"div",cls:"ag-filter-toolpanel-group-wrapper",children:[{tag:"ag-group-component",ref:"filterGroupComp"}]},[p],{filterGroupComp:G}),this.setGroupTitle();let{filterGroupComp:D,depth:z,childFilterComps:B,gos:Q}=this;D.setAlignItems("stretch"),D.addCss(`ag-filter-toolpanel-group-level-${z}`),D.getGui().style.setProperty("--ag-indentation-level",String(z)),D.addCssClassToTitleBar(`ag-filter-toolpanel-group-level-${z}-header`);for(let U of B)D.addItem(U),U.addCssClassToTitleBar(`ag-filter-toolpanel-group-level-${z+1}-header`),U.getGui().style.setProperty("--ag-indentation-level",String(z+1));let J=this.showingColumn?this.columnGroup:void 0;this.tooltipFeature=this.createOptionalManagedBean(this.beans.registry.createDynamicBean("tooltipFeature",!1,{getGui:()=>this.getGui(),getLocation:()=>"filterToolPanelColumnGroup",shouldDisplayTooltip:bR(Q,()=>D.getGui().querySelector(".ag-group-title")),getAdditionalParams:()=>({colDef:J?.getColDef(),column:J})})),this.refreshFilterClass(),this.addExpandCollapseListeners(),this.addFilterChangedListeners(),this.setupTooltip(),this.addInIcon("filterActive")}setupTooltip(){if(!this.showingColumn)return;let G=()=>{this.tooltipFeature?.setTooltipAndRefresh(this.columnGroup.getColDef().headerTooltip)};G(),this.addManagedEventListeners({newColumnsLoaded:G})}addCssClassToTitleBar(G){this.filterGroupComp.addCssClassToTitleBar(G)}onPanelHidden(){for(let G of this.childFilterComps)G.onPanelHidden()}isColumnGroup(){return i0(this.columnGroup)}isExpanded(){return this.filterGroupComp.isExpanded()}getChildren(){return this.childFilterComps}getFilterGroupName(){return this.filterGroupName??""}getFilterGroupId(){return this.columnGroup.getId()}hideGroupItem(G,D){this.filterGroupComp.hideItem(G,D)}hideGroup(G){this.setDisplayed(!G)}addInIcon(G){let D=VR(G,this.beans);if(D){D.classList.add("ag-filter-toolpanel-group-instance-header-icon");let z=this.getLocaleTextFunc();vR(D,z("ariaFilterActive","Filter Active")),OR(D,"img")}this.filterGroupComp.addTitleBarWidget(D)}forEachToolPanelFilterChild(G){for(let D of this.childFilterComps)if(D instanceof D8)G(D)}addExpandCollapseListeners(){let G=this.isColumnGroup()?()=>this.expandedCallback():()=>this.forEachToolPanelFilterChild((z)=>z.expand()),D=this.isColumnGroup()?()=>this.expandedCallback():()=>this.forEachToolPanelFilterChild((z)=>z.collapse());this.addManagedListeners(this.filterGroupComp,{expanded:G,collapsed:D})}getColumns(){if(i0(this.columnGroup))return this.columnGroup.getLeafColumns();return[this.columnGroup]}addFilterChangedListeners(){for(let G of this.getColumns())this.addManagedListeners(G,{filterChanged:()=>this.refreshFilterClass()});if(!i0(this.columnGroup))this.addManagedEventListeners({filterOpened:this.onFilterOpened.bind(this)})}refreshFilterClass(){let G=this.getColumns(),D=()=>G.some((z)=>z.isFilterActive());this.filterGroupComp.toggleCss("ag-has-filter",D())}onFilterOpened(G){if(G.source!=="COLUMN_MENU")return;if(G.column!==this.columnGroup)return;if(!this.isExpanded())return;this.collapse()}expand(){this.filterGroupComp.toggleGroupExpand(!0)}collapse(){this.filterGroupComp.toggleGroupExpand(!1)}setGroupTitle(){let G=this.columnGroup,D=i0(G)?this.getColumnGroupName(G):this.getColumnName(G);this.filterGroupName=D,this.filterGroupComp.setTitle(D||"")}getColumnGroupName(G){return this.beans.colNames.getDisplayNameForProvidedColumnGroup(null,G,"filterToolPanel")}getColumnName(G){return this.beans.colNames.getDisplayNameForColumn(G,"filterToolPanel",!1)}destroyFilters(){this.childFilterComps=this.destroyBeans(this.childFilterComps),CR(this.getGui())}destroy(){this.destroyFilters(),super.destroy()}},uR=class extends WR{constructor(){super({tag:"div",cls:"ag-filter-list-panel"});this.initialised=!1,this.hasLoadedInitialState=!1,this.isInitialState=!1,this.filterGroupComps=[],this.suppressOnColumnsChanged=!1,this.onColumnsChangedPending=!1}wireBeans(G){this.colModel=G.colModel}init(G){this.initialised=!0;let D=qR(this.gos,{suppressExpandAll:!1,suppressFilterSearch:!1,suppressSyncLayoutWithGrid:!1});if(kR(D,G),this.params=D,!D.suppressSyncLayoutWithGrid)this.addManagedEventListeners({columnMoved:()=>this.onColumnsChanged()});if(this.addManagedEventListeners({newColumnsLoaded:()=>this.onColumnsChanged(),toolPanelVisibleChanged:(z)=>{if(z.key==="filters"&&!z.visible)this.onPanelHidden()},dragStarted:()=>{this.suppressOnColumnsChanged=!0},dragStopped:()=>{if(this.suppressOnColumnsChanged=!1,this.onColumnsChangedPending)this.onColumnsChangedPending=!1,this.onColumnsChanged()}}),this.colModel.ready)this.onColumnsChanged()}onColumnsChanged(){if(this.suppressOnColumnsChanged){this.onColumnsChangedPending=!0;return}let G=this.colModel.isPivotMode();if(!this.params.suppressSyncLayoutWithGrid&&!G)this.syncFilterLayout();else this.buildTreeFromProvidedColumnDefs();this.refreshAriaLabel()}syncFilterLayout(){Q7(this.colModel,this.setFiltersLayout.bind(this)),this.refreshAriaLabel()}buildTreeFromProvidedColumnDefs(){let G=this.colModel.getColDefColTree();this.recreateFilters(G)}setFiltersLayout(G){let D=B7(this.colModel,G);this.recreateFilters(D)}recreateFilters(G){let D=_R(this.beans);if(!this.hasLoadedInitialState)this.hasLoadedInitialState=!0,this.isInitialState=!!this.params.initialState;let z=this.getExpansionState();this.destroyFilters();let B=this.recursivelyAddComps(G,0,z);this.filterGroupComps=B;let Q=B.length;if(Q){for(let U of B)this.appendChild(U);this.setFirstAndLastVisible(0,Q-1)}let J=this.searchFilterText;if(J1(J))this.searchFilters(J);if(this.fireExpandedEvent(),this.getGui().contains(D))D.focus();this.isInitialState=!1,this.refreshAriaLabel()}recursivelyAddComps(G,D,z){return G.map((B)=>{if(f2(B))return this.recursivelyAddFilterGroupComps(B,D,z)?.flatMap((S)=>S)??[];let Q=B;if(!this.shouldDisplayFilter(Q))return[];let U=new D8(D===0,()=>this.onFilterExpanded());if(this.createBean(U),U.setColumn(Q),z.get(Q.getId()))U.expand();if(D>0)return U;let Z=this.createBean(new BD(Q,[U],this.onGroupExpanded.bind(this),D,!0));if(Z.addCssClassToTitleBar("ag-filter-toolpanel-header"),!z.get(Z.getFilterGroupId()))Z.collapse();return Z}).flatMap((B)=>B)}refreshAriaLabel(){let G=this.getLocaleTextFunc(),D=G("ariaFilterPanelList","Filter List"),z=G("filters","Filters"),B=this.getGui(),Q=".ag-filter-toolpanel-group-wrapper",J=".ag-filter-toolpanel-group-item",U=".ag-hidden",S=B.querySelectorAll(".ag-filter-toolpanel-group-item:not(.ag-filter-toolpanel-group-wrapper, .ag-hidden)").length;wR(this.getAriaElement(),`${D} ${S} ${z}`)}recursivelyAddFilterGroupComps(G,D,z){if(!this.filtersExistInChildren(G.getChildren()))return;if(G.getColGroupDef()?.suppressFiltersToolPanel)return[];let Q=G.isPadding()?D:D+1,J=this.recursivelyAddComps(G.getChildren(),Q,z).flatMap((S)=>S);if(G.isPadding())return J;let U=new BD(G,J,this.onGroupExpanded.bind(this),D,!1);this.createBean(U),U.addCssClassToTitleBar("ag-filter-toolpanel-header");let Z=z.get(U.getFilterGroupId());if(this.isInitialState&&!Z||Z===!1)U.collapse();return[U]}filtersExistInChildren(G){return G.some((D)=>{if(f2(D))return this.filtersExistInChildren(D.getChildren());return this.shouldDisplayFilter(D)})}shouldDisplayFilter(G){let D=G.getColDef()?.suppressFiltersToolPanel;return G.isFilterAllowed()&&!D}getExpansionState(){let G=new Map;if(this.isInitialState){let{expandedColIds:z,expandedGroupIds:B}=this.params.initialState;for(let Q of z)G.set(Q,!0);for(let Q of B)G.set(Q,!0);return G}let D=(z)=>{G.set(z.getFilterGroupId(),z.isExpanded());for(let B of z.getChildren())if(B instanceof BD)D(B);else G.set(B.getColumn().getId(),B.isExpanded())};return this.filterGroupComps.forEach(D),G}refresh(){}setVisible(G){if(super.setDisplayed(G),G&&!this.initialised)this.init(this.params)}expandFilterGroups(G,D){let z=[],B=(Q)=>{let J=Q.getFilterGroupId();if(!D||D.includes(J)){if(G&&Q.isColumnGroup())Q.expand();else Q.collapse();z.push(J)}for(let Z of Q.getChildren())if(Z instanceof BD)B(Z)};if(this.filterGroupComps.forEach(B),this.onGroupExpanded(),D){let Q=D.filter((J)=>z.indexOf(J)<0);if(Q.length>0)K2(166,{unrecognisedGroupIds:Q})}}expandFilters(G,D){let z=[],B=(Q)=>{if(Q instanceof BD){let Z=!1;for(let S of Q.getChildren())if(B(S)){if(G)Q.expand(),Z=!0;else if(!Q.isColumnGroup())Q.collapse()}return Z}let J=Q.getColumn().getColId(),U=!D||D.includes(J);if(U){if(G)Q.expand();else Q.collapse();z.push(J)}return U};if(this.filterGroupComps.forEach(B),this.onGroupExpanded(),D){let Q=D.filter((J)=>z.indexOf(J)<0);if(Q.length>0)K2(167,{unrecognisedColIds:Q})}}onGroupExpanded(){this.fireExpandedEvent()}onFilterExpanded(){this.dispatchLocalEvent({type:"filterExpanded"})}fireExpandedEvent(){let G=0,D=0,z=(Q)=>{if(!Q.isColumnGroup())return;if(Q.isExpanded())G++;else D++;for(let J of Q.getChildren())if(J instanceof BD)z(J)};this.filterGroupComps.forEach(z);let B;if(G>0&&D>0)B=2;else if(D>0)B=1;else B=0;this.dispatchLocalEvent({type:"groupExpanded",state:B})}performFilterSearch(G){this.searchFilterText=J1(G)?G.toLowerCase():null,this.searchFilters(this.searchFilterText)}searchFilters(G){let D=(J)=>{return!J1(G)||J.toLowerCase().indexOf(G)!==-1},z=(J,U)=>{if(!(J instanceof BD))return D(J.getColumnFilterName()||"");let Z=J.getChildren(),S=D(J.getFilterGroupName()),X=U||S;if(X){J.hideGroup(!1);for(let W=0;W{let H=z(W,U);if(J.hideGroupItem(!H,q),H)Y=!0}),J.hideGroup(!Y),Y},B,Q;this.filterGroupComps.forEach((J,U)=>{z(J,!1);let Z=J.getGui()?.classList.contains("ag-hidden");if(B===void 0){if(!Z)B=U,Q=U}else if(!Z&&Q!==U)Q=U}),this.setFirstAndLastVisible(B,Q),this.refreshAriaLabel()}setFirstAndLastVisible(G,D){this.filterGroupComps.forEach((z,B)=>{if(z.removeCss("ag-first-group-visible"),z.removeCss("ag-last-group-visible"),B===G)z.addCss("ag-first-group-visible");if(B===D)z.addCss("ag-last-group-visible")})}onPanelHidden(){for(let G of this.filterGroupComps)G.onPanelHidden()}getExpandedFiltersAndGroups(){let G=[],D=new Set,z=(B)=>{if(B instanceof BD){for(let J of B.getChildren())z(J);let Q=B.getFilterGroupId();if(B.isExpanded()&&!D.has(Q))G.push(Q)}else if(B.isExpanded())D.add(B.getColumn().getColId())};return this.filterGroupComps.forEach(z),{expandedGroupIds:G,expandedColIds:Array.from(D)}}destroyFilters(){this.filterGroupComps=this.destroyBeans(this.filterGroupComps),HR(this.getGui())}destroy(){this.destroyFilters(),super.destroy()}},jR={selector:"AG-FILTERS-TOOL-PANEL-LIST",component:uR},PR=".ag-filter-toolpanel{flex:1 1 0px;min-width:0}.ag-filter-toolpanel-header,.ag-filter-toolpanel-search{align-items:center;color:var(--ag-header-text-color);display:flex;font-weight:var(--ag-header-font-weight);padding:0 var(--ag-spacing);>:where(.ag-filter-icon),>:where(.ag-filter-toolpanel-expand),>:where(.ag-filter-toolpanel-search-input),>:where(.ag-header-cell-text){align-items:center;display:flex}}.ag-filter-toolpanel-header{padding-bottom:var(--ag-spacing);padding-top:var(--ag-spacing);position:relative;&:focus-visible{border-radius:var(--ag-border-radius);box-shadow:inset var(--ag-focus-shadow)}}:where(.ag-ltr) .ag-filter-toolpanel-group-instance-header-icon,:where(.ag-ltr) .ag-filter-toolpanel-instance-header-icon{margin-left:var(--ag-spacing)}:where(.ag-rtl) .ag-filter-toolpanel-group-instance-header-icon,:where(.ag-rtl) .ag-filter-toolpanel-instance-header-icon{margin-right:var(--ag-spacing)}.ag-filter-toolpanel-search{min-height:var(--ag-header-height);padding-bottom:var(--ag-spacing);padding-top:var(--ag-widget-container-vertical-padding)}:where(.ag-filter-toolpanel-group:not(.ag-has-filter)>.ag-group-title-bar) .ag-filter-toolpanel-group-instance-header-icon{display:none}.ag-filter-toolpanel-search-input{flex-grow:1;height:calc(var(--ag-spacing)*4)}:where(.ag-ltr) .ag-filter-toolpanel-group-title-bar-icon{margin-right:var(--ag-spacing)}:where(.ag-rtl) .ag-filter-toolpanel-group-title-bar-icon{margin-left:var(--ag-spacing)}.ag-filter-toolpanel-expand{cursor:pointer}:where(.ag-ltr) .ag-filter-toolpanel-expand{margin-right:var(--ag-spacing)}:where(.ag-rtl) .ag-filter-toolpanel-expand{margin-left:var(--ag-spacing)}:where(.ag-ltr) .ag-filter-toolpanel-group-title-bar,:where(.ag-ltr) .ag-filter-toolpanel-instance-header{padding-left:calc(var(--ag-spacing) + var(--ag-filter-tool-panel-group-indent)*var(--ag-indentation-level))}:where(.ag-rtl) .ag-filter-toolpanel-group-title-bar,:where(.ag-rtl) .ag-filter-toolpanel-instance-header{padding-right:calc(var(--ag-spacing) + var(--ag-filter-tool-panel-group-indent)*var(--ag-indentation-level))}:where(.ag-ltr) .ag-filter-toolpanel-instance-body{margin-left:var(--ag-filter-tool-panel-group-indent)}:where(.ag-rtl) .ag-filter-toolpanel-instance-body{margin-right:var(--ag-filter-tool-panel-group-indent)}.ag-filter-toolpanel-instance-filter{background-color:var(--ag-chrome-background-color)}.ag-filter-toolpanel-group-level-0{border-top:none}",gR={tag:"div",cls:"ag-filter-toolpanel",children:[{tag:"ag-filters-tool-panel-header",ref:"filtersToolPanelHeaderPanel"},{tag:"ag-filters-tool-panel-list",ref:"filtersToolPanelListPanel"}]},TR=class extends UR{constructor(){super(gR,[YR,jR]);this.filtersToolPanelHeaderPanel=k2,this.filtersToolPanelListPanel=k2,this.initialised=!1,this.listenerDestroyFuncs=[],this.registerCSS(PR)}init(G){if(this.initialised){for(let Z of this.listenerDestroyFuncs)Z();this.listenerDestroyFuncs=[]}this.initialised=!0;let z={...{suppressExpandAll:!1,suppressFilterSearch:!1,suppressSyncLayoutWithGrid:!1},...G};this.params=z;let{filtersToolPanelHeaderPanel:B,filtersToolPanelListPanel:Q}=this;B.init(z),Q.init(z);let{suppressExpandAll:J,suppressFilterSearch:U}=z;if(J&&U)B.setDisplayed(!1);this.listenerDestroyFuncs.push(...this.addManagedListeners(B,{expandAll:()=>Q.expandFilterGroups(!0),collapseAll:()=>Q.expandFilterGroups(!1),searchChanged:(Z)=>Q.performFilterSearch(Z.searchText)}),...this.addManagedListeners(Q,{filterExpanded:z.onStateUpdated,groupExpanded:(Z)=>{B.setExpandState(Z.state),z.onStateUpdated()}}))}setVisible(G){if(super.setDisplayed(G),G&&!this.initialised)this.init(this.params)}setFilterLayout(G){this.filtersToolPanelListPanel.setFiltersLayout(G)}expandFilterGroups(G){this.filtersToolPanelListPanel.expandFilterGroups(!0,G)}collapseFilterGroups(G){this.filtersToolPanelListPanel.expandFilterGroups(!1,G)}expandFilters(G){this.filtersToolPanelListPanel.expandFilters(!0,G)}collapseFilters(G){this.filtersToolPanelListPanel.expandFilters(!1,G)}syncLayoutWithGrid(){this.filtersToolPanelListPanel.syncFilterLayout()}refresh(G){return this.init(G),!0}getState(){return this.filtersToolPanelListPanel.getExpandedFiltersAndGroups()}},cR=class extends yR{constructor(){super(...arguments);this.beanName="filterPanelSvc",this.states=new Map,this.orderedStates=[],this.initialStateApplied=!1,this.columnsLoaded=!1,this.isActive=!1}postConstruct(){if(!this.gos.get("enableFilterHandlers"))return;let G=this.updateFilterStates.bind(this),D=()=>this.dispatchStatesUpdates(void 0,!0),z=this.onFilterDestroyed.bind(this);this.addManagedEventListeners({newColumnsLoaded:()=>{if(this.columnsLoaded=!0,!this.initialStateApplied)this.applyState();G()},dataTypesInferred:G,filterChanged:G,filterDestroyed:z,filterHandlerDestroyed:z,filterOpened:D,filterClosed:D});let B=({column:Q})=>{this.states.get(Q.getColId())?.refresh?.(),D()};this.addManagedListeners(this.beans.colFilter,{filterStateChanged:B,filterModelAsStringChanged:B})}updateParams(G,D){this.params=G;let z=!1;if(D){if(this.currState=D,this.columnsLoaded){let B=new Set(D.filters?.map((Q)=>Q.colId));for(let Q of this.getIds())if(!B.has(Q))this.remove(Q);this.clear(),this.applyState(),this.updateFilterStates(),z=!0}}if(!z)this.dispatchStatesUpdates();this.beans.colFilter?.setGlobalButtons(!!G.buttons?.length)}getIds(){return Array.from(this.states.keys())}getAvailable(){let G=this.beans,D=[];for(let z of G.colModel.getColDefCols()??[]){let B=z.getColId();if(z.isFilterAllowed()&&!z.colDef.suppressFiltersToolPanel&&!this.states.get(B))D.push({id:B,name:E2(G,z)})}return D}add(G){this.createFilter(G,!0),this.dispatchStatesUpdates(G)}remove(G){let{states:D,orderedStates:z,beans:{colFilter:B,selectableFilter:Q}}=this,J=D.get(G);if(!J)return;J.destroy?.();let U=J.state.column;D.delete(G),Q?.clearActive(G),B?.destroyFilter(U),this.eventSvc.dispatchEvent({type:"filterSwitched",column:U});let Z=z.indexOf(G);z.splice(Z,1);let S=z[Z];this.dispatchStatesUpdates(S)}getState(G){return this.states.get(G)?.state}updateFilterState(G,D,z,B){let Q=this.getState(G);if(!Q)return;if(Q[D]=z,!B)this.dispatchLocalEvent({type:"filterPanelStateChanged",id:G,state:Q})}expand(G,D){let z=this.states.get(G);if(!z)return;z.destroy?.();let{handler:B,state:{column:Q}}=z,J=this.createFilterState(Q,B,D);this.states.set(G,J),this.dispatchLocalEvent({type:"filterPanelStateChanged",id:G,state:J.state})}updateType(G,D){let z=this.states.get(G);if(!z)return;let B=z.state;if(B.expanded===!1)return;let Q=B.filterDefs;if(!Q)return;let{colFilter:J,selectableFilter:U}=this.beans;U?.setActive(G,Q,D),J.filterParamsChanged(G,"columnFilter");let Z=B.column;this.eventSvc.dispatchEvent({type:"filterSwitched",column:Z});let S=this.states.get(G);if(!S)return;let X=S.state;this.dispatchLocalEvent({type:"filterPanelStateChanged",id:G,state:X})}getActions(){let G=this.params?.buttons;if(!G?.length)return;let D=!!this.beans.colFilter?.canApplyAll();return{actions:G,canApply:D}}doAction(G){this.beans.colFilter?.updateAllModels(G)}getGridState(){let G=[];return this.states.forEach((D,z)=>{G.push({colId:z,expanded:D.state.expanded})}),{filters:G}}createFilter(G,D){let z=this.createFilterStateWrapper(G,D);if(z)this.states.set(G,z),this.orderedStates.push(G)}createFilterStateWrapper(G,D){let{colModel:z,colFilter:B}=this.beans,Q=z.getColDefCol(G);if(Q&&!Q.colDef.suppressFiltersToolPanel){let J=B.getHandler(Q,!0);if(J)return this.createFilterState(Q,J,D)}return}updateFilterStates(){if(!this.params)return;let G=this.beans.colFilter.getModel(),D=new Set;for(let z of Object.keys(G)){let B=this.states.get(z);if(!B)this.createFilter(z);else B.refresh?.();D.add(z)}this.states.forEach((z,B)=>{if(!D.has(B))z.refresh?.()}),this.dispatchStatesUpdates()}createFilterState(G,D,z){let B=this.beans,{colFilter:Q,selectableFilter:J}=B,U=E2(B,G),Z=G.getColId(),S=()=>!!this.params?.buttons&&Q.hasUnappliedModel(Z),X=S();if(z){let Y=G.colDef,{filterDefs:W,activeFilterDef:q}=J?.getDefs(G,Y)??{},H=this.createBean(new xR(G,"TOOLBAR",!0));return{state:{column:G,name:U,isEditing:X,expanded:z,detail:H.getGui(),activeFilterDef:q,filterDefs:W,afterGuiAttached:H.afterGuiAttached.bind(H),afterGuiDetached:H.afterGuiDetached.bind(H)},handler:D,refresh:()=>{this.updateFilterState(Z,"isEditing",S())},destroy:()=>this.destroyBean(H)}}else{let Y=G.getColId(),W=()=>D.getModelAsString?.(Q.getStateForColumn(Y).model,"filterToolPanel")??"";return{state:{column:G,name:U,isEditing:X,expanded:!1,summary:W()},handler:D,refresh:()=>{this.updateFilterState(Y,"isEditing",S(),!0),this.updateFilterState(Y,"summary",W())}}}}onFilterDestroyed({column:G,source:D}){let{colFilter:z,filterManager:B}=this.beans;if(!z?.isAlive()||!B?.isFilterAllowed(G))return;let Q=this.states,J=G.getColId(),U=Q.get(J);if(U){let Z=this.createFilterStateWrapper(J,U.state.expanded);if(Z)U.destroy?.(),Q.set(J,Z);else this.remove(J);if(D==="api")this.dispatchStatesUpdates()}}dispatchStatesUpdates(G,D){this.dispatchLocalEvent({type:"filterPanelStatesChanged",activeId:G,action:D})}applyState(){if(this.params&&this.columnsLoaded){this.initialStateApplied=!0;for(let{colId:G,expanded:D}of this.currState?.filters??[])this.createFilter(G,D)}}destroy(){this.clear(),this.params=void 0,this.currState=void 0,super.destroy()}clear(){let{states:G,orderedStates:D}=this;G.forEach((z)=>z.destroy?.()),G.clear(),D.length=0}};function E2(G,D){return G.colNames.getDisplayNameForColumn(D,"filterToolPanel")??D.getColId()}var sR={addFilterCard:"Add Filter",ariaLabelAddFilterField:"Add Filter Field",ariaLabelFilterCardDelete:"Delete Filter",ariaLabelFilterCardHasEdits:"Has Edits",agTextColumnFilterDisplayName:"Simple Filter",agNumberColumnFilterDisplayName:"Simple Filter",agDateColumnFilterDisplayName:"Simple Filter",agSetColumnFilterDisplayName:"Selection Filter",agMultiColumnFilterDisplayName:"Combo Filter",addFilterPlaceholder:"Search columns..."};function zz(G,D){return tR(G,sR,D)}function oR(G,D,z){let B=0;for(let Q=0;Q{let{filter:F,filterParams:E,name:I,filterValueGetter:V=S.filterValueGetter}=N,A=H?{...H,...E}:E,R;if(Y&&W)if(F==="agMultiColumnFilter")R=B.multiFilter?.getParamsForDataType(A,V,Y,W);else R=dR(F,A,V,Y,W,B,this.getLocaleTextFunc());let O;if(!I){let u=F;if(typeof F==="boolean")u=U?.getDefaultFilterFromDataType(()=>X);if(typeof u==="string")O=zz(this,`${u}DisplayName`);else pR(280,{colId:G.getColId()}),O=""}if(H||R||O)return{...N,filterParams:A,name:O??I,...R};return N},w=(q??this.getDefaultFilters(G)).map(k),K=z??this.selectedFilters.get(G.getColId())??_??(!q&&lR(Q)?1:0);if(K>=w.length)K=0;let f=w[K];return{filterDefs:w,activeFilterDef:f}}setActive(G,D,z,B){let Q=D.indexOf(z);if(Q<0)return;let{selectedFilters:J,valueGetters:U}=this;J.set(G,Q);let Z=z.filterValueGetter;if(Z)U.set(G,Z);else U.delete(G);if(!B)this.onChange()}clearActive(G){let{selectedFilters:D,valueGetters:z}=this;D.delete(G),z.delete(G),this.onChange()}getState(){return Object.fromEntries(this.selectedFilters)}setState(G){this.clearAll();let D=this.beans.colModel;for(let z of Object.keys(G)){let B=D.getColDefCol(z);if(B){let Q=this.getDefs(B,B.colDef,G[z]);if(Q)this.setActive(z,Q.filterDefs,Q.activeFilterDef,!0)}}}destroy(){this.clearAll(),super.destroy()}clearAll(){let{selectedFilters:G,valueGetters:D}=this;G.clear(),D.clear()}onChange(){this.dispatchLocalEvent({type:"selectedFilterChanged"})}getDefaultFilters(G){let D=this.beans,{gos:z,dataTypeSvc:B}=D,Q=z.isModuleRegistered("MultiFilter"),J=B?.getBaseDataType(G);return[{filter:nR(J,!1)},{filter:"agSetColumnFilter"},...Q?[{filter:"agMultiColumnFilter"}]:[]]}},LC={tag:"div",cls:"ag-filter-card ag-filter-card-add"},SC=class extends UC{constructor(G){super(LC);this.options=new Map,this.setOptions(G)}postConstruct(){this.showButton()}refresh(G){this.setOptions(G);let{eSelect:D,options:z}=this;if(D)D.setValueList({valueList:Array.from(z.keys()),refresh:!0})}showButton(){A2(this.getGui()),this.destroySelect();let G=ZC({tag:"button",cls:"ag-button ag-standard-button ag-filter-add-button",children:[{tag:"span",children:[()=>$C("filterAdd",this.beans)]},{tag:"span",cls:"ag-filter-add-button-label",children:zz(this,"addFilterCard")}]});this.activateTabIndex([G]);let D=this.showSelect.bind(this);G.addEventListener("click",D),this.removeButton=()=>{G.removeEventListener("click",D)},this.appendChild(G),G.focus()}showSelect(){A2(this.getGui()),this.destroyButton();let G="ariaLabelAddFilterField",D={className:"ag-filter-add-select",pickerType:"virtual-list",pickerAriaLabelKey:G,pickerAriaLabelValue:zz(this,G),placeholder:zz(this,"addFilterPlaceholder"),value:"",valueList:Array.from(this.options.keys()),searchType:"matchAny",allowTyping:!0,filterList:!0,highlightMatch:!0,valueFormatter:(B)=>this.options.get(B)},z=this.createManagedBean(new gB(D));this.eSelect=z,this.appendChild(z.getGui()),z.showPicker(),z.getFocusableElement().focus(),z.addManagedListeners(z,{fieldPickerValueSelected:({value:B})=>this.dispatchLocalEvent({type:"filterSelected",id:B}),pickerHidden:()=>{this.showButton()}})}setOptions(G){let D=this.options;D.clear();for(let{id:z,name:B}of G)D.set(z,B)}destroySelect(){this.eSelect=this.destroyBean(this.eSelect)}destroyButton(){this.removeButton=this.removeButton?.()}destroy(){this.destroySelect(),this.destroyButton(),super.destroy()}},fC={tag:"div",cls:"ag-filter-card-body",children:[{tag:"ag-select",cls:"ag-filter-type-select",ref:"eFilterType"}]},NC=class extends kC{constructor(){super(...arguments);this.eFilterType=wC}postConstruct(){let G={onValueChange:(D)=>this.dispatchLocalEvent({type:"filterTypeChanged",filterDef:D})};this.setTemplate(fC,[_C],{eFilterType:G}),this.eFilterType.setDisplayed(!1)}refresh(G){let D=this.state;this.state=G;let{activeFilterDef:z,filterDefs:B,detail:Q,afterGuiAttached:J,afterGuiDetached:U}=G,{activeFilterDef:Z,filterDefs:S,detail:X}=D??{},Y=this.eFilterType;if(B!==S){Y.clearOptions();let W=B?.map((q)=>({value:q,text:q.name}));if(W)Y.clearOptions().addOptions(W).setValue(z,!0);Y.setDisplayed(!!W)}else if(z!==Z)Y.setValue(z,!0);if(Q!==X){if(X)KC(X),U();this.appendChild(Q),J({container:"newFiltersToolPanel",suppressFocus:!0})}}},EC={tag:"div",cls:"ag-filter-card-summary",attrs:{"aria-hidden":"true"}},IC=class extends FC{constructor(){super(EC)}refresh(G){this.getGui().textContent=G.summary}},MC={tag:"div",cls:"ag-filter-card",children:[{tag:"div",cls:"ag-filter-card-header",role:"presentation",children:[{tag:"div",cls:"ag-filter-card-heading",role:"heading",attrs:{"aria-level":"2"},children:[{tag:"button",ref:"eExpand",cls:"ag-button ag-filter-card-expand",children:[{tag:"span",ref:"eTitle",cls:"ag-filter-card-title"},{tag:"span",ref:"eEditing",cls:"ag-filter-card-editing-icon"},{tag:"span",ref:"eExpandIcon",cls:"ag-filter-card-expand-icon"}]}]},{tag:"button",ref:"eDelete",cls:"ag-button ag-filter-card-delete",children:[{tag:"span",ref:"eDeleteIcon",cls:"ag-filter-card-delete-icon"}]}]}]},AC=class extends XC{constructor(G){super(MC);this.id=G,this.eTitle=mD,this.eExpand=mD,this.eDelete=mD,this.eExpandIcon=mD,this.eDeleteIcon=mD,this.eEditing=mD}postConstruct(){let{beans:G,eDelete:D,eExpand:z,eDeleteIcon:B,eEditing:Q,id:J}=this,U=G.filterPanelSvc;C2(D,zz(this,"ariaLabelFilterCardDelete")),B.appendChild(Z1("close",G,null)),this.activateTabIndex([z,D]),this.addManagedElementListeners(z,{click:()=>U.expand(J,!this.state?.expanded)}),this.addManagedElementListeners(D,{click:()=>U.remove(J)}),this.addManagedEventListeners({filterOpened:this.onFilterOpened.bind(this)}),Q.appendChild(Z1("filterCardEditing",G,null))}refresh(G){let{eExpand:D,eEditing:z,state:B,beans:Q}=this;this.state=G;let{name:J,expanded:U,isEditing:Z}=G;if(this.eTitle.textContent=J,HC(z,Z),!B||U!==B.expanded)this.toggleExpand(G);let S=U?null:`${J} ${G.summary}`;if(Z)S=`${S??J}. ${zz(this,"ariaLabelFilterCardHasEdits")}`;C2(D,S);let X=(W)=>{if(!W)return;return WC(W.getGui()),this.destroyBean(W)},Y=(W,q,H)=>{if(!W)W=this.createBean(new q),H?.(W),this.appendChild(W.getGui());return W.refresh(G),W};if(G.expanded){this.summaryComp=X(this.summaryComp);let W=Y(this.detailComp,NC,(H)=>H.addManagedListeners(H,{filterTypeChanged:({filterDef:_})=>Q.filterPanelSvc.updateType(this.id,_)}));this.detailComp=W;let q=`ag-${this.getCompId()}-filter`;W.getGui().id=q,R2(D,q)}else this.detailComp=X(this.detailComp),this.summaryComp=Y(this.summaryComp,IC),R2(D,null)}toggleExpand(G){let D=!!G.expanded,{eExpandIcon:z,eExpand:B,beans:Q}=this;YC(z),z.appendChild(Z1(D?"filterCardCollapse":"filterCardExpand",Q,null)),qC(B,D)}onFilterOpened(G){let{state:D,beans:z,id:B}=this;if(G.source==="COLUMN_MENU"&&G.column===D?.column&&D?.expanded)z.filterPanelSvc.expand(B,!1)}destroy(){this.detailComp=this.destroyBean(this.detailComp),this.summaryComp=this.destroyBean(this.summaryComp),this.state=void 0,super.destroy()}};function RC(G){return!!G?.id}function CC(G){return!!G?.action}var VC={tag:"div",cls:"ag-filter-panel",children:[{tag:"div",cls:"ag-filter-panel-container",ref:"eContainer"}]},bC=class extends GC{constructor(){super(VC);this.eContainer=zC,this.filters=new Map}refresh(G){if(CC(G)){this.refreshActions();return}if(RC(G)){this.filters.get(G.id)?.refresh(G.state);return}let{eContainer:D,filters:z,beans:B}=this,Q=B.filterPanelSvc,J=Q.getIds(),U=new Map,Z=!M2(B),S=Z?BC(B):void 0,X=Z&&D.contains(S),Y=[],W=[];for(let K of J){let f=z.get(K)??this.createBean(new AC(K));f.refresh(Q.getState(K)),U.set(K,f),W.push(f.getGui())}this.filters=U;let q=[];z.forEach((K,f)=>{if(Y.push(K.getGui()),!U.has(f))q.push(K)});let H=this.addFilterComp;if(H)Y.push(H.getGui());let _=Q.getAvailable();if(_.length){if(!H)H=this.createBean(new SC(_)),H.addManagedListeners(H,{filterSelected:({id:K})=>Q.add(K)});H.refresh(_),W.push(H.getGui())}else H=this.destroyBean(H);this.addFilterComp=H,oR(D,W,Y);for(let K of q)this.destroyBean(K);let k=G?.activeId,w=k&&U.get(k)?.getGui();if(w)I2(w);else if(X&&M2(B))I2(W[W.length-1]??D);this.refreshActions()}refreshActions(){let G=this.beans.filterPanelSvc,{actions:D,canApply:z}=G.getActions()??{},B=this.buttonComp;if(D?.length){let Q=D.map((J)=>({type:J,label:JC(this,`${J}Filter`)}));if(!B){B=this.createBean(new DC({className:"ag-filter-panel-buttons"})),this.getGui().appendChild(B.getGui());let J={};for(let U of["apply","clear","reset","cancel"])J[U]=()=>G.doAction(U);B.addManagedListeners(B,J)}B.updateButtons(Q),B.updateValidity(z!==!1)}else if(B)QC(B.getGui()),B=this.destroyBean(B);this.buttonComp=B}destroy(){this.beans.filterPanelSvc?.clear?.(),this.addFilterComp=this.destroyBean(this.addFilterComp),this.buttonComp=this.destroyBean(this.buttonComp);let G=this.filters;G.forEach((D)=>this.destroyBean(D)),G.clear(),super.destroy()}},vC=".ag-filter-panel{display:flex;flex-direction:column;width:100%;:where(.ag-standard-button){transition:background-color .25s ease-in-out,color .25s ease-in-out}}.ag-filter-panel .ag-simple-filter-body-wrapper{padding:var(--ag-widget-vertical-spacing) var(--ag-widget-container-horizontal-padding) 0}.ag-filter-panel .ag-mini-filter{margin-left:var(--ag-widget-container-horizontal-padding);margin-right:var(--ag-widget-container-horizontal-padding);margin-top:var(--ag-widget-vertical-spacing)}.ag-filter-panel-container{display:flex;flex:1;flex-direction:column;gap:var(--ag-widget-container-vertical-padding);overflow:auto;padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding) 0}.ag-filter-card{background-color:var(--ag-background-color);border:solid var(--ag-border-width) var(--ag-border-color);border-radius:var(--ag-border-radius)}.ag-filter-card-header{align-items:center;display:flex;flex-direction:row;gap:var(--ag-spacing);padding-top:var(--ag-widget-vertical-spacing)}.ag-filter-card-heading{flex:1;overflow:hidden;padding-bottom:calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));padding-top:calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing))}:where(.ag-ltr) .ag-filter-card-heading{padding-left:var(--ag-widget-horizontal-spacing)}:where(.ag-rtl) .ag-filter-card-heading{padding-right:var(--ag-widget-horizontal-spacing)}.ag-filter-card-expand{align-items:center;display:flex;flex-direction:row;width:100%}.ag-filter-card-title{font-weight:var(--ag-header-font-weight);overflow:hidden;text-overflow:ellipsis}.ag-filter-card-expand-icon{display:flex;flex:1;justify-content:end}.ag-filter-card-editing-icon{margin:0 var(--ag-spacing)}.ag-filter-card-delete-icon,.ag-filter-card-editing-icon,.ag-filter-card-expand-icon,.ag-filter-card-summary{color:var(--ag-filter-panel-card-subtle-color)}.ag-filter-card-delete-icon,.ag-filter-card-expand-icon{transition:color .25s ease-in-out}.ag-filter-card-delete-icon:hover,.ag-filter-card-expand-icon:hover,.ag-filter-card-heading:hover .ag-filter-card-expand-icon{color:var(--ag-filter-panel-card-subtle-hover-color)}.ag-filter-add-button,.ag-filter-card-delete,.ag-filter-card-expand{border-radius:var(--ag-button-border-radius)}.ag-filter-card-summary,.ag-filter-type-select{margin-left:var(--ag-widget-container-horizontal-padding);margin-right:var(--ag-widget-container-horizontal-padding)}:where(.ag-ltr) .ag-filter-card-delete{margin-right:var(--ag-widget-horizontal-spacing)}:where(.ag-rtl) .ag-filter-card-delete{margin-left:var(--ag-widget-horizontal-spacing)}.ag-filter-card-summary{margin-bottom:var(--ag-widget-container-vertical-padding)}.ag-filter-type-select{padding-top:var(--ag-widget-vertical-spacing)}.ag-filter-card-add{border:0;padding:0}.ag-filter-add-button{align-items:center;display:flex;flex-direction:row;line-height:1.5;width:100%}:where(.ag-ltr) .ag-filter-add-button-label{margin-left:var(--ag-spacing)}:where(.ag-rtl) .ag-filter-add-button-label{margin-right:var(--ag-spacing)}.ag-filter-add-select{border:0;.ag-rich-select-value{border:0;padding:calc(((1.5*var(--ag-font-size) + 2*var(--ag-button-vertical-padding)) - var(--ag-input-height))/2) var(--ag-spacing)}}:where(.ag-ltr) .ag-filter-add-select{.ag-text-field-input{padding-left:calc(var(--ag-spacing)*1.5 + 12px)!important}}:where(.ag-rtl) .ag-filter-add-select{.ag-text-field-input{padding-right:calc(var(--ag-spacing)*1.5 + 12px)!important}}.ag-filter-panel-buttons{display:flex;flex-wrap:wrap;gap:var(--ag-widget-vertical-spacing) var(--ag-widget-horizontal-spacing);justify-content:flex-end;overflow:hidden;padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding) 0}.ag-filter-panel-buttons-button{line-height:1.5}.ag-filter-panel .ag-filter-panel-buttons-apply-button{background-color:var(--ag-filter-panel-apply-button-background-color);color:var(--ag-filter-panel-apply-button-color)}.ag-filter-panel-buttons:where(:last-child),.ag-filter-panel-container:where(:last-child){padding-bottom:var(--ag-widget-container-vertical-padding)}.ag-filter-panel .ag-set-filter-body-wrapper,.ag-filter-panel .ag-simple-filter-body-wrapper{padding-bottom:var(--ag-widget-container-vertical-padding)}",OC=class extends aR{constructor(){super();this.registerCSS(vC)}init(G){if(!this.gos.get("enableFilterHandlers")){eR(282);return}let D=this.beans.filterPanelSvc;D.isActive=!0,this.addDestroyFunc(()=>{D.isActive=!1}),this.updateParams(G,G.initialState);let z=this.createManagedBean(new bC);this.filterPanel=z;let B=(Q)=>{z.refresh(Q),G.onStateUpdated()};B(),this.addManagedListeners(D,{filterPanelStatesChanged:B,filterPanelStateChanged:B})}getGui(){return this.filterPanel?.getGui()}refresh(G){return this.updateParams(G,G.initialState),!0}updateParams(G,D){this.beans.filterPanelSvc?.updateParams(G,D)}getState(){return this.beans.filterPanelSvc?.getGridState()??{}}},z8={moduleName:"FiltersToolPanel",version:j,userComponents:{agFiltersToolPanel:TR},icons:{filtersToolPanel:"filter"},dependsOn:[jD,i,G8]},B8={moduleName:"NewFiltersToolPanel",version:j,userComponents:{agNewFiltersToolPanel:OC},beans:[cR,rR],icons:{filterAdd:"filter-add",filtersToolPanel:"filter",richSelectOpen:"small-down",richSelectRemove:"cancel",richSelectLoading:"loading",filterCardExpand:"chevron-down",filterCardCollapse:"chevron-up",filterCardEditing:"edit"},dependsOn:[jD,i,G8]},Q8=class extends xC{constructor(){super(...arguments);this.loadRowDataVersion=0}wireBeans(G){this.environment=G.environment}init(G,D){if(this.params=D,this.comp=G,D.pinned!=null)return;this.setAutoHeightClasses(),this.setupRefreshStrategy(),this.createDetailGrid(),this.loadRowData(),this.addManagedEventListeners({fullWidthRowFocused:this.onFullWidthRowFocused.bind(this)})}onFullWidthRowFocused(G){let D=this.params,z={rowIndex:D.node.rowIndex,rowPinned:D.node.rowPinned},B={rowIndex:G.rowIndex,rowPinned:G.rowPinned};if(!iC(z,B))return;hC(this.comp.getGui(),G.fromBelow)}setAutoHeightClasses(){let G=this.gos.get("detailRowAutoHeight"),D=G?"ag-details-row-auto-height":"ag-details-row-fixed-height",z=G?"ag-details-grid-auto-height":"ag-details-grid-fixed-height",B=this.comp;B.toggleCss(D,!0),B.toggleDetailGridCss(z,!0)}setupRefreshStrategy(){let G=this.params.refreshStrategy;if(G=="everything"||G=="nothing"||G=="rows"){this.refreshStrategy=G;return}if(G!=null)n0(170,{providedStrategy:G});this.refreshStrategy="rows"}createDetailGrid(){let{params:G,gos:D}=this;if(nC(G.detailGridOptions)){n0(171);return}let z=D.get("theme"),B=G.detailGridOptions.theme;if(B&&B!==z)n0(267);let Q={themeStyleContainer:this.environment.eStyleContainer,...G.detailGridOptions,theme:z};if(D.get("detailRowAutoHeight"))Q.domLayout="autoHeight";this.comp.setDetailGrid(Q)}registerDetailWithMaster(G){let{params:D,beans:{selectionSvc:z,findSvc:B,expansionSvc:Q}}=this,J=D.node.id,U=D.api,Z={id:J,api:G},S=D.node;if(U.isDestroyed())return;U.addDetailGridInfo(J,Z),S.detailGridInfo=Z;let X=S.parent;B?.registerDetailGrid(S,G);function Y(){if(X)z?.refreshMasterNodeState(X)}function W({source:H}){if(H==="expandAll")return G.expandAll();if(H==="collapseAll")return G.collapseAll()}function q({node:H,source:_}){if(H!==X||_==="masterDetail"||G.isDestroyed())return;z?.setDetailSelectionState(X,D.detailGridOptions,G)}G.addEventListener("firstDataRendered",()=>{if(G.isDestroyed()||U.isDestroyed())return;z?.setDetailSelectionState(X,D.detailGridOptions,G),G.addEventListener("selectionChanged",Y),U.addEventListener("rowSelected",q);let _=`${"CsrmSsrmSharedApi"}Module`;if(G.isModuleRegistered(_))U.addEventListener("expandOrCollapseAll",W),Q?.setDetailsExpansionState(G)}),this.addManagedListeners(X,{masterChanged:(H)=>{if(!H.node.master)this.onDestroy(Z)}}),this.addDestroyFunc(()=>this.onDestroy(Z))}onDestroy(G){let{params:D}=this,z=D.node,B=D.api;if(z.detailGridInfo!==G)return;if(!B.isDestroyed())B.removeDetailGridInfo(z.id);z.detailGridInfo=null}loadRowData(){this.loadRowDataVersion++;let G=this.loadRowDataVersion,D=this.params;if(D.detailGridOptions?.rowModelType==="serverSide"){D.node.detailGridInfo?.api?.refreshServerSide({purge:!0});return}let z=D.getDetailRowData;if(!z){n0(172);return}let B=(J)=>{if(this.loadRowDataVersion===G)this.comp.setRowData(J)},Q={node:D.node,data:D.node.data,successCallback:B,context:cC(this.gos,{}).context};z(Q)}refresh(){switch(this.refreshStrategy){case"nothing":return!0;case"everything":return!1}return this.loadRowData(),!0}},dC=class{constructor(G){this.parentWrapper=G}wrap(G,D,z,B){return this.parentWrapper.wrap(G,D,z,B)}},lC={tag:"div",cls:"ag-details-row"},pC={tag:"div",cls:"ag-details-row",role:"gridcell",children:[{tag:"div",ref:"eDetailGrid",cls:"ag-details-grid",role:"presentation"}]},mC=class extends jC{constructor(){super(...arguments);this.eDetailGrid=PC}wireBeans(G){this.context=G.context}init(G){this.params=G,this.selectAndSetTemplate();let D={toggleCss:(z,B)=>this.toggleCss(z,B),toggleDetailGridCss:(z,B)=>this.eDetailGrid.classList.toggle(z,B),setDetailGrid:(z)=>this.setDetailGrid(z),setRowData:(z)=>this.setRowData(z),getGui:()=>this.eDetailGrid};this.ctrl=this.createManagedBean(new Q8),this.ctrl.init(D,G)}refresh(){return this.ctrl?.refresh()??!1}selectAndSetTemplate(){let G=this.params;if(G.pinned){this.setTemplate(lC);return}let D=()=>{this.setTemplate(pC)};if(TC(G.template))D();else if(typeof G.template==="string")this.setTemplate(G.template,[]);else if(typeof G.template==="function"){let z=G.template,B=z(G);this.setTemplate(B,[])}else V2(168),D();if(this.eDetailGrid==null)V2(169)}setDetailGrid(G){if(!this.eDetailGrid)return;let D=this.context.getBean("frameworkCompWrapper"),z=new dC(D),{frameworkOverrides:B}=this.beans,Q=yC(this.eDetailGrid,G,{frameworkOverrides:B,providedBeanInstances:{frameworkCompWrapper:z},modules:gC(this.params.api.getGridId(),G.rowModelType??"clientSide")});this.detailApi=Q,this.ctrl?.registerDetailWithMaster(Q),this.addDestroyFunc(()=>{Q.destroy()})}setRowData(G){this.detailApi?.setGridOption("rowData",G)}};function dB(G,D){let z=G.masterDetailSvc?.store;return z?D(z):void 0}function tC(G,D,z){dB(G,(B)=>{B[D]=z})}function sC(G,D){dB(G,(z)=>{delete z[D]})}function oC(G,D){return dB(G,(z)=>z[D])}function rC(G,D){dB(G,(z)=>{let B=0;Object.values(z).forEach((Q)=>{if(Q)D(Q,B++)})})}var aC=".ag-details-row{width:100%}.ag-details-row-fixed-height{height:100%}.ag-details-grid{width:100%}.ag-details-grid-fixed-height{height:100%}",QV=class extends eC{constructor(){super(...arguments);this.beanName="masterDetailSvc",this.store={}}isEnabled(){return this.gos.get("masterDetail")}postConstruct(){let G=this.gos;if(b2(G))this.enabled=this.isEnabled();if(v2(G))this.addEventListeners()}addEventListeners(){let G=(B)=>{this.setMaster(B.node,!1,!0)},D,z=()=>{if(D){for(let B of D)B();D=void 0}if(this.isEnabled())D=this.addManagedListeners(this.beans.eventSvc,{rowNodeDataChanged:G})};z(),this.gos.addPropertyEventListener("masterDetail",z)}refreshModel(G){if(G.changedProps){let D=this.isEnabled();if(this.enabled!==D){this.setMasters(null);return}}if(G.rowDataUpdated)this.setMasters(G.changedRowNodes)}setMaster(G,D,z){let B=G.master,Q=this.isEnabled(),J=Q,U=this.gos,Z=U.get("isRowMaster"),S=U.get("treeData");if(Q)if(D||z){if(Z){let X=G.data;J=!!X&&!!Z(X)}}else J=B;if(!S){if(J&&D||!J&&B)G._expanded??(G._expanded=null)}if(J!==B)G.master=J,G.dispatchRowEvent("masterChanged")}setMasters(G){if(this.enabled=this.isEnabled(),G){for(let D of G.updates)this.setMaster(D,!1,!0);for(let D of G.adds)this.setMaster(D,!0,!1)}else{let D=zV(this.beans)?.rootNode?._leafs;if(D)for(let z=0,B=D.length;z{let U=D.clientHeight;if(U!=null&&U>0){let Z=()=>{let{rowModel:S}=this.beans,{rowNode:X}=G;if(X.setRowHeight(U),b2(z,S)||v2(z,S))S.onRowHeightChanged()};window.setTimeout(Z,0)}},J=BV(B,D,Q);G.addDestroyFunc(J),Q()}destroy(){this.store={},super.destroy()}},JV={moduleName:"SharedMasterDetail",version:j,beans:[QV],userComponents:{agDetailCellRenderer:mC},dynamicBeans:{detailCellRendererCtrl:Q8},apiFunctions:{addDetailGridInfo:tC,removeDetailGridInfo:sC,getDetailGridInfo:oC,forEachDetailGridInfo:rC},dependsOn:[i,p7,RJ],css:[aC]},lB={moduleName:"MasterDetail",version:j,dependsOn:[JV,_0,uC]},J8=class extends _V{constructor(){super(...arguments);this.changedCalculatedValues=!1,this.dragging=!1,this.shouldDestroyOnEndDragging=!1}postConstruct(){this.beans.dragSvc.addDragSource({dragStartPixels:0,eElement:this.getGui(),onDragging:(G)=>{let D=!1;if(!this.dragging)D=!0,this.dragging=!0,u2(this.beans).classList?.add(this.getDraggingCssClass());if(this.updateValuesOnMove(G),D){this.changedCalculatedValues=!1;return}if(this.beans.rangeSvc.autoScrollService.check(G),this.changedCalculatedValues)this.onDrag(G),this.changedCalculatedValues=!1},onDragStop:(G)=>{this.dragging=!1,this.onDragEnd(G),this.clearDragProperties()},onDragCancel:()=>{this.dragging=!1,this.onDragCancel(),this.clearDragProperties()}}),this.addManagedEventListeners({cellSelectionChanged:this.updateLocalRangeIfNeeded.bind(this)}),this.addManagedElementListeners(this.getGui(),{pointerdown:j2,mousedown:j2})}getLastCellHovered(){return this.lastCellHovered}getDraggingCssClass(){return`ag-dragging-${this.type===0?"fill":"range"}-handle`}updateValuesOnMove(G){let D=wV(this.gos,G);if(!D||this.shouldSkipCell(D)||this.lastCellHovered&&kV(D,this.lastCellHovered))return;this.lastCellHovered=D,this.changedCalculatedValues=!0}clearDragProperties(){if(this.clearValues(),this.beans.rangeSvc.autoScrollService.ensureCleared(),u2(this.beans).classList?.remove(this.getDraggingCssClass()),this.shouldDestroyOnEndDragging)this.destroy()}getType(){return this.type}refresh(G,D){let z=this.cellCtrl,B=this.getGui(),Q=D??NV(this.beans.rangeSvc.getCellRanges()),J=Q.startRow,U=Q.endRow;if(J&&U)if(KV(U,J))this.rangeStartRow=U,this.rangeEndRow=J;else this.rangeStartRow=J,this.rangeEndRow=U;if(z!==G||!fV(B)){this.cellCtrl=G;let Z=G.comp.getParentOfValue();if(Z)Z.appendChild(B)}this.cellRange=Q}clearValues(){this.lastCellHovered=void 0}destroy(){if(!this.shouldDestroyOnEndDragging&&this.dragging){FV(this.getGui(),!1),this.shouldDestroyOnEndDragging=!0;return}this.shouldDestroyOnEndDragging=!1,super.destroy(),this.getGui()?.remove()}updateLocalRangeIfNeeded(G){if(!this.cellRange)return;let{id:D,type:z}=this.cellRange;if(!D||D!==G.id)return;let B=this.beans.rangeSvc?.getCellRanges().find((Q)=>Q.id===D&&Q.type===z);if(B&&B!==this.cellRange)this.cellRange=B}},j2=(G)=>{G.stopPropagation()};function EV(G){let D=G.length,z=0;if(D<=1)return G;for(let W=0;W1){z=Math.max(z,parseInt(H[1],10));continue}if(Math.floor(q)===q)continue;z=Math.max(z,q.toString().split(".")[1].length)}let B=0,Q=0,J=0,U=0,Z=0;for(let W=0;WU?"x":"y";else S=Z;if(S!==this.dragAxis)this.dragAxis=S,this.changedCalculatedValues=!0}shouldSkipCell(G){return HV(G.column)}onDrag(G){if(!this.initialPosition){let z=this.cellCtrl;if(!z)return;this.initialPosition=z.cellPosition}let D=this.getLastCellHovered();if(D)this.markPathFrom(this.initialPosition,D)}onDragEnd(G){if(this.initialXY=null,!this.markedCells.length)return;let D=this.dragAxis==="x",{cellRange:z,rangeStartRow:B,rangeEndRow:Q,beans:{rangeSvc:J}}=this,U=z.columns.length,Z;if(!this.isUp&&!this.isLeft)Z=J.createCellRangeFromCellRangeParams({rowStartIndex:B.rowIndex,rowStartPinned:B.rowPinned,columnStart:z.columns[0],rowEndIndex:D?Q.rowIndex:this.lastCellMarked.rowIndex,rowEndPinned:D?Q.rowPinned:this.lastCellMarked.rowPinned,columnEnd:D?this.lastCellMarked.column:z.columns[U-1]});else{let S=D?B:this.lastCellMarked;Z=J.createCellRangeFromCellRangeParams({rowStartIndex:S.rowIndex,rowStartPinned:S.rowPinned,columnStart:D?this.lastCellMarked.column:z.columns[0],rowEndIndex:Q.rowIndex,rowEndPinned:Q.rowPinned,columnEnd:z.columns[U-1]})}if(Z)this.performFill({event:G,initialRange:z,finalRange:Z,shouldUpdateRange:!0})}onDragCancel(){if(this.initialXY=null,!this.markedCells.length)return;this.clearMarkedPath()}performFill({event:G,initialRange:D,finalRange:z,shouldUpdateRange:B}){let{eventSvc:Q,rangeSvc:J}=this.beans;if(Q.dispatchEvent({type:"fillStart"}),this.handleValueChanged(D,z,G),B)J.setCellRanges([z]);Q.dispatchEvent({type:"fillEnd",initialRange:D,finalRange:z})}getFillHandleDirection(){let G=$1(this.gos)?.direction;if(!G)return"xy";if(G!=="x"&&G!=="y"&&G!=="xy")return qV(177),"xy";return G}handleValueChanged(G,D,z){let{beans:B}=this,{rangeSvc:Q,gos:J,valueSvc:U}=B,Z=Q.getRangeEndRow(G),S=Q.getRangeStartRow(G),X=Q.getRangeEndRow(D),Y=Q.getRangeStartRow(D),W=this.dragAxis==="y";if(this.isReduce&&!$1(J)?.suppressClearOnFillReduction){let I=W?G.columns:G.columns.filter((A)=>D.columns.indexOf(A)<0),V=W?xz(B,X):Y;if(V)this.clearCellsInRange(V,Z,I);return}let q=[],H=[],_=[],k=[],w=!0,K=0,f=()=>{q.length=0,H.length=0,_.length=0,k.length=0,K=0},N=(I,V)=>{let A=this.isUp?Z:S,R=!1;if(W)w=!0,f();while(!R&&A){let O=SV(B,A);if(!O)break;if(W&&I)F(q,I,O,()=>!FG(A,this.isUp?S:Z));else if(V){w=!0,f();for(let u of V)F(q,u,O,()=>u!==(this.isLeft?G.columns[0]:tD(G.columns)))}R=FG(A,this.isUp?Y:X),A=this.isUp?L1(this.beans,A):xz(B,A)}},F=(I,V,A,R)=>{let O,u=!1;if(w)O=U.getValue(V,A,"edit"),H.push(O),_.push(U.getValue(V,A,"edit",!0)),k.push(U.getValueForDisplay({column:V,node:A,from:"edit"}).valueFormatted),w=R();else{let{value:v,fromUserFunction:h,sourceCol:P,sourceRowNode:b}=this.processValues({event:z,values:I,initialValues:H,initialNonAggregatedValues:_,initialFormattedValues:k,col:V,rowNode:A,idx:K++});if(O=v,V.isCellEditable(A)){let g=U.getValue(V,A,"edit");if(!h){if(P){let c=P.getColDef();if(c.useValueFormatterForExport!==!1&&c.valueFormatter){let s=U.getValueForDisplay({column:P,node:b,includeValueFormatted:!0,from:"edit"}).valueFormatted;if(s!=null)O=s}}if(V.getColDef().useValueParserForImport!==!1)O=U.parseValue(V,A,P?O:WV(O),g)}if(!h||g!==O)A.setDataValue(V,O,"rangeSvc");else u=!0}}if(!u)I.push({value:O,column:V,rowNode:A})},{changeDetectionSvc:E}=this.beans;E?.beginDeferred();try{if(W)G.columns.forEach((I)=>{N(I)});else{let I=this.isLeft?[...D.columns].reverse():D.columns;N(void 0,I)}this.beans.editSvc?.stopEditing(void 0,{source:"fillHandle"})}finally{E?.endDeferred()}}clearCellsInRange(G,D,z){let B={startRow:G,endRow:D,columns:z,startColumn:z[0]};this.beans.rangeSvc.clearCellRangeCellValues({cellRanges:[B],restoreSourceInBatch:!0})}processValues(G){let{formula:D,valueSvc:z}=this.beans,{event:B,values:Q,initialValues:J,initialNonAggregatedValues:U,initialFormattedValues:Z,col:S,rowNode:X,idx:Y}=G,W=$1(this.gos)?.setFillValue,q=this.dragAxis==="y",H;if(q)H=this.isUp?"up":"down";else H=this.isLeft?"left":"right";if(W){let w=$V(this.gos,{event:B,values:Q.map(({value:f})=>f),initialValues:J,initialNonAggregatedValues:U,initialFormattedValues:Z,currentIndex:Y,currentCellValue:z.getValue(S,X,"edit"),direction:H,column:S,rowNode:X}),K=W(w);if(K!==!1)return{value:K,fromUserFunction:!0}}let _=(w)=>typeof w==="number"&&Number.isFinite(w)||typeof w==="string"&&/^[+-]?\d+(?:\.\d+)?$/.test(w.trim()),k=Q.every(({value:w})=>_(w));if(B.altKey||!k){let w=String(tD(Q)?.value??"");if(k&&J.length===1){let I=this.isUp||this.isLeft?-1:1;return{value:parseFloat(w)+1*I,fromUserFunction:!1}}let{value:K,column:f,rowNode:N}=Q[Y%Q.length],F,E=f.isAllowFormula()&&D?.isFormula(w);if(E){let I=H==="up"?-1:H==="down"?1:0,V=H==="left"?-1:H==="right"?1:0;F=D.updateFormulaByOffset({value:w,rowDelta:I,columnDelta:V})}else F=K;return{value:F,fromUserFunction:!1,sourceCol:E?void 0:f,sourceRowNode:N}}return{value:tD(EV(Q.map(({value:w})=>Number(w)))),fromUserFunction:!1}}clearValues(){this.clearMarkedPath(),this.clearCellValues(),this.lastCellMarked=void 0,super.clearValues()}clearMarkedPath(){for(let G of this.markedCells){if(!G.isAlive())continue;let{comp:D}=G;D.toggleCss("ag-selection-fill-top",!1),D.toggleCss("ag-selection-fill-right",!1),D.toggleCss("ag-selection-fill-bottom",!1),D.toggleCss("ag-selection-fill-left",!1)}this.markedCells.length=0,this.isUp=!1,this.isLeft=!1,this.isReduce=!1}clearCellValues(){this.cellValues.length=0}markPathFrom(G,D){if(this.clearMarkedPath(),this.clearCellValues(),this.dragAxis==="y"){if(FG(D,G))return;let z=XV(D,G),{rangeStartRow:B,rangeEndRow:Q}=this;if(z&&(D.rowPinned==B.rowPinned&&D.rowIndex>=B.rowIndex||B.rowPinned!=Q.rowPinned&&D.rowPinned==Q.rowPinned&&D.rowIndex<=Q.rowIndex))this.reduceVertical(G,D),this.isReduce=!0;else this.extendVertical(G,D,z),this.isReduce=!1}else{let z=G.column,B=D.column;if(z===B)return;let Q=this.beans.visibleCols.allCols,J=Q.indexOf(z),U=Q.indexOf(B);if(U<=J&&U>=Q.indexOf(this.cellRange.columns[0]))this.reduceHorizontal(G,D),this.isReduce=!0;else this.extendHorizontal(G,D,U=4),G.toggleCss(sV,J),tV(B,Q>0?!0:void 0),G.toggleCss(oV,this.isSingleCell()),this.updateRangeBorders(),this.refreshRangeStyleAndHandle()}updateRangeBorders(){let G=this.getRangeBorders(),D=this.isSingleCell(),z=!D&&G.top,B=!D&&G.right,Q=!D&&G.bottom,J=!D&&G.left,U=this.cellComp;U.toggleCss(aV,z),U.toggleCss(eV,B),U.toggleCss(Gb,Q),U.toggleCss(Db,J)}isSingleCell(){let{rangeSvc:G}=this;return this.rangeCount===1&&!!G&&!G.isMoreThanOneCell()}getHasChartRange(){let{rangeSvc:G}=this;if(!this.rangeCount||!G)return!1;let D=G.getCellRanges();return D.length>0&&D.every((z)=>[hz.DIMENSION,hz.VALUE].includes(z.type))}updateRangeBordersIfRangeCount(){if(this.rangeCount>0)this.updateRangeBorders(),this.refreshRangeStyleAndHandle()}getRangeBorders(){let G=this.beans.gos.get("enableRtl"),D=!1,z=!1,B=!1,Q=!1,{rangeSvc:J,beans:{visibleCols:U},cellCtrl:{cellPosition:Z}}=this,S=Z.column,X=J.getCellRanges().filter((q)=>J.isCellInSpecificRange(Z,q));if(!X.length)return{top:D,right:z,bottom:B,left:Q};let Y,W;if(G)Y=U.getColAfter(S),W=U.getColBefore(S);else Y=U.getColBefore(S),W=U.getColAfter(S);if(!Y)Q=!0;if(!W)z=!0;for(let q=0;q=0;B--){let Q=z[B],J=Q.colorClass;if(!J)continue;if(G.isCellInSpecificRange(this.cellCtrl.cellPosition,Q))return J}return null}refreshHandleColor(G){let D=this.selectionHandle?.getGui?.(),z=G?.colorClass??null;if(!D){this.handleColorClass=null;return}if(this.handleColorClass&&this.handleColorClass!==z)D.classList.remove(this.handleColorClass);if(z)D.classList.add(z);else if(this.handleColorClass)D.classList.remove(this.handleColorClass);this.handleColorClass=z??null}getRangeForHandle(){let{gos:G,editSvc:D}=this.beans,z=this.rangeSvc,B=z.getCellRanges(),Q=B.length;if(this.rangeCount<1||Q<1)return null;let J=D?.isRangeSelectionEnabledWhileEditing(),U=J?B:[pV(B)];for(let Z of U){let{cellPosition:S,column:X}=this.cellCtrl,Y=n2(G)&&!X.isSuppressFillHandle(),W=zb(G),H=!D?.isEditing(this.cellCtrl,{withOpenEditor:!0})&&(J||Q===1&&(Y||W));if(this.hasChartRange)H=Z.type===hz.VALUE;if(H&&Z.endRow!=null&&z.isContiguousRange(Z)&&z.isBottomRightCell(Z,S))return Z}return null}addSelectionHandle(G){let{beans:D}=this,z=D.editSvc?.isRangeSelectionEnabledWhileEditing(),B=G.type,J=!z&&n2(D.gos)&&mV(B)?0:1;if(this.selectionHandle&&this.selectionHandle.getType()!==J)this.selectionHandle=D.context.destroyBean(this.selectionHandle);if(!this.selectionHandle){let U=D.registry.createDynamicBean(J===0?"fillHandle":"rangeHandle",!1);if(U)this.selectionHandle=D.context.createBean(U)}this.selectionHandle?.refresh(this.cellCtrl,G)}destroy(){this.unsetComp()}},Jb=class extends Qb{constructor(G){super();this.eContainer=G}postConstruct(){let{beans:G,gos:D,eContainer:z}=this,B=G.rangeSvc,Q={eElement:z,onDragStart:B.onDragStart.bind(B),onDragStop:B.onDragStop.bind(B),onDragging:B.onDragging.bind(B)},J=G.dragSvc,U=J.addDragSource.bind(J,Q),Z=J.removeDragSource.bind(J,Q);if(this.addManagedPropertyListeners(["enableRangeSelection","cellSelection"],()=>{if(d2(D))U();else Z()}),this.addDestroyFunc(Z),d2(D))U()}},Zb=class extends Ub{constructor(G,D){super();this.column=G,this.eGui=D}postConstruct(){this.addManagedElementListeners(this.eGui,{click:(G)=>G&&this.onClick(G)})}onClick(G){this.beans.rangeSvc?.handleColumnSelection(this.column,G)}},Lb=class extends $b{constructor(G,D){super();this.column=G,this.comp=D,this.columnMap=new Map,this.isActive=!1,this.resetColumnMap()}postConstruct(){this.addManagedPropertyListener("cellSelection",()=>{this.refreshActive()}),this.refreshActive(),this.setupRangeHeaderHighlight()}resetColumnMap(){this.columnMap.clear();let G;if(this.column.isColumn)G=[this.column];else G=this.column.getDisplayedLeafColumns();for(let D of G)this.columnMap.set(D,!1)}refreshActive(){let{gos:G,rangeSvc:D}=this.beans,z=G.get("cellSelection");this.isActive=!!(z&&D&&typeof z==="object"&&z.enableHeaderHighlight)}setupRangeHeaderHighlight(){let G=this.onRangeSelectionChanged.bind(this);this.addManagedEventListeners({rangeSelectionChanged:G,columnPinned:G,columnMoved:G,columnGroupOpened:G}),G()}onRangeSelectionChanged(){if(!this.isActive)return;this.resetColumnMap();let G=this.beans.rangeSvc.getCellRanges(),D=!1,z=!0;for(let B of G){if(D)break;for(let Q of B.columns)if(this.columnMap.has(Q))this.columnMap.set(Q,!0),D||(D=!0)}for(let B of Array.from(this.columnMap.values()))if(B===!1){z=!1;break}this.comp.toggleCss("ag-header-range-highlight",D&&z)}destroy(){super.destroy(),this.comp=null,this.column=null}},Sb=class extends OV{constructor(){super(...arguments);this.beanName="rangeSvc",this.rangeSelectionExtensions=[],this.cellRanges=[],this.bodyScrollListener=this.onBodyScroll.bind(this),this.dragging=!1,this.intersectionRange=!1,this.columnRangeSelectionCtx={}}wireBeans(G){this.rowModel=G.rowModel,this.dragSvc=G.dragSvc,this.colModel=G.colModel,this.visibleCols=G.visibleCols,this.cellNavigation=G.cellNavigation,this.ctrlsSvc=G.ctrlsSvc}postConstruct(){let G=this.onColumnsChanged.bind(this),D=()=>this.removeAllCellRanges(),z=this.refreshLastRangeStart.bind(this);this.addManagedEventListeners({newColumnsLoaded:G,columnVisible:G,columnValueChanged:G,columnPivotModeChanged:D,columnRowGroupChanged:D,columnPivotChanged:D,columnGroupOpened:z,columnMoved:z,columnPinned:z}),this.ctrlsSvc.whenReady(this,(B)=>{let Q=B.gridBodyCtrl;this.autoScrollService=new vV({scrollContainer:Q.eBodyViewport,scrollAxis:"xy",getVerticalPosition:()=>Q.scrollFeature.getVScrollPosition().top,setVerticalPosition:(J)=>Q.scrollFeature.setVerticalScrollPosition(J),getHorizontalPosition:()=>Q.scrollFeature.getHScrollPosition().left,setHorizontalPosition:(J)=>Q.scrollFeature.setHorizontalScrollPosition(J),shouldSkipVerticalScroll:()=>!iV(this.gos,"normal"),shouldSkipHorizontalScroll:()=>!Q.scrollFeature.isHorizontalScrollShowing()})})}registerRangeSelectionExtension(G){if(this.rangeSelectionExtensions.includes(G))return;this.rangeSelectionExtensions.push(G)}unregisterRangeSelectionExtension(G){p0(this.rangeSelectionExtensions,G)}shouldSuppressRangeSelection(G){return this.rangeSelectionExtensions.some((D)=>D.shouldSuppressRangeSelection?.(G))}shouldSkipColumn(G){return this.rangeSelectionExtensions.some((D)=>D.shouldSkipColumn?.(G))}isAllColumnsSelectionCell(G){return this.rangeSelectionExtensions.some((D)=>D.isAllColumnsSelectionCell?.(G))}isAllColumnsRange(G,D){return this.rangeSelectionExtensions.some((z)=>z.isAllColumnsRange?.(G,D))}updateSelectionModeForCell(G){this.setSelectionMode(this.isAllColumnsSelectionCell(G))}onDragStart(G){let D=this.gos,z=G.target;if(!l0(D)||yV(D,z)?.isSuppressMouseEvent(G))return;if(this.shouldSuppressRangeSelection(z))return;let{shiftKey:B}=G,Q=this.isMultiRange(G),J=B&&!!this.cellRanges?.length;if(!Q&&(!J||PV(DG(this.cellRanges).type)))this.removeAllCellRanges(!0);let U=this.dragSvc.startTarget;if(U)this.updateValuesOnMove(U);if(!this.lastCellHovered)return;if(this.dragging=!0,this.lastMouseEvent=G,this.intersectionRange=Q&&this.getCellRangeCount(this.lastCellHovered)>1,!J)this.setNewestRangeStartCell(this.lastCellHovered);if(this.cellRanges.length>0)this.draggingRange=DG(this.cellRanges);else{let Z={rowIndex:this.lastCellHovered.rowIndex,rowPinned:this.lastCellHovered.rowPinned},S=this.getColumnsFromModel([this.lastCellHovered.column]);if(!S?.length)return;this.draggingRange={startRow:Z,endRow:Z,columns:S,startColumn:this.newestRangeStartCell.column},this.cellRanges.push(this.draggingRange)}this.ctrlsSvc.getGridBodyCtrl().eBodyViewport.addEventListener("scroll",this.bodyScrollListener,{passive:!0}),this.dispatchChangedEvent(!0,!1,this.draggingRange.id)}onDragging(G){let{dragging:D,lastCellHovered:z,newestRangeStartCell:B,autoScrollService:Q,cellHasChanged:J}=this;if(!D||!G)return;this.updateValuesOnMove(G.target),this.lastMouseEvent=G;let U=(H)=>z&&z.rowPinned===H&&B.rowPinned===H,Z=U("top")||U("bottom");if(Q.check(G,Z),!J||!z)return;let S=B?.column,X=z?.column,Y=this.calculateColumnsBetween(S,X);if(!Y)return;let{rowIndex:W,rowPinned:q}=z;this.draggingRange.endRow={rowIndex:W,rowPinned:q},this.draggingRange.columns=Y,this.dispatchChangedEvent(!1,!1,this.draggingRange.id)}onDragStop(){if(!this.dragging)return;let{id:G}=this.draggingRange;if(this.autoScrollService.ensureCleared(),this.ctrlsSvc.getGridBodyCtrl().eBodyViewport.removeEventListener("scroll",this.bodyScrollListener),this.lastMouseEvent=null,this.dragging=!1,this.draggingRange=void 0,this.lastCellHovered=void 0,this.intersectionRange)this.intersectionRange=!1,this.intersectLastRange();this.dispatchChangedEvent(!1,!0,G)}onColumnsChanged(){this.refreshLastRangeStart();let G=this.visibleCols.allCols;for(let z of this.cellRanges){let B=z.columns;if(z.columns=z.columns.filter((J)=>J.isVisible()&&G.indexOf(J)!==-1),!y2(B,z.columns))this.dispatchChangedEvent(!1,!0,z.id)}let D=this.cellRanges.length;if(this.cellRanges=this.cellRanges.filter((z)=>z.columns.length>0),D>this.cellRanges.length)this.dispatchChangedEvent(!1,!0)}refreshLastRangeStart(){let G=DG(this.cellRanges);if(!G)return;this.refreshRangeStart(G)}isContiguousRange(G){let D=G.columns;if(!D.length)return!1;let z=this.visibleCols.allCols,B=D.map((Q)=>z.indexOf(Q)).sort((Q,J)=>Q-J);return DG(B)-B[0]+1===D.length}getRangeStartRow(G){if(G.startRow&&G.endRow)return XG(G.startRow,G.endRow)?G.startRow:G.endRow;return{rowIndex:0,rowPinned:(this.beans.pinnedRowModel?.getPinnedTopRowCount()??0)>0?"top":null}}getRangeEndRow(G){if(G.startRow&&G.endRow)return XG(G.startRow,G.endRow)?G.endRow:G.startRow;let D=this.beans.pinnedRowModel?.getPinnedBottomRowCount()??0;if(D>0)return{rowIndex:D-1,rowPinned:"bottom"};return{rowIndex:this.rowModel.getRowCount()-1,rowPinned:null}}getRangeRowCount(G){let D=this.beans,z=this.getRangeStartRow(G),B=this.getRangeEndRow(G),Q=x2(D,z);return x2(D,B)-Q+1}handleCellMouseDown(G,D){let z=G.ctrlKey||G.metaKey;this.handleCellSelectionInput(D,{target:G.target,shiftKey:G.shiftKey,isRightClick:hV(this.beans,G),isMultiRange:this.isMultiRange(G),isMultiKey:z,preventDefault:()=>G.preventDefault()})}handleCellKeyboardSelect(G,D){let z=G.ctrlKey||G.metaKey;this.handleCellSelectionInput(D,{target:G.target,shiftKey:G.shiftKey,isRightClick:!1,isMultiRange:this.isMultiRangeForKeyState(z),isMultiKey:z,preventDefault:()=>G.preventDefault()})}handleCellSelectionInput(G,D){let{target:z,shiftKey:B,isRightClick:Q,isMultiRange:J,isMultiKey:U,preventDefault:Z}=D;if(this.shouldSuppressRangeSelection(z))return;let S=this.isAllColumnsSelectionCell(G);if(S)Z();if(B)return this.extendLatestRangeToCell(G);if(S&&Q)return;this.updateSelectionModeForCell(G);let X=this.calculateColumnsBetween(G.column,G.column);if(!X)return;let Y=S?this.findContainingRange({columns:X,startRow:G,endRow:G}):void 0;if(S&&!!Y&&J&&U&&Y)this.removeRowFromAllColumnsRange(G,Y);else this.setRangeToCell(G,J)}isMultiRange(G){return this.isMultiRangeForKeyState(G.ctrlKey||G.metaKey)}isMultiRangeForKeyState(G){let{editingWithRanges:D,allowMulti:z}=this.getMultiRangeContext();return D||(z?G:!1)}getMultiRangeContext(){let{gos:G,editSvc:D}=this.beans,z=!!D?.isEditing()&&!!D?.isRangeSelectionEnabledWhileEditing(),B=cV(G)&&!z;return{editingWithRanges:z,suppressMultiRanges:B,allowMulti:!B}}removeRowFromAllColumnsRange(G,D){let{beans:z,cellRanges:B}=this,Q=S1(z),J=X1(z),U=this.getRangeStartRow(D),Z=this.getRangeEndRow(D);if(!U&&CG(Q,G))m0(D,sD(z,Q),"top");else if(!Z&&CG(J,G))m0(D,cz(z,J),"bottom");else if(CG(U,Z))p0(B,D);else if(CG(U,G))m0(D,sD(z,G),"top");else if(CG(Z,G))m0(D,cz(z,G),"bottom");else{let S=cz(z,G),X=sD(z,G);D.startRow=U,D.endRow=S??void 0,B.push({...D,startRow:X??void 0,endRow:Z})}this.dispatchChangedEvent(!0,!0)}setRangeToCell(G,D=!1){let{gos:z}=this;if(!l0(z))return;this.updateSelectionModeForCell(G);let B=this.calculateColumnsBetween(G.column,G.column);if(!B)return;let{suppressMultiRanges:Q}=this.getMultiRangeContext();if(Q||!D||dV(this.cellRanges))this.removeAllCellRanges(!0);let J={rowIndex:G.rowIndex,rowPinned:G.rowPinned},U={startRow:J,endRow:J,columns:B,startColumn:G.column},Z=this.ensureRangeStartColumn(U);if(!Z)return;this.cellRanges.push(U),this.setNewestRangeStartCell({...G,column:Z}),this.onDragStop(),this.dispatchChangedEvent(!0,!0)}getRangeLastColumn(G){let D=G.columns[0],z=DG(G.columns);return this.newestRangeStartCell?.column===D?z:D}extendRangeRowCountBy(G,D){let{beans:z}=this,{startRow:B,endRow:Q}=G;if(!B||!Q)return;let J=0,U,Z=XG(Q,B);if(Z)U=B;else U=Q;let S=D>0?sD:cz,X=Math.abs(D);while(JD.indexOf(B)).filter((B)=>B>-1).sort((B,Q)=>B-Q);return{left:D[z[0]],right:D[DG(z)]}}extendLatestRangeInDirection(G){if(this.isEmpty()||!this.newestRangeStartCell)return;let D=G.key,z=G.ctrlKey||G.metaKey,B=DG(this.cellRanges),Q=this.newestRangeStartCell,J=B.endRow.rowIndex,U=B.endRow.rowPinned,S={column:this.getRangeLastColumn(B),rowIndex:J,rowPinned:U},X=this.cellNavigation.getNextCellToFocus(D,S,z);if(!X)return;if(this.shouldSkipColumn(X.column))return;return this.setCellRange({rowStartIndex:Q.rowIndex,rowStartPinned:Q.rowPinned,rowEndIndex:X.rowIndex,rowEndPinned:X.rowPinned,columnStart:Q.column,columnEnd:X.column}),X}setCellRange(G){if(!l0(this.gos))return;this.removeAllCellRanges(!0),this.addCellRange(G)}setCellRanges(G){if(y2(this.cellRanges,G))return;if(!this.verifyCellRanges(this.gos))return;this.setSelectionMode(!1),this.removeAllCellRanges(!0);let D=this.getColumnsFromModel(this.visibleCols.allCols)??[],z=!1;for(let B of G){if(B.columns&&B.startRow){let Q=this.getColumnsFromModel(B.columns);if(!Q||Q.length===0)continue;B.columns=Q;let{startRow:J}=B;this.setNewestRangeStartCell({rowIndex:J.rowIndex,rowPinned:J.rowPinned,column:B.columns[0]})}if(!z&&D.length>0&&this.isAllColumnsRange(B,D))z=!0;this.cellRanges.push(B)}this.setSelectionMode(z),this.dispatchChangedEvent(!1,!0)}clearCellRangeCellValues(G){let{beans:D,eventSvc:z}=this,{cellEventSource:B="rangeSvc",dispatchWrapperEvents:Q,wrapperEventSource:J="deleteKey",restoreSourceInBatch:U}=G,{cellRanges:Z}=G;if(Q)z.dispatchEvent({type:"cellSelectionDeleteStart",source:J}),z.dispatchEvent({type:"rangeDeleteStart",source:J});if(!Z)Z=this.cellRanges;let{valueSvc:S,editSvc:X}=D,Y=!!X?.isBatchEditing(),{changeDetectionSvc:W}=D;W?.beginDeferred();try{this.forEachEditableCellInRanges(Z,(q,H)=>{if(U&&Y){X?.batchResetToSourceValue({rowNode:q,column:H});return}let _=S.getDeleteValue(H,q);q.setDataValue(H,_,B)})}finally{W?.endDeferred()}if(Q)z.dispatchEvent({type:"cellSelectionDeleteEnd",source:J}),z.dispatchEvent({type:"rangeDeleteEnd",source:J})}createCellRangeFromCellRangeParams(G){return this.createPartialCellRangeFromRangeParams(G,!1)}createPartialCellRangeFromRangeParams(G,D){let{columns:z,columnStart:B,columnEnd:Q,rowStartIndex:J,rowStartPinned:U,rowEndIndex:Z,rowEndPinned:S}=G,X=this.getColumnsFromParams(z,B,Q);if(!X||!D&&X.columns.length===0)return;let{columns:Y,startsOnTheRight:W}=X,q=l2(J,U),H=l2(Z,S);return{startRow:q,endRow:H,columns:Y,startColumn:this.getColumnFromModel(B)??(W?DG(Y):Y[0])}}addCellRange(G){let D=this.gos;if(!l0(D)||!this.verifyCellRanges(D))return;this.setSelectionMode(!1);let z=this.createCellRangeFromCellRangeParams(G);if(z){if(z.startRow)this.setNewestRangeStartCell({rowIndex:z.startRow.rowIndex,rowPinned:z.startRow.rowPinned,column:z.startColumn});return this.cellRanges.push(z),this.dispatchChangedEvent(!1,!0,z.id),z}}getCellRanges(){return this.cellRanges}isEmpty(){return this.cellRanges.length===0}isMoreThanOneCell(){let G=this.cellRanges.length;if(G===0)return!1;if(G>1)return!0;let D=this.cellRanges[0],z=this.getRangeStartRow(D),B=this.getRangeEndRow(D);return z.rowPinned!==B.rowPinned||z.rowIndex!==B.rowIndex||D.columns.length!==1}areAllRangesAbleToMerge(){let G=new Map;if(this.cellRanges.length<=1)return!0;for(let B of this.cellRanges)this.forEachRowInRange(B,(Q)=>{let J=`${Q.rowPinned||"normal"}_${Q.rowIndex}`,U=G.get(J),Z=B.columns.map((S)=>S.getId());if(U){let S=Z.filter((X)=>U.indexOf(X)===-1);U.push(...S)}else G.set(J,Z)});let z;for(let B of G.values()){let Q=B.sort().join();if(z===void 0){z=Q;continue}if(z!==Q)return!1}return!0}removeAllCellRanges(G){if(this.isEmpty())return;if(this.onDragStop(),this.cellRanges.length=0,!G)this.dispatchChangedEvent(!1,!0)}isCellInAnyRange(G){return this.getCellRangeCount(G)>0}isCellInSpecificRange(G,D){let z=D.columns?.includes(G.column),B=this.isRowInRange(G,D);return z&&B}isColumnInAnyRange(G){let{beans:D}=this,z=S1(D),B=X1(D);if(!z||!B)return!1;let Q=G.isColumn?[G]:G.getDisplayedLeafColumns();return this.findContainingRange({columns:Q,startRow:z,endRow:B},!0)!=null}findContainingRange({columns:G,startRow:D,endRow:z},B=!1){let Q=this.cellRanges;for(let J=Q.length-1;J>=0;J--){let U=Q[J],Z=G.every((X)=>U.columns.includes(X)),S=!1;if(B)S=CG(U.startRow,D)&&CG(U.endRow,z);else{let X=D&&this.isRowInRange(D,U),Y=z&&this.isRowInRange(z,U);S=!!X&&!!Y}if(Z&&S)return U}}isBottomRightCell(G,D){let z=this.visibleCols.allCols,B=G.columns.map((X)=>z.indexOf(X)).sort((X,Y)=>X-Y),{startRow:Q,endRow:J}=G,U=XG(Q,J)?J:Q,Z=z.indexOf(D.column)===DG(B),S=D.rowIndex===U.rowIndex&&c2(D.rowPinned)===c2(U.rowPinned);return Z&&S}getCellRangeCount(G){return this.cellRanges.filter((D)=>this.isCellInSpecificRange(G,D)).length}isRowInRange(G,D){let z=this.getRangeStartRow(D),B=this.getRangeEndRow(D),Q=CG(G,z),J=CG(G,B);if(Q||J)return!0;let U=!XG(G,z),Z=XG(G,B);return U&&Z}intersectLastRange(G){let{editingWithRanges:D,suppressMultiRanges:z}=this.getMultiRangeContext();if(D||z||G&&this.dragging||this.isEmpty())return;let B=DG(this.cellRanges),Q=this.getRangeStartRow(B),J=this.getRangeEndRow(B),U=[];for(let Z of this.cellRanges.slice(0,-1)){let S=this.getRangeStartRow(Z),X=this.getRangeEndRow(Z),Y=Z.columns,W=Y.filter((H)=>B.columns.indexOf(H)===-1);if(W.length===Y.length){U.push(Z);continue}if(XG(J,S)||XG(X,Q)){U.push(Z);continue}let q=U.length;if(XG(S,Q)){let H={columns:[...Y],startColumn:B.startColumn,startRow:{...S},endRow:cz(this.beans,Q)};U.push(H)}if(W.length>0){let H={columns:W,startColumn:W.includes(B.startColumn)?B.startColumn:W[0],startRow:Xb([{...Q},{...S}]),endRow:Yb([{...J},{...X}])};U.push(H)}if(XG(J,X))U.push({columns:[...Y],startColumn:B.startColumn,startRow:sD(this.beans,J),endRow:{...X}});if(U.length-q===1)U[U.length-1].id=Z.id}if(this.cellRanges=U,G)this.dispatchChangedEvent(!1,!0)}createRangeHighlightFeature(G,D,z){G.createManagedBean(new Lb(D,z))}setSelectionMode(G){this.selectionMode=G?1:0}refreshRangeStart(G){let{columns:D}=G,z=this.ensureRangeStartColumn(G);if(!z)return;let B=(S,X)=>{let Y=G.columns.filter((W)=>W!==S);if(S)G.startColumn=S,G.columns=X?[S,...Y]:[...Y,S];else G.columns=Y},{left:Q,right:J}=this.getRangeEdgeColumns(G);if(z===D[0]&&z!==Q){B(Q,!0);return}if(z===DG(D)&&z===J)B(J,!1)}setNewestRangeStartCell(G){this.newestRangeStartCell=G}getColumnsFromParams(G,D,z){let B=!G&&!D&&!z,Q,J=!1;if(B||G)Q=this.getColumnsFromModel(B?void 0:G);else if(D&&z){if(Q=this.calculateColumnsBetween(D,z),Q?.length)J=Q[0]!==this.getColumnFromModel(D)}return Q?{columns:Q,startsOnTheRight:J}:void 0}verifyCellRanges(G){let{suppressMultiRanges:D}=this.getMultiRangeContext(),z=nV(G)&&D&&this.cellRanges.length>1;if(z)Y1(93);return!z}forEachRowInRange(G,D){let z=this.getRangeStartRow(G),B=this.getRangeEndRow(G),Q=z;while(Q){if(D(Q),CG(Q,B))break;Q=sD(this.beans,Q)}}forEachEditableCellInRanges(G,D){let{beans:z}=this;for(let B of G)this.forEachRowInRange(B,(Q)=>{let J=xV(z,Q);if(!J)return;for(let U=0;U0,X=D.ctrlKey||D.metaKey,Y=!Z||X,W=S1(B),q=X1(B);if(!W||!q)return;if(D.key===uV.ENTER)D.preventDefault();if(D.shiftKey){let _=Q.root;if(!_)return;let k=G.isColumn?G:DG(G.getLeafColumns()),w=this.findContainingRange({columns:[_],startRow:W,endRow:q},!0);if(!w){p0(J,Q.lastCellRange),this.selectColumns(this.calculateColumnsBetween(_,k),W,q);return}this.updateRangeRowBoundary({cellRange:w,boundary:"end",cellPosition:{column:k,...q}});return}if(S&&(U||!X&&!Z))this.removeAllCellRanges(!0);let H=(_,k)=>{let w=this.findContainingRange({columns:_,startRow:W,endRow:q},!0);if(w&&Y)this.deselectColumnsFromRange(w,_);else{let K=this.selectColumns(_,W,q);if(K)Q.lastCellRange=K}Q.root=k};if(G.isColumn)H([G],G);else{let _=G.getDisplayedLeafColumns();H(_,_[0])}}deselectColumnsFromRange(G,D){if(lV(G.columns,D),D.includes(G.startColumn))G.startColumn=G.columns[0];if(G.columns.length===0)p0(this.cellRanges,G);this.dispatchChangedEvent(!0,!0)}selectColumns(G,D,z){return this.addCellRange({columns:G,columnStart:G[0],columnEnd:DG(G),rowStartIndex:D.rowIndex,rowStartPinned:D.rowPinned,rowEndIndex:z.rowIndex,rowEndPinned:z.rowPinned})}};function l2(G,D){return G!=null?{rowIndex:G,rowPinned:D}:void 0}function Xb(G){let D;for(let z of G)if(D===void 0||XG(D,z))D=z;return D}function Yb(G){let D;for(let z of G)if(D===void 0||XG(z,D))D=z;return D}function Wb(G,D){let{startRow:z,endRow:B}=G,Q=XG(z,B)?B:z,J=D.rowIndex===Q.rowIndex&&D.rowPinned===Q.rowPinned,U=G.columns[0],Z=DG(G.columns),S=G.startColumn===U?Z:U;return D.column===S&&J}function m0(G,D,z){let B;if(z==="top")B=!G.startRow||!G.endRow||XG(G.startRow,G.endRow)?"startRow":"endRow";else B=!G.startRow||!G.endRow||XG(G.startRow,G.endRow)?"endRow":"startRow";G[B]=D??void 0}var Xz={moduleName:"CellSelection",version:j,beans:[Sb],dynamicBeans:{fillHandle:MV,rangeHandle:RV},apiFunctions:{getCellRanges:VV,addCellRange:bV,clearRangeSelection:T2,clearCellSelection:T2},dependsOn:[i,ZV,UV],css:[CV]},qb={moduleName:"RangeSelection",version:j,dependsOn:[Xz]},Ib={tag:"div",cls:"ag-loading",children:[{tag:"span",ref:"eLoadingIcon",cls:"ag-loading-icon"},{tag:"span",ref:"eLoadingText",cls:"ag-loading-text"}]},Mb=class extends Fb{constructor(){super(Ib);this.eLoadingIcon=p2,this.eLoadingText=p2}init(G){if(G.node.failedLoad)this.setupFailed();else this.setupLoading()}setupFailed(){this.eLoadingText.textContent=this.getLocaleTextFunc()("loadingError","ERR")}setupLoading(){let G=Eb("groupLoading",this.beans,null);if(G)this.eLoadingIcon.appendChild(G);this.eLoadingText.textContent=this.getLocaleTextFunc()("loadingOoo","Loading...")}refresh(G){return!1}},Ab={moduleName:"LoadingCellRenderer",version:j,userComponents:{agLoadingCellRenderer:Mb},icons:{groupLoading:"loading"},dependsOn:[i]};function Cb(G){return G.colModel.isPivotMode()}function Vb(G,D,z){return G.pivotResultCols?.lookupPivotResultCol(D,z)??null}function bb(G,D){G.valueColsSvc?.setColumns(D,"api")}function vb(G){return G.valueColsSvc?.columns??[]}function Ob(G,D){G.valueColsSvc?.removeColumns(D,"api")}function ub(G,D){G.valueColsSvc?.addColumns(D,"api")}function jb(G,D){G.pivotColsSvc?.setColumns(D,"api")}function Pb(G,D){G.pivotColsSvc?.removeColumns(D,"api")}function gb(G,D){G.pivotColsSvc?.addColumns(D,"api")}function Tb(G){return G.pivotColsSvc?.columns??[]}function yb(G,D){G.pivotResultCols?.setPivotResultCols(D,"api")}function xb(G){let D=G.pivotResultCols?.getPivotResultCols();return D?D.list:null}var m2="PivotRowTotal_",hb=({headerName:G},{headerName:D})=>{if(G&&!D)return 1;else if(!G&&D)return-1;else if(!G&&!D)return 0;if(GD)return 1;else return 0},ib=(G)=>(D,z)=>G(D.headerName,z.headerName),nb=class extends cb{constructor(){super(...arguments);this.beanName="pivotColDefSvc"}wireBeans(G){this.colModel=G.colModel,this.pivotColsSvc=G.pivotColsSvc,this.valueColsSvc=G.valueColsSvc,this.colNames=G.colNames}postConstruct(){let G=()=>this.gos.get("serverSidePivotResultFieldSeparator")??"_";this.fieldSeparator=G(),this.addManagedPropertyListener("serverSidePivotResultFieldSeparator",()=>{this.fieldSeparator=G()});let D=()=>this.gos.get("pivotDefaultExpanded");this.pivotDefaultExpanded=D(),this.addManagedPropertyListener("pivotDefaultExpanded",()=>{this.pivotDefaultExpanded=D()})}createPivotColumnDefs(G){let D=this.createPivotColumnsFromUniqueValues(G);function z(Q,J=[]){return Q.forEach((U)=>{if(U.children!==void 0)z(U.children,J);else J.push(U)}),J}let B=z(D);return this.addRowGroupTotals(D,B),this.addExpandablePivotGroups(D,B),this.addPivotTotalsToGroups(D,B),D}createPivotColumnsFromUniqueValues(G){let D=this.pivotColsSvc?.columns??[],z=D.length;return this.recursivelyBuildGroup(0,G,[],z,D)}recursivelyBuildGroup(G,D,z,B,Q){if(G>=B)return this.buildMeasureCols(z);let{pivotComparator:J}=Q[G].getColDef(),U=J?ib(J):hb,Z=this.valueColsSvc?.columns;if(Z?.length===1&&this.gos.get("removePivotHeaderRowWhenSingleValueColumn")&&G===B-1){let X=[];for(let Y of D.keys()){let W=[...z,Y],q=this.createColDef(Z[0],Y,W);q.columnGroupShow="open",X.push(q)}return X.sort(U),X}let S=[];for(let X of D.keys()){let Y=this.pivotDefaultExpanded===-1||G{let B=this.colNames.getDisplayNameForColumn(z,"header"),Q=this.createColDef(z,B,G);return Q.columnGroupShow="open",Q})}addExpandablePivotGroups(G,D){let z=this.gos.get("suppressExpandablePivotGroups");if(z||this.gos.get("pivotColumnGroupTotals"))return;let B=(Q,J,U)=>{if("children"in Q){let{valueColsSvc:X}=this,{columns:Y=[]}=X??{},W=new Map;Q.children.forEach((_)=>{B(_,J,W)});let q=!Q.children.some((_)=>_.children),H=q&&Y.length===1&&this.gos.get("removePivotHeaderRowWhenSingleValueColumn");for(let _ of Y){let k=this.colNames.getDisplayNameForColumn(_,"header"),w=this.createColDef(_,k,Q.pivotKeys);if(w.pivotTotalColumnIds=W.get(_.getColId()),w.columnGroupShow=!z?"closed":"open",w.aggFunc=_.getAggFunc(),!q||H)Q.children.push(w),J.push(w)}this.merge(U,W);return}if(!Q.pivotValueColumn)return;let Z=Q.pivotValueColumn.getColId();if(U.has(Z))U.get(Z).push(Q.colId);else U.set(Z,[Q.colId])};G.forEach((Q)=>{B(Q,D,new Map)})}addPivotTotalsToGroups(G,D){if(!this.gos.get("pivotColumnGroupTotals"))return;let z=this.gos.get("pivotColumnGroupTotals")==="after",B=this.valueColsSvc?.columns,Q=B?.map((J)=>J.getAggFunc());if(!Q||Q.length<1||!this.sameAggFuncs(Q))return;if(B){let J=B[0];G.forEach((U)=>{this.recursivelyAddPivotTotal(U,D,J,z)})}}recursivelyAddPivotTotal(G,D,z,B){let Q=G;if(!Q.children){let U=G;return U.colId?[U.colId]:null}let J=[];if(Q.children.forEach((U)=>{let Z=this.recursivelyAddPivotTotal(U,D,z,B);if(Z)J=J.concat(Z)}),Q.children.length>1){let Z=this.getLocaleTextFunc()("pivotColumnGroupTotals","Total"),S=this.createColDef(z,Z,G.pivotKeys,!0);S.pivotTotalColumnIds=J,S.aggFunc=z.getAggFunc(),S.columnGroupShow=this.gos.get("suppressExpandablePivotGroups")?"open":void 0;let X=G.children;if(B)X.push(S);else X.unshift(S);D.push(S)}return J}addRowGroupTotals(G,D){if(!this.gos.get("pivotRowTotals"))return;let z=this.gos.get("pivotRowTotals")==="after",Q=(this.valueColsSvc?.columns??[]).slice();if(!z)Q.reverse();let J=Q.length>1||!this.gos.get("removePivotHeaderRowWhenSingleValueColumn");for(let U=0;UJ.data?.[J.colDef.field],Q.pivotKeys=z,Q.pivotValueColumn=G,Q.filter===!0)Q.filter="agNumberColumnFilter";return Q}sameAggFuncs(G){if(G.length==1)return!0;for(let D=1;D{let J=[...G.has(B)?G.get(B):[],...z];G.set(B,J)})}generateColumnGroupId(G){return`pivotGroup_${(this.pivotColsSvc?.columns??[]).map((z)=>z.getColId()).join("-")}_${G.join("-")}`}generateColumnId(G,D){return`pivot_${(this.pivotColsSvc?.columns??[]).map((B)=>B.getColId()).join("-")}_${G.join("-")}_${D}`}createColDefsFromFields(G){let D=new Map;for(let Q=0;Q{let S=[];for(let[W,q]of U){let H=z(`${Q}${this.fieldSeparator}${W}`,W,q,Z+1);S.push(H)}if(S.length===0){let W=this.colModel.getColDefCol(J);if(W){let H=this.colNames.getDisplayNameForColumn(W,"header")??J,_=this.createColDef(W,H,void 0,!1);return _.colId=Q,_.aggFunc=W.getAggFunc(),_.valueGetter=(k)=>k.data?.[Q],_}return{colId:Q,headerName:J,valueGetter:(H)=>H.data?.[Q]}}if(this.gos.get("removePivotHeaderRowWhenSingleValueColumn")&&S.length===1&&"colId"in S[0])return S[0].headerName=J,S[0];return{openByDefault:this.pivotDefaultExpanded===-1||Z{Q.forEach((J)=>{if(tb(J.children)){let Z=J;if(z)z(Z);B(Z.children)}else{let Z=J;if(D)D(Z)}})};if(G)B(G)}},s2="Exceeded maximum allowed pivot column count.",WB=(G)=>{let D={};return G.forEach((z,B)=>D[B]=z instanceof Map?WB(z):z),D},Dv=class extends rb{constructor(){super(...arguments);this.beanName="pivotStage",this.step="pivot",this.refreshProps=["removePivotHeaderRowWhenSingleValueColumn","pivotRowTotals","pivotColumnGroupTotals","suppressExpandablePivotGroups"],this.uniqueValues=new Map,this.lastTimeFailed=!1,this.maxUniqueValues=-1,this.currentUniqueCount=0}wireBeans(G){this.valueSvc=G.valueSvc,this.colModel=G.colModel,this.pivotResultCols=G.pivotResultCols,this.rowGroupColsSvc=G.rowGroupColsSvc,this.valueColsSvc=G.valueColsSvc,this.pivotColsSvc=G.pivotColsSvc,this.pivotColDefSvc=G.pivotColDefSvc}execute(G){if(this.colModel.isPivotActive())return this.executePivotOn(G);else return this.executePivotOff()}executePivotOff(){if(this.aggregationColumnsHashLastTime=null,this.uniqueValues=new Map,this.pivotResultCols.isPivotResultColsPresent())return this.pivotResultCols.setPivotResultCols(null,"rowModelUpdated"),!0;return!1}executePivotOn(G){let D=this.valueColsSvc?.columns.length??1,z=this.gos.get("pivotMaxGeneratedColumns");this.maxUniqueValues=z===-1?-1:z/D;let B;try{B=this.bucketUpRowNodes(G)}catch(K){if(K.message===s2)return this.pivotResultCols.setPivotResultCols([],"rowModelUpdated"),this.eventSvc.dispatchEvent({type:"pivotMaxColumnsExceeded",message:K.message}),this.lastTimeFailed=!0,!1;throw K}let Q=this.setUniqueValues(B),J=this.valueColsSvc?.columns??[],U=J.map((K)=>`${K.getId()}-${K.getColDef().headerName}`).join("#"),Z=J.map((K)=>K.getAggFunc().toString()).join("#"),S=this.aggregationColumnsHashLastTime!==U,X=this.aggregationFuncsHashLastTime!==Z;this.aggregationColumnsHashLastTime=U,this.aggregationFuncsHashLastTime=Z;let Y=(this.rowGroupColsSvc?.columns??[]).map((K)=>K.getId()).join("#"),W=Y!==this.groupColumnsHashLastTime;this.groupColumnsHashLastTime=Y;let q=this.gos.get("pivotRowTotals"),H=this.gos.get("pivotColumnGroupTotals"),_=this.gos.get("suppressExpandablePivotGroups"),k=this.gos.get("removePivotHeaderRowWhenSingleValueColumn"),w=q!==this.pivotRowTotalsLastTime||H!==this.pivotColumnGroupTotalsLastTime||_!==this.suppressExpandablePivotGroupsLastTime||k!==this.removePivotHeaderRowWhenSingleValueColumnLastTime;if(this.pivotRowTotalsLastTime=q,this.pivotColumnGroupTotalsLastTime=H,this.suppressExpandablePivotGroupsLastTime=_,this.removePivotHeaderRowWhenSingleValueColumnLastTime=k,this.lastTimeFailed||Q||S||W||X||w){let K=this.pivotColDefSvc.createPivotColumnDefs(this.uniqueValues);return this.pivotResultCols.setPivotResultCols(K,"rowModelUpdated"),this.lastTimeFailed=!1,!0}return this.lastTimeFailed=!1,!1}setUniqueValues(G){if(!eb(WB(this.uniqueValues),WB(G)))return this.uniqueValues=G,!0;return!1}bucketUpRowNodes(G){this.currentUniqueCount=0;let D=new Map;ab(this.beans.rowModel.rootNode,this.beans.rowModel.hierarchical,G,(B)=>{if(B.leafGroup)B.childrenMapped=null});let z=(B)=>{if(B.leafGroup)this.bucketRowNode(B,D);else{let Q=B.childrenAfterFilter;if(Q)for(let J=0,U=Q.length;Jthis.maxUniqueValues;if(U&&q)throw Error(s2)}if(!Q.has(W))Q.set(W,[]);Q.get(W).push(Y)}if(z===D.length-1)return Q;let Z=new Map;for(let S of Q.keys())Z.set(S,this.bucketChildren(Q.get(S),D,z+1,B.get(S)));return Z}},U8={moduleName:"SharedPivot",version:j,beans:[ob,nb,T7],apiFunctions:{isPivotMode:Cb,getPivotResultColumn:Vb,setValueColumns:bb,getValueColumns:vb,removeValueColumns:Ob,addValueColumns:ub,setPivotColumns:jb,removePivotColumns:Pb,addPivotColumns:gb,getPivotColumns:Tb,setPivotResultColumns:yb,getPivotResultColumns:xb},dependsOn:[CJ,Rb]},pB={moduleName:"Pivot",version:j,rowModels:["clientSide"],beans:[Dv],dependsOn:[U8,VJ,_0]},o2=(G)=>{let D=G.split(".");if(D.includes("__proto__"))return()=>{};let z=D.length;if(z<2)return(B)=>B?.[G];return(B)=>{let Q=0;do if(B=B?.[D[Q++]],Q===z)return B;while(typeof B==="object")}},HG=2147483648,wG=1073741824,s0=536870912,nz=268435455,W1=String.fromCodePoint(31,41150,8291),q1=3,Jv=class extends zv{constructor(){super(...arguments);this.nestedDataGetter=null,this.parentIdGetter=null,this.nonLeafsById=null,this.nodesToUnselect=null,this.fullReload=!1}postConstruct(){this.onPropChange(null)}onPropChange(G){let D=this.gos;if(!G||G.has("treeDataParentIdField")){let z=D.get("treeDataParentIdField"),B=z?o2(z):null;if(this.fullReload||(this.fullReload=this.parentIdGetter!==B),this.parentIdGetter=B,B)this.nestedDataGetter=null}if(!G||G.has("treeDataChildrenField")){let z=this.parentIdGetter?"":D.get("treeDataChildrenField"),B=z?o2(z):null;this.fullReload||(this.fullReload=this.nestedDataGetter!==B),this.nestedDataGetter=B}}destroy(){this.nodesToUnselect=null,this.reset(),super.destroy()}reset(){this.clearNonLeafs(),this.deselectHiddenNodes(!1),this.fullReload=!0}clearNonLeafs(){let G=this.nonLeafsById;if(G){for(let D of G.values())D._destroy(!1);G.clear(),this.nonLeafsById=null}}getNonLeaf(G){return this.nonLeafsById?.get(G)}loadGroupData(G){let D=G.key;if(D==null)return G._groupData=null,null;let z={};G._groupData=z;let B=this.beans.showRowGroupCols?.columns;if(B)for(let Q=0,J=B.length;Q0&&Z!==X)this.handleCycles(G),this.traverseRoot(G,B);return G.treeNodeFlags=0,this.deselectHiddenNodes(U||Q),S}flagUpdatedNodes(G){let{adds:D,updates:z,removals:B}=G,Q=B.length>0;if(D.size>0){Q=!0;for(let J of D)J.treeNodeFlags|=wG}if(z.size>0){Q=!0;for(let J of z)J.treeNodeFlags|=wG}return Q}initRowsParents(G){let D=G._leafs,z=D.length,B=!1;for(let Q=0;Q=0||B.treeNodeFlags&s0||B.treeParent===null){B.treeNodeFlags=Q;break}B.treeNodeFlags=Q|s0|G.treeNodeFlags&wG,G=B}return D}destroyFillerRows(G){let D=this.nonLeafsById;if(D){for(let z of D.values())if(z.treeParent===null||(z.treeNodeFlags&nz)===0)D.delete(z.id),z._destroy(G),this.hideRow(z);if(D.size===0)this.nonLeafsById=null}}initRowsChildrenSize(G){this.initRowChildrenSize(G);let D=G._leafs,z=D.length;for(let Q=0;Q=0){if(D!==null){G.childrenAfterGroup=null,G.childrenAfterFilter=null,G.childrenAfterAggFilter=null,G.childrenAfterSort=null;let U=G.sibling;if(U)U.childrenAfterGroup=null,U.childrenAfterFilter=null,U.childrenAfterAggFilter=null,U.childrenAfterSort=null}}else if(Q!==J||D===z)if(!D||D===z){G.childrenAfterGroup=D=Array(J);let U=G.sibling;if(U)U.childrenAfterGroup=D}else D.length=J}preprocessRows(G){let D=G._leafs,z=D.length,B=0,Q=!1;for(let J=0;J0)B?.addRow(G);G._leafs=void 0}return U+1}handleCycles(G){let D=new Set,z=(J)=>{if(D.has(J))return!1;D.add(J);for(let U of J.childrenAfterGroup??[])z(U);return!0};z(G);let B=G.childrenAfterGroup;B.length=0;let Q=G._leafs;for(let J=0,U=Q.length;J=0;--q){let H=D.get(S.slice(0,B[q]));if(H){W=H,Y=q+1;break}}if(Y0?D[Q-1]+q1:0,U=D[Q];B+="-"+Q+"-"+G.slice(J,U),++Q}return B+"-"+z+"-"}deselectHiddenNodes(G){let D=this.beans.selectionSvc,z=this.nodesToUnselect,B="rowDataChanged";if(z)this.nodesToUnselect=null,D?.setNodesSelected({newValue:!1,nodes:z,suppressFinishActions:!0,source:"rowDataChanged"});if(z||G)D?.updateGroupsFromChildrenSelections?.("rowDataChanged");if(z){let Q=D?.getSelectedNodes()??null;this.eventSvc.dispatchEvent({type:"selectionChanged",source:"rowDataChanged",selectedNodes:Q,serverSideState:null})}}hideRow(G){if(G.isSelected())(this.nodesToUnselect??(this.nodesToUnselect=[])).push(G);G.parent=null,G.group=!1,G.treeParent=null,G.treeNodeFlags=0,G.childrenAfterGroup=null,G.childrenAfterFilter=null,G.childrenAfterAggFilter=null,G.childrenAfterSort=null,G._leafs=void 0,G._groupData=null,G.aggData=null;let D=G.sibling;if(D)D.childrenAfterGroup=null,D.childrenAfterFilter=null,D.childrenAfterAggFilter=null,D.childrenAfterSort=null;if(G.updateHasChildren(),G.rowIndex!==null)G.clearRowTopAndRowIndex()}onShowRowGroupColsSetChanged(){let G=this.beans.rowModel.rootNode._leafs;if(!G)return;for(let z=0,B=G.length;zG.sourceRowIndex-D.sourceRowIndex,Zv=(G,D)=>{if(D._expanded!==void 0&&G._expanded===void 0&&G.treeParent!==null&&G.sourceRowIndex<0)G._expanded=D._expanded},o0=(G,D)=>{let z=G._groupData!==void 0;G.key=D,G.groupValue=D;let B=G.sibling;if(B)B.key=D;if(z)G._groupData=void 0,G.setData(G.data)},Z8={moduleName:"SharedTreeData",version:j,dependsOn:[i,IJ,m7,AJ,RJ]},$8={moduleName:"TreeData",version:j,dynamicBeans:{treeGroupStrategy:Jv},rowModels:["clientSide"],dependsOn:[Z8,MJ,_0,t7]},Wv="ag-Grid-MissingKey",qv=class extends $v{constructor(){super(...arguments);this.beanName="ssrmBlockUtils"}wireBeans(G){this.valueSvc=G.valueSvc,this.showRowGroupCols=G.showRowGroupCols,this.nodeManager=G.ssrmNodeManager,this.expansionSvc=G.expansionSvc,this.serverSideRowModel=G.rowModel,this.storeFactory=G.ssrmStoreFactory}createRowNode(G){let D=new Lv(this.beans),z=G.rowHeight!=null?G.rowHeight:Xv(this.beans);if(D.setRowHeight(z),D.group=G.group,D.leafGroup=G.leafGroup,D.level=G.level,D.uiLevel=G.level,D.parent=G.parent,D.stub=!0,D.__needsRefreshWhenVisible=!1,D.group)D.expanded=!1,D.field=G.field,D.rowGroupColumn=G.rowGroupColumn,D.rowGroupIndex=G.level;return D}destroyRowNode(G,D=!1){if(G.childStore&&!D)this.destroyBean(G.childStore),G.childStore=null;let z=G.sibling;if(z&&!G.footer)this.destroyRowNode(z,!1);if(G._destroy(!0),G.id!=null)this.nodeManager.removeNode(G)}setTreeGroupInfo(G){G.updateHasChildren();let D=this.gos.get("getServerSideGroupKey"),z=G.hasChildren();if(z&&D!=null)G.key=D(G.data);if(!z&&G.childStore!=null){if(this.destroyBean(G.childStore),G.childStore=null,!G.master)G.expanded=!1}}setRowGroupInfo(G){if(G.key=this.valueSvc.getValue(G.rowGroupColumn,G,"data"),G.key===null||G.key===void 0)Sv(()=>{Yv(190,{rowGroupId:G.rowGroupColumn?.getId(),data:G.data})},"SSBlock-BadKey");if(this.gos.get("groupAllowUnbalanced")&&G.key===""){let Q=this.serverSideRowModel.getParams();G.childStore=this.createBean(this.storeFactory.createStore(Q,G))}if(r2(this.beans.gos)({node:G})){if(pG(G,this.beans),G.sibling)G.sibling.uiLevel=G.uiLevel+1}}setMasterDetailInfo(G){let D=this.gos.get("isRowMaster");if(D!=null)G.master=D(G.data);else G.master=!0}updateDataIntoRowNode(G,D){if(G.updateData(D),this.gos.get("treeData"))this.setTreeGroupInfo(G),this.setChildCountIntoRowNode(G),this.updateRowFooter(G);else if(G.group)this.setChildCountIntoRowNode(G),this.updateRowFooter(G);else if(this.gos.get("masterDetail"));}updateRowFooter(G){if(G.footer)return;if(G.group){if(r2(this.beans.gos)({node:G})&&!G.sibling){pG(G,this.beans);return}}if(G.sibling)EJ(G)}setDataIntoRowNode(G,D,z,B){G.stub=!1;let Q=this.gos.get("treeData");G.setDataAndId(D,z);let J=G.group;if((Q||!J)&&this.gos.get("masterDetail"))this.setMasterDetailInfo(G);if(Q)this.setTreeGroupInfo(G);else if(J)this.setRowGroupInfo(G);if(Q||J)this.setGroupDataIntoRowNode(G),this.setChildCountIntoRowNode(G);if(H1(D))G.setRowHeight(a2(this.beans,G,!1,B).height),G.sibling?.setRowHeight(a2(this.beans,G.sibling,!1,B).height)}setChildCountIntoRowNode(G){let D=this.gos.get("getChildCount");if(D)G.setAllChildrenCount(D(G.data))}setGroupDataIntoRowNode(G){let D=G.key;if(G.groupValue=D,G.sibling)G.sibling.groupValue=D;let z=this.showRowGroupCols?.columns;if(!z)return;let B=this.gos.get("treeData");for(let Q of z){let J=G._groupData;if(!J)J={},G._groupData=J;if(B)J[Q.getColId()]=D;else if(Q.isRowGroupDisplayed(G.rowGroupColumn.getId())){let U=this.valueSvc.getValue(G.rowGroupColumn,G,"data");J[Q.getColId()]=U}}}clearDisplayIndex(G){if(G.clearRowTopAndRowIndex(),G.hasChildren()&&!!G.childStore)G.childStore?.clearDisplayIndexes();if(G.master&&G.detailNode)G.detailNode?.clearRowTopAndRowIndex()}setDisplayIndex(G,D,z,B){let Q=this.gos.get("groupAllowUnbalanced")&&G.group&&G.key==="";if(this.gos.get("groupHideOpenParents")&&G.group&&G.expanded||Q)G.setRowIndex(null),G.setRowTop(null);else G.setRowIndex(D.value++),G.setRowTop(z.value),z.value+=G.rowHeight;if(G.setUiLevel(B),G.footer)return;if(G.master){if(G.expanded&&G.detailNode)G.detailNode.setRowIndex(D.value++),G.detailNode.setRowTop(z.value),z.value+=G.detailNode.rowHeight;else if(G.detailNode)G.detailNode.clearRowTopAndRowIndex()}if(G.hasChildren()&&!!G.childStore){let S=G.childStore;if(G.expanded||Q)S.setDisplayIndexes(D,z,Q?B:B+1);else S.clearDisplayIndexes()}}extractRowBounds(G,D){let z=(B)=>({rowHeight:B.rowHeight,rowTop:B.rowTop});if(G.rowIndex===D)return z(G);if(G.hasChildren()&&G.expanded&&!!G.childStore){let B=G.childStore;if(B.isDisplayIndexInStore(D))return B.getRowBounds(D)}else if(G.master&&G.expanded&&G.detailNode){if(G.detailNode.rowIndex===D)return z(G.detailNode)}}isPixelInNodeRange(G,D){if(!H1(G.rowTop)||!H1(G.rowHeight))return!1;return D>=G.rowTop&&D=0){if(z.key==="")D.push(Wv);else D.push(z.key);z=z.parent}if(D.length>0)return D.reverse().join("-");return}checkOpenByDefault(G){let D=!!this.expansionSvc?.isNodeExpanded(G),z=G._expanded;if(!!z!==D)G.setExpanded(D);else if(z===void 0)G._expanded=D}},kv=class extends Hv{constructor(){super(...arguments);this.beanName="ssrmExpandListener"}postConstruct(){if(!_v(this.gos))return;this.addManagedEventListeners({rowExpansionStateChanged:this.onRowExpandStateChanged.bind(this)})}onRowExpandStateChanged(){let G=this.beans,D=G.expansionSvc;G.rowModel.forEachNode((z)=>{D.updateExpandedState(z)}),this.eventSvc.dispatchEvent({type:"storeUpdated"})}},Nv=class extends wv{constructor(){super(...arguments);this.beanName="ssrmFilterListener"}wireBeans(G){this.serverSideRowModel=G.rowModel,this.filterManager=G.filterManager,this.listenerUtils=G.ssrmListenerUtils}postConstruct(){if(!Kv(this.gos))return;this.addManagedEventListeners({advancedFilterEnabledChanged:()=>this.onFilterChanged(!0),filterChanged:()=>this.onFilterChanged()})}onFilterChanged(G){let D=this.serverSideRowModel.getParams();if(!D)return;let z=D.filterModel,B,Q;if(this.filterManager?.isAdvFilterEnabled()){B=this.filterManager.getAdvFilterModel();let S=G?Object.keys(z??{}):this.getAdvancedFilterColumns(z),X=this.getAdvancedFilterColumns(B);for(let Y of S)X.add(Y);Q=Array.from(X)}else if(B=this.filterManager?.getFilterModel()??{},G){let S=this.getAdvancedFilterColumns(z);for(let X of Object.keys(B))S.add(X);Q=Array.from(S)}else Q=this.findChangedColumns(z,B);let J=this.listenerUtils.isSortingWithValueColumn(Q),U=this.listenerUtils.isSortingWithSecondaryColumn(Q),Z={valueColChanged:J,secondaryColChanged:U,changedColumns:Q};this.serverSideRowModel.refreshAfterFilter(B,Z)}findChangedColumns(G,D){let z={};for(let Q of Object.keys(G))z[Q]=!0;for(let Q of Object.keys(D))z[Q]=!0;let B=[];for(let Q of Object.keys(z))if(!fv(G[Q],D[Q]))B.push(Q);return B}getAdvancedFilterColumns(G){let D=new Set;if(!G)return D;let z=(B)=>{if(B.filterType==="join")for(let Q of B.conditions)z(Q);else D.add(B.colId)};return z(G),D}},Ev=class extends Fv{constructor(){super(...arguments);this.beanName="ssrmListenerUtils"}wireBeans(G){this.pivotResultCols=G.pivotResultCols,this.valueColsSvc=G.valueColsSvc}isSortingWithValueColumn(G){let D=(this.valueColsSvc?.columns??[]).map((z)=>z.getColId());for(let z=0;z-1)return!0;return!1}isSortingWithSecondaryColumn(G){let D=this.pivotResultCols?.getPivotResultCols();if(!D)return!1;let z=D.list.map((B)=>B.getColId());for(let B=0;B-1)return!0;return!1}},Av=class extends Iv{constructor(){super(...arguments);this.beanName="ssrmSortSvc"}wireBeans(G){this.sortSvc=G.sortSvc,this.serverSideRowModel=G.rowModel,this.listenerUtils=G.ssrmListenerUtils}postConstruct(){if(!Mv(this.gos))return;this.addManagedEventListeners({sortChanged:this.onSortChanged.bind(this)})}onSortChanged(){let G=this.serverSideRowModel.getParams();if(!G)return;let D=this.sortSvc.getSortModel(),z=G.sortModel,B=this.findChangedColumnsInSort(D,z),Q=this.listenerUtils.isSortingWithValueColumn(B),J=this.listenerUtils.isSortingWithSecondaryColumn(B),U={valueColChanged:Q,secondaryColChanged:J,changedColumns:B};this.serverSideRowModel.refreshAfterSort(D,U)}findChangedColumnsInSort(G,D){let z=[];for(let J of[G,D])if(J){let U=J.map((Z)=>Z.colId);z=z.concat(U)}let B=(J,U)=>{let Z=J?J.sort:null,S=U?U.sort:null;return Z!==S},Q=(J,U)=>{let Z=J?D.indexOf(J):-1,S=U?G.indexOf(U):-1;return Z!==S};return z.filter((J)=>{let U=D.find((S)=>S.colId===J),Z=G.find((S)=>S.colId===J);return B(U,Z)||Q(U,Z)})}},Vv=class extends Rv{constructor(){super(...arguments);this.beanName="ssrmNodeManager",this.rowNodes=new Map}addRowNode(G){let D=G.id;if(this.rowNodes.has(D))Cv(187,{rowId:D,firstData:this.rowNodes.get(D).data,secondData:G.data});this.rowNodes.set(D,G)}removeNode(G){let D=G.id;this.rowNodes.delete(D)}destroy(){this.clear(),super.destroy()}clear(){this.rowNodes.clear(),super.destroy()}},yv=class extends bv{constructor(){super(...arguments);this.beanName="rowModel",this.hierarchical=!0,this.started=!1,this.managingPivotResultColumns=!1,this.onRowHeightChanged_debounced=Ov(this,this.onRowHeightChanged.bind(this),100)}wireBeans(G){this.colModel=G.colModel,this.colNames=G.colNames,this.pivotResultCols=G.pivotResultCols,this.rowGroupColsSvc=G.rowGroupColsSvc,this.pivotColsSvc=G.pivotColsSvc,this.valueColsSvc=G.valueColsSvc,this.filterManager=G.filterManager,this.sortSvc=G.sortSvc,this.rowRenderer=G.rowRenderer,this.nodeManager=G.ssrmNodeManager,this.storeFactory=G.ssrmStoreFactory,this.pivotColDefSvc=G.pivotColDefSvc}ensureRowHeightsValid(){return!1}start(){this.started=!0,this.updateDatasource()}destroyDatasource(){if(!this.datasource)return;if(this.datasource.destroy)this.datasource.destroy();this.rowRenderer.datasourceChanged(),this.datasource=void 0}postConstruct(){let G=this.resetRootStore.bind(this);this.addManagedEventListeners({newColumnsLoaded:this.onColumnEverything.bind(this),storeUpdated:this.onStoreUpdated.bind(this),columnValueChanged:G,columnPivotChanged:G,columnRowGroupChanged:G,columnPivotModeChanged:G}),this.addManagedPropertyListeners(["masterDetail","treeData","removePivotHeaderRowWhenSingleValueColumn","cacheBlockSize"],G),this.addManagedPropertyListeners(["groupAllowUnbalanced","groupTotalRow"],()=>this.onStoreUpdated()),this.addManagedPropertyListener("rowHeight",()=>this.resetRowHeights()),this.verifyProps(),this.addManagedPropertyListener("serverSideDatasource",()=>this.updateDatasource())}updateDatasource(){let G=this.gos.get("serverSideDatasource");if(G)this.setDatasource(G)}verifyProps(){if(Pv(this.gos)&&!this.gos.exists("getRowId"))Tv(188,{feature:"selection"})}setDatasource(G){if(!this.started)return;this.destroyDatasource(),this.datasource=G,this.resetRootStore()}applyRowData(G,D,z){let B=this.getRootStore();if(!B)return;let Q=B.getChildStore(z);if(!Q)return;Q.applyRowData(G,D,G.rowData.length)}isLastRowIndexKnown(){let G=this.getRootStore();if(!G)return!1;return G.isLastRowIndexKnown()}onColumnEverything(){if(!this.storeParams){this.resetRootStore();return}let G=this.columnsToValueObjects(this.rowGroupColsSvc?.columns),D=this.columnsToValueObjects(this.valueColsSvc?.columns),z=this.columnsToValueObjects(this.pivotColsSvc?.columns),B=(X)=>{let Y={};for(let H of X.oldCols)Y[H.id]=H;let W=X.newCols.every((H)=>{let _=Y[H.id];if(_)delete Y[H.id];return _&&_.field===H.field&&_.aggFunc===H.aggFunc}),q=!X.allowRemovedColumns&&!!Object.values(Y).length;return W&&!q},Q=!gv(this.storeParams.sortModel,this.sortSvc?.getSortModel()??[]),J=!B({oldCols:this.storeParams.rowGroupCols,newCols:G}),U=!B({oldCols:this.storeParams.pivotCols,newCols:z}),Z=!!G?.length&&!B({oldCols:this.storeParams.valueCols,newCols:D,allowRemovedColumns:!0});if(Q||J||U||Z)this.resetRootStore();else{let X=this.createStoreParams();this.storeParams.rowGroupCols=X.rowGroupCols,this.storeParams.pivotCols=X.pivotCols,this.storeParams.valueCols=X.valueCols}}destroyRootStore(){if(!this.rootNode?.childStore)return;this.rootNode.childStore=this.destroyBean(this.rootNode.childStore),this.nodeManager.clear()}refreshAfterSort(G,D){if(this.storeParams)this.storeParams.sortModel=G;let z=this.getRootStore();if(!z)return;z.refreshAfterSort(D),this.onStoreUpdated()}generateSecondaryColumns(G){if(!this.pivotColDefSvc){this.gos.assertModuleRegistered("SharedPivot",2);return}let D=this.pivotColDefSvc.createColDefsFromFields(G);this.managingPivotResultColumns=!0,this.pivotResultCols?.setPivotResultCols(D,"rowModelUpdated")}resetRowHeights(){let G=this.resetRowHeightsForAllRowNodes(),D=dz(this.beans,this.rootNode);if(this.rootNode.setRowHeight(D.height,D.estimated),this.rootNode.sibling){let z=dz(this.beans,this.rootNode.sibling);this.rootNode.sibling.setRowHeight(z.height,z.estimated)}if(G)this.onRowHeightChanged()}resetRowHeightsForAllRowNodes(){let G=!1;return this.forEachNode((D)=>{let z=dz(this.beans,D);D.setRowHeight(z.height,z.estimated);let B=D.detailNode;if(B){let Q=dz(this.beans,B);B.setRowHeight(Q.height,Q.estimated)}if(D.sibling){let Q=dz(this.beans,D.sibling);B?.setRowHeight(Q.height,Q.estimated)}G=!0}),G}resetRootStore(){if(this.destroyRootStore(),this.rootNode=new vv(this.beans),this.rootNode.group=!0,this.rootNode.level=-1,this.datasource)this.storeParams=this.createStoreParams(),this.rootNode.childStore=this.createBean(this.storeFactory.createStore(this.storeParams,this.rootNode)),this.updateRowIndexesAndBounds();if(this.managingPivotResultColumns)this.pivotResultCols?.setPivotResultCols(null,"api"),this.managingPivotResultColumns=!1;this.dispatchModelUpdated(!0)}columnsToValueObjects(G=[]){return G.map((D)=>({id:D.getId(),aggFunc:D.getAggFunc(),displayName:this.colNames.getDisplayNameForColumn(D,"model"),field:D.getColDef().field}))}createStoreParams(){let G=this.columnsToValueObjects(this.rowGroupColsSvc?.columns),D=this.columnsToValueObjects(this.valueColsSvc?.columns),z=this.columnsToValueObjects(this.pivotColsSvc?.columns),B=jv(this.gos);return{valueCols:D,rowGroupCols:G,pivotCols:z,pivotMode:this.colModel.isPivotMode(),filterModel:this.filterManager?.isAdvFilterEnabled()?this.filterManager?.getAdvFilterModel():this.filterManager?.getFilterModel()??{},sortModel:this.sortSvc?.getSortModel()??[],datasource:this.datasource,lastAccessedSequence:{value:0},dynamicRowHeight:B}}getParams(){return this.storeParams}dispatchModelUpdated(G=!1){this.eventSvc.dispatchEvent({type:"modelUpdated",animate:!G,keepRenderedRows:!G,newPage:!1,newData:!1})}onStoreUpdated(){this.updateRowIndexesAndBounds(),this.dispatchModelUpdated()}onRowHeightChanged(){this.updateRowIndexesAndBounds(),this.dispatchModelUpdated()}updateRowIndexesAndBounds(){let G=this.getRootStore();if(!G)return;G.setDisplayIndexes({value:0},{value:0},0)}retryLoads(){let G=this.getRootStore();if(!G)return;G.retryLoads(),this.onStoreUpdated()}getRow(G){let D=this.getRootStore();if(!D)return;return D.getRowUsingDisplayIndex(G)}refreshAfterFilter(G,D){if(this.storeParams)this.storeParams.filterModel=G;let z=this.getRootStore();if(!z)return;z.refreshAfterFilter(D),this.onStoreUpdated()}getRootStore(){return this.rootNode?.childStore}getRowCount(){let G=this.getRootStore();if(!G)return 0;return G.getDisplayIndexEnd()}getTopLevelRowCount(){let G=this.getRootStore();if(!G)return 1;return G.getRowCount()}getTopLevelRowDisplayedIndex(G){let D=this.getRootStore();if(!D)return G;return D.getTopLevelRowDisplayedIndex(G)}getRowBounds(G){let D=this.getRootStore();if(!D)return{rowTop:0,rowHeight:uv(this.beans)};return D.getRowBounds(G)}getBlockStates(){let G=this.getRootStore();if(!G)return;let D={};return G.forEachStoreDeep((z)=>{let B=z.getBlockStates();for(let Q of Object.keys(B))D[Q]=B[Q]}),D}getRowIndexAtPixel(G){let D=this.getRootStore();if(G<=0||!D)return 0;return D.getRowIndexAtPixel(G)}isEmpty(){return!1}getOverlayType(){if(this.getRootStore()?.getDisplayIndexEnd()===0)return this.filterManager?.isAnyFilterPresent()?"noMatchingRows":"noRows";return null}isRowsToRender(){return this.getRootStore()!=null&&this.getRowCount()>0}getType(){return"serverSide"}forEachNode(G){let D=this.getRootStore();if(!D)return;D.forEachNodeDeep(G)}forEachDisplayedNode(G){let D=(z,B)=>{if(z.stub||!z.displayed)return;G(z,B)};this.forEachNode(D)}forEachNodeAfterFilterAndSort(G,D=!1){let z=this.getRootStore();if(!z)return;z.forEachNodeDeepAfterFilterAndSort(G,void 0,D)}executeOnStore(G,D){if(!this.started)return!1;let z=this.getRootStore();if(!z)return!0;let B=z.getChildStore(G);if(B)D(B);return!0}refreshStore(G={}){let D=G.route?G.route:[];this.executeOnStore(D,(z)=>z.refreshStore(G.purge==!0))}getStoreState(){let G=[],D=this.getRootStore();if(D)D.addStoreStates(G);return G}getNodesInRangeForSelection(G,D){let z=G.rowIndex,B=D.rowIndex;if(z===null&&B===null)return[];if(B===null)return G?[G]:[];if(z===null)return[D];let Q=[],[J,U]=[z,B].sort((Z,S)=>Z-S);if(this.forEachNode((Z)=>{let S=Z.rowIndex;if(S==null||Z.stub)return;if(S>=J&&S<=U)Q.push(Z)}),Q.length!==U-J+1)return null;return Q}getRowNode(G){let D;return this.forEachNode((z)=>{if(z.id===G)D=z;if(z.detailNode&&z.detailNode.id===G)D=z.detailNode}),D}isRowPresent(G){return!!this.getRowNode(G.id)}setRowCount(G,D){let z=this.getRootStore();if(!z)return;z.setRowCount(G,D)}destroy(){this.destroyDatasource(),this.destroyRootStore(),super.destroy()}onRowHeightChangedDebounced(){this.onRowHeightChanged_debounced()}};function cv(G){return G.selectionSvc?.getSelectionState()??null}function hv(G,D){G.selectionSvc?.setSelectionState(D,"api")}function iv(G,D){return G.ssrmTxnManager?.applyTransaction(D)}function nv(G,D){let z=D.startRow??0,B=D.route??[];if(z<0){xv(189,{startRow:z});return}mB(G)?.applyRowData(D.successParams,z,B)}function dv(G,D,z){return G.ssrmTxnManager?.applyTransactionAsync(D,z)}function lv(G){mB(G)?.retryLoads()}function pv(G){return G.ssrmTxnManager?.flushAsyncTransactions()}function mv(G,D){mB(G)?.refreshStore(D)}function tv(G){return mB(G)?.getStoreState()??[]}var r0=class extends av{constructor(){super(...arguments);this.name="expand",this.expanded=new Set,this.collapsed=new Set,this.initialState=new Map}setExpandedState({expandedRowGroupIds:G,collapsedRowGroupIds:D}){this.expanded=new Set(G),this.collapsed=new Set(D);for(let z of this.expanded)this.initialState.set(z,!1);for(let z of this.collapsed)this.initialState.set(z,!0)}getExpandedState(){return{expandedRowGroupIds:Array.from(this.expanded),collapsedRowGroupIds:Array.from(this.collapsed)}}setRowExpanded(G,D){let z=G.id,B=this.initialState.get(z)===D;if(D){if(this.collapsed.delete(z),!B)this.expanded.add(z);return}if(this.expanded.delete(z),!B)this.collapsed.add(z)}isRowExpanded(G){let D=G.id;if(this.expanded.has(D))return!0;if(this.collapsed.has(D))return!1;let z=this.initialState.get(D);if(z!=null)return z;let B=this.getInitialRowState(G);return this.initialState.set(D,B),B}getInitialRowState(G){if(!G.isExpandable())return!1;let D=this.gos.getCallback("isServerSideGroupOpenByDefault");if(!D)return!1;let z={data:G.data,rowNode:G};return D(z)}isRowInitialised(G){return this.initialState.has(G)}expandAll(G){this.beans.rowModel.forEachNode((D)=>{this.setRowExpanded(D,G)})}},e2=class extends ev{constructor(){super(...arguments);this.name="expandAll",this.allExpanded=void 0,this.flipped=new Set}setExpandedState(G){this.allExpanded=G.expandAll,this.flipped=new Set(G.invertedRowGroupIds)}getExpandedState(){return{expandAll:this.allExpanded,invertedRowGroupIds:Array.from(this.flipped)}}setRowExpanded(G,D){let z=G.id;if(D===this.allExpanded){this.flipped.delete(z);return}this.flipped.add(z)}isRowExpanded(G){let D=G.id;return this.allExpanded!==this.flipped.has(D)}isRowInitialised(){return!0}expandAll(G){this.allExpanded=G,this.flipped.clear()}},GO=class extends x7{constructor(){super(...arguments);this.beanName="expansionSvc"}wireBeans(G){this.serverSideRowModel=G.rowModel,this.storeFactory=G.ssrmStoreFactory}setStrategy(G){this.destroyBean(this.strategy),this.strategy=this.createManagedBean(G)}postConstruct(){let G=()=>{this.setStrategy(new r0)};this.addManagedEventListeners({columnRowGroupChanged:G,columnPivotChanged:G,columnPivotModeChanged:G}),this.addManagedPropertyListener("ssrmExpandAllAffectsAllRows",(D)=>{if(!D.currentValue)this.setStrategy(new r0),this.updateAllNodes(),this.dispatchStateUpdatedEvent()}),G()}setExpansionState(G){let D="expandAll"in G,z=this.isExpandAllStrategy(this.strategy);if(D!==z)this.setStrategy(D?new e2:new r0);this.strategy.setExpandedState(G),this.dispatchStateUpdatedEvent(),this.updateAllNodes()}getExpansionState(){return this.strategy.getExpandedState()}updateAllNodes(){this.serverSideRowModel.forEachNode((G)=>{super.setExpanded(G,this.isNodeExpanded(G))})}isExpanded(G){let D=G._expanded;if(D===null)D=this.defaultExpanded(G),G._expanded=D;return D}isNodeExpanded(G){return this.strategy.isRowExpanded(G)}setExpanded(G,D,z,B){this.strategy.setRowExpanded(G,D),super.setExpanded(G,D,z),this.dispatchStateUpdatedEvent(),this.updateExpandedState(G)}resetExpansion(){this.setStrategy(new r0),this.updateAllNodes(),this.dispatchStateUpdatedEvent()}expandAll(G){let D=this.beans.gos.get("ssrmExpandAllAffectsAllRows");if(!this.isExpandAllStrategy(this.strategy)&&D)this.setStrategy(new e2);this.strategy.expandAll(G),this.updateAllNodes(),this.dispatchStateUpdatedEvent(),this.beans.eventSvc.dispatchEvent({type:"expandOrCollapseAll",source:G?"expandAll":"collapseAll"})}isExpandAllStrategy(G){return G.name==="expandAll"}onGroupExpandedOrCollapsed(){}setDetailsExpansionState(G){let{gos:D}=this.beans;if(!D.get("ssrmExpandAllAffectsAllRows"))return;let z=this.getExpansionState();if(z.expandAll===void 0)return;let Q=z.expandAll&&z.invertedRowGroupIds.length===0;if((!z.expandAll&&z.invertedRowGroupIds.length===0)===Q)return;return Q?G.expandAll():G.collapseAll()}dispatchExpandedEvent(G){this.eventSvc.dispatchEvent(G),this.beans.rowRenderer.refreshRowByNode(G.node)}updateExpandedState(G){let D=G.childStore;if(G.expanded){if(G.master&&!G.detailNode)G.detailNode=this.createDetailNode(G);if(!D&&G.hasChildren()){let z=this.serverSideRowModel.getParams();G.childStore=this.createBean(this.storeFactory.createStore(z,G))}}else if(D&&this.gos.get("purgeClosedRowNodes"))G.childStore=this.destroyBean(D)}createDetailNode(G){let D=new sv(this.beans);if(D.detail=!0,D.selectable=!1,D.parent=G,ov(G.id))D.id="detail_"+G.id;D.data=G.data,D.level=G.level+1;let z=200,B=rv(this.beans,D).height;return D.rowHeight=B?B:z,D}},_1=class extends JO{constructor(G){super();this.selectionCtx=G,this.selectedState={selectAll:!1,toggledNodes:new Set},this.selectAllUsed=!1,this.selectedNodes={}}getSelectedState(){return{selectAll:this.selectedState.selectAll,toggledNodes:[...this.selectedState.toggledNodes]}}setSelectedState(G){if(typeof G!=="object"){e0(116);return}if(!("selectAll"in G)){e0(116);return}if(typeof G.selectAll!=="boolean"){e0(117);return}if(!("toggledNodes"in G)||!Array.isArray(G.toggledNodes))return GB(197);let D={selectAll:G.selectAll,toggledNodes:new Set};G.toggledNodes.forEach((B)=>{if(typeof B==="string")D.toggledNodes.add(B);else GB(196,{key:B})});let z=D.selectAll||D.toggledNodes.size>1;if(UO(this.gos)&&!z5(this.gos)&&z){GB(130);return}this.selectedState=D}deleteSelectionStateFromParent(G,D){if(this.selectedState.toggledNodes.size===0)return!1;let z=!1;for(let B of D)if(this.selectedState.toggledNodes.delete(B))z=!0;return z}setNodesSelected(G){let{nodes:D,clearSelection:z,newValue:B,source:Q}=G;if(D.length===0)return 0;let J=z&&B;if(!z5(this.gos)||J){if(D.length>1)return e0(130),0;let Z=D[0],S=Z.footer?Z.sibling:Z;if(B&&S.selectable)this.selectedNodes={[S.id]:S},this.selectedState={selectAll:!1,toggledNodes:new Set([S.id])};else this.selectedNodes={},this.selectedState={selectAll:!1,toggledNodes:new Set};return 1}let U=(Z,S=B)=>{let X=Z.footer?Z.sibling:Z;if(S&&X.selectable)this.selectedNodes[X.id]=X;else delete this.selectedNodes[X.id];if(S===this.selectedState.selectAll||!X.selectable)this.selectedState.toggledNodes.delete(X.id);else this.selectedState.toggledNodes.add(X.id)};for(let Z of D)U(Z);if(D.length===1&&Q==="api")this.selectionCtx.setRoot(D[0].footer?D[0].sibling:D[0]);return 1}processNewRow(G){if(this.selectedNodes[G.id])this.selectedNodes[G.id]=G}isNodeSelected(G){let D=this.selectedState.toggledNodes.has(G.id);return this.selectedState.selectAll?!D:D}getSelectedNodes(G=!1,D=!0){let{selectedState:{selectAll:z},selectedNodes:B,selectAllUsed:Q}=this;if(D&&Q)GB(199);return G&&z?null:Object.values(B)}getSelectedRows(){return(this.getSelectedNodes()??[]).map((G)=>G.data)}getSelectionCount(){if(this.selectedState.selectAll)return-1;return this.selectedState.toggledNodes.size}isEmpty(){return!this.selectedState.selectAll&&!this.selectedState.toggledNodes?.size}selectAllRowNodes(){this.reset(!0)}deselectAllRowNodes(){this.reset(!1)}reset(G){this.selectedState={selectAll:G,toggledNodes:new Set},this.selectedNodes={},this.selectAllUsed||(this.selectAllUsed=G)}getSelectAllState(){if(this.selectedState.selectAll){if(this.selectedState.toggledNodes.size>0)return null;return!0}if(this.selectedState.toggledNodes.size>0)return null;return!1}},DB=class extends ZO{constructor(G){super();this.selectionCtx=G,this.selectedState={selectAllChildren:!1,toggledNodes:new Map}}wireBeans(G){this.rowModel=G.rowModel,this.rowGroupColsSvc=G.rowGroupColsSvc,this.filterManager=G.filterManager,this.selectionSvc=G.selectionSvc}postConstruct(){this.addManagedEventListeners({modelUpdated:()=>this.removeRedundantState(),columnRowGroupChanged:()=>this.selectionSvc.reset("rowGroupChanged")})}getSelectedState(){let{gos:G,rowGroupColsSvc:D,selectedState:z}=this,B=G.get("treeData"),Q=(J,U,Z)=>{let S={nodeId:Z};if(B||D&&U<=D.columns.length)S.selectAllChildren=J.selectAllChildren;if(J.toggledNodes.size){let X=[];J.toggledNodes.forEach((Y,W)=>{let q=Q(Y,U+1,W);X.push(q)}),S.toggledNodes=X}return S};return Q(z,0)}setSelectedState(G){if("selectAll"in G){KD(111);return}let D=(z,B)=>{if(typeof z!=="object")throw KD(243),Error();if("selectAllChildren"in z&&typeof z.selectAllChildren!=="boolean")throw KD(244),Error();if("toggledNodes"in z){if(!Array.isArray(z.toggledNodes))throw KD(245),Error();if(!z.toggledNodes.every((S)=>typeof S==="object"&&("nodeId"in S)&&typeof S.nodeId==="string"))throw KD(246),Error()}let Q=z.selectAllChildren??!B,J=z.toggledNodes?.map((Z)=>[Z.nodeId,D(Z,Q)]);if(J?.some(([,Z])=>Q===Z.selectAllChildren&&Z.toggledNodes.size===0))throw KD(247),Error();return{selectAllChildren:Q,toggledNodes:new Map(J)}};try{this.selectedState=D(G,!!G.selectAllChildren)}catch(z){}}deleteSelectionStateFromParent(G,D){let z=this.selectedState,B=[...G];while(z&&B.length)z=z.toggledNodes.get(B.pop());if(!z)return!1;let Q=!1;for(let J of D)if(z?.toggledNodes.delete(J))Q=!0;if(Q)this.removeRedundantState();return Q}setNodesSelected({nodes:G,newValue:D,clearSelection:z,source:B}){if(G.length===0)return 0;let Q=z&&D;if(!$O(this.gos)||Q){if(G.length>1)return KD(130),0;this.deselectAllRowNodes()}for(let J of G){let U=J.footer?J.sibling:J,Z=this.getRouteToNode(U);this.recursivelySelectNode(Z,this.selectedState,D)}if(this.removeRedundantState(),G.length===1&&B==="api")this.selectionCtx.setRoot(G[0].footer?G[0].sibling:G[0]);return 1}isNodeSelected(G){let D=this.getRouteToNode(G);return this.isNodePathSelected(D,this.selectedState)}isNodePathSelected([G,...D],z){if(D.length===0){let B=z.toggledNodes.has(G.id);if(G.hasChildren()){if(z.toggledNodes.get(G.id)?.toggledNodes.size)return}return z.selectAllChildren?!B:B}if(z.toggledNodes.has(G.id)){let B=z.toggledNodes.get(G.id);if(B)return this.isNodePathSelected(D,B)}return z.selectAllChildren}getRouteToNode(G){let D=[],z=G;while(z.parent)D.push(z),z=z.parent;return D.reverse()}removeRedundantState(){if(this.filterManager?.isAnyFilterPresent())return;let G=(D=this.selectedState,z,B)=>{if(D.toggledNodes.forEach((U,Z)=>{G(U,Z,D)}),z){let Z=this.rowModel.getRowNode(z)?.childStore;if(Z?.isLastRowIndexKnown()){if(D.toggledNodes.size>=Z.getRowCount()){for(let Y of D.toggledNodes.entries()){let[W,q]=Y;if(q.toggledNodes.size>0)return;if(!this.rowModel.getRowNode(W))return}D.selectAllChildren=!D.selectAllChildren,D.toggledNodes.clear()}}}let Q=D.toggledNodes.size===0,J=B?.selectAllChildren===D.selectAllChildren;if(Q&&J)B?.toggledNodes.delete(z)};G()}recursivelySelectNode([G,...D],z,B){if(!G)return;if(!D.length){let Z=G.selectable;if(z.selectAllChildren===B||!Z){z.toggledNodes.delete(G.id);return}let X={selectAllChildren:B,toggledNodes:new Map};z.toggledNodes.set(G.id,X);return}let J=z.toggledNodes.has(G.id),U=z.toggledNodes.get(G.id)??{selectAllChildren:z.selectAllChildren,toggledNodes:new Map};if(!J)z.toggledNodes.set(G.id,U);if(this.recursivelySelectNode(D,U,B),z.selectAllChildren===U.selectAllChildren&&U.toggledNodes.size===0)z.toggledNodes.delete(G.id)}getSelectedNodes(G=!1){if(LO(202),this.selectedState.selectAllChildren&&G)return null;let D=[];return this.rowModel.forEachNode((z)=>{if(z.isSelected())D.push(z)}),D}processNewRow(){}getSelectedRows(){return this.getSelectedNodes()?.map((G)=>G.data)??[]}getSelectionCount(){return-1}isEmpty(){return!this.selectedState.selectAllChildren&&!this.selectedState.toggledNodes?.size}selectAllRowNodes(){this.reset(!0)}deselectAllRowNodes(){this.reset(!1)}reset(G){this.selectedState={selectAllChildren:G,toggledNodes:new Map}}getSelectAllState(){if(this.selectedState.selectAllChildren){if(this.selectedState.toggledNodes.size>0)return null;return!0}if(this.selectedState.toggledNodes.size>0)return null;return!1}},SO=class extends DO{constructor(){super(...arguments);this.beanName="selectionSvc"}postConstruct(){super.postConstruct(),this.addManagedPropertyListeners(["groupSelectsChildren","rowSelection"],()=>{let z=G5(this.gos),B=z&&this.selectionStrategy instanceof _1?DB:!z&&this.selectionStrategy instanceof DB?_1:void 0;if(B)this.destroyBean(this.selectionStrategy),this.selectionStrategy=this.createManagedBean(new B(this.selectionCtx)),this.shotgunResetNodeSelectionState(),this.dispatchSelectionChanged("api")}),this.addManagedPropertyListeners(["rowSelection"],()=>{let z=D5(this.gos);if(z!==this.selectionMode)this.selectionMode=z,this.deselectAllRowNodes({source:"api"})}),this.selectionMode=D5(this.gos);let D=!G5(this.gos)?_1:DB;this.selectionStrategy=this.createManagedBean(new D(this.selectionCtx))}handleSelectionEvent(G,D,z){if(this.isRowSelectionBlocked(D))return 0;let B=0,Q=this.inferNodeSelections(D,G.shiftKey,G.metaKey||G.ctrlKey,z);if(Q==null)return 0;if(this.selectionCtx.selectAll=!1,"select"in Q){if(Q.reset)this.selectionStrategy.deselectAllRowNodes({source:"api"});else this.selectionStrategy.setNodesSelected({nodes:Q.deselect,newValue:!1,source:z});B=this.selectionStrategy.setNodesSelected({nodes:Q.select,newValue:!0,source:z})}else B=this.selectionStrategy.setNodesSelected({nodes:[Q.node],newValue:Q.newValue,clearSelection:Q.clearSelection,event:G,source:z});return this.shotgunResetNodeSelectionState(z),this.dispatchSelectionChanged(z),B}getSelectionState(){return this.selectionStrategy.getSelectedState()}setSelectionState(G,D){if(!a0(this.gos)){if(G)ED(132);return}if(Array.isArray(G))return;if(G)this.selectionStrategy.setSelectedState(G),this.shotgunResetNodeSelectionState(),this.dispatchSelectionChanged(D);else this.deselectAllRowNodes({source:D})}setNodesSelected(G){if(!a0(this.gos)&&G.newValue)return ED(132),0;let{nodes:D,...z}=G;if(D.length>1&&this.selectionMode!=="multiRow")return ED(130),0;let B={nodes:D.filter((J)=>J.selectable),...z};if(!B.nodes.length)return 0;let Q=this.selectionStrategy.setNodesSelected(B);return this.shotgunResetNodeSelectionState(B.source),this.dispatchSelectionChanged(B.source),Q}deleteSelectionStateFromParent(G,D){if(!this.selectionStrategy.deleteSelectionStateFromParent(G,D))return;this.shotgunResetNodeSelectionState(),this.dispatchSelectionChanged("api")}shotgunResetNodeSelectionState(G){this.beans.rowModel.forEachNode((D)=>{if(D.stub)return;let z=this.selectionStrategy.isNodeSelected(D);if(z!==D.isSelected())this.selectRowNode(D,z,void 0,G)})}getSelectedNodes(){return this.selectionStrategy.getSelectedNodes()??[]}getSelectedRows(){return this.selectionStrategy.getSelectedRows()}getSelectionCount(){return this.selectionStrategy.getSelectionCount()}syncInRowNode(G){this.selectionStrategy.processNewRow(G);let D=this.selectionStrategy.isNodeSelected(G);if(D!=!1&&!G.selectable){this.selectionStrategy.setNodesSelected({nodes:[G],newValue:!1,source:"api"}),this.shotgunResetNodeSelectionState(),this.dispatchSelectionChanged("api");return}G.__selected=D}reset(){this.selectionStrategy.deselectAllRowNodes({source:"api"}),this.selectionCtx.reset()}isEmpty(){return this.selectionStrategy.isEmpty()}hasNodesToSelect(){return!0}selectAllRowNodes(G){if(!a0(this.gos)){ED(132);return}if(B5(G),QO(this.gos)&&!BO(this.gos))return ED(130);this.selectionStrategy.selectAllRowNodes(G),this.selectionCtx.selectAll=!0,this.beans.rowModel.forEachNode((D)=>{if(D.stub)return;this.selectRowNode(D,!0,void 0,G.source)}),this.dispatchSelectionChanged(G.source)}deselectAllRowNodes(G){B5(G),this.selectionStrategy.deselectAllRowNodes(G),this.selectionCtx.selectAll=!1,this.beans.rowModel.forEachNode((D)=>{if(D.stub)return;this.selectRowNode(D,!1,void 0,G.source)}),this.dispatchSelectionChanged(G.source)}getSelectAllState(G){return this.selectionStrategy.getSelectAllState(G)}getBestCostNodeSelection(){return ED(194,{method:"getBestCostNodeSelection"})}updateSelectable(){if(!a0(this.gos))return;let G=[];if(this.beans.rowModel.forEachNode((D)=>{if(!this.updateRowSelectable(D,!0)&&D.isSelected())G.push(D)}),G.length)this.setNodesSelected({nodes:G,newValue:!1,source:"selectableChanged"})}dispatchSelectionChanged(G){this.eventSvc.dispatchEvent({type:"selectionChanged",source:G,selectedNodes:this.selectionStrategy instanceof DB?null:this.selectionStrategy.getSelectedNodes(!0,!1),serverSideState:this.getSelectionState()})}updateSelectableAfterGrouping(){return zO(194,{method:"updateSelectableAfterGrouping"})}refreshMasterNodeState(){}setDetailSelectionState(){return}};function B5({selectAll:G}){if(G==="filtered"||G==="currentPage")ED(195,{justCurrentPage:G==="currentPage"})}var YO=class extends XO{constructor(){super(...arguments);this.beanName="rowChildrenSvc"}getHasChildrenValue(G){let D=this.gos.get("treeData"),z=this.gos.get("isServerSideGroup");return!G.stub&&!G.footer&&(D?!!z&&z(G.data):!!G.group)}},_O=class extends WO{constructor(){super(...arguments);this.beanName="lazyBlockLoadingSvc",this.outboundRequests=0,this.cacheLoadingNodesMap=new Map,this.isCheckQueued=!1,this.nextBlockToLoad=void 0}wireBeans(G){this.rowRenderer=G.rowRenderer,this.rowModel=G.rowModel}postConstruct(){this.maxOutboundRequests=HO(this.gos)}subscribe(G){this.cacheLoadingNodesMap.set(G,new Set)}unsubscribe(G){this.cacheLoadingNodesMap.delete(G)}queueLoadCheck(){if(this.isCheckQueued)return;this.isCheckQueued=!0,setTimeout(()=>{this.queueLoadAction(),this.isCheckQueued=!1})}onLoadComplete(){this.outboundRequests-=1,this.queueLoadCheck()}hasAvailableLoadBandwidth(){if(this.maxOutboundRequests===void 0)return!0;return this.outboundRequests{if(!B.isAlive())return;this.loaderTimeout=void 0,this.attemptLoad(B,z,Q),this.nextBlockToLoad=void 0},this.gos.get("blockLoadDebounceMillis"))}}attemptLoad(G,D,z){if(!this.hasAvailableLoadBandwidth())return;this.executeLoad(G,D,z),this.queueLoadCheck()}executeLoad(G,D,z){let B=G.getSsrmParams(),Q={startRow:D,endRow:z,rowGroupCols:B.rowGroupCols,valueCols:B.valueCols,pivotCols:B.pivotCols,pivotMode:B.pivotMode,groupKeys:G.store.getParentNode().getRoute()??[],filterModel:B.filterModel,sortModel:B.sortModel},J=this.cacheLoadingNodesMap.get(G),U=()=>{for(let W=0;W{for(let W=0;W{this.onLoadComplete(),G.onLoadSuccess(D,z-D,W),U()},X=()=>{this.onLoadComplete(),G.onLoadFailed(D,z-D),U()},Y=qO(this.gos,{request:Q,success:S,fail:X,parentNode:G.store.getParentNode()});Z(),this.outboundRequests+=1,G.getSsrmParams().datasource?.getRows(Y)}getBlockToLoad(){let G=this.rowRenderer.firstRenderedRow,D=this.rowRenderer.lastRenderedRow;for(let Z=G;Z<=D;Z++){let S=this.rowModel.getRow(Z);if(!S)continue;let X=S.parent?.childStore;if(!X)continue;let Y=X.getCache(),W=Y.getNodes().getBy("node",S);if(!W)continue;if(this.cacheLoadingNodesMap.get(Y)?.has(W.index))continue;if(S.__needsRefreshWhenVisible||S.stub&&!S.failedLoad)return{cache:Y,index:Y.getBlockStartIndex(W.index)}}let z=null,B=null,Q=Number.MAX_SAFE_INTEGER;for(let Z of this.cacheLoadingNodesMap.keys())Z.getNodesToRefresh().forEach((X)=>{if(X.rowIndex==null){B=X,z=Z;return}let Y=Z.getNodes().getBy("node",X);if(!Y)return;if(this.cacheLoadingNodesMap.get(Z)?.has(Y.index))return;let q=Math.abs(G-X.rowIndex),H=Math.abs(X.rowIndex-D);if(q[D,new Map]))}getSize(){return this.maps.get(this.indexes[0]).size}getBy(G,D){return this.maps.get(G).get(D)}set(G){for(let D of this.indexes)this.maps.get(D).set(G[D],G)}delete(G){for(let D of this.indexes)this.maps.get(D).delete(G[D])}clear(){this.maps.forEach((G)=>G.clear())}getIterator(G){return this.maps.get(G).values()}forEach(G){let D=this.getIterator(this.indexes[0]),z;while(z=D.next()){if(z.done)break;G(z.value)}}find(G){let D=this.getIterator(this.indexes[0]),z;while(z=D.next()){if(z.done)break;if(G(z.value))return z.value}}filter(G){let D=this.getIterator(this.indexes[0]),z,B=[];while(z=D.next()){if(z.done)break;if(G(z.value))B.push(z.value)}return B}},AO=100,w1=class extends NO{constructor(G,D,z,B){super();this.live=!0,this.removedNodeCache=new Map,this.store=G,this.numberOfRows=D,this.isLastRowKnown=z,this.storeParams=B}wireBeans(G){this.rowRenderer=G.rowRenderer,this.blockUtils=G.ssrmBlockUtils,this.focusSvc=G.focusSvc,this.nodeManager=G.ssrmNodeManager,this.serverSideRowModel=G.rowModel,this.rowNodeSorter=G.rowNodeSorter,this.sortSvc=G.sortSvc,this.lazyBlockLoadingSvc=G.lazyBlockLoadingSvc,this.colModel=G.colModel}postConstruct(){this.lazyBlockLoadingSvc.subscribe(this),this.nodeMap=new MO("index","id","node"),this.nodeDisplayIndexMap=new Map,this.nodesToRefresh=new Set;let{blockUtils:G,gos:D,store:z}=this;this.defaultNodeIdPrefix=G.createNodeIdPrefix(z.getParentNode()),this.getRowIdFunc=EO(D),this.isMasterDetail=D.get("masterDetail")}destroy(){this.lazyBlockLoadingSvc.unsubscribe(this),this.numberOfRows=0,this.nodeMap.forEach((G)=>this.blockUtils.destroyRowNode(G.node)),this.nodeMap.clear(),this.nodeDisplayIndexMap.clear(),this.nodesToRefresh.clear(),this.live=!1,super.destroy()}getRowByDisplayIndex(G){if(!this.store.isDisplayIndexInStore(G))return;let D=this.nodeDisplayIndexMap.get(G);if(D){if(D.stub||D.__needsRefreshWhenVisible)this.lazyBlockLoadingSvc.queueLoadCheck();return D}if(this.gos.get("groupHideOpenParents")||this.gos.get("groupAllowUnbalanced")){let S=this.nodeMap.find((X)=>!!X.node.childStore?.isDisplayIndexInStore(G));if(S)return S.node.childStore?.getRowUsingDisplayIndex(G)}if(G===this.store.getDisplayIndexStart())return this.createStubNode(0,G);let B=this.nodeDisplayIndexMap.get(G-1);if(B){if(this.isMasterDetail&&B.master&&B.expanded)return B.detailNode;if(B.expanded&&B.childStore?.isDisplayIndexInStore(G))return B.childStore?.getRowUsingDisplayIndex(G);let S=this.nodeMap.getBy("node",B);return this.createStubNode(S.index+1,G)}let Q=this.getSurroundingNodesByDisplayIndex(G);if(Q==null){let S=this.store.getRowCount()-(this.store.getDisplayIndexEnd()-G);return this.createStubNode(S,G)}let{previousNode:J,nextNode:U}=Q;if(J?.node.expanded&&J.node.childStore?.isDisplayIndexInStore(G))return J.node.childStore?.getRowUsingDisplayIndex(G);if(U){let S=U.node.rowIndex-G,X=U.index-S;return this.createStubNode(X,G)}let Z=this.store.getRowCount()-(this.store.getDisplayIndexEnd()-G);return this.createStubNode(Z,G)}createStubNode(G,D){let z=this.store.getRowBounds(D),B=this.createRowAtIndex(G,null,(Q)=>{Q.setRowIndex(D),Q.setRowTop(z.rowTop),this.nodeDisplayIndexMap.set(D,Q)});if(G===0&&this.gos.get("groupHideOpenParents")){let Q=this.store.getParentNode().groupData;if(Q)for(let J of Object.keys(Q))UZ(B,this.colModel,J,Q[J])}return this.lazyBlockLoadingSvc.queueLoadCheck(),B}getRowByStoreIndex(G){return this.nodeMap.getBy("index",G)?.node}skipDisplayIndexes(G,D,z){if(G===0)return;let B=FO(this.beans);D.value+=G,z.value+=G*B}setDisplayIndexes(G,D,z){this.nodeDisplayIndexMap.clear();let B={};this.nodeMap.forEach((U)=>{B[U.index]=U.node});let Q=-1;for(let U of Object.keys(B)){let Z=B[U],S=Number(U),X=S-1-Q;this.skipDisplayIndexes(X,G,D);let Y=S===0;if(Z.firstChild!==Y)Z.firstChild=Y,Z.dispatchRowEvent("firstChildChanged");if(Y&&this.gos.get("groupHideOpenParents")){let W=this.store.getParentNode().groupData;if(W)for(let q of Object.keys(W))UZ(Z,this.colModel,q,Y?W[q]:void 0)}if(this.blockUtils.setDisplayIndex(Z,G,D,z),Z.rowIndex!=null)this.nodeDisplayIndexMap.set(Z.rowIndex,Z);Q=S}let J=this.numberOfRows-1-Q;this.skipDisplayIndexes(J,G,D),this.purgeExcessRows()}getRowCount(){return this.numberOfRows}setRowCount(G,D){if(this.numberOfRows=G,D!=null){if(this.isLastRowKnown=D,D===!1)this.numberOfRows+=1}this.fireStoreUpdatedEvent()}getNodes(){return this.nodeMap}getNodeCachedByDisplayIndex(G){return this.nodeDisplayIndexMap.get(G)??null}getNodesToRefresh(){return this.nodesToRefresh}getSurroundingNodesByDisplayIndex(G){let D,z;if(this.nodeMap.forEach((B)=>{if(G>B.node.rowIndex){if(z==null||z.node.rowIndexB.node.rowIndex)D=B}),!z&&!D)return null;return{previousNode:z,nextNode:D}}getDisplayIndexFromStoreIndex(G){let D=this.nodeMap.getBy("index",G);if(D)return D.node.rowIndex;let z,B;if(this.nodeMap.forEach((U)=>{if(G>U.index){if(B==null||B.indexU.index)z=U}),!z)return this.store.getDisplayIndexEnd()-(this.numberOfRows-G);if(!B)return this.store.getDisplayIndexStart()+G;let Q=G-B.index;return(B.node.childStore?.getDisplayIndexEnd()??B.node.rowIndex)+Q}createRowAtIndex(G,D,z){let B=this.nodeMap.getBy("index",G);if(B){let{node:J}=B;if(J.__needsRefreshWhenVisible=!1,this.doesNodeMatch(D,J))return this.blockUtils.updateDataIntoRowNode(J,D),this.nodesToRefresh.delete(J),J;if(this.getRowIdFunc==null&&J.hasChildren()&&J.expanded)return this.nodesToRefresh.delete(J),J;this.destroyRowAtIndex(G)}if(D&&this.getRowIdFunc!=null){let J=this.getRowId(D),U=J&&this.removedNodeCache?.get(J);if(U)return this.removedNodeCache?.delete(J),this.blockUtils.updateDataIntoRowNode(U,D),this.nodeMap.set({id:U.id,node:U,index:G}),this.nodesToRefresh.delete(U),U.__needsRefreshWhenVisible=!1,U;let Z=this.nodeMap.getBy("id",J);if(Z){this.nodeMap.delete(Z);let{node:S,index:X}=Z;if(this.blockUtils.updateDataIntoRowNode(S,D),this.nodeMap.set({id:S.id,node:S,index:G}),this.nodesToRefresh.delete(S),S.__needsRefreshWhenVisible=!1,this.getBlockStartIndex(X)===this.getBlockStartIndex(G))return S;return this.markBlockForVerify(X),S}}let Q=this.blockUtils.createRowNode(this.store.getRowDetails());if(D!=null){let J=this.getPrefixedId(this.store.getIdSequence().value++);this.blockUtils.setDataIntoRowNode(Q,D,J,void 0),this.blockUtils.checkOpenByDefault(Q),this.nodeManager.addRowNode(Q)}if(this.nodeMap.set({id:Q.id,node:Q,index:G}),z)z(Q);return Q}getBlockStates(){let G={},D={};this.nodeMap.forEach(({node:J,index:U})=>{let Z=this.getBlockStartIndex(U);if(!J.stub&&!J.failedLoad)G[Z]=(G[Z]??0)+1;let S="loaded";if(J.failedLoad)S="failed";else if(this.lazyBlockLoadingSvc.isRowLoading(this,Z))S="loading";else if(this.nodesToRefresh.has(J)||J.stub)S="needsLoading";if(!D[Z])D[Z]=new Set;D[Z].add(S)});let z={loading:4,failed:3,needsLoading:2,loaded:1},B=this.blockUtils.createNodeIdPrefix(this.store.getParentNode()),Q={};for(let J of Object.keys(D)){let Z=[...D[J]].sort((Y,W)=>(z[Y]??0)-(z[W]??0))[0],S=Number(J)/this.getBlockSize(),X=B?`${B}-${S}`:String(S);Q[X]={blockNumber:S,startRow:Number(J),endRow:Number(J)+this.getBlockSize(),pageStatus:Z,loadedRowCount:G[J]??0}}return Q}destroyRowAtIndex(G){let D=this.nodeMap.getBy("index",G);if(!D)return;if(this.nodeMap.delete(D),this.nodeDisplayIndexMap.delete(D.node.rowIndex),this.nodesToRefresh.size>0)this.removedNodeCache.set(D.node.id,D.node);else this.blockUtils.destroyRowNode(D.node);this.nodesToRefresh.delete(D.node)}getSsrmParams(){return this.store.getSsrmParams()}getPrefixedId(G){if(this.defaultNodeIdPrefix)return this.defaultNodeIdPrefix+"-"+G;else return G.toString()}markBlockForVerify(G){let[D,z]=this.getBlockBounds(G);this.nodeMap.filter((Q)=>Q.index>=D&&Q.index{Q.__needsRefreshWhenVisible=!0})}doesNodeMatch(G,D){if(D.stub)return!1;let z=this.getRowId(G);return z===null?D.data===G:D.id===z}purgeStubsOutsideOfViewport(){let{firstRenderedRow:G,lastRenderedRow:D}=this.rowRenderer,z=this.getBlockStartIndex(G),[,B]=this.getBlockBounds(D);this.nodeMap.forEach((Q)=>{if(this.lazyBlockLoadingSvc.isRowLoading(this,Q.index)||Q.node.failedLoad)return;if(Q.node.stub&&(Q.indexB))this.destroyRowAtIndex(Q.index)})}getBlocksDistanceFromRow(G,D){let z={};return G.forEach(({node:B,index:Q})=>{let[J,U]=this.getBlockBounds(Q);if(J in z)return;let Z=Math.abs(B.rowIndex-D),S,X=this.nodeMap.getBy("index",[U-1]);if(X)S=Math.abs(X.node.rowIndex-D);let Y=S==null||Z{let k=this.getBlockStartIndex(H);if(z.add(k),_.rowIndex>=G&&_.rowIndex<=D)B.add(k)});let Q=Math.max(B.size,this.storeParams.maxBlocksInCache??0),U=z.size-Q;if(U<=0)return;let{MAX_SAFE_INTEGER:Z,MIN_SAFE_INTEGER:S}=Number;B.forEach((H)=>{if(Z>H)Z=H;if(S{let k=this.getBlockStartIndex(_);return!(k>=Z&&k<=S)&&!this.isNodeCached(H)});if(X.length===0)return;let Y=G+(D-G)/2,W=this.getBlocksDistanceFromRow(X,Y),q=this.getBlockSize();W.sort((H,_)=>Math.sign(_[1]-H[1]));for(let H=0;H{let Q=this.getRowId(B);if(D.has(Q)){z.add(Q);return}D.add(Q)}),[...z]}onLoadSuccess(G,D,z){if(!this.live)return;let B=z.groupLevelInfo;if(this.store.setStoreInfo(B),this.getRowIdFunc!=null){let U=this.extractDuplicateIds(z.rowData);if(U.length>0){let Z=U.join(", ");IO(205,{duplicateIdText:Z}),this.onLoadFailed(G,D);return}}if(z.pivotResultFields)this.serverSideRowModel.generateSecondaryColumns(z.pivotResultFields);let Q=this.nodesToRefresh.size>0;if(z.rowData.forEach((U,Z)=>{let S=G+Z,X=this.nodeMap.getBy("index",S);if(X?.node?.stub){this.createRowAtIndex(S,U);return}if(X&&this.doesNodeMatch(U,X.node)){this.blockUtils.updateDataIntoRowNode(X.node,U),this.nodesToRefresh.delete(X.node),X.node.__needsRefreshWhenVisible=!1;return}this.createRowAtIndex(S,U)}),z.rowCount!=null&&z.rowCount!==-1)this.numberOfRows=z.rowCount,this.isLastRowKnown=!0;else if(D>z.rowData.length)this.numberOfRows=G+z.rowData.length,this.isLastRowKnown=!0;else if(!this.isLastRowKnown){let U=G+z.rowData.length+1;if(U>this.numberOfRows)this.numberOfRows=U}if(this.isLastRowKnown)this.nodeMap.filter((Z)=>Z.index>=this.numberOfRows).forEach((Z)=>this.destroyRowAtIndex(Z.index));this.fireStoreUpdatedEvent();let J=this.nodesToRefresh.size===0;if(Q&&J)this.fireRefreshFinishedEvent()}fireRefreshFinishedEvent(){if(this.nodesToRefresh.size!==0)return;this.removedNodeCache.forEach((D)=>{this.blockUtils.destroyRowNode(D)}),this.removedNodeCache=new Map,this.store.fireRefreshFinishedEvent()}isStoreFullyLoaded(){let G=this.isLastRowKnown,D=this.nodeMap.getSize()===this.numberOfRows;if(!G||!D)return;if(this.nodesToRefresh.size>0)return;let z=-1;return this.nodeMap.find((Q)=>{if(z+=1,Q.index!==z)return!0;if(Q.node.__needsRefreshWhenVisible)return!0;if(Q.node.stub)return!0;return!1})==null}isLastRowIndexKnown(){return this.isLastRowKnown}onLoadFailed(G,D){if(!this.live)return;let z=this.nodesToRefresh.size>0;for(let Q=G;Q{if(G.node.stub&&!G.node.failedLoad)return;this.nodesToRefresh.add(G.node)}),this.lazyBlockLoadingSvc.queueLoadCheck(),this.isLastRowKnown&&this.numberOfRows===0)this.numberOfRows=1,this.isLastRowKnown=!1,this.fireStoreUpdatedEvent()}isNodeInCache(G){return!!this.nodeMap.getBy("id",G)}fireStoreUpdatedEvent(){if(!this.live)return;this.store.fireStoreUpdatedEvent()}getRowId(G){if(this.getRowIdFunc==null)return null;let{level:D}=this.store.getRowDetails(),z=this.store.getParentNode().getRoute()??[];return this.getRowIdFunc({data:G,parentKeys:z.length>0?z:void 0,level:D})}getOrderedNodeMap(){let G={};return this.nodeMap.forEach((D)=>G[D.index]=D),G}clearDisplayIndexes(){this.nodeDisplayIndexMap.clear()}clientSideSortRows(){let G=this.sortSvc?.getSortOptions()??[],D=G.some((U)=>U.sort!=null),z=this.rowNodeSorter;if(!D||!z)return;let B=Array(this.nodeMap.getSize()),Q=this.nodeMap;Q.forEach((U)=>B[U.index]=U.node),Q.clear();let J=z.doFullSortInPlace(B,G);for(let U=0,Z=J.length;U{let B=this.getRowId(z),Q=this.nodeMap.getBy("id",B);if(Q)this.blockUtils.updateDataIntoRowNode(Q.node,z),D.push(Q.node)}),D}insertRowNodes(G,D){let z=this.store.getRowCount()-(this.store.getParentNode().sibling?1:0),B=D==null&&this.isLastRowKnown?z:D;if(B==null||z{let X=this.getRowId(S);if(X&&this.isNodeInCache(X))return;Q[X]=S});let J=Object.values(Q),U=J.length;if(U===0)return[];let Z=this.nodeMap.filter((S)=>S.index>=B);return Z.forEach((S)=>this.nodeMap.delete(S)),Z.forEach((S)=>{this.nodeMap.set({node:S.node,index:S.index+U,id:S.id})}),this.numberOfRows+=U,J.map((S,X)=>this.createRowAtIndex(B+X,S))}removeRowNodes(G,D){let z=[],B=[],Q=0,J=[...G],U=this.getOrderedNodeMap(),Z=-1;for(let X of Object.keys(U)){Z+=1;let Y=U[X],W=J.findIndex((H)=>H===Y.id);if(W!==-1){J.splice(W,1),this.destroyRowAtIndex(Number(X)),z.push(Y.node),Q+=1;continue}if(Q===0)continue;let q=Number(X);if(Z!==q)B.push(Y.node);this.nodeMap.delete(Y),this.nodeMap.set({id:Y.id,node:Y.node,index:q-Q})}if(D!=null&&D>=0)this.numberOfRows=D,this.isLastRowKnown=!0;else this.numberOfRows-=Q;if(J.length>0&&B.length>0)B.forEach((X)=>X.__needsRefreshWhenVisible=!0),this.lazyBlockLoadingSvc.queueLoadCheck();return z}getBlockSize(){return this.storeParams.cacheBlockSize||AO}getBlockStartIndex(G){let D=this.getBlockSize();return G-G%D}getBlockBounds(G){let D=this.getBlockStartIndex(G),z=this.getBlockSize();return[D,D+z]}},RO=class extends wO{constructor(G,D,z){super();this.idSequence={value:0},this.ssrmParams=G,this.parentRowNode=z,this.storeParams=D,this.level=z.level+1,this.group=G.rowGroupCols?this.levelD({level:this.level,parentKeys:this.parentRowNode.getRoute()??[],data:q})),W=[...new Set(Y)];U=this.cache.removeRowNodes(W,G.rowCount)}let Z=this.gos.get("serverSideEnableClientSideSort"),S=Q?.length||J?.length;if(B&&Z&&S)this.cache.clientSideSortRows();return this.updateSelectionAfterTransaction(Q,U),{status:k1.Applied,update:Q,add:J,remove:U}}updateSelectionAfterTransaction(G,D){if(!this.selectionSvc)return;let z=[];for(let B of G??[])if(B.isSelected()&&!B.selectable)z.push(B);for(let B of D??[])if(B.isSelected())z.push(B);if(z.length)this.selectionSvc.setNodesSelected({newValue:!1,clearSelection:!1,nodes:z,source:"rowDataChanged"})}clearDisplayIndexes(){if(this.displayIndexStart=void 0,this.displayIndexEnd=void 0,this.cache.getNodes().forEach((G)=>this.blockUtils.clearDisplayIndex(G.node)),this.parentRowNode.sibling)this.blockUtils.clearDisplayIndex(this.parentRowNode.sibling);this.cache.clearDisplayIndexes()}getDisplayIndexStart(){return this.displayIndexStart}getDisplayIndexEnd(){return this.displayIndexEnd}getRowCount(){if(this.parentRowNode.sibling)return this.cache.getRowCount()+1;return this.cache.getRowCount()}setRowCount(G,D){this.cache.setRowCount(G,D)}isDisplayIndexInStore(G){if(this.cache.getRowCount()===0)return!1;return this.displayIndexStart<=G&&G-1&&J5(this.gos)({node:this.parentRowNode});if(!B)EJ(this.parentRowNode);if(B==="top")pG(this.parentRowNode,this.beans),this.blockUtils.setDisplayIndex(this.parentRowNode.sibling,G,D,z);if(this.cache.setDisplayIndexes(G,D,z),B==="bottom")pG(this.parentRowNode,this.beans),this.blockUtils.setDisplayIndex(this.parentRowNode.sibling,G,D,z);this.displayIndexEnd=G.value,this.heightPx=D.value-this.topPx}forEachStoreDeep(G,D={value:0}){G(this,D.value++),this.cache.getNodes().forEach((z)=>{let B=z.node.childStore;if(B)B.forEachStoreDeep(G,D)})}forEachNodeDeep(G,D={value:0}){this.cache.getNodes().forEach((z)=>{G(z.node,D.value++);let B=z.node.childStore;if(B)B.forEachNodeDeep(G,D)})}forEachNodeDeepAfterFilterAndSort(G,D={value:0},z=!1){let B=this.parentRowNode.level>-1&&J5(this.gos)({node:this.parentRowNode});if(B==="top")G(this.parentRowNode.sibling,D.value++);let Q=this.cache.getOrderedNodeMap();for(let J of Object.values(Q)){G(J.node,D.value++);let U=J.node.childStore;if(U)U.forEachNodeDeepAfterFilterAndSort(G,D,z)}if(B==="bottom")G(this.parentRowNode.sibling,D.value++)}retryLoads(){this.cache.getNodes().forEach(({node:G})=>{if(G.failedLoad)G.failedLoad=!1,G.__needsRefreshWhenVisible=!0,G.stub=!0}),this.forEachChildStoreShallow((G)=>G.retryLoads()),this.fireStoreUpdatedEvent()}getRowUsingDisplayIndex(G){if(this.parentRowNode.sibling&&G===this.parentRowNode.sibling.rowIndex)return this.parentRowNode.sibling;return this.cache.getRowByDisplayIndex(G)}getRowBounds(G){if(!this.isDisplayIndexInStore(G))return null;let D=this.cache.getNodeCachedByDisplayIndex(G);if(D){let Z=this.blockUtils.extractRowBounds(D,G);if(Z)return Z}let{previousNode:z,nextNode:B}=this.cache.getSurroundingNodesByDisplayIndex(G)??{};if(z){let Z=this.blockUtils.extractRowBounds(z.node,G);if(Z!=null)return Z}let Q=U5(this.beans);if(B){let Z=(B.node.rowIndex-G)*Q;return{rowTop:B.node.rowTop-Z,rowHeight:Q}}let J=this.topPx+this.heightPx,U=(this.getDisplayIndexEnd()-G)*Q;return{rowTop:J-U,rowHeight:Q}}isPixelInRange(G){return G>=this.topPx&&G=this.topPx+this.heightPx)return this.getDisplayIndexEnd()-1;if(this.parentRowNode.sibling&&G>this.parentRowNode.sibling.rowTop&&G{let X=Math.abs(G-S.rowTop);if(S.rowTop{let z=this.cache.getNodes().find((B)=>B.node.key==D);if(!z)return null;return z.node})}forEachChildStoreShallow(G){this.cache.getNodes().forEach(({node:D})=>{if(D.childStore)G(D.childStore)})}refreshAfterSort(G){if(this.storeUtils.isServerSideSortAllLevels()||this.storeUtils.isServerRefreshNeeded(this.parentRowNode,this.ssrmParams.rowGroupCols,G)){let z=this.cache.isStoreFullyLoaded(),B=this.gos.get("serverSideEnableClientSideSort");if(!(z&&B)){let J=this.cache.getRowCount(),U=this.cache.isLastRowIndexKnown();this.destroyBean(this.cache),this.cache=this.createManagedBean(new w1(this,J,U,this.storeParams));return}this.cache.clientSideSortRows()}this.forEachChildStoreShallow((z)=>z.refreshAfterSort(G))}refreshAfterFilter(G){if(!this.storeUtils.isServerSideOnlyRefreshFilteredGroups()||this.storeUtils.isServerRefreshNeeded(this.parentRowNode,this.ssrmParams.rowGroupCols,G)){this.refreshStore(!0);return}this.forEachChildStoreShallow((z)=>z.refreshAfterFilter(G))}refreshStore(G){if(G){this.destroyBean(this.cache),this.cache=this.createManagedBean(new w1(this,1,!1,this.storeParams)),this.fireStoreUpdatedEvent();return}this.cache.markNodesForRefresh()}getTopLevelRowDisplayedIndex(G){return this.cache.getDisplayIndexFromStoreIndex(G)??G}isLastRowIndexKnown(){return this.cache.isLastRowIndexKnown()}getRowNodesInRange(G,D){return this.cache.getNodes().filter(({node:z})=>{return z.rowIndex>=G.rowIndex&&z.rowIndex<=D.rowIndex}).map(({node:z})=>z)}addStoreStates(G){G.push({route:this.parentRowNode.getRoute()??[],rowCount:this.getRowCount(),lastRowIndexKnown:this.isLastRowIndexKnown(),info:this.info,maxBlocksInCache:this.storeParams.maxBlocksInCache,cacheBlockSize:this.storeParams.cacheBlockSize}),this.forEachChildStoreShallow((D)=>D.addStoreStates(G))}getIdSequence(){return this.idSequence}getParentNode(){return this.parentRowNode}getRowDetails(){return{field:this.groupField,group:this.group,leafGroup:this.leafGroup,level:this.level,parent:this.parentRowNode,rowGroupColumn:this.rowGroupColumn}}getSsrmParams(){return this.ssrmParams}setStoreInfo(G){if(G)Object.assign(this.info,G)}fireStoreUpdatedEvent(){this.eventSvc.dispatchEvent({type:"storeUpdated"})}fireRefreshFinishedEvent(){this.eventSvc.dispatchEvent({type:"storeRefreshed",route:this.parentRowNode.getRoute()})}getBlockStates(){return this.cache.getBlockStates()}getStoreBounds(){return{topPx:this.topPx,heightPx:this.heightPx}}getCache(){return this.cache}getFirstNode(){return this.cache.getNodes().getBy("index",0)?.node??null}},CO=class extends kO{constructor(){super(...arguments);this.beanName="ssrmStoreFactory"}wireBeans(G){this.colModel=G.colModel,this.rowGroupColsSvc=G.rowGroupColsSvc,this.pivotColsSvc=G.pivotColsSvc,this.rowAutoHeight=G.rowAutoHeight}createStore(G,D){let z=this.getStoreParams(G,D);return new RO(G,z,D)}getStoreParams(G,D){let z=this.getLevelSpecificParams(D),B=this.getBlockSize(z),Q=this.getMaxBlocksInCache(G,z);return{cacheBlockSize:B,maxBlocksInCache:Q}}getMaxBlocksInCache(G,D){let z=D?.maxBlocksInCache!=null?D.maxBlocksInCache:this.gos.get("maxBlocksInCache");if(!(z!=null&&z>=0))return;if(G.dynamicRowHeight){Q5(203);return}if(this.rowAutoHeight?.active){Q5(204);return}return z}getBlockSize(G){let D=G?.cacheBlockSize!=null?G.cacheBlockSize:this.gos.get("cacheBlockSize");if(D!=null&&D>0)return D;else return 100}getLevelSpecificParams(G){let D=this.gos.getCallback("getServerSideGroupLevelParams");if(!D)return;let z={level:G.level+1,parentRowNode:G.level>=0?G:void 0,rowGroupColumns:this.rowGroupColsSvc?.columns??[],pivotColumns:this.pivotColsSvc?.columns??[],pivotMode:this.colModel.isPivotMode()};return D(z)}},bO=class extends VO{constructor(){super(...arguments);this.beanName="ssrmStoreUtils"}wireBeans(G){this.colModel=G.colModel,this.serverSideRowModel=G.rowModel,this.storeFactory=G.ssrmStoreFactory}getChildStore(G,D,z){if(!G?.length)return D;let B=G[0],Q=z(B);if(Q){if(G.length===1&&!Q.childStore){let Z=this.serverSideRowModel.getParams();Q.childStore=this.createBean(this.storeFactory.createStore(Z,Q))}let J=G.slice(1,G.length),U=Q.childStore;return U?U.getChildStore(J):null}return null}isServerRefreshNeeded(G,D,z){if(z.valueColChanged||z.secondaryColChanged)return!0;let B=G.level+1;if(!(B-1)return!0;return this.colModel.getCols().filter((Y)=>Y.getColDef().showRowGroup&&z.changedColumns.includes(Y.getId())).map((Y)=>Y.getColDef().showRowGroup).some((Y)=>Y===!0||Y===U)}getServerSideInitialRowCount(){return this.gos.get("serverSideInitialRowCount")}isServerSideSortAllLevels(){return this.gos.get("serverSideSortAllLevels")&&Z5(this.gos)}isServerSideOnlyRefreshFilteredGroups(){return this.gos.get("serverSideOnlyRefreshFilteredGroups")&&Z5(this.gos)}},OO=class extends vO{constructor(){super(...arguments);this.beanName="ssrmTxnManager",this.asyncTransactions=[]}wireBeans(G){this.valueCache=G.valueCache,this.serverSideRowModel=G.rowModel,this.selectionSvc=G.selectionSvc}applyTransactionAsync(G,D){if(this.asyncTransactionsTimeout==null)this.scheduleExecuteAsync();this.asyncTransactions.push({transaction:G,callback:D})}scheduleExecuteAsync(){let G=this.gos.get("asyncTransactionWaitMillis");this.asyncTransactionsTimeout=window.setTimeout(()=>{this.executeAsyncTransactions()},G)}executeAsyncTransactions(){if(!this.asyncTransactions)return;let G=[],D=[],z=[],B=!1;for(let Q of this.asyncTransactions){let J;if(!this.serverSideRowModel.executeOnStore(Q.transaction.route,(S)=>{J=S.applyTransaction(Q.transaction)}))J={status:fD.StoreNotStarted};else if(J==null)J={status:fD.StoreNotFound};if(D.push(J),J.status==fD.StoreLoading){z.push(Q);continue}if(Q.callback)G.push(()=>Q.callback(J));if(J.status===fD.Applied)B=!0}if(G.length>0)window.setTimeout(()=>{for(let Q of G)Q()},0);if(this.asyncTransactionsTimeout=void 0,this.asyncTransactions=z,B)this.valueCache?.onDataChanged(),this.eventSvc.dispatchEvent({type:"storeUpdated"});if(D.length>0)this.eventSvc.dispatchEvent({type:"asyncTransactionsFlushed",results:D})}flushAsyncTransactions(){if(this.asyncTransactionsTimeout!=null)clearTimeout(this.asyncTransactionsTimeout);this.executeAsyncTransactions()}applyTransaction(G){let D;if(!this.serverSideRowModel.executeOnStore(G.route,(B)=>{D=B.applyTransaction(G)}))return{status:fD.StoreNotStarted};else if(D){if(this.valueCache?.onDataChanged(),D.remove&&this.selectionSvc){let B=D.remove.map((Q)=>Q.id);this.selectionSvc.deleteSelectionStateFromParent(G.route||[],B)}return this.eventSvc.dispatchEvent({type:"storeUpdated"}),D}else return{status:fD.StoreNotFound}}},L8={moduleName:"ServerSideRowModel",version:j,rowModels:["serverSide"],beans:[yv,kv,bO,qv,Vv,OO,Nv,CO,Ev,SO,_O,YO,GO,Av],dependsOn:[i,wb,kb,U8,Z8,Ab]},S8={moduleName:"ServerSideRowModelApi",version:j,apiFunctions:{getServerSideSelectionState:cv,setServerSideSelectionState:hv,applyServerSideTransaction:iv,applyServerSideTransactionAsync:dv,applyServerSideRowData:nv,retryServerSideLoads:lv,flushServerSideAsyncTransactions:pv,refreshServerSide:mv,getServerSideGroupLevelState:tv,resetRowHeights:Nb,onRowHeightChanged:fb},dependsOn:[i,_b,Hb,Kb]},$5=/\$?[A-Za-z]+\$?[0-9]+(?::\$?[A-Za-z]+\$?[0-9]+)?/g,cO=/^(\$?)([A-Za-z]+)(\$?)([0-9]+)(?::(\$?)([A-Za-z]+)(\$?)([0-9]+))?$/,hO=/[A-Za-z0-9]/,L0=(G)=>{return!!G&&hO.test(G)},tB=(G)=>{return!!G&&/[A-Za-z]/.test(G)},L5=(G)=>{return L0(G??void 0)},Y8=(G,D,z)=>{let B=D>0?G[D-1]:null;if(L5(B))return!1;if(z.endsWith(":"))return!0;let Q=D+z.length,J=Q{let B=(D.allowTrailingColon??!1)&&G.endsWith(":")?G.slice(0,-1):G,Q=cO.exec(B);if(!Q)return null;let[,J,U,Z,S,X,Y,W,q]=Q;return{startCol:U,startRow:S,startColAbsolute:J==="$",startRowAbsolute:Z==="$",...!!(Y&&q)?{endCol:Y,endRow:q,endColAbsolute:X==="$",endRowAbsolute:W==="$"}:null}},W8=(G)=>{let D=[],z,B=0;$5.lastIndex=0;while((z=$5.exec(G))!=null){let Q=z[0],J=z.index??0,U=J+Q.length;if(U","&"]),H8=(G,D)=>{for(let z=D-1;z>=0;z--){let B=G[z];if(B!=null&&B.trim()!=="")return B}return null},pO="ag-formula-token-color",mO="ag-formula-range-color",uJ=(G,D)=>{let z=D??0;return{tokenClass:`${pO}-${z+1}`,rangeClass:`${mO}-${z+1}`,colorIndex:z}},f1=(G)=>{if(!G)return null;let D=/ag-formula-range-color-(\d+)/.exec(G);if(!D)return null;let z=parseInt(D[1],10);return Number.isFinite(z)?z-1:null},tO=(G,D,z)=>{if(!G)return;let{rangeClass:B}=uJ(D,z);G.colorClass=B},_8=(G,D)=>{let z=OJ(D,{allowTrailingColon:!0});if(!z)return null;let{formula:B}=G,{startCol:Q,startRow:J,endCol:U,endRow:Z}=z,S=Q,X=U??Q,Y=B?.getColByRef(S),W=B?.getColByRef(X);if(!Y||!W)return null;let q=parseInt(J,10)-1,H=Z?parseInt(Z,10)-1:q;if(q<0||H<0)return null;let _=G.rowModel;if(!_?.getFormulaRow(q)||!_.getFormulaRow(H))return null;return{rowStartIndex:q,rowEndIndex:H,columnStart:Y,columnEnd:W}},sO=(G)=>{let D=G.rangeSvc?.getCellRanges(),z=D?.length?D[D.length-1]:null;if(!z)return null;return QD(G,z)},QD=(G,D)=>{let{rangeSvc:z,formula:B}=G;if(!z||!B)return null;let Q=z.getRangeStartRow(D),J=z.getRangeEndRow(D);if(!Q||!J||Q.rowPinned||J.rowPinned)return null;let U=Math.min(Q.rowIndex,J.rowIndex)+1,Z=Math.max(Q.rowIndex,J.rowIndex)+1,S=D.columns?.filter((w)=>!lO(w)&&!!B.getColRef(w));if(!S?.length)return null;let X=[...S],Y=X[0],W=X[X.length-1],q=B.getColRef(Y),H=B.getColRef(W);if(!q||!H)return null;if(q===H&&U===Z)return`${q}${U}`;return`${q}${U}:${H}${Z}`},Yz=(G,D)=>{let z=W8(D),{formula:B}=G;if(!B)return z;let Q=[],J=0;for(let U of z){if(!_8(G,U.ref))continue;Q.push({...U,index:J}),J+=1}return Q},S5=(G,D)=>{return Yz(G,D).map(({ref:B,index:Q})=>({ref:B,index:Q}))},oO=class extends nO{constructor(G){super();this.field=G,this.functionAutocompleteList=null,this.functionAutocompleteToken=null,this.functionAutocompleteEntries=null,this.functionAutocompleteSearch=null}postConstruct(){this.addManagedElementListeners(this.field.getContentElement(),{keydown:this.onContentKeyDown.bind(this),mouseup:this.updateFunctionAutocomplete.bind(this),focusin:this.updateFunctionAutocomplete.bind(this),focusout:this.closeFunctionAutocomplete.bind(this)}),this.addDestroyFunc(()=>this.closeFunctionAutocomplete())}onPlainValueUpdated(){this.closeFunctionAutocomplete()}onFormulaValueUpdated(){this.updateFunctionAutocomplete()}onContentKeyDown(G){if(this.functionAutocompleteList)switch(G.key){case iG.ENTER:case iG.TAB:G.preventDefault(),G.stopPropagation(),this.confirmFunctionAutocomplete();return;case iG.ESCAPE:G.preventDefault(),G.stopPropagation(),this.closeFunctionAutocomplete();return;case iG.UP:case iG.DOWN:this.functionAutocompleteList.onNavigationKeyDown(G,G.key);return}switch(G.key){case iG.LEFT:case iG.RIGHT:case iG.PAGE_HOME:case iG.PAGE_END:this.scheduleFunctionAutocompleteUpdate();break}}scheduleFunctionAutocompleteUpdate(){setTimeout(()=>{if(!this.isAlive())return;this.updateFunctionAutocomplete()})}updateFunctionAutocomplete(){if(!this.isContentFocused()){this.closeFunctionAutocomplete();return}let{field:G,beans:D}=this,z=G.getCurrentValue();if(!z.trimStart().startsWith("=")){this.closeFunctionAutocomplete();return}let Q=G.getCaretOffsetsForAutocomplete(z);if(!Q){this.closeFunctionAutocomplete();return}if(aO(D,z,Q.valueOffset)){this.closeFunctionAutocomplete();return}let J=rO(z,Q.valueOffset,D.formula??null);if(!J){this.closeFunctionAutocomplete();return}let{prefix:U}=J;if(!U.length){this.closeFunctionAutocomplete();return}let Z=this.getFunctionAutocompleteEntries();if(!Z.length){this.closeFunctionAutocomplete();return}let S=U.toLocaleLowerCase();if(!Z.some(({key:Y})=>Y.toLocaleLowerCase().startsWith(S))){this.closeFunctionAutocomplete();return}if(this.functionAutocompleteToken=J,this.openFunctionAutocomplete(Z),this.functionAutocompleteList&&this.functionAutocompleteSearch!==U)this.functionAutocompleteList.setSearch(U),this.functionAutocompleteSearch=U}getFunctionAutocompleteEntries(){let G=this.beans.formula,D=G?.active?G.getFunctionNames?.()??[]:[];if(!this.functionAutocompleteEntries||this.functionAutocompleteEntries.length!==D.length)this.functionAutocompleteEntries=D.map((z)=>({key:z}));return this.functionAutocompleteEntries}openFunctionAutocomplete(G){if(this.functionAutocompleteList||!G.length)return;let D=this.beans.popupSvc;if(!D)return;let z=null,B=()=>{if(this.functionAutocompleteList&&z)D.positionPopupByComponent(z)};this.functionAutocompleteList=this.createManagedBean(new y6({autocompleteEntries:G,onConfirmed:()=>this.confirmFunctionAutocomplete(),useStartsWithSearch:!0,autoSizeList:!0,maxVisibleItems:10,onListHeightChanged:B}));let Q=this.functionAutocompleteList.getGui();z={ePopup:Q,type:"autocomplete",eventSource:this.field.getGui(),position:"under",alignSide:this.gos.get("enableRtl")?"right":"left",keepWithinBounds:!0};let J=D.addPopup({eChild:Q,anchorToElement:this.field.getGui(),positionCallback:B,ariaLabel:"Formula functions"});this.functionAutocompleteHidePopup=J.hideFunc,this.functionAutocompleteList.afterGuiAttached()}closeFunctionAutocomplete(){if(this.functionAutocompleteToken=null,this.functionAutocompleteSearch=null,!this.functionAutocompleteList)return;this.functionAutocompleteHidePopup?.(),this.functionAutocompleteHidePopup=void 0,this.destroyBean(this.functionAutocompleteList),this.functionAutocompleteList=null}confirmFunctionAutocomplete(){let G=this.functionAutocompleteToken,D=this.functionAutocompleteList?.getSelectedValue();if(!G||!D){this.closeFunctionAutocomplete();return}let{field:z}=this,B=z.getCurrentValue(),Q=D.key,J=B.slice(0,G.start)+Q+B.slice(G.end),U=G.start+Q.length,Z=J[U]==="("?J:J.slice(0,U)+"("+J.slice(U);z.getContentElement().focus({preventScroll:!0}),z.applyFormulaValueChange({currentValue:B,nextValue:Z,caret:U+1}),this.closeFunctionAutocomplete()}isContentFocused(){return dO(this.beans).activeElement===this.field.getContentElement()}},rO=(G,D,z)=>{if(D<0||D>G.length||eO(G,D))return null;let B=D;while(B>0&&L0(G[B-1]))B--;let Q=D;while(Q{for(let B of Yz(G,D))if(z>=B.start&&z<=B.end)return!0;return!1},eO=(G,D)=>{let z=!1;for(let B=0;B{this.rangeSelectionEnabled=!1,this.suppressRangeEvents=!1,this.ignoreNextRangeEvent=!1,this.skipNextValueUpdate=!1,this.clearTrackedRanges(!0)}}postConstruct(){this.addManagedEventListeners({cellSelectionChanged:this.onCellSelectionChanged.bind(this)}),this.addDestroyFunc(()=>this.disableRangeSelectionWhileEditing()),this.addDestroyFunc(()=>this.unregisterActiveEditor())}onValueUpdated(G,D){if(this.skipNextValueUpdate){this.skipNextValueUpdate=!1;return}if(!this.isActiveEditor())return;if(D){if(this.enableRangeSelectionWhileEditing())this.skipNextValueUpdate=!0,this.field.setValue(G,!0);this.syncRangesFromFormula(G);return}this.disableRangeSelectionWhileEditing()}setEditingCellRef(G,D,z){this.editingColumn=G,this.editingRowIndex=D??void 0,this.editingCellRef=z}setEditorActive(G){if(G){this.registerActiveEditor();return}this.unregisterActiveEditor()}withSelectionChangeHandlingSuppressed(G){let D=this.suppressSelectionChangeHandling;this.suppressSelectionChangeHandling=!0;try{G()}finally{this.suppressSelectionChangeHandling=D}}deactivateForFocusLoss(){if(!this.isActiveEditor())return;this.handleEditorDeactivated(),this.beans.editSvc?.disableRangeSelectionWhileEditing?.(),this.unregisterActiveEditor()}registerActiveEditor(){let G=this.field.getCompId(),{formulaInputManager:D}=this.beans;if(!D)return;if(!D.registerActiveEditor(G,this.handleEditorDeactivated))return;this.rangeSelectionEnabled=!1,this.suppressRangeEvents=!1,this.ignoreNextRangeEvent=!1,this.skipNextValueUpdate=!1,this.clearTrackedRanges(!1);let B=this.field.getCurrentValue(),Q=B.trimStart().startsWith("=");this.onValueUpdated(B,Q)}unregisterActiveEditor(){let G=this.field.getCompId(),{formulaInputManager:D}=this.beans;if(!D)return;D.unregisterActiveEditor(G,this.handleEditorDeactivated)}isActiveEditor(){let G=this.field.getCompId(),{formulaInputManager:D}=this.beans;return!!D&&D.isActiveEditor(G)}getTrackedRefCount(G){return this.trackedRangeRefs.get(G)??0}hasTrackedRef(G){return this.getTrackedRefCount(G)>0}addTrackedRef(G){this.trackedRangeRefs.set(G,this.getTrackedRefCount(G)+1)}removeTrackedRef(G){let D=this.getTrackedRefCount(G)-1;if(D<=0){this.trackedRangeRefs.delete(G);return}this.trackedRangeRefs.set(G,D)}enableRangeSelectionWhileEditing(){if(this.rangeSelectionEnabled)return!1;return this.rangeSelectionEnabled=!0,this.beans.editSvc?.enableRangeSelectionWhileEditing?.(),!0}disableRangeSelectionWhileEditing(){if(!this.rangeSelectionEnabled&&!this.trackedRangeRefs.size)return;this.rangeSelectionEnabled=!1,this.beans.editSvc?.disableRangeSelectionWhileEditing?.(),this.clearTrackedRanges(this.isActiveEditor())}clearTrackedRanges(G=!0){if(G)Array.from(this.trackedRangeRefs.keys()).forEach((z)=>this.removeRangeForRef(z));this.trackedRangeRefs.clear(),this.trackedRanges.clear()}getLiveRanges(){return this.beans.rangeSvc?.getCellRanges()??[]}withSuppressedRangeEvents(G){this.suppressRangeEvents=!0,G(),this.suppressRangeEvents=!1}setCellRangesSilently(G){let D=this.beans.rangeSvc;if(!D)return;this.withSuppressedRangeEvents(()=>D.setCellRanges(G))}getColorIndexForTokenOrRef(G,D){return this.field.getColorIndexForToken(D??null)??this.field.getColorIndexForRef(G)}normaliseRefForComparison(G){if(!G)return null;return(G.endsWith(":")?G.slice(0,-1):G).replace(/\$/g,"").toUpperCase()}tagRangeColor(G,D,z){let{rangeClass:B}=uJ(D,z);if(G.colorClass===B)return!1;return tO(G,D,z),!0}trackRange(G,D,z){let B=this.trackedRanges.get(G),Q=z!==void 0?z:B?.tokenIndex??null;if(!B)this.addTrackedRef(D);else if(B.ref!==D)this.removeTrackedRef(B.ref),this.addTrackedRef(D);this.trackedRanges.set(G,{ref:D,tokenIndex:Q})}getUntrackedFormulaRangesByRef(){let G=new Map,D=this.getLiveRanges();for(let z of D){if(this.trackedRanges.has(z))continue;if(f1(z.colorClass)==null)continue;let B=QD(this.beans,z);if(!B||B===this.editingCellRef)continue;let Q=G.get(B);if(Q)Q.push(z);else G.set(B,[z])}return G}syncRangesFromFormula(G){let D=G??this.field.getCurrentValue()??"";if(!this.rangeSelectionEnabled){this.clearTrackedRanges();return}let z=S5(this.beans,D),B=new Map;for(let X of z){let{ref:Y,index:W}=X;if(Y===this.editingCellRef)continue;let q=B.get(Y)??[];q.push(W),B.set(Y,q)}for(let X of Array.from(this.trackedRangeRefs.keys()))if(!B.has(X))this.removeRangeForRef(X);if(!this.beans.rangeSvc)return;let J=new Set(this.getLiveRanges());for(let[X,Y]of this.trackedRanges.entries())if(!J.has(X))this.trackedRanges.delete(X),this.removeTrackedRef(Y.ref);let U=this.getUntrackedFormulaRangesByRef(),Z=!1;for(let[X,Y]of B.entries()){let W=[];for(let[H,_]of this.trackedRanges.entries())if(_.ref===X)W.push(H);let q=U.get(X);while(W.lengthY.length){let H=W.pop();if(H)this.removeTrackedRange(H)}while(W.length!S.includes(W));if(Y.length!==X.length)this.setCellRangesSilently(Y),Z=!0}if(Z)this.refreshRangeStyling()}onCellSelectionChanged(G){if(!this.isActiveEditor()||!this.rangeSelectionEnabled||!this.beans.editSvc?.isRangeSelectionEnabledWhileEditing?.())return;if(this.ignoreNextRangeEvent){this.ignoreNextRangeEvent=!1;return}if(this.suppressSelectionChangeHandling)return;let{finished:D,started:z}=G,B=this.getLiveRanges(),Q=B.filter((W)=>!this.isSpecialOnlyRange(W));if(Q.length!==B.length){this.setCellRangesSilently(Q),this.refocusEditingCell();return}let J=B.length?N1(B):null,U=J?QD(this.beans,J):null,Z=!!J&&!this.trackedRanges.has(J)&&!!U&&U!==this.editingCellRef,S=D&&(z||Z),X=this.ensureTrackedRangeColors();if(this.suppressRangeEvents){if(X)this.refreshRangeStyling();return}if(z||Z)this.field.rememberCaret();if(!Z&&this.handleRemovedRangeTokens()){this.field.restoreCaretAfterToken(),this.refocusEditingCell();return}if(this.updateTrackedRangeTokens())return;let Y=sO(this.beans);if(!Y||Y===this.editingCellRef){this.refocusEditingCell();return}if(S){let{action:W,previousRef:q,tokenIndex:H}=this.field.applyRangeInsert(Y);if(W==="none"){this.keepLatestSelectionOnly(J),this.beans.editSvc?.stopEditing(void 0,{source:"edit"});return}if(W==="replace"&&q===Y){this.discardLatestRangeForRef(Y),this.field.restoreCaretAfterToken(),this.refocusEditingCell();return}this.tagLatestRangeForRef(Y,H),this.handleRangeTokenUpdate(q,Y,!0,W==="insert",H),this.syncRangesFromFormula(this.field.getCurrentValue()),this.field.restoreCaretAfterToken(),this.refocusEditingCell();return}if(!z&&!D){let{previousRef:W,tokenIndex:q}=this.field.insertOrReplaceToken(Y,!1);this.tagLatestRangeForRef(Y,q),this.handleRangeTokenUpdate(W,Y,!1,!1),this.refocusEditingCell();return}if(this.tagLatestRangeForRef(Y),D)this.field.restoreCaretAfterToken(),this.refocusEditingCell()}keepLatestSelectionOnly(G){if(!G||this.getLiveRanges().length<=1)return;this.setCellRangesSilently([G])}isSpecialOnlyRange(G){let D=G.columns;return!!D?.length&&D.every((z)=>Du(z))}handleRangeTokenUpdate(G,D,z,B,Q){if(z){if(!B&&G&&G!==D)this.removeRangeForRef(G,Q);this.addRangeForRef(D,!0,Q);return}if(B||!G){this.addTrackedRef(D);return}if(G!==D)this.removeTrackedRef(G),this.addTrackedRef(D)}addRangeForRef(G,D,z){let B=this.beans.rangeSvc;if(!B)return;let Q;if(!D){let J=_8(this.beans,G);if(!J)return;this.withSuppressedRangeEvents(()=>{Q=B.addCellRange(J)})}else Q=this.findLatestRangeForRef(G,!0)??this.findLatestRangeForRef(G,!1);if(Q){let J=this.getColorIndexForTokenOrRef(G,z);this.tagRangeColor(Q,G,J),this.trackRange(Q,G,z),this.refreshRangeStyling()}return Q}findLatestRangeForRef(G,D){let z=this.getLiveRanges();for(let B=z.length-1;B>=0;B--){let Q=z[B];if(QD(this.beans,Q)!==G)continue;if(D&&this.trackedRanges.has(Q))continue;return Q}return}tagLatestRangeForRef(G,D){let{trackedRanges:z}=this,B=this.getLiveRanges(),Q=B.length?N1(B):null;if(!Q)return;let J=z.get(Q)?.tokenIndex??null,U=this.getColorIndexForTokenOrRef(G,D??J);this.tagRangeColor(Q,G,U),this.refreshRangeStyling()}discardLatestRangeForRef(G){let D=this.getLiveRanges();if(!D.length)return;let z=N1(D);if(QD(this.beans,z)!==G)return;if(this.trackedRanges.has(z)){this.removeTrackedRange(z);return}this.setCellRangesSilently(D.slice(0,-1))}ensureTrackedRangeColors(){let G=this.getLiveRanges();if(!G.length)return!1;let D=!1;for(let z of G){let B=this.trackedRanges.get(z),Q=B?.ref??QD(this.beans,z);if(!Q||!this.hasTrackedRef(Q))continue;let J=B?.tokenIndex??null,U=this.field.getColorIndexForToken(J),Z=f1(z.colorClass),S=U??(this.field.hasColorForRef(Q)?this.field.getColorIndexForRef(Q):this.field.moveColorToRef(void 0,Q,Z??void 0));if(S==null)continue;if(this.tagRangeColor(z,Q,S))D=!0;if(!this.trackedRanges.has(z))this.trackRange(z,Q,J)}return D}handleRemovedRangeTokens(){if(!this.beans.rangeSvc||this.trackedRanges.size===0)return!1;let G=this.field.getCurrentValue(),D=S5(this.beans,G).filter(({ref:S})=>S!==this.editingCellRef);if(!D.length)return!1;let z=this.getLiveRanges(),B=new Set(z),Q=new Map;for(let S of z){let X=QD(this.beans,S);if(!X||X===this.editingCellRef)continue;Q.set(X,(Q.get(X)??0)+1)}let J=new Map;for(let S of D){let{ref:X}=S;J.set(X,(J.get(X)??0)+1)}for(let[S,X]of Array.from(J.entries())){let Y=Q.get(S)??0,W=X-Y;if(W>0)J.set(S,W);else J.delete(S)}if(!J.size)return!1;let U=[];for(let[S,X]of Array.from(this.trackedRanges.entries())){if(B.has(S))continue;let{ref:Y}=X,W=J.get(Y)??0;if(W<=0)continue;J.set(Y,W-1),U.push({range:S,tracked:X})}if(!U.length)return!1;U.sort((S,X)=>(X.tracked.tokenIndex??-1)-(S.tracked.tokenIndex??-1));let Z=!1;for(let{range:S,tracked:X}of U){let{ref:Y,tokenIndex:W}=X;Z=this.field.removeTokenRef(Y,W??null)||Z,this.trackedRanges.delete(S),this.removeTrackedRef(Y)}if(Z)this.syncRangesFromFormula(this.field.getCurrentValue());return Z}refreshRangeStyling(){let{eventSvc:G}=this.beans;if(!G)return;this.ensureTrackedRangeColors(),this.ignoreNextRangeEvent=!0,G.dispatchEvent({type:"cellSelectionChanged",started:!1,finished:!1})}refocusEditingCell(){let{focusSvc:G}=this.beans,{editingColumn:D,editingRowIndex:z}=this;if(!G||D==null||z==null)return;G.setFocusedCell({column:D,rowIndex:z,rowPinned:null,preventScrollOnBrowserFocus:!0})}removeTrackedRange(G){let D=this.trackedRanges.get(G);if(!D)return;let z=this.getLiveRanges(),B=z.filter((Q)=>Q!==G);if(B.length!==z.length)this.setCellRangesSilently(B);this.trackedRanges.delete(G),this.removeTrackedRef(D.ref)}removeRangeForRef(G,D){if(!G||!this.hasTrackedRef(G))return;if(D!=null){let z=!1;for(let[B,Q]of Array.from(this.trackedRanges.entries())){let{ref:J,tokenIndex:U}=Q;if(J!==G||U!==D)continue;this.removeTrackedRange(B),z=!0;break}if(!z){for(let[B,Q]of Array.from(this.trackedRanges.entries()))if(Q.ref===G){this.removeTrackedRange(B);break}}return}for(let[z,B]of Array.from(this.trackedRanges.entries()))if(B.ref===G)this.removeTrackedRange(z)}updateTrackedRangeTokens(){if(!this.beans.rangeSvc)return!1;let G=this.getLiveRanges(),D=this.normaliseRefForComparison(this.editingCellRef),z=!1;for(let B of G){let Q=this.trackedRanges.get(B);if(!Q)continue;let{ref:J,tokenIndex:U}=Q,Z=QD(this.beans,B),S=this.normaliseRefForComparison(J),X=this.normaliseRefForComparison(Z);if(!Z||!X||X===S||X===D)continue;let{colorClass:Y}=B,q=this.field.getColorIndexForToken(U??null)??this.field.moveColorToRef(J,Z,f1(Y)??void 0),H=this.field.replaceTokenRef(J,Z,q,U);if(H==null)continue;this.tagRangeColor(B,Z,q),this.trackRange(B,Z,H??U??null),z=!0}if(z)this.refreshRangeStyling();return z}},F1=7,Bu={"/":"÷","*":"×"},Qu={"÷":"/","×":"*"},Ju=class extends TO{constructor(){super({renderValueToElement:!1,className:"ag-formula-input-field"});this.currentValue="",this.selectionCaretOffset=null,this.lastTokenValueOffset=null,this.lastTokenValueLength=null,this.lastTokenCaretOffset=null,this.focusFromMouseTime=null,this.suppressNextFocusCaretPlacement=!1,this.formulaColorByRef=new Map,this.registerCSS(iO),this.registerCSS(T6)}postConstruct(){super.postConstruct(),this.rangeSyncFeature=this.createManagedBean(new zu(this)),this.autocompleteFeature=this.createManagedBean(new oO(this)),this.addManagedElementListeners(this.getContentElement(),{input:this.onContentInput.bind(this),focus:this.onContentFocus.bind(this),blur:this.onContentBlur.bind(this),mousedown:this.onContentMouseDown.bind(this)})}setValue(G,D){let z=G==null?"":String(G),{isFormula:B,hasFormulaPrefix:Q}=this.getFormulaState(z);if(!B)return this.applyPlainValue(z,{silent:D,dispatch:!0}),this.rangeSyncFeature?.onValueUpdated(z,Q),this;return this.applyFormulaValue(z,{currentValue:this.getCurrentValue(),silent:D}),this.rangeSyncFeature?.onValueUpdated(z,Q),this}getCurrentValue(){let G=Y5(this.getContentElement());if(G!==this.currentValue)this.setEditorValue(G,!0);return this.currentValue}setEditingCellRef(G,D){let z=G?this.beans.formula?.getColRef(G):void 0,B=z&&D!=null&&D!==void 0?`${z}${D+1}`:void 0;if(!B){this.rangeSyncFeature?.setEditingCellRef(void 0,void 0,void 0);return}this.rangeSyncFeature?.setEditingCellRef(G,D,B)}rememberCaret(){let G=ID(this.beans,this.getContentElement(),this.getCurrentValue());this.selectionCaretOffset=G??this.currentValue.length}setEditorValue(G,D=!1){return this.currentValue=G,super.setValue(G,D),this}renderFormula(G){Xu({beans:this.beans,contentElement:this.getContentElement(),getColorIndexForToken:this.getColorIndexForToken.bind(this),...G})}renderPlainValue(G,D){let z=this.getContentElement(),B=D??ID(this.beans,z,this.currentValue);z.textContent=G??"";let Q=B!=null?Math.min(B,G.length):null;s1(this.beans,z,Q)}withSelectionChangeHandlingSuppressed(G){if(!this.rangeSyncFeature){G();return}this.rangeSyncFeature.withSelectionChangeHandlingSuppressed(G)}getColorIndexForRef(G){if(!E1(this.beans))return null;let D=this.formulaColorByRef.get(G);if(D!=null)return D;let z=this.formulaColorByRef.size%F1;return this.formulaColorByRef.set(G,z),z}getColorIndexForToken(G){if(!E1(this.beans)||G==null)return null;return G%F1}hasColorForRef(G){return this.formulaColorByRef.has(G)}moveColorToRef(G,D,z){let B=G&&this.formulaColorByRef.has(G)?this.getColorIndexForRef(G):z??this.formulaColorByRef.get(D)??this.getColorIndexForRef(D);if(G&&G!==D)this.formulaColorByRef.delete(G);if(B==null)return null;return this.formulaColorByRef.set(D,B),B}updateFormulaColorsFromValue(G){if(G=G==null?"":String(G),!E1(this.beans)){this.formulaColorByRef.clear();return}let D=Uu(this.beans,G),z=D.length!==this.formulaColorByRef.size,B=new Map;if(D.forEach((Q,J)=>{let U=J%F1;if(B.set(Q,U),this.formulaColorByRef.get(Q)!==U)z=!0}),!z)return;this.formulaColorByRef.clear(),B.forEach((Q,J)=>this.formulaColorByRef.set(J,Q))}onContentInput(){let G=this.getContentElement(),D=this.getCurrentValue(),z=ID(this.beans,G,D),B=Y5(G),{isFormula:Q,hasFormulaPrefix:J}=this.getFormulaState(B);if(!Q){this.applyPlainValue(B,{caret:z,dispatch:!0}),this.rangeSyncFeature?.onValueUpdated(B,J);return}this.applyFormulaValue(B,{currentValue:D,caret:z??void 0,dispatch:!0}),this.rangeSyncFeature?.onValueUpdated(B,J)}onContentFocus(){if(this.rangeSyncFeature?.setEditorActive(!0),this.suppressNextFocusCaretPlacement){this.suppressNextFocusCaretPlacement=!1;return}let{focusFromMouseTime:G}=this,D=G!=null;if(this.focusFromMouseTime=null,D)return;xO(this.beans,this.getContentElement())}onContentBlur(G){this.focusFromMouseTime=null;let D=G.relatedTarget,z=D?.closest(".ag-cell-editor"),B=D?.closest(".ag-cell");if(!D||this.getGui().contains(D)||!z||!B)return;this.rangeSyncFeature?.deactivateForFocusLoss()}onContentMouseDown(){this.focusFromMouseTime=Date.now()}insertOrReplaceToken(G,D){let z=this.getTokenInsertOffsets(D);if(!z)return{};let{caretOffset:B,valueOffset:Q}=z,J=D||this.lastTokenValueLength==null?0:this.lastTokenValueLength,U=this.getCurrentValue(),Z=U.slice(0,Q)+G+U.slice(Q+J),S=I1(this.beans,Z,Q)?.index??null,X;return this.applyFormulaValueChange({currentValue:U,nextValue:Z,caret:B+G.length,updateTracking:()=>{X=this.updateLastTokenTracking(G,B,Q)}}),{previousRef:X,tokenIndex:S}}removeTokenRef(G,D){let z=this.getCurrentValue(),B=Yz(this.beans,z),Q;if(D!=null){if(Q=B.find((S)=>S.index===D),Q&&Q.ref!==G)Q=void 0}if(!Q)Q=B.find((S)=>S.ref===G);if(!Q)return!1;let J=z.slice(0,Q.start)+z.slice(Q.end),U=this.selectionCaretOffset??Q.start,Z=Math.min(U,J.length);return this.applyFormulaValueChange({currentValue:z,nextValue:J,caret:Z,updateTracking:()=>{this.lastTokenValueOffset=null,this.lastTokenValueLength=null,this.lastTokenCaretOffset=Z,this.lastTokenRef=void 0}}),!0}applyRangeInsert(G){let D=this.getCurrentValue(),z=this.getCaretOffsets(D);if(!z){let{previousRef:S,tokenIndex:X}=this.insertOrReplaceToken(G,!0);return{action:"insert",previousRef:S,tokenIndex:X}}let{valueOffset:B}=z,Q=I1(this.beans,D,B);if(Q){let{end:S,ref:X}=Q;if(X.endsWith(":")&&B===S){let{previousRef:q,tokenIndex:H}=this.insertOrReplaceToken(G,!0);return{action:"insert",previousRef:q,tokenIndex:H}}let{previousRef:Y,tokenIndex:W}=this.replaceTokenAtMatch(Q,G);return{action:"replace",previousRef:Y,tokenIndex:W}}let J=Zu(D,B);if(J){let S=D.slice(0,J.start)+G+D.slice(J.end),X=I1(this.beans,S,J.start)?.index??null,{previousRef:Y}=this.replaceTokenAtMatch(J,G,X);return{action:"replace",previousRef:Y,tokenIndex:X}}if(!$u(D,B))return{action:"none"};let{previousRef:U,tokenIndex:Z}=this.insertOrReplaceToken(G,!0);return{action:"insert",previousRef:U,tokenIndex:Z}}restoreCaretAfterToken(){let D=(this.lastTokenCaretOffset??ID(this.beans,this.getContentElement(),this.getCurrentValue())??this.currentValue.length)+(this.lastTokenValueLength??0);this.selectionCaretOffset=null,this.suppressNextFocusCaretPlacement=!0,setTimeout(()=>{if(!this.isAlive())return;if(this.getContentElement().focus({preventScroll:!0}),vJ(this.beans).activeElement===this.getContentElement())this.suppressNextFocusCaretPlacement=!1;s1(this.beans,this.getContentElement(),D)})}replaceTokenAtMatch(G,D,z){let B=this.getCurrentValue(),Q=B.slice(0,G.start)+D+B.slice(G.end);return this.applyFormulaValueChange({currentValue:B,nextValue:Q,caret:G.start+D.length,updateTracking:()=>{this.updateLastTokenTracking(D,G.start,G.start)}}),{previousRef:G.ref,tokenIndex:z??G.index}}getValueOffsetFromCaret(G){let D=this.getContentElement(),z=G,B=0;for(let Q of Array.from(D.childNodes)){let J=Uz(Q),U=sB(Q).length;if(z<=J)return B+(J===U?z:0);z-=J,B+=U}return this.currentValue.length}getTokenInsertOffsets(G){return this.getCaretOffsets(this.getCurrentValue(),{useCachedCaret:!0,useCachedValueOffset:!G})}getCaretOffsetsForAutocomplete(G){return this.getCaretOffsets(G)}getCaretOffsets(G,D={useCachedCaret:!1,useCachedValueOffset:!1}){let{beans:z}=this,{useCachedCaret:B,useCachedValueOffset:Q}=D,J=this.getContentElement(),U=B?this.selectionCaretOffset??ID(z,J,G)??this.currentValue.length:ID(z,J,G);if(U==null)return null;let Z=Q&&this.lastTokenValueOffset!=null?this.lastTokenValueOffset:this.getValueOffsetFromCaret(U);if(Z==null)return null;return{caretOffset:U,valueOffset:Z}}updateLastTokenTracking(G,D,z){let B=this.lastTokenRef;return this.lastTokenValueOffset=z,this.lastTokenValueLength=G.length,this.lastTokenCaretOffset=D,this.lastTokenRef=G,B}getFormulaState(G){let D=G.trimStart().startsWith("=");return{isFormula:this.beans.formula?.isFormula(G)??D,hasFormulaPrefix:D}}dispatchValueChanged(){this.dispatchLocalEvent({type:"fieldValueChanged"})}applyPlainValue(G,D){if(this.formulaColorByRef.clear(),this.renderPlainValue(G,D.caret),this.setEditorValue(G,D.silent),D.dispatch)this.dispatchValueChanged();this.autocompleteFeature?.onPlainValueUpdated()}applyFormulaValue(G,D){if(this.updateFormulaColorsFromValue(G),this.renderFormula({value:G,currentValue:D.currentValue??this.getCurrentValue(),caret:D.caret??void 0}),this.setEditorValue(G,D.silent),D.dispatch)this.dispatchValueChanged();this.autocompleteFeature?.onFormulaValueUpdated()}applyFormulaValueChange(G){let{currentValue:D,nextValue:z,caret:B}=G;this.updateFormulaColorsFromValue(z),G.updateTracking?.(),this.setEditorValue(z),this.renderFormula({currentValue:D,value:z,caret:B}),this.dispatchValueChanged(),this.autocompleteFeature?.onFormulaValueUpdated()}replaceTokenRef(G,D,z,B){let Q=this.getContentElement(),J;if(B!=null){if(J=Q.querySelector(`.ag-formula-token[data-formula-token-index="${B}"]`)??void 0,J&&W5(J)!==G)J=void 0}if(!J)J=Array.from(Q.querySelectorAll(".ag-formula-token")).find((W)=>W5(W)===G);if(!J)return null;let U=X5(Q,J),Z=X5(Q,J,!0);if(U==null||Z==null)return null;let S=this.getCurrentValue();if(z!=null)this.formulaColorByRef.set(D,z);let X=S.slice(0,Z)+D+S.slice(Z+G.length),Y=Yu(J);return this.applyFormulaValueChange({currentValue:S,nextValue:X,caret:U+D.length,updateTracking:()=>{this.updateLastTokenTracking(D,U,Z)}}),Y??B??null}},E1=(G)=>{let{gos:D,rangeSvc:z}=G;return!!z&&!!D.get("cellSelection")},Uu=(G,D)=>{let z=[],B=new Set;for(let Q of Yz(G,D)){let J=Q.ref;if(B.has(J))continue;B.add(J),z.push(J)}return z},I1=(G,D,z)=>{for(let B of Yz(G,D))if(z>=B.start&&z<=B.end)return{ref:B.ref,start:B.start,end:B.end,index:B.index};return null},Zu=(G,D)=>{for(let z of W8(G))if(D>=z.start&&D<=z.end)return{ref:z.ref,start:z.start,end:z.end,index:z.index};return null},$u=(G,D)=>{let z=H8(G,D);return z==null||q8.has(z)},Lu=(G,D,z)=>{let B=[],Q=0,J=Yz(G,D),U=vJ(G);for(let Z of J){if(Z.start>Q)B.push(U.createTextNode(q5(D.slice(Q,Z.start))));let S=z(Z.index);B.push(Su(Z.ref,S,S!=null,Z.index)),Q=Z.end}if(Q{let Q={"aria-label":G,"data-formula-ref":G,"data-formula-token-index":B.toString()},J;if(z&&D!=null){let Z=uJ(G,D);J=Z.tokenClass,Q["data-formula-range-class"]=Z.rangeClass}let U=yO({tag:"span",cls:"ag-formula-token",attrs:Q,children:G});if(J)U.classList.add(J);return U},Xu=(G)=>{let{beans:D,contentElement:z,currentValue:B,value:Q,getColorIndexForToken:J,caret:U}=G,Z=U??ID(D,z,B),S=Q.length;z.textContent="";for(let Y of Lu(D,Q,J))z.append(Y);let X=Z!=null?Math.min(Z,S):null;s1(D,z,X)},X5=(G,D,z=!1)=>{if(!G.contains(D))return null;let B=0;for(let Q of Array.from(G.childNodes)){if(Q===D)return B;B+=z?sB(Q).length:Uz(Q)}return null},Y5=(G)=>{let D="";return G.childNodes.forEach((z)=>{D+=sB(z)}),D},sB=(G)=>{if(G.nodeType===Node.TEXT_NODE)return w8(G.textContent??"");if(G.nodeType===Node.ELEMENT_NODE)return Array.from(G.childNodes).map((D)=>sB(D)).join("");return""},Uz=(G)=>{if(G.nodeType===Node.TEXT_NODE)return G.textContent?.length??0;if(G.nodeType===Node.ELEMENT_NODE)return Array.from(G.childNodes).reduce((D,z)=>D+Uz(z),0);return 0},k8=(G,D)=>{let z=D;for(let B=0;BJ){z-=J;continue}if(Q.nodeType===Node.TEXT_NODE)return{node:Q,localOffset:z};return k8(Q,z)}return{node:G,localOffset:G.childNodes.length}},s1=(G,D,z)=>{if(z==null)return;let B=X8(G),Q=vJ(G),J=B.getSelection(),U=Q.createRange(),{node:Z,localOffset:S}=k8(D,z);if(!Z||!J||!D.isConnected||!Z.isConnected)return;U.setStart(Z,S),U.collapse(!0),J.removeAllRanges();try{J.addRange(U)}catch{}},ID=(G,D,z)=>{let Q=X8(G).getSelection();if(!Q||Q.rangeCount===0)return z?.length??null;let J=Q.getRangeAt(0);if(!D.contains(J.startContainer))return z?.length??null;if(J.startContainer===D){let S=0;for(let X=0;Xw8(G.textContent??G.dataset.formulaRef??""),Yu=(G)=>{let D=G.dataset.formulaTokenIndex;if(!D)return null;let z=parseInt(D,10);return Number.isFinite(z)?z:null},q5=(G)=>G.replace(/[/*]/g,(D)=>Bu[D]??D),w8=(G)=>G.replace(/[÷×]/g,(D)=>Qu[D]??D),Wu={1:["invalidFormulaValidation","Invalid formula."],2:["formulaParseInvalidCellReference","Invalid cell reference: ${variable}."],3:["formulaParseInvalidRangeEndReference","Invalid range end reference."],4:["formulaParseUnterminatedString","Unterminated string."],5:["formulaParseUnexpectedCharacter","Unexpected character: ${variable}."],6:["formulaParseOperatorStackUnderflow","Operator stack underflow."],7:["formulaParseMissingOperand","Missing operand for '${variable}'."],8:["formulaParseInternalUnexpectedFrameDuringReduction","Internal error: unexpected frame during reduction."],9:["formulaParseInternalUnexpectedFrameBeforeOpenParen","Internal error: unexpected frame before '('."],10:["formulaParseMisplacedComma","Misplaced comma."],11:["formulaParseCommaOutsideFunctionCall","Comma outside of a function call."],12:["formulaParseInternalUnexpectedFrameBeforeCloseParen","Internal error: unexpected frame before ')'."],13:["formulaParseMismatchedParentheses","Mismatched parentheses."],14:["formulaParseUnsupportedOperand","Unsupported operand: ${variable}."],15:["formulaParseMismatchedParenthesesOrUnfinishedFunctionCall","Mismatched parentheses or unfinished function call."],16:["formulaParseInvalidExpression","Invalid expression."],17:["formulaParseFormulasMustBeginWithEquals","Formulas must begin with =."],18:["formulaSerializeStringContainsQuote",'String contains a quote (") which the tokenizer does not support.',"#PARSE!"],19:["formulaSerializeCannotProduceAbsoluteColumnLabelFromId","Cannot produce absolute COLUMN label from id '${variable}'."],20:["formulaSerializeCannotProduceAbsoluteRowIndexFromId","Cannot produce absolute ROW index from id '${variable}'."],21:["formulaSerializeCannotProduceRowIndexFromId","Cannot produce ROW index from id '${variable}'."],22:["formulaSerializeCannotMapColumnIdToA1Label","Cannot map column id '${variable}' to A1 label."],23:["formulaSerializeCannotParseAbsoluteRowIndex","Cannot parse absolute row index '${variable}'."],24:["formulaSerializeCannotMapRowIdToA1Index","Cannot map row id '${variable}' to A1 index."],25:["formulaEvalRangeNotAllowedInScalarContext","Range is not allowed in scalar context."],26:["formulaEvalUnknownReferenceToCell","Unknown reference to cell.","#REF!"],27:["formulaEvalUnsupportedOperation","Unsupported operation ${variable}.","#NAME?"],28:["formulaEvalInvalidAbsoluteRow","Invalid absolute row.","#REF!"],29:["formulaEvalUnrecognisedRowId","Unrecognised row id.","#REF!"],30:["formulaEvalInvalidAbsoluteColumn","Invalid absolute column.","#REF!"],31:["formulaEvalUnrecognisedColumnId","Unrecognised column id.","#REF!"],32:["formulaEvalUnrecognisedRowInRange","Unrecognised row in range.","#REF!"],33:["formulaEvalUnrecognisedReferenceToCell","Unrecognised reference to cell.","#REF!"],34:["formulaEvalIncompleteRangeReference","Incomplete range reference.","#REF!"],35:["formulaFunctionExpectedExactlyArguments","${variable}: expected exactly ${variable} arguments."],36:["formulaFunctionExpectedAtMostArguments","${variable}: expected at most ${variable} arguments."],37:["formulaFunctionExpectedAtLeastArguments","${variable}: expected at least ${variable} arguments."],38:["formulaFunctionInvalidCriteriaWildcardsWithComparator","Invalid criteria: wildcards with comparator.","#VALUE!"],39:["formulaFunctionNonNumericArgument","${variable}: non-numeric argument.","#VALUE!"],40:["formulaFunctionDivisionByZero","${variable}: division by zero.","#DIV/0!"],41:["formulaFunctionCannotCombineDatesWithBigInt","${variable}: cannot combine dates with BigInt.","#VALUE!"],42:["formulaFunctionRequiresAtLeastOneNumericValue","${variable}: requires at least one numeric value.","#PARSE!"],43:["formulaFunctionRequiresAtLeastOneValue","${variable}: requires at least one value."],44:["formulaFunctionAllValuesMustBeNumbers","${variable}: all values must be numbers.","#VALUE!"],45:["formulaFunctionArgumentMustBeRange","${variable}: ${variable} argument must be a range.","#VALUE!"],46:["formulaFunctionArgumentMustBeValue","${variable}: ${variable} argument must be a value.","#VALUE!"],47:["formulaFunctionRangesHaveDifferentSizes","${variable}: ranges have different sizes.","#VALUE!"],48:["formulaFunctionValuesMustBeNumeric","${variable}: values must be numeric.","#VALUE!"],49:["formulaFunctionValuesMustBeIntegers","${variable}: values must be integers.","#VALUE!"],50:["formulaFunctionUnsupportedValueType","${variable}: unsupported value type.","#VALUE!"],51:["formulaServiceCircularReference","Circular reference.","#CIRCREF!"],52:["formulaServiceExpectedParsableFormula","Expected parsable formula.","#PARSE!"],53:["formulaServiceInternalSchedulingError","Internal scheduling error."],54:["formulaFunctionDivNonNumericArgument","DIV: non-numeric argument.","#VALUE!"],55:["formulaFunctionDivDivisionByZero","DIV: division by zero.","#DIV/0!"],56:["formulaFunctionSumCannotCombineDatesWithBigInt","SUM: cannot combine dates with BigInt.","#VALUE!"],57:["formulaFunctionSumRequiresAtLeastOneNumericValue","SUM: requires at least one numeric value.","#PARSE!"],58:["formulaFunctionAvgRequiresAtLeastOneValue","AVG: requires at least one value."],59:["formulaFunctionMedianAllValuesMustBeNumbers","MEDIAN: all values must be numbers.","#VALUE!"],60:["formulaFunctionMedianRequiresAtLeastOneValue","MEDIAN: requires at least one value."],61:["formulaFunctionSumifFirstArgumentMustBeRange","SUMIF: first argument must be a range.","#VALUE!"],62:["formulaFunctionSumifSecondArgumentMustBeValue","SUMIF: second argument must be a value (criteria).","#VALUE!"],63:["formulaFunctionSumifThirdArgumentMustBeRange","SUMIF: third argument must be a range (sum_range).","#VALUE!"],64:["formulaFunctionSumifRangesHaveDifferentSizes","SUMIF: ranges have different sizes.","#VALUE!"],65:["formulaFunctionCountifFirstArgumentMustBeRange","COUNTIF: first argument must be a range.","#VALUE!"],66:["formulaFunctionCountifSecondArgumentMustBeValue","COUNTIF: second argument must be a value (criteria).","#VALUE!"],67:["formulaFunctionConcatUnsupportedValueType","CONCAT: unsupported value type.","#VALUE!"],68:["formulaFunctionMinRequiresAtLeastOneValue","MIN: requires at least one value."],69:["formulaFunctionMaxRequiresAtLeastOneValue","MAX: requires at least one value."],70:["formulaFunctionPercentNonNumericArgument","PERCENT: non-numeric argument.","#VALUE!"],71:["formulaFunctionPowerNonNumericArgument","POWER: non-numeric argument.","#VALUE!"]},qu=(G,D)=>{if(!D?.length)return G;let z=G,B=0;while(B{if(!G?.length)return;return G.map((D)=>String(D))},jJ=(G)=>{return Wu[G]},Hu=(G,D)=>{let[,z]=jJ(G);return qu(z,K8(D))},_u=(G,D,z)=>{let[B,Q]=jJ(D),J=K8(z);return G(B,Q,J)},ku=class extends uO{constructor(){super({tag:"div",cls:"ag-cell-edit-wrapper"});this.eEditor=jO,this.focusAfterAttached=!1}initialiseEditor(G){let D=this.createManagedBean(new Ju);this.eEditor=D,D.addCss("ag-cell-editor"),this.appendChild(D),this.addManagedElementListeners(D.getContentElement(),{keydown:(U)=>this.onFormulaInputKeyDown(U,G.onKeyDown)});let{eventKey:z,cellStartedEdit:B}=G,Q;if(B)if(this.focusAfterAttached=!0,z===K1.BACKSPACE||z===K1.DELETE)Q="";else if(z&&z.length===1)Q=z;else Q=this.getStartValue(G);else Q=this.getStartValue(G);let J=Q==null?"":String(Q);this.eEditor.setEditingCellRef(G.column,G.rowIndex),this.eEditor.setValue(J,!0)}onFormulaInputKeyDown(G,D){let{key:z}=G;if(z!==K1.TAB||G.defaultPrevented)return;let{focusSvc:B}=this.beans,Q=B?.getFocusedCell();this.eEditor.withSelectionChangeHandlingSuppressed(()=>{D?.(G)});let J=B?.getFocusedCell(),U=!1;if(Q&&J){let{rowIndex:S,rowPinned:X,column:Y}=Q,{rowIndex:W,rowPinned:q,column:H}=J;U=S!==W||X!==q||Y!==H}let{defaultPrevented:Z}=G;if(Z||U)G.preventDefault();G.stopPropagation()}getStartValue(G){let{value:D}=G;return D?.toString()??D}agSetEditValue(G){this.params.value=G;let D=this.getStartValue(this.params);this.eEditor.setValue(D??"",!0)}isPopup(){return!1}afterGuiAttached(){if(!this.focusAfterAttached)return;let{beans:G,eEditor:D}=this;if(!PO())this.focusIn();gO(G,D.getContentElement())}focusIn(){this.eEditor.getContentElement().focus({preventScroll:!0})}getValue(){let G=this.eEditor.getCurrentValue(),{value:D,parseValue:z}=this.params;if(typeof G==="string"&&this.isFormulaText(G))return G;if(G==null&&D==null)return D;return z(String(G))}getValidationElement(){return this.eEditor.getContentElement()}getValidationErrors(){let{params:G}=this,D=this.eEditor.getCurrentValue(),z=this.getLocaleTextFunc(),{getValidationErrors:B,validateFormulas:Q}=G,J=null;if((Q===!0||!!B)&&typeof D==="string"&&this.isFormulaText(D)){if(!this.beans.formula?.normaliseFormula(D,!0))J=[_u(z,1)]}if(B)return B({value:this.getValue(),internalErrors:J,cellEditorParams:G});return J}isFormulaText(G){let D=G==null?"":String(G);return this.beans.formula?.isFormula(D)??D.trimStart().startsWith("=")}},wu='.formula-error:after{background-color:var(--ag-invalid-color);content:"";height:12px;position:absolute;top:-6px;width:12px}:where(.ag-ltr) .formula-error:after{right:-6px;transform:rotate(45deg)}:where(.ag-rtl) .formula-error:after{left:-6px;transform:rotate(-45deg)}',Fu=class extends Ku{constructor(){super(...arguments);this.beanName="formulaDataSvc",this.hasSource=!1}postConstruct(){let G=this.gos.get("formulaDataSource");if(G)this.setDataSource(G)}hasDataSource(){return this.hasSource}getFormula(G){let D=this.dataSource?.getFormula(G);return Nu(D)?D:void 0}setFormula(G){this.dataSource?.setFormula(G)}setDataSource(G){this.dataSource=G,this.hasSource=!0,G.init?.(this.createInitParams())}createInitParams(){return fu(this.gos,{})}destroy(){this.dataSource?.destroy?.(),super.destroy()}},Iu=class extends Eu{constructor(){super(...arguments);this.beanName="formulaInputManager",this.activeEditor=null,this.activeEditorDeactivate=null}postConstruct(){this.registerRangeSelectionExtension()}registerActiveEditor(G,D){if(this.activeEditor===G&&this.activeEditorDeactivate===D)return!1;let z=this.activeEditorDeactivate;if(z&&z!==D)z();return this.activeEditor=G,this.activeEditorDeactivate=D,!0}unregisterActiveEditor(G,D){if(this.activeEditor===G&&this.activeEditorDeactivate===D)this.activeEditor=null,this.activeEditorDeactivate=null}isActiveEditor(G){return this.activeEditor===G}shouldSuppressRangeSelection(G){let D=G;if(!D?.closest)return!1;if(this.activeEditor!=null)return!!D.closest(".ag-cell-editor");return!!D.closest(".ag-formula-input-field")}registerRangeSelectionExtension(){let G=this.beans.rangeSvc;if(!G)return;G.registerRangeSelectionExtension(this),this.addDestroyFunc(()=>G.unregisterRangeSelectionExtension?.(this))}},f8=[{symbol:"%",fixity:"postfix",precedence:100},{symbol:"-",fixity:"prefix",precedence:90},{symbol:"+",fixity:"prefix",precedence:90},{symbol:"^",fixity:"infix",precedence:80,associativity:"right"},{symbol:"*",fixity:"infix",precedence:70,associativity:"left",isAssociative:!0},{symbol:"/",fixity:"infix",precedence:70,associativity:"left"},{symbol:"+",fixity:"infix",precedence:60,associativity:"left",isAssociative:!0},{symbol:"-",fixity:"infix",precedence:60,associativity:"left"},{symbol:"&",fixity:"infix",precedence:55,associativity:"left",isAssociative:!0},{symbol:"=",fixity:"infix",precedence:50,associativity:"left"},{symbol:"<>",fixity:"infix",precedence:50,associativity:"left"},{symbol:">=",fixity:"infix",precedence:50,associativity:"left"},{symbol:"<=",fixity:"infix",precedence:50,associativity:"left"},{symbol:">",fixity:"infix",precedence:50,associativity:"left"},{symbol:"<",fixity:"infix",precedence:50,associativity:"left"}],AB=new Map;for(let G of f8){let D=AB.get(G.symbol)??[];D.push(G),AB.set(G.symbol,D)}function Bz(G,D){let z=AB.get(G)??[];return D?z.find((B)=>B.fixity===D):z[0]}var bu=[...new Set(f8.map((G)=>G.symbol))].sort((G,D)=>D.length-G.length),o1=AB,vu=(G)=>{if(!G?.length)return;return G.map((D)=>String(D))},T=class extends Error{constructor(G,D,z){let B=typeof G==="string",Q=!B&&Array.isArray(D)?vu(D):void 0,J=B?G:Hu(G,Q);super(J);if(this.name="FormulaError",B)this.type=typeof D==="string"?D:"#ERROR!",this.errorId=null,this.localeKey=null,this.defaultMessage=G,this.variableValues=void 0;else{let[U,Z,S]=jJ(G);this.type=z??S??"#ERROR!",this.errorId=G,this.localeKey=U,this.defaultMessage=Z,this.variableValues=Q}}getTranslatedMessage(G){if(!this.localeKey)return this.message;return G(this.localeKey,this.defaultMessage,this.variableValues)}},JG=class extends T{constructor(G,D,z,B){super(G,B,"#PARSE!");this.errorStart=D,this.errorEnd=z}},Ou=(G,D,z)=>{let B=D.trim();if(B.startsWith('"')&&B.endsWith('"')&&B.length>2)return B.slice(1,-1);if(B.toLowerCase()==="true")return!0;if(B.toLowerCase()==="false")return!1;let Q=Number(B);if(!isNaN(Q))return Q;let J=OJ(B);if(J){let{startCol:U,startRow:Z,startColAbsolute:S,startRowAbsolute:X,endCol:Y,endRow:W,endColAbsolute:q,endRowAbsolute:H}=J,_=(w,K,f,N,F)=>{let E=w||F?K.toUpperCase():G.formula?.getColByRef(K)?.colId,I=f||F?N:Cu(G)?.getFormulaRow(Number(N)-1)?.id;if(E==null||I==null)throw new JG(2,0,0,[B]);return{column:{id:E,absolute:w},row:{id:I,absolute:f}}},k=_(S,U,X,Z,z);if(Y&&W){let w=_(q??!1,Y,H??!1,W,z);k.endColumn=w.column,k.endRow=w.row}return k}return null};function uu(G){let D=[],z=0,B=(Q,J)=>{let U=J,Z=()=>Q[U]==="$"?(U++,!0):!1,S=()=>{let q=U;while(Uq},X=()=>{let q=U;while(Uq},Y=()=>{let q=U;if(Z(),!S())return U=q,!1;if(Z(),!X())return U=q,!1;return!0};if(!Y())return 0;if(Q[U]===":"){let q=U;if(U++,!Y())throw new JG(3,q,U)}let W=Q.slice(J,U);if(!Y8(Q,J,W))return 0;return U-J};while(z=G.length)throw new JG(4,z,G.length);D.push(G.slice(z,U+1)),z=U+1;continue}if(/[0-9]/.test(Q)||Q==="."&&/[0-9]/.test(G[z+1])){let U=z+1;while(U0){D.push(G.slice(z,z+U)),z+=U;continue}let Z=z+1;while(ZG.startsWith(U,z));if(!J)throw new JG(5,z,z+1,[Q]);D.push(J),z+=J.length}return D}function ju(G,D){if(G.fixity!=="infix"||D.fixity!=="infix")return!0;if(G.associativity==="right"&&G.precedence===D.precedence)return!1;return G.precedence>=D.precedence}function Pu(G,D){let z=o1.get(G);if(!z)return null;let B=D!==void 0&&o1.has(D);if(D!==void 0&&!B&&!(D==="("||D===",")&&D!=="("||D===")")return z.find((U)=>U.fixity==="postfix")??z.find((U)=>U.fixity==="infix")??null;return z.find((U)=>U.fixity==="prefix")??z.find((U)=>U.fixity==="infix")??null}function gu(G,D,z){let B=uu(D),Q=[],J=[],U=()=>{let S=J.pop();if(!S)throw new JG(6,0,0);if(S.kind==="op"){let X=S.def;if(X.fixity!=="infix"){let q=Q.pop();if(!q)throw new JG(7,0,0,[X.symbol]);if(X.symbol==="+"&&X.fixity==="prefix"){Q.push(q);return}if(X.fixity==="postfix"&&X.symbol==="%"){Q.push({type:"operation",operation:X.symbol,operands:[q]});return}if(X.symbol==="-"&&X.fixity==="prefix")Q.push({type:"operation",operation:"-",operands:[{type:"operand",value:0},q]});else Q.push({type:"operation",operation:X.symbol,operands:[q]});return}let Y=Q.pop(),W=Q.pop();if(!W||!Y)throw new JG(7,0,0,[X.symbol]);Q.push({type:"operation",operation:X.symbol,operands:[W,Y]});return}throw new JG(8,0,0)},Z=0;while(ZW.outLen)q.args.push(Q.pop());Z++;continue}if(S===")"){while(!0){let H=J[J.length-1];if(!H||H.kind==="parenthesis")break;if(H.kind==="op")U();else throw new JG(12,Z,Z+1)}let W=J[J.length-1];if(!W||W.kind!=="parenthesis")throw new JG(13,Z,Z+1);let q=W.outLen;if(J.pop(),J[J.length-1]?.kind==="function"){let H=J.pop();if(Q.length>q)H.args.push(Q.pop());Q.push({type:"operation",operation:H.name,operands:H.args})}Z++;continue}let X=o1.has(S)?Pu(S,B[Z-1]):null;if(X){while(!0){let W=J[J.length-1];if(!W||W.kind!=="op")break;if(ju(W.def,X))U();else break}J.push({kind:"op",def:X}),Z++;continue}let Y=Ou(G,S,z);if(Y==null)throw new JG(14,0,S.length,[S]);Q.push({type:"operand",value:Y}),Z++}while(J.length)if(J[J.length-1].kind==="op")U();else throw new JG(15,0,0);if(Q.length!==1)throw new JG(16,0,0);return Q[0]}var r1=(G,D,z=!1)=>{if(!Vu(D))throw new JG(17,0,1);let B=D.slice(1).trim();return E8(gu(G,B,z))};function PJ(G,D){return G.type==="operation"&&G.operation.toUpperCase()===D.toUpperCase()}function N8(G,D=!1){if(!G)return D;if(G.type!=="operand")return D;return!!G.value}function F8(G){if(!G||G.type!=="operand")return null;let D=G.value;if(typeof D==="string")return D;if(typeof D==="number"||typeof D==="boolean")return String(D);return null}function H5(G){if(!PJ(G,"COLUMN"))return null;let D=F8(G.operands[0]);if(D==null)return null;let z=N8(G.operands[1],!1);return{id:D,absolute:z}}function _5(G){if(!PJ(G,"ROW"))return null;let D=F8(G.operands[0]);if(D==null)return null;let z=N8(G.operands[1],!1);return{id:D,absolute:z}}function Tu(G){if(!PJ(G,"REF"))return null;let D=G.operands;if(D.length!==2&&D.length!==4)return null;let z=H5(D[0]),B=_5(D[1]);if(!z||!B)return null;let Q={column:z,row:B};if(D.length===4){let J=H5(D[2]),U=_5(D[3]);if(!J||!U)return null;Q.endColumn=J,Q.endRow=U}return{type:"operand",value:Q}}function E8(G){if(G.type==="operation"){let D=G.operands.map(E8),z={type:"operation",operation:G.operation,operands:D};return Tu(z)??z}return G}var oB=(G)=>G.type==="operation";function I8(G,D){let z=G.colModel.getColById(D);if(z)return G.formula?.getColRef(z)??null;return null}function xu(G,D){return G.formula?.getColByRef?.(D)?.colId??null}function cu(G,D,z){let B=G.getColById(z);if(!B)return null;let Q=D.indexOf(B);return Q>=0?Q:null}function hu(G,D){let z=G[D];return z?z.getId()??null:null}function gJ(G,D){let z=G.rowModel?.getRowNode?.(D);if(z?.formulaRowIndex!=null)return z.formulaRowIndex+1;return null}function M8(G,D){return yu(G)?.getFormulaRow?.(D-1)?.id??null}function a1(G){if(G.includes('"'))throw new T(18);return`"${G}"`}function iu(G,D){let z=/^[A-Za-z]+$/.test(D.id);if(D.absolute){if(z)return D.id.toUpperCase();let B=I8(G,D.id);if(B)return B.toUpperCase();throw new T(19,[D.id])}else{if(z){let B=xu(G,D.id);if(B)return B}return D.id}}function nu(G,D){let{id:z,absolute:B}=D;if(B){if(M8(G,Number(z))==null)throw new T(20,[z])}else if(gJ(G,z)==null)throw new T(21,[z]);return z}function k5(G,D){if(D.absolute)return D.id;let z=I8(G,D.id);if(z)return z.toUpperCase();throw new T(22,[D.id])}function w5(G,D){if(D.absolute){let B=Number(D.id);if(Number.isFinite(B)&&B>=1)return B;throw new T(23,[D.id])}let z=gJ(G,D.id);if(z!=null)return z;throw new T(24,[D.id])}function du(G,D,z){let B=(Z,S)=>(Z?"$":"")+String(S),Q=z?D.column.id:k5(G,D.column),J=z?D.row.id:w5(G,D.row),U=B(D.column.absolute,Q)+B(D.row.absolute,J);if(D.endColumn&&D.endRow){let Z=z?D.endColumn.id:k5(G,D.endColumn),S=z?D.endRow.id:w5(G,D.endRow);return`${U}:${B(D.endColumn.absolute,Z)}${B(D.endRow.absolute,S)}`}return U}function lu(G,D){let z=(J)=>`COLUMN(${a1(iu(G,J))}${J.absolute?",true":""})`,B=(J)=>`ROW(${a1(nu(G,J))}${J.absolute?",true":""})`,Q=`REF(${z(D.column)},${B(D.row)}`;if(D.endColumn&&D.endRow)return`${Q},${z(D.endColumn)},${B(D.endRow)})`;return`${Q})`}function A8(G){if(!oB(G)||G.operation!=="-"||G.operands.length!==2)return null;let[D,z]=G.operands;if(D.type==="operand"&&D.value===0)return z;return null}function pu(G){if(!oB(G))return!1;return!!Bz(G.operation,"infix")}function K5(G,D,z){if(!oB(D))return!1;if(A8(D))return!1;let B=Bz(D.operation,"infix");if(!B||B.fixity!=="infix")return!1;let Q=G.precedence,J=B.precedence;if(JQ)return!1;if(G.associativity==="right"){let Z=B.symbol===G.symbol;return z==="left"&&Z}if(G.isAssociative!==!0)return z==="right";return!1}function mu(G){if(!oB(G))return!1;let D=Bz(G.operation,"infix");if(!D)return!1;return D.symbol!=="^"}function f5(G,D,z,B){let Q=(U)=>z?lu(G,U):du(G,U,B);function J(U){if(U.type==="operand"){let X=U.value;if(typeof X==="string")return a1(X);if(typeof X==="number")return String(X);if(typeof X==="boolean")return X?"TRUE":"FALSE";return Q(X)}let Z=A8(U);if(Z){let X=J(Z);return mu(Z)?`-(${X})`:`-${X}`}let S=U.operation.toUpperCase();if(U.operands.length===1){let X=U.operands[0],Y=Bz(S,"postfix");if(Y)return`${J(X)}${Y.symbol}`;let W=Bz(S,"prefix");if(W){let q=J(X);return pu(X)?`${W.symbol}(${q})`:`${W.symbol}${q}`}return`${S}(${J(X)})`}if(U.operands.length===2){let X=Bz(S,"infix");if(X){let[Y,W]=U.operands,q=K5(X,Y,"left")?`(${J(Y)})`:J(Y),H=K5(X,W,"right")?`(${J(W)})`:J(W);return`${q}${X.symbol}${H}`}}return`${S}(${U.operands.map(J).join(",")})`}return"="+J(D)}function R8(G){return!!(G.endColumn&&G.endRow)}function yJ(G,D){let{row:z,column:B}=D,Q=z.absolute?TJ(G)?.getFormulaRow(Number(z.id)-1):G.rowModel.getRowNode(z.id),J=B.absolute?G.formula.getColByRef(B.id):G.colModel.getColById(B.id);if(!Q||!J)return null;return{row:Q,column:J}}function C8(G,D,z,B){if(D.type==="operand"){let Z=D.value;if(typeof Z!=="object")return Z;if(R8(Z))throw new T(25);let S=yJ(G,Z);if(!S)throw new T(26);return z(S)}let Q=G.formula?.getFunction(D.operation);if(!Q)throw new T(27,[D.operation]);let{args:J,values:U}=ou(G,D.operands,z,B);return Q({row:B.row,column:B.column,args:J,values:U})}function V8(G,D,z,B){if(D.type==="operand"){let J=D.value;if(typeof J!=="object")return{kind:"value",value:J};if(R8(J))return au(G,J,z);let U=yJ(G,J);if(!U)throw new T(26);return{kind:"value",value:z(U)}}return{kind:"value",value:C8(G,D,z,B)}}var tu=class{constructor(G,D,z,B){this.beans=G,this.operandNodes=D,this.getCellValue=z,this.caller=B,this.i=0,this.res={done:!1,value:void 0}}next(){if(this.i>=this.operandNodes.length)return this.res.done=!0,this.res.value=void 0,this.res;return this.res.done=!1,this.res.value=V8(this.beans,this.operandNodes[this.i++],this.getCellValue,this.caller),this.res}[Symbol.iterator](){return this}},su=class{constructor(G,D,z,B){this.beans=G,this.operandNodes=D,this.getCellValue=z,this.caller=B,this.i=0,this.inner=null,this.res={done:!1,value:void 0}}next(){while(!0){if(this.inner){let D=this.inner.next();if(!D.done)return this.res.done=!1,this.res.value=D.value,this.res;this.inner=null;continue}if(this.i>=this.operandNodes.length)return this.res.done=!0,this.res.value=void 0,this.res;let G=V8(this.beans,this.operandNodes[this.i++],this.getCellValue,this.caller);if(G.kind==="value")return this.res.done=!1,this.res.value=G.value,this.res;this.inner=G[Symbol.iterator]()}}[Symbol.iterator](){return this}};function ou(G,D,z,B){let Q={[Symbol.iterator](){return new tu(G,D,z,B)}},J={[Symbol.iterator](){return new su(G,D,z,B)}};return{args:Q,values:J}}function RB(G,D){if(D.absolute){let B=Number(D.id)-1;if(!Number.isFinite(B)||B<0)throw new T(28);return B}let z=G.rowModel?.getRowNode?.(D.id);if(z?.formulaRowIndex==null)throw new T(29);return z.formulaRowIndex}function CB(G,D){if(D.absolute){let B=G.formula?.getColByRef(D.id);if(!B)throw new T(30);return B}let z=G.colModel.getColById(D.id);if(!z)throw new T(31);return z}var ru=class{constructor(G,D,z,B,Q,J){this.beans=G,this.rowStartIndex=D,this.rowEndIndex=z,this.colStart=B,this.colEnd=Q,this.getCellValue=J,this.cols=null,this.currentRowIndex=this.rowStartIndex,this.currentColIdx=-1,this.colStartIdx=-1,this.colEndIdx=-1,this.res={done:!1,value:void 0}}initColsOnce(){if(this.cols)return;this.cols=this.beans.colModel.getCols()??[];let G=b8(this.beans,this.colStart,this.colEnd);if(!G){this.colStartIdx=-1,this.colEndIdx=-1;return}[this.colStartIdx,this.colEndIdx]=G,this.currentColIdx=this.colStartIdx}next(){if(!this.cols){if(this.initColsOnce(),this.colStartIdx<0)return this.res.done=!0,this.res}if(this.currentRowIndex<=this.rowEndIndex){let G=TJ(this.beans)?.getFormulaRow(this.currentRowIndex);if(!G)throw new T(32);let D=this.cols[this.currentColIdx];if(this.currentColIdxB)throw new T(36,[D,B]);if(Q.length{return G.kind==="range"},v8=(G)=>{return G.kind==="value"},zj=["<=",">=","<>","<",">","="];function Bj(G){for(let D of zj)if(G.startsWith(D))return D;return null}function GJ(G){if(typeof G==="number"&&Number.isFinite(G))return G;if(G instanceof Date)return+G;if(typeof G==="string"){let D=Number(G);if(!Number.isNaN(D))return D}return null}function O8(G){if(G==null)return"";switch(typeof G){case"string":return G;case"number":return String(G);case"boolean":return G?"TRUE":"FALSE"}if(G instanceof Date)return String(+G);return String(G)}function Qj(G){let D="^";for(let z=0;z{let B=GJ(D),Q=GJ(z);if(B==null||Q==null)B=D,Q=O8(z).toUpperCase();switch(G){case"<":return Q":return Q>B;case"<=":return Q<=B;case">=":return Q>=B;case"=":return Q===B;case"<>":return Q!==B}return!1},Uj=(G,D,z)=>{let B=O8(z),Q=D.test(B);return G==="="?Q:!Q},Zj=(G)=>G==null||G==="";function u8(G){if(typeof G==="number")return(U)=>GJ(U)===G;if(typeof G!=="string")return(U)=>G===U;let D=G.trim();if(D==="")return Zj;let z=Bj(D),B=z?D.substring(z.length):D;if(!/[*?]/.test(B))return Jj.bind(null,z??"=",B.toUpperCase());if(z&&z!=="="&&z!=="<>")throw new T(38);let J=Qj(B);return Uj.bind(null,z??"=",J)}var N5=(G,D,z)=>{if(!z||D===0||z.absolute)return;let{visibleCols:B,colModel:Q}=G,J=B.allCols,U=cu(Q,J,z.id);if(U==null)return;let Z=U+D;if(Z<0)return;let S=hu(J,Z);if(S)z.id=S},F5=(G,D,z,B)=>{if(!z||D===0||z.absolute)return;if(B){let Z=Number(z.id);if(!Number.isFinite(Z))return;z.id=String(Z+D);return}let Q=gJ(G,z.id);if(Q==null)return;let J=Q+D;if(J<1)return;let U=M8(G,J);if(U)z.id=U},$j=(G)=>{return!!G&&typeof G==="object"&&G!==null&&"row"in G&&"column"in G},j8=(G,D,z,B,Q)=>{if(D.type==="operand"){let{value:J}=D;if(!$j(J))return;let{row:U,column:Z,endRow:S,endColumn:X}=J;F5(G,z,U,Q),N5(G,B,Z),F5(G,z,S,Q),N5(G,B,X);return}if(D.type==="operation")for(let J of D.operands)j8(G,J,z,B,Q)},Lj=({values:G})=>{let D=0;for(let z of G)if(z!=null&&z!==""&&!isNaN(z))D++;return D},Sj=({values:G})=>{let D=0;for(let z of G)if(z!=null&&z!=="")D++;return D},Xj=({values:G})=>{let D=0;for(let z of G)if(z==null||z==="")D++;return D},Yj=({args:G})=>{let[D,z]=IG(G,"COUNTIF",2);if(!e1(D))throw new T(65);if(!v8(z))throw new T(66);let B=u8(z.value),Q=0;for(let J of D)if(B(J))Q++;return Q},Wj=()=>new Date,qj=()=>{let G=new Date;return new Date(G.getFullYear(),G.getMonth(),G.getDate())},Hj=({values:G})=>{let[D,z]=IG(G,"EQUALS",2);return D===z},_j=({values:G})=>{let[D,z]=IG(G,"NOT_EQUALS",2);return D!==z},kj=({values:G})=>{let[D,z]=IG(G,"GT",2);return D>z},wj=({values:G})=>{let[D,z]=IG(G,"GTE",2);return D>=z},Kj=({values:G})=>{let[D,z]=IG(G,"LT",2);return D{let[D,z]=IG(G,"LTE",2);return D<=z},Nj=({values:G})=>{let[D,z,B]=IG(G,"IF",3);return D?z:B},Fj=({values:G})=>{let D=null;for(let z of G){if(z==null)continue;if(D===null||z{let D=null;for(let z of G){if(z==null)continue;if(D===null||z>D)D=z}if(D===null)throw new T(69);return D},Ij=(G)=>typeof G==="number"&&Number.isFinite(G),P8=86400000;function Mj(G){return G.getTime()/P8}function rB(G){return new Date(G*P8)}function Zz(G){return G instanceof Date}function PG(G,D){if(typeof D==="bigint"){let z=Number(D);if(Number.isFinite(z))return z;throw new T(48,[G])}if(Ij(D))return D;if(Zz(D))return Mj(D);if(typeof D==="boolean")return D?1:0;if(typeof D==="string"){let z=Number(D.trim());if(Number.isFinite(z))return z}throw new T(48,[G])}function $z(G,D){if(typeof D==="bigint")return D;return PG(G,D)}function OG(G,D){if(typeof D==="bigint")return D;if(!Number.isFinite(D)||!Number.isInteger(D))throw new T(49,[G]);return BigInt(D)}var E5=({values:G})=>{let D=1,z=null;for(let B of Wz(G)){let Q=$z("PRODUCT",B);if(typeof Q==="bigint"){if(z??(z=OG("PRODUCT",D)),Q===0n)return 0n;z*=Q;continue}if(z!=null){z*=OG("PRODUCT",Q);continue}if(Q===0)return 0;D*=Q}return z??D},Aj=({values:G})=>{let[D,z]=IG(Wz(G),"DIVIDE",2),B=PG("DIV",D),Q=PG("DIV",z);if(B==null||Q==null)throw new T(54);if(Q===0)throw new T(55);return B/Q},M1=({values:G})=>{let D=!1,z=0,B=null,Q=!1;for(let J of Wz(G)){D||(D=Zz(J));let U=$z("SUM",J);if(typeof U==="bigint"){if(D)throw new T(56);B??(B=OG("SUM",z)),B+=U,Q=!0;continue}if(typeof B==="bigint"){if(D)throw new T(56);B+=OG("SUM",U),Q=!0;continue}z+=U,Q=!0}if(!Q)throw new T(57);if(typeof B==="bigint")return B;return D?rB(z):z},Rj=({values:G})=>{let[D,z]=IG(Wz(G),"MINUS",2),B=Zz(D),Q=Zz(z);if(B||Q){let Z=PG("MINUS",D),S=PG("MINUS",z);if(B&&!Q)return rB(Z-S);if(B&&Q)return Z-S;return Z-S}let J=$z("MINUS",D),U=$z("MINUS",z);if(typeof J==="bigint"||typeof U==="bigint")return OG("MINUS",J)-OG("MINUS",U);return J-U},Cj=({values:G})=>{let[D]=IG(G,"PERCENT",1),z=PG("PERCENT",D);if(z==null)throw new T(70);return z/100},I5=({values:G})=>{let[D,z]=IG(G,"POWER",2),B=PG("POWER",D),Q=PG("POWER",z);if(B==null||Q==null)throw new T(71);return Math.pow(B,Q)},Vj=({values:G})=>{let D=0,z=0,B=!0;for(let J of Wz(G)){let U=PG("AVG",J);if(U==null)continue;D+=U,z++,B&&(B=Zz(J))}if(z===0)throw new T(58);let Q=D/z;return B?rB(Q):Q},bj=({values:G})=>{let D=!0,z=[];for(let J of Wz(G)){let U=PG("MEDIAN",J);if(U==null)throw new T(59);z.push(U),D&&(D=Zz(J))}if(z.length===0)throw new T(60);z.sort((J,U)=>J-U);let B=Math.floor(z.length/2),Q=z.length%2===1?z[B]:(z[B-1]+z[B])/2;return D?rB(Q):Q},vj=()=>Math.random(),Oj=({args:G})=>{let[D,z,B]=Dj(G,"SUMIF",2,3);if(!e1(D))throw new T(61);if(!v8(z))throw new T(62);if(B&&!e1(B))throw new T(63);let Q=u8(z.value);if(!B){let W=0,q=null;for(let H of D)if(Q(H)){let _=$z("SUMIF",H);if(typeof _==="bigint")q??(q=OG("SUMIF",W)),q+=_;else if(q!=null)q+=OG("SUMIF",_);else W+=_}return q??W}let J=D.rowEnd-D.rowStart,U=B.rowEnd-B.rowStart;if(J!==U)throw new T(64);let Z=D[Symbol.iterator](),S=B[Symbol.iterator](),X=0,Y=null;while(!0){let W=Z.next(),q=S.next();if(W.done||q.done){if(W.done!==q.done)throw new T(64);break}if(Q(W.value)){let H=$z("SUMIF",q.value);if(typeof H==="bigint")Y??(Y=OG("SUMIF",X)),Y+=H;else if(Y!=null)Y+=OG("SUMIF",H);else X+=H}}return Y??X},A1=({values:G})=>{let D="";for(let z of G){if(z==null)continue;switch(typeof z){case"string":{D+=z;break}case"number":{D+=String(z);break}case"boolean":{D+=z?"TRUE":"FALSE";break}case"object":{D+=z.toString();break}default:throw new T(67)}}return D},M5={IF:Nj,NOW:Wj,TODAY:qj,PRODUCT:E5,SUM:M1,ADD:M1,SUMIF:Oj,POWER:I5,MIN:Fj,MAX:Ej,AVERAGE:Vj,MEDIAN:bj,COUNT:Lj,COUNTA:Sj,COUNTBLANK:Xj,COUNTIF:Yj,RAND:vj,CONCAT:A1,CONCATENATE:A1,"+":M1,"-":Rj,"*":E5,"/":Aj,"^":I5,"%":Cj,"=":Hj,"&":A1,"<>":_j,">":kj,">=":wj,"<":Kj,"<=":fj},uj=class{constructor(G,D,z,B){this.rowNode=G,this.column=D,this.formulaString=z,this.beans=B,this.error=null,this.ast=null,this.astStale=!0,this._value=void 0,this._valueStale=!0}setFormulaString(G){if(this.formulaString===G)return;this.formulaString=G,this.astStale=!0,this._valueStale=!0}setComputedValue(G){this._value=G,this._valueStale=!1,this.error=null}setError(G){this.error=G,this._valueStale=!1}isValueReady(){return!this._valueStale}getValue(){return this.error?.type??this._value}getError(){return this.error}getAst(){if(!this.astStale)return this.ast;let G=r1(this.beans,this.formulaString);return this.ast=G??null,this.astStale=!1,this.ast}},jj=class extends Mu{constructor(){super(...arguments);this.beanName="formula",this.cachedResult=new WeakMap,this.colRefMap=new Map,this.functionNames=null,this.active=!1}setFormulasActive(G){let z=G.list.some((B)=>B.isAllowFormula())&&this.checkForIncompatibleServices(G);if(z!==this.active)this.active=z,this.refreshFormulas(!0)}checkForIncompatibleServices(G){if(this.gos.get("masterDetail"))return oD(295,{blockedService:"Master Detail"}),!1;if(this.gos.get("treeData"))return oD(295,{blockedService:"Tree Data"}),!1;if(this.gos.get("enableCellExpressions"))return oD(295,{blockedService:"Cell Expressions"}),!1;return G.list.every((D)=>{if(D.isAllowPivot()||D.isPivotActive())return oD(295,{blockedService:"Column Pivoting"}),!1;if(D.isAllowRowGroup()||D.isRowGroupActive())return oD(295,{blockedService:"Row Groups"}),!1;if(D.isAllowValue()||D.isValueActive()||D.getAggFunc())return oD(295,{blockedService:"Value Aggregation"}),!1;return!0})}postConstruct(){this.setupFunctions();let G=()=>{if(this.active)this.refreshFormulas(!0)},D=()=>{if(this.active)this.setupColRefMap()};this.addManagedPropertyListeners(["masterDetail","enableCellExpressions"],(z)=>{let{colModel:B}=this.beans;if(B.cols?.list.some((J)=>J.isAllowFormula()))B.refreshAll(Au(z.source))}),this.addManagedListeners(this.beans.eventSvc,{modelUpdated:G,cellValueChanged:G,rowDataUpdated:G,newColumnsLoaded:D,columnMoved:D})}updateFormulaByOffset(G){let{value:D,rowDelta:z=0,columnDelta:B=0,useRefFormat:Q=!0}=G,{beans:J}=this;try{let U=!Q,Z=r1(J,D,U);return j8(J,Z,z,B,U),f5(J,Z,Q,U)}catch{return D}}setupFunctions(){this.supportedOperations=new Map,Object.keys(M5).forEach((D)=>{this.supportedOperations.set(D,M5[D])}),this.functionNames=null;let G=this.gos.get("formulaFuncs");if(G)Object.keys(G).forEach((D)=>{this.supportedOperations.set(D.toUpperCase(),G[D].func)})}getFunctionNames(){if(this.functionNames)return this.functionNames;let G=[];for(let D of this.supportedOperations.keys()){if(!tB(D[0]))continue;if(![...D].every((z)=>L0(z)))continue;G.push(D)}return G.sort((D,z)=>D.localeCompare(z)),this.functionNames=G,G}setupColRefMap(){if(!this.active){this.colRefMap=new Map;return}let G="abcdefghijklmnopqrstuvwxyz",D=G.length,z=this.beans.colModel.getCols(),B=new Map,Q=0;z?.forEach((J)=>{if(!J.isPrimary())return;let U="",Z=Q++;while(!0){if(U=G[Z%D]+U,Z{let U=G.get(Q);if(U?.has(J))throw new T(51);if(!U)U=new Set,G.set(Q,U);U.add(J)},z=(Q,J)=>{let U=G.get(Q);if(U){if(U.delete(J),U.size===0)G.delete(Q)}},B=(Q)=>{for(let[J,U]of G)for(let Z of U)this.ensureCellFormula(J,Z)?.setError(Q)};return this.activeCtx={setVisited:z,setVisiting:D,errorAllVisitors:B}}makeFormulaFrame(G){let z=this.ensureCellFormula(G.row,G.column).getAst();if(!z)throw new T(52);let B=Gj(this.beans,z,this.ensureCellFormula.bind(this));return{address:G,ast:z,unresolvedDepIterator:B}}resolveValue(G,D){let z=this.ensureCellFormula(D,G);if(!z)return this.fetchRawValue(G,D);if(z.isValueReady())return z.getValue();let B=!!this.activeCtx,{setVisited:Q,setVisiting:J,errorAllVisitors:U}=this.getVisitorContext(),Z=[];try{J(D,G),Z.push(this.makeFormulaFrame({row:D,column:G}));while(Z.length){let{address:S,ast:X,unresolvedDepIterator:Y}=Z[Z.length-1],{row:W,column:q}=S,H=this.ensureCellFormula(W,q);if(H.isValueReady()){if(Z.pop(),Q(W,q),H.error)throw H.error;continue}let _=Y.next();if(!_.done){let f=_.value,N=this.ensureCellFormula(f.row,f.column);if(!N||N.isValueReady())continue;J(f.row,f.column),Z.push(this.makeFormulaFrame(f));continue}let k=C8(this.beans,X,(f)=>{let N=this.ensureCellFormula(f.row,f.column);if(N){if(!N.isValueReady())throw new T(53);let F=N.getError();if(F)throw F;return N.getValue()}return this.fetchRawValue(f.column,f.row)},{row:W,column:q}),w=this.coerceFormulaValue(q,k),K=H.getError();if(K)throw Q(W,q),K;H.setComputedValue(w),Q(W,q),Z.pop()}if(!z.isValueReady())throw new T(53);return z.getValue()}catch(S){let X=S instanceof T?S:new T(String(S?.message??S));return U(X),X.type}finally{if(!B)this.activeCtx=null}}},g8={moduleName:"Formula",version:j,userComponents:{agFormulaCellEditor:ku},beans:[jj,Fu,Iu],dependsOn:[bJ],css:[wu]},gj=".ag-sparkline-wrapper{height:100%;line-height:normal;position:absolute;top:0;width:100%}",R1=Symbol("WrappedFunctionMarker"),R5=(G,D)=>{if(G[R1])return G;let z=(...B)=>D(G,...B);return z[R1]=R1,z},ij="Sparkline - ${chartType} displaying ${count} values between ${min} and ${max}. Starts at ${start} and ends at ${end}.",nj="Sparkline - ${chartType} displaying 1 value, ${value}.",dj="Sparkline - ${chartType} displaying no values.",lj=(G,D)=>{let z=D?.type??"line";switch(z){case"line":return G("lineChart","Line");case"area":return G("areaChart","Area");case"bar":return G("barChart","Bar");default:return z}},pj=(G,D)=>{let z=0,B=Number.POSITIVE_INFINITY,Q=Number.NEGATIVE_INFINITY,J,U;for(let Z of G){let S=oj(Z,D);if(S==null)continue;if(J==null)J=S;U=S,z++,B=Math.min(B,S),Q=Math.max(Q,S)}return z===0?{count:z}:{count:z,min:B,max:Q,start:J,end:U}};function mj(G){let{translate:D,chartType:z,summary:B,formatNumber:Q}=G,J,U,Z,S;if(!tj(B))J="ariaSparklineChartDescriptionEmpty",U=dj,Z=[z],S={chartType:z};else if(B.count===1){let X=Q(B.start);J="ariaSparklineChartDescriptionSingleValue",U=nj,Z=[z,X],S={chartType:z,value:X}}else{let[X,Y,W,q,H]=[B.count,B.min,B.max,B.start,B.end].map(Q);J="ariaSparklineChartDescription",U=ij,Z=[z,X,Y,W,q,H],S={chartType:z,count:X,min:Y,max:W,start:q,end:H}}return{template:D(J,U,Z),values:S}}var tj=(G)=>G.count>0&&G.min!=null&&G.max!=null&&G.start!=null&&G.end!=null,sj=(G,D)=>G.replace(/\$\{([^}]+)\}/g,(z,B)=>D[B]??z),oj=(G,D)=>{if(typeof G==="number")return Number.isFinite(G)?G:null;if(G&&typeof G==="object"){let z=Array.isArray(G)?G[1]:G[D];return typeof z==="number"&&Number.isFinite(z)?z:null}return null};function rj(G){return{content:`${G.xValue} ${G.yValue}`}}function aj(G){return{content:`${G.yValue}`}}var C5="ag-sparkline",ej=class extends Tj{constructor(){super({tag:"div",cls:`${C5}-wrapper`,children:[{tag:"span",ref:"eSparkline"}]});this.eSparkline=yj,this.cachedWidth=0,this.cachedHeight=0,this.dataRef=[],this.processedData=[]}postConstruct(){this.env=this.beans.environment,this.addManagedPropertyListeners(["chartThemeOverrides","chartThemes","styleNonce"],()=>this.refresh(this.params))}createListener(G=!0){return()=>this.updateSize(this.params?.column?.getActualWidth()??0,(this.params?.node.rowHeight??0)-2,G)}initGridObserver(){let G=this.createListener(),D=this.createListener(!1),z=this.params?.column,B=this.params?.node;z.__addEventListener("columnStateUpdated",G),B.__addEventListener("heightChanged",G),this.addDestroyFunc(()=>{z.__removeEventListener("columnStateUpdated",G),B.__removeEventListener("heightChanged",G)}),D()}updateSize(G,D,z=!0){if(G-=this.env.getCellPadding(),G!==this.cachedWidth||D!==this.cachedHeight){this.cachedWidth=G,this.cachedHeight=D;let B=this.refresh.bind(this);if(z)xj(()=>this.isAlive()&&B());else B()}}init(G){this.params=G;let{eParentOfValue:D}=G,z=`${C5}-cell-renderer-${this.getCompId()}`;this.getGui().setAttribute("id",z),A5(D,z),this.addDestroyFunc(()=>A5(D)),this.initGridObserver()}refresh(G=this.params){var D;this.params=G;let z=this.processData(G?.value);this.refreshAriaLabel(z);let B=this.cachedWidth,Q=this.cachedHeight,J=this.gos.get("styleNonce");if(!this.sparklineInstance&&G&&B>0&&Q>0){if(this.sparklineOptions={container:this.eSparkline,width:B,height:Q,...G.sparklineOptions,...J?{styleNonce:J}:{},data:z},(D=this.sparklineOptions).type??(D.type="line"),this.sparklineOptions.tooltip?.renderer)this.wrapTooltipRenderer();else{let Z=this.getDefaultTooltipRenderer();this.sparklineOptions.tooltip={...this.sparklineOptions.tooltip,renderer:Z}}let U=this.sparklineOptions?.theme;if(this.sparklineOptions.type==="bar"&&this.sparklineOptions.itemStyler)this.wrapItemStyler(this.sparklineOptions);else if(U?.overrides?.bar?.series?.itemStyler)this.wrapItemStyler(U.overrides.bar.series);return this.sparklineInstance=G.createSparkline(this.sparklineOptions),!0}else if(this.sparklineInstance)return this.sparklineInstance.update({...this.sparklineOptions,data:z,width:B,height:Q,...J?{styleNonce:J}:{}}),!0;return!1}refreshAriaLabel(G){let D=this.getLocaleTextFunc(),z=this.getLocaleTextFunc.bind(this),B=this.params?.sparklineOptions?.yKey??this.sparklineOptions?.yKey??"y",Q=pj(G,B),J=this.params?.sparklineOptions??this.sparklineOptions,{template:U,values:Z}=mj({translate:D,chartType:lj(D,J),summary:Q,formatNumber:(S)=>cj(S,z)});hj(this.getGui(),sj(U,Z))}processData(G){if(!G?.length)return G??[];if(this.dataRef!==G)this.dataRef=G,this.processedData=Array.isArray(G[0])?G.filter((D)=>D!=null):G;return this.processedData}createContext(){return{data:this.params?.data,cellData:this.params?.value}}getDefaultTooltipRenderer(G){let D=G?.title,z=this.sparklineOptions.xKey,B=Array.isArray(this.sparklineOptions.data?.[0]);return!D&&(z||B)?rj:aj}wrapItemStyler(G){G.itemStyler=R5(G.itemStyler,(D,z)=>{return D({...z,context:this.createContext()})})}wrapTooltipRenderer(){this.sparklineOptions.tooltip={...this.sparklineOptions.tooltip,renderer:R5(this.sparklineOptions.tooltip.renderer,(G,D)=>{let z=G({...D,context:this.createContext()});if(typeof z==="string")return z;return{...this.getDefaultTooltipRenderer(z)(D),...z}})}}destroy(){super.destroy(),this.sparklineInstance?.destroy()}},V5="Sparklines",T8={moduleName:V5,version:j,dependsOn:[i],validate:()=>{return{isValid:!1,message:Pj(258)}},with:(G)=>{return G.setup(),{moduleName:V5,version:j,dependsOn:[i],css:[gj],userComponents:{agSparklineCellRenderer:{classImp:ej,params:{createSparkline:G.createSparkline}}},validate:()=>{return{isValid:!0}}}}},GP=".ag-find-cell{display:block;overflow:hidden;text-overflow:ellipsis}.ag-find-match{background-color:var(--ag-find-match-background-color);color:var(--ag-find-match-color)}.ag-find-active-match{background-color:var(--ag-find-active-match-background-color);color:var(--ag-find-active-match-color)}";function DP(G){G.findSvc?.next()}function zP(G){G.findSvc?.previous()}function BP(G){return G.findSvc?.totalMatches??0}function QP(G,D,z){G.findSvc?.goTo(D,z)}function JP(G){G.findSvc?.clearActive()}function UP(G){return G.findSvc?.activeMatch}function ZP(G,D){let{node:z,column:B}=D;return G.findSvc?.getNumMatches(z,B)??0}function $P(G,D){return G.findSvc?.getParts(D)??[]}function LP(G){return G.findSvc?.refresh(!0)}var WP={tag:"span",cls:"ag-find-cell"},qP=class extends SP{constructor(){super(WP)}init(G){this.refresh(G)}refresh(G){let{node:D,column:z}=G,{findSvc:B,valueSvc:Q}=this.beans,{value:J,valueFormatted:U}=Q.getValueForDisplay({column:z,node:D,includeValueFormatted:!0,from:"edit"}),Z=U??J??"",S=this.getGui();XP(S);let X=B?.getParts({value:Z,node:D,column:z??null});if(!X)S.textContent=b5(Z)??"",S.classList.remove("ag-find-cell-active-match");else{let Y=!1;for(let{value:W,match:q,activeMatch:H}of X){let _=b5(W)??"";if(q){let k=YP({tag:"mark",cls:"ag-find-match"});if(k.textContent=_,H)k.classList.add("ag-find-active-match"),Y=!0;S.appendChild(k)}else S.appendChild(document.createTextNode(_))}S.classList.toggle("ag-find-cell-active-match",Y)}return!0}};function u5(G){return G?.toLocaleLowerCase()}function lz(G,D,z){let B=D(y8(z)),Q=0;if(B?.length){let J=-1;while(!0)if(J=B.indexOf(G,J+1),J!=-1)Q++;else break}return Q}var fP=class extends HP{constructor(){super(...arguments);this.beanName="findSvc",this.active=!1,this.topMatches=new Map,this.topNodes=[],this.topNumMatches=0,this.centerMatches=new Map,this.centerNodes=[],this.centerNumMatches=0,this.bottomMatches=new Map,this.bottomNodes=[],this.caseFormat=u5,this.scrollOnRefresh=!1,this.totalMatches=0}postConstruct(){if(!O5(this.gos))return;let G=this.refresh.bind(this,!1),D=this.refresh.bind(this,!0),z=_P(this,()=>{if(this.isAlive())D()},0);this.refreshDebounced=z,this.addManagedPropertyListener("findSearchValue",G),this.addManagedPropertyListener("findOptions",({currentValue:Q,previousValue:J})=>{if(!wP(Q,J))G()}),this.addManagedPropertyListeners(["groupSuppressBlankHeader","showOpenedGroup"],D),this.addManagedEventListeners({modelUpdated:D,displayedColumnsChanged:D,pinnedRowDataChanged:D,cellValueChanged:z,rowNodeDataChanged:z,cellEditingStopped:z,cellEditValuesChanged:z,batchEditingStopped:z});let B=this.beans.rowSpanSvc;if(B)this.addManagedListeners(B,{spannedCellsUpdated:z});G()}next(){this.findAcrossContainers(!1,["top",null,"bottom"],1,1)}previous(){this.findAcrossContainers(!0,["bottom",null,"top"],this.totalMatches,-1)}goTo(G,D){if(!D&&G===this.activeMatch?.numOverall)return;let{topMatches:z,topNumMatches:B,centerMatches:Q,centerNumMatches:J,bottomMatches:U}=this;if(G<=B){this.goToInContainer(z,G,0);return}if(G<=J){this.goToInContainer(Q,G,B);return}this.goToInContainer(U,G,B+J)}clearActive(){if(this.activeMatch)this.setActive(void 0)}isMatch(G,D){return this.active&&!!this.getMatches(G.rowPinned).get(G)?.some(([z])=>z===D)}getNumMatches(G,D){return this.getMatches(G.rowPinned).get(G)?.find(([z])=>z===D)?.[1]??0}getParts(G){let{value:D,node:z,column:B,precedingNumMatches:Q}=G,J=this.findSearchValue,U=y8(D)??"";if(C1(J))return[{value:U}];let Z=this.caseFormat(U)??"",S=this.getActiveMatchNum(z,B)-(Q??0),X=0,Y=0,W=J.length,q=[];while(!0){let H=Z.indexOf(J,X);if(H!=-1){if(Y++,H>X)q.push({value:U.slice(X,H)});let _=H+W;q.push({value:U.slice(H,_),match:!0,activeMatch:Y===S}),X=_}else{if(Xz.get("findOptions")?.searchDetail,Q=(J)=>{let Z=this.centerMatches.get(G)?.[0]?.[1]??0;if(J!==Z)this.refreshDebounced()};if(D.addEventListener("findChanged",(J)=>{if(D.isDestroyed()||!this.isAlive()||!this.active||!B())return;Q(J.totalMatches)}),D.addEventListener("gridPreDestroyed",()=>{if(!this.isAlive()||!this.active||!B())return;let J=G.parent,U=this.findSearchValue;if(!J||!U)return;let Z=z.get("detailCellRendererParams")?.getFindMatches?.({node:J,data:J.data,findSearchValue:z.get("findSearchValue"),updateMatches:this.refreshDebounced,getMatchesForValue:(S)=>lz(U,this.caseFormat,S)})??0;Q(Z)}),B())D.setGridOption("findSearchValue",z.get("findSearchValue"))}refresh(G){let D=new Set([...this.topNodes,...this.centerNodes,...this.bottomNodes]);this.topNodes=[],this.centerNodes=[],this.bottomNodes=[];let{topNodes:z,topMatches:B,centerMatches:Q,centerNodes:J,bottomNodes:U,bottomMatches:Z,beans:{gos:S,visibleCols:X,rowModel:Y,valueSvc:W,pinnedRowModel:q,pagination:H,rowSpanSvc:_,masterDetailSvc:k,colModel:w},findSearchValue:K}=this,f=S.get("findOptions"),N=f?.caseSensitive?(y)=>y??void 0:u5;this.caseFormat=N;let F=S.get("findSearchValue"),E=N(F?.trim());this.findSearchValue=E,B.clear(),Q.clear(),Z.clear();let I=G?this.activeMatch:void 0;this.activeMatch=void 0;let V=S.get("masterDetail")&&f?.searchDetail&&k;if(C1(E)){if(this.active=!1,this.topNumMatches=0,this.centerNumMatches=0,this.totalMatches=0,this.refreshRows(D),V){let y=k.store;for(let _D of Object.keys(y))y[_D]?.api?.findClearActive()}if(!C1(K))this.dispatchFindChanged();return}let A=X.allCols,R=S.getCallback("isFullWidthRow"),O=S.get("detailCellRendererParams"),u=S.get("fullWidthCellRendererParams"),v=S.get("groupRowRendererParams"),h=c7(S),P=w.isPivotMode(),b=0,g,c,s=!1,m=(y,_D,sG,GQ)=>{if(!sG)return;let n=g.get(y);if(!n){if(n=[],g.set(y,n),c.push(y),!GQ)D.add(y)}n.push([_D,sG]),b+=sG},zG=(y)=>{if(s){let{rowIndex:n,parent:GG}=y;while(n==null&&GG)n=GG.rowIndex,GG=GG.parent;if(n==null||!H.isRowInPage(n))return}let _D=y.hasChildren();if(!n7(h,y,_D,P,h7(h,y,_D),i7(h,y,_D)))return;let sG=y.data;if(R?.({rowNode:y})){if(u){let n=u.getFindMatches?.({node:y,data:sG,findSearchValue:F,updateMatches:this.refreshDebounced,getMatchesForValue:(GG)=>lz(E,N,GG)})??0;m(y,null,n)}return}if(kP(S,y,P)){let n,GG=v?.getFindText;if(GG){let gD=W.getValueForDisplay({node:y,from:"batch"}).value;n=GG(v5(S,{value:gD,node:y,data:sG,column:null,colDef:null,getValueFormatted:()=>{let{valueFormatted:TD}=W.getValueForDisplay({node:y,includeValueFormatted:!0,from:"batch"});return TD}}))}else{let{value:gD,valueFormatted:TD}=W.getValueForDisplay({node:y,includeValueFormatted:!0,from:"batch"});n=TD??gD}let yG=lz(E,N,n);m(y,null,yG);return}let GQ=y.level>0&&S.get("groupHideOpenParents")&&y.parent?.getFirstChild()===y&&!y.parent?.expanded;for(let n of A){if(KP(n))continue;let GG=_?.getCellSpan(n,y);if(GG&&GG.firstNode!==y)continue;if(n.colDef.showRowGroup&&GQ)continue;let yG,gD=n.colDef,TD=gD.getFindText;if(TD){let DQ=W.getValueForDisplay({column:n,node:y,from:"batch"}).value;yG=TD(v5(S,{value:DQ,node:y,data:sG,column:n,colDef:gD,getValueFormatted:()=>{let{valueFormatted:zQ}=W.getValueForDisplay({column:n,node:y,includeValueFormatted:!0,from:"batch"});return zQ}}))}else{let{value:DQ,valueFormatted:zQ}=W.getValueForDisplay({column:n,node:y,includeValueFormatted:!0,from:"batch"});yG=zQ??DQ}let P9=lz(E,N,yG);m(y,n,P9)}if(y.master&&V){let n=y.detailNode;if(n){let GG=n.detailGridInfo?.api;if(GG){GG.setGridOption("findSearchValue",F);let yG=GG.findGetTotalMatches();m(n,null,yG);return}}if(O){let GG=O.getFindMatches?.({node:y,data:sG,findSearchValue:F,updateMatches:this.refreshDebounced,getMatchesForValue:(yG)=>lz(E,N,yG)})??0;m(n??{parent:y,dummy:!0},null,GG,!n)}}};g=B,c=z,q?.forEachPinnedRow("top",zG),this.topNumMatches=b;let fG=b;if(g=Q,c=J,b=0,s=!!H&&!!f?.currentPageOnly,Y.forEachNodeAfterFilterAndSort(zG,!0),this.centerNumMatches=b,fG+=b,g=Z,c=U,b=0,s=!1,q?.forEachPinnedRow("bottom",zG),fG+=b,this.totalMatches=fG,this.active=!0,this.refreshRows(D),I)this.resetActiveMatch(I);this.dispatchFindChanged()}resetActiveMatch(G){let{column:D,numInMatch:z}=G,B=G.node;if(B.dummy){let X=B.parent?.detailNode;if(!X)return;B=X}let Q=B.rowPinned??null;if(!this.getMatches(Q)?.get(B)?.some(([X,Y])=>X===D&&Y>=z))return;let U=0;if(Q==null)U=this.topNumMatches;else if(Q==="bottom")U=this.topNumMatches+this.centerNumMatches;(()=>{let X=this.getMatches(Q);for(let Y of X.keys()){let W=Y===B,q=X.get(Y);for(let[H,_]of q){if(W&&H===D){U+=z;return}U+=_}}})();let S={...G,node:B,numOverall:U};if(this.activeMatch=S,this.refreshRows(new Set([B]),D==null?void 0:new Set([D])),this.scrollOnRefresh)this.scrollOnRefresh=!1,this.scrollToActive(S);this.setDetailActive(S)}refreshRows(G,D){if(!G.size)return;this.beans.rowRenderer.refreshCells({rowNodes:[...G],columns:D?[...D]:void 0,force:!0,suppressFlash:!0})}findAcrossContainers(G,D,z,B){if(!this.totalMatches){this.setActive();return}let Q=this.activeMatch,J=D;if(Q){let{column:U,node:Z,numInMatch:S,numOverall:X}=Q,Y=Z.rowPinned??null,W=X+B;if(this.findInContainer(Y,G,W,Z,U,S))return;let H=D.indexOf(Y),_=D.length;if(D.slice(H+1,_).some((w)=>this.findInContainer(w,G,W)))return;J=D.slice(0,H+1)}J.some((U)=>this.findInContainer(U,G,z))}findInContainer(G,D,z,B,Q,J){let U=this.getMatches(G),Z=this.getRowNodes(G),S=D?-1:1;if(B!=null){let q=U.get(B),H=q?.findIndex(([k])=>k===Q);if(H!=null&&H!=-1){let[k,w]=q[H];if(D?J>1:JH===B);X=Z[q+S]}if(X==null)return!1;let Y=U.get(X),W=Y?.[D?Y.length-1:0];if(W){let[q,H]=W;return this.setActive({column:q,node:X,numInMatch:D?H:1,numOverall:z}),!0}return!1}dispatchFindChanged(){let{eventSvc:G,activeMatch:D,totalMatches:z,findSearchValue:B}=this;G.dispatchEvent({type:"findChanged",activeMatch:D,totalMatches:z,findSearchValue:B})}setActive(G){if(G&&G.node.rowIndex==null){let z=G.node,B=z.footer?z.sibling:z.parent;while(B&&B.level!==-1)B.expanded=!0,B=B.parent;this.activeMatch=G,this.scrollOnRefresh=!0,this.beans.expansionSvc?.onGroupExpandedOrCollapsed();return}let D=this.activeMatch;if(this.activeMatch=G,this.refreshAndScrollToActive(G,D),G)this.setDetailActive(G);this.dispatchFindChanged()}setDetailActive({node:G,numInMatch:D}){if(G.detail)G.detailGridInfo?.api?.findGoTo(D)}refreshAndScrollToActive(G,D){if(G||D){let z=new Set,B=new Set,Q=!1,J=(U)=>{if(!U)return;let{node:Z,column:S}=U;if(z.add(Z),S==null)Q=!0;else B.add(S)};J(G),J(D),this.refreshRows(z,Q?void 0:B)}if(G)this.scrollToActive(G)}scrollToActive({node:{rowPinned:G,rowIndex:D},column:z}){let{ctrlsSvc:B,pagination:Q,gos:J}=this.beans,U=B.getScrollFeature();if(G==null&&D!=null){if(Q&&!J.get("findOptions")?.currentPageOnly&&!Q.isRowInPage(D))Q.goToPageWithIndex(D);U.ensureIndexVisible(D)}U.ensureColumnVisible(z)}goToInContainer(G,D,z){let B=z;for(let Q of G.keys()){let J=G.get(Q);for(let[U,Z]of J){if(D<=B+Z){this.setActive({column:U,node:Q,numInMatch:D-B,numOverall:D});return}B+=Z}}}getMatches(G){if(G==="top")return this.topMatches;else if(G==="bottom")return this.bottomMatches;else return this.centerMatches}getRowNodes(G){if(G==="top")return this.topNodes;else if(G==="bottom")return this.bottomNodes;else return this.centerNodes}getActiveMatchNum(G,D){let z=this.activeMatch;return z!=null&&z.node===G&&z.column===D?z.numInMatch:0}destroy(){this.topMatches.clear(),this.topNodes.length=0,this.centerMatches.clear(),this.centerNodes.length=0,this.bottomMatches.clear(),this.bottomNodes.length=0,this.activeMatch=void 0,super.destroy()}},NP={moduleName:"FindCore",version:j,rowModels:["clientSide"],beans:[fP],userComponents:{agFindCellRenderer:qP},css:[GP]},x8={moduleName:"Find",version:j,apiFunctions:{findGetTotalMatches:BP,findGoTo:QP,findNext:DP,findPrevious:zP,findGetActiveMatch:UP,findGetNumMatches:ZP,findGetParts:$P,findClearActive:JP,findRefresh:LP},dependsOn:[i,NP]};function MP({editSvc:G,gos:D,rowModel:z}){if(!EP(D,z)){IP(289,{rowModelType:D.get("rowModelType")});return}G?.startBatchEditing()}function AP({editSvc:G}){G?.stopBatchEditing({cancel:!0,source:"api",forceCancel:!0})}function RP({editSvc:G}){G?.stopBatchEditing({source:"api",forceStop:!0,commit:!0})}function CP(G){return G.editSvc?.isBatchEditing()??!1}var c8={moduleName:"BatchEdit",version:j,beans:[],apiFunctions:{isBatchEditing:CP,startBatchEdit:MP,cancelBatchEdit:AP,commitBatchEdit:RP},dependsOn:[FP,i],css:[]},VB=(G,D)=>{if(D===!1||D===null)return!1;if(h8(G))return D==="overwrite"?"overwrite":!1;if(typeof D==="string")return D;if(G==="sum")return"uniform";if(G==="avg"||G==null)return"overwrite";return D===!0?"overwrite":!1},h8=(G)=>G==="count"||G==="min"||G==="max"||G==="first"||G==="last",bP=(G)=>G==="sum"||G==="avg",VG=(G)=>{if(typeof G==="number")return G;if(typeof G==="bigint"||typeof G==="string"){let D=Number(G);return Number.isFinite(D)?D:0}if(typeof G==="boolean")return G?1:0;if(G!=null&&typeof G==="object"){if(typeof G.toNumber==="function")return VG(G.toNumber());if("value"in G)return VG(G.value)}return 0},j5=(G)=>Number.isFinite(G)?BigInt(Math.round(G)):0n,eD=(G)=>{if(typeof G==="bigint")return G;if(typeof G==="number")return j5(G);if(typeof G==="boolean")return G?1n:0n;if(typeof G==="string")try{return BigInt(G)}catch{return j5(Number(G))}if(G!=null&&typeof G==="object"){if(typeof G.toNumber==="function")return eD(G.toNumber());if("value"in G)return eD(G.value)}return 0n},xJ=(G)=>{let D=typeof G;if(D==="number"||D==="bigint"||D==="boolean")return!0;if(D==="string")return Number.isFinite(Number(G));if(G!=null&&D==="object"){if(typeof G.toNumber==="function")return!0;if("value"in G)return xJ(G.value)}return!1},vP=(G)=>{if(G.cellDataType==="bigint")return 0;let D=G.cellEditorParams;if(D==null||typeof D!=="object")return;let z=D.precision;if(typeof z==="number"&&Number.isInteger(z)&&z>=0)return z;let B=D.step;if(typeof B==="number"&&Number.isInteger(B))return 0;return},OP=class{constructor(G,D,z){this.params=G;let{aggregatedChildren:B,column:Q,newValue:J}=G,U=eD(J),Z=eD(G.oldValue),S=B.length,X=BigInt(S);if(this.children=B,this.column=Q,this.count=S,this.bigCount=X,this.newValue=J,this.strategy=VB(z,D?.distribution),z==="avg")this.target=U*X,this.oldTarget=Z*X;else this.target=U,this.oldTarget=Z;this.getVal=D?.getValue,this.setVal=D?.setValue}run(){let{strategy:G,newValue:D}=this;if(G===!1)return!1;if(G==="overwrite")return this.writeAll(D);let{target:z,oldTarget:B}=this;if(z===0n&&!xJ(D))return this.writeAll(D);if(G==="increment"&&z===B)return!1;if(G==="uniform")return this.writeUniformDirect(z);if(G==="increment")return this.writeIncrementDirect(z-B);return this.writePercentage()}readOne(G){let{children:D,column:z,getVal:B}=this,Q=D[G];if(B){let{colDef:J,api:U,context:Z}=this.params;return eD(B({node:Q,data:Q.data,column:z,colDef:J,api:U,context:Z,groupParams:this.params}))}return eD(Q.getDataValue(z,"value"))}writeOne(G,D){let{children:z,column:B,setVal:Q}=this,J=z[G];if(Q){let{colDef:U,api:Z,context:S}=this.params;return Q({node:J,data:J.data,column:B,colDef:U,api:Z,context:S,groupParams:this.params,value:D})}return J.setDataValue(B,D,"data")}writeAll(G){let{count:D}=this,z=!1;for(let B=0;B=0n?1n:-1n,Z=!1;for(let S=0;S=0n?1n:-1n,Z=!1;for(let S=0;S0n&&Z=0?Y:void 0;else this.precision=vP(J);this.getVal=D?.getValue,this.setVal=D?.setValue}run(){let{strategy:G,newValue:D}=this;if(G===!1)return!1;if(G==="overwrite")return this.writeAll(D);if(this.target===0&&!xJ(D))return this.writeAll(D);if(G==="increment"&&this.target===this.oldTarget)return!1;switch(G){case"uniform":return this.distributeUniform();case"increment":return this.distributeIncrement();default:return this.isAvg?this.distributePercentageAvg():this.distributePercentage()}}readOne(G){let{column:D,getVal:z}=this;if(z){let{colDef:B,api:Q,context:J}=this.params;return VG(z({node:G,data:G.data,column:D,colDef:B,api:Q,context:J,groupParams:this.params}))}return VG(G.getDataValue(D,"value"))}readValueAndCount(G){let{column:D,getVal:z}=this,B;if(z){let{colDef:Q,api:J,context:U}=this.params;B=z({node:G,data:G.data,column:D,colDef:Q,api:J,context:U,groupParams:this.params})}else B=G.getDataValue(D);if(G.group){if(B!=null&&typeof B==="object"){let{value:Q,count:J}=B;if(Q!=null&&typeof J==="number"&&J>0)return typeof Q==="number"?B:{value:VG(Q),count:J}}return{value:VG(B),count:G.allLeafChildren?.length||1}}return{value:VG(B),count:1}}writeOne(G,D){let{column:z,setVal:B}=this;if(B){let{colDef:Q,api:J,context:U}=this.params;return B({node:G,data:G.data,column:z,colDef:Q,api:J,context:U,groupParams:this.params,value:D})}return G.setDataValue(z,D,"data")}writeAll(G){let{children:D,count:z}=this,B=!1;for(let Q=0;Q=0?1:-1,Y=!1;for(let W=0;W=0?1:-1,W=!1;for(let q=0;q=0?1:-1,q=!1;for(let H=0;H=0?1:-1,k=!1;for(let w=0;w{let{aggregatedChildren:z,colDef:B}=G;if(z.length===0)return!1;let Q=B.aggFunc??null,J=n8(D,Q);if(J===!1)return!1;if(typeof J==="function")return J(G)??!0;if(B.cellDataType==="bigint")return new OP(G,J,Q).run();return new uP(G,J,Q).run()};function n8(G,D){if(!G)return;let z=G.distribution;if(z===!1||z===null)return!1;let B=h8(D),Q=G.default;if(typeof z==="object"){let J=typeof D==="string"?z[D]:void 0;if(J!==void 0)return V1(J,B,G);if(B)return!1;return V1(Q,!1,G)??DJ(G)}if(B)return z==="overwrite"?DJ(G,"overwrite"):!1;if(z===void 0&&!bP(D)){let J=V1(Q,!1,G);if(J!==void 0)return J}return G}function V1(G,D,z){if(G===!1||G===null)return!1;if(G===void 0)return;if(typeof G==="function")return G;if(typeof G==="object"){let B=G.distribution;if(D&&B!=="overwrite"&&B!==!0)return!1;let{precision:Q,getValue:J,setValue:U}=z;return{distribution:D?"overwrite":B,precision:G.precision??Q,getValue:G.getValue??J,setValue:G.setValue??U}}if(D&&G!=="overwrite"&&G!==!0)return!1;return DJ(z,D?"overwrite":G)}function DJ(G,D){return{distribution:D,precision:G.precision,getValue:G.getValue,setValue:G.setValue}}var jP=class extends VP{constructor(){super(...arguments);this.beanName="rowGroupingEditValueSvc"}isGroupCellEditable(G,D){let z=D.getColDef();if(!D.isColumnFunc(G,z.groupRowEditable))return!1;let B=z.groupRowValueSetter;if(typeof B==="function")return!0;let Q=z.aggFunc??null;if(typeof B==="object"){let J=n8(B,Q);return typeof J==="function"||J!==!1&&VB(Q,J?.distribution)!==!1}return VB(Q,B??void 0)!==!1}setGroupDataValue(G,D,z,B,Q,J){let U=D.getColDef(),Z=U.groupRowValueSetter;if(Z==null){let Y=U.groupRowEditable;Z=Y&&D.isColumnFunc(G,Y)?!0:void 0}if(!Z)return;let S=this.gos.addCommon({node:G,data:G.data,oldValue:B,newValue:z,colDef:U,column:D,eventSource:Q,valueChanged:J,aggregatedChildren:this.beans.aggChildrenSvc?.getAggregatedChildren(G,D)??[]});return(typeof Z==="function"?Z(S):i8(S,Z===!0?void 0:Z))??!0}},d8={moduleName:"RowGroupingEdit",version:j,beans:[jP],dependsOn:[i,CJ]},yP=class extends TP{constructor(G){super();this.beanName="agChartsExports",this.isEnterprise=!1,this.create=G.create,this._Theme=G._Theme,this._Scene=G._Scene,this.isEnterprise=G.isEnterprise,this._Util=G._Util}};function P5(G){if(G.chart!=null)return G.chart;return G}var hP=new Set(["__proto__","constructor","prototype"]);function $D(G,D,z){if(G==null)return z;let B=D.split("."),Q=G;while(B.length>1)if(Q=Q[B.shift()],Q==null)return z;let J=Q[B[0]];return J!=null?J:z}function iP(G,D,z){if(G==null)return;let B=D.split("."),Q=G;B.filter((J)=>!hP.has(J)).forEach((J,U)=>{if(!Q[J])Q[J]={};if(U{let N=(F)=>{if(!F)return!1;return Object.keys(F).some((E)=>$D(F[E],"title.enabled",!1))};return N(q)||N(H)})()):void 0,Zg(),B,k,q,H,{...J??{}},Q].filter((N)=>!!N).reduce((N,F)=>({baseTheme:N,overrides:F}),W);if(U&&X===Z){let N=G.agChartsExports._Theme.getChartTheme(W).palette;if(!Bg(U,N))f.palette=U}return f}function Bg(G,D){let z=(B,Q)=>{if(B===Q)return!0;if(B?.length!==Q?.length)return!1;return B?.every((J,U)=>J===Q?.[U])??!1};return z(G.fills,D.fills)&&z(G.strokes,D.strokes)}function iJ(G,D){return Object.keys(D.themes).includes(G)}function Qg(G,D,z){let Q={tooltip:{delay:500},legend:{listeners:{legendItemClick:(U)=>{let Z=G.getChart(),S=[U.seriesId,`${U.seriesId}-filtered-out`];for(let X of Z.series.filter((Y)=>S.includes(Y.id)))X.toggleSeriesItem(void 0,"category",U.itemId,void 0)}}},listeners:{click:(U)=>D.crossFilterCallback(U,!0)}};if(z==="pie"||z==="donut")return{[z]:{series:{fills:{$applyCycle:[{$cacheMax:{$size:{$path:["./data",{$path:"/data"}]}}},{$palette:"fills"},{$if:[{$eq:[{$value:"$parentIndex"},0]},{$mix:[{$value:"$1"},{$ref:"backgroundColor"},0.7]},{$value:"$1"}]}]},strokes:{$applyCycle:[{$cacheMax:{$size:{$path:["./data",{$path:"/data"}]}}},{$palette:"strokes"},{$if:[{$eq:[{$value:"$parentIndex"},0]},{$mix:[{$value:"$1"},{$ref:"backgroundColor"},0.7]},{$value:"$1"}]}]}},...Q}};let J={};if(z!=="line")J.fill={$if:[{$isEven:[{$value:"$index"}]},{$palette:"fill"},{$mix:[{$path:["../$prevIndex/fill",{$palette:"fill"}]},{$ref:"backgroundColor"},0.7]}]};return{[z]:{series:{stroke:{$if:[{$isEven:[{$value:"$index"}]},{$palette:"stroke"},{$mix:[{$path:["../$prevIndex/fill",{$palette:"stroke"}]},{$ref:"backgroundColor"},0.7]}]},...J},...Q}}}var Jg=o8.reduce((G,D)=>({...G,[D]:{title:{_enabledFromTheme:!0}}}),{});function Ug(G,D,z){let B=G.getExtraPaddingDirections();return{common:{...D?{animation:{duration:500}}:void 0,axes:Jg,padding:{top:!z&&B.includes("top")?40:20,right:B.includes("right")?30:20,bottom:B.includes("bottom")?40:20,left:B.includes("left")?30:20}}}}function Zg(){return{pie:{series:{title:{_enabledFromTheme:!0},calloutLabel:{_enabledFromTheme:!0},sectorLabel:{enabled:!1,_enabledFromTheme:!0}}},donut:{series:{title:{_enabledFromTheme:!0},calloutLabel:{_enabledFromTheme:!0},sectorLabel:{enabled:!1,_enabledFromTheme:!0}}}}}function $g(G){let D=G.getChartThemeName(),z=G.getChartThemes();if(!z.includes(D))D=z[0];return D}function r8(G,D){let{customChartThemes:z}=G,B=z?.[D];if(!B)Gg(140,{name:D});return B}function nJ(G,D){let z={highlightedItem:{strokeWidth:2}};if(!D)z.unhighlightedSeries={opacity:1};if(!G)z.unhighlightedItem={opacity:1};return z}var qz=class{constructor(G){if(this.chartProxyParams=G,this.clearThemeOverrides=!1,this.agChartsExports=G.agChartsExports,this.chart=G.chartInstance,this.chartType=G.chartType,this.crossFiltering=G.crossFiltering,this.crossFilterCallback=G.crossFilterCallback,this.standaloneChartType=l(this.chartType),this.chart==null)this.chart=G.agChartsExports.create(this.getCommonChartOptions());else this.clearThemeOverrides=!0}crossFilteringReset(){}update(G){this.getChartRef().update(this.getUpdateOptions(G,this.getCommonChartOptions(G.updatedOverrides)))}updateThemeOverrides(G){this.getChartRef().updateDelta({theme:{overrides:G}})}getChart(){return P5(this.chart)}getChartRef(){return this.chart}downloadChart(G,D,z){let{chart:B}=this,Q=P5(B),J=D||Q.title.node.getPlainText(),{width:U,height:Z}=G||{};B.download({width:U,height:Z,fileName:J,fileFormat:z})}getChartImageDataURL(G){return this.getChart().getCanvasDataURL(G)}getChartOptions(){return this.chart.getOptions()}getChartThemeOverrides(){return this.getChartOptions().theme.overrides??{}}getChartPalette(){return this.agChartsExports._Theme.getChartTheme(this.getChartOptions().theme).palette}setPaired(G){let D=l(this.chartProxyParams.chartType);this.chart.updateDelta({theme:{overrides:{[D]:{paired:G}}}})}isPaired(){let G=l(this.chartProxyParams.chartType);return $D(this.getChartThemeOverrides(),`${G}.paired`,!0)}lookupCustomChartTheme(G){return r8(this.chartProxyParams,G)}getSeriesGroupType(){return}transformCategoryData(G,D){return G.map((z,B)=>{let Q=z[D],J=Q?.toString?Q.toString():"",U={...z};return U[D]={id:B,value:Q,toString:()=>J},U})}getCommonChartOptions(G){let D=this.clearThemeOverrides?{}:this.chart?.getOptions()??{},z=this.chart!=null?this.getActiveFormattingPanelOverrides():void 0;this.clearThemeOverrides=!1;let B=this.chartProxyParams.styleNonce,Q=zg(this.chartProxyParams,this,this.agChartsExports.isEnterprise,this.getChartThemeDefaults(),G??z);return{...D,mode:"integrated",...B?{styleNonce:B}:{},suppressFieldDotNotation:!0,theme:Q,container:this.chartProxyParams.parentElement}}getChartThemeDefaults(){let G={enabled:!0,snap:!0,label:{enabled:!1}},D=this.agChartsExports.isEnterprise?{zoom:{enabled:!0},animation:{enabled:!0,duration:500},axes:{number:{crosshair:G},category:{crosshair:G},log:{crosshair:G},time:{crosshair:G}}}:{};D.minHeight=0,D.minWidth=0,D.navigator={enabled:!1,height:18},D.context=this.chartProxyParams.context;let z={common:D};return this.setSeriesChartThemeDefaults(z),z}setSeriesChartThemeDefaults(G){let D=this.getSeriesChartThemeDefaults();if(!D)return;G[this.standaloneChartType]=D}getSeriesChartThemeDefaults(){return}getActiveFormattingPanelOverrides(){if(this.clearThemeOverrides)return{};return this.chart?.getOptions().theme?.overrides??{}}destroy({keepChartInstance:G=!1}={}){if(G)return this.chart.resetAnimations(),this.chart;this.destroyChart()}destroyChart(){if(this.chart)this.chart.destroy(),this.chart=void 0}},HD=class extends qz{constructor(){super(...arguments);this.crossFilteringAllPoints=new Set,this.crossFilteringSelectedPoints=[],this.isSingleSeries=!1}getUpdateOptions(G,D){let z=this.getAxes(G,D);return{...D,data:this.getData(G,z),axes:z,series:this.getSeries(G)}}getData(G,D){let z=["area","line"].includes(this.standaloneChartType);return this.crossFiltering&&z?this.getCrossFilterData(G):this.getDataTransformedData(G,D)}getDataTransformedData(G,D){let z=D.x.type,{categories:B,data:Q}=G,[J]=B;switch(z){case"category":return this.transformCategoryData(Q,J.id);case"time":return this.transformTimeData(Q,J.id,J.convertTime);default:return Q}}getXAxisType(G){if(G.grouping)return"grouped-category";else if(this.isXAxisOfType(G,"time",(D)=>D instanceof Date))return"time";else if(this.isXAxisOfType(G,"number"))return"number";return"category"}isXAxisOfType(G,D,z){let[B]=G.categories;if(B?.chartDataType)return B.chartDataType===D;if(!z)return!1;let Q=G.data[0];if(!Q)return!1;return z(Q[B.id])}transformTimeData(G,D,z){if(G[0]?.[D]instanceof Date)return G;return G.map((Q)=>{let J=Q[D];return typeof J==="string"?{...Q,[D]:z?z(J):cP(J)}:Q})}crossFilteringReset(){this.crossFilteringSelectedPoints=[],this.crossFilteringAllPoints.clear()}crossFilteringPointSelected(G){return this.crossFilteringSelectedPoints.length==0||this.crossFilteringSelectedPoints.includes(G)}crossFilteringDeselectedPoints(){return this.crossFilteringSelectedPoints.length>0&&this.crossFilteringAllPoints.size!==this.crossFilteringSelectedPoints.length}extractLineAreaCrossFilterSeries(G,D){let[z]=D.categories,B=(Q)=>{if(this.standaloneChartType==="area")return D.getCrossFilteringContext().lastSelectedChartId===D.chartId?Q+"-total":Q;return Q+"-total"};return G.map((Q)=>{if(Q.yKey=B(Q.yKey),Q.listeners={seriesNodeClick:(J)=>{let U=J.datum[Q.xKey],Z=J.event.metaKey||J.event.ctrlKey;this.crossFilteringAddSelectedPoint(Z,U),this.crossFilterCallback(J)}},Q.marker={itemStyler:(J)=>{let U=J.datum[z.id],Z=J.highlightState==="highlighted-item";return{fill:Z?"yellow":J.fill,size:Z?14:this.crossFilteringPointSelected(U)?8:0}}},this.standaloneChartType==="area")Q.fillOpacity=this.crossFilteringDeselectedPoints()?0.3:1;if(this.standaloneChartType==="line")Q.strokeOpacity=this.crossFilteringDeselectedPoints()?0.3:1;return Q})}getCrossFilterData(G){this.crossFilteringAllPoints.clear();let[D]=G.categories,z=G.fields[0].colId,B=`${z}-filtered-out`,Q=G.getCrossFilteringContext().lastSelectedChartId;return G.data.map((J)=>{let U=J[D.id];this.crossFilteringAllPoints.add(U);let Z=this.crossFilteringPointSelected(U);if(this.standaloneChartType==="area"&&Q===G.chartId)J[`${z}-total`]=Z?J[z]:J[z]+J[B];if(this.standaloneChartType==="line")J[`${z}-total`]=Z?J[z]:J[z]+J[B];return J})}crossFilteringAddSelectedPoint(G,D){if(G)this.crossFilteringSelectedPoints.push(D);else this.crossFilteringSelectedPoints=[D]}isHorizontal(G){let D=this.standaloneChartType;if(D!=="waterfall"&&D!=="box-plot"&&D!=="range-bar")return!1;let z=G.theme,B=(Q)=>{let J=Q?.overrides?.[D]?.series?.direction;if(J!=null)return J==="horizontal";if(typeof Q?.baseTheme==="object")return B(Q.baseTheme);return!1};return B(z)}getSeriesChartThemeDefaults(){return{series:{highlight:nJ(this.crossFiltering,this.isSingleSeries)}}}},Lg=class extends HD{getSeries(G){let D=G.fields[0];return[{type:this.standaloneChartType,xKey:D.colId,xName:D.displayName,yName:this.chartProxyParams.translate("histogramFrequency"),areaPlot:!1}]}getAxes(G){return{x:{type:"number",position:"bottom"},y:{type:"number",position:"left"}}}},Sg=class extends HD{constructor(){super(...arguments);this.isSingleSeries=!0}getAxes(G,D){let z=this.isHorizontal(D),B=z?"y":"x",Q=z?"x":"y";return{[B]:{type:this.getXAxisType(G),position:z?"left":"bottom"},[Q]:{type:"number",position:z?"bottom":"left"}}}getSeries(G){let[D]=G.categories,[z]=G.fields;return[{type:this.standaloneChartType,xKey:D.id,xName:D.name,yKey:z.colId,yName:z.displayName??void 0}]}},Xg=class extends qz{getUpdateOptions(G,D){return{...D,data:this.transformFunnelCategories(G),series:this.getSeries(G)}}transformFunnelCategories(G){let{data:D}=G,[{id:z}]=G.categories;return D.map((B,Q)=>({...B,[z]:{name:B[z],id:Q,toString:()=>String(B[z])}}))}getSeriesChartThemeDefaults(){let G={crosshair:{enabled:!1}};return{zoom:{enabled:!1},...this.chartType!=="pyramid"&&{axes:{category:G,number:G}}}}getSeries(G){let[{id:D}]=G.categories,[{colId:z}]=G.fields;return[{type:this.standaloneChartType,stageKey:D,valueKey:z}]}},qB="AG-GRID-DEFAULT-LABEL-KEY";function Wg(G,D){let z=a8(G,B,Q);return dJ(z);function B(U){return D.length}function Q(U,Z){let S=D[Z],X=U[S];return J(X)}function J(U){if(U==null)return null;return String(U)}}function qg(G,D){let z=a8(G,B,Q);return dJ(z);function B(J){return D(J)?.length??0}function Q(J,U){let Z=D(J);return Z?Z[U]:Z}}function dJ(G,D=null,z){let{depth:B,rootValues:Q,value:J,children:U}=G;if(Q)return Q.map((S)=>({[qB]:D,...S}));else if(B===0)return[{[qB]:D,...J}];let Z=[];for(let[S,X]of U.entries())Z.push(...dJ(X,S,!0));return z?[{[qB]:D,children:Z,...J??{}}]:Z}function a8(G,D,z){let B={depth:0,children:new Map};for(let J of G){let U=D(J);Q(J,U,z,0,B)}return B;function Q(J,U,Z,S,X){if(S===U){if(S===0){if(!X.rootValues)X.rootValues=[];X.rootValues.push(J)}else X.value=J;return X}else{let Y=Z(J,S),W=X.children.get(Y),q=Q(J,U,Z,S+1,W||{depth:0,children:new Map});return X.children.set(Y,q),X.depth=Math.max(1+q.depth,X.depth),X}}}var Hg=class extends qz{getUpdateOptions(G,D){let{fields:z}=G,[B,Q]=z;return{...D,series:this.getSeries(B,Q),data:this.getData(G,B,Q)}}getSeriesChartThemeDefaults(){return{gradientLegend:{gradient:{preferredLength:200},position:"right"}}}getSeries(G,D){return[{type:this.standaloneChartType,labelKey:qB,sizeKey:G?.colId,sizeName:G?.displayName??void 0,colorKey:D?.colId,colorName:D?.displayName??void 0}]}getData(G,D,z){let{categories:B,data:Q,groupData:J,grouping:U}=G;if(U){let Z=z?Q.concat(J?.map((S)=>{let X={...S};return delete X[D.colId],X})??[]):Q;return qg(Z,(S)=>S[Yg]?.value??null)}else{let Z=B.map(({id:S})=>S);return Wg(Q,Z)}}},_g=class extends qz{getAxes(G){let D=this.standaloneChartType==="radial-bar";return{angle:{type:D?"angle-number":"angle-category"},radius:{type:D?"radius-category":"radius-number"}}}getSeries(G){let{fields:D,categories:z,seriesGroupType:B}=G,[Q]=z,J=this.standaloneChartType==="radial-bar",U=this.getSeriesGroupTypeOptions(B);return D.map((Z)=>{return{type:this.standaloneChartType,angleKey:J?Z.colId:Q.id,angleName:J?Z.displayName??void 0:Q.name,radiusKey:J?Q.id:Z.colId,radiusName:J?Q.name:Z.displayName??void 0,...U}})}getSeriesGroupType(){let G=this.standaloneChartType;if(!["nightingale","radial-bar","radial-column"].includes(G))return;let D=this.getChart().series?.[0]?.properties.toJson(),z=()=>D.normalizedTo?"normalized":"stacked";if(G==="nightingale")return D.grouped?"grouped":z();else return D.stacked?z():"grouped"}getUpdateOptions(G,D){let z=this.getAxes(G);return{...D,data:this.getData(G,z),axes:z,series:this.getSeries(G)}}getData(G,D){if(D.angle.type==="angle-category"||D.radius.type==="radius-category"){let[B]=G.categories;return this.transformCategoryData(G.data,B.id)}else return G.data}getSeriesGroupTypeOptions(G){if(!G)return{};return{grouped:G==="grouped"||void 0,stacked:G!=="grouped"||void 0,normalizedTo:G==="normalized"?100:void 0}}getSeriesChartThemeDefaults(){return{series:{highlight:nJ(this.crossFiltering)}}}},kg="AG-GRID-DEFAULT-HEATMAP-CATEGORY-KEY",wg="AG-GRID-DEFAULT-HEATMAP-SERIES-KEY",Kg="AG-GRID-DEFAULT-HEATMAP-VALUE-KEY";function fg(G,D){return G.reduce((z,B,Q,J)=>z.concat(D(B,Q,J)),[])}var Ng=class extends qz{getUpdateOptions(G,D){let z=wg,B=Kg,Q=kg;return{...D,series:this.getSeries(G,z,B,Q),data:this.getData(G,z,B,Q)}}getSeries(G,D,z,B){let[Q]=G.categories;return[{type:this.standaloneChartType,yKey:B,xKey:D,colorKey:z,yName:Q.name,xName:void 0,colorName:void 0}]}getData(G,D,z,B){let[Q]=G.categories;return fg(G.data,(J,U)=>{let Z=J[Q.id],S=Z==null?"":String(Z),X={id:U,value:Z,toString:()=>S};return G.fields.map(({colId:Y,displayName:W})=>({...J,[D]:W,[z]:J[Y],[B]:X}))})}getSeriesChartThemeDefaults(){return{gradientLegend:{gradient:{preferredLength:200},position:"right"},series:{tooltip:{renderer:Fg}}}}};function Fg(G){let{xKey:D,yKey:z,colorKey:B,yName:Q,datum:J}=G;return{title:"",data:[{label:Q,value:J[z]},{label:J[D],value:B&&J[B]}].map(({label:Z,value:S})=>({label:String(Z),value:String(S)}))}}var vg=class extends Ag{wireBeans(G){this.sortSvc=G.sortSvc,this.gridRowModel=G.rowModel,this.colModel=G.colModel,this.valueSvc=G.valueSvc,this.pivotResultCols=G.pivotResultCols,this.rowNodeSorter=G.rowNodeSorter}getData(G){if(G.crossFiltering){if(G.grouping)return b1(141),{chartData:[],colNames:{}};if(!Cg(this.gos))return b1(142),{chartData:[],colNames:{}}}if(Vg(this.gos)&&G.pivoting)this.updatePivotKeysForSSRM();let z=this.extractRowsFromGridRowModel(G);return z.chartData=this.aggregateRowsByDimension(G,z.chartData),z}extractRowsFromGridRowModel(G){let{crossFiltering:D,startRow:z,endRow:B,valueCols:Q,dimensionCols:J,grouping:U,crossFilteringSort:Z,combineGroupValues:S}=G,X=[],Y={},W={},q={},H={},_=[],k;if(D)H=this.getFilteredRowNodes(),_=this.getAllRowNodes(Z),k=_.length;else{let F=this.gridRowModel.getRowCount()-1;if(z===B&&z===0&&J.length===0&&Q.length===0)k=0;else k=(B>=0?Math.min(B,F):F)-z+1}if(k>0)for(let F of Q){let E=[],I=F.getColDef().pivotKeys;if(I)E=I.slice();let V=F.getColDef().headerName;if(V)E.push(V);if(E.length>0)Y[F.getId()]=E}let w=0,K=0,f={};for(let F=0;Fh.filter(Boolean).join(" - ")};if(S){let g=P.toString(),c=f[g];if(c)P=c;else f[g]=P}if(I[A]=P,E.group)W[v.toString()]=F-w;let b=v.slice(1,v.length).toString();if(b)q[b]=W[b]}else I[A]=O}else I[gG]=F+1}for(let V of Q){let A=V.getColId();if(D){let R=A+"-filtered-out",O=this.valueSvc.getValue(V,E,"data"),u=O;if(O!=null){if(typeof O.toNumber==="function")u=O.toNumber();else if(typeof O.value==="number")u=O.value}if(H[E.id])I[A]=u,I[R]=G.aggFunc||G.isScatter?void 0:0;else I[A]=G.aggFunc||G.isScatter?void 0:0,I[R]=u}else{let R=this.valueSvc.getValue(V,E,"data");if(R&&typeof R.value==="number")R=R.value;if(R&&Object.prototype.hasOwnProperty.call(R,"toString"))R=parseFloat(R.toString());I[A]=R!=null&&typeof R.toNumber==="function"?R.toNumber():R}}X.push(I)}let N;if(U){let F=Object.values(q),E=X;X=[],N=[];for(let I=0;Itypeof N[H]<"u").map((N)=>N[H]),k=S({values:_,column:q,colDef:q.colDef,pivotResultColumn:void 0,rowNode:void 0,data:void 0,aggregatedChildren:[],api:X,context:Y});W[H]=k&&typeof k.value<"u"?k.value:k;let w=`${H}-filtered-out`,K=W.__children.filter((N)=>typeof N[w]<"u").map((N)=>N[w]),f=S({values:K,column:q,colDef:q.colDef,pivotResultColumn:void 0,rowNode:void 0,data:void 0,aggregatedChildren:[],api:X,context:Y});W[w]=f&&typeof f.value<"u"?f.value:f}else{let _=W.__children.map((w)=>w[H]),k=S({values:_,column:q,colDef:q.colDef,pivotResultColumn:void 0,rowNode:void 0,data:void 0,aggregatedChildren:[],api:X,context:Y});W[H]=k&&typeof k.value<"u"?k.value:k}}}return U}updatePivotKeysForSSRM(){let G=this.pivotResultCols?.getPivotResultCols()?.list;if(!G)return;let D=this.extractPivotKeySeparator(G);for(let z of G)if(D==="")z.getColDef().pivotKeys=[];else{let B=z.getColId().split(D);z.getColDef().pivotKeys=B.slice(0,B.length-1)}}extractPivotKeySeparator(G){if(G.length===0)return"";let D=(B,Q)=>{let J=B.getGroupId();if(!B.getParent())return Q.split(J)[1][0];return D(B.getParent(),J)},z=G[0];if(z.getParent()==null)return"";return D(z.getParent(),z.getColId())}getGroupLabels(G,D){let z=[D];while(G&&G.level!==0)if(G=G.parent,G)if(G.group){let B=this.colModel.getCol(Rg);if(B){let Q=this.valueSvc.getValue(B,G,"data"),J=Q?.toString?String(Q.toString()):" ";z.push(J)}}else z.push(G.key);return z}getFilteredRowNodes(){let G={};return this.gridRowModel.forEachNodeAfterFilterAndSort((D)=>{G[D.id]=D}),G}getAllRowNodes(G){let D=[];this.gridRowModel.forEachNode((Q)=>{D.push(Q)});let z=this.rowNodeSorter;if(!z)return D;let B=G===!0?this.sortSvc?.getSortOptions():G;if(!B||B.length==0)return D;return z.doFullSortInPlace(D,B)}},jg=class extends Og{constructor(){super(...arguments);this.valueColsWithoutSeriesType=new Set}wireBeans(G){this.colModel=G.colModel,this.colNames=G.colNames,this.valueSvc=G.valueSvc}postConstruct(){let G=()=>this.valueColsWithoutSeriesType.clear();this.addManagedEventListeners({newColumnsLoaded:G,rowDataUpdated:G})}getColumn(G){return this.colModel.getColDefCol(G)}getAllDisplayedColumns(){return this.beans.visibleCols.allCols}getColDisplayName(G){return this.colNames.getDisplayNameForColumn(G,"chart")}getColGroupDisplayName(G){return this.colNames.getDisplayNameForColumnGroup(G,"chart")}getRowGroupColumns(){return this.beans.rowGroupColsSvc?.columns??[]}getGroupDisplayColumns(){return this.beans.showRowGroupCols?.columns??[]}isPivotMode(){return this.colModel.isPivotMode()}isPivotActive(){return this.colModel.isPivotActive()}getChartColumns(){let G=this.colModel.getCols(),D=new Set,z=new Set;for(let B of G){let Q=B.getColDef(),J=Q.chartDataType;if(J)switch(J){case"category":case"time":D.add(B);continue;case"series":z.add(B);continue;case"excluded":continue;default:g5(153,{chartDataType:J});break}if(Q.colId==="ag-Grid-AutoColumn"){D.add(B);continue}if(!B.isPrimary()){z.add(B);continue}(this.isInferredValueCol(B)?z:D).add(B)}return{dimensionCols:D,valueCols:z}}isInferredValueCol(G){let D=G.getColId();if(D==="ag-Grid-AutoColumn")return!1;let z=ug(this.beans,{rowIndex:0,rowPinned:null});if(!z)return this.valueColsWithoutSeriesType.has(D);let B=this.valueSvc.getValue(G,z,"data");if(B==null)B=this.extractLeafData(z,G);if(B!=null){if(typeof B.toNumber==="function")B=B.toNumber();else if(typeof B.value==="number")B=B.value}let Q=typeof B==="number"||G.colDef.cellDataType==="number"||["series","time"].includes(G.colDef.chartDataType);if(Q)this.valueColsWithoutSeriesType.add(D);else if(B==null&&G.colDef.cellDataType!=="number")g5(265,{colId:D});return Q}extractLeafData(G,D){let z=G.data&&this.valueSvc.getValue(D,G,"data");if(z!=null)return z;let B=G.childrenAfterGroup;if(B)for(let Q=0,J=B.length;Q0;if(this.chartDataModel.chartType==="customCombo"||G)this.chartDataModel.chartType="customCombo",this.savedCustomSeriesChartTypes=this.seriesChartTypes||[]}updateSeriesChartTypes(){if(!this.chartDataModel.isComboChart())return;if(this.seriesChartTypes=this.seriesChartTypes.map((G)=>{let D=["groupedColumn","stackedColumn","stackedArea"].includes(G.chartType);return G.secondaryAxis=D?!1:G.secondaryAxis,G}),this.chartDataModel.chartType==="customCombo"){this.updateSeriesChartTypesForCustomCombo();return}this.updateChartSeriesTypesForBuiltInCombos()}updateSeriesChartTypesForCustomCombo(){if(!(this.seriesChartTypes&&this.seriesChartTypes.length>0)&&!this.suppressComboChartWarnings)v1(150);this.seriesChartTypes=this.seriesChartTypes.map((B)=>{if(!gg.has(B.chartType))v1(151,{chartType:B.chartType}),B.chartType="line";return B});let D=(B)=>{if(!this.savedCustomSeriesChartTypes||this.savedCustomSeriesChartTypes.length===0)this.savedCustomSeriesChartTypes=this.seriesChartTypes;let Q=this.savedCustomSeriesChartTypes.find((J)=>J.colId===B.colId);if(!Q){if(B.selected&&!this.suppressComboChartWarnings)v1(152,{colId:B.colId});return{colId:B.colId,chartType:"line",secondaryAxis:!1}}return Q},z=this.chartDataModel.valueColState.map(D);this.seriesChartTypes=z,this.savedCustomSeriesChartTypes=z,this.suppressComboChartWarnings=!0}updateChartSeriesTypesForBuiltInCombos(){let{chartType:G,valueColState:D}=this.chartDataModel,z=G==="columnLineCombo"?"groupedColumn":"stackedArea",B=G==="columnLineCombo"?"line":"groupedColumn",Q=D.filter((U)=>U.selected),J=Math.ceil(Q.length/2);this.seriesChartTypes=Q.map((U,Z)=>{let S=Z>=J?B:z;return{colId:U.colId,chartType:S,secondaryAxis:!1}})}},gG="AG-GRID-DEFAULT-CATEGORY",yg=class extends Eg{constructor(G){super();this.unlinked=!1,this.chartData=[],this.valueColState=[],this.dimensionColState=[],this.colNames={},this.crossFiltering=!1,this.crossFilteringSort=!0,this.grouping=!1,this.useGroupColumnAsCategory=!1,this.params=G,this.chartId=G.chartId,this.setParams(G)}wireBeans(G){this.rangeSvc=G.rangeSvc,this.chartTranslation=G.chartTranslation}setParams(G){let{chartType:D,pivotChart:z,chartThemeName:B,switchCategorySeries:Q,aggFunc:J,cellRange:U,suppressChartRanges:Z,unlinkChart:S,crossFiltering:X,crossFilteringSort:Y,seriesGroupType:W,useGroupColumnAsCategory:q}=G;this.chartType=D,this.pivotChart=z??!1,this.chartThemeName=B,this.switchCategorySeries=!!Q,this.aggFunc=J,this.referenceCellRange=U,this.suppliedCellRange=U,this.suppressChartRanges=Z??!1,this.unlinked=!!S,this.crossFiltering=!!X,this.crossFilteringSort=Y??!0,this.seriesGroupType=W,this.useGroupColumnAsCategory=!!q}postConstruct(){this.datasource=this.createManagedBean(new vg),this.chartColSvc=this.createManagedBean(new jg),this.comboChartModel=this.createManagedBean(new Tg(this)),this.updateCellRanges({setColsFromRange:!0}),this.updateData()}updateModel(G){let{cellRange:D,seriesChartTypes:z}=G;if(D!==this.suppliedCellRange)this.dimensionCellRange=void 0,this.valueCellRange=void 0;if(this.setParams(G),this.updateSelectedDimensions(D?.columns),this.updateCellRanges({setColsFromRange:!0}),this.isComboChart()||z)this.comboChartModel.update(z);if(!this.unlinked)this.updateData()}updateCellRanges(G){let{updatedColState:D,resetOrder:z,maintainColState:B,setColsFromRange:Q}=G??{};if(this.valueCellRange)this.referenceCellRange=this.valueCellRange;let{dimensionCols:J,valueCols:U}=this.chartColSvc.getChartColumns(),Z=this.getAllColumnsFromRanges();if(D)this.updateColumnState(D,z);if(this.setDimensionCellRange(J,Z,D),this.setValueCellRange(U,Z,Q),!D&&!B)this.resetColumnState(),this.syncDimensionCellRange();this.comboChartModel.updateSeriesChartTypes()}updateData(){let{startRow:G,endRow:D}=this.getRowIndexes();if(this.pivotChart)this.resetColumnState();this.grouping=this.isGrouping();let z={aggFunc:this.aggFunc,dimensionCols:this.getSelectedDimensions(),grouping:this.grouping,pivoting:this.isPivotActive(),crossFiltering:this.crossFiltering,crossFilteringSort:this.getCrossFilteringSort(),valueCols:this.getSelectedValueCols(),startRow:G,endRow:D,isScatter:["scatter","bubble"].includes(this.chartType),combineGroupValues:rP(l(this.chartType))},{chartData:B,colNames:Q,groupChartData:J}=this.datasource.getData(z);this.chartData=B,this.groupChartData=J,this.colNames=Q,this.categoryAxisType=void 0}isGrouping(){let G=this.gos.get("treeData"),D=G?null:this.chartColSvc.getRowGroupColumns(),z=G||D&&D.length>0,B=this.getSelectedDimensions().map(({colId:U})=>U),J=this.chartColSvc.getGroupDisplayColumns().map((U)=>U.getColId()).some((U)=>B.includes(U));return!!z&&J}getSelectedValueCols(){return this.valueColState.filter((G)=>G.selected).map((G)=>G.column)}getSelectedDimensions(){return this.dimensionColState.filter((G)=>G.selected)}getValueColState(){return this.valueColState.map(this.displayNameMapper.bind(this))}displayNameMapper(G){let{column:D}=G;if(D){let z=this.getColDisplayName(D);G.displayName=this.isPivotMode()?this.getPivotDisplayName(D,z):z}else{let z=this.colNames[G.colId];G.displayName=z?z.join(" - "):this.getColDisplayName(D)}return G}getPivotDisplayName(G,D){let z=!1,B=[D],Q=(J)=>{if(!J)return;let U=this.chartColSvc.getColGroupDisplayName(J);if(U?.length)B.unshift(U),Q(J.getParent());else z=!0};if(Q(G.getParent()),z){let J=this.colNames[G.getColId()];if(J)B=J}return B.join(" - ")}getColDisplayName(G){return this.chartColSvc.getColDisplayName(G)}isPivotMode(){return this.chartColSvc.isPivotMode()}getChartDataType(G){let D=this.chartColSvc.getColumn(G);return D?D.getColDef().chartDataType:void 0}getConvertTime(G){let D=this.chartColSvc.getColumn(G);if(D?.colDef.cellDataType==="dateString")return this.beans.dataTypeSvc?.getDateParserFunction(D);return}isPivotActive(){return this.chartColSvc.isPivotActive()}createCellRange(G,...D){return{id:this.chartId,startRow:this.referenceCellRange.startRow,endRow:this.referenceCellRange.endRow,columns:D,startColumn:G===pz.DIMENSION||this.referenceCellRange.startColumn==null?D[0]:this.referenceCellRange.startColumn,type:G}}getAllColumnsFromRanges(){if(this.pivotChart)return new Set(this.chartColSvc.getAllDisplayedColumns());let G=this.dimensionCellRange||this.valueCellRange?[]:this.referenceCellRange.columns;if(this.dimensionCellRange)G.push(...this.dimensionCellRange.columns);if(this.valueCellRange)G.push(...this.valueCellRange.columns);return new Set(G)}getRowIndexes(){let G=0,D=0,{rangeSvc:z,valueCellRange:B,dimensionCellRange:Q}=this,J=B||Q;if(z&&J){G=z.getRangeStartRow(J).rowIndex;let U=z.getRangeEndRow(J);D=U.rowPinned==="bottom"?-1:U.rowIndex}return{startRow:G,endRow:D}}resetColumnState(){let{dimensionCols:G,valueCols:D}=this.chartColSvc.getChartColumns(),z=this.getAllColumnsFromRanges(),B=this.valueColState.length<1;this.dimensionColState=[],this.valueColState=[];let Q=VD(l(this.chartType)),J=!1,U=1,Z=this.suppliedCellRange.columns[0],S=this.gos.get("treeData"),X=S?null:this.chartColSvc.getRowGroupColumns(),Y=S||X&&X.length>0;G.forEach((H)=>{let _=Mg(H),k=this.crossFiltering&&this.aggFunc?Z.getColId()===H.getColId():this.useGroupColumnAsCategory&&Y&&_||(!J||Q)&&z.has(H);if(this.dimensionColState.push({column:H,colId:H.getColId(),displayName:this.getColDisplayName(H),selected:k,order:U++}),k)J=!0});let W={colId:gG,displayName:this.chartTranslation.translate("defaultCategory"),selected:!J,order:0};this.dimensionColState.unshift(W);let q=this.referenceCellRange.columns.filter((H)=>D.has(H));D.forEach((H)=>{if(B&&this.referenceCellRange.columns.includes(H))H=q.shift();this.valueColState.push({column:H,colId:H.getColId(),displayName:this.getColDisplayName(H),selected:z.has(H),order:U++})})}updateColumnState(G,D){let z=(X)=>X.colId===G.colId,{dimensionColState:B,valueColState:Q}=this,J=B.find(z),U=Q.find(z);if(J)if(!VD(l(this.chartType))){let Y=G.selected?J:B.filter((W)=>W!==J).find(({selected:W})=>W);B.forEach((W)=>W.selected=W===Y)}else J.selected=G.selected;else if(U)U.selected=G.selected;let Z=[...B,...Q],S=[];if(!D)Z.forEach((X,Y)=>{if(Y===G.order)S.push(G.colId);if(X.colId!==G.colId)S.push(X.colId)}),Z.forEach((X)=>{let Y=S.indexOf(X.colId);X.order=Y>=0?S.indexOf(X.colId):Z.length-1});this.reorderColState()}reorderColState(){let G=(D,z)=>D.order-z.order;this.dimensionColState.sort(G),this.valueColState.sort(G)}setDimensionCellRange(G,D,z){this.dimensionCellRange=void 0;let B=VD(l(this.chartType));if(!z&&!this.dimensionColState.length){let Z=[];if(G.forEach((S)=>{if(Z.length>0&&!B||!D.has(S))return;Z.push(S)}),Z.length>0)this.dimensionCellRange=this.createCellRange(pz.DIMENSION,...Z);return}let Q=z?[z]:[];if(this.crossFiltering&&this.aggFunc){let Z=this.suppliedCellRange.columns[0];Q=this.dimensionColState.filter((S)=>S.colId===Z.getColId())}else if(B||Q.length===0||Q.some(({column:Z})=>!Z||!G.has(Z)))Q=this.dimensionColState.filter((Z)=>Z.selected);let J=Q.length===1?Q[0].colId===gG:!1,U=Q.map(({column:Z})=>Z).filter((Z)=>Z!=null);if(U.length>0&&!J)this.dimensionCellRange=this.createCellRange(pz.DIMENSION,...U)}setValueCellRange(G,D,z){this.valueCellRange=void 0;let B=[],Q=bB(this.chartType),J=0;if(G.forEach((U)=>{if(z){if((Q==null||JZ.selected&&Z.colId===U.getColId()))B.push(U)}),B.length>0){let U=[];if(this.valueColState.length>0)U=this.valueColState.map((Z)=>Z.colId);else D.forEach((Z)=>U.push(Z.getColId()));B.sort((Z,S)=>U.indexOf(Z.getColId())-U.indexOf(S.getColId())),this.valueCellRange=this.createCellRange(pz.VALUE,...B)}}resetCellRanges(G,D){if(!G&&!D)return;let{dimensionCols:z,valueCols:B}=this.chartColSvc.getChartColumns(),Q=this.getAllColumnsFromRanges();if(G)this.setDimensionCellRange(z,Q);if(D)this.setValueCellRange(B,Q)}updateSelectedDimensions(G){let D=new Set(G.map((B)=>B.getColId()));if(!VD(l(this.chartType))){let Q=(this.dimensionColState.find((J)=>D.has(J.colId))||this.dimensionColState[0]).colId;this.dimensionColState=this.dimensionColState.map((J)=>({...J,selected:J.colId===Q}))}else{let B=this.dimensionColState.filter((J)=>D.has(J.colId)),Q=new Set(B.map((J)=>J.colId));this.dimensionColState=this.dimensionColState.map((J)=>({...J,selected:Q.has(J.colId)}))}}syncDimensionCellRange(){let G=this.getSelectedDimensions();if(G.length===0)return;let D=G.map(({column:z})=>z).filter((z)=>z!=null);if(D.length>0)this.dimensionCellRange=this.createCellRange(pz.DIMENSION,...D)}isComboChart(G){return cJ(G??this.chartType)}getCrossFilteringSort(){let G=this.crossFilteringSort;if(typeof G==="boolean")return G;let D=[];return G.forEach(({sort:z,colId:B})=>{let Q=this.chartColSvc.getColumn(B);if(Q)D.push({sort:z,column:Q,type:Ig(Q.getSortDef()?.type)})}),D}},e8=class extends HD{getAxes(G,D){return{x:{type:this.getXAxisType(G),position:this.isHorizontal(D)?"left":"bottom"},y:{type:"number",position:this.isHorizontal(D)?"bottom":"left"}}}computeSeriesStatistics(G,D){let{data:z,fields:B}=G,[Q]=G.categories,J=Q.id||gG,U=this.groupDataByCategory(J,z);return Array.from(U).map(([Z,S])=>{let X={[Q.id]:Z};return B.forEach((Y,W)=>{let q=S.map((_)=>_[Y.colId]).filter((_)=>typeof _==="number"&&!isNaN(_)),H=D(q);for(let _ of Object.keys(H)){let k=`${_}:${W}`;X[k]=q.length>0?H[_]:null}}),X})}groupDataByCategory(G,D){let z=(B)=>{if(G===gG)return 1;let Q=B[G];if(Q===null||Q===void 0)return"";return Q instanceof Date?Q.getTime():Q};return D.reduce((B,Q)=>{let J=z(Q),U=B.get(J);if(U)U.push(Q);else B.set(J,[Q]);return B},new Map)}},xg=class extends e8{getSeries(G){let[D]=G.categories;return G.fields.map((z,B)=>({type:this.standaloneChartType,xKey:D.id,xName:D.name,yName:z.displayName??void 0,minName:"Min",q1Name:"Q1",medianName:"Median",q3Name:"Q3",maxName:"Max",minKey:`min:${B}`,q1Key:`q1:${B}`,medianKey:`median:${B}`,q3Key:`q3:${B}`,maxKey:`max:${B}`}))}getData(G){return this.computeSeriesStatistics(G,(D)=>{let z=D.sort((B,Q)=>B-Q);return{min:z[0],q1:this.quantile(z,0.25),median:this.quantile(z,0.5),q3:this.quantile(z,0.75),max:z[z.length-1]}})}quantile(G,D){let z=(G.length-1)*D,B=Math.floor(z),Q=z-B;if(G[B+1]!==void 0)return G[B]+Q*(G[B+1]-G[B]);return G[B]}},cg=class extends e8{getSeries(G){let[D]=G.categories;return G.fields.map((z,B)=>({type:this.standaloneChartType,xKey:D.id,xName:D.name,yName:z.displayName??void 0,yLowName:"Min",yHighName:"Max",yLowKey:`min:${B}`,yHighKey:`max:${B}`}))}getData(G){return this.computeSeriesStatistics(G,(D)=>{return{min:Math.min(...D),max:Math.max(...D)}})}},hg=class extends xP{constructor(){super(...arguments);this.beanName="enterpriseChartProxyFactory"}createChartProxy(G){switch(G.chartType){case"histogram":return new Lg(G);case"radarLine":case"radarArea":case"nightingale":case"radialColumn":case"radialBar":return new _g(G);case"rangeBar":case"rangeArea":return new cg(G);case"boxPlot":return new xg(G);case"treemap":case"sunburst":return new Hg(G);case"heatmap":return new Ng(G);case"waterfall":return new Sg(G);case"funnel":case"coneFunnel":case"pyramid":return new Xg(G)}return}},D9=class extends pg{constructor(G,D,z,B){super();this.chartController=G,this.eGui=D,this.cssClass=z,this.createPanels=B,this.panels=[]}postConstruct(){this.addManagedListeners(this.chartController,{chartUpdated:()=>this.refreshPanels(!0),chartApiUpdate:()=>this.refreshPanels(!1)})}addComponent(G){this.createBean(G),this.panels.push(G),G.addCss(this.cssClass),this.eGui.appendChild(G.getGui())}refreshPanels(G){let D=this.chartController.getChartType(),z=this.chartController.isGrouping(),B=l(D);if(G&&D===this.chartType&&z===this.isGrouping)return;this.destroyPanels(),this.createPanels(D,B),this.chartType=D,this.isGrouping=z}destroyPanels(){for(let G of this.panels)mg(G.getGui()),this.destroyBean(G);this.panels=[]}destroy(){this.destroyPanels(),super.destroy()}},og=class extends sg{constructor(G){super();this.chartMenuParamsFactory=G}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G=this.chartMenuParamsFactory.addEnableParams("animation.enabled",{cssIdentifier:"charts-advanced-settings-top-level",direction:"vertical",suppressOpenCloseIcons:!0,title:this.chartTranslation.translate("animation"),suppressEnabledCheckbox:!0,useToggle:!0}),D=this.chartMenuParamsFactory.getDefaultNumberInputParams("animation.duration","durationMillis",{min:0});this.setTemplate(`
`,[p,tg],{animationGroup:G,animationHeightInput:D})}},z9=class extends XJ{constructor(G){super({...G,dialogCallbacks:g6})}},TG={selector:"AG-COLOR-PICKER",component:z9},eg=class extends ag{constructor(G){super();this.chartMenuParamsFactory=G}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G=this.chartMenuParamsFactory.addEnableParams("crosshair.enabled",{cssIdentifier:"charts-advanced-settings-top-level",direction:"vertical",suppressOpenCloseIcons:!0,title:this.chartTranslation.translate("crosshair"),suppressEnabledCheckbox:!0,useToggle:!0}),D=this.chartMenuParamsFactory.getDefaultCheckboxParams("crosshair.label.enabled","crosshairLabel"),z=this.chartMenuParamsFactory.getDefaultCheckboxParams("crosshair.snap","crosshairSnap"),B=this.chartMenuParamsFactory.getDefaultColorPickerParams("crosshair.stroke","color");this.setTemplate(`
`,[p,rg,TG],{crosshairGroup:G,crosshairLabelCheckbox:D,crosshairSnapCheckbox:z,crosshairStrokeColorPicker:B})}},zT=class extends DT{constructor(G){super();this.chartMenuParamsFactory=G}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G=this.chartMenuParamsFactory.addEnableParams("navigator.enabled",{cssIdentifier:"charts-advanced-settings-top-level",direction:"vertical",suppressOpenCloseIcons:!0,title:this.chartTranslation.translate("navigator"),suppressEnabledCheckbox:!0,useToggle:!0}),D=this.chartMenuParamsFactory.getDefaultSliderParams("navigator.height","height",60);D.minValue=10;let z=this.chartMenuParamsFactory.getDefaultCheckboxParams("navigator.miniChart.enabled","miniChart");this.setTemplate(`
`,[p,WG,GT],{navigatorGroup:G,navigatorHeightSlider:D,navigatorMiniChartCheckbox:z})}},UT=class extends QT{constructor(G){super();this.chartMenuParamsFactory=G,this.zoomScrollingStepInput=JT}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G=this.chartMenuParamsFactory.addEnableParams("zoom.enabled",{cssIdentifier:"charts-advanced-settings-top-level",direction:"vertical",suppressOpenCloseIcons:!0,title:this.chartTranslation.translate("zoom"),suppressEnabledCheckbox:!0,useToggle:!0}),D=this.chartMenuParamsFactory.getDefaultCheckboxParams("zoom.enableScrolling","scrollingZoom"),z=this.chartMenuParamsFactory.getDefaultSliderParams("zoom.scrollingStep","scrollingStep",1);z.step=0.01,z.minValue=z.step;let B=this.chartMenuParamsFactory.getDefaultCheckboxParams("zoom.enableSelecting","selectingZoom");D.onValueChange=((Q)=>(J)=>{if(!Q)return;Q(J),this.zoomScrollingStepInput.setDisabled(!J)})(D.onValueChange),this.setTemplate(`
`,[p,BT,WG],{zoomGroup:G,zoomScrollingCheckbox:D,zoomScrollingStepInput:z,zoomSelectingCheckbox:B}),this.zoomScrollingStepInput.setDisabled(!D.value)}},ZT=["navigator","zoom","animation","crosshair"],$T=class extends lg{constructor(G){super('
');this.chartMenuContext=G}postConstruct(){this.chartPanelFeature=this.createManagedBean(new D9(this.chartMenuContext.chartController,this.getGui(),"ag-chart-advanced-settings-section",(G,D)=>this.createPanels(G,D))),this.chartPanelFeature.refreshPanels()}createPanels(G,D){for(let z of ZT){if(!this.isGroupPanelShownForSeries(z,D))continue;let B=this.createPanel(z);this.chartPanelFeature.addComponent(B)}}isGroupPanelShownForSeries(G,D){return G==="animation"||SD(D)&&!zJ(D)}createPanel(G){let{chartMenuParamsFactory:D,chartAxisMenuParamsFactory:z}=this.chartMenuContext;switch(G){case"navigator":return new zT(D);case"zoom":return new UT(D);case"animation":return new og(D);case"crosshair":return new eg(z)}}},LT=class extends ig{constructor(){super(...arguments);this.beanName="advSettingsMenuFactory"}showMenu(G,D){this.hideMenu();let z=this.createBean(new ST(G));this.activeDialog=this.createBean(new PB({title:this.beans.chartTranslation.translate("advancedSettings"),component:z,width:300,height:400,resizable:!0,movable:!0,centered:!0,closable:!0,afterGuiAttached:()=>{G9(z.getGui())[0]?.focus()},closedCallback:()=>{this.activeMenu=this.destroyBean(this.activeMenu),this.activeDialog=void 0,D?.focus({preventScroll:!0})}})),this.activeMenu=z}hideMenu(){if(this.activeDialog)this.destroyBean(this.activeDialog)}destroy(){this.activeMenu=this.destroyBean(this.activeMenu),this.activeDialog=this.destroyBean(this.activeDialog),super.destroy()}},ST=class extends ng{constructor(G){super('
');this.chartMenuContext=G}postConstruct(){this.advancedSettingsPanel=this.createManagedBean(new $T(this.chartMenuContext)),this.getGui().appendChild(this.advancedSettingsPanel.getGui()),this.initialiseTabGuard({onTabKeyDown:this.onTabKeyDown.bind(this),focusTrapActive:!0})}onTabKeyDown(G){if(G.defaultPrevented)return;G.preventDefault();let D=G.shiftKey,z=this.advancedSettingsPanel.getGui(),B=dg(this.beans,z,!1,D);if(B)B.focus();else{let Q=G9(z);if(Q.length)Q[D?Q.length-1:0].focus()}}},wT=class extends XT{constructor(){super(...arguments);this.beanName="chartMenuListFactory"}wireBeans(G){this.popupSvc=G.popupSvc,this.chartMenuSvc=G.chartMenuSvc,this.chartTranslation=G.chartTranslation}showMenuList(G){let{eventSource:D,showMenu:z,chartMenuContext:B,closeOnElementClick:Q}=G,J=this.chartMenuSvc.doChartToolPanelsExist(B.chartController),U=this.mapWithStockItems(this.getMenuItems(B.chartController,J),B,z,D,J);if(!U.length)return;let Z=this.createBean(new KT(U));this.activeChartMenuList=Z;let S=-1,X="left";if(this.gos.get("enableRtl"))S=1,X="right";let Y=Z.getGui();this.popupSvc.addPopup({modal:!0,eChild:Y,closeOnEsc:!0,alwaysOnTop:!0,closedCallback:()=>{if(this.destroyBean(Z),this.activeChartMenuList=void 0,kT(this.beans))D.focus({preventScroll:!0})},afterGuiAttached:(W)=>{Z.afterGuiAttached(W,Q)},positionCallback:()=>{this.popupSvc.positionPopupByComponent({type:"chartMenu",eventSource:D,ePopup:Y,alignSide:X,nudgeX:4*S,nudgeY:4,position:"under",keepWithinBounds:!0})},ariaLabel:"Chart Menu"})}getMenuItems(G,D){let z=[...D?["chartEdit"]:[],...G.isEnterprise()?["chartAdvancedSettings"]:[],G.isChartLinked()?"chartUnlink":"chartLink","chartDownload"],B=this.gos.get("chartMenuItems");if(!B)return z;else if(Array.isArray(B))return B;else return B(qT(this.gos,{defaultItems:z,chartId:G.getChartId()}))}mapWithStockItems(G,D,z,B,Q){if(!G)return[];let J=[];for(let U of G){let Z;if(typeof U==="string")Z=this.getStockMenuItem(U,D,z,B,Q);else Z={...U};if(!Z)continue;let{subMenu:S}=Z;if(Array.isArray(S))Z.subMenu=this.mapWithStockItems(S,D,z,B,Q);J.push(Z)}return J}getStockMenuItem(G,D,z,B,Q){switch(G){case"chartEdit":return Q?this.createMenuItem(this.chartTranslation.translate("chartEdit"),"chartsMenuEdit",z):null;case"chartAdvancedSettings":return this.createMenuItem(this.chartTranslation.translate("chartAdvancedSettings"),"chartsMenuAdvancedSettings",()=>this.chartMenuSvc.openAdvancedSettings(D,B));case"chartUnlink":return D.chartController.isChartLinked()?this.createMenuItem(this.chartTranslation.translate("chartUnlink"),"unlinked",()=>this.chartMenuSvc.toggleLinked(D)):null;case"chartLink":return!D.chartController.isChartLinked()?this.createMenuItem(this.chartTranslation.translate("chartLink"),"linked",()=>this.chartMenuSvc.toggleLinked(D)):null;case"chartDownload":return this.createMenuItem(this.chartTranslation.translate("chartDownload"),"chartsDownload",()=>this.chartMenuSvc.downloadChart(D))}return null}createMenuItem(G,D,z){return{name:G,icon:HT(D,this.beans,null),action:z}}destroy(){this.destroyBean(this.activeChartMenuList),super.destroy()}},KT=class extends YT{constructor(G){super(` `);this.menuItems=G,this.eChartsMenu=WT}postConstruct(){this.mainMenuList=this.createManagedBean(new KJ(0)),this.mainMenuList.addMenuItems(this.menuItems),this.mainMenuList.addEventListener("closeMenu",this.onHidePopup.bind(this)),this.eChartsMenu.appendChild(this.mainMenuList.getGui())}onHidePopup(){this.hidePopupFunc?.()}afterGuiAttached({hidePopup:G},D){let z=Date.now();if(G){if(this.hidePopupFunc=G,this.addDestroyFunc(G),D){let B=()=>{if(Date.now()-z<500)return;this.hidePopupFunc()};D.addEventListener("click",B),this.addDestroyFunc(()=>{D?.removeEventListener("click",B)})}}_T(this.mainMenuList.getGui())}},FT=class extends fT{constructor(){super(...arguments);this.beanName="chartCrossFilterSvc"}filter(G,D=!1){let z=this.beans.filterManager,B=z?.getFilterModel()??{};if(D){if(Object.keys(B).length>0)z?.setFilterModel(null);return}let Q=T5(G);if(Q.indexOf("-filtered-out"))Q=Q.replace("-filtered-out","");this.updateFilters(B,G,Q)}updateFilters(G,D,z){let B=T5(D),Q=this.convertRawValue(z,D.datum[B]);if(Q===void 0)return;let J=this.beans.filterManager;J?.getColumnFilterInstance(z).then((U)=>{let Z=U?.filterType,S,X=(_)=>_;if(Z==="multi"){let _=IT(U);S=_.setFilter,X=_.processModel??X}else if(Z==="set")S=U;if(!S){NT(154,{colId:z});return}let Y=D.event.metaKey||D.event.ctrlKey,W=S.getFilterHandler().getCrossFilterModel((_,k,w)=>MT(Y,_(Q),k,w)),q=X(W),H=Y?{...G}:{};H[z]=q,J?.setFilterModel(H)})}convertRawValue(G,D){let{colModel:z,dataTypeSvc:B}=this.beans,Q=z.getColById(G),J=Q?.colDef;if(J&&B&&J.chartDataType==="time"&&J.cellDataType==="dateString")return B.getDateFormatterFunction(Q)(D);return D}};function ET(G,D,z){let B=Array(z);for(let Q=0;QET(Q,z,D)}}return{}}function T5(G){return G.xKey||G.calloutLabelKey}function MT(G,D,z,B){let Q;if(G)if(z.has(D)&&(B==null||B.includes(D))){if(Q=[],B==null){for(let J of z)if(J!==D)Q.push(J)}else for(let J of B)if(J!==D&&z.has(J))Q.push(J)}else{if(B==null)Q=Array.from(z);else{Q=[];for(let J of B)if(z.has(J))Q.push(J)}Q.push(D)}else Q=[D];return{filterType:"set",values:Q}}var RT=["chartUnlink","chartLink","chartDownload","chartMenu"],HB={settings:"chartSettings",data:"chartData",format:"chartFormat"},CT=class extends AT{constructor(){super(...arguments);this.beanName="chartMenuSvc"}wireBeans(G){this.advSettingsMenuFactory=G.advSettingsMenuFactory}downloadChart(G,D,z,B){G.chartController.getChartProxy().downloadChart(D,z,B)}toggleLinked(G){G.chartController.detachChartRange()}openAdvancedSettings(G,D){this.advSettingsMenuFactory?.showMenu(G,D)}hideAdvancedSettings(){this.advSettingsMenuFactory?.hideMenu()}getChartToolbarOptions(){let G=["chartMenu"],D=this.gos.getCallback("getChartToolbarItems");return D?D({defaultItems:G}).filter((B)=>{if(!RT.includes(B))return y5(155,{option:B}),!1;return!0}):G}getChartToolPanels(G){let D=this.gos.get("chartToolPanelsDef"),B=D?.panels?.map((U)=>{let Z=HB[U];if(!Z)y5(156,{panel:U});return Z}).filter((U)=>Boolean(U))??Object.values(HB);if(G.isPivotChart())B=B.filter((U)=>U!=="chartData");let Q=D?.defaultToolPanel,J=Q&&HB[Q]||B[0];return{panels:B,defaultPanel:J}}doesChartToolbarExist(){return this.getChartToolbarOptions().length>0}doChartToolPanelsExist(G){let{panels:D}=this.getChartToolPanels(G);return D.length>0}},bT={pivotChartTitle:"Pivot Chart",rangeChartTitle:"Range Chart",settings:"Chart",data:"Set Up",format:"Customize",categories:"Categories",defaultCategory:"(None)",series:"Series",switchCategorySeries:"Switch Category / Series",categoryValues:"Category Values",seriesLabels:"Series Labels",aggregate:"Aggregate",xyValues:"X Y Values",paired:"Paired Mode",axis:"Axis",xAxis:"Horizontal Axis",yAxis:"Vertical Axis",polarAxis:"Polar Axis",radiusAxis:"Radius Axis",navigator:"Navigator",zoom:"Zoom",animation:"Animation",crosshair:"Crosshair",color:"Color",thickness:"Thickness",preferredLength:"Preferred Length",xType:"X Type",axisType:"Axis Type",automatic:"Automatic",category:"Category",number:"Number",time:"Time",timeFormat:"Time Format",autoRotate:"Auto Rotate",labelRotation:"Rotation",circle:"Circle",polygon:"Polygon",square:"Square",cross:"Cross",diamond:"Diamond",plus:"Plus",triangle:"Triangle",heart:"Heart",orientation:"Orientation",fixed:"Fixed",parallel:"Parallel",perpendicular:"Perpendicular",radiusAxisPosition:"Position",ticks:"Ticks",gridLines:"Grid Lines",width:"Width",height:"Height",length:"Length",padding:"Padding",spacing:"Spacing",chartStyle:"Chart Style",title:"Title",chartTitles:"Titles",chartTitle:"Chart Title",chartSubtitle:"Subtitle",horizontalAxisTitle:"Horizontal Axis Title",verticalAxisTitle:"Vertical Axis Title",polarAxisTitle:"Polar Axis Title",titlePlaceholder:"Chart Title",background:"Background",font:"Font",weight:"Weight",top:"Top",right:"Right",bottom:"Bottom",left:"Left",labels:"Labels",calloutLabels:"Callout Labels",sectorLabels:"Sector Labels",positionRatio:"Position Ratio",size:"Size",shape:"Shape",minSize:"Minimum Size",maxSize:"Maximum Size",legend:"Legend",position:"Position",markerSize:"Marker Size",markerStroke:"Marker Stroke",markerPadding:"Marker Padding",itemSpacing:"Item Spacing",itemPaddingX:"Item Padding X",itemPaddingY:"Item Padding Y",layoutHorizontalSpacing:"Horizontal Spacing",layoutVerticalSpacing:"Vertical Spacing",strokeWidth:"Stroke Width",offset:"Offset",offsets:"Offsets",tooltips:"Tooltips",callout:"Callout",markers:"Markers",shadow:"Shadow",blur:"Blur",xOffset:"X Offset",yOffset:"Y Offset",lineWidth:"Line Width",lineDash:"Line Dash",lineDashOffset:"Dash Offset",scrollingZoom:"Scrolling",scrollingStep:"Scrolling Step",selectingZoom:"Selecting",durationMillis:"Duration (ms)",crosshairLabel:"Label",crosshairSnap:"Snap to Node",normal:"Normal",bold:"Bold",italic:"Italic",boldItalic:"Bold Italic",predefined:"Predefined",fillOpacity:"Fill Opacity",strokeColor:"Line Color",strokeOpacity:"Line Opacity",miniChart:"Mini-Chart",histogramBinCount:"Bin count",connectorLine:"Connector Line",seriesItems:"Series Items",seriesItemType:"Item Type",seriesItemPositive:"Positive",seriesItemNegative:"Negative",seriesItemLabels:"Item Labels",columnGroup:"Column",barGroup:"Bar",pieGroup:"Pie",lineGroup:"Line",scatterGroup:"X Y (Scatter)",areaGroup:"Area",polarGroup:"Polar",statisticalGroup:"Statistical",hierarchicalGroup:"Hierarchical",specializedGroup:"Specialized",combinationGroup:"Combination",groupedColumnTooltip:"Grouped",stackedColumnTooltip:"Stacked",normalizedColumnTooltip:"100% Stacked",groupedBarTooltip:"Grouped",stackedBarTooltip:"Stacked",normalizedBarTooltip:"100% Stacked",pieTooltip:"Pie",donutTooltip:"Donut",lineTooltip:"Line",stackedLineTooltip:"Stacked",normalizedLineTooltip:"100% Stacked",groupedAreaTooltip:"Area",stackedAreaTooltip:"Stacked",normalizedAreaTooltip:"100% Stacked",scatterTooltip:"Scatter",bubbleTooltip:"Bubble",histogramTooltip:"Histogram",radialColumnTooltip:"Radial Column",radialBarTooltip:"Radial Bar",radarLineTooltip:"Radar Line",radarAreaTooltip:"Radar Area",nightingaleTooltip:"Nightingale",rangeBarTooltip:"Range Bar",rangeAreaTooltip:"Range Area",boxPlotTooltip:"Box Plot",treemapTooltip:"Treemap",sunburstTooltip:"Sunburst",waterfallTooltip:"Waterfall",heatmapTooltip:"Heatmap",columnLineComboTooltip:"Column & Line",areaColumnComboTooltip:"Area & Column",customComboTooltip:"Custom Combination",innerRadius:"Inner Radius",startAngle:"Start Angle",endAngle:"End Angle",reverseDirection:"Reverse Direction",groupPadding:"Group Padding",seriesPadding:"Series Padding",tile:"Tile",whisker:"Whisker",cap:"Cap",capLengthRatio:"Length Ratio",labelPlacement:"Placement",inside:"Inside",outside:"Outside",noDataToChart:"No data available to be charted.",pivotChartRequiresPivotMode:"Pivot Chart requires Pivot Mode enabled.",chartSettingsToolbarTooltip:"Menu",chartLinkToolbarTooltip:"Linked to Grid",chartUnlinkToolbarTooltip:"Unlinked from Grid",chartDownloadToolbarTooltip:"Download Chart",chartMenuToolbarTooltip:"Menu",chartEdit:"Edit Chart",chartAdvancedSettings:"Advanced Settings",chartLink:"Link to Grid",chartUnlink:"Unlink from Grid",chartDownload:"Download Chart",histogramFrequency:"Frequency",seriesChartType:"Series Chart Type",seriesType:"Series Type",secondaryAxis:"Secondary Axis",seriesAdd:"Add a series",categoryAdd:"Add a category",bar:"Bar",column:"Column",histogram:"Histogram",advancedSettings:"Advanced Settings",direction:"Direction",horizontal:"Horizontal",vertical:"Vertical",seriesGroupType:"Group Type",groupedSeriesGroupType:"Grouped",stackedSeriesGroupType:"Stacked",normalizedSeriesGroupType:"100% Stacked",legendEnabled:"Enabled",groupedColumnFull:"Grouped Column",stackedColumnFull:"Stacked Column",normalizedColumnFull:"100% Stacked Column",groupedBarFull:"Grouped Bar",stackedBarFull:"Stacked Bar",normalizedBarFull:"100% Stacked Bar",stackedAreaFull:"Stacked Area",normalizedAreaFull:"100% Stacked Area",stackedLineFull:"Stacked Line",normalizedLineFull:"100% Stacked Line",customCombo:"Custom Combination",funnel:"Funnel",coneFunnel:"Cone Funnel",pyramid:"Pyramid",funnelGroup:"Funnel",funnelTooltip:"Funnel",coneFunnelTooltip:"Cone Funnel",pyramidTooltip:"Pyramid",dropOff:"Drop-Off",stageLabels:"Stage Labels",reverse:"Reverse",tooltipMode:"Tooltip Mode",tooltipModeSingle:"Single",tooltipModeShared:"Multiple",tooltipModeCompact:"Compact",groupedColumn:"Grouped",stackedColumn:"Stacked",pie:"Pie",donut:"Donut",line:"Line",scatter:"Scatter",bubble:"Bubble",area:"Area",stackedArea:"Stacked",radarLine:"Radar Line",radarArea:"Radar Area",nightingale:"Nightingale",radialColumn:"Radial Column",radialBar:"Radial Bar",boxPlot:"Box Plot",rangeBar:"Range Bar",rangeArea:"Range Area",treemap:"Treemap",sunburst:"Sunburst",waterfall:"Waterfall",heatmap:"Heatmap",columnLineCombo:"Column & Line",AreaColumnCombo:"Area & Column",ariaChartMenuClose:"Close Chart Edit Menu",ariaChartSelected:"Selected",group:"Group",timeFormatSlashesDDMMYYYY:"DD/MM/YYYY",timeFormatSlashesMMDDYYYY:"MM/DD/YYYY",timeFormatSlashesDDMMYY:"DD/MM/YY",timeFormatSlashesMMDDYY:"MM/DD/YY",timeFormatDotsDDMYY:"DD.M.YY",timeFormatDotsMDDYY:"M.DD.YY",timeFormatDashesYYYYMMDD:"YYYY-MM-DD",timeFormatSpacesDDMMMMYYYY:"DD MMMM YYYY",timeFormatHHMMSS:"HH:MM:SS",timeFormatHHMMSSAmPm:"HH:MM:SS AM/PM",sum:"Sum",first:"First",last:"Last",min:"Min",max:"Max",count:"Count",avg:"Average"},vT=class extends VT{constructor(){super(...arguments);this.beanName="chartTranslation"}translate(G){let D=this.getLocaleTextFunc(),z=bT[G];return D(G,z)}},Hz=(G)=>{return(D)=>{if(D==null)return!0;return G(D)}},n5=(G)=>typeof G==="string",lJ=(G)=>typeof G==="boolean",dT=(G)=>typeof G==="object",bG=(G,D)=>(z)=>`AG Grid - unable to update chart as invalid params supplied: \`${G}: ${z}\`, expected ${D}.`,B9=(G)=>{return`${G} is not supported in AG Charts Community ('ag-charts-enterprise' hasn't been loaded). See https://www.ag-grid.com/javascript-data-grid/integrated-charts-installation/ for more details.`},lT=["doughnut"],pJ=["type","chartId","chartType","chartThemeName","chartThemeOverrides","unlinkChart"];function pT(G){return!!m8(G)||cJ(G)}function mT(G){return lT.includes(G)}var tT=Hz((G)=>{if(pT(G))return!0;if(mT(G)){let D=S0(G);return U0(`The chart type '${G}' has been deprecated. Please use '${D}' instead.`),D}return!1}),sT=Hz((G)=>{return typeof G==="object"}),oT=Hz((G)=>{return typeof G==="object"}),rT=Hz((G)=>{return typeof G==="string"||typeof G==="function"}),Q9=(G)=>({property:"chartType",validationFn:Hz((D)=>G||!D||!mP(D)),warnMessage:(D)=>B9(`The '${D}' chart type`)}),J9=(G)=>({property:"switchCategorySeries",validationFn:Hz((D)=>{if(!D||G)return!0;return}),warnMessage:()=>B9("'switchCategorySeries' has been ignored as it"),warnIfFixed:!0}),mJ=()=>[{property:"chartId",validationFn:n5,warnMessage:bG("chartId","string")},{property:"chartType",validationFn:tT,warnMessage:bG("chartType","ChartType")},{property:"chartThemeName",validationFn:n5,warnMessage:bG("chartThemeName","string")},{property:"chartThemeOverrides",validationFn:sT,warnMessage:bG("chartThemeOverrides","AgChartThemeOverrides")},{property:"unlinkChart",validationFn:lJ,warnMessage:bG("unlinkChart","boolean")}],U9=(G)=>[{property:"cellRange",validationFn:oT,warnMessage:bG("cellRange","ChartParamsCellRange")},{property:"suppressChartRanges",validationFn:lJ,warnMessage:bG("suppressChartRanges","boolean")},{property:"aggFunc",validationFn:rT,warnMessage:bG("aggFunc","string or IAggFunc")},J9(G)];function aT(G,D){switch(G.type){case"rangeChartUpdate":return Gy(G,D);case"pivotChartUpdate":return Dy(G);case"crossFilterChartUpdate":return zy(G,D);default:return U0(`Invalid value supplied for 'type': ${G.type}. It must be either 'rangeChartUpdate', 'pivotChartUpdate', or 'crossFilterChartUpdate'.`),!1}}function eT(G,D){return aB(G,[Q9(D),J9(D)])}function Gy(G,D){let z=[...mJ(),Q9(D),...U9(D),{property:"seriesChartTypes",validationFn:(B)=>B===void 0||Array.isArray(B)&&B.every(dT),warnMessage:bG("seriesChartTypes","Array of SeriesChartType")},{property:"useGroupColumnAsCategory",validationFn:lJ,warnMessage:bG("useGroupColumnAsCategory","boolean")}];return aB(G,z,[...pJ,"cellRange","suppressChartRanges","switchCategorySeries","aggFunc","seriesChartTypes","seriesGroupType","useGroupColumnAsCategory"],"UpdateRangeChartParams")}function Dy(G){let D=[...mJ()];return aB(G,D,[...pJ],"UpdatePivotChartParams")}function zy(G,D){let z=[...mJ(),...U9(D)];return aB(G,z,[...pJ,"cellRange","suppressChartRanges","aggFunc"],"UpdateCrossFilterChartParams")}function aB(G,D,z,B){let Q=void 0;for(let J of D){let{property:U,validationFn:Z,warnMessage:S,warnIfFixed:X}=J;if(U in G){let Y=G[U],W=Z(Y);if(W===!0)continue;if(W===!1)return U0(S(Y)),!1;if(Q=Q||{...G},Q[U]=W,X)U0(S(Y))}}if(z){for(let J of Object.keys(G))if(!z.includes(J))return U0(`Unexpected property supplied. ${B} does not contain: \`${J}\`.`),!1}if(Q)return Q;return!0}var Z9=["ag-default","ag-material","ag-sheets","ag-polychroma","ag-vivid"],By=class extends nT{constructor(G){super();this.model=G,this.isEnterprise=()=>this.agChartsExports.isEnterprise}wireBeans(G){this.rangeSvc=G.rangeSvc,this.agChartsExports=G.agChartsExports}postConstruct(){if(this.setChartRange(),this.model.unlinked){if(this.rangeSvc)this.rangeSvc.setCellRanges([])}let G=this.updateForGridChange.bind(this,{});this.addManagedEventListeners({cellSelectionChanged:(D)=>{if(D.id&&D.id===this.model.chartId)this.updateForRangeChange()},columnMoved:G,columnPinned:G,columnVisible:G,columnRowGroupChanged:G,modelUpdated:G,cellValueChanged:this.updateForDataChange.bind(this),cellEditValuesChanged:this.updateForDataChange.bind(this)})}update(G){if(!this.validUpdateType(G))return!1;let D=aT(G,this.agChartsExports.isEnterprise);if(!D)return!1;let z=D===!0?G:D;return this.applyValidatedChartParams(z),!0}applyValidatedChartParams(G){let{chartId:D,chartType:z,chartThemeName:B,unlinkChart:Q}=G,U={...{chartId:D,pivotChart:this.model.pivotChart,chartType:z??this.model.chartType,chartThemeName:B??this.model.chartThemeName,unlinkChart:Q??this.model.unlinked,cellRange:this.model.suppliedCellRange,switchCategorySeries:this.model.switchCategorySeries,aggFunc:this.model.aggFunc,seriesChartTypes:void 0,suppressChartRanges:!1,crossFiltering:!1}};switch(G.type){case"rangeChartUpdate":U.cellRange=this.createCellRange(G)??this.model.suppliedCellRange,U.switchCategorySeries=G.switchCategorySeries??this.model.switchCategorySeries,U.aggFunc=G.aggFunc??this.model.aggFunc,U.seriesChartTypes=G.seriesChartTypes,U.suppressChartRanges=G.suppressChartRanges??this.model.suppressChartRanges,U.seriesGroupType=G.seriesGroupType??this.model.seriesGroupType,U.useGroupColumnAsCategory=G.useGroupColumnAsCategory??this.model.useGroupColumnAsCategory;break;case"crossFilterChartUpdate":U.cellRange=this.createCellRange(G)??this.model.suppliedCellRange,U.switchCategorySeries=!1,U.aggFunc=G.aggFunc??this.model.aggFunc,U.crossFiltering=!0,U.crossFilteringSort=this.model.crossFilteringSort,U.suppressChartRanges=G.suppressChartRanges??this.model.suppressChartRanges;break;case"pivotChartUpdate":U.switchCategorySeries=!1;break}if(this.model.updateModel(U),U.unlinkChart||U.suppressChartRanges)this.rangeSvc?.setCellRanges([]);else this.setChartRange()}updateForGridChange(G){if(this.model.unlinked)return;let{maintainColState:D,setColsFromRange:z}=G??{};this.model.updateCellRanges({maintainColState:D,setColsFromRange:z}),this.model.updateData(),this.setChartRange()}updateForDataChange(){if(this.model.unlinked)return;this.model.updateData(),this.raiseChartModelUpdateEvent()}updateForRangeChange(){this.updateForGridChange({setColsFromRange:!0}),this.raiseChartRangeSelectionChangedEvent()}updateForPanelChange(G){if(this.model.updateCellRanges(G),this.model.updateData(),G.skipAnimation)this.getChartProxy().getChartRef().skipAnimations();this.setChartRange(),this.raiseChartRangeSelectionChangedEvent()}updateThemeOverrides(G){this.chartProxy.updateThemeOverrides(G)}getChartUpdateParams(G){let z=this.getSelectedValueColState().map((Z)=>({colId:Z.colId,displayName:Z.displayName})),B=this.getChartData(),Q=this.getSelectedDimensions(),J=this.model,U={data:B,groupData:J.groupChartData,grouping:this.isGrouping(),categories:Q.map(({colId:Z,displayName:S})=>{let X=J.categoryAxisType??J.getChartDataType(Z);return{id:Z,name:S,chartDataType:X,convertTime:X==="time"?J.getConvertTime(Z):void 0}}),fields:z,chartId:this.getChartId(),getCrossFilteringContext:()=>({lastSelectedChartId:"xxx"}),seriesChartTypes:this.getSeriesChartTypes(),updatedOverrides:G,seriesGroupType:J.seriesGroupType};return this.isCategorySeriesSwitched()?this.invertCategorySeriesParams(U):U}invertCategorySeriesParams(G){let[D]=G.categories,z=[{id:gG,name:""}],B=G.data.map((J,U)=>{let Z=`${D.id}:${U}`,S=J[D.id],X=S==null?"":String(S);return{colId:Z,displayName:X}}),Q=G.fields.map((J)=>{let U={[gG]:J.displayName};for(let[Z,S]of G.data.entries()){let X=`${D.id}:${Z}`,Y=S[J.colId];U[X]=Y}return U});return{...G,categories:z,fields:B,data:Q}}getChartModel(){let G=this.model.pivotChart?"pivot":"range",D=this.isComboChart()?this.model.comboChartModel.seriesChartTypes:void 0;return{modelType:G,chartId:this.model.chartId,chartType:this.model.chartType,chartThemeName:this.getChartThemeName(),chartOptions:this.chartProxy?.getChartThemeOverrides(),chartPalette:this.chartProxy?.getChartPalette(),cellRange:this.getCellRangeParams(),switchCategorySeries:this.model.switchCategorySeries,suppressChartRanges:this.model.suppressChartRanges,aggFunc:this.model.aggFunc,unlinkChart:this.model.unlinked,seriesChartTypes:D,seriesGroupType:this.model.seriesGroupType,useGroupColumnAsCategory:this.model.useGroupColumnAsCategory}}getChartId(){return this.model.chartId}getChartData(){return this.model.chartData}getChartType(){return this.model.chartType}setChartType(G){this.updateMultiSeriesAndCategory(this.model.chartType,G),this.model.chartType=G,this.model.comboChartModel.updateSeriesChartTypes(),this.model.switchCategorySeries=!1,this.model.categoryAxisType=void 0,this.model.seriesGroupType=void 0,this.raiseChartModelUpdateEvent()}isCategorySeriesSwitched(){return this.model.switchCategorySeries&&!this.model.isGrouping()}switchCategorySeries(G){if(!s8(this.getChartType()))return;this.model.switchCategorySeries=G,this.raiseChartModelUpdateEvent()}getAggFunc(){return this.model.aggFunc}setAggFunc(G,D){if(this.model.aggFunc===G)return;if(this.model.aggFunc=G,D)return;this.model.updateData(),this.raiseChartModelUpdateEvent()}updateMultiSeriesAndCategory(G,D){let z=(Z,S)=>{let X=0;for(let Y of Z){if(!Y.selected)continue;if(X>=S)Y.selected=!1;else X++}if(X===0)Z[0].selected=!0},B=QJ(D),Q=bB(D),J=B!=null&&(QJ(G)??100)>(B??100),U=Q!=null&&(bB(G)??100)>(Q??100);if(J)z(this.model.dimensionColState,B);if(U)z(this.model.valueColState,Q);if(J||U)this.model.resetCellRanges(J,U),this.setChartRange(!0)}setChartThemeName(G,D){if(this.model.chartThemeName=G,!D)this.raiseChartModelUpdateEvent()}getChartThemeName(){return this.model.chartThemeName}isPivotChart(){return this.model.pivotChart}isPivotMode(){return this.model.isPivotMode()}isGrouping(){return this.model.isGrouping()}isCrossFilterChart(){return this.model.crossFiltering}getThemeNames(){return this.gos.get("chartThemes")||Z9}getThemes(){return this.getThemeNames().map((D)=>{let B=iJ(D,this.agChartsExports._Theme)?D:this.chartProxy.lookupCustomChartTheme(D);return this.agChartsExports._Theme.getChartTheme(B)})}getPalettes(){return this.getThemes().map((D)=>{return D.palette})}getSelectedValueColState(){return this.model.getValueColState().filter((G)=>G.selected)}getSelectedDimensions(){return this.model.getSelectedDimensions()}getColStateForMenu(){return{dimensionCols:this.model.dimensionColState,valueCols:this.model.getValueColState()}}setChartRange(G=!1){if(this.rangeSvc&&!this.model.suppressChartRanges&&!this.model.unlinked)this.rangeSvc.setCellRanges(this.getCellRanges());if(!G)this.raiseChartModelUpdateEvent()}detachChartRange(){if(this.model.unlinked=!this.model.unlinked,this.model.unlinked){if(this.rangeSvc)this.rangeSvc.setCellRanges([])}else this.updateForGridChange();this.dispatchLocalEvent({type:"chartLinkedChanged"})}setChartProxy(G){this.chartProxy=G}getChartProxy(){return this.chartProxy}isActiveXYChart(){return["scatter","bubble"].includes(this.getChartType())}isChartLinked(){return!this.model.unlinked}customComboExists(){let G=this.model.comboChartModel.savedCustomSeriesChartTypes;return G&&G.length>0}getSeriesChartTypes(){return this.model.comboChartModel.seriesChartTypes}isComboChart(G){return this.model.isComboChart(G)}updateSeriesChartType(G,D,z){let B=this.model.comboChartModel.seriesChartTypes.find((Q)=>Q.colId===G);if(B){let Q=this.model.chartType!=="customCombo";if(Q)this.model.chartType="customCombo";let J=B.chartType;if(D!=null)B.chartType=D;if(z!=null)B.secondaryAxis=z;if(this.model.comboChartModel.savedCustomSeriesChartTypes=this.model.comboChartModel.seriesChartTypes,this.model.comboChartModel.updateSeriesChartTypes(),this.updateForDataChange(),Q)this.dispatchLocalEvent({type:"chartTypeChanged"});if(J!==D)this.dispatchLocalEvent({type:"chartSeriesChartTypeChanged"});this.raiseChartOptionsChangedEvent()}}getActiveSeriesChartTypes(){let G=this.getSelectedValueColState().map((D)=>D.colId);return this.getSeriesChartTypes().filter((D)=>G.includes(D.colId))}getChartSeriesTypes(G){let D=G??this.getChartType();return this.isComboChart(D)?["line","bar","area"]:[l(D)]}getChartSeriesType(){let G=this.getSeriesChartTypes();if(G.length===0)return"bar";let D=G[0].chartType;if(D==="columnLineCombo")return"bar";if(D==="areaColumnCombo")return"area";return l(D)}getCellRanges(){return[this.model.dimensionCellRange,this.model.valueCellRange].filter((G)=>G)}createCellRange(G){return G.cellRange&&this.rangeSvc?.createPartialCellRangeFromRangeParams(G.cellRange,!0)}validUpdateType(G){if(!G.type)return i5(136),!1;let D={"Range Chart":()=>!this.isPivotChart()&&!this.isCrossFilterChart(),"Pivot Chart":()=>this.isPivotChart(),"Cross Filter Chart":()=>this.isCrossFilterChart()},z=Object.keys(D).find((Q)=>D[Q]())??"Range Chart",B=G.type===`${z[0].toLowerCase()}${z.slice(1).replace(/ /g,"")}Update`;if(!B)i5(137,{currentChartType:z,type:G.type});return B}getCellRangeParams(){let G=this.getCellRanges(),D=G[0],z=D?.startRow||null,B=D?.endRow||null;return{rowStartIndex:z?.rowIndex??null,rowStartPinned:z?.rowPinned,rowEndIndex:B?.rowIndex??null,rowEndPinned:B?.rowPinned,columns:G.reduce((Q,J)=>Q.concat(J.columns.map((U)=>U.getId())),[])}}setCategoryAxisType(G){this.model.categoryAxisType=G,this.raiseChartModelUpdateEvent()}getSeriesGroupType(){return this.model.seriesGroupType??this.chartProxy.getSeriesGroupType()}setSeriesGroupType(G){this.model.seriesGroupType=G,this.raiseChartModelUpdateEvent()}raiseChartModelUpdateEvent(){this.dispatchLocalEvent({type:"chartModelUpdate"}),this.raiseChartOptionsChangedEvent()}raiseChartUpdatedEvent(){this.dispatchLocalEvent({type:"chartUpdated"})}raiseChartApiUpdateEvent(){this.dispatchLocalEvent({type:"chartApiUpdate"})}raiseChartOptionsChangedEvent(){let{chartId:G,chartType:D}=this.getChartModel();this.eventSvc.dispatchEvent({type:"chartOptionsChanged",chartId:G,chartType:D,chartThemeName:this.getChartThemeName(),chartOptions:this.chartProxy?.getChartThemeOverrides()})}raiseChartRangeSelectionChangedEvent(){this.eventSvc.dispatchEvent({type:"chartRangeSelectionChanged",id:this.model.chartId,chartId:this.model.chartId,cellRange:this.getCellRangeParams()})}destroy(){if(super.destroy(),this.rangeSvc)this.rangeSvc.setCellRanges([])}},Qy=class extends HD{getAxes(G){let D={x:{type:this.getXAxisType(G),position:"bottom"},y:{type:"number",position:"left"}};if(this.isNormalised())D.y.label={...D.y.label,formatter:(z)=>Math.round(z.value)+"%"};return D}getSeries(G){let[D]=G.categories,z=G.fields.map((B)=>({type:this.standaloneChartType,xKey:D.id,xName:D.name,yKey:B.colId,yName:B.displayName,normalizedTo:this.chartType==="normalizedArea"?100:void 0,stacked:["normalizedArea","stackedArea"].includes(this.chartType)}));return this.crossFiltering?this.extractLineAreaCrossFilterSeries(z,G):z}isNormalised(){return!this.crossFiltering&&this.chartType==="normalizedArea"}},Jy=new Set(["bar","groupedBar","stackedBar","normalizedBar"]),Uy=class extends HD{getAxes(G){let D={x:{type:this.getXAxisType(G),position:this.isHorizontal()?"left":"bottom"},y:{type:"number",position:this.isHorizontal()?"bottom":"left"}};if(this.isNormalised())D.y.label={...D.y.label,formatter:(z)=>Math.round(z.value)+"%"};return D}getSeries(G){let[D]=G.categories,z=G.fields.map((B)=>({type:this.standaloneChartType,direction:this.isHorizontal()?"horizontal":"vertical",stacked:this.crossFiltering||sP(this.chartType),normalizedTo:this.isNormalised()?100:void 0,xKey:D.id,xName:D.name,yKey:B.colId,yName:B.displayName}));return this.crossFiltering?this.extractCrossFilterSeries(z):z}extractCrossFilterSeries(G){let D=[];for(let z=0;zMath.round(z.value)+"%"};return D}getSeries(G){let[D]=G.categories,z=["normalizedLine","stackedLine"].includes(this.chartType),B=G.fields.map((Q)=>({type:this.standaloneChartType,xKey:D.id,xName:D.name,yKey:Q.colId,yName:Q.displayName,normalizedTo:z&&this.isNormalised()?100:void 0,stacked:z}));return this.crossFiltering?this.extractLineAreaCrossFilterSeries(B,G):B}isNormalised(){let G=["normalizedLine"];return!this.crossFiltering&&G.includes(this.chartType)}},$y=class extends HD{getAxes(G){return{x:{type:"number",position:"bottom"},y:{type:"number",position:"left"}}}getSeries(G){let[D]=G.categories,z=this.isPaired(),B=this.getSeriesDefinitions(G.fields,z),Q=D.id===gG?void 0:D,J=B.map((U)=>{if(U?.sizeField)return{type:"bubble",xKey:U.xField.colId,xName:U.xField.displayName??void 0,yKey:U.yField.colId,yName:U.yField.displayName??void 0,title:`${U.yField.displayName} vs ${U.xField.displayName}`,sizeKey:U.sizeField.colId,sizeName:U.sizeField.displayName??"",labelKey:Q?Q.id:U.yField.colId,labelName:Q?Q.name:void 0};return{type:"scatter",xKey:U.xField.colId,xName:U.xField.displayName??void 0,yKey:U.yField.colId,yName:U.yField.displayName??void 0,title:`${U.yField.displayName} vs ${U.xField.displayName}`,labelKey:Q?Q.id:U.yField.colId,labelName:Q?Q.name:void 0}});return this.crossFiltering?this.extractCrossFilterSeries(J,G):J}extractCrossFilterSeries(G,D){let{data:z}=D,B=(S)=>`${S}-filtered-out`,Q=(S,X)=>{let Y=[1/0,-1/0];if(X!=null)for(let W of S){let q=W[X]??W[B(X)];if(qY[1])Y[1]=q}if(Y[0]<=Y[1])return Y;return},J=(S)=>{let X=void 0;if(S.type==="bubble"){let{sizeKey:Y}=S;X=Q(z,Y)}return{...S,domain:X,highlight:{highlightedItem:{fill:"yellow"}},listeners:{...S.listeners,seriesNodeClick:this.crossFilterCallback}}},U=(S)=>{let{yKey:X,xKey:Y}=S,W={};if(S.type==="bubble")W={sizeKey:B(S.sizeKey)};return{...S,...W,yKey:B(X),xKey:B(Y),showInLegend:!1,listeners:{...S.listeners,seriesNodeClick:(q)=>{let H=q.datum[B(Y)],_={...q,xKey:Y,datum:{...q.datum,[Y]:H}};this.crossFilterCallback(_)}}}},Z=G.map(J);return[...Z,...Z.map(U)]}getSeriesDefinitions(G,D){if(G.length<2)return[];let z=this.chartType==="bubble";if(D){if(z)return G.map((Q,J)=>J%3===0?{xField:Q,yField:G[J+1],sizeField:G[J+2]}:null).filter((Q)=>Q?.yField&&Q.sizeField);return G.map((Q,J)=>J%2===0?{xField:Q,yField:G[J+1]}:null).filter((Q)=>Q?.yField)}let B=G[0];if(z)return G.map((Q,J)=>J%2===1?{xField:B,yField:Q,sizeField:G[J+1]}:null).filter((Q)=>Q?.sizeField);return G.filter((Q,J)=>J>0).map((Q)=>({xField:B,yField:Q}))}},Ly=class extends HD{getAxes(G){let D=G?G.fields:[],z=new Map(D.map((U)=>[U.colId,U])),{primaryYKeys:B,secondaryYKeys:Q}=this.getYKeys(D,G.seriesChartTypes),J={x:{type:this.getXAxisType(G),position:"bottom"}};if(B.length>0)J.y={type:"number",position:"left"};if(Q.length>0)Q.forEach((U)=>{let Z=z.get(U);if(!(Z&&Z.colId===U))return;let X={type:"number",position:"right"};J[`y_${U}`]=X});return J}getSeries(G){let{fields:D,seriesChartTypes:z}=G,[B]=G.categories;return D.map((Q)=>{let J=z.find((U)=>U.colId===Q.colId);if(J){let U=J.chartType,S=["groupedColumn","groupedBar"].includes(U)?{grouped:!0}:{},X=J.secondaryAxis?`y_${Q.colId}`:"y";return{type:l(U),xKey:B.id,yKey:Q.colId,yName:Q.displayName,yKeyAxis:X,stacked:["stackedArea","stackedColumn"].includes(U),...S}}})}getYKeys(G,D){let z=[],B=[];for(let Q of G){let J=Q.colId,U=D.find((Z)=>Z.colId===J);if(U)if(U.secondaryAxis)B.push(J);else z.push(J)}return{primaryYKeys:z,secondaryYKeys:B}}setSeriesChartThemeDefaults(G){let D=this.getSeriesChartThemeDefaults();if(!D)return;let z=new Set;for(let B of this.chartProxyParams.seriesChartTypes)z.add(B.chartType);for(let B of z)G[l(B)]=D}};function Sy(G){let D=G.currentOffset;G.currentOffset-=G.offsetAmount;let z=G.currentOffset;return G.currentOffset-=G.offsetAmount,{outerRadiusOffset:D,innerRadiusOffset:z}}var Xy=class extends qz{getUpdateOptions(G,D){return{...D,data:this.crossFiltering?this.getCrossFilterData(G):G.data,series:this.getSeries(G)}}getSeries(G){let[D]=G.categories,z=G.fields.length,B={currentOffset:0,offsetAmount:z>1?20:40},Q=this.getFields(G).map((J)=>{let U={type:this.standaloneChartType,angleKey:J.colId,angleName:J.displayName,sectorLabelKey:J.colId,calloutLabelName:D.name,calloutLabelKey:D.id};if(this.chartType==="donut"||this.chartType==="doughnut"){let{outerRadiusOffset:Z,innerRadiusOffset:S}=Sy(B),X=J.displayName?{title:{text:J.displayName,showInLegend:z>1}}:void 0;return{...U,type:"donut",outerRadiusOffset:Z,innerRadiusOffset:S,...X}}return U});return this.crossFiltering?this.extractCrossFilterSeries(Q):Q}getCrossFilterData(G){let D=G.fields[0].colId,z=`${D}-filtered-out`;return G.data.map((B)=>{let Q=B[D]+B[z];return B[`${D}-total`]=Q,B[z]=1,B[D]=B[D]/Q,B})}extractCrossFilterSeries(G){let D=G[0],z=D.angleKey,B={...D,radiusMin:0,radiusMax:1,listeners:{seriesNodeClick:this.crossFilterCallback},legendItemKey:D.calloutLabelKey,angleKey:`${z}-total`},Q={...B,radiusKey:z,sectorLabelKey:`${z}-total`};return[{...B,radiusKey:`${z}-filtered-out`,showInLegend:!1},Q]}getFields(G){return this.chartType==="pie"?G.fields.slice(0,1):G.fields}getSeriesChartThemeDefaults(){return{series:{highlight:nJ(this.crossFiltering)}}}},fy=class extends Hy{constructor(){super('
');this.eMenu=_y,this.buttonListenersDestroyFuncs=[]}wireBeans(G){this.chartTranslation=G.chartTranslation}updateParams(G){let{buttons:D}=G;this.createButtons(D)}createButtons(G){for(let z of this.buttonListenersDestroyFuncs)z?.();this.buttonListenersDestroyFuncs=[];let D=this.eMenu;ky(D);for(let z of G){let{buttonName:B,iconName:Q,callback:J}=z,U=this.createButton(Q),Z=this.chartTranslation.translate(B+"ToolbarTooltip");if(Z&&U instanceof HTMLElement)U.title=Z;this.buttonListenersDestroyFuncs.push(...this.addManagedElementListeners(U,{click:(S)=>J(S.currentTarget)})),D.appendChild(U)}}createButton(G){let D=Ky(G,this.beans);D.classList.add("ag-chart-menu-icon");let z=wy({tag:"button",attrs:{type:"button"},cls:"ag-chart-menu-toolbar-button"});return z.appendChild(D),z}destroy(){this.buttonListenersDestroyFuncs=[],super.destroy()}},Ty=".ag-pill-select{display:flex;flex-direction:column}.ag-pill-select .ag-column-drop-list{padding:0}:where(.ag-pill-select){.ag-select{padding-top:var(--ag-spacing)}.ag-picker-field-wrapper{background-color:transparent;border:0}.ag-picker-field-display{cursor:pointer;font-weight:500}.ag-picker-field-display,.ag-picker-field-icon{color:var(--ag-chart-menu-label-color)}}",yy=class extends uy{constructor(G){super('');this.config=G??{};let{selectedValueList:D,valueFormatter:z,valueList:B}=this.config;this.selectedValues=D??[],this.valueList=B??[],this.valueFormatter=z??((Q)=>jy(Q)),this.registerCSS(Ty)}postConstruct(){let{ariaLabel:G,onValuesChange:D,dragSourceId:z}=this.config;if(this.dropZonePanel=this.createManagedBean(new cy({getValues:()=>this.selectedValues,setValues:(Q)=>this.updateValues(Q),isDraggable:()=>this.selectedValues.length>1},(Q)=>this.valueFormatter(Q),G,z)),this.getGui().appendChild(this.dropZonePanel.getGui()),this.initSelect(),D!=null)this.onValuesChange=D}setValues(G,D){let{added:z,removed:B,updated:Q}=this.getChanges(this.valueList,G),J=!1;if(z.length||B.length||Q.length)J=!0;return this.valueList=G,this.updateValues(D,J,!0),this}setValueFormatter(G){return this.valueFormatter=G,this}initSelect(){let G=this.createSelectOptions();if(!G.length)return!1;let{selectPlaceholder:D}=this.config;return this.eSelect=this.createBean(new Oy({options:G,placeholder:D,onValueChange:(z)=>this.addValue(z),pickerIcon:"chartsMenuAdd"})),this.getGui().appendChild(this.eSelect.getGui()),!0}createSelectOptions(){let G=[],{maxSelection:D}=this.config;if(D&&this.selectedValues.length>=D)return G;for(let z of this.valueList)if(!this.selectedValues.includes(z))G.push({value:z,text:this.valueFormatter(z)});return G}addValue(G){this.dropZonePanel.addItem(G)}updateValues(G,D,z){let B=this.selectedValues;this.selectedValues=G;let Q=this.getChanges(B,G),J=D||Q.added.length||Q.removed.length,U=Py(this.beans),Z=this.eSelect?.getGui().contains(U),S=this.dropZonePanel?.getGui().contains(U);if(!z)this.onValuesChange?.(Q);let X=J?!this.refreshSelect():!1;if(this.dropZonePanel.refreshGui(),J&&Z)if(X)this.dropZonePanel.focusList(!0);else this.eSelect?.getFocusableElement().focus();if(S&&!G.length)this.eSelect?.getFocusableElement().focus()}getChanges(G,D){let z=D.filter((J)=>!G.includes(J)),B=G.filter((J)=>!D.includes(J)),Q=D.filter((J,U)=>G[U]!==J);return{added:z,removed:B,updated:Q,selected:D}}refreshSelect(){if(!this.eSelect)return this.initSelect();let G=this.createSelectOptions();if(!G.length)return gy(this.eSelect.getGui()),this.eSelect=this.destroyBean(this.eSelect),!1;return this.eSelect.clearOptions().addOptions(G).setValue(void 0,!0),!0}destroy(){this.destroyBean(this.eSelect),super.destroy()}},xy=class extends H7{constructor(G,D,z,B,Q,J){super(D,z,!1);this.value=G,this.valueFormatter=B,this.draggable=Q,this.sourceId=J}getItem(){return this.value}getDisplayName(){return this.valueFormatter(this.value)}getAriaDisplayName(){return this.getDisplayName()}getTooltip(){return}createGetDragItem(){return()=>({value:this.value})}getDragSourceType(){return $9.ChartPanel}getDragSourceId(){return this.sourceId}isMovable(){return this.isDraggable()}isDraggable(){return this.draggable}},cy=class extends q7{constructor(G,D,z,B){super(!1);this.model=G,this.valueFormatter=D,this.ariaLabel=z,this.sourceId=B}postConstruct(){super.init()}isItemDroppable(G,D){return this.isSourceEventFromTarget(D)||this.sourceId!=null&&this.sourceId===D.dragSource.sourceId}updateItems(G){this.model.setValues(G)}getExistingItems(){return this.model.getValues()}getIconName(){return this.isPotentialDndItems()?"move":"notAllowed"}getAriaLabel(){return this.ariaLabel}createPillComponent(G,D,z){return new xy(G,D,z,this.valueFormatter,this.model.isDraggable(),this.sourceId)}getItems(G){return[G.value]}isInterestedIn(G){return G===$9.ChartPanel}},L9=class extends vy{constructor(G,D,z,B){super(B);this.chartController=G,this.allowMultipleSelection=D,this.maxSelection=z}wireBeans(G){this.chartTranslation=G.chartTranslation}addItem(G){this.groupComp.addItem(G)}createGroup(G,D,z,B,Q){if(this.allowMultipleSelection){let J=G.filter((U)=>U.selected);this.valuePillSelect=this.groupComp.createManagedBean(new yy({valueList:G,selectedValueList:J,valueFormatter:D,selectPlaceholder:this.chartTranslation.translate(z),dragSourceId:B,onValuesChange:(U)=>this.onValueChange(U),maxSelection:this.maxSelection})),this.groupComp.addItem(this.valuePillSelect)}else{let J=this.createValueSelectParams(G);J.onValueChange=(U)=>{for(let Z of G)Z.selected=!1;if(U.selected=!0,U.colId===gG)this.chartController.setAggFunc(void 0,!0);this.chartController.updateForPanelChange({updatedColState:U,skipAnimation:Q?.()})},this.valueSelect=this.groupComp.createManagedBean(new by(J)),this.groupComp.addItem(this.valueSelect)}}refreshValueSelect(G){if(!this.valueSelect)return;let{options:D,value:z}=this.createValueSelectParams(G);this.valueSelect.clearOptions().addOptions(D).setValue(z,!0)}createValueSelectParams(G){let D;return{options:G.map((B)=>{let Q=B.displayName??"";if(B.selected)D=B;return{value:B,text:Q}}),value:D}}onValueChange({added:G,updated:D,removed:z,selected:B}){let Q,J,U=()=>{B.forEach((Z,S)=>{Z.order=S}),J=!0};if(G.length)Q=G[0],Q.selected=!0,U();else if(z.length)Q=z[0],Q.selected=!1;else if(D.length)U(),Q=D[0];if(Q)this.chartController.updateForPanelChange({updatedColState:Q,resetOrder:J})}destroy(){this.valuePillSelect=void 0,this.valueSelect=void 0,super.destroy()}},hy="sum",iy=class extends L9{constructor(G,D,z,B,Q){super(G,z,void 0,'
');this.title=D,this.dimensionCols=B,this.isOpen=Q}postConstruct(){this.groupComp=this.createBean(new jG({title:this.title,enabled:!0,suppressEnabledCheckbox:!0,suppressOpenCloseIcons:!1,cssIdentifier:"charts-data",expanded:this.isOpen})),this.createGroup(this.dimensionCols,(G)=>G.displayName??"","categoryAdd","categorySelect",()=>!this.chartController.getAggFunc()),this.createAggFuncControls(this.dimensionCols),this.getGui().appendChild(this.groupComp.getGui())}refresh(G){this.valuePillSelect?.setValues(G,G.filter((D)=>D.selected)),this.refreshValueSelect(G),this.refreshAggFuncControls(G,this.chartController.getAggFunc())}createAggFuncControls(G){let D=this.chartController.getAggFunc();this.groupComp.addItem(this.aggFuncToggle=this.createBean(new Vy({label:this.chartTranslation.translate("aggregate"),labelAlignment:"left",labelWidth:"flex",inputWidth:"flex",value:D!=null,onValueChange:(z)=>{let B=z?hy:void 0;this.chartController.setAggFunc(B),this.aggFuncSelect?.setValue(B,!0),this.aggFuncSelect?.setDisplayed(B!=null)}}))),this.groupComp.addItem(this.aggFuncSelect=this.createBean(new Cy({options:[{value:"sum",text:this.chartTranslation.translate("sum")},{value:"first",text:this.chartTranslation.translate("first")},{value:"last",text:this.chartTranslation.translate("last")},{value:"min",text:this.chartTranslation.translate("min")},{value:"max",text:this.chartTranslation.translate("max")},{value:"count",text:this.chartTranslation.translate("count")},{value:"avg",text:this.chartTranslation.translate("avg")}],value:typeof D==="string"?D:void 0,onValueChange:(z)=>{this.chartController.setAggFunc(z)}}))),this.refreshAggFuncControls(G,D)}refreshAggFuncControls(G,D){let B=G.filter((Q)=>Q.selected).some((Q)=>Q.colId!==gG);this.aggFuncToggle?.setValue(D!=null),this.aggFuncSelect?.setValue(typeof D==="string"?D:void 0,!0),this.aggFuncToggle?.setDisplayed(B),this.aggFuncSelect?.setDisplayed(B&&D!=null)}clearAggFuncControls(){this.aggFuncToggle=this.destroyBean(this.aggFuncToggle),this.aggFuncSelect=this.destroyBean(this.aggFuncSelect)}destroy(){this.clearAggFuncControls(),this.groupComp=this.destroyBean(this.groupComp),super.destroy()}},uD=class extends py{constructor(G){super();this.chartOptionsProxy=G}wireBeans(G){this.chartTranslation=G.chartTranslation}getDefaultColorPickerParams(G,D,z){return this.addValueParams(G,{label:this.chartTranslation.translate(D??"color"),labelWidth:"flex",inputWidth:"flex",labelAlignment:"top",pickerGap:6},z)}getDefaultNumberInputParams(G,D,z){return this.addValueParams(G,{label:this.chartTranslation.translate(D),labelAlignment:"top",labelWidth:"flex",inputWidth:"flex",precision:z?.precision,step:z?.step,min:z?.min,max:z?.max},{parseInputValue:(B)=>{let Q=Number(B);return isNaN(Q)?void 0:Q},formatInputValue:(B)=>{return B==null?"":`${B}`}})}getDefaultSliderParams(G,D,z,B){let Q=this.chartOptionsProxy.getValue(G)??0;if(B&&Array.isArray(Q))Q=Q[0];let J=this.getDefaultSliderParamsWithoutValueParams(Q,D,z);return J.onValueChange=(U)=>this.chartOptionsProxy.setValue(G,B?[U]:U),J}getDefaultSliderParamsWithoutValueParams(G,D,z){return{label:this.chartTranslation.translate(D),minValue:0,maxValue:Math.max(G,z),textFieldWidth:45,value:`${G}`}}getDefaultCheckboxParams(G,D,z){let B=this.chartOptionsProxy.getValue(G),Q={label:this.chartTranslation.translate(D),value:B,readOnly:z?.readOnly,passive:z?.passive};return Q.onValueChange=(J)=>{this.chartOptionsProxy.setValue(G,typeof J==="boolean"?J:void 0)},Q}getDefaultToggleParams(G,D,z){let B=this.chartOptionsProxy.getValue(G),Q={label:this.chartTranslation.translate(D),labelAlignment:"left",labelWidth:"flex",inputWidth:"flex",value:B,readOnly:z?.readOnly,passive:z?.passive};return Q.onValueChange=(J)=>{this.chartOptionsProxy.setValue(G,typeof J==="boolean"?J:void 0)},Q}getDefaultSelectParams(G,D,z){return this.getDefaultSelectParamsWithoutValueParams(D,z,this.chartOptionsProxy.getValue(G),(B)=>{this.chartOptionsProxy.setValue(G,B)})}getDefaultSelectParamsWithoutValueParams(G,D,z,B){return{label:this.chartTranslation.translate(G),labelAlignment:"top",options:D,pickerGap:6,value:z,onValueChange:B}}getDefaultFontPanelParams(G,D){let z=(B)=>`${G}.${B}`;return this.addEnableParams(z("enabled"),{name:this.chartTranslation.translate(D),suppressEnabledCheckbox:!1,chartMenuParamsFactory:this,keyMapper:z})}addValueParams(G,D,z){let B=this.chartOptionsProxy.getValue(G);return D.value=z?.formatInputValue?z.formatInputValue(B):B,D.onValueChange=(Q)=>{let J=z?.parseInputValue?z.parseInputValue(Q):Q;this.chartOptionsProxy.setValue(G,J)},D}addEnableParams(G,D){return D.enabled=this.chartOptionsProxy.getValue(G)??!1,D.onEnableChange=(z)=>this.chartOptionsProxy.setValue(G,z),D}getChartOptions(){return this.chartOptionsProxy}},my=class extends dy{constructor(G,D){super();this.chartMenuContext=G,this.isOpen=D,this.chartSpecificGroup=ly,this.hasContent=!1}wireBeans(G){this.chartTranslation=G.chartTranslation,this.chartSvc=G.chartSvc}postConstruct(){let D={title:this.getTitle(),enabled:!0,suppressEnabledCheckbox:!0,suppressOpenCloseIcons:!1,cssIdentifier:"charts-data",expanded:this.isOpen,items:[...this.createDirectionSelect(),this.createReverseSelect(),this.createGroupTypeSelect()]};this.setTemplate(`
`,[p],{chartSpecificGroup:D}),this.setDisplayed(this.hasContent)}refresh(){this.hasContent=!1,this.chartSpecificGroup.setTitle(this.getTitle()),this.updateDirectionSelect(),this.updateReverseSelect(),this.updateGroupTypeSelect(),this.setDisplayed(this.hasContent)}getTitle(){let G=this.chartMenuContext.chartController.getChartType();return this.chartTranslation.translate(hJ(G))}createDirectionSelect(){if(!this.chartSvc.isEnterprise())return[];let{chartOptionsService:G,chartController:D}=this.chartMenuContext,z=G.getSeriesOptionsProxy(()=>l(D.getChartType())),B=this.createManagedBean(new uD(z)),Q=["horizontal","vertical"].map((Z)=>({value:Z,text:this.chartTranslation.translate(Z)})),J=B.getDefaultSelectParams("direction","direction",Q),U=J.onValueChange;return J.onValueChange=(Z)=>{U(Z),D.raiseChartModelUpdateEvent()},this.directionSelect=this.createManagedBean(new l5(J)),this.updateDirectionSelect(),[this.directionSelect]}createReverseSelect(){let{chartMenuParamsFactory:G}=this.chartMenuContext,D=G.getDefaultToggleParams("series.reverse","reverse");return this.reverseToggle=this.createManagedBean(new ny(D)),this.updateReverseSelect(),this.reverseToggle}updateReverseSelect(){let G=this.chartMenuContext.chartController.getChartType()==="pyramid";this.updateDisplayed(this.reverseToggle,G)}updateDirectionSelect(){let G=eP(this.chartMenuContext.chartController.getChartType());this.updateDisplayed(this.directionSelect,G)}createGroupTypeSelect(){let{chartController:G,chartMenuParamsFactory:D}=this.chartMenuContext;return this.groupTypeSelect=this.createManagedBean(new l5(D.getDefaultSelectParamsWithoutValueParams("seriesGroupType",lP.map((z)=>({value:z,text:this.chartTranslation.translate(`${z}SeriesGroupType`)})),G.getSeriesGroupType(),(z)=>G.setSeriesGroupType(z)))),this.updateGroupTypeSelect(),this.groupTypeSelect}updateGroupTypeSelect(){let G=["radialColumn","radialBar","nightingale"].includes(this.chartMenuContext.chartController.getChartType());this.updateDisplayed(this.groupTypeSelect,G)}updateDisplayed(G,D){if(G?.setDisplayed(D),G)this.hasContent=this.hasContent||D}},ey=class extends oy{constructor(G,D,z){super('
');this.chartController=G,this.columns=D,this.isOpen=z,this.selectedColIds=[],this.chartTypeComps=new Map,this.secondaryAxisComps=new Map}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){this.createSeriesChartTypeGroup(this.columns)}refresh(G){if(!ry(this.getValidColIds(G),this.selectedColIds))this.recreate(G);else this.refreshComps()}recreate(G){this.isOpen=this.seriesChartTypeGroupComp.isExpanded(),ay(this.getGui()),this.destroyBean(this.seriesChartTypeGroupComp),this.columns=G,this.selectedColIds=[],this.clearComps(),this.postConstruct()}getValidColIds(G){let D=this.chartController.getSeriesChartTypes();return G.filter((z)=>z.selected&&!!D.filter((B)=>B.colId===z.colId)[0]).map(({colId:z})=>z)}createSeriesChartTypeGroup(G){this.seriesChartTypeGroupComp=this.createBean(new jG({title:this.chartTranslation.translate("seriesChartType"),enabled:!0,suppressEnabledCheckbox:!0,suppressOpenCloseIcons:!1,cssIdentifier:"charts-data",expanded:this.isOpen}));let D=this.chartController.getSeriesChartTypes();for(let z of G){if(!z.selected)continue;let B=D.filter((X)=>X.colId===z.colId)[0];if(!B)continue;this.selectedColIds.push(z.colId);let Q=this.seriesChartTypeGroupComp.createManagedBean(new jG({title:z.displayName,enabled:!0,suppressEnabledCheckbox:!0,suppressOpenCloseIcons:!0,cssIdentifier:"charts-format-sub-level"})),J=(X)=>["groupedColumn","stackedColumn","stackedArea"].includes(X),U=this.seriesChartTypeGroupComp.createManagedBean(new ty({label:this.chartTranslation.translate("secondaryAxis"),labelWidth:"flex",disabled:J(B.chartType),value:!!B.secondaryAxis,onValueChange:(X)=>this.chartController.updateSeriesChartType(z.colId,void 0,X)}));Q.addItem(U);let Z=["line","area","stackedArea","groupedColumn","stackedColumn"].map((X)=>({value:X,text:this.chartTranslation.translate(hJ(X))})),S=Q.createManagedBean(new sy({options:Z,value:B.chartType,onValueChange:(X)=>this.chartController.updateSeriesChartType(z.colId,X)}));Q.addItem(S),this.seriesChartTypeGroupComp.addItem(Q),this.chartTypeComps.set(z.colId,S),this.secondaryAxisComps.set(z.colId,U)}this.getGui().appendChild(this.seriesChartTypeGroupComp.getGui())}refreshComps(){let G=this.chartController.getSeriesChartTypes();for(let D of this.selectedColIds){let z=G.find((J)=>J.colId===D);if(!z)continue;let B=this.chartTypeComps.get(D),Q=this.secondaryAxisComps.get(D);B?.setValue(z.chartType),Q?.setValue(!!z.secondaryAxis),Q?.setDisabled(this.isSecondaryAxisDisabled(z.chartType))}}clearComps(){this.chartTypeComps.clear(),this.secondaryAxisComps.clear()}isSecondaryAxisDisabled(G){return["groupedColumn","stackedColumn","stackedArea"].includes(G)}destroy(){this.clearComps(),this.seriesChartTypeGroupComp=this.destroyBean(this.seriesChartTypeGroupComp),super.destroy()}},Dx=class extends L9{constructor(G,D,z,B,Q,J,U){super(G,B,Q,'
');this.chartOptionsService=D,this.title=z,this.valueCols=J,this.isOpen=U}postConstruct(){if(this.groupComp=this.createBean(new jG({title:this.title,enabled:!0,suppressEnabledCheckbox:!0,suppressOpenCloseIcons:!1,cssIdentifier:"charts-data",expanded:this.isOpen})),this.chartController.isActiveXYChart()){let G=this.groupComp.createManagedBean(new Gx({label:this.chartTranslation.translate("paired"),labelAlignment:"left",labelWidth:"flex",inputWidth:"flex",value:this.chartOptionsService.getPairedMode(),onValueChange:(D)=>{this.chartOptionsService.setPairedMode(!!D),this.chartController.updateForGridChange({maintainColState:!0})}}));this.groupComp.addItem(G)}this.createGroup(this.valueCols,this.generateGetSeriesLabel(this.valueCols),"seriesAdd","seriesSelect"),this.getGui().appendChild(this.groupComp.getGui())}refresh(G){this.valuePillSelect?.setValueFormatter(this.generateGetSeriesLabel(G)),this.valuePillSelect?.setValues(G,G.filter((D)=>D.selected)),this.refreshValueSelect(G)}generateGetSeriesLabel(G){if(!this.chartController.isActiveXYChart())return(J)=>J.displayName??"";let D=G.filter((J)=>J.selected),z=this.chartController.getChartType()==="bubble",B=this.chartOptionsService.getPairedMode(),Q=new Map;return Q.set(0,"X"),Q.set(1,"Y"),Q.set(2,"size"),(J)=>{let U=J.displayName??"";if(!J.selected)return U;let Z=D.indexOf(J);if(Z===-1)return U;let S;if(B)S=Q.get(Z%(z?3:2));else if(Z===0)S="X";else S=z&&Z%2===0?"size":"Y";return`${U} (${S})`}}destroy(){this.groupComp=this.destroyBean(this.groupComp),super.destroy()}},zx={groups:[{type:"categories",isOpen:!0},{type:"series",isOpen:!0},{type:"seriesChartType",isOpen:!0},{type:"chartSpecific",isOpen:!0}]},Bx=class extends Iy{constructor(G){super('
');this.chartMenuContext=G,this.isSwitchCategorySeriesToggled=!1,this.restoreSwitchCategorySeriesToggleFocus=!1,this.panels=[],this.chartController=G.chartController}wireBeans(G){this.chartTranslation=G.chartTranslation,this.chartSvc=G.chartSvc}postConstruct(){this.createSwitchCategorySeriesToggle(),this.isSwitchCategorySeriesToggled=this.chartController.isCategorySeriesSwitched(),this.updatePanels();let G=this.updatePanels.bind(this);this.addManagedListeners(this.chartController,{chartModelUpdate:G,chartApiUpdate:G})}destroy(){this.clearPanelComponents(),super.destroy()}updatePanels(){let G=this.chartType,D=this.isSwitchCategorySeriesToggled,{dimensionCols:z,valueCols:B}=this.chartController.getColStateForMenu();this.chartType=this.chartController.getChartType(),this.isSwitchCategorySeriesToggled=this.chartController.isCategorySeriesSwitched();let Q=this.isSwitchCategorySeriesToggled!==D;if(this.canRefresh(G,this.chartType)&&!Q)this.categoriesDataPanel?.refresh(z),this.seriesDataPanel?.refresh(B),this.seriesChartTypePanel?.refresh(B),this.chartSpecificPanel?.refresh();else this.recreatePanels(z,B);let J=s8(this.chartType)&&this.chartSvc.isEnterprise()&&!this.chartController.isGrouping();if(Ay(this.switchCategorySeriesToggle.getGui(),J),Q)this.switchCategorySeriesToggle?.setValue(this.chartController.isCategorySeriesSwitched());if(this.restoreSwitchCategorySeriesToggleFocus){if(this.restoreSwitchCategorySeriesToggleFocus=!1,J)this.switchCategorySeriesToggle.getFocusableElement().focus()}}canRefresh(G,D){if(G===void 0)return!1;if(G===D)return!0;let z=(B)=>["columnLineCombo","areaColumnCombo","customCombo"].includes(B);if(z(G)&&z(D))return!0;return!1}recreatePanels(G,D){this.clearPanelComponents();let{chartType:z}=this;if(!z)return;let B=this.chartController.isCategorySeriesSwitched();this.getDataPanelDef().groups?.forEach(({type:Q,isOpen:J})=>{if(Q===(B?"series":"categories"))this.categoriesDataPanel=this.createBean(new iy(this.chartController,this.getCategoryGroupTitle(B),this.getCategoryGroupMultipleSelect(z,B),G,J)),this.panels.push(this.categoriesDataPanel);else if(Q===(B?"categories":"series"))this.seriesDataPanel=this.createBean(new Dx(this.chartController,this.chartMenuContext.chartOptionsService,this.getSeriesGroupTitle(B),this.getSeriesGroupMultipleSelect(z,B),this.getSeriesGroupMaxSelection(z,B),D,J)),this.panels.push(this.seriesDataPanel);else if(Q==="seriesChartType"){if(this.chartController.isComboChart())this.seriesChartTypePanel=this.createBean(new ey(this.chartController,D,J)),this.panels.push(this.seriesChartTypePanel)}else if(Q==="chartSpecific")this.chartSpecificPanel=this.createBean(new my(this.chartMenuContext,J)),this.panels.push(this.chartSpecificPanel);else Ry(144,{type:Q})}),(B?this.categoriesDataPanel:this.seriesDataPanel)?.addItem(this.switchCategorySeriesToggle.getGui()),this.addPanelComponents()}addPanelComponents(){if(!this.panels.length)return;let D=My(this.beans).createDocumentFragment();for(let z of this.panels)z.addCss("ag-chart-data-section"),D.appendChild(z.getGui());this.getGui().appendChild(D)}clearPanelComponents(){for(let G of this.panels)G.getGui().remove(),this.destroyBean(G);this.panels=[]}getDataPanelDef(){return this.gos.get("chartToolPanelsDef")?.dataPanel??zx}getCategoryGroupTitle(G){if(G)return this.chartTranslation.translate("seriesLabels");return this.chartTranslation.translate(this.chartController.isActiveXYChart()?"labels":"categories")}getCategoryGroupMultipleSelect(G,D){if(D)return!1;return QJ(G)!==1}getSeriesGroupTitle(G){if(G)return this.chartTranslation.translate("categoryValues");return this.chartTranslation.translate(this.chartController.isActiveXYChart()?"xyValues":"series")}getSeriesGroupMultipleSelect(G,D){return this.getSeriesGroupMaxSelection(G,D)!==1}getSeriesGroupMaxSelection(G,D){if(D)return;return bB(G)}createSwitchCategorySeriesToggle(){this.switchCategorySeriesToggle=this.createManagedBean(new Ey({label:this.chartTranslation.translate("switchCategorySeries"),labelAlignment:"left",labelWidth:"flex",inputWidth:"flex",value:this.chartController.isCategorySeriesSwitched(),onValueChange:(G)=>{this.restoreSwitchCategorySeriesToggleFocus=!0,this.chartController.switchCategorySeries(G)}}))}},qx=class extends Lx{constructor(G){super(G,`
`,[Sx]);this.eLabel=QB,this.eParentCircle=QB,this.eChildCircle=QB,this.eAngleValue=QB,this.radius=0,this.offsetX=0,this.offsetY=0}wireBeans(G){this.dragSvc=G.dragSvc}postConstruct(){super.postConstruct();let{value:G,onValueChange:D}=this.config;if(G!=null)this.setValue(G,void 0,!0);if(D!=null)this.onValueChange(D);if(this.dragListener={eElement:this.eParentCircle,dragStartPixels:0,onDragStart:()=>{this.parentCircleRect=this.eParentCircle.getBoundingClientRect()},onDragging:(z)=>this.calculateAngleDrag(z),onDragStop:()=>{}},this.dragSvc?.addDragSource(this.dragListener),this.eAngleValue.setLabel("").setLabelWidth(5).setInputWidth(45).setMin(0).setMax(360).setValue(`${this.degrees}`).onValueChange((z)=>{if(z==null||z==="")z="0";z=this.eAngleValue.normalizeValue(z);let B=parseFloat(z);if(B>180)B=B-360;this.setValue(B)}),this.updateNumberInput(),Xx(this.getValue()))this.eAngleValue.setValue(this.normalizeNegativeValue(this.getValue()).toString());this.addManagedListeners(this,{fieldValueChanged:()=>{if(this.eAngleValue.getInputElement().contains(Yx(this.beans)))return;this.updateNumberInput()}})}updateNumberInput(){let G=this.normalizeNegativeValue(this.getValue());this.eAngleValue.setValue(G.toString())}positionChildCircle(G){let D=this.parentCircleRect||{width:24,height:24},z=this.eChildCircle,B=D.width/2,Q=D.height/2;z.style.left=`${B+Math.cos(G)*8}px`,z.style.top=`${Q+Math.sin(G)*8}px`}calculatePolar(){let G=this.offsetX,D=this.offsetY,z=Math.atan2(D,G);this.degrees=this.toDegrees(z),this.radius=Math.sqrt(G*G+D*D),this.positionChildCircle(z)}calculateCartesian(){let G=this.toRadians(this.getValue()),D=this.getRadius();this.setOffsetX(Math.cos(G)*D).setOffsetY(Math.sin(G)*D)}setOffsetX(G){if(this.offsetX!==G)this.offsetX=G,this.calculatePolar();return this}setOffsetY(G){if(this.offsetY!==G)this.offsetY=G,this.calculatePolar();return this}calculateAngleDrag(G){let D=this.parentCircleRect,z=D.width/2,B=D.height/2,Q=G.clientX-D.left,J=G.clientY-D.top,U=Q-z,Z=J-B,S=Math.atan2(Z,U);this.setValue(S,!0)}toDegrees(G){return G/Math.PI*180}toRadians(G){return G/180*Math.PI}normalizeNegativeValue(G){return G<0?360+G:G}normalizeAngle180(G){if(G%=Math.PI*2,G<-Math.PI)G+=Math.PI*2;else if(G>=Math.PI)G-=Math.PI*2;return G}getRadius(){return this.radius}setRadius(G){if(this.radius===G)return this;return this.radius=G,this.calculateCartesian(),this}onValueChange(G){return this.addManagedListeners(this,{fieldValueChanged:()=>{G(this.degrees)}}),this}getValue(G){return G?this.toRadians(this.degrees):this.degrees}setValue(G,D,z){let B;if(!D)B=this.normalizeAngle180(this.toRadians(G));else B=G;if(G=this.toDegrees(B),this.degrees!==G){if(this.degrees=Math.floor(G),this.calculateCartesian(),this.positionChildCircle(B),!z)this.dispatchLocalEvent({type:"fieldValueChanged"})}return this}setWidth(G){return Wx(this.getGui(),G),this}setDisabled(G){return super.setDisabled(G),this.eAngleValue.setDisabled(G),this}destroy(){this.dragSvc?.removeDragSource(this.dragListener),super.destroy()}};function Kx(G){return G[0].toUpperCase()+G.substring(1).toLowerCase()}var YD=class extends _x{constructor(G){super();this.params=G,this.fontGroup=kx,this.activeComps=[],this.chartOptions=G.chartMenuParamsFactory.getChartOptions()}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let{cssIdentifier:G="charts-format-sub-level",name:D,enabled:z,onEnableChange:B,suppressEnabledCheckbox:Q,chartMenuParamsFactory:J,keyMapper:U}=this.params,Z={cssIdentifier:G,direction:"vertical",suppressOpenCloseIcons:!0,title:D,enabled:z,suppressEnabledCheckbox:!0,onEnableChange:(S)=>{if(B)B(S)},useToggle:!Q};this.setTemplate(`
`,[p,Hx,TG],{fontGroup:Z,familySelect:this.getFamilySelectParams(),weightStyleSelect:this.getWeightStyleSelectParams(),sizeSelect:this.getSizeSelectParams(),colorPicker:J.getDefaultColorPickerParams(U("color"))}),this.toggleCss("ag-font-panel-no-header",!D)}addItem(G,D){if(D)this.fontGroup.prependItem(G);else this.fontGroup.addItem(G);this.activeComps.push(G)}setEnabled(G){this.fontGroup.setEnabled(G)}getFamilySelectParams(){let G=["Arial, sans-serif","Aria Black, sans-serif","Book Antiqua, serif","Charcoal, sans-serif","Comic Sans MS, cursive","Courier, monospace","Courier New, monospace","Gadget, sans-serif","Geneva, sans-serif","Helvetica, sans-serif","Impact, sans-serif","Lucida Console, monospace","Lucida Grande, sans-serif","Lucida Sans Unicode, sans-serif","Monaco, monospace","Palatino Linotype, serif","Palatino, serif","Times New Roman, serif","Times, serif","Verdana, sans-serif"],D=this.getInitialFontValue("fontFamily"),z=G[0];if(D){let J=G.map((U)=>U.toLowerCase()).indexOf(D.toLowerCase());if(J>=0)z=G[J];else{let U=Kx(D);G.push(U),z=U}}let B=G.sort().map((Q)=>({value:Q,text:Q}));return this.params.chartMenuParamsFactory.getDefaultSelectParamsWithoutValueParams("font",B,`${z}`,(Q)=>this.setFont({fontFamily:Q}))}getSizeSelectParams(){let G=[8,10,12,14,16,18,20,22,24,26,28,30,32,34,36],D=this.getInitialFontValue("fontSize");if(!G.includes(D))G.push(D);let z=G.sort((B,Q)=>B-Q).map((B)=>({value:`${B}`,text:`${B}`}));return this.params.chartMenuParamsFactory.getDefaultSelectParamsWithoutValueParams("size",z,`${D}`,(B)=>this.setFont({fontSize:parseInt(B,10)}))}getWeightStyleSelectParams(){let G=this.getInitialFontValue("fontWeight")??"normal",D=this.getInitialFontValue("fontStyle")??"normal",z=[{name:"normal",weight:"normal",style:"normal"},{name:"bold",weight:"bold",style:"normal"},{name:"italic",weight:"normal",style:"italic"},{name:"boldItalic",weight:"bold",style:"italic"}],B=z.find((J)=>J.weight===G&&J.style===D);if(!B)B={name:"predefined",weight:G,style:D},z.unshift(B);let Q=z.map((J)=>({value:J.name,text:this.chartTranslation.translate(J.name)}));return this.params.chartMenuParamsFactory.getDefaultSelectParamsWithoutValueParams("weight",Q,B.name,(J)=>{let U=z.find((Z)=>Z.name===J);this.setFont({fontWeight:U.weight,fontStyle:U.style})})}destroyActiveComps(){for(let G of this.activeComps)wx(G.getGui()),this.destroyBean(G)}destroy(){this.destroyActiveComps(),super.destroy()}setFont(G){let{keyMapper:D}=this.params;for(let z of Object.keys(G)){let B=G[z];if(B)this.chartOptions.setValue(D(z),B)}}getInitialFontValue(G){let{keyMapper:D}=this.params;return this.chartOptions.getValue(D(G))}},Fx=class extends fx{constructor(G){super();this.chartMenuUtils=G,this.axisTicksSizeSlider=Nx}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let{chartMenuUtils:G}=this,D=G.addEnableParams("tick.enabled",{cssIdentifier:"charts-format-sub-level",direction:"vertical",suppressOpenCloseIcons:!0,title:this.chartTranslation.translate("ticks"),suppressEnabledCheckbox:!0,useToggle:!0}),z=G.getDefaultColorPickerParams("tick.stroke"),B=G.getDefaultSliderParams("tick.width","width",10),Q=G.getDefaultSliderParams("tick.size","length",30);this.setTemplate(`
`,[p,TG,WG],{axisTicksGroup:D,axisTicksColorPicker:z,axisTicksWidthSlider:B,axisTicksSizeSlider:Q})}setTickSizeSliderDisplayed(G){this.axisTicksSizeSlider.setDisplayed(G)}},Ix=class extends Ex{constructor(G){super();this.chartMenuUtils=G,this.chartOptions=G.getChartOptions()}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G=this.chartMenuUtils.addEnableParams("gridLine.enabled",{cssIdentifier:"charts-format-sub-level",direction:"vertical",suppressOpenCloseIcons:!0,title:this.chartTranslation.translate("gridLines"),suppressEnabledCheckbox:!0,useToggle:!0}),D=this.getGridLineColorPickerParams("color"),z=this.getGridLineWidthSliderParams("thickness"),B=this.getGridLineDashSliderParams("lineDash");this.setTemplate(`
`,[p,TG,WG],{gridLineGroup:G,gridLineColorPicker:D,gridLineWidthSlider:z,gridLineLineDashSlider:B})}getGridLineColorPickerParams(G){return this.chartMenuUtils.getDefaultColorPickerParams("gridLine.style",G,{formatInputValue:(D)=>{return D?.[0]?.stroke},parseInputValue:(D)=>{let z=this.chartOptions.getValue("gridLine.style")??[];if(z.length===0)return[{stroke:D,lineDash:[]}];return[{...z[0],stroke:D}]}})}getGridLineWidthSliderParams(G){return this.chartMenuUtils.getDefaultSliderParams("gridLine.width",G,10)}getGridLineDashSliderParams(G){let z=this.chartOptions.getValue("gridLine.style")?.[0]?.lineDash?.[0],B=this.chartMenuUtils.getDefaultSliderParamsWithoutValueParams(z??0,G,30);return B.onValueChange=(Q)=>{let J=this.chartOptions.getValue("gridLine.style.0.stroke");this.chartOptions.setValue("gridLine.style",[{lineDash:[Q],stroke:J}])},B}},Mx="%d %B %Y",JB=class extends Zx{constructor(G,D){super();this.axisType=G,this.options=D,this.axisGroup=BB,this.axisTypeSelect=BB,this.axisPositionSelect=BB,this.axisTimeFormatSelect=BB,this.activePanels=[],this.updateFuncs=[];let{chartOptionsService:z,seriesType:B,chartController:Q}=D;this.chartOptionsService=z,this.chartController=Q,this.chartOptionsSeriesProxy=z.getSeriesOptionsProxy(()=>B)}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let{isExpandedOnInit:G,chartOptionsService:D,registerGroupComponent:z}=this.options,B=this.axisType,Q={cssIdentifier:"charts-format-top-level",direction:"vertical",title:this.translate(B),expanded:G,suppressEnabledCheckbox:!0},J=D.getCartesianAxisOptionsProxy(this.axisType),U=this.createManagedBean(new uD(J)),Z=this.createManagedBean(new uD(D.getCartesianAxisThemeOverridesProxy(this.axisType))),S=this.getAxisTypeSelectParams(U,D.getCartesianAxisAppliedThemeOverridesProxy(this.axisType)),X=this.getAxisPositionSelectParams(U),Y=this.getAxisTimeFormatSelectParams(U),W=this.getAxisColorInputParams(Z),q=this.getAxisLineWidthSliderParams(Z);if(this.setTemplate(`
`,[p,Ux,TG,WG],{axisGroup:Q,axisTypeSelect:S??void 0,axisPositionSelect:X??void 0,axisTimeFormatSelect:Y??void 0,axisColorInput:W,axisLineWidthSlider:q}),z(this.axisGroup),this.axisTypeSelect.setDisplayed(!!S.options?.length),!X)this.removeTemplateComponent(this.axisPositionSelect);let H=()=>{let k=J.getValue("type")==="time";$x(this.axisTimeFormatSelect.getGui(),k)};if(!Y)this.removeTemplateComponent(this.axisTimeFormatSelect);else H(),this.addManagedEventListeners({chartOptionsChanged:()=>{H()}});this.initGridLines(Z),this.initAxisTicks(Z),this.initAxisLabels(Z);let _=()=>{for(let k of this.updateFuncs)k()};this.addManagedListeners(this.chartController,{chartUpdated:_,chartModelUpdate:()=>setTimeout(()=>{if(!this.isAlive())return;this.refreshAxisTypeSelect(U),H()})})}getAxisTypeSelectParams(G,D){let z=G.getChartOptions(),B=this.getAxisTypeSelectOptions(),Q=G.getDefaultSelectParams("type","axisType",B);return Q.onValueChange=(J)=>{let U=z.getValue("type");if(J===U)return;let Z=D.getValue("*"),S=U==="time",X=J==="time",Y=S!==X?X?Mx:void 0:null;if(Y===void 0)z.clearValue?.("label","format");if(this.chartOptionsService.setCartesianCategoryAxisType(this.axisType,J),Y!=null)z.setValue("label.format",Y);D.setValue("*",Z)},Q}refreshAxisTypeSelect(G){let D=this.getAxisTypeSelectOptions(),z=!!D.length;if(this.axisTypeSelect.setDisplayed(z),!z)return;this.axisTypeSelect.clearOptions().addOptions(D).setValue(G.getChartOptions().getValue("type"))}getAxisTypeSelectOptions(){let G=this.chartController,D=G.getChartType(),z=()=>{let B=G.getChartData()[0];if(!B)return!1;return G.getSelectedDimensions().every((Q)=>!isNaN(parseFloat(B[Q.colId])))};if(["heatmap","histogram","boxPlot","rangeBar","scatter","bubble"].includes(D)||G.isGrouping()||!this.isCategoryAxis()||G.isCategorySeriesSwitched()||!z())return[];return["category","number","time"].map((B)=>({value:B,text:this.translate(B)}))}isCategoryAxis(){let G=this.chartOptionsSeriesProxy.getValue("direction")==="horizontal";return G&&this.axisType==="yAxis"||!G&&this.axisType==="xAxis"}getAxisPositionSelectParams(G){let D=((z,B)=>{if(z==="heatmap")return null;if(B==="xAxis")return[{value:"top",text:this.translate("top")},{value:"bottom",text:this.translate("bottom")}];if(B==="yAxis")return[{value:"left",text:this.translate("left")},{value:"right",text:this.translate("right")}]})(this.chartController.getChartType(),this.axisType);if(!D)return null;return G.getDefaultSelectParams("position","position",D)}getAxisTimeFormatSelectParams(G){if(!this.isCategoryAxis())return null;let D=[{value:"%d/%m/%Y",text:this.translate("timeFormatSlashesDDMMYYYY")},{value:"%m/%d/%Y",text:this.translate("timeFormatSlashesMMDDYYYY")},{value:"%d/%m/%y",text:this.translate("timeFormatSlashesDDMMYY")},{value:"%m/%d/%y",text:this.translate("timeFormatSlashesMMDDYY")},{value:"%d.%e.%y",text:this.translate("timeFormatDotsDDMYY")},{value:"%e.%d.%y",text:this.translate("timeFormatDotsMDDYY")},{value:"%Y-%m-%d",text:this.translate("timeFormatDashesYYYYMMDD")},{value:"%d %B %Y",text:this.translate("timeFormatSpacesDDMMMMYYYY")},{value:"%H:%M:%S",text:this.translate("timeFormatHHMMSS")},{value:"%I:%M:%S %p",text:this.translate("timeFormatHHMMSSAmPm")}];return G.getDefaultSelectParams("label.format","timeFormat",D)}getAxisColorInputParams(G){return G.getDefaultColorPickerParams("line.stroke")}getAxisLineWidthSliderParams(G){let D=G.getChartOptions(),z=()=>{if(!D.getValue("line.enabled"))return null;return D.getValue("line.width")},B=(J)=>{D.setValues([{expression:"line.enabled",value:J!=null},{expression:"line.width",value:J??0}])},Q=G.getDefaultSliderParamsWithoutValueParams(z()??0,"thickness",10);return Q.onValueChange=(J)=>{B(J===0?null:J)},Q}initGridLines(G){if(this.chartController.getChartType()==="heatmap")return;let z=this.createBean(new Ix(G));this.axisGroup.addItem(z),this.activePanels.push(z)}initAxisTicks(G){if(!this.hasConfigurableAxisTicks())return;let D=this.createBean(new Fx(G));this.axisGroup.addItem(D),this.activePanels.push(D);let z=()=>D.setTickSizeSliderDisplayed(this.isGroupedCategoryAxis());this.updateFuncs.push(z),z()}hasConfigurableAxisTicks(){switch(this.chartController.getChartType()){case"radarLine":case"radarArea":case"rangeBar":case"boxPlot":case"waterfall":return!1;default:return!0}}initAxisLabels(G){let D={name:this.translate("labels"),enabled:!0,suppressEnabledCheckbox:!0,chartMenuParamsFactory:G,keyMapper:(B)=>`label.${B}`},z=this.createBean(new YD(D));this.axisGroup.addItem(z),this.activePanels.push(z),this.addAdditionalLabelComps(z,G)}addAdditionalLabelComps(G,D){this.addLabelPadding(G,D);let z=this.createRotationWidget("labelRotation",D),B=this.initLabelRotation(z,D);G.addItem(B),G.addItem(z)}initLabelRotation(G,D){let z=D.getChartOptions(),B=()=>{return z.getValue("label.rotation")},Q=()=>{return z.getValue("label.autoRotate")},J=(Y)=>{if(Y)this.prevRotation=B();z.setValues([{expression:"label.autoRotate",value:Y},{expression:"label.rotation",value:Y?void 0:this.prevRotation}]),G.setDisplayed(!Y)},Z=typeof B()==="number"?!1:Q(),S=this.createBean(new Jx({label:this.translate("autoRotate"),value:Z,onValueChange:J}));G.setDisplayed(!Z);let X=()=>S.setDisplayed(this.isGroupedCategoryAxis());return this.updateFuncs.push(X),X(),S}createRotationWidget(G,D){let z=D.getChartOptions(),B=()=>{return z.getValue("label.rotation")},Q=(S)=>{return z.setValue("label.rotation",S)},J=String.fromCharCode(176),U=`${this.chartTranslation.translate(G)} ${J}`,Z=new qx({label:U,labelWidth:"flex",value:B()??0,onValueChange:Q});return this.updateFuncs.push(()=>{Z.setValue(B()??0)}),this.createBean(Z)}isGroupedCategoryAxis(){if(this.chartOptionsService.getCartesianAxisOptionsProxy(this.axisType).getValue("type")==="grouped-category")return!this.isCategoryAxis();return!0}addLabelPadding(G,D){let z=this.createBean(new kG(D.getDefaultSliderParams("label.spacing","padding",30)));G.addItem(z)}translate(G){return this.chartTranslation.translate(G)}removeTemplateComponent(G){m5(G.getGui()),this.destroyBean(G)}destroyActivePanels(){for(let G of this.activePanels)m5(G.getGui()),this.destroyBean(G)}destroy(){this.destroyActivePanels(),super.destroy()}},Vx=class extends Rx{constructor(G){super();this.options=G,this.axisGroup=Cx}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let{isExpandedOnInit:G,chartAxisMenuParamsFactory:D,registerGroupComponent:z}=this.options,B={cssIdentifier:"charts-format-top-level",direction:"vertical",title:this.translate("polarAxis"),expanded:G,suppressEnabledCheckbox:!0},Q=D.getDefaultColorPickerParams("line.stroke"),J=D.getDefaultSliderParams("line.width","thickness",10);this.setTemplate(`
`,[p,TG,WG],{axisGroup:B,axisColorInput:Q,axisLineWidthSlider:J}),z(this.axisGroup),this.initAxis(),this.initAxisLabels(),this.initRadiusAxis()}initAxis(){let G=this.options.chartController.getChartType();if(["radarLine","radarArea"].includes(G)){let z=[{value:"circle",text:this.translate("circle")},{value:"polygon",text:this.translate("polygon")}];this.axisGroup.addItem(this.createSelect({labelKey:"shape",options:z,property:"shape"}))}if(G!=="pie")this.axisGroup.addItem(this.createSlider({labelKey:"innerRadius",defaultMaxValue:1,property:"innerRadiusRatio"}))}initAxisLabels(){let G={name:this.translate("labels"),enabled:!0,suppressEnabledCheckbox:!0,chartMenuParamsFactory:this.options.chartAxisMenuParamsFactory,keyMapper:(B)=>`label.${B}`},D=this.createManagedBean(new YD(G)),z=this.createOrientationWidget();D.addItem(z),this.axisGroup.addItem(D)}createOrientationWidget(){let G=[{value:"fixed",text:this.translate("fixed")},{value:"parallel",text:this.translate("parallel")},{value:"perpendicular",text:this.translate("perpendicular")}];return this.createSelect({labelKey:"orientation",options:G,property:"label.orientation"})}initRadiusAxis(){let G=l(this.options.chartController.getChartType());if(!oP(G))return;let D=[this.createSlider({labelKey:"groupPadding",defaultMaxValue:1,property:"paddingInner"}),this.createSlider({labelKey:"seriesPadding",defaultMaxValue:1,property:"groupPaddingInner"})],z=this.createManagedBean(new jG({cssIdentifier:"charts-format-sub-level",direction:"vertical",suppressOpenCloseIcons:!0,enabled:!0,suppressEnabledCheckbox:!0,title:this.translate("padding"),items:D})).hideEnabledCheckbox(!0).hideOpenCloseIcons(!0);this.axisGroup.addItem(z)}createSlider(G){let{labelKey:D,defaultMaxValue:z,step:B=0.05,property:Q}=G,J=this.options.chartAxisMenuParamsFactory.getDefaultSliderParams(Q,D,z);return J.step=B,this.createManagedBean(new kG(J))}createSelect(G){let{labelKey:D,options:z,property:B}=G;return this.createManagedBean(new Ax(this.options.chartAxisMenuParamsFactory.getDefaultSelectParams(B,D,z)))}translate(G){return this.chartTranslation.translate(G)}},ux=class extends Ox{constructor(G){super();this.chartMenuUtils=G}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G=this.chartMenuUtils.addEnableParams("background.visible",{cssIdentifier:"charts-format-sub-level",direction:"vertical",suppressOpenCloseIcons:!0,title:this.chartTranslation.translate("background"),suppressEnabledCheckbox:!0,useToggle:!0}),D=this.chartMenuUtils.getDefaultColorPickerParams("background.fill");this.setTemplate(`
`,[p,TG],{chartBackgroundGroup:G,colorPicker:D})}},gx=class extends jx{constructor(G,D){super();this.chartMenuUtils=G,this.chartController=D,this.paddingTopSlider=Px}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G={cssIdentifier:"charts-format-sub-level",direction:"vertical",suppressOpenCloseIcons:!0,title:this.chartTranslation.translate("padding"),suppressEnabledCheckbox:!0},D=(z)=>this.chartMenuUtils.getDefaultSliderParams("padding."+z,z,200);this.setTemplate(`
`,[p,WG],{chartPaddingGroup:G,paddingTopSlider:D("top"),paddingRightSlider:D("right"),paddingBottomSlider:D("bottom"),paddingLeftSlider:D("left")}),this.addManagedEventListeners({chartOptionsChanged:(z)=>{this.updateTopPadding(z.chartOptions)}})}updateTopPadding(G){let D=[...this.chartController.getChartSeriesTypes(),"common"].map((z)=>G?.[z]?.padding?.top).find((z)=>z!=null);if(D!=null)this.paddingTopSlider.setValue(`${D}`)}},Tx=class extends bx{constructor(G){super();this.options=G,this.chartGroup=vx}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let{chartController:G,chartMenuParamsFactory:D,isExpandedOnInit:z,registerGroupComponent:B}=this.options,Q={cssIdentifier:"charts-format-top-level",direction:"vertical",title:this.chartTranslation.translate("chartStyle"),expanded:z,suppressEnabledCheckbox:!0,items:[this.createManagedBean(new gx(D,G)),this.createManagedBean(new ux(D))]};this.setTemplate(`
`,[p],{chartGroup:Q}),B(this.chartGroup)}},xx=class extends yx{constructor(G){super();this.groupContainer=G,this.id=0,this.groupComponents=new Map}addGroupComponent(G){let D=this.id++;if(this.groupComponents.set(D,G),G.isExpanded())this.expandedGroupComponent=D;G.onExpandedChange((z)=>{if(z){let B=this.expandedGroupComponent;if(this.expandedGroupComponent=D,B!=null){let Q=G.getGui(),J=Q.offsetTop-this.groupContainer.parentElement.scrollTop;this.groupComponents.get(B)?.toggleGroupExpand(!1,!0);let U=Q.offsetTop-J;if(U<0)U=0;if(U!==this.groupContainer.parentElement.scrollTop)this.groupContainer.parentElement.scrollTop=U}}else this.expandedGroupComponent=void 0})}destroy(){this.groupComponents.clear(),super.destroy()}},nx=class extends ix{constructor(G,D){super();this.options=G,this.legendGroup=t5,this.enabledGroup=t5,this.isGradient=["treemap","sunburst","heatmap"].includes(G.seriesType),this.key=this.isGradient?"gradientLegend":"legend",this.chartController=D.chartController}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let{chartMenuParamsFactory:G,isExpandedOnInit:D,registerGroupComponent:z}=this.options,B=this.createManagedBean(new hx(G.getDefaultSelectParams(`${this.key}.position`,"position",["top","right","bottom","left"].map((U)=>({value:U,text:this.chartTranslation.translate(U)})))));this.enabledGroup=this.createManagedBean(new jG(G.addEnableParams(`${this.key}.enabled`,{cssIdentifier:"charts-format-sub-level",direction:"vertical",suppressOpenCloseIcons:!0,title:this.chartTranslation.translate("legendEnabled"),suppressEnabledCheckbox:!0,useToggle:!0,items:[this.createLabelPanel(G),B,...this.getItems(G)]})));let Q={cssIdentifier:"charts-format-top-level",direction:"vertical",title:this.chartTranslation.translate("legend"),suppressEnabledCheckbox:!0,expanded:D,items:[this.enabledGroup]};this.setTemplate(`
`,[p],{legendGroup:Q}),z(this.legendGroup);let J=this.updateLegendEnabledState.bind(this);this.addManagedListeners(this.chartController,{chartModelUpdate:J,chartApiUpdate:J})}updateLegendEnabledState(){let{valueCols:G}=this.chartController.getColStateForMenu();this.enabledGroup.setEnabled(G.filter((D)=>D.selected).length>1)}getItems(G){let D=(z,B,Q)=>this.createManagedBean(new kG(G.getDefaultSliderParams(`${this.key}.${z}`,B,Q)));if(this.isGradient)return[this.createManagedBean(new cx(G.addValueParams("gradientLegend.reverseOrder",{label:this.chartTranslation.translate("reverseDirection"),labelWidth:"flex"}))),D("gradient.thickness","thickness",40),D("gradient.preferredLength","preferredLength",300),D("spacing","spacing",200)];return[D("spacing","spacing",200),D("item.marker.size","markerSize",40),D("item.marker.strokeWidth","markerStroke",10),D("item.marker.padding","itemSpacing",20),D("item.paddingX","layoutHorizontalSpacing",50),D("item.paddingY","layoutVerticalSpacing",50)]}createLabelPanel(G){let D=this.isGradient?"gradientLegend.scale.label":"legend.item.label",z={enabled:!0,suppressEnabledCheckbox:!0,chartMenuParamsFactory:G,keyMapper:(B)=>`${D}.${B}`,cssIdentifier:"charts-format-sub-level-no-header"};return this.createManagedBean(new YD(z))}},rx=class extends tx{constructor(G){super();this.params=G,this.toggleableGroup=sx,this.activeComps=[],this.chartOptions=G.chartMenuParamsFactory.getChartOptions()}postConstruct(){let{tag:G,cssIdentifier:D="charts-format-sub-level",title:z,suppressEnabledCheckbox:B}=this.params,Q=this.params.chartMenuParamsFactory.addEnableParams(`${G}.enabled`,{cssIdentifier:D,direction:"vertical",suppressOpenCloseIcons:!0,title:z,suppressEnabledCheckbox:!0,useToggle:!B});this.setTemplate(`
`,[p],{toggleableGroup:Q}),this.toggleCss("ag-toggleable-group-panel-no-header",!z)}addItem(G,D){if(D)this.toggleableGroup.prependItem(G);else this.toggleableGroup.addItem(G);this.activeComps.push(G)}setEnabled(G){this.toggleableGroup.setEnabled(G)}destroyActiveComps(){for(let G of this.activeComps)ox(G.getGui()),this.destroyBean(G)}destroy(){this.destroyActiveComps(),super.destroy()}},ex=class extends ax{constructor(G){super();this.chartMenuUtils=G}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G={cssIdentifier:"charts-format-sub-level",direction:"vertical",title:this.chartTranslation.translate("callout"),enabled:!0,suppressOpenCloseIcons:!0,suppressEnabledCheckbox:!0};this.setTemplate(`
`,[p,WG],{calloutGroup:G,calloutLengthSlider:this.chartMenuUtils.getDefaultSliderParams("calloutLine.length","length",40),calloutStrokeWidthSlider:this.chartMenuUtils.getDefaultSliderParams("calloutLine.strokeWidth","strokeWidth",10),labelOffsetSlider:this.chartMenuUtils.getDefaultSliderParams("calloutLabel.offset","offset",30)})}},Dc=class extends Gc{constructor(G){super();this.chartMenuUtils=G}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G={cssIdentifier:"charts-format-sub-level",direction:"vertical",title:this.chartTranslation.translate("cap"),enabled:!0,suppressOpenCloseIcons:!0,suppressEnabledCheckbox:!0},D=this.chartMenuUtils.getDefaultSliderParams("cap.lengthRatio","capLengthRatio",1);D.step=0.05,this.setTemplate(`
`,[p,WG],{capsGroup:G,capLengthRatioSlider:D})}},Bc=class extends zc{constructor(G){super();this.chartMenuUtils=G}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G={cssIdentifier:"charts-format-sub-level",direction:"vertical",title:this.chartTranslation.translate("connectorLine"),enabled:!0,suppressOpenCloseIcons:!0,suppressEnabledCheckbox:!0};this.setTemplate(`
`,[p,TG,WG],{lineGroup:G,lineColorPicker:this.chartMenuUtils.getDefaultColorPickerParams("line.stroke"),lineStrokeWidthSlider:this.getSliderParams("strokeWidth",10,"line.strokeWidth"),lineDashSlider:this.getSliderParams("lineDash",30,"line.lineDash",1,!0),lineOpacitySlider:this.getSliderParams("strokeOpacity",1,"line.strokeOpacity",0.05)})}getSliderParams(G,D,z,B=1,Q=!1){let J=this.chartMenuUtils.getDefaultSliderParams(z,G,D,Q);return J.step=B,J}};function S9(G){return["square","circle","cross","diamond","plus","triangle","heart"].map((D)=>({value:D,text:G.translate(D)}))}var Uc=class extends Jc{constructor(G){super();this.chartMenuUtils=G}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G=this.chartMenuUtils.addEnableParams("marker.enabled",{cssIdentifier:"charts-format-sub-level",direction:"vertical",title:this.chartTranslation.translate("markers"),suppressEnabledCheckbox:!0,useToggle:!0,suppressOpenCloseIcons:!0});this.setTemplate(`
`,[p,Qc,WG],{seriesMarkersGroup:G,seriesMarkerShapeSelect:this.chartMenuUtils.getDefaultSelectParams("marker.shape","shape",S9(this.chartTranslation)),seriesMarkerSizeSlider:this.chartMenuUtils.getDefaultSliderParams("marker.size","size",60),seriesMarkerStrokeWidthSlider:this.chartMenuUtils.getDefaultSliderParams("marker.strokeWidth","strokeWidth",10)})}},Xc=class extends $c{constructor(G){super();this.chartMenuUtils=G,this.seriesItemsGroup=Lc,this.activePanels=[]}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G={cssIdentifier:"charts-format-sub-level",direction:"vertical",title:this.chartTranslation.translate("seriesItems"),enabled:!0,suppressOpenCloseIcons:!0,suppressEnabledCheckbox:!0};this.setTemplate(`
`,[p,Zc],{seriesItemsGroup:G,seriesItemSelect:this.getSeriesItemsParams()}),this.initSeriesControls()}getSeriesItemsParams(){let G=[{value:"positive",text:this.chartTranslation.translate("seriesItemPositive")},{value:"negative",text:this.chartTranslation.translate("seriesItemNegative")}],D=(z)=>{this.destroyActivePanels(),this.initSeriesControls(z)};return this.chartMenuUtils.getDefaultSelectParamsWithoutValueParams("seriesItemType",G,"positive",D)}initSeriesControls(G="positive"){this.initSlider("strokeWidth",10,`item.${G}.strokeWidth`),this.initSlider("lineDash",30,`item.${G}.lineDash`,1,!0),this.initSlider("strokeOpacity",1,`item.${G}.strokeOpacity`,0.05,!1),this.initSlider("fillOpacity",1,`item.${G}.fillOpacity`,0.05,!1),this.initItemLabels(G)}initSlider(G,D,z,B=1,Q=!1){let J=this.chartMenuUtils.getDefaultSliderParams(z,G,D,Q);J.step=B;let U=this.seriesItemsGroup.createManagedBean(new kG(J));this.seriesItemsGroup.addItem(U),this.activePanels.push(U)}initItemLabels(G){let D=this.chartMenuUtils.getDefaultFontPanelParams(`item.${G}.label`,"seriesItemLabels"),z=this.createBean(new YD(D));this.seriesItemsGroup.addItem(z),this.activePanels.push(z)}destroyActivePanels(){for(let G of this.activePanels)Sc(G.getGui()),this.destroyBean(G)}destroy(){this.destroyActivePanels(),super.destroy()}},Wc=class extends Yc{constructor(G,D="shadow"){super();this.chartMenuUtils=G,this.propertyKey=D}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G=this.propertyKey,D=this.chartMenuUtils.addEnableParams(`${G}.enabled`,{cssIdentifier:"charts-format-sub-level",direction:"vertical",suppressOpenCloseIcons:!0,title:this.chartTranslation.translate("shadow"),suppressEnabledCheckbox:!0,useToggle:!0}),z=this.chartMenuUtils.getDefaultColorPickerParams(`${G}.color`);this.setTemplate(`
`,[p,TG,WG],{shadowGroup:D,shadowColorPicker:z,shadowBlurSlider:this.getSliderParams("blur",0,20),shadowXOffsetSlider:this.getSliderParams("xOffset",-10,10),shadowYOffsetSlider:this.getSliderParams("yOffset",-10,10)})}getSliderParams(G,D,z){let B=`${this.propertyKey}.${G}`,Q=this.chartMenuUtils.getDefaultSliderParams(B,G,z);return Q.minValue=D,Q}},Hc=class extends qc{constructor(G){super();this.chartMenuUtils=G}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G={cssIdentifier:"charts-format-sub-level",direction:"vertical",enabled:!0,suppressOpenCloseIcons:!0,suppressEnabledCheckbox:!0};this.setTemplate(`
`,[p,WG],{groupSpacing:{...G,title:this.chartTranslation.translate("group")},tileSpacing:{...G,title:this.chartTranslation.translate("tile")},groupPaddingSlider:this.getSliderParams("padding","group.padding"),groupSpacingSlider:this.getSliderParams("spacing","group.gap"),tilePaddingSlider:this.getSliderParams("padding","tile.padding"),tileSpacingSlider:this.getSliderParams("spacing","tile.gap")})}getSliderParams(G,D){return this.chartMenuUtils.getDefaultSliderParams(D,G,10)}};function Kc(G){return G[0].toUpperCase()+G.substring(1)}var fc=class extends kc{constructor(G){super();this.chartMenuUtils=G,this.tooltipMode=wc}postConstruct(){let{chartMenuUtils:G,beans:D}=this,z="tooltip",B=D.chartTranslation,Q=G.addEnableParams("tooltip.enabled",{cssIdentifier:"charts-format-sub-level",direction:"vertical",suppressOpenCloseIcons:!0,title:B.translate("tooltips"),suppressEnabledCheckbox:!0,useToggle:!0}),J="tooltipMode",U=["single","shared","compact"].map((X)=>({value:X,text:B.translate(`tooltipMode${Kc(X)}`)})),Z="tooltip.mode",S=G.getDefaultSelectParams("tooltip.mode","tooltipMode",U);this.setTemplate(`
`,[p,_c],{tooltipGroup:Q,tooltipMode:S}),this.addManagedEventListeners({chartOptionsChanged:()=>{let X=G.getChartOptions().getValue("tooltip.mode");this.tooltipMode.setValue(X,!0)}})}},Fc=class extends Nc{constructor(G){super();this.chartMenuUtils=G}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let G={cssIdentifier:"charts-format-sub-level",direction:"vertical",title:this.chartTranslation.translate("whisker"),enabled:!0,suppressOpenCloseIcons:!0,suppressEnabledCheckbox:!0};this.setTemplate(`
`,[p,TG,WG],{whiskersGroup:G,whiskerColorPicker:this.chartMenuUtils.getDefaultColorPickerParams("whisker.stroke"),whiskerThicknessSlider:this.chartMenuUtils.getDefaultSliderParams("whisker.strokeWidth","strokeWidth",10),whiskerOpacitySlider:this.chartMenuUtils.getDefaultSliderParams("whisker.strokeOpacity","strokeOpacity",1),whiskerLineDashSlider:this.chartMenuUtils.getDefaultSliderParams("whisker.lineDash","lineDash",30,!0),whiskerLineDashOffsetSlider:this.chartMenuUtils.getDefaultSliderParams("whisker.lineDashOffset","lineDashOffset",30)})}},t="tooltips",BG="strokeWidth",tz="lineWidth",ZG="lineDash",e="lineOpacity",$G="fillOpacity",r="labels",nG="shadow",UB="stageLabels",sz="markers",Ec=class extends dx{constructor(G){super();this.options=G,this.seriesGroup=lx,this.activePanels=[],this.widgetFuncs={lineWidth:()=>this.initStrokeWidth(tz),[BG]:()=>this.initStrokeWidth("strokeWidth"),lineColor:()=>this.initLineColor(),[ZG]:()=>this.initLineDash(),[e]:()=>this.initOpacity("strokeOpacity"),[$G]:()=>this.initOpacity("fillOpacity"),markers:()=>new Uc(this.chartMenuUtils),[r]:()=>this.initLabels(),sectorLabels:()=>this.initSectorLabels(),[nG]:()=>new Wc(this.chartMenuUtils),[t]:()=>new fc(this.options.chartMenuParamsFactory),bins:()=>this.initBins(),whiskers:()=>new Fc(this.chartMenuUtils),caps:()=>new Dc(this.chartMenuUtils),connectorLine:()=>new Bc(this.chartMenuUtils),seriesItems:()=>new Xc(this.chartMenuUtils),tileSpacing:()=>new Hc(this.chartMenuUtils),shape:()=>this.initShape(),size:()=>this.initSize("size","size"),minSize:()=>this.initSize("size","minSize"),maxSize:()=>this.initSize("maxSize","maxSize"),dropoff:()=>this.initDropOff(),stageLabels:()=>this.initStageLabels()},this.seriesWidgetMappings={bar:[t,BG,ZG,e,$G,r,nG],pie:[t,BG,e,$G,r,"sectorLabels",nG],donut:[t,BG,e,$G,r,"sectorLabels",nG],line:[t,tz,ZG,e,sz,r],scatter:[t,"shape","size",BG,r],bubble:[t,"shape","minSize","maxSize",BG,r],area:[t,tz,ZG,e,$G,sz,r,nG],histogram:[t,"bins",BG,ZG,e,$G,r,nG],"radial-column":[t,BG,ZG,e,$G,r],"radial-bar":[t,BG,ZG,e,$G,r],"radar-line":[t,BG,ZG,e,sz,r],"radar-area":[t,BG,ZG,e,$G,sz,r],nightingale:[t,BG,ZG,e,$G,r],"box-plot":[t,BG,ZG,e,$G,"whiskers","caps"],"range-bar":[t,BG,ZG,e,$G,r],"range-area":[t,tz,ZG,e,$G,sz,r,nG],treemap:[t,"tileSpacing"],sunburst:[t],heatmap:[t,r,"lineColor",tz,e],waterfall:[t,"connectorLine","seriesItems"],funnel:[t,BG,ZG,e,$G,r,"dropoff",UB,nG],"cone-funnel":[t,BG,ZG,e,$G,r,UB],pyramid:[t,BG,ZG,e,$G,r,UB,nG]},this.seriesType=G.seriesType}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let{isExpandedOnInit:G,chartOptionsService:D,chartController:z,registerGroupComponent:B}=this.options,Q={cssIdentifier:"charts-format-top-level",direction:"vertical",title:this.translate("series"),expanded:G,suppressEnabledCheckbox:!0};this.setTemplate(`
`,[p],{seriesGroup:Q}),B(this.seriesGroup),this.chartMenuUtils=this.createManagedBean(new uD(D.getSeriesOptionsProxy(()=>this.seriesType))),this.addManagedListeners(z,{chartSeriesChartTypeChanged:this.refreshWidgets.bind(this)}),this.refreshWidgets()}refreshWidgets(){let{chartController:G}=this.options;this.destroyActivePanels(),G.getChartProxy().getChart().waitForUpdate().then(()=>{if(!this.isAlive())return;if(G.isComboChart())this.updateSeriesType(),this.initSeriesSelect();for(let B of this.seriesWidgetMappings[this.seriesType]??[]){let Q=this.widgetFuncs[B](),J;if(Array.isArray(Q)){let U=this.createBean(Q[0]);J=U,Q[1](U)}else J=this.createBean(Q);this.seriesGroup.addItem(J),this.activePanels.push(J)}}).catch((z)=>px(105,{e:z}))}initSeriesSelect(){let G=this.createBean(new O1(this.chartMenuUtils.getDefaultSelectParamsWithoutValueParams("seriesType",this.getSeriesSelectOptions(),`${this.seriesType}`,(D)=>{this.seriesType=D,this.refreshWidgets()})));this.seriesGroup.addItem(G),this.activePanels.push(G)}initLineColor(){return new z9(this.chartMenuUtils.getDefaultColorPickerParams("stroke","strokeColor"))}initStrokeWidth(G,D){return new kG(this.chartMenuUtils.getDefaultSliderParams(D?`${D}.${G}`:"strokeWidth",G,10))}initLineDash(G){return new kG(this.chartMenuUtils.getDefaultSliderParams(G?`${G}.lineDash`:"lineDash","lineDash",30,!0))}initOpacity(G,D){let z=this.chartMenuUtils.getDefaultSliderParams(D?`${D}.${G}`:G,G,1);return z.step=0.05,new kG(z)}initDropOff(){return[new rx({tag:"dropOff",cssIdentifier:"charts-format-sub-level",title:this.translate("dropOff"),suppressEnabledCheckbox:!1,chartMenuParamsFactory:this.chartMenuUtils}),(z)=>{for(let B of[this.initStrokeWidth("strokeWidth","dropOff"),this.initLineDash("dropOff"),this.initOpacity("strokeOpacity","dropOff"),this.initOpacity("fillOpacity","dropOff")]){let Q=z.createManagedBean(B);z.addItem(Q),this.activePanels.push(Q)}}]}initLabels(){let G=t8(this.seriesType),D=G?"calloutLabel":"label",z=G?"calloutLabels":"labels",B=this.chartMenuUtils.getDefaultFontPanelParams(D,z);return[new YD(B),(U)=>{if(G){let Z=U.createManagedBean(new ex(this.chartMenuUtils));U.addItem(Z),this.activePanels.push(Z)}if(this.seriesType==="range-bar"){let Z=[{value:"inside",text:this.translate("inside")},{value:"outside",text:this.translate("outside")}],S=U.createManagedBean(new O1(this.chartMenuUtils.getDefaultSelectParams("label.placement","labelPlacement",Z)));U.addItem(S),this.activePanels.push(S);let X=U.createManagedBean(new kG(this.chartMenuUtils.getDefaultSliderParams("label.padding","padding",200)));U.addItem(X),this.activePanels.push(X)}}]}initSectorLabels(){let G=this.chartMenuUtils.getDefaultFontPanelParams("sectorLabel","sectorLabels");return[new YD(G),(B)=>{let Q=this.chartMenuUtils.getDefaultSliderParams("sectorLabel.positionRatio","positionRatio",1);Q.step=0.05;let J=B.createManagedBean(new kG(Q));B.addItem(J)}]}initStageLabels(){return new YD(this.chartMenuUtils.getDefaultFontPanelParams("stageLabel",UB))}initBins(){let G=this.chartMenuUtils.getDefaultSliderParams("binCount","histogramBinCount",20),D=this.chartMenuUtils.getChartOptions(),z=(D.getValue("bins")??D.getValue("calculatedBins",!0)).length;return G.value=`${z}`,G.maxValue=Math.max(z,20),new kG(G)}initShape(){return new O1(this.chartMenuUtils.getDefaultSelectParams("shape","shape",S9(this.chartTranslation)))}initSize(G,D){return new kG(this.chartMenuUtils.getDefaultSliderParams(G,D,60))}getSeriesSelectOptions(){let G=this.getActiveSeriesTypes();return["area","bar","line"].filter((D)=>G.includes(D)).map((D)=>({value:D,text:this.translate(D)}))}updateSeriesType(){let G=this.getActiveSeriesTypes();if(!G.includes(this.seriesType)&&G.length>0)this.seriesType=G[0]}getActiveSeriesTypes(){return this.options.chartController.getActiveSeriesChartTypes().map((G)=>l(G.chartType))}translate(G){return this.chartTranslation.translate(G)}destroyActivePanels(){for(let G of this.activePanels)mx(G.getGui()),this.destroyBean(G)}destroy(){this.destroyActivePanels(),super.destroy()}},ez=class extends Rc{constructor(G,D,z){super("
");this.chartMenuUtils=G,this.name=D,this.key=z,this.chartOptions=G.getChartOptions()}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){this.initFontPanel()}hasTitle(){let G=this.chartOptions.getValue(this.key);return G?.enabled&&G.text&&G.text.length>0}initFontPanel(){let G=this.hasTitle(),D={name:this.chartTranslation.translate(this.name),enabled:G,suppressEnabledCheckbox:!1,chartMenuParamsFactory:this.chartMenuUtils,keyMapper:(z)=>`${this.key}.${z}`,onEnableChange:(z)=>this.onEnableChange(z)};this.fontPanel=this.createManagedBean(new YD(D)),this.fontPanel.addItem(this.createBean(new Ac(this.getTextInputParams())),!0),this.fontPanel.addItem(this.createBean(new kG(this.getSpacingSliderParams()))),this.getGui().appendChild(this.fontPanel.getGui())}getTextInputParams(){return this.chartMenuUtils.addValueParams(`${this.key}.text`,{label:this.chartTranslation.translate("title"),labelAlignment:"top"})}getSpacingSliderParams(){return this.chartMenuUtils.getDefaultSliderParams(`${this.key}.spacing`,"spacing",100)}onEnableChange(G){this.chartOptions.setValue(`${this.key}.enabled`,G)}},Cc=class extends ez{wireBeans(G){super.wireBeans(G),this.chartMenuSvc=G.chartMenuSvc}postConstruct(){this.titlePlaceholder=this.chartTranslation.translate("titlePlaceholder"),super.postConstruct(),this.addManagedEventListeners({chartTitleEdit:()=>{this.fontPanel.setEnabled(this.hasTitle())}})}getTextInputParams(){let G=super.getTextInputParams();if(this.shouldOverrideTextWithPlaceholder(G.value))G.value=this.titlePlaceholder;return G}getSpacingSliderParams(){let G=super.getSpacingSliderParams();return G.value="10",G}onEnableChange(G){if(this.chartMenuSvc.doesChartToolbarExist()){let z=this.chartOptions.getValue("padding.top");this.chartOptions.setValue("padding.top",G?z-20:z+20)}this.chartOptions.setValue(`${this.key}.enabled`,G);let D=this.chartOptions.getValue(`${this.key}.text`);if(G&&this.shouldOverrideTextWithPlaceholder(D))this.chartOptions.setValue(`${this.key}.text`,this.titlePlaceholder)}shouldOverrideTextWithPlaceholder(G){return G==="Title"||G?.trim().length===0}},Vc=class extends Ic{constructor(G){super();this.options=G,this.titleGroup=Mc}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){let{chartMenuParamsFactory:G,chartAxisMenuParamsFactory:D,chartOptionsService:z,seriesType:B,isExpandedOnInit:Q=!1,registerGroupComponent:J}=this.options,U=[];if(SD(B)&&B!=="pyramid"){let S=(X)=>this.createManagedBean(new uD(z.getCartesianAxisThemeOverridesProxy(X)));U.push(this.createManagedBean(new ez(S("xAxis"),"horizontalAxisTitle","title"))),U.push(this.createManagedBean(new ez(S("yAxis"),"verticalAxisTitle","title")))}else if(BJ(B))U.push(this.createManagedBean(new ez(D,"polarAxisTitle","title")));let Z={cssIdentifier:"charts-format-top-level",direction:"vertical",title:this.chartTranslation.translate("chartTitles"),expanded:Q,suppressEnabledCheckbox:!0,items:[this.createManagedBean(new Cc(G,"chartTitle","title")),this.createManagedBean(new ez(G,"chartSubtitle","subtitle")),...U]};this.setTemplate(`
`,[p],{titleGroup:Z}),J(this.titleGroup)}},bc={groups:[{type:"chart"},{type:"titles"},{type:"legend"},{type:"series"},{type:"axis"}]},s5=["axis","horizontalAxis","verticalAxis"],vc=class extends Qx{constructor(G){super('
');this.chartMenuContext=G}postConstruct(){this.groupExpansionFeature=this.createManagedBean(new xx(this.getGui())),this.chartPanelFeature=this.createManagedBean(new D9(this.chartMenuContext.chartController,this.getGui(),"ag-chart-format-section",(G,D)=>this.createPanels(D))),this.chartPanelFeature.refreshPanels()}createPanels(G){let D=!1;this.getFormatPanelDef().groups?.forEach(({type:z,isOpen:B=!1})=>{if(!this.isGroupPanelShownInSeries(z,G))return;if(B){if(D)p5(145,{group:z});D=!0}let Q=(U)=>this.groupExpansionFeature.addGroupComponent(U),J={...this.chartMenuContext,isExpandedOnInit:B,seriesType:G,registerGroupComponent:Q};switch(z){case"chart":this.chartPanelFeature.addComponent(new Tx(J));break;case"titles":this.chartPanelFeature.addComponent(new Vc(J));break;case"legend":this.chartPanelFeature.addComponent(new nx(J,this.chartMenuContext));break;case"axis":if(BJ(G))this.chartPanelFeature.addComponent(new Vx(J));else if(SD(G))this.chartPanelFeature.addComponent(new JB("xAxis",J)),this.chartPanelFeature.addComponent(new JB("yAxis",J));break;case"horizontalAxis":this.chartPanelFeature.addComponent(new JB("xAxis",J));break;case"verticalAxis":this.chartPanelFeature.addComponent(new JB("yAxis",J));break;case"series":this.chartPanelFeature.addComponent(new Ec(J));break;default:p5(147,{group:z})}})}getFormatPanelDef(){let G=this.gos.get("chartToolPanelsDef")?.formatPanel;return G?G:bc}isGroupPanelShownInSeries(G,D){let z=["chart","titles","legend","series"].includes(G)||SD(D)&&s5.includes(G)||BJ(D)&&G==="axis",B=zJ(D)&&G==="legend"||zJ(D)&&s5.includes(G);return z&&!B}},cc="ag-chart-mini-thumbnail-canvas",PD=class extends yc{constructor(G,D,z){super();this.agChartsExports=D,this.tooltipName=z,this.size=58,this.padding=5;let{_Scene:B}=D;this.root=new B.Group;let Q=G.ownerDocument.createElement("canvas"),J=new B.Scene({canvasElement:Q,pixelRatio:G.ownerDocument.defaultView?.devicePixelRatio??1,width:this.size,height:this.size,willReadFrequently:!1});J.canvas.element.classList.add(cc),J.setRoot(this.root),J.setContainer(G),this.scene=J}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){this.scene.canvas.element.title=this.chartTranslation.translate(this.tooltipName);try{this.scene.render()}catch(G){xc(108,{e:G})}}};function k0(G){let{stacked:D,size:z,padding:B,xScalePadding:Q,xScaleDomain:J,yScaleDomain:U,agChartsExports:{_Scene:Z}}=G,S=new Z.CategoryScale;S.domain=J,S.range=[B,z-B],S.paddingInner=Q,S.paddingOuter=Q;let X=new Z.LinearScale;X.domain=U,X.range=[z-B,B];let Y=(W,q,H)=>{return W.map((_,k)=>{let w=H.convert(_),K=new Z.Rect;return K.x=q.convert(k),K.y=w,K.width=q.bandwidth,K.height=H.convert(0)-w,K.strokeWidth=0,K.crisp=!0,K})};if(D)return G.data.map((W)=>Y(W,S,X));return Y(G.data,S,X)}function hc(G,D,z,B){let Q=[],J=[];for(let S of D)for(let[X,Y]of S)Q.push(X),J.push(Y);let U=new G.LinearScale;U.domain=[Math.min(...Q),Math.max(...Q)],U.range=[B,z-B];let Z=new G.LinearScale;return Z.domain=[Math.min(...J),Math.max(...J)],Z.range=[z-B,B],{xScale:U,yScale:Z}}function Y9(G,D,z,B){let Q=[0,D[0].length-1],J=D.reduce((S,X)=>{for(let Y of X){if(YS[1])S[1]=Y}return S},[1/0,-1/0]);J[0]--,J[J.length-1]++;let U=new G.LinearScale;U.domain=Q,U.range=[B,z-B];let Z=new G.LinearScale;return Z.domain=J,Z.range=[z-B,B],{xScale:U,yScale:Z}}function W9(G,D,z){return G.map((B)=>B.map((Q,J)=>[J>0?"lineTo":"moveTo",D.convert(J),z.convert(Q)]))}function ic(G,D,z){return G.map(([B,Q],J)=>[J>0?"lineTo":"moveTo",D.convert(B),z.convert(Q)])}function nc(G){let D=G[0],z=G[1],B=X9(G);if(z[1]!==B[1]||z[2]!==B[2])G.push([D[0],z[1],z[2]]);return G}function q9(G,D){let z=new G.Path;return D.forEach(([B,Q,J])=>z.path[B](Q,J)),z}function dc(G,D,z){return G.map((B,Q,J)=>{let Z=[...z?lc(J,Q,D):H9(B,D)].reverse().map(([Y,W,q])=>["lineTo",W,q]),S=B[0],X=X9(Z);if(S[1]!==X[1]||S[2]!==X[2])Z.push(["lineTo",S[1],S[2]]);return[...B,...Z]})}function lc(G,D,z){if(D===0)return H9(G[D],z);return[...G[D-1]]}function H9(G,D){return G.map(([z,B])=>[z,B,D.convert(0)])}function _9(G,D){let z=q9(G,D);return z.fill=void 0,z.lineCap="round",z.strokeWidth=3,z}function pc({_Scene:G},D,z,B,Q){let{xScale:J,yScale:U}=hc(G,z,B,Q),Y=z.map((q)=>ic(q,J,U)).map((q)=>nc(q)).map((q)=>_9(G,q)).reduce((q,H)=>q.concat(H),[]),W=new G.Group;return W.setClipRect(new G.BBox(Q,Q,B-Q*2,B-Q*2)),W.append(Y),D.append(W),Y}function tJ({_Scene:G},D,z,B,Q){let{xScale:J,yScale:U}=Y9(G,z,B,Q),S=W9(z,J,U).map((Y)=>_9(G,Y)),X=new G.Group;return X.setClipRect(new G.BBox(Q,Q,B-Q*2,B-Q*2)),X.append(S),D.append(X),S}function mc(G,D,z,B,Q,J=!1){let{xScale:U,yScale:Z}=Y9(G,z,B,Q),S=dc(W9(z,U,Z),Z,J),X=new G.Group;X.setClipRect(new G.BBox(Q,Q,B-Q*2,B-Q*2));let Y=S.map((W)=>q9(G,W));return X.append(Y),D.append(X),Y}function k9(G){return G.map((D,z,B)=>D.map((Q,J)=>B.slice(0,z+1).reduce((U,Z)=>U+Z[J],0)))}function w9(G){let D=G.map((z,B)=>G.reduce((Q,J)=>Math.max(Q,J[B]),0));return G.map((z)=>z.map((B,Q)=>B/D[Q]*19))}function K9(G,D,z,B,Q,J,U=0){let{_Scene:Z}=G,S=new Z.LinearScale;S.domain=[0,7],S.range=[-Math.PI,Math.PI].map((_)=>_+Math.PI/2);let X=new Z.LinearScale;X.domain=[0,10],X.range=[Q,J];let Y=[],W=B/2,q=z.map((_)=>{let k=new Z.Path;return k.strokeWidth=1,k.strokeOpacity=0.5,k.lineCap="round",k.fill=void 0,k.fillOpacity=0.8,_.forEach((w,K)=>{let f=S.convert(K),N=Q+J-X.convert(w),F=N*Math.cos(f)+W,E=N*Math.sin(f)+W;if(k.path[K>0?"lineTo":"moveTo"](F,E),U>0){let I=new Z.Marker({shape:"circle"});I.x=F,I.y=E,I.size=U,Y.push(I)}}),k.path.closePath(),k}),H=new Z.Group;return H.append([...q,...Y]),D.append(H),{paths:q,markers:Y}}function eB(G){let[D,z]=[1/0,-1/0];return{processedData:G.reduce((Q,J,U)=>{let Z=U>0?Q[U-1]:void 0;Q[U]??(Q[U]=[]);let S=Q[U];return J.forEach((X,Y)=>{if(Z)X+=Z[Y];if(S[Y]=X,S[Y]z)z=S[Y]}),Q},[]),min:D,max:z}}var tc=[[[13,16],[13,12],[3,12],[3,16]],[[12,11],[12,7],[4,7],[4,11]],[[10.125,6],[10.125,1.5],[5.875,1.5],[5.875,6]]],sJ=class extends PD{constructor(G,D,z,B,Q,J="funnelTooltip",U=tc){super(G,D,J);this.shapes=pc(D,this.root,U,this.size,this.padding),this.updateColors(z,B)}updateColors(G,D){for(let z of this.shapes)z.fill=G[0],z.stroke=D[0],z.strokeWidth=0}},sc={chartType:"funnel",miniChart:sJ},oc=[[[13,16],[10.75,11.5],[5.25,11.5],[3,16]],[[10.75,11.5],[8.875,6],[7.125,6],[5.25,11.5]],[[8.875,6],[8.875,1.5],[7.125,1.5],[7.125,6]]],rc=class extends sJ{constructor(G,D,z,B,Q,J="coneFunnelTooltip"){super(G,D,z,B,Q,J,oc)}updateColors(G,D){this.shapes.forEach((z,B)=>{z.fill=G[0],z.fillOpacity=1-B*0.2,z.stroke=D[0],z.strokeWidth=0})}},ac={chartType:"coneFunnel",miniChart:rc},ec=[[[8,16],[10,12],[6,12]],[[10.5,11],[12.5,7],[3.5,7],[5.5,11]],[[13,6],[15.5,1.5],[0.5,1.5],[3,6]]],Gh=class extends sJ{constructor(G,D,z,B,Q,J="pyramidTooltip"){super(G,D,z,B,Q,J,ec)}updateColors(G,D){this.shapes.forEach((z,B)=>{z.fill=G[B],z.stroke=D[B],z.strokeWidth=0})}},Dh={chartType:"pyramid",miniChart:Gh},qG=class extends PD{constructor(G,D,z){super(G,D,z);this.stroke="gray",this.axisOvershoot=3}postConstruct(){let{_Scene:G}=this.agChartsExports,D=this.size,z=this.padding,B=new G.Line;B.x1=z,B.y1=z,B.x2=z,B.y2=D-z+this.axisOvershoot,B.stroke=this.stroke;let Q=new G.Line;Q.x1=z-this.axisOvershoot+1,Q.y1=D-z,Q.x2=D-z+1,Q.y2=D-z,Q.stroke=this.stroke;let J=this.root;J.append(B),J.append(Q),super.postConstruct()}},zh=class extends qG{constructor(G,D,z,B){super(G,D,"groupedColumnTooltip");this.columnData=[2,3,4];let{root:Q,columnData:J,size:U,padding:Z}=this;this.columns=k0({stacked:!1,root:Q,data:J,size:U,padding:Z,xScaleDomain:[0,1,2],yScaleDomain:[0,4],xScalePadding:0.3,agChartsExports:D}),Q.append(this.columns),this.updateColors(z,B)}updateColors(G,D){this.columns.forEach((z,B)=>{z.fill=G[B],z.stroke=D[B]})}},Bh={chartType:"groupedColumn",miniChart:zh},Jh=[[8,12,16],[6,9,12],[2,3,4]],f9=class extends qG{constructor(G,D,z,B,Q,J=Jh,U=[0,16],Z="stackedColumnTooltip"){super(G,D,Z);let{root:S,size:X,padding:Y}=this;this.stackedColumns=k0({stacked:!0,root:S,data:J,size:X,padding:Y,xScaleDomain:[0,1,2],yScaleDomain:U,xScalePadding:0.3,agChartsExports:D}),S.append(Qh(this.stackedColumns)),this.updateColors(z,B)}updateColors(G,D){this.stackedColumns.forEach((z,B)=>{for(let Q of z)Q.fill=G[B],Q.stroke=D[B]})}},Uh={chartType:"stackedColumn",miniChart:f9},Zh=[[10,10,10],[6,7,8],[2,4,6]],$h=class extends f9{constructor(G,D,z,B,Q){super(G,D,z,B,Q,Zh,[0,10],"normalizedColumnTooltip")}},Lh={chartType:"normalizedColumn",miniChart:$h},Sh=class extends qG{constructor(G,D,z,B){super(G,D,"groupedBarTooltip");let{_Scene:Q}=D,J=this.padding,U=this.size,Z=[2,3,4],S=new Q.CategoryScale;S.domain=[0,1,2],S.range=[J,U-J],S.paddingInner=0.3,S.paddingOuter=0.3;let X=new Q.LinearScale;X.domain=[0,4],X.range=[U-J,J];let Y=X.convert(0),W=S.bandwidth;this.bars=Z.map((q,H)=>{let _=new Q.Rect;return _.x=J,_.y=S.convert(H),_.width=Y-X.convert(q),_.height=W,_.strokeWidth=0,_.crisp=!0,_}),this.updateColors(z,B),this.root.append(this.bars)}updateColors(G,D){this.bars.forEach((z,B)=>{z.fill=G[B],z.stroke=D[B]})}},Xh={chartType:"groupedBar",miniChart:Sh},Wh=[[8,12,16],[6,9,12],[2,3,4]],N9=class extends qG{constructor(G,D,z,B,Q,J=Wh,U=[0,16],Z="stackedBarTooltip"){super(G,D,Z);let{_Scene:S}=D,X=this.size,Y=this.padding,W=new S.CategoryScale;W.domain=[0,1,2],W.range=[Y,X-Y],W.paddingInner=0.3,W.paddingOuter=0.3;let q=new S.LinearScale;q.domain=U,q.range=[X-Y,Y];let H=q.convert(0),_=W.bandwidth;this.bars=J.map((k)=>k.map((w,K)=>{let f=new S.Rect;return f.x=Y,f.y=W.convert(K),f.width=H-q.convert(w),f.height=_,f.strokeWidth=0,f.crisp=!0,f})),this.updateColors(z,B),this.root.append(Yh(this.bars))}updateColors(G,D){this.bars.forEach((z,B)=>z.forEach((Q)=>{Q.fill=G[B],Q.stroke=D[B]}))}},qh={chartType:"stackedBar",miniChart:N9},Hh=[[10,10,10],[6,7,8],[2,4,6]],_h=class extends N9{constructor(G,D,z,B,Q){super(G,D,z,B,Q,Hh,[0,10],"normalizedBarTooltip")}},kh={chartType:"normalizedBar",miniChart:_h},F9=class extends PD{constructor(G,D,z,B,Q,J=0.6,U="donutTooltip"){super(G,D,U);let{size:Z,padding:S,agChartsExports:{_Scene:X}}=this,Y=(Z-S*2)/2,W=Y+S,q=X.toRadians,H=[[q(-90),q(30)],[q(30),q(120)],[q(120),q(180)],[q(180),q(210)],[q(210),q(240)],[q(240),q(270)]];this.sectors=H.map(([_,k])=>{let w=new X.Sector;return w.centerX=W,w.centerY=W,w.innerRadius=Y*J,w.outerRadius=Y,w.startAngle=_,w.endAngle=k,w.stroke=void 0,w.strokeWidth=0,w.inset=0.75,w}),this.updateColors(z,B),this.root.append(this.sectors)}updateColors(G,D){this.sectors.forEach((z,B)=>{z.fill=G[B%G.length],z.stroke=D[B%D.length]})}},D6={chartType:"donut",miniChart:F9},wh=class extends F9{constructor(G,D,z,B,Q){super(G,D,z,B,Q,0,"pieTooltip")}},Kh={chartType:"pie",miniChart:wh},oJ=[[1,3,5],[2,6,4],[5,3,1]],rJ=class extends qG{constructor(G,D,z,B,Q,J=oJ,U="lineTooltip"){super(G,D,U);let{size:Z,padding:S,root:X}=this;this.lines=tJ(D,X,J,Z,S),this.updateColors(z,B)}updateColors(G,D){this.lines.forEach((z,B)=>{z.stroke=G[B]})}},fh={chartType:"line",miniChart:rJ},E9=k9(oJ),Nh=class extends rJ{constructor(G,D,z,B,Q,J=E9,U="stackedLineTooltip"){super(G,D,z,B,Q,J,U)}},Fh={chartType:"stackedLine",miniChart:Nh},Eh=w9(E9),Ih=class extends rJ{constructor(G,D,z,B,Q,J=Eh,U="normalizedLineTooltip"){super(G,D,z,B,Q,J,U)}},Mh={chartType:"normalizedLine",miniChart:Ih},Ah=class extends qG{constructor(G,D,z,B){super(G,D,"scatterTooltip");let{size:Q,padding:J,agChartsExports:{_Scene:U}}=this,Z=[[[0.3,3],[1.1,0.9],[2,0.4],[3.4,2.4]],[[0,0.3],[1,2],[2.4,1.4],[3,0]]],S=new U.LinearScale;S.domain=[-0.5,4],S.range=[J*2,Q-J];let X=new U.LinearScale;X.domain=[-0.5,3.5],X.range=[Q-J,J];let Y=[];Z.forEach((q)=>{q.forEach(([H,_])=>{let k=new U.Arc;k.strokeWidth=0,k.centerX=S.convert(H),k.centerY=X.convert(_),k.radius=2.5,Y.push(k)})}),this.points=Y,this.updateColors(z,B);let W=new U.Group;W.setClipRect(new U.BBox(J,J,Q-J*2,Q-J*2)),W.append(this.points),this.root.append(W)}updateColors(G,D){this.points.forEach((z,B)=>{z.stroke=D[B%D.length],z.fill=G[B%G.length]})}},Rh={chartType:"scatter",miniChart:Ah},Ch=class extends qG{constructor(G,D,z,B){super(G,D,"bubbleTooltip");let{size:Q,padding:J,agChartsExports:{_Scene:U}}=this,Z=[[[0.1,0.3,5],[0.5,0.4,7],[0.2,0.8,7]],[[0.8,0.7,5],[0.7,0.3,9]]],S=new U.LinearScale;S.domain=[0,1],S.range=[J*2,Q-J];let X=new U.LinearScale;X.domain=[0,1],X.range=[Q-J,J];let Y=[];Z.forEach((q)=>{q.forEach(([H,_,k])=>{let w=new U.Arc;w.strokeWidth=0,w.centerX=S.convert(H),w.centerY=X.convert(_),w.radius=k,w.fillOpacity=0.7,Y.push(w)})}),this.points=Y,this.updateColors(z,B);let W=new U.Group;W.setClipRect(new U.BBox(J,J,Q-J*2,Q-J*2)),W.append(this.points),this.root.append(W)}updateColors(G,D){this.points.forEach((z,B)=>{z.stroke=D[B%D.length],z.fill=G[B%G.length]})}},Vh={chartType:"bubble",miniChart:Ch},I9=oJ,M9=class extends qG{constructor(G,D,z,B,Q,J=I9,U="groupedAreaTooltip",Z=!1){super(G,D,U);this.areas=mc(D._Scene,this.root,J,this.size,this.padding,Z),this.updateColors(z,B)}updateColors(G,D){this.areas.forEach((z,B)=>{z.fill=G[B],z.stroke=D[B],z.strokeWidth=1,z.strokeOpacity=0.75,z.fillOpacity=0.7})}},bh={chartType:"area",miniChart:M9},A9=k9(I9),R9=class extends M9{constructor(G,D,z,B,Q,J=A9,U="stackedAreaTooltip"){super(G,D,z,B,Q,J,U,!0)}updateColors(G,D){this.areas.forEach((z,B)=>{z.fill=G[B],z.stroke=D[B]})}},vh={chartType:"stackedArea",miniChart:R9},Oh=w9(A9),uh=class extends R9{constructor(G,D,z,B,Q,J=Oh,U="normalizedAreaTooltip"){super(G,D,z,B,Q,J,U)}},jh={chartType:"normalizedArea",miniChart:uh},Ph=class extends qG{constructor(G,D,z,B){super(G,D,"histogramTooltip");let{padding:Q,size:J,agChartsExports:{_Scene:U}}=this,Z=[2,5,11,13,10,6,1],S=new U.LinearScale;S.domain=[0,Z.length],S.range=[Q,J-Q];let X=new U.LinearScale;X.domain=[0,Z.reduce((W,q)=>Math.max(W,q),0)],X.range=[J-Q,Q];let Y=X.convert(0);this.bars=Z.map((W,q)=>{let H=X.convert(W),_=S.convert(q),k=S.convert(q+1),w=new U.Rect;return w.x=_,w.y=H,w.width=k-_,w.height=Y-H,w.strokeWidth=1,w.strokeOpacity=0.75,w.crisp=!0,w}),this.updateColors(z,B),this.root.append(this.bars)}updateColors([G],[D]){for(let z of this.bars)z.fill=G,z.stroke=D}},gh={chartType:"histogram",miniChart:Ph},_z=class extends PD{constructor(G,D,z){super(G,D,z);this.stroke="gray",this.showRadiusAxisLine=!0,this.showAngleAxisLines=!0}postConstruct(){let{_Scene:G}=this.agChartsExports,D=this.size,z=this.padding,B=z*2,Q=(D-B)/2,J=this.showAngleAxisLines?[Q,Q*0.8,Q*0.6,Q*0.4]:[],U=new G.Line;U.x1=D/2,U.y1=z,U.x2=D/2,U.y2=D-z-Q-J[J.length-1],U.stroke=this.stroke,U.strokeOpacity=0.5,U.fill=void 0,U.visible=this.showRadiusAxisLine;let Z=z+Q;this.gridLines=J.map((X,Y)=>{let W=new G.Path;return W.path.arc(Z,Z,X,0,2*Math.PI),W.strokeWidth=1,W.stroke=this.stroke,W.strokeOpacity=Y===0?0.5:0.2,W.fill=void 0,W});let S=this.root;if(S.append(U),this.gridLines.length>0)S.append(this.gridLines);super.postConstruct()}},Th=class extends _z{constructor(G,D,z,B){super(G,D,"radialColumnTooltip");this.data=[[6,8,10,2,6,5],[4,4,3,6,4,4],[5,4,2,9,8,9]],this.showRadiusAxisLine=!1;let{padding:Q,size:J,data:U,agChartsExports:{_Scene:Z}}=this,S=(J-Q*2)/2,Y=S*0.4,W=new Z.CategoryScale;W.domain=U[0].map((K,f)=>f),W.range=[0,2*Math.PI],W.paddingInner=0,W.paddingOuter=0;let q=W.bandwidth*0.7,{processedData:H,max:_}=eB(U),k=new Z.LinearScale;k.domain=[0,_],k.range=[Y,S];let w=this.size/2;this.series=H.map((K,f)=>{let F=f===0?void 0:H[f-1],E=new Z.TranslatableGroup({zIndex:1e6}),I=K.map((V,A)=>{let R=F?.[A],O=k.convert(V),u=k.convert(R??0),v=W.convert(A),h=v+q,P=Z.getRadialColumnWidth(v,h,S,0.5,0.5),b=new Z.RadialColumnShape;return b.columnWidth=P,b.innerRadius=u,b.outerRadius=O,b.startAngle=v,b.endAngle=h,b.isBeveled=!0,b.axisInnerRadius=Y,b.axisOuterRadius=S,b.stroke=void 0,b.strokeWidth=0,b});return E.append(I),E.translationX=w,E.translationY=w,E}),this.root.append(this.series),this.updateColors(z,B)}updateColors(G,D){this.series.forEach((z,B)=>{for(let Q of z.children())Q.fill=G[B%G.length],Q.stroke=D[B%D.length]})}},yh={chartType:"radialColumn",miniChart:Th},xh=class extends _z{constructor(G,D,z,B){super(G,D,"radialBarTooltip");this.data=[[6,8,10],[4,4,3],[5,4,2]],this.showRadiusAxisLine=!1;let{size:Q,padding:J,data:U,agChartsExports:{_Scene:Z}}=this,S=(Q-J)/2,Y=S*0.4,W=new Z.CategoryScale;W.domain=U[0].map((N,F)=>F),W.range=[Y,S],W.paddingInner=0.5,W.paddingOuter=0;let q=W.bandwidth,{processedData:H,max:_}=eB(U),k=new Z.LinearScale;k.domain=[0,Math.ceil(_*1.5)];let w=1.5*Math.PI,K=w+2*Math.PI;k.range=[w,K];let f=Q/2;this.series=H.map((N,F)=>{let E=F<0?void 0:H[F-1],I=new Z.Group({zIndex:1e6}),V=N.map((A,R)=>{let O=E?.[R]??0,u=W.convert(R),v=u-q,h=k.convert(O),P=k.convert(A),b=new Z.Sector;return b.centerX=f,b.centerY=f,b.innerRadius=v,b.outerRadius=u,b.startAngle=h,b.endAngle=P,b.stroke=void 0,b.strokeWidth=0,b});return I.append(V),I}),this.root.append(this.series),this.updateColors(z,B)}updateColors(G,D){this.series.forEach((z,B)=>{for(let Q of z.children())Q.fill=G[B%G.length],Q.stroke=D[B%D.length]})}},ch={chartType:"radialBar",miniChart:xh},hh=class extends _z{constructor(G,D,z,B){super(G,D,"radarLineTooltip");this.markerSize=4,this.data=[[8,7,8,7,8,8,7,8],[6,8,5,10,6,7,4,6],[0,3,3,5,4,4,2,0]],this.showRadiusAxisLine=!1;let{size:Q,padding:J,root:U,data:Z}=this,S=(Q-J*2)/2,X=0,{paths:Y,markers:W}=K9(D,U,Z,Q,S,X,this.markerSize);this.lines=Y,this.markers=W,this.updateColors(z,B)}updateColors(G,D){this.lines.forEach((z,B)=>{let Q=this.data[B].length;z.stroke=G[B];let J=B*Q,U=J+Q,Z=this.markers.slice(J,U);for(let S of Z)S.stroke=D[B],S.fill=G[B]})}},ih={chartType:"radarLine",miniChart:hh},nh=class extends _z{constructor(G,D,z,B){super(G,D,"radarAreaTooltip");this.data=[[8,10,5,7,4,1,5,8],[1,1,2,7,7,8,10,1],[4,5,9,9,4,2,3,4]];let{size:Q,padding:J,root:U,data:Z}=this;this.showRadiusAxisLine=!1;let S=(Q-J*2)/2,X=S-Q*0.3;this.areas=K9(D,U,Z,Q,S,X).paths,this.updateColors(z,B)}updateColors(G,D){this.areas.forEach((z,B)=>{z.fill=G[B],z.stroke=D[B]})}},dh={chartType:"radarArea",miniChart:nh},lh=class extends _z{constructor(G,D,z,B){super(G,D,"nightingaleTooltip");this.data=[[6,10,9,8,7,8],[4,6,5,4,5,5],[3,5,4,3,4,7]],this.showRadiusAxisLine=!1;let{size:Q,padding:J,data:U,agChartsExports:{_Scene:Z}}=this,S=(Q-J*2)/2,X=new Z.CategoryScale;X.domain=U[0].map((k,w)=>w),X.range=[-Math.PI,Math.PI],X.paddingInner=0,X.paddingOuter=0;let Y=X.bandwidth*0.7,{processedData:W,max:q}=eB(U),H=new Z.LinearScale;H.domain=[0,q],H.range=[0,S];let _=Q/2;this.series=W.map((k,w)=>{let K=w<0?void 0:W[w-1],f=new Z.Group({zIndex:1e6}),N=k.map((F,E)=>{let I=K?.[E],V=H.convert(F),A=H.convert(I??0),R=X.convert(E),O=R+Y,u=new Z.Sector;return u.centerX=_,u.centerY=_,u.innerRadius=A,u.outerRadius=V,u.startAngle=R,u.endAngle=O,u.stroke=void 0,u.strokeWidth=0,u});return f.append(N),f}),this.root.append(this.series),this.updateColors(z,B)}updateColors(G,D){this.series.forEach((z,B)=>{for(let Q of z.children())Q.fill=G[B%G.length],Q.stroke=D[B%D.length]})}},ph={chartType:"nightingale",miniChart:lh},mh=class extends qG{constructor(G,D,z,B){super(G,D,"rangeBarTooltip");let Q=[3,3.5,3];this.bars=this.createRangeBar(this.root,Q,this.size,this.padding,"vertical"),this.updateColors(z,B)}updateColors(G,D){this.bars.forEach((z,B)=>{z.fill=G[B],z.stroke=D[B]})}createRangeBar(G,D,z,B,Q){let J=Q==="horizontal",U=2*B,{_Scene:Z}=this.agChartsExports,S=new Z.CategoryScale;S.domain=D.map((_,k)=>k),S.range=[B,z-B],S.paddingInner=0.3,S.paddingOuter=0.3;let X=0.7,Y=1.3,W=new Z.LinearScale;W.domain=[D.reduce((_,k)=>Math.min(_,k),1/0)*X,D.reduce((_,k)=>Math.max(_,k),0)*Y],W.range=[U,z-U];let q=S.bandwidth,H=D.map((_,k)=>{let[w,K]=[_*X,_*Y],f=S.convert(k),N=W.convert(w),F=W.convert(K)-N,E=new Z.Rect;return E.x=J?N:f,E.y=J?f:N,E.width=J?F:q,E.height=J?q:F,E.strokeWidth=0,E.crisp=!0,E});return G.append(H),H}},th={chartType:"rangeBar",miniChart:mh},sh=class extends qG{constructor(G,D,z,B){super(G,D,"rangeAreaTooltip");let Q=4,J=[u1({offset:0.375*Q,length:Q,pattern:{low:3,high:5,period:Q}}),u1({offset:0.375*Q,length:Q,pattern:{low:2.25,high:4.25,period:Q}}),u1({offset:0.75*Q,length:Q,pattern:{low:2.5,high:4.5,period:Q}})],U=1.75,Z=J.map((Y)=>Y.map(([W,q])=>({x:W,low:q-0.5*U,high:q+0.5*U}))),{lines:S,areas:X}=this.createRangeArea(this.root,Z,this.size,this.padding);this.lines=S,this.areas=X,this.updateColors(z,B)}updateColors(G,D){G=B6(G,1,2),D=B6(D,1,2),this.lines.forEach(([z,B],Q)=>{z.fill=void 0,z.stroke=D[Q],B.fill=void 0,B.stroke=D[Q]}),this.areas.forEach((z,B)=>{z.fill=G[B]})}createRangeArea(G,D,z,B){let Q=D.reduce((k,w)=>w.reduce((K,{x:f})=>Math.min(K,f),k),1/0),J=D.reduce((k,w)=>w.reduce((K,{x:f})=>Math.max(K,f),k),-1/0),U=D.reduce((k,w)=>w.reduce((K,{low:f})=>Math.min(K,f),k),1/0),Z=D.reduce((k,w)=>w.reduce((K,{high:f})=>Math.max(K,f),k),-1/0),{_Scene:S}=this.agChartsExports,X=new S.LinearScale;X.domain=[Q,J],X.range=[B,z-B];let Y=2*B,W=new S.LinearScale;W.domain=[U,Z],W.range=[z-Y,Y];let q=[],H=[];return D.map((k)=>{let w=new S.Path,K=new S.Path,f=new S.Path;return q.push([w,K]),H.push(f),w.strokeWidth=0,K.strokeWidth=0,f.strokeWidth=0,f.fillOpacity=0.8,w.path.clear(),K.path.clear(),f.path.clear(),k.map((N,F)=>{let{x:E,low:I,high:V}=N,A=X.convert(E),R=W.convert(I),O=W.convert(V),u=F>0?"lineTo":"moveTo";return w.path[u](A,O),K.path[u](A,R),f.path[u](A,O),[A,R]})}).forEach((k,w)=>{let K=k.length-1,f=H[w];for(let N=K;N>=0;N--){let[F,E]=k[N];f.path.lineTo(F,E)}}),G.append(H.concat(...q)),{lines:q,areas:H}}};function u1(G){let{offset:D,length:z,pattern:B}=G,Q=Z(D,z,B),J=0,U=z;if(Q.length===0||Q[0][0]!==0)Q.unshift(S(0,D,B));if(Q[Q.length-1][0]!==U)Q.push(S(U,D,B));return Q;function Z(Y,W,q){let{period:H}=q,_=Y/H,w=[0,0.5].map((f)=>f-_).map(z6).sort((f,N)=>f-N);return Array.from({length:Math.floor(w.length*(H/W))},(f,N)=>w[N%w.length]+Math.floor(N/w.length)).map((f)=>f*H).map((f)=>S(f,Y,q))}function S(Y,W,q){return[Y,X(W+Y,q)]}function X(Y,W){let{low:q,high:H,period:_}=W,k=z6(Y/_),w=k>0.5?1-2*(k-0.5):2*k;return q+(H-q)*w}}function z6(G){let D=G%1;return D<0?D+1:D}function B6(G,D,z){let B=[...G],Q=B[D];return B[D]=B[z],B[z]=Q,B}var oh={chartType:"rangeArea",miniChart:sh},rh=class extends qG{constructor(G,D,z,B,Q){super(G,D,"boxPlotTooltip");let{size:J,padding:U,agChartsExports:{_Scene:Z}}=this,S=[11,11.5,10.5],X=1.2,Y=1.1,W=0.9,q=0.8,H=new Z.LinearScale;H.domain=[S.reduce((K,f)=>Math.min(K,f),1/0)*q,S.reduce((K,f)=>Math.max(K,f),0)*X],H.range=[J-1.5*U,U];let _=new Z.CategoryScale;_.domain=S.map((K,f)=>f),_.range=[U,J-U],_.paddingInner=0.4,_.paddingOuter=0.2;let k=Math.round(_.bandwidth),w=Math.round(_.bandwidth/2);this.boxPlotGroups=S.map((K,f)=>{let[N,F,E,I]=[K*q,K*W,K*Y,K*X],V=Math.round(H.convert(E)),A=Math.round(_.convert(f)),R=Math.round(A+k),O=Math.round(H.convert(F)),u=Math.round(H.convert(N)),v=Math.round(H.convert(K)),h=Math.round(H.convert(I)),P=A+w,b=new Z.Group,g=new Z.Rect,c=new Z.Line,s=new Z.Line,m=new Z.Line,zG=new Z.Line,fG=new Z.Line;return g.x=A,g.y=V,g.width=k,g.height=O-V,g.strokeWidth=1,g.strokeOpacity=0.75,g.crisp=!0,this.setLineProperties(c,A,R,v,v),this.setLineProperties(s,P,P,h,V),this.setLineProperties(m,P,P,u,O),this.setLineProperties(zG,A,R,h,h),this.setLineProperties(fG,A,R,u,u),b.append([g,c,s,m,zG,fG]),b}),this.updateColors(z,B,Q),this.root.append(this.boxPlotGroups)}updateColors(G,D,z){let{_Theme:B}=this.agChartsExports;this.boxPlotGroups.forEach((Q,J)=>{for(let U of Q.children()){let Z=G[J%G.length];U.fill=z?Z:B.resolveOperation({$mix:[Z,{$ref:"backgroundColor"},0.7]}),U.stroke=D[J%D.length]}})}setLineProperties(G,D,z,B,Q){G.x1=D,G.x2=z,G.y1=B,G.y2=Q,G.strokeOpacity=0.75}},ah={chartType:"boxPlot",miniChart:rh},eh=class extends PD{constructor(G,D,z,B,Q){super(G,D,"treemapTooltip");let{size:J,padding:U,agChartsExports:{_Scene:Z}}=this,S=[[1,1],[3,2,1]],Y=S.length%2===0?0.3:0.2,W=[U,J-U],q=S.length,H=q*(q+1)/2,_=Y/(q-1),k=W[1]-W[0],w=k-Y,K=W[0];this.rects=S.reduce((N,F,E)=>{N??(N=[]);let I=(q-E)/H,V=w*I,A=F.length,R=F.reduce((P,b)=>P+b,0),O=Y/(A-1||1),u=A>1?k-Y:k,v=W[0],h=F.map((P)=>{let b=new Z.Rect,g=u*P/R;return b.x=K,b.y=v,b.width=V,b.height=g,b.strokeWidth=0.75,b.crisp=!0,v+=g+O,b});return K+=V+_,N.push(...h),N},[]),this.updateColors(z,B,Q);let f=new Z.Group;f.setClipRect(new Z.BBox(U,U,J-U,J-U)),f.append(this.rects),this.root.append(f)}updateColors(G,D,z){let{_Theme:B}=this.agChartsExports;this.rects.forEach((Q,J)=>{Q.fill=G[J%D.length],Q.stroke=z?D[J%D.length]:B.resolveOperation({$ref:"backgroundColor"})})}},Gi={chartType:"treemap",miniChart:eh},Di=class extends _z{constructor(G,D,z,B){super(G,D,"sunburstTooltip");this.data=[[[],[]],[[],[]],[[],[]]],this.angleOffset=-Math.PI/2,this.innerRadiusRatio=0,this.showRadiusAxisLine=!1,this.showAngleAxisLines=!1;let{data:Q,size:J,padding:U,angleOffset:Z,innerRadiusRatio:S,agChartsExports:{_Scene:X}}=this,Y=(J-U*2)/2,W=[Z+0,Z+2*Math.PI],q=Math.abs(W[1]-W[0]),H=[Y*S,Y],_=Math.abs(H[1]-H[0]),k=0,w=(E,I)=>{for(let V of E){let A=I+1;k=Math.max(k,A),w(V,A)}};w(Q,0);let K=_/k,f=this.size/2,N=W[0];this.series=[];let F=(E,I,V,A,R)=>{if(!Array.isArray(E))return;let u=I+1,v=V;E.forEach((h,P,b)=>{let g=R;if(!g)g=new X.Group,this.series.push(g);let c=H[0]+I*K,s=H[0]+u*K,m=1/b.length,zG=v,fG=zG+A*m,y=new X.Sector;y.centerX=f,y.centerY=f,y.innerRadius=c,y.outerRadius=s,y.startAngle=zG,y.endAngle=fG,y.stroke=void 0,y.strokeWidth=0,y.inset=0.75,v=fG,g.append(y),F(h,u,zG,Math.abs(fG-zG),g)})};F(Q,0,N,q),this.root.append(this.series),this.updateColors(z,B)}updateColors(G,D){this.series.forEach((z,B)=>{for(let Q of z.children())Q.fill=G[B%G.length],Q.stroke=D[B%D.length]})}},zi={chartType:"sunburst",miniChart:Di},Bi=class extends PD{constructor(G,D,z,B,Q){super(G,D,"heatmapTooltip");let{size:J,padding:U,agChartsExports:{_Scene:Z}}=this,S=3,X=Array.from({length:S},(w,K)=>Array.from({length:S},(f,N)=>N)),Y=X.map((w,K)=>K),W=new Z.CategoryScale;W.domain=Y,W.range=[U,J-U],W.paddingInner=0.01,W.paddingOuter=0.1;let q=new Z.CategoryScale;q.domain=Y,q.range=[U,J-U],q.paddingInner=0.01,q.paddingOuter=0.1;let H=W.bandwidth??0,_=q.bandwidth??0;this.rects=X.reduce((w,K,f)=>{w??(w=[]);let N=K.map((F,E)=>{let I=new Z.Rect;return I.x=W.convert(f),I.y=q.convert(E),I.width=H,I.height=_,I.strokeWidth=0,I.crisp=!0,I});return w.push(...N),w},[]),this.updateColors(z,B,Q);let k=new Z.Group;k.setClipRect(new Z.BBox(U,U,J-U,J-U)),k.append(this.rects),this.root.append(k)}updateColors(G,D,z){let{_Theme:B,_Util:Q}=this.agChartsExports,J=z?[G[0],G[1]]:B.resolveOperation({$palette:"divergingColors"}),U=z?D[0]:B.resolveOperation({$ref:"backgroundColor"}),Z=Q.interpolateColor(J[0],J[1]);this.rects.forEach((S,X)=>{S.fill=Z(X*0.2),S.stroke=U})}},Qi={chartType:"heatmap",miniChart:Bi},Ji=class extends qG{constructor(G,D,z,B,Q){super(G,D,"waterfallTooltip");this.data=[4,3,-3,6,-3],this.bars=this.createWaterfall(this.root,this.data,this.size,this.padding,"vertical").bars,this.updateColors(z,B,Q)}updateColors(G,D,z){let{data:B,agChartsExports:{_Theme:Q}}=this,J={fill:z?G[0]:Q.resolveOperation({$palette:"altUp.fill"}),stroke:z?D[0]:Q.resolveOperation({$palette:"altUp.stroke"})},U={fill:z?G[1]:Q.resolveOperation({$palette:"altDown.fill"}),stroke:z?D[1]:Q.resolveOperation({$palette:"altDown.stroke"})};this.bars.forEach((Z,S)=>{let X=B[S]>=0;Z.fill=X?J.fill:U.fill,Z.stroke=X?J.stroke:U.stroke})}createWaterfall(G,D,z,B,Q){let J=2*B,{processedData:U,min:Z,max:S}=eB(D.map((N)=>[N])),X=U.reduce((N,F)=>N.concat(F),[]),{_Scene:Y}=this.agChartsExports,W=new Y.LinearScale;W.domain=[Math.min(Z,0),S],W.range=[z-J,J];let q=new Y.CategoryScale;q.domain=D.map((N,F)=>F),q.range=[B,z-B],q.paddingInner=0.2,q.paddingOuter=0.3;let H=q.bandwidth,_=new Y.Path;_.stroke="#575757",_.strokeWidth=0;let k=Math.floor(_.strokeWidth)%2/2,w=_.path;w.clear();let K=Q==="horizontal",f=X.map((N,F)=>{let E=F>0?X[F-1]:0,V=D[F]>0,A=Math.round(W.convert(N)),R=Math.round(W.convert(E)),O=(V?A:R)-k,u=(V?R:A)+k,v=Math.abs(u-O),h=q.convert(F),P=new Y.Rect;P.x=K?O:h,P.y=K?h:O,P.width=K?v:H,P.height=K?H:v,P.strokeWidth=0,P.crisp=!0;let b=A+k,g=R+k;if(F>0){let m=K?g:P.x,zG=K?P.y:g;w.lineTo(m,zG)}let c=K?b:P.x,s=K?P.y:b;return w.moveTo(c,s),P});return G.append([_,...f]),{bars:f}}},Ui={chartType:"waterfall",miniChart:Ji},Zi=class extends qG{constructor(G,D,z,B){super(G,D,"columnLineComboTooltip");this.columnData=[3,4],this.lineData=[[5,4,6,5,4]];let{root:Q,columnData:J,lineData:U,size:Z,padding:S}=this;this.columns=k0({stacked:!1,root:Q,data:J,size:Z,padding:S,xScaleDomain:[0,1],yScaleDomain:[0,4],xScalePadding:0.5,agChartsExports:D}),Q.append(this.columns),this.lines=tJ(D,Q,U,Z,S),this.updateColors(z,B)}updateColors(G,D){this.columns.forEach((z,B)=>{z.fill=G[B],z.stroke=D[B]}),this.lines.forEach((z,B)=>{z.stroke=G[B+2]})}},$i={chartType:"columnLineCombo",miniChart:Zi},Li=class extends qG{constructor(G,D,z,B){super(G,D,"areaColumnComboTooltip");this.columnData=[3,4.5],this.areaData=[[5,4,6,5,4]];let{root:Q,columnData:J,areaData:U,size:Z,padding:S,agChartsExports:{_Scene:X}}=this;this.columns=k0({stacked:!1,root:Q,data:J,size:Z,padding:S,xScaleDomain:[0,1],yScaleDomain:[0,6],xScalePadding:0.5,agChartsExports:D});let Y=new X.CategoryScale;Y.range=[S,Z-S],Y.domain=[0,1,2,3,4],Y.paddingInner=1,Y.paddingOuter=0;let W=new X.LinearScale;W.range=[Z-S,S],W.domain=[0,6];let q=[],H=W.convert(0),_=Y.convert(0);U.forEach((K,f)=>{let N=q[f]||(q[f]=[]);K.forEach((E,I)=>{let V=E,A=I,R=Y.convert(A),O=W.convert(V);N[I]={x:R,y:O}});let F=Y.convert(K.length-1);q[f].push({x:F,y:H},{x:_,y:H})}),this.areas=q.map((K)=>{let f=new X.Path;f.strokeWidth=0,f.fillOpacity=0.8;let N=f.path;return K.forEach((F,E)=>N[E>0?"lineTo":"moveTo"](F.x,F.y)),f});let k=new X.Group;k.setClipRect(new X.BBox(S,S,Z-S*2,Z-S*2));let w=new X.Group;w.setClipRect(new X.BBox(S,S,Z-S*2,Z-S*2)),k.append(this.areas),w.append(this.columns),Q.append(k),Q.append(w),this.updateColors(z,B)}updateColors(G,D){this.areas.forEach((z,B)=>{z.fill=G[B],z.stroke=D[B]}),this.columns.forEach((z,B)=>{z.fill=G[B+1],z.stroke=D[B+1]})}},Si={chartType:"areaColumnCombo",miniChart:Li},Xi=class extends PD{constructor(G,D,z,B){super(G,D,"customComboTooltip");this.columnData=[3,4],this.lineData=[[5,4,6,5,4]];let{root:Q,columnData:J,lineData:U,size:Z,padding:S,agChartsExports:{_Scene:X}}=this;this.columns=k0({stacked:!1,root:Q,data:J,size:Z,padding:S,xScaleDomain:[0,1],yScaleDomain:[0,4],xScalePadding:0.5,agChartsExports:D}),Q.append(this.columns),this.lines=tJ(this.agChartsExports,Q,U,Z,S);let Y="grey",W=3,q=new X.Line;q.x1=S,q.y1=S,q.x2=S,q.y2=Z-S+W,q.stroke=Y;let H=new X.Line;H.x1=S-W+1,H.y1=Z-S,H.x2=Z-S+1,H.y2=Z-S,H.stroke=Y;let _=new X.Path;this.buildPenIconPath(_),_.fill="whitesmoke",_.stroke="darkslategrey",_.strokeWidth=1,Q.append([H,q,_]),this.updateColors(z,B)}updateColors(G,D){this.columns.forEach((z,B)=>{z.fill=G[B],z.stroke=D[B]}),this.lines.forEach((z,B)=>{z.stroke=G[B+2]})}buildPenIconPath(G){let{path:D}=G;D.moveTo(25.76,43.46),D.lineTo(31.27,48.53),D.moveTo(49.86,22),D.lineTo(49.86,22),D.cubicCurveTo(49.01994659053345,21.317514933510974,47.89593834348529,21.09645997825817,46.86,21.41),D.lineTo(46.86,21.41),D.cubicCurveTo(45.55460035985361,21.77260167850787,44.38777081121966,22.517979360321792,43.51,23.55),D.lineTo(25.51,43.8),D.lineTo(25.43,43.89),D.lineTo(23.01,51.89),D.lineTo(22.83,52.46),D.lineTo(31.02,48.86),D.lineTo(49.02,28.52),D.lineTo(49.02,28.52),D.cubicCurveTo(49.940716461596224,27.521914221246085,50.54302631059587,26.2720342455763,50.75,24.93),D.lineTo(50.75,24.93),D.cubicCurveTo(50.95363374988308,23.866379846512814,50.62080640232334,22.77066734274871,49.86,22),D.closePath(),D.moveTo(41.76,25.5),D.lineTo(47.34,30.5),D.moveTo(40.74,26.65),D.lineTo(46.25,31.71)}},Yi={chartType:"customCombo",miniChart:Xi},Q6={columnGroup:{column:{range:!0,pivot:!0,enterprise:!1,icon:Bh},stackedColumn:{range:!0,pivot:!0,enterprise:!1,icon:Uh},normalizedColumn:{range:!0,pivot:!0,enterprise:!1,icon:Lh}},barGroup:{bar:{range:!0,pivot:!0,enterprise:!1,icon:Xh},stackedBar:{range:!0,pivot:!0,enterprise:!1,icon:qh},normalizedBar:{range:!0,pivot:!0,enterprise:!1,icon:kh}},pieGroup:{pie:{range:!0,pivot:!0,enterprise:!1,icon:Kh},donut:{range:!0,pivot:!0,enterprise:!1,icon:D6},doughnut:{range:!0,pivot:!0,enterprise:!1,icon:D6}},lineGroup:{line:{range:!0,pivot:!0,enterprise:!1,icon:fh},stackedLine:{range:!0,pivot:!0,enterprise:!1,icon:Fh},normalizedLine:{range:!0,pivot:!0,enterprise:!1,icon:Mh}},scatterGroup:{scatter:{range:!0,pivot:!0,enterprise:!1,icon:Rh},bubble:{range:!0,pivot:!0,enterprise:!1,icon:Vh}},areaGroup:{area:{range:!0,pivot:!0,enterprise:!1,icon:bh},stackedArea:{range:!0,pivot:!0,enterprise:!1,icon:vh},normalizedArea:{range:!0,pivot:!0,enterprise:!1,icon:jh}},polarGroup:{radarLine:{range:!0,pivot:!1,enterprise:!0,icon:ih},radarArea:{range:!0,pivot:!1,enterprise:!0,icon:dh},nightingale:{range:!0,pivot:!1,enterprise:!0,icon:ph},radialColumn:{range:!0,pivot:!1,enterprise:!0,icon:yh},radialBar:{range:!0,pivot:!1,enterprise:!0,icon:ch}},statisticalGroup:{boxPlot:{range:!0,pivot:!1,enterprise:!0,icon:ah},histogram:{range:!0,pivot:!1,enterprise:!1,icon:gh},rangeBar:{range:!0,pivot:!1,enterprise:!0,icon:th},rangeArea:{range:!0,pivot:!1,enterprise:!0,icon:oh}},hierarchicalGroup:{treemap:{range:!0,pivot:!0,enterprise:!0,icon:Gi},sunburst:{range:!0,pivot:!0,enterprise:!0,icon:zi}},specializedGroup:{heatmap:{range:!0,pivot:!1,enterprise:!0,icon:Qi},waterfall:{range:!0,pivot:!1,enterprise:!0,icon:Ui}},combinationGroup:{columnLineCombo:{range:!0,pivot:!0,enterprise:!1,icon:$i},areaColumnCombo:{range:!0,pivot:!0,enterprise:!1,icon:Si},customCombo:{range:!0,pivot:!0,enterprise:!1,icon:Yi}},funnelGroup:{funnel:{range:!0,pivot:!1,enterprise:!0,icon:sc},coneFunnel:{range:!0,pivot:!1,enterprise:!0,icon:ac},pyramid:{range:!0,pivot:!1,enterprise:!0,icon:Dh}}},Wi={columnGroup:["column","stackedColumn","normalizedColumn"],barGroup:["bar","stackedBar","normalizedBar"],pieGroup:["pie","donut"],lineGroup:["line","stackedLine","normalizedLine"],areaGroup:["area","stackedArea","normalizedArea"],scatterGroup:["scatter","bubble"],polarGroup:["radarLine","radarArea","nightingale","radialColumn","radialBar"],statisticalGroup:["boxPlot","histogram","rangeBar","rangeArea"],hierarchicalGroup:["treemap","sunburst"],specializedGroup:["heatmap","waterfall"],funnelGroup:["funnel","coneFunnel","pyramid"],combinationGroup:["columnLineCombo","areaColumnCombo","customCombo"]},qi=class extends gc{constructor(G,D,z,B,Q=Wi){super('
');this.wrappers=new Map,this.chartController=G,this.fills=D,this.strokes=z,this.isCustomTheme=B,this.chartGroups={...Q}}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){if(!this.chartController.customComboExists()&&this.chartGroups.combinationGroup)this.chartGroups.combinationGroup=this.chartGroups.combinationGroup.filter((J)=>J!=="customCombo");let G=this.getGui(),D=this.chartController.isEnterprise(),z=this.chartController.isPivotChart(),B=!z,Q=Object.keys(this.chartGroups).map((J)=>{let U=J in Q6?Q6[J]:void 0;if(!U)return G6(148,{group:J}),null;let S=(this.chartGroups[J]??[]).map((X)=>{let Y=X in U?U[X]:void 0;if(!Y)return G6(149,{group:J,chartType:X}),null;if(!D&&Y.enterprise)return null;if(B&&Y.range)return Y;if(z&&Y.pivot)return Y;return null}).filter((X)=>X!=null);if(S.length===0)return null;return{label:this.chartTranslation.translate(J),items:S}}).filter((J)=>J!=null);for(let{label:J,items:U}of Q){let Z=this.createBean(new jG({title:J,suppressEnabledCheckbox:!0,enabled:!0,suppressOpenCloseIcons:!0,cssIdentifier:"charts-settings",direction:"horizontal",suppressKeyboardNavigation:!0}));for(let S of U){let{miniChart:X,chartType:Y}=S.icon,W=document.createElement("div");W.classList.add("ag-chart-mini-thumbnail"),W.setAttribute("tabindex","0"),W.setAttribute("role","button");let q=Y,H=()=>{this.chartController.setChartType(q),this.updateSelectedMiniChart()};this.addManagedListeners(W,{click:H,keydown:(_)=>{if(_.key==e5.ENTER||_.key===e5.SPACE)_.preventDefault(),H()}}),this.wrappers.set(q,W),this.createBean(new X(W,this.beans.agChartsExports,this.fills,this.strokes,this.isCustomTheme)),Z.addItem(W)}G.appendChild(Z.getGui())}this.updateSelectedMiniChart()}updateSelectedMiniChart(){let G=this.chartController.getChartType();this.wrappers.forEach((D,z)=>{let B=z===G;D.classList.toggle("ag-selected",B);let Q=this.chartTranslation.translate(hJ(z)),J=B?`${Q}. ${this.chartTranslation.translate("ariaChartSelected")}`:Q;Tc(D,J)})}destroy(){this.wrappers.clear(),super.destroy()}},Hi=class extends Oc{constructor(G){super(`
`);this.chartController=G,this.eMiniChartsContainer=oz,this.eNavBar=oz,this.eCardSelector=oz,this.ePrevBtn=oz,this.eNextBtn=oz,this.miniChartsContainers=[],this.cardItems=[],this.activePaletteIndex=0,this.palettes=[],this.themes=[]}postConstruct(){this.resetPalettes();let G=this.gos.get("enableRtl");this.ePrevBtn.insertAdjacentElement("afterbegin",r5(G?"chartsThemeNext":"chartsThemePrevious",this.beans)),this.eNextBtn.insertAdjacentElement("afterbegin",r5(G?"chartsThemePrevious":"chartsThemeNext",this.beans)),this.addManagedElementListeners(this.ePrevBtn,{click:()=>this.setActivePalette(this.getPrev(),"left")}),this.addManagedElementListeners(this.eNextBtn,{click:()=>this.setActivePalette(this.getNext(),"right")});let D=()=>this.resetPalettes(!0);this.addManagedListeners(this.chartController,{chartTypeChanged:D,chartApiUpdate:D}),this.scrollSelectedIntoView()}scrollSelectedIntoView(){setTimeout(()=>{let G=(B)=>{return!B.getGui().classList.contains("ag-hidden")},z=this.miniChartsContainers.find(G).getGui().querySelector(".ag-selected");if(z){let B=z.offsetParent;if(B)this.eMiniChartsContainer.scrollTo(0,B.offsetTop)}},250)}resetPalettes(G){let D=this.chartController.getPalettes(),z=this.gos.get("chartToolPanelsDef")?.settingsPanel?.chartGroupsDef;if(uc(D,this.palettes)&&!G||this.isAnimating)return;this.palettes=D,this.themes=this.chartController.getThemeNames(),this.activePaletteIndex=this.themes.findIndex((Q)=>Q===this.chartController.getChartThemeName()),this.cardItems=[],o5(this.eCardSelector),this.destroyMiniCharts();let{themes:B}=this;this.palettes.forEach((Q,J)=>{let U=this.activePaletteIndex===J,{fills:Z=[],strokes:S=[]}=Q,X=B[J],Y=!iJ(X,this.beans.agChartsExports._Theme),W=this.createBean(new qi(this.chartController,Z,S,Y,z));if(this.miniChartsContainers.push(W),this.eMiniChartsContainer.appendChild(W.getGui()),this.addCardLink(J),U)W.updateSelectedMiniChart();else W.setDisplayed(!1)}),Pc(this.eNavBar,this.palettes.length>1),a5(this.cardItems[this.activePaletteIndex],"ag-selected","ag-not-selected")}addCardLink(G){let D=document.createElement("div");D.classList.add("ag-chart-settings-card-item"),this.addManagedElementListeners(D,{click:()=>{this.setActivePalette(G,G=this.palettes.length)G=0;return G}setActivePalette(G,D){if(this.isAnimating||this.activePaletteIndex===G)return;a5(this.cardItems[G],"ag-selected","ag-not-selected");let z=this.miniChartsContainers[this.activePaletteIndex],B=z.getGui(),Q=this.miniChartsContainers[G],J=Q.getGui();z.updateSelectedMiniChart(),Q.updateSelectedMiniChart();let U=D==="left"?-1:1,Z=J.style.left=`${jc(this.getGui())*U}px`;this.activePaletteIndex=G,this.isAnimating=!0;let S="ag-animating";Q.setDisplayed(!0),z.addCss(S),Q.addCss(S),this.chartController.setChartThemeName(this.themes[G]),window.setTimeout(()=>{B.style.left=`${-parseFloat(Z)}px`,J.style.left="0px"},0),window.setTimeout(()=>{this.isAnimating=!1,z.removeCss(S),Q.removeCss(S),z.setDisplayed(!1)},300)}destroyMiniCharts(){o5(this.eMiniChartsContainer),this.miniChartsContainers=this.destroyBeans(this.miniChartsContainers)}destroy(){this.destroyMiniCharts(),super.destroy()}},_i="data",ki="format",wi=class extends Fy{constructor(G,D){super();this.panels=G,this.chartMenuContext=D,this.tabs=[]}wireBeans(G){this.chartTranslation=G.chartTranslation}postConstruct(){for(let G of this.panels){let D=G.replace("chart","").toLowerCase(),z=this.createPanel(D),B=this.createTab(G,D,z);this.tabs.push(B),this.addDestroyFunc(()=>this.destroyBean(z))}this.tabbedLayout=new YJ({items:this.tabs,cssClass:"ag-chart-tabbed-menu",keepScrollPosition:!0,suppressFocusBodyOnOpen:!0,suppressTrapFocus:!0,enableCloseButton:!0,closeButtonAriaLabel:this.chartTranslation.translate("ariaChartMenuClose"),onCloseClicked:()=>{this.eventSource?.focus({preventScroll:!0}),this.dispatchLocalEvent({type:"closed"})}}),this.createBean(this.tabbedLayout)}createTab(G,D,z){let B=d5({tag:"div",cls:`ag-chart-tab ag-chart-${D}`});this.createBean(z),B.appendChild(z.getGui());let Q=this.chartTranslation.translate(D);return{title:d5({tag:"div",children:Q}),titleLabel:Q,bodyPromise:Ny.resolve(B),getScrollableContainer:()=>{return B.querySelector(".ag-scrollable-container")||B},name:G}}showTab(G){let D=this.tabs[G];this.tabbedLayout.showItem(D)}getGui(){return this.tabbedLayout?.getGui()}showMenu(G,D){if(this.eventSource=G,!D)this.tabbedLayout?.focusHeader(!0)}destroy(){if(this.parentComponent?.isAlive())this.destroyBean(this.parentComponent);super.destroy()}createPanel(G){switch(G){case _i:return new Bx(this.chartMenuContext);case ki:return new vc(this.chartMenuContext);default:return new Hi(this.chartMenuContext.chartController)}}},Ki=class extends Wy{constructor(G,D,z){super('
');this.eChartContainer=G,this.eMenuPanelContainer=D,this.chartMenuContext=z,this.buttons={chartLink:{iconName:"linked",callback:()=>this.chartMenuSvc.toggleLinked(this.chartMenuContext)},chartUnlink:{iconName:"unlinked",callback:()=>this.chartMenuSvc.toggleLinked(this.chartMenuContext)},chartDownload:{iconName:"chartsDownload",callback:()=>this.chartMenuSvc.downloadChart(this.chartMenuContext)},chartMenu:{iconName:"chartsMenu",callback:(B)=>this.showMenuList(B)}},this.panels=[],this.menuVisible=!1,this.chartController=z.chartController}wireBeans(G){this.chartMenuSvc=G.chartMenuSvc,this.chartMenuListFactory=G.chartMenuListFactory}postConstruct(){this.chartToolbar=this.createManagedBean(new fy),this.getGui().appendChild(this.chartToolbar.getGui()),this.refreshToolbarAndPanels(),this.addManagedEventListeners({chartCreated:(G)=>{if(G.chartId===this.chartController.getChartId()){if(Boolean(this.gos.get("chartToolPanelsDef")?.defaultToolPanel))this.showMenu({panel:this.defaultPanel,suppressFocus:!0})}}}),this.addManagedListeners(this.chartController,{chartLinkedChanged:this.refreshToolbarAndPanels.bind(this)}),this.refreshMenuClasses(),this.addManagedListeners(this.chartController,{chartApiUpdate:this.refreshToolbarAndPanels.bind(this)})}isVisible(){return this.menuVisible}getExtraPaddingDirections(){return["chartMenu","chartLink","chartUnlink","chartDownload"].some((G)=>this.chartToolbarOptions.includes(G))?["top"]:[]}refreshToolbarAndPanels(){this.initToolbarOptionsAndPanels(),this.updateToolbar()}initToolbarOptionsAndPanels(){let{panels:G,defaultPanel:D}=this.chartMenuSvc.getChartToolPanels(this.chartController);this.panels=G,this.defaultPanel=D,this.chartToolbarOptions=this.chartMenuSvc.getChartToolbarOptions()}updateToolbar(){let G=this.chartToolbarOptions.map((D)=>{let{iconName:z,callback:B}=this.buttons[D];return{buttonName:D,iconName:z,callback:B}});this.chartToolbar.updateParams({buttons:G})}createMenuPanel(G){let D=this.menuPanel=this.createBean(new LJ({height:"100%",closable:!0,hideTitleBar:!0,cssIdentifier:"chart-menu"}));return D.setParentComponent(this),this.eMenuPanelContainer.appendChild(D.getGui()),this.tabbedMenu=this.createBean(new wi(this.panels,this.chartMenuContext)),this.addManagedListeners(this.tabbedMenu,{closed:()=>{this.hideMenu()}}),this.addManagedListeners(D,{destroyed:()=>this.destroyBean(this.tabbedMenu)}),new Yy((z)=>{window.setTimeout(()=>{D.setBodyComponent(this.tabbedMenu),this.tabbedMenu.showTab(G),z(D)},100)})}showContainer(G,D){if(!this.menuPanel)return;this.menuVisible=!0,this.refreshMenuClasses(),this.tabbedMenu.showMenu(G,D)}showMenu(G){let{panel:D,eventSource:z,suppressFocus:B}=G??{};if(this.menuPanel&&!D)this.showContainer(z,B);else{let Q=D||this.defaultPanel,J=this.panels.indexOf(Q);if(J<0)qy(143,{panel:D}),J=this.panels.indexOf(this.defaultPanel);if(this.menuPanel)this.tabbedMenu.showTab(J),this.showContainer(z,B);else this.createMenuPanel(J).then(()=>this.showContainer(z,B))}}hideMenu(){this.menuVisible=!1,this.refreshMenuClasses()}refreshMenuClasses(){this.eChartContainer.classList.toggle("ag-chart-menu-visible",this.menuVisible),this.eChartContainer.classList.toggle("ag-chart-menu-hidden",!this.menuVisible)}showMenuList(G){this.chartMenuListFactory.showMenuList({eventSource:G,showMenu:()=>this.showMenu({eventSource:G}),chartMenuContext:this.chartMenuContext,closeOnElementClick:this.eChartContainer})}destroy(){if(super.destroy(),this.menuPanel?.isAlive())this.destroyBean(this.menuPanel);if(this.tabbedMenu?.isAlive())this.destroyBean(this.tabbedMenu)}},C9=["number","category","time","grouped-category"],Fi=["angle-category","angle-number","radius-category","radius-number"],Ei=[...C9,...Fi],Ii=class extends fi{constructor(G){super();this.chartController=G}getChartThemeOverridesProxy(){return{getValue:(G)=>this.getChartOption(G),setValue:(G,D)=>this.setChartThemeOverrides([{expression:G,value:D}]),setValues:(G)=>this.setChartThemeOverrides(G)}}getAxisThemeOverridesProxy(){return{getValue:(G)=>this.getAxisProperty(G),setValue:(G,D)=>this.setAxisThemeOverrides([{expression:G,value:D}]),setValues:(G)=>this.setAxisThemeOverrides(G)}}getCartesianAxisOptionsProxy(G){return{getValue:(D)=>this.getCartesianAxisProperty(G,D),setValue:(D,z)=>this.setCartesianAxisOptions(G,[{expression:D,value:z}]),setValues:(D)=>this.setCartesianAxisOptions(G,D),clearValue:(D,z)=>this.clearCartesianAxisOptions(G,D,z)}}getCartesianAxisThemeOverridesProxy(G){return{getValue:(D)=>this.getCartesianAxisProperty(G,D),setValue:(D,z)=>this.setCartesianAxisThemeOverrides(G,[{expression:D,value:z}]),setValues:(D)=>this.setCartesianAxisThemeOverrides(G,D)}}getCartesianAxisAppliedThemeOverridesProxy(G){return{getValue:(D)=>this.getCartesianAxisThemeOverride(G,D==="*"?null:D),setValue:(D,z)=>this.setCartesianAxisThemeOverrides(G,[{expression:D==="*"?null:D,value:z}]),setValues:(D)=>this.setCartesianAxisThemeOverrides(G,D)}}getSeriesOptionsProxy(G){return{getValue:(D,z)=>this.getSeriesOption(G(),D,z),setValue:(D,z)=>this.setSeriesOptions(G(),[{expression:D,value:z}]),setValues:(D)=>this.setSeriesOptions(G(),D)}}getPersistedChartThemeOverrides(G,D,z,B){let Q=this.getRetainedChartThemeOverrideKeys(z,B),J=this.getRetainedChartAxisThemeOverrideKeys(null,z,B),U=this.createChartOptions();for(let Z of Q){let S=this.retrieveChartOptionsThemeOverride(G,z,Z);if(S!==void 0)this.assignChartOptionsThemeOverride(U,B,Z,S)}if(D)this.assignPersistedAxisOverrides({existingAxes:D,retainedChartAxisThemeOverrideKeys:J,existingChartOptions:G,targetChartOptions:U,existingChartType:z,targetChartType:B});return U.theme.overrides}assignPersistedAxisOverrides(G){let{existingAxes:D,retainedChartAxisThemeOverrideKeys:z,existingChartOptions:B,targetChartOptions:Q,existingChartType:J,targetChartType:U}=G;for(let{expression:Z,targetAxisTypes:S}of z)for(let X of D.map((Y)=>Y.type)){let Y=this.retrieveChartOptionsThemeOverride(B,J,["axes",X,Z].join("."));if(Y!==void 0)for(let W of S)this.assignChartOptionsThemeOverride(Q,U,["axes",W,Z].join("."),Y)}}getRetainedChartThemeOverrideKeys(G,D){let z=["animation"],B=["zoom","navigator"],Q=((J,U)=>{let Z=[];if(SD(l(J))&&SD(l(U)))Z.push(...B);return Z})(G,D);return[...z,...Q]}getRetainedChartAxisThemeOverrideKeys(G,D,z){if(SD(l(D))&&SD(l(z)))return this.getRetainedCartesianAxisThemeOverrideKeys(G).map((Q)=>({expression:Q,targetAxisTypes:C9}));return[]}getRetainedCartesianAxisThemeOverrideKeys(G){let D=G==="xAxis"?["",".top",".bottom"]:G==="yAxis"?["",".left",".right"]:["",".left",".right",".top",".bottom"],z=["crosshair"],B=[];for(let Q of z)for(let J of D)B.push(`${Q}${J}`);return B}getChartOption(G){return $D(this.getChart(),G,void 0)}setChartThemeOverrides(G){let D=this.getChartType(),z=this.createChartOptions();for(let{expression:B,value:Q}of G)this.assignChartOptionsThemeOverride(z,D,B,Q);this.applyChartOptions(z)}applyChartOptions(G,D){if(Object.keys(G).length===0)return;if(this.updateChart(G),!D?.silent)this.raiseChartOptionsChangedEvent()}awaitChartOptionUpdate(G){this.chartController.getChartProxy().getChart().waitForUpdate().then(()=>G()).catch((z)=>Ni(108,{e:z}))}getAxisProperty(G){return $D(this.getChart().axes?.x,G,void 0)}setAxisThemeOverrides(G){let D=this.getChart(),z=this.getChartType(),B=this.createChartOptions();for(let{expression:Q,value:J}of G){let U=Object.values(D.axes??{}).filter((Z)=>{let S=Q.split("."),X=Z;for(let Y of S){if(!(Y in X))return!1;X=X[Y]}return!0});if(!U)continue;for(let Z of U){if(!this.isValidAxisType(Z))continue;this.assignChartAxisThemeOverride(B,z,Z.type,null,Q,J)}}this.applyChartOptions(B)}getCartesianAxisProperty(G,D){let z=this.getChartAxes(),B=this.getCartesianAxis(z,G);return $D(B,D,void 0)}getCartesianAxisThemeOverride(G,D){let z=this.getChartAxes(),B=this.getCartesianAxis(z,G);if(!B||!this.isValidAxisType(B))return;let Q=this.getChartType(),J=this.getChart().getOptions();return this.retrieveChartAxisThemeOverride(J,Q,B.type,G==="yAxis"?["left","right"]:["bottom","top"],D)}setCartesianAxisThemeOverrides(G,D){let z=this.getChartAxes(),B=this.getCartesianAxis(z,G);if(!B||!this.isValidAxisType(B))return;let Q=this.getChartType(),J=this.createChartOptions();for(let{expression:U,value:Z}of D)this.assignChartAxisThemeOverride(J,Q,B.type,G==="yAxis"?["left","right"]:["bottom","top"],U,Z);this.applyChartOptions(J)}setCartesianAxisOptions(G,D){this.updateCartesianAxisOptions(G,(z)=>{let B=G==="yAxis"?"y":"x";for(let{expression:Q,value:J}of D)this.assignChartOption(z,`axes.${B}.${Q}`,J)})}clearCartesianAxisOptions(G,D,z){this.updateCartesianAxisOptions(G,(B)=>{let Q=G==="yAxis"?"y":"x";this.clearChartOption(B,`axes.${Q}.${D}`,z)})}updateCartesianAxisOptions(G,D){let z=this.getChart().getOptions(),B="axes"in z?z.axes:void 0;if(!z||!B)return;let Q=this.getChartAxes(),J=this.getCartesianAxis(Q,G);if(!J)return;let U=this.createChartOptions();U.axes=B,D(U,J,z),this.applyChartOptions(U)}setCartesianCategoryAxisType(G,D){this.updateCartesianAxisOptions(G,(z,B,Q)=>{let J=this.getChartType();this.assignPersistedAxisOverrides({existingAxes:[B],retainedChartAxisThemeOverrideKeys:this.getRetainedChartAxisThemeOverrideKeys(G,J,J),existingChartOptions:Q,targetChartOptions:z,existingChartType:J,targetChartType:J}),this.assignChartOption(z,"axes.x.type",D),this.chartController.setCategoryAxisType(D)})}getCartesianAxis(G,D){if(G.length<2)return;switch(D){case"xAxis":return G[0].direction==="x"?G[0]:G[1];case"yAxis":return G[1].direction==="y"?G[1]:G[0]}}getSeriesOption(G,D,z){let B=this.getChart().series.find((Q)=>Mi(G,Q));return $D(z?B:B?.properties.toJson(),D,void 0)}setSeriesOptions(G,D){let z=this.createChartOptions();for(let{expression:B,value:Q}of D)this.assignChartOptionsSeriesThemeOverride(z,G,`series.${B}`,Q);this.applyChartOptions(z)}getPairedMode(){return this.chartController.getChartProxy().isPaired()}setPairedMode(G){this.chartController.getChartProxy().setPaired(G)}getChartAxes(){let G=this.getChart();return Object.values(G.axes??{})}retrieveChartAxisThemeOverride(G,D,z,B,Q){if(B)for(let J of B){let U=this.retrieveChartOptionsThemeOverride(G,D,["axes",z,J,...Q?[Q]:[]].join("."));if(U===void 0)continue;return U}else return this.retrieveChartOptionsThemeOverride(G,D,["axes",z,...Q?[Q]:[]].join("."))}assignChartAxisThemeOverride(G,D,z,B,Q,J){if(B)for(let U of B)this.assignChartOptionsThemeOverride(G,D,["axes",z,U,...Q?[Q]:[]].join("."),J);else this.assignChartOptionsThemeOverride(G,D,["axes",z,...Q?[Q]:[]].join("."),J)}isValidAxisType(G){return Ei.includes(G.type)}getChartType(){return this.chartController.getChartType()}getChart(){return this.chartController.getChartProxy().getChart()}updateChart(G){let D=this.chartController.getChartProxy().getChartRef();D.skipAnimations(),D.updateDelta(G)}createChartOptions(){return{theme:{overrides:{}}}}retrieveChartOptionsThemeOverride(G,D,z){let B=this.getChartThemeOverridesSeriesTypeKeys(D);for(let Q of B){let J=this.retrieveChartOptionsSeriesThemeOverride(G,Q,z);if(J===void 0)continue;return J}return}assignChartOptionsThemeOverride(G,D,z,B){let Q=this.getChartThemeOverridesSeriesTypeKeys(D);for(let J of Q)this.assignChartOptionsSeriesThemeOverride(G,J,z,B)}retrieveChartOptionsSeriesThemeOverride(G,D,z){return this.retrieveChartOption(G,["theme","overrides",D,...z?[z]:[]].join("."))}assignChartOptionsSeriesThemeOverride(G,D,z,B){this.assignChartOption(G,["theme","overrides",D,...z?[z]:[]].join("."),B)}getChartThemeOverridesSeriesTypeKeys(G){let D=this.chartController.getChartSeriesTypes(G);if(this.chartController.isComboChart())D.push("common");return D}retrieveChartOption(G,D){return $D(G,D,void 0)}assignChartOption(G,D,z){iP(G,D,z)}clearChartOption(G,D,z){let B=$D(G,D,void 0);if(B)delete B[z]}raiseChartOptionsChangedEvent(){let G=this.chartController.getChartModel();this.eventSvc.dispatchEvent({type:"chartOptionsChanged",chartId:G.chartId,chartType:G.chartType,chartThemeName:this.chartController.getChartThemeName(),chartOptions:G.chartOptions})}};function Mi(G,D){return pP(G)&&D.type===G}var Ai=class extends jT{constructor(G){super(`
`);this.eChart=mz,this.eWrapper=mz,this.eChartContainer=mz,this.eMenuContainer=mz,this.eEmpty=mz,this.params=G}wireBeans(G){this.crossFilterService=G.chartCrossFilterSvc,this.chartTranslation=G.chartTranslation,this.chartMenuSvc=G.chartMenuSvc,this.focusSvc=G.focusSvc,this.popupSvc=G.popupSvc,this.enterpriseChartProxyFactory=G.enterpriseChartProxyFactory,this.environment=G.environment}postConstruct(){let G={...this.params,chartType:S0(this.params.chartType),chartThemeName:this.getThemeName()},D=this.gos.get("enableRtl");this.eWrapper.classList.add(D?"ag-rtl":"ag-ltr");let z=this.createBean(new yg(G));if(this.chartController=this.createManagedBean(new By(z)),this.chartOptionsService=this.createManagedBean(new Ii(this.chartController)),this.validateCustomThemes(),this.createChart(),this.params.insideDialog)this.addDialog();else this.addManagedEventListeners({stylesChanged:this.updateTheme.bind(this)}),this.updateTheme();this.addMenu(),this.addManagedElementListeners(this.getGui(),{focusin:this.setActiveChartCellRange.bind(this)}),this.addManagedListeners(this.chartController,{chartModelUpdate:this.update.bind(this)}),this.addManagedPropertyListeners(["chartThemeOverrides","chartThemes"],this.reactivePropertyUpdate.bind(this)),this.update(),this.raiseChartCreatedEvent()}updateTheme(){this.environment.applyThemeClasses(this.getGui())}createChart(){let G=void 0;if(this.chartProxy)G=this.chartProxy.destroy({keepChartInstance:!0});let D=(Q,J)=>{let U=this.params.crossFilteringContext;if(U.lastSelectedChartId=J?"":this.chartController.getChartId(),J)this.params.crossFilteringResetCallback();this.crossFilterService.filter(Q,J)},z=this.chartController.getChartType(),B={agChartsExports:this.beans.agChartsExports,chartType:z,chartInstance:G,getChartThemeName:this.getChartThemeName.bind(this),getChartThemes:this.getChartThemes.bind(this),customChartThemes:this.gos.get("customChartThemes"),styleNonce:this.gos.get("styleNonce"),getGridOptionsChartThemeOverrides:()=>this.getGridOptionsChartThemeOverrides(),getExtraPaddingDirections:()=>this.chartMenu?.getExtraPaddingDirections()??[],apiChartThemeOverrides:this.params.chartThemeOverrides,crossFiltering:this.params.crossFiltering??!1,crossFilterCallback:D,parentElement:this.eChart,grouping:this.chartController.isGrouping(),chartThemeToRestore:this.params.chartThemeName,chartOptionsToRestore:this.params.chartOptionsToRestore,chartPaletteToRestore:this.params.chartPaletteToRestore,seriesChartTypes:this.chartController.getSeriesChartTypes(),translate:(Q)=>this.chartTranslation.translate(Q),context:PT(this.gos,{})};if(this.params.chartOptionsToRestore=void 0,this.chartType=z,this.chartProxy=this.createChartProxy(B),!this.chartProxy){h5(138,{chartType:B.chartType});return}this.chartController.setChartProxy(this.chartProxy),this.createMenuContext()}createMenuContext(){if(this.chartMenuContext)return;let G=this.createManagedBean(new uD(this.chartOptionsService.getChartThemeOverridesProxy())),D=this.createManagedBean(new uD(this.chartOptionsService.getAxisThemeOverridesProxy()));this.chartMenuContext={chartController:this.chartController,chartOptionsService:this.chartOptionsService,chartMenuParamsFactory:G,chartAxisMenuParamsFactory:D}}getChartThemeName(){return this.chartController.getChartThemeName()}getChartThemes(){return this.chartController.getThemeNames()}getGridOptionsChartThemeOverrides(){return this.gos.get("chartThemeOverrides")}createChartProxy(G){let{chartType:D}=G;switch(D){case"column":case"bar":case"groupedColumn":case"stackedColumn":case"normalizedColumn":case"groupedBar":case"stackedBar":case"normalizedBar":return new Uy(G);case"pie":case"donut":case"doughnut":return new Xy(G);case"area":case"stackedArea":case"normalizedArea":return new Qy(G);case"line":case"stackedLine":case"normalizedLine":return new Zy(G);case"scatter":case"bubble":return new $y(G);case"columnLineCombo":case"areaColumnCombo":case"customCombo":return new Ly(G)}let z=this.enterpriseChartProxyFactory?.createChartProxy(G);if(!z)throw x5(251,{chartType:D});return z}addDialog(){let G=this.chartTranslation.translate(this.params.pivotChart?"pivotChartTitle":"rangeChartTitle"),{width:D,height:z}=this.getBestDialogSize(),B=this.params.focusDialogOnOpen?()=>setTimeout(()=>yT(this.getGui())):void 0;this.chartDialog=new PB({resizable:!0,movable:!0,maximizable:!0,title:G,width:D,height:z,component:this,centered:!0,closable:!0,afterGuiAttached:B,postProcessPopupParams:{type:"chart"}}),this.createBean(this.chartDialog),this.chartDialog.addEventListener("destroyed",()=>{this.destroy(),this.chartMenuSvc.hideAdvancedSettings();let Q=this.focusSvc.getFocusedCell();setTimeout(()=>{if(this.focusSvc.isAlive())if(Q)this.focusSvc.setFocusedCell({...Q,forceBrowserFocus:!0});else TT(this.beans)})})}getBestDialogSize(){let G=this.popupSvc.getPopupParent(),D=cT(G)*0.75,z=xT(G)*0.75,B=0.553,Q=this.chartProxy.getChart(),J=this.params.insideDialog?850:Q.width,U=this.params.insideDialog?470:Q.height;if(J>D||U>z){if(J=Math.min(J,D),U=Math.round(J*0.553),U>z)U=z,J=Math.min(J,Math.round(U/0.553))}return{width:J,height:U}}addMenu(){if(!this.params.crossFiltering)this.chartMenu=this.createBean(new Ki(this.eChartContainer,this.eMenuContainer,this.chartMenuContext)),this.eChartContainer.appendChild(this.chartMenu.getGui())}update(G){if(G?.chartId){if(!this.chartController.update(G))return}let D=this.chartTypeChanged(G),z=D||this.chartEmpty?((Q)=>{let J=this.chartType,U=Q,Z=this.chartProxy.getChart(),S=Z?.getOptions(),X=Object.values(Z?.axes??{});return this.chartOptionsService.getPersistedChartThemeOverrides(S,X,J,U??J)})(D):void 0;if(D)this.createChart();if(z&&G?.chartThemeOverrides)hT(z,G.chartThemeOverrides);let B=z??G?.chartThemeOverrides;if(this.updateChart(B),G?.chartId)this.chartProxy.getChart().waitForUpdate().then(()=>{this.chartController.raiseChartApiUpdateEvent()})}updateChart(G){let{chartProxy:D}=this,z=this.chartController.getSelectedValueColState(),B=this.chartController.getChartData(),Q=this.handleEmptyChart(B,z.length);if(this.chartEmpty=Q,Q){if(G)this.chartController.updateThemeOverrides(G);return}let J=this.chartController.getChartUpdateParams(G);D.update(J),this.chartProxy.getChart().waitForUpdate().then(()=>{this.chartController.raiseChartUpdatedEvent()})}chartTypeChanged(G){let[D,z]=[this.chartController.getChartType(),G?.chartType],B=z?S0(z):void 0;if(this.chartType!==D)return B??D;if(B&&D!==B)return B;return null}getChartModel(){return this.chartController.getChartModel()}getChartImageDataURL(G){return this.chartProxy.getChartImageDataURL(G)}handleEmptyChart(G,D){let z=this.chartController.isPivotChart()&&!this.chartController.isPivotMode(),B=this.chartController.getChartType(),Q=1;if(this.chartController.isActiveXYChart())Q=B==="bubble"?3:2;else if(VD(l(B)))Q=0;let J=DB!=null))for(let B of Object.keys(z))D[B]=null;return Object.keys(D)}validateCustomThemes(){let G=this.getChartThemes(),D=this.gos.get("customChartThemes");if(D){for(let z of this.getAllKeysInObjects([D]))if(!G.includes(z))h5(139,{customThemeName:z})}}reactivePropertyUpdate(){this.chartController.setChartThemeName(this.getThemeName(),!0);let G=this.getChartId(),D=this.chartController.isCrossFilterChart()?"crossFilter":this.getChartModel().modelType,z=this.gos.get("chartThemeOverrides")||{};this.update({type:`${D}ChartUpdate`,chartId:G,chartThemeOverrides:z})}raiseChartCreatedEvent(){this.chartProxy.getChart().waitForUpdate().then(()=>{this.eventSvc.dispatchEvent({type:"chartCreated",chartId:this.chartController.getChartId()})})}raiseChartDestroyedEvent(){this.eventSvc.dispatchEvent({type:"chartDestroyed",chartId:this.chartController.getChartId()})}destroy(){if(super.destroy(),this.chartProxy)this.chartProxy.destroy();if(this.destroyBean(this.chartMenu),this.chartDialog?.isAlive())this.destroyBean(this.chartDialog);this.onDestroyColorSchemeChangeListener?.();let G=this.getGui();gT(G),iT(G),this.raiseChartDestroyedEvent()}},X0=!1;function Ci(G){let D=G.version;if(G.version==null)G.version=di(G);if(G=QG("23.0.0",G,Vi),G=QG("24.0.0",G,bi),G=QG("25.1.0",G,vi),G=QG("26.0.0",G,Oi),G=QG("26.1.0",G,ui),G=QG("26.2.0",G,ji),G=QG("28.0.0",G,Pi),G=QG("28.2.0",G,gi),G=QG("29.0.0",G,Ti),G=QG("29.1.0",G,V9),G=QG("29.2.0",G,b9),G=QG("30.0.0",G,yi),G=QG("31.0.0",G,xi),G=QG("32.0.0",G,ci),G=QG("33.0.0",G,hi),G=QG("34.0.0",G,ii),G=ni(G),G=QG(j,G,(z)=>z),X0&&D!==G.version)console.log("AG Grid: ChartModel migration complete",{model:G});return G}function Vi(G){return G=UG("chartOptions.legend.item.marker.type","shape",G),G=UG("chartOptions.seriesDefaults.marker.type","shape",G),G=UG("chartOptions.legend.padding","spacing",G),G}function bi(G){G=d("chartOptions.seriesDefaults.marker.minSize",G);let{chartType:D,chartPalette:z,chartOptions:{xAxis:B,yAxis:Q,...J},...U}=G,S=Dg(D)?.map((Y,W)=>({type:Y,...W===0?B:Q}));return{chartType:D,chartThemeName:{borneo:"ag-default",material:"ag-material",bright:"ag-vivid"}[z]??"ag-default",chartOptions:{...J,axes:S,xAxis:B,yAxis:Q},...U}}function vi(G){return G=UG("chartOptions.seriesDefaults.label.minRequiredAngle","minAngle",G),G}function Oi(G){return G=lG("chartOptions.seriesDefaults.highlightStyle",G,({dimOpacity:z,...B})=>({...B,...z!=null?{series:{dimOpacity:z}}:{}})),G=d("chart",G),G=d("chartOptions.seriesDefaults.tooltipClass",G),G=d("chartOptions.seriesDefaults.tooltipTracking",G),G=U6("chartOptions.axes[].label.rotation",0,G),G=U6("chartOptions.axes[].label.rotation",335,G),G}function ui(G){let D=({item:z,series:B,...Q})=>({item:{...Q,...z},...B?{series:B}:{}});return G=lG("chartOptions.seriesDefaults.highlightStyle",G,D),G=lG("chartOptions.series[].highlightStyle",G,D),G}function ji(G){G=_B("chartOptions.seriesDefaults.fill.opacity","chartOptions.seriesDefaults.fillOpacity",G),G=_B("chartOptions.seriesDefaults.stroke.opacity","chartOptions.seriesDefaults.strokeOpacity",G),G=_B("chartOptions.seriesDefaults.stroke.width","chartOptions.seriesDefaults.strokeWidth",G),G=d("chartOptions.seriesDefaults.fill",G),G=d("chartOptions.seriesDefaults.stroke",G),G=d("chartOptions.seriesDefaults.callout.colors",G),G=d("chartOptions.xAxis",G),G=d("chartOptions.yAxis",G);let{chartType:D,chartOptions:{axes:z,series:B,seriesDefaults:Q,...J},...U}=G,Z=S0(D),S=l(Z),X=[S],Y={};if(!t8(S)){let q={top:{},bottom:{},left:{},right:{}},H=z.map(({type:_,...k})=>({[_]:{...q,...k}})).reduce($6,{});for(let _ of o8.filter((k)=>H[k]==null))H[_]={...q};Y.axes=H}let W=X.map((q)=>({[q]:{...Y,series:Q,...J}})).reduce($6,{});return G={...U,chartType:Z,chartOptions:W},G}function Pi(G){return G=d("chartOptions.*.title.padding",G),G=d("chartOptions.*.subtitle.padding",G),G=d("chartOptions.*.axes.*.title.padding",G),G=aJ("chartOptions.*.axes.*.title.enabled",!1,G),G}function gi(G){return G=UG("chartOptions.pie.series.callout","calloutLine",G),G=UG("chartOptions.pie.series.label","calloutLabel",G),G=UG("chartOptions.pie.series.labelKey","sectorLabelKey",G),G=UG("chartOptions.pie.series.labelName","sectorLabelName",G),G=UG("chartOptions.donut.series.callout","calloutLine",G),G=UG("chartOptions.donut.series.label","calloutLabel",G),G=UG("chartOptions.donut.series.labelKey","sectorLabelKey",G),G=UG("chartOptions.donut.series.labelName","sectorLabelName",G),G}function Ti(G){return G=rz("chartOptions.scatter.series.fill","chartOptions.scatter.series.marker.fill",G),G=rz("chartOptions.scatter.series.fillOpacity","chartOptions.scatter.series.marker.fillOpacity",G),G=rz("chartOptions.scatter.series.stroke","chartOptions.scatter.series.marker.stroke",G),G=rz("chartOptions.scatter.series.strokeOpacity","chartOptions.scatter.series.marker.strokeOpacity",G),G=rz("chartOptions.scatter.series.strokeWidth","chartOptions.scatter.series.marker.strokeWidth",G),G=_B("chartOptions.scatter.series.paired","chartOptions.scatter.paired",G),G}function V9(G){return G=d("chartOptions.axes[].tick.count",G),G}function b9(G){return G=lG("chartOptions.*.tooltip",G,({tracking:z,...B})=>{let Q={...B};if(z===!1)Q.position??(Q.position={type:"pointer"}),Q.range??(Q.range="nearest");else if(z===!0)Q.position??(Q.position={type:"node"}),Q.range??(Q.range="nearest");return Q}),G}function yi(G){return G=UG("chartOptions.pie.series.labelKey","sectorLabelKey",G),G=UG("chartOptions.pie.series.labelName","sectorLabelName",G),G=V9(G),G=b9(G),G=d("chartOptions.*.series.flipXY",G),G=v9("chartOptions.common.legend.enabled",!0,G),G=aJ("chartOptions.common.legend.position","right",G),G}function xi(G){let D={"ag-pastel":"ag-sheets","ag-solar":"ag-polychroma"},z=UG("chartOptions.column","bar",G),B=D[z.chartThemeName]||z.chartThemeName;return{...z,chartThemeName:B}}function ci(G){return G=EG("chartOptions.*.autoSize",!0,G,(D,z)=>{if(D[z]===!0);else if(D[z]===!1)D.minHeight=600,D.minWidth=300;delete D[z]}),G}function hi(G){return G=d("chartOptions.*.axes.category.label.format",G),G=d("chartOptions.*.axes.category.crosshair.label.format",G),G=d("chartOptions.*.axes.angle-category.label.format",G),G=d("chartOptions.*.axes.radius-category.label.format",G),G=UG("chartOptions.*.axes.*.label.padding","spacing",G),G=UG("chartOptions.*.navigator.miniChart.label.padding","spacing",G),G=d("chartOptions.*.axes.*.crossLines.label.className",G),G=EG("chartOptions.*.axes.*.crossLines.label.position",!0,G,(D,z)=>{if(typeof D[z]==="string")D[z]=D[z].replace(/([A-Z])/,"-$1").toLowerCase()}),G=d("chartOptions.bullet",G),G=Z6("chartOptions.bar.series.label.placement",G,{inside:"inside-center",outside:"inside-end"}),G=Z6("chartOptions.waterfall.series.item.*.label.placement",G,{inside:"inside-center",start:"outside-start",end:"outside-end"}),G=d("chartOptions.*.navigator.min",G),G=d("chartOptions.*.navigator.max",G),G=d("chartOptions.*.zoom.ratioX",G),G=d("chartOptions.*.zoom.ratioY",G),G=d("chartOptions.*.zoom.rangeX",G),G=d("chartOptions.*.zoom.rangeY",G),G}function ii(G){return EG("chartOptions.series[].highlightStyle",!0,G,(z,B)=>{let Q=z[B];if(Q==null)return;let J={};if(Q.item)J.highlightedItem=Q.item;if(Q.series){let{dimOpacity:U,...Z}=Q.series;if(U!=null)J.unhighlightedSeries={opacity:U};if(Object.keys(Z).length>0)J.highlightedSeries=Z}delete z[B],z.highlight=J}),G}function ni(G){return G=d("chartOptions.*.width",G),G=d("chartOptions.*.height",G),G=aJ("chartOptions.*.axes.category.label.autoRotate",!0,G),G}function di(G){let D=G;if(G.version!=null)return G.version;let z=(X,...Y)=>{return Object.keys(X||{}).some((W)=>Y.includes(W))},B=D.chartOptions,Q=z(B,"seriesDefaults")?B?.seriesDefaults:B?.[Object.keys(B)[0]],J={"27.0.0":z(D,"seriesChartTypes"),"26.2.0":!z(B,"seriesDefaults"),"26.1.0":z(Q?.highlightStyle,"item"),"26.0.0":z(Q?.highlightStyle,"series"),"25.1.0":z(Q?.label,"minAngle"),"25.0.0":z(D,"modelType","aggFunc","unlinkChart","suppressChartRanges")||z(Q,"lineDash","lineDashOffset"),"24.0.0":z(D,"chartThemeName","chart")||z(B,"series"),"23.2.0":z(B,"navigator"),"23.0.0":z(B?.legend?.item?.marker,"shape"),"22.1.0":z(D,"chartPalette","chartType")},U="27.1.0",Z=Object.entries(J).filter(([X,Y])=>Y);if(X0)console.log("AG Grid: ChartModel migration",{heuristicVersionCandidates:Z});let[S=U]=Z[0];if(X0)console.log("AG Grid: ChartModel migration",{heuristicVersion:S});return S}function QG(G,D,z){if(J6(G)>J6(D.version)){if(X0)console.log("AG Grid: ChartModel migration",{migratingTo:G});let B=z(D);if(B.version=G,X0)console.log("AG Grid: ChartModel migration",{migratedTo:G,result:B});return B}return D}function li(G){let D=G.includes("-beta")?G.replace(/-beta.*/,""):G,z=typeof D==="string"?D.split(".").map((B)=>Number(B)):[];if(z.length!==3||z.some((B)=>isNaN(B)))throw Error(Ri(253,{version:D}));return{major:z[0],minor:z[1],patch:z[2]}}function J6(G){let{major:D,minor:z,patch:B}=li(G);return D*1e4+z*100+B}function U6(G,D,z){return EG(G,!0,z,(B,Q)=>{if(B[Q]===D)delete B[Q]})}function aJ(G,D,z){return EG(G,!1,z,(B,Q)=>{if(B[Q]==null)B[Q]=D})}function v9(G,D,z){if(typeof G==="string")G=G.split(".");let B=G[0];if(G.length>1)z[B]=v9(G.slice(1),D,z[B]??{});if(!Object.keys(z).includes(B))z[B]=D;return z}function _B(G,D,z){let B=void 0,Q=!1;if(z=EG(G,!0,z,(J,U)=>{Q=!0,B=J[U],delete J[U]}),!Q)return z;return EG(D,!1,z,(J,U)=>{J[U]=B})}function rz(G,D,z){let B=void 0,Q=!1;if(z=EG(G,!0,z,(J,U)=>{Q=!0,B=J[U],delete J[U]}),!Q)return z;return EG(D,!1,z,(J,U)=>{if(J[U]===void 0)J[U]=B})}function UG(G,D,z){return EG(G,!0,z,(B,Q)=>{B[D]=B[Q],delete B[Q]})}function d(G,D){return EG(G,!0,D,(z,B)=>delete z[B])}function EG(G,D,z,B){let Q=G instanceof Array?G:G.split("."),J=Q.slice(0,Q.length-1),U=Q[Q.length-1];return lG(J,z,(Z)=>{let S=Object.keys(Z).includes(U);if(D&&!S)return Z;let X={...Z};return B(X,U),X})}function lG(G,D,z){let B=G instanceof Array?G:G.split(".");if(D={...D},B.length===0)return z(D);else if(B[0].startsWith("{")){let Q=B[0].substring(1,B[0].lastIndexOf("}")).split(",");for(let J of Q)if(D[J]!=null)D[J]=lG(B.slice(1),D[J],z)}else if(B[0].endsWith("[]")){let Q=B[0].substring(0,G[0].indexOf("["));if(D[Q]instanceof Array)D[Q]=D[Q].map((J)=>lG(B.slice(1),J,z))}else if(B[0]==="*")for(let Q of Object.keys(D))D[Q]=lG(B.slice(1),D[Q],z);else if(D[B[0]]!=null)D[B[0]]=lG(B.slice(1),D[B[0]],z);return D}function Z6(G,D,z){return EG(G,!0,D,(B,Q)=>{if(typeof B[Q]==="string")B[Q]=z[Q]??Q})}var $6=(G,D)=>({...G,...D}),pi=class extends OT{constructor(){super(...arguments);this.beanName="chartSvc",this.activeCharts=new Set,this.activeChartComps=new Set,this.crossFilteringContext={lastSelectedChartId:""},this.isEnterprise=()=>this.agChartsExports.isEnterprise}wireBeans(G){this.visibleCols=G.visibleCols,this.rangeSvc=G.rangeSvc,this.agChartsExports=G.agChartsExports}updateChart(G){if(this.activeChartComps.size===0){zB(124);return}let D=[...this.activeChartComps].find((z)=>z.getChartId()===G.chartId);if(!D){zB(125,{chartId:G.chartId});return}D.update(G)}getChartModels(){let G=[],D=(z)=>{return{...z,version:j}};for(let z of this.activeChartComps)G.push(D(z.getChartModel()));return G}getChartRef(G){let D;for(let z of this.activeCharts)if(z.chartId===G)D=z;return D}getChartComp(G){let D;for(let z of this.activeChartComps)if(z.getChartId()===G)D=z;return D}getChartImageDataURL(G){let D;for(let z of this.activeChartComps)if(z.getChartId()===G.chartId)D=z.getChartImageDataURL(G.fileFormat);return D}downloadChart(G){Array.from(this.activeChartComps).find((z)=>z.getChartId()===G.chartId)?.downloadChart(G.dimensions,G.fileName,G.fileFormat)}openChartToolPanel(G){Array.from(this.activeChartComps).find((z)=>z.getChartId()===G.chartId)?.openChartToolPanel(G.panel)}closeChartToolPanel(G){Array.from(this.activeChartComps).find((z)=>z.getChartId()===G)?.closeChartToolPanel()}createChartFromCurrentRange(G="groupedColumn",D){let z=this.getSelectedRange();return this.createChart({cellRange:z,chartType:G,focusDialogOnOpen:!D})}restoreChart(G,D){if(!G){zB(126);return}if(G.version!==j)G=Ci(G);let z,B,Q,J;if(G.modelType==="pivot")this.gos.updateGridOptions({options:{pivotMode:!0},source:"pivotChart"}),z=this.createCellRange(void 0,!0),B=!0,Q=!0;else z=this.createCellRange(G.cellRange),J=G.chartPalette,Q=G.suppressChartRanges;if(!z)return;return this.createChart({...G,cellRange:z,pivotChart:B,suppressChartRanges:Q,chartContainer:D,chartOptionsToRestore:G.chartOptions,chartPaletteToRestore:J})}createRangeChart(G,D){let z=this.createCellRange(G.cellRange);if(!z)return;return this.createChart({...G,cellRange:z,focusDialogOnOpen:!D})}createPivotChart(G,D){this.gos.updateGridOptions({options:{pivotMode:!0},source:"pivotChart"});let z=this.createCellRange(void 0,!0);if(!z)return;return this.createChart({...G,cellRange:z,pivotChart:!0,suppressChartRanges:!0,focusDialogOnOpen:!D})}createCrossFilterChart(G,D){let z=this.createCellRange(G.cellRange);if(!z)return;let Q=typeof G.suppressChartRanges<"u"&&G.suppressChartRanges!==null?G.suppressChartRanges:!0;return this.createChart({...G,cellRange:z,suppressChartRanges:Q,crossFiltering:!0,crossFilteringSort:G.sort,focusDialogOnOpen:!D})}createChart(G){let D=eT(G,this.agChartsExports.isEnterprise);if(!D)return;G=D===!0?G:D;let{chartType:z,chartContainer:B}=G,Q=this.gos.getCallback("createChartContainer"),J={...G,chartId:this.generateId(),chartType:S0(z),insideDialog:!(B||Q),crossFilteringContext:this.crossFilteringContext,crossFilteringResetCallback:()=>{for(let S of this.activeChartComps)S.crossFilteringReset()}},U=new Ai(J);this.createBean(U);let Z=this.createChartRef(U);if(B)B.appendChild(Z.chartElement);else if(Q)Q(Z);else U.addEventListener("destroyed",()=>{this.activeChartComps.delete(U),this.activeCharts.delete(Z)});return Z}createChartRef(G){let D={destroyChart:()=>{if(this.activeCharts.has(D))this.destroyBean(G),this.activeChartComps.delete(G),this.activeCharts.delete(D)},focusChart:()=>{uT(G.getGui())},chartElement:G.getGui(),chart:G.getUnderlyingChart(),chartId:G.getChartModel().chartId,setMaximized:G.setMaximized.bind(G)};return this.activeCharts.add(D),this.activeChartComps.add(G),D}getSelectedRange(){let G=this.rangeSvc?.getCellRanges();if(!G||G.length===0)return{columns:[]};let D=new Set,z=Number.MAX_VALUE,B=-Number.MAX_VALUE;for(let{startRow:J,endRow:U,columns:Z}of G){if(!(J&&U))continue;for(let q of Z)D.add(q);let{rowIndex:S,rowPinned:X}=J,{rowIndex:Y,rowPinned:W}=U;if(X==="top"){if(W==="top")continue;S=0}if(W==="bottom"){if(X==="bottom")continue;Y=this.beans.pageBounds.getLastRow()}if(S!==void 0)z=Math.min(z,S);if(Y!==void 0)B=Math.max(B,Y)}if(z===Number.MAX_VALUE||B===-Number.MAX_VALUE)return{columns:[]};let Q=Array.from(D);return{columns:Q,startColumn:Q[0],startRow:{rowIndex:z,rowPinned:void 0},endRow:{rowIndex:B,rowPinned:void 0}}}generateId(){return`id-${Math.random().toString(36).substring(2,18)}`}createCellRange(G,D){let z=D?{rowStartIndex:null,rowStartPinned:void 0,rowEndIndex:null,rowEndPinned:void 0,columns:this.visibleCols.allCols.map((Q)=>Q.getColId())}:G,B=z&&this.rangeSvc?.createPartialCellRangeFromRangeParams(z,!0);if(!B)zB(127,{allRange:D});return B}destroy(){for(let G of this.activeCharts)G.destroyChart();super.destroy()}};function mi(G){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.getChartModels())}function ti(G,D){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.getChartRef(D))}function si(G,D){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.getChartImageDataURL(D))}function oi(G,D){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.downloadChart(D))}function ri(G,D){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.openChartToolPanel(D))}function ai(G,D){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.closeChartToolPanel(D.chartId))}function ei(G,D){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.createRangeChart(D,!0))}function Gn(G,D){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.createPivotChart(D,!0))}function Dn(G,D){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.createCrossFilterChart(D,!0))}function zn(G,D){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.updateChart(D))}function Bn(G,D,z){return G.frameworkOverrides.wrapIncoming(()=>G.chartSvc?.restoreChart(D,z))}var Qn=".ag-chart{display:flex;height:100%;position:relative;width:100%}.ag-chart-components-wrapper{display:flex}.ag-chart-canvas-wrapper,.ag-chart-components-wrapper{flex:1 1 auto;position:relative}.ag-chart-menu{background:var(--ag-background-color);background-color:color-mix(in srgb,transparent,var(--ag-background-color) 30%);border-radius:var(--ag-border-radius);display:flex;flex-direction:row;gap:20px;padding:4px 2px;position:absolute;top:8px;width:auto;--ag-icon-size:20px}:where(.ag-ltr) .ag-chart-menu{justify-content:right;right:calc(var(--ag-cell-horizontal-padding) + var(--ag-spacing) - 4px)}:where(.ag-rtl) .ag-chart-menu{justify-content:left;left:calc(var(--ag-cell-horizontal-padding) + var(--ag-spacing) - 4px)}.ag-chart-docked-container{min-width:var(--ag-chart-menu-panel-width);position:relative}:where(.ag-chart-menu-hidden)~.ag-chart-docked-container{display:none}.ag-chart-tabbed-menu{display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.ag-chart-tabbed-menu-header{cursor:default;flex:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ag-chart-tabbed-menu-body{align-items:stretch;display:flex;flex:1 1 auto;overflow:hidden;position:relative}.ag-chart-tabbed-menu-body:after{background:linear-gradient(var(--ag-background-color),transparent);content:\"\";display:block;height:16px;left:0;position:absolute;right:0;top:0}.ag-chart-tab{overflow:hidden;overflow-y:auto;width:100%}.ag-chart-settings{overflow-x:hidden}.ag-chart-settings-wrapper{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;width:100%}.ag-chart-settings-nav-bar{align-items:center;border-top:solid var(--ag-border-width) var(--ag-border-color);display:flex;height:30px;padding:0 10px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.ag-chart-settings-card-selector{align-items:center;display:flex;flex:1 1 auto;height:100%;justify-content:space-around;padding:0 10px}.ag-chart-settings-card-item{background-color:var(--ag-foreground-color);border-radius:4px;cursor:pointer;height:8px;position:relative;width:8px;&.ag-not-selected{opacity:.2}&.ag-selected{background-color:var(--ag-accent-color)}}.ag-chart-settings-card-item:before{background-color:transparent;content:\" \";display:block;height:20px;left:50%;margin-left:-10px;margin-top:-10px;position:absolute;top:50%;width:20px}.ag-chart-settings-next,.ag-chart-settings-prev{flex:none;position:relative}.ag-chart-settings-next:focus-within,.ag-chart-settings-prev:focus-within{border-radius:1px;box-shadow:var(--ag-focus-shadow)}.ag-chart-settings-next-button,.ag-chart-settings-prev-button{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.ag-chart-settings-mini-charts-container{flex:1 1 auto;overflow:hidden auto;position:relative}.ag-chart-settings-mini-wrapper{display:flex;flex-direction:column;left:0;min-height:100%;overflow:hidden;padding-bottom:var(--ag-widget-container-vertical-padding);position:absolute;top:0;width:100%;&.ag-animating{transition:left .3s;transition-timing-function:ease-in-out}}.ag-chart-mini-thumbnail{border:solid var(--ag-border-width) var(--ag-border-color);border-radius:5px;cursor:pointer;padding:1px;&.ag-selected{border-color:var(--ag-accent-color);border-width:calc(var(--ag-border-width) + 1px);padding:unset}&:focus-visible{border-color:var(--ag-accent-color);box-shadow:var(--ag-focus-shadow)}}.ag-chart-mini-thumbnail-canvas{display:block}.ag-chart-advanced-settings-wrapper,.ag-chart-data-wrapper,.ag-chart-format-wrapper{display:flex;flex-direction:column;padding-bottom:16px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ag-chart-advanced-settings-wrapper,.ag-chart-data-wrapper{height:100%;overflow-y:auto}.ag-chart-advanced-settings{background-color:var(--ag-chrome-background-color)}.ag-chart-advanced-settings,.ag-chart-advanced-settings-wrapper{width:100%}.ag-chart-advanced-settings-wrapper{padding-bottom:0}.ag-chart-advanced-settings-section{border-bottom:solid var(--ag-border-width) var(--ag-border-color);display:flex;margin:0;padding-bottom:var(--ag-widget-container-vertical-padding);padding-top:var(--ag-widget-container-vertical-padding)}.ag-chart-empty-text{align-items:center;background-color:var(--ag-background-color);display:flex;height:100%;justify-content:center;top:0;width:100%}.ag-charts-font-size-color{align-self:stretch;display:flex;justify-content:space-between}.ag-chart-menu-icon{border-radius:var(--ag-border-radius);cursor:pointer;margin:2px 0;opacity:.8}.ag-chart-menu-icon:hover{opacity:1}.ag-chart-menu-toolbar-button{background-color:unset;border:0;border-radius:1px;padding:0 2px}.ag-chart-data-column-drag-handle{margin-left:var(--ag-spacing)}.ag-chart-data-section,.ag-chart-format-section{display:flex;margin:0;:where(.ag-label:not(.ag-group-title-bar)){color:var(--ag-chart-menu-label-color)}:where(.ag-label-align-top .ag-label){margin-bottom:var(--ag-widget-vertical-spacing);margin-top:calc(var(--ag-widget-vertical-spacing)*.5)}:where(.ag-slider.ag-label-align-top .ag-label){margin-bottom:0}.ag-label{display:inline-block}}.ag-chart-menu-panel{--ag-panel-background-color:var(--ag-chrome-background-color)}:where(.ag-ltr) .ag-chart-menu-panel{border-left:solid var(--ag-border-width) var(--ag-border-color)}:where(.ag-rtl) .ag-chart-menu-panel{border-right:solid var(--ag-border-width) var(--ag-border-color)}.ag-chart-data-wrapper,.ag-chart-format-wrapper{margin:0;padding:0}.ag-group{.ag-charts-data-group-item{padding-bottom:var(--ag-widget-container-vertical-padding);position:relative}.ag-charts-data-group-item:where(:not(:last-child)){margin-bottom:var(--ag-spacing)}.ag-charts-advanced-settings-top-level-group-title-bar{background-color:unset;position:relative}.ag-charts-data-group-item:where(:not(.ag-charts-format-sub-level-group,.ag-pill-select,.ag-select)){height:var(--ag-list-item-height)}.ag-charts-data-group-item:where(.ag-picker-field){margin-top:var(--ag-spacing)}.ag-charts-advanced-settings-top-level-group-item,.ag-charts-format-top-level-group-item{margin:var(--ag-spacing) 0}.ag-charts-format-sub-level-group-container{display:flex;flex-direction:column;padding:var(--ag-widget-vertical-spacing) 0}.ag-charts-settings-group-container{border-top:none;display:grid;font-weight:500;grid-template-columns:60px 1fr 60px 1fr 60px;row-gap:8px;:where(.ag-chart-mini-thumbnail:nth-child(3n+1)){grid-column:1}:where(.ag-chart-mini-thumbnail:nth-child(3n+2)){grid-column:3}:where(.ag-chart-mini-thumbnail:nth-child(3n+3)){grid-column:5}}.ag-charts-data-group-title-bar,.ag-charts-format-top-level-group-title-bar,.ag-charts-settings-group-title-bar{border-top:none;font-weight:500;margin:0;padding:var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);position:relative}.ag-charts-format-sub-level-group-title-bar{background:none;font-weight:500;padding:var(--ag-widget-vertical-spacing) 0}&.ag-charts-data-group,&.ag-charts-format-top-level-group{border-top:solid var(--ag-border-width) var(--ag-border-color)}.ag-charts-data-group-container,.ag-charts-format-top-level-group-container,.ag-charts-settings-group-container{margin:0;padding:0 var(--ag-widget-container-horizontal-padding)}.ag-charts-format-sub-level-group-item,.ag-charts-format-sub-level-no-header-group-item,.ag-charts-format-top-level-group-item{margin-bottom:var(--ag-widget-vertical-spacing)}&.ag-charts-format-sub-level-group,&.ag-charts-format-top-level-group,.ag-charts-format-sub-level-group-item:last-child,.ag-charts-format-top-level-group-item{margin:0;padding:0}.ag-charts-advanced-settings-top-level-group-container{margin:0}.ag-charts-advanced-settings-top-level-group-container,.ag-charts-advanced-settings-top-level-group-title-bar{padding:0 var(--ag-widget-container-horizontal-padding)}.ag-charts-advanced-settings-top-level-group-item{margin-bottom:0;margin-top:calc(var(--ag-widget-vertical-spacing)*2)}}.ag-chart-settings-card-item.ag-not-selected:hover{opacity:.35}.ag-angle-select{align-items:center;display:flex}.ag-angle-select-wrapper{display:flex}.ag-angle-select-parent-circle{background-color:var(--ag-background-color);border:solid var(--ag-border-width) var(--ag-border-color);border-radius:12px;display:block;height:24px;position:relative;width:24px}.ag-angle-select-child-circle{background-color:var(--ag-foreground-color);border-radius:3px;height:6px;left:12px;margin-left:-3px;margin-top:-4px;position:absolute;top:4px;width:6px}.ag-slider-wrapper{display:flex;:where(.ag-input-field){flex:1 1 auto}}.ag-color-panel{display:flex;flex-direction:column;padding:var(--ag-spacing);text-align:center;width:100%}.ag-spectrum-color{cursor:default;flex:1 1 auto;overflow:visible;position:relative}.ag-spectrum-color,.ag-spectrum-fill{border-radius:var(--ag-border-radius)}.ag-spectrum-fill{inset:0;position:absolute}.ag-spectrum-val{background-image:linear-gradient(0deg,#000,hsla(20,42%,65%,0));cursor:pointer}.ag-spectrum-dragger{background:#000;border:var(--ag-color-picker-thumb-border-width) solid #fff;border-radius:var(--ag-color-picker-thumb-size);box-shadow:0 0 2px 0 rgba(0,0,0,.24);cursor:pointer;height:var(--ag-color-picker-thumb-size);pointer-events:none;position:absolute;width:var(--ag-color-picker-thumb-size)}.ag-spectrum-alpha,.ag-spectrum-hue{cursor:default}.ag-spectrum-hue-background{background:linear-gradient(270deg,red 3%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%;width:100%}.ag-spectrum-alpha-background{background:linear-gradient(to right,var(--ag-internal-spectrum-alpha-color-from),var(--ag-internal-spectrum-alpha-color-to)),url('data:image/svg+xml;utf8,') 0 0 /4px 4px;height:100%;width:100%}.ag-spectrum-tool{cursor:pointer;height:var(--ag-color-picker-track-size);margin-bottom:10px;position:relative}.ag-spectrum-slider,.ag-spectrum-tool{border-radius:var(--ag-color-picker-thumb-size)}.ag-spectrum-slider{border:var(--ag-color-picker-thumb-border-width) solid #fff;box-shadow:0 1px 4px 0 rgba(0,0,0,.37);height:var(--ag-color-picker-thumb-size);margin-top:calc(var(--ag-color-picker-track-size)/2*-1 + var(--ag-color-picker-thumb-size)/2*-1);pointer-events:none;position:absolute;width:var(--ag-color-picker-thumb-size)}:where(.ag-spectrum-alpha) .ag-spectrum-slider{background:linear-gradient(to bottom,var(--ag-internal-spectrum-alpha-color),var(--ag-internal-spectrum-alpha-color)) var(--ag-background-color)}.ag-recent-colors{display:flex;gap:6px;margin:10px var(--ag-spacing) 2px}.ag-recent-color{border:solid var(--ag-border-width) var(--ag-border-color);cursor:pointer}.ag-angle-select[disabled]{opacity:.5;pointer-events:none}:where(.ag-ltr) .ag-angle-select-field,:where(.ag-ltr) .ag-slider-field{margin-right:calc(var(--ag-spacing)*2)}:where(.ag-rtl) .ag-angle-select-field,:where(.ag-rtl) .ag-slider-field{margin-left:calc(var(--ag-spacing)*2)}.ag-color-dialog{border-radius:5px}:where(.ag-color-picker){.ag-picker-field-wrapper{padding-left:var(--ag-spacing);padding-right:var(--ag-spacing)}.ag-picker-field-display{align-items:center;display:flex;flex-direction:row;min-height:var(--ag-list-item-height)}}:where(.ag-ltr) .ag-color-picker-color,:where(.ag-ltr) .ag-color-picker-value{margin-right:var(--ag-spacing)}:where(.ag-rtl) .ag-color-picker-color,:where(.ag-rtl) .ag-color-picker-value{margin-left:var(--ag-spacing)}.ag-spectrum-tools{padding:10px 0 0}.ag-spectrum-alpha-background,.ag-spectrum-hue-background{border-radius:var(--ag-color-picker-track-border-radius)}.ag-color-input-color,.ag-color-picker-color,.ag-recent-color{border-radius:var(--ag-color-picker-color-border-radius)}.ag-spectrum-sat{background-image:linear-gradient(90deg,#fff,hsla(20,42%,65%,0))}.ag-recent-color,.ag-spectrum-color,.ag-spectrum-slider{&:where(:not(:disabled,[readonly])):focus-visible{box-shadow:var(--ag-focus-shadow)}}.ag-color-input-color,.ag-color-picker-color{border:solid var(--ag-border-width) var(--ag-border-color);height:var(--ag-icon-size);width:var(--ag-icon-size)}:where(.ag-ltr) .ag-color-input .ag-input-field-input{padding-left:calc(var(--ag-icon-size) + var(--ag-spacing)*2)}:where(.ag-rtl) .ag-color-input .ag-input-field-input{padding-right:calc(var(--ag-icon-size) + var(--ag-spacing)*2)}:where(.ag-color-input) .ag-color-input-color{position:absolute}:where(.ag-ltr) :where(.ag-color-input) .ag-color-input-color{margin-left:var(--ag-spacing)}:where(.ag-rtl) :where(.ag-color-input) .ag-color-input-color{margin-right:var(--ag-spacing)}.ag-range-field{align-items:center;display:flex;:where(.ag-input-wrapper){height:100%}}.ag-range-field-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;height:100%;overflow:visible;padding:0;width:100%;&:disabled{opacity:.5}}.ag-range-field-input{&::-webkit-slider-runnable-track{background-color:var(--ag-border-color);border-radius:1.5px;height:3px;margin:0;padding:0;width:100%}&::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:var(--ag-background-color);border:solid var(--ag-border-width) var(--ag-border-color);border-radius:100%;height:var(--ag-icon-size);margin:0;padding:0;transform:translateY(calc(var(--ag-icon-size)*-.5 + 1.5px));width:var(--ag-icon-size)}&:focus::-webkit-slider-thumb{border-color:var(--ag-accent-color);box-shadow:var(--ag-focus-shadow)}&:active::-webkit-slider-runnable-track{background-color:var(--ag-accent-color)}}.ag-range-field-input{&::-moz-range-track{background-color:var(--ag-border-color);border-radius:1.5px;height:3px;margin:0;padding:0;width:100%}&::-moz-ag-range-thumb{-moz-appearance:none;appearance:none;background-color:var(--ag-background-color);border:solid var(--ag-border-width) var(--ag-border-color);border-radius:100%;height:var(--ag-icon-size);margin:0;padding:0;transform:translateY(calc(var(--ag-icon-size)*-.5 + 1.5px));width:var(--ag-icon-size)}&:focus::-moz-ag-range-thumb{border-color:var(--ag-accent-color);box-shadow:var(--ag-focus-shadow)}&:active::-moz-ag-range-track{background-color:var(--ag-accent-color)}}",O9=28,u9=6;function JJ(G){return G?.match(/\d+\.\d+\.\d+/)}function Jn({gridMajorVersion:G,chartsMajorVersion:D}){let z=parseInt(G,10),B=parseInt(D,10),Q=z-O9,J=B-u9,U=Q>=0;return Q===J&&U}function Un(G){if(!G||!JJ(G))return;let[D,z]=G.split(".")||[],B=`${D}.${z}.x`,J=parseInt(D,10)-O9+u9;if(J<0)return;let Z=`${J}.${z}.x`;return{gridMajorMinor:B,chartsMajorMinor:Z}}function ZB({type:G,gridVersion:D,chartsVersion:z}){if(!D)return"AG Grid: AG Grid version is incompatible. Please see https://www.ag-grid.com/javascript-data-grid/modules/ for more information.";let Q=Un(D);if(!Q)return"AG Grid: AG Grid version is incompatible. Please see https://www.ag-grid.com/javascript-data-grid/modules/ for more information.";let{gridMajorMinor:J,chartsMajorMinor:U}=Q;if(G==="incompatible")return`AG Grid version ${D} and AG Charts version ${z} is not supported. AG Grid version ${J} should be used with AG Chart ${U}. Please see https://www.ag-grid.com/javascript-data-grid/modules/ for more information.`;else if(G==="invalidCharts")return`AG Grid version ${J} should be used with AG Chart ${U} not ${z}. Please see https://www.ag-grid.com/javascript-data-grid/modules/ for more information.`;return"AG Grid: AG Grid version is incompatible. Please see https://www.ag-grid.com/javascript-data-grid/modules/ for more information."}function Zn({gridVersion:G,chartsVersion:D}){if(!JJ(D))return{isValid:!1,message:ZB({type:"invalidCharts",gridVersion:G,chartsVersion:D})};if(!JJ(G))return{isValid:!1,message:ZB({type:"invalidGrid",gridVersion:G,chartsVersion:D})};let[z,B]=G.split(".")||[],[Q,J,U]=D.split(".")||[],Z=Jn({gridMajorVersion:z,chartsMajorVersion:Q});if(Z&&B===J||U.includes("beta"))return{isValid:!0};else if(!Z||B!==J)return{isValid:!1,message:ZB({type:"incompatible",gridVersion:G,chartsVersion:D})};return{isValid:!1,message:ZB({type:"invalid",gridVersion:G,chartsVersion:D})}}var $n={linked:"linked",unlinked:"unlinked",chartsMenu:"menu-alt",chartsDownload:"save",chartsMenuEdit:"chart",chartsMenuAdvancedSettings:"settings",chartsMenuAdd:"plus",chartsColorPicker:"small-down",chartsThemePrevious:"previous",chartsThemeNext:"next"},Ln={getChartModels:mi,getChartRef:ti,getChartImageDataURL:si,downloadChart:oi,openChartToolPanel:ri,closeChartToolPanel:ai,createRangeChart:ei,createPivotChart:Gn,createCrossFilterChart:Dn,updateChart:zn,restoreChart:Bn},UJ=[Xz,i,gP,PP,TB],L6="IntegratedCharts",Sn={moduleName:"GridCharts",version:j,dependsOn:UJ,validate:()=>{return{isValid:!1,message:`AG Grid: As of v33, the "GridChartsModule" has been deprecated. Please use "IntegratedChartsModule.with(...)" instead. ${l8(257)}`}}},j9={moduleName:L6,version:j,dependsOn:UJ,validate:()=>{return{isValid:!1,message:l8(257)}},with:(G)=>{if(G.setup(),G.setGridContext?.(!0),G.isEnterprise&&G.setLicenseKey){let D={setLicenseKey:G.setLicenseKey};az.setChartsLicenseManager(D)}return{moduleName:L6,version:j,icons:$n,apiFunctions:Ln,dependsOn:UJ,css:[Qn],validate:()=>{return Zn({gridVersion:j,chartsVersion:G.VERSION})},beans:[yP.bind(null,G),pi,vT,FT,wT,CT,hg,LT]}}},S6=[Xn,nB,yB,cB,z8,B8,lB,W0,FJ,Xz,I7,bJ,VJ,o7,r7,L8,S8,g8,R7,iB,l6,jD,xB,a7,pB,$8,x8,c8,d8,o6],X6="AllEnterprise",Yn={with:(G)=>({moduleName:X6,version:j,dependsOn:[...S6,j9.with(G),T8.with(G)]}),moduleName:X6,version:j,dependsOn:S6};var{h:Wn,watch:eJ,onUnmount:qn}=window;Hn.registerModules([_n,kn,wn,Kn,fn,Nn,Fn,iB,Xz,pB,lB,jD,yB,W0,xB,cB,nB]);var In=(G)=>{let{data:D,options:z,api:B,on:Q,class:J,style:U="height: 100%; width: 100%",dark:Z}=G,S=null,X=null,Y=()=>Z!==void 0?typeof Z==="function"?Z():Z:document.documentElement.getAttribute("data-theme")==="dark"||window.matchMedia("(prefers-color-scheme: dark)").matches,W=()=>Y()?"ag-theme-balham-dark":"ag-theme-balham";return Wn("div",{class:J,style:U,ref:(H)=>{if(X)X(),X=null;if(S&&!S.isDestroyed()){if(S.destroy(),B)B.current=null;S=null}if(!H)return;let _=typeof D==="function"?D():D,k=typeof z==="function"?z():z,w=["onFilterChanged","onModelUpdated","onGridSizeChanged","onFirstDataRendered","onRowValueChanged","onSelectionChanged","onCellClicked","onCellDoubleClicked","onCellValueChanged","onRowClicked","onSortChanged","onContextMenu","onColumnResized","onColumnMoved","onRowDataUpdated","onCellEditingStarted","onCellEditingStopped","onPaginationChanged","onBodyScroll"],K={};w.forEach((I)=>{if(Q?.[I])K[I]=(V)=>Q[I](V)});let f={...k,theme:W(),rowData:_||[],onGridReady:(I)=>{if(S=I.api,B)B.current=S;if(Q?.onGridReady)Q.onGridReady(I);if(k?.autoSizeColumns)I.api.autoSizeAllColumns()},...K};S=En(H,f);let N=eJ(()=>{if(!S||S.isDestroyed())return;let I=typeof D==="function"?D():D;if(Array.isArray(I)){let V=S.getGridOption("rowData");if(I!==V)S.setGridOption("rowData",I)}}),F=eJ(()=>{if(!S||S.isDestroyed())return;Y();let I=W();if(I!==S.getGridOption("theme"))S.setGridOption("theme",I)}),E=eJ(()=>{if(!S||S.isDestroyed()||!z)return;let I=typeof z==="function"?z():z;if(I)Object.entries(I).forEach(([V,A])=>{try{S.setGridOption(V,A)}catch(R){}})});X=()=>{if(N(),F(),E(),S&&!S.isDestroyed()){if(S.destroy(),B)B.current=null;S=null}},qn(()=>{if(X)X(),X=null})}})};if(typeof window<"u")window.Grid=In;export{WzG as themeQuartz,qzG as iconSetQuartzLight,En as createGrid,Hn as ModuleRegistry,In as Grid};