bm-core-ui 2.12.0-beta.12 → 2.12.0-beta.14

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.
@@ -9825,6 +9825,15 @@ export class BMMenuItem {
9825
9825
  */
9826
9826
  CSSClass?: string | null | undefined;
9827
9827
 
9828
+ /**
9829
+ * Updates the CSS class on this item's node.
9830
+ * @param fromClass The currently applied CSS classes.
9831
+ * @param toClass The new classes to apply.
9832
+ *
9833
+ */
9834
+ private _updateCSSClass(fromClass: string, {toClass}: {toClass: string}): void;
9835
+
9836
+
9828
9837
  /**
9829
9838
  * An optional key sequence that may be used to select this menu item via a keyboard shortcut.
9830
9839
  * Updates to this property do not take effect while a menu displaying this menu item is open.
@@ -9838,6 +9847,14 @@ export class BMMenuItem {
9838
9847
  */
9839
9848
  hintHTML?: string | null | undefined;
9840
9849
 
9850
+ /**
9851
+ * Updates this item's HTML hint node with the specified hint.
9852
+ * @param hint The hint to use.
9853
+ *
9854
+ */
9855
+ private _setHintHTML(hint: string): void;
9856
+
9857
+
9841
9858
  /**
9842
9859
  * The node that represents this menu item, available while its menu
9843
9860
  * is open.
@@ -9845,6 +9862,20 @@ export class BMMenuItem {
9845
9862
  */
9846
9863
  private _node?: DOMNode | null | undefined;
9847
9864
 
9865
+ /**
9866
+ * The node that represents this menu item's icon, available while its menu
9867
+ * is open.
9868
+ *
9869
+ */
9870
+ private _iconNode?: DOMNode | null | undefined;
9871
+
9872
+ /**
9873
+ * The node that represents this menu item's title, available while its menu
9874
+ * is open.
9875
+ *
9876
+ */
9877
+ private _nameNode?: DOMNode | null | undefined;
9878
+
9848
9879
  /**
9849
9880
  * Defaults to `YES`. Controls whether this menu item is enabled. If this menu
9850
9881
  * item is not enabled, it can not be highlighted or selected.
@@ -9853,6 +9884,57 @@ export class BMMenuItem {
9853
9884
  enabled: boolean;
9854
9885
 
9855
9886
  /**
9887
+ * Updates the enabled state of this menu item's node.
9888
+ * @param enabled Whether the item is enabled.
9889
+ *
9890
+ */
9891
+ private _setEnabled(enabled: boolean): void;
9892
+
9893
+
9894
+ /**
9895
+ * The currently active replacement menu item, if any.
9896
+ *
9897
+ */
9898
+ private _replacementItem?: BMMenuItem | null | undefined;
9899
+
9900
+ /**
9901
+ * Causes this menu item to instead display the specified menu item instead.
9902
+ * @param item The replacement menu item, or `undefined` to restore
9903
+ * this menu item.
9904
+ * @return `YES` if a replacement occurred, `NO` otherwise.
9905
+ *
9906
+ */
9907
+ private _setReplacementItem(item?: BMMenuItem | null | undefined): boolean;
9908
+
9909
+
9910
+ /**
9911
+ * Contains the replacement menu items and their modifiers.
9912
+ *
9913
+ */
9914
+ private _overrideMenuItems: Dictionary< {item: BMMenuItem, priority: number}>;
9915
+
9916
+ /**
9917
+ * Registers a menu item that will replace this menu item in an open menu when the
9918
+ * specified keyboard modifiers are held.
9919
+ * @param item The replacement menu item to add.
9920
+ * @param forModifiers An array of modifiers that must be held for the
9921
+ * replacement item to be selected.
9922
+ *
9923
+ */
9924
+ addOverrideMenuItem(item: BMMenuItem, {forModifiers}: {forModifiers: BMKeyboardShortcutModifier[]}): void;
9925
+
9926
+
9927
+ /**
9928
+ * Unregisters the replacement menu item when the specified keyboard modifiers are held.
9929
+ * Has no effect if a replacement menu item was not set for the specified modifiers.
9930
+ * @param modifiers The keyboard modifiers.
9931
+ *
9932
+ */
9933
+ removeOverrideMenuItemForModifiers(modifiers: BMKeyboardShortcutModifier[]): void;
9934
+
9935
+
9936
+ /**
9937
+ * Designated initializer.
9856
9938
  * Constructs and returns a menu item with the given name.
9857
9939
  * Optionally, the menu item may have an icon associated with it as well as an
9858
9940
  * action that is invoked when the item is selected.
@@ -10041,6 +10123,28 @@ export class BMMenu {
10041
10123
  initWithItems(items: BMMenuItem[]): BMMenu;
10042
10124
 
10043
10125
 
10126
+ /**
10127
+ * The current modifier bitmap.
10128
+ *
10129
+ */
10130
+ _modifierBitmap: number;
10131
+
10132
+ /**
10133
+ * Invoked to handle the specified keyboard event.
10134
+ * @param event The event that triggered this action.
10135
+ *
10136
+ */
10137
+ handleEvent(event: KeyboardEvent): void;
10138
+
10139
+
10140
+ /**
10141
+ * Updates the modifier bitmap based on the specified event.
10142
+ * @param event The event describing the currently pressed modifier keys.
10143
+ *
10144
+ */
10145
+ private _updateModifierBitmapWithEvent(event: Event): void;
10146
+
10147
+
10044
10148
  /**
10045
10149
  * Invoked by CoreUI to build the menu node.
10046
10150
  *
@@ -10100,6 +10204,12 @@ export class BMMenu {
10100
10204
  openFromNode(node: DOMNode, {animated, kind}?: {animated?: boolean | null | undefined, kind?: BMMenuKind | null | undefined}): Promise<void>;
10101
10205
 
10102
10206
 
10207
+ /**
10208
+ * The rect around which this menu is positioned.
10209
+ *
10210
+ */
10211
+ private _rect?: BMRect | null | undefined;
10212
+
10103
10213
  /**
10104
10214
  * Animatable. Shows this menu at the specified point. The coordinates of this point are relative to the viewport.
10105
10215
  * @param point The point at which to show this menu.
@@ -10113,6 +10223,14 @@ export class BMMenu {
10113
10223
  openAtPoint(point: BMPoint, {animated, kind}?: {animated?: boolean | null | undefined, kind?: BMMenuKind | null | undefined}): void;
10114
10224
 
10115
10225
 
10226
+ /**
10227
+ * Updates this menu's position around the specified rect.
10228
+ * @param rect The rect around which to position this menu.
10229
+ *
10230
+ */
10231
+ private _setAnchorRect(rect: BMRect): void;
10232
+
10233
+
10116
10234
  /**
10117
10235
  * Shows this menu at an appropriate position around the given rect. The coordinates of this rect
10118
10236
  * are relative to the viewport.
@@ -4783,11 +4783,6 @@ BMCollectionView.prototype = BMExtend(BM_COLLECTION_VIEW_USE_BMVIEW_SUBCLASS ? O
4783
4783
  cellWasClicked: function (cell, options) {
4784
4784
  if (options && options.withEvent) options.withEvent._BMOriginalTarget = cell.node;
4785
4785
 
4786
- // Acquire focus if not already owned
4787
- if (document.activeElement != this.node && this._supportsKeyboardNavigation) {
4788
- this.node.focus();
4789
- }
4790
-
4791
4786
  // Forward this event to the delegate, giving it a chance to handle the event
4792
4787
  var eventHandled = NO;
4793
4788
  if (this.delegate && this.delegate.collectionViewCellWasClicked) {
@@ -4797,6 +4792,11 @@ BMCollectionView.prototype = BMExtend(BM_COLLECTION_VIEW_USE_BMVIEW_SUBCLASS ? O
4797
4792
  // If the delegate did handle this event, do not invoke the default behavior
4798
4793
  if (eventHandled) return;
4799
4794
 
4795
+ // Acquire focus if not already owned
4796
+ if (document.activeElement != this.node && this._supportsKeyboardNavigation) {
4797
+ this.node.focus();
4798
+ }
4799
+
4800
4800
  // The default behaviour when clicking cells is to highlight them
4801
4801
  if (this._highlightedIndexPath && !this._highlightedIndexPath.isLooselyEqualToIndexPath(cell.indexPath, {usingComparator: this.identityComparator})) {
4802
4802
  let canHighlight = YES;
@@ -4848,16 +4848,16 @@ BMCollectionView.prototype = BMExtend(BM_COLLECTION_VIEW_USE_BMVIEW_SUBCLASS ? O
4848
4848
  cellWasDoubleClicked: function (cell, options) {
4849
4849
  if (options && options.withEvent) options.withEvent._BMOriginalTarget = cell.node;
4850
4850
 
4851
- // Acquire focus if not already owned
4852
- if (document.activeElement != this.node && this._supportsKeyboardNavigation) {
4853
- this.node.focus();
4854
- }
4855
-
4856
4851
  // Forward this event to the delegate, giving it a chance to handle the event
4857
4852
  var eventHandled = NO;
4858
4853
  if (this.delegate && this.delegate.collectionViewCellWasDoubleClicked) {
4859
4854
  eventHandled = this.delegate.collectionViewCellWasDoubleClicked(this, cell, {withEvent: options.withEvent});
4860
4855
  }
4856
+
4857
+ // Acquire focus if not already owned
4858
+ if (!eventHandled && document.activeElement != this.node && this._supportsKeyboardNavigation) {
4859
+ this.node.focus();
4860
+ }
4861
4861
  },
4862
4862
 
4863
4863
  /**
@@ -4869,11 +4869,6 @@ BMCollectionView.prototype = BMExtend(BM_COLLECTION_VIEW_USE_BMVIEW_SUBCLASS ? O
4869
4869
  */
4870
4870
  cellWasLongClicked: function (cell, options) {
4871
4871
  if (options && options.withEvent) options.withEvent._BMOriginalTarget = cell.node;
4872
-
4873
- // Acquire focus if not already owned
4874
- if (document.activeElement != this.node && this._supportsKeyboardNavigation) {
4875
- this.node.focus();
4876
- }
4877
4872
 
4878
4873
  // Forward this event to the delegate, giving it a chance to handle the event
4879
4874
  var eventHandled = NO;
@@ -4881,6 +4876,11 @@ BMCollectionView.prototype = BMExtend(BM_COLLECTION_VIEW_USE_BMVIEW_SUBCLASS ? O
4881
4876
  eventHandled = this.delegate.collectionViewCellWasLongClicked(this, cell, {withEvent: options.withEvent});
4882
4877
  }
4883
4878
 
4879
+ // Acquire focus if not already owned
4880
+ if (!eventHandled && document.activeElement != this.node && this._supportsKeyboardNavigation) {
4881
+ this.node.focus();
4882
+ }
4883
+
4884
4884
  return eventHandled;
4885
4885
  },
4886
4886
 
@@ -30,7 +30,7 @@
30
30
  font-family: -apple-system, BlinkMacSystemFont, Roboto, 'Segoe UI', sans-serif !important;
31
31
  font-size: 18px !important;
32
32
  font-weight: bold !important;
33
-
33
+
34
34
  text-align: center !important;
35
35
 
36
36
  padding-left: 16px;
@@ -178,7 +178,7 @@
178
178
  .BMDragSessionIndicatorMessage.BMDragSessionIndicatorMessageMeasurement {
179
179
  transition: none;
180
180
  visibility: hidden;
181
-
181
+
182
182
  font-family: -apple-system, BlinkMacSystemFont, Roboto, 'Segoe UI', sans-serif !important;
183
183
  font-size: 16px !important;
184
184
 
@@ -254,15 +254,15 @@
254
254
 
255
255
  .BMWindowBlocker {
256
256
  position: fixed;
257
-
257
+
258
258
  width: 100vw;
259
259
  height: 100vh;
260
-
260
+
261
261
  left: 0px;
262
262
  top: 0px;
263
-
263
+
264
264
  background: rgba(0, 0, 0, .4);
265
-
265
+
266
266
  z-index: 2008;
267
267
  }
268
268
 
@@ -273,13 +273,13 @@
273
273
 
274
274
  .BMWindow {
275
275
  position: fixed;
276
-
276
+
277
277
  border-radius: 8px;
278
278
  overflow: hidden;
279
-
279
+
280
280
  box-shadow: rgba(0, 0, 0, .15) 0px 0px 1px 1px, rgba(0, 0, 0, .33) 0px 12px 64px;
281
281
  outline: none;
282
-
282
+
283
283
  z-index: 2008;
284
284
  }
285
285
 
@@ -507,14 +507,14 @@
507
507
  .BMFullScreenWindow {
508
508
  left: 0px !important;
509
509
  top: 0px !important;
510
-
510
+
511
511
  width: 100vw !important;
512
512
  height: 100vh !important;
513
513
  }
514
514
 
515
515
  .BMWindowContent {
516
516
  position: absolute;
517
-
517
+
518
518
  width: 100%;
519
519
  height: 100%;
520
520
  top: 0px;
@@ -609,7 +609,7 @@
609
609
  .BMWindowLabel, .BMLabel {
610
610
  color: rgba(255, 255, 255, .9);
611
611
  }
612
-
612
+
613
613
  .BMWindowSublabel, .BMSubLabel {
614
614
  color: rgba(255, 255, 255, .5);
615
615
  }
@@ -626,7 +626,7 @@
626
626
  font-family: -apple-system, BlinkMacSystemFont, Roboto, 'Segoe UI', sans-serif !important;
627
627
  font-size: 24px !important;
628
628
  font-weight: bold !important;
629
-
629
+
630
630
  text-align: left !important;
631
631
 
632
632
  color: rgba(0, 0, 0, .8);
@@ -634,7 +634,7 @@
634
634
 
635
635
  .BMWindowTitle {
636
636
  min-height: 64px !important;
637
-
637
+
638
638
  margin-left: 24px !important;
639
639
  margin-right: 8px !important;
640
640
 
@@ -654,9 +654,9 @@
654
654
  -webkit-appearance: none !important;
655
655
  border: none !important;
656
656
  box-sizing: border-box !important;
657
-
657
+
658
658
  border-radius: 4px !important;
659
-
659
+
660
660
  transition: box-shadow .2s ease, background-color .2s ease !important;
661
661
  box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0), 0px 0px 20px 20px rgba(0, 160, 255, 0) !important;
662
662
 
@@ -666,7 +666,7 @@
666
666
 
667
667
  .BMWindowInput {
668
668
  margin: 8px !important;
669
-
669
+
670
670
  height: calc(100% - 16px) !important;
671
671
  min-width: 44px !important;
672
672
  }
@@ -729,7 +729,7 @@
729
729
  .BMWindowInputInvalid:hover:not(:focus), .BMInputInvalid:hover:not(:focus) {
730
730
  box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, .05) inset, 0px 0px 1px 1px rgba(0, 0, 0, .33), 0px 0px 20px 20px rgba(255, 80, 0, 0) !important;
731
731
  }
732
-
732
+
733
733
  .BMWindowInputInvalid:focus, .BMInputInvalid:focus {
734
734
  box-shadow: 0px 0px 0px 1px rgba(255, 255, 255, .05) inset, 0px 0px 1px 1px rgba(0, 0, 0, .5), 0px 0px 15px rgba(255, 80, 0, 1) !important;
735
735
  }
@@ -794,7 +794,7 @@
794
794
  .BMWindowToolbarLabel {
795
795
  border: none !important;
796
796
  box-sizing: border-box !important;
797
-
797
+
798
798
  border-radius: 4px !important;
799
799
  margin: 8px !important;
800
800
 
@@ -830,17 +830,17 @@
830
830
  display: flex;
831
831
  align-content: center;
832
832
  justify-content: center;
833
-
833
+
834
834
  border-radius: 4px;
835
835
  box-shadow: 0px 2px 4px rgba(0, 0, 0, .1), 0px 0px 1px 1px rgba(0, 0, 0, .1);
836
-
836
+
837
837
  background: rgba(0, 128, 255, 1);
838
-
838
+
839
839
  color: white;
840
840
  font-family: -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica', 'Segoe UI', sans-serif;
841
841
  font-size: 14px;
842
842
  font-weight: bold;
843
-
843
+
844
844
  padding: 8px 16px;
845
845
 
846
846
  align-self: center;
@@ -851,7 +851,7 @@
851
851
 
852
852
  .BMWindowButton {
853
853
  min-height: 32px;
854
-
854
+
855
855
  margin: 8px;
856
856
  border: none;
857
857
  }
@@ -903,7 +903,7 @@
903
903
  width: 44px;
904
904
  height: 44px;
905
905
  top: 10px;
906
-
906
+
907
907
  border-radius: 50%;
908
908
 
909
909
  margin-left: 8px;
@@ -951,18 +951,18 @@
951
951
 
952
952
  .BMLayoutEditorCloseButton {
953
953
  position: absolute !important;
954
-
954
+
955
955
  left: 8px !important;
956
956
  opacity: 0;
957
-
957
+
958
958
  pointer-events: none;
959
-
959
+
960
960
  transition: opacity .3s ease;
961
961
  }
962
962
 
963
963
  .BMLayoutEditorCloseButton.BMLayoutEditorFullScreen {
964
964
  opacity: 1;
965
-
965
+
966
966
  pointer-events: inherit;
967
967
  }
968
968
 
@@ -982,22 +982,22 @@
982
982
  width: 128px;
983
983
  padding-top: 8px;
984
984
  padding-bottom: 8px;
985
-
985
+
986
986
  display: flex;
987
987
  flex-direction: row;
988
988
  align-items: center;
989
-
989
+
990
990
  color: rgba(0, 0, 0, .25);
991
-
991
+
992
992
  padding-left: 8px;
993
993
  padding-right: 8px;
994
-
994
+
995
995
  box-sizing: border-box !important; /* Important needed for Thingworx new composer */
996
996
  font-size: 10px !important;
997
-
997
+
998
998
  margin-left: 32px;
999
999
  margin-right: 32px;
1000
-
1000
+
1001
1001
  cursor: pointer;
1002
1002
  }
1003
1003
 
@@ -1012,16 +1012,16 @@
1012
1012
 
1013
1013
  .BMWindowSwitchGutter {
1014
1014
  border-radius: 5px;
1015
-
1015
+
1016
1016
  border: 1px solid rgba(0, 0, 0, .1);
1017
1017
  background-color: rgba(0, 0, 0, .1);
1018
-
1018
+
1019
1019
  margin-left: 8px;
1020
1020
  margin-right: 8px;
1021
-
1021
+
1022
1022
  flex-grow: 1;
1023
1023
  height: 20px;
1024
-
1024
+
1025
1025
  box-sizing: border-box !important; /* Important needed for Thingworx new composer */
1026
1026
  overflow: hidden;
1027
1027
  }
@@ -1030,12 +1030,12 @@
1030
1030
  width: 50%;
1031
1031
  height: 100%;
1032
1032
  background-color: #FFF;
1033
-
1033
+
1034
1034
  box-shadow: 0px 2px 8px rgba(0, 0, 0, .3), 0px -4px 8px rgba(0, 0, 0, .05) inset;
1035
1035
  border-radius: 5px;
1036
1036
 
1037
1037
  transform: translateX(100%);
1038
-
1038
+
1039
1039
  transition: transform .2s ease, width .2s ease, opacity .2s ease;
1040
1040
  }
1041
1041
 
@@ -1199,7 +1199,7 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1199
1199
  transform: translateZ(0);
1200
1200
  -webkit-transform: translateZ(0);
1201
1201
  }
