bm-core-ui 2.9.5 → 2.10.1

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.
Files changed (56) hide show
  1. package/build/@types/index.d.ts +320 -61
  2. package/build/BMCollectionView/BMCollectionView.js +79 -41
  3. package/build/BMCollectionView/BMCollectionViewFlowLayout.js +18 -5
  4. package/build/BMCoreUI.css +45 -18
  5. package/build/BMView/BMMenu.js +135 -7
  6. package/build/BMView/BMView_v2.5.js +59 -0
  7. package/build/BMWindow/BMKeyboardShortcut.js +338 -88
  8. package/build/BMWindow/BMPopover/BMPopover.js +52 -11
  9. package/build/BMWindow/BMWindow.js +32 -6
  10. package/build/Core/BMCoreUI.js +20 -8
  11. package/build/images/AlignBottom.png +0 -0
  12. package/build/images/AlignCenterX.png +0 -0
  13. package/build/images/AlignCenterY.png +0 -0
  14. package/build/images/AlignLeading.png +0 -0
  15. package/build/images/AlignTop.png +0 -0
  16. package/build/images/AlignTrailing.png +0 -0
  17. package/build/images/AllConstraints.png +0 -0
  18. package/build/images/BottomConstraint.png +0 -0
  19. package/build/images/CenterXConstraint.png +0 -0
  20. package/build/images/CenterYConstraint.png +0 -0
  21. package/build/images/CoreUI2.png +0 -0
  22. package/build/images/CoreUI2@2x.png +0 -0
  23. package/build/images/Desktop.png +0 -0
  24. package/build/images/DesktopMini.png +0 -0
  25. package/build/images/EqualHeight.png +0 -0
  26. package/build/images/EqualHorizontalSpacing.png +0 -0
  27. package/build/images/EqualHorizontalSpacingInSuperview.png +0 -0
  28. package/build/images/EqualVerticalSpacing.png +0 -0
  29. package/build/images/EqualVerticalSpacingInSuperview.png +0 -0
  30. package/build/images/EqualWidth.png +0 -0
  31. package/build/images/HeightConstraint.png +0 -0
  32. package/build/images/InactiveConstraints.png +0 -0
  33. package/build/images/Layout.png +0 -0
  34. package/build/images/LayoutVariables.png +0 -0
  35. package/build/images/LeftConstraint.png +0 -0
  36. package/build/images/OwnConstraints.png +0 -0
  37. package/build/images/Phone.png +0 -0
  38. package/build/images/PhoneLandscape.png +0 -0
  39. package/build/images/PhoneLandscapeMini.png +0 -0
  40. package/build/images/PhoneMini.png +0 -0
  41. package/build/images/PhonePortrait.png +0 -0
  42. package/build/images/PhonePortraitMini.png +0 -0
  43. package/build/images/Properties.png +0 -0
  44. package/build/images/RightConstraint.png +0 -0
  45. package/build/images/SubviewConstraints.png +0 -0
  46. package/build/images/Tablet.png +0 -0
  47. package/build/images/TabletLandscape.png +0 -0
  48. package/build/images/TabletLandscapeMini.png +0 -0
  49. package/build/images/TabletMini.png +0 -0
  50. package/build/images/TabletPortrait.png +0 -0
  51. package/build/images/TabletPortraitMini.png +0 -0
  52. package/build/images/TopConstraint.png +0 -0
  53. package/build/images/WidthConstraint.png +0 -0
  54. package/lib/@types/BMCoreUI.min.d.ts +320 -61
  55. package/lib/BMCoreUI.min.js +3 -1
  56. package/package.json +9 -10
@@ -245,49 +245,55 @@ declare class BMHTMLEntity {
245
245
  * The HTML entity representing the control key.
246
246
  *
247
247
  */
248
- static Control: BMHTMLEntity;
248
+ static Control: string;
249
249
 
250
250
  /**
251
251
  * The HTML entity representing the bowen knot Command symbol.
252
252
  *
253
253
  */
254
- static Command: BMHTMLEntity;
254
+ static Command: string;
255
255
 
256
256
  /**
257
257
  * The HTML entity representing the Option symbol.
258
258
  *
259
259
  */
260
- static Option: BMHTMLEntity;
260
+ static Option: string;
261
261
 
262
262
  /**
263
263
  * The HTML entity representing the Shift symbol.
264
264
  *
265
265
  */
266
- static Shift: BMHTMLEntity;
266
+ static Shift: string;
267
267
 
268
268
  /**
269
269
  * The HTML entity representing the Caps-Lock symbol.
270
270
  *
271
271
  */
272
- static CapsLock: BMHTMLEntity;
272
+ static CapsLock: string;
273
273
 
274
274
  /**
275
275
  * The HTML entity representing the Backspace delete symbol.
276
276
  *
277
277
  */
278
- static Delete: BMHTMLEntity;
278
+ static Delete: string;
279
279
 
280
280
  /**
281
281
  * The HTML entity representing the Return symbol.
282
282
  *
283
283
  */
284
- static Return: BMHTMLEntity;
284
+ static Return: string;
285
285
 
286
286
  /**
287
287
  * The HTML entity representing the Escape symbol.
288
288
  *
289
289
  */
290
- static Escape: BMHTMLEntity;
290
+ static Escape: string;
291
+
292
+ /**
293
+ * The HTML entity representing the Tab symbol.
294
+ *
295
+ */
296
+ static Tab: string;
291
297
 
292
298
  private constructor();
293
299
  }
