{"version":3,"sources":["webpack:///./node_modules/ag-grid-community/dist/lib/gridOptionsWrapper.js","webpack:///./node_modules/ag-grid-community/dist/lib/gridPanel/navigationService.js","webpack:///./node_modules/ag-grid-community/dist/lib/gridPanel/scrollVisibleService.js","webpack:///./node_modules/ag-grid-community/dist/lib/gridPanel/rowDragFeature.js","webpack:///./node_modules/ag-grid-community/dist/lib/gridPanel/gridPanel.js","webpack:///./node_modules/ag-grid-community/dist/lib/gridPanel/mouseEventService.js"],"names":["__decorate","this","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","k","v","metadata","__param","paramIndex","decorator","exports","value","utils_1","eventService_1","constants_1","componentUtil_1","gridApi_1","context_1","columnApi_1","columnController_1","environment_1","propertyKeys_1","colDefUtil_1","eventKeys_1","autoHeightCalculator_1","sideBar_1","DEFAULT_ROW_HEIGHT","DEFAULT_DETAIL_ROW_HEIGHT","DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE","DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE","DEFAULT_KEEP_DETAIL_ROW_COUNT","isTrue","zeroOrGreater","defaultValue","oneOrGreater","GridOptionsWrapper","propertyEventService","EventService","domDataKey","Math","random","toString","layoutElements","GridOptionsWrapper_1","prototype","agWire","gridApi","columnApi","gridOptions","api","checkForDeprecated","checkForViolations","destroy","init","suppressPropertyNamesCheck","checkGridOptionsProperties","checkColumnDefProperties","async","useAsyncEvents","eventService","addGlobalListener","globalEventHandler","bind","isGroupSelectsChildren","isSuppressParentsInRowNodes","console","warn","isRowSelectionMulti","isRowModelServerSide","isGroupRemoveSingleChildren","isGroupHideOpenParents","addEventListener","PROP_DOM_LAYOUT","updateLayoutClasses","_this","columnDefs","forEach","colDef","userProperties","getOwnPropertyNames","validProperties","ColDefUtil","ALL_PROPERTIES","concat","FRAMEWORK_PROPERTIES","checkProperties","PropertyKeys","keys","Events","it","push","ComponentUtil","getCallbackForEvent","validPropertiesAndExceptions","containerName","docsUrl","invalidProperties","_","fuzzyCheckStrings","invalidPropertyKeys","invalidPropertyKey","fuzzySuggestions","slice","join","getDomData","element","domData","setDomData","missing","isEnterprise","enterprise","isRowSelection","rowSelection","isRowDeselection","rowDeselection","isRowMultiSelectWithClick","rowMultiSelectWithClick","getContext","context","isPivotMode","pivotMode","isPivotTotals","pivotTotals","getPivotColumnGroupTotals","pivotColumnGroupTotals","getPivotRowTotals","pivotRowTotals","isRowModelInfinite","rowModelType","Constants","ROW_MODEL_TYPE_INFINITE","isRowModelViewport","ROW_MODEL_TYPE_VIEWPORT","ROW_MODEL_TYPE_SERVER_SIDE","isRowModelDefault","ROW_MODEL_TYPE_CLIENT_SIDE","DEPRECATED_ROW_MODEL_TYPE_NORMAL","isFullRowEdit","editType","isSuppressFocusAfterRefresh","suppressFocusAfterRefresh","isSuppressBrowserResizeObserver","suppressBrowserResizeObserver","isSuppressMaintainUnsortedOrder","suppressMaintainUnsortedOrder","isShowToolPanel","sideBar","Array","isArray","getSideBar","toolPanels","isSuppressTouch","suppressTouch","isSuppressRowTransform","suppressRowTransform","isSuppressSetColumnStateEvents","suppressSetColumnStateEvents","suppressAsyncEvents","isEnableCellChangeFlash","enableCellChangeFlash","result","groupSelectsChildren","isTreeData","isSuppressRowHoverHighlight","suppressRowHoverHighlight","isGroupSelectsFiltered","groupSelectsFiltered","groupHideOpenParents","isGroupMultiAutoColumn","groupMultiAutoColumn","groupRemoveSingleChildren","isGroupRemoveLowestSingleChildren","groupRemoveLowestSingleChildren","isGroupIncludeFooter","groupIncludeFooter","isGroupIncludeTotalFooter","groupIncludeTotalFooter","isGroupSuppressBlankHeader","groupSuppressBlankHeader","isSuppressRowClickSelection","suppressRowClickSelection","isSuppressCellSelection","suppressCellSelection","isSuppressMultiSort","suppressMultiSort","isMultiSortKeyCtrl","multiSortKey","isGroupSuppressAutoColumn","groupSuppressAutoColumn","isSuppressDragLeaveHidesColumns","suppressDragLeaveHidesColumns","isSuppressScrollOnNewData","suppressScrollOnNewData","isRowDragManaged","rowDragManaged","isSuppressRowDrag","suppressRowDrag","getDomLayout","domLayout","DOM_LAYOUT_PRINT","DOM_LAYOUT_AUTO_HEIGHT","DOM_LAYOUT_NORMAL","undefined","doOnce","isSuppressHorizontalScroll","suppressHorizontalScroll","isSuppressMaxRenderedRowRestriction","suppressMaxRenderedRowRestriction","isExcludeChildrenWhenTreeDataFiltering","excludeChildrenWhenTreeDataFiltering","isAlwaysShowVerticalScroll","alwaysShowVerticalScroll","isSuppressLoadingOverlay","suppressLoadingOverlay","isSuppressNoRowsOverlay","suppressNoRowsOverlay","isSuppressFieldDotNotation","suppressFieldDotNotation","getPinnedTopRowData","pinnedTopRowData","getPinnedBottomRowData","pinnedBottomRowData","isFunctionsPassive","functionsPassive","isSuppressTabbing","suppressTabbing","isSuppressChangeDetection","suppressChangeDetection","isSuppressAnimationFrame","suppressAnimationFrame","getQuickFilterText","quickFilterText","isCacheQuickFilter","cacheQuickFilter","isUnSortIcon","unSortIcon","isSuppressMenuHide","suppressMenuHide","isEnterMovesDownAfterEdit","enterMovesDownAfterEdit","isEnterMovesDown","enterMovesDown","getRowStyle","rowStyle","getRowClass","rowClass","getRowStyleFunc","getRowClassFunc","rowClassRules","getCreateChartContainerFunc","createChartContainer","getPopupParent","popupParent","getBlockLoadDebounceMillis","blockLoadDebounceMillis","getPostProcessPopupFunc","postProcessPopup","getDoesDataFlowerFunc","doesDataFlower","getPaginationNumberFormatterFunc","paginationNumberFormatter","getChildCountFunc","getChildCount","getDefaultGroupSortComparator","defaultGroupSortComparator","getIsFullWidthCellFunc","isFullWidthCell","getFullWidthCellRendererParams","fullWidthCellRendererParams","isEmbedFullWidthRows","embedFullWidthRows","deprecatedEmbedFullWidthRows","getSuppressKeyboardEventFunc","suppressKeyboardEvent","getBusinessKeyForNodeFunc","getBusinessKeyForNode","getApi","getColumnApi","isDeltaRowDataMode","deltaRowDataMode","isDeltaColumnMode","deltaColumnMode","isEnsureDomOrder","ensureDomOrder","isEnableCharts","isModuleRegistered","getColResizeDefault","colResizeDefault","isSingleClickEdit","singleClickEdit","isSuppressClickEdit","suppressClickEdit","isStopEditingWhenGridLosesFocus","stopEditingWhenGridLosesFocus","getGroupDefaultExpanded","groupDefaultExpanded","getMaxConcurrentDatasourceRequests","maxConcurrentDatasourceRequests","getMaxBlocksInCache","maxBlocksInCache","getCacheOverflowSize","cacheOverflowSize","getPaginationPageSize","paginationPageSize","isPaginateChildRows","isGroupSuppressRow","paginateChildRows","getCacheBlockSize","cacheBlockSize","getInfiniteInitialRowCount","infiniteInitialRowCount","isPurgeClosedRowNodes","purgeClosedRowNodes","isSuppressPaginationPanel","suppressPaginationPanel","getRowData","rowData","isGroupUseEntireRow","groupUseEntireRow","isEnableRtl","enableRtl","getAutoGroupColumnDef","autoGroupColumnDef","groupSuppressRow","getRowGroupPanelShow","rowGroupPanelShow","getPivotPanelShow","pivotPanelShow","isAngularCompileRows","angularCompileRows","isAngularCompileFilters","angularCompileFilters","isAngularCompileHeaders","angularCompileHeaders","isDebug","debug","getColumnDefs","getColumnTypes","columnTypes","getDatasource","datasource","getViewportDatasource","viewportDatasource","getServerSideDatasource","serverSideDatasource","isAccentedSort","accentedSort","isEnableBrowserTooltips","enableBrowserTooltips","isEnableCellExpressions","enableCellExpressions","isEnableGroupEdit","enableGroupEdit","isSuppressMiddleClickScrolls","suppressMiddleClickScrolls","isPreventDefaultOnContextMenu","preventDefaultOnContextMenu","isSuppressPreventDefaultOnMouseWheel","suppressPreventDefaultOnMouseWheel","isSuppressColumnVirtualisation","suppressColumnVirtualisation","isSuppressContextMenu","suppressContextMenu","isAllowContextMenuWithControlKey","allowContextMenuWithControlKey","isSuppressCopyRowsToClipboard","suppressCopyRowsToClipboard","isCopyHeadersToClipboard","copyHeadersToClipboard","isSuppressClipboardPaste","suppressClipboardPaste","isPagination","pagination","isSuppressEnterpriseResetOnNewColumns","suppressEnterpriseResetOnNewColumns","getProcessDataFromClipboardFunc","processDataFromClipboard","getBatchUpdateWaitMillis","exists","batchUpdateWaitMillis","BATCH_WAIT_MILLIS","isSuppressMovableColumns","suppressMovableColumns","isAnimateRows","animateRows","isSuppressColumnMoveAnimation","suppressColumnMoveAnimation","isSuppressAggFuncInHeader","suppressAggFuncInHeader","isSuppressAggAtRootLevel","suppressAggAtRootLevel","isEnableRangeSelection","enableRangeSelection","isEnableRangeHandle","enableRangeHandle","isEnableFillHandle","enableFillHandle","isSuppressMultiRangeSelection","suppressMultiRangeSelection","isPaginationAutoPageSize","paginationAutoPageSize","isRememberGroupStateWhenNewData","rememberGroupStateWhenNewData","getIcons","icons","getAggFuncs","aggFuncs","getSortingOrder","sortingOrder","getAlignedGrids","alignedGrids","isMasterDetail","usingMasterDetail","masterDetail","isKeepDetailRows","keepDetailRows","getKeepDetailRowsCount","keepDetailRowsCount","getIsRowMasterFunc","isRowMaster","getIsRowSelectableFunc","isRowSelectable","getGroupRowRendererParams","groupRowRendererParams","getOverlayLoadingTemplate","overlayLoadingTemplate","getOverlayNoRowsTemplate","overlayNoRowsTemplate","isSuppressAutoSize","suppressAutoSize","isEnableCellTextSelection","enableCellTextSelection","suppressParentsInRowNodes","isFunctionsReadOnly","functionsReadOnly","isFloatingFilter","floatingFilter","isEnableCellTextSelect","isEnableOldSetFilterModel","enableOldSetFilterModel","getDefaultColDef","defaultColDef","getDefaultColGroupDef","defaultColGroupDef","getDefaultExportParams","defaultExportParams","isSuppressCsvExport","suppressCsvExport","isAllowShowChangeAfterFilter","allowShowChangeAfterFilter","isSuppressExcelExport","suppressExcelExport","isSuppressMakeColumnVisibleAfterUnGroup","suppressMakeColumnVisibleAfterUnGroup","getNodeChildDetailsFunc","getNodeChildDetails","getDataPathFunc","getDataPath","getIsServerSideGroupFunc","isServerSideGroup","getServerSideGroupKeyFunc","getServerSideGroupKey","getGroupRowAggNodesFunc","groupRowAggNodes","getContextMenuItemsFunc","getContextMenuItems","getMainMenuItemsFunc","getMainMenuItems","getChartToolbarItemsFunc","getChartToolbarItems","getRowNodeIdFunc","getRowNodeId","getNavigateToNextCellFunc","navigateToNextCell","getTabToNextCellFunc","tabToNextCell","usingTreeData","treeData","isValueCache","valueCache","isValueCacheNeverExpires","valueCacheNeverExpires","isDeltaSort","deltaSort","isAggregateOnlyChangedColumns","aggregateOnlyChangedColumns","getProcessSecondaryColDefFunc","processSecondaryColDef","getProcessSecondaryColGroupDefFunc","processSecondaryColGroupDef","getSendToClipboardFunc","sendToClipboard","getProcessRowPostCreateFunc","processRowPostCreate","getProcessCellForClipboardFunc","processCellForClipboard","getProcessHeaderForClipboardFunc","processHeaderForClipboard","getProcessCellFromClipboardFunc","processCellFromClipboard","getViewportRowModelPageSize","viewportRowModelPageSize","getViewportRowModelBufferSize","viewportRowModelBufferSize","isServerSideSortingAlwaysResets","serverSideSortingAlwaysResets","getPostSortFunc","postSort","getProcessChartOptionsFunc","processChartOptions","getClipboardDeliminator","clipboardDeliminator","setProperty","gridOptionsNoType","previousValue","event_1","type","currentValue","dispatchEvent","addLayoutElement","domLayoutAutoHeight","domLayoutPrint","domLayoutNormal","e","addOrRemoveCssClass","listener","checkEventDeprecation","eventName","removeEventListener","getAutoSizePadding","autoSizePadding","getHeaderHeight","headerHeight","specialForNewMaterial","getFloatingFiltersHeight","floatingFiltersHeight","getGroupHeaderHeight","groupHeaderHeight","getPivotHeaderHeight","pivotHeaderHeight","getPivotGroupHeaderHeight","pivotGroupHeaderHeight","isExternalFilterPresent","doesExternalFilterPass","node","getDocument","document","getMinColWidth","minColWidth","MIN_COL_WIDTH","getMaxColWidth","maxColWidth","getColWidth","colWidth","getRowBuffer","rowBuffer","ROW_BUFFER_SIZE","getRowBufferInPixels","rowsToBuffer","defaultRowHeight","getRowHeightAsNumber","getScrollbarWidth","scrollWidth","useGridOptions","scrollbarWidth","options","suppressUnSort","suppressDescSort","groupAggFields","groupHidePivotColumns","groupKeys","onRowDeselected","rowDeselected","rowsAlreadyGrouped","groupAggFunction","checkboxSelection","paginationInitialRowCount","infinitePageSize","infiniteBlockSize","maxPagesInCache","paginationOverflowSize","suppressMenuFilterPanel","suppressMenuMainPanel","suppressMenuColumnPanel","suppressUseColIdForGroups","groupColumnDef","slaveGrids","floatingTopRowData","floatingBottomRowData","paginationStartPage","getHeaderCellTemplate","headerCellTemplate","headerCellRenderer","layoutInterval","gridAutoHeight","showToolPanel","oldToolPanelProperties","toolPanelSuppressRowGroups","toolPanelSuppressValues","toolPanelSuppressPivots","toolPanelSuppressPivotMode","toolPanelSuppressColumnFilter","toolPanelSuppressColumnSelectAll","toolPanelSuppressSideButtons","toolPanelSuppressColumnExpandAll","contractColumnSelection","toolPanelColumnsCompProps","translation","SideBarDefParser","parse","sideBarDef","columnsDef","filter","id","mergeDeep","componentParams","enableStatusBar","statusBar","components","component","alwaysShowStatusBar","enableServerSideSorting","enableSorting","sortable","enableFilter","enableServerSideFilter","enableColResize","resizable","treeDataViolations","getLocaleTextFunc","localeTextFunc","that","localeText","event","callbackMethodName","rowHeight","getDefaultRowHeight","isNumeric","getRowHeightForNode","rowNode","allowEstimate","getRowHeight","height","estimated","params","data","detail","detailRowHeight","minRowHeight","min","columnController","isAutoRowHeightActive","autoHeight","autoHeightCalculator","getPreferredHeightForRow","max","isDynamicRowHeight","getVirtualItemHeight","isNaN","sassVariableName","theme","environment","getTheme","indexOf","getSassVariable","PROP_HEADER_HEIGHT","PROP_GROUP_REMOVE_SINGLE_CHILDREN","PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN","PROP_PIVOT_HEADER_HEIGHT","PROP_SUPPRESS_CLIPBOARD_PASTE","PROP_GROUP_HEADER_HEIGHT","PROP_PIVOT_GROUP_HEADER_HEIGHT","PROP_FLOATING_FILTERS_HEIGHT","PROP_SUPPRESS_ROW_DRAG","PROP_POPUP_PARENT","Autowired","ColumnController","Boolean","GridApi","ColumnApi","Environment","AutoHeightCalculator","Context","Qualifier","Function","PreDestroy","PostConstruct","Bean","mouseEventService_1","paginationProxy_1","focusedCellController_1","animationFrameService_1","gridOptionsWrapper_1","NavigationService","timeLastPageEventProcessed","gridOptionsWrapper","registerGridComp","gridPanel","handlePageScrollingKey","which","keyCode","alt","altKey","ctrl","ctrlKey","currentCell","mouseEventService","getCellPositionForEvent","processed","KEY_PAGE_HOME","KEY_PAGE_END","onHomeOrEndKey","KEY_LEFT","KEY_RIGHT","onCtrlLeftOrRight","KEY_UP","KEY_DOWN","onCtrlUpOrDown","KEY_PAGE_DOWN","onPageDown","KEY_PAGE_UP","onPageUp","preventDefault","isTimeSinceLastPageEventToRecent","now","Date","getTime","diff","setTimeLastPageEventProcessed","gridCell","scrollPosition","getVScrollPosition","pixelsInOnePage","bottom","top","isHorizontalScrollShowing","pagingPixelOffset","paginationProxy","getPixelOffset","currentPageBottomPixel","currentPageBottomRow","getRowIndexAtPixel","scrollIndex","currentCellPixel","getRow","rowIndex","rowTop","nextCellPixel","focusIndex","pageLastRow","getPageLastRow","navigateTo","column","currentPageTopPixel","currentPageTopRow","currentRowNode","firstRow","getPageFirstRow","scrollType","scrollColumn","focusColumn","ensureColumnVisible","ensureIndexVisible","animationFrameService","flushAllFrames","focusedCellController","setFocusedCell","rangeController","cellPosition","rowPinned","setRangeToCell","upKey","rowIndexToScrollTo","leftKey","allColumns","getAllDisplayedColumns","columnToSelect","last","homeKey","MouseEventService","PaginationProxy","FocusedCellController","AnimationFrameService","Optional","events_1","ScrollVisibleService","setScrollsVisible","atLeastOneDifferent","horizontalScrollShowing","verticalScrollShowing","EVENT_SCROLL_VISIBILITY_CHANGED","isVerticalScrollShowing","dragAndDropService_1","RowDragFeature","eContainer","postConstruct","clientSideRowModel","rowModel","getContainer","isInterestedIn","DragSourceType","RowDrag","getIconName","DragAndDropService","ICON_MOVE","onDragEnter","draggingEvent","EVENT_ROW_DRAG_ENTER","dragAndDropService","setGhostIcon","dragItem","setDragging","onEnterOrDragging","onDragging","EVENT_ROW_DRAG_MOVE","lastDraggingEvent","pixel","normaliseForScroll","y","managedDrag","doManagedDrag","checkCenterForScrolling","rowWasMoved","ensureRowAtPixel","clearFocusedCell","removeAllCellRanges","gridPanelHasScrolls","pixelRange","needToMoveUp","needToMoveDown","ensureIntervalStarted","ensureIntervalCleared","movingIntervalId","intervalCount","window","setInterval","moveInterval","clearInterval","pixelsToMove","pixelsMoved","scrollVertically","vDirectionString","yNormalised","overIndex","overNode","mouseIsPastLastRow","getCurrentPageHeight","vDirection","VDirection","Down","Up","onDragLeave","EVENT_ROW_DRAG_LEAVE","stopDragging","onDragStop","EVENT_ROW_DRAG_END","__extends","extendStatics","b","setPrototypeOf","__proto__","p","hasOwnProperty","__","constructor","create","rowRenderer_1","dragService_1","scrollVisibleService_1","rowContainerComponent_1","paginationAutoPageSizeService_1","popupEditorWrapper_1","alignedGridsService_1","pinnedRowModel_1","rowComp_1","navigationService_1","valueService_1","touchListener_1","rowDragFeature_1","maxDivHeightScaler_1","overlayWrapperComponent_1","component_1","columnAnimationService_1","autoWidthCalculator_1","beans_1","componentAnnotations_1","headerRootComp_1","resizeObserverService_1","GRID_PANEL_NORMAL_TEMPLATE","GridPanel","_super","call","scrollLeft","scrollTop","nextScrollTop","resetLastHorizontalScrollElementDebounce","debounce","resetLastHorizontalScrollElement","eBodyViewport","offsetHeight","getHScrollPosition","left","eCenterViewport","right","offsetWidth","onRowDataChanged","showOrHideOverlay","isEmpty","method","onNewColumnsLoaded","isReady","hideOverlay","printLayout","getGui","suppressScrollOnFloatingRow","setupRowAnimationCssClass","buildRowContainerComponents","addEventListeners","addDragListeners","addScrollListener","showLoadingOverlay","setCellTextSelection","setPinnedContainerSize","setHeaderAndFloatingHeights","disableBrowserDragging","addMouseListeners","addKeyboardEvents","addBodyViewportListener","addStopEditingWhenGridLosesFocus","mockContextMenuForIPad","addRowDragListener","$scope","addAngularApplyCheck","onDisplayedColumnsWidthChanged","alignedGridsService","headerRootComp","navigationService","heightScaler","columnAnimationService","autoWidthCalculator","paginationAutoPageSizeService","beans","rowRenderer","viewport","unsubscribeFromResize","resizeObserverService","observeResize","onCenterViewportResized","addDestroyFunc","onDomLayoutChanged","newPrintLayout","setWidthsOfContainers","isVisible","checkViewportAndScrolls","bodyHeight","setColumnMovingCss","moving","selectable","eTop","eBottom","ct","rowDragFeature","wireBean","addDropTarget","focusOutListener","elementWithFocus","relatedTarget","clickInsideGrid","pointer","isPopup","PopupEditorWrapper","DOM_KEY_POPUP_EDITOR_WRAPPER","isBody","parentNode","stopEditing","addDestroyableEventListener","applyTriggered","setTimeout","$apply","EVENT_DISPLAYED_COLUMNS_CHANGED","EVENT_VIRTUAL_COLUMNS_CHANGED","addGuiEventListener","HTMLImageElement","onDisplayedColumnsChanged","EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED","EVENT_PINNED_ROW_DATA_CHANGED","EVENT_ROW_DATA_CHANGED","EVENT_ROW_DATA_UPDATED","EVENT_NEW_COLUMNS_LOADED","containers","eLeftContainer","eRightContainer","eCenterContainer","container","eElement","onDragStart","dragService","addDragSource","removeDragSource","eventNames","processMouseEvent","eAllCellContainers","processKeyboardEvent","mouseEvent","getTarget","onContextMenu","getBodyClientRect","getBoundingClientRect","getRowForEvent","sourceElement","renderedRow","RowComp","DOM_DATA_KEY_RENDERED_ROW","parentElement","keyboardEvent","cellComp","getCellCompForEvent","getRenderedRow","getRowNode","getColumn","editing","isEditing","gridProcessingAllowed","isUserSuppressingKeyboardEvent","wasScrollKey","onKeyDown","doClipboardOperations","onKeyPress","cellKeyDownEvent","createEvent","EVENT_CELL_KEY_DOWN","cellKeyPressEvent","EVENT_CELL_KEY_PRESS","metaKey","isEventFromThisGrid","KEY_A","onCtrlAndA","KEY_C","onCtrlAndC","KEY_V","onCtrlAndV","KEY_D","onCtrlAndD","scrollToTop","isStopPropagationForAgGrid","rowComp","getRenderedCellForEvent","handleContextMenuMouseEvent","onMouseEvent","isUserAgentIPad","touchListener","TouchListener","longTapListener","touchEvent","EVENT_LONG_TAP","dispatchCellContextMenuEvent","valueService","getValue","contextMenuFactory","eventOrTouch","touches","showMenu","event_2","_a","pinnedRowModel","PINNED_BOTTOM","PINNED_TOP","isRowsToRender","_b","isEmptyPinnedTop","isEmptyPinnedBottom","floatingStart","floatingEnd","rowEnd","getRowCount","allDisplayedColumns","missingOrEmpty","setCellRange","rowStartIndex","rowStartPinned","rowEndIndex","rowEndPinned","columnStart","columnEnd","clipboardService","focusedCell","getFocusedCell","copyToClipboard","pasteFromClipboard","copyRangeDown","index","position","rowCount","goToPageWithIndex","rowGotShiftedDuringOperation","startingRowTop","startingRowHeight","paginationOffset","rowTopPixel","rowBottomPixel","heightOffset","getOffset","vScrollTop","vScrollBottom","viewportHeight","pxTop","getScrollPositionForPixel","pxBottom","pxMiddle","rowBelowViewport","rowAboveViewport","newScrollPosition","redrawAfterScroll","getCenterWidth","clientWidth","updateScrollVisibleService","checkBodyHeight","onHorizontalViewportChanged","updateScrollVisibleServiceImpl","scrollVisibleService","setHorizontalScrollVisible","setVerticalScrollPaddingVisible","visible","scrollSize","scrollContainerSize","addIEPadding","isBrowserIE","style","setFixedHeight","eHorizontalScrollBody","eBodyHorizontalScrollViewport","eBodyHorizontalScrollContainer","show","scroller","overflowY","setFakeHScrollSpacerWidths","updateRowCount","headerCount","getHeaderRowCount","total","setAttribute","getGridColumn","isPinned","getPinned","getColId","isColumnDisplayed","viewportLeftPixel","viewportRightPixel","colLeftPixel","getLeft","colRightPixel","getActualWidth","viewportWidth","getCenterViewportScrollLeft","bodyWidth","getBodyContainerWidth","viewportScrolledPastCol","viewportScrolledBeforeCol","colToSmallForViewport","alignColToLeft","alignColToRight","setCenterViewportScrollLeft","overlayWrapper","showNoRowsOverlay","sizeColumnsToFit","nextTimeout","availableWidth","getCenterContainer","getDropTargetBodyContainers","eTopViewport","eBottomViewport","getDropTargetLeftContainers","eLeftBottom","eLeftTop","getDropTargetRightContainers","eRightBottom","eRightTop","eFullWidthContainer","rowContainerComponents","body","RowContainerComponent","eWrapper","eCenterColsClipper","eViewport","fullWidth","pinnedLeft","pinnedRight","floatingTop","eTopContainer","floatingTopPinnedLeft","floatingTopPinnedRight","floatingTopFullWidth","eTopFullWidthContainer","hideWhenNoChildren","floatingBottom","eBottomContainer","floatingBottomPinnedLeft","floatingBottomPinnedRight","floatingBottomFullWith","eBottomFullWidthContainer","iterateObject","isScaling","EVENT_HEIGHT_SCALE_CHANGED","resetTopScroll","resetBottomScroll","getRowContainers","getFloatingTopBottom","horizontallyScrollHeaderCenterAndFloatingCenter","setCenterWidth","width","pinnedContainerWidths","getPinnedLeftContainerWidth","getPinnedRightContainerWidth","setHeaderContainerWidth","widthPx","setPinnedLeftWidth","oldPinning","pinningLeft","widthOfCols","newPinning","setLeftVisible","setDisplayed","setFixedWidth","setPinnedRightWidth","pinningRight","setRightVisible","rightSpacing","scrollOnRight","eHorizontalRightSpacer","leftSpacing","scrollOnLeft","eHorizontalLeftSpacer","clientHeight","event_3","EVENT_BODY_HEIGHT_CHANGED","totalHeaderHeight","groupHeight","numberOfFloating","headerRowCount","numberOfNonGroups","numberOfGroups","setHeight","floatingTopHeight","getPinnedTopTotalHeight","floatingBottomHeight","getPinnedBottomTotalHeight","floatingTopHeightString","floatingBottomHeightString","minHeight","display","getBodyHeight","setHorizontalScrollPosition","hScrollPosition","doHorizontalScroll","setVerticalScrollPosition","vScrollPosition","scrollHorizontally","pixels","oldScrollPosition","onCenterViewportScroll","onFakeHorizontalScroll","onVerticalScroll","setScrollTop","redrawRowsAfterScroll","schedule","executeFrame","frameNeeded","isControllingScroll","eDiv","lastHorizontalScrollElement","onBodyHorizontalScroll","eSource","floor","getScrollLeft","scrollWentPastBounds","EVENT_BODY_SCROLL","direction","setVirtualViewportPosition","setScrollLeft","offset","abs","setHorizontalScroll","transform","partner","addScrollEventListener","removeScrollEventListener","AlignedGridsService","RowRenderer","PinnedRowModel","ColumnAnimationService","AutoWidthCalculator","PaginationAutoPageSizeService","Beans","DragService","ValueService","MaxDivHeightScaler","ResizeObserverService","RefSelector","HTMLElement","HeaderRootComp","OverlayWrapperComponent","Component","context_2","gridInstanceId","MouseEventService_1","gridInstanceSequence","next","stampDomElementWithGridInstance","eGridDiv","GRID_DOM_KEY","path","getEventPath","instanceId","eventFromThisGrid","getCellPosition","NumberSequence"],"mappings":";;;;;;GAOA,IAAIA,EAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAE5DO,EAAchB,MAAQA,KAAKgB,YAAe,SAAUC,EAAGC,GACvD,GAAuB,kBAAZN,SAAoD,oBAArBA,QAAQO,SAAyB,OAAOP,QAAQO,SAASF,EAAGC,IAEtGE,EAAWpB,MAAQA,KAAKoB,SAAY,SAAUC,EAAYC,GAC1D,OAAO,SAAUpB,EAAQC,GAAOmB,EAAUpB,EAAQC,EAAKkB,KAE3DX,OAAOK,eAAeQ,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIC,EAAU,EAAQ,QAClBC,EAAiB,EAAQ,QACzBC,EAAc,EAAQ,QACtBC,EAAkB,EAAQ,QAC1BC,EAAY,EAAQ,QACpBC,EAAY,EAAQ,QACpBC,EAAc,EAAQ,QACtBC,EAAqB,EAAQ,QAC7BC,EAAgB,EAAQ,QACxBC,EAAiB,EAAQ,QACzBC,EAAe,EAAQ,QACvBC,EAAc,EAAQ,QACtBC,EAAyB,EAAQ,QACjCC,EAAY,EAAQ,QACpBC,EAAqB,GACrBC,EAA4B,IAC5BC,EAAuC,EACvCC,EAAyC,EACzCC,EAAgC,GACpC,SAASC,EAAOpB,GACZ,OAAiB,IAAVA,GAA4B,SAAVA,EAE7B,SAASqB,EAAcrB,EAAOsB,GAC1B,OAAItB,GAAS,EACFA,EAGJsB,EAEX,SAASC,EAAavB,EAAOsB,GACzB,OAAItB,EAAQ,EACDA,EAGJsB,EAEX,IAAIE,EAAoC,WACpC,SAASA,IACLhD,KAAKiD,qBAAuB,IAAIvB,EAAewB,aAC/ClD,KAAKmD,WAAa,QAAUC,KAAKC,SAASC,WAC1CtD,KAAKuD,eAAiB,GA2sC1B,IAAIC,EAsEJ,OA/wCAA,EAAuBR,EACvBA,EAAmBS,UAAUC,OAAS,SAAUC,EAASC,GACrD5D,KAAK6D,YAAYC,IAAMH,EACvB3D,KAAK6D,YAAYD,UAAYA,EAC7B5D,KAAK+D,qBACL/D,KAAKgE,sBAEThB,EAAmBS,UAAUQ,QAAU,WAInCjE,KAAK6D,YAAYC,IAAM,KACvB9D,KAAK6D,YAAYD,UAAY,MAEjCZ,EAAmBS,UAAUS,KAAO,YACsB,IAAhDlE,KAAK6D,YAAYM,6BACnBnE,KAAKoE,6BACLpE,KAAKqE,4BAET,IAAIC,EAAQtE,KAAKuE,iBACjBvE,KAAKwE,aAAaC,kBAAkBzE,KAAK0E,mBAAmBC,KAAK3E,MAAOsE,GACpEtE,KAAK4E,0BAA4B5E,KAAK6E,+BACtCC,QAAQC,KAAK,sIAEb/E,KAAK4E,2BACA5E,KAAKgF,uBACNF,QAAQC,KAAK,mFAEb/E,KAAKiF,wBACLH,QAAQC,KAAK,qNAKjB/E,KAAKkF,+BAAiClF,KAAKmF,0BAC3CL,QAAQC,KAAK,sNAEjB/E,KAAKoF,iBAAiB5B,EAAqB6B,gBAAiBrF,KAAKsF,oBAAoBX,KAAK3E,QAE9FgD,EAAmBS,UAAUY,yBAA2B,WACpD,IAAIkB,EAAQvF,KACuB,MAA/BA,KAAK6D,YAAY2B,YAGrBxF,KAAK6D,YAAY2B,WAAWC,SAAQ,SAAUC,GAC1C,IAAIC,EAAiBjF,OAAOkF,oBAAoBF,GAC5CG,EAAkB1D,EAAa2D,WAAWC,eAAeC,OAAO7D,EAAa2D,WAAWG,sBAC5FV,EAAMW,gBAAgBP,EAAgBE,EAAiBA,EAAiB,SAAU,kEAG1F7C,EAAmBS,UAAUW,2BAA6B,WACtD,IAAIuB,EAAiBjF,OAAOkF,oBAAoB5F,KAAK6D,aACjDgC,EAAkB3D,EAAeiE,aAAaJ,eAAeC,OAAO9D,EAAeiE,aAAaF,sBACpGvF,OAAO0F,KAAKhE,EAAYiE,QAAQZ,SAAQ,SAAUa,GAAM,OAAOT,EAAgBU,KAAK3E,EAAgB4E,cAAcC,oBAAoBrE,EAAYiE,OAAOC,QACzJ,IAAII,EAA+Bb,EAAgBG,OAAO,MAAO,aACjEhG,KAAKkG,gBAAgBP,EAAgBe,EAA8Bb,EAAiB,cAAe,wDAEvG7C,EAAmBS,UAAUyC,gBAAkB,SAAUP,EAAgBe,EAA8Bb,EAAiBc,EAAeC,GACnI,IAAIC,EAAoBpF,EAAQqF,EAAEC,kBAAkBpB,EAAgBe,EAA8Bb,GAC9FmB,EAAsBtG,OAAO0F,KAAKS,GACtCG,EAAoBvB,SAAQ,SAAUwB,GAClC,IAAIC,EAAmBL,EAAkBI,GACzCnC,QAAQC,KAAK,oBAAsB4B,EAAgB,cAAgBM,EAAqB,gCAAkCC,EAAiBC,MAAM,EAAG,GAAGC,KAAK,SAE5JJ,EAAoBxG,OAAS,GAC7BsE,QAAQC,KAAK,iCAAmC4B,EAAgB,6BAA+BC,IAIvG5D,EAAmBS,UAAU4D,WAAa,SAAUC,EAASnH,GACzD,IAAIoH,EAAUD,EAAQtH,KAAKmD,YAC3B,GAAIoE,EACA,OAAOA,EAAQpH,IAIvB6C,EAAmBS,UAAU+D,WAAa,SAAUF,EAASnH,EAAKqB,GAC9D,IAAI+F,EAAUD,EAAQtH,KAAKmD,YACvB1B,EAAQqF,EAAEW,QAAQF,KAClBA,EAAU,GACVD,EAAQtH,KAAKmD,YAAcoE,GAE/BA,EAAQpH,GAAOqB,GAEnBwB,EAAmBS,UAAUiE,aAAe,WACxC,OAAO1H,KAAK2H,YAEhB3E,EAAmBS,UAAUmE,eAAiB,WAC1C,MAAyC,WAAlC5H,KAAK6D,YAAYgE,cAA+D,aAAlC7H,KAAK6D,YAAYgE,cAE1E7E,EAAmBS,UAAUqE,iBAAmB,WAC5C,OAAOlF,EAAO5C,KAAK6D,YAAYkE,iBAEnC/E,EAAmBS,UAAUuB,oBAAsB,WAC/C,MAAyC,aAAlChF,KAAK6D,YAAYgE,cAE5B7E,EAAmBS,UAAUuE,0BAA4B,WACrD,OAAOpF,EAAO5C,KAAK6D,YAAYoE,0BAEnCjF,EAAmBS,UAAUyE,WAAa,WACtC,OAAOlI,KAAK6D,YAAYsE,SAE5BnF,EAAmBS,UAAU2E,YAAc,WACvC,OAAOxF,EAAO5C,KAAK6D,YAAYwE,YAEnCrF,EAAmBS,UAAU6E,cAAgB,WACzC,OAAO1F,EAAO5C,KAAK6D,YAAY0E,cAEnCvF,EAAmBS,UAAU+E,0BAA4B,WACrD,OAAOxI,KAAK6D,YAAY4E,wBAE5BzF,EAAmBS,UAAUiF,kBAAoB,WAC7C,OAAO1I,KAAK6D,YAAY8E,gBAE5B3F,EAAmBS,UAAUmF,mBAAqB,WAC9C,OAAO5I,KAAK6D,YAAYgF,eAAiBlH,EAAYmH,UAAUC,yBAEnE/F,EAAmBS,UAAUuF,mBAAqB,WAC9C,OAAOhJ,KAAK6D,YAAYgF,eAAiBlH,EAAYmH,UAAUG,yBAEnEjG,EAAmBS,UAAUwB,qBAAuB,WAChD,OAAOjF,KAAK6D,YAAYgF,eAAiBlH,EAAYmH,UAAUI,4BAEnElG,EAAmBS,UAAU0F,kBAAoB,WAC7C,OAAO1H,EAAQqF,EAAEW,QAAQzH,KAAK6D,YAAYgF,eACtC7I,KAAK6D,YAAYgF,eAAiBlH,EAAYmH,UAAUM,4BACxDpJ,KAAK6D,YAAYgF,eAAiBlH,EAAYmH,UAAUO,kCAEhErG,EAAmBS,UAAU6F,cAAgB,WACzC,MAAqC,YAA9BtJ,KAAK6D,YAAY0F,UAE5BvG,EAAmBS,UAAU+F,4BAA8B,WACvD,OAAO5G,EAAO5C,KAAK6D,YAAY4F,4BAEnCzG,EAAmBS,UAAUiG,gCAAkC,WAC3D,OAAO9G,EAAO5C,KAAK6D,YAAY8F,gCAEnC3G,EAAmBS,UAAUmG,gCAAkC,WAC3D,OAAOhH,EAAO5C,KAAK6D,YAAYgG,gCAEnC7G,EAAmBS,UAAUqG,gBAAkB,WAC3C,OAAOlH,EAAO5C,KAAK6D,YAAYkG,SAAWC,MAAMC,QAAQjK,KAAKkK,aAAaC,cAE9EnH,EAAmBS,UAAUyG,WAAa,WACtC,OAAOlK,KAAK6D,YAAYkG,SAE5B/G,EAAmBS,UAAU2G,gBAAkB,WAC3C,OAAOxH,EAAO5C,KAAK6D,YAAYwG,gBAEnCrH,EAAmBS,UAAU6G,uBAAyB,WAClD,OAAO1H,EAAO5C,KAAK6D,YAAY0G,uBAEnCvH,EAAmBS,UAAU+G,+BAAiC,WAC1D,OAAO5H,EAAO5C,KAAK6D,YAAY4G,+BAEnCzH,EAAmBS,UAAUc,eAAiB,WAC1C,OAAQ3B,EAAO5C,KAAK6D,YAAY6G,sBAEpC1H,EAAmBS,UAAUkH,wBAA0B,WACnD,OAAO/H,EAAO5C,KAAK6D,YAAY+G,wBAEnC5H,EAAmBS,UAAUmB,uBAAyB,WAClD,IAAIiG,EAASjI,EAAO5C,KAAK6D,YAAYiH,sBACrC,OAAID,GAAU7K,KAAK+K,cACfjG,QAAQC,KAAK,+DACN,GAEJ8F,GAEX7H,EAAmBS,UAAUuH,4BAA8B,WACvD,OAAOpI,EAAO5C,KAAK6D,YAAYoH,4BAEnCjI,EAAmBS,UAAUyH,uBAAyB,WAClD,OAAOtI,EAAO5C,KAAK6D,YAAYsH,uBAEnCnI,EAAmBS,UAAU0B,uBAAyB,WAClD,OAAOvC,EAAO5C,KAAK6D,YAAYuH,uBAGnCpI,EAAmBS,UAAU4H,uBAAyB,WAClD,OAAOzI,EAAO5C,KAAK6D,YAAYyH,uBAAyB1I,EAAO5C,KAAK6D,YAAYuH,uBAEpFpI,EAAmBS,UAAUyB,4BAA8B,WACvD,OAAOtC,EAAO5C,KAAK6D,YAAY0H,4BAEnCvI,EAAmBS,UAAU+H,kCAAoC,WAC7D,OAAO5I,EAAO5C,KAAK6D,YAAY4H,kCAEnCzI,EAAmBS,UAAUiI,qBAAuB,WAChD,OAAO9I,EAAO5C,KAAK6D,YAAY8H,qBAEnC3I,EAAmBS,UAAUmI,0BAA4B,WACrD,OAAOhJ,EAAO5C,KAAK6D,YAAYgI,0BAEnC7I,EAAmBS,UAAUqI,2BAA6B,WACtD,OAAOlJ,EAAO5C,KAAK6D,YAAYkI,2BAEnC/I,EAAmBS,UAAUuI,4BAA8B,WACvD,OAAOpJ,EAAO5C,KAAK6D,YAAYoI,4BAEnCjJ,EAAmBS,UAAUyI,wBAA0B,WACnD,OAAOtJ,EAAO5C,KAAK6D,YAAYsI,wBAEnCnJ,EAAmBS,UAAU2I,oBAAsB,WAC/C,OAAOxJ,EAAO5C,KAAK6D,YAAYwI,oBAEnCrJ,EAAmBS,UAAU6I,mBAAqB,WAC9C,MAAyC,SAAlCtM,KAAK6D,YAAY0I,cAE5BvJ,EAAmBS,UAAU+I,0BAA4B,WACrD,OAAO5J,EAAO5C,KAAK6D,YAAY4I,0BAEnCzJ,EAAmBS,UAAUiJ,gCAAkC,WAC3D,OAAO9J,EAAO5C,KAAK6D,YAAY8I,gCAEnC3J,EAAmBS,UAAUmJ,0BAA4B,WACrD,OAAOhK,EAAO5C,KAAK6D,YAAYgJ,0BAEnC7J,EAAmBS,UAAUqJ,iBAAmB,WAC5C,OAAOlK,EAAO5C,KAAK6D,YAAYkJ,iBAEnC/J,EAAmBS,UAAUuJ,kBAAoB,WAC7C,OAAOpK,EAAO5C,KAAK6D,YAAYoJ,kBAGnCjK,EAAmBS,UAAUyJ,aAAe,WACxC,IAAI3H,EAAQvF,KACRmN,EAAYnN,KAAK6D,YAAYsJ,UACjC,OAAIA,IAAcxL,EAAYmH,UAAUsE,kBACjCD,IAAcxL,EAAYmH,UAAUuE,wBACpCF,IAAcxL,EAAYmH,UAAUwE,kBAChCH,EAEY,OAAdA,QAAoCI,IAAdJ,EACpBxL,EAAYmH,UAAUwE,mBAG7B7L,EAAQqF,EAAE0G,QAAO,WAAc,OAAO1I,QAAQC,KAAK,YAAcQ,EAAM1B,YAAYsJ,UAAY,kDAAoDxL,EAAYmH,UAAUwE,kBAAoB,KAAO3L,EAAYmH,UAAUuE,uBAAyB,QAAU1L,EAAYmH,UAAUsE,oBAAsB,gCAClSzL,EAAYmH,UAAUwE,oBAGrCtK,EAAmBS,UAAUgK,2BAA6B,WACtD,OAAO7K,EAAO5C,KAAK6D,YAAY6J,2BAEnC1K,EAAmBS,UAAUkK,oCAAsC,WAC/D,OAAO/K,EAAO5C,KAAK6D,YAAY+J,oCAEnC5K,EAAmBS,UAAUoK,uCAAyC,WAClE,OAAOjL,EAAO5C,KAAK6D,YAAYiK,uCAEnC9K,EAAmBS,UAAUsK,2BAA6B,WACtD,OAAOnL,EAAO5C,KAAK6D,YAAYmK,2BAEnChL,EAAmBS,UAAUwK,yBAA2B,WACpD,OAAOrL,EAAO5C,KAAK6D,YAAYqK,yBAEnClL,EAAmBS,UAAU0K,wBAA0B,WACnD,OAAOvL,EAAO5C,KAAK6D,YAAYuK,wBAEnCpL,EAAmBS,UAAU4K,2BAA6B,WACtD,OAAOzL,EAAO5C,KAAK6D,YAAYyK,2BAEnCtL,EAAmBS,UAAU8K,oBAAsB,WAC/C,OAAOvO,KAAK6D,YAAY2K,kBAE5BxL,EAAmBS,UAAUgL,uBAAyB,WAClD,OAAOzO,KAAK6D,YAAY6K,qBAE5B1L,EAAmBS,UAAUkL,mBAAqB,WAC9C,OAAO/L,EAAO5C,KAAK6D,YAAY+K,mBAEnC5L,EAAmBS,UAAUoL,kBAAoB,WAC7C,OAAOjM,EAAO5C,KAAK6D,YAAYiL,kBAEnC9L,EAAmBS,UAAUsL,0BAA4B,WACrD,OAAOnM,EAAO5C,KAAK6D,YAAYmL,0BAEnChM,EAAmBS,UAAUwL,yBAA2B,WACpD,OAAOrM,EAAO5C,KAAK6D,YAAYqL,yBAEnClM,EAAmBS,UAAU0L,mBAAqB,WAC9C,OAAOnP,KAAK6D,YAAYuL,iBAE5BpM,EAAmBS,UAAU4L,mBAAqB,WAC9C,OAAOzM,EAAO5C,KAAK6D,YAAYyL,mBAEnCtM,EAAmBS,UAAU8L,aAAe,WACxC,OAAO3M,EAAO5C,KAAK6D,YAAY2L,aAEnCxM,EAAmBS,UAAUgM,mBAAqB,WAC9C,OAAO7M,EAAO5C,KAAK6D,YAAY6L,mBAEnC1M,EAAmBS,UAAUkM,0BAA4B,WACrD,OAAO/M,EAAO5C,KAAK6D,YAAY+L,0BAEnC5M,EAAmBS,UAAUoM,iBAAmB,WAC5C,OAAOjN,EAAO5C,KAAK6D,YAAYiM,iBAEnC9M,EAAmBS,UAAUsM,YAAc,WACvC,OAAO/P,KAAK6D,YAAYmM,UAE5BhN,EAAmBS,UAAUwM,YAAc,WACvC,OAAOjQ,KAAK6D,YAAYqM,UAE5BlN,EAAmBS,UAAU0M,gBAAkB,WAC3C,OAAOnQ,KAAK6D,YAAYkM,aAE5B/M,EAAmBS,UAAU2M,gBAAkB,WAC3C,OAAOpQ,KAAK6D,YAAYoM,aAE5BjN,EAAmBS,UAAU4M,cAAgB,WACzC,OAAOrQ,KAAK6D,YAAYwM,eAE5BrN,EAAmBS,UAAU6M,4BAA8B,WACvD,OAAOtQ,KAAK6D,YAAY0M,sBAE5BvN,EAAmBS,UAAU+M,eAAiB,WAC1C,OAAOxQ,KAAK6D,YAAY4M,aAE5BzN,EAAmBS,UAAUiN,2BAA6B,WACtD,OAAO1Q,KAAK6D,YAAY8M,yBAE5B3N,EAAmBS,UAAUmN,wBAA0B,WACnD,OAAO5Q,KAAK6D,YAAYgN,kBAE5B7N,EAAmBS,UAAUqN,sBAAwB,WACjD,OAAO9Q,KAAK6D,YAAYkN,gBAE5B/N,EAAmBS,UAAUuN,iCAAmC,WAC5D,OAAOhR,KAAK6D,YAAYoN,2BAE5BjO,EAAmBS,UAAUyN,kBAAoB,WAC7C,OAAOlR,KAAK6D,YAAYsN,eAE5BnO,EAAmBS,UAAU2N,8BAAgC,WACzD,OAAOpR,KAAK6D,YAAYwN,4BAE5BrO,EAAmBS,UAAU6N,uBAAyB,WAClD,OAAOtR,KAAK6D,YAAY0N,iBAE5BvO,EAAmBS,UAAU+N,+BAAiC,WAC1D,OAAOxR,KAAK6D,YAAY4N,6BAE5BzO,EAAmBS,UAAUiO,qBAAuB,WAChD,OAAO9O,EAAO5C,KAAK6D,YAAY8N,qBAAuB/O,EAAO5C,KAAK6D,YAAY+N,+BAElF5O,EAAmBS,UAAUoO,6BAA+B,WACxD,OAAO7R,KAAK6D,YAAYiO,uBAE5B9O,EAAmBS,UAAUsO,0BAA4B,WACrD,OAAO/R,KAAK6D,YAAYmO,uBAE5BhP,EAAmBS,UAAUwO,OAAS,WAClC,OAAOjS,KAAK6D,YAAYC,KAE5Bd,EAAmBS,UAAUyO,aAAe,WACxC,OAAOlS,KAAK6D,YAAYD,WAE5BZ,EAAmBS,UAAU0O,mBAAqB,WAC9C,OAAOvP,EAAO5C,KAAK6D,YAAYuO,mBAEnCpP,EAAmBS,UAAU4O,kBAAoB,WAC7C,OAAOzP,EAAO5C,KAAK6D,YAAYyO,kBAEnCtP,EAAmBS,UAAU8O,iBAAmB,WAC5C,OAAO3P,EAAO5C,KAAK6D,YAAY2O,iBAEnCxP,EAAmBS,UAAUgP,eAAiB,WAC1C,QAAI7P,EAAQ5C,KAAK6D,YAAwB,kBAChC7D,KAAKmI,QAAQuK,mBAAmB,kBACjCjR,EAAQqF,EAAE0G,QAAO,WACb1I,QAAQC,KAAK,6EACd,sBACI,KAMnB/B,EAAmBS,UAAUkP,oBAAsB,WAC/C,OAAO3S,KAAK6D,YAAY+O,kBAE5B5P,EAAmBS,UAAUoP,kBAAoB,WAC7C,OAAOjQ,EAAO5C,KAAK6D,YAAYiP,kBAEnC9P,EAAmBS,UAAUsP,oBAAsB,WAC/C,OAAOnQ,EAAO5C,KAAK6D,YAAYmP,oBAEnChQ,EAAmBS,UAAUwP,gCAAkC,WAC3D,OAAOrQ,EAAO5C,KAAK6D,YAAYqP,gCAEnClQ,EAAmBS,UAAU0P,wBAA0B,WACnD,OAAOnT,KAAK6D,YAAYuP,sBAE5BpQ,EAAmBS,UAAU4P,mCAAqC,WAC9D,OAAOrT,KAAK6D,YAAYyP,iCAE5BtQ,EAAmBS,UAAU8P,oBAAsB,WAC/C,OAAOvT,KAAK6D,YAAY2P,kBAE5BxQ,EAAmBS,UAAUgQ,qBAAuB,WAChD,OAAOzT,KAAK6D,YAAY6P,mBAE5B1Q,EAAmBS,UAAUkQ,sBAAwB,WACjD,OAAO3T,KAAK6D,YAAY+P,oBAE5B5Q,EAAmBS,UAAUoQ,oBAAsB,WAG/C,SAAI7T,KAAK8T,sBAAwB9T,KAAKkF,+BAC/BlF,KAAKwL,sCAGL5I,EAAO5C,KAAK6D,YAAYkQ,oBAEnC/Q,EAAmBS,UAAUuQ,kBAAoB,WAC7C,OAAOhU,KAAK6D,YAAYoQ,gBAE5BjR,EAAmBS,UAAUyQ,2BAA6B,WACtD,OAAOlU,KAAK6D,YAAYsQ,yBAE5BnR,EAAmBS,UAAU2Q,sBAAwB,WACjD,OAAOxR,EAAO5C,KAAK6D,YAAYwQ,sBAEnCrR,EAAmBS,UAAU6Q,0BAA4B,WACrD,OAAO1R,EAAO5C,KAAK6D,YAAY0Q,0BAEnCvR,EAAmBS,UAAU+Q,WAAa,WACtC,OAAOxU,KAAK6D,YAAY4Q,SAI5BzR,EAAmBS,UAAUiR,oBAAsB,SAAUrM,GACzD,OAAOA,GAAoBzF,EAAO5C,KAAK6D,YAAY8Q,oBAEvD3R,EAAmBS,UAAUmR,YAAc,WACvC,OAAOhS,EAAO5C,KAAK6D,YAAYgR,YAEnC7R,EAAmBS,UAAUqR,sBAAwB,WACjD,OAAO9U,KAAK6D,YAAYkR,oBAE5B/R,EAAmBS,UAAUqQ,mBAAqB,WAC9C,OAAOlR,EAAO5C,KAAK6D,YAAYmR,mBAEnChS,EAAmBS,UAAUwR,qBAAuB,WAChD,OAAOjV,KAAK6D,YAAYqR,mBAE5BlS,EAAmBS,UAAU0R,kBAAoB,WAC7C,OAAOnV,KAAK6D,YAAYuR,gBAE5BpS,EAAmBS,UAAU4R,qBAAuB,WAChD,OAAOzS,EAAO5C,KAAK6D,YAAYyR,qBAEnCtS,EAAmBS,UAAU8R,wBAA0B,WACnD,OAAO3S,EAAO5C,KAAK6D,YAAY2R,wBAEnCxS,EAAmBS,UAAUgS,wBAA0B,WACnD,OAAO7S,EAAO5C,KAAK6D,YAAY6R,wBAEnC1S,EAAmBS,UAAUkS,QAAU,WACnC,OAAO/S,EAAO5C,KAAK6D,YAAY+R,QAEnC5S,EAAmBS,UAAUoS,cAAgB,WACzC,OAAO7V,KAAK6D,YAAY2B,YAE5BxC,EAAmBS,UAAUqS,eAAiB,WAC1C,OAAO9V,KAAK6D,YAAYkS,aAE5B/S,EAAmBS,UAAUuS,cAAgB,WACzC,OAAOhW,KAAK6D,YAAYoS,YAE5BjT,EAAmBS,UAAUyS,sBAAwB,WACjD,OAAOlW,KAAK6D,YAAYsS,oBAE5BnT,EAAmBS,UAAU2S,wBAA0B,WACnD,OAAOpW,KAAK6D,YAAYwS,sBAE5BrT,EAAmBS,UAAU6S,eAAiB,WAC1C,OAAO1T,EAAO5C,KAAK6D,YAAY0S,eAEnCvT,EAAmBS,UAAU+S,wBAA0B,WACnD,OAAO5T,EAAO5C,KAAK6D,YAAY4S,wBAEnCzT,EAAmBS,UAAUiT,wBAA0B,WACnD,OAAO9T,EAAO5C,KAAK6D,YAAY8S,wBAEnC3T,EAAmBS,UAAUmT,kBAAoB,WAC7C,OAAOhU,EAAO5C,KAAK6D,YAAYgT,kBAEnC7T,EAAmBS,UAAUqT,6BAA+B,WACxD,OAAOlU,EAAO5C,KAAK6D,YAAYkT,6BAEnC/T,EAAmBS,UAAUuT,8BAAgC,WACzD,OAAOpU,EAAO5C,KAAK6D,YAAYoT,8BAEnCjU,EAAmBS,UAAUyT,qCAAuC,WAChE,OAAOtU,EAAO5C,KAAK6D,YAAYsT,qCAEnCnU,EAAmBS,UAAU2T,+BAAiC,WAC1D,OAAOxU,EAAO5C,KAAK6D,YAAYwT,+BAEnCrU,EAAmBS,UAAU6T,sBAAwB,WACjD,OAAO1U,EAAO5C,KAAK6D,YAAY0T,sBAEnCvU,EAAmBS,UAAU+T,iCAAmC,WAC5D,OAAO5U,EAAO5C,KAAK6D,YAAY4T,iCAEnCzU,EAAmBS,UAAUiU,8BAAgC,WACzD,OAAO9U,EAAO5C,KAAK6D,YAAY8T,8BAEnC3U,EAAmBS,UAAUmU,yBAA2B,WACpD,OAAOhV,EAAO5C,KAAK6D,YAAYgU,yBAEnC7U,EAAmBS,UAAUqU,yBAA2B,WACpD,OAAOlV,EAAO5C,KAAK6D,YAAYkU,yBAEnC/U,EAAmBS,UAAUuU,aAAe,WACxC,OAAOpV,EAAO5C,KAAK6D,YAAYoU,aAEnCjV,EAAmBS,UAAUyU,sCAAwC,WACjE,OAAOtV,EAAO5C,KAAK6D,YAAYsU,sCAEnCnV,EAAmBS,UAAU2U,gCAAkC,WAC3D,OAAOpY,KAAK6D,YAAYwU,0BAE5BrV,EAAmBS,UAAU6U,yBAA2B,WACpD,OAAO7W,EAAQqF,EAAEyR,OAAOvY,KAAK6D,YAAY2U,uBAAyBxY,KAAK6D,YAAY2U,sBAAwB7W,EAAYmH,UAAU2P,mBAErIzV,EAAmBS,UAAUiV,yBAA2B,WACpD,OAAO9V,EAAO5C,KAAK6D,YAAY8U,yBAEnC3V,EAAmBS,UAAUmV,cAAgB,WAEzC,OAAI5Y,KAAKuS,oBAGF3P,EAAO5C,KAAK6D,YAAYgV,cAEnC7V,EAAmBS,UAAUqV,8BAAgC,WACzD,OAAOlW,EAAO5C,KAAK6D,YAAYkV,8BAEnC/V,EAAmBS,UAAUuV,0BAA4B,WACrD,OAAOpW,EAAO5C,KAAK6D,YAAYoV,0BAEnCjW,EAAmBS,UAAUyV,yBAA2B,WACpD,OAAOtW,EAAO5C,KAAK6D,YAAYsV,yBAEnCnW,EAAmBS,UAAU2V,uBAAyB,WAClD,OAAOpZ,KAAK2H,YAAc/E,EAAO5C,KAAK6D,YAAYwV,uBAEtDrW,EAAmBS,UAAU6V,oBAAsB,WAC/C,OAAO1W,EAAO5C,KAAK6D,YAAY0V,oBAEnCvW,EAAmBS,UAAU+V,mBAAqB,WAC9C,OAAO5W,EAAO5C,KAAK6D,YAAY4V,mBAEnCzW,EAAmBS,UAAUiW,8BAAgC,WACzD,OAAO9W,EAAO5C,KAAK6D,YAAY8V,8BAEnC3W,EAAmBS,UAAUmW,yBAA2B,WACpD,OAAOhX,EAAO5C,KAAK6D,YAAYgW,yBAEnC7W,EAAmBS,UAAUqW,gCAAkC,WAC3D,OAAOlX,EAAO5C,KAAK6D,YAAYkW,gCAEnC/W,EAAmBS,UAAUuW,SAAW,WACpC,OAAOha,KAAK6D,YAAYoW,OAE5BjX,EAAmBS,UAAUyW,YAAc,WACvC,OAAOla,KAAK6D,YAAYsW,UAE5BnX,EAAmBS,UAAU2W,gBAAkB,WAC3C,OAAOpa,KAAK6D,YAAYwW,cAE5BrX,EAAmBS,UAAU6W,gBAAkB,WAC3C,OAAOta,KAAK6D,YAAY0W,cAE5BvX,EAAmBS,UAAU+W,eAAiB,WAC1C,IAAIjV,EAAQvF,KACRya,EAAoB7X,EAAO5C,KAAK6D,YAAY6W,cAMhD,OALAjZ,EAAQqF,EAAE0G,QAAO,WACTiN,IAAsBlV,EAAMoC,YAC5B7C,QAAQC,KAAK,iEAElB,+BACI0V,GAAqBza,KAAK2H,YAErC3E,EAAmBS,UAAUkX,iBAAmB,WAC5C,OAAO/X,EAAO5C,KAAK6D,YAAY+W,iBAEnC5X,EAAmBS,UAAUoX,uBAAyB,WAClD,OAAI7a,KAAK6D,YAAYiX,oBAAsB,EAChC9a,KAAK6D,YAAYiX,oBAGjBnY,GAGfK,EAAmBS,UAAUsX,mBAAqB,WAC9C,OAAO/a,KAAK6D,YAAYmX,aAE5BhY,EAAmBS,UAAUwX,uBAAyB,WAClD,OAAOjb,KAAK6D,YAAYqX,iBAE5BlY,EAAmBS,UAAU0X,0BAA4B,WACrD,OAAOnb,KAAK6D,YAAYuX,wBAE5BpY,EAAmBS,UAAU4X,0BAA4B,WACrD,OAAOrb,KAAK6D,YAAYyX,wBAE5BtY,EAAmBS,UAAU8X,yBAA2B,WACpD,OAAOvb,KAAK6D,YAAY2X,uBAE5BxY,EAAmBS,UAAUgY,mBAAqB,WAC9C,OAAO7Y,EAAO5C,KAAK6D,YAAY6X,mBAEnC1Y,EAAmBS,UAAUkY,0BAA4B,WACrD,OAAO/Y,EAAO5C,KAAK6D,YAAY+X,0BAEnC5Y,EAAmBS,UAAUoB,4BAA8B,WACvD,OAAOjC,EAAO5C,KAAK6D,YAAYgY,4BAEnC7Y,EAAmBS,UAAUqY,oBAAsB,WAC/C,OAAOlZ,EAAO5C,KAAK6D,YAAYkY,oBAEnC/Y,EAAmBS,UAAUuY,iBAAmB,WAC5C,OAAOhc,KAAK6D,YAAYoY,gBAE5BjZ,EAAmBS,UAAUyY,uBAAyB,WAClD,OAAOtZ,EAAO5C,KAAK6D,YAAY+X,0BAEnC5Y,EAAmBS,UAAU0Y,0BAA4B,WACrD,OAAOvZ,EAAO5C,KAAK6D,YAAYuY,0BAEnCpZ,EAAmBS,UAAU4Y,iBAAmB,WAC5C,OAAOrc,KAAK6D,YAAYyY,eAE5BtZ,EAAmBS,UAAU8Y,sBAAwB,WACjD,OAAOvc,KAAK6D,YAAY2Y,oBAE5BxZ,EAAmBS,UAAUgZ,uBAAyB,WAClD,OAAOzc,KAAK6D,YAAY6Y,qBAE5B1Z,EAAmBS,UAAUkZ,oBAAsB,WAC/C,OAAO/Z,EAAO5C,KAAK6D,YAAY+Y,oBAEnC5Z,EAAmBS,UAAUoZ,6BAA+B,WACxD,OAAOja,EAAO5C,KAAK6D,YAAYiZ,6BAEnC9Z,EAAmBS,UAAUsZ,sBAAwB,WACjD,OAAOna,EAAO5C,KAAK6D,YAAYmZ,sBAEnCha,EAAmBS,UAAUwZ,wCAA0C,WACnE,OAAOra,EAAO5C,KAAK6D,YAAYqZ,wCAEnCla,EAAmBS,UAAU0Z,wBAA0B,WACnD,OAAOnd,KAAK6D,YAAYuZ,qBAE5Bpa,EAAmBS,UAAU4Z,gBAAkB,WAC3C,OAAOrd,KAAK6D,YAAYyZ,aAE5Bta,EAAmBS,UAAU8Z,yBAA2B,WACpD,OAAOvd,KAAK6D,YAAY2Z,mBAE5Bxa,EAAmBS,UAAUga,0BAA4B,WACrD,OAAOzd,KAAK6D,YAAY6Z,uBAE5B1a,EAAmBS,UAAUka,wBAA0B,WACnD,OAAO3d,KAAK6D,YAAY+Z,kBAE5B5a,EAAmBS,UAAUoa,wBAA0B,WACnD,OAAO7d,KAAK6D,YAAYia,qBAE5B9a,EAAmBS,UAAUsa,qBAAuB,WAChD,OAAO/d,KAAK6D,YAAYma,kBAE5Bhb,EAAmBS,UAAUwa,yBAA2B,WACpD,OAAOje,KAAK6D,YAAYqa,sBAE5Blb,EAAmBS,UAAU0a,iBAAmB,WAC5C,OAAOne,KAAK6D,YAAYua,cAE5Bpb,EAAmBS,UAAU4a,0BAA4B,WACrD,OAAOre,KAAK6D,YAAYya,oBAE5Btb,EAAmBS,UAAU8a,qBAAuB,WAChD,OAAOve,KAAK6D,YAAY2a,eAE5Bxb,EAAmBS,UAAUsH,WAAa,WACtC,IAAIxF,EAAQvF,KACRye,EAAgB7b,EAAO5C,KAAK6D,YAAY6a,UAM5C,OALAjd,EAAQqF,EAAE0G,QAAO,WACTiR,IAAkBlZ,EAAMoC,YACxB7C,QAAQC,KAAK,4DAElB,2BACI0Z,GAEXzb,EAAmBS,UAAUkb,aAAe,WACxC,OAAO/b,EAAO5C,KAAK6D,YAAY+a,aAEnC5b,EAAmBS,UAAUob,yBAA2B,WACpD,OAAOjc,EAAO5C,KAAK6D,YAAYib,yBAEnC9b,EAAmBS,UAAUsb,YAAc,WACvC,OAAOnc,EAAO5C,KAAK6D,YAAYmb,YAEnChc,EAAmBS,UAAUwb,8BAAgC,WACzD,OAAOrc,EAAO5C,KAAK6D,YAAYqb,8BAEnClc,EAAmBS,UAAU0b,8BAAgC,WACzD,OAAOnf,KAAK6D,YAAYub,wBAE5Bpc,EAAmBS,UAAU4b,mCAAqC,WAC9D,OAAOrf,KAAK6D,YAAYyb,6BAE5Btc,EAAmBS,UAAU8b,uBAAyB,WAClD,OAAOvf,KAAK6D,YAAY2b,iBAE5Bxc,EAAmBS,UAAUgc,4BAA8B,WACvD,OAAOzf,KAAK6D,YAAY6b,sBAE5B1c,EAAmBS,UAAUkc,+BAAiC,WAC1D,OAAO3f,KAAK6D,YAAY+b,yBAE5B5c,EAAmBS,UAAUoc,iCAAmC,WAC5D,OAAO7f,KAAK6D,YAAYic,2BAE5B9c,EAAmBS,UAAUsc,gCAAkC,WAC3D,OAAO/f,KAAK6D,YAAYmc,0BAE5Bhd,EAAmBS,UAAUwc,4BAA8B,WACvD,OAAOld,EAAa/C,KAAK6D,YAAYqc,yBAA0Bzd,IAEnEO,EAAmBS,UAAU0c,8BAAgC,WACzD,OAAOtd,EAAc7C,KAAK6D,YAAYuc,2BAA4B1d,IAItEM,EAAmBS,UAAU4c,gCAAkC,WAC3D,OAAOzd,EAAO5C,KAAK6D,YAAYyc,gCAEnCtd,EAAmBS,UAAU8c,gBAAkB,WAC3C,OAAOvgB,KAAK6D,YAAY2c,UAE5Bxd,EAAmBS,UAAUgd,2BAA6B,WACtD,OAAOzgB,KAAK6D,YAAY6c,qBAE5B1d,EAAmBS,UAAUkd,wBAA0B,WACnD,OAAOlf,EAAQqF,EAAEyR,OAAOvY,KAAK6D,YAAY+c,sBAAwB5gB,KAAK6D,YAAY+c,qBAAuB,MAE7G5d,EAAmBS,UAAUod,YAAc,SAAU1gB,EAAKqB,GACtD,IAAIsf,EAAoB9gB,KAAK6D,YACzBkd,EAAgBD,EAAkB3gB,GACtC,GAAI4gB,IAAkBvf,EAAO,CACzBsf,EAAkB3gB,GAAOqB,EACzB,IAAIwf,EAAU,CACVC,KAAM9gB,EACN+gB,aAAc1f,EACduf,cAAeA,GAEnB/gB,KAAKiD,qBAAqBke,cAAcH,KAKhDhe,EAAmBS,UAAU2d,iBAAmB,SAAU9Z,GACtDtH,KAAKuD,eAAegD,KAAKe,GACzBtH,KAAKsF,uBAETtC,EAAmBS,UAAU6B,oBAAsB,WAC/C,IAAI6H,EAAYnN,KAAKkN,eACjBmU,EAAsBlU,IAAcxL,EAAYmH,UAAUuE,uBAC1DiU,EAAiBnU,IAAcxL,EAAYmH,UAAUsE,iBACrDmU,EAAkBpU,IAAcxL,EAAYmH,UAAUwE,kBAC1DtN,KAAKuD,eAAekC,SAAQ,SAAU+b,GAClC/f,EAAQqF,EAAE2a,oBAAoBD,EAAG,wBAAyBH,GAC1D5f,EAAQqF,EAAE2a,oBAAoBD,EAAG,mBAAoBD,GACrD9f,EAAQqF,EAAE2a,oBAAoBD,EAAG,kBAAmBF,OAG5Dte,EAAmBS,UAAU2B,iBAAmB,SAAUjF,EAAKuhB,GAC3Dle,EAAqBme,sBAAsBxhB,GAC3CH,KAAKiD,qBAAqBmC,iBAAiBjF,EAAKuhB,IAEpD1e,EAAmB2e,sBAAwB,SAAUC,GAC/B,2BAAdA,GACA9c,QAAQC,KAAK,uEAGrB/B,EAAmBS,UAAUoe,oBAAsB,SAAU1hB,EAAKuhB,GAC9D1hB,KAAKiD,qBAAqB4e,oBAAoB1hB,EAAKuhB,IAEvD1e,EAAmBS,UAAUqe,mBAAqB,WAC9C,OAAO9hB,KAAK6D,YAAYke,iBAAmB/hB,KAAK6D,YAAYke,gBAAkB,EAAI/hB,KAAK6D,YAAYke,gBAAkB,IAGzH/e,EAAmBS,UAAUue,gBAAkB,WAC3C,MAA6C,kBAAlChiB,KAAK6D,YAAYoe,aACjBjiB,KAAK6D,YAAYoe,aAErBjiB,KAAKkiB,sBAAsB,GAAI,iBAE1Clf,EAAmBS,UAAU0e,yBAA2B,WACpD,MAAsD,kBAA3CniB,KAAK6D,YAAYue,sBACjBpiB,KAAK6D,YAAYue,sBAErBpiB,KAAKkiB,sBAAsB,GAAI,iBAE1Clf,EAAmBS,UAAU4e,qBAAuB,WAChD,MAAkD,kBAAvCriB,KAAK6D,YAAYye,kBACjBtiB,KAAK6D,YAAYye,kBAErBtiB,KAAKgiB,mBAEhBhf,EAAmBS,UAAU8e,qBAAuB,WAChD,MAAkD,kBAAvCviB,KAAK6D,YAAY2e,kBACjBxiB,KAAK6D,YAAY2e,kBAErBxiB,KAAKgiB,mBAEhBhf,EAAmBS,UAAUgf,0BAA4B,WACrD,MAAuD,kBAA5CziB,KAAK6D,YAAY6e,uBACjB1iB,KAAK6D,YAAY6e,uBAErB1iB,KAAKqiB,wBAEhBrf,EAAmBS,UAAUkf,wBAA0B,WACnD,MAAwD,oBAA7C3iB,KAAK6D,YAAY8e,yBACjB3iB,KAAK6D,YAAY8e,2BAIhC3f,EAAmBS,UAAUmf,uBAAyB,SAAUC,GAC5D,MAAuD,oBAA5C7iB,KAAK6D,YAAY+e,wBACjB5iB,KAAK6D,YAAY+e,uBAAuBC,IAIvD7f,EAAmBS,UAAUqf,YAAc,WAGvC,IAAIjY,EAAS,KAIb,OAHI7K,KAAK6D,YAAYif,aAAerhB,EAAQqF,EAAEyR,OAAOvY,KAAK6D,YAAYif,eAClEjY,EAAS7K,KAAK6D,YAAYif,eAE1BjY,GAAUpJ,EAAQqF,EAAEyR,OAAO1N,GACpBA,EAEJkY,UAEX/f,EAAmBS,UAAUuf,eAAiB,WAC1C,OAAIhjB,KAAK6D,YAAYof,aAAgBjjB,KAAK6D,YAAYof,YAAczf,EAAqB0f,cAC9EljB,KAAK6D,YAAYof,YAErBzf,EAAqB0f,eAEhClgB,EAAmBS,UAAU0f,eAAiB,WAC1C,OAAInjB,KAAK6D,YAAYuf,aAAgBpjB,KAAK6D,YAAYuf,YAAc5f,EAAqB0f,cAC9EljB,KAAK6D,YAAYuf,YAErB,MAEXpgB,EAAmBS,UAAU4f,YAAc,WACvC,MAAyC,kBAA9BrjB,KAAK6D,YAAYyf,UAAyBtjB,KAAK6D,YAAYyf,SAAW9f,EAAqB0f,cAC3F,IAEJljB,KAAK6D,YAAYyf,UAE5BtgB,EAAmBS,UAAU8f,aAAe,WACxC,IAAIC,EAAYxjB,KAAK6D,YAAY2f,UAUjC,MATyB,kBAAdA,EACHA,EAAY,IACZ/hB,EAAQqF,EAAE0G,QAAO,WAAc,OAAO1I,QAAQC,KAAK,+CAAiD,2BACpG/E,KAAK6D,YAAY2f,UAAYA,EAAY,GAI7CA,EAAY7hB,EAAYmH,UAAU2a,gBAE/BD,GAEXxgB,EAAmBS,UAAUigB,qBAAuB,WAChD,IAAIC,EAAe3jB,KAAKujB,eACpBK,EAAmB5jB,KAAK6jB,uBAC5B,OAAOF,EAAeC,GAK1B5gB,EAAmBS,UAAUqgB,kBAAoB,WAC7C,GAAwB,MAApB9jB,KAAK+jB,YAAqB,CAC1B,IAAIC,EAA4D,kBAApChkB,KAAK6D,YAAYogB,gBACzCjkB,KAAK6D,YAAYogB,gBAAkB,EACvCjkB,KAAK+jB,YAAcC,EAAiBhkB,KAAK6D,YAAYogB,eAAiBxiB,EAAQqF,EAAEgd,oBAEpF,OAAO9jB,KAAK+jB,aAEhB/gB,EAAmBS,UAAUM,mBAAqB,WAC9C,IAAIwB,EAAQvF,KAGRkkB,EAAUlkB,KAAK6D,YACfqgB,EAAQC,gBACRrf,QAAQC,KAAK,uFAEbmf,EAAQE,kBACRtf,QAAQC,KAAK,yFAEbmf,EAAQG,gBACRvf,QAAQC,KAAK,oGAEbmf,EAAQI,uBACRxf,QAAQC,KAAK,2IAEbmf,EAAQK,WACRzf,QAAQC,KAAK,qIAE2B,mBAAjCmf,EAAQ9Q,sBACftO,QAAQC,KAAK,2JAEbmf,EAAQM,iBAAmBN,EAAQO,gBACnC3f,QAAQC,KAAK,0FAEbmf,EAAQQ,oBACR5f,QAAQC,KAAK,4GAEbmf,EAAQS,kBACR7f,QAAQC,KAAK,gFAEbmf,EAAQU,mBACR9f,QAAQC,KAAK,iKAGbmf,EAAQW,2BACR/f,QAAQC,KAAK,gGAEbmf,EAAQY,kBACRhgB,QAAQC,KAAK,8EAEbmf,EAAQa,mBACRjgB,QAAQC,KAAK,gFAEbmf,EAAQc,iBACRlgB,QAAQC,KAAK,gFAEbmf,EAAQe,wBACRngB,QAAQC,KAAK,wFAKbmf,EAAQgB,yBACRpgB,QAAQC,KAAK,2IAEbmf,EAAQiB,uBACRrgB,QAAQC,KAAK,wIAEbmf,EAAQkB,yBACRtgB,QAAQC,KAAK,0IAEbmf,EAAQmB,2BACRvgB,QAAQC,KAAK,mHAEbmf,EAAQlP,kBACRlQ,QAAQC,KAAK,uIAEbmf,EAAQoB,gBACRxgB,QAAQC,KAAK,gKAEbmf,EAAQqB,YACRzgB,QAAQC,KAAK,oJAEbmf,EAAQsB,oBACR1gB,QAAQC,KAAK,kFAEbmf,EAAQuB,uBACR3gB,QAAQC,KAAK,wFAEbmf,EAAQwB,qBACR5gB,QAAQC,KAAK,gGAAkGmf,EAAQwB,oBAAsB,cAE7IxB,EAAQyB,uBACR7gB,QAAQC,KAAK,qIAEbmf,EAAQ0B,oBACR9gB,QAAQC,KAAK,kIAEbmf,EAAQ2B,oBACR/gB,QAAQC,KAAK,kIAEbmf,EAAQxO,uBACR5Q,QAAQC,KAAK,0JAEbmf,EAAQ3b,cACRzD,QAAQC,KAAK,yIACbmf,EAAQzb,uBAAyB,UAER,aAAzByb,EAAQrb,eACR/D,QAAQC,KAAK,8IACbmf,EAAQrb,aAAe,cAEE,eAAzBqb,EAAQrb,eACR/D,QAAQC,KAAK,+IACbmf,EAAQrb,aAAe,cAEvBqb,EAAQ4B,gBACRhhB,QAAQC,KAAK,+HAEbmf,EAAQ6B,iBACRjhB,QAAQC,KAAK,gGACbmf,EAAQ/W,UAAY,eAEM,IAA1B+W,EAAQ8B,gBACRlhB,QAAQC,KAAK,oJACbmf,EAAQ8B,mBAAgBzY,EACxB2W,EAAQna,QAAUma,EAAQna,UAAW,IAEX,IAA1Bma,EAAQ8B,gBACRlhB,QAAQC,KAAK,oJACbmf,EAAQ8B,mBAAgBzY,EACxB2W,EAAQna,QAAUma,EAAQna,UAAW,GAEzC,IAAIkc,EAAyB,CACzBC,2BAA4B,oBAC5BC,wBAAyB,iBACzBC,wBAAyB,iBACzBC,2BAA4B,oBAC5BC,8BAA+B,uBAC/BC,iCAAkC,0BAClCC,6BAA8B,sBAC9BC,iCAAkC,0BAClCC,wBAAyB,2BAEzBC,EAA4B,GAChCjmB,OAAO0F,KAAK6f,GAAwBxgB,SAAQ,SAAUtF,GAClD,IAAIymB,EAAcX,EAAuB9lB,GACrCqB,EAAQ+D,EAAM1B,YAAY1D,GAC9B,QAAcoN,IAAV/L,EAAqB,CACrB,GAAY,iCAARrB,EAEA,YADA2E,QAAQC,KAAK,0IAGjBD,QAAQC,KAAK,oCAAsC5E,EAAM,0FAA4FymB,GACrJD,EAA0BC,GAAeplB,MAG7Cd,OAAO0F,KAAKugB,GAA2BnmB,OAAS,IAAMiB,EAAQqF,EAAEyR,OAAO2L,EAAQna,WAC/EjF,QAAQC,KAAK,oJACbmf,EAAQna,SAAU,GAEC,MAAnBma,EAAQna,UACRma,EAAQna,QAAUzH,EAAUukB,iBAAiBC,MAAM5C,EAAQna,UAE/D,IAAIgd,EAAa/mB,KAAK6D,YAAYkG,QAClC,GAAIrJ,OAAO0F,KAAKugB,GAA2BnmB,OAAS,GAAKumB,GAAcA,EAAW5c,WAAY,CAC1F,IAAI6c,EAAcD,EAAW5c,WAAW8c,QAAO,SAAU3gB,GAAM,MAAiB,YAAVA,EAAG4gB,MAC/C,IAAtBF,EAAWxmB,QACXiB,EAAQqF,EAAEqgB,UAAUH,EAAW,GAAI,CAC/BI,gBAAiBT,IAIzBzC,EAAQmD,kBACRviB,QAAQC,KAAK,6FACbmf,EAAQoD,UAAYpD,EAAQoD,WACxB,CACIC,WAAY,CAAC,CAAEC,UAAW,6BAGlCtD,EAAQuD,qBACR3iB,QAAQC,KAAK,iKAEbmf,EAAQwD,yBAA2BxD,EAAQyD,iBAC3C7iB,QAAQC,KAAK,8QACRmf,EAAQ5H,gBACT4H,EAAQ5H,cAAgB,IAEvB4H,EAAQ5H,cAAcsL,WACvB1D,EAAQ5H,cAAcsL,UAAW,KAGrC1D,EAAQ2D,cAAgB3D,EAAQ4D,0BAChChjB,QAAQC,KAAK,4bACRmf,EAAQ5H,gBACT4H,EAAQ5H,cAAgB,IAEvB4H,EAAQ5H,cAAc2K,SACvB/C,EAAQ5H,cAAc2K,QAAS,IAGnC/C,EAAQ6D,kBACRjjB,QAAQC,KAAK,wPACRmf,EAAQ5H,gBACT4H,EAAQ5H,cAAgB,IAEvB4H,EAAQ5H,cAAc0L,YACvB9D,EAAQ5H,cAAc0L,WAAY,IAGtC9D,EAAQtS,8BACR9M,QAAQC,KAAK,iGAEbmf,EAAQpV,iBACRhK,QAAQC,KAAK,iLAEbmf,EAAQnT,gBACRjM,QAAQC,KAAK,iNAGrB/B,EAAmBS,UAAUO,mBAAqB,WAC1ChE,KAAK+K,cACL/K,KAAKioB,sBAGbjlB,EAAmBS,UAAUwkB,mBAAqB,WAC1CjoB,KAAKmJ,qBACD1H,EAAQqF,EAAEW,QAAQzH,KAAKqd,oBACvBvY,QAAQC,KAAK,wKAIjB/E,KAAKiF,yBACDxD,EAAQqF,EAAEW,QAAQzH,KAAKud,6BACvBzY,QAAQC,KAAK,oLAGbtD,EAAQqF,EAAEW,QAAQzH,KAAKyd,8BACvB3Y,QAAQC,KAAK,8LAKzB/B,EAAmBS,UAAUykB,kBAAoB,WAC7C,GAAIloB,KAAK6D,YAAYskB,eACjB,OAAOnoB,KAAK6D,YAAYskB,eAE5B,IAAIC,EAAOpoB,KACX,OAAO,SAAUG,EAAK2C,GAClB,IAAIulB,EAAaD,EAAKvkB,YAAYwkB,WAClC,OAAIA,GAAcA,EAAWloB,GAClBkoB,EAAWloB,GAEf2C,IAIfE,EAAmBS,UAAUiB,mBAAqB,SAAUkd,EAAW0G,GACnE,IAAIC,EAAqB3mB,EAAgB4E,cAAcC,oBAAoBmb,GACvB,oBAAzC5hB,KAAK6D,YAAY0kB,IACxBvoB,KAAK6D,YAAY0kB,GAAoBD,IAI7CtlB,EAAmBS,UAAUogB,qBAAuB,WAChD,OAAK7jB,KAAK6D,YAAY2kB,WAAa/mB,EAAQqF,EAAEW,QAAQzH,KAAK6D,YAAY2kB,WAC3DxoB,KAAKyoB,sBAEPzoB,KAAK6D,YAAY2kB,WAAaxoB,KAAK0oB,UAAU1oB,KAAK6D,YAAY2kB,WAC5DxoB,KAAK6D,YAAY2kB,WAE5B1jB,QAAQC,KAAK,uEACN/E,KAAKyoB,wBAEhBzlB,EAAmBS,UAAUklB,oBAAsB,SAAUC,EAASC,GAKlE,QADsB,IAAlBA,IAA4BA,GAAgB,GACH,oBAAlC7oB,KAAK6D,YAAYilB,aAA6B,CACrD,GAAID,EACA,MAAO,CAAEE,OAAQ/oB,KAAKyoB,sBAAuBO,WAAW,GAE5D,IAAIC,EAAS,CACTpG,KAAM+F,EACNM,KAAMN,EAAQM,KACdplB,IAAK9D,KAAK6D,YAAYC,IACtBqE,QAASnI,KAAK6D,YAAYsE,SAE9B,MAAO,CAAE4gB,OAAQ/oB,KAAK6D,YAAYilB,aAAaG,GAASD,WAAW,GAElE,GAAIJ,EAAQO,QAAUnpB,KAAKwa,iBAC5B,OAAIxa,KAAK0oB,UAAU1oB,KAAK6D,YAAYulB,iBACzB,CAAEL,OAAQ/oB,KAAK6D,YAAYulB,gBAAiBJ,WAAW,GAGvD,CAAED,OAAQvmB,EAA2BwmB,WAAW,GAG/D,IAAIpF,EAAmB5jB,KAAKyoB,sBACxBD,EAAYxoB,KAAK6D,YAAY2kB,WAAaxoB,KAAK0oB,UAAU1oB,KAAK6D,YAAY2kB,WAC1ExoB,KAAK6D,YAAY2kB,UAAY5E,EAC7ByF,EAAejmB,KAAKkmB,IAAI1F,EAAkB4E,GAC9C,GAAIxoB,KAAKupB,iBAAiBC,wBAAyB,CAC/C,GAAIX,EACA,MAAO,CAAEE,OAAQP,EAAWQ,WAAW,GAE3C,IAAIS,EAAazpB,KAAK0pB,qBAAqBC,yBAAyBf,GAGpE,MAAO,CAAEG,OAAQ3lB,KAAKwmB,IAAIH,EAAYJ,GAAeL,WAAW,GAEpE,MAAO,CAAED,OAAQP,EAAWQ,WAAW,IAE3ChmB,EAAmBS,UAAUomB,mBAAqB,WAC9C,MAAgD,oBAAlC7pB,KAAK6D,YAAYilB,cAEnC9lB,EAAmBS,UAAUqmB,qBAAuB,WAChD,OAAO9pB,KAAKkiB,sBAAsB,GAAI,sBAE1Clf,EAAmBS,UAAUilB,UAAY,SAAUlnB,GAC/C,OAAQuoB,MAAMvoB,IAA2B,kBAAVA,GAInCwB,EAAmBS,UAAUye,sBAAwB,SAAUpf,EAAcknB,GACzE,IAAIC,EAAQjqB,KAAKkqB,YAAYC,WAAWF,MACxC,OAAIA,GAAuC,IAA9BA,EAAMG,QAAQ,YAChBpqB,KAAKkqB,YAAYG,gBAAgBJ,EAAOD,GAE5ClnB,GAEXE,EAAmBS,UAAUglB,oBAAsB,WAC/C,OAAOzoB,KAAKkiB,sBAAsB3f,EAAoB,cAG1DS,EAAmBkgB,cAAgB,GACnClgB,EAAmBsnB,mBAAqB,eACxCtnB,EAAmBunB,kCAAoC,4BACvDvnB,EAAmBwnB,yCAA2C,kCAC9DxnB,EAAmBynB,yBAA2B,oBAC9CznB,EAAmB0nB,8BAAgC,yBACnD1nB,EAAmB2nB,yBAA2B,oBAC9C3nB,EAAmB4nB,+BAAiC,yBACpD5nB,EAAmB6nB,6BAA+B,wBAClD7nB,EAAmB8nB,uBAAyB,kBAC5C9nB,EAAmB+nB,kBAAoB,cACvC/nB,EAAmBqC,gBAAkB,YACrCtF,EAAW,CACP+B,EAAUkpB,UAAU,eACpBhqB,EAAW,cAAeN,SAC3BsC,EAAmBS,UAAW,mBAAe,GAChD1D,EAAW,CACP+B,EAAUkpB,UAAU,oBACpBhqB,EAAW,cAAegB,EAAmBipB,mBAC9CjoB,EAAmBS,UAAW,wBAAoB,GACrD1D,EAAW,CACP+B,EAAUkpB,UAAU,gBACpBhqB,EAAW,cAAeU,EAAewB,eAC1CF,EAAmBS,UAAW,oBAAgB,GACjD1D,EAAW,CACP+B,EAAUkpB,UAAU,cACpBhqB,EAAW,cAAekqB,UAC3BloB,EAAmBS,UAAW,kBAAc,GAC/C1D,EAAW,CACP+B,EAAUkpB,UAAU,WACpBhqB,EAAW,cAAea,EAAUspB,UACrCnoB,EAAmBS,UAAW,eAAW,GAC5C1D,EAAW,CACP+B,EAAUkpB,UAAU,aACpBhqB,EAAW,cAAee,EAAYqpB,YACvCpoB,EAAmBS,UAAW,iBAAa,GAC9C1D,EAAW,CACP+B,EAAUkpB,UAAU,eACpBhqB,EAAW,cAAeiB,EAAcopB,cACzCroB,EAAmBS,UAAW,mBAAe,GAChD1D,EAAW,CACP+B,EAAUkpB,UAAU,wBACpBhqB,EAAW,cAAeqB,EAAuBipB,uBAClDtoB,EAAmBS,UAAW,4BAAwB,GACzD1D,EAAW,CACP+B,EAAUkpB,UAAU,WACpBhqB,EAAW,cAAec,EAAUypB,UACrCvoB,EAAmBS,UAAW,eAAW,GAC5C1D,EAAW,CACPqB,EAAQ,EAAGU,EAAU0pB,UAAU,YAAapqB,EAAQ,EAAGU,EAAU0pB,UAAU,cAC3ExqB,EAAW,cAAeyqB,UAC1BzqB,EAAW,oBAAqB,CAACa,EAAUspB,QAASppB,EAAYqpB,YAChEpqB,EAAW,yBAAqB,IACjCgC,EAAmBS,UAAW,SAAU,MAC3C1D,EAAW,CACP+B,EAAU4pB,WACV1qB,EAAW,cAAeyqB,UAC1BzqB,EAAW,oBAAqB,IAChCA,EAAW,yBAAqB,IACjCgC,EAAmBS,UAAW,UAAW,MAC5C1D,EAAW,CACP+B,EAAU6pB,cACV3qB,EAAW,cAAeyqB,UAC1BzqB,EAAW,oBAAqB,IAChCA,EAAW,yBAAqB,IACjCgC,EAAmBS,UAAW,OAAQ,MACzCT,EAAqBQ,EAAuBzD,EAAW,CACnD+B,EAAU8pB,KAAK,uBAChB5oB,GACIA,EArxC4B,GAuxCvCzB,EAAQyB,mBAAqBA,G;;;;;;GCx0C7B,IAAIjD,EAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAE5DO,EAAchB,MAAQA,KAAKgB,YAAe,SAAUC,EAAGC,GACvD,GAAuB,kBAAZN,SAAoD,oBAArBA,QAAQO,SAAyB,OAAOP,QAAQO,SAASF,EAAGC,IAE1GR,OAAOK,eAAeQ,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIM,EAAY,EAAQ,QACpBH,EAAc,EAAQ,QACtBkqB,EAAsB,EAAQ,QAC9BC,EAAoB,EAAQ,QAC5BC,EAA0B,EAAQ,QAClCC,EAA0B,EAAQ,QAClChqB,EAAqB,EAAQ,QAC7BiqB,EAAuB,EAAQ,QAC/BxqB,EAAU,EAAQ,QAClByqB,EAAmC,WACnC,SAASA,IACLlsB,KAAKmsB,2BAA6B,EAkNtC,OAhNAD,EAAkBzoB,UAAUS,KAAO,WAC/BlE,KAAK+jB,YAAc/jB,KAAKosB,mBAAmBtI,qBAE/CoI,EAAkBzoB,UAAU4oB,iBAAmB,SAAUC,GACrDtsB,KAAKssB,UAAYA,GAErBJ,EAAkBzoB,UAAU8oB,uBAAyB,SAAUjE,GAC3D,IAAInoB,EAAMmoB,EAAMkE,OAASlE,EAAMmE,QAC3BC,EAAMpE,EAAMqE,OACZC,EAAOtE,EAAMuE,QACbC,EAAc9sB,KAAK+sB,kBAAkBC,wBAAwB1E,GACjE,IAAKwE,EACD,OAAO,EAEX,IAAIG,GAAY,EAChB,OAAQ9sB,GACJ,KAAKwB,EAAYmH,UAAUokB,cAC3B,KAAKvrB,EAAYmH,UAAUqkB,aAElBP,GAASF,IACV1sB,KAAKotB,eAAejtB,GACpB8sB,GAAY,GAEhB,MACJ,KAAKtrB,EAAYmH,UAAUukB,SAC3B,KAAK1rB,EAAYmH,UAAUwkB,UAEnBV,IAASF,IACT1sB,KAAKutB,kBAAkBptB,EAAK2sB,GAC5BG,GAAY,GAEhB,MACJ,KAAKtrB,EAAYmH,UAAU0kB,OAC3B,KAAK7rB,EAAYmH,UAAU2kB,SAEnBb,IAASF,IACT1sB,KAAK0tB,eAAevtB,EAAK2sB,GACzBG,GAAY,GAEhB,MACJ,KAAKtrB,EAAYmH,UAAU6kB,cAElBf,GAASF,IACV1sB,KAAK4tB,WAAWd,GAChBG,GAAY,GAEhB,MACJ,KAAKtrB,EAAYmH,UAAU+kB,YAElBjB,GAASF,IACV1sB,KAAK8tB,SAAShB,GACdG,GAAY,GAEhB,MAKR,OAHIA,GACA3E,EAAMyF,iBAEHd,GASXf,EAAkBzoB,UAAUuqB,iCAAmC,WAC3D,IAAIC,GAAM,IAAIC,MAAOC,UACjBC,EAAOH,EAAMjuB,KAAKmsB,2BACtB,OAAQiC,EAAO,KAEnBlC,EAAkBzoB,UAAU4qB,8BAAgC,WACxDruB,KAAKmsB,4BAA6B,IAAI+B,MAAOC,WAEjDjC,EAAkBzoB,UAAUmqB,WAAa,SAAUU,GAC/C,IAAItuB,KAAKguB,mCAAT,CAGA,IAAIO,EAAiBvuB,KAAKssB,UAAUkC,qBAChCC,EAAkBF,EAAeG,OAASH,EAAeI,IACzD3uB,KAAKssB,UAAUsC,8BACfH,GAAmBzuB,KAAK+jB,aAE5B,IAAI8K,EAAoB7uB,KAAK8uB,gBAAgBC,iBACzCC,EAAyBT,EAAeI,IAAMF,EAC9CQ,EAAuBjvB,KAAK8uB,gBAAgBI,mBAAmBF,EAAyBH,GACxFM,EAAcF,EACdG,EAAmBpvB,KAAK8uB,gBAAgBO,OAAOf,EAASgB,UAAUC,OAClEC,EAAgBJ,EAAmBX,EAAkBI,EACrDY,EAAazvB,KAAK8uB,gBAAgBI,mBAAmBM,EAAgBX,GACrEa,EAAc1vB,KAAK8uB,gBAAgBa,iBACnCF,EAAaC,IACbD,EAAaC,GAEbP,EAAcO,IACdP,EAAcO,GAElB1vB,KAAK4vB,WAAWT,EAAa,MAAO,KAAMM,EAAYnB,EAASuB,QAC/D7vB,KAAKquB,kCAETnC,EAAkBzoB,UAAUqqB,SAAW,SAAUQ,GAC7C,IAAItuB,KAAKguB,mCAAT,CAGA,IAAIO,EAAiBvuB,KAAKssB,UAAUkC,qBAChCC,EAAkBF,EAAeG,OAASH,EAAeI,IACzD3uB,KAAKssB,UAAUsC,8BACfH,GAAmBzuB,KAAK+jB,aAE5B,IAAI8K,EAAoB7uB,KAAK8uB,gBAAgBC,iBACzCe,EAAsBvB,EAAeI,IACrCoB,EAAoB/vB,KAAK8uB,gBAAgBI,mBAAmBY,EAAsBjB,GAClFM,EAAcY,EACdC,EAAiBhwB,KAAK8uB,gBAAgBO,OAAOf,EAASgB,UACtDE,EAAgBQ,EAAeT,OAASS,EAAexH,UAAYiG,EAAkBI,EACrFY,EAAazvB,KAAK8uB,gBAAgBI,mBAAmBM,EAAgBX,GACrEoB,EAAWjwB,KAAK8uB,gBAAgBoB,kBAChCT,EAAaQ,IACbR,EAAaQ,GAEbd,EAAcc,IACdd,EAAcc,GAElBjwB,KAAK4vB,WAAWT,EAAa,SAAU,KAAMM,EAAYnB,EAASuB,QAClE7vB,KAAKquB,kCAOTnC,EAAkBzoB,UAAUmsB,WAAa,SAAUT,EAAagB,EAAYC,EAAcX,EAAYY,GAYlG,GAXI5uB,EAAQqF,EAAEyR,OAAO6X,IACjBpwB,KAAKssB,UAAUgE,oBAAoBF,GAEnC3uB,EAAQqF,EAAEyR,OAAO4W,IACjBnvB,KAAKssB,UAAUiE,mBAAmBpB,EAAagB,GAGnDnwB,KAAKwwB,sBAAsBC,iBAG3BzwB,KAAK0wB,sBAAsBC,eAAelB,EAAYY,EAAa,MAAM,GACrErwB,KAAK4wB,gBAAiB,CACtB,IAAIC,EAAe,CAAEvB,SAAUG,EAAYqB,UAAW,KAAMjB,OAAQQ,GACpErwB,KAAK4wB,gBAAgBG,eAAeF,KAI5C3E,EAAkBzoB,UAAUiqB,eAAiB,SAAUvtB,EAAKmuB,GACxD,IAAI0C,EAAQ7wB,IAAQwB,EAAYmH,UAAU0kB,OACtCyD,EAAqBD,EAAQ,EAAIhxB,KAAK8uB,gBAAgBa,iBAC1D3vB,KAAK4vB,WAAWqB,EAAoB,KAAM3C,EAASuB,OAAQoB,EAAoB3C,EAASuB,SAG5F3D,EAAkBzoB,UAAU8pB,kBAAoB,SAAUptB,EAAKmuB,GAC3D,IAAI4C,EAAU/wB,IAAQwB,EAAYmH,UAAUukB,SACxC8D,EAAanxB,KAAKupB,iBAAiB6H,yBACnCC,EAAiBH,EAAUC,EAAW,GAAK1vB,EAAQqF,EAAEwqB,KAAKH,GAC9DnxB,KAAK4vB,WAAWtB,EAASgB,SAAU,KAAM+B,EAAgB/C,EAASgB,SAAU+B,IAIhFnF,EAAkBzoB,UAAU2pB,eAAiB,SAAUjtB,GACnD,IAAIoxB,EAAUpxB,IAAQwB,EAAYmH,UAAUokB,cACxCiE,EAAanxB,KAAKupB,iBAAiB6H,yBACnCC,EAAiBE,EAAUJ,EAAW,GAAK1vB,EAAQqF,EAAEwqB,KAAKH,GAC1DF,EAAqBM,EAAU,EAAIvxB,KAAK8uB,gBAAgBa,iBAC5D3vB,KAAK4vB,WAAWqB,EAAoB,KAAMI,EAAgBJ,EAAoBI,IAElFtxB,EAAW,CACP+B,EAAUkpB,UAAU,qBACpBhqB,EAAW,cAAe6qB,EAAoB2F,oBAC/CtF,EAAkBzoB,UAAW,yBAAqB,GACrD1D,EAAW,CACP+B,EAAUkpB,UAAU,mBACpBhqB,EAAW,cAAe8qB,EAAkB2F,kBAC7CvF,EAAkBzoB,UAAW,uBAAmB,GACnD1D,EAAW,CACP+B,EAAUkpB,UAAU,yBACpBhqB,EAAW,cAAe+qB,EAAwB2F,wBACnDxF,EAAkBzoB,UAAW,6BAAyB,GACzD1D,EAAW,CACP+B,EAAUkpB,UAAU,yBACpBhqB,EAAW,cAAegrB,EAAwB2F,wBACnDzF,EAAkBzoB,UAAW,6BAAyB,GACzD1D,EAAW,CACP+B,EAAU8vB,SAAS,mBACnB5wB,EAAW,cAAeN,SAC3BwrB,EAAkBzoB,UAAW,uBAAmB,GACnD1D,EAAW,CACP+B,EAAUkpB,UAAU,oBACpBhqB,EAAW,cAAegB,EAAmBipB,mBAC9CiB,EAAkBzoB,UAAW,wBAAoB,GACpD1D,EAAW,CACP+B,EAAUkpB,UAAU,sBACpBhqB,EAAW,cAAeirB,EAAqBjpB,qBAChDkpB,EAAkBzoB,UAAW,0BAAsB,GACtD1D,EAAW,CACP+B,EAAU6pB,cACV3qB,EAAW,cAAeyqB,UAC1BzqB,EAAW,oBAAqB,IAChCA,EAAW,yBAAqB,IACjCkrB,EAAkBzoB,UAAW,OAAQ,MACxCyoB,EAAoBnsB,EAAW,CAC3B+B,EAAU8pB,KAAK,sBAChBM,GACIA,EApN2B,GAsNtC3qB,EAAQ2qB,kBAAoBA,G;;;;;;GCzO5B,IAAInsB,EAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAE5DO,EAAchB,MAAQA,KAAKgB,YAAe,SAAUC,EAAGC,GACvD,GAAuB,kBAAZN,SAAoD,oBAArBA,QAAQO,SAAyB,OAAOP,QAAQO,SAASF,EAAGC,IAE1GR,OAAOK,eAAeQ,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIM,EAAY,EAAQ,QACpBJ,EAAiB,EAAQ,QACzBmwB,EAAW,EAAQ,QACnB7vB,EAAqB,EAAQ,QAC7BD,EAAc,EAAQ,QACtBF,EAAY,EAAQ,QACpBoqB,EAAuB,EAAQ,QAC/B6F,EAAsC,WACtC,SAASA,KA+CT,OA7CAA,EAAqBruB,UAAUsuB,kBAAoB,SAAU9I,GACzD,IAAI+I,EAAsBhyB,KAAKiyB,0BAA4BhJ,EAAOgJ,yBAC9DjyB,KAAKkyB,wBAA0BjJ,EAAOiJ,sBAC1C,GAAIF,EAAqB,CACrBhyB,KAAKiyB,wBAA0BhJ,EAAOgJ,wBACtCjyB,KAAKkyB,sBAAwBjJ,EAAOiJ,sBACpC,IAAIlR,EAAU,CACVC,KAAM4Q,EAASxrB,OAAO8rB,gCACtBruB,IAAK9D,KAAK2D,QACVC,UAAW5D,KAAK4D,WAEpB5D,KAAKwE,aAAa2c,cAAcH,KAIxC8Q,EAAqBruB,UAAUmrB,0BAA4B,WACvD,OAAO5uB,KAAKiyB,yBAGhBH,EAAqBruB,UAAU2uB,wBAA0B,WACrD,OAAOpyB,KAAKkyB,uBAEhBnyB,EAAW,CACP+B,EAAUkpB,UAAU,gBACpBhqB,EAAW,cAAeU,EAAewB,eAC1C4uB,EAAqBruB,UAAW,oBAAgB,GACnD1D,EAAW,CACP+B,EAAUkpB,UAAU,oBACpBhqB,EAAW,cAAegB,EAAmBipB,mBAC9C6G,EAAqBruB,UAAW,wBAAoB,GACvD1D,EAAW,CACP+B,EAAUkpB,UAAU,aACpBhqB,EAAW,cAAee,EAAYqpB,YACvC0G,EAAqBruB,UAAW,iBAAa,GAChD1D,EAAW,CACP+B,EAAUkpB,UAAU,WACpBhqB,EAAW,cAAea,EAAUspB,UACrC2G,EAAqBruB,UAAW,eAAW,GAC9C1D,EAAW,CACP+B,EAAUkpB,UAAU,sBACpBhqB,EAAW,cAAeirB,EAAqBjpB,qBAChD8uB,EAAqBruB,UAAW,0BAAsB,GACzDquB,EAAuB/xB,EAAW,CAC9B+B,EAAU8pB,KAAK,yBAChBkG,GACIA,EAhD8B,GAkDzCvwB,EAAQuwB,qBAAuBA,G;;;;;;GCnE/B,IAAI/xB,EAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAE5DO,EAAchB,MAAQA,KAAKgB,YAAe,SAAUC,EAAGC,GACvD,GAAuB,kBAAZN,SAAoD,oBAArBA,QAAQO,SAAyB,OAAOP,QAAQO,SAASF,EAAGC,IAE1GR,OAAOK,eAAeQ,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI6wB,EAAuB,EAAQ,QAC/BvwB,EAAY,EAAQ,QACpBiqB,EAA0B,EAAQ,QAClCE,EAAuB,EAAQ,QAC/BvqB,EAAiB,EAAQ,QACzBU,EAAc,EAAQ,QACtBT,EAAc,EAAQ,QACtB2wB,EAAgC,WAChC,SAASA,EAAeC,EAAYjG,GAChCtsB,KAAKuyB,WAAaA,EAClBvyB,KAAKssB,UAAYA,EAwLrB,OAtLAgG,EAAe7uB,UAAU+uB,cAAgB,WACjCxyB,KAAKosB,mBAAmBjjB,sBACxBnJ,KAAKyyB,mBAAqBzyB,KAAK0yB,WAGvCJ,EAAe7uB,UAAUkvB,aAAe,WACpC,OAAO3yB,KAAKuyB,YAEhBD,EAAe7uB,UAAUmvB,eAAiB,SAAU3R,GAChD,OAAOA,IAASoR,EAAqBQ,eAAeC,SAExDR,EAAe7uB,UAAUsvB,YAAc,WACnC,OAAOV,EAAqBW,mBAAmBC,WAEnDX,EAAe7uB,UAAUyvB,YAAc,SAAUC,GAG7CnzB,KAAKmhB,cAAc/e,EAAYiE,OAAO+sB,qBAAsBD,GAC5DnzB,KAAKqzB,mBAAmBC,aAAajB,EAAqBW,mBAAmBC,WAC7EE,EAAcI,SAAS3K,QAAQ4K,aAAY,GAC3CxzB,KAAKyzB,kBAAkBN,IAE3Bb,EAAe7uB,UAAUiwB,WAAa,SAAUP,GAC5CnzB,KAAKyzB,kBAAkBN,IAE3Bb,EAAe7uB,UAAUgwB,kBAAoB,SAAUN,GAEnDnzB,KAAKmhB,cAAc/e,EAAYiE,OAAOstB,oBAAqBR,GAC3DnzB,KAAK4zB,kBAAoBT,EACzB,IAAIU,EAAQ7zB,KAAK8zB,mBAAmBX,EAAcY,GAC9CC,EAAch0B,KAAKosB,mBAAmBtf,mBACtCknB,GACAh0B,KAAKi0B,cAAcd,EAAeU,GAEtC7zB,KAAKk0B,wBAAwBL,IAEjCvB,EAAe7uB,UAAUwwB,cAAgB,SAAUd,EAAeU,GAC9D,IAAIjL,EAAUuK,EAAcI,SAAS3K,QACjCuL,EAAcn0B,KAAKyyB,mBAAmB2B,iBAAiBxL,EAASiL,GAChEM,IACAn0B,KAAK0wB,sBAAsB2D,mBACvBr0B,KAAK4wB,iBACL5wB,KAAK4wB,gBAAgB0D,wBAIjChC,EAAe7uB,UAAUqwB,mBAAqB,SAAUD,GACpD,IAAIU,EAAsBv0B,KAAKosB,mBAAmBlf,iBAAmBvL,EAAYmH,UAAUwE,kBAC3F,GAAIinB,EAAqB,CACrB,IAAIC,EAAax0B,KAAKssB,UAAUkC,qBAChC,OAAOqF,EAAQW,EAAW7F,IAG1B,OAAOkF,GAGfvB,EAAe7uB,UAAUywB,wBAA0B,SAAUL,GAEzD,IAAIW,EAAax0B,KAAKssB,UAAUkC,qBAEhCxuB,KAAKy0B,aAAeZ,EAASW,EAAW7F,IAAM,GAC9C3uB,KAAK00B,eAAiBb,EAASW,EAAW9F,OAAS,GAG/C1uB,KAAKy0B,cAAgBz0B,KAAK00B,eAC1B10B,KAAK20B,wBAGL30B,KAAK40B,yBAGbtC,EAAe7uB,UAAUkxB,sBAAwB,WACxC30B,KAAK60B,mBACN70B,KAAK80B,cAAgB,EACrB90B,KAAK60B,iBAAmBE,OAAOC,YAAYh1B,KAAKi1B,aAAatwB,KAAK3E,MAAO,OAGjFsyB,EAAe7uB,UAAUmxB,sBAAwB,WACzC50B,KAAKi1B,eACLF,OAAOG,cAAcl1B,KAAK60B,kBAC1B70B,KAAK60B,iBAAmB,OAGhCvC,EAAe7uB,UAAUwxB,aAAe,WAGpC,IAAIE,EAMAC,EALJp1B,KAAK80B,gBACLK,EAAe,GAA2B,EAArBn1B,KAAK80B,cACtBK,EAAe,MACfA,EAAe,KAGfn1B,KAAK00B,eACLU,EAAcp1B,KAAKssB,UAAU+I,iBAAiBF,GAEzCn1B,KAAKy0B,eACVW,EAAcp1B,KAAKssB,UAAU+I,kBAAkBF,IAE/B,IAAhBC,GACAp1B,KAAK0zB,WAAW1zB,KAAK4zB,oBAM7BtB,EAAe7uB,UAAU0d,cAAgB,SAAUF,EAAMkS,GACrD,IAQImC,EARAC,EAAcv1B,KAAK8zB,mBAAmBX,EAAcY,GACpDyB,GAAa,EACbC,EAAW,KACXC,EAAqBH,EAAcv1B,KAAK0yB,SAASiD,uBAMrD,OALKD,IACDF,EAAYx1B,KAAK0yB,SAASxD,mBAAmBqG,GAC7CE,EAAWz1B,KAAK0yB,SAASrD,OAAOmG,IAG5BrC,EAAcyC,YAClB,KAAKvD,EAAqBwD,WAAWC,KACjCR,EAAmB,OACnB,MACJ,KAAKjD,EAAqBwD,WAAWE,GACjCT,EAAmB,KACnB,MACJ,QACIA,EAAmB,KACnB,MAER,IAAIhN,EAAQ,CACRrH,KAAMA,EACNnd,IAAK9D,KAAKosB,mBAAmBna,SAC7BrO,UAAW5D,KAAKosB,mBAAmBla,eACnCoW,MAAO6K,EAAc7K,MACrBzF,KAAMsQ,EAAcI,SAAS3K,QAC7B4M,UAAWA,EACXC,SAAUA,EACV1B,EAAGwB,EACHK,WAAYN,GAEhBt1B,KAAKwE,aAAa2c,cAAcmH,IAEpCgK,EAAe7uB,UAAUuyB,YAAc,SAAU7C,GAC7CnzB,KAAKmhB,cAAc/e,EAAYiE,OAAO4vB,qBAAsB9C,GAC5DnzB,KAAKk2B,aAAa/C,IAEtBb,EAAe7uB,UAAU0yB,WAAa,SAAUhD,GAC5CnzB,KAAKmhB,cAAc/e,EAAYiE,OAAO+vB,mBAAoBjD,GAC1DnzB,KAAKk2B,aAAa/C,IAEtBb,EAAe7uB,UAAUyyB,aAAe,SAAU/C,GAC9CnzB,KAAK40B,wBACLzB,EAAcI,SAAS3K,QAAQ4K,aAAY,IAE/CzzB,EAAW,CACP+B,EAAUkpB,UAAU,sBACpBhqB,EAAW,cAAeqxB,EAAqBW,qBAChDV,EAAe7uB,UAAW,0BAAsB,GACnD1D,EAAW,CACP+B,EAAUkpB,UAAU,YACpBhqB,EAAW,cAAeN,SAC3B4xB,EAAe7uB,UAAW,gBAAY,GACzC1D,EAAW,CACP+B,EAAUkpB,UAAU,yBACpBhqB,EAAW,cAAe+qB,EAAwB2F,wBACnDY,EAAe7uB,UAAW,6BAAyB,GACtD1D,EAAW,CACP+B,EAAUkpB,UAAU,sBACpBhqB,EAAW,cAAeirB,EAAqBjpB,qBAChDsvB,EAAe7uB,UAAW,0BAAsB,GACnD1D,EAAW,CACP+B,EAAU8vB,SAAS,mBACnB5wB,EAAW,cAAeN,SAC3B4xB,EAAe7uB,UAAW,uBAAmB,GAChD1D,EAAW,CACP+B,EAAUkpB,UAAU,gBACpBhqB,EAAW,cAAeU,EAAewB,eAC1CovB,EAAe7uB,UAAW,oBAAgB,GAC7C1D,EAAW,CACP+B,EAAU6pB,cACV3qB,EAAW,cAAeyqB,UAC1BzqB,EAAW,oBAAqB,IAChCA,EAAW,yBAAqB,IACjCsxB,EAAe7uB,UAAW,gBAAiB,MACvC6uB,EA3LwB,GA6LnC/wB,EAAQ+wB,eAAiBA,G;;;;;;GC9MzB,IAAI+D,EAAar2B,MAAQA,KAAKq2B,WAAc,WACxC,IAAIC,EAAgB,SAAUj2B,EAAGk2B,GAI7B,OAHAD,EAAgB51B,OAAO81B,gBAClB,CAAEC,UAAW,cAAgBzsB,OAAS,SAAU3J,EAAGk2B,GAAKl2B,EAAEo2B,UAAYF,IACvE,SAAUl2B,EAAGk2B,GAAK,IAAK,IAAIG,KAAKH,EAAOA,EAAEI,eAAeD,KAAIr2B,EAAEq2B,GAAKH,EAAEG,KAClEJ,EAAcj2B,EAAGk2B,IAE5B,OAAO,SAAUl2B,EAAGk2B,GAEhB,SAASK,IAAO52B,KAAK62B,YAAcx2B,EADnCi2B,EAAcj2B,EAAGk2B,GAEjBl2B,EAAEoD,UAAkB,OAAN8yB,EAAa71B,OAAOo2B,OAAOP,IAAMK,EAAGnzB,UAAY8yB,EAAE9yB,UAAW,IAAImzB,IAV3C,GAaxC72B,EAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAE5DO,EAAchB,MAAQA,KAAKgB,YAAe,SAAUC,EAAGC,GACvD,GAAuB,kBAAZN,SAAoD,oBAArBA,QAAQO,SAAyB,OAAOP,QAAQO,SAASF,EAAGC,IAE1GR,OAAOK,eAAeQ,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIyqB,EAAuB,EAAQ,QAC/BjqB,EAAqB,EAAQ,QAC7BD,EAAc,EAAQ,QACtBg1B,EAAgB,EAAQ,QACxBj1B,EAAY,EAAQ,QACpBJ,EAAiB,EAAQ,QACzBmwB,EAAW,EAAQ,QACnBmF,EAAgB,EAAQ,QACxBr1B,EAAc,EAAQ,QACtBkqB,EAAsB,EAAQ,QAC9BE,EAA0B,EAAQ,QAClCkL,EAAyB,EAAQ,QACjCC,EAA0B,EAAQ,QAClCpL,EAAoB,EAAQ,QAC5BqL,EAAkC,EAAQ,QAC1CC,EAAuB,EAAQ,QAC/BC,EAAwB,EAAQ,QAChCC,EAAmB,EAAQ,QAC3Bz1B,EAAY,EAAQ,QACpBmqB,EAA0B,EAAQ,QAClCuL,EAAY,EAAQ,QACpBC,EAAsB,EAAQ,QAC9BC,EAAiB,EAAQ,QACzBC,EAAkB,EAAQ,QAC1BrF,EAAuB,EAAQ,QAC/BsF,EAAmB,EAAQ,QAC3BC,EAAuB,EAAQ,QAC/BC,EAA4B,EAAQ,QACpCC,EAAc,EAAQ,QACtBz1B,EAAyB,EAAQ,QACjC01B,EAA2B,EAAQ,QACnCC,EAAwB,EAAQ,QAChCC,EAAU,EAAQ,QAClBC,EAAyB,EAAQ,QACjCC,EAAmB,EAAQ,QAC3BC,EAA0B,EAAQ,QAClC32B,EAAU,EAAQ,QAGlB42B,EAA6B,8hGAC7BC,EAA2B,SAAUC,GAErC,SAASD,IACL,IAAI/yB,EAAQgzB,EAAOC,KAAKx4B,KAAMq4B,IAA+Br4B,KAK7D,OAJAuF,EAAMkzB,YAAc,EACpBlzB,EAAMmzB,WAAa,EACnBnzB,EAAMozB,eAAiB,EACvBpzB,EAAMqzB,yCAA2Cn3B,EAAQqF,EAAE+xB,SAAStzB,EAAMuzB,iCAAiCn0B,KAAKY,GAAQ,KACjHA,EA+xCX,OAtyCA8wB,EAAUiC,EAAWC,GASrBD,EAAU70B,UAAU+qB,mBAAqB,WACrC,IAAI3jB,EAAS,CACT8jB,IAAK3uB,KAAK+4B,cAAcL,UACxBhK,OAAQ1uB,KAAK+4B,cAAcL,UAAY14B,KAAK+4B,cAAcC,cAE9D,OAAOnuB,GAEXytB,EAAU70B,UAAUw1B,mBAAqB,WACrC,IAAIpuB,EAAS,CACTquB,KAAMl5B,KAAKm5B,gBAAgBV,WAC3BW,MAAOp5B,KAAKm5B,gBAAgBV,WAAaz4B,KAAKm5B,gBAAgBE,aAElE,OAAOxuB,GAEXytB,EAAU70B,UAAU61B,iBAAmB,WACnCt5B,KAAKu5B,qBAETjB,EAAU70B,UAAU81B,kBAAoB,WACpC,IAAIC,EAAUx5B,KAAK8uB,gBAAgB0K,UAC/BrrB,EAA0BnO,KAAKosB,mBAAmBje,0BAClDsrB,EAASD,IAAYrrB,EAA0B,oBAAsB,cACzEnO,KAAKy5B,MAETnB,EAAU70B,UAAUi2B,mBAAqB,WAKjC15B,KAAKupB,iBAAiBoQ,YAAc35B,KAAK8uB,gBAAgB0K,WACzDx5B,KAAK45B,eAGbtB,EAAU70B,UAAUS,KAAO,WACvB,IAAIqB,EAAQvF,KACZA,KAAK+jB,YAAc/jB,KAAKosB,mBAAmBtI,oBAC3C9jB,KAAK6U,UAAY7U,KAAKosB,mBAAmBxX,cACzC5U,KAAK65B,YAAc75B,KAAKosB,mBAAmBlf,iBAAmBvL,EAAYmH,UAAUsE,iBAEpFpN,KAAKosB,mBAAmBhL,iBAAiBphB,KAAK85B,UAC9C95B,KAAKosB,mBAAmBhL,iBAAiBphB,KAAK+4B,eAC9C/4B,KAAK+5B,8BACL/5B,KAAKg6B,4BACLh6B,KAAKi6B,8BACLj6B,KAAKk6B,oBACLl6B,KAAKm6B,mBACLn6B,KAAKo6B,oBACDp6B,KAAKosB,mBAAmBjjB,sBAAwBnJ,KAAKosB,mBAAmB5X,cACxExU,KAAKq6B,qBAETr6B,KAAKs6B,qBAAqBt6B,KAAKosB,mBAAmBlQ,0BAClDlc,KAAKu6B,yBACLv6B,KAAKw6B,8BACLx6B,KAAKy6B,yBACLz6B,KAAK06B,oBACL16B,KAAK26B,oBACL36B,KAAK46B,0BACL56B,KAAK66B,mCACL76B,KAAK86B,yBACL96B,KAAK+6B,qBACD/6B,KAAKg7B,QACLh7B,KAAKi7B,uBAETj7B,KAAKk7B,iCACLl7B,KAAK2D,QAAQ0oB,iBAAiBrsB,MAC9BA,KAAKm7B,oBAAoB9O,iBAAiBrsB,MAC1CA,KAAKo7B,eAAe/O,iBAAiBrsB,MACrCA,KAAKq7B,kBAAkBhP,iBAAiBrsB,MACxCA,KAAKs7B,aAAajP,iBAAiBrsB,MACnCA,KAAK0pB,qBAAqB2C,iBAAiBrsB,MAC3CA,KAAKu7B,uBAAuBlP,iBAAiBrsB,MAC7CA,KAAKw7B,oBAAoBnP,iBAAiBrsB,MAC1CA,KAAKy7B,8BAA8BpP,iBAAiBrsB,MACpDA,KAAK07B,MAAMrP,iBAAiBrsB,MAC5BA,KAAK27B,YAAYtP,iBAAiBrsB,MAClCA,KAAKwwB,sBAAsBnE,iBAAiBrsB,MACxCA,KAAK4wB,iBACL5wB,KAAK4wB,gBAAgBvE,iBAAiBrsB,MAE1C,CAACA,KAAKm5B,gBAAiBn5B,KAAK+4B,eAAetzB,SAAQ,SAAUm2B,GACzD,IAAIC,EAAwBt2B,EAAMu2B,sBAAsBC,cAAcH,EAAUr2B,EAAMy2B,wBAAwBr3B,KAAKY,IACnHA,EAAM02B,gBAAe,WAAc,OAAOJ,WAGlDvD,EAAU70B,UAAUy4B,mBAAqB,WACrC,IAAIC,EAAiBn8B,KAAKosB,mBAAmBlf,iBAAmBvL,EAAYmH,UAAUsE,iBAClFpN,KAAK65B,cAAgBsC,IACrBn8B,KAAK65B,YAAcsC,EACnBn8B,KAAKo8B,wBAELp8B,KAAKu6B,2BAGbjC,EAAU70B,UAAUu4B,wBAA0B,WACtCv6B,EAAQqF,EAAEu1B,UAAUr8B,KAAKm5B,iBACzBn5B,KAAKs8B,0BAGLt8B,KAAKu8B,WAAa,GAI1BjE,EAAU70B,UAAU+4B,mBAAqB,SAAUC,GAC/Cz8B,KAAKyhB,oBAAoB,mBAAoBgb,IAEjDnE,EAAU70B,UAAU62B,qBAAuB,SAAUoC,QAC9B,IAAfA,IAAyBA,GAAa,GAC1C,CAAC18B,KAAK28B,KAAM38B,KAAK+4B,cAAe/4B,KAAK48B,SAChCn3B,SAAQ,SAAUo3B,GAAM,OAAOp7B,EAAQqF,EAAE2a,oBAAoBob,EAAI,gBAAiBH,OAE3FpE,EAAU70B,UAAUs3B,mBAAqB,WACrC,IAAI+B,EAAiB,IAAInF,EAAiBrF,eAAetyB,KAAK+4B,cAAe/4B,MAC7EA,KAAKkI,aAAa60B,SAASD,GAC3B98B,KAAKqzB,mBAAmB2J,cAAcF,IAE1CxE,EAAU70B,UAAUo3B,iCAAmC,WACnD,IAAIt1B,EAAQvF,KACZ,GAAKA,KAAKosB,mBAAmBnZ,kCAA7B,CAGA,IAAIgqB,EAAmB,SAAU3U,GAE7B,IAAI4U,EAAmB5U,EAAM6U,cAEzBC,GAAkB,EAClBC,EAAUH,EACd,MAAOz7B,EAAQqF,EAAEyR,OAAO8kB,KAAaD,EAAiB,CAClD,IAAIE,IAAY/3B,EAAM6mB,mBAAmB/kB,WAAWg2B,EAASjG,EAAqBmG,mBAAmBC,8BACjGC,EAASl4B,EAAMwzB,gBAAkBsE,GAAW93B,EAAMq3B,UAAYS,GAAW93B,EAAMo3B,OAASU,EAC5FD,EAAkBE,GAAWG,EAC7BJ,EAAUA,EAAQK,WAEjBN,GACD73B,EAAMo2B,YAAYgC,eAG1B39B,KAAK49B,4BAA4B59B,KAAK+4B,cAAe,WAAYkE,GACjEj9B,KAAK49B,4BAA4B59B,KAAK28B,KAAM,WAAYM,GACxDj9B,KAAK49B,4BAA4B59B,KAAK48B,QAAS,WAAYK,KAE/D3E,EAAU70B,UAAUw3B,qBAAuB,WACvC,IAAI11B,EAAQvF,KAER69B,GAAiB,EACjBnc,EAAW,WAEPmc,IAGJA,GAAiB,EACjB9I,OAAO+I,YAAW,WACdD,GAAiB,EACjBt4B,EAAMy1B,OAAO+C,WACd,KAIP/9B,KAAK49B,4BAA4B59B,KAAKwE,aAAcqtB,EAASxrB,OAAO23B,gCAAiCtc,GACrG1hB,KAAK49B,4BAA4B59B,KAAKwE,aAAcqtB,EAASxrB,OAAO43B,8BAA+Bvc,IAIvG4W,EAAU70B,UAAUg3B,uBAAyB,WACzCz6B,KAAKk+B,oBAAoB,aAAa,SAAU5V,GAC5C,GAAIA,EAAMpoB,kBAAkBi+B,iBAExB,OADA7V,EAAMyF,kBACC,MAInBuK,EAAU70B,UAAUy2B,kBAAoB,WACpCl6B,KAAK49B,4BAA4B59B,KAAKwE,aAAcqtB,EAASxrB,OAAO23B,gCAAiCh+B,KAAKo+B,0BAA0Bz5B,KAAK3E,OACzIA,KAAK49B,4BAA4B59B,KAAKwE,aAAcqtB,EAASxrB,OAAOg4B,sCAAuCr+B,KAAKk7B,+BAA+Bv2B,KAAK3E,OACpJA,KAAK49B,4BAA4B59B,KAAKwE,aAAcqtB,EAASxrB,OAAOi4B,8BAA+Bt+B,KAAKw6B,4BAA4B71B,KAAK3E,OACzIA,KAAK49B,4BAA4B59B,KAAKwE,aAAcqtB,EAASxrB,OAAOk4B,uBAAwBv+B,KAAKs5B,iBAAiB30B,KAAK3E,OACvHA,KAAK49B,4BAA4B59B,KAAKwE,aAAcqtB,EAASxrB,OAAOm4B,uBAAwBx+B,KAAKs5B,iBAAiB30B,KAAK3E,OACvHA,KAAK49B,4BAA4B59B,KAAKwE,aAAcqtB,EAASxrB,OAAOo4B,yBAA0Bz+B,KAAK05B,mBAAmB/0B,KAAK3E,OAC3HA,KAAK49B,4BAA4B59B,KAAKosB,mBAAoBH,EAAqBjpB,mBAAmBsnB,mBAAoBtqB,KAAKw6B,4BAA4B71B,KAAK3E,OAC5JA,KAAK49B,4BAA4B59B,KAAKosB,mBAAoBH,EAAqBjpB,mBAAmBynB,yBAA0BzqB,KAAKw6B,4BAA4B71B,KAAK3E,OAClKA,KAAK49B,4BAA4B59B,KAAKosB,mBAAoBH,EAAqBjpB,mBAAmB2nB,yBAA0B3qB,KAAKw6B,4BAA4B71B,KAAK3E,OAClKA,KAAK49B,4BAA4B59B,KAAKosB,mBAAoBH,EAAqBjpB,mBAAmB4nB,+BAAgC5qB,KAAKw6B,4BAA4B71B,KAAK3E,OACxKA,KAAK49B,4BAA4B59B,KAAKosB,mBAAoBH,EAAqBjpB,mBAAmB6nB,6BAA8B7qB,KAAKw6B,4BAA4B71B,KAAK3E,OACtKA,KAAK49B,4BAA4B59B,KAAKosB,mBAAoBH,EAAqBjpB,mBAAmBqC,gBAAiBrF,KAAKk8B,mBAAmBv3B,KAAK3E,QAEpJs4B,EAAU70B,UAAU02B,iBAAmB,WACnC,IAAI50B,EAAQvF,KACZ,GAAKA,KAAKosB,mBAAmBhT,2BACzB3X,EAAQqF,EAAEW,QAAQzH,KAAK4wB,iBAD3B,CAKA,IAAI8N,EAAa,CACb1+B,KAAK2+B,eACL3+B,KAAK4+B,gBACL5+B,KAAK6+B,iBACL7+B,KAAK28B,KACL38B,KAAK48B,SAET8B,EAAWj5B,SAAQ,SAAUq5B,GACzB,IAAI7V,EAAS,CACT8V,SAAUD,EACVE,YAAaz5B,EAAMqrB,gBAAgBoO,YAAYr6B,KAAKY,EAAMqrB,iBAC1DuF,WAAY5wB,EAAMqrB,gBAAgBuF,WAAWxxB,KAAKY,EAAMqrB,iBACxD8C,WAAYnuB,EAAMqrB,gBAAgB8C,WAAW/uB,KAAKY,EAAMqrB,kBAE5DrrB,EAAM05B,YAAYC,cAAcjW,GAChC1jB,EAAM02B,gBAAe,WAAc,OAAO12B,EAAM05B,YAAYE,iBAAiBlW,WAGrFqP,EAAU70B,UAAUi3B,kBAAoB,WACpC,IAAIn1B,EAAQvF,KACRo/B,EAAa,CAAC,QAAS,YAAa,WAAY,cAAe,YAAa,YAChFA,EAAW35B,SAAQ,SAAUmc,GACzB,IAAIF,EAAWnc,EAAM85B,kBAAkB16B,KAAKY,EAAOqc,GACnDrc,EAAM+5B,mBAAmB75B,SAAQ,SAAUq5B,GACvC,OAAOv5B,EAAMq4B,4BAA4BkB,EAAWld,EAAWF,UAI3E4W,EAAU70B,UAAUk3B,kBAAoB,WACpC,IAAIp1B,EAAQvF,KACRo/B,EAAa,CAAC,UAAW,YAC7BA,EAAW35B,SAAQ,SAAUmc,GACzB,IAAIF,EAAWnc,EAAMg6B,qBAAqB56B,KAAKY,EAAOqc,GACtDrc,EAAM+5B,mBAAmB75B,SAAQ,SAAUq5B,GACvCv5B,EAAMq4B,4BAA4BkB,EAAWld,EAAWF,UAIpE4W,EAAU70B,UAAUm3B,wBAA0B,WAC1C,IAAIr1B,EAAQvF,KAGR0hB,EAAW,SAAU8d,GACrB,IAAIt/B,EAASuB,EAAQqF,EAAE24B,UAAUD,GAC7Bt/B,IAAWqF,EAAMwzB,eAAiB74B,IAAWqF,EAAM4zB,kBAEnD5zB,EAAMm6B,cAAcF,EAAY,KAAM,KAAM,KAAM,MAClDj6B,EAAM0R,4BAA4BuoB,KAG1Cx/B,KAAK49B,4BAA4B59B,KAAK+4B,cAAe,cAAerX,IAIxE4W,EAAU70B,UAAUk8B,kBAAoB,WACpC,GAAK3/B,KAAK+4B,cAGV,OAAO/4B,KAAK+4B,cAAc6G,yBAE9BtH,EAAU70B,UAAUo8B,eAAiB,SAAUvX,GAC3C,IAAIwX,EAAgBr+B,EAAQqF,EAAE24B,UAAUnX,GACxC,MAAOwX,EAAe,CAClB,IAAIC,EAAc//B,KAAKosB,mBAAmB/kB,WAAWy4B,EAAevI,EAAUyI,QAAQC,2BACtF,GAAIF,EACA,OAAOA,EAEXD,EAAgBA,EAAcI,cAElC,OAAO,MAEX5H,EAAU70B,UAAU87B,qBAAuB,SAAU3d,EAAWue,GAC5D,IAAIC,EAAW3+B,EAAQqF,EAAEu5B,oBAAoBrgC,KAAKosB,mBAAoB+T,GACtE,GAAKC,EAAL,CAGA,IAAIxX,EAAUwX,EAASE,iBAAiBC,aACpC1Q,EAASuQ,EAASI,YAClBC,EAAUL,EAASM,YACnBC,GAAyBl/B,EAAQqF,EAAE85B,+BAA+B5gC,KAAKosB,mBAAoB+T,EAAevX,EAASiH,EAAQ4Q,GAC/H,GAAIE,EACA,OAAQ/e,GACJ,IAAK,UAED,IAAIif,GAAgBJ,GAAWzgC,KAAKq7B,kBAAkB9O,uBAAuB4T,GAExEU,GACDT,EAASU,UAAUX,GAEvBngC,KAAK+gC,sBAAsBZ,EAAeC,GAC1C,MACJ,IAAK,WACDA,EAASY,WAAWb,GACpB,MAGZ,GAAkB,YAAdve,EAAyB,CACzB,IAAIqf,EAAmBb,EAASc,YAAYf,EAAetO,EAASxrB,OAAO86B,qBAC3EnhC,KAAK07B,MAAMl3B,aAAa2c,cAAc8f,GAE1C,GAAkB,aAAdrf,EAA0B,CAC1B,IAAIwf,EAAoBhB,EAASc,YAAYf,EAAetO,EAASxrB,OAAOg7B,sBAC5ErhC,KAAK07B,MAAMl3B,aAAa2c,cAAcigB,MAG9C9I,EAAU70B,UAAUs9B,sBAAwB,SAAUZ,EAAeC,GAEjE,IAAKD,EAActT,SAAYsT,EAAcmB,WAMzClB,EAASM,aAKR1gC,KAAK+sB,kBAAkBwU,oBAAoBpB,GAGhD,OAAQA,EAAc3T,OAClB,KAAK7qB,EAAYmH,UAAU04B,MACvB,OAAOxhC,KAAKyhC,WAAWtB,GAC3B,KAAKx+B,EAAYmH,UAAU44B,MACvB,OAAO1hC,KAAK2hC,WAAWxB,GAC3B,KAAKx+B,EAAYmH,UAAU84B,MACvB,OAAO5hC,KAAK6hC,aAChB,KAAKlgC,EAAYmH,UAAUg5B,MACvB,OAAO9hC,KAAK+hC,WAAW5B,KAInC7H,EAAU70B,UAAUu+B,YAAc,WAC9BhiC,KAAK+4B,cAAcL,UAAY,GAEnCJ,EAAU70B,UAAU47B,kBAAoB,SAAUzd,EAAW4d,GACzD,GAAKx/B,KAAK+sB,kBAAkBwU,oBAAoB/B,KAC5C/9B,EAAQqF,EAAEm7B,2BAA2BzC,GADzC,CAIA,IAAI0C,EAAUliC,KAAK6/B,eAAeL,GAC9BY,EAAWpgC,KAAK+sB,kBAAkBoV,wBAAwB3C,GAC5C,gBAAd5d,EACA5hB,KAAKoiC,4BAA4B5C,EAAY,KAAM0C,EAAS9B,IAGxDA,GACAA,EAASiC,aAAazgB,EAAW4d,GAEjC0C,GACAA,EAAQG,aAAazgB,EAAW4d,IAGxCx/B,KAAKiX,4BAA4BuoB,KAErClH,EAAU70B,UAAUq3B,uBAAyB,WACzC,IAAIv1B,EAAQvF,KAEPyB,EAAQqF,EAAEw7B,mBAGftiC,KAAKs/B,mBAAmB75B,SAAQ,SAAUq5B,GACtC,IAAIyD,EAAgB,IAAI7K,EAAgB8K,cAAc1D,GAClD2D,EAAkB,SAAUna,GAC5B,IAAI4Z,EAAU38B,EAAMs6B,eAAevX,EAAMoa,YACrCtC,EAAW76B,EAAMwnB,kBAAkBoV,wBAAwB7Z,EAAMoa,YACrEn9B,EAAM68B,4BAA4B,KAAM9Z,EAAMoa,WAAYR,EAAS9B,IAEvE76B,EAAMq4B,4BAA4B2E,EAAe7K,EAAgB8K,cAAcG,eAAgBF,GAC/Fl9B,EAAM02B,gBAAe,WAAc,OAAOsG,EAAct+B,iBAGhEq0B,EAAU70B,UAAU2+B,4BAA8B,SAAU5C,EAAYkD,EAAYR,EAAS9B,GACzF,IAAIxX,EAAUsZ,EAAUA,EAAQ3B,aAAe,KAC3C1Q,EAASuQ,EAAWA,EAASI,YAAc,KAC3Ch/B,EAAQ,KACZ,GAAIquB,EAAQ,CACR,IAAI7O,EAAUwe,GAA0BkD,EACxCtC,EAASwC,6BAA6B5hB,GACtCxf,EAAQxB,KAAK6iC,aAAaC,SAASjT,EAAQjH,GAE/C5oB,KAAK0/B,cAAcF,EAAYkD,EAAY9Z,EAASiH,EAAQruB,IAEhE82B,EAAU70B,UAAUi8B,cAAgB,SAAUF,EAAYkD,EAAY9Z,EAASiH,EAAQruB,GAGnF,IAAKxB,KAAKosB,mBAAmB5U,qCAErBgoB,IAAeA,EAAW3S,UAAW2S,EAAW8B,UAIpDthC,KAAK+iC,qBAAuB/iC,KAAKosB,mBAAmB9U,wBAAyB,CAC7E,IAAI0rB,EAAexD,GAA0BkD,EAAWO,QAAQ,GAChEjjC,KAAK+iC,mBAAmBG,SAASta,EAASiH,EAAQruB,EAAOwhC,GACzD,IAAIG,EAAU3D,GAA0BkD,EACxCS,EAAQpV,mBAGhBuK,EAAU70B,UAAUwT,4BAA8B,SAAUuoB,GAKxD,IAAIpT,EAAqBpsB,KAAKosB,mBAC1BI,EAAQgT,EAAWhT,OACnBJ,EAAmBpV,iCAClBoV,EAAmBtV,gCAA4C,IAAV0V,IACtDgT,EAAWzR,kBAGnBuK,EAAU70B,UAAUg+B,WAAa,SAAUnZ,GACvC,IAAI8a,EAAKpjC,KAAMupB,EAAmB6Z,EAAG7Z,iBAAkB8Z,EAAiBD,EAAGC,eAAgBvU,EAAkBsU,EAAGtU,gBAAiB8B,EAAkBwS,EAAGxS,gBAClJ0S,EAAgB3hC,EAAYmH,UAAUw6B,cAAeC,EAAa5hC,EAAYmH,UAAUy6B,WAC5F,GAAI3S,GAAmB9B,EAAgB0U,iBAAkB,CACrD,IAAIC,EAAK,CACLJ,EAAe7J,QAAQ+J,GACvBF,EAAe7J,QAAQ8J,IACxBI,EAAmBD,EAAG,GAAIE,EAAsBF,EAAG,GAClDG,EAAgBF,EAAmB,KAAOH,EAC1CM,OAAc,EACdC,OAAS,EACTH,GACAE,EAAc,KACdC,EAAS9jC,KAAK8uB,gBAAgBiV,cAAgB,IAG9CF,EAAcP,EACdQ,EAAST,EAAe50B,yBAAyBjO,OAAS,GAE9D,IAAIwjC,EAAsBza,EAAiB6H,yBAC3C,GAAI3vB,EAAQqF,EAAEm9B,eAAeD,GACzB,OAEJpT,EAAgBsT,aAAa,CACzBC,cAAe,EACfC,eAAgBR,EAChBS,YAAaP,EACbQ,aAAcT,EACdU,YAAaP,EAAoB,GACjCQ,UAAW/iC,EAAQqF,EAAEwqB,KAAK0S,KAGlC1b,EAAMyF,kBAEVuK,EAAU70B,UAAUk+B,WAAa,SAAUrZ,GACvC,GAAKtoB,KAAKykC,mBAAoBzkC,KAAKosB,mBAAmBzQ,4BAAtD,CAGA,IAAI+oB,EAAc1kC,KAAK0wB,sBAAsBiU,iBAC7C3kC,KAAKykC,iBAAiBG,kBACtBtc,EAAMyF,iBAIF2W,GACA1kC,KAAK0wB,sBAAsBC,eAAe+T,EAAYpV,SAAUoV,EAAY7U,OAAQ6U,EAAY5T,WAAW,KAGnHwH,EAAU70B,UAAUo+B,WAAa,WACxB7hC,KAAK2H,aAAc3H,KAAKosB,mBAAmBtU,4BAGhD9X,KAAKykC,iBAAiBI,sBAE1BvM,EAAU70B,UAAUs+B,WAAa,SAAUzZ,GAClCtoB,KAAK2H,aAGV3H,KAAKykC,iBAAiBK,gBACtBxc,EAAMyF,mBASVuK,EAAU70B,UAAU8sB,mBAAqB,SAAUwU,EAAOC,GAEtD,IAAIhlC,KAAK65B,YAAT,CAGA,IAAIoL,EAAWjlC,KAAK8uB,gBAAgBiV,cACpC,GAAqB,kBAAVgB,GAAsBA,EAAQ,GAAKA,GAASE,EACnDngC,QAAQC,KAAK,6CAA+CggC,OADhE,CAIA/kC,KAAK8uB,gBAAgBoW,kBAAkBH,GACvC,IACII,EADAvc,EAAU5oB,KAAK8uB,gBAAgBO,OAAO0V,GAE1C,EAAG,CACC,IAAIK,EAAiBxc,EAAQ2G,OACzB8V,EAAoBzc,EAAQJ,UAC5B8c,EAAmBtlC,KAAK8uB,gBAAgBC,iBACxCwW,EAAc3c,EAAQ2G,OAAS+V,EAC/BE,EAAiBD,EAAc3c,EAAQJ,UACvC+F,EAAiBvuB,KAAKwuB,qBACtBiX,EAAezlC,KAAKs7B,aAAaoK,YACjCC,EAAapX,EAAeI,IAAM8W,EAClCG,EAAgBrX,EAAeG,OAAS+W,EACxCI,EAAiBD,EAAgBD,EAGjCG,EAAQ9lC,KAAKs7B,aAAayK,0BAA0BR,GACpDS,EAAWhmC,KAAKs7B,aAAayK,0BAA0BP,EAAiBK,GAExEI,EAAW7iC,KAAKkmB,KAAKwc,EAAQE,GAAY,EAAGT,GAC5CW,EAAmBP,EAAaJ,EAChCY,EAAmBP,EAAgBJ,EACnCY,EAAoB,KACP,QAAbpB,EACAoB,EAAoBN,EAEF,WAAbd,EACLoB,EAAoBJ,EAEF,WAAbhB,EACLoB,EAAoBH,EAEfC,EAELE,EAAoBN,EAEfK,IAELC,EAAoBJ,GAEE,OAAtBI,IACApmC,KAAK+4B,cAAcL,UAAY0N,EAC/BpmC,KAAK27B,YAAY0K,qBAMrBlB,EAAgCC,IAAmBxc,EAAQ2G,QACnD8V,IAAsBzc,EAAQJ,gBACjC2c,GAETnlC,KAAKwwB,sBAAsBC,oBAG/B6H,EAAU70B,UAAU6iC,eAAiB,WACjC,OAAOtmC,KAAKm5B,gBAAgBoN,aAEhCjO,EAAU70B,UAAU2uB,wBAA0B,WAC1C,IAAIrkB,EAA6B/N,KAAKosB,mBAAmBre,6BAEzD,OADAtM,EAAQqF,EAAE2a,oBAAoBzhB,KAAK+4B,cAAe,2BAA4BhrB,GACvEA,GAA8BtM,EAAQqF,EAAEsrB,wBAAwBpyB,KAAK+4B,gBAEhFT,EAAU70B,UAAUmrB,0BAA4B,WAC5C,OAAOntB,EAAQqF,EAAE8nB,0BAA0B5uB,KAAKm5B,kBAIpDb,EAAU70B,UAAU64B,wBAA0B,WAE1Ct8B,KAAKwmC,6BAELxmC,KAAKymC,kBAELzmC,KAAK0mC,8BACL1mC,KAAKu6B,0BAETjC,EAAU70B,UAAU+iC,2BAA6B,WAO7CxmC,KAAK2mC,iCACL7I,WAAW99B,KAAK2mC,+BAA+BhiC,KAAK3E,MAAO,MAE/Ds4B,EAAU70B,UAAUkjC,+BAAiC,WACjD,IAAI1d,EAAS,CACTgJ,yBAAyB,EACzBC,uBAAuB,GAE3BjJ,EAAOiJ,sBAAwBlyB,KAAKoyB,0BACpCnJ,EAAOgJ,wBAA0BjyB,KAAK4uB,4BACtC5uB,KAAK4mC,qBAAqB7U,kBAAkB9I,GAC5CjpB,KAAK6mC,2BAA2B5d,EAAOgJ,yBACvCjyB,KAAK8mC,gCAAgC7d,EAAOiJ,wBAEhDoG,EAAU70B,UAAUojC,2BAA6B,SAAUE,GACvD,IAAIt5B,EAA6BzN,KAAKosB,mBAAmB3e,6BACrDu5B,EAAaD,GAAW/mC,KAAKosB,mBAAmBtI,qBAA4B,EAC5EmjB,EAAuBx5B,EAA0C,EAAbu5B,EACpDE,EAAezlC,EAAQqF,EAAEqgC,eAAiBJ,EAC9C/mC,KAAKm5B,gBAAgBiO,MAAMre,OAAS,eAAiBie,EAAa,MAClEvlC,EAAQqF,EAAEugC,eAAernC,KAAKsnC,sBAAuBL,GAGrDxlC,EAAQqF,EAAEugC,eAAernC,KAAKunC,8BAA+BN,GAAuBC,EAAe,EAAI,IACvGzlC,EAAQqF,EAAEugC,eAAernC,KAAKwnC,+BAAgCP,IAElE3O,EAAU70B,UAAUqjC,gCAAkC,SAAUW,GAC5D,IAAIC,EAAWD,EAAO,SAAW,SACjCznC,KAAK28B,KAAKyK,MAAMO,UAAY3nC,KAAK48B,QAAQwK,MAAMO,UAAYD,EAC3D1nC,KAAK4nC,8BAETtP,EAAU70B,UAAUokC,eAAiB,WACjC,IAAIC,EAAc9nC,KAAKo7B,eAAe2M,oBAClC9C,EAAWjlC,KAAK8uB,gBAAgBiV,cAChCiE,GAASF,EAAc7C,GAAU3hC,WACrCtD,KAAK85B,SAASmO,aAAa,gBAAiBD,IAEhD1P,EAAU70B,UAAU6sB,oBAAsB,SAAUnwB,GAChD,IAAI0vB,EAAS7vB,KAAKupB,iBAAiB2e,cAAc/nC,GACjD,GAAK0vB,EAGL,GAAIA,EAAOsY,WACPrjC,QAAQC,KAAK,mCAAqC8qB,EAAOuY,YAAc,gDAAmDvY,EAAOwY,iBAGrI,GAAKroC,KAAKupB,iBAAiB+e,kBAAkBzY,GAA7C,CAIA,IAKI0Y,EACAC,EANAC,EAAe5Y,EAAO6Y,UACtBC,EAAgBF,EAAe5Y,EAAO+Y,iBACtCC,EAAgB7oC,KAAKm5B,gBAAgBoN,YACrChY,EAAiBvuB,KAAK8oC,8BACtBC,EAAY/oC,KAAKupB,iBAAiByf,wBAKlChpC,KAAK6U,WACL0zB,EAAoBQ,EAAYxa,EAAiBsa,EACjDL,EAAqBO,EAAYxa,IAGjCga,EAAoBha,EACpBia,EAAqBK,EAAgBta,GAEzC,IAAI0a,EAA0BV,EAAoBE,EAC9CS,EAA4BV,EAAqBG,EACjDQ,EAAwBN,EAAgBhZ,EAAO+Y,iBAC/CQ,EAAiBH,GAA2BE,EAC5CE,EAAkBH,EAClB9C,EAAoBpmC,KAAK8oC,+BACzBM,GAAkBC,KAEdjD,EADApmC,KAAK6U,UACeu0B,EAAkBL,EAAYF,EAAgBJ,EAAiBM,EAAYJ,EAG3ES,EAAiBX,EAAgBE,EAAgBE,EAEzE7oC,KAAKspC,4BAA4BlD,IASrCpmC,KAAK0mC,8BAEL1mC,KAAKwwB,sBAAsBC,sBA5CvB3rB,QAAQC,KAAK,oCA8CrBuzB,EAAU70B,UAAU42B,mBAAqB,WAChCr6B,KAAKosB,mBAAmBne,4BACzBjO,KAAKupC,eAAelP,sBAG5B/B,EAAU70B,UAAU+lC,kBAAoB,WAC/BxpC,KAAKosB,mBAAmBje,2BACzBnO,KAAKupC,eAAeC,qBAG5BlR,EAAU70B,UAAUm2B,YAAc,WAC9B55B,KAAKupC,eAAe3P,eAIxBtB,EAAU70B,UAAUgmC,iBAAmB,SAAUC,GAC7C,IAAInkC,EAAQvF,KACR2pC,EAAiB3pC,KAAK+4B,cAAcwN,YACpCoD,EAAiB,EACjB3pC,KAAKupB,iBAAiBkgB,iBAAiBE,EAAgB,yBAGvCp8B,IAAhBm8B,EACA3U,OAAO+I,YAAW,WACdv4B,EAAMkkC,iBAAiB,OACxB,GAEkB,MAAhBC,EACL3U,OAAO+I,YAAW,WACdv4B,EAAMkkC,iBAAiB,OACxB,KAEkB,MAAhBC,EACL3U,OAAO+I,YAAW,WACdv4B,EAAMkkC,kBAAkB,KACzB,KAGH3kC,QAAQC,KAAK,4IAKrBuzB,EAAU70B,UAAUmmC,mBAAqB,WACrC,OAAO5pC,KAAK6+B,kBAEhBvG,EAAU70B,UAAUomC,4BAA8B,WAC9C,MAAO,CAAC7pC,KAAKm5B,gBAAiBn5B,KAAK8pC,aAAc9pC,KAAK+pC,kBAE1DzR,EAAU70B,UAAUumC,4BAA8B,WAC9C,MAAO,CAAChqC,KAAK2+B,eAAgB3+B,KAAKiqC,YAAajqC,KAAKkqC,WAExD5R,EAAU70B,UAAU0mC,6BAA+B,WAC/C,MAAO,CAACnqC,KAAK4+B,gBAAiB5+B,KAAKoqC,aAAcpqC,KAAKqqC,YAE1D/R,EAAU70B,UAAUw2B,4BAA8B,WAC9C,IAAI10B,EAAQvF,KACZA,KAAKs/B,mBAAqB,CACtBt/B,KAAK2+B,eAAgB3+B,KAAK4+B,gBAAiB5+B,KAAK6+B,iBAChD7+B,KAAK28B,KAAM38B,KAAK48B,QAAS58B,KAAKsqC,qBAElCtqC,KAAKuqC,uBAAyB,CAC1BC,KAAM,IAAItT,EAAwBuT,sBAAsB,CACpDlY,WAAYvyB,KAAK6+B,iBACjB6L,SAAU1qC,KAAK2qC,mBACfC,UAAW5qC,KAAK+4B,gBAEpB8R,UAAW,IAAI3T,EAAwBuT,sBAAsB,CACzDlY,WAAYvyB,KAAKsqC,sBAErBQ,WAAY,IAAI5T,EAAwBuT,sBAAsB,CAAElY,WAAYvyB,KAAK2+B,iBACjFoM,YAAa,IAAI7T,EAAwBuT,sBAAsB,CAAElY,WAAYvyB,KAAK4+B,kBAClFoM,YAAa,IAAI9T,EAAwBuT,sBAAsB,CAAElY,WAAYvyB,KAAKirC,gBAClFC,sBAAuB,IAAIhU,EAAwBuT,sBAAsB,CAAElY,WAAYvyB,KAAKkqC,WAC5FiB,uBAAwB,IAAIjU,EAAwBuT,sBAAsB,CAAElY,WAAYvyB,KAAKqqC,YAC7Fe,qBAAsB,IAAIlU,EAAwBuT,sBAAsB,CACpElY,WAAYvyB,KAAKqrC,uBACjBC,oBAAoB,IAExBC,eAAgB,IAAIrU,EAAwBuT,sBAAsB,CAAElY,WAAYvyB,KAAKwrC,mBACrFC,yBAA0B,IAAIvU,EAAwBuT,sBAAsB,CAAElY,WAAYvyB,KAAKiqC,cAC/FyB,0BAA2B,IAAIxU,EAAwBuT,sBAAsB,CAAElY,WAAYvyB,KAAKoqC,eAChGuB,uBAAwB,IAAIzU,EAAwBuT,sBAAsB,CACtElY,WAAYvyB,KAAK4rC,0BACjBN,oBAAoB,KAG5B7pC,EAAQqF,EAAE+kC,cAAc7rC,KAAKuqC,wBAAwB,SAAUpqC,EAAK2+B,GAC5DA,GACAv5B,EAAM2C,aAAa60B,SAAS+B,OAIxCxG,EAAU70B,UAAUu2B,0BAA4B,WAC5C,IAAIz0B,EAAQvF,KACR0hB,EAAW,WAGX,IAAI7I,EAActT,EAAM6mB,mBAAmBxT,kBAAoBrT,EAAM+1B,aAAawQ,YAClFrqC,EAAQqF,EAAE2a,oBAAoBlc,EAAMwzB,cAAe,mBAAoBlgB,GACvEpX,EAAQqF,EAAE2a,oBAAoBlc,EAAMwzB,cAAe,uBAAwBlgB,IAE/E6I,IACA1hB,KAAK49B,4BAA4B59B,KAAKwE,aAAcqtB,EAASxrB,OAAO0lC,2BAA4BrqB,IAKpG4W,EAAU70B,UAAUs2B,4BAA8B,WAC9C,IAAIx0B,EAAQvF,KACRgsC,EAAiB,WAAc,OAAOzmC,EAAMukC,aAAarR,WAAa,GACtEwT,EAAoB,WAAc,OAAO1mC,EAAMukC,aAAarR,WAAa,GAC7Ez4B,KAAK49B,4BAA4B59B,KAAK8pC,aAAc,SAAUkC,GAC9DhsC,KAAK49B,4BAA4B59B,KAAK+pC,gBAAiB,SAAUkC,IAErE3T,EAAU70B,UAAUyoC,iBAAmB,WACnC,OAAOlsC,KAAKuqC,wBAEhBjS,EAAU70B,UAAU0oC,qBAAuB,WACvC,MAAO,CAACnsC,KAAK28B,KAAM38B,KAAK48B,UAE5BtE,EAAU70B,UAAU26B,0BAA4B,WAC5Cp+B,KAAKu6B,yBACLv6B,KAAKw6B,8BACLx6B,KAAK0mC,8BACL1mC,KAAKwmC,8BAETlO,EAAU70B,UAAUy3B,+BAAiC,WACjDl7B,KAAKo8B,wBACLp8B,KAAK0mC,8BACL1mC,KAAKwmC,6BACDxmC,KAAK6U,WAML7U,KAAKosC,mDAGb9T,EAAU70B,UAAU24B,sBAAwB,WACxCp8B,KAAKqsC,iBACLrsC,KAAKu6B,0BAETjC,EAAU70B,UAAU4oC,eAAiB,WACjC,IAAIC,EAAQtsC,KAAKupB,iBAAiByf,wBAClC,GAAIhpC,KAAK65B,YAAa,CAClB,IAAI0S,EAAwBvsC,KAAKupB,iBAAiBijB,8BAC5CxsC,KAAKupB,iBAAiBkjB,+BAC5BH,GAASC,EAEbvsC,KAAKo7B,eAAesR,wBAAwBJ,GAC5C,IAAIK,EAAUL,EAAQ,KACtBtsC,KAAK6+B,iBAAiBuI,MAAMkF,MAAQK,EACpC3sC,KAAKwrC,iBAAiBpE,MAAMkF,MAAQK,EACpC3sC,KAAKirC,cAAc7D,MAAMkF,MAAQK,EAC5B3sC,KAAK65B,cACN75B,KAAKwnC,+BAA+BJ,MAAMkF,MAAQK,IAG1DrU,EAAU70B,UAAUmpC,mBAAqB,WACrC,IAAIrnC,EAAQvF,KACR6sC,EAAa7sC,KAAK8sC,YAClBC,EAAc/sC,KAAKupB,iBAAiBijB,8BACpCQ,EAAahtC,KAAK8sC,aAAe9sC,KAAK65B,aAAekT,EAAc,EACnErO,EAAa,CAAC1+B,KAAK2+B,eAAgB3+B,KAAKkqC,SAAUlqC,KAAKiqC,aACvD4C,IAAeG,GACfhtC,KAAKo7B,eAAe6R,eAAeD,GAEvCtO,EAAWj5B,SAAQ,SAAU+b,GAAK,OAAO/f,EAAQqF,EAAEomC,aAAa1rB,EAAGjc,EAAMunC,gBACrEE,GACAtO,EAAWj5B,SAAQ,SAAUo3B,GAAM,OAAOp7B,EAAQqF,EAAEqmC,cAActQ,EAAIkQ,OAG9EzU,EAAU70B,UAAU2pC,oBAAsB,WACtC,IAAIP,EAAa7sC,KAAKqtC,aAClBN,EAAc/sC,KAAKupB,iBAAiBkjB,+BACpCO,EAAahtC,KAAKqtC,cAAgBrtC,KAAK65B,aAAekT,EAAc,EACpErO,EAAa,CAAC1+B,KAAK4+B,gBAAiB5+B,KAAKqqC,UAAWrqC,KAAKoqC,cACzDyC,IAAeG,GACfhtC,KAAKo7B,eAAekS,gBAAgBN,GAExCtO,EAAWj5B,SAAQ,SAAUo3B,GAAM,OAAOp7B,EAAQqF,EAAEomC,aAAarQ,EAAImQ,MACjEA,GACAtO,EAAWj5B,SAAQ,SAAUo3B,GAAM,OAAOp7B,EAAQqF,EAAEqmC,cAActQ,EAAIkQ,OAG9EzU,EAAU70B,UAAU82B,uBAAyB,WACzCv6B,KAAK4sC,qBACL5sC,KAAKotC,sBACLptC,KAAK4nC,8BAETtP,EAAU70B,UAAUmkC,2BAA6B,WAG7C,IAAI2F,EAAevtC,KAAKupB,iBAAiBkjB,+BACrCe,GAAiBxtC,KAAK6U,WAAa7U,KAAKoyB,0BACxCob,IACAD,GAAgBvtC,KAAK+jB,aAEzBtiB,EAAQqF,EAAEqmC,cAAcntC,KAAKytC,uBAAwBF,GACrD9rC,EAAQqF,EAAE2a,oBAAoBzhB,KAAKytC,uBAAwB,qBAAsBF,GAAgBvtC,KAAK+jB,aAGtG,IAAI2pB,EAAc1tC,KAAKupB,iBAAiBijB,8BACpCmB,EAAe3tC,KAAK6U,WAAa7U,KAAKoyB,0BACtCub,IACAD,GAAe1tC,KAAK+jB,aAExBtiB,EAAQqF,EAAEqmC,cAAcntC,KAAK4tC,sBAAuBF,GACpDjsC,EAAQqF,EAAE2a,oBAAoBzhB,KAAK4tC,sBAAuB,qBAAsBF,GAAe1tC,KAAK+jB,cAExGuU,EAAU70B,UAAUgjC,gBAAkB,WAClC,IAAIlK,EAAav8B,KAAK+4B,cAAc8U,aACpC,GAAI7tC,KAAKu8B,aAAeA,EAAY,CAChCv8B,KAAKu8B,WAAaA,EAClB,IAAIuR,EAAU,CACV7sB,KAAM4Q,EAASxrB,OAAO0nC,0BACtBjqC,IAAK9D,KAAK2D,QACVC,UAAW5D,KAAK4D,WAEpB5D,KAAKwE,aAAa2c,cAAc2sB,KAGxCxV,EAAU70B,UAAU+2B,4BAA8B,WAC9C,IAGIwT,EACAC,EACAhsB,EALAmhB,EAAKpjC,KAAMupB,EAAmB6Z,EAAG7Z,iBAAkB6C,EAAqBgX,EAAGhX,mBAAoBiX,EAAiBD,EAAGC,eAAgB1G,EAAOyG,EAAGzG,KAAMC,EAAUwG,EAAGxG,QAChKsR,EAAmB,EACnBC,EAAiB5kB,EAAiBwe,oBAIjCxe,EAAiBnhB,eASlB8lC,EAAmB,EACnBD,EAAc7hB,EAAmB3J,4BACjCR,EAAemK,EAAmB7J,yBAV9B6J,EAAmBpQ,oBACnBmyB,IAEJD,EAAoB9hB,EAAmBpQ,mBAAsB,EAAI,EACjEiyB,EAAc7hB,EAAmB/J,uBACjCJ,EAAemK,EAAmBpK,mBAOtC,IAAIosB,EAAoB,EAAIF,EACxBG,EAAiBF,EAAiBC,EACtCJ,EAAoBE,EAAmB9hB,EAAmBjK,2BAC1D6rB,GAAqBK,EAAiBJ,EACtCD,GAAqB/rB,EACrBjiB,KAAKo7B,eAAekT,UAAUN,GAC9B,IAAIO,EAAoBlL,EAAemL,0BACnCD,IAEAA,GAAqB,GAEzB,IAAIE,EAAuBpL,EAAeqL,6BACtCD,IAEAA,GAAwB,GAE5B,IAAIE,EAA0BJ,EAAoB,KAC9CK,EAA6BH,EAAuB,KACxD9R,EAAKyK,MAAMyH,UAAYF,EACvBhS,EAAKyK,MAAMre,OAAS4lB,EACpBhS,EAAKyK,MAAM0H,QAAUP,EAAoB,UAAY,OACrD3R,EAAQwK,MAAMyH,UAAYD,EAC1BhS,EAAQwK,MAAMre,OAAS6lB,EACvBhS,EAAQwK,MAAM0H,QAAUL,EAAuB,UAAY,OAC3DzuC,KAAKymC,mBAETnO,EAAU70B,UAAUsrC,cAAgB,WAChC,OAAO/uC,KAAKu8B,YAGhBjE,EAAU70B,UAAUurC,4BAA8B,SAAUC,GACxDjvC,KAAKm5B,gBAAgBV,WAAawW,EAKlCjvC,KAAKkvC,mBAAmBD,IAE5B3W,EAAU70B,UAAU0rC,0BAA4B,SAAUC,GACtDpvC,KAAK+4B,cAAcL,UAAY0W,GAGnC9W,EAAU70B,UAAU4rC,mBAAqB,SAAUC,GAC/C,IAAIC,EAAoBvvC,KAAKm5B,gBAAgBV,WAE7C,OADAz4B,KAAKgvC,4BAA4BO,EAAoBD,GAC9CtvC,KAAKm5B,gBAAgBV,WAAa8W,GAG7CjX,EAAU70B,UAAU4xB,iBAAmB,SAAUia,GAC7C,IAAIC,EAAoBvvC,KAAK+4B,cAAcL,UAE3C,OADA14B,KAAKmvC,0BAA0BI,EAAoBD,GAC5CtvC,KAAK+4B,cAAcL,UAAY6W,GAE1CjX,EAAU70B,UAAU22B,kBAAoB,WACpCp6B,KAAK49B,4BAA4B59B,KAAKm5B,gBAAiB,SAAUn5B,KAAKwvC,uBAAuB7qC,KAAK3E,OAClGA,KAAK49B,4BAA4B59B,KAAKunC,8BAA+B,SAAUvnC,KAAKyvC,uBAAuB9qC,KAAK3E,OAChHA,KAAK49B,4BAA4B59B,KAAK+4B,cAAe,SAAU/4B,KAAK0vC,iBAAiB/qC,KAAK3E,QAE9Fs4B,EAAU70B,UAAUisC,iBAAmB,WACnC,IAAIhX,EAAY14B,KAAK+4B,cAAcL,UACnC14B,KAAKwwB,sBAAsBmf,aAAajX,GACxC14B,KAAK24B,cAAgBD,EACjB14B,KAAKosB,mBAAmBnd,2BACxBjP,KAAK4vC,wBAGL5vC,KAAKwwB,sBAAsBqf,YAGnCvX,EAAU70B,UAAUqsC,aAAe,WAC/B,IAAIC,EAAc/vC,KAAK04B,YAAc14B,KAAK24B,cAK1C,OAJIoX,IACA/vC,KAAK04B,UAAY14B,KAAK24B,cACtB34B,KAAK4vC,yBAEFG,GAEXzX,EAAU70B,UAAUusC,oBAAsB,SAAUC,GAChD,OAAKjwC,KAAKkwC,4BAIHD,IAASjwC,KAAKkwC,6BAHjBlwC,KAAKkwC,4BAA8BD,GAC5B,IAIf3X,EAAU70B,UAAUgsC,uBAAyB,WACpCzvC,KAAKgwC,oBAAoBhwC,KAAKunC,gCAGnCvnC,KAAKmwC,uBAAuBnwC,KAAKunC,gCAErCjP,EAAU70B,UAAU+rC,uBAAyB,WACpCxvC,KAAKgwC,oBAAoBhwC,KAAKm5B,kBAGnCn5B,KAAKmwC,uBAAuBnwC,KAAKm5B,kBAErCb,EAAU70B,UAAU0sC,uBAAyB,SAAUC,GACnD,IAAIhN,EAAKpjC,KAAKm5B,gBAAiBpV,EAAcqf,EAAGrf,YAAawiB,EAAcnD,EAAGmD,YAG1E9N,EAAar1B,KAAKitC,MAAM5uC,EAAQqF,EAAEwpC,cAAcF,EAASpwC,KAAK6U,YAK9D07B,EAAuB9X,EAAa,GAAMA,EAAa8N,EAAcxiB,EACrEwsB,IAGJvwC,KAAKkvC,mBAAmBzW,GACxBz4B,KAAK44B,6CAETN,EAAU70B,UAAUq1B,iCAAmC,WACnD94B,KAAKkwC,4BAA8B,MAEvC5X,EAAU70B,UAAUyrC,mBAAqB,SAAUzW,GAC/Cz4B,KAAKy4B,WAAaA,EAClB,IAAInQ,EAAQ,CACRrH,KAAM4Q,EAASxrB,OAAOmqC,kBACtB1sC,IAAK9D,KAAK2D,QACVC,UAAW5D,KAAK4D,UAChB6sC,UAAW,aACXvX,KAAMl5B,KAAKy4B,WACX9J,IAAK3uB,KAAK04B,WAEd14B,KAAKwE,aAAa2c,cAAcmH,GAChCtoB,KAAKosC,gDAAgD3T,GACrDz4B,KAAK0mC,+BAETpO,EAAU70B,UAAUmsC,sBAAwB,WACxC,IAAItnB,EAAQ,CACRrH,KAAM4Q,EAASxrB,OAAOmqC,kBACtBC,UAAW,WACX3sC,IAAK9D,KAAK2D,QACVC,UAAW5D,KAAK4D,UAChBs1B,KAAMl5B,KAAKy4B,WACX9J,IAAK3uB,KAAK04B,WAEd14B,KAAKwE,aAAa2c,cAAcmH,IAKpCgQ,EAAU70B,UAAUijC,4BAA8B,WAC9C,IAAI3iB,EAAc/jB,KAAKm5B,gBAAgBoN,YACnChY,EAAiBvuB,KAAK8oC,8BAC1B9oC,KAAKupB,iBAAiBmnB,2BAA2B3sB,EAAawK,IAElE+J,EAAU70B,UAAUqlC,4BAA8B,WAE9C,OAAOrnC,EAAQqF,EAAEwpC,cAActwC,KAAKm5B,gBAAiBn5B,KAAK6U,YAE9DyjB,EAAU70B,UAAU6lC,4BAA8B,SAAU9nC,GAExDC,EAAQqF,EAAE6pC,cAAc3wC,KAAKm5B,gBAAiB33B,EAAOxB,KAAK6U,YAE9DyjB,EAAU70B,UAAU2oC,gDAAkD,SAAU3T,QACzDlrB,IAAfkrB,IACAA,EAAaz4B,KAAK8oC,+BAEtB,IAAI8H,EAAS5wC,KAAK6U,UAAY4jB,GAAcA,EACxC2K,EAAKpjC,KAAKm5B,gBAAiBoN,EAAcnD,EAAGmD,YAAaxiB,EAAcqf,EAAGrf,YAC1EwsB,EAAuBntC,KAAKytC,IAAID,GAAUrK,EAAcxiB,EAC5D,KAAIwsB,GACCvwC,KAAK6U,WAAa+7B,EAAS,IAC1B5wC,KAAK6U,WAAa+7B,EAAS,GAFjC,CAKA5wC,KAAKo7B,eAAe0V,oBAAoBF,GACxC5wC,KAAKwrC,iBAAiBpE,MAAM2J,UAAY,cAAgBH,EAAS,MACjE5wC,KAAKirC,cAAc7D,MAAM2J,UAAY,cAAgBH,EAAS,MAC9D,IAAII,EAAUhxC,KAAKkwC,8BAAgClwC,KAAKm5B,gBAAkBn5B,KAAKunC,8BAAgCvnC,KAAKm5B,gBACpH13B,EAAQqF,EAAE6pC,cAAcK,EAASvY,EAAYz4B,KAAK6U,aAGtDyjB,EAAU70B,UAAUwtC,uBAAyB,SAAUvvB,GACnD1hB,KAAK+4B,cAAc3zB,iBAAiB,SAAUsc,IAGlD4W,EAAU70B,UAAUytC,0BAA4B,SAAUxvB,GACtD1hB,KAAK+4B,cAAclX,oBAAoB,SAAUH,IAErD3hB,EAAW,CACP+B,EAAUkpB,UAAU,uBACpBhqB,EAAW,cAAeq2B,EAAsB8Z,sBACjD7Y,EAAU70B,UAAW,2BAAuB,GAC/C1D,EAAW,CACP+B,EAAUkpB,UAAU,sBACpBhqB,EAAW,cAAeirB,EAAqBjpB,qBAChDs1B,EAAU70B,UAAW,0BAAsB,GAC9C1D,EAAW,CACP+B,EAAUkpB,UAAU,oBACpBhqB,EAAW,cAAegB,EAAmBipB,mBAC9CqN,EAAU70B,UAAW,wBAAoB,GAC5C1D,EAAW,CACP+B,EAAUkpB,UAAU,eACpBhqB,EAAW,cAAe+1B,EAAcqa,cACzC9Y,EAAU70B,UAAW,mBAAe,GACvC1D,EAAW,CACP+B,EAAUkpB,UAAU,kBACpBhqB,EAAW,cAAes2B,EAAiB+Z,iBAC5C/Y,EAAU70B,UAAW,sBAAkB,GAC1C1D,EAAW,CACP+B,EAAUkpB,UAAU,gBACpBhqB,EAAW,cAAeU,EAAewB,eAC1Co1B,EAAU70B,UAAW,oBAAgB,GACxC1D,EAAW,CACP+B,EAAUkpB,UAAU,yBACpBhqB,EAAW,cAAegrB,EAAwB2F,wBACnD2G,EAAU70B,UAAW,6BAAyB,GACjD1D,EAAW,CACP+B,EAAUkpB,UAAU,qBACpBhqB,EAAW,cAAew2B,EAAoBtL,oBAC/CoM,EAAU70B,UAAW,yBAAqB,GAC7C1D,EAAW,CACP+B,EAAUkpB,UAAU,wBACpBhqB,EAAW,cAAeqB,EAAuBipB,uBAClDgN,EAAU70B,UAAW,4BAAwB,GAChD1D,EAAW,CACP+B,EAAUkpB,UAAU,0BACpBhqB,EAAW,cAAe+2B,EAAyBuZ,yBACpDhZ,EAAU70B,UAAW,8BAA0B,GAClD1D,EAAW,CACP+B,EAAUkpB,UAAU,uBACpBhqB,EAAW,cAAeg3B,EAAsBuZ,sBACjDjZ,EAAU70B,UAAW,2BAAuB,GAC/C1D,EAAW,CACP+B,EAAUkpB,UAAU,iCACpBhqB,EAAW,cAAem2B,EAAgCqa,gCAC3DlZ,EAAU70B,UAAW,qCAAiC,GACzD1D,EAAW,CACP+B,EAAUkpB,UAAU,SACpBhqB,EAAW,cAAei3B,EAAQwZ,QACnCnZ,EAAU70B,UAAW,aAAS,GACjC1D,EAAW,CACP+B,EAAUkpB,UAAU,mBACpBhqB,EAAW,cAAe8qB,EAAkB2F,kBAC7C6G,EAAU70B,UAAW,uBAAmB,GAC3C1D,EAAW,CACP+B,EAAUkpB,UAAU,aACpBhqB,EAAW,cAAee,EAAYqpB,YACvCkN,EAAU70B,UAAW,iBAAa,GACrC1D,EAAW,CACP+B,EAAUkpB,UAAU,WACpBhqB,EAAW,cAAea,EAAUspB,UACrCmN,EAAU70B,UAAW,eAAW,GACnC1D,EAAW,CACP+B,EAAUkpB,UAAU,eACpBhqB,EAAW,cAAeg2B,EAAc0a,cACzCpZ,EAAU70B,UAAW,mBAAe,GACvC1D,EAAW,CACP+B,EAAUkpB,UAAU,qBACpBhqB,EAAW,cAAe6qB,EAAoB2F,oBAC/C8G,EAAU70B,UAAW,yBAAqB,GAC7C1D,EAAW,CACP+B,EAAUkpB,UAAU,yBACpBhqB,EAAW,cAAe+qB,EAAwB2F,wBACnD4G,EAAU70B,UAAW,6BAAyB,GACjD1D,EAAW,CACP+B,EAAUkpB,UAAU,UACpBhqB,EAAW,cAAeN,SAC3B43B,EAAU70B,UAAW,cAAU,GAClC1D,EAAW,CACP+B,EAAUkpB,UAAU,wBACpBhqB,EAAW,cAAei2B,EAAuBnF,uBAClDwG,EAAU70B,UAAW,4BAAwB,GAChD1D,EAAW,CACP+B,EAAUkpB,UAAU,gBACpBhqB,EAAW,cAAey2B,EAAeka,eAC1CrZ,EAAU70B,UAAW,oBAAgB,GACxC1D,EAAW,CACP+B,EAAUkpB,UAAU,sBACpBhqB,EAAW,cAAeqxB,EAAqBW,qBAChDsF,EAAU70B,UAAW,0BAAsB,GAC9C1D,EAAW,CACP+B,EAAUkpB,UAAU,sBACpBhqB,EAAW,cAAe42B,EAAqBga,qBAChDtZ,EAAU70B,UAAW,oBAAgB,GACxC1D,EAAW,CACP+B,EAAUkpB,UAAU,cACpBhqB,EAAW,cAAekqB,UAC3BoN,EAAU70B,UAAW,kBAAc,GACtC1D,EAAW,CACP+B,EAAUkpB,UAAU,yBACpBhqB,EAAW,cAAeo3B,EAAwByZ,wBACnDvZ,EAAU70B,UAAW,6BAAyB,GACjD1D,EAAW,CACP+B,EAAU8vB,SAAS,mBACnB5wB,EAAW,cAAeN,SAC3B43B,EAAU70B,UAAW,uBAAmB,GAC3C1D,EAAW,CACP+B,EAAU8vB,SAAS,sBACnB5wB,EAAW,cAAeN,SAC3B43B,EAAU70B,UAAW,0BAAsB,GAC9C1D,EAAW,CACP+B,EAAU8vB,SAAS,oBACnB5wB,EAAW,cAAeN,SAC3B43B,EAAU70B,UAAW,wBAAoB,GAC5C1D,EAAW,CACPm4B,EAAuB4Z,YAAY,iBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,qBAAiB,GACzC1D,EAAW,CACPm4B,EAAuB4Z,YAAY,oBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,wBAAoB,GAC5C1D,EAAW,CACPm4B,EAAuB4Z,YAAY,mBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,uBAAmB,GAC3C1D,EAAW,CACPm4B,EAAuB4Z,YAAY,kBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,sBAAkB,GAC1C1D,EAAW,CACPm4B,EAAuB4Z,YAAY,mBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,uBAAmB,GAC3C1D,EAAW,CACPm4B,EAAuB4Z,YAAY,sBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,0BAAsB,GAC9C1D,EAAW,CACPm4B,EAAuB4Z,YAAY,yBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,6BAAyB,GACjD1D,EAAW,CACPm4B,EAAuB4Z,YAAY,yBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,6BAAyB,GACjD1D,EAAW,CACPm4B,EAAuB4Z,YAAY,0BACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,8BAA0B,GAClD1D,EAAW,CACPm4B,EAAuB4Z,YAAY,iCACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,qCAAiC,GACzD1D,EAAW,CACPm4B,EAAuB4Z,YAAY,kCACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,sCAAkC,GAC1D1D,EAAW,CACPm4B,EAAuB4Z,YAAY,uBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,2BAAuB,GAC/C1D,EAAW,CACPm4B,EAAuB4Z,YAAY,QACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,YAAQ,GAChC1D,EAAW,CACPm4B,EAAuB4Z,YAAY,YACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,gBAAY,GACpC1D,EAAW,CACPm4B,EAAuB4Z,YAAY,aACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,iBAAa,GACrC1D,EAAW,CACPm4B,EAAuB4Z,YAAY,iBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,qBAAiB,GACzC1D,EAAW,CACPm4B,EAAuB4Z,YAAY,gBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,oBAAgB,GACxC1D,EAAW,CACPm4B,EAAuB4Z,YAAY,0BACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,8BAA0B,GAClD1D,EAAW,CACPm4B,EAAuB4Z,YAAY,WACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,eAAW,GACnC1D,EAAW,CACPm4B,EAAuB4Z,YAAY,eACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,mBAAe,GACvC1D,EAAW,CACPm4B,EAAuB4Z,YAAY,gBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,oBAAgB,GACxC1D,EAAW,CACPm4B,EAAuB4Z,YAAY,oBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,wBAAoB,GAC5C1D,EAAW,CACPm4B,EAAuB4Z,YAAY,mBACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,uBAAmB,GAC3C1D,EAAW,CACPm4B,EAAuB4Z,YAAY,6BACnC9wC,EAAW,cAAe+wC,cAC3BzZ,EAAU70B,UAAW,iCAA6B,GACrD1D,EAAW,CACPm4B,EAAuB4Z,YAAY,cACnC9wC,EAAW,cAAem3B,EAAiB6Z,iBAC5C1Z,EAAU70B,UAAW,sBAAkB,GAC1C1D,EAAW,CACPm4B,EAAuB4Z,YAAY,kBACnC9wC,EAAW,cAAe62B,EAA0Boa,0BACrD3Z,EAAU70B,UAAW,sBAAkB,GAC1C1D,EAAW,CACP+B,EAAU6pB,cACV3qB,EAAW,cAAeyqB,UAC1BzqB,EAAW,oBAAqB,IAChCA,EAAW,yBAAqB,IACjCs3B,EAAU70B,UAAW,OAAQ,MACzB60B,EAvyCmB,CAwyC5BR,EAAYoa,WACd3wC,EAAQ+2B,UAAYA,G;;;;;;GCx2CpB,IAAIv4B,EAAcC,MAAQA,KAAKD,YAAe,SAAUE,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,kBAAZQ,SAAoD,oBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,GAE5DO,EAAchB,MAAQA,KAAKgB,YAAe,SAAUC,EAAGC,GACvD,GAAuB,kBAAZN,SAAoD,oBAArBA,QAAQO,SAAyB,OAAOP,QAAQO,SAASF,EAAGC,IAE1GR,OAAOK,eAAeQ,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIM,EAAY,EAAQ,QACpBqwC,EAAY,EAAQ,QACpBlmB,EAAuB,EAAQ,QAC/BxqB,EAAU,EAAQ,QAClB+vB,EAAmC,WACnC,SAASA,IACLxxB,KAAKoyC,eAAiBC,EAAoBC,qBAAqBC,OAkCnE,IAAIF,EAoBJ,OApDAA,EAAsB7gB,EACtBA,EAAkB/tB,UAAUS,KAAO,WAC/BlE,KAAKwyC,mCAKThhB,EAAkB/tB,UAAU+uC,gCAAkC,WAC1DxyC,KAAKyyC,SAASJ,EAAoBK,cAAgB1yC,KAAKoyC,gBAE3D5gB,EAAkB/tB,UAAU0+B,wBAA0B,SAAU7Z,GAC5D,OAAO7mB,EAAQqF,EAAEu5B,oBAAoBrgC,KAAKosB,mBAAoB9D,IAKlEkJ,EAAkB/tB,UAAU89B,oBAAsB,SAAUjZ,GAExD,IADA,IAAIqqB,EAAOlxC,EAAQqF,EAAE8rC,aAAatqB,GACzBxnB,EAAI,EAAGA,EAAI6xC,EAAKnyC,OAAQM,IAAK,CAClC,IAAIwG,EAAUqrC,EAAK7xC,GACf+xC,EAAavrC,EAAQ+qC,EAAoBK,cAC7C,GAAIjxC,EAAQqF,EAAEyR,OAAOs6B,GAAa,CAC9B,IAAIC,EAAoBD,IAAe7yC,KAAKoyC,eAC5C,OAAOU,GAGf,OAAO,GAEXthB,EAAkB/tB,UAAUupB,wBAA0B,SAAU1E,GAC5D,IAAI8X,EAAWpgC,KAAKmiC,wBAAwB7Z,GAC5C,OAAO8X,EAAWA,EAAS2S,kBAAoB,MAGnDvhB,EAAkB8gB,qBAAuB,IAAI7wC,EAAQuxC,eACrDxhB,EAAkBkhB,aAAe,qBACjC3yC,EAAW,CACPoyC,EAAUnnB,UAAU,sBACpBhqB,EAAW,cAAeirB,EAAqBjpB,qBAChDwuB,EAAkB/tB,UAAW,0BAAsB,GACtD1D,EAAW,CACPoyC,EAAUnnB,UAAU,YACpBhqB,EAAW,cAAe+wC,cAC3BvgB,EAAkB/tB,UAAW,gBAAY,GAC5C1D,EAAW,CACP+B,EAAU6pB,cACV3qB,EAAW,cAAeyqB,UAC1BzqB,EAAW,oBAAqB,IAChCA,EAAW,yBAAqB,IACjCwwB,EAAkB/tB,UAAW,OAAQ,MACxC+tB,EAAoB6gB,EAAsBtyC,EAAW,CACjD+B,EAAU8pB,KAAK,sBAChB4F,GACIA,EAxD2B,GA0DtCjwB,EAAQiwB,kBAAoBA","file":"js/chunk-vendors~bb6b5898.8a997012.js","sourcesContent":["/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar utils_1 = require(\"./utils\");\nvar eventService_1 = require(\"./eventService\");\nvar constants_1 = require(\"./constants\");\nvar componentUtil_1 = require(\"./components/componentUtil\");\nvar gridApi_1 = require(\"./gridApi\");\nvar context_1 = require(\"./context/context\");\nvar columnApi_1 = require(\"./columnController/columnApi\");\nvar columnController_1 = require(\"./columnController/columnController\");\nvar environment_1 = require(\"./environment\");\nvar propertyKeys_1 = require(\"./propertyKeys\");\nvar colDefUtil_1 = require(\"./components/colDefUtil\");\nvar eventKeys_1 = require(\"./eventKeys\");\nvar autoHeightCalculator_1 = require(\"./rendering/autoHeightCalculator\");\nvar sideBar_1 = require(\"./entities/sideBar\");\nvar DEFAULT_ROW_HEIGHT = 25;\nvar DEFAULT_DETAIL_ROW_HEIGHT = 300;\nvar DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE = 5;\nvar DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE = 5;\nvar DEFAULT_KEEP_DETAIL_ROW_COUNT = 10;\nfunction isTrue(value) {\n return value === true || value === 'true';\n}\nfunction zeroOrGreater(value, defaultValue) {\n if (value >= 0) {\n return value;\n }\n // zero gets returned if number is missing or the wrong type\n return defaultValue;\n}\nfunction oneOrGreater(value, defaultValue) {\n if (value > 0) {\n return value;\n }\n // zero gets returned if number is missing or the wrong type\n return defaultValue;\n}\nvar GridOptionsWrapper = /** @class */ (function () {\n function GridOptionsWrapper() {\n this.propertyEventService = new eventService_1.EventService();\n this.domDataKey = '__AG_' + Math.random().toString();\n this.layoutElements = [];\n }\n GridOptionsWrapper_1 = GridOptionsWrapper;\n GridOptionsWrapper.prototype.agWire = function (gridApi, columnApi) {\n this.gridOptions.api = gridApi;\n this.gridOptions.columnApi = columnApi;\n this.checkForDeprecated();\n this.checkForViolations();\n };\n GridOptionsWrapper.prototype.destroy = function () {\n // need to remove these, as we don't own the lifecycle of the gridOptions, we need to\n // remove the references in case the user keeps the grid options, we want the rest\n // of the grid to be picked up by the garbage collector\n this.gridOptions.api = null;\n this.gridOptions.columnApi = null;\n };\n GridOptionsWrapper.prototype.init = function () {\n if (!(this.gridOptions.suppressPropertyNamesCheck === true)) {\n this.checkGridOptionsProperties();\n this.checkColumnDefProperties();\n }\n var async = this.useAsyncEvents();\n this.eventService.addGlobalListener(this.globalEventHandler.bind(this), async);\n if (this.isGroupSelectsChildren() && this.isSuppressParentsInRowNodes()) {\n console.warn('ag-Grid: groupSelectsChildren does not work wth suppressParentsInRowNodes, this selection method needs the part in rowNode to work');\n }\n if (this.isGroupSelectsChildren()) {\n if (!this.isRowSelectionMulti()) {\n console.warn(\"ag-Grid: rowSelection must be 'multiple' for groupSelectsChildren to make sense\");\n }\n if (this.isRowModelServerSide()) {\n console.warn('ag-Grid: group selects children is NOT support for Server Side Row Model. ' +\n 'This is because the rows are lazy loaded, so selecting a group is not possible as' +\n 'the grid has no way of knowing what the children are.');\n }\n }\n if (this.isGroupRemoveSingleChildren() && this.isGroupHideOpenParents()) {\n console.warn('ag-Grid: groupRemoveSingleChildren and groupHideOpenParents do not work with each other, you need to pick one. And don\\'t ask us how to us these together on our support forum either you will get the same answer!');\n }\n this.addEventListener(GridOptionsWrapper_1.PROP_DOM_LAYOUT, this.updateLayoutClasses.bind(this));\n };\n GridOptionsWrapper.prototype.checkColumnDefProperties = function () {\n var _this = this;\n if (this.gridOptions.columnDefs == null) {\n return;\n }\n this.gridOptions.columnDefs.forEach(function (colDef) {\n var userProperties = Object.getOwnPropertyNames(colDef);\n var validProperties = colDefUtil_1.ColDefUtil.ALL_PROPERTIES.concat(colDefUtil_1.ColDefUtil.FRAMEWORK_PROPERTIES);\n _this.checkProperties(userProperties, validProperties, validProperties, 'colDef', 'https://www.ag-grid.com/javascript-grid-column-properties/');\n });\n };\n GridOptionsWrapper.prototype.checkGridOptionsProperties = function () {\n var userProperties = Object.getOwnPropertyNames(this.gridOptions);\n var validProperties = propertyKeys_1.PropertyKeys.ALL_PROPERTIES.concat(propertyKeys_1.PropertyKeys.FRAMEWORK_PROPERTIES);\n Object.keys(eventKeys_1.Events).forEach(function (it) { return validProperties.push(componentUtil_1.ComponentUtil.getCallbackForEvent(eventKeys_1.Events[it])); });\n var validPropertiesAndExceptions = validProperties.concat('api', 'columnApi');\n this.checkProperties(userProperties, validPropertiesAndExceptions, validProperties, 'gridOptions', 'https://www.ag-grid.com/javascript-grid-properties/');\n };\n GridOptionsWrapper.prototype.checkProperties = function (userProperties, validPropertiesAndExceptions, validProperties, containerName, docsUrl) {\n var invalidProperties = utils_1._.fuzzyCheckStrings(userProperties, validPropertiesAndExceptions, validProperties);\n var invalidPropertyKeys = Object.keys(invalidProperties);\n invalidPropertyKeys.forEach(function (invalidPropertyKey) {\n var fuzzySuggestions = invalidProperties[invalidPropertyKey];\n console.warn(\"ag-grid: invalid \" + containerName + \" property '\" + invalidPropertyKey + \"' did you mean any of these: \" + fuzzySuggestions.slice(0, 8).join(\",\"));\n });\n if (invalidPropertyKeys.length > 0) {\n console.warn(\"ag-grid: to see all the valid \" + containerName + \" properties please check: \" + docsUrl);\n }\n };\n // returns the dom data, or undefined if not found\n GridOptionsWrapper.prototype.getDomData = function (element, key) {\n var domData = element[this.domDataKey];\n if (domData) {\n return domData[key];\n }\n return;\n };\n GridOptionsWrapper.prototype.setDomData = function (element, key, value) {\n var domData = element[this.domDataKey];\n if (utils_1._.missing(domData)) {\n domData = {};\n element[this.domDataKey] = domData;\n }\n domData[key] = value;\n };\n GridOptionsWrapper.prototype.isEnterprise = function () {\n return this.enterprise;\n };\n GridOptionsWrapper.prototype.isRowSelection = function () {\n return this.gridOptions.rowSelection === \"single\" || this.gridOptions.rowSelection === \"multiple\";\n };\n GridOptionsWrapper.prototype.isRowDeselection = function () {\n return isTrue(this.gridOptions.rowDeselection);\n };\n GridOptionsWrapper.prototype.isRowSelectionMulti = function () {\n return this.gridOptions.rowSelection === 'multiple';\n };\n GridOptionsWrapper.prototype.isRowMultiSelectWithClick = function () {\n return isTrue(this.gridOptions.rowMultiSelectWithClick);\n };\n GridOptionsWrapper.prototype.getContext = function () {\n return this.gridOptions.context;\n };\n GridOptionsWrapper.prototype.isPivotMode = function () {\n return isTrue(this.gridOptions.pivotMode);\n };\n GridOptionsWrapper.prototype.isPivotTotals = function () {\n return isTrue(this.gridOptions.pivotTotals);\n };\n GridOptionsWrapper.prototype.getPivotColumnGroupTotals = function () {\n return this.gridOptions.pivotColumnGroupTotals;\n };\n GridOptionsWrapper.prototype.getPivotRowTotals = function () {\n return this.gridOptions.pivotRowTotals;\n };\n GridOptionsWrapper.prototype.isRowModelInfinite = function () {\n return this.gridOptions.rowModelType === constants_1.Constants.ROW_MODEL_TYPE_INFINITE;\n };\n GridOptionsWrapper.prototype.isRowModelViewport = function () {\n return this.gridOptions.rowModelType === constants_1.Constants.ROW_MODEL_TYPE_VIEWPORT;\n };\n GridOptionsWrapper.prototype.isRowModelServerSide = function () {\n return this.gridOptions.rowModelType === constants_1.Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n };\n GridOptionsWrapper.prototype.isRowModelDefault = function () {\n return utils_1._.missing(this.gridOptions.rowModelType) ||\n this.gridOptions.rowModelType === constants_1.Constants.ROW_MODEL_TYPE_CLIENT_SIDE ||\n this.gridOptions.rowModelType === constants_1.Constants.DEPRECATED_ROW_MODEL_TYPE_NORMAL;\n };\n GridOptionsWrapper.prototype.isFullRowEdit = function () {\n return this.gridOptions.editType === 'fullRow';\n };\n GridOptionsWrapper.prototype.isSuppressFocusAfterRefresh = function () {\n return isTrue(this.gridOptions.suppressFocusAfterRefresh);\n };\n GridOptionsWrapper.prototype.isSuppressBrowserResizeObserver = function () {\n return isTrue(this.gridOptions.suppressBrowserResizeObserver);\n };\n GridOptionsWrapper.prototype.isSuppressMaintainUnsortedOrder = function () {\n return isTrue(this.gridOptions.suppressMaintainUnsortedOrder);\n };\n GridOptionsWrapper.prototype.isShowToolPanel = function () {\n return isTrue(this.gridOptions.sideBar && Array.isArray(this.getSideBar().toolPanels));\n };\n GridOptionsWrapper.prototype.getSideBar = function () {\n return this.gridOptions.sideBar;\n };\n GridOptionsWrapper.prototype.isSuppressTouch = function () {\n return isTrue(this.gridOptions.suppressTouch);\n };\n GridOptionsWrapper.prototype.isSuppressRowTransform = function () {\n return isTrue(this.gridOptions.suppressRowTransform);\n };\n GridOptionsWrapper.prototype.isSuppressSetColumnStateEvents = function () {\n return isTrue(this.gridOptions.suppressSetColumnStateEvents);\n };\n GridOptionsWrapper.prototype.useAsyncEvents = function () {\n return !isTrue(this.gridOptions.suppressAsyncEvents);\n };\n GridOptionsWrapper.prototype.isEnableCellChangeFlash = function () {\n return isTrue(this.gridOptions.enableCellChangeFlash);\n };\n GridOptionsWrapper.prototype.isGroupSelectsChildren = function () {\n var result = isTrue(this.gridOptions.groupSelectsChildren);\n if (result && this.isTreeData()) {\n console.warn('ag-Grid: groupSelectsChildren does not work with tree data');\n return false;\n }\n return result;\n };\n GridOptionsWrapper.prototype.isSuppressRowHoverHighlight = function () {\n return isTrue(this.gridOptions.suppressRowHoverHighlight);\n };\n GridOptionsWrapper.prototype.isGroupSelectsFiltered = function () {\n return isTrue(this.gridOptions.groupSelectsFiltered);\n };\n GridOptionsWrapper.prototype.isGroupHideOpenParents = function () {\n return isTrue(this.gridOptions.groupHideOpenParents);\n };\n // if we are doing hideOpenParents, then we always have groupMultiAutoColumn, otherwise hideOpenParents would not work\n GridOptionsWrapper.prototype.isGroupMultiAutoColumn = function () {\n return isTrue(this.gridOptions.groupMultiAutoColumn) || isTrue(this.gridOptions.groupHideOpenParents);\n };\n GridOptionsWrapper.prototype.isGroupRemoveSingleChildren = function () {\n return isTrue(this.gridOptions.groupRemoveSingleChildren);\n };\n GridOptionsWrapper.prototype.isGroupRemoveLowestSingleChildren = function () {\n return isTrue(this.gridOptions.groupRemoveLowestSingleChildren);\n };\n GridOptionsWrapper.prototype.isGroupIncludeFooter = function () {\n return isTrue(this.gridOptions.groupIncludeFooter);\n };\n GridOptionsWrapper.prototype.isGroupIncludeTotalFooter = function () {\n return isTrue(this.gridOptions.groupIncludeTotalFooter);\n };\n GridOptionsWrapper.prototype.isGroupSuppressBlankHeader = function () {\n return isTrue(this.gridOptions.groupSuppressBlankHeader);\n };\n GridOptionsWrapper.prototype.isSuppressRowClickSelection = function () {\n return isTrue(this.gridOptions.suppressRowClickSelection);\n };\n GridOptionsWrapper.prototype.isSuppressCellSelection = function () {\n return isTrue(this.gridOptions.suppressCellSelection);\n };\n GridOptionsWrapper.prototype.isSuppressMultiSort = function () {\n return isTrue(this.gridOptions.suppressMultiSort);\n };\n GridOptionsWrapper.prototype.isMultiSortKeyCtrl = function () {\n return this.gridOptions.multiSortKey === 'ctrl';\n };\n GridOptionsWrapper.prototype.isGroupSuppressAutoColumn = function () {\n return isTrue(this.gridOptions.groupSuppressAutoColumn);\n };\n GridOptionsWrapper.prototype.isSuppressDragLeaveHidesColumns = function () {\n return isTrue(this.gridOptions.suppressDragLeaveHidesColumns);\n };\n GridOptionsWrapper.prototype.isSuppressScrollOnNewData = function () {\n return isTrue(this.gridOptions.suppressScrollOnNewData);\n };\n GridOptionsWrapper.prototype.isRowDragManaged = function () {\n return isTrue(this.gridOptions.rowDragManaged);\n };\n GridOptionsWrapper.prototype.isSuppressRowDrag = function () {\n return isTrue(this.gridOptions.suppressRowDrag);\n };\n // returns either 'print', 'autoHeight' or 'normal' (normal is the default)\n GridOptionsWrapper.prototype.getDomLayout = function () {\n var _this = this;\n var domLayout = this.gridOptions.domLayout;\n if (domLayout === constants_1.Constants.DOM_LAYOUT_PRINT\n || domLayout === constants_1.Constants.DOM_LAYOUT_AUTO_HEIGHT\n || domLayout === constants_1.Constants.DOM_LAYOUT_NORMAL) {\n return domLayout;\n }\n else if (domLayout === null || domLayout === undefined) {\n return constants_1.Constants.DOM_LAYOUT_NORMAL;\n }\n else {\n utils_1._.doOnce(function () { return console.warn(\"ag-Grid: \" + _this.gridOptions.domLayout + \" is not valid for DOM Layout, valid values are \" + constants_1.Constants.DOM_LAYOUT_NORMAL + \", \" + constants_1.Constants.DOM_LAYOUT_AUTO_HEIGHT + \" and \" + constants_1.Constants.DOM_LAYOUT_PRINT); }, 'warn about dom layout values');\n return constants_1.Constants.DOM_LAYOUT_NORMAL;\n }\n };\n GridOptionsWrapper.prototype.isSuppressHorizontalScroll = function () {\n return isTrue(this.gridOptions.suppressHorizontalScroll);\n };\n GridOptionsWrapper.prototype.isSuppressMaxRenderedRowRestriction = function () {\n return isTrue(this.gridOptions.suppressMaxRenderedRowRestriction);\n };\n GridOptionsWrapper.prototype.isExcludeChildrenWhenTreeDataFiltering = function () {\n return isTrue(this.gridOptions.excludeChildrenWhenTreeDataFiltering);\n };\n GridOptionsWrapper.prototype.isAlwaysShowVerticalScroll = function () {\n return isTrue(this.gridOptions.alwaysShowVerticalScroll);\n };\n GridOptionsWrapper.prototype.isSuppressLoadingOverlay = function () {\n return isTrue(this.gridOptions.suppressLoadingOverlay);\n };\n GridOptionsWrapper.prototype.isSuppressNoRowsOverlay = function () {\n return isTrue(this.gridOptions.suppressNoRowsOverlay);\n };\n GridOptionsWrapper.prototype.isSuppressFieldDotNotation = function () {\n return isTrue(this.gridOptions.suppressFieldDotNotation);\n };\n GridOptionsWrapper.prototype.getPinnedTopRowData = function () {\n return this.gridOptions.pinnedTopRowData;\n };\n GridOptionsWrapper.prototype.getPinnedBottomRowData = function () {\n return this.gridOptions.pinnedBottomRowData;\n };\n GridOptionsWrapper.prototype.isFunctionsPassive = function () {\n return isTrue(this.gridOptions.functionsPassive);\n };\n GridOptionsWrapper.prototype.isSuppressTabbing = function () {\n return isTrue(this.gridOptions.suppressTabbing);\n };\n GridOptionsWrapper.prototype.isSuppressChangeDetection = function () {\n return isTrue(this.gridOptions.suppressChangeDetection);\n };\n GridOptionsWrapper.prototype.isSuppressAnimationFrame = function () {\n return isTrue(this.gridOptions.suppressAnimationFrame);\n };\n GridOptionsWrapper.prototype.getQuickFilterText = function () {\n return this.gridOptions.quickFilterText;\n };\n GridOptionsWrapper.prototype.isCacheQuickFilter = function () {\n return isTrue(this.gridOptions.cacheQuickFilter);\n };\n GridOptionsWrapper.prototype.isUnSortIcon = function () {\n return isTrue(this.gridOptions.unSortIcon);\n };\n GridOptionsWrapper.prototype.isSuppressMenuHide = function () {\n return isTrue(this.gridOptions.suppressMenuHide);\n };\n GridOptionsWrapper.prototype.isEnterMovesDownAfterEdit = function () {\n return isTrue(this.gridOptions.enterMovesDownAfterEdit);\n };\n GridOptionsWrapper.prototype.isEnterMovesDown = function () {\n return isTrue(this.gridOptions.enterMovesDown);\n };\n GridOptionsWrapper.prototype.getRowStyle = function () {\n return this.gridOptions.rowStyle;\n };\n GridOptionsWrapper.prototype.getRowClass = function () {\n return this.gridOptions.rowClass;\n };\n GridOptionsWrapper.prototype.getRowStyleFunc = function () {\n return this.gridOptions.getRowStyle;\n };\n GridOptionsWrapper.prototype.getRowClassFunc = function () {\n return this.gridOptions.getRowClass;\n };\n GridOptionsWrapper.prototype.rowClassRules = function () {\n return this.gridOptions.rowClassRules;\n };\n GridOptionsWrapper.prototype.getCreateChartContainerFunc = function () {\n return this.gridOptions.createChartContainer;\n };\n GridOptionsWrapper.prototype.getPopupParent = function () {\n return this.gridOptions.popupParent;\n };\n GridOptionsWrapper.prototype.getBlockLoadDebounceMillis = function () {\n return this.gridOptions.blockLoadDebounceMillis;\n };\n GridOptionsWrapper.prototype.getPostProcessPopupFunc = function () {\n return this.gridOptions.postProcessPopup;\n };\n GridOptionsWrapper.prototype.getDoesDataFlowerFunc = function () {\n return this.gridOptions.doesDataFlower;\n };\n GridOptionsWrapper.prototype.getPaginationNumberFormatterFunc = function () {\n return this.gridOptions.paginationNumberFormatter;\n };\n GridOptionsWrapper.prototype.getChildCountFunc = function () {\n return this.gridOptions.getChildCount;\n };\n GridOptionsWrapper.prototype.getDefaultGroupSortComparator = function () {\n return this.gridOptions.defaultGroupSortComparator;\n };\n GridOptionsWrapper.prototype.getIsFullWidthCellFunc = function () {\n return this.gridOptions.isFullWidthCell;\n };\n GridOptionsWrapper.prototype.getFullWidthCellRendererParams = function () {\n return this.gridOptions.fullWidthCellRendererParams;\n };\n GridOptionsWrapper.prototype.isEmbedFullWidthRows = function () {\n return isTrue(this.gridOptions.embedFullWidthRows) || isTrue(this.gridOptions.deprecatedEmbedFullWidthRows);\n };\n GridOptionsWrapper.prototype.getSuppressKeyboardEventFunc = function () {\n return this.gridOptions.suppressKeyboardEvent;\n };\n GridOptionsWrapper.prototype.getBusinessKeyForNodeFunc = function () {\n return this.gridOptions.getBusinessKeyForNode;\n };\n GridOptionsWrapper.prototype.getApi = function () {\n return this.gridOptions.api;\n };\n GridOptionsWrapper.prototype.getColumnApi = function () {\n return this.gridOptions.columnApi;\n };\n GridOptionsWrapper.prototype.isDeltaRowDataMode = function () {\n return isTrue(this.gridOptions.deltaRowDataMode);\n };\n GridOptionsWrapper.prototype.isDeltaColumnMode = function () {\n return isTrue(this.gridOptions.deltaColumnMode);\n };\n GridOptionsWrapper.prototype.isEnsureDomOrder = function () {\n return isTrue(this.gridOptions.ensureDomOrder);\n };\n GridOptionsWrapper.prototype.isEnableCharts = function () {\n if (isTrue((this.gridOptions.enableCharts))) {\n if (!this.context.isModuleRegistered(\"chartsModule\" /* ChartsModule */)) {\n utils_1._.doOnce(function () {\n console.warn('ag-grid: Charts is enabled but the Charts Module has not been included.');\n }, 'ChartsModuleCheck');\n return false;\n }\n return true;\n }\n return false;\n };\n GridOptionsWrapper.prototype.getColResizeDefault = function () {\n return this.gridOptions.colResizeDefault;\n };\n GridOptionsWrapper.prototype.isSingleClickEdit = function () {\n return isTrue(this.gridOptions.singleClickEdit);\n };\n GridOptionsWrapper.prototype.isSuppressClickEdit = function () {\n return isTrue(this.gridOptions.suppressClickEdit);\n };\n GridOptionsWrapper.prototype.isStopEditingWhenGridLosesFocus = function () {\n return isTrue(this.gridOptions.stopEditingWhenGridLosesFocus);\n };\n GridOptionsWrapper.prototype.getGroupDefaultExpanded = function () {\n return this.gridOptions.groupDefaultExpanded;\n };\n GridOptionsWrapper.prototype.getMaxConcurrentDatasourceRequests = function () {\n return this.gridOptions.maxConcurrentDatasourceRequests;\n };\n GridOptionsWrapper.prototype.getMaxBlocksInCache = function () {\n return this.gridOptions.maxBlocksInCache;\n };\n GridOptionsWrapper.prototype.getCacheOverflowSize = function () {\n return this.gridOptions.cacheOverflowSize;\n };\n GridOptionsWrapper.prototype.getPaginationPageSize = function () {\n return this.gridOptions.paginationPageSize;\n };\n GridOptionsWrapper.prototype.isPaginateChildRows = function () {\n // if using groupSuppressRow, means we are not showing parent rows,\n // so we always paginate on the child rows here as there are no parent rows\n if (this.isGroupSuppressRow() || this.isGroupRemoveSingleChildren()\n || this.isGroupRemoveLowestSingleChildren()) {\n return true;\n }\n return isTrue(this.gridOptions.paginateChildRows);\n };\n GridOptionsWrapper.prototype.getCacheBlockSize = function () {\n return this.gridOptions.cacheBlockSize;\n };\n GridOptionsWrapper.prototype.getInfiniteInitialRowCount = function () {\n return this.gridOptions.infiniteInitialRowCount;\n };\n GridOptionsWrapper.prototype.isPurgeClosedRowNodes = function () {\n return isTrue(this.gridOptions.purgeClosedRowNodes);\n };\n GridOptionsWrapper.prototype.isSuppressPaginationPanel = function () {\n return isTrue(this.gridOptions.suppressPaginationPanel);\n };\n GridOptionsWrapper.prototype.getRowData = function () {\n return this.gridOptions.rowData;\n };\n // this property is different - we never allow groupUseEntireRow if in pivot mode,\n // as otherwise we don't see the pivot values.\n GridOptionsWrapper.prototype.isGroupUseEntireRow = function (pivotMode) {\n return pivotMode ? false : isTrue(this.gridOptions.groupUseEntireRow);\n };\n GridOptionsWrapper.prototype.isEnableRtl = function () {\n return isTrue(this.gridOptions.enableRtl);\n };\n GridOptionsWrapper.prototype.getAutoGroupColumnDef = function () {\n return this.gridOptions.autoGroupColumnDef;\n };\n GridOptionsWrapper.prototype.isGroupSuppressRow = function () {\n return isTrue(this.gridOptions.groupSuppressRow);\n };\n GridOptionsWrapper.prototype.getRowGroupPanelShow = function () {\n return this.gridOptions.rowGroupPanelShow;\n };\n GridOptionsWrapper.prototype.getPivotPanelShow = function () {\n return this.gridOptions.pivotPanelShow;\n };\n GridOptionsWrapper.prototype.isAngularCompileRows = function () {\n return isTrue(this.gridOptions.angularCompileRows);\n };\n GridOptionsWrapper.prototype.isAngularCompileFilters = function () {\n return isTrue(this.gridOptions.angularCompileFilters);\n };\n GridOptionsWrapper.prototype.isAngularCompileHeaders = function () {\n return isTrue(this.gridOptions.angularCompileHeaders);\n };\n GridOptionsWrapper.prototype.isDebug = function () {\n return isTrue(this.gridOptions.debug);\n };\n GridOptionsWrapper.prototype.getColumnDefs = function () {\n return this.gridOptions.columnDefs;\n };\n GridOptionsWrapper.prototype.getColumnTypes = function () {\n return this.gridOptions.columnTypes;\n };\n GridOptionsWrapper.prototype.getDatasource = function () {\n return this.gridOptions.datasource;\n };\n GridOptionsWrapper.prototype.getViewportDatasource = function () {\n return this.gridOptions.viewportDatasource;\n };\n GridOptionsWrapper.prototype.getServerSideDatasource = function () {\n return this.gridOptions.serverSideDatasource;\n };\n GridOptionsWrapper.prototype.isAccentedSort = function () {\n return isTrue(this.gridOptions.accentedSort);\n };\n GridOptionsWrapper.prototype.isEnableBrowserTooltips = function () {\n return isTrue(this.gridOptions.enableBrowserTooltips);\n };\n GridOptionsWrapper.prototype.isEnableCellExpressions = function () {\n return isTrue(this.gridOptions.enableCellExpressions);\n };\n GridOptionsWrapper.prototype.isEnableGroupEdit = function () {\n return isTrue(this.gridOptions.enableGroupEdit);\n };\n GridOptionsWrapper.prototype.isSuppressMiddleClickScrolls = function () {\n return isTrue(this.gridOptions.suppressMiddleClickScrolls);\n };\n GridOptionsWrapper.prototype.isPreventDefaultOnContextMenu = function () {\n return isTrue(this.gridOptions.preventDefaultOnContextMenu);\n };\n GridOptionsWrapper.prototype.isSuppressPreventDefaultOnMouseWheel = function () {\n return isTrue(this.gridOptions.suppressPreventDefaultOnMouseWheel);\n };\n GridOptionsWrapper.prototype.isSuppressColumnVirtualisation = function () {\n return isTrue(this.gridOptions.suppressColumnVirtualisation);\n };\n GridOptionsWrapper.prototype.isSuppressContextMenu = function () {\n return isTrue(this.gridOptions.suppressContextMenu);\n };\n GridOptionsWrapper.prototype.isAllowContextMenuWithControlKey = function () {\n return isTrue(this.gridOptions.allowContextMenuWithControlKey);\n };\n GridOptionsWrapper.prototype.isSuppressCopyRowsToClipboard = function () {\n return isTrue(this.gridOptions.suppressCopyRowsToClipboard);\n };\n GridOptionsWrapper.prototype.isCopyHeadersToClipboard = function () {\n return isTrue(this.gridOptions.copyHeadersToClipboard);\n };\n GridOptionsWrapper.prototype.isSuppressClipboardPaste = function () {\n return isTrue(this.gridOptions.suppressClipboardPaste);\n };\n GridOptionsWrapper.prototype.isPagination = function () {\n return isTrue(this.gridOptions.pagination);\n };\n GridOptionsWrapper.prototype.isSuppressEnterpriseResetOnNewColumns = function () {\n return isTrue(this.gridOptions.suppressEnterpriseResetOnNewColumns);\n };\n GridOptionsWrapper.prototype.getProcessDataFromClipboardFunc = function () {\n return this.gridOptions.processDataFromClipboard;\n };\n GridOptionsWrapper.prototype.getBatchUpdateWaitMillis = function () {\n return utils_1._.exists(this.gridOptions.batchUpdateWaitMillis) ? this.gridOptions.batchUpdateWaitMillis : constants_1.Constants.BATCH_WAIT_MILLIS;\n };\n GridOptionsWrapper.prototype.isSuppressMovableColumns = function () {\n return isTrue(this.gridOptions.suppressMovableColumns);\n };\n GridOptionsWrapper.prototype.isAnimateRows = function () {\n // never allow animating if enforcing the row order\n if (this.isEnsureDomOrder()) {\n return false;\n }\n return isTrue(this.gridOptions.animateRows);\n };\n GridOptionsWrapper.prototype.isSuppressColumnMoveAnimation = function () {\n return isTrue(this.gridOptions.suppressColumnMoveAnimation);\n };\n GridOptionsWrapper.prototype.isSuppressAggFuncInHeader = function () {\n return isTrue(this.gridOptions.suppressAggFuncInHeader);\n };\n GridOptionsWrapper.prototype.isSuppressAggAtRootLevel = function () {\n return isTrue(this.gridOptions.suppressAggAtRootLevel);\n };\n GridOptionsWrapper.prototype.isEnableRangeSelection = function () {\n return this.enterprise && isTrue(this.gridOptions.enableRangeSelection);\n };\n GridOptionsWrapper.prototype.isEnableRangeHandle = function () {\n return isTrue(this.gridOptions.enableRangeHandle);\n };\n GridOptionsWrapper.prototype.isEnableFillHandle = function () {\n return isTrue(this.gridOptions.enableFillHandle);\n };\n GridOptionsWrapper.prototype.isSuppressMultiRangeSelection = function () {\n return isTrue(this.gridOptions.suppressMultiRangeSelection);\n };\n GridOptionsWrapper.prototype.isPaginationAutoPageSize = function () {\n return isTrue(this.gridOptions.paginationAutoPageSize);\n };\n GridOptionsWrapper.prototype.isRememberGroupStateWhenNewData = function () {\n return isTrue(this.gridOptions.rememberGroupStateWhenNewData);\n };\n GridOptionsWrapper.prototype.getIcons = function () {\n return this.gridOptions.icons;\n };\n GridOptionsWrapper.prototype.getAggFuncs = function () {\n return this.gridOptions.aggFuncs;\n };\n GridOptionsWrapper.prototype.getSortingOrder = function () {\n return this.gridOptions.sortingOrder;\n };\n GridOptionsWrapper.prototype.getAlignedGrids = function () {\n return this.gridOptions.alignedGrids;\n };\n GridOptionsWrapper.prototype.isMasterDetail = function () {\n var _this = this;\n var usingMasterDetail = isTrue(this.gridOptions.masterDetail);\n utils_1._.doOnce(function () {\n if (usingMasterDetail && !_this.enterprise) {\n console.warn('ag-grid: Master Detail is an Enterprise feature of ag-Grid.');\n }\n }, 'MasterDetailEnterpriseCheck');\n return usingMasterDetail && this.enterprise;\n };\n GridOptionsWrapper.prototype.isKeepDetailRows = function () {\n return isTrue(this.gridOptions.keepDetailRows);\n };\n GridOptionsWrapper.prototype.getKeepDetailRowsCount = function () {\n if (this.gridOptions.keepDetailRowsCount > 0) {\n return this.gridOptions.keepDetailRowsCount;\n }\n else {\n return DEFAULT_KEEP_DETAIL_ROW_COUNT;\n }\n };\n GridOptionsWrapper.prototype.getIsRowMasterFunc = function () {\n return this.gridOptions.isRowMaster;\n };\n GridOptionsWrapper.prototype.getIsRowSelectableFunc = function () {\n return this.gridOptions.isRowSelectable;\n };\n GridOptionsWrapper.prototype.getGroupRowRendererParams = function () {\n return this.gridOptions.groupRowRendererParams;\n };\n GridOptionsWrapper.prototype.getOverlayLoadingTemplate = function () {\n return this.gridOptions.overlayLoadingTemplate;\n };\n GridOptionsWrapper.prototype.getOverlayNoRowsTemplate = function () {\n return this.gridOptions.overlayNoRowsTemplate;\n };\n GridOptionsWrapper.prototype.isSuppressAutoSize = function () {\n return isTrue(this.gridOptions.suppressAutoSize);\n };\n GridOptionsWrapper.prototype.isEnableCellTextSelection = function () {\n return isTrue(this.gridOptions.enableCellTextSelection);\n };\n GridOptionsWrapper.prototype.isSuppressParentsInRowNodes = function () {\n return isTrue(this.gridOptions.suppressParentsInRowNodes);\n };\n GridOptionsWrapper.prototype.isFunctionsReadOnly = function () {\n return isTrue(this.gridOptions.functionsReadOnly);\n };\n GridOptionsWrapper.prototype.isFloatingFilter = function () {\n return this.gridOptions.floatingFilter;\n };\n GridOptionsWrapper.prototype.isEnableCellTextSelect = function () {\n return isTrue(this.gridOptions.enableCellTextSelection);\n };\n GridOptionsWrapper.prototype.isEnableOldSetFilterModel = function () {\n return isTrue(this.gridOptions.enableOldSetFilterModel);\n };\n GridOptionsWrapper.prototype.getDefaultColDef = function () {\n return this.gridOptions.defaultColDef;\n };\n GridOptionsWrapper.prototype.getDefaultColGroupDef = function () {\n return this.gridOptions.defaultColGroupDef;\n };\n GridOptionsWrapper.prototype.getDefaultExportParams = function () {\n return this.gridOptions.defaultExportParams;\n };\n GridOptionsWrapper.prototype.isSuppressCsvExport = function () {\n return isTrue(this.gridOptions.suppressCsvExport);\n };\n GridOptionsWrapper.prototype.isAllowShowChangeAfterFilter = function () {\n return isTrue(this.gridOptions.allowShowChangeAfterFilter);\n };\n GridOptionsWrapper.prototype.isSuppressExcelExport = function () {\n return isTrue(this.gridOptions.suppressExcelExport);\n };\n GridOptionsWrapper.prototype.isSuppressMakeColumnVisibleAfterUnGroup = function () {\n return isTrue(this.gridOptions.suppressMakeColumnVisibleAfterUnGroup);\n };\n GridOptionsWrapper.prototype.getNodeChildDetailsFunc = function () {\n return this.gridOptions.getNodeChildDetails;\n };\n GridOptionsWrapper.prototype.getDataPathFunc = function () {\n return this.gridOptions.getDataPath;\n };\n GridOptionsWrapper.prototype.getIsServerSideGroupFunc = function () {\n return this.gridOptions.isServerSideGroup;\n };\n GridOptionsWrapper.prototype.getServerSideGroupKeyFunc = function () {\n return this.gridOptions.getServerSideGroupKey;\n };\n GridOptionsWrapper.prototype.getGroupRowAggNodesFunc = function () {\n return this.gridOptions.groupRowAggNodes;\n };\n GridOptionsWrapper.prototype.getContextMenuItemsFunc = function () {\n return this.gridOptions.getContextMenuItems;\n };\n GridOptionsWrapper.prototype.getMainMenuItemsFunc = function () {\n return this.gridOptions.getMainMenuItems;\n };\n GridOptionsWrapper.prototype.getChartToolbarItemsFunc = function () {\n return this.gridOptions.getChartToolbarItems;\n };\n GridOptionsWrapper.prototype.getRowNodeIdFunc = function () {\n return this.gridOptions.getRowNodeId;\n };\n GridOptionsWrapper.prototype.getNavigateToNextCellFunc = function () {\n return this.gridOptions.navigateToNextCell;\n };\n GridOptionsWrapper.prototype.getTabToNextCellFunc = function () {\n return this.gridOptions.tabToNextCell;\n };\n GridOptionsWrapper.prototype.isTreeData = function () {\n var _this = this;\n var usingTreeData = isTrue(this.gridOptions.treeData);\n utils_1._.doOnce(function () {\n if (usingTreeData && !_this.enterprise) {\n console.warn('ag-grid: TreeData is an Enterprise feature of ag-Grid.');\n }\n }, 'TreeDataEnterpriseCheck');\n return usingTreeData;\n };\n GridOptionsWrapper.prototype.isValueCache = function () {\n return isTrue(this.gridOptions.valueCache);\n };\n GridOptionsWrapper.prototype.isValueCacheNeverExpires = function () {\n return isTrue(this.gridOptions.valueCacheNeverExpires);\n };\n GridOptionsWrapper.prototype.isDeltaSort = function () {\n return isTrue(this.gridOptions.deltaSort);\n };\n GridOptionsWrapper.prototype.isAggregateOnlyChangedColumns = function () {\n return isTrue(this.gridOptions.aggregateOnlyChangedColumns);\n };\n GridOptionsWrapper.prototype.getProcessSecondaryColDefFunc = function () {\n return this.gridOptions.processSecondaryColDef;\n };\n GridOptionsWrapper.prototype.getProcessSecondaryColGroupDefFunc = function () {\n return this.gridOptions.processSecondaryColGroupDef;\n };\n GridOptionsWrapper.prototype.getSendToClipboardFunc = function () {\n return this.gridOptions.sendToClipboard;\n };\n GridOptionsWrapper.prototype.getProcessRowPostCreateFunc = function () {\n return this.gridOptions.processRowPostCreate;\n };\n GridOptionsWrapper.prototype.getProcessCellForClipboardFunc = function () {\n return this.gridOptions.processCellForClipboard;\n };\n GridOptionsWrapper.prototype.getProcessHeaderForClipboardFunc = function () {\n return this.gridOptions.processHeaderForClipboard;\n };\n GridOptionsWrapper.prototype.getProcessCellFromClipboardFunc = function () {\n return this.gridOptions.processCellFromClipboard;\n };\n GridOptionsWrapper.prototype.getViewportRowModelPageSize = function () {\n return oneOrGreater(this.gridOptions.viewportRowModelPageSize, DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE);\n };\n GridOptionsWrapper.prototype.getViewportRowModelBufferSize = function () {\n return zeroOrGreater(this.gridOptions.viewportRowModelBufferSize, DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE);\n };\n // public getCellRenderers(): {[key: string]: {new(): ICellRenderer} | ICellRendererFunc} { return this.gridOptions.cellRenderers; }\n // public getCellEditors(): {[key: string]: {new(): ICellEditor}} { return this.gridOptions.cellEditors; }\n GridOptionsWrapper.prototype.isServerSideSortingAlwaysResets = function () {\n return isTrue(this.gridOptions.serverSideSortingAlwaysResets);\n };\n GridOptionsWrapper.prototype.getPostSortFunc = function () {\n return this.gridOptions.postSort;\n };\n GridOptionsWrapper.prototype.getProcessChartOptionsFunc = function () {\n return this.gridOptions.processChartOptions;\n };\n GridOptionsWrapper.prototype.getClipboardDeliminator = function () {\n return utils_1._.exists(this.gridOptions.clipboardDeliminator) ? this.gridOptions.clipboardDeliminator : '\\t';\n };\n GridOptionsWrapper.prototype.setProperty = function (key, value) {\n var gridOptionsNoType = this.gridOptions;\n var previousValue = gridOptionsNoType[key];\n if (previousValue !== value) {\n gridOptionsNoType[key] = value;\n var event_1 = {\n type: key,\n currentValue: value,\n previousValue: previousValue\n };\n this.propertyEventService.dispatchEvent(event_1);\n }\n };\n // this logic is repeated in lots of places. any element that had different CSS\n // dependent on the layout needs to have the layout class added ot it.\n GridOptionsWrapper.prototype.addLayoutElement = function (element) {\n this.layoutElements.push(element);\n this.updateLayoutClasses();\n };\n GridOptionsWrapper.prototype.updateLayoutClasses = function () {\n var domLayout = this.getDomLayout();\n var domLayoutAutoHeight = domLayout === constants_1.Constants.DOM_LAYOUT_AUTO_HEIGHT;\n var domLayoutPrint = domLayout === constants_1.Constants.DOM_LAYOUT_PRINT;\n var domLayoutNormal = domLayout === constants_1.Constants.DOM_LAYOUT_NORMAL;\n this.layoutElements.forEach(function (e) {\n utils_1._.addOrRemoveCssClass(e, 'ag-layout-auto-height', domLayoutAutoHeight);\n utils_1._.addOrRemoveCssClass(e, 'ag-layout-normal', domLayoutNormal);\n utils_1._.addOrRemoveCssClass(e, 'ag-layout-print', domLayoutPrint);\n });\n };\n GridOptionsWrapper.prototype.addEventListener = function (key, listener) {\n GridOptionsWrapper_1.checkEventDeprecation(key);\n this.propertyEventService.addEventListener(key, listener);\n };\n GridOptionsWrapper.checkEventDeprecation = function (eventName) {\n if (eventName === 'floatingRowDataChanged') {\n console.warn('ag-Grid: floatingRowDataChanged is now called pinnedRowDataChanged');\n }\n };\n GridOptionsWrapper.prototype.removeEventListener = function (key, listener) {\n this.propertyEventService.removeEventListener(key, listener);\n };\n GridOptionsWrapper.prototype.getAutoSizePadding = function () {\n return this.gridOptions.autoSizePadding && this.gridOptions.autoSizePadding > 0 ? this.gridOptions.autoSizePadding : 20;\n };\n // properties\n GridOptionsWrapper.prototype.getHeaderHeight = function () {\n if (typeof this.gridOptions.headerHeight === 'number') {\n return this.gridOptions.headerHeight;\n }\n return this.specialForNewMaterial(25, 'headerHeight');\n };\n GridOptionsWrapper.prototype.getFloatingFiltersHeight = function () {\n if (typeof this.gridOptions.floatingFiltersHeight === 'number') {\n return this.gridOptions.floatingFiltersHeight;\n }\n return this.specialForNewMaterial(25, 'headerHeight');\n };\n GridOptionsWrapper.prototype.getGroupHeaderHeight = function () {\n if (typeof this.gridOptions.groupHeaderHeight === 'number') {\n return this.gridOptions.groupHeaderHeight;\n }\n return this.getHeaderHeight();\n };\n GridOptionsWrapper.prototype.getPivotHeaderHeight = function () {\n if (typeof this.gridOptions.pivotHeaderHeight === 'number') {\n return this.gridOptions.pivotHeaderHeight;\n }\n return this.getHeaderHeight();\n };\n GridOptionsWrapper.prototype.getPivotGroupHeaderHeight = function () {\n if (typeof this.gridOptions.pivotGroupHeaderHeight === 'number') {\n return this.gridOptions.pivotGroupHeaderHeight;\n }\n return this.getGroupHeaderHeight();\n };\n GridOptionsWrapper.prototype.isExternalFilterPresent = function () {\n if (typeof this.gridOptions.isExternalFilterPresent === 'function') {\n return this.gridOptions.isExternalFilterPresent();\n }\n return false;\n };\n GridOptionsWrapper.prototype.doesExternalFilterPass = function (node) {\n if (typeof this.gridOptions.doesExternalFilterPass === 'function') {\n return this.gridOptions.doesExternalFilterPass(node);\n }\n return false;\n };\n GridOptionsWrapper.prototype.getDocument = function () {\n // if user is providing document, we use the users one,\n // otherwise we use the document on the global namespace.\n var result = null;\n if (this.gridOptions.getDocument && utils_1._.exists(this.gridOptions.getDocument)) {\n result = this.gridOptions.getDocument();\n }\n if (result && utils_1._.exists(result)) {\n return result;\n }\n return document;\n };\n GridOptionsWrapper.prototype.getMinColWidth = function () {\n if (this.gridOptions.minColWidth && (this.gridOptions.minColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH)) {\n return this.gridOptions.minColWidth;\n }\n return GridOptionsWrapper_1.MIN_COL_WIDTH;\n };\n GridOptionsWrapper.prototype.getMaxColWidth = function () {\n if (this.gridOptions.maxColWidth && (this.gridOptions.maxColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH)) {\n return this.gridOptions.maxColWidth;\n }\n return null;\n };\n GridOptionsWrapper.prototype.getColWidth = function () {\n if (typeof this.gridOptions.colWidth !== 'number' || this.gridOptions.colWidth < GridOptionsWrapper_1.MIN_COL_WIDTH) {\n return 200;\n }\n return this.gridOptions.colWidth;\n };\n GridOptionsWrapper.prototype.getRowBuffer = function () {\n var rowBuffer = this.gridOptions.rowBuffer;\n if (typeof rowBuffer === 'number') {\n if (rowBuffer < 0) {\n utils_1._.doOnce(function () { return console.warn(\"ag-Grid: rowBuffer should not be negative\"); }, 'warn rowBuffer negative');\n this.gridOptions.rowBuffer = rowBuffer = 0;\n }\n }\n else {\n rowBuffer = constants_1.Constants.ROW_BUFFER_SIZE;\n }\n return rowBuffer;\n };\n GridOptionsWrapper.prototype.getRowBufferInPixels = function () {\n var rowsToBuffer = this.getRowBuffer();\n var defaultRowHeight = this.getRowHeightAsNumber();\n return rowsToBuffer * defaultRowHeight;\n };\n // the user might be using some non-standard scrollbar, eg a scrollbar that has zero\n // width and overlays (like the Safari scrollbar, but presented in Chrome). so we\n // allow the user to provide the scroll width before we work it out.\n GridOptionsWrapper.prototype.getScrollbarWidth = function () {\n if (this.scrollWidth == null) {\n var useGridOptions = typeof this.gridOptions.scrollbarWidth === 'number' &&\n this.gridOptions.scrollbarWidth >= 0;\n this.scrollWidth = useGridOptions ? this.gridOptions.scrollbarWidth : utils_1._.getScrollbarWidth();\n }\n return this.scrollWidth;\n };\n GridOptionsWrapper.prototype.checkForDeprecated = function () {\n var _this = this;\n // casting to generic object, so typescript compiles even though\n // we are looking for attributes that don't exist\n var options = this.gridOptions;\n if (options.suppressUnSort) {\n console.warn('ag-grid: as of v1.12.4 suppressUnSort is not used. Please use sortingOrder instead.');\n }\n if (options.suppressDescSort) {\n console.warn('ag-grid: as of v1.12.4 suppressDescSort is not used. Please use sortingOrder instead.');\n }\n if (options.groupAggFields) {\n console.warn('ag-grid: as of v3 groupAggFields is not used. Please add appropriate agg fields to your columns.');\n }\n if (options.groupHidePivotColumns) {\n console.warn('ag-grid: as of v3 groupHidePivotColumns is not used as pivot columns are now called rowGroup columns. Please refer to the documentation');\n }\n if (options.groupKeys) {\n console.warn('ag-grid: as of v3 groupKeys is not used. You need to set rowGroupIndex on the columns to group. Please refer to the documentation');\n }\n if (typeof options.groupDefaultExpanded === 'boolean') {\n console.warn('ag-grid: groupDefaultExpanded can no longer be boolean. for groupDefaultExpanded=true, use groupDefaultExpanded=9999 instead, to expand all the groups');\n }\n if (options.onRowDeselected || options.rowDeselected) {\n console.warn('ag-grid: since version 3.4 event rowDeselected no longer exists, please check the docs');\n }\n if (options.rowsAlreadyGrouped) {\n console.warn('ag-grid: since version 3.4 rowsAlreadyGrouped no longer exists, please use getNodeChildDetails() instead');\n }\n if (options.groupAggFunction) {\n console.warn('ag-grid: since version 4.3.x groupAggFunction is now called groupRowAggNodes');\n }\n if (options.checkboxSelection) {\n console.warn('ag-grid: since version 8.0.x checkboxSelection is not supported as a grid option. ' +\n 'If you want this on all columns, use defaultColDef instead and set it there');\n }\n if (options.paginationInitialRowCount) {\n console.warn('ag-grid: since version 9.0.x paginationInitialRowCount is now called infiniteInitialRowCount');\n }\n if (options.infinitePageSize) {\n console.warn('ag-grid: since version 9.0.x infinitePageSize is now called cacheBlockSize');\n }\n if (options.infiniteBlockSize) {\n console.warn('ag-grid: since version 10.0.x infiniteBlockSize is now called cacheBlockSize');\n }\n if (options.maxPagesInCache) {\n console.warn('ag-grid: since version 10.0.x maxPagesInCache is now called maxBlocksInCache');\n }\n if (options.paginationOverflowSize) {\n console.warn('ag-grid: since version 10.0.x paginationOverflowSize is now called cacheOverflowSize');\n }\n // if (options.forPrint) {\n // console.warn('ag-grid: since version 10.1.x, use property domLayout=\"forPrint\" instead of forPrint=true');\n // }\n if (options.suppressMenuFilterPanel) {\n console.warn(\"ag-grid: since version 11.0.x, use property colDef.menuTabs=['generalMenuTab','columnsMenuTab'] instead of suppressMenuFilterPanel=true\");\n }\n if (options.suppressMenuMainPanel) {\n console.warn(\"ag-grid: since version 11.0.x, use property colDef.menuTabs=['filterMenuTab','columnsMenuTab'] instead of suppressMenuMainPanel=true\");\n }\n if (options.suppressMenuColumnPanel) {\n console.warn(\"ag-grid: since version 11.0.x, use property colDef.menuTabs=['generalMenuTab','filterMenuTab'] instead of suppressMenuColumnPanel=true\");\n }\n if (options.suppressUseColIdForGroups) {\n console.warn(\"ag-grid: since version 11.0.x, this is not in use anymore. You should be able to remove it from your definition\");\n }\n if (options.groupSuppressRow) {\n console.warn(\"ag-grid: since version 18.2.x, 'groupSuppressRow' should not be used anymore. Instead remove row groups and perform custom sorting.\");\n }\n if (options.groupColumnDef) {\n console.warn(\"ag-grid: since version 11.0.x, groupColumnDef has been renamed, this property is now called autoGroupColumnDef. Please change your configuration accordingly\");\n }\n if (options.slaveGrids) {\n console.warn(\"ag-grid: since version 12.x, slaveGrids has been renamed, this property is now called alignedGrids. Please change your configuration accordingly\");\n }\n if (options.floatingTopRowData) {\n console.warn(\"ag-grid: since version 12.x, floatingTopRowData is now called pinnedTopRowData\");\n }\n if (options.floatingBottomRowData) {\n console.warn(\"ag-grid: since version 12.x, floatingBottomRowData is now called pinnedBottomRowData\");\n }\n if (options.paginationStartPage) {\n console.warn(\"ag-grid: since version 12.x, paginationStartPage is gone, please call api.paginationGoToPage(\" + options.paginationStartPage + \") instead.\");\n }\n if (options.getHeaderCellTemplate) {\n console.warn(\"ag-grid: since version 15.x, getHeaderCellTemplate is gone, please check the header documentation on how to set header templates.\");\n }\n if (options.headerCellTemplate) {\n console.warn(\"ag-grid: since version 15.x, headerCellTemplate is gone, please check the header documentation on how to set header templates.\");\n }\n if (options.headerCellRenderer) {\n console.warn(\"ag-grid: since version 15.x, headerCellRenderer is gone, please check the header documentation on how to set header templates.\");\n }\n if (options.angularCompileHeaders) {\n console.warn(\"ag-grid: since version 15.x, angularCompileHeaders is gone, please see the getting started for Angular 1 docs to see how to do headers in Angular 1.x.\");\n }\n if (options.pivotTotals) {\n console.warn(\"ag-grid: since version 18.x, pivotTotals has been removed, instead if using pivotTotals, set pivotColumnGroupTotals='before'|'after'.\");\n options.pivotColumnGroupTotals = 'before';\n }\n if (options.rowModelType === 'inMemory') {\n console.warn(\"ag-grid: since version 18.x, The In Memory Row Model has been renamed to the Client Side Row Model, set rowModelType='clientSide' instead.\");\n options.rowModelType = 'clientSide';\n }\n if (options.rowModelType === 'enterprise') {\n console.warn(\"ag-grid: since version 18.x, The Enterprise Row Model has been renamed to the Server Side Row Model, set rowModelType='serverSide' instead.\");\n options.rowModelType = 'serverSide';\n }\n if (options.layoutInterval) {\n console.warn(\"ag-grid: since version 18.x, layoutInterval is no longer a property. This is because the grid now uses CSS Flex for layout.\");\n }\n if (options.gridAutoHeight) {\n console.warn(\"ag-grid: since version 19.x, gridAutoHeight is gone, please use domLayout=autoHeight instead\");\n options.domLayout = 'autoHeight';\n }\n if (options.showToolPanel === true) {\n console.warn(\"ag-grid: since version 19.x, showToolPanel is gone, please specify toolPanel components. See https://www.ag-grid.com/javascript-grid-tool-panel/\");\n options.showToolPanel = undefined;\n options.sideBar = options.sideBar || true;\n }\n if (options.showToolPanel === false) {\n console.warn(\"ag-grid: since version 19.x, showToolPanel is gone, please specify toolPanel components. See https://www.ag-grid.com/javascript-grid-tool-panel/\");\n options.showToolPanel = undefined;\n options.sideBar = options.sideBar || false;\n }\n var oldToolPanelProperties = {\n toolPanelSuppressRowGroups: 'suppressRowGroups',\n toolPanelSuppressValues: 'suppressValues',\n toolPanelSuppressPivots: 'suppressPivots',\n toolPanelSuppressPivotMode: 'suppressPivotMode',\n toolPanelSuppressColumnFilter: 'suppressColumnFilter',\n toolPanelSuppressColumnSelectAll: 'suppressColumnSelectAll',\n toolPanelSuppressSideButtons: 'suppressSideButtons',\n toolPanelSuppressColumnExpandAll: 'suppressColumnExpandAll',\n contractColumnSelection: 'contractColumnSelection'\n };\n var toolPanelColumnsCompProps = {};\n Object.keys(oldToolPanelProperties).forEach(function (key) {\n var translation = oldToolPanelProperties[key];\n var value = _this.gridOptions[key];\n if (value !== undefined) {\n if (key === 'toolPanelSuppressSideButtons') {\n console.warn('ag-grid: since v19.0 toolPanelSuppressSideButtons has been completely removed. See https://www.ag-grid.com/javascript-grid-tool-panel/');\n return;\n }\n console.warn(\"ag-grid: since v19.0 gridOptions.\" + key + \" is deprecated, please use gridOptions.sideBar.toolPanel[columnsIndex].componentParams.\" + translation);\n toolPanelColumnsCompProps[translation] = value;\n }\n });\n if (Object.keys(toolPanelColumnsCompProps).length > 0 && !utils_1._.exists(options.sideBar)) {\n console.warn(\"ag-grid: since version 19.x, sideBar is mandatory if using toolPanel related properties. See https://www.ag-grid.com/javascript-grid-tool-panel/\");\n options.sideBar = true;\n }\n if (options.sideBar != null) {\n options.sideBar = sideBar_1.SideBarDefParser.parse(options.sideBar);\n }\n var sideBarDef = this.gridOptions.sideBar;\n if (Object.keys(toolPanelColumnsCompProps).length > 0 && sideBarDef && sideBarDef.toolPanels) {\n var columnsDef = (sideBarDef.toolPanels.filter(function (it) { return it.id === 'columns'; }));\n if (columnsDef.length === 1) {\n utils_1._.mergeDeep(columnsDef[0], {\n componentParams: toolPanelColumnsCompProps\n });\n }\n }\n if (options.enableStatusBar) {\n console.warn(\"ag-grid: since version 19.x, enableStatusBar is gone, please specify statusBar components\");\n options.statusBar = options.statusBar ||\n {\n components: [{ component: 'agAggregationComponent' }]\n };\n }\n if (options.alwaysShowStatusBar) {\n console.warn(\"ag-grid: since version 19.x, alwaysShowStatusBar is gone. Please specify a min-height on the ag-status-bar css class, eg .ag-status-bar {min-height: 35px; }\");\n }\n if (options.enableServerSideSorting || options.enableSorting) {\n console.warn(\"ag-Grid: since v20, grid options enableSorting and enableServerSideSorting are gone. Instead set sortable=true on the column definition for the columns sorting are allowed on. To migrate from gridOption.enableSorting=true, set gridOptions.defaultColDef.sortable=true\");\n if (!options.defaultColDef) {\n options.defaultColDef = {};\n }\n if (!options.defaultColDef.sortable) {\n options.defaultColDef.sortable = true;\n }\n }\n if (options.enableFilter || options.enableServerSideFilter) {\n console.warn(\"ag-Grid: since v20, grid options enableFilter and enableServerSideFilter are gone. Instead set filter=true (if not already specifying a specific filter) on the column definition for the columns filtering is allowed on. To migrate from gridOptions.enableFilter=true, set gridOptions.defaultColDef.filter=true. If you are explicitly setting specific filters for each column (ie colDef.filter is already set) the you don't need to do anything.\");\n if (!options.defaultColDef) {\n options.defaultColDef = {};\n }\n if (!options.defaultColDef.filter) {\n options.defaultColDef.filter = true;\n }\n }\n if (options.enableColResize) {\n console.warn(\"ag-Grid: since v20, grid options enableColResize is gone. Instead set resizable=true on the column definition for the columns resizing are allowed on. To migrate from gridOption.enableColResize=true, set gridOptions.defaultColDef.resizable=true\");\n if (!options.defaultColDef) {\n options.defaultColDef = {};\n }\n if (!options.defaultColDef.resizable) {\n options.defaultColDef.resizable = true;\n }\n }\n if (options.deprecatedEmbedFullWidthRows) {\n console.warn(\"ag-Grid: since v21.2, deprecatedEmbedFullWidthRows has been replaced with embedFullWidthRows.\");\n }\n if (options.suppressTabbing) {\n console.warn(\"ag-Grid: since v20.1, suppressTabbing is replaced with the more powerful grid callback suppressKeyboardEvent(params) which can suppress any keyboard event including tabbing.\");\n }\n if (options.doesDataFlower) {\n console.warn('ag-Grid: since v21.1, doesDataFlower is deprecated. Master/Detail is the new way for showing child data for a row and was introduced over a year ago. Please migrate your code to use master/detail instead.');\n }\n };\n GridOptionsWrapper.prototype.checkForViolations = function () {\n if (this.isTreeData()) {\n this.treeDataViolations();\n }\n };\n GridOptionsWrapper.prototype.treeDataViolations = function () {\n if (this.isRowModelDefault()) {\n if (utils_1._.missing(this.getDataPathFunc())) {\n console.warn('ag-Grid: property usingTreeData=true with rowModel=clientSide, but you did not ' +\n 'provide getDataPath function, please provide getDataPath function if using tree data.');\n }\n }\n if (this.isRowModelServerSide()) {\n if (utils_1._.missing(this.getIsServerSideGroupFunc())) {\n console.warn('ag-Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +\n 'provide isServerSideGroup function, please provide isServerSideGroup function if using tree data.');\n }\n if (utils_1._.missing(this.getServerSideGroupKeyFunc())) {\n console.warn('ag-Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +\n 'provide getServerSideGroupKey function, please provide getServerSideGroupKey function if using tree data.');\n }\n }\n };\n GridOptionsWrapper.prototype.getLocaleTextFunc = function () {\n if (this.gridOptions.localeTextFunc) {\n return this.gridOptions.localeTextFunc;\n }\n var that = this;\n return function (key, defaultValue) {\n var localeText = that.gridOptions.localeText;\n if (localeText && localeText[key]) {\n return localeText[key];\n }\n return defaultValue;\n };\n };\n // responsible for calling the onXXX functions on gridOptions\n GridOptionsWrapper.prototype.globalEventHandler = function (eventName, event) {\n var callbackMethodName = componentUtil_1.ComponentUtil.getCallbackForEvent(eventName);\n if (typeof this.gridOptions[callbackMethodName] === 'function') {\n this.gridOptions[callbackMethodName](event);\n }\n };\n // we don't allow dynamic row height for virtual paging\n GridOptionsWrapper.prototype.getRowHeightAsNumber = function () {\n if (!this.gridOptions.rowHeight || utils_1._.missing(this.gridOptions.rowHeight)) {\n return this.getDefaultRowHeight();\n }\n else if (this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight)) {\n return this.gridOptions.rowHeight;\n }\n console.warn('ag-Grid row height must be a number if not using standard row model');\n return this.getDefaultRowHeight();\n };\n GridOptionsWrapper.prototype.getRowHeightForNode = function (rowNode, allowEstimate) {\n // check the function first, in case use set both function and\n // number, when using virtual pagination then function can be\n // used for pinned rows and the number for the body rows.\n if (allowEstimate === void 0) { allowEstimate = false; }\n if (typeof this.gridOptions.getRowHeight === 'function') {\n if (allowEstimate) {\n return { height: this.getDefaultRowHeight(), estimated: true };\n }\n var params = {\n node: rowNode,\n data: rowNode.data,\n api: this.gridOptions.api,\n context: this.gridOptions.context\n };\n return { height: this.gridOptions.getRowHeight(params), estimated: false };\n }\n else if (rowNode.detail && this.isMasterDetail()) {\n if (this.isNumeric(this.gridOptions.detailRowHeight)) {\n return { height: this.gridOptions.detailRowHeight, estimated: false };\n }\n else {\n return { height: DEFAULT_DETAIL_ROW_HEIGHT, estimated: false };\n }\n }\n var defaultRowHeight = this.getDefaultRowHeight();\n var rowHeight = this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight) ?\n this.gridOptions.rowHeight : defaultRowHeight;\n var minRowHeight = Math.min(defaultRowHeight, rowHeight);\n if (this.columnController.isAutoRowHeightActive()) {\n if (allowEstimate) {\n return { height: rowHeight, estimated: true };\n }\n var autoHeight = this.autoHeightCalculator.getPreferredHeightForRow(rowNode);\n // never return less than the default row height - covers when auto height\n // cells are blank.\n return { height: Math.max(autoHeight, minRowHeight), estimated: false };\n }\n return { height: rowHeight, estimated: false };\n };\n GridOptionsWrapper.prototype.isDynamicRowHeight = function () {\n return typeof this.gridOptions.getRowHeight === 'function';\n };\n GridOptionsWrapper.prototype.getVirtualItemHeight = function () {\n return this.specialForNewMaterial(20, 'virtualItemHeight');\n };\n GridOptionsWrapper.prototype.isNumeric = function (value) {\n return !isNaN(value) && typeof value === 'number';\n };\n // Material data table has strict guidelines about whitespace, and these values are different than the ones\n // ag-grid uses by default. We override the default ones for the sake of making it better out of the box\n GridOptionsWrapper.prototype.specialForNewMaterial = function (defaultValue, sassVariableName) {\n var theme = this.environment.getTheme().theme;\n if (theme && theme.indexOf('ag-theme') === 0) {\n return this.environment.getSassVariable(theme, sassVariableName);\n }\n return defaultValue;\n };\n GridOptionsWrapper.prototype.getDefaultRowHeight = function () {\n return this.specialForNewMaterial(DEFAULT_ROW_HEIGHT, 'rowHeight');\n };\n var GridOptionsWrapper_1;\n GridOptionsWrapper.MIN_COL_WIDTH = 10;\n GridOptionsWrapper.PROP_HEADER_HEIGHT = 'headerHeight';\n GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN = 'groupRemoveSingleChildren';\n GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN = 'groupRemoveLowestSingleChildren';\n GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT = 'pivotHeaderHeight';\n GridOptionsWrapper.PROP_SUPPRESS_CLIPBOARD_PASTE = 'suppressClipboardPaste';\n GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT = 'groupHeaderHeight';\n GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT = 'pivotGroupHeaderHeight';\n GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT = 'floatingFiltersHeight';\n GridOptionsWrapper.PROP_SUPPRESS_ROW_DRAG = 'suppressRowDrag';\n GridOptionsWrapper.PROP_POPUP_PARENT = 'popupParent';\n GridOptionsWrapper.PROP_DOM_LAYOUT = 'domLayout';\n __decorate([\n context_1.Autowired('gridOptions'),\n __metadata(\"design:type\", Object)\n ], GridOptionsWrapper.prototype, \"gridOptions\", void 0);\n __decorate([\n context_1.Autowired('columnController'),\n __metadata(\"design:type\", columnController_1.ColumnController)\n ], GridOptionsWrapper.prototype, \"columnController\", void 0);\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], GridOptionsWrapper.prototype, \"eventService\", void 0);\n __decorate([\n context_1.Autowired('enterprise'),\n __metadata(\"design:type\", Boolean)\n ], GridOptionsWrapper.prototype, \"enterprise\", void 0);\n __decorate([\n context_1.Autowired('gridApi'),\n __metadata(\"design:type\", gridApi_1.GridApi)\n ], GridOptionsWrapper.prototype, \"gridApi\", void 0);\n __decorate([\n context_1.Autowired('columnApi'),\n __metadata(\"design:type\", columnApi_1.ColumnApi)\n ], GridOptionsWrapper.prototype, \"columnApi\", void 0);\n __decorate([\n context_1.Autowired('environment'),\n __metadata(\"design:type\", environment_1.Environment)\n ], GridOptionsWrapper.prototype, \"environment\", void 0);\n __decorate([\n context_1.Autowired('autoHeightCalculator'),\n __metadata(\"design:type\", autoHeightCalculator_1.AutoHeightCalculator)\n ], GridOptionsWrapper.prototype, \"autoHeightCalculator\", void 0);\n __decorate([\n context_1.Autowired('context'),\n __metadata(\"design:type\", context_1.Context)\n ], GridOptionsWrapper.prototype, \"context\", void 0);\n __decorate([\n __param(0, context_1.Qualifier('gridApi')), __param(1, context_1.Qualifier('columnApi')),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [gridApi_1.GridApi, columnApi_1.ColumnApi]),\n __metadata(\"design:returntype\", void 0)\n ], GridOptionsWrapper.prototype, \"agWire\", null);\n __decorate([\n context_1.PreDestroy,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], GridOptionsWrapper.prototype, \"destroy\", null);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], GridOptionsWrapper.prototype, \"init\", null);\n GridOptionsWrapper = GridOptionsWrapper_1 = __decorate([\n context_1.Bean('gridOptionsWrapper')\n ], GridOptionsWrapper);\n return GridOptionsWrapper;\n}());\nexports.GridOptionsWrapper = GridOptionsWrapper;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar constants_1 = require(\"../constants\");\nvar mouseEventService_1 = require(\"./mouseEventService\");\nvar paginationProxy_1 = require(\"../rowModels/paginationProxy\");\nvar focusedCellController_1 = require(\"../focusedCellController\");\nvar animationFrameService_1 = require(\"../misc/animationFrameService\");\nvar columnController_1 = require(\"../columnController/columnController\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar utils_1 = require(\"../utils\");\nvar NavigationService = /** @class */ (function () {\n function NavigationService() {\n this.timeLastPageEventProcessed = 0;\n }\n NavigationService.prototype.init = function () {\n this.scrollWidth = this.gridOptionsWrapper.getScrollbarWidth();\n };\n NavigationService.prototype.registerGridComp = function (gridPanel) {\n this.gridPanel = gridPanel;\n };\n NavigationService.prototype.handlePageScrollingKey = function (event) {\n var key = event.which || event.keyCode;\n var alt = event.altKey;\n var ctrl = event.ctrlKey;\n var currentCell = this.mouseEventService.getCellPositionForEvent(event);\n if (!currentCell) {\n return false;\n }\n var processed = false;\n switch (key) {\n case constants_1.Constants.KEY_PAGE_HOME:\n case constants_1.Constants.KEY_PAGE_END:\n // handle home and end when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onHomeOrEndKey(key);\n processed = true;\n }\n break;\n case constants_1.Constants.KEY_LEFT:\n case constants_1.Constants.KEY_RIGHT:\n // handle left and right when ctrl is pressed only\n if (ctrl && !alt) {\n this.onCtrlLeftOrRight(key, currentCell);\n processed = true;\n }\n break;\n case constants_1.Constants.KEY_UP:\n case constants_1.Constants.KEY_DOWN:\n // handle up and down when ctrl is pressed only\n if (ctrl && !alt) {\n this.onCtrlUpOrDown(key, currentCell);\n processed = true;\n }\n break;\n case constants_1.Constants.KEY_PAGE_DOWN:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onPageDown(currentCell);\n processed = true;\n }\n break;\n case constants_1.Constants.KEY_PAGE_UP:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onPageUp(currentCell);\n processed = true;\n }\n break;\n }\n if (processed) {\n event.preventDefault();\n }\n return processed;\n };\n // the page up/down keys caused a problem, in that if the user\n // held the page up/down key down, lots of events got generated,\n // which clogged up the event queue (as they take time to process)\n // which in turn froze the grid. Logic below makes sure we wait 100ms\n // between processing the page up/down events, so when user has finger\n // held down on key, we ignore page up/down events until 100ms has passed,\n // which effectively empties the queue of page up/down events.\n NavigationService.prototype.isTimeSinceLastPageEventToRecent = function () {\n var now = new Date().getTime();\n var diff = now - this.timeLastPageEventProcessed;\n return (diff < 100);\n };\n NavigationService.prototype.setTimeLastPageEventProcessed = function () {\n this.timeLastPageEventProcessed = new Date().getTime();\n };\n NavigationService.prototype.onPageDown = function (gridCell) {\n if (this.isTimeSinceLastPageEventToRecent()) {\n return;\n }\n var scrollPosition = this.gridPanel.getVScrollPosition();\n var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;\n if (this.gridPanel.isHorizontalScrollShowing()) {\n pixelsInOnePage -= this.scrollWidth;\n }\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentPageBottomPixel = scrollPosition.top + pixelsInOnePage;\n var currentPageBottomRow = this.paginationProxy.getRowIndexAtPixel(currentPageBottomPixel + pagingPixelOffset);\n var scrollIndex = currentPageBottomRow;\n var currentCellPixel = this.paginationProxy.getRow(gridCell.rowIndex).rowTop;\n var nextCellPixel = currentCellPixel + pixelsInOnePage - pagingPixelOffset;\n var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);\n var pageLastRow = this.paginationProxy.getPageLastRow();\n if (focusIndex > pageLastRow) {\n focusIndex = pageLastRow;\n }\n if (scrollIndex > pageLastRow) {\n scrollIndex = pageLastRow;\n }\n this.navigateTo(scrollIndex, 'top', null, focusIndex, gridCell.column);\n this.setTimeLastPageEventProcessed();\n };\n NavigationService.prototype.onPageUp = function (gridCell) {\n if (this.isTimeSinceLastPageEventToRecent()) {\n return;\n }\n var scrollPosition = this.gridPanel.getVScrollPosition();\n var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;\n if (this.gridPanel.isHorizontalScrollShowing()) {\n pixelsInOnePage -= this.scrollWidth;\n }\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentPageTopPixel = scrollPosition.top;\n var currentPageTopRow = this.paginationProxy.getRowIndexAtPixel(currentPageTopPixel + pagingPixelOffset);\n var scrollIndex = currentPageTopRow;\n var currentRowNode = this.paginationProxy.getRow(gridCell.rowIndex);\n var nextCellPixel = currentRowNode.rowTop + currentRowNode.rowHeight - pixelsInOnePage - pagingPixelOffset;\n var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);\n var firstRow = this.paginationProxy.getPageFirstRow();\n if (focusIndex < firstRow) {\n focusIndex = firstRow;\n }\n if (scrollIndex < firstRow) {\n scrollIndex = firstRow;\n }\n this.navigateTo(scrollIndex, 'bottom', null, focusIndex, gridCell.column);\n this.setTimeLastPageEventProcessed();\n };\n // common logic to navigate. takes parameters:\n // scrollIndex - what row to vertically scroll to\n // scrollType - what position to put scroll index ie top/bottom\n // scrollColumn - what column to horizontally scroll to\n // focusIndex / focusColumn - for page up / down, we want to scroll to one row/column, but focus another\n NavigationService.prototype.navigateTo = function (scrollIndex, scrollType, scrollColumn, focusIndex, focusColumn) {\n if (utils_1._.exists(scrollColumn)) {\n this.gridPanel.ensureColumnVisible(scrollColumn);\n }\n if (utils_1._.exists(scrollIndex)) {\n this.gridPanel.ensureIndexVisible(scrollIndex, scrollType);\n }\n // make sure the cell is rendered, needed if we are to focus\n this.animationFrameService.flushAllFrames();\n // if we don't do this, the range will be left on the last cell, which will leave the last focused cell\n // highlighted.\n this.focusedCellController.setFocusedCell(focusIndex, focusColumn, null, true);\n if (this.rangeController) {\n var cellPosition = { rowIndex: focusIndex, rowPinned: null, column: focusColumn };\n this.rangeController.setRangeToCell(cellPosition);\n }\n };\n // ctrl + up/down will bring focus to same column, first/last row. no horizontal scrolling.\n NavigationService.prototype.onCtrlUpOrDown = function (key, gridCell) {\n var upKey = key === constants_1.Constants.KEY_UP;\n var rowIndexToScrollTo = upKey ? 0 : this.paginationProxy.getPageLastRow();\n this.navigateTo(rowIndexToScrollTo, null, gridCell.column, rowIndexToScrollTo, gridCell.column);\n };\n // ctrl + left/right will bring focus to same row, first/last cell. no vertical scrolling.\n NavigationService.prototype.onCtrlLeftOrRight = function (key, gridCell) {\n var leftKey = key === constants_1.Constants.KEY_LEFT;\n var allColumns = this.columnController.getAllDisplayedColumns();\n var columnToSelect = leftKey ? allColumns[0] : utils_1._.last(allColumns);\n this.navigateTo(gridCell.rowIndex, null, columnToSelect, gridCell.rowIndex, columnToSelect);\n };\n // home brings focus to top left cell, end brings focus to bottom right, grid scrolled to bring\n // same cell into view (which means either scroll all the way up, or all the way down).\n NavigationService.prototype.onHomeOrEndKey = function (key) {\n var homeKey = key === constants_1.Constants.KEY_PAGE_HOME;\n var allColumns = this.columnController.getAllDisplayedColumns();\n var columnToSelect = homeKey ? allColumns[0] : utils_1._.last(allColumns);\n var rowIndexToScrollTo = homeKey ? 0 : this.paginationProxy.getPageLastRow();\n this.navigateTo(rowIndexToScrollTo, null, columnToSelect, rowIndexToScrollTo, columnToSelect);\n };\n __decorate([\n context_1.Autowired('mouseEventService'),\n __metadata(\"design:type\", mouseEventService_1.MouseEventService)\n ], NavigationService.prototype, \"mouseEventService\", void 0);\n __decorate([\n context_1.Autowired('paginationProxy'),\n __metadata(\"design:type\", paginationProxy_1.PaginationProxy)\n ], NavigationService.prototype, \"paginationProxy\", void 0);\n __decorate([\n context_1.Autowired('focusedCellController'),\n __metadata(\"design:type\", focusedCellController_1.FocusedCellController)\n ], NavigationService.prototype, \"focusedCellController\", void 0);\n __decorate([\n context_1.Autowired('animationFrameService'),\n __metadata(\"design:type\", animationFrameService_1.AnimationFrameService)\n ], NavigationService.prototype, \"animationFrameService\", void 0);\n __decorate([\n context_1.Optional('rangeController'),\n __metadata(\"design:type\", Object)\n ], NavigationService.prototype, \"rangeController\", void 0);\n __decorate([\n context_1.Autowired('columnController'),\n __metadata(\"design:type\", columnController_1.ColumnController)\n ], NavigationService.prototype, \"columnController\", void 0);\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], NavigationService.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], NavigationService.prototype, \"init\", null);\n NavigationService = __decorate([\n context_1.Bean('navigationService')\n ], NavigationService);\n return NavigationService;\n}());\nexports.NavigationService = NavigationService;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar eventService_1 = require(\"../eventService\");\nvar events_1 = require(\"../events\");\nvar columnController_1 = require(\"../columnController/columnController\");\nvar columnApi_1 = require(\"../columnController/columnApi\");\nvar gridApi_1 = require(\"../gridApi\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar ScrollVisibleService = /** @class */ (function () {\n function ScrollVisibleService() {\n }\n ScrollVisibleService.prototype.setScrollsVisible = function (params) {\n var atLeastOneDifferent = this.horizontalScrollShowing !== params.horizontalScrollShowing ||\n this.verticalScrollShowing !== params.verticalScrollShowing;\n if (atLeastOneDifferent) {\n this.horizontalScrollShowing = params.horizontalScrollShowing;\n this.verticalScrollShowing = params.verticalScrollShowing;\n var event_1 = {\n type: events_1.Events.EVENT_SCROLL_VISIBILITY_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n // used by pagination service - to know page height\n ScrollVisibleService.prototype.isHorizontalScrollShowing = function () {\n return this.horizontalScrollShowing;\n };\n // used by header container\n ScrollVisibleService.prototype.isVerticalScrollShowing = function () {\n return this.verticalScrollShowing;\n };\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], ScrollVisibleService.prototype, \"eventService\", void 0);\n __decorate([\n context_1.Autowired('columnController'),\n __metadata(\"design:type\", columnController_1.ColumnController)\n ], ScrollVisibleService.prototype, \"columnController\", void 0);\n __decorate([\n context_1.Autowired('columnApi'),\n __metadata(\"design:type\", columnApi_1.ColumnApi)\n ], ScrollVisibleService.prototype, \"columnApi\", void 0);\n __decorate([\n context_1.Autowired('gridApi'),\n __metadata(\"design:type\", gridApi_1.GridApi)\n ], ScrollVisibleService.prototype, \"gridApi\", void 0);\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], ScrollVisibleService.prototype, \"gridOptionsWrapper\", void 0);\n ScrollVisibleService = __decorate([\n context_1.Bean('scrollVisibleService')\n ], ScrollVisibleService);\n return ScrollVisibleService;\n}());\nexports.ScrollVisibleService = ScrollVisibleService;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dragAndDropService_1 = require(\"../dragAndDrop/dragAndDropService\");\nvar context_1 = require(\"../context/context\");\nvar focusedCellController_1 = require(\"../focusedCellController\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar eventService_1 = require(\"../eventService\");\nvar eventKeys_1 = require(\"../eventKeys\");\nvar constants_1 = require(\"../constants\");\nvar RowDragFeature = /** @class */ (function () {\n function RowDragFeature(eContainer, gridPanel) {\n this.eContainer = eContainer;\n this.gridPanel = gridPanel;\n }\n RowDragFeature.prototype.postConstruct = function () {\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.clientSideRowModel = this.rowModel;\n }\n };\n RowDragFeature.prototype.getContainer = function () {\n return this.eContainer;\n };\n RowDragFeature.prototype.isInterestedIn = function (type) {\n return type === dragAndDropService_1.DragSourceType.RowDrag;\n };\n RowDragFeature.prototype.getIconName = function () {\n return dragAndDropService_1.DragAndDropService.ICON_MOVE;\n };\n RowDragFeature.prototype.onDragEnter = function (draggingEvent) {\n // when entering, we fire the enter event, then in onEnterOrDragging,\n // we also fire the move event. so we get both events when entering.\n this.dispatchEvent(eventKeys_1.Events.EVENT_ROW_DRAG_ENTER, draggingEvent);\n this.dragAndDropService.setGhostIcon(dragAndDropService_1.DragAndDropService.ICON_MOVE);\n draggingEvent.dragItem.rowNode.setDragging(true);\n this.onEnterOrDragging(draggingEvent);\n };\n RowDragFeature.prototype.onDragging = function (draggingEvent) {\n this.onEnterOrDragging(draggingEvent);\n };\n RowDragFeature.prototype.onEnterOrDragging = function (draggingEvent) {\n // this event is fired for enter and move\n this.dispatchEvent(eventKeys_1.Events.EVENT_ROW_DRAG_MOVE, draggingEvent);\n this.lastDraggingEvent = draggingEvent;\n var pixel = this.normaliseForScroll(draggingEvent.y);\n var managedDrag = this.gridOptionsWrapper.isRowDragManaged();\n if (managedDrag) {\n this.doManagedDrag(draggingEvent, pixel);\n }\n this.checkCenterForScrolling(pixel);\n };\n RowDragFeature.prototype.doManagedDrag = function (draggingEvent, pixel) {\n var rowNode = draggingEvent.dragItem.rowNode;\n var rowWasMoved = this.clientSideRowModel.ensureRowAtPixel(rowNode, pixel);\n if (rowWasMoved) {\n this.focusedCellController.clearFocusedCell();\n if (this.rangeController) {\n this.rangeController.removeAllCellRanges();\n }\n }\n };\n RowDragFeature.prototype.normaliseForScroll = function (pixel) {\n var gridPanelHasScrolls = this.gridOptionsWrapper.getDomLayout() === constants_1.Constants.DOM_LAYOUT_NORMAL;\n if (gridPanelHasScrolls) {\n var pixelRange = this.gridPanel.getVScrollPosition();\n return pixel + pixelRange.top;\n }\n else {\n return pixel;\n }\n };\n RowDragFeature.prototype.checkCenterForScrolling = function (pixel) {\n // scroll if the mouse is within 50px of the grid edge\n var pixelRange = this.gridPanel.getVScrollPosition();\n // console.log(`pixelRange = (${pixelRange.top}, ${pixelRange.bottom})`);\n this.needToMoveUp = pixel < (pixelRange.top + 50);\n this.needToMoveDown = pixel > (pixelRange.bottom - 50);\n // console.log(`needToMoveUp = ${this.needToMoveUp} = pixel < (pixelRange.top + 50) = ${pixel} < (${pixelRange.top} + 50)`);\n // console.log(`needToMoveDown = ${this.needToMoveDown} = pixel < (pixelRange.top + 50) = ${pixel} < (${pixelRange.top} + 50)`);\n if (this.needToMoveUp || this.needToMoveDown) {\n this.ensureIntervalStarted();\n }\n else {\n this.ensureIntervalCleared();\n }\n };\n RowDragFeature.prototype.ensureIntervalStarted = function () {\n if (!this.movingIntervalId) {\n this.intervalCount = 0;\n this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);\n }\n };\n RowDragFeature.prototype.ensureIntervalCleared = function () {\n if (this.moveInterval) {\n window.clearInterval(this.movingIntervalId);\n this.movingIntervalId = null;\n }\n };\n RowDragFeature.prototype.moveInterval = function () {\n // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow\n // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.\n var pixelsToMove;\n this.intervalCount++;\n pixelsToMove = 10 + (this.intervalCount * 5);\n if (pixelsToMove > 100) {\n pixelsToMove = 100;\n }\n var pixelsMoved;\n if (this.needToMoveDown) {\n pixelsMoved = this.gridPanel.scrollVertically(pixelsToMove);\n }\n else if (this.needToMoveUp) {\n pixelsMoved = this.gridPanel.scrollVertically(-pixelsToMove);\n }\n if (pixelsMoved !== 0) {\n this.onDragging(this.lastDraggingEvent);\n }\n };\n // i tried using generics here with this:\n // public createEvent(type: string, clazz: {new(): T; }, draggingEvent: DraggingEvent) {\n // but it didn't work - i think it's because it only works with classes, and not interfaces, (the events are interfaces)\n RowDragFeature.prototype.dispatchEvent = function (type, draggingEvent) {\n var yNormalised = this.normaliseForScroll(draggingEvent.y);\n var overIndex = -1;\n var overNode = null;\n var mouseIsPastLastRow = yNormalised > this.rowModel.getCurrentPageHeight();\n if (!mouseIsPastLastRow) {\n overIndex = this.rowModel.getRowIndexAtPixel(yNormalised);\n overNode = this.rowModel.getRow(overIndex);\n }\n var vDirectionString;\n switch (draggingEvent.vDirection) {\n case dragAndDropService_1.VDirection.Down:\n vDirectionString = 'down';\n break;\n case dragAndDropService_1.VDirection.Up:\n vDirectionString = 'up';\n break;\n default:\n vDirectionString = null;\n break;\n }\n var event = {\n type: type,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n event: draggingEvent.event,\n node: draggingEvent.dragItem.rowNode,\n overIndex: overIndex,\n overNode: overNode,\n y: yNormalised,\n vDirection: vDirectionString\n };\n this.eventService.dispatchEvent(event);\n };\n RowDragFeature.prototype.onDragLeave = function (draggingEvent) {\n this.dispatchEvent(eventKeys_1.Events.EVENT_ROW_DRAG_LEAVE, draggingEvent);\n this.stopDragging(draggingEvent);\n };\n RowDragFeature.prototype.onDragStop = function (draggingEvent) {\n this.dispatchEvent(eventKeys_1.Events.EVENT_ROW_DRAG_END, draggingEvent);\n this.stopDragging(draggingEvent);\n };\n RowDragFeature.prototype.stopDragging = function (draggingEvent) {\n this.ensureIntervalCleared();\n draggingEvent.dragItem.rowNode.setDragging(false);\n };\n __decorate([\n context_1.Autowired('dragAndDropService'),\n __metadata(\"design:type\", dragAndDropService_1.DragAndDropService)\n ], RowDragFeature.prototype, \"dragAndDropService\", void 0);\n __decorate([\n context_1.Autowired('rowModel'),\n __metadata(\"design:type\", Object)\n ], RowDragFeature.prototype, \"rowModel\", void 0);\n __decorate([\n context_1.Autowired('focusedCellController'),\n __metadata(\"design:type\", focusedCellController_1.FocusedCellController)\n ], RowDragFeature.prototype, \"focusedCellController\", void 0);\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], RowDragFeature.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Optional('rangeController'),\n __metadata(\"design:type\", Object)\n ], RowDragFeature.prototype, \"rangeController\", void 0);\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], RowDragFeature.prototype, \"eventService\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], RowDragFeature.prototype, \"postConstruct\", null);\n return RowDragFeature;\n}());\nexports.RowDragFeature = RowDragFeature;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar columnController_1 = require(\"../columnController/columnController\");\nvar columnApi_1 = require(\"../columnController/columnApi\");\nvar rowRenderer_1 = require(\"../rendering/rowRenderer\");\nvar context_1 = require(\"../context/context\");\nvar eventService_1 = require(\"../eventService\");\nvar events_1 = require(\"../events\");\nvar dragService_1 = require(\"../dragAndDrop/dragService\");\nvar constants_1 = require(\"../constants\");\nvar mouseEventService_1 = require(\"./mouseEventService\");\nvar focusedCellController_1 = require(\"../focusedCellController\");\nvar scrollVisibleService_1 = require(\"./scrollVisibleService\");\nvar rowContainerComponent_1 = require(\"../rendering/rowContainerComponent\");\nvar paginationProxy_1 = require(\"../rowModels/paginationProxy\");\nvar paginationAutoPageSizeService_1 = require(\"../rowModels/paginationAutoPageSizeService\");\nvar popupEditorWrapper_1 = require(\"../rendering/cellEditors/popupEditorWrapper\");\nvar alignedGridsService_1 = require(\"../alignedGridsService\");\nvar pinnedRowModel_1 = require(\"../rowModels/pinnedRowModel\");\nvar gridApi_1 = require(\"../gridApi\");\nvar animationFrameService_1 = require(\"../misc/animationFrameService\");\nvar rowComp_1 = require(\"../rendering/rowComp\");\nvar navigationService_1 = require(\"./navigationService\");\nvar valueService_1 = require(\"../valueService/valueService\");\nvar touchListener_1 = require(\"../widgets/touchListener\");\nvar dragAndDropService_1 = require(\"../dragAndDrop/dragAndDropService\");\nvar rowDragFeature_1 = require(\"./rowDragFeature\");\nvar maxDivHeightScaler_1 = require(\"../rendering/maxDivHeightScaler\");\nvar overlayWrapperComponent_1 = require(\"../rendering/overlays/overlayWrapperComponent\");\nvar component_1 = require(\"../widgets/component\");\nvar autoHeightCalculator_1 = require(\"../rendering/autoHeightCalculator\");\nvar columnAnimationService_1 = require(\"../rendering/columnAnimationService\");\nvar autoWidthCalculator_1 = require(\"../rendering/autoWidthCalculator\");\nvar beans_1 = require(\"../rendering/beans\");\nvar componentAnnotations_1 = require(\"../widgets/componentAnnotations\");\nvar headerRootComp_1 = require(\"../headerRendering/headerRootComp\");\nvar resizeObserverService_1 = require(\"../misc/resizeObserverService\");\nvar utils_1 = require(\"../utils\");\n// in the html below, it is important that there are no white space between some of the divs, as if there is white space,\n// it won't render correctly in safari, as safari renders white space as a gap\nvar GRID_PANEL_NORMAL_TEMPLATE = \"
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\";\nvar GridPanel = /** @class */ (function (_super) {\n __extends(GridPanel, _super);\n function GridPanel() {\n var _this = _super.call(this, GRID_PANEL_NORMAL_TEMPLATE) || this;\n _this.scrollLeft = -1;\n _this.scrollTop = -1;\n _this.nextScrollTop = -1;\n _this.resetLastHorizontalScrollElementDebounce = utils_1._.debounce(_this.resetLastHorizontalScrollElement.bind(_this), 500);\n return _this;\n }\n GridPanel.prototype.getVScrollPosition = function () {\n var result = {\n top: this.eBodyViewport.scrollTop,\n bottom: this.eBodyViewport.scrollTop + this.eBodyViewport.offsetHeight\n };\n return result;\n };\n GridPanel.prototype.getHScrollPosition = function () {\n var result = {\n left: this.eCenterViewport.scrollLeft,\n right: this.eCenterViewport.scrollLeft + this.eCenterViewport.offsetWidth\n };\n return result;\n };\n GridPanel.prototype.onRowDataChanged = function () {\n this.showOrHideOverlay();\n };\n GridPanel.prototype.showOrHideOverlay = function () {\n var isEmpty = this.paginationProxy.isEmpty();\n var isSuppressNoRowsOverlay = this.gridOptionsWrapper.isSuppressNoRowsOverlay();\n var method = isEmpty && !isSuppressNoRowsOverlay ? 'showNoRowsOverlay' : 'hideOverlay';\n this[method]();\n };\n GridPanel.prototype.onNewColumnsLoaded = function () {\n // hide overlay if columns and rows exist, this can happen if columns are loaded after data.\n // this problem exists before of the race condition between the services (column controller in this case)\n // and the view (grid panel). if the model beans were all initialised first, and then the view beans second,\n // this race condition would not happen.\n if (this.columnController.isReady() && !this.paginationProxy.isEmpty()) {\n this.hideOverlay();\n }\n };\n GridPanel.prototype.init = function () {\n var _this = this;\n this.scrollWidth = this.gridOptionsWrapper.getScrollbarWidth();\n this.enableRtl = this.gridOptionsWrapper.isEnableRtl();\n this.printLayout = this.gridOptionsWrapper.getDomLayout() === constants_1.Constants.DOM_LAYOUT_PRINT;\n // these elements have different CSS when layout changes\n this.gridOptionsWrapper.addLayoutElement(this.getGui());\n this.gridOptionsWrapper.addLayoutElement(this.eBodyViewport);\n this.suppressScrollOnFloatingRow();\n this.setupRowAnimationCssClass();\n this.buildRowContainerComponents();\n this.addEventListeners();\n this.addDragListeners();\n this.addScrollListener();\n if (this.gridOptionsWrapper.isRowModelDefault() && !this.gridOptionsWrapper.getRowData()) {\n this.showLoadingOverlay();\n }\n this.setCellTextSelection(this.gridOptionsWrapper.isEnableCellTextSelect());\n this.setPinnedContainerSize();\n this.setHeaderAndFloatingHeights();\n this.disableBrowserDragging();\n this.addMouseListeners();\n this.addKeyboardEvents();\n this.addBodyViewportListener();\n this.addStopEditingWhenGridLosesFocus();\n this.mockContextMenuForIPad();\n this.addRowDragListener();\n if (this.$scope) {\n this.addAngularApplyCheck();\n }\n this.onDisplayedColumnsWidthChanged();\n this.gridApi.registerGridComp(this);\n this.alignedGridsService.registerGridComp(this);\n this.headerRootComp.registerGridComp(this);\n this.navigationService.registerGridComp(this);\n this.heightScaler.registerGridComp(this);\n this.autoHeightCalculator.registerGridComp(this);\n this.columnAnimationService.registerGridComp(this);\n this.autoWidthCalculator.registerGridComp(this);\n this.paginationAutoPageSizeService.registerGridComp(this);\n this.beans.registerGridComp(this);\n this.rowRenderer.registerGridComp(this);\n this.animationFrameService.registerGridComp(this);\n if (this.rangeController) {\n this.rangeController.registerGridComp(this);\n }\n [this.eCenterViewport, this.eBodyViewport].forEach(function (viewport) {\n var unsubscribeFromResize = _this.resizeObserverService.observeResize(viewport, _this.onCenterViewportResized.bind(_this));\n _this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n });\n };\n GridPanel.prototype.onDomLayoutChanged = function () {\n var newPrintLayout = this.gridOptionsWrapper.getDomLayout() === constants_1.Constants.DOM_LAYOUT_PRINT;\n if (this.printLayout !== newPrintLayout) {\n this.printLayout = newPrintLayout;\n this.setWidthsOfContainers();\n // pinned containers are always hidden for print layout\n this.setPinnedContainerSize();\n }\n };\n GridPanel.prototype.onCenterViewportResized = function () {\n if (utils_1._.isVisible(this.eCenterViewport)) {\n this.checkViewportAndScrolls();\n }\n else {\n this.bodyHeight = 0;\n }\n };\n // used by ColumnAnimationService\n GridPanel.prototype.setColumnMovingCss = function (moving) {\n this.addOrRemoveCssClass('ag-column-moving', moving);\n };\n GridPanel.prototype.setCellTextSelection = function (selectable) {\n if (selectable === void 0) { selectable = false; }\n [this.eTop, this.eBodyViewport, this.eBottom]\n .forEach(function (ct) { return utils_1._.addOrRemoveCssClass(ct, 'ag-selectable', selectable); });\n };\n GridPanel.prototype.addRowDragListener = function () {\n var rowDragFeature = new rowDragFeature_1.RowDragFeature(this.eBodyViewport, this);\n this.getContext().wireBean(rowDragFeature);\n this.dragAndDropService.addDropTarget(rowDragFeature);\n };\n GridPanel.prototype.addStopEditingWhenGridLosesFocus = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isStopEditingWhenGridLosesFocus()) {\n return;\n }\n var focusOutListener = function (event) {\n // this is the element the focus is moving to\n var elementWithFocus = event.relatedTarget;\n // see if the element the focus is going to is part of the grid\n var clickInsideGrid = false;\n var pointer = elementWithFocus;\n while (utils_1._.exists(pointer) && !clickInsideGrid) {\n var isPopup = !!_this.gridOptionsWrapper.getDomData(pointer, popupEditorWrapper_1.PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER);\n var isBody = _this.eBodyViewport === pointer || _this.eBottom === pointer || _this.eTop === pointer;\n clickInsideGrid = isPopup || isBody;\n pointer = pointer.parentNode;\n }\n if (!clickInsideGrid) {\n _this.rowRenderer.stopEditing();\n }\n };\n this.addDestroyableEventListener(this.eBodyViewport, 'focusout', focusOutListener);\n this.addDestroyableEventListener(this.eTop, 'focusout', focusOutListener);\n this.addDestroyableEventListener(this.eBottom, 'focusout', focusOutListener);\n };\n GridPanel.prototype.addAngularApplyCheck = function () {\n var _this = this;\n // this makes sure if we queue up requests, we only execute oe\n var applyTriggered = false;\n var listener = function () {\n // only need to do one apply at a time\n if (applyTriggered) {\n return;\n }\n applyTriggered = true; // mark 'need apply' to true\n window.setTimeout(function () {\n applyTriggered = false;\n _this.$scope.$apply();\n }, 0);\n };\n // these are the events we need to do an apply after - these are the ones that can end up\n // with columns added or removed\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_VIRTUAL_COLUMNS_CHANGED, listener);\n };\n // if we do not do this, then the user can select a pic in the grid (eg an image in a custom cell renderer)\n // and then that will start the browser native drag n' drop, which messes up with our own drag and drop.\n GridPanel.prototype.disableBrowserDragging = function () {\n this.addGuiEventListener('dragstart', function (event) {\n if (event.target instanceof HTMLImageElement) {\n event.preventDefault();\n return false;\n }\n });\n };\n GridPanel.prototype.addEventListeners = function () {\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_PINNED_ROW_DATA_CHANGED, this.setHeaderAndFloatingHeights.bind(this));\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_ROW_DATA_CHANGED, this.onRowDataChanged.bind(this));\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_ROW_DATA_UPDATED, this.onRowDataChanged.bind(this));\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n this.addDestroyableEventListener(this.gridOptionsWrapper, gridOptionsWrapper_1.GridOptionsWrapper.PROP_HEADER_HEIGHT, this.setHeaderAndFloatingHeights.bind(this));\n this.addDestroyableEventListener(this.gridOptionsWrapper, gridOptionsWrapper_1.GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT, this.setHeaderAndFloatingHeights.bind(this));\n this.addDestroyableEventListener(this.gridOptionsWrapper, gridOptionsWrapper_1.GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT, this.setHeaderAndFloatingHeights.bind(this));\n this.addDestroyableEventListener(this.gridOptionsWrapper, gridOptionsWrapper_1.GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT, this.setHeaderAndFloatingHeights.bind(this));\n this.addDestroyableEventListener(this.gridOptionsWrapper, gridOptionsWrapper_1.GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT, this.setHeaderAndFloatingHeights.bind(this));\n this.addDestroyableEventListener(this.gridOptionsWrapper, gridOptionsWrapper_1.GridOptionsWrapper.PROP_DOM_LAYOUT, this.onDomLayoutChanged.bind(this));\n };\n GridPanel.prototype.addDragListeners = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isEnableRangeSelection() || // no range selection if no property\n utils_1._.missing(this.rangeController) // no range selection if not enterprise version\n ) {\n return;\n }\n var containers = [\n this.eLeftContainer,\n this.eRightContainer,\n this.eCenterContainer,\n this.eTop,\n this.eBottom\n ];\n containers.forEach(function (container) {\n var params = {\n eElement: container,\n onDragStart: _this.rangeController.onDragStart.bind(_this.rangeController),\n onDragStop: _this.rangeController.onDragStop.bind(_this.rangeController),\n onDragging: _this.rangeController.onDragging.bind(_this.rangeController)\n };\n _this.dragService.addDragSource(params);\n _this.addDestroyFunc(function () { return _this.dragService.removeDragSource(params); });\n });\n };\n GridPanel.prototype.addMouseListeners = function () {\n var _this = this;\n var eventNames = ['click', 'mousedown', 'dblclick', 'contextmenu', 'mouseover', 'mouseout'];\n eventNames.forEach(function (eventName) {\n var listener = _this.processMouseEvent.bind(_this, eventName);\n _this.eAllCellContainers.forEach(function (container) {\n return _this.addDestroyableEventListener(container, eventName, listener);\n });\n });\n };\n GridPanel.prototype.addKeyboardEvents = function () {\n var _this = this;\n var eventNames = ['keydown', 'keypress'];\n eventNames.forEach(function (eventName) {\n var listener = _this.processKeyboardEvent.bind(_this, eventName);\n _this.eAllCellContainers.forEach(function (container) {\n _this.addDestroyableEventListener(container, eventName, listener);\n });\n });\n };\n GridPanel.prototype.addBodyViewportListener = function () {\n var _this = this;\n // we want to listen for clicks directly on the eBodyViewport, so the user has a way of showing\n // the context menu if no rows or columns are displayed, or user simply clicks outside of a cell\n var listener = function (mouseEvent) {\n var target = utils_1._.getTarget(mouseEvent);\n if (target === _this.eBodyViewport || target === _this.eCenterViewport) {\n // show it\n _this.onContextMenu(mouseEvent, null, null, null, null);\n _this.preventDefaultOnContextMenu(mouseEvent);\n }\n };\n this.addDestroyableEventListener(this.eBodyViewport, 'contextmenu', listener);\n };\n // + rangeController - used to know when to scroll when user is dragging outside the\n // main viewport while doing a range selection\n GridPanel.prototype.getBodyClientRect = function () {\n if (!this.eBodyViewport) {\n return;\n }\n return this.eBodyViewport.getBoundingClientRect();\n };\n GridPanel.prototype.getRowForEvent = function (event) {\n var sourceElement = utils_1._.getTarget(event);\n while (sourceElement) {\n var renderedRow = this.gridOptionsWrapper.getDomData(sourceElement, rowComp_1.RowComp.DOM_DATA_KEY_RENDERED_ROW);\n if (renderedRow) {\n return renderedRow;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n };\n GridPanel.prototype.processKeyboardEvent = function (eventName, keyboardEvent) {\n var cellComp = utils_1._.getCellCompForEvent(this.gridOptionsWrapper, keyboardEvent);\n if (!cellComp) {\n return;\n }\n var rowNode = cellComp.getRenderedRow().getRowNode();\n var column = cellComp.getColumn();\n var editing = cellComp.isEditing();\n var gridProcessingAllowed = !utils_1._.isUserSuppressingKeyboardEvent(this.gridOptionsWrapper, keyboardEvent, rowNode, column, editing);\n if (gridProcessingAllowed) {\n switch (eventName) {\n case 'keydown':\n // first see if it's a scroll key, page up / down, home / end etc\n var wasScrollKey = !editing && this.navigationService.handlePageScrollingKey(keyboardEvent);\n // if not a scroll key, then we pass onto cell\n if (!wasScrollKey) {\n cellComp.onKeyDown(keyboardEvent);\n }\n this.doClipboardOperations(keyboardEvent, cellComp);\n break;\n case 'keypress':\n cellComp.onKeyPress(keyboardEvent);\n break;\n }\n }\n if (eventName === 'keydown') {\n var cellKeyDownEvent = cellComp.createEvent(keyboardEvent, events_1.Events.EVENT_CELL_KEY_DOWN);\n this.beans.eventService.dispatchEvent(cellKeyDownEvent);\n }\n if (eventName === 'keypress') {\n var cellKeyPressEvent = cellComp.createEvent(keyboardEvent, events_1.Events.EVENT_CELL_KEY_PRESS);\n this.beans.eventService.dispatchEvent(cellKeyPressEvent);\n }\n };\n GridPanel.prototype.doClipboardOperations = function (keyboardEvent, cellComp) {\n // check if ctrl or meta key pressed\n if (!keyboardEvent.ctrlKey && !keyboardEvent.metaKey) {\n return;\n }\n // if the cell the event came from is editing, then we do not\n // want to do the default shortcut keys, otherwise the editor\n // (eg a text field) would not be able to do the normal cut/copy/paste\n if (cellComp.isEditing()) {\n return;\n }\n // for copy / paste, we don't want to execute when the event\n // was from a child grid (happens in master detail)\n if (!this.mouseEventService.isEventFromThisGrid(keyboardEvent)) {\n return;\n }\n switch (keyboardEvent.which) {\n case constants_1.Constants.KEY_A:\n return this.onCtrlAndA(keyboardEvent);\n case constants_1.Constants.KEY_C:\n return this.onCtrlAndC(keyboardEvent);\n case constants_1.Constants.KEY_V:\n return this.onCtrlAndV();\n case constants_1.Constants.KEY_D:\n return this.onCtrlAndD(keyboardEvent);\n }\n };\n // gets called by rowRenderer when new data loaded, as it will want to scroll to the top\n GridPanel.prototype.scrollToTop = function () {\n this.eBodyViewport.scrollTop = 0;\n };\n GridPanel.prototype.processMouseEvent = function (eventName, mouseEvent) {\n if (!this.mouseEventService.isEventFromThisGrid(mouseEvent) ||\n utils_1._.isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n var rowComp = this.getRowForEvent(mouseEvent);\n var cellComp = this.mouseEventService.getRenderedCellForEvent(mouseEvent);\n if (eventName === \"contextmenu\") {\n this.handleContextMenuMouseEvent(mouseEvent, null, rowComp, cellComp);\n }\n else {\n if (cellComp) {\n cellComp.onMouseEvent(eventName, mouseEvent);\n }\n if (rowComp) {\n rowComp.onMouseEvent(eventName, mouseEvent);\n }\n }\n this.preventDefaultOnContextMenu(mouseEvent);\n };\n GridPanel.prototype.mockContextMenuForIPad = function () {\n var _this = this;\n // we do NOT want this when not in iPad, otherwise we will be doing\n if (!utils_1._.isUserAgentIPad()) {\n return;\n }\n this.eAllCellContainers.forEach(function (container) {\n var touchListener = new touchListener_1.TouchListener(container);\n var longTapListener = function (event) {\n var rowComp = _this.getRowForEvent(event.touchEvent);\n var cellComp = _this.mouseEventService.getRenderedCellForEvent(event.touchEvent);\n _this.handleContextMenuMouseEvent(null, event.touchEvent, rowComp, cellComp);\n };\n _this.addDestroyableEventListener(touchListener, touchListener_1.TouchListener.EVENT_LONG_TAP, longTapListener);\n _this.addDestroyFunc(function () { return touchListener.destroy(); });\n });\n };\n GridPanel.prototype.handleContextMenuMouseEvent = function (mouseEvent, touchEvent, rowComp, cellComp) {\n var rowNode = rowComp ? rowComp.getRowNode() : null;\n var column = cellComp ? cellComp.getColumn() : null;\n var value = null;\n if (column) {\n var event_1 = mouseEvent ? mouseEvent : touchEvent;\n cellComp.dispatchCellContextMenuEvent(event_1);\n value = this.valueService.getValue(column, rowNode);\n }\n this.onContextMenu(mouseEvent, touchEvent, rowNode, column, value);\n };\n GridPanel.prototype.onContextMenu = function (mouseEvent, touchEvent, rowNode, column, value) {\n // to allow us to debug in chrome, we ignore the event if ctrl is pressed.\n // not everyone wants this, so first 'if' below allows to turn this hack off.\n if (!this.gridOptionsWrapper.isAllowContextMenuWithControlKey()) {\n // then do the check\n if (mouseEvent && (mouseEvent.ctrlKey || mouseEvent.metaKey)) {\n return;\n }\n }\n if (this.contextMenuFactory && !this.gridOptionsWrapper.isSuppressContextMenu()) {\n var eventOrTouch = mouseEvent ? mouseEvent : touchEvent.touches[0];\n this.contextMenuFactory.showMenu(rowNode, column, value, eventOrTouch);\n var event_2 = mouseEvent ? mouseEvent : touchEvent;\n event_2.preventDefault();\n }\n };\n GridPanel.prototype.preventDefaultOnContextMenu = function (mouseEvent) {\n // if we don't do this, then middle click will never result in a 'click' event, as 'mousedown'\n // will be consumed by the browser to mean 'scroll' (as you can scroll with the middle mouse\n // button in the browser). so this property allows the user to receive middle button clicks if\n // they want.\n var gridOptionsWrapper = this.gridOptionsWrapper;\n var which = mouseEvent.which;\n if (gridOptionsWrapper.isPreventDefaultOnContextMenu() ||\n (gridOptionsWrapper.isSuppressMiddleClickScrolls() && which === 2)) {\n mouseEvent.preventDefault();\n }\n };\n GridPanel.prototype.onCtrlAndA = function (event) {\n var _a = this, columnController = _a.columnController, pinnedRowModel = _a.pinnedRowModel, paginationProxy = _a.paginationProxy, rangeController = _a.rangeController;\n var PINNED_BOTTOM = constants_1.Constants.PINNED_BOTTOM, PINNED_TOP = constants_1.Constants.PINNED_TOP;\n if (rangeController && paginationProxy.isRowsToRender()) {\n var _b = [\n pinnedRowModel.isEmpty(PINNED_TOP),\n pinnedRowModel.isEmpty(PINNED_BOTTOM)\n ], isEmptyPinnedTop = _b[0], isEmptyPinnedBottom = _b[1];\n var floatingStart = isEmptyPinnedTop ? null : PINNED_TOP;\n var floatingEnd = void 0;\n var rowEnd = void 0;\n if (isEmptyPinnedBottom) {\n floatingEnd = null;\n rowEnd = this.paginationProxy.getRowCount() - 1;\n }\n else {\n floatingEnd = PINNED_BOTTOM;\n rowEnd = pinnedRowModel.getPinnedBottomRowData().length - 1;\n }\n var allDisplayedColumns = columnController.getAllDisplayedColumns();\n if (utils_1._.missingOrEmpty(allDisplayedColumns)) {\n return;\n }\n rangeController.setCellRange({\n rowStartIndex: 0,\n rowStartPinned: floatingStart,\n rowEndIndex: rowEnd,\n rowEndPinned: floatingEnd,\n columnStart: allDisplayedColumns[0],\n columnEnd: utils_1._.last(allDisplayedColumns)\n });\n }\n event.preventDefault();\n };\n GridPanel.prototype.onCtrlAndC = function (event) {\n if (!this.clipboardService || this.gridOptionsWrapper.isEnableCellTextSelection()) {\n return;\n }\n var focusedCell = this.focusedCellController.getFocusedCell();\n this.clipboardService.copyToClipboard();\n event.preventDefault();\n // the copy operation results in loosing focus on the cell,\n // because of the trickery the copy logic uses with a temporary\n // widget. so we set it back again.\n if (focusedCell) {\n this.focusedCellController.setFocusedCell(focusedCell.rowIndex, focusedCell.column, focusedCell.rowPinned, true);\n }\n };\n GridPanel.prototype.onCtrlAndV = function () {\n if (!this.enterprise || this.gridOptionsWrapper.isSuppressClipboardPaste()) {\n return;\n }\n this.clipboardService.pasteFromClipboard();\n };\n GridPanel.prototype.onCtrlAndD = function (event) {\n if (!this.enterprise) {\n return;\n }\n this.clipboardService.copyRangeDown();\n event.preventDefault();\n };\n // Valid values for position are bottom, middle and top\n // position should be {'top','middle','bottom', or undefined/null}.\n // if undefined/null, then the grid will to the minimal amount of scrolling,\n // eg if grid needs to scroll up, it scrolls until row is on top,\n // if grid needs to scroll down, it scrolls until row is on bottom,\n // if row is already in view, grid does not scroll\n // fixme - how does this work in the new way\n GridPanel.prototype.ensureIndexVisible = function (index, position) {\n // if for print or auto height, everything is always visible\n if (this.printLayout) {\n return;\n }\n var rowCount = this.paginationProxy.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= rowCount) {\n console.warn('invalid row index for ensureIndexVisible: ' + index);\n return;\n }\n this.paginationProxy.goToPageWithIndex(index);\n var rowNode = this.paginationProxy.getRow(index);\n var rowGotShiftedDuringOperation;\n do {\n var startingRowTop = rowNode.rowTop;\n var startingRowHeight = rowNode.rowHeight;\n var paginationOffset = this.paginationProxy.getPixelOffset();\n var rowTopPixel = rowNode.rowTop - paginationOffset;\n var rowBottomPixel = rowTopPixel + rowNode.rowHeight;\n var scrollPosition = this.getVScrollPosition();\n var heightOffset = this.heightScaler.getOffset();\n var vScrollTop = scrollPosition.top + heightOffset;\n var vScrollBottom = scrollPosition.bottom + heightOffset;\n var viewportHeight = vScrollBottom - vScrollTop;\n // work out the pixels for top, middle and bottom up front,\n // make the if/else below easier to read\n var pxTop = this.heightScaler.getScrollPositionForPixel(rowTopPixel);\n var pxBottom = this.heightScaler.getScrollPositionForPixel(rowBottomPixel - viewportHeight);\n // make sure if middle, the row is not outside the top of the grid\n var pxMiddle = Math.min((pxTop + pxBottom) / 2, rowTopPixel);\n var rowBelowViewport = vScrollTop > rowTopPixel;\n var rowAboveViewport = vScrollBottom < rowBottomPixel;\n var newScrollPosition = null;\n if (position === 'top') {\n newScrollPosition = pxTop;\n }\n else if (position === 'bottom') {\n newScrollPosition = pxBottom;\n }\n else if (position === 'middle') {\n newScrollPosition = pxMiddle;\n }\n else if (rowBelowViewport) {\n // if row is before, scroll up with row at top\n newScrollPosition = pxTop;\n }\n else if (rowAboveViewport) {\n // if row is below, scroll down with row at bottom\n newScrollPosition = pxBottom;\n }\n if (newScrollPosition !== null) {\n this.eBodyViewport.scrollTop = newScrollPosition;\n this.rowRenderer.redrawAfterScroll();\n }\n // the row can get shifted if during the rendering (during rowRenderer.redrawAfterScroll()),\n // the height of a row changes due to lazy calculation of row heights when using\n // colDef.autoHeight or gridOptions.getRowHeight.\n // if row was shifted, then the position we scrolled to is incorrect.\n rowGotShiftedDuringOperation = (startingRowTop !== rowNode.rowTop)\n || (startingRowHeight !== rowNode.rowHeight);\n } while (rowGotShiftedDuringOperation);\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n };\n // + moveColumnController\n GridPanel.prototype.getCenterWidth = function () {\n return this.eCenterViewport.clientWidth;\n };\n GridPanel.prototype.isVerticalScrollShowing = function () {\n var isAlwaysShowVerticalScroll = this.gridOptionsWrapper.isAlwaysShowVerticalScroll();\n utils_1._.addOrRemoveCssClass(this.eBodyViewport, 'ag-force-vertical-scroll', isAlwaysShowVerticalScroll);\n return isAlwaysShowVerticalScroll || utils_1._.isVerticalScrollShowing(this.eBodyViewport);\n };\n GridPanel.prototype.isHorizontalScrollShowing = function () {\n return utils_1._.isHorizontalScrollShowing(this.eCenterViewport);\n };\n // gets called every time the viewport size changes. we use this to check visibility of scrollbars\n // in the grid panel, and also to check size and position of viewport for row and column virtualisation.\n GridPanel.prototype.checkViewportAndScrolls = function () {\n // results in updating anything that depends on scroll showing\n this.updateScrollVisibleService();\n // fires event if height changes, used by PaginationService, HeightScalerService, RowRenderer\n this.checkBodyHeight();\n // check for virtual columns for ColumnController\n this.onHorizontalViewportChanged();\n this.setPinnedContainerSize();\n };\n GridPanel.prototype.updateScrollVisibleService = function () {\n // because of column animation (which takes 200ms), we have to do this twice.\n // eg if user removes cols anywhere except at the RHS, then the cols on the RHS\n // will animate to the left to fill the gap. this animation means just after\n // the cols are removed, the remaining cols are still in the original location\n // at the start of the animation, so pre animation the H scrollbar is still needed,\n // but post animation it is not.\n this.updateScrollVisibleServiceImpl();\n setTimeout(this.updateScrollVisibleServiceImpl.bind(this), 500);\n };\n GridPanel.prototype.updateScrollVisibleServiceImpl = function () {\n var params = {\n horizontalScrollShowing: false,\n verticalScrollShowing: false\n };\n params.verticalScrollShowing = this.isVerticalScrollShowing();\n params.horizontalScrollShowing = this.isHorizontalScrollShowing();\n this.scrollVisibleService.setScrollsVisible(params);\n this.setHorizontalScrollVisible(params.horizontalScrollShowing);\n this.setVerticalScrollPaddingVisible(params.verticalScrollShowing);\n };\n GridPanel.prototype.setHorizontalScrollVisible = function (visible) {\n var isSuppressHorizontalScroll = this.gridOptionsWrapper.isSuppressHorizontalScroll();\n var scrollSize = visible ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;\n var scrollContainerSize = !isSuppressHorizontalScroll ? scrollSize : 0;\n var addIEPadding = utils_1._.isBrowserIE() && visible;\n this.eCenterViewport.style.height = \"calc(100% + \" + scrollSize + \"px)\";\n utils_1._.setFixedHeight(this.eHorizontalScrollBody, scrollContainerSize);\n // we have to add an extra pixel to the scroller viewport on IE because\n // if the container has the same size as the scrollbar, the scroll button won't work\n utils_1._.setFixedHeight(this.eBodyHorizontalScrollViewport, scrollContainerSize + (addIEPadding ? 1 : 0));\n utils_1._.setFixedHeight(this.eBodyHorizontalScrollContainer, scrollContainerSize);\n };\n GridPanel.prototype.setVerticalScrollPaddingVisible = function (show) {\n var scroller = show ? \"scroll\" : \"hidden\";\n this.eTop.style.overflowY = this.eBottom.style.overflowY = scroller;\n this.setFakeHScrollSpacerWidths();\n };\n GridPanel.prototype.updateRowCount = function () {\n var headerCount = this.headerRootComp.getHeaderRowCount();\n var rowCount = this.paginationProxy.getRowCount();\n var total = (headerCount + rowCount).toString();\n this.getGui().setAttribute('aria-rowcount', total);\n };\n GridPanel.prototype.ensureColumnVisible = function (key) {\n var column = this.columnController.getGridColumn(key);\n if (!column) {\n return;\n }\n if (column.isPinned()) {\n console.warn('calling ensureIndexVisible on a ' + column.getPinned() + ' pinned column doesn\\'t make sense for column ' + column.getColId());\n return;\n }\n if (!this.columnController.isColumnDisplayed(column)) {\n console.warn('column is not currently visible');\n return;\n }\n var colLeftPixel = column.getLeft();\n var colRightPixel = colLeftPixel + column.getActualWidth();\n var viewportWidth = this.eCenterViewport.clientWidth;\n var scrollPosition = this.getCenterViewportScrollLeft();\n var bodyWidth = this.columnController.getBodyContainerWidth();\n var viewportLeftPixel;\n var viewportRightPixel;\n // the logic of working out left and right viewport px is both here and in the ColumnController,\n // need to refactor it out to one place\n if (this.enableRtl) {\n viewportLeftPixel = bodyWidth - scrollPosition - viewportWidth;\n viewportRightPixel = bodyWidth - scrollPosition;\n }\n else {\n viewportLeftPixel = scrollPosition;\n viewportRightPixel = viewportWidth + scrollPosition;\n }\n var viewportScrolledPastCol = viewportLeftPixel > colLeftPixel;\n var viewportScrolledBeforeCol = viewportRightPixel < colRightPixel;\n var colToSmallForViewport = viewportWidth < column.getActualWidth();\n var alignColToLeft = viewportScrolledPastCol || colToSmallForViewport;\n var alignColToRight = viewportScrolledBeforeCol;\n var newScrollPosition = this.getCenterViewportScrollLeft();\n if (alignColToLeft || alignColToRight) {\n if (this.enableRtl) {\n newScrollPosition = alignColToLeft ? (bodyWidth - viewportWidth - colLeftPixel) : (bodyWidth - colRightPixel);\n }\n else {\n newScrollPosition = alignColToLeft ? colLeftPixel : (colRightPixel - viewportWidth);\n }\n this.setCenterViewportScrollLeft(newScrollPosition);\n }\n else {\n // otherwise, col is already in view, so do nothing\n }\n // this will happen anyway, as the move will cause a 'scroll' event on the body, however\n // it is possible that the ensureColumnVisible method is called from within ag-Grid and\n // the caller will need to have the columns rendered to continue, which will be before\n // the event has been worked on (which is the case for cell navigation).\n this.onHorizontalViewportChanged();\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n };\n GridPanel.prototype.showLoadingOverlay = function () {\n if (!this.gridOptionsWrapper.isSuppressLoadingOverlay()) {\n this.overlayWrapper.showLoadingOverlay();\n }\n };\n GridPanel.prototype.showNoRowsOverlay = function () {\n if (!this.gridOptionsWrapper.isSuppressNoRowsOverlay()) {\n this.overlayWrapper.showNoRowsOverlay();\n }\n };\n GridPanel.prototype.hideOverlay = function () {\n this.overlayWrapper.hideOverlay();\n };\n // method will call itself if no available width. this covers if the grid\n // isn't visible, but is just about to be visible.\n GridPanel.prototype.sizeColumnsToFit = function (nextTimeout) {\n var _this = this;\n var availableWidth = this.eBodyViewport.clientWidth;\n if (availableWidth > 0) {\n this.columnController.sizeColumnsToFit(availableWidth, \"sizeColumnsToFit\");\n return;\n }\n if (nextTimeout === undefined) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(100);\n }, 0);\n }\n else if (nextTimeout === 100) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(500);\n }, 100);\n }\n else if (nextTimeout === 500) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(-1);\n }, 500);\n }\n else {\n console.warn('ag-Grid: tried to call sizeColumnsToFit() but the grid is coming back with ' +\n 'zero width, maybe the grid is not visible yet on the screen?');\n }\n };\n // used by autoWidthCalculator and autoHeightCalculator\n GridPanel.prototype.getCenterContainer = function () {\n return this.eCenterContainer;\n };\n GridPanel.prototype.getDropTargetBodyContainers = function () {\n return [this.eCenterViewport, this.eTopViewport, this.eBottomViewport];\n };\n GridPanel.prototype.getDropTargetLeftContainers = function () {\n return [this.eLeftContainer, this.eLeftBottom, this.eLeftTop];\n };\n GridPanel.prototype.getDropTargetRightContainers = function () {\n return [this.eRightContainer, this.eRightBottom, this.eRightTop];\n };\n GridPanel.prototype.buildRowContainerComponents = function () {\n var _this = this;\n this.eAllCellContainers = [\n this.eLeftContainer, this.eRightContainer, this.eCenterContainer,\n this.eTop, this.eBottom, this.eFullWidthContainer\n ];\n this.rowContainerComponents = {\n body: new rowContainerComponent_1.RowContainerComponent({\n eContainer: this.eCenterContainer,\n eWrapper: this.eCenterColsClipper,\n eViewport: this.eBodyViewport\n }),\n fullWidth: new rowContainerComponent_1.RowContainerComponent({\n eContainer: this.eFullWidthContainer\n }),\n pinnedLeft: new rowContainerComponent_1.RowContainerComponent({ eContainer: this.eLeftContainer }),\n pinnedRight: new rowContainerComponent_1.RowContainerComponent({ eContainer: this.eRightContainer }),\n floatingTop: new rowContainerComponent_1.RowContainerComponent({ eContainer: this.eTopContainer }),\n floatingTopPinnedLeft: new rowContainerComponent_1.RowContainerComponent({ eContainer: this.eLeftTop }),\n floatingTopPinnedRight: new rowContainerComponent_1.RowContainerComponent({ eContainer: this.eRightTop }),\n floatingTopFullWidth: new rowContainerComponent_1.RowContainerComponent({\n eContainer: this.eTopFullWidthContainer,\n hideWhenNoChildren: true\n }),\n floatingBottom: new rowContainerComponent_1.RowContainerComponent({ eContainer: this.eBottomContainer }),\n floatingBottomPinnedLeft: new rowContainerComponent_1.RowContainerComponent({ eContainer: this.eLeftBottom }),\n floatingBottomPinnedRight: new rowContainerComponent_1.RowContainerComponent({ eContainer: this.eRightBottom }),\n floatingBottomFullWith: new rowContainerComponent_1.RowContainerComponent({\n eContainer: this.eBottomFullWidthContainer,\n hideWhenNoChildren: true\n }),\n };\n utils_1._.iterateObject(this.rowContainerComponents, function (key, container) {\n if (container) {\n _this.getContext().wireBean(container);\n }\n });\n };\n GridPanel.prototype.setupRowAnimationCssClass = function () {\n var _this = this;\n var listener = function () {\n // we don't want to use row animation if scaling, as rows jump strangely as you scroll,\n // when scaling and doing row animation.\n var animateRows = _this.gridOptionsWrapper.isAnimateRows() && !_this.heightScaler.isScaling();\n utils_1._.addOrRemoveCssClass(_this.eBodyViewport, 'ag-row-animation', animateRows);\n utils_1._.addOrRemoveCssClass(_this.eBodyViewport, 'ag-row-no-animation', !animateRows);\n };\n listener();\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_HEIGHT_SCALE_CHANGED, listener);\n };\n // when editing a pinned row, if the cell is half outside the scrollable area, the browser can\n // scroll the column into view. we do not want this, the pinned sections should never scroll.\n // so we listen to scrolls on these containers and reset the scroll if we find one.\n GridPanel.prototype.suppressScrollOnFloatingRow = function () {\n var _this = this;\n var resetTopScroll = function () { return _this.eTopViewport.scrollLeft = 0; };\n var resetBottomScroll = function () { return _this.eTopViewport.scrollLeft = 0; };\n this.addDestroyableEventListener(this.eTopViewport, 'scroll', resetTopScroll);\n this.addDestroyableEventListener(this.eBottomViewport, 'scroll', resetBottomScroll);\n };\n GridPanel.prototype.getRowContainers = function () {\n return this.rowContainerComponents;\n };\n GridPanel.prototype.getFloatingTopBottom = function () {\n return [this.eTop, this.eBottom];\n };\n GridPanel.prototype.onDisplayedColumnsChanged = function () {\n this.setPinnedContainerSize();\n this.setHeaderAndFloatingHeights();\n this.onHorizontalViewportChanged();\n this.updateScrollVisibleService();\n };\n GridPanel.prototype.onDisplayedColumnsWidthChanged = function () {\n this.setWidthsOfContainers();\n this.onHorizontalViewportChanged();\n this.updateScrollVisibleService();\n if (this.enableRtl) {\n // because RTL is all backwards, a change in the width of the row\n // can cause a change in the scroll position, without a scroll event,\n // because the scroll position in RTL is a function that depends on\n // the width. to be convinced of this, take out this line, enable RTL,\n // scroll all the way to the left and then resize a column\n this.horizontallyScrollHeaderCenterAndFloatingCenter();\n }\n };\n GridPanel.prototype.setWidthsOfContainers = function () {\n this.setCenterWidth();\n this.setPinnedContainerSize();\n };\n GridPanel.prototype.setCenterWidth = function () {\n var width = this.columnController.getBodyContainerWidth();\n if (this.printLayout) {\n var pinnedContainerWidths = this.columnController.getPinnedLeftContainerWidth()\n + this.columnController.getPinnedRightContainerWidth();\n width += pinnedContainerWidths;\n }\n this.headerRootComp.setHeaderContainerWidth(width);\n var widthPx = width + \"px\";\n this.eCenterContainer.style.width = widthPx;\n this.eBottomContainer.style.width = widthPx;\n this.eTopContainer.style.width = widthPx;\n if (!this.printLayout) {\n this.eBodyHorizontalScrollContainer.style.width = widthPx;\n }\n };\n GridPanel.prototype.setPinnedLeftWidth = function () {\n var _this = this;\n var oldPinning = this.pinningLeft;\n var widthOfCols = this.columnController.getPinnedLeftContainerWidth();\n var newPinning = this.pinningLeft = !this.printLayout && widthOfCols > 0;\n var containers = [this.eLeftContainer, this.eLeftTop, this.eLeftBottom];\n if (oldPinning !== newPinning) {\n this.headerRootComp.setLeftVisible(newPinning);\n }\n containers.forEach(function (e) { return utils_1._.setDisplayed(e, _this.pinningLeft); });\n if (newPinning) {\n containers.forEach(function (ct) { return utils_1._.setFixedWidth(ct, widthOfCols); });\n }\n };\n GridPanel.prototype.setPinnedRightWidth = function () {\n var oldPinning = this.pinningRight;\n var widthOfCols = this.columnController.getPinnedRightContainerWidth();\n var newPinning = this.pinningRight = !this.printLayout && widthOfCols > 0;\n var containers = [this.eRightContainer, this.eRightTop, this.eRightBottom];\n if (oldPinning !== newPinning) {\n this.headerRootComp.setRightVisible(newPinning);\n }\n containers.forEach(function (ct) { return utils_1._.setDisplayed(ct, newPinning); });\n if (newPinning) {\n containers.forEach(function (ct) { return utils_1._.setFixedWidth(ct, widthOfCols); });\n }\n };\n GridPanel.prototype.setPinnedContainerSize = function () {\n this.setPinnedLeftWidth();\n this.setPinnedRightWidth();\n this.setFakeHScrollSpacerWidths();\n };\n GridPanel.prototype.setFakeHScrollSpacerWidths = function () {\n // we pad the right based on a) if cols are pinned to the right and\n // b) if v scroll is showing on the right (normal position of scroll)\n var rightSpacing = this.columnController.getPinnedRightContainerWidth();\n var scrollOnRight = !this.enableRtl && this.isVerticalScrollShowing();\n if (scrollOnRight) {\n rightSpacing += this.scrollWidth;\n }\n utils_1._.setFixedWidth(this.eHorizontalRightSpacer, rightSpacing);\n utils_1._.addOrRemoveCssClass(this.eHorizontalRightSpacer, 'ag-scroller-corner', rightSpacing <= this.scrollWidth);\n // we pad the left based on a) if cols are pinned to the left and\n // b) if v scroll is showing on the left (happens in LTR layout only)\n var leftSpacing = this.columnController.getPinnedLeftContainerWidth();\n var scrollOnLeft = this.enableRtl && this.isVerticalScrollShowing();\n if (scrollOnLeft) {\n leftSpacing += this.scrollWidth;\n }\n utils_1._.setFixedWidth(this.eHorizontalLeftSpacer, leftSpacing);\n utils_1._.addOrRemoveCssClass(this.eHorizontalLeftSpacer, 'ag-scroller-corner', leftSpacing <= this.scrollWidth);\n };\n GridPanel.prototype.checkBodyHeight = function () {\n var bodyHeight = this.eBodyViewport.clientHeight;\n if (this.bodyHeight !== bodyHeight) {\n this.bodyHeight = bodyHeight;\n var event_3 = {\n type: events_1.Events.EVENT_BODY_HEIGHT_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_3);\n }\n };\n GridPanel.prototype.setHeaderAndFloatingHeights = function () {\n var _a = this, columnController = _a.columnController, gridOptionsWrapper = _a.gridOptionsWrapper, pinnedRowModel = _a.pinnedRowModel, eTop = _a.eTop, eBottom = _a.eBottom;\n var numberOfFloating = 0;\n var headerRowCount = columnController.getHeaderRowCount();\n var totalHeaderHeight;\n var groupHeight;\n var headerHeight;\n if (!columnController.isPivotMode()) {\n if (gridOptionsWrapper.isFloatingFilter()) {\n headerRowCount++;\n }\n numberOfFloating = (gridOptionsWrapper.isFloatingFilter()) ? 1 : 0;\n groupHeight = gridOptionsWrapper.getGroupHeaderHeight();\n headerHeight = gridOptionsWrapper.getHeaderHeight();\n }\n else {\n numberOfFloating = 0;\n groupHeight = gridOptionsWrapper.getPivotGroupHeaderHeight();\n headerHeight = gridOptionsWrapper.getPivotHeaderHeight();\n }\n var numberOfNonGroups = 1 + numberOfFloating;\n var numberOfGroups = headerRowCount - numberOfNonGroups;\n totalHeaderHeight = numberOfFloating * gridOptionsWrapper.getFloatingFiltersHeight();\n totalHeaderHeight += numberOfGroups * groupHeight;\n totalHeaderHeight += headerHeight;\n this.headerRootComp.setHeight(totalHeaderHeight);\n var floatingTopHeight = pinnedRowModel.getPinnedTopTotalHeight();\n if (floatingTopHeight) {\n // adding 1px for cell bottom border\n floatingTopHeight += 1;\n }\n var floatingBottomHeight = pinnedRowModel.getPinnedBottomTotalHeight();\n if (floatingBottomHeight) {\n // adding 1px for cell bottom border\n floatingBottomHeight += 1;\n }\n var floatingTopHeightString = floatingTopHeight + \"px\";\n var floatingBottomHeightString = floatingBottomHeight + \"px\";\n eTop.style.minHeight = floatingTopHeightString;\n eTop.style.height = floatingTopHeightString;\n eTop.style.display = floatingTopHeight ? 'inherit' : 'none';\n eBottom.style.minHeight = floatingBottomHeightString;\n eBottom.style.height = floatingBottomHeightString;\n eBottom.style.display = floatingBottomHeight ? 'inherit' : 'none';\n this.checkBodyHeight();\n };\n GridPanel.prototype.getBodyHeight = function () {\n return this.bodyHeight;\n };\n // called by scrollHorizontally method and alignedGridsService\n GridPanel.prototype.setHorizontalScrollPosition = function (hScrollPosition) {\n this.eCenterViewport.scrollLeft = hScrollPosition;\n // we need to manually do the event handling (rather than wait for the event)\n // for the alignedGridsService, as if we don't, the aligned grid service gets\n // notified async, and then it's 'consuming' flag doesn't get used right, and\n // we can end up with an infinite loop\n this.doHorizontalScroll(hScrollPosition);\n };\n GridPanel.prototype.setVerticalScrollPosition = function (vScrollPosition) {\n this.eBodyViewport.scrollTop = vScrollPosition;\n };\n // called by the headerRootComp and moveColumnController\n GridPanel.prototype.scrollHorizontally = function (pixels) {\n var oldScrollPosition = this.eCenterViewport.scrollLeft;\n this.setHorizontalScrollPosition(oldScrollPosition + pixels);\n return this.eCenterViewport.scrollLeft - oldScrollPosition;\n };\n // called by rowDragFeature\n GridPanel.prototype.scrollVertically = function (pixels) {\n var oldScrollPosition = this.eBodyViewport.scrollTop;\n this.setVerticalScrollPosition(oldScrollPosition + pixels);\n return this.eBodyViewport.scrollTop - oldScrollPosition;\n };\n GridPanel.prototype.addScrollListener = function () {\n this.addDestroyableEventListener(this.eCenterViewport, 'scroll', this.onCenterViewportScroll.bind(this));\n this.addDestroyableEventListener(this.eBodyHorizontalScrollViewport, 'scroll', this.onFakeHorizontalScroll.bind(this));\n this.addDestroyableEventListener(this.eBodyViewport, 'scroll', this.onVerticalScroll.bind(this));\n };\n GridPanel.prototype.onVerticalScroll = function () {\n var scrollTop = this.eBodyViewport.scrollTop;\n this.animationFrameService.setScrollTop(scrollTop);\n this.nextScrollTop = scrollTop;\n if (this.gridOptionsWrapper.isSuppressAnimationFrame()) {\n this.redrawRowsAfterScroll();\n }\n else {\n this.animationFrameService.schedule();\n }\n };\n GridPanel.prototype.executeFrame = function () {\n var frameNeeded = this.scrollTop !== this.nextScrollTop;\n if (frameNeeded) {\n this.scrollTop = this.nextScrollTop;\n this.redrawRowsAfterScroll();\n }\n return frameNeeded;\n };\n GridPanel.prototype.isControllingScroll = function (eDiv) {\n if (!this.lastHorizontalScrollElement) {\n this.lastHorizontalScrollElement = eDiv;\n return true;\n }\n return eDiv === this.lastHorizontalScrollElement;\n };\n GridPanel.prototype.onFakeHorizontalScroll = function () {\n if (!this.isControllingScroll(this.eBodyHorizontalScrollViewport)) {\n return;\n }\n this.onBodyHorizontalScroll(this.eBodyHorizontalScrollViewport);\n };\n GridPanel.prototype.onCenterViewportScroll = function () {\n if (!this.isControllingScroll(this.eCenterViewport)) {\n return;\n }\n this.onBodyHorizontalScroll(this.eCenterViewport);\n };\n GridPanel.prototype.onBodyHorizontalScroll = function (eSource) {\n var _a = this.eCenterViewport, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n // in chrome, fractions can be in the scroll left, eg 250.342234 - which messes up our 'scrollWentPastBounds'\n // formula. so we floor it to allow the formula to work.\n var scrollLeft = Math.floor(utils_1._.getScrollLeft(eSource, this.enableRtl));\n // touch devices allow elastic scroll - which temporally scrolls the panel outside of the viewport\n // (eg user uses touch to go to the left of the grid, but drags past the left, the rows will actually\n // scroll past the left until the user releases the mouse). when this happens, we want ignore the scroll,\n // as otherwise it was causing the rows and header to flicker.\n var scrollWentPastBounds = scrollLeft < 0 || (scrollLeft + clientWidth > scrollWidth);\n if (scrollWentPastBounds) {\n return;\n }\n this.doHorizontalScroll(scrollLeft);\n this.resetLastHorizontalScrollElementDebounce();\n };\n GridPanel.prototype.resetLastHorizontalScrollElement = function () {\n this.lastHorizontalScrollElement = null;\n };\n GridPanel.prototype.doHorizontalScroll = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n var event = {\n type: events_1.Events.EVENT_BODY_SCROLL,\n api: this.gridApi,\n columnApi: this.columnApi,\n direction: 'horizontal',\n left: this.scrollLeft,\n top: this.scrollTop\n };\n this.eventService.dispatchEvent(event);\n this.horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft);\n this.onHorizontalViewportChanged();\n };\n GridPanel.prototype.redrawRowsAfterScroll = function () {\n var event = {\n type: events_1.Events.EVENT_BODY_SCROLL,\n direction: 'vertical',\n api: this.gridApi,\n columnApi: this.columnApi,\n left: this.scrollLeft,\n top: this.scrollTop\n };\n this.eventService.dispatchEvent(event);\n };\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)\n GridPanel.prototype.onHorizontalViewportChanged = function () {\n var scrollWidth = this.eCenterViewport.clientWidth;\n var scrollPosition = this.getCenterViewportScrollLeft();\n this.columnController.setVirtualViewportPosition(scrollWidth, scrollPosition);\n };\n GridPanel.prototype.getCenterViewportScrollLeft = function () {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n return utils_1._.getScrollLeft(this.eCenterViewport, this.enableRtl);\n };\n GridPanel.prototype.setCenterViewportScrollLeft = function (value) {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n utils_1._.setScrollLeft(this.eCenterViewport, value, this.enableRtl);\n };\n GridPanel.prototype.horizontallyScrollHeaderCenterAndFloatingCenter = function (scrollLeft) {\n if (scrollLeft === undefined) {\n scrollLeft = this.getCenterViewportScrollLeft();\n }\n var offset = this.enableRtl ? scrollLeft : -scrollLeft;\n var _a = this.eCenterViewport, clientWidth = _a.clientWidth, scrollWidth = _a.scrollWidth;\n var scrollWentPastBounds = Math.abs(offset) + clientWidth > scrollWidth;\n if (scrollWentPastBounds ||\n (this.enableRtl && offset < 0) ||\n (!this.enableRtl && offset > 0)) {\n return;\n }\n this.headerRootComp.setHorizontalScroll(offset);\n this.eBottomContainer.style.transform = \"translateX(\" + offset + \"px)\";\n this.eTopContainer.style.transform = \"translateX(\" + offset + \"px)\";\n var partner = this.lastHorizontalScrollElement === this.eCenterViewport ? this.eBodyHorizontalScrollViewport : this.eCenterViewport;\n utils_1._.setScrollLeft(partner, scrollLeft, this.enableRtl);\n };\n // + rangeController\n GridPanel.prototype.addScrollEventListener = function (listener) {\n this.eBodyViewport.addEventListener('scroll', listener);\n };\n // + rangeController\n GridPanel.prototype.removeScrollEventListener = function (listener) {\n this.eBodyViewport.removeEventListener('scroll', listener);\n };\n __decorate([\n context_1.Autowired('alignedGridsService'),\n __metadata(\"design:type\", alignedGridsService_1.AlignedGridsService)\n ], GridPanel.prototype, \"alignedGridsService\", void 0);\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], GridPanel.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('columnController'),\n __metadata(\"design:type\", columnController_1.ColumnController)\n ], GridPanel.prototype, \"columnController\", void 0);\n __decorate([\n context_1.Autowired('rowRenderer'),\n __metadata(\"design:type\", rowRenderer_1.RowRenderer)\n ], GridPanel.prototype, \"rowRenderer\", void 0);\n __decorate([\n context_1.Autowired('pinnedRowModel'),\n __metadata(\"design:type\", pinnedRowModel_1.PinnedRowModel)\n ], GridPanel.prototype, \"pinnedRowModel\", void 0);\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], GridPanel.prototype, \"eventService\", void 0);\n __decorate([\n context_1.Autowired('animationFrameService'),\n __metadata(\"design:type\", animationFrameService_1.AnimationFrameService)\n ], GridPanel.prototype, \"animationFrameService\", void 0);\n __decorate([\n context_1.Autowired('navigationService'),\n __metadata(\"design:type\", navigationService_1.NavigationService)\n ], GridPanel.prototype, \"navigationService\", void 0);\n __decorate([\n context_1.Autowired('autoHeightCalculator'),\n __metadata(\"design:type\", autoHeightCalculator_1.AutoHeightCalculator)\n ], GridPanel.prototype, \"autoHeightCalculator\", void 0);\n __decorate([\n context_1.Autowired('columnAnimationService'),\n __metadata(\"design:type\", columnAnimationService_1.ColumnAnimationService)\n ], GridPanel.prototype, \"columnAnimationService\", void 0);\n __decorate([\n context_1.Autowired('autoWidthCalculator'),\n __metadata(\"design:type\", autoWidthCalculator_1.AutoWidthCalculator)\n ], GridPanel.prototype, \"autoWidthCalculator\", void 0);\n __decorate([\n context_1.Autowired('paginationAutoPageSizeService'),\n __metadata(\"design:type\", paginationAutoPageSizeService_1.PaginationAutoPageSizeService)\n ], GridPanel.prototype, \"paginationAutoPageSizeService\", void 0);\n __decorate([\n context_1.Autowired('beans'),\n __metadata(\"design:type\", beans_1.Beans)\n ], GridPanel.prototype, \"beans\", void 0);\n __decorate([\n context_1.Autowired('paginationProxy'),\n __metadata(\"design:type\", paginationProxy_1.PaginationProxy)\n ], GridPanel.prototype, \"paginationProxy\", void 0);\n __decorate([\n context_1.Autowired('columnApi'),\n __metadata(\"design:type\", columnApi_1.ColumnApi)\n ], GridPanel.prototype, \"columnApi\", void 0);\n __decorate([\n context_1.Autowired('gridApi'),\n __metadata(\"design:type\", gridApi_1.GridApi)\n ], GridPanel.prototype, \"gridApi\", void 0);\n __decorate([\n context_1.Autowired('dragService'),\n __metadata(\"design:type\", dragService_1.DragService)\n ], GridPanel.prototype, \"dragService\", void 0);\n __decorate([\n context_1.Autowired('mouseEventService'),\n __metadata(\"design:type\", mouseEventService_1.MouseEventService)\n ], GridPanel.prototype, \"mouseEventService\", void 0);\n __decorate([\n context_1.Autowired('focusedCellController'),\n __metadata(\"design:type\", focusedCellController_1.FocusedCellController)\n ], GridPanel.prototype, \"focusedCellController\", void 0);\n __decorate([\n context_1.Autowired('$scope'),\n __metadata(\"design:type\", Object)\n ], GridPanel.prototype, \"$scope\", void 0);\n __decorate([\n context_1.Autowired('scrollVisibleService'),\n __metadata(\"design:type\", scrollVisibleService_1.ScrollVisibleService)\n ], GridPanel.prototype, \"scrollVisibleService\", void 0);\n __decorate([\n context_1.Autowired('valueService'),\n __metadata(\"design:type\", valueService_1.ValueService)\n ], GridPanel.prototype, \"valueService\", void 0);\n __decorate([\n context_1.Autowired('dragAndDropService'),\n __metadata(\"design:type\", dragAndDropService_1.DragAndDropService)\n ], GridPanel.prototype, \"dragAndDropService\", void 0);\n __decorate([\n context_1.Autowired('maxDivHeightScaler'),\n __metadata(\"design:type\", maxDivHeightScaler_1.MaxDivHeightScaler)\n ], GridPanel.prototype, \"heightScaler\", void 0);\n __decorate([\n context_1.Autowired('enterprise'),\n __metadata(\"design:type\", Boolean)\n ], GridPanel.prototype, \"enterprise\", void 0);\n __decorate([\n context_1.Autowired('resizeObserverService'),\n __metadata(\"design:type\", resizeObserverService_1.ResizeObserverService)\n ], GridPanel.prototype, \"resizeObserverService\", void 0);\n __decorate([\n context_1.Optional('rangeController'),\n __metadata(\"design:type\", Object)\n ], GridPanel.prototype, \"rangeController\", void 0);\n __decorate([\n context_1.Optional('contextMenuFactory'),\n __metadata(\"design:type\", Object)\n ], GridPanel.prototype, \"contextMenuFactory\", void 0);\n __decorate([\n context_1.Optional('clipboardService'),\n __metadata(\"design:type\", Object)\n ], GridPanel.prototype, \"clipboardService\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eBodyViewport'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eBodyViewport\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eCenterContainer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eCenterContainer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eCenterViewport'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eCenterViewport\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eLeftContainer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eLeftContainer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eRightContainer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eRightContainer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eCenterColsClipper'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eCenterColsClipper\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eHorizontalScrollBody'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eHorizontalScrollBody\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eHorizontalLeftSpacer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eHorizontalLeftSpacer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eHorizontalRightSpacer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eHorizontalRightSpacer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eBodyHorizontalScrollViewport'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eBodyHorizontalScrollViewport\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eBodyHorizontalScrollContainer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eBodyHorizontalScrollContainer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eFullWidthContainer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eFullWidthContainer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eTop'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eTop\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eLeftTop'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eLeftTop\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eRightTop'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eRightTop\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eTopContainer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eTopContainer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eTopViewport'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eTopViewport\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eTopFullWidthContainer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eTopFullWidthContainer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eBottom'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eBottom\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eLeftBottom'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eLeftBottom\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eRightBottom'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eRightBottom\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eBottomContainer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eBottomContainer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eBottomViewport'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eBottomViewport\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eBottomFullWidthContainer'),\n __metadata(\"design:type\", HTMLElement)\n ], GridPanel.prototype, \"eBottomFullWidthContainer\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('headerRoot'),\n __metadata(\"design:type\", headerRootComp_1.HeaderRootComp)\n ], GridPanel.prototype, \"headerRootComp\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('overlayWrapper'),\n __metadata(\"design:type\", overlayWrapperComponent_1.OverlayWrapperComponent)\n ], GridPanel.prototype, \"overlayWrapper\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], GridPanel.prototype, \"init\", null);\n return GridPanel;\n}(component_1.Component));\nexports.GridPanel = GridPanel;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar context_2 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar utils_1 = require(\"../utils\");\nvar MouseEventService = /** @class */ (function () {\n function MouseEventService() {\n this.gridInstanceId = MouseEventService_1.gridInstanceSequence.next();\n }\n MouseEventService_1 = MouseEventService;\n MouseEventService.prototype.init = function () {\n this.stampDomElementWithGridInstance();\n };\n // we put the instance id onto the main DOM element. this is used for events, when grids are inside grids,\n // so the grid can work out if the even came from this grid or a grid inside this one. see the ctrl+v logic\n // for where this is used.\n MouseEventService.prototype.stampDomElementWithGridInstance = function () {\n this.eGridDiv[MouseEventService_1.GRID_DOM_KEY] = this.gridInstanceId;\n };\n MouseEventService.prototype.getRenderedCellForEvent = function (event) {\n return utils_1._.getCellCompForEvent(this.gridOptionsWrapper, event);\n };\n // walks the path of the event, and returns true if this grid is the first one that it finds. if doing\n // master / detail grids, and a child grid is found, then it returns false. this stops things like copy/paste\n // getting executed on many grids at the same time.\n MouseEventService.prototype.isEventFromThisGrid = function (event) {\n var path = utils_1._.getEventPath(event);\n for (var i = 0; i < path.length; i++) {\n var element = path[i];\n var instanceId = element[MouseEventService_1.GRID_DOM_KEY];\n if (utils_1._.exists(instanceId)) {\n var eventFromThisGrid = instanceId === this.gridInstanceId;\n return eventFromThisGrid;\n }\n }\n return false;\n };\n MouseEventService.prototype.getCellPositionForEvent = function (event) {\n var cellComp = this.getRenderedCellForEvent(event);\n return cellComp ? cellComp.getCellPosition() : null;\n };\n var MouseEventService_1;\n MouseEventService.gridInstanceSequence = new utils_1.NumberSequence();\n MouseEventService.GRID_DOM_KEY = '__ag_grid_instance';\n __decorate([\n context_2.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], MouseEventService.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_2.Autowired('eGridDiv'),\n __metadata(\"design:type\", HTMLElement)\n ], MouseEventService.prototype, \"eGridDiv\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], MouseEventService.prototype, \"init\", null);\n MouseEventService = MouseEventService_1 = __decorate([\n context_1.Bean('mouseEventService')\n ], MouseEventService);\n return MouseEventService;\n}());\nexports.MouseEventService = MouseEventService;\n"],"sourceRoot":""}