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.
- package/build/@types/index.d.ts +30 -1
- package/build/BMCollectionView/BMCollectionView.js +74 -33
- package/build/BMCollectionView/BMCollectionViewLayout.js +19 -0
- package/build/BMCoreUI.css +80 -42
- package/build/BMView/BMMenu.js +7 -5
- package/lib/@types/BMCoreUI.min.d.ts +30 -1
- package/lib/BMCoreUI.min.js +1 -1
- package/package.json +1 -1
package/build/@types/index.d.ts
CHANGED
|
@@ -10170,7 +10170,7 @@ export class BMMenu {
|
|
|
10170
10170
|
* @param forKeyboardShortcut The keyboard shortcut that was triggered.
|
|
10171
10171
|
*
|
|
10172
10172
|
*/
|
|
10173
|
-
|
|
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
|
-
|
|
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
|
|
package/build/BMCoreUI.css
CHANGED
|
@@ -1524,21 +1524,8 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
|
|
|
1524
1524
|
}
|
|
1525
1525
|
|
|
1526
1526
|
.BMMenuTouch > .BMMenuItemsContainer > .BMMenuItem {
|
|
1527
|
-
height:
|
|
1528
|
-
line-height:
|
|
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
|
-
|
|
1620
|
-
|
|
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,
|
|
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
|
-
.
|
|
1640
|
-
|
|
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,
|
|
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,
|
|
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
|
}
|
package/build/BMView/BMMenu.js
CHANGED
|
@@ -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
|
-
|
|
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
|
*
|