@@ -3567,6 +3573,32 @@ declare class BMViewLayoutQueue {
3567
3573
  }
3568
3574
 
3569
3575
 
3576
+ /**
3577
+ * Constants that describe the color scheme that a view should use when drawing itself.
3578
+ *
3579
+ */
3580
+ declare class BMViewColorScheme {
3581
+ /**
3582
+ * Indicates that the view's color scheme should be based on the system color scheme.
3583
+ *
3584
+ */
3585
+ static Auto: BMViewColorScheme;
3586
+
3587
+ /**
3588
+ * Indicates that the view should always use a dark color scheme regardless of the system color scheme setting.
3589
+ *
3590
+ */
3591
+ static Dark: BMViewColorScheme;
3592
+
3593
+ /**
3594
+ * Indicates that the view should always use a light color scheme regardless of the system color scheme setting.
3595
+ *
3596
+ */
3597
+ static Light: BMViewColorScheme;
3598
+
3599
+ private constructor();
3600
+ }
3601
+
3570
3602
  /**
3571
3603
  * A view is a wrapper around a DOM node enabling various CoreUI-related functionality.
3572
3604
  * Views typically do not duplicate existing DOM capabilities, but instead are used to
@@ -4288,6 +4320,24 @@ declare class BMView {
4288
4320
  hasIsVisibleVariationForSizeClass(sizeClass: BMLayoutSizeClass): boolean;
4289
4321
 
4290
4322
 
4323
+ /**
4324
+ * The color scheme that this view should use.
4325
+ *
4326
+ */
4327
+ colorScheme: BMViewColorScheme;
4328
+
4329
+ /**
4330
+ * Invoked by CoreUI whenever the color scheme that the view should use changes.
4331
+ *
4332
+ * Subclasses may use this method to perform any changes needed to support the requested color scheme.
4333
+ * Subclasses that override this method must invoke the superclass method at some point in their implementation.
4334
+ *
4335
+ * @param scheme The previous color scheme.
4336
+ *
4337
+ */
4338
+ protected colorSchemeDidChange(scheme: BMViewColorScheme): void;
4339
+
4340
+
4291
4341
  /**
4292
4342
  * Used by CoreUI to determine if this view's intrinsic size should match the intrinsic size reported by its node element.
4293
4343
  * When this getter returns `YES`, CoreUI will measure the view's node to determine its intrinsic size.
@@ -8031,6 +8081,19 @@ declare class BMMenuItem {
8031
8081
  */
8032
8082
  CSSClass?: string | null | undefined;
8033
8083
 
8084
+ /**
8085
+ * An optional key sequence that may be used to select this menu item via a keyboard shortcut.
8086
+ * Updates to this property do not take effect while a menu displaying this menu item is open.
8087
+ *
8088
+ */
8089
+ keySequence?: BMKeySequence | null | undefined;
8090
+
8091
+ /**
8092
+ * An optional hint HTML text that will be displayed next to the menu item.
8093
+ *
8094
+ */
8095
+ hintHTML?: string | null | undefined;
8096
+
8034
8097
  /**
8035
8098
  * The node that represents this menu item, available while its menu
8036
8099
  * is open.
@@ -8038,6 +8101,13 @@ declare class BMMenuItem {
8038
8101
  */
8039
8102
  private _node?: DOMNode | null | undefined;
8040
8103
 
8104
+ /**
8105
+ * Defaults to `YES`. Controls whether this menu item is enabled. If this menu
8106
+ * item is not enabled, it can not be highlighted or selected.
8107
+ *
8108
+ */
8109
+ enabled: boolean;
8110
+
8041
8111
  /**
8042
8112
  * Constructs and returns a menu item with the given name.
8043
8113
  * Optionally, the menu item may have an icon associated with it as well as an
@@ -8048,12 +8118,13 @@ declare class BMMenuItem {
8048
8118
  *
8049
8119
  * @param action If specified, this is a function that will be invoked when this menu item is selected.
8050
8120
  * This function will receive the selected menu item as a parameter.
8121
+ * @param enabled Defaults to `YES`. Controls whether this item is enabled and can be selected.
8051
8122
  * @param submenu Optional. If specified, this represents a menu that opens from this menu item.
8052
8123
  * @param userInfo Optional. If specified, this represents additional arbitrary data attached to this menu item.
8053
8124
  * @return This menu item.
8054
8125
  *
8055
8126
  */
8056
- initWithName(name: string, {icon, action, submenu, userInfo}?: {icon?: string | null | undefined, action?: (($0: BMMenuItem) => void) | null | undefined, submenu?: BMMenu | null | undefined, userInfo?: any | null | undefined}): BMMenuItem;
8127
+ initWithName(name: string, {icon, action, enabled, submenu, userInfo}?: {icon?: string | null | undefined, action?: (($0: BMMenuItem) => void) | null | undefined, enabled?: boolean | null | undefined, submenu?: BMMenu | null | undefined, userInfo?: any | null | undefined}): BMMenuItem;
8057
8128
 