1202
-
1202
+
1203
1203
  }
1204
1204
 
1205
1205
  .BMWindowToolbarDark .BMLayoutEditorSizeClassPopupOption:active > .BMLayoutEditorSizeClassImage {
@@ -1346,12 +1346,6 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1346
1346
  z-index: 9999999;
1347
1347
  }
1348
1348
 
1349
- /* A class that is temporarily added to the menu container to allow the user
1350
- to move over menu items without triggering them while moving torwards the submenu */
1351
- .BMMenuContainer.BMMenuContainerSubmenuActive > * {
1352
- pointer-events: none !important;
1353
- }
1354
-
1355
1349
  .BMMenuContainerFullScreen {
1356
1350
  background-color: rgba(0, 0, 0, .33);
1357
1351
  }
@@ -1364,7 +1358,7 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1364
1358
  }
1365
1359
  }
1366
1360
 
1367
- .BMLayoutEditorConstraintPopup,
1361
+ .BMLayoutEditorConstraintPopup,
1368
1362
  .BMMenu {
1369
1363
  position: absolute;
1370
1364
 
@@ -1540,7 +1534,7 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1540
1534
  /* The menu's text element should expand to fill all available space */
1541
1535
  .BMMenuItem > span {
1542
1536
  flex-grow: 1;
1543
-
1537
+
1544
1538
  overflow: hidden;
1545
1539
  text-overflow: ellipsis;
1546
1540
  white-space: nowrap;
@@ -1561,7 +1555,7 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1561
1555
  .BMMenuItemDisclosure {
1562
1556
  width: 24px;
1563
1557
  height: 24px;
1564
-
1558
+
1565
1559
  font-weight: 600;
1566
1560
 
1567
1561
  font-size: 18px;
@@ -1733,15 +1727,15 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1733
1727
  from {
1734
1728
  color: rgba(255, 255, 255, .9);
1735
1729
  }
1736
-
1730
+
1737
1731
  49% {
1738
1732
  color: rgba(255, 255, 255, .9);
1739
1733
  }
1740
-
1734
+
1741
1735
  50% {
1742
1736
  color: white;
1743
1737
  }
1744
-
1738
+
1745
1739
  to {
1746
1740
  color: white;
1747
1741
  }
@@ -1802,7 +1796,7 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1802
1796
  }
1803
1797
 
1804
1798
  .BMLayoutEditorDetailsBackButton {
1805
- pointer-events: all;
1799
+ pointer-events: all;
1806
1800
  padding-left: 8px !important; /* TWX-Important */
1807
1801
  padding-right: 8px !important; /* TWX-Important */
1808
1802
 
@@ -1941,7 +1935,7 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
1941
1935
  transform: translateZ(0);
1942
1936
  -webkit-transform: translateZ(0);
1943
1937
  }
1944
-
1938
+
1945
1939
  .BMLayoutEditorDetailsItemBadge {
1946
1940
  border-color: rgba(255, 255, 255, .1);
1947
1941
  color: rgba(255, 255, 255, .33) !important;
@@ -2108,7 +2102,7 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
2108
2102
  .BMLayoutEditorDetailsItemReadonlyValueClickable:hover {
2109
2103
  background-color: rgba(255, 255, 255, .1);
2110
2104
  }
2111
-
2105
+
2112
2106
  .BMLayoutEditorDetailsItemReadonlyValueClickable:active {
2113
2107
  background-color: rgba(255, 255, 255, .2);
2114
2108
  }
@@ -2177,11 +2171,11 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
2177
2171
  .BMLayoutEditorDetailsConstraintItem:hover {
2178
2172
  background-color: rgba(255, 255, 255, .1);
2179
2173
  }
2180
-
2174
+
2181
2175
  .BMLayoutEditorDetailsConstraintItem:active {
2182
2176
  background-color: rgba(255, 255, 255, .2);
2183
2177
  }
2184
-
2178
+
2185
2179
  .BMLayoutEditorDetailsConstraintItemReadonly {
2186
2180
  border-color: rgba(255, 255, 255, .1);
2187
2181
  }
@@ -2357,8 +2351,8 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
2357
2351
  border-left: 1px dashed rgba(255, 255, 255, .33);
2358
2352
  border-top: 1px dashed rgba(255, 255, 255, .33);
2359
2353
  }
2360
-
2361
-
2354
+
2355
+
2362
2356
  .BMLayoutEditorDetailsInsetBottomRightIndicator {
2363
2357
  border-right: 1px dashed rgba(255, 255, 255, .33);
2364
2358
  border-bottom: 1px dashed rgba(255, 255, 255, .33);
@@ -2524,7 +2518,7 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
2524
2518
  left: 0px;
2525
2519
  width: 100%;
2526
2520
  height: 100%;
2527
- background:
2521
+ background:
2528
2522
  /* On "top" */
2529
2523
  repeating-linear-gradient(
2530
2524
  45deg,
@@ -2822,13 +2816,13 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
2822
2816
 
2823
2817
  .BMPopoverOverlay {
2824
2818
  position: absolute;
2825
-
2819
+
2826
2820
  width: 100%;
2827
2821
  height: 100%;
2828
-
2822
+
2829
2823
  left: 0px;
2830
2824
  top: 0px;
2831
-
2825
+
2832
2826
  z-index: 9999999; /* :( */
2833
2827
 
2834
2828
  backdrop-filter: none !important;
@@ -2877,7 +2871,7 @@ input:not(:checked) + .BMWindowSwitchGutter > .BMWindowSwitchKnob, .BMWindowSwit
2877
2871
 
2878
2872
  .BMPopoverContainerLayer {
2879
2873
  position: absolute;
2880
-
2874
+
2881
2875
  z-index: 9999999; /* :( */
2882
2876
  pointer-events: none;
2883
2877
  }
@@ -2886,9 +2880,9 @@ The drop shadow layer contains the drop shadow effect only.
2886
2880
  */
2887
2881
  .BMPopoverDropShadowContainer {
2888
2882
 
2889
- /*
2890
- Filter drop-shadow is extremely expensive, but in practice,
2891
- no page should have more than one popover open at any time, which should mitigate this
2883
+ /*
2884
+ Filter drop-shadow is extremely expensive, but in practice,
2885
+ no page should have more than one popover open at any time, which should mitigate this
2892
2886
  */
2893
2887
  filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, .25)) drop-shadow(0px 12px 64px rgba(0, 0, 0, .33));
2894
2888
  mix-blend-mode: multiply;
@@ -2918,9 +2912,9 @@ The background layer contains the background.
2918
2912
  */
2919
2913
  .BMPopoverBackground {
2920
2914
  position: absolute;
2921
-
2915
+
2922
2916
  z-index: 9999999; /* TWX-Z-Index */
2923
-
2917
+
2924
2918
  background: rgba(245, 245, 245, .8);
2925
2919
  -webkit-backdrop-filter: blur(25px);
2926
2920
  backdrop-filter: blur(25px);
@@ -3294,4 +3288,4 @@ The background layer contains the background.
3294
3288
 
3295
3289
  .BMLayoutEditorImageDesktopMini {
3296
3290
  background-image: url(images/DesktopMini.png);
3297
- }
3291
+ }
@@ -899,6 +899,11 @@ BMDragSession.prototype = {
899
899
  this._itemPreviewsUpdateIdentifier = setTimeout(() => {
900
900
  this._itemPreviewsUpdateIdentifier = undefined;
901
901
 
902
+ // If the session finished in the meantime, don't perform any further transition
903
+ if (this._finished) {
904
+ return;
905
+ }
906
+
902
907
  const newPreviews = new Map();
903
908
  if (this._dropTarget && this._dropTarget != this._sourceView) {
904
909
  // If there is a valid drop target, request item previews and apply them