bm-core-ui 2.12.0-beta.6 → 2.12.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10170,7 +10170,7 @@ export class BMMenu {
10170
10170
  * @param forKeyboardShortcut The keyboard shortcut that was triggered.
10171
10171
  *
10172
10172
  */
10173
- private _selectMenuItemWithEvent(event: KeyboardEvent, {forKeyboardShortcut}: {forKeyboardShortcut: BMKeyboardShortcut}): void;
10173
+ protected _selectMenuItemWithEvent(event: KeyboardEvent, {forKeyboardShortcut}: {forKeyboardShortcut: BMKeyboardShortcut}): void;
10174
10174
 
10175
10175
 
10176
10176
  /**
@@ -11771,6 +11771,19 @@ export class BMCollectionViewLayoutInvalidationContext {
11771
11771
  */
11772
11772
  export class BMCollectionViewTransitionLayout extends BMCollectionViewLayout {
11773
11773
 
11774
+ /**
11775
+ * When set to `YES` this transition layout will no longer perform updates.
11776
+ *
11777
+ */
11778
+ private _transitionStopped: boolean;
11779
+
11780
+ /**
11781
+ * Stops the current transition in its tracks, instantly setting the final attributes on all cells.
11782
+ *
11783
+ */
11784
+ private _stopTransition(): void;
11785
+
11786
+
11774
11787
  /**
11775
11788
  * Controls how close to completion the transition is.
11776
11789
  *
@@ -14249,6 +14262,14 @@ export class BMCollectionView<T = any> extends BMView implements BMDragDelegate,
14249
14262
  setLayout(layout: BMCollectionViewLayout, {animated, completionHandler}?: {animated?: boolean | null | undefined, completionHandler?: (() => void) | null | undefined}): void;
14250
14263
 
14251
14264
 
14265
+ /**
14266
+ * If a layout transition is currently in progress it is stopped, allowing data updates to
14267
+ * start without affecting the retained cells.
14268
+ *
14269
+ */
14270
+ private _stopLayoutTransition(): void;
14271
+
14272
+
14252
14273
  /**
14253
14274
  * Invoked internally by CoreUI to perform a batched update of layout properties.
14254
14275
  * Using this method requires the layout object used by this collection view to support copying.
@@ -14535,6 +14556,14 @@ export class BMCollectionView<T = any> extends BMView implements BMDragDelegate,
14535
14556
  }
14536
14557
 
14537
14558
 
14559
+ /**
14560
+ * Cleans up the changes performed by the current transition.
14561
+ *
14562
+ */
14563
+ export function cleanupTransition(): void;
14564
+
14565
+
14566
+
14538
14567
  /**
14539
14568
  * @deprecated - Use the static `collectionViewForNode` factory method.
14540
14569
  *
@@ -1218,9 +1218,10 @@ BMCollectionView.prototype = BMExtend(BM_COLLECTION_VIEW_USE_BMVIEW_SUBCLASS ? O
1218
1218
  for (var i = 0; i < retainedCellsLength; i++) {
1219
1219
  // The retained cells array resizes itself when cells are removed
1220
1220
  this.retainedCells[0]._unmanage();
1221
- }*/
1221
+ }
1222
1222
 
1223
1223
  this.retainedCells = [];
1224
+ */
1224
1225
 
1225
1226
  // Reload the layout
1226
1227
  this._reloadLayout();
@@ -5526,8 +5527,66 @@ BMCollectionView.prototype = BMExtend(BM_COLLECTION_VIEW_USE_BMVIEW_SUBCLASS ? O
5526
5527
  // regardless of where the new or old positions of cells might be
5527
5528
  let size = layout.contentSize();
5528
5529
  this._size = BMSizeMake(Math.max(this._size.width, size.width), Math.max(this._size.height, size.height));
5530
+
5531
+ /**
5532
+ * Cleans up the changes performed by the current transition.
5533
+ */
5534
+ function cleanupTransition() {
5535
+ if (self.iScroll) self.iScroll.refresh();
5536
+
5537
+ // Unmanage all outgoing supplementary views
5538
+ for (var i = 0; i < outgoingSupplementaryViewAttributes.length; i++) {
5539
+ var attribute = outgoingSupplementaryViewAttributes[i];
5540
+ var cell = self.supplementaryViewWithIdentifier(attribute.identifier, {atIndexPath: attribute.indexPath});
5541
+
5542
+ if (cell && cell.isManaged) {
5543
+ cell._unmanage();
5544
+ }
5545
+ }
5546
+
5547
+ self._applyOverflows();
5548
+
5549
+ // Restore collection and invoke the data completion callbacks unless another animation is in progress
5550
+ if (self._dataUpdatePromise == dataUpdatePromise) {
5551
+ self._collectionEnabled = YES;
5552
+ self.isUpdatingData = NO;
5553
+
5554
+ self._executeDataCompletionCallbacks();
5555
+ }
5556
+
5557
+ // If the delegate animation options contains a complete handler, invoke it here
5558
+ if (delegateOptions.complete) delegateOptions.complete();
5559
+
5560
+ // Run the completion handler if it was specified
5561
+ if (options && options.completionHandler) options.completionHandler();
5562
+
5563
+ resolveLayoutUpdate();
5564
+ }
5529
5565
 
5530
5566
  animationOptions.complete = function () {
5567
+ // If the transition was stopped, don't continue with the remaining changes
5568
+ if (self._layout != transitionLayout) {
5569
+ self._size = size.copy();
5570
+
5571
+ if (self.iScroll) {
5572
+ // Apply the new scroll offset internally to iScroll, if it changed
5573
+ if (oldBounds.origin.x != newBounds.origin.x || oldBounds.origin.y != newBounds.origin.y) {
5574
+ var targetOffset = newBounds.origin.copy();
5575
+
5576
+ targetOffset.x += self._offscreenBufferSize;
5577
+ targetOffset.y += self._offscreenBufferSize;
5578
+
5579
+ self.iScroll._translate(-targetOffset.x, -targetOffset.y);
5580
+ }
5581
+ }
5582
+
5583
+ animationCells.forEach(cell => cell.release());
5584
+ retainedCells.forEach(cell => cell.release());
5585
+
5586
+ cleanupTransition();
5587
+ return;
5588
+ }
5589
+
5531
5590
  // Request the layout page
5532
5591
  var attributes = transitionLayout.attributesForElementsInRect();
5533
5592
 
@@ -5562,35 +5621,7 @@ BMCollectionView.prototype = BMExtend(BM_COLLECTION_VIEW_USE_BMVIEW_SUBCLASS ? O
5562
5621
  self._layout = layout;
5563
5622
  self._transitionLayout = undefined;
5564
5623
 
5565
- if (self.iScroll) self.iScroll.refresh();
5566
-
5567
- // Unmanage all outgoing supplementary views
5568
- for (var i = 0; i < outgoingSupplementaryViewAttributes.length; i++) {
5569
- var attribute = outgoingSupplementaryViewAttributes[i];
5570
- var cell = self.supplementaryViewWithIdentifier(attribute.identifier, {atIndexPath: attribute.indexPath});
5571
-
5572
- if (cell && cell.isManaged) {
5573
- cell._unmanage();
5574
- }
5575
- }
5576
-
5577
- self._applyOverflows();
5578
-
5579
- // Restore collection invoke the data completion callbacks unless another animation is in progress
5580
- if (self._dataUpdatePromise == dataUpdatePromise) {
5581
- self._collectionEnabled = YES;
5582
- self.isUpdatingData = NO;
5583
-
5584
- self._executeDataCompletionCallbacks();
5585
- }
5586
-
5587
- // If the delegate animation options contains a complete handler, invoke it here
5588
- if (delegateOptions.complete) delegateOptions.complete();
5589
-
5590
- // Run the completion handler if it was specified
5591
- if (options && options.completionHandler) options.completionHandler();
5592
-
5593
- resolveLayoutUpdate();
5624
+ cleanupTransition();
5594
5625
  };
5595
5626
 
5596
5627
  animationOptions.queue = NO;
@@ -5688,9 +5719,16 @@ BMCollectionView.prototype = BMExtend(BM_COLLECTION_VIEW_USE_BMVIEW_SUBCLASS ? O
5688
5719
 
5689
5720
  },
5690
5721
 
5691
-
5692
-
5693
-
5722
+ /**
5723
+ * If a layout transition is currently in progress it is stopped, allowing data updates to
5724
+ * start without affecting the retained cells.
5725
+ */
5726
+ _stopLayoutTransition() {
5727
+ if (this._transitionLayout && this._layout == this._transitionLayout) {
5728
+ this._layout._stopTransition();
5729
+ this._layout = this._layout.targetLayout;
5730
+ }
5731
+ },
5694
5732
 
5695
5733
  /************************************* DATA SET UPDATE ************************************/
5696
5734
 
@@ -5860,6 +5898,9 @@ BMCollectionView.prototype = BMExtend(BM_COLLECTION_VIEW_USE_BMVIEW_SUBCLASS ? O
5860
5898
  let resolveUpdateData;
5861
5899
  const dataUpdatePromise = new Promise(function (resolve, reject) {resolveUpdateData = resolve});
5862
5900
  this._dataUpdatePromise = dataUpdatePromise;
5901
+
5902
+ // Stop any in progress layout updates
5903
+ this._stopLayoutTransition();
5863
5904
 
5864
5905
  // Update the selection index paths
5865
5906
  this._updateSelectionIndexPaths();
@@ -910,6 +910,19 @@ export var _BMCollectionViewTransitionLayout = function (attributes, initialSize
910
910
  };
911
911
 
912
912
  _BMCollectionViewTransitionLayout.prototype = BMExtend({}, BMCollectionViewLayout.prototype, {
913
+
914
+ /**
915
+ * When set to `YES` this transition layout will no longer perform updates.
916
+ */
917
+ _transitionStopped: NO, // <Boolean>
918
+
919
+ /**
920
+ * Stops the current transition in its tracks, instantly setting the final attributes on all cells.
921
+ */
922
+ _stopTransition() {
923
+ this._applyFinalAttributes();
924
+ this._transitionStopped = YES;
925
+ },
913
926
 
914
927
  /**
915
928
  * Controls how close to completion the transition is.
@@ -917,6 +930,12 @@ _BMCollectionViewTransitionLayout.prototype = BMExtend({}, BMCollectionViewLayou
917
930
  _fraction: 0, // <Number>
918
931
  get fraction() { return this._fraction; },
919
932
  set fraction(fraction) {
933
+ // If this transition was stopped, don't perform any other changes
934
+ if (this._transitionStopped) {
935
+ this._fraction = fraction;
936
+ return;
937
+ }
938
+
920
939
  // If this is no longer attached to a collection view, don't perform any changes
921
940
  if (!this.collectionView) return;
922
941
 
@@ -1524,21 +1524,8 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1524
1524
  }
1525
1525
 
1526
1526
  .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem {
1527
- height: 44px;
1528
- line-height: 44px;
1529
- border-top: 1px solid rgba(0, 0, 0, .1);
1530
- }
1531
-
1532
- .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem:first-child {
1533
- border-top-width: 0px;
1534
- }
1535
-
1536
- .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemHighlighted + .BMMenuItem {
1537
- border-top-color: rgba(0, 0, 0, .2);
1538
- }
1539
-
1540
- .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemHighlighted + .BMMenuDivider {
1541
- box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, .1) inset;
1527
+ height: 38px;
1528
+ line-height: 38px;
1542
1529
  }
1543
1530
 
1544
1531
  .BMMenuIcon {
@@ -1596,48 +1583,104 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1596
1583
 
1597
1584
  @keyframes BMMenuItemActiveAnimation {
1598
1585
  from {
1599
- background: transparent;
1600
1586
  color: rgba(0, 0, 0, .8);
1601
1587
  }
1602
1588
 
1603
1589
  49% {
1604
- background: transparent;
1605
1590
  color: rgba(0, 0, 0, .8);
1606
1591
  }
1607
1592
 
1608
1593
  50% {
1609
- background: rgb(0, 128, 255);
1610
1594
  color: white;
1611
1595
  }
1612
1596
 
1613
1597
  to {
1614
- background: rgb(0, 128, 255);
1615
1598
  color: white;
1616
1599
  }
1617
1600
  }
1618
1601
 
1619
- .BMLayoutEditorConstraintPopupOption:hover, .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem:not(.BMMenuItemDisabled):active, .BMMenuItem.BMMenuItemHighlighted {
1620
- background: rgb(0, 128, 255);
1602
+ @keyframes BMMenuItemActiveAnimationBackground {
1603
+ from {
1604
+ background: transparent;
1605
+ }
1606
+
1607
+ 49% {
1608
+ background: transparent;
1609
+ }
1610
+
1611
+ 50% {
1612
+ background: rgb(0, 128, 255);
1613
+ }
1614
+
1615
+ to {
1616
+ background: rgb(0, 128, 255);
1617
+ }
1618
+ }
1619
+
1620
+ .BMLayoutEditorConstraintPopupOption::before,
1621
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem::before,
1622
+ .BMMenuItem::before {
1623
+ content: '';
1624
+
1625
+ position: absolute;
1626
+
1627
+ top: 0;
1628
+ bottom: 0;
1629
+
1630
+ left: 4px;
1631
+ right: 4px;
1632
+
1633
+ border-radius: 5px;
1634
+
1635
+ z-index: -1;
1636
+ }
1637
+
1638
+ .BMLayoutEditorConstraintPopupOption:hover,
1639
+ .BMMenuItem.BMMenuItemHighlighted {
1621
1640
  color: white;
1622
1641
  }
1623
1642
 
1643
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemHighlighted,
1644
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem:not(.BMMenuItemDisabled):active {
1645
+ color: rgba(0, 0, 0, .8);
1646
+ }
1647
+
1648
+ .BMLayoutEditorConstraintPopupOption:hover::before,
1649
+ .BMMenuItem.BMMenuItemHighlighted::before {
1650
+ background: rgb(0, 128, 255);
1651
+ }
1652
+
1624
1653
  .BMMenuSourceNodeShadow.BMMenuItem.BMMenuItemHighlighted {
1625
1654
  background: white;
1626
1655
  color: rgba(0, 0, 0, .8);
1627
1656
  }
1628
1657
 
1629
- .BMLayoutEditorConstraintPopupOption:active, .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem:not(.BMMenuItemDisabled):hover {
1658
+ .BMLayoutEditorConstraintPopupOption:active,
1659
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem:not(.BMMenuItemDisabled):hover {
1630
1660
  background: transparent;
1631
1661
  color: rgba(0, 0, 0, .8);
1632
1662
  }
1633
1663
 
1664
+ .BMLayoutEditorConstraintPopupOption:active::before,
1665
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemHighlighted::before,
1666
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem:not(.BMMenuItemDisabled):hover::before,
1667
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem:not(.BMMenuItemDisabled):active::before {
1668
+ background: transparent;
1669
+ }
1670
+
1671
+
1634
1672
  .BMMenuItem.BMMenuItemActive {
1635
1673
  animation: .15s linear BMMenuItemActiveAnimation;
1636
1674
  animation-fill-mode: both;
1637
1675
  }
1638
1676
 
1639
- .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemActive,
1640
- .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemHighlighted {
1677
+ .BMMenuItem.BMMenuItemActive::before {
1678
+ animation: .15s linear BMMenuItemActiveAnimationBackground;
1679
+ animation-fill-mode: both;
1680
+ }
1681
+
1682
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemActive::before,
1683
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemHighlighted::before {
1641
1684
  animation: none;
1642
1685
  background: transparent;
1643
1686
  color: rgba(0, 0, 0, .8);
@@ -1646,7 +1689,8 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1646
1689
  -webkit-backdrop-filter: brightness(80%);
1647
1690
  }
1648
1691
 
1649
- .BMLayoutEditorConstraintPopupOptionHighlighted, .BMMenuItemHighlighted {
1692
+ .BMLayoutEditorConstraintPopupOptionHighlighted::before,
1693
+ .BMMenuItemHighlighted::before {
1650
1694
  background: rgba(0, 128, 255, .5);
1651
1695
  }
1652
1696
 
@@ -1659,46 +1703,46 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1659
1703
  color: rgba(255, 255, 255, .45);
1660
1704
  }
1661
1705
 
1662
- .BMLayoutEditorConstraintPopupOption:active, .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem:not(.BMMenuItemDisabled):hover {
1706
+ .BMLayoutEditorConstraintPopupOption:active,
1707
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem:not(.BMMenuItemDisabled):hover,
1708
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem:not(.BMMenuItemDisabled):active {
1663
1709
  background: transparent;
1664
1710
  color: white;
1665
1711
  }
1666
1712
 
1667
- .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem {
1668
- border-bottom-color: rgba(255, 255, 255, .1);
1669
- }
1670
-
1671
1713
  .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemActive,
1672
1714
  .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemHighlighted {
1673
1715
  color: rgba(255, 255, 255, 1);
1674
-
1716
+ }
1717
+
1718
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemActive::before,
1719
+ .BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem.BMMenuItemHighlighted::before {
1675
1720
  backdrop-filter: brightness(110%);
1676
1721
  -webkit-backdrop-filter: brightness(110%);
1677
1722
  }
1678
1723
 
1679
1724
  .BMMenuSourceNodeShadow.BMMenuItem.BMMenuItemHighlighted {
1680
- background: rgba(33, 33, 33, 1);
1681
1725
  color: rgba(255, 255, 255, .9);
1682
1726
  }
1683
1727
 
1728
+ .BMMenuSourceNodeShadow.BMMenuItem.BMMenuItemHighlighted::before {
1729
+ background: rgba(33, 33, 33, 1);
1730
+ }
1731
+
1684
1732
  @keyframes BMMenuItemActiveAnimation {
1685
1733
  from {
1686
- background: transparent;
1687
1734
  color: rgba(255, 255, 255, .9);
1688
1735
  }
1689
1736
 
1690
1737
  49% {
1691
- background: transparent;
1692
1738
  color: rgba(255, 255, 255, .9);
1693
1739
  }
1694
1740
 
1695
1741
  50% {
1696
- background: rgb(0, 128, 255);
1697
1742
  color: white;
1698
1743
  }
1699
1744
 
1700
1745
  to {
1701
- background: rgb(0, 128, 255);
1702
1746
  color: white;
1703
1747
  }
1704
1748
  }
@@ -1834,12 +1878,6 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1834
1878
  flex-shrink: 0;
1835
1879
  }
1836
1880
 
1837
- .BMMenuTouch > .BMMenuItemsContainer > .BMMenuDivider {
1838
- margin: 0;
1839
- height: 3px;
1840
- background: rgba(0, 0, 0, .1);
1841
- }
1842
-
1843
1881
  .BMLayoutEditorDetailsDividerCell {
1844
1882
  background: rgba(0, 0, 0, .05);
1845
1883
  }
@@ -913,8 +913,8 @@ BMMenu.prototype = {
913
913
  });
914
914
 
915
915
  if (!this._supermenu) {
916
- // Make the container visible
917
- __BMVelocityAnimate(menuContainer, {opacity: 1}, {duration, easing}, BMMENU_USE_WEB_ANIMATIONS);
916
+ // Make the container visible, using a different easing for the opacity so that it doesn't overshoot the 1 limit
917
+ __BMVelocityAnimate(menuContainer, {opacity: 1}, {duration: duration / 2, easing: 'easeOutQuad'}, BMMENU_USE_WEB_ANIMATIONS);
918
918
  }
919
919
  else {
920
920
  this._supermenu._node.classList.add('BMMenuInactive');
@@ -925,8 +925,9 @@ BMMenu.prototype = {
925
925
  itemsContainerNode.style.overflow = 'hidden';
926
926
 
927
927
  __BMVelocityAnimate(menuNode, {opacity: 1}, {
928
- duration,
929
- easing
928
+ duration: duration / 2,
929
+ // Use a different easing for the opacity so that it doesn't overshoot the 1 limit
930
+ easing: 'easeOutQuad',
930
931
  }, BMMENU_USE_WEB_ANIMATIONS);
931
932
 
932
933
  __BMVelocityAnimate(menuNode, {scaleX: 1, scaleY: 1, translateZ: 0, translateY: 0, translateX: 0}, {
@@ -935,7 +936,7 @@ BMMenu.prototype = {
935
936
  complete: _ => {
936
937
  menuNode.style.pointerEvents = 'all';
937
938
  menuContainer.style.pointerEvents = 'all';
938
- }
939
+ },
939
940
  }, BMMENU_USE_WEB_ANIMATIONS);
940
941
 
941
942
  // Animate each child node in
@@ -1577,6 +1578,7 @@ BMMenu.prototype = {
1577
1578
  },
1578
1579
 
1579
1580
  /**
1581
+ * @protected
1580
1582
  * Invoked when the key sequence for a menu item is pressed.
1581
1583
  * @param event <KeyboardEvent> The event that triggered this action.
1582
1584
  * {
@@ -10170,7 +10170,7 @@ declare class BMMenu {
10170
10170
  * @param forKeyboardShortcut The keyboard shortcut that was triggered.
10171
10171
  *
10172
10172
  */
10173
- private _selectMenuItemWithEvent(event: KeyboardEvent, {forKeyboardShortcut}: {forKeyboardShortcut: BMKeyboardShortcut}): void;
10173
+ protected _selectMenuItemWithEvent(event: KeyboardEvent, {forKeyboardShortcut}: {forKeyboardShortcut: BMKeyboardShortcut}): void;
10174
10174
 
10175
10175
 
10176
10176
  /**
@@ -11771,6 +11771,19 @@ declare class BMCollectionViewLayoutInvalidationContext {
11771
11771
  */
11772
11772
  declare class BMCollectionViewTransitionLayout extends BMCollectionViewLayout {
11773
11773
 
11774
+ /**
11775
+ * When set to `YES` this transition layout will no longer perform updates.
11776
+ *
11777
+ */
11778
+ private _transitionStopped: boolean;
11779
+
11780
+ /**
11781
+ * Stops the current transition in its tracks, instantly setting the final attributes on all cells.
11782
+ *
11783
+ */
11784
+ private _stopTransition(): void;
11785
+
11786
+
11774
11787
  /**
11775
11788
  * Controls how close to completion the transition is.
11776
11789
  *
@@ -14249,6 +14262,14 @@ declare class BMCollectionView<T = any> extends BMView implements BMDragDelegate
14249
14262
  setLayout(layout: BMCollectionViewLayout, {animated, completionHandler}?: {animated?: boolean | null | undefined, completionHandler?: (() => void) | null | undefined}): void;
14250
14263
 
14251
14264
 
14265
+ /**
14266
+ * If a layout transition is currently in progress it is stopped, allowing data updates to
14267
+ * start without affecting the retained cells.
14268
+ *
14269
+ */
14270
+ private _stopLayoutTransition(): void;
14271
+
14272
+
14252
14273
  /**
14253
14274
  * Invoked internally by CoreUI to perform a batched update of layout properties.
14254
14275
  * Using this method requires the layout object used by this collection view to support copying.
@@ -14535,6 +14556,14 @@ declare class BMCollectionView<T = any> extends BMView implements BMDragDelegate
14535
14556
  }
14536
14557
 
14537
14558
 
14559
+ /**
14560
+ * Cleans up the changes performed by the current transition.
14561
+ *
14562
+ */
14563
+ declare function cleanupTransition(): void;
14564
+
14565
+
14566
+
14538
14567
  /**
14539
14568
  * @deprecated - Use the static `collectionViewForNode` factory method.
14540
14569
  *