{"version":3,"file":"823.afe6d74f20e81734.js","mappings":"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","names":["deepCloneNode","node","clone","cloneNode","descendantsWithId","querySelectorAll","nodeName","toLowerCase","removeAttribute","i","length","transferCanvasData","transferInputData","transferData","selector","callback","descendantElements","cloneElements","cloneUniqueId","source","type","value","name","context","getContext","drawImage","getMutableClientRect","element","rect","getBoundingClientRect","top","right","bottom","left","width","height","x","y","isInsideClientRect","clientRect","adjustDomRect","domRect","isPointerNearDomRect","threshold","pointerX","pointerY","xThreshold","yThreshold","ParentPositionTracker","constructor","_document","this","positions","Map","clear","cache","elements","set","scrollPosition","getViewportScrollPosition","forEach","scrollTop","scrollLeft","handleScroll","event","target","_getEventTarget","cachedPosition","get","newTop","newLeft","viewportScrollPosition","topDifference","leftDifference","position","contains","window","scrollY","scrollX","getRootNode","viewRef","rootNodes","nodeType","ELEMENT_NODE","wrapper","createElement","appendChild","extendStyles","dest","importantProperties","key","hasOwnProperty","setProperty","has","removeProperty","toggleNativeDragInteractions","enable","userSelect","style","toggleVisibility","opacity","combineTransforms","transform","initialTransform","matchElementSize","sourceRect","getTransform","Math","round","parseCssTimeUnitsToMs","multiplier","indexOf","parseFloat","parseCssPropertyValue","computedStyle","getPropertyValue","split","map","part","trim","Set","PreviewRef","_preview","_rootElement","_direction","_initialDomRect","_previewTemplate","_previewClass","_pickupPositionOnPage","_initialTransform","_zIndex","attach","parent","_createPreview","supportsPopover","showPopover","destroy","_this$_previewEmbedde","remove","_previewEmbeddedView","setTransform","addClass","className","classList","add","getTransitionDuration","getTransformTransitionDurationInMs","getComputedStyle","transitionedProperties","property","find","prop","propertyIndex","rawDurations","rawDelays","addEventListener","handler","removeEventListener","previewConfig","previewClass","previewTemplate","template","preview","rootRect","matchSize","viewContainer","createEmbeddedView","detectChanges","margin","setAttribute","Array","isArray","passiveEventListenerOptions","normalizePassiveListenerOptions","passive","activeEventListenerOptions","activeCapturingEventOptions$1","capture","dragImportantProperties","DragRef","disabled","_disabled","_dropContainer","_toggleNativeDragInteractions","_handles","handle","_config","_ngZone","_viewportRuler","_dragDropRegistry","_passiveTransform","_activeTransform","_hasStartedDragging","signal","_moveEvents","Subject","_pointerMoveSubscription","Subscription","EMPTY","_pointerUpSubscription","_scrollSubscription","_resizeSubscription","_boundaryElement","_nativeInteractionsEnabled","_disabledHandles","dragStartDelay","scale","beforeStarted","started","released","ended","entered","exited","dropped","moved","_pointerDown","next","targetHandle","_getTargetHandle","_initializeDragSequence","_pointerMove","pointerPosition","_getPointerPositionOnPage","abs","dragStartThreshold","isDelayElapsed","Date","now","_dragStartTime","_getDragStartDelay","container","_endDragSequence","isDragging","isReceiving","cancelable","preventDefault","run","_startDragSequence","constrainedPointerPosition","_getConstrainedPointerPosition","_hasMoved","_lastKnownPointerPosition","_updatePointerDirectionDelta","_updateActiveDropContainer","offset","constrainPosition","activeTransform","_applyRootElementTransform","observers","distance","_getDragDistance","delta","_pointerDirectionDelta","_pointerUp","_nativeDragStart","withRootElement","withParent","parentDragRef","_parentPositions","registerDragItem","getPlaceholderElement","_placeholder","getRootElement","getVisibleElement","withHandles","handles","coerceElement","disabledHandles","withPreviewTemplate","withPlaceholderTemplate","_placeholderTemplate","rootElement","_removeRootElementListeners","runOutsideAngular","undefined","SVGElement","_ownerSVGElement","ownerSVGElement","withBoundaryElement","boundaryElement","unsubscribe","change","subscribe","_containInsideBoundaryOnResize","_parentDragRef","dispose","_this$_anchor","_this$_rootElement","_anchor","_destroyPreview","_destroyPlaceholder","removeDragItem","_removeListeners","complete","reset","disableHandle","enableHandle","delete","withDirection","direction","_withDropContainer","getFreeDragPosition","setFreeDragPosition","withPreviewContainer","_previewContainer","_sortFromLastPointerPosition","_this$_getShadowRoot","_getShadowRoot","shadowDomSelectStart","_this$_preview","_this$_placeholder","_this$_placeholderRef","_placeholderRef","stopDragging","webkitTapHighlightColor","_rootElementTapHighlight","_stopScrolling","_animatePreviewToPlaceholder","then","_cleanupDragArtifacts","_cleanupCachedDimensions","dropPoint","isTouchEvent","_lastTouchEventTime","shadowRoot","dropContainer","parentNode","placeholder","_createPlaceholderElement","anchor","createComment","insertBefore","zIndex","_getPreviewInsertionPoint","body","replaceChild","start","_initialContainer","_initialIndex","getItemIndex","getScrollableParents","referenceElement","stopPropagation","isTouchSequence","isAuxiliaryMouseButton","button","isSyntheticEvent","isFakeEvent","isFakeTouchstartFromScreenReader","isFakeMousedownFromScreenReader","draggable","rootStyles","pointerMove","pointerUp","scrolled","scrollEvent","_updateOnScroll","_boundaryRect","_pickupPositionInElement","_getPointerPositionInElement","_pointerPositionAtLastDirectionChange","startDragging","_previewRect","currentIndex","isPointerOverContainer","_isOverContainer","item","previousIndex","previousContainer","drop","rawX","rawY","newContainer","_getSiblingContainerFromPosition","exit","enter","sortingDisabled","_startScrollingIfNecessary","_sortItem","_applyPreviewTransform","Promise","resolve","placeholderRect","duration","_this$_preview2","propertyName","clearTimeout","timeout","setTimeout","placeholderConfig","placeholderTemplate","pointerEvents","elementRect","handleElement","referenceRect","point","targetTouches","_getViewportScrollPosition","pageX","pageY","touches","changedTouches","svgMatrix","getScreenCTM","svgPoint","createSVGPoint","matrixTransform","inverse","dropContainerLock","lockAxis","pickupX","pickupY","boundaryRect","previewWidth","previewHeight","_getPreviewRect","minY","maxY","clamp$1","pointerPositionOnPage","positionSinceLastChange","changeX","changeY","pointerDirectionChangeThreshold","shouldEnable","styles","_this$_previewTemplat","currentPosition","pickupPosition","leftOverflow","rightOverflow","topOverflow","bottomOverflow","touch","mouse","scrollDifference","_this$_parentPosition","_cachedShadowRoot","initialParent","previewContainer","documentRef","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","min","max","moveItemInArray","array","fromIndex","toIndex","from","clamp","to","SingleAxisSortStrategy","_itemPositions","orientation","_previousSwap","drag","overlaps","items","withItems","sort","pointerDelta","siblings","newIndex","_getItemIndexFromPointerPosition","isHorizontal","findIndex","currentItem","siblingAtNewPosition","newPosition","itemOffset","_getItemOffsetPx","siblingOffset","_getSiblingOffsetPx","oldOrder","slice","sibling","index","isDraggedItem","elementToOffset","transformAmount","activeDraggables","_activeDraggables","newPositionReference","_shouldEnterAsFirstChild","splice","parentElement","_element","push","_cacheItemPositions","withSortPredicate","predicate","_sortPredicate","_this$_activeDraggabl","_this$_itemPositions$","p","getActiveItemsSnapshot","reverse","updateOnScroll","withElementContainer","elementToMeasure","a","b","immediateSibling","end","itemPositions","lastItemRect","firstItemRect","floor","MixedSortStrategy","deltaX","deltaY","_relatedNodes","childNodes","nextSibling","previousSwap","_activeItems","toSwapWith","current","overlapElement","after","before","newOverlapElement","_getRootNode","elementFromPoint","enterIndex","_getClosestItemIndexToPointer","targetItem","root","_rootNode","elementAtPoint","minDistance","Infinity","minIndex","hypot","AutoScrollVerticalDirection","NONE","UP","DOWN","AutoScrollHorizontalDirection","LEFT","RIGHT","DropListRef","autoScrollDisabled","autoScrollStep","enterPredicate","sortPredicate","sorted","receivingStarted","receivingStopped","_isDragging","_draggables","_siblings","_activeSiblings","_viewportScrollSubscription","_verticalScrollDirection","_horizontalScrollDirection","_stopScrollTimers","_scrollableElements","_startScrollInterval","interval","period","scheduler","asyncScheduler","timer","animationFrameScheduler","pipe","takeUntil","_scrollNode","scrollStep","scrollBy","coercedElement","withOrientation","registerDropContainer","removeDropContainer","_draggingStarted","_notifyReceivingSiblings","_sortStrategy","_cacheParentPositions","_reset","previousItems","filter","every","connectedTo","strategy","_container","withScrollableParents","oldContainerIndex","newContainerIndex","unshift","size","_domRect","result","scrollNode","verticalScrollDirection","horizontalScrollDirection","getElementScrollDirections","computedVertical","getVerticalScrollDirection","computedHorizontal","getHorizontalScrollDirection","scrollHeight","clientHeight","scrollWidth","clientWidth","getViewportSize","_initialScrollSnap","msScrollSnapType","scrollSnapType","_listenToScrollEvents","_stopReceiving","_canReceive","_startReceiving","activeSiblings","initiator","receiver","draggedItems","activeCapturingEventOptions","activeApps","_ResetsLoader","_ResetsLoader2","ɵfac","__ngFactoryType__","ɵcmp","i0","selectors","hostAttrs","standalone","features","decls","vars","rf","ctx","encapsulation","changeDetection","DragDropRegistry","_DragDropRegistry","_appRef","inject","ApplicationRef","_environmentInjector","EnvironmentInjector","_dropInstances","_dragInstances","_activeDragInstances","_globalListeners","_draggingPredicate","scroll","_preventDefaultWhileDragging","_persistentTouchmoveListener","some","_loadResets","update","instances","startsWith","e","options","config","_clearGlobalListeners","streams","Observable","observer","eventOptions","merge","ngOnDestroy","instance","componentRef","createComponent","environmentInjector","onDestroy","DOCUMENT","ɵprov","token","factory","providedIn","DEFAULT_CONFIG","DragDrop","_DragDrop","createDrag","createDropList","i1","CDK_DRAG_PARENT","InjectionToken","CDK_DRAG_HANDLE","CDK_DRAG_CONFIG","CDK_DROP_LIST","CdkDrag","_CdkDrag","_dragRef","_viewContainerRef","_dir","dragDrop","_changeDetectorRef","_selfHandle","_parentDrag","_destroyed","BehaviorSubject","EventEmitter","subscription","movedEvent","_injector","Injector","data","_assignDefaults","_dropListRef","addItem","_syncInputs","_handleEvents","ngAfterViewInit","afterNextRender","_updateRootElement","_setupHandlesListener","freeDragPosition","injector","ngOnChanges","changes","rootSelectorChange","rootElementSelector","positionChange","firstChange","removeItem","_addHandle","getValue","_removeHandle","_setPreviewTemplate","_resetPreviewTemplate","_setPlaceholderTemplate","_resetPlaceholderTemplate","nativeElement","_element$parentElemen","closest","_getBoundaryElement","boundary","ref","dir","templateRef","coerceNumberProperty","take","_CdkDrag$_dragInstanc","startEvent","emit","markForCheck","releaseEvent","endEvent","enterEvent","exitEvent","dropEvent","draggingDisabled","tap","handleElements","switchMap","_stateChanges","startWith","handleInstance","dragRef","i1$1","ɵdir","hostVars","hostBindings","inputs","booleanAttribute","numberAttribute","outputs","exportAs","provide","useExisting","CDK_DROP_LIST_GROUP","_uniqueIdCounter","CdkDropList","_CdkDropList","_group","_scrollDispatcher","id","_unsortedItems","_setupInputSyncSubscription","_dropLists","_items","_syncItemsWithRef","getSortedItems","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","coerceArray","list","_scrollableParentsResolved","scrollableParents","getAncestorScrollContainers","scrollable","getElementRef","elementContainerSelector","querySelector","listAutoScrollDisabled","listOrientation","useValue","DragDropModule","_DragDropModule","ɵmod","ɵinj","providers","imports","CdkScrollableModule","_c0","_c1","_MatChip_Conditional_3_Template","_MatChip_Conditional_7_Template","_MatChipOption_Conditional_3_Template","_MatChipOption_Conditional_7_Template","_c5","MAT_CHIPS_DEFAULT_OPTIONS","separatorKeyCodes","ENTER","MAT_CHIP_AVATAR","MAT_CHIP_TRAILING_ICON","MAT_CHIP_REMOVE","MAT_CHIP","MatChipAction","_MatChipAction","_parentChip","_getDisabledAttribute","_allowFocusWhenDisabled","_getTabindex","isInteractive","tabIndex","toString","_elementRef","_isPrimary","focus","_handleClick","_handlePrimaryActionInteraction","_handleKeydown","keyCode","SPACE","_isEditing","$event","uid","MatChip","_MatChip","_hasFocus","_hasFocusInternal","_value","_textElement","textContent","ripple","_this$_rippleLoader","_rippleLoader","getRipple","v","_this$_rippleLoader2","attachRipple","_focusMonitor","animationMode","_globalRippleOptions","_this$_rippleLoader3","_onFocus","_onBlur","role","ariaLabel","ariaDescription","_ariaDescriptionId","removable","highlighted","disableRipple","removed","destroyed","basicChipAttrName","MatRippleLoader","_animationsDisabled","_monitorFocus","configureRipple","_isRippleDisabled","ngOnInit","_isBasicChip","hasAttribute","tagName","_pendingFocus","ngAfterContentInit","_actionChanges","_allLeadingIcons","_allTrailingIcons","_allRemoveIcons","ngDoCheck","setDisabled","_this$_rippleLoader4","_this$_actionChanges","stopMonitoring","destroyRipple","chip","_this$_globalRippleOp","_hasTrailingIcon","trailingIcon","removeIcon","BACKSPACE","repeat","DELETE","primaryAction","_getSourceAction","_getActions","action","monitor","origin","hasFocus","ANIMATION_MODULE_TYPE","MAT_RIPPLE_GLOBAL_OPTIONS","contentQueries","dirIndex","_t","leadingIcon","first","viewQuery","color","ngContentSelectors","consts","dependencies","MatChipOption","_MatChipOption","_this$_defaultOptions","_this$_defaultOptions2","super","arguments","_defaultOptions","optional","chipListSelectable","_chipListMultiple","_chipListHideSingleSelectionIndicator","hideSingleSelectionIndicator","_selectable","_selected","selectionChange","selectable","selected","_setSelectedState","ariaSelected","select","deselect","selectViaInteraction","toggleSelected","isUserInput","_hasLeadingGraphic","isSelected","emitEvent","ɵ_MatChipOption_BaseFactory","MatChipSet","_MatChipSet","chipFocusChanges","_getChipStream","chipDestroyedChanges","chipRemovedChanges","_syncChipsState","empty","_chips","_explicitRole","_defaultRole","focused","_hasFocusedChip","_lastDestroyedFocusedChipIndex","_chipActions","QueryList","_setUpFocusManagement","_trackChipSetChanges","_trackDestroyedFocusedChip","_this$_keyManager","_keyManager","_originatesFromChip","onKeydown","_isValidIndex","_allowFocusEscape","previousTabIndex","mappingFunction","currentElement","_this$_dir","chips","actions","notifyOnChanges","FocusKeyManager","withVerticalOrientation","withHorizontalOrientation","withHomeAndEnd","skipPredicate","_skipPredicate","document","activeElement","updateActiveItem","_redirectDestroyedChipFocus","chipIndex","toArray","chipToFocus","setPreviousItemActive","MatChipListboxChange","MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","MatChipListbox","multi","_MatChipListbox","_this$_defaultOptions3","_this$_defaultOptions4","_onTouched","_onChange","_multiple","ariaOrientation","compareWith","o1","o2","required","_hideSingleSelectionIndicator","multiple","_syncListboxProperties","selectedChips","chipSelectionChanges","chipBlurChanges","writeValue","_pendingInitialValue","_setSelectionByValue","_blur","_propagateChanges","firstSelectedChip","_getFirstSelectedChip","setFirstItemActive","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","_clearSelection","currentValue","_selectValue","_markAsTouched","_keydown","TAB","valueToEmit","skip","correspondingChip","ɵ_MatChipListbox_BaseFactory","_ariaDescribedby","MatChipsModule","_MatChipsModule","ErrorStateMatcher","MatCommonModule","MatRippleModule","nextId","BADGE_CONTENT_CLASS","badgeApps","_MatBadgeStyleLoader","_MatBadgeStyleLoader2","MatBadge","_MatBadge","_color","_setColor","content","_content","newContent","_updateRenderedContent","description","_description","newDescription","_updateDescription","_ariaDescriber","_renderer","_animationMode","overlap","_id","_isInitialized","_interactivityChecker","InteractivityChecker","appRef","isAbove","isAfter","getBadgeElement","_badgeElement","_clearExistingBadges","_createBadgeElement","_this$_inlineBadgeDes","destroyNode","_inlineBadgeDescription","removeDescription","_isHostInteractive","isFocusable","ignoreVisibility","badgeElement","activeClass","requestAnimationFrame","newContentNormalized","_removeInlineDescription","describe","_updateInlineDescription","_this$_badgeElement","_this$_inlineBadgeDes2","colorPalette","badges","hidden","MatBadgeModule","_MatBadgeModule","A11yModule","_MatProgressBar_Conditional_2_Template","MAT_PROGRESS_BAR_DEFAULT_OPTIONS","MatProgressBar","_MatProgressBar","defaults","_isNoopAnimation","_defaultColor","_bufferValue","animationEnd","_mode","_transitionendHandler","mode","bufferValue","_getPrimaryBarTransform","_isIndeterminate","_getBufferBarFlexBasis","MatProgressBarModule","_MatProgressBarModule","_CdkTable_Conditional_2_Template","_CdkTable_Conditional_3_Template","_CdkTable_Conditional_4_Template","CDK_TABLE","CdkCellDef","_CdkCellDef","CdkHeaderCellDef","_CdkHeaderCellDef","CdkFooterCellDef","_CdkFooterCellDef","CdkColumnDef","_CdkColumnDef","_name","_setNameInput","sticky","_sticky","_hasStickyChanged","stickyEnd","_stickyEnd","_table","hasStickyChanged","resetStickyChanged","_updateColumnCssClassName","_columnCssClassName","cssClassFriendlyName","replace","cell","headerCell","footerCell","BaseCdkCell","columnDef","elementRef","CdkHeaderCell","_CdkHeaderCell","CdkFooterCell","_CdkFooterCell","_columnDef$_table","_getCellRole","CdkCell","_CdkCell","_columnDef$_table2","_Schedule","tasks","endTasks","_COALESCED_STYLE_SCHEDULER","_CoalescedStyleScheduler","_CoalescedStyleScheduler2","_unusedNgZone","_currentSchedule","NgZone","schedule","task","_createScheduleIfNeeded","scheduleEnd","queueMicrotask","BaseRowDef","_BaseRowDef","_differs","_columnsDiffer","columns","create","diff","getColumnsDiff","extractCellTemplate","column","CdkHeaderRowDef","CdkFooterRowDef","_CdkHeaderRowDef","_CdkFooterRowDef","CdkRowDef","_CdkRowDef","when","CdkCellOutlet","_CdkCellOutlet","_viewContainer","mostRecentCellOutlet","CdkHeaderRow","_CdkHeaderRow","CdkFooterRow","_CdkFooterRow","CdkRow","_CdkRow","CdkNoDataRow","_CdkNoDataRow","_contentClassName","STICKY_DIRECTIONS","StickyStyler","_isNativeHtmlTable","_stickCellCss","_coalescedStyleScheduler","_isBrowser","_needsPositionStickyOnElement","_positionListener","_cachedCellWidths","_borderCellCss","clearStickyPositioning","rows","stickyDirections","elementsToClear","row","children","_removeStickyStyle","updateStickyColumns","stickyStartStates","stickyEndStates","recalculateCellWidths","state","firstRow","numCells","cellWidths","_getCellWidths","startPositions","_getStickyStartColumnPositions","endPositions","_getStickyEndColumnPositions","lastStickyStart","lastIndexOf","firstStickyEnd","isRtl","_addStickyStyle","stickyColumnsUpdated","sizes","stickyEndColumnsUpdated","stickRows","rowsToStick","stickyStates","states","stickyOffsets","stickyCellHeights","elementsToStick","rowIndex","stickyOffset","borderedRowIndex","isBorderedRowIndex","_this$_positionListen","_this$_positionListen2","stickyHeaderRowsUpdated","offsets","stickyFooterRowsUpdated","updateStickyFooterContainer","tableElement","tfoot","_getCalculatedZIndex","dirValue","isBorderElement","cssText","zIndexIncrements","firstRowCells","widths","nextPosition","STICKY_POSITIONING_LISTENER","DataRowOutlet","_DataRowOutlet","table","_rowOutlet","_outletAssigned","HeaderRowOutlet","_HeaderRowOutlet","_headerRowOutlet","FooterRowOutlet","_FooterRowOutlet","_footerRowOutlet","NoDataRowOutlet","_NoDataRowOutlet","_noDataRowOutlet","CdkTable","_CdkTable","_cellRoleInternal","getAttribute","cellRole","trackBy","_trackByFn","dataSource","_dataSource","_switchDataSource","multiTemplateDataRows","_multiTemplateDataRows","_forceRenderDataRows","updateStickyColumnStyles","fixedLayout","_fixedLayout","_forceRecalculateCellWidths","_stickyColumnStylesNeedReset","_platform","_viewRepeater","_stickyPositioningListener","_onDestroy","_columnDefsByName","_customColumnDefs","_customRowDefs","_customHeaderRowDefs","_customFooterRowDefs","_headerRowDefChanged","_footerRowDefChanged","_cachedRenderRowsMap","stickyCssClass","needsPositionStickyOnElement","_isShowingNoDataRow","_hasAllOutlets","_hasInitialized","contentChanged","viewChange","Number","MAX_VALUE","_isServer","isBrowser","_setupStickyStyler","_dataDiffer","_i","dataRow","dataIndex","ngAfterContentChecked","_canRender","_render","_this$_rowOutlet","_this$_headerRowOutle","_this$_footerRowOutle","def","_headerRowDefs","_footerRowDefs","_defaultRowDef","isDataSource","disconnect","renderRows","_renderRows","_getAllRenderRows","_updateNoDataRow","applyChanges","record","_adjustedPreviousIndex","_getEmbeddedViewArgs","operation","_ViewRepeaterOperation","INSERTED","_renderCellTemplateForItem","rowDef","_updateRowIndexContext","forEachIdentityChange","$implicit","addColumnDef","removeColumnDef","addRowDef","removeRowDef","addHeaderRowDef","headerRowDef","removeHeaderRowDef","addFooterRowDef","footerRowDef","removeFooterRowDef","setNoDataRow","noDataRow","_customNoDataRow","updateStickyHeaderRowStyles","headerRows","_getRenderedRows","thead","closestTableSection","display","_stickyStyler","updateStickyFooterRowStyles","footerRows","dataRows","headerRow","_addStickyColumnStyles","_rowDefs","footerRow","values","_cacheRowDefs","_cacheColumnDefs","rowDefsChanged","_renderUpdatedColumns","_forceRenderHeaderRows","_forceRenderFooterRows","_renderChangeSubscription","_observeRenderChanges","_checkStickyStates","prevCachedRenderRows","_data","renderRowsForData","_getRenderRowsForData","WeakMap","j","renderRow","_getRowDefs","cachedRenderRows","shift","mergeArrayAndSet","_getOwnDefs","_contentColumnDefs","_contentHeaderRowDefs","_contentFooterRowDefs","_contentRowDefs","defaultRowDefs","columnsDiffReducer","acc","dataColumnsChanged","reduce","headerColumnsChanged","footerColumnsChanged","dataStream","connect","isObservable","of","_renderRow","columnDefs","columnName","rowOutlet","renderedRows","rowDefs","outlet","view","cellTemplate","_getCellTemplates","renderIndex","count","last","even","odd","columnId","stickyCheckReducer","d","_noDataRow","shouldShow","rootNode","i2","_VIEW_REPEATER_STRATEGY","i3","useClass","_DisposeViewRepeaterStrategy","concat","section","uppercaseSection","toUpperCase","CdkTableModule","_CdkTableModule","ScrollingModule","_MatTable_Conditional_2_Template","_MatTable_Conditional_3_Template","_MatTable_Conditional_4_Template","MatTable","_MatTable","ɵ_MatTable_BaseFactory","MatCellDef","_MatCellDef","ɵ_MatCellDef_BaseFactory","MatHeaderCellDef","_MatHeaderCellDef","ɵ_MatHeaderCellDef_BaseFactory","MatFooterCellDef","_MatFooterCellDef","ɵ_MatFooterCellDef_BaseFactory","MatColumnDef","_MatColumnDef","ɵ_MatColumnDef_BaseFactory","MatHeaderCell","_MatHeaderCell","ɵ_MatHeaderCell_BaseFactory","MatFooterCell","_MatFooterCell","ɵ_MatFooterCell_BaseFactory","MatCell","_MatCell","ɵ_MatCell_BaseFactory","MatHeaderRowDef","_MatHeaderRowDef","ɵ_MatHeaderRowDef_BaseFactory","MatFooterRowDef","_MatFooterRowDef","ɵ_MatFooterRowDef_BaseFactory","MatRowDef","_MatRowDef","ɵ_MatRowDef_BaseFactory","MatHeaderRow","_MatHeaderRow","ɵ_MatHeaderRow_BaseFactory","MatFooterRow","_MatFooterRow","ɵ_MatFooterRow_BaseFactory","MatRow","_MatRow","ɵ_MatRow_BaseFactory","MatTableModule","_MatTableModule","MatTableDataSource","DataSource","_renderChangesSubscription","_filterData","_filter","_sort","_updateChangeSubscription","paginator","_paginator","initialData","_renderData","_internalPageChanges","sortingDataAccessor","sortHeaderId","_isNumberValue","numberValue","sortData","active","valueA","valueB","valueAType","valueBType","comparatorResult","filterPredicate","dataStr","Object","keys","currentTerm","transformedFilter","_this$_renderChangesS","sortChange","initialized","pageChange","page","filteredData","combineLatest","orderedData","_orderData","paginatedData","_pageData","obj","_updatePaginator","startIndex","pageIndex","pageSize","filteredDataLength","lastPageIndex","ceil","newPageIndex","_this$_renderChangesS2","pairwise","operate","subscriber","prev","hasPrev","createOperatorSubscriber","HEADER_CELL_SELECTOR","HEADER_ROW_SELECTOR","_curr$closest","_curr","curr","Element","HOVER_OR_ACTIVE_CLASS","ColumnResize","_ColumnResize","selectorId","getUniqueCssClass","_listenForRowHoverEvents","_listenForResizeActivity","_listenForHoverActivity","setResized","ngZone","fromEvent","eventDispatcher","headerCellHovered","relatedTarget","matches","mapTo","overlayHandleActiveForCell","notifier","triggerResize","resizeCompleted","headerRowHoveredOrActiveDistinct","previousRow","hoveredRow","ColumnResizeNotifierSource","_ColumnResizeNotifierSource","resizeCanceled","ColumnResizeNotifier","_ColumnResizeNotifier","_source","resize","completeImmediately","isStickyColumn","HeaderRowEventDispatcher","_HeaderRowEventDispatcher","headerCellHoveredDistinct","distinctUntilChanged","share","hovered","_headerRowHoveredOrActiveDistinctReenterZone","_enterZone","_lastSeenRow","_lastSeenRowHover","resizeOverlayVisibleForHeaderRow","error","err","ResizeStrategy","_ResizeStrategy","_pendingResizeDelta","updateTableWidthAndStickyColumns","_this$_pendingResizeD","columnResize","tableWidth","getElementWidth","styleScheduler","coerceCssPixelValue","TableLayoutFixedResizeStrategy","_TableLayoutFixedResizeStrategy","applyColumnSize","_","columnHeader","sizeInPx","previousSizeInPx","applyMinColumnSize","currentWidth","newWidth","applyMaxColumnSize","coercePixelsFromCssValue","cssValue","_cssValue$match","match","offsetWidth","TABLE_LAYOUT_FIXED_RESIZE_STRATEGY_PROVIDER","ResizeRef","overlayRef","minWidthPx","maxWidthPx","OVERLAY_ACTIVE_CLASS","Resizable","_Resizable","isResizable","minWidthPxInternal","maxWidthPxInternal","MAX_SAFE_INTEGER","_viewInitialized","_isDestroyed","_applyMinWidthPx","_applyMaxWidthPx","_listenForResizeEvents","_appendInlineHandle","_this$inlineHandle","_this$overlayRef","inlineHandle","_createOverlayForHandle","directionality","positionStrategy","overlay","flexibleConnectedTo","withFlexibleDimensions","withGrowAfterOpen","withPush","withDefaultOffsetX","withPositions","originX","originY","overlayX","overlayY","disposeOnNavigation","scrollStrategy","scrollStrategies","reposition","takeUntilDestroyed","hoveringRow","_showHandleOverlay","detach","resizeNotifier","columnSize","previousSize","_applySize","_completeResizeOperation","_cleanUpAfterResize","hasAttached","_updateOverlayHandleHeight","updatePosition","_createHandlePortal","ComponentPortal","getOverlayHandleComponentType","viewContainerRef","changeDetectorRef","updateSize","offsetHeight","sizeInPixels","sizeToApply","resizeStrategy","getInlineHandleCssClassName","ResizeOverlayHandle","_ResizeOverlayHandle","_listenForMouseEvents","resizeRef","mousedownEvent","_dragStarted","mouseup","mousemove","escape","ESCAPE","startX","screenX","initialSize","_getOriginWidth","overlayOffset","originOffset","_getOriginOffset","overshot","updateResizeActive","_notifyResizeEnded","prevX","currX","remainingOvershot","computedNewSize","_isLtr","originNewSize","originNewOffset","originOffsetDeltaX","originSizeDeltaX","_updateOverlayOffset","offsetLeft","overlayElement","completedSuccessfully","sizeMessage","range","valueFunction","valuesArray","String","MtxToObservablePipe","_MtxToObservablePipe","ɵpipe","pure","MtxIsTemplateRefPipe","_MtxIsTemplateRefPipe","TemplateRef","MtxPipesModule","_MtxPipesModule","CommonModule","_MtxDialogContainer_Conditional_0_Conditional_5_Template","_r1","ctx_r1","_onClose","_MtxDialogContainer_Conditional_0_Template","title","showCloseIcon","_MtxDialogContainer_Conditional_1_Template","_MtxDialogContainer_For_4_Case_0_Conditional_0_Template","_r3","btn_r4","_onClick","onClick","class","text","_MtxDialogContainer_For_4_Case_0_Conditional_1_Template","_r5","_MtxDialogContainer_For_4_Case_0_Template","focusInitial","_MtxDialogContainer_For_4_Case_1_Conditional_0_Template","_r6","_MtxDialogContainer_For_4_Case_1_Conditional_1_Template","_r7","_MtxDialogContainer_For_4_Case_1_Template","_MtxDialogContainer_For_4_Case_2_Conditional_0_Template","_r8","_MtxDialogContainer_For_4_Case_2_Conditional_1_Template","_r9","_MtxDialogContainer_For_4_Case_2_Template","_MtxDialogContainer_For_4_Case_3_Conditional_0_Template","_r10","_MtxDialogContainer_For_4_Case_3_Conditional_1_Template","_r11","_MtxDialogContainer_For_4_Case_3_Template","_MtxDialogContainer_For_4_Template","tmp_10_0","MtxDialogContainer","_MtxDialogContainer","dialogRef","call","close","MAT_DIALOG_DATA","buttons","AsyncPipe","MatButton","MatIconButton","MatIcon","disableClose","MtxDialog","_MtxDialog","dialog","originalOpen","componentOrTemplateRef","open","assign","alert","onOk","confirm","onClose","MtxDialogModule","_MtxDialogModule","MatDialogModule","MatButtonModule","MatIconModule","a0","_c2","a1","a2","a3","a4","_MtxGridCell_Conditional_0_Template","ctx_r0","_getFormatterTooltip","colDef","_getText","_MtxGridCell_Conditional_1_Conditional_0_Template","formatter","rowData","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_0_mat_icon_24_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_0_Template","_r2","btn_r3","_onActionClick","iconTpl_r4","rowChangeRecord","message","hideDelay","showDelay","positionAtOrigin","touchGestures","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_1_mat_icon_24_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_1_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_2_mat_icon_24_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_2_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_3_mat_icon_24_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_3_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_4_mat_icon_24_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_4_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_5_mat_icon_24_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_5_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_6_mat_icon_24_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Case_6_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Conditional_0_Template","tmp_15_0","_MtxGridCell_Conditional_1_Conditional_1_Case_0_For_1_Template","iif","_MtxGridCell_Conditional_1_Conditional_1_Case_0_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_1_Conditional_0_Template","tag","_MtxGridCell_Conditional_1_Conditional_1_Case_1_Conditional_1_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_1_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_2_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_3_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_4_Template","_getTooltip","_MtxGridCell_Conditional_1_Conditional_1_Case_5_Template","typeParameter","digitsInfo","locale","_MtxGridCell_Conditional_1_Conditional_1_Case_6_Template","currencyCode","_MtxGridCell_Conditional_1_Conditional_1_Case_7_Template","_MtxGridCell_Conditional_1_Conditional_1_Case_8_Template","format","timezone","_MtxGridCell_Conditional_1_Conditional_1_Case_9_Template","_MtxGridCell_Conditional_1_Conditional_1_Template","tmp_3_0","_MtxGridCell_Conditional_1_Template","_MtxGridCell_ng_template_2_Conditional_0_Template","btn_r11","icon","_MtxGridCell_ng_template_2_Conditional_1_Template","fontIcon","_MtxGridCell_ng_template_2_Conditional_2_Template","svgIcon","_MtxGridCell_ng_template_2_Template","_c3","_MtxGridColumnMenu_Case_0_Conditional_1_Template","buttonIcon","_MtxGridColumnMenu_Case_0_Template","menu_r3","buttonClass","buttonColor","buttonText","_MtxGridColumnMenu_Case_1_Conditional_1_Template","_MtxGridColumnMenu_Case_1_Template","_MtxGridColumnMenu_Case_2_Conditional_1_Template","_MtxGridColumnMenu_Case_2_Template","_MtxGridColumnMenu_Case_3_Conditional_1_Template","_MtxGridColumnMenu_Case_3_Template","_MtxGridColumnMenu_Case_4_Conditional_1_Template","_MtxGridColumnMenu_Case_4_Template","_MtxGridColumnMenu_Case_5_Conditional_1_Template","_MtxGridColumnMenu_Case_5_Template","_MtxGridColumnMenu_Case_6_Conditional_1_Template","_MtxGridColumnMenu_Case_6_Template","_MtxGridColumnMenu_Conditional_10_Conditional_1_ng_template_0_Template","_MtxGridColumnMenu_Conditional_10_Conditional_1_Template","headerTemplate","_MtxGridColumnMenu_Conditional_10_Conditional_2_Template","headerText","_MtxGridColumnMenu_Conditional_10_Template","_MtxGridColumnMenu_Conditional_12_For_2_ng_template_3_Template","_MtxGridColumnMenu_Conditional_12_For_2_Template","col_r5","checkboxList_r6","selectableChecked","show","hide","_MtxGridColumnMenu_Conditional_12_Template","_r4","_handleDroped","_MtxGridColumnMenu_Conditional_13_For_2_ng_template_1_Template","_MtxGridColumnMenu_Conditional_13_For_2_Template","col_r7","_MtxGridColumnMenu_Conditional_13_Template","_MtxGridColumnMenu_Conditional_14_Conditional_1_ng_template_0_Template","_MtxGridColumnMenu_Conditional_14_Conditional_1_Template","footerTemplate","_MtxGridColumnMenu_Conditional_14_Conditional_2_Template","footerText","_MtxGridColumnMenu_Conditional_14_Template","_MtxGridColumnMenu_ng_template_15_Conditional_0_Conditional_1_Template","_MtxGridColumnMenu_ng_template_15_Conditional_0_Conditional_2_Template","_MtxGridColumnMenu_ng_template_15_Conditional_0_For_6_Conditional_2_Template","_MtxGridColumnMenu_ng_template_15_Conditional_0_For_6_Template","item_r9","col_r10","_handlePinSelect","pinned","label","_MtxGridColumnMenu_ng_template_15_Conditional_0_Template","pinList_r11","pinOptions","_MtxGridColumnMenu_ng_template_15_Conditional_1_Template","_r12","_handleChecked","header","_MtxGridColumnMenu_ng_template_15_Conditional_2_Template","_MtxGridColumnMenu_ng_template_15_Template","pinnable","_c4","_c6","_c7","_c8","_c9","_c10","_c11","colData","_c12","_c13","expanded","_c14","_MtxGrid_Conditional_0_Template","_MtxGrid_Conditional_1_Conditional_2_ng_template_0_Template","_MtxGrid_Conditional_1_Conditional_2_Template","toolbarTemplate","_MtxGrid_Conditional_1_Conditional_3_Conditional_0_Template","toolbarTitle","_MtxGrid_Conditional_1_Conditional_3_Template","_MtxGrid_Conditional_1_Conditional_5_Template","_onColumnChange","columnMenuButtonText","columnMenuButtonType","columnMenuButtonColor","columnMenuButtonClass","columnMenuButtonIcon","columnHideable","columnHideableChecked","columnSortable","columnPinnable","showColumnMenuHeader","columnMenuHeaderText","columnMenuHeaderTemplate","showColumnMenuFooter","columnMenuFooterText","columnMenuFooterTemplate","columnPinOptions","_MtxGrid_Conditional_1_Template","showColumnMenuButton","_MtxGrid_Conditional_6_Conditional_1_th_1_Conditional_1_Template","_toggleMasterCheckbox","rowSelection","hasValue","_isAllSelected","_MtxGrid_Conditional_6_Conditional_1_th_1_Template","multiSelectable","_MtxGrid_Conditional_6_Conditional_1_td_2_Conditional_1_Template","row_r6","_toggleNormalCheckbox","ctx_r6","index_r8","dataIndex_r9","rowSelectionFormatter","_getIndex","_MtxGrid_Conditional_6_Conditional_1_td_2_Template","hideCheckbox","_MtxGrid_Conditional_6_Conditional_1_td_3_Template","_MtxGrid_Conditional_6_Conditional_1_Template","_MtxGrid_Conditional_6_For_3_th_1_Conditional_3_ng_template_0_Template","_MtxGrid_Conditional_6_For_3_th_1_Conditional_3_Template","_MtxGrid_Conditional_6_For_3_th_1_Conditional_5_Conditional_0_ng_template_0_Template","_MtxGrid_Conditional_6_For_3_th_1_Conditional_5_Conditional_0_Template","field","_MtxGrid_Conditional_6_For_3_th_1_Conditional_5_Conditional_2_Conditional_1_Template","_MtxGrid_Conditional_6_For_3_th_1_Conditional_5_Conditional_2_Conditional_6_Template","_MtxGrid_Conditional_6_For_3_th_1_Conditional_5_Conditional_2_ng_template_7_Template","_MtxGrid_Conditional_6_For_3_th_1_Conditional_5_Conditional_2_Template","tmp_18_0","headerExtraTplBase_r11","sortProp","sortable","disableClear","sortDisableClear","arrowPosition","showExpand","headerExtraTemplate","_MtxGrid_Conditional_6_For_3_th_1_Conditional_5_Template","_MtxGrid_Conditional_6_For_3_th_1_Template","_MtxGrid_Conditional_6_For_3_td_2_Conditional_2_ng_template_0_Template","_MtxGrid_Conditional_6_For_3_td_2_Conditional_2_Template","ctx_r13","row_r13","index_r15","dataIndex_r16","_MtxGrid_Conditional_6_For_3_td_2_Conditional_4_Conditional_0_ng_template_0_Template","_MtxGrid_Conditional_6_For_3_td_2_Conditional_4_Conditional_0_Template","_MtxGrid_Conditional_6_For_3_td_2_Conditional_4_Conditional_2_Conditional_0_ng_template_0_Template","_MtxGrid_Conditional_6_For_3_td_2_Conditional_4_Conditional_2_Conditional_0_Template","_MtxGrid_Conditional_6_For_3_td_2_Conditional_4_Conditional_2_Conditional_1_Conditional_0_Template","_r18","expansionRowStates","_onExpansionChange","_MtxGrid_Conditional_6_For_3_td_2_Conditional_4_Conditional_2_Conditional_1_Template","_r17","_onRowDataChange","emptyValuePlaceholder","_MtxGrid_Conditional_6_For_3_td_2_Conditional_4_Conditional_2_Template","_MtxGrid_Conditional_6_For_3_td_2_Conditional_4_Template","_MtxGrid_Conditional_6_For_3_td_2_Template","_selectCell","cellSelectable","_MtxGrid_Conditional_6_For_3_td_3_Conditional_1_Template","_MtxGrid_Conditional_6_For_3_td_3_Conditional_2_ng_template_0_Template","_MtxGrid_Conditional_6_For_3_td_3_Conditional_2_Template","summaryTemplate","_MtxGrid_Conditional_6_For_3_td_3_Conditional_4_Conditional_0_ng_template_0_Template","_MtxGrid_Conditional_6_For_3_td_3_Conditional_4_Conditional_0_Template","_getColData","_MtxGrid_Conditional_6_For_3_td_3_Conditional_4_Conditional_2_Template","_MtxGrid_Conditional_6_For_3_td_3_Conditional_4_Template","_MtxGrid_Conditional_6_For_3_td_3_Template","_MtxGrid_Conditional_6_For_3_Template","_MtxGrid_Conditional_6_Conditional_4_tr_0_Template","_MtxGrid_Conditional_6_Conditional_4_Template","displayedColumns","_MtxGrid_Conditional_6_Conditional_5_tr_0_Template","_r19","ctx_r19","row_r21","index_r22","dataIndex_r23","_selectRow","ctx_r23","_contextmenu","rowClassFormatter","_MtxGrid_Conditional_6_Conditional_5_Template","_MtxGrid_Conditional_6_Conditional_6_tr_0_Template","_MtxGrid_Conditional_6_Conditional_6_Template","_MtxGrid_Conditional_6_Conditional_7_td_1_ng_template_2_Template","_MtxGrid_Conditional_6_Conditional_7_td_1_Template","row_r25","dataIndex_r26","expansionTemplate","_MtxGrid_Conditional_6_Conditional_7_tr_2_Template","dataIndex_r27","_MtxGrid_Conditional_6_Conditional_7_Template","_MtxGrid_Conditional_6_Template","_onSortChange","rowHover","rowStriped","expandable","sortActive","sortDirection","sortDisabled","sortStart","rowSelectable","hideRowSelectionCheckbox","useContentHeaderRowTemplate","useContentRowTemplate","_whetherShowSummary","_MtxGrid_Conditional_7_Conditional_1_th_1_Conditional_1_Template","_r29","_MtxGrid_Conditional_7_Conditional_1_th_1_Template","_MtxGrid_Conditional_7_Conditional_1_td_2_Conditional_1_Template","_r30","row_r31","ctx_r31","index_r33","dataIndex_r34","_MtxGrid_Conditional_7_Conditional_1_td_2_Template","_MtxGrid_Conditional_7_Conditional_1_td_3_Template","_MtxGrid_Conditional_7_Conditional_1_Template","_MtxGrid_Conditional_7_For_3_th_1_Conditional_3_ng_template_0_Template","_MtxGrid_Conditional_7_For_3_th_1_Conditional_3_Template","col_r35","_MtxGrid_Conditional_7_For_3_th_1_Conditional_5_Conditional_0_ng_template_0_Template","_MtxGrid_Conditional_7_For_3_th_1_Conditional_5_Conditional_0_Template","_MtxGrid_Conditional_7_For_3_th_1_Conditional_5_Conditional_2_Conditional_1_Template","_MtxGrid_Conditional_7_For_3_th_1_Conditional_5_Conditional_2_Conditional_6_Template","_MtxGrid_Conditional_7_For_3_th_1_Conditional_5_Conditional_2_ng_template_7_Template","_MtxGrid_Conditional_7_For_3_th_1_Conditional_5_Conditional_2_Template","_MtxGrid_Conditional_7_For_3_th_1_Conditional_5_Template","_MtxGrid_Conditional_7_For_3_th_1_Template","resizable","minWidth","maxWidth","_MtxGrid_Conditional_7_For_3_td_2_Conditional_2_ng_template_0_Template","_MtxGrid_Conditional_7_For_3_td_2_Conditional_2_Template","ctx_r37","row_r37","index_r39","dataIndex_r40","_MtxGrid_Conditional_7_For_3_td_2_Conditional_4_Conditional_0_ng_template_0_Template","_MtxGrid_Conditional_7_For_3_td_2_Conditional_4_Conditional_0_Template","_MtxGrid_Conditional_7_For_3_td_2_Conditional_4_Conditional_2_Conditional_0_ng_template_0_Template","_MtxGrid_Conditional_7_For_3_td_2_Conditional_4_Conditional_2_Conditional_0_Template","_MtxGrid_Conditional_7_For_3_td_2_Conditional_4_Conditional_2_Conditional_1_Conditional_0_Template","_r42","_MtxGrid_Conditional_7_For_3_td_2_Conditional_4_Conditional_2_Conditional_1_Template","_r41","_MtxGrid_Conditional_7_For_3_td_2_Conditional_4_Conditional_2_Template","_MtxGrid_Conditional_7_For_3_td_2_Conditional_4_Template","_MtxGrid_Conditional_7_For_3_td_2_Template","_r36","_MtxGrid_Conditional_7_For_3_td_3_Conditional_1_Template","_MtxGrid_Conditional_7_For_3_td_3_Conditional_2_ng_template_0_Template","_MtxGrid_Conditional_7_For_3_td_3_Conditional_2_Template","_MtxGrid_Conditional_7_For_3_td_3_Conditional_4_Conditional_0_ng_template_0_Template","_MtxGrid_Conditional_7_For_3_td_3_Conditional_4_Conditional_0_Template","_MtxGrid_Conditional_7_For_3_td_3_Conditional_4_Conditional_2_Template","_MtxGrid_Conditional_7_For_3_td_3_Conditional_4_Template","_MtxGrid_Conditional_7_For_3_td_3_Template","_MtxGrid_Conditional_7_For_3_Template","_MtxGrid_Conditional_7_Conditional_4_tr_0_Template","_MtxGrid_Conditional_7_Conditional_4_Template","_MtxGrid_Conditional_7_Conditional_5_tr_0_Template","_r43","ctx_r43","row_r45","index_r46","dataIndex_r47","ctx_r47","_MtxGrid_Conditional_7_Conditional_5_Template","_MtxGrid_Conditional_7_Conditional_6_tr_0_Template","_MtxGrid_Conditional_7_Conditional_6_Template","_MtxGrid_Conditional_7_Conditional_7_td_1_ng_template_2_Template","_MtxGrid_Conditional_7_Conditional_7_td_1_Template","row_r49","dataIndex_r50","_MtxGrid_Conditional_7_Conditional_7_tr_2_Template","dataIndex_r51","_MtxGrid_Conditional_7_Conditional_7_Template","_MtxGrid_Conditional_7_Template","_r28","_MtxGrid_Conditional_8_Conditional_1_ng_template_0_Template","_MtxGrid_Conditional_8_Conditional_1_Template","noResultTemplate","_MtxGrid_Conditional_8_Conditional_2_Template","noResultText","_MtxGrid_Conditional_8_Template","_MtxGrid_Conditional_9_Conditional_1_ng_template_0_Template","_MtxGrid_Conditional_9_Conditional_1_Template","sidebarTemplate","_MtxGrid_Conditional_9_Template","_MtxGrid_Conditional_11_Conditional_1_ng_template_0_Template","_MtxGrid_Conditional_11_Conditional_1_Template","statusbarTemplate","_MtxGrid_Conditional_11_Template","_MtxGrid_Conditional_13_ng_template_0_Template","_MtxGrid_Conditional_13_Template","paginationTemplate","_MtxGrid_Conditional_14_Template","_r52","_onPage","showPaginator","showFirstLastButtons","pageSizeOptions","hidePageSize","pageDisabled","_MtxGrid_ng_template_15_Conditional_0_ng_template_0_Template","_MtxGrid_ng_template_15_Conditional_0_Template","ctx_r52","col_r55","_MtxGrid_ng_template_15_Conditional_2_Conditional_0_ng_template_0_Template","_MtxGrid_ng_template_15_Conditional_2_Conditional_0_Template","_MtxGrid_ng_template_15_Conditional_2_Template","headerExtraTemplate_r54","_MtxGrid_ng_template_15_Template","TABLE_PROVIDERS","AbstractMatColumnResize","getTableHeight","tableParent","MatColumnResize","_MatColumnResize","columnResizeNotifier","MatColumnResizeOverlayHandle","_MatColumnResizeOverlayHandle","originHeight","topElement","AbstractMatResizable","MatResizable","_MatResizable","hasResizableClass","newValue","i4","IMPORTS","OverlayModule","_MatColumnResizeCommonModule","MatColumnResizeCommonModule","MatColumnResizeModule","_MatColumnResizeModule","MtxGridUtils","_MtxGridUtils","getCellValue","keyArr","tmp","getColData","isEmpty","isContainHTML","test","MtxGridColClassPipe","_MtxGridColClassPipe","MtxGridRowClassPipe","_MtxGridRowClassPipe","join","MtxGridCellActionsPipe","_MtxGridCellActionsPipe","btns","MtxGridCellActionTooltipPipe","_MtxGridCellActionTooltipPipe","btn","tooltip","MtxGridCellActionBadgePipe","_MtxGridCellActionBadgePipe","badge","MtxGridCellActionDisablePipe","_MtxGridCellActionDisablePipe","MtxGridCellSummaryPipe","_MtxGridCellSummaryPipe","utils","summary","MtxGridCell","_MtxGridCell","_utils","_dialog","rowDataChange","rowDataDiffer","_this$rowDataDiffer","_applyChanges","forEachChangedItem","pop","_btn$click","click","_btn$pop","_btn$pop2","_btn$pop3","_btn$pop4","_btn$pop5","_btn$pop6","okColor","okText","_btn$click2","closeColor","closeText","_btn$click3","CurrencyPipe","DatePipe","DecimalPipe","NgTemplateOutlet","PercentPipe","MatFabButton","MatMiniFabButton","MatTooltip","MtxGridColumnMenu","_MtxGridColumnMenu","_buttonText","buttonType","showHeader","showFooter","columnChange","_pinOptions","col","val","MatMenuTrigger","menuPanel","menuTrigger","tmp_2_0","FormsModule","i1$2","MatMenu","MatMenuItem","MatCheckbox","MtxGridExpansionToggle","_MtxGridExpansionToggle","opened","_opened","openedChange","expandableRow","_row","_tplRef","toggleChange","toggle","MtxGridSelectableCell","_MtxGridSelectableCell","ctrlKeyPressed","shiftKeyPressed","cellSelectedChange","ctrlKey","shiftKey","MTX_GRID_DEFAULT_OPTIONS","MtxGrid","_MtxGrid","_hasNoResult","loading","showSummary","_this$_defaultOptions5","_this$_defaultOptions6","_this$_defaultOptions7","_this$_defaultOptions8","_this$_defaultOptions9","_this$_defaultOptions10","_this$_defaultOptions11","_this$_defaultOptions12","_this$_defaultOptions13","_this$_defaultOptions14","_this$_defaultOptions15","_this$_defaultOptions16","_this$_defaultOptions17","_this$_defaultOptions18","_this$_defaultOptions19","_this$_defaultOptions20","_this$_defaultOptions21","_this$_defaultOptions22","_this$_defaultOptions23","_this$_defaultOptions24","_this$_defaultOptions25","_this$_defaultOptions26","_this$_defaultOptions27","_this$_defaultOptions28","_this$_defaultOptions29","_this$_defaultOptions30","_this$_defaultOptions31","_this$_defaultOptions32","_this$_defaultOptions33","_this$_defaultOptions34","_this$_defaultOptions35","_this$_defaultOptions36","_this$_defaultOptions37","_this$_defaultOptions38","_this$_defaultOptions39","_this$_defaultOptions40","_this$_defaultOptions41","_this$_defaultOptions42","_this$_defaultOptions43","_this$_defaultOptions44","_this$_defaultOptions45","_this$_defaultOptions46","_this$_defaultOptions47","_this$_defaultOptions48","_this$_defaultOptions49","_this$_defaultOptions50","_this$_defaultOptions51","_this$_defaultOptions52","_this$_defaultOptions53","_this$_defaultOptions54","_this$_defaultOptions55","_this$_defaultOptions56","_this$_defaultOptions57","_this$_defaultOptions58","_this$_defaultOptions59","_this$_defaultOptions60","_this$_defaultOptions61","_this$_defaultOptions62","_this$_defaultOptions63","_this$_defaultOptions64","_this$_defaultOptions65","_this$_defaultOptions66","_this$_defaultOptions67","_this$_defaultOptions68","_this$_defaultOptions69","_this$_defaultOptions70","_this$_defaultOptions71","_this$_defaultOptions72","_this$_defaultOptions73","_this$_defaultOptions74","_this$_defaultOptions75","_this$_defaultOptions76","_this$_defaultOptions77","_this$_defaultOptions78","_this$_defaultOptions79","_this$_defaultOptions80","_this$_defaultOptions81","_this$_defaultOptions82","_this$_defaultOptions83","columnResizable","pageOnFront","sortOnFront","rowClick","rowContextMenu","expansionChange","SelectionModel","multiSelectionWithClick","disableRowClickSelection","rowSelected","rowSelectedChange","cellSelection","showToolbar","useContentFooterRowTemplate","showSidebar","showStatusbar","_isColumnHide","_this$data","_countPinnedPosition","_this$rowDefs","_this$headerRowDefs","_this$footerRowDefs","headerRowDefs","footerRowDefs","cur","pinnedLeftCols","idx","pinnedRightCols","expansionRef","cellRef","_selectedCell","colValue","cellData","_this$rowSelectionFor","_this$rowSelectionFor2","_this$rowSelectionFor3","_this$rowSelectionFor4","metaKey","_this$rowSelectionFor5","_this$rowSelectionFor6","_this$rowSelectionFor7","_this$rowSelectionFor8","getDisplayedColumnFields","toggleExpansion","Error","_this$tableContainer","tableContainer","_this$tableContainer2","MatPaginator","MatSort","columnMenu","MatSortHeader","animation","trigger","minHeight","visibility","transition","animate","MtxGridModule","_MtxGridModule","MatSortModule","MatPaginatorModule","MatCheckboxModule","MatTooltipModule","MatSelectModule","MatFormFieldModule","MatMenuModule"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./node_modules/@angular/cdk/fesm2022/drag-drop.mjs","./node_modules/rxjs/dist/esm/internal/observable/interval.js","./node_modules/@angular/material/fesm2022/chips.mjs","./node_modules/@angular/material/fesm2022/badge.mjs","./node_modules/@angular/material/fesm2022/progress-bar.mjs","./node_modules/@angular/cdk/fesm2022/table.mjs","./node_modules/@angular/material/fesm2022/table.mjs","./node_modules/rxjs/dist/esm/internal/operators/pairwise.js","./node_modules/@ng-matero/extensions/fesm2022/mtxColumnResize.mjs","./node_modules/@ng-matero/extensions/fesm2022/mtxCore.mjs","./node_modules/@ng-matero/extensions/fesm2022/mtxDialog.mjs","./node_modules/@ng-matero/extensions/fesm2022/mtxGrid.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { signal, Component, ViewEncapsulation, ChangeDetectionStrategy, inject, ApplicationRef, EnvironmentInjector, createComponent, Injectable, Inject, InjectionToken, booleanAttribute, Directive, Optional, SkipSelf, Input, EventEmitter, Injector, afterNextRender, numberAttribute, Self, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { isFakeTouchstartFromScreenReader, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\nimport { coerceElement, coerceNumberProperty, coerceArray } from '@angular/cdk/coercion';\nimport { _getEventTarget, normalizePassiveListenerOptions, _getShadowRoot } from '@angular/cdk/platform';\nimport { Subject, Subscription, interval, animationFrameScheduler, Observable, merge, BehaviorSubject } from 'rxjs';\nimport { takeUntil, map, take, tap, switchMap, startWith } from 'rxjs/operators';\nimport * as i1$1 from '@angular/cdk/bidi';\n\n/** Creates a deep clone of an element. */\nfunction deepCloneNode(node) {\n const clone = node.cloneNode(true);\n const descendantsWithId = clone.querySelectorAll('[id]');\n const nodeName = node.nodeName.toLowerCase();\n // Remove the `id` to avoid having multiple elements with the same id on the page.\n clone.removeAttribute('id');\n for (let i = 0; i < descendantsWithId.length; i++) {\n descendantsWithId[i].removeAttribute('id');\n }\n if (nodeName === 'canvas') {\n transferCanvasData(node, clone);\n }\n else if (nodeName === 'input' || nodeName === 'select' || nodeName === 'textarea') {\n transferInputData(node, clone);\n }\n transferData('canvas', node, clone, transferCanvasData);\n transferData('input, textarea, select', node, clone, transferInputData);\n return clone;\n}\n/** Matches elements between an element and its clone and allows for their data to be cloned. */\nfunction transferData(selector, node, clone, callback) {\n const descendantElements = node.querySelectorAll(selector);\n if (descendantElements.length) {\n const cloneElements = clone.querySelectorAll(selector);\n for (let i = 0; i < descendantElements.length; i++) {\n callback(descendantElements[i], cloneElements[i]);\n }\n }\n}\n// Counter for unique cloned radio button names.\nlet cloneUniqueId = 0;\n/** Transfers the data of one input element to another. */\nfunction transferInputData(source, clone) {\n // Browsers throw an error when assigning the value of a file input programmatically.\n if (clone.type !== 'file') {\n clone.value = source.value;\n }\n // Radio button `name` attributes must be unique for radio button groups\n // otherwise original radio buttons can lose their checked state\n // once the clone is inserted in the DOM.\n if (clone.type === 'radio' && clone.name) {\n clone.name = `mat-clone-${clone.name}-${cloneUniqueId++}`;\n }\n}\n/** Transfers the data of one canvas element to another. */\nfunction transferCanvasData(source, clone) {\n const context = clone.getContext('2d');\n if (context) {\n // In some cases `drawImage` can throw (e.g. if the canvas size is 0x0).\n // We can't do much about it so just ignore the error.\n try {\n context.drawImage(source, 0, 0);\n }\n catch { }\n }\n}\n\n/** Gets a mutable version of an element's bounding `DOMRect`. */\nfunction getMutableClientRect(element) {\n const rect = element.getBoundingClientRect();\n // We need to clone the `clientRect` here, because all the values on it are readonly\n // and we need to be able to update them. Also we can't use a spread here, because\n // the values on a `DOMRect` aren't own properties. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#Notes\n return {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height,\n x: rect.x,\n y: rect.y,\n };\n}\n/**\n * Checks whether some coordinates are within a `DOMRect`.\n * @param clientRect DOMRect that is being checked.\n * @param x Coordinates along the X axis.\n * @param y Coordinates along the Y axis.\n */\nfunction isInsideClientRect(clientRect, x, y) {\n const { top, bottom, left, right } = clientRect;\n return y >= top && y <= bottom && x >= left && x <= right;\n}\n/**\n * Updates the top/left positions of a `DOMRect`, as well as their bottom/right counterparts.\n * @param domRect `DOMRect` that should be updated.\n * @param top Amount to add to the `top` position.\n * @param left Amount to add to the `left` position.\n */\nfunction adjustDomRect(domRect, top, left) {\n domRect.top += top;\n domRect.bottom = domRect.top + domRect.height;\n domRect.left += left;\n domRect.right = domRect.left + domRect.width;\n}\n/**\n * Checks whether the pointer coordinates are close to a DOMRect.\n * @param rect DOMRect to check against.\n * @param threshold Threshold around the DOMRect.\n * @param pointerX Coordinates along the X axis.\n * @param pointerY Coordinates along the Y axis.\n */\nfunction isPointerNearDomRect(rect, threshold, pointerX, pointerY) {\n const { top, right, bottom, left, width, height } = rect;\n const xThreshold = width * threshold;\n const yThreshold = height * threshold;\n return (pointerY > top - yThreshold &&\n pointerY < bottom + yThreshold &&\n pointerX > left - xThreshold &&\n pointerX < right + xThreshold);\n}\n\n/** Keeps track of the scroll position and dimensions of the parents of an element. */\nclass ParentPositionTracker {\n constructor(_document) {\n this._document = _document;\n /** Cached positions of the scrollable parent elements. */\n this.positions = new Map();\n }\n /** Clears the cached positions. */\n clear() {\n this.positions.clear();\n }\n /** Caches the positions. Should be called at the beginning of a drag sequence. */\n cache(elements) {\n this.clear();\n this.positions.set(this._document, {\n scrollPosition: this.getViewportScrollPosition(),\n });\n elements.forEach(element => {\n this.positions.set(element, {\n scrollPosition: { top: element.scrollTop, left: element.scrollLeft },\n clientRect: getMutableClientRect(element),\n });\n });\n }\n /** Handles scrolling while a drag is taking place. */\n handleScroll(event) {\n const target = _getEventTarget(event);\n const cachedPosition = this.positions.get(target);\n if (!cachedPosition) {\n return null;\n }\n const scrollPosition = cachedPosition.scrollPosition;\n let newTop;\n let newLeft;\n if (target === this._document) {\n const viewportScrollPosition = this.getViewportScrollPosition();\n newTop = viewportScrollPosition.top;\n newLeft = viewportScrollPosition.left;\n }\n else {\n newTop = target.scrollTop;\n newLeft = target.scrollLeft;\n }\n const topDifference = scrollPosition.top - newTop;\n const leftDifference = scrollPosition.left - newLeft;\n // Go through and update the cached positions of the scroll\n // parents that are inside the element that was scrolled.\n this.positions.forEach((position, node) => {\n if (position.clientRect && target !== node && target.contains(node)) {\n adjustDomRect(position.clientRect, topDifference, leftDifference);\n }\n });\n scrollPosition.top = newTop;\n scrollPosition.left = newLeft;\n return { top: topDifference, left: leftDifference };\n }\n /**\n * Gets the scroll position of the viewport. Note that we use the scrollX and scrollY directly,\n * instead of going through the `ViewportRuler`, because the first value the ruler looks at is\n * the top/left offset of the `document.documentElement` which works for most cases, but breaks\n * if the element is offset by something like the `BlockScrollStrategy`.\n */\n getViewportScrollPosition() {\n return { top: window.scrollY, left: window.scrollX };\n }\n}\n\n/**\n * Gets the root HTML element of an embedded view.\n * If the root is not an HTML element it gets wrapped in one.\n */\nfunction getRootNode(viewRef, _document) {\n const rootNodes = viewRef.rootNodes;\n if (rootNodes.length === 1 && rootNodes[0].nodeType === _document.ELEMENT_NODE) {\n return rootNodes[0];\n }\n const wrapper = _document.createElement('div');\n rootNodes.forEach(node => wrapper.appendChild(node));\n return wrapper;\n}\n\n/**\n * Shallow-extends a stylesheet object with another stylesheet-like object.\n * Note that the keys in `source` have to be dash-cased.\n * @docs-private\n */\nfunction extendStyles(dest, source, importantProperties) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n const value = source[key];\n if (value) {\n dest.setProperty(key, value, importantProperties?.has(key) ? 'important' : '');\n }\n else {\n dest.removeProperty(key);\n }\n }\n }\n return dest;\n}\n/**\n * Toggles whether the native drag interactions should be enabled for an element.\n * @param element Element on which to toggle the drag interactions.\n * @param enable Whether the drag interactions should be enabled.\n * @docs-private\n */\nfunction toggleNativeDragInteractions(element, enable) {\n const userSelect = enable ? '' : 'none';\n extendStyles(element.style, {\n 'touch-action': enable ? '' : 'none',\n '-webkit-user-drag': enable ? '' : 'none',\n '-webkit-tap-highlight-color': enable ? '' : 'transparent',\n 'user-select': userSelect,\n '-ms-user-select': userSelect,\n '-webkit-user-select': userSelect,\n '-moz-user-select': userSelect,\n });\n}\n/**\n * Toggles whether an element is visible while preserving its dimensions.\n * @param element Element whose visibility to toggle\n * @param enable Whether the element should be visible.\n * @param importantProperties Properties to be set as `!important`.\n * @docs-private\n */\nfunction toggleVisibility(element, enable, importantProperties) {\n extendStyles(element.style, {\n position: enable ? '' : 'fixed',\n top: enable ? '' : '0',\n opacity: enable ? '' : '0',\n left: enable ? '' : '-999em',\n }, importantProperties);\n}\n/**\n * Combines a transform string with an optional other transform\n * that exited before the base transform was applied.\n */\nfunction combineTransforms(transform, initialTransform) {\n return initialTransform && initialTransform != 'none'\n ? transform + ' ' + initialTransform\n : transform;\n}\n/**\n * Matches the target element's size to the source's size.\n * @param target Element that needs to be resized.\n * @param sourceRect Dimensions of the source element.\n */\nfunction matchElementSize(target, sourceRect) {\n target.style.width = `${sourceRect.width}px`;\n target.style.height = `${sourceRect.height}px`;\n target.style.transform = getTransform(sourceRect.left, sourceRect.top);\n}\n/**\n * Gets a 3d `transform` that can be applied to an element.\n * @param x Desired position of the element along the X axis.\n * @param y Desired position of the element along the Y axis.\n */\nfunction getTransform(x, y) {\n // Round the transforms since some browsers will\n // blur the elements for sub-pixel transforms.\n return `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\n}\n\n/** Parses a CSS time value to milliseconds. */\nfunction parseCssTimeUnitsToMs(value) {\n // Some browsers will return it in seconds, whereas others will return milliseconds.\n const multiplier = value.toLowerCase().indexOf('ms') > -1 ? 1 : 1000;\n return parseFloat(value) * multiplier;\n}\n/** Gets the transform transition duration, including the delay, of an element in milliseconds. */\nfunction getTransformTransitionDurationInMs(element) {\n const computedStyle = getComputedStyle(element);\n const transitionedProperties = parseCssPropertyValue(computedStyle, 'transition-property');\n const property = transitionedProperties.find(prop => prop === 'transform' || prop === 'all');\n // If there's no transition for `all` or `transform`, we shouldn't do anything.\n if (!property) {\n return 0;\n }\n // Get the index of the property that we're interested in and match\n // it up to the same index in `transition-delay` and `transition-duration`.\n const propertyIndex = transitionedProperties.indexOf(property);\n const rawDurations = parseCssPropertyValue(computedStyle, 'transition-duration');\n const rawDelays = parseCssPropertyValue(computedStyle, 'transition-delay');\n return (parseCssTimeUnitsToMs(rawDurations[propertyIndex]) +\n parseCssTimeUnitsToMs(rawDelays[propertyIndex]));\n}\n/** Parses out multiple values from a computed style into an array. */\nfunction parseCssPropertyValue(computedStyle, name) {\n const value = computedStyle.getPropertyValue(name);\n return value.split(',').map(part => part.trim());\n}\n\n/** Inline styles to be set as `!important` while dragging. */\nconst importantProperties = new Set([\n // Needs to be important, because some `mat-table` sets `position: sticky !important`. See #22781.\n 'position',\n]);\nclass PreviewRef {\n get element() {\n return this._preview;\n }\n constructor(_document, _rootElement, _direction, _initialDomRect, _previewTemplate, _previewClass, _pickupPositionOnPage, _initialTransform, _zIndex) {\n this._document = _document;\n this._rootElement = _rootElement;\n this._direction = _direction;\n this._initialDomRect = _initialDomRect;\n this._previewTemplate = _previewTemplate;\n this._previewClass = _previewClass;\n this._pickupPositionOnPage = _pickupPositionOnPage;\n this._initialTransform = _initialTransform;\n this._zIndex = _zIndex;\n }\n attach(parent) {\n this._preview = this._createPreview();\n parent.appendChild(this._preview);\n // The null check is necessary for browsers that don't support the popover API.\n // Note that we use a string access for compatibility with Closure.\n if (supportsPopover(this._preview)) {\n this._preview['showPopover']();\n }\n }\n destroy() {\n this._preview.remove();\n this._previewEmbeddedView?.destroy();\n this._preview = this._previewEmbeddedView = null;\n }\n setTransform(value) {\n this._preview.style.transform = value;\n }\n getBoundingClientRect() {\n return this._preview.getBoundingClientRect();\n }\n addClass(className) {\n this._preview.classList.add(className);\n }\n getTransitionDuration() {\n return getTransformTransitionDurationInMs(this._preview);\n }\n addEventListener(name, handler) {\n this._preview.addEventListener(name, handler);\n }\n removeEventListener(name, handler) {\n this._preview.removeEventListener(name, handler);\n }\n _createPreview() {\n const previewConfig = this._previewTemplate;\n const previewClass = this._previewClass;\n const previewTemplate = previewConfig ? previewConfig.template : null;\n let preview;\n if (previewTemplate && previewConfig) {\n // Measure the element before we've inserted the preview\n // since the insertion could throw off the measurement.\n const rootRect = previewConfig.matchSize ? this._initialDomRect : null;\n const viewRef = previewConfig.viewContainer.createEmbeddedView(previewTemplate, previewConfig.context);\n viewRef.detectChanges();\n preview = getRootNode(viewRef, this._document);\n this._previewEmbeddedView = viewRef;\n if (previewConfig.matchSize) {\n matchElementSize(preview, rootRect);\n }\n else {\n preview.style.transform = getTransform(this._pickupPositionOnPage.x, this._pickupPositionOnPage.y);\n }\n }\n else {\n preview = deepCloneNode(this._rootElement);\n matchElementSize(preview, this._initialDomRect);\n if (this._initialTransform) {\n preview.style.transform = this._initialTransform;\n }\n }\n extendStyles(preview.style, {\n // It's important that we disable the pointer events on the preview, because\n // it can throw off the `document.elementFromPoint` calls in the `CdkDropList`.\n 'pointer-events': 'none',\n // If the preview has a margin, it can throw off our positioning so we reset it. The reset\n // value for `margin-right` needs to be `auto` when opened as a popover, because our\n // positioning is always top/left based, but native popover seems to position itself\n // to the top/right if `` or `
` have `dir=\"rtl\"` (see #29604). Setting it\n // to `auto` pushed it to the top/left corner in RTL and is a noop in LTR.\n 'margin': supportsPopover(preview) ? '0 auto 0 0' : '0',\n 'position': 'fixed',\n 'top': '0',\n 'left': '0',\n 'z-index': this._zIndex + '',\n }, importantProperties);\n toggleNativeDragInteractions(preview, false);\n preview.classList.add('cdk-drag-preview');\n preview.setAttribute('popover', 'manual');\n preview.setAttribute('dir', this._direction);\n if (previewClass) {\n if (Array.isArray(previewClass)) {\n previewClass.forEach(className => preview.classList.add(className));\n }\n else {\n preview.classList.add(previewClass);\n }\n }\n return preview;\n }\n}\n/** Checks whether a specific element supports the popover API. */\nfunction supportsPopover(element) {\n return 'showPopover' in element;\n}\n\n/** Options that can be used to bind a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });\n/** Options that can be used to bind an active event listener. */\nconst activeEventListenerOptions = normalizePassiveListenerOptions({ passive: false });\n/** Event options that can be used to bind an active, capturing event. */\nconst activeCapturingEventOptions$1 = normalizePassiveListenerOptions({\n passive: false,\n capture: true,\n});\n/**\n * Time in milliseconds for which to ignore mouse events, after\n * receiving a touch event. Used to avoid doing double work for\n * touch devices where the browser fires fake mouse events, in\n * addition to touch events.\n */\nconst MOUSE_EVENT_IGNORE_TIME = 800;\n/** Inline styles to be set as `!important` while dragging. */\nconst dragImportantProperties = new Set([\n // Needs to be important, because some `mat-table` sets `position: sticky !important`. See #22781.\n 'position',\n]);\n/**\n * Reference to a draggable item. Used to manipulate or dispose of the item.\n */\nclass DragRef {\n /** Whether starting to drag this element is disabled. */\n get disabled() {\n return this._disabled || !!(this._dropContainer && this._dropContainer.disabled);\n }\n set disabled(value) {\n if (value !== this._disabled) {\n this._disabled = value;\n this._toggleNativeDragInteractions();\n this._handles.forEach(handle => toggleNativeDragInteractions(handle, value));\n }\n }\n constructor(element, _config, _document, _ngZone, _viewportRuler, _dragDropRegistry) {\n this._config = _config;\n this._document = _document;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._dragDropRegistry = _dragDropRegistry;\n /**\n * CSS `transform` applied to the element when it isn't being dragged. We need a\n * passive transform in order for the dragged element to retain its new position\n * after the user has stopped dragging and because we need to know the relative\n * position in case they start dragging again. This corresponds to `element.style.transform`.\n */\n this._passiveTransform = { x: 0, y: 0 };\n /** CSS `transform` that is applied to the element while it's being dragged. */\n this._activeTransform = { x: 0, y: 0 };\n /**\n * Whether the dragging sequence has been started. Doesn't\n * necessarily mean that the element has been moved.\n */\n this._hasStartedDragging = signal(false);\n /** Emits when the item is being moved. */\n this._moveEvents = new Subject();\n /** Subscription to pointer movement events. */\n this._pointerMoveSubscription = Subscription.EMPTY;\n /** Subscription to the event that is dispatched when the user lifts their pointer. */\n this._pointerUpSubscription = Subscription.EMPTY;\n /** Subscription to the viewport being scrolled. */\n this._scrollSubscription = Subscription.EMPTY;\n /** Subscription to the viewport being resized. */\n this._resizeSubscription = Subscription.EMPTY;\n /** Cached reference to the boundary element. */\n this._boundaryElement = null;\n /** Whether the native dragging interactions have been enabled on the root element. */\n this._nativeInteractionsEnabled = true;\n /** Elements that can be used to drag the draggable item. */\n this._handles = [];\n /** Registered handles that are currently disabled. */\n this._disabledHandles = new Set();\n /** Layout direction of the item. */\n this._direction = 'ltr';\n /**\n * Amount of milliseconds to wait after the user has put their\n * pointer down before starting to drag the element.\n */\n this.dragStartDelay = 0;\n /**\n * If the parent of the dragged element has a `scale` transform, it can throw off the\n * positioning when the user starts dragging. Use this input to notify the CDK of the scale.\n */\n this.scale = 1;\n this._disabled = false;\n /** Emits as the drag sequence is being prepared. */\n this.beforeStarted = new Subject();\n /** Emits when the user starts dragging the item. */\n this.started = new Subject();\n /** Emits when the user has released a drag item, before any animations have started. */\n this.released = new Subject();\n /** Emits when the user stops dragging an item in the container. */\n this.ended = new Subject();\n /** Emits when the user has moved the item into a new container. */\n this.entered = new Subject();\n /** Emits when the user removes the item its container by dragging it into another container. */\n this.exited = new Subject();\n /** Emits when the user drops the item inside a container. */\n this.dropped = new Subject();\n /**\n * Emits as the user is dragging the item. Use with caution,\n * because this event will fire for every pixel that the user has dragged.\n */\n this.moved = this._moveEvents;\n /** Handler for the `mousedown`/`touchstart` events. */\n this._pointerDown = (event) => {\n this.beforeStarted.next();\n // Delegate the event based on whether it started from a handle or the element itself.\n if (this._handles.length) {\n const targetHandle = this._getTargetHandle(event);\n if (targetHandle && !this._disabledHandles.has(targetHandle) && !this.disabled) {\n this._initializeDragSequence(targetHandle, event);\n }\n }\n else if (!this.disabled) {\n this._initializeDragSequence(this._rootElement, event);\n }\n };\n /** Handler that is invoked when the user moves their pointer after they've initiated a drag. */\n this._pointerMove = (event) => {\n const pointerPosition = this._getPointerPositionOnPage(event);\n if (!this._hasStartedDragging()) {\n const distanceX = Math.abs(pointerPosition.x - this._pickupPositionOnPage.x);\n const distanceY = Math.abs(pointerPosition.y - this._pickupPositionOnPage.y);\n const isOverThreshold = distanceX + distanceY >= this._config.dragStartThreshold;\n // Only start dragging after the user has moved more than the minimum distance in either\n // direction. Note that this is preferable over doing something like `skip(minimumDistance)`\n // in the `pointerMove` subscription, because we're not guaranteed to have one move event\n // per pixel of movement (e.g. if the user moves their pointer quickly).\n if (isOverThreshold) {\n const isDelayElapsed = Date.now() >= this._dragStartTime + this._getDragStartDelay(event);\n const container = this._dropContainer;\n if (!isDelayElapsed) {\n this._endDragSequence(event);\n return;\n }\n // Prevent other drag sequences from starting while something in the container is still\n // being dragged. This can happen while we're waiting for the drop animation to finish\n // and can cause errors, because some elements might still be moving around.\n if (!container || (!container.isDragging() && !container.isReceiving())) {\n // Prevent the default action as soon as the dragging sequence is considered as\n // \"started\" since waiting for the next event can allow the device to begin scrolling.\n if (event.cancelable) {\n event.preventDefault();\n }\n this._hasStartedDragging.set(true);\n this._ngZone.run(() => this._startDragSequence(event));\n }\n }\n return;\n }\n // We prevent the default action down here so that we know that dragging has started. This is\n // important for touch devices where doing this too early can unnecessarily block scrolling,\n // if there's a dragging delay.\n if (event.cancelable) {\n event.preventDefault();\n }\n const constrainedPointerPosition = this._getConstrainedPointerPosition(pointerPosition);\n this._hasMoved = true;\n this._lastKnownPointerPosition = pointerPosition;\n this._updatePointerDirectionDelta(constrainedPointerPosition);\n if (this._dropContainer) {\n this._updateActiveDropContainer(constrainedPointerPosition, pointerPosition);\n }\n else {\n // If there's a position constraint function, we want the element's top/left to be at the\n // specific position on the page. Use the initial position as a reference if that's the case.\n const offset = this.constrainPosition ? this._initialDomRect : this._pickupPositionOnPage;\n const activeTransform = this._activeTransform;\n activeTransform.x = constrainedPointerPosition.x - offset.x + this._passiveTransform.x;\n activeTransform.y = constrainedPointerPosition.y - offset.y + this._passiveTransform.y;\n this._applyRootElementTransform(activeTransform.x, activeTransform.y);\n }\n // Since this event gets fired for every pixel while dragging, we only\n // want to fire it if the consumer opted into it. Also we have to\n // re-enter the zone because we run all of the events on the outside.\n if (this._moveEvents.observers.length) {\n this._ngZone.run(() => {\n this._moveEvents.next({\n source: this,\n pointerPosition: constrainedPointerPosition,\n event,\n distance: this._getDragDistance(constrainedPointerPosition),\n delta: this._pointerDirectionDelta,\n });\n });\n }\n };\n /** Handler that is invoked when the user lifts their pointer up, after initiating a drag. */\n this._pointerUp = (event) => {\n this._endDragSequence(event);\n };\n /** Handles a native `dragstart` event. */\n this._nativeDragStart = (event) => {\n if (this._handles.length) {\n const targetHandle = this._getTargetHandle(event);\n if (targetHandle && !this._disabledHandles.has(targetHandle) && !this.disabled) {\n event.preventDefault();\n }\n }\n else if (!this.disabled) {\n // Usually this isn't necessary since the we prevent the default action in `pointerDown`,\n // but some cases like dragging of links can slip through (see #24403).\n event.preventDefault();\n }\n };\n this.withRootElement(element).withParent(_config.parentDragRef || null);\n this._parentPositions = new ParentPositionTracker(_document);\n _dragDropRegistry.registerDragItem(this);\n }\n /**\n * Returns the element that is being used as a placeholder\n * while the current element is being dragged.\n */\n getPlaceholderElement() {\n return this._placeholder;\n }\n /** Returns the root draggable element. */\n getRootElement() {\n return this._rootElement;\n }\n /**\n * Gets the currently-visible element that represents the drag item.\n * While dragging this is the placeholder, otherwise it's the root element.\n */\n getVisibleElement() {\n return this.isDragging() ? this.getPlaceholderElement() : this.getRootElement();\n }\n /** Registers the handles that can be used to drag the element. */\n withHandles(handles) {\n this._handles = handles.map(handle => coerceElement(handle));\n this._handles.forEach(handle => toggleNativeDragInteractions(handle, this.disabled));\n this._toggleNativeDragInteractions();\n // Delete any lingering disabled handles that may have been destroyed. Note that we re-create\n // the set, rather than iterate over it and filter out the destroyed handles, because while\n // the ES spec allows for sets to be modified while they're being iterated over, some polyfills\n // use an array internally which may throw an error.\n const disabledHandles = new Set();\n this._disabledHandles.forEach(handle => {\n if (this._handles.indexOf(handle) > -1) {\n disabledHandles.add(handle);\n }\n });\n this._disabledHandles = disabledHandles;\n return this;\n }\n /**\n * Registers the template that should be used for the drag preview.\n * @param template Template that from which to stamp out the preview.\n */\n withPreviewTemplate(template) {\n this._previewTemplate = template;\n return this;\n }\n /**\n * Registers the template that should be used for the drag placeholder.\n * @param template Template that from which to stamp out the placeholder.\n */\n withPlaceholderTemplate(template) {\n this._placeholderTemplate = template;\n return this;\n }\n /**\n * Sets an alternate drag root element. The root element is the element that will be moved as\n * the user is dragging. Passing an alternate root element is useful when trying to enable\n * dragging on an element that you might not have access to.\n */\n withRootElement(rootElement) {\n const element = coerceElement(rootElement);\n if (element !== this._rootElement) {\n if (this._rootElement) {\n this._removeRootElementListeners(this._rootElement);\n }\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('mousedown', this._pointerDown, activeEventListenerOptions);\n element.addEventListener('touchstart', this._pointerDown, passiveEventListenerOptions);\n element.addEventListener('dragstart', this._nativeDragStart, activeEventListenerOptions);\n });\n this._initialTransform = undefined;\n this._rootElement = element;\n }\n if (typeof SVGElement !== 'undefined' && this._rootElement instanceof SVGElement) {\n this._ownerSVGElement = this._rootElement.ownerSVGElement;\n }\n return this;\n }\n /**\n * Element to which the draggable's position will be constrained.\n */\n withBoundaryElement(boundaryElement) {\n this._boundaryElement = boundaryElement ? coerceElement(boundaryElement) : null;\n this._resizeSubscription.unsubscribe();\n if (boundaryElement) {\n this._resizeSubscription = this._viewportRuler\n .change(10)\n .subscribe(() => this._containInsideBoundaryOnResize());\n }\n return this;\n }\n /** Sets the parent ref that the ref is nested in. */\n withParent(parent) {\n this._parentDragRef = parent;\n return this;\n }\n /** Removes the dragging functionality from the DOM element. */\n dispose() {\n this._removeRootElementListeners(this._rootElement);\n // Do this check before removing from the registry since it'll\n // stop being considered as dragged once it is removed.\n if (this.isDragging()) {\n // Since we move out the element to the end of the body while it's being\n // dragged, we have to make sure that it's removed if it gets destroyed.\n this._rootElement?.remove();\n }\n this._anchor?.remove();\n this._destroyPreview();\n this._destroyPlaceholder();\n this._dragDropRegistry.removeDragItem(this);\n this._removeListeners();\n this.beforeStarted.complete();\n this.started.complete();\n this.released.complete();\n this.ended.complete();\n this.entered.complete();\n this.exited.complete();\n this.dropped.complete();\n this._moveEvents.complete();\n this._handles = [];\n this._disabledHandles.clear();\n this._dropContainer = undefined;\n this._resizeSubscription.unsubscribe();\n this._parentPositions.clear();\n this._boundaryElement =\n this._rootElement =\n this._ownerSVGElement =\n this._placeholderTemplate =\n this._previewTemplate =\n this._anchor =\n this._parentDragRef =\n null;\n }\n /** Checks whether the element is currently being dragged. */\n isDragging() {\n return this._hasStartedDragging() && this._dragDropRegistry.isDragging(this);\n }\n /** Resets a standalone drag item to its initial position. */\n reset() {\n this._rootElement.style.transform = this._initialTransform || '';\n this._activeTransform = { x: 0, y: 0 };\n this._passiveTransform = { x: 0, y: 0 };\n }\n /**\n * Sets a handle as disabled. While a handle is disabled, it'll capture and interrupt dragging.\n * @param handle Handle element that should be disabled.\n */\n disableHandle(handle) {\n if (!this._disabledHandles.has(handle) && this._handles.indexOf(handle) > -1) {\n this._disabledHandles.add(handle);\n toggleNativeDragInteractions(handle, true);\n }\n }\n /**\n * Enables a handle, if it has been disabled.\n * @param handle Handle element to be enabled.\n */\n enableHandle(handle) {\n if (this._disabledHandles.has(handle)) {\n this._disabledHandles.delete(handle);\n toggleNativeDragInteractions(handle, this.disabled);\n }\n }\n /** Sets the layout direction of the draggable item. */\n withDirection(direction) {\n this._direction = direction;\n return this;\n }\n /** Sets the container that the item is part of. */\n _withDropContainer(container) {\n this._dropContainer = container;\n }\n /**\n * Gets the current position in pixels the draggable outside of a drop container.\n */\n getFreeDragPosition() {\n const position = this.isDragging() ? this._activeTransform : this._passiveTransform;\n return { x: position.x, y: position.y };\n }\n /**\n * Sets the current position in pixels the draggable outside of a drop container.\n * @param value New position to be set.\n */\n setFreeDragPosition(value) {\n this._activeTransform = { x: 0, y: 0 };\n this._passiveTransform.x = value.x;\n this._passiveTransform.y = value.y;\n if (!this._dropContainer) {\n this._applyRootElementTransform(value.x, value.y);\n }\n return this;\n }\n /**\n * Sets the container into which to insert the preview element.\n * @param value Container into which to insert the preview.\n */\n withPreviewContainer(value) {\n this._previewContainer = value;\n return this;\n }\n /** Updates the item's sort order based on the last-known pointer position. */\n _sortFromLastPointerPosition() {\n const position = this._lastKnownPointerPosition;\n if (position && this._dropContainer) {\n this._updateActiveDropContainer(this._getConstrainedPointerPosition(position), position);\n }\n }\n /** Unsubscribes from the global subscriptions. */\n _removeListeners() {\n this._pointerMoveSubscription.unsubscribe();\n this._pointerUpSubscription.unsubscribe();\n this._scrollSubscription.unsubscribe();\n this._getShadowRoot()?.removeEventListener('selectstart', shadowDomSelectStart, activeCapturingEventOptions$1);\n }\n /** Destroys the preview element and its ViewRef. */\n _destroyPreview() {\n this._preview?.destroy();\n this._preview = null;\n }\n /** Destroys the placeholder element and its ViewRef. */\n _destroyPlaceholder() {\n this._placeholder?.remove();\n this._placeholderRef?.destroy();\n this._placeholder = this._placeholderRef = null;\n }\n /**\n * Clears subscriptions and stops the dragging sequence.\n * @param event Browser event object that ended the sequence.\n */\n _endDragSequence(event) {\n // Note that here we use `isDragging` from the service, rather than from `this`.\n // The difference is that the one from the service reflects whether a dragging sequence\n // has been initiated, whereas the one on `this` includes whether the user has passed\n // the minimum dragging threshold.\n if (!this._dragDropRegistry.isDragging(this)) {\n return;\n }\n this._removeListeners();\n this._dragDropRegistry.stopDragging(this);\n this._toggleNativeDragInteractions();\n if (this._handles) {\n this._rootElement.style.webkitTapHighlightColor =\n this._rootElementTapHighlight;\n }\n if (!this._hasStartedDragging()) {\n return;\n }\n this.released.next({ source: this, event });\n if (this._dropContainer) {\n // Stop scrolling immediately, instead of waiting for the animation to finish.\n this._dropContainer._stopScrolling();\n this._animatePreviewToPlaceholder().then(() => {\n this._cleanupDragArtifacts(event);\n this._cleanupCachedDimensions();\n this._dragDropRegistry.stopDragging(this);\n });\n }\n else {\n // Convert the active transform into a passive one. This means that next time\n // the user starts dragging the item, its position will be calculated relatively\n // to the new passive transform.\n this._passiveTransform.x = this._activeTransform.x;\n const pointerPosition = this._getPointerPositionOnPage(event);\n this._passiveTransform.y = this._activeTransform.y;\n this._ngZone.run(() => {\n this.ended.next({\n source: this,\n distance: this._getDragDistance(pointerPosition),\n dropPoint: pointerPosition,\n event,\n });\n });\n this._cleanupCachedDimensions();\n this._dragDropRegistry.stopDragging(this);\n }\n }\n /** Starts the dragging sequence. */\n _startDragSequence(event) {\n if (isTouchEvent(event)) {\n this._lastTouchEventTime = Date.now();\n }\n this._toggleNativeDragInteractions();\n // Needs to happen before the root element is moved.\n const shadowRoot = this._getShadowRoot();\n const dropContainer = this._dropContainer;\n if (shadowRoot) {\n // In some browsers the global `selectstart` that we maintain in the `DragDropRegistry`\n // doesn't cross the shadow boundary so we have to prevent it at the shadow root (see #28792).\n this._ngZone.runOutsideAngular(() => {\n shadowRoot.addEventListener('selectstart', shadowDomSelectStart, activeCapturingEventOptions$1);\n });\n }\n if (dropContainer) {\n const element = this._rootElement;\n const parent = element.parentNode;\n const placeholder = (this._placeholder = this._createPlaceholderElement());\n const anchor = (this._anchor =\n this._anchor ||\n this._document.createComment(typeof ngDevMode === 'undefined' || ngDevMode ? 'cdk-drag-anchor' : ''));\n // Insert an anchor node so that we can restore the element's position in the DOM.\n parent.insertBefore(anchor, element);\n // There's no risk of transforms stacking when inside a drop container so\n // we can keep the initial transform up to date any time dragging starts.\n this._initialTransform = element.style.transform || '';\n // Create the preview after the initial transform has\n // been cached, because it can be affected by the transform.\n this._preview = new PreviewRef(this._document, this._rootElement, this._direction, this._initialDomRect, this._previewTemplate || null, this.previewClass || null, this._pickupPositionOnPage, this._initialTransform, this._config.zIndex || 1000);\n this._preview.attach(this._getPreviewInsertionPoint(parent, shadowRoot));\n // We move the element out at the end of the body and we make it hidden, because keeping it in\n // place will throw off the consumer's `:last-child` selectors. We can't remove the element\n // from the DOM completely, because iOS will stop firing all subsequent events in the chain.\n toggleVisibility(element, false, dragImportantProperties);\n this._document.body.appendChild(parent.replaceChild(placeholder, element));\n this.started.next({ source: this, event }); // Emit before notifying the container.\n dropContainer.start();\n this._initialContainer = dropContainer;\n this._initialIndex = dropContainer.getItemIndex(this);\n }\n else {\n this.started.next({ source: this, event });\n this._initialContainer = this._initialIndex = undefined;\n }\n // Important to run after we've called `start` on the parent container\n // so that it has had time to resolve its scrollable parents.\n this._parentPositions.cache(dropContainer ? dropContainer.getScrollableParents() : []);\n }\n /**\n * Sets up the different variables and subscriptions\n * that will be necessary for the dragging sequence.\n * @param referenceElement Element that started the drag sequence.\n * @param event Browser event object that started the sequence.\n */\n _initializeDragSequence(referenceElement, event) {\n // Stop propagation if the item is inside another\n // draggable so we don't start multiple drag sequences.\n if (this._parentDragRef) {\n event.stopPropagation();\n }\n const isDragging = this.isDragging();\n const isTouchSequence = isTouchEvent(event);\n const isAuxiliaryMouseButton = !isTouchSequence && event.button !== 0;\n const rootElement = this._rootElement;\n const target = _getEventTarget(event);\n const isSyntheticEvent = !isTouchSequence &&\n this._lastTouchEventTime &&\n this._lastTouchEventTime + MOUSE_EVENT_IGNORE_TIME > Date.now();\n const isFakeEvent = isTouchSequence\n ? isFakeTouchstartFromScreenReader(event)\n : isFakeMousedownFromScreenReader(event);\n // If the event started from an element with the native HTML drag&drop, it'll interfere\n // with our own dragging (e.g. `img` tags do it by default). Prevent the default action\n // to stop it from happening. Note that preventing on `dragstart` also seems to work, but\n // it's flaky and it fails if the user drags it away quickly. Also note that we only want\n // to do this for `mousedown` since doing the same for `touchstart` will stop any `click`\n // events from firing on touch devices.\n if (target && target.draggable && event.type === 'mousedown') {\n event.preventDefault();\n }\n // Abort if the user is already dragging or is using a mouse button other than the primary one.\n if (isDragging || isAuxiliaryMouseButton || isSyntheticEvent || isFakeEvent) {\n return;\n }\n // If we've got handles, we need to disable the tap highlight on the entire root element,\n // otherwise iOS will still add it, even though all the drag interactions on the handle\n // are disabled.\n if (this._handles.length) {\n const rootStyles = rootElement.style;\n this._rootElementTapHighlight = rootStyles.webkitTapHighlightColor || '';\n rootStyles.webkitTapHighlightColor = 'transparent';\n }\n this._hasMoved = false;\n this._hasStartedDragging.set(this._hasMoved);\n // Avoid multiple subscriptions and memory leaks when multi touch\n // (isDragging check above isn't enough because of possible temporal and/or dimensional delays)\n this._removeListeners();\n this._initialDomRect = this._rootElement.getBoundingClientRect();\n this._pointerMoveSubscription = this._dragDropRegistry.pointerMove.subscribe(this._pointerMove);\n this._pointerUpSubscription = this._dragDropRegistry.pointerUp.subscribe(this._pointerUp);\n this._scrollSubscription = this._dragDropRegistry\n .scrolled(this._getShadowRoot())\n .subscribe(scrollEvent => this._updateOnScroll(scrollEvent));\n if (this._boundaryElement) {\n this._boundaryRect = getMutableClientRect(this._boundaryElement);\n }\n // If we have a custom preview we can't know ahead of time how large it'll be so we position\n // it next to the cursor. The exception is when the consumer has opted into making the preview\n // the same size as the root element, in which case we do know the size.\n const previewTemplate = this._previewTemplate;\n this._pickupPositionInElement =\n previewTemplate && previewTemplate.template && !previewTemplate.matchSize\n ? { x: 0, y: 0 }\n : this._getPointerPositionInElement(this._initialDomRect, referenceElement, event);\n const pointerPosition = (this._pickupPositionOnPage =\n this._lastKnownPointerPosition =\n this._getPointerPositionOnPage(event));\n this._pointerDirectionDelta = { x: 0, y: 0 };\n this._pointerPositionAtLastDirectionChange = { x: pointerPosition.x, y: pointerPosition.y };\n this._dragStartTime = Date.now();\n this._dragDropRegistry.startDragging(this, event);\n }\n /** Cleans up the DOM artifacts that were added to facilitate the element being dragged. */\n _cleanupDragArtifacts(event) {\n // Restore the element's visibility and insert it at its old position in the DOM.\n // It's important that we maintain the position, because moving the element around in the DOM\n // can throw off `NgFor` which does smart diffing and re-creates elements only when necessary,\n // while moving the existing elements in all other cases.\n toggleVisibility(this._rootElement, true, dragImportantProperties);\n this._anchor.parentNode.replaceChild(this._rootElement, this._anchor);\n this._destroyPreview();\n this._destroyPlaceholder();\n this._initialDomRect =\n this._boundaryRect =\n this._previewRect =\n this._initialTransform =\n undefined;\n // Re-enter the NgZone since we bound `document` events on the outside.\n this._ngZone.run(() => {\n const container = this._dropContainer;\n const currentIndex = container.getItemIndex(this);\n const pointerPosition = this._getPointerPositionOnPage(event);\n const distance = this._getDragDistance(pointerPosition);\n const isPointerOverContainer = container._isOverContainer(pointerPosition.x, pointerPosition.y);\n this.ended.next({ source: this, distance, dropPoint: pointerPosition, event });\n this.dropped.next({\n item: this,\n currentIndex,\n previousIndex: this._initialIndex,\n container: container,\n previousContainer: this._initialContainer,\n isPointerOverContainer,\n distance,\n dropPoint: pointerPosition,\n event,\n });\n container.drop(this, currentIndex, this._initialIndex, this._initialContainer, isPointerOverContainer, distance, pointerPosition, event);\n this._dropContainer = this._initialContainer;\n });\n }\n /**\n * Updates the item's position in its drop container, or moves it\n * into a new one, depending on its current drag position.\n */\n _updateActiveDropContainer({ x, y }, { x: rawX, y: rawY }) {\n // Drop container that draggable has been moved into.\n let newContainer = this._initialContainer._getSiblingContainerFromPosition(this, x, y);\n // If we couldn't find a new container to move the item into, and the item has left its\n // initial container, check whether the it's over the initial container. This handles the\n // case where two containers are connected one way and the user tries to undo dragging an\n // item into a new container.\n if (!newContainer &&\n this._dropContainer !== this._initialContainer &&\n this._initialContainer._isOverContainer(x, y)) {\n newContainer = this._initialContainer;\n }\n if (newContainer && newContainer !== this._dropContainer) {\n this._ngZone.run(() => {\n // Notify the old container that the item has left.\n this.exited.next({ item: this, container: this._dropContainer });\n this._dropContainer.exit(this);\n // Notify the new container that the item has entered.\n this._dropContainer = newContainer;\n this._dropContainer.enter(this, x, y, newContainer === this._initialContainer &&\n // If we're re-entering the initial container and sorting is disabled,\n // put item the into its starting index to begin with.\n newContainer.sortingDisabled\n ? this._initialIndex\n : undefined);\n this.entered.next({\n item: this,\n container: newContainer,\n currentIndex: newContainer.getItemIndex(this),\n });\n });\n }\n // Dragging may have been interrupted as a result of the events above.\n if (this.isDragging()) {\n this._dropContainer._startScrollingIfNecessary(rawX, rawY);\n this._dropContainer._sortItem(this, x, y, this._pointerDirectionDelta);\n if (this.constrainPosition) {\n this._applyPreviewTransform(x, y);\n }\n else {\n this._applyPreviewTransform(x - this._pickupPositionInElement.x, y - this._pickupPositionInElement.y);\n }\n }\n }\n /**\n * Animates the preview element from its current position to the location of the drop placeholder.\n * @returns Promise that resolves when the animation completes.\n */\n _animatePreviewToPlaceholder() {\n // If the user hasn't moved yet, the transitionend event won't fire.\n if (!this._hasMoved) {\n return Promise.resolve();\n }\n const placeholderRect = this._placeholder.getBoundingClientRect();\n // Apply the class that adds a transition to the preview.\n this._preview.addClass('cdk-drag-animating');\n // Move the preview to the placeholder position.\n this._applyPreviewTransform(placeholderRect.left, placeholderRect.top);\n // If the element doesn't have a `transition`, the `transitionend` event won't fire. Since\n // we need to trigger a style recalculation in order for the `cdk-drag-animating` class to\n // apply its style, we take advantage of the available info to figure out whether we need to\n // bind the event in the first place.\n const duration = this._preview.getTransitionDuration();\n if (duration === 0) {\n return Promise.resolve();\n }\n return this._ngZone.runOutsideAngular(() => {\n return new Promise(resolve => {\n const handler = ((event) => {\n if (!event ||\n (this._preview &&\n _getEventTarget(event) === this._preview.element &&\n event.propertyName === 'transform')) {\n this._preview?.removeEventListener('transitionend', handler);\n resolve();\n clearTimeout(timeout);\n }\n });\n // If a transition is short enough, the browser might not fire the `transitionend` event.\n // Since we know how long it's supposed to take, add a timeout with a 50% buffer that'll\n // fire if the transition hasn't completed when it was supposed to.\n const timeout = setTimeout(handler, duration * 1.5);\n this._preview.addEventListener('transitionend', handler);\n });\n });\n }\n /** Creates an element that will be shown instead of the current element while dragging. */\n _createPlaceholderElement() {\n const placeholderConfig = this._placeholderTemplate;\n const placeholderTemplate = placeholderConfig ? placeholderConfig.template : null;\n let placeholder;\n if (placeholderTemplate) {\n this._placeholderRef = placeholderConfig.viewContainer.createEmbeddedView(placeholderTemplate, placeholderConfig.context);\n this._placeholderRef.detectChanges();\n placeholder = getRootNode(this._placeholderRef, this._document);\n }\n else {\n placeholder = deepCloneNode(this._rootElement);\n }\n // Stop pointer events on the preview so the user can't\n // interact with it while the preview is animating.\n placeholder.style.pointerEvents = 'none';\n placeholder.classList.add('cdk-drag-placeholder');\n return placeholder;\n }\n /**\n * Figures out the coordinates at which an element was picked up.\n * @param referenceElement Element that initiated the dragging.\n * @param event Event that initiated the dragging.\n */\n _getPointerPositionInElement(elementRect, referenceElement, event) {\n const handleElement = referenceElement === this._rootElement ? null : referenceElement;\n const referenceRect = handleElement ? handleElement.getBoundingClientRect() : elementRect;\n const point = isTouchEvent(event) ? event.targetTouches[0] : event;\n const scrollPosition = this._getViewportScrollPosition();\n const x = point.pageX - referenceRect.left - scrollPosition.left;\n const y = point.pageY - referenceRect.top - scrollPosition.top;\n return {\n x: referenceRect.left - elementRect.left + x,\n y: referenceRect.top - elementRect.top + y,\n };\n }\n /** Determines the point of the page that was touched by the user. */\n _getPointerPositionOnPage(event) {\n const scrollPosition = this._getViewportScrollPosition();\n const point = isTouchEvent(event)\n ? // `touches` will be empty for start/end events so we have to fall back to `changedTouches`.\n // Also note that on real devices we're guaranteed for either `touches` or `changedTouches`\n // to have a value, but Firefox in device emulation mode has a bug where both can be empty\n // for `touchstart` and `touchend` so we fall back to a dummy object in order to avoid\n // throwing an error. The value returned here will be incorrect, but since this only\n // breaks inside a developer tool and the value is only used for secondary information,\n // we can get away with it. See https://bugzilla.mozilla.org/show_bug.cgi?id=1615824.\n event.touches[0] || event.changedTouches[0] || { pageX: 0, pageY: 0 }\n : event;\n const x = point.pageX - scrollPosition.left;\n const y = point.pageY - scrollPosition.top;\n // if dragging SVG element, try to convert from the screen coordinate system to the SVG\n // coordinate system\n if (this._ownerSVGElement) {\n const svgMatrix = this._ownerSVGElement.getScreenCTM();\n if (svgMatrix) {\n const svgPoint = this._ownerSVGElement.createSVGPoint();\n svgPoint.x = x;\n svgPoint.y = y;\n return svgPoint.matrixTransform(svgMatrix.inverse());\n }\n }\n return { x, y };\n }\n /** Gets the pointer position on the page, accounting for any position constraints. */\n _getConstrainedPointerPosition(point) {\n const dropContainerLock = this._dropContainer ? this._dropContainer.lockAxis : null;\n let { x, y } = this.constrainPosition\n ? this.constrainPosition(point, this, this._initialDomRect, this._pickupPositionInElement)\n : point;\n if (this.lockAxis === 'x' || dropContainerLock === 'x') {\n y =\n this._pickupPositionOnPage.y -\n (this.constrainPosition ? this._pickupPositionInElement.y : 0);\n }\n else if (this.lockAxis === 'y' || dropContainerLock === 'y') {\n x =\n this._pickupPositionOnPage.x -\n (this.constrainPosition ? this._pickupPositionInElement.x : 0);\n }\n if (this._boundaryRect) {\n // If not using a custom constrain we need to account for the pickup position in the element\n // otherwise we do not need to do this, as it has already been accounted for\n const { x: pickupX, y: pickupY } = !this.constrainPosition\n ? this._pickupPositionInElement\n : { x: 0, y: 0 };\n const boundaryRect = this._boundaryRect;\n const { width: previewWidth, height: previewHeight } = this._getPreviewRect();\n const minY = boundaryRect.top + pickupY;\n const maxY = boundaryRect.bottom - (previewHeight - pickupY);\n const minX = boundaryRect.left + pickupX;\n const maxX = boundaryRect.right - (previewWidth - pickupX);\n x = clamp$1(x, minX, maxX);\n y = clamp$1(y, minY, maxY);\n }\n return { x, y };\n }\n /** Updates the current drag delta, based on the user's current pointer position on the page. */\n _updatePointerDirectionDelta(pointerPositionOnPage) {\n const { x, y } = pointerPositionOnPage;\n const delta = this._pointerDirectionDelta;\n const positionSinceLastChange = this._pointerPositionAtLastDirectionChange;\n // Amount of pixels the user has dragged since the last time the direction changed.\n const changeX = Math.abs(x - positionSinceLastChange.x);\n const changeY = Math.abs(y - positionSinceLastChange.y);\n // Because we handle pointer events on a per-pixel basis, we don't want the delta\n // to change for every pixel, otherwise anything that depends on it can look erratic.\n // To make the delta more consistent, we track how much the user has moved since the last\n // delta change and we only update it after it has reached a certain threshold.\n if (changeX > this._config.pointerDirectionChangeThreshold) {\n delta.x = x > positionSinceLastChange.x ? 1 : -1;\n positionSinceLastChange.x = x;\n }\n if (changeY > this._config.pointerDirectionChangeThreshold) {\n delta.y = y > positionSinceLastChange.y ? 1 : -1;\n positionSinceLastChange.y = y;\n }\n return delta;\n }\n /** Toggles the native drag interactions, based on how many handles are registered. */\n _toggleNativeDragInteractions() {\n if (!this._rootElement || !this._handles) {\n return;\n }\n const shouldEnable = this._handles.length > 0 || !this.isDragging();\n if (shouldEnable !== this._nativeInteractionsEnabled) {\n this._nativeInteractionsEnabled = shouldEnable;\n toggleNativeDragInteractions(this._rootElement, shouldEnable);\n }\n }\n /** Removes the manually-added event listeners from the root element. */\n _removeRootElementListeners(element) {\n element.removeEventListener('mousedown', this._pointerDown, activeEventListenerOptions);\n element.removeEventListener('touchstart', this._pointerDown, passiveEventListenerOptions);\n element.removeEventListener('dragstart', this._nativeDragStart, activeEventListenerOptions);\n }\n /**\n * Applies a `transform` to the root element, taking into account any existing transforms on it.\n * @param x New transform value along the X axis.\n * @param y New transform value along the Y axis.\n */\n _applyRootElementTransform(x, y) {\n const scale = 1 / this.scale;\n const transform = getTransform(x * scale, y * scale);\n const styles = this._rootElement.style;\n // Cache the previous transform amount only after the first drag sequence, because\n // we don't want our own transforms to stack on top of each other.\n // Should be excluded none because none + translate3d(x, y, x) is invalid css\n if (this._initialTransform == null) {\n this._initialTransform =\n styles.transform && styles.transform != 'none' ? styles.transform : '';\n }\n // Preserve the previous `transform` value, if there was one. Note that we apply our own\n // transform before the user's, because things like rotation can affect which direction\n // the element will be translated towards.\n styles.transform = combineTransforms(transform, this._initialTransform);\n }\n /**\n * Applies a `transform` to the preview, taking into account any existing transforms on it.\n * @param x New transform value along the X axis.\n * @param y New transform value along the Y axis.\n */\n _applyPreviewTransform(x, y) {\n // Only apply the initial transform if the preview is a clone of the original element, otherwise\n // it could be completely different and the transform might not make sense anymore.\n const initialTransform = this._previewTemplate?.template ? undefined : this._initialTransform;\n const transform = getTransform(x, y);\n this._preview.setTransform(combineTransforms(transform, initialTransform));\n }\n /**\n * Gets the distance that the user has dragged during the current drag sequence.\n * @param currentPosition Current position of the user's pointer.\n */\n _getDragDistance(currentPosition) {\n const pickupPosition = this._pickupPositionOnPage;\n if (pickupPosition) {\n return { x: currentPosition.x - pickupPosition.x, y: currentPosition.y - pickupPosition.y };\n }\n return { x: 0, y: 0 };\n }\n /** Cleans up any cached element dimensions that we don't need after dragging has stopped. */\n _cleanupCachedDimensions() {\n this._boundaryRect = this._previewRect = undefined;\n this._parentPositions.clear();\n }\n /**\n * Checks whether the element is still inside its boundary after the viewport has been resized.\n * If not, the position is adjusted so that the element fits again.\n */\n _containInsideBoundaryOnResize() {\n let { x, y } = this._passiveTransform;\n if ((x === 0 && y === 0) || this.isDragging() || !this._boundaryElement) {\n return;\n }\n // Note: don't use `_clientRectAtStart` here, because we want the latest position.\n const elementRect = this._rootElement.getBoundingClientRect();\n const boundaryRect = this._boundaryElement.getBoundingClientRect();\n // It's possible that the element got hidden away after dragging (e.g. by switching to a\n // different tab). Don't do anything in this case so we don't clear the user's position.\n if ((boundaryRect.width === 0 && boundaryRect.height === 0) ||\n (elementRect.width === 0 && elementRect.height === 0)) {\n return;\n }\n const leftOverflow = boundaryRect.left - elementRect.left;\n const rightOverflow = elementRect.right - boundaryRect.right;\n const topOverflow = boundaryRect.top - elementRect.top;\n const bottomOverflow = elementRect.bottom - boundaryRect.bottom;\n // If the element has become wider than the boundary, we can't\n // do much to make it fit so we just anchor it to the left.\n if (boundaryRect.width > elementRect.width) {\n if (leftOverflow > 0) {\n x += leftOverflow;\n }\n if (rightOverflow > 0) {\n x -= rightOverflow;\n }\n }\n else {\n x = 0;\n }\n // If the element has become taller than the boundary, we can't\n // do much to make it fit so we just anchor it to the top.\n if (boundaryRect.height > elementRect.height) {\n if (topOverflow > 0) {\n y += topOverflow;\n }\n if (bottomOverflow > 0) {\n y -= bottomOverflow;\n }\n }\n else {\n y = 0;\n }\n if (x !== this._passiveTransform.x || y !== this._passiveTransform.y) {\n this.setFreeDragPosition({ y, x });\n }\n }\n /** Gets the drag start delay, based on the event type. */\n _getDragStartDelay(event) {\n const value = this.dragStartDelay;\n if (typeof value === 'number') {\n return value;\n }\n else if (isTouchEvent(event)) {\n return value.touch;\n }\n return value ? value.mouse : 0;\n }\n /** Updates the internal state of the draggable element when scrolling has occurred. */\n _updateOnScroll(event) {\n const scrollDifference = this._parentPositions.handleScroll(event);\n if (scrollDifference) {\n const target = _getEventTarget(event);\n // DOMRect dimensions are based on the scroll position of the page and its parent\n // node so we have to update the cached boundary DOMRect if the user has scrolled.\n if (this._boundaryRect &&\n target !== this._boundaryElement &&\n target.contains(this._boundaryElement)) {\n adjustDomRect(this._boundaryRect, scrollDifference.top, scrollDifference.left);\n }\n this._pickupPositionOnPage.x += scrollDifference.left;\n this._pickupPositionOnPage.y += scrollDifference.top;\n // If we're in free drag mode, we have to update the active transform, because\n // it isn't relative to the viewport like the preview inside a drop list.\n if (!this._dropContainer) {\n this._activeTransform.x -= scrollDifference.left;\n this._activeTransform.y -= scrollDifference.top;\n this._applyRootElementTransform(this._activeTransform.x, this._activeTransform.y);\n }\n }\n }\n /** Gets the scroll position of the viewport. */\n _getViewportScrollPosition() {\n return (this._parentPositions.positions.get(this._document)?.scrollPosition ||\n this._parentPositions.getViewportScrollPosition());\n }\n /**\n * Lazily resolves and returns the shadow root of the element. We do this in a function, rather\n * than saving it in property directly on init, because we want to resolve it as late as possible\n * in order to ensure that the element has been moved into the shadow DOM. Doing it inside the\n * constructor might be too early if the element is inside of something like `ngFor` or `ngIf`.\n */\n _getShadowRoot() {\n if (this._cachedShadowRoot === undefined) {\n this._cachedShadowRoot = _getShadowRoot(this._rootElement);\n }\n return this._cachedShadowRoot;\n }\n /** Gets the element into which the drag preview should be inserted. */\n _getPreviewInsertionPoint(initialParent, shadowRoot) {\n const previewContainer = this._previewContainer || 'global';\n if (previewContainer === 'parent') {\n return initialParent;\n }\n if (previewContainer === 'global') {\n const documentRef = this._document;\n // We can't use the body if the user is in fullscreen mode,\n // because the preview will render under the fullscreen element.\n // TODO(crisbeto): dedupe this with the `FullscreenOverlayContainer` eventually.\n return (shadowRoot ||\n documentRef.fullscreenElement ||\n documentRef.webkitFullscreenElement ||\n documentRef.mozFullScreenElement ||\n documentRef.msFullscreenElement ||\n documentRef.body);\n }\n return coerceElement(previewContainer);\n }\n /** Lazily resolves and returns the dimensions of the preview. */\n _getPreviewRect() {\n // Cache the preview element rect if we haven't cached it already or if\n // we cached it too early before the element dimensions were computed.\n if (!this._previewRect || (!this._previewRect.width && !this._previewRect.height)) {\n this._previewRect = this._preview\n ? this._preview.getBoundingClientRect()\n : this._initialDomRect;\n }\n return this._previewRect;\n }\n /** Gets a handle that is the target of an event. */\n _getTargetHandle(event) {\n return this._handles.find(handle => {\n return event.target && (event.target === handle || handle.contains(event.target));\n });\n }\n}\n/** Clamps a value between a minimum and a maximum. */\nfunction clamp$1(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/** Determines whether an event is a touch event. */\nfunction isTouchEvent(event) {\n // This function is called for every pixel that the user has dragged so we need it to be\n // as fast as possible. Since we only bind mouse events and touch events, we can assume\n // that if the event's name starts with `t`, it's a touch event.\n return event.type[0] === 't';\n}\n/** Callback invoked for `selectstart` events inside the shadow DOM. */\nfunction shadowDomSelectStart(event) {\n event.preventDefault();\n}\n\n/**\n * Moves an item one index in an array to another.\n * @param array Array in which to move the item.\n * @param fromIndex Starting index of the item.\n * @param toIndex Index to which the item should be moved.\n */\nfunction moveItemInArray(array, fromIndex, toIndex) {\n const from = clamp(fromIndex, array.length - 1);\n const to = clamp(toIndex, array.length - 1);\n if (from === to) {\n return;\n }\n const target = array[from];\n const delta = to < from ? -1 : 1;\n for (let i = from; i !== to; i += delta) {\n array[i] = array[i + delta];\n }\n array[to] = target;\n}\n/**\n * Moves an item from one array to another.\n * @param currentArray Array from which to transfer the item.\n * @param targetArray Array into which to put the item.\n * @param currentIndex Index of the item in its current array.\n * @param targetIndex Index at which to insert the item.\n */\nfunction transferArrayItem(currentArray, targetArray, currentIndex, targetIndex) {\n const from = clamp(currentIndex, currentArray.length - 1);\n const to = clamp(targetIndex, targetArray.length);\n if (currentArray.length) {\n targetArray.splice(to, 0, currentArray.splice(from, 1)[0]);\n }\n}\n/**\n * Copies an item from one array to another, leaving it in its\n * original position in current array.\n * @param currentArray Array from which to copy the item.\n * @param targetArray Array into which is copy the item.\n * @param currentIndex Index of the item in its current array.\n * @param targetIndex Index at which to insert the item.\n *\n */\nfunction copyArrayItem(currentArray, targetArray, currentIndex, targetIndex) {\n const to = clamp(targetIndex, targetArray.length);\n if (currentArray.length) {\n targetArray.splice(to, 0, currentArray[currentIndex]);\n }\n}\n/** Clamps a number between zero and a maximum. */\nfunction clamp(value, max) {\n return Math.max(0, Math.min(max, value));\n}\n\n/**\n * Strategy that only supports sorting along a single axis.\n * Items are reordered using CSS transforms which allows for sorting to be animated.\n * @docs-private\n */\nclass SingleAxisSortStrategy {\n constructor(_dragDropRegistry) {\n this._dragDropRegistry = _dragDropRegistry;\n /** Cache of the dimensions of all the items inside the container. */\n this._itemPositions = [];\n /** Direction in which the list is oriented. */\n this.orientation = 'vertical';\n /**\n * Keeps track of the item that was last swapped with the dragged item, as well as what direction\n * the pointer was moving in when the swap occurred and whether the user's pointer continued to\n * overlap with the swapped item after the swapping occurred.\n */\n this._previousSwap = {\n drag: null,\n delta: 0,\n overlaps: false,\n };\n }\n /**\n * To be called when the drag sequence starts.\n * @param items Items that are currently in the list.\n */\n start(items) {\n this.withItems(items);\n }\n /**\n * To be called when an item is being sorted.\n * @param item Item to be sorted.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param pointerDelta Direction in which the pointer is moving along each axis.\n */\n sort(item, pointerX, pointerY, pointerDelta) {\n const siblings = this._itemPositions;\n const newIndex = this._getItemIndexFromPointerPosition(item, pointerX, pointerY, pointerDelta);\n if (newIndex === -1 && siblings.length > 0) {\n return null;\n }\n const isHorizontal = this.orientation === 'horizontal';\n const currentIndex = siblings.findIndex(currentItem => currentItem.drag === item);\n const siblingAtNewPosition = siblings[newIndex];\n const currentPosition = siblings[currentIndex].clientRect;\n const newPosition = siblingAtNewPosition.clientRect;\n const delta = currentIndex > newIndex ? 1 : -1;\n // How many pixels the item's placeholder should be offset.\n const itemOffset = this._getItemOffsetPx(currentPosition, newPosition, delta);\n // How many pixels all the other items should be offset.\n const siblingOffset = this._getSiblingOffsetPx(currentIndex, siblings, delta);\n // Save the previous order of the items before moving the item to its new index.\n // We use this to check whether an item has been moved as a result of the sorting.\n const oldOrder = siblings.slice();\n // Shuffle the array in place.\n moveItemInArray(siblings, currentIndex, newIndex);\n siblings.forEach((sibling, index) => {\n // Don't do anything if the position hasn't changed.\n if (oldOrder[index] === sibling) {\n return;\n }\n const isDraggedItem = sibling.drag === item;\n const offset = isDraggedItem ? itemOffset : siblingOffset;\n const elementToOffset = isDraggedItem\n ? item.getPlaceholderElement()\n : sibling.drag.getRootElement();\n // Update the offset to reflect the new position.\n sibling.offset += offset;\n const transformAmount = Math.round(sibling.offset * (1 / sibling.drag.scale));\n // Since we're moving the items with a `transform`, we need to adjust their cached\n // client rects to reflect their new position, as well as swap their positions in the cache.\n // Note that we shouldn't use `getBoundingClientRect` here to update the cache, because the\n // elements may be mid-animation which will give us a wrong result.\n if (isHorizontal) {\n // Round the transforms since some browsers will\n // blur the elements, for sub-pixel transforms.\n elementToOffset.style.transform = combineTransforms(`translate3d(${transformAmount}px, 0, 0)`, sibling.initialTransform);\n adjustDomRect(sibling.clientRect, 0, offset);\n }\n else {\n elementToOffset.style.transform = combineTransforms(`translate3d(0, ${transformAmount}px, 0)`, sibling.initialTransform);\n adjustDomRect(sibling.clientRect, offset, 0);\n }\n });\n // Note that it's important that we do this after the client rects have been adjusted.\n this._previousSwap.overlaps = isInsideClientRect(newPosition, pointerX, pointerY);\n this._previousSwap.drag = siblingAtNewPosition.drag;\n this._previousSwap.delta = isHorizontal ? pointerDelta.x : pointerDelta.y;\n return { previousIndex: currentIndex, currentIndex: newIndex };\n }\n /**\n * Called when an item is being moved into the container.\n * @param item Item that was moved into the container.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param index Index at which the item entered. If omitted, the container will try to figure it\n * out automatically.\n */\n enter(item, pointerX, pointerY, index) {\n const newIndex = index == null || index < 0\n ? // We use the coordinates of where the item entered the drop\n // zone to figure out at which index it should be inserted.\n this._getItemIndexFromPointerPosition(item, pointerX, pointerY)\n : index;\n const activeDraggables = this._activeDraggables;\n const currentIndex = activeDraggables.indexOf(item);\n const placeholder = item.getPlaceholderElement();\n let newPositionReference = activeDraggables[newIndex];\n // If the item at the new position is the same as the item that is being dragged,\n // it means that we're trying to restore the item to its initial position. In this\n // case we should use the next item from the list as the reference.\n if (newPositionReference === item) {\n newPositionReference = activeDraggables[newIndex + 1];\n }\n // If we didn't find a new position reference, it means that either the item didn't start off\n // in this container, or that the item requested to be inserted at the end of the list.\n if (!newPositionReference &&\n (newIndex == null || newIndex === -1 || newIndex < activeDraggables.length - 1) &&\n this._shouldEnterAsFirstChild(pointerX, pointerY)) {\n newPositionReference = activeDraggables[0];\n }\n // Since the item may be in the `activeDraggables` already (e.g. if the user dragged it\n // into another container and back again), we have to ensure that it isn't duplicated.\n if (currentIndex > -1) {\n activeDraggables.splice(currentIndex, 1);\n }\n // Don't use items that are being dragged as a reference, because\n // their element has been moved down to the bottom of the body.\n if (newPositionReference && !this._dragDropRegistry.isDragging(newPositionReference)) {\n const element = newPositionReference.getRootElement();\n element.parentElement.insertBefore(placeholder, element);\n activeDraggables.splice(newIndex, 0, item);\n }\n else {\n this._element.appendChild(placeholder);\n activeDraggables.push(item);\n }\n // The transform needs to be cleared so it doesn't throw off the measurements.\n placeholder.style.transform = '';\n // Note that usually `start` is called together with `enter` when an item goes into a new\n // container. This will cache item positions, but we need to refresh them since the amount\n // of items has changed.\n this._cacheItemPositions();\n }\n /** Sets the items that are currently part of the list. */\n withItems(items) {\n this._activeDraggables = items.slice();\n this._cacheItemPositions();\n }\n /** Assigns a sort predicate to the strategy. */\n withSortPredicate(predicate) {\n this._sortPredicate = predicate;\n }\n /** Resets the strategy to its initial state before dragging was started. */\n reset() {\n // TODO(crisbeto): may have to wait for the animations to finish.\n this._activeDraggables?.forEach(item => {\n const rootElement = item.getRootElement();\n if (rootElement) {\n const initialTransform = this._itemPositions.find(p => p.drag === item)?.initialTransform;\n rootElement.style.transform = initialTransform || '';\n }\n });\n this._itemPositions = [];\n this._activeDraggables = [];\n this._previousSwap.drag = null;\n this._previousSwap.delta = 0;\n this._previousSwap.overlaps = false;\n }\n /**\n * Gets a snapshot of items currently in the list.\n * Can include items that we dragged in from another list.\n */\n getActiveItemsSnapshot() {\n return this._activeDraggables;\n }\n /** Gets the index of a specific item. */\n getItemIndex(item) {\n // Items are sorted always by top/left in the cache, however they flow differently in RTL.\n // The rest of the logic still stands no matter what orientation we're in, however\n // we need to invert the array when determining the index.\n const items = this.orientation === 'horizontal' && this.direction === 'rtl'\n ? this._itemPositions.slice().reverse()\n : this._itemPositions;\n return items.findIndex(currentItem => currentItem.drag === item);\n }\n /** Used to notify the strategy that the scroll position has changed. */\n updateOnScroll(topDifference, leftDifference) {\n // Since we know the amount that the user has scrolled we can shift all of the\n // client rectangles ourselves. This is cheaper than re-measuring everything and\n // we can avoid inconsistent behavior where we might be measuring the element before\n // its position has changed.\n this._itemPositions.forEach(({ clientRect }) => {\n adjustDomRect(clientRect, topDifference, leftDifference);\n });\n // We need two loops for this, because we want all of the cached\n // positions to be up-to-date before we re-sort the item.\n this._itemPositions.forEach(({ drag }) => {\n if (this._dragDropRegistry.isDragging(drag)) {\n // We need to re-sort the item manually, because the pointer move\n // events won't be dispatched while the user is scrolling.\n drag._sortFromLastPointerPosition();\n }\n });\n }\n withElementContainer(container) {\n this._element = container;\n }\n /** Refreshes the position cache of the items and sibling containers. */\n _cacheItemPositions() {\n const isHorizontal = this.orientation === 'horizontal';\n this._itemPositions = this._activeDraggables\n .map(drag => {\n const elementToMeasure = drag.getVisibleElement();\n return {\n drag,\n offset: 0,\n initialTransform: elementToMeasure.style.transform || '',\n clientRect: getMutableClientRect(elementToMeasure),\n };\n })\n .sort((a, b) => {\n return isHorizontal\n ? a.clientRect.left - b.clientRect.left\n : a.clientRect.top - b.clientRect.top;\n });\n }\n /**\n * Gets the offset in pixels by which the item that is being dragged should be moved.\n * @param currentPosition Current position of the item.\n * @param newPosition Position of the item where the current item should be moved.\n * @param delta Direction in which the user is moving.\n */\n _getItemOffsetPx(currentPosition, newPosition, delta) {\n const isHorizontal = this.orientation === 'horizontal';\n let itemOffset = isHorizontal\n ? newPosition.left - currentPosition.left\n : newPosition.top - currentPosition.top;\n // Account for differences in the item width/height.\n if (delta === -1) {\n itemOffset += isHorizontal\n ? newPosition.width - currentPosition.width\n : newPosition.height - currentPosition.height;\n }\n return itemOffset;\n }\n /**\n * Gets the offset in pixels by which the items that aren't being dragged should be moved.\n * @param currentIndex Index of the item currently being dragged.\n * @param siblings All of the items in the list.\n * @param delta Direction in which the user is moving.\n */\n _getSiblingOffsetPx(currentIndex, siblings, delta) {\n const isHorizontal = this.orientation === 'horizontal';\n const currentPosition = siblings[currentIndex].clientRect;\n const immediateSibling = siblings[currentIndex + delta * -1];\n let siblingOffset = currentPosition[isHorizontal ? 'width' : 'height'] * delta;\n if (immediateSibling) {\n const start = isHorizontal ? 'left' : 'top';\n const end = isHorizontal ? 'right' : 'bottom';\n // Get the spacing between the start of the current item and the end of the one immediately\n // after it in the direction in which the user is dragging, or vice versa. We add it to the\n // offset in order to push the element to where it will be when it's inline and is influenced\n // by the `margin` of its siblings.\n if (delta === -1) {\n siblingOffset -= immediateSibling.clientRect[start] - currentPosition[end];\n }\n else {\n siblingOffset += currentPosition[start] - immediateSibling.clientRect[end];\n }\n }\n return siblingOffset;\n }\n /**\n * Checks if pointer is entering in the first position\n * @param pointerX Position of the user's pointer along the X axis.\n * @param pointerY Position of the user's pointer along the Y axis.\n */\n _shouldEnterAsFirstChild(pointerX, pointerY) {\n if (!this._activeDraggables.length) {\n return false;\n }\n const itemPositions = this._itemPositions;\n const isHorizontal = this.orientation === 'horizontal';\n // `itemPositions` are sorted by position while `activeDraggables` are sorted by child index\n // check if container is using some sort of \"reverse\" ordering (eg: flex-direction: row-reverse)\n const reversed = itemPositions[0].drag !== this._activeDraggables[0];\n if (reversed) {\n const lastItemRect = itemPositions[itemPositions.length - 1].clientRect;\n return isHorizontal ? pointerX >= lastItemRect.right : pointerY >= lastItemRect.bottom;\n }\n else {\n const firstItemRect = itemPositions[0].clientRect;\n return isHorizontal ? pointerX <= firstItemRect.left : pointerY <= firstItemRect.top;\n }\n }\n /**\n * Gets the index of an item in the drop container, based on the position of the user's pointer.\n * @param item Item that is being sorted.\n * @param pointerX Position of the user's pointer along the X axis.\n * @param pointerY Position of the user's pointer along the Y axis.\n * @param delta Direction in which the user is moving their pointer.\n */\n _getItemIndexFromPointerPosition(item, pointerX, pointerY, delta) {\n const isHorizontal = this.orientation === 'horizontal';\n const index = this._itemPositions.findIndex(({ drag, clientRect }) => {\n // Skip the item itself.\n if (drag === item) {\n return false;\n }\n if (delta) {\n const direction = isHorizontal ? delta.x : delta.y;\n // If the user is still hovering over the same item as last time, their cursor hasn't left\n // the item after we made the swap, and they didn't change the direction in which they're\n // dragging, we don't consider it a direction swap.\n if (drag === this._previousSwap.drag &&\n this._previousSwap.overlaps &&\n direction === this._previousSwap.delta) {\n return false;\n }\n }\n return isHorizontal\n ? // Round these down since most browsers report client rects with\n // sub-pixel precision, whereas the pointer coordinates are rounded to pixels.\n pointerX >= Math.floor(clientRect.left) && pointerX < Math.floor(clientRect.right)\n : pointerY >= Math.floor(clientRect.top) && pointerY < Math.floor(clientRect.bottom);\n });\n return index === -1 || !this._sortPredicate(index, item) ? -1 : index;\n }\n}\n\n/**\n * Strategy that only supports sorting on a list that might wrap.\n * Items are reordered by moving their DOM nodes around.\n * @docs-private\n */\nclass MixedSortStrategy {\n constructor(_document, _dragDropRegistry) {\n this._document = _document;\n this._dragDropRegistry = _dragDropRegistry;\n /**\n * Keeps track of the item that was last swapped with the dragged item, as well as what direction\n * the pointer was moving in when the swap occurred and whether the user's pointer continued to\n * overlap with the swapped item after the swapping occurred.\n */\n this._previousSwap = {\n drag: null,\n deltaX: 0,\n deltaY: 0,\n overlaps: false,\n };\n /**\n * Keeps track of the relationship between a node and its next sibling. This information\n * is used to restore the DOM to the order it was in before dragging started.\n */\n this._relatedNodes = [];\n }\n /**\n * To be called when the drag sequence starts.\n * @param items Items that are currently in the list.\n */\n start(items) {\n const childNodes = this._element.childNodes;\n this._relatedNodes = [];\n for (let i = 0; i < childNodes.length; i++) {\n const node = childNodes[i];\n this._relatedNodes.push([node, node.nextSibling]);\n }\n this.withItems(items);\n }\n /**\n * To be called when an item is being sorted.\n * @param item Item to be sorted.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param pointerDelta Direction in which the pointer is moving along each axis.\n */\n sort(item, pointerX, pointerY, pointerDelta) {\n const newIndex = this._getItemIndexFromPointerPosition(item, pointerX, pointerY);\n const previousSwap = this._previousSwap;\n if (newIndex === -1 || this._activeItems[newIndex] === item) {\n return null;\n }\n const toSwapWith = this._activeItems[newIndex];\n // Prevent too many swaps over the same item.\n if (previousSwap.drag === toSwapWith &&\n previousSwap.overlaps &&\n previousSwap.deltaX === pointerDelta.x &&\n previousSwap.deltaY === pointerDelta.y) {\n return null;\n }\n const previousIndex = this.getItemIndex(item);\n const current = item.getPlaceholderElement();\n const overlapElement = toSwapWith.getRootElement();\n if (newIndex > previousIndex) {\n overlapElement.after(current);\n }\n else {\n overlapElement.before(current);\n }\n moveItemInArray(this._activeItems, previousIndex, newIndex);\n const newOverlapElement = this._getRootNode().elementFromPoint(pointerX, pointerY);\n // Note: it's tempting to save the entire `pointerDelta` object here, however that'll\n // break this functionality, because the same object is passed for all `sort` calls.\n previousSwap.deltaX = pointerDelta.x;\n previousSwap.deltaY = pointerDelta.y;\n previousSwap.drag = toSwapWith;\n previousSwap.overlaps =\n overlapElement === newOverlapElement || overlapElement.contains(newOverlapElement);\n return {\n previousIndex,\n currentIndex: newIndex,\n };\n }\n /**\n * Called when an item is being moved into the container.\n * @param item Item that was moved into the container.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param index Index at which the item entered. If omitted, the container will try to figure it\n * out automatically.\n */\n enter(item, pointerX, pointerY, index) {\n let enterIndex = index == null || index < 0\n ? this._getItemIndexFromPointerPosition(item, pointerX, pointerY)\n : index;\n // In some cases (e.g. when the container has padding) we might not be able to figure\n // out which item to insert the dragged item next to, because the pointer didn't overlap\n // with anything. In that case we find the item that's closest to the pointer.\n if (enterIndex === -1) {\n enterIndex = this._getClosestItemIndexToPointer(item, pointerX, pointerY);\n }\n const targetItem = this._activeItems[enterIndex];\n const currentIndex = this._activeItems.indexOf(item);\n if (currentIndex > -1) {\n this._activeItems.splice(currentIndex, 1);\n }\n if (targetItem && !this._dragDropRegistry.isDragging(targetItem)) {\n this._activeItems.splice(enterIndex, 0, item);\n targetItem.getRootElement().before(item.getPlaceholderElement());\n }\n else {\n this._activeItems.push(item);\n this._element.appendChild(item.getPlaceholderElement());\n }\n }\n /** Sets the items that are currently part of the list. */\n withItems(items) {\n this._activeItems = items.slice();\n }\n /** Assigns a sort predicate to the strategy. */\n withSortPredicate(predicate) {\n this._sortPredicate = predicate;\n }\n /** Resets the strategy to its initial state before dragging was started. */\n reset() {\n const root = this._element;\n const previousSwap = this._previousSwap;\n // Moving elements around in the DOM can break things like the `@for` loop, because it\n // uses comment nodes to know where to insert elements. To avoid such issues, we restore\n // the DOM nodes in the list to their original order when the list is reset.\n // Note that this could be simpler if we just saved all the nodes, cleared the root\n // and then appended them in the original order. We don't do it, because it can break\n // down depending on when the snapshot was taken. E.g. we may end up snapshotting the\n // placeholder element which is removed after dragging.\n for (let i = this._relatedNodes.length - 1; i > -1; i--) {\n const [node, nextSibling] = this._relatedNodes[i];\n if (node.parentNode === root && node.nextSibling !== nextSibling) {\n if (nextSibling === null) {\n root.appendChild(node);\n }\n else if (nextSibling.parentNode === root) {\n root.insertBefore(node, nextSibling);\n }\n }\n }\n this._relatedNodes = [];\n this._activeItems = [];\n previousSwap.drag = null;\n previousSwap.deltaX = previousSwap.deltaY = 0;\n previousSwap.overlaps = false;\n }\n /**\n * Gets a snapshot of items currently in the list.\n * Can include items that we dragged in from another list.\n */\n getActiveItemsSnapshot() {\n return this._activeItems;\n }\n /** Gets the index of a specific item. */\n getItemIndex(item) {\n return this._activeItems.indexOf(item);\n }\n /** Used to notify the strategy that the scroll position has changed. */\n updateOnScroll() {\n this._activeItems.forEach(item => {\n if (this._dragDropRegistry.isDragging(item)) {\n // We need to re-sort the item manually, because the pointer move\n // events won't be dispatched while the user is scrolling.\n item._sortFromLastPointerPosition();\n }\n });\n }\n withElementContainer(container) {\n if (container !== this._element) {\n this._element = container;\n this._rootNode = undefined;\n }\n }\n /**\n * Gets the index of an item in the drop container, based on the position of the user's pointer.\n * @param item Item that is being sorted.\n * @param pointerX Position of the user's pointer along the X axis.\n * @param pointerY Position of the user's pointer along the Y axis.\n * @param delta Direction in which the user is moving their pointer.\n */\n _getItemIndexFromPointerPosition(item, pointerX, pointerY) {\n const elementAtPoint = this._getRootNode().elementFromPoint(Math.floor(pointerX), Math.floor(pointerY));\n const index = elementAtPoint\n ? this._activeItems.findIndex(item => {\n const root = item.getRootElement();\n return elementAtPoint === root || root.contains(elementAtPoint);\n })\n : -1;\n return index === -1 || !this._sortPredicate(index, item) ? -1 : index;\n }\n /** Lazily resolves the list's root node. */\n _getRootNode() {\n // Resolve the root node lazily to ensure that the drop list is in its final place in the DOM.\n if (!this._rootNode) {\n this._rootNode = _getShadowRoot(this._element) || this._document;\n }\n return this._rootNode;\n }\n /**\n * Finds the index of the item that's closest to the item being dragged.\n * @param item Item being dragged.\n * @param pointerX Position of the user's pointer along the X axis.\n * @param pointerY Position of the user's pointer along the Y axis.\n */\n _getClosestItemIndexToPointer(item, pointerX, pointerY) {\n if (this._activeItems.length === 0) {\n return -1;\n }\n if (this._activeItems.length === 1) {\n return 0;\n }\n let minDistance = Infinity;\n let minIndex = -1;\n // Find the Euclidean distance (https://en.wikipedia.org/wiki/Euclidean_distance) between each\n // item and the pointer, and return the smallest one. Note that this is a bit flawed in that DOM\n // nodes are rectangles, not points, so we use the top/left coordinates. It should be enough\n // for our purposes.\n for (let i = 0; i < this._activeItems.length; i++) {\n const current = this._activeItems[i];\n if (current !== item) {\n const { x, y } = current.getRootElement().getBoundingClientRect();\n const distance = Math.hypot(pointerX - x, pointerY - y);\n if (distance < minDistance) {\n minDistance = distance;\n minIndex = i;\n }\n }\n }\n return minIndex;\n }\n}\n\n/**\n * Proximity, as a ratio to width/height, at which a\n * dragged item will affect the drop container.\n */\nconst DROP_PROXIMITY_THRESHOLD = 0.05;\n/**\n * Proximity, as a ratio to width/height at which to start auto-scrolling the drop list or the\n * viewport. The value comes from trying it out manually until it feels right.\n */\nconst SCROLL_PROXIMITY_THRESHOLD = 0.05;\n/** Vertical direction in which we can auto-scroll. */\nvar AutoScrollVerticalDirection;\n(function (AutoScrollVerticalDirection) {\n AutoScrollVerticalDirection[AutoScrollVerticalDirection[\"NONE\"] = 0] = \"NONE\";\n AutoScrollVerticalDirection[AutoScrollVerticalDirection[\"UP\"] = 1] = \"UP\";\n AutoScrollVerticalDirection[AutoScrollVerticalDirection[\"DOWN\"] = 2] = \"DOWN\";\n})(AutoScrollVerticalDirection || (AutoScrollVerticalDirection = {}));\n/** Horizontal direction in which we can auto-scroll. */\nvar AutoScrollHorizontalDirection;\n(function (AutoScrollHorizontalDirection) {\n AutoScrollHorizontalDirection[AutoScrollHorizontalDirection[\"NONE\"] = 0] = \"NONE\";\n AutoScrollHorizontalDirection[AutoScrollHorizontalDirection[\"LEFT\"] = 1] = \"LEFT\";\n AutoScrollHorizontalDirection[AutoScrollHorizontalDirection[\"RIGHT\"] = 2] = \"RIGHT\";\n})(AutoScrollHorizontalDirection || (AutoScrollHorizontalDirection = {}));\n/**\n * Reference to a drop list. Used to manipulate or dispose of the container.\n */\nclass DropListRef {\n constructor(element, _dragDropRegistry, _document, _ngZone, _viewportRuler) {\n this._dragDropRegistry = _dragDropRegistry;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n /** Whether starting a dragging sequence from this container is disabled. */\n this.disabled = false;\n /** Whether sorting items within the list is disabled. */\n this.sortingDisabled = false;\n /**\n * Whether auto-scrolling the view when the user\n * moves their pointer close to the edges is disabled.\n */\n this.autoScrollDisabled = false;\n /** Number of pixels to scroll for each frame when auto-scrolling an element. */\n this.autoScrollStep = 2;\n /**\n * Function that is used to determine whether an item\n * is allowed to be moved into a drop container.\n */\n this.enterPredicate = () => true;\n /** Function that is used to determine whether an item can be sorted into a particular index. */\n this.sortPredicate = () => true;\n /** Emits right before dragging has started. */\n this.beforeStarted = new Subject();\n /**\n * Emits when the user has moved a new drag item into this container.\n */\n this.entered = new Subject();\n /**\n * Emits when the user removes an item from the container\n * by dragging it into another container.\n */\n this.exited = new Subject();\n /** Emits when the user drops an item inside the container. */\n this.dropped = new Subject();\n /** Emits as the user is swapping items while actively dragging. */\n this.sorted = new Subject();\n /** Emits when a dragging sequence is started in a list connected to the current one. */\n this.receivingStarted = new Subject();\n /** Emits when a dragging sequence is stopped from a list connected to the current one. */\n this.receivingStopped = new Subject();\n /** Whether an item in the list is being dragged. */\n this._isDragging = false;\n /** Draggable items in the container. */\n this._draggables = [];\n /** Drop lists that are connected to the current one. */\n this._siblings = [];\n /** Connected siblings that currently have a dragged item. */\n this._activeSiblings = new Set();\n /** Subscription to the window being scrolled. */\n this._viewportScrollSubscription = Subscription.EMPTY;\n /** Vertical direction in which the list is currently scrolling. */\n this._verticalScrollDirection = AutoScrollVerticalDirection.NONE;\n /** Horizontal direction in which the list is currently scrolling. */\n this._horizontalScrollDirection = AutoScrollHorizontalDirection.NONE;\n /** Used to signal to the current auto-scroll sequence when to stop. */\n this._stopScrollTimers = new Subject();\n /** Shadow root of the current element. Necessary for `elementFromPoint` to resolve correctly. */\n this._cachedShadowRoot = null;\n /** Elements that can be scrolled while the user is dragging. */\n this._scrollableElements = [];\n /** Direction of the list's layout. */\n this._direction = 'ltr';\n /** Starts the interval that'll auto-scroll the element. */\n this._startScrollInterval = () => {\n this._stopScrolling();\n interval(0, animationFrameScheduler)\n .pipe(takeUntil(this._stopScrollTimers))\n .subscribe(() => {\n const node = this._scrollNode;\n const scrollStep = this.autoScrollStep;\n if (this._verticalScrollDirection === AutoScrollVerticalDirection.UP) {\n node.scrollBy(0, -scrollStep);\n }\n else if (this._verticalScrollDirection === AutoScrollVerticalDirection.DOWN) {\n node.scrollBy(0, scrollStep);\n }\n if (this._horizontalScrollDirection === AutoScrollHorizontalDirection.LEFT) {\n node.scrollBy(-scrollStep, 0);\n }\n else if (this._horizontalScrollDirection === AutoScrollHorizontalDirection.RIGHT) {\n node.scrollBy(scrollStep, 0);\n }\n });\n };\n const coercedElement = (this.element = coerceElement(element));\n this._document = _document;\n this.withOrientation('vertical').withElementContainer(coercedElement);\n _dragDropRegistry.registerDropContainer(this);\n this._parentPositions = new ParentPositionTracker(_document);\n }\n /** Removes the drop list functionality from the DOM element. */\n dispose() {\n this._stopScrolling();\n this._stopScrollTimers.complete();\n this._viewportScrollSubscription.unsubscribe();\n this.beforeStarted.complete();\n this.entered.complete();\n this.exited.complete();\n this.dropped.complete();\n this.sorted.complete();\n this.receivingStarted.complete();\n this.receivingStopped.complete();\n this._activeSiblings.clear();\n this._scrollNode = null;\n this._parentPositions.clear();\n this._dragDropRegistry.removeDropContainer(this);\n }\n /** Whether an item from this list is currently being dragged. */\n isDragging() {\n return this._isDragging;\n }\n /** Starts dragging an item. */\n start() {\n this._draggingStarted();\n this._notifyReceivingSiblings();\n }\n /**\n * Attempts to move an item into the container.\n * @param item Item that was moved into the container.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param index Index at which the item entered. If omitted, the container will try to figure it\n * out automatically.\n */\n enter(item, pointerX, pointerY, index) {\n this._draggingStarted();\n // If sorting is disabled, we want the item to return to its starting\n // position if the user is returning it to its initial container.\n if (index == null && this.sortingDisabled) {\n index = this._draggables.indexOf(item);\n }\n this._sortStrategy.enter(item, pointerX, pointerY, index);\n // Note that this usually happens inside `_draggingStarted` as well, but the dimensions\n // can change when the sort strategy moves the item around inside `enter`.\n this._cacheParentPositions();\n // Notify siblings at the end so that the item has been inserted into the `activeDraggables`.\n this._notifyReceivingSiblings();\n this.entered.next({ item, container: this, currentIndex: this.getItemIndex(item) });\n }\n /**\n * Removes an item from the container after it was dragged into another container by the user.\n * @param item Item that was dragged out.\n */\n exit(item) {\n this._reset();\n this.exited.next({ item, container: this });\n }\n /**\n * Drops an item into this container.\n * @param item Item being dropped into the container.\n * @param currentIndex Index at which the item should be inserted.\n * @param previousIndex Index of the item when dragging started.\n * @param previousContainer Container from which the item got dragged in.\n * @param isPointerOverContainer Whether the user's pointer was over the\n * container when the item was dropped.\n * @param distance Distance the user has dragged since the start of the dragging sequence.\n * @param event Event that triggered the dropping sequence.\n *\n * @breaking-change 15.0.0 `previousIndex` and `event` parameters to become required.\n */\n drop(item, currentIndex, previousIndex, previousContainer, isPointerOverContainer, distance, dropPoint, event = {}) {\n this._reset();\n this.dropped.next({\n item,\n currentIndex,\n previousIndex,\n container: this,\n previousContainer,\n isPointerOverContainer,\n distance,\n dropPoint,\n event,\n });\n }\n /**\n * Sets the draggable items that are a part of this list.\n * @param items Items that are a part of this list.\n */\n withItems(items) {\n const previousItems = this._draggables;\n this._draggables = items;\n items.forEach(item => item._withDropContainer(this));\n if (this.isDragging()) {\n const draggedItems = previousItems.filter(item => item.isDragging());\n // If all of the items being dragged were removed\n // from the list, abort the current drag sequence.\n if (draggedItems.every(item => items.indexOf(item) === -1)) {\n this._reset();\n }\n else {\n this._sortStrategy.withItems(this._draggables);\n }\n }\n return this;\n }\n /** Sets the layout direction of the drop list. */\n withDirection(direction) {\n this._direction = direction;\n if (this._sortStrategy instanceof SingleAxisSortStrategy) {\n this._sortStrategy.direction = direction;\n }\n return this;\n }\n /**\n * Sets the containers that are connected to this one. When two or more containers are\n * connected, the user will be allowed to transfer items between them.\n * @param connectedTo Other containers that the current containers should be connected to.\n */\n connectedTo(connectedTo) {\n this._siblings = connectedTo.slice();\n return this;\n }\n /**\n * Sets the orientation of the container.\n * @param orientation New orientation for the container.\n */\n withOrientation(orientation) {\n if (orientation === 'mixed') {\n this._sortStrategy = new MixedSortStrategy(this._document, this._dragDropRegistry);\n }\n else {\n const strategy = new SingleAxisSortStrategy(this._dragDropRegistry);\n strategy.direction = this._direction;\n strategy.orientation = orientation;\n this._sortStrategy = strategy;\n }\n this._sortStrategy.withElementContainer(this._container);\n this._sortStrategy.withSortPredicate((index, item) => this.sortPredicate(index, item, this));\n return this;\n }\n /**\n * Sets which parent elements are can be scrolled while the user is dragging.\n * @param elements Elements that can be scrolled.\n */\n withScrollableParents(elements) {\n const element = this._container;\n // We always allow the current element to be scrollable\n // so we need to ensure that it's in the array.\n this._scrollableElements =\n elements.indexOf(element) === -1 ? [element, ...elements] : elements.slice();\n return this;\n }\n /**\n * Configures the drop list so that a different element is used as the container for the\n * dragged items. This is useful for the cases when one might not have control over the\n * full DOM that sets up the dragging.\n * Note that the alternate container needs to be a descendant of the drop list.\n * @param container New element container to be assigned.\n */\n withElementContainer(container) {\n if (container === this._container) {\n return this;\n }\n const element = coerceElement(this.element);\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n container !== element &&\n !element.contains(container)) {\n throw new Error('Invalid DOM structure for drop list. Alternate container element must be a descendant of the drop list.');\n }\n const oldContainerIndex = this._scrollableElements.indexOf(this._container);\n const newContainerIndex = this._scrollableElements.indexOf(container);\n if (oldContainerIndex > -1) {\n this._scrollableElements.splice(oldContainerIndex, 1);\n }\n if (newContainerIndex > -1) {\n this._scrollableElements.splice(newContainerIndex, 1);\n }\n if (this._sortStrategy) {\n this._sortStrategy.withElementContainer(container);\n }\n this._cachedShadowRoot = null;\n this._scrollableElements.unshift(container);\n this._container = container;\n return this;\n }\n /** Gets the scrollable parents that are registered with this drop container. */\n getScrollableParents() {\n return this._scrollableElements;\n }\n /**\n * Figures out the index of an item in the container.\n * @param item Item whose index should be determined.\n */\n getItemIndex(item) {\n return this._isDragging\n ? this._sortStrategy.getItemIndex(item)\n : this._draggables.indexOf(item);\n }\n /**\n * Whether the list is able to receive the item that\n * is currently being dragged inside a connected drop list.\n */\n isReceiving() {\n return this._activeSiblings.size > 0;\n }\n /**\n * Sorts an item inside the container based on its position.\n * @param item Item to be sorted.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param pointerDelta Direction in which the pointer is moving along each axis.\n */\n _sortItem(item, pointerX, pointerY, pointerDelta) {\n // Don't sort the item if sorting is disabled or it's out of range.\n if (this.sortingDisabled ||\n !this._domRect ||\n !isPointerNearDomRect(this._domRect, DROP_PROXIMITY_THRESHOLD, pointerX, pointerY)) {\n return;\n }\n const result = this._sortStrategy.sort(item, pointerX, pointerY, pointerDelta);\n if (result) {\n this.sorted.next({\n previousIndex: result.previousIndex,\n currentIndex: result.currentIndex,\n container: this,\n item,\n });\n }\n }\n /**\n * Checks whether the user's pointer is close to the edges of either the\n * viewport or the drop list and starts the auto-scroll sequence.\n * @param pointerX User's pointer position along the x axis.\n * @param pointerY User's pointer position along the y axis.\n */\n _startScrollingIfNecessary(pointerX, pointerY) {\n if (this.autoScrollDisabled) {\n return;\n }\n let scrollNode;\n let verticalScrollDirection = AutoScrollVerticalDirection.NONE;\n let horizontalScrollDirection = AutoScrollHorizontalDirection.NONE;\n // Check whether we should start scrolling any of the parent containers.\n this._parentPositions.positions.forEach((position, element) => {\n // We have special handling for the `document` below. Also this would be\n // nicer with a for...of loop, but it requires changing a compiler flag.\n if (element === this._document || !position.clientRect || scrollNode) {\n return;\n }\n if (isPointerNearDomRect(position.clientRect, DROP_PROXIMITY_THRESHOLD, pointerX, pointerY)) {\n [verticalScrollDirection, horizontalScrollDirection] = getElementScrollDirections(element, position.clientRect, this._direction, pointerX, pointerY);\n if (verticalScrollDirection || horizontalScrollDirection) {\n scrollNode = element;\n }\n }\n });\n // Otherwise check if we can start scrolling the viewport.\n if (!verticalScrollDirection && !horizontalScrollDirection) {\n const { width, height } = this._viewportRuler.getViewportSize();\n const domRect = {\n width,\n height,\n top: 0,\n right: width,\n bottom: height,\n left: 0,\n };\n verticalScrollDirection = getVerticalScrollDirection(domRect, pointerY);\n horizontalScrollDirection = getHorizontalScrollDirection(domRect, pointerX);\n scrollNode = window;\n }\n if (scrollNode &&\n (verticalScrollDirection !== this._verticalScrollDirection ||\n horizontalScrollDirection !== this._horizontalScrollDirection ||\n scrollNode !== this._scrollNode)) {\n this._verticalScrollDirection = verticalScrollDirection;\n this._horizontalScrollDirection = horizontalScrollDirection;\n this._scrollNode = scrollNode;\n if ((verticalScrollDirection || horizontalScrollDirection) && scrollNode) {\n this._ngZone.runOutsideAngular(this._startScrollInterval);\n }\n else {\n this._stopScrolling();\n }\n }\n }\n /** Stops any currently-running auto-scroll sequences. */\n _stopScrolling() {\n this._stopScrollTimers.next();\n }\n /** Starts the dragging sequence within the list. */\n _draggingStarted() {\n const styles = this._container.style;\n this.beforeStarted.next();\n this._isDragging = true;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n // Prevent the check from running on apps not using an alternate container. Ideally we\n // would always run it, but introducing it at this stage would be a breaking change.\n this._container !== coerceElement(this.element)) {\n for (const drag of this._draggables) {\n if (!drag.isDragging() && drag.getVisibleElement().parentNode !== this._container) {\n throw new Error('Invalid DOM structure for drop list. All items must be placed directly inside of the element container.');\n }\n }\n }\n // We need to disable scroll snapping while the user is dragging, because it breaks automatic\n // scrolling. The browser seems to round the value based on the snapping points which means\n // that we can't increment/decrement the scroll position.\n this._initialScrollSnap = styles.msScrollSnapType || styles.scrollSnapType || '';\n styles.scrollSnapType = styles.msScrollSnapType = 'none';\n this._sortStrategy.start(this._draggables);\n this._cacheParentPositions();\n this._viewportScrollSubscription.unsubscribe();\n this._listenToScrollEvents();\n }\n /** Caches the positions of the configured scrollable parents. */\n _cacheParentPositions() {\n this._parentPositions.cache(this._scrollableElements);\n // The list element is always in the `scrollableElements`\n // so we can take advantage of the cached `DOMRect`.\n this._domRect = this._parentPositions.positions.get(this._container).clientRect;\n }\n /** Resets the container to its initial state. */\n _reset() {\n this._isDragging = false;\n const styles = this._container.style;\n styles.scrollSnapType = styles.msScrollSnapType = this._initialScrollSnap;\n this._siblings.forEach(sibling => sibling._stopReceiving(this));\n this._sortStrategy.reset();\n this._stopScrolling();\n this._viewportScrollSubscription.unsubscribe();\n this._parentPositions.clear();\n }\n /**\n * Checks whether the user's pointer is positioned over the container.\n * @param x Pointer position along the X axis.\n * @param y Pointer position along the Y axis.\n */\n _isOverContainer(x, y) {\n return this._domRect != null && isInsideClientRect(this._domRect, x, y);\n }\n /**\n * Figures out whether an item should be moved into a sibling\n * drop container, based on its current position.\n * @param item Drag item that is being moved.\n * @param x Position of the item along the X axis.\n * @param y Position of the item along the Y axis.\n */\n _getSiblingContainerFromPosition(item, x, y) {\n return this._siblings.find(sibling => sibling._canReceive(item, x, y));\n }\n /**\n * Checks whether the drop list can receive the passed-in item.\n * @param item Item that is being dragged into the list.\n * @param x Position of the item along the X axis.\n * @param y Position of the item along the Y axis.\n */\n _canReceive(item, x, y) {\n if (!this._domRect ||\n !isInsideClientRect(this._domRect, x, y) ||\n !this.enterPredicate(item, this)) {\n return false;\n }\n const elementFromPoint = this._getShadowRoot().elementFromPoint(x, y);\n // If there's no element at the pointer position, then\n // the client rect is probably scrolled out of the view.\n if (!elementFromPoint) {\n return false;\n }\n // The `DOMRect`, that we're using to find the container over which the user is\n // hovering, doesn't give us any information on whether the element has been scrolled\n // out of the view or whether it's overlapping with other containers. This means that\n // we could end up transferring the item into a container that's invisible or is positioned\n // below another one. We use the result from `elementFromPoint` to get the top-most element\n // at the pointer position and to find whether it's one of the intersecting drop containers.\n return elementFromPoint === this._container || this._container.contains(elementFromPoint);\n }\n /**\n * Called by one of the connected drop lists when a dragging sequence has started.\n * @param sibling Sibling in which dragging has started.\n */\n _startReceiving(sibling, items) {\n const activeSiblings = this._activeSiblings;\n if (!activeSiblings.has(sibling) &&\n items.every(item => {\n // Note that we have to add an exception to the `enterPredicate` for items that started off\n // in this drop list. The drag ref has logic that allows an item to return to its initial\n // container, if it has left the initial container and none of the connected containers\n // allow it to enter. See `DragRef._updateActiveDropContainer` for more context.\n return this.enterPredicate(item, this) || this._draggables.indexOf(item) > -1;\n })) {\n activeSiblings.add(sibling);\n this._cacheParentPositions();\n this._listenToScrollEvents();\n this.receivingStarted.next({\n initiator: sibling,\n receiver: this,\n items,\n });\n }\n }\n /**\n * Called by a connected drop list when dragging has stopped.\n * @param sibling Sibling whose dragging has stopped.\n */\n _stopReceiving(sibling) {\n this._activeSiblings.delete(sibling);\n this._viewportScrollSubscription.unsubscribe();\n this.receivingStopped.next({ initiator: sibling, receiver: this });\n }\n /**\n * Starts listening to scroll events on the viewport.\n * Used for updating the internal state of the list.\n */\n _listenToScrollEvents() {\n this._viewportScrollSubscription = this._dragDropRegistry\n .scrolled(this._getShadowRoot())\n .subscribe(event => {\n if (this.isDragging()) {\n const scrollDifference = this._parentPositions.handleScroll(event);\n if (scrollDifference) {\n this._sortStrategy.updateOnScroll(scrollDifference.top, scrollDifference.left);\n }\n }\n else if (this.isReceiving()) {\n this._cacheParentPositions();\n }\n });\n }\n /**\n * Lazily resolves and returns the shadow root of the element. We do this in a function, rather\n * than saving it in property directly on init, because we want to resolve it as late as possible\n * in order to ensure that the element has been moved into the shadow DOM. Doing it inside the\n * constructor might be too early if the element is inside of something like `ngFor` or `ngIf`.\n */\n _getShadowRoot() {\n if (!this._cachedShadowRoot) {\n const shadowRoot = _getShadowRoot(this._container);\n this._cachedShadowRoot = shadowRoot || this._document;\n }\n return this._cachedShadowRoot;\n }\n /** Notifies any siblings that may potentially receive the item. */\n _notifyReceivingSiblings() {\n const draggedItems = this._sortStrategy\n .getActiveItemsSnapshot()\n .filter(item => item.isDragging());\n this._siblings.forEach(sibling => sibling._startReceiving(this, draggedItems));\n }\n}\n/**\n * Gets whether the vertical auto-scroll direction of a node.\n * @param clientRect Dimensions of the node.\n * @param pointerY Position of the user's pointer along the y axis.\n */\nfunction getVerticalScrollDirection(clientRect, pointerY) {\n const { top, bottom, height } = clientRect;\n const yThreshold = height * SCROLL_PROXIMITY_THRESHOLD;\n if (pointerY >= top - yThreshold && pointerY <= top + yThreshold) {\n return AutoScrollVerticalDirection.UP;\n }\n else if (pointerY >= bottom - yThreshold && pointerY <= bottom + yThreshold) {\n return AutoScrollVerticalDirection.DOWN;\n }\n return AutoScrollVerticalDirection.NONE;\n}\n/**\n * Gets whether the horizontal auto-scroll direction of a node.\n * @param clientRect Dimensions of the node.\n * @param pointerX Position of the user's pointer along the x axis.\n */\nfunction getHorizontalScrollDirection(clientRect, pointerX) {\n const { left, right, width } = clientRect;\n const xThreshold = width * SCROLL_PROXIMITY_THRESHOLD;\n if (pointerX >= left - xThreshold && pointerX <= left + xThreshold) {\n return AutoScrollHorizontalDirection.LEFT;\n }\n else if (pointerX >= right - xThreshold && pointerX <= right + xThreshold) {\n return AutoScrollHorizontalDirection.RIGHT;\n }\n return AutoScrollHorizontalDirection.NONE;\n}\n/**\n * Gets the directions in which an element node should be scrolled,\n * assuming that the user's pointer is already within it scrollable region.\n * @param element Element for which we should calculate the scroll direction.\n * @param clientRect Bounding client rectangle of the element.\n * @param direction Layout direction of the drop list.\n * @param pointerX Position of the user's pointer along the x axis.\n * @param pointerY Position of the user's pointer along the y axis.\n */\nfunction getElementScrollDirections(element, clientRect, direction, pointerX, pointerY) {\n const computedVertical = getVerticalScrollDirection(clientRect, pointerY);\n const computedHorizontal = getHorizontalScrollDirection(clientRect, pointerX);\n let verticalScrollDirection = AutoScrollVerticalDirection.NONE;\n let horizontalScrollDirection = AutoScrollHorizontalDirection.NONE;\n // Note that we here we do some extra checks for whether the element is actually scrollable in\n // a certain direction and we only assign the scroll direction if it is. We do this so that we\n // can allow other elements to be scrolled, if the current element can't be scrolled anymore.\n // This allows us to handle cases where the scroll regions of two scrollable elements overlap.\n if (computedVertical) {\n const scrollTop = element.scrollTop;\n if (computedVertical === AutoScrollVerticalDirection.UP) {\n if (scrollTop > 0) {\n verticalScrollDirection = AutoScrollVerticalDirection.UP;\n }\n }\n else if (element.scrollHeight - scrollTop > element.clientHeight) {\n verticalScrollDirection = AutoScrollVerticalDirection.DOWN;\n }\n }\n if (computedHorizontal) {\n const scrollLeft = element.scrollLeft;\n if (direction === 'rtl') {\n if (computedHorizontal === AutoScrollHorizontalDirection.RIGHT) {\n // In RTL `scrollLeft` will be negative when scrolled.\n if (scrollLeft < 0) {\n horizontalScrollDirection = AutoScrollHorizontalDirection.RIGHT;\n }\n }\n else if (element.scrollWidth + scrollLeft > element.clientWidth) {\n horizontalScrollDirection = AutoScrollHorizontalDirection.LEFT;\n }\n }\n else {\n if (computedHorizontal === AutoScrollHorizontalDirection.LEFT) {\n if (scrollLeft > 0) {\n horizontalScrollDirection = AutoScrollHorizontalDirection.LEFT;\n }\n }\n else if (element.scrollWidth - scrollLeft > element.clientWidth) {\n horizontalScrollDirection = AutoScrollHorizontalDirection.RIGHT;\n }\n }\n }\n return [verticalScrollDirection, horizontalScrollDirection];\n}\n\n/** Event options that can be used to bind an active, capturing event. */\nconst activeCapturingEventOptions = normalizePassiveListenerOptions({\n passive: false,\n capture: true,\n});\n/** Keeps track of the apps currently containing drag items. */\nconst activeApps = new Set();\n/**\n * Component used to load the drag&drop reset styles.\n * @docs-private\n */\nclass _ResetsLoader {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: _ResetsLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"18.2.0-next.2\", type: _ResetsLoader, isStandalone: true, selector: \"ng-component\", host: { attributes: { \"cdk-drag-resets-container\": \"\" } }, ngImport: i0, template: '', isInline: true, styles: [\"@layer cdk-resets{.cdk-drag-preview{background:none;border:none;padding:0;color:inherit}}.cdk-drag-placeholder *,.cdk-drag-preview *{pointer-events:none !important}\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: _ResetsLoader, decorators: [{\n type: Component,\n args: [{ standalone: true, encapsulation: ViewEncapsulation.None, template: '', changeDetection: ChangeDetectionStrategy.OnPush, host: { 'cdk-drag-resets-container': '' }, styles: [\"@layer cdk-resets{.cdk-drag-preview{background:none;border:none;padding:0;color:inherit}}.cdk-drag-placeholder *,.cdk-drag-preview *{pointer-events:none !important}\"] }]\n }] });\n// TODO(crisbeto): remove generics when making breaking changes.\n/**\n * Service that keeps track of all the drag item and drop container\n * instances, and manages global event listeners on the `document`.\n * @docs-private\n */\nclass DragDropRegistry {\n constructor(_ngZone, _document) {\n this._ngZone = _ngZone;\n this._appRef = inject(ApplicationRef);\n this._environmentInjector = inject(EnvironmentInjector);\n /** Registered drop container instances. */\n this._dropInstances = new Set();\n /** Registered drag item instances. */\n this._dragInstances = new Set();\n /** Drag item instances that are currently being dragged. */\n this._activeDragInstances = signal([]);\n /** Keeps track of the event listeners that we've bound to the `document`. */\n this._globalListeners = new Map();\n /**\n * Predicate function to check if an item is being dragged. Moved out into a property,\n * because it'll be called a lot and we don't want to create a new function every time.\n */\n this._draggingPredicate = (item) => item.isDragging();\n /**\n * Emits the `touchmove` or `mousemove` events that are dispatched\n * while the user is dragging a drag item instance.\n */\n this.pointerMove = new Subject();\n /**\n * Emits the `touchend` or `mouseup` events that are dispatched\n * while the user is dragging a drag item instance.\n */\n this.pointerUp = new Subject();\n /**\n * Emits when the viewport has been scrolled while the user is dragging an item.\n * @deprecated To be turned into a private member. Use the `scrolled` method instead.\n * @breaking-change 13.0.0\n */\n this.scroll = new Subject();\n /**\n * Event listener that will prevent the default browser action while the user is dragging.\n * @param event Event whose default action should be prevented.\n */\n this._preventDefaultWhileDragging = (event) => {\n if (this._activeDragInstances().length > 0) {\n event.preventDefault();\n }\n };\n /** Event listener for `touchmove` that is bound even if no dragging is happening. */\n this._persistentTouchmoveListener = (event) => {\n if (this._activeDragInstances().length > 0) {\n // Note that we only want to prevent the default action after dragging has actually started.\n // Usually this is the same time at which the item is added to the `_activeDragInstances`,\n // but it could be pushed back if the user has set up a drag delay or threshold.\n if (this._activeDragInstances().some(this._draggingPredicate)) {\n event.preventDefault();\n }\n this.pointerMove.next(event);\n }\n };\n this._document = _document;\n }\n /** Adds a drop container to the registry. */\n registerDropContainer(drop) {\n if (!this._dropInstances.has(drop)) {\n this._dropInstances.add(drop);\n }\n }\n /** Adds a drag item instance to the registry. */\n registerDragItem(drag) {\n this._dragInstances.add(drag);\n // The `touchmove` event gets bound once, ahead of time, because WebKit\n // won't preventDefault on a dynamically-added `touchmove` listener.\n // See https://bugs.webkit.org/show_bug.cgi?id=184250.\n if (this._dragInstances.size === 1) {\n this._ngZone.runOutsideAngular(() => {\n // The event handler has to be explicitly active,\n // because newer browsers make it passive by default.\n this._document.addEventListener('touchmove', this._persistentTouchmoveListener, activeCapturingEventOptions);\n });\n }\n }\n /** Removes a drop container from the registry. */\n removeDropContainer(drop) {\n this._dropInstances.delete(drop);\n }\n /** Removes a drag item instance from the registry. */\n removeDragItem(drag) {\n this._dragInstances.delete(drag);\n this.stopDragging(drag);\n if (this._dragInstances.size === 0) {\n this._document.removeEventListener('touchmove', this._persistentTouchmoveListener, activeCapturingEventOptions);\n }\n }\n /**\n * Starts the dragging sequence for a drag instance.\n * @param drag Drag instance which is being dragged.\n * @param event Event that initiated the dragging.\n */\n startDragging(drag, event) {\n // Do not process the same drag twice to avoid memory leaks and redundant listeners\n if (this._activeDragInstances().indexOf(drag) > -1) {\n return;\n }\n this._loadResets();\n this._activeDragInstances.update(instances => [...instances, drag]);\n if (this._activeDragInstances().length === 1) {\n const isTouchEvent = event.type.startsWith('touch');\n // We explicitly bind __active__ listeners here, because newer browsers will default to\n // passive ones for `mousemove` and `touchmove`. The events need to be active, because we\n // use `preventDefault` to prevent the page from scrolling while the user is dragging.\n this._globalListeners\n .set(isTouchEvent ? 'touchend' : 'mouseup', {\n handler: (e) => this.pointerUp.next(e),\n options: true,\n })\n .set('scroll', {\n handler: (e) => this.scroll.next(e),\n // Use capturing so that we pick up scroll changes in any scrollable nodes that aren't\n // the document. See https://github.com/angular/components/issues/17144.\n options: true,\n })\n // Preventing the default action on `mousemove` isn't enough to disable text selection\n // on Safari so we need to prevent the selection event as well. Alternatively this can\n // be done by setting `user-select: none` on the `body`, however it has causes a style\n // recalculation which can be expensive on pages with a lot of elements.\n .set('selectstart', {\n handler: this._preventDefaultWhileDragging,\n options: activeCapturingEventOptions,\n });\n // We don't have to bind a move event for touch drag sequences, because\n // we already have a persistent global one bound from `registerDragItem`.\n if (!isTouchEvent) {\n this._globalListeners.set('mousemove', {\n handler: (e) => this.pointerMove.next(e),\n options: activeCapturingEventOptions,\n });\n }\n this._ngZone.runOutsideAngular(() => {\n this._globalListeners.forEach((config, name) => {\n this._document.addEventListener(name, config.handler, config.options);\n });\n });\n }\n }\n /** Stops dragging a drag item instance. */\n stopDragging(drag) {\n this._activeDragInstances.update(instances => {\n const index = instances.indexOf(drag);\n if (index > -1) {\n instances.splice(index, 1);\n return [...instances];\n }\n return instances;\n });\n if (this._activeDragInstances().length === 0) {\n this._clearGlobalListeners();\n }\n }\n /** Gets whether a drag item instance is currently being dragged. */\n isDragging(drag) {\n return this._activeDragInstances().indexOf(drag) > -1;\n }\n /**\n * Gets a stream that will emit when any element on the page is scrolled while an item is being\n * dragged.\n * @param shadowRoot Optional shadow root that the current dragging sequence started from.\n * Top-level listeners won't pick up events coming from the shadow DOM so this parameter can\n * be used to include an additional top-level listener at the shadow root level.\n */\n scrolled(shadowRoot) {\n const streams = [this.scroll];\n if (shadowRoot && shadowRoot !== this._document) {\n // Note that this is basically the same as `fromEvent` from rxjs, but we do it ourselves,\n // because we want to guarantee that the event is bound outside of the `NgZone`. With\n // `fromEvent` it'll only happen if the subscription is outside the `NgZone`.\n streams.push(new Observable((observer) => {\n return this._ngZone.runOutsideAngular(() => {\n const eventOptions = true;\n const callback = (event) => {\n if (this._activeDragInstances().length) {\n observer.next(event);\n }\n };\n shadowRoot.addEventListener('scroll', callback, eventOptions);\n return () => {\n shadowRoot.removeEventListener('scroll', callback, eventOptions);\n };\n });\n }));\n }\n return merge(...streams);\n }\n ngOnDestroy() {\n this._dragInstances.forEach(instance => this.removeDragItem(instance));\n this._dropInstances.forEach(instance => this.removeDropContainer(instance));\n this._clearGlobalListeners();\n this.pointerMove.complete();\n this.pointerUp.complete();\n }\n /** Clears out the global event listeners from the `document`. */\n _clearGlobalListeners() {\n this._globalListeners.forEach((config, name) => {\n this._document.removeEventListener(name, config.handler, config.options);\n });\n this._globalListeners.clear();\n }\n // TODO(crisbeto): abstract this away into something reusable.\n /** Loads the CSS resets needed for the module to work correctly. */\n _loadResets() {\n if (!activeApps.has(this._appRef)) {\n activeApps.add(this._appRef);\n const componentRef = createComponent(_ResetsLoader, {\n environmentInjector: this._environmentInjector,\n });\n this._appRef.onDestroy(() => {\n activeApps.delete(this._appRef);\n if (activeApps.size === 0) {\n componentRef.destroy();\n }\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: DragDropRegistry, deps: [{ token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: DragDropRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: DragDropRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }] });\n\n/** Default configuration to be used when creating a `DragRef`. */\nconst DEFAULT_CONFIG = {\n dragStartThreshold: 5,\n pointerDirectionChangeThreshold: 5,\n};\n/**\n * Service that allows for drag-and-drop functionality to be attached to DOM elements.\n */\nclass DragDrop {\n constructor(_document, _ngZone, _viewportRuler, _dragDropRegistry) {\n this._document = _document;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._dragDropRegistry = _dragDropRegistry;\n }\n /**\n * Turns an element into a draggable item.\n * @param element Element to which to attach the dragging functionality.\n * @param config Object used to configure the dragging behavior.\n */\n createDrag(element, config = DEFAULT_CONFIG) {\n return new DragRef(element, config, this._document, this._ngZone, this._viewportRuler, this._dragDropRegistry);\n }\n /**\n * Turns an element into a drop list.\n * @param element Element to which to attach the drop list functionality.\n */\n createDropList(element) {\n return new DropListRef(element, this._dragDropRegistry, this._document, this._ngZone, this._viewportRuler);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: DragDrop, deps: [{ token: DOCUMENT }, { token: i0.NgZone }, { token: i1.ViewportRuler }, { token: DragDropRegistry }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: DragDrop, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: DragDrop, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone }, { type: i1.ViewportRuler }, { type: DragDropRegistry }] });\n\n/**\n * Injection token that can be used for a `CdkDrag` to provide itself as a parent to the\n * drag-specific child directive (`CdkDragHandle`, `CdkDragPreview` etc.). Used primarily\n * to avoid circular imports.\n * @docs-private\n */\nconst CDK_DRAG_PARENT = new InjectionToken('CDK_DRAG_PARENT');\n\n/**\n * Asserts that a particular node is an element.\n * @param node Node to be checked.\n * @param name Name to attach to the error message.\n */\nfunction assertElementNode(node, name) {\n if (node.nodeType !== 1) {\n throw Error(`${name} must be attached to an element node. ` + `Currently attached to \"${node.nodeName}\".`);\n }\n}\n\n/**\n * Injection token that can be used to reference instances of `CdkDragHandle`. It serves as\n * alternative token to the actual `CdkDragHandle` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DRAG_HANDLE = new InjectionToken('CdkDragHandle');\n/** Handle that can be used to drag a CdkDrag instance. */\nclass CdkDragHandle {\n /** Whether starting to drag through this handle is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n this._stateChanges.next(this);\n }\n constructor(element, _parentDrag) {\n this.element = element;\n this._parentDrag = _parentDrag;\n /** Emits when the state of the handle has changed. */\n this._stateChanges = new Subject();\n this._disabled = false;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertElementNode(element.nativeElement, 'cdkDragHandle');\n }\n _parentDrag?._addHandle(this);\n }\n ngOnDestroy() {\n this._parentDrag?._removeHandle(this);\n this._stateChanges.complete();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDragHandle, deps: [{ token: i0.ElementRef }, { token: CDK_DRAG_PARENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"18.2.0-next.2\", type: CdkDragHandle, isStandalone: true, selector: \"[cdkDragHandle]\", inputs: { disabled: [\"cdkDragHandleDisabled\", \"disabled\", booleanAttribute] }, host: { classAttribute: \"cdk-drag-handle\" }, providers: [{ provide: CDK_DRAG_HANDLE, useExisting: CdkDragHandle }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDragHandle, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDragHandle]',\n standalone: true,\n host: {\n 'class': 'cdk-drag-handle',\n },\n providers: [{ provide: CDK_DRAG_HANDLE, useExisting: CdkDragHandle }],\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_DRAG_PARENT]\n }, {\n type: Optional\n }, {\n type: SkipSelf\n }] }], propDecorators: { disabled: [{\n type: Input,\n args: [{ alias: 'cdkDragHandleDisabled', transform: booleanAttribute }]\n }] } });\n\n/**\n * Injection token that can be used to configure the\n * behavior of the drag&drop-related components.\n */\nconst CDK_DRAG_CONFIG = new InjectionToken('CDK_DRAG_CONFIG');\n\nconst DRAG_HOST_CLASS = 'cdk-drag';\n/**\n * Injection token that can be used to reference instances of `CdkDropList`. It serves as\n * alternative token to the actual `CdkDropList` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DROP_LIST = new InjectionToken('CdkDropList');\n/** Element that can be moved inside a CdkDropList container. */\nclass CdkDrag {\n static { this._dragInstances = []; }\n /** Whether starting to drag this element is disabled. */\n get disabled() {\n return this._disabled || (this.dropContainer && this.dropContainer.disabled);\n }\n set disabled(value) {\n this._disabled = value;\n this._dragRef.disabled = this._disabled;\n }\n constructor(\n /** Element that the draggable is attached to. */\n element, \n /** Droppable container that the draggable is a part of. */\n dropContainer, \n /**\n * @deprecated `_document` parameter no longer being used and will be removed.\n * @breaking-change 12.0.0\n */\n _document, _ngZone, _viewContainerRef, config, _dir, dragDrop, _changeDetectorRef, _selfHandle, _parentDrag) {\n this.element = element;\n this.dropContainer = dropContainer;\n this._ngZone = _ngZone;\n this._viewContainerRef = _viewContainerRef;\n this._dir = _dir;\n this._changeDetectorRef = _changeDetectorRef;\n this._selfHandle = _selfHandle;\n this._parentDrag = _parentDrag;\n this._destroyed = new Subject();\n this._handles = new BehaviorSubject([]);\n /**\n * If the parent of the dragged element has a `scale` transform, it can throw off the\n * positioning when the user starts dragging. Use this input to notify the CDK of the scale.\n */\n this.scale = 1;\n /** Emits when the user starts dragging the item. */\n this.started = new EventEmitter();\n /** Emits when the user has released a drag item, before any animations have started. */\n this.released = new EventEmitter();\n /** Emits when the user stops dragging an item in the container. */\n this.ended = new EventEmitter();\n /** Emits when the user has moved the item into a new container. */\n this.entered = new EventEmitter();\n /** Emits when the user removes the item its container by dragging it into another container. */\n this.exited = new EventEmitter();\n /** Emits when the user drops the item inside a container. */\n this.dropped = new EventEmitter();\n /**\n * Emits as the user is dragging the item. Use with caution,\n * because this event will fire for every pixel that the user has dragged.\n */\n this.moved = new Observable((observer) => {\n const subscription = this._dragRef.moved\n .pipe(map(movedEvent => ({\n source: this,\n pointerPosition: movedEvent.pointerPosition,\n event: movedEvent.event,\n delta: movedEvent.delta,\n distance: movedEvent.distance,\n })))\n .subscribe(observer);\n return () => {\n subscription.unsubscribe();\n };\n });\n this._injector = inject(Injector);\n this._dragRef = dragDrop.createDrag(element, {\n dragStartThreshold: config && config.dragStartThreshold != null ? config.dragStartThreshold : 5,\n pointerDirectionChangeThreshold: config && config.pointerDirectionChangeThreshold != null\n ? config.pointerDirectionChangeThreshold\n : 5,\n zIndex: config?.zIndex,\n });\n this._dragRef.data = this;\n // We have to keep track of the drag instances in order to be able to match an element to\n // a drag instance. We can't go through the global registry of `DragRef`, because the root\n // element could be different.\n CdkDrag._dragInstances.push(this);\n if (config) {\n this._assignDefaults(config);\n }\n // Note that usually the container is assigned when the drop list is picks up the item, but in\n // some cases (mainly transplanted views with OnPush, see #18341) we may end up in a situation\n // where there are no items on the first change detection pass, but the items get picked up as\n // soon as the user triggers another pass by dragging. This is a problem, because the item would\n // have to switch from standalone mode to drag mode in the middle of the dragging sequence which\n // is too late since the two modes save different kinds of information. We work around it by\n // assigning the drop container both from here and the list.\n if (dropContainer) {\n this._dragRef._withDropContainer(dropContainer._dropListRef);\n dropContainer.addItem(this);\n // The drop container reads this so we need to sync it here.\n dropContainer._dropListRef.beforeStarted.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._dragRef.scale = this.scale;\n });\n }\n this._syncInputs(this._dragRef);\n this._handleEvents(this._dragRef);\n }\n /**\n * Returns the element that is being used as a placeholder\n * while the current element is being dragged.\n */\n getPlaceholderElement() {\n return this._dragRef.getPlaceholderElement();\n }\n /** Returns the root draggable element. */\n getRootElement() {\n return this._dragRef.getRootElement();\n }\n /** Resets a standalone drag item to its initial position. */\n reset() {\n this._dragRef.reset();\n }\n /**\n * Gets the pixel coordinates of the draggable outside of a drop container.\n */\n getFreeDragPosition() {\n return this._dragRef.getFreeDragPosition();\n }\n /**\n * Sets the current position in pixels the draggable outside of a drop container.\n * @param value New position to be set.\n */\n setFreeDragPosition(value) {\n this._dragRef.setFreeDragPosition(value);\n }\n ngAfterViewInit() {\n // We need to wait until after render, in order for the reference\n // element to be in the proper place in the DOM. This is mostly relevant\n // for draggable elements inside portals since they get stamped out in\n // their original DOM position, and then they get transferred to the portal.\n afterNextRender(() => {\n this._updateRootElement();\n this._setupHandlesListener();\n if (this.freeDragPosition) {\n this._dragRef.setFreeDragPosition(this.freeDragPosition);\n }\n }, { injector: this._injector });\n }\n ngOnChanges(changes) {\n const rootSelectorChange = changes['rootElementSelector'];\n const positionChange = changes['freeDragPosition'];\n // We don't have to react to the first change since it's being\n // handled in the `afterNextRender` queued up in the constructor.\n if (rootSelectorChange && !rootSelectorChange.firstChange) {\n this._updateRootElement();\n }\n // Skip the first change since it's being handled in the `afterNextRender` queued up in the\n // constructor.\n if (positionChange && !positionChange.firstChange && this.freeDragPosition) {\n this._dragRef.setFreeDragPosition(this.freeDragPosition);\n }\n }\n ngOnDestroy() {\n if (this.dropContainer) {\n this.dropContainer.removeItem(this);\n }\n const index = CdkDrag._dragInstances.indexOf(this);\n if (index > -1) {\n CdkDrag._dragInstances.splice(index, 1);\n }\n // Unnecessary in most cases, but used to avoid extra change detections with `zone-paths-rxjs`.\n this._ngZone.runOutsideAngular(() => {\n this._handles.complete();\n this._destroyed.next();\n this._destroyed.complete();\n this._dragRef.dispose();\n });\n }\n _addHandle(handle) {\n const handles = this._handles.getValue();\n handles.push(handle);\n this._handles.next(handles);\n }\n _removeHandle(handle) {\n const handles = this._handles.getValue();\n const index = handles.indexOf(handle);\n if (index > -1) {\n handles.splice(index, 1);\n this._handles.next(handles);\n }\n }\n _setPreviewTemplate(preview) {\n this._previewTemplate = preview;\n }\n _resetPreviewTemplate(preview) {\n if (preview === this._previewTemplate) {\n this._previewTemplate = null;\n }\n }\n _setPlaceholderTemplate(placeholder) {\n this._placeholderTemplate = placeholder;\n }\n _resetPlaceholderTemplate(placeholder) {\n if (placeholder === this._placeholderTemplate) {\n this._placeholderTemplate = null;\n }\n }\n /** Syncs the root element with the `DragRef`. */\n _updateRootElement() {\n const element = this.element.nativeElement;\n let rootElement = element;\n if (this.rootElementSelector) {\n rootElement =\n element.closest !== undefined\n ? element.closest(this.rootElementSelector)\n : // Comment tag doesn't have closest method, so use parent's one.\n element.parentElement?.closest(this.rootElementSelector);\n }\n if (rootElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n assertElementNode(rootElement, 'cdkDrag');\n }\n this._dragRef.withRootElement(rootElement || element);\n }\n /** Gets the boundary element, based on the `boundaryElement` value. */\n _getBoundaryElement() {\n const boundary = this.boundaryElement;\n if (!boundary) {\n return null;\n }\n if (typeof boundary === 'string') {\n return this.element.nativeElement.closest(boundary);\n }\n return coerceElement(boundary);\n }\n /** Syncs the inputs of the CdkDrag with the options of the underlying DragRef. */\n _syncInputs(ref) {\n ref.beforeStarted.subscribe(() => {\n if (!ref.isDragging()) {\n const dir = this._dir;\n const dragStartDelay = this.dragStartDelay;\n const placeholder = this._placeholderTemplate\n ? {\n template: this._placeholderTemplate.templateRef,\n context: this._placeholderTemplate.data,\n viewContainer: this._viewContainerRef,\n }\n : null;\n const preview = this._previewTemplate\n ? {\n template: this._previewTemplate.templateRef,\n context: this._previewTemplate.data,\n matchSize: this._previewTemplate.matchSize,\n viewContainer: this._viewContainerRef,\n }\n : null;\n ref.disabled = this.disabled;\n ref.lockAxis = this.lockAxis;\n ref.scale = this.scale;\n ref.dragStartDelay =\n typeof dragStartDelay === 'object' && dragStartDelay\n ? dragStartDelay\n : coerceNumberProperty(dragStartDelay);\n ref.constrainPosition = this.constrainPosition;\n ref.previewClass = this.previewClass;\n ref\n .withBoundaryElement(this._getBoundaryElement())\n .withPlaceholderTemplate(placeholder)\n .withPreviewTemplate(preview)\n .withPreviewContainer(this.previewContainer || 'global');\n if (dir) {\n ref.withDirection(dir.value);\n }\n }\n });\n // This only needs to be resolved once.\n ref.beforeStarted.pipe(take(1)).subscribe(() => {\n // If we managed to resolve a parent through DI, use it.\n if (this._parentDrag) {\n ref.withParent(this._parentDrag._dragRef);\n return;\n }\n // Otherwise fall back to resolving the parent by looking up the DOM. This can happen if\n // the item was projected into another item by something like `ngTemplateOutlet`.\n let parent = this.element.nativeElement.parentElement;\n while (parent) {\n if (parent.classList.contains(DRAG_HOST_CLASS)) {\n ref.withParent(CdkDrag._dragInstances.find(drag => {\n return drag.element.nativeElement === parent;\n })?._dragRef || null);\n break;\n }\n parent = parent.parentElement;\n }\n });\n }\n /** Handles the events from the underlying `DragRef`. */\n _handleEvents(ref) {\n ref.started.subscribe(startEvent => {\n this.started.emit({ source: this, event: startEvent.event });\n // Since all of these events run outside of change detection,\n // we need to ensure that everything is marked correctly.\n this._changeDetectorRef.markForCheck();\n });\n ref.released.subscribe(releaseEvent => {\n this.released.emit({ source: this, event: releaseEvent.event });\n });\n ref.ended.subscribe(endEvent => {\n this.ended.emit({\n source: this,\n distance: endEvent.distance,\n dropPoint: endEvent.dropPoint,\n event: endEvent.event,\n });\n // Since all of these events run outside of change detection,\n // we need to ensure that everything is marked correctly.\n this._changeDetectorRef.markForCheck();\n });\n ref.entered.subscribe(enterEvent => {\n this.entered.emit({\n container: enterEvent.container.data,\n item: this,\n currentIndex: enterEvent.currentIndex,\n });\n });\n ref.exited.subscribe(exitEvent => {\n this.exited.emit({\n container: exitEvent.container.data,\n item: this,\n });\n });\n ref.dropped.subscribe(dropEvent => {\n this.dropped.emit({\n previousIndex: dropEvent.previousIndex,\n currentIndex: dropEvent.currentIndex,\n previousContainer: dropEvent.previousContainer.data,\n container: dropEvent.container.data,\n isPointerOverContainer: dropEvent.isPointerOverContainer,\n item: this,\n distance: dropEvent.distance,\n dropPoint: dropEvent.dropPoint,\n event: dropEvent.event,\n });\n });\n }\n /** Assigns the default input values based on a provided config object. */\n _assignDefaults(config) {\n const { lockAxis, dragStartDelay, constrainPosition, previewClass, boundaryElement, draggingDisabled, rootElementSelector, previewContainer, } = config;\n this.disabled = draggingDisabled == null ? false : draggingDisabled;\n this.dragStartDelay = dragStartDelay || 0;\n if (lockAxis) {\n this.lockAxis = lockAxis;\n }\n if (constrainPosition) {\n this.constrainPosition = constrainPosition;\n }\n if (previewClass) {\n this.previewClass = previewClass;\n }\n if (boundaryElement) {\n this.boundaryElement = boundaryElement;\n }\n if (rootElementSelector) {\n this.rootElementSelector = rootElementSelector;\n }\n if (previewContainer) {\n this.previewContainer = previewContainer;\n }\n }\n /** Sets up the listener that syncs the handles with the drag ref. */\n _setupHandlesListener() {\n // Listen for any newly-added handles.\n this._handles\n .pipe(\n // Sync the new handles with the DragRef.\n tap(handles => {\n const handleElements = handles.map(handle => handle.element);\n // Usually handles are only allowed to be a descendant of the drag element, but if\n // the consumer defined a different drag root, we should allow the drag element\n // itself to be a handle too.\n if (this._selfHandle && this.rootElementSelector) {\n handleElements.push(this.element);\n }\n this._dragRef.withHandles(handleElements);\n }), \n // Listen if the state of any of the handles changes.\n switchMap((handles) => {\n return merge(...handles.map(item => item._stateChanges.pipe(startWith(item))));\n }), takeUntil(this._destroyed))\n .subscribe(handleInstance => {\n // Enabled/disable the handle that changed in the DragRef.\n const dragRef = this._dragRef;\n const handle = handleInstance.element.nativeElement;\n handleInstance.disabled ? dragRef.disableHandle(handle) : dragRef.enableHandle(handle);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDrag, deps: [{ token: i0.ElementRef }, { token: CDK_DROP_LIST, optional: true, skipSelf: true }, { token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ViewContainerRef }, { token: CDK_DRAG_CONFIG, optional: true }, { token: i1$1.Directionality, optional: true }, { token: DragDrop }, { token: i0.ChangeDetectorRef }, { token: CDK_DRAG_HANDLE, optional: true, self: true }, { token: CDK_DRAG_PARENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"18.2.0-next.2\", type: CdkDrag, isStandalone: true, selector: \"[cdkDrag]\", inputs: { data: [\"cdkDragData\", \"data\"], lockAxis: [\"cdkDragLockAxis\", \"lockAxis\"], rootElementSelector: [\"cdkDragRootElement\", \"rootElementSelector\"], boundaryElement: [\"cdkDragBoundary\", \"boundaryElement\"], dragStartDelay: [\"cdkDragStartDelay\", \"dragStartDelay\"], freeDragPosition: [\"cdkDragFreeDragPosition\", \"freeDragPosition\"], disabled: [\"cdkDragDisabled\", \"disabled\", booleanAttribute], constrainPosition: [\"cdkDragConstrainPosition\", \"constrainPosition\"], previewClass: [\"cdkDragPreviewClass\", \"previewClass\"], previewContainer: [\"cdkDragPreviewContainer\", \"previewContainer\"], scale: [\"cdkDragScale\", \"scale\", numberAttribute] }, outputs: { started: \"cdkDragStarted\", released: \"cdkDragReleased\", ended: \"cdkDragEnded\", entered: \"cdkDragEntered\", exited: \"cdkDragExited\", dropped: \"cdkDragDropped\", moved: \"cdkDragMoved\" }, host: { properties: { \"class.cdk-drag-disabled\": \"disabled\", \"class.cdk-drag-dragging\": \"_dragRef.isDragging()\" }, classAttribute: \"cdk-drag\" }, providers: [{ provide: CDK_DRAG_PARENT, useExisting: CdkDrag }], exportAs: [\"cdkDrag\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDrag, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDrag]',\n exportAs: 'cdkDrag',\n standalone: true,\n host: {\n 'class': DRAG_HOST_CLASS,\n '[class.cdk-drag-disabled]': 'disabled',\n '[class.cdk-drag-dragging]': '_dragRef.isDragging()',\n },\n providers: [{ provide: CDK_DRAG_PARENT, useExisting: CdkDrag }],\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_DROP_LIST]\n }, {\n type: Optional\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_DRAG_CONFIG]\n }] }, { type: i1$1.Directionality, decorators: [{\n type: Optional\n }] }, { type: DragDrop }, { type: i0.ChangeDetectorRef }, { type: CdkDragHandle, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [CDK_DRAG_HANDLE]\n }] }, { type: CdkDrag, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }, {\n type: Inject,\n args: [CDK_DRAG_PARENT]\n }] }], propDecorators: { data: [{\n type: Input,\n args: ['cdkDragData']\n }], lockAxis: [{\n type: Input,\n args: ['cdkDragLockAxis']\n }], rootElementSelector: [{\n type: Input,\n args: ['cdkDragRootElement']\n }], boundaryElement: [{\n type: Input,\n args: ['cdkDragBoundary']\n }], dragStartDelay: [{\n type: Input,\n args: ['cdkDragStartDelay']\n }], freeDragPosition: [{\n type: Input,\n args: ['cdkDragFreeDragPosition']\n }], disabled: [{\n type: Input,\n args: [{ alias: 'cdkDragDisabled', transform: booleanAttribute }]\n }], constrainPosition: [{\n type: Input,\n args: ['cdkDragConstrainPosition']\n }], previewClass: [{\n type: Input,\n args: ['cdkDragPreviewClass']\n }], previewContainer: [{\n type: Input,\n args: ['cdkDragPreviewContainer']\n }], scale: [{\n type: Input,\n args: [{ alias: 'cdkDragScale', transform: numberAttribute }]\n }], started: [{\n type: Output,\n args: ['cdkDragStarted']\n }], released: [{\n type: Output,\n args: ['cdkDragReleased']\n }], ended: [{\n type: Output,\n args: ['cdkDragEnded']\n }], entered: [{\n type: Output,\n args: ['cdkDragEntered']\n }], exited: [{\n type: Output,\n args: ['cdkDragExited']\n }], dropped: [{\n type: Output,\n args: ['cdkDragDropped']\n }], moved: [{\n type: Output,\n args: ['cdkDragMoved']\n }] } });\n\n/**\n * Injection token that can be used to reference instances of `CdkDropListGroup`. It serves as\n * alternative token to the actual `CdkDropListGroup` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DROP_LIST_GROUP = new InjectionToken('CdkDropListGroup');\n/**\n * Declaratively connects sibling `cdkDropList` instances together. All of the `cdkDropList`\n * elements that are placed inside a `cdkDropListGroup` will be connected to each other\n * automatically. Can be used as an alternative to the `cdkDropListConnectedTo` input\n * from `cdkDropList`.\n */\nclass CdkDropListGroup {\n constructor() {\n /** Drop lists registered inside the group. */\n this._items = new Set();\n /** Whether starting a dragging sequence from inside this group is disabled. */\n this.disabled = false;\n }\n ngOnDestroy() {\n this._items.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDropListGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"18.2.0-next.2\", type: CdkDropListGroup, isStandalone: true, selector: \"[cdkDropListGroup]\", inputs: { disabled: [\"cdkDropListGroupDisabled\", \"disabled\", booleanAttribute] }, providers: [{ provide: CDK_DROP_LIST_GROUP, useExisting: CdkDropListGroup }], exportAs: [\"cdkDropListGroup\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDropListGroup, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDropListGroup]',\n exportAs: 'cdkDropListGroup',\n standalone: true,\n providers: [{ provide: CDK_DROP_LIST_GROUP, useExisting: CdkDropListGroup }],\n }]\n }], propDecorators: { disabled: [{\n type: Input,\n args: [{ alias: 'cdkDropListGroupDisabled', transform: booleanAttribute }]\n }] } });\n\n/** Counter used to generate unique ids for drop zones. */\nlet _uniqueIdCounter = 0;\n/** Container that wraps a set of draggable items. */\nclass CdkDropList {\n /** Keeps track of the drop lists that are currently on the page. */\n static { this._dropLists = []; }\n /** Whether starting a dragging sequence from this container is disabled. */\n get disabled() {\n return this._disabled || (!!this._group && this._group.disabled);\n }\n set disabled(value) {\n // Usually we sync the directive and ref state right before dragging starts, in order to have\n // a single point of failure and to avoid having to use setters for everything. `disabled` is\n // a special case, because it can prevent the `beforeStarted` event from firing, which can lock\n // the user in a disabled state, so we also need to sync it as it's being set.\n this._dropListRef.disabled = this._disabled = value;\n }\n constructor(\n /** Element that the drop list is attached to. */\n element, dragDrop, _changeDetectorRef, _scrollDispatcher, _dir, _group, config) {\n this.element = element;\n this._changeDetectorRef = _changeDetectorRef;\n this._scrollDispatcher = _scrollDispatcher;\n this._dir = _dir;\n this._group = _group;\n /** Emits when the list has been destroyed. */\n this._destroyed = new Subject();\n /**\n * Other draggable containers that this container is connected to and into which the\n * container's items can be transferred. Can either be references to other drop containers,\n * or their unique IDs.\n */\n this.connectedTo = [];\n /**\n * Unique ID for the drop zone. Can be used as a reference\n * in the `connectedTo` of another `CdkDropList`.\n */\n this.id = `cdk-drop-list-${_uniqueIdCounter++}`;\n /**\n * Function that is used to determine whether an item\n * is allowed to be moved into a drop container.\n */\n this.enterPredicate = () => true;\n /** Functions that is used to determine whether an item can be sorted into a particular index. */\n this.sortPredicate = () => true;\n /** Emits when the user drops an item inside the container. */\n this.dropped = new EventEmitter();\n /**\n * Emits when the user has moved a new drag item into this container.\n */\n this.entered = new EventEmitter();\n /**\n * Emits when the user removes an item from the container\n * by dragging it into another container.\n */\n this.exited = new EventEmitter();\n /** Emits as the user is swapping items while actively dragging. */\n this.sorted = new EventEmitter();\n /**\n * Keeps track of the items that are registered with this container. Historically we used to\n * do this with a `ContentChildren` query, however queries don't handle transplanted views very\n * well which means that we can't handle cases like dragging the headers of a `mat-table`\n * correctly. What we do instead is to have the items register themselves with the container\n * and then we sort them based on their position in the DOM.\n */\n this._unsortedItems = new Set();\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertElementNode(element.nativeElement, 'cdkDropList');\n }\n this._dropListRef = dragDrop.createDropList(element);\n this._dropListRef.data = this;\n if (config) {\n this._assignDefaults(config);\n }\n this._dropListRef.enterPredicate = (drag, drop) => {\n return this.enterPredicate(drag.data, drop.data);\n };\n this._dropListRef.sortPredicate = (index, drag, drop) => {\n return this.sortPredicate(index, drag.data, drop.data);\n };\n this._setupInputSyncSubscription(this._dropListRef);\n this._handleEvents(this._dropListRef);\n CdkDropList._dropLists.push(this);\n if (_group) {\n _group._items.add(this);\n }\n }\n /** Registers an items with the drop list. */\n addItem(item) {\n this._unsortedItems.add(item);\n if (this._dropListRef.isDragging()) {\n this._syncItemsWithRef();\n }\n }\n /** Removes an item from the drop list. */\n removeItem(item) {\n this._unsortedItems.delete(item);\n if (this._dropListRef.isDragging()) {\n this._syncItemsWithRef();\n }\n }\n /** Gets the registered items in the list, sorted by their position in the DOM. */\n getSortedItems() {\n return Array.from(this._unsortedItems).sort((a, b) => {\n const documentPosition = a._dragRef\n .getVisibleElement()\n .compareDocumentPosition(b._dragRef.getVisibleElement());\n // `compareDocumentPosition` returns a bitmask so we have to use a bitwise operator.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // tslint:disable-next-line:no-bitwise\n return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n });\n }\n ngOnDestroy() {\n const index = CdkDropList._dropLists.indexOf(this);\n if (index > -1) {\n CdkDropList._dropLists.splice(index, 1);\n }\n if (this._group) {\n this._group._items.delete(this);\n }\n this._unsortedItems.clear();\n this._dropListRef.dispose();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Syncs the inputs of the CdkDropList with the options of the underlying DropListRef. */\n _setupInputSyncSubscription(ref) {\n if (this._dir) {\n this._dir.change\n .pipe(startWith(this._dir.value), takeUntil(this._destroyed))\n .subscribe(value => ref.withDirection(value));\n }\n ref.beforeStarted.subscribe(() => {\n const siblings = coerceArray(this.connectedTo).map(drop => {\n if (typeof drop === 'string') {\n const correspondingDropList = CdkDropList._dropLists.find(list => list.id === drop);\n if (!correspondingDropList && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n console.warn(`CdkDropList could not find connected drop list with id \"${drop}\"`);\n }\n return correspondingDropList;\n }\n return drop;\n });\n if (this._group) {\n this._group._items.forEach(drop => {\n if (siblings.indexOf(drop) === -1) {\n siblings.push(drop);\n }\n });\n }\n // Note that we resolve the scrollable parents here so that we delay the resolution\n // as long as possible, ensuring that the element is in its final place in the DOM.\n if (!this._scrollableParentsResolved) {\n const scrollableParents = this._scrollDispatcher\n .getAncestorScrollContainers(this.element)\n .map(scrollable => scrollable.getElementRef().nativeElement);\n this._dropListRef.withScrollableParents(scrollableParents);\n // Only do this once since it involves traversing the DOM and the parents\n // shouldn't be able to change without the drop list being destroyed.\n this._scrollableParentsResolved = true;\n }\n if (this.elementContainerSelector) {\n const container = this.element.nativeElement.querySelector(this.elementContainerSelector);\n if (!container && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw new Error(`CdkDropList could not find an element container matching the selector \"${this.elementContainerSelector}\"`);\n }\n ref.withElementContainer(container);\n }\n ref.disabled = this.disabled;\n ref.lockAxis = this.lockAxis;\n ref.sortingDisabled = this.sortingDisabled;\n ref.autoScrollDisabled = this.autoScrollDisabled;\n ref.autoScrollStep = coerceNumberProperty(this.autoScrollStep, 2);\n ref\n .connectedTo(siblings.filter(drop => drop && drop !== this).map(list => list._dropListRef))\n .withOrientation(this.orientation);\n });\n }\n /** Handles events from the underlying DropListRef. */\n _handleEvents(ref) {\n ref.beforeStarted.subscribe(() => {\n this._syncItemsWithRef();\n this._changeDetectorRef.markForCheck();\n });\n ref.entered.subscribe(event => {\n this.entered.emit({\n container: this,\n item: event.item.data,\n currentIndex: event.currentIndex,\n });\n });\n ref.exited.subscribe(event => {\n this.exited.emit({\n container: this,\n item: event.item.data,\n });\n this._changeDetectorRef.markForCheck();\n });\n ref.sorted.subscribe(event => {\n this.sorted.emit({\n previousIndex: event.previousIndex,\n currentIndex: event.currentIndex,\n container: this,\n item: event.item.data,\n });\n });\n ref.dropped.subscribe(dropEvent => {\n this.dropped.emit({\n previousIndex: dropEvent.previousIndex,\n currentIndex: dropEvent.currentIndex,\n previousContainer: dropEvent.previousContainer.data,\n container: dropEvent.container.data,\n item: dropEvent.item.data,\n isPointerOverContainer: dropEvent.isPointerOverContainer,\n distance: dropEvent.distance,\n dropPoint: dropEvent.dropPoint,\n event: dropEvent.event,\n });\n // Mark for check since all of these events run outside of change\n // detection and we're not guaranteed for something else to have triggered it.\n this._changeDetectorRef.markForCheck();\n });\n merge(ref.receivingStarted, ref.receivingStopped).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n /** Assigns the default input values based on a provided config object. */\n _assignDefaults(config) {\n const { lockAxis, draggingDisabled, sortingDisabled, listAutoScrollDisabled, listOrientation } = config;\n this.disabled = draggingDisabled == null ? false : draggingDisabled;\n this.sortingDisabled = sortingDisabled == null ? false : sortingDisabled;\n this.autoScrollDisabled = listAutoScrollDisabled == null ? false : listAutoScrollDisabled;\n this.orientation = listOrientation || 'vertical';\n if (lockAxis) {\n this.lockAxis = lockAxis;\n }\n }\n /** Syncs up the registered drag items with underlying drop list ref. */\n _syncItemsWithRef() {\n this._dropListRef.withItems(this.getSortedItems().map(item => item._dragRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDropList, deps: [{ token: i0.ElementRef }, { token: DragDrop }, { token: i0.ChangeDetectorRef }, { token: i1.ScrollDispatcher }, { token: i1$1.Directionality, optional: true }, { token: CDK_DROP_LIST_GROUP, optional: true, skipSelf: true }, { token: CDK_DRAG_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"18.2.0-next.2\", type: CdkDropList, isStandalone: true, selector: \"[cdkDropList], cdk-drop-list\", inputs: { connectedTo: [\"cdkDropListConnectedTo\", \"connectedTo\"], data: [\"cdkDropListData\", \"data\"], orientation: [\"cdkDropListOrientation\", \"orientation\"], id: \"id\", lockAxis: [\"cdkDropListLockAxis\", \"lockAxis\"], disabled: [\"cdkDropListDisabled\", \"disabled\", booleanAttribute], sortingDisabled: [\"cdkDropListSortingDisabled\", \"sortingDisabled\", booleanAttribute], enterPredicate: [\"cdkDropListEnterPredicate\", \"enterPredicate\"], sortPredicate: [\"cdkDropListSortPredicate\", \"sortPredicate\"], autoScrollDisabled: [\"cdkDropListAutoScrollDisabled\", \"autoScrollDisabled\", booleanAttribute], autoScrollStep: [\"cdkDropListAutoScrollStep\", \"autoScrollStep\"], elementContainerSelector: [\"cdkDropListElementContainer\", \"elementContainerSelector\"] }, outputs: { dropped: \"cdkDropListDropped\", entered: \"cdkDropListEntered\", exited: \"cdkDropListExited\", sorted: \"cdkDropListSorted\" }, host: { properties: { \"attr.id\": \"id\", \"class.cdk-drop-list-disabled\": \"disabled\", \"class.cdk-drop-list-dragging\": \"_dropListRef.isDragging()\", \"class.cdk-drop-list-receiving\": \"_dropListRef.isReceiving()\" }, classAttribute: \"cdk-drop-list\" }, providers: [\n // Prevent child drop lists from picking up the same group as their parent.\n { provide: CDK_DROP_LIST_GROUP, useValue: undefined },\n { provide: CDK_DROP_LIST, useExisting: CdkDropList },\n ], exportAs: [\"cdkDropList\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDropList, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDropList], cdk-drop-list',\n exportAs: 'cdkDropList',\n standalone: true,\n providers: [\n // Prevent child drop lists from picking up the same group as their parent.\n { provide: CDK_DROP_LIST_GROUP, useValue: undefined },\n { provide: CDK_DROP_LIST, useExisting: CdkDropList },\n ],\n host: {\n 'class': 'cdk-drop-list',\n '[attr.id]': 'id',\n '[class.cdk-drop-list-disabled]': 'disabled',\n '[class.cdk-drop-list-dragging]': '_dropListRef.isDragging()',\n '[class.cdk-drop-list-receiving]': '_dropListRef.isReceiving()',\n },\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: DragDrop }, { type: i0.ChangeDetectorRef }, { type: i1.ScrollDispatcher }, { type: i1$1.Directionality, decorators: [{\n type: Optional\n }] }, { type: CdkDropListGroup, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_DROP_LIST_GROUP]\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_DRAG_CONFIG]\n }] }], propDecorators: { connectedTo: [{\n type: Input,\n args: ['cdkDropListConnectedTo']\n }], data: [{\n type: Input,\n args: ['cdkDropListData']\n }], orientation: [{\n type: Input,\n args: ['cdkDropListOrientation']\n }], id: [{\n type: Input\n }], lockAxis: [{\n type: Input,\n args: ['cdkDropListLockAxis']\n }], disabled: [{\n type: Input,\n args: [{ alias: 'cdkDropListDisabled', transform: booleanAttribute }]\n }], sortingDisabled: [{\n type: Input,\n args: [{ alias: 'cdkDropListSortingDisabled', transform: booleanAttribute }]\n }], enterPredicate: [{\n type: Input,\n args: ['cdkDropListEnterPredicate']\n }], sortPredicate: [{\n type: Input,\n args: ['cdkDropListSortPredicate']\n }], autoScrollDisabled: [{\n type: Input,\n args: [{ alias: 'cdkDropListAutoScrollDisabled', transform: booleanAttribute }]\n }], autoScrollStep: [{\n type: Input,\n args: ['cdkDropListAutoScrollStep']\n }], elementContainerSelector: [{\n type: Input,\n args: ['cdkDropListElementContainer']\n }], dropped: [{\n type: Output,\n args: ['cdkDropListDropped']\n }], entered: [{\n type: Output,\n args: ['cdkDropListEntered']\n }], exited: [{\n type: Output,\n args: ['cdkDropListExited']\n }], sorted: [{\n type: Output,\n args: ['cdkDropListSorted']\n }] } });\n\n/**\n * Injection token that can be used to reference instances of `CdkDragPreview`. It serves as\n * alternative token to the actual `CdkDragPreview` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DRAG_PREVIEW = new InjectionToken('CdkDragPreview');\n/**\n * Element that will be used as a template for the preview\n * of a CdkDrag when it is being dragged.\n */\nclass CdkDragPreview {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._drag = inject(CDK_DRAG_PARENT, { optional: true });\n /** Whether the preview should preserve the same size as the item that is being dragged. */\n this.matchSize = false;\n this._drag?._setPreviewTemplate(this);\n }\n ngOnDestroy() {\n this._drag?._resetPreviewTemplate(this);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDragPreview, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"18.2.0-next.2\", type: CdkDragPreview, isStandalone: true, selector: \"ng-template[cdkDragPreview]\", inputs: { data: \"data\", matchSize: [\"matchSize\", \"matchSize\", booleanAttribute] }, providers: [{ provide: CDK_DRAG_PREVIEW, useExisting: CdkDragPreview }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDragPreview, decorators: [{\n type: Directive,\n args: [{\n selector: 'ng-template[cdkDragPreview]',\n standalone: true,\n providers: [{ provide: CDK_DRAG_PREVIEW, useExisting: CdkDragPreview }],\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { data: [{\n type: Input\n }], matchSize: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }] } });\n\n/**\n * Injection token that can be used to reference instances of `CdkDragPlaceholder`. It serves as\n * alternative token to the actual `CdkDragPlaceholder` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DRAG_PLACEHOLDER = new InjectionToken('CdkDragPlaceholder');\n/**\n * Element that will be used as a template for the placeholder of a CdkDrag when\n * it is being dragged. The placeholder is displayed in place of the element being dragged.\n */\nclass CdkDragPlaceholder {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._drag = inject(CDK_DRAG_PARENT, { optional: true });\n this._drag?._setPlaceholderTemplate(this);\n }\n ngOnDestroy() {\n this._drag?._resetPlaceholderTemplate(this);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDragPlaceholder, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"18.2.0-next.2\", type: CdkDragPlaceholder, isStandalone: true, selector: \"ng-template[cdkDragPlaceholder]\", inputs: { data: \"data\" }, providers: [{ provide: CDK_DRAG_PLACEHOLDER, useExisting: CdkDragPlaceholder }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: CdkDragPlaceholder, decorators: [{\n type: Directive,\n args: [{\n selector: 'ng-template[cdkDragPlaceholder]',\n standalone: true,\n providers: [{ provide: CDK_DRAG_PLACEHOLDER, useExisting: CdkDragPlaceholder }],\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { data: [{\n type: Input\n }] } });\n\nconst DRAG_DROP_DIRECTIVES = [\n CdkDropList,\n CdkDropListGroup,\n CdkDrag,\n CdkDragHandle,\n CdkDragPreview,\n CdkDragPlaceholder,\n];\nclass DragDropModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: DragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: DragDropModule, imports: [CdkDropList,\n CdkDropListGroup,\n CdkDrag,\n CdkDragHandle,\n CdkDragPreview,\n CdkDragPlaceholder], exports: [CdkScrollableModule, CdkDropList,\n CdkDropListGroup,\n CdkDrag,\n CdkDragHandle,\n CdkDragPreview,\n CdkDragPlaceholder] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: DragDropModule, providers: [DragDrop], imports: [CdkScrollableModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: DragDropModule, decorators: [{\n type: NgModule,\n args: [{\n imports: DRAG_DROP_DIRECTIVES,\n exports: [CdkScrollableModule, ...DRAG_DROP_DIRECTIVES],\n providers: [DragDrop],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CDK_DRAG_CONFIG, CDK_DRAG_HANDLE, CDK_DRAG_PARENT, CDK_DRAG_PLACEHOLDER, CDK_DRAG_PREVIEW, CDK_DROP_LIST, CDK_DROP_LIST_GROUP, CdkDrag, CdkDragHandle, CdkDragPlaceholder, CdkDragPreview, CdkDropList, CdkDropListGroup, DragDrop, DragDropModule, DragDropRegistry, DragRef, DropListRef, copyArrayItem, moveItemInArray, transferArrayItem };\n","import { asyncScheduler } from '../scheduler/async';\nimport { timer } from './timer';\nexport function interval(period = 0, scheduler = asyncScheduler) {\n if (period < 0) {\n period = 0;\n }\n return timer(period, period, scheduler);\n}\n","import * as i1 from '@angular/cdk/a11y';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { ENTER, SPACE, BACKSPACE, DELETE, TAB, hasModifierKey, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, booleanAttribute, numberAttribute, Directive, Inject, Input, EventEmitter, inject, Injector, afterNextRender, ANIMATION_MODULE_TYPE, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, ContentChildren, Output, ContentChild, ViewChild, Attribute, QueryList, forwardRef, Self, NgModule } from '@angular/core';\nimport * as i3 from '@angular/material/core';\nimport { MatRippleLoader, MAT_RIPPLE_GLOBAL_OPTIONS, _ErrorStateTracker, MatCommonModule, MatRippleModule, ErrorStateMatcher } from '@angular/material/core';\nimport { Subject, merge } from 'rxjs';\nimport { takeUntil, startWith, switchMap } from 'rxjs/operators';\nimport * as i1$1 from '@angular/cdk/bidi';\nimport * as i2 from '@angular/forms';\nimport { NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport * as i1$2 from '@angular/material/form-field';\nimport { MatFormFieldControl, MAT_FORM_FIELD } from '@angular/material/form-field';\n\n/** Injection token to be used to override the default options for the chips module. */\nconst MAT_CHIPS_DEFAULT_OPTIONS = new InjectionToken('mat-chips-default-options', {\n providedIn: 'root',\n factory: () => ({\n separatorKeyCodes: [ENTER],\n }),\n});\n/**\n * Injection token that can be used to reference instances of `MatChipAvatar`. It serves as\n * alternative token to the actual `MatChipAvatar` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_CHIP_AVATAR = new InjectionToken('MatChipAvatar');\n/**\n * Injection token that can be used to reference instances of `MatChipTrailingIcon`. It serves as\n * alternative token to the actual `MatChipTrailingIcon` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_CHIP_TRAILING_ICON = new InjectionToken('MatChipTrailingIcon');\n/**\n * Injection token that can be used to reference instances of `MatChipRemove`. It serves as\n * alternative token to the actual `MatChipRemove` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_CHIP_REMOVE = new InjectionToken('MatChipRemove');\n/**\n * Injection token used to avoid a circular dependency between the `MatChip` and `MatChipAction`.\n */\nconst MAT_CHIP = new InjectionToken('MatChip');\n\n/**\n * Section within a chip.\n * @docs-private\n */\nclass MatChipAction {\n /** Whether the action is disabled. */\n get disabled() {\n return this._disabled || this._parentChip.disabled;\n }\n set disabled(value) {\n this._disabled = value;\n }\n /**\n * Determine the value of the disabled attribute for this chip action.\n */\n _getDisabledAttribute() {\n // When this chip action is disabled and focusing disabled chips is not permitted, return empty\n // string to indicate that disabled attribute should be included.\n return this.disabled && !this._allowFocusWhenDisabled ? '' : null;\n }\n /**\n * Determine the value of the tabindex attribute for this chip action.\n */\n _getTabindex() {\n return (this.disabled && !this._allowFocusWhenDisabled) || !this.isInteractive\n ? null\n : this.tabIndex.toString();\n }\n constructor(_elementRef, _parentChip) {\n this._elementRef = _elementRef;\n this._parentChip = _parentChip;\n /** Whether the action is interactive. */\n this.isInteractive = true;\n /** Whether this is the primary action in the chip. */\n this._isPrimary = true;\n this._disabled = false;\n /** Tab index of the action. */\n this.tabIndex = -1;\n /**\n * Private API to allow focusing this chip when it is disabled.\n */\n this._allowFocusWhenDisabled = false;\n if (_elementRef.nativeElement.nodeName === 'BUTTON') {\n _elementRef.nativeElement.setAttribute('type', 'button');\n }\n }\n focus() {\n this._elementRef.nativeElement.focus();\n }\n _handleClick(event) {\n if (!this.disabled && this.isInteractive && this._isPrimary) {\n event.preventDefault();\n this._parentChip._handlePrimaryActionInteraction();\n }\n }\n _handleKeydown(event) {\n if ((event.keyCode === ENTER || event.keyCode === SPACE) &&\n !this.disabled &&\n this.isInteractive &&\n this._isPrimary &&\n !this._parentChip._isEditing) {\n event.preventDefault();\n this._parentChip._handlePrimaryActionInteraction();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: MatChipAction, deps: [{ token: i0.ElementRef }, { token: MAT_CHIP }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"18.2.0-next.2\", type: MatChipAction, isStandalone: true, selector: \"[matChipAction]\", inputs: { isInteractive: \"isInteractive\", disabled: [\"disabled\", \"disabled\", booleanAttribute], tabIndex: [\"tabIndex\", \"tabIndex\", (value) => (value == null ? -1 : numberAttribute(value))], _allowFocusWhenDisabled: \"_allowFocusWhenDisabled\" }, host: { listeners: { \"click\": \"_handleClick($event)\", \"keydown\": \"_handleKeydown($event)\" }, properties: { \"class.mdc-evolution-chip__action--primary\": \"_isPrimary\", \"class.mdc-evolution-chip__action--presentational\": \"!isInteractive\", \"class.mdc-evolution-chip__action--trailing\": \"!_isPrimary\", \"attr.tabindex\": \"_getTabindex()\", \"attr.disabled\": \"_getDisabledAttribute()\", \"attr.aria-disabled\": \"disabled\" }, classAttribute: \"mdc-evolution-chip__action mat-mdc-chip-action\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: MatChipAction, decorators: [{\n type: Directive,\n args: [{\n selector: '[matChipAction]',\n host: {\n 'class': 'mdc-evolution-chip__action mat-mdc-chip-action',\n '[class.mdc-evolution-chip__action--primary]': '_isPrimary',\n '[class.mdc-evolution-chip__action--presentational]': '!isInteractive',\n '[class.mdc-evolution-chip__action--trailing]': '!_isPrimary',\n '[attr.tabindex]': '_getTabindex()',\n '[attr.disabled]': '_getDisabledAttribute()',\n '[attr.aria-disabled]': 'disabled',\n '(click)': '_handleClick($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_CHIP]\n }] }], propDecorators: { isInteractive: [{\n type: Input\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], tabIndex: [{\n type: Input,\n args: [{\n transform: (value) => (value == null ? -1 : numberAttribute(value)),\n }]\n }], _allowFocusWhenDisabled: [{\n type: Input\n }] } });\n\n/** Avatar image within a chip. */\nclass MatChipAvatar {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: MatChipAvatar, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"18.2.0-next.2\", type: MatChipAvatar, isStandalone: true, selector: \"mat-chip-avatar, [matChipAvatar]\", host: { attributes: { \"role\": \"img\" }, classAttribute: \"mat-mdc-chip-avatar mdc-evolution-chip__icon mdc-evolution-chip__icon--primary\" }, providers: [{ provide: MAT_CHIP_AVATAR, useExisting: MatChipAvatar }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: MatChipAvatar, decorators: [{\n type: Directive,\n args: [{\n selector: 'mat-chip-avatar, [matChipAvatar]',\n host: {\n 'class': 'mat-mdc-chip-avatar mdc-evolution-chip__icon mdc-evolution-chip__icon--primary',\n 'role': 'img',\n },\n providers: [{ provide: MAT_CHIP_AVATAR, useExisting: MatChipAvatar }],\n standalone: true,\n }]\n }] });\n/** Non-interactive trailing icon in a chip. */\nclass MatChipTrailingIcon extends MatChipAction {\n constructor() {\n super(...arguments);\n /**\n * MDC considers all trailing actions as a remove icon,\n * but we support non-interactive trailing icons.\n */\n this.isInteractive = false;\n this._isPrimary = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: MatChipTrailingIcon, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"18.2.0-next.2\", type: MatChipTrailingIcon, isStandalone: true, selector: \"mat-chip-trailing-icon, [matChipTrailingIcon]\", host: { attributes: { \"aria-hidden\": \"true\" }, classAttribute: \"mat-mdc-chip-trailing-icon mdc-evolution-chip__icon mdc-evolution-chip__icon--trailing\" }, providers: [{ provide: MAT_CHIP_TRAILING_ICON, useExisting: MatChipTrailingIcon }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.0-next.2\", ngImport: i0, type: MatChipTrailingIcon, decorators: [{\n type: Directive,\n args: [{\n selector: 'mat-chip-trailing-icon, [matChipTrailingIcon]',\n host: {\n 'class': 'mat-mdc-chip-trailing-icon mdc-evolution-chip__icon mdc-evolution-chip__icon--trailing',\n 'aria-hidden': 'true',\n },\n providers: [{ provide: MAT_CHIP_TRAILING_ICON, useExisting: MatChipTrailingIcon }],\n standalone: true,\n }]\n }] });\n/**\n * Directive to remove the parent chip when the trailing icon is clicked or\n * when the ENTER key is pressed on it.\n *\n * Recommended for use with the Material Design \"cancel\" icon\n * available at https://material.io/icons/#ic_cancel.\n *\n * Example:\n *\n * ```\n *\n {{headerText}}\n | \n\n {{dataAccessor(data, name)}}\n | \n\n {{headerText}}\n | \n\n {{dataAccessor(data, name)}}\n | \n
---|
\n {{headerText}}\n | \n\n {{dataAccessor(data, name)}}\n | \n\n {{headerText}}\n | \n\n {{dataAccessor(data, name)}}\n | \n
---|
\\n @if (multiSelectable) {\\n | \\n \\n @if (!(rowSelectionFormatter.hideCheckbox && rowSelectionFormatter.hideCheckbox(row, _getIndex(index, dataIndex)))) {\\n | \\n \\n | \\n \\n @if (headerTemplate | isTemplateRef) {\\n \\n \\n @if (col.showExpand) {\\n \\n }\\n {{col.header | toObservable | async}}\\n @if (col.sortable) {\\n \\n }\\n \\n | \\n \\n @if (cellTemplate | isTemplateRef) {\\n | \\n \\n @if (col.showExpand) {\\n \\n }\\n @if (summaryTemplate | isTemplateRef) {\\n | \\n
---|
\\n \\n \\n | \\n
\\n @if (multiSelectable) {\\n | \\n \\n @if (!(rowSelectionFormatter.hideCheckbox && rowSelectionFormatter.hideCheckbox(row, _getIndex(index, dataIndex)))) {\\n | \\n \\n | \\n \\n @if (headerTemplate | isTemplateRef) {\\n \\n \\n @if (col.showExpand) {\\n \\n }\\n {{col.header | toObservable | async}}\\n @if (col.sortable) {\\n \\n }\\n \\n | \\n \\n @if (cellTemplate | isTemplateRef) {\\n | \\n \\n @if (col.showExpand) {\\n \\n }\\n @if (summaryTemplate | isTemplateRef) {\\n | \\n
---|
\\n \\n \\n | \\n
\\n @if (multiSelectable) {\\n | \\n \\n @if (!(rowSelectionFormatter.hideCheckbox && rowSelectionFormatter.hideCheckbox(row, _getIndex(index, dataIndex)))) {\\n | \\n \\n | \\n \\n @if (headerTemplate | isTemplateRef) {\\n \\n \\n @if (col.showExpand) {\\n \\n }\\n {{col.header | toObservable | async}}\\n @if (col.sortable) {\\n \\n }\\n \\n | \\n \\n @if (cellTemplate | isTemplateRef) {\\n | \\n \\n @if (col.showExpand) {\\n \\n }\\n @if (summaryTemplate | isTemplateRef) {\\n | \\n
---|
\\n \\n \\n | \\n
\\n @if (multiSelectable) {\\n | \\n \\n @if (!(rowSelectionFormatter.hideCheckbox && rowSelectionFormatter.hideCheckbox(row, _getIndex(index, dataIndex)))) {\\n | \\n \\n | \\n \\n @if (headerTemplate | isTemplateRef) {\\n \\n \\n @if (col.showExpand) {\\n \\n }\\n {{col.header | toObservable | async}}\\n @if (col.sortable) {\\n \\n }\\n \\n | \\n \\n @if (cellTemplate | isTemplateRef) {\\n | \\n \\n @if (col.showExpand) {\\n \\n }\\n @if (summaryTemplate | isTemplateRef) {\\n | \\n
---|
\\n \\n \\n | \\n