8058
8129
 
8059
8130
  /**
@@ -8066,12 +8137,13 @@ declare class BMMenuItem {
8066
8137
  *
8067
8138
  * @param action If specified, this is a function that will be invoked when this menu item is selected.
8068
8139
  * This function will receive the selected menu item as a parameter.
8140
+ * @param enabled Defaults to `YES`. Controls whether this item is enabled and can be selected.
8069
8141
  * @param submenu Optional. If specified, this represents a menu that opens from this menu item.
8070
8142
  * @param userInfo Optional. If specified, this represents additional arbitrary data attached to this menu item.
8071
8143
  * @return A menu item.
8072
8144
  *
8073
8145
  */
8074
- static menuItemWithName (name: string, {icon, action, submenu, userInfo}?: {icon?: string | null | undefined, action?: (($0: BMMenuItem) => void) | null | undefined, submenu?: BMMenu | null | undefined, userInfo?: any | null | undefined}): BMMenuItem;
8146
+ static menuItemWithName (name: string, {icon, action, enabled, submenu, userInfo}?: {icon?: string | null | undefined, action?: (($0: BMMenuItem) => void) | null | undefined, enabled?: boolean | null | undefined, submenu?: BMMenu | null | undefined, userInfo?: any | null | undefined}): BMMenuItem;
8075
8147
 
8076
8148
 
8077
8149
  /**
@@ -8103,7 +8175,7 @@ declare class BMMenu {
8103
8175
  delegate?: BMMenuDelegate | null | undefined;
8104
8176
 
8105
8177
  /**
8106
- * Defaults to 24. The size to use for this menu's icons.
8178
+ * Defaults to `24`. The size to use for this menu's icons.
8107
8179
  *
8108
8180
  */
8109
8181
  iconSize: number;
@@ -8243,7 +8315,8 @@ declare class BMMenu {
8243
8315
  private readonly _kind: any;
8244
8316
 
8245
8317
  /**
8246
- * Animatable. Shows this menu from the given DOM node.
8318
+ * Animatable. Shows this menu from the specified DOM node. The menu will be displayed as a touch menu,
8319
+ * highlighting the source node and de-emphasizing the rest of the document.
8247
8320
  * @param node The node from which to show this menu.
8248
8321
  * @param animated Defaults to `NO`. If set to `YES`, this change will be animated.
8249
8322
  * If this method is invoked from within an animation context, the value of this parameter is ignored
@@ -8351,6 +8424,15 @@ declare class BMMenu {
8351
8424
  arrowLeftPressedWithEvent(event: KeyboardEvent): void;
8352
8425
 
8353
8426
 
8427
+ /**
8428
+ * Invoked when the key sequence for a menu item is pressed.
8429
+ * @param event The event that triggered this action.
8430
+ * @param forKeyboardShortcut The keyboard shortcut that was triggered.
8431
+ *
8432
+ */
8433
+ private _selectMenuItemWithEvent(event: KeyboardEvent, {forKeyboardShortcut}: {forKeyboardShortcut: BMKeyboardShortcut}): void;
8434
+
8435
+
8354
8436
  /**
8355
8437
  * Invoked when the return or spacebar key is pressed.
8356
8438
  * @param event The event that triggered this action.
@@ -9950,19 +10032,19 @@ declare class BMCollectionViewTableLayoutSupplementaryView {
9950
10032
  * Indicates that this supplementary view is a footer.
9951
10033
  *
9952
10034
  */
9953
- static Footer: BMCollectionViewTableLayoutSupplementaryView;
10035
+ static Footer: string;
9954
10036
 
9955
10037
  /**
9956
10038
  * Indicates that this supplementary view is a header.
9957
10039
  *
9958
10040
  */
9959
- static Header: BMCollectionViewTableLayoutSupplementaryView;
10041
+ static Header: string;
9960
10042
 
9961
10043
  /**
9962
10044
  * Indicates that this supplementary is an empty content view.
9963
10045
  *
9964
10046
  */
9965
- static Empty: BMCollectionViewTableLayoutSupplementaryView;
10047
+ static Empty: string;
9966
10048
 
9967
10049
  private constructor();
9968
10050
  }
@@ -10594,7 +10676,7 @@ declare class BMCollectionViewFlowLayout extends BMCollectionViewLayout {
10594
10676
  * the identifiers used by the table layout are reused in this case.
10595
10677
  *
10596
10678
  */
10597
- declare var BMCollectionViewFlowLayoutSupplementaryView: any;
10679
+ declare var BMCollectionViewFlowLayoutSupplementaryView: typeof BMCollectionViewTableLayoutSupplementaryView;
10598
10680
 
10599
10681
 
10600
10682
 
@@ -11342,6 +11424,13 @@ declare class BMCollectionView<T = any> extends BMView {
11342
11424
  */
11343
11425
  layout: BMCollectionViewLayout;
11344
11426
 
11427
+ /**
11428
+ * Set to a transition layout while an animated layout update is in progress. Undefined
11429
+ * in all other cases.
11430
+ *
11431
+ */
11432
+ private _transitionLayout?: BMCollectionViewLayout | null | undefined;
11433
+
11345
11434
  /**
11346
11435
  * Animatable. The collection view's size and its position relative to its parent element.
11347
11436
  *
@@ -11549,7 +11638,24 @@ declare class BMCollectionView<T = any> extends BMView {
11549
11638
 
11550
11639
 
11551
11640
  /**
11552
- * Should not be invoked manually. It is invoked by collection view to create the initial layout and cells.
11641
+ * Initializes this collection view with the specified DOM node and default properties.
11642
+ * The collection view will use a `BMCollectionViewFlowLayout` layout object.
11643
+ * A valid object should be assigned to the `dataSet` property to fully initialize and use this collection view.
11644
+ * @param node The container that the collection view will manage. This should be an empty div element,
11645
+ * otherwise the behaviour of the collection view will be undefined.
11646
+ * @param customScroll Defaults to `NO`. When set to `YES`, collection view will use custom scrolling in
11647
+ * place of regular scrolling. Otherwise, it will use native scrolling. This should only be
11648
+ * used with layouts where cell positions depend on the scroll position of collection view.
11649
+ * This property cannot be changed after being set in the intializer.
11650
+ * @return A collection view.
11651
+ *
11652
+ */
11653
+ initWithDOMNode(node: DOMNode, {customScroll}?: {customScroll?: boolean | null | undefined}): BMCollectionView;
11654
+
11655
+
11656
+ /**
11657
+ * Should not be invoked manually. Invoked by collection view the first time a data set is assigned
11658
+ * to it to create the initial layout and cells.
11553
11659
  *
11554
11660
  */
11555
11661
  private _init(): void;
@@ -12497,26 +12603,31 @@ declare interface BMCollectionViewDataSet<T = any> {
12497
12603
 
12498
12604
 
12499
12605
  /**
12500
- * Returns the complete index path for the object with the given section and row indexes.
12606
+ * Returns the index path for the object with the specified section and row indexes.
12501
12607
  * @param row The object's index within the section.
12502
12608
  * @param inSectionAtIndex The section's index.
12503
- * @return The complete index path.
12609
+ * @return The index path if these indexes are part of the data set,
12610
+ * `undefined` otherwise. `undefined` may only be returned during
12611
+ * animated data updates while `isUsingOldData` returns `YES`.
12504
12612
  *
12505
12613
  */
12506
- indexPathForObjectAtRow(row: Int, {inSectionAtIndex}: {inSectionAtIndex: Int}): BMIndexPath<T>;
12614
+ indexPathForObjectAtRow(row: Int, {inSectionAtIndex}: {inSectionAtIndex: Int}): BMIndexPath<T> | null | undefined;
12507
12615
 
12508
12616
 
12509
12617
  /**
12510
- * Returns the index path for the given object.
12511
- * @param object The object.
12512
- * @return The index path.
12618
+ * Returns the index path for the specified object.
12619
+ * @param object The object.
12620
+ * @return The index path, if the object is part of the data set,
12621
+ * `undefined` otherwise. `undefined` may only be returned during
12622
+ * animated data updates while `isUsingOldData` returns `YES`.
12513
12623
  *
12514
12624
  */
12515
- indexPathForObject(object: any): BMIndexPath<T>;
12625
+ indexPathForObject(object: any): BMIndexPath<T> | null | undefined;
12516
12626
 
12517
12627
 
12518
12628
  /**
12519
12629
  * @deprecated Deprecated. Consider using custom cell classes instead. Only invoked when using the default cell class.
12630
+ * ---
12520
12631
  * Returns the jQuery element that represents the contents of a cell with the given reuse identifier.
12521
12632
  * The collection view will invoke this method whenever a new cell has to be created.
12522
12633
  * @param identifier The cell's identifier.
@@ -12540,6 +12651,7 @@ declare interface BMCollectionViewDataSet<T = any> {
12540
12651
 
12541
12652
  /**
12542
12653
  * @deprecated Deprecated. Consider using custom cell classes instead. Only invoked when using the default cell class.
12654
+ * ---
12543
12655
  * Returns the jQuery element that represents the contents of a supplementary view of the given type.
12544
12656
  * The supplementary view's type is defined entirely by the layout object.
12545
12657
  * @param identifier The supplementary view's type identifier.
@@ -12563,8 +12675,9 @@ declare interface BMCollectionViewDataSet<T = any> {
12563
12675
 
12564
12676
 
12565
12677
  /**
12566
- * @deprecated Deprecated. This method is optional, but is still invoked by the collection view when implemented. It is recommended to use cell
12567
- * enumeration and manually update cells as needed during data updates.
12678
+ * @deprecated Deprecated. This method is optional, but is still invoked by the collection view when implemented. Consider using cell
12679
+ * enumeration and manually updating cells as needed during data updates.
12680
+ * ---
12568
12681
  * This method will be invoked by the collection view when it is needed to update the contents of an already rendered cell.
12569
12682
  * The data set object should always use the supplied indexPath parameter as the binding to the model object rather than the cell's
12570
12683
  * own indexPath property as this method may be invoked during an update when the cell's old indexPath no longer matches the new data set.
@@ -12576,8 +12689,9 @@ declare interface BMCollectionViewDataSet<T = any> {
12576
12689
 
12577
12690
 
12578
12691
  /**
12579
- * @deprecated Deprecated. This method is optional, but is still invoked by the collection view when implemented. It is recommended to use cell
12580
- * enumeration and manually update cells as needed during data updates.
12692
+ * @deprecated Deprecated. This method is optional, but is still invoked by the collection view when implemented. Consider using cell
12693
+ * enumeration and manually updating cells as needed during data updates.
12694
+ * ---
12581
12695
  * This method will be invoked by the collection view when it is needed to update the contents of an already rendered supplementary view.
12582
12696
  * The data set object should always use the supplied indexPath parameter as the binding to the model object rather than the cell's
12583
12697
  * own indexPath property as this method may be invoked during an update when the cell's old indexPath no longer matches the new data set.
@@ -12617,6 +12731,9 @@ declare interface BMCollectionViewDataSet<T = any> {
12617
12731
  * Data set objects implementing this method are expected to update their internal data structures to match
12618
12732
  * the item's new position, then trigger a data update to run on the collection view.
12619
12733
  * Optionally, data sets may reject the change and not perform any action.
12734
+ * ---
12735
+ * For collection views that support moving items, this method must be implemented by the data sets these collection views
12736
+ * use. In this case, data sets that don't support moving items may simply return `NO` from this method.
12620
12737
  * @param indexPath The item's current index path.
12621
12738
  * @param toIndexPath The index path to which the item should move.
12622
12739
  * @return `YES` if the data set has performed the requested change, `NO` otherwise.
@@ -13006,9 +13123,10 @@ declare interface BMCollectionViewDelegate {
13006
13123
  * @param collectionView The calling collection view.
13007
13124
  * @param cell The cell that is about to be dragged.
13008
13125
  * @param atIndexPath The cell's index path.
13126
+ * @return `YES` if interaction movement can begin for the specified cell, `NO` otherwise.
13009
13127
  *
13010
13128
  */
13011
- collectionViewCanMoveCell?(collectionView: BMCollectionView, cell: BMCollectionViewCell, {atIndexPath}: {atIndexPath: BMIndexPath}): void;
13129
+ collectionViewCanMoveCell?(collectionView: BMCollectionView, cell: BMCollectionViewCell, {atIndexPath}: {atIndexPath: BMIndexPath}): boolean;
13012
13130
 
13013
13131
 
13014
13132
  /**
@@ -14149,6 +14267,12 @@ declare class BMPopover extends BMWindow {
14149
14267
  */
14150
14268
  private _clipPathOutlinePath?: DOMNode | null | undefined;
14151
14269
 
14270
+ /**
14271
+ * When `_clipPathSVG` is defined, this represents the box shadow path element.
14272
+ *
14273
+ */
14274
+ private _clipPathBoxShadowPath?: DOMNode | null | undefined;
14275
+
14152
14276
  /**
14153
14277
  * A string that forms part of the HTML IDs that will be assigned to the clip paths
14154
14278
  * to be used on browsers.
@@ -14481,37 +14605,112 @@ declare class BMConfirmationPopup extends BMAlertPopup {
14481
14605
  declare class BMKeyboardShortcutModifier {
14482
14606
  /**
14483
14607
  * Represents the command key on macOS and iOS, windows key on Windows and meta key on Linux.
14484
- *
14608
+ *
14485
14609
  */
14486
14610
  static Command: BMKeyboardShortcutModifier;
14487
14611
 
14488
14612
  /**
14489
14613
  * Represents the option key on macOS and alt on other systems.
14490
- *
14614
+ *
14491
14615
  */
14492
14616
  static Option: BMKeyboardShortcutModifier;
14493
14617
 
14494
14618
  /**
14495
14619
  * Represents the shit key.
14496
- *
14620
+ *
14497
14621
  */
14498
14622
  static Shift: BMKeyboardShortcutModifier;
14499
14623
 
14500
14624
  /**
14501
14625
  * Represents the control key.
14502
- *
14626
+ *
14503
14627
  */
14504
14628
  static Control: BMKeyboardShortcutModifier;
14505
14629
 
14506
14630
  /**
14507
14631
  * Represents the command key on macOS and iOS and control key on other systems.
14508
- *
14632
+ *
14509
14633
  */
14510
14634
  static System: BMKeyboardShortcutModifier;
14511
14635
 
14512
14636
  private constructor();
14513
14637
  }
14514
14638
 
14639
+ /**
14640
+ * A class whose instances describe sequences of keys on a keyboard that must be
14641
+ * pressed for an action to take place.
14642
+ *
14643
+ */
14644
+ declare class BMKeySequence {
14645
+
14646
+ /**
14647
+ * The key that should be pressed for this keyboard shortcut.
14648
+ *
14649
+ */
14650
+ readonly keyCode: string;
14651
+
14652
+ /**
14653
+ * An array of keyboard modifiers that must be pressed
14654
+ * together with the key in order to trigger the shortcut.
14655
+ *
14656
+ */
14657
+ readonly modifiers: BMKeyboardShortcutModifier[];
14658
+
14659
+ /**
14660
+ * Designated initializer. Initializes this key sequence with the specified key and optional modifiers.
14661
+ * @param key The key that should be pressed for this key sequence.
14662
+ * This maps to the `code` property of keyboard events.
14663
+ * @param modifiers Defaults to an empty array. An optional array of modifiers
14664
+ * that must be pressed together with the target key.
14665
+ * @return This key sequence.
14666
+ *
14667
+ */
14668
+ initWithKeyCode(key: string, {modifiers}?: {modifiers?: BMKeyboardShortcutModifier[] | null | undefined}): BMKeySequence;
14669
+
14670
+
14671
+ /**
14672
+ * Initializes this key sequence with the specified keyboard event, using the event's key code
14673
+ * and any active modifier keys. If the event includes the control or command keys, these may be converted
14674
+ * into a system key modifier based on the current platform.
14675
+ * @param event The keyboard event from which this key sequence should be initialized.
14676
+ * @return This key sequence.
14677
+ *
14678
+ */
14679
+ initWithKeyboardEvent(event: KeyboardEvent): BMKeySequence;
14680
+
14681
+
14682
+ /**
14683
+ * A string description of this key sequence, intended to be displayed to end-users.
14684
+ * Its format depends on the current platform.
14685
+ *
14686
+ */
14687
+ readonly HTMLDescription: string;
14688
+
14689
+ /**
14690
+ * Creates and returns a key sequence initialized with the specified key and optional modifiers.
14691
+ * @param key The key that should be pressed for this key sequence.
14692
+ * This maps to the `code` property of keyboard events.
14693
+ * @param modifiers Defaults to an empty array. An optional array of modifiers
14694
+ * that must be pressed together with the target key.
14695
+ * @return This key sequence.
14696
+ *
14697
+ */
14698
+ static keySequenceWithKeyCode (key: string, {modifiers}?: {modifiers?: BMKeyboardShortcutModifier[] | null | undefined}): BMKeySequence;
14699
+
14700
+
14701
+ /**
14702
+ * Creates and returns a key sequence initialized with the specified keyboard event, using the event's key code
14703
+ * and any active modifier keys. If the event includes the control or command keys, these may be converted
14704
+ * into a system key modifier based on the current platform.
14705
+ * @param event The keyboard event from which this key sequence should be initialized.
14706
+ * @return This key sequence.
14707
+ *
14708
+ */
14709
+ static keySequenceWithKeyboardEvent (event: KeyboardEvent): BMKeySequence;
14710
+
14711
+ }
14712
+
14713
+
14515
14714
  /**
14516
14715
  * A keyboard shortcut object describes the keys that must be pressed for a keyboard shortcut to trigger as
14517
14716
  * well as what should happen when that shortcut is triggered.
@@ -14519,6 +14718,12 @@ declare class BMKeyboardShortcutModifier {
14519
14718
  */
14520
14719
  declare class BMKeyboardShortcut {
14521
14720
 
14721
+ /**
14722
+ * The key sequence that should be pressed to trigger this keyboard shortcut.
14723
+ *
14724
+ */
14725
+ readonly keySequence: BMKeySequence;
14726
+
14522
14727
  /**
14523
14728
  * The key that should be pressed for this keyboard shortcut.
14524
14729
  *
@@ -14526,7 +14731,7 @@ declare class BMKeyboardShortcut {
14526
14731
  readonly keyCode: string;
14527
14732
 
14528
14733
  /**
14529
- * An optional array of keyboard modifiers that must be pressed
14734
+ * An array of keyboard modifiers that must be pressed
14530
14735
  * together with the key in order to trigger the shortcut.
14531
14736
  *
14532
14737
  */
@@ -14559,7 +14764,26 @@ declare class BMKeyboardShortcut {
14559
14764
  preventsDefault: boolean;
14560
14765
 
14561
14766
  /**
14562
- * Designated initializer. Initializes this keyboard shortcut with the given key and optional modifiers, as well as
14767
+ * Designated Initializer. Initializes this keyboard shortcut with the specified key sequence and the action that the
14768
+ * keyboard shortcut should trigger.
14769
+ * @param keySequence The key sequence describing the keyboard buttons that
14770
+ * should be pressed to trigger this keyboard shortcut.
14771
+ * @param target The object that will handle this keyboard shortcut action.
14772
+ * @param action The name of a method on the target object that will be invoked when this
14773
+ * keyboard shortcut is triggered. That method will receive the following arguments:
14774
+ *
14775
+ * - `event`: {@link KeyboardEvent} The keyboard event that triggered the keyboard shortcut
14776
+ * - `{forKeyboardShortcut}`: {@link BMKeyboardShortcut} The associated keyboard shortcut
14777
+ * @param preventsDefault Defaults to `NO`. When set to `YES`, the default action of the event that triggers
14778
+ * normally as a result of the key sequence will be prevented.
14779
+ * @return This keyboard shortcut.
14780
+ *
14781
+ */
14782
+ initWithKeySequence(keySequence: BMKeySequence, {target, action, preventsDefault}: {target: any, action: string, preventsDefault?: boolean | null | undefined}): BMKeyboardShortcut;
14783
+
14784
+
14785
+ /**
14786
+ * Initializes this keyboard shortcut with the given key and optional modifiers, as well as
14563
14787
  * the target and action that will handle it.
14564
14788
  *
14565
14789
  * In order to be triggered, this keyboard shortcut must be registered with an event handler such as a window
@@ -14567,10 +14791,14 @@ declare class BMKeyboardShortcut {
14567
14791
  * @param key The key that should be pressed for this keyboard shortcut. This maps to the `code` property of keyboard events.
14568
14792
  * @param modifiers Defaults to an empty array. An optional array of keyboard modifiers that must be active.
14569
14793
  * for the keyboard shortcut to fire.
14570
- * @param target The object that will handle this keyboard shortcut action.
14571
- * @param action The name of a method on the target object that will be invoked when this
14572
- * keyboard shortcut is triggered. That method will receive the keyboard event as its single parameter.
14573
- * @param preventsDefault Defaults to `NO`. When set to `YES`, the default action of the event that triggers this keyboard shortcut will be prevented.
14794
+ * @param target The object that will handle this keyboard shortcut action.
14795
+ * @param action The name of a method on the target object that will be invoked when this
14796
+ * keyboard shortcut is triggered. That method will receive the following arguments:
14797
+ *
14798
+ * - `event`: {@link KeyboardEvent} The keyboard event that triggered the keyboard shortcut
14799
+ * - `{forKeyboardShortcut}`: {@link BMKeyboardShortcut} The associated keyboard shortcut
14800
+ * @param preventsDefault Defaults to `NO`. When set to `YES`, the default action of the event that triggers
14801
+ * normally as a result of the key sequence will be prevented.
14574
14802
  * @return This keyboard shortcut.
14575
14803
  *
14576
14804
  */
@@ -14580,15 +14808,19 @@ declare class BMKeyboardShortcut {
14580
14808
  /**
14581
14809
  * Initializes this keyboard shortcut with the given keyboard event. If the event includes the control or command keys, these may be converted
14582
14810
  * into a system key modifier based on the current platform.
14583
- * @param event The keyboard event from which this keyboard shortcut should be initialized.
14584
- * @param target The object that will handle this keyboard shortcut action.
14585
- * @param action The name of a method on the target object that will be invoked when this
14586
- * keyboard shortcut is triggered. That method will receive the keyboard event as its single parameter.
14587
- * @param preventsDefault Defaults to `NO`. When set to `YES`, the default action of the event that triggers this keyboard shortcut will be prevented.
14588
- *
14811
+ * @param event The keyboard event from which this keyboard shortcut should be initialized.
14812
+ * @param target The object that will handle this keyboard shortcut action.
14813
+ * @param action The name of a method on the target object that will be invoked when this
14814
+ * keyboard shortcut is triggered. That method will receive the following arguments:
14815
+ *
14816
+ * - `event`: {@link KeyboardEvent} The keyboard event that triggered the keyboard shortcut
14817
+ * - `{forKeyboardShortcut}`: {@link BMKeyboardShortcut} The associated keyboard shortcut
14818
+ * @param preventsDefault Defaults to `NO`. When set to `YES`, the default action of the event that triggers
14819
+ * normally as a result of the key sequence will be prevented.
14820
+ * @return This keyboard shortcut.
14589
14821
  *
14590
14822
  */
14591
- initWithKeyboardEvent(event: KeyboardEvent, {target, action, preventsDefault}: {target: any, action: string, preventsDefault?: boolean | null | undefined}): void;
14823
+ initWithKeyboardEvent(event: KeyboardEvent, {target, action, preventsDefault}: {target: any, action: string, preventsDefault?: boolean | null | undefined}): BMKeyboardShortcut;
14592
14824
 
14593
14825
 
14594
14826
  /**
@@ -14597,10 +14829,10 @@ declare class BMKeyboardShortcut {
14597
14829
  * @param shortcut A serialized keyboard shortcut.
14598
14830
  * @param targetID A callback that is invoked with the target ID and should return
14599
14831
  * the target object which will handle the keyboard shortcut.
14600
- * @return This keyboard shortcut.
14832
+ * @return This keyboard shortcut.
14601
14833
  *
14602
14834
  */
14603
- initWithSerializedKeyboardShortcut(shortcut: any, {targetID}: {targetID: (($0: string) => any)}): any;
14835
+ initWithSerializedKeyboardShortcut(shortcut: any, {targetID}: {targetID: (($0: string) => any)}): BMKeyboardShortcut;
14604
14836
 
14605
14837
 
14606
14838
  /**
@@ -14614,6 +14846,25 @@ declare class BMKeyboardShortcut {
14614
14846
  serializedKeyboardShortcutWithTargetID(ID: string): any;
14615
14847
 
14616
14848
 
14849
+ /**
14850
+ * Constructs and returns a keyboard shortcut with the specified key sequence and action that will be triggered
14851
+ * by the keyboard shortcut.
14852
+ * @param keySequence The key sequence describing the keys that should be pressed to
14853
+ * trigger this shortcut.s
14854
+ * @param target The object that will handle this keyboard shortcut action.
14855
+ * @param action The name of a method on the target object that will be invoked when this
14856
+ * keyboard shortcut is triggered. That method will receive the following arguments:
14857
+ *
14858
+ * - `event`: {@link KeyboardEvent} The keyboard event that triggered the keyboard shortcut
14859
+ * - `{forKeyboardShortcut}`: {@link BMKeyboardShortcut} The associated keyboard shortcut
14860
+ * @param preventsDefault Defaults to `NO`. When set to `YES`, the default action of the event that triggers
14861
+ * normally as a result of the key sequence will be prevented.
14862
+ * @return A keyboard shortcut.
14863
+ *
14864
+ */
14865
+ static keyboardShortcutWithKeySequence (keySequence: BMKeySequence, {target, action, preventsDefault}: {target: any, action: string, preventsDefault?: boolean | null | undefined}): BMKeyboardShortcut;
14866
+
14867
+
14617
14868
  /**
14618
14869
  * Constructs and returns a keyboard shortcut with the given key and optional modifiers, as well as
14619
14870
  * the target and action that will handle it.
@@ -14623,10 +14874,14 @@ declare class BMKeyboardShortcut {
14623
14874
  * @param key The key that should be pressed for this keyboard shortcut. This maps to the `code` property of keyboard events.
14624
14875
  * @param modifiers Defaults to an empty array. An optional array of keyboard modifiers that must be active.
14625
14876
  * for the keyboard shortcut to fire.
14626
- * @param target The object that will handle this keyboard shortcut action.
14627
- * @param action The name of a method on the target object that will be invoked when this
14628
- * keyboard shortcut is triggered. That method will receive the keyboard event as its single parameter.
14629
- * @param preventsDefault Defaults to `NO`. When set to `YES`, the default action of the event that triggers this keyboard shortcut will be prevented.
14877
+ * @param target The object that will handle this keyboard shortcut action.
14878
+ * @param action The name of a method on the target object that will be invoked when this
14879
+ * keyboard shortcut is triggered. That method will receive the following arguments:
14880
+ *
14881
+ * - `event`: {@link KeyboardEvent} The keyboard event that triggered the keyboard shortcut
14882
+ * - `{forKeyboardShortcut}`: {@link BMKeyboardShortcut} The associated keyboard shortcut
14883
+ * @param preventsDefault Defaults to `NO`. When set to `YES`, the default action of the event that triggers
14884
+ * normally as a result of the key sequence will be prevented.
14630
14885
  * @return A keyboard shortcut.
14631
14886
  *
14632
14887
  */
@@ -14636,15 +14891,19 @@ declare class BMKeyboardShortcut {
14636
14891
  /**
14637
14892
  * Constructs and returns a keyboard shortcut with the given keyboard event. If the event includes the control or command keys, these may be converted
14638
14893
  * into a system key modifier based on the current platform.
14639
- * @param event The keyboard event from which this keyboard shortcut should be initialized.
14640
- * @param target The object that will handle this keyboard shortcut action.
14641
- * @param action The name of a method on the target object that will be invoked when this
14642
- * keyboard shortcut is triggered. That method will receive the keyboard event as its single parameter.
14643
- * @param preventsDefault Defaults to `NO`. When set to `YES`, the default action of the event that triggers this keyboard shortcut will be prevented.
14894
+ * @param event The keyboard event from which this keyboard shortcut should be initialized.
14895
+ * @param target The object that will handle this keyboard shortcut action.
14896
+ * @param action The name of a method on the target object that will be invoked when this
14897
+ * keyboard shortcut is triggered. That method will receive the following arguments:
14644
14898
  *
14899
+ * - `event`: {@link KeyboardEvent} The keyboard event that triggered the keyboard shortcut
14900
+ * - `{forKeyboardShortcut}`: {@link BMKeyboardShortcut} The associated keyboard shortcut
14901
+ * @param preventsDefault Defaults to `NO`. When set to `YES`, the default action of the event that triggers
14902
+ * normally as a result of the key sequence will be prevented.
14903
+ * @return A keyboard shortcut.
14645
14904
  *
14646
14905
  */
14647
- static keyboardShortcutWithKeyboardEvent (event: KeyboardEvent, {target, action, preventsDefault}: {target: any, action: string, preventsDefault?: boolean | null | undefined}): void;
14906
+ static keyboardShortcutWithKeyboardEvent (event: KeyboardEvent, {target, action, preventsDefault}: {target: any, action: string, preventsDefault?: boolean | null | undefined}): BMKeyboardShortcut;
14648
14907
 
14649
14908
 
14650
14909
  /**
@@ -14653,10 +14912,10 @@ declare class BMKeyboardShortcut {
14653
14912
  * @param shortcut A serialized keyboard shortcut.
14654
14913
  * @param targetID A callback that is invoked with the target ID and should return
14655
14914
  * the target object which will handle the keyboard shortcut.
14656
- * @return A keyboard shortcut.
14915
+ * @return A keyboard shortcut.
14657
14916
  *
14658
14917
  */
14659
- static keyboardShortcutWithSerializedKeyboardShortcut (shortcut: any, {targetID}: {targetID: (($0: string) => any)}): any;
14918
+ static keyboardShortcutWithSerializedKeyboardShortcut (shortcut: any, {targetID}: {targetID: (($0: string) => any)}): BMKeyboardShortcut | null | undefined;
14660
14919
 
14661
14920
  }
14662
14921