@itwin/appui-abstract 4.1.0-dev.3 → 4.1.0-dev.30

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 (122) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/lib/cjs/appui-abstract/BaseUiItemsProvider.d.ts +31 -0
  3. package/lib/cjs/appui-abstract/BaseUiItemsProvider.d.ts.map +1 -0
  4. package/lib/cjs/appui-abstract/BaseUiItemsProvider.js +80 -0
  5. package/lib/cjs/appui-abstract/BaseUiItemsProvider.js.map +1 -0
  6. package/lib/cjs/appui-abstract/UiItemsManager.d.ts +114 -0
  7. package/lib/cjs/appui-abstract/UiItemsManager.d.ts.map +1 -0
  8. package/lib/cjs/appui-abstract/UiItemsManager.js +194 -0
  9. package/lib/cjs/appui-abstract/UiItemsManager.js.map +1 -0
  10. package/lib/cjs/appui-abstract/UiItemsProvider.d.ts +30 -0
  11. package/lib/cjs/appui-abstract/UiItemsProvider.d.ts.map +1 -0
  12. package/lib/cjs/appui-abstract/UiItemsProvider.js +10 -0
  13. package/lib/cjs/appui-abstract/UiItemsProvider.js.map +1 -0
  14. package/lib/cjs/appui-abstract/backstage/BackstageItem.d.ts +92 -0
  15. package/lib/cjs/appui-abstract/backstage/BackstageItem.d.ts.map +1 -0
  16. package/lib/cjs/appui-abstract/backstage/BackstageItem.js +71 -0
  17. package/lib/cjs/appui-abstract/backstage/BackstageItem.js.map +1 -0
  18. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.d.ts +39 -0
  19. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.d.ts.map +1 -0
  20. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.js +134 -0
  21. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.js.map +1 -0
  22. package/lib/cjs/appui-abstract/items/ProvidedItem.d.ts +12 -0
  23. package/lib/cjs/appui-abstract/items/ProvidedItem.d.ts.map +1 -0
  24. package/lib/cjs/appui-abstract/items/ProvidedItem.js +10 -0
  25. package/lib/cjs/appui-abstract/items/ProvidedItem.js.map +1 -0
  26. package/lib/cjs/appui-abstract/items/StageUsage.d.ts +17 -0
  27. package/lib/cjs/appui-abstract/items/StageUsage.d.ts.map +1 -0
  28. package/lib/cjs/appui-abstract/items/StageUsage.js +25 -0
  29. package/lib/cjs/appui-abstract/items/StageUsage.js.map +1 -0
  30. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.d.ts +129 -0
  31. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.d.ts.map +1 -0
  32. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.js +88 -0
  33. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.js.map +1 -0
  34. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.d.ts +40 -0
  35. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.d.ts.map +1 -0
  36. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.js +136 -0
  37. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.js.map +1 -0
  38. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.d.ts +27 -1
  39. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.d.ts.map +1 -1
  40. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.js +23 -1
  41. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.js.map +1 -1
  42. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.d.ts +46 -0
  43. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.d.ts.map +1 -0
  44. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.js +236 -0
  45. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.js.map +1 -0
  46. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.d.ts +87 -0
  47. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.d.ts.map +1 -0
  48. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.js +10 -0
  49. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.js.map +1 -0
  50. package/lib/cjs/appui-abstract/widget/StagePanel.d.ts +37 -0
  51. package/lib/cjs/appui-abstract/widget/StagePanel.d.ts.map +1 -0
  52. package/lib/cjs/appui-abstract/widget/StagePanel.js +47 -0
  53. package/lib/cjs/appui-abstract/widget/StagePanel.js.map +1 -0
  54. package/lib/cjs/appui-abstract/widget/WidgetState.d.ts +20 -0
  55. package/lib/cjs/appui-abstract/widget/WidgetState.d.ts.map +1 -0
  56. package/lib/cjs/appui-abstract/widget/WidgetState.js +28 -0
  57. package/lib/cjs/appui-abstract/widget/WidgetState.js.map +1 -0
  58. package/lib/cjs/appui-abstract.d.ts +31 -0
  59. package/lib/cjs/appui-abstract.d.ts.map +1 -1
  60. package/lib/cjs/appui-abstract.js +31 -0
  61. package/lib/cjs/appui-abstract.js.map +1 -1
  62. package/lib/esm/appui-abstract/BaseUiItemsProvider.d.ts +31 -0
  63. package/lib/esm/appui-abstract/BaseUiItemsProvider.d.ts.map +1 -0
  64. package/lib/esm/appui-abstract/BaseUiItemsProvider.js +76 -0
  65. package/lib/esm/appui-abstract/BaseUiItemsProvider.js.map +1 -0
  66. package/lib/esm/appui-abstract/UiItemsManager.d.ts +114 -0
  67. package/lib/esm/appui-abstract/UiItemsManager.d.ts.map +1 -0
  68. package/lib/esm/appui-abstract/UiItemsManager.js +191 -0
  69. package/lib/esm/appui-abstract/UiItemsManager.js.map +1 -0
  70. package/lib/esm/appui-abstract/UiItemsProvider.d.ts +30 -0
  71. package/lib/esm/appui-abstract/UiItemsProvider.d.ts.map +1 -0
  72. package/lib/esm/appui-abstract/UiItemsProvider.js +9 -0
  73. package/lib/esm/appui-abstract/UiItemsProvider.js.map +1 -0
  74. package/lib/esm/appui-abstract/backstage/BackstageItem.d.ts +92 -0
  75. package/lib/esm/appui-abstract/backstage/BackstageItem.d.ts.map +1 -0
  76. package/lib/esm/appui-abstract/backstage/BackstageItem.js +66 -0
  77. package/lib/esm/appui-abstract/backstage/BackstageItem.js.map +1 -0
  78. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.d.ts +39 -0
  79. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.d.ts.map +1 -0
  80. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.js +130 -0
  81. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.js.map +1 -0
  82. package/lib/esm/appui-abstract/items/ProvidedItem.d.ts +12 -0
  83. package/lib/esm/appui-abstract/items/ProvidedItem.d.ts.map +1 -0
  84. package/lib/esm/appui-abstract/items/ProvidedItem.js +9 -0
  85. package/lib/esm/appui-abstract/items/ProvidedItem.js.map +1 -0
  86. package/lib/esm/appui-abstract/items/StageUsage.d.ts +17 -0
  87. package/lib/esm/appui-abstract/items/StageUsage.d.ts.map +1 -0
  88. package/lib/esm/appui-abstract/items/StageUsage.js +22 -0
  89. package/lib/esm/appui-abstract/items/StageUsage.js.map +1 -0
  90. package/lib/esm/appui-abstract/statusbar/StatusBarItem.d.ts +129 -0
  91. package/lib/esm/appui-abstract/statusbar/StatusBarItem.d.ts.map +1 -0
  92. package/lib/esm/appui-abstract/statusbar/StatusBarItem.js +82 -0
  93. package/lib/esm/appui-abstract/statusbar/StatusBarItem.js.map +1 -0
  94. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.d.ts +40 -0
  95. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.d.ts.map +1 -0
  96. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.js +132 -0
  97. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.js.map +1 -0
  98. package/lib/esm/appui-abstract/toolbars/ToolbarItem.d.ts +27 -1
  99. package/lib/esm/appui-abstract/toolbars/ToolbarItem.d.ts.map +1 -1
  100. package/lib/esm/appui-abstract/toolbars/ToolbarItem.js +22 -0
  101. package/lib/esm/appui-abstract/toolbars/ToolbarItem.js.map +1 -1
  102. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.d.ts +46 -0
  103. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.d.ts.map +1 -0
  104. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.js +232 -0
  105. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.js.map +1 -0
  106. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.d.ts +87 -0
  107. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.d.ts.map +1 -0
  108. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.js +9 -0
  109. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.js.map +1 -0
  110. package/lib/esm/appui-abstract/widget/StagePanel.d.ts +37 -0
  111. package/lib/esm/appui-abstract/widget/StagePanel.d.ts.map +1 -0
  112. package/lib/esm/appui-abstract/widget/StagePanel.js +44 -0
  113. package/lib/esm/appui-abstract/widget/StagePanel.js.map +1 -0
  114. package/lib/esm/appui-abstract/widget/WidgetState.d.ts +20 -0
  115. package/lib/esm/appui-abstract/widget/WidgetState.d.ts.map +1 -0
  116. package/lib/esm/appui-abstract/widget/WidgetState.js +25 -0
  117. package/lib/esm/appui-abstract/widget/WidgetState.js.map +1 -0
  118. package/lib/esm/appui-abstract.d.ts +31 -0
  119. package/lib/esm/appui-abstract.d.ts.map +1 -1
  120. package/lib/esm/appui-abstract.js +31 -0
  121. package/lib/esm/appui-abstract.js.map +1 -1
  122. package/package.json +15 -36
@@ -0,0 +1,30 @@
1
+ /** @packageDocumentation
2
+ * @module UiItemsProvider
3
+ */
4
+ import { BackstageItem } from "./backstage/BackstageItem";
5
+ import { CommonStatusBarItem } from "./statusbar/StatusBarItem";
6
+ import { CommonToolbarItem, ToolbarOrientation, ToolbarUsage } from "./toolbars/ToolbarItem";
7
+ import { AbstractWidgetProps } from "./widget/AbstractWidgetProps";
8
+ import { AbstractZoneLocation, StagePanelLocation, StagePanelSection } from "./widget/StagePanel";
9
+ /** Describes interface of objects that want to provide UI component to the running IModelApp.
10
+ * @deprecated in 3.6. Use [UiItemsProvider]($appui-react) instead.
11
+ * @public
12
+ */
13
+ export interface UiItemsProvider {
14
+ /** id of provider */
15
+ readonly id: string;
16
+ /** UiItemsManager calls following method to get items to populate specific toolbars */
17
+ provideToolbarButtonItems?: (stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any) => CommonToolbarItem[];
18
+ /** UiItemsManager calls following method to augment base statusbar for stages that allow it. */
19
+ provideStatusBarItems?: (stageId: string, stageUsage: string, stageAppData?: any) => CommonStatusBarItem[];
20
+ /** UiItemsManager calls following method to augment backstage items. */
21
+ provideBackstageItems?: () => BackstageItem[];
22
+ /** UiItemsManager calls following method to augment Widget lists.
23
+ * @note Returned widgets must provide unique `AbstractWidgetProps["id"]` to correctly save/restore App layout.
24
+ */
25
+ provideWidgets?: (stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection, // eslint-disable-line deprecation/deprecation
26
+ zoneLocation?: AbstractZoneLocation, stageAppData?: any) => ReadonlyArray<AbstractWidgetProps>;
27
+ /** Function called when the provider is unregistered via `ItemsManager.unregister` to allow provider to do cleanup. */
28
+ onUnregister?: () => void;
29
+ }
30
+ //# sourceMappingURL=UiItemsProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiItemsProvider.d.ts","sourceRoot":"","sources":["../../../src/appui-abstract/UiItemsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAElG;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,uFAAuF;IACvF,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,iBAAiB,EAAE,CAAC;IACjL,gGAAgG;IAChG,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,mBAAmB,EAAE,CAAC;IAC3G,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,MAAM,aAAa,EAAE,CAAC;IAC9C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,8CAA8C;IAC9J,YAAY,CAAC,EAAE,oBAAoB,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACjG,uHAAuH;IACvH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B"}
@@ -0,0 +1,9 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module UiItemsProvider
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=UiItemsProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiItemsProvider.js","sourceRoot":"","sources":["../../../src/appui-abstract/UiItemsProvider.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module UiItemsProvider\r\n */\r\n\r\nimport { BackstageItem } from \"./backstage/BackstageItem\";\r\nimport { CommonStatusBarItem } from \"./statusbar/StatusBarItem\";\r\nimport { CommonToolbarItem, ToolbarOrientation, ToolbarUsage } from \"./toolbars/ToolbarItem\";\r\nimport { AbstractWidgetProps } from \"./widget/AbstractWidgetProps\";\r\nimport { AbstractZoneLocation, StagePanelLocation, StagePanelSection } from \"./widget/StagePanel\";\r\n\r\n/** Describes interface of objects that want to provide UI component to the running IModelApp.\r\n * @deprecated in 3.6. Use [UiItemsProvider]($appui-react) instead.\r\n * @public\r\n */\r\nexport interface UiItemsProvider {\r\n /** id of provider */\r\n readonly id: string;\r\n\r\n /** UiItemsManager calls following method to get items to populate specific toolbars */\r\n provideToolbarButtonItems?: (stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any) => CommonToolbarItem[]; // eslint-disable-line deprecation/deprecation\r\n /** UiItemsManager calls following method to augment base statusbar for stages that allow it. */\r\n provideStatusBarItems?: (stageId: string, stageUsage: string, stageAppData?: any) => CommonStatusBarItem[]; // eslint-disable-line deprecation/deprecation\r\n /** UiItemsManager calls following method to augment backstage items. */\r\n provideBackstageItems?: () => BackstageItem[]; // eslint-disable-line deprecation/deprecation\r\n /** UiItemsManager calls following method to augment Widget lists.\r\n * @note Returned widgets must provide unique `AbstractWidgetProps[\"id\"]` to correctly save/restore App layout.\r\n */\r\n provideWidgets?: (stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection, // eslint-disable-line deprecation/deprecation\r\n zoneLocation?: AbstractZoneLocation, stageAppData?: any) => ReadonlyArray<AbstractWidgetProps>; // eslint-disable-line deprecation/deprecation\r\n /** Function called when the provider is unregistered via `ItemsManager.unregister` to allow provider to do cleanup. */\r\n onUnregister?: () => void;\r\n}\r\n"]}
@@ -0,0 +1,92 @@
1
+ /** @packageDocumentation
2
+ * @module Backstage
3
+ */
4
+ import { BadgeType } from "../items/BadgeType";
5
+ import { ConditionalBooleanValue } from "../items/ConditionalBooleanValue";
6
+ import { ConditionalStringValue } from "../items/ConditionalStringValue";
7
+ import { ProvidedItem } from "../items/ProvidedItem";
8
+ /** Used to specify the item type added to the backstage menu.
9
+ * @deprecated in 3.6. Use type guards instead.
10
+ * @public
11
+ */
12
+ export declare enum BackstageItemType {
13
+ /** Item that executes an action function */
14
+ ActionItem = 1,
15
+ /** Item that activate a stage. */
16
+ StageLauncher = 2
17
+ }
18
+ /** Describes the data needed to insert a button into the backstage menu.
19
+ * @deprecated in 3.6. Use [CommonBackstageItem]($appui-react) instead.
20
+ * @public
21
+ */
22
+ export interface CommonBackstageItem extends ProvidedItem {
23
+ /** can be used by application to store miscellaneous data. */
24
+ applicationData?: any;
25
+ /** Describes badge. Renders no badge if not specified. */
26
+ readonly badgeType?: BadgeType;
27
+ /** Specifies the item's grouping value. Items are sorted by group and then item priority. When
28
+ * group priority changes a separator is inserted. It is recommended using values 10 through 100, incrementing by 10. This
29
+ * allows extensions enough gaps to insert their own groups.
30
+ */
31
+ readonly groupPriority: number;
32
+ /** Name of icon WebFont entry or if specifying an imported SVG symbol use "webSvg:" prefix to imported symbol Id. */
33
+ readonly icon?: string | ConditionalStringValue;
34
+ /** Required unique id of the item. To ensure uniqueness it is suggested that a namespace prefix of the extension name be used. */
35
+ readonly id: string;
36
+ /** optional data to be used by item implementor. */
37
+ readonly internalData?: Map<string, any>;
38
+ /** Describes if the item is visible or hidden. The default is for the item to be visible. */
39
+ readonly isHidden?: boolean | ConditionalBooleanValue;
40
+ /** Describes if the item is enabled or disabled. The default is for the item to be enabled. */
41
+ readonly isDisabled?: boolean | ConditionalBooleanValue;
42
+ /** Priority within a group (recommend using values 1 through 100). */
43
+ readonly itemPriority: number;
44
+ /** Label. */
45
+ readonly label: string | ConditionalStringValue;
46
+ /** Subtitle. */
47
+ readonly subtitle?: string | ConditionalStringValue;
48
+ /** Tooltip. */
49
+ readonly tooltip?: string | ConditionalStringValue;
50
+ /** Describes if the item is active. The default is for the item to be active if stageId matches activeFrontstageId */
51
+ readonly isActive?: boolean | ConditionalBooleanValue;
52
+ }
53
+ /** Describes the data needed to insert an action button into the backstage menu.
54
+ * @deprecated in 3.6. Use [BackstageActionItem]($appui-react) instead.
55
+ * @public
56
+ */
57
+ export interface BackstageActionItem extends CommonBackstageItem {
58
+ readonly execute: () => void;
59
+ }
60
+ /** Describes the data needed to insert an action button into the backstage menu.
61
+ * @deprecated in 3.6. Use [BackstageActionItem]($appui-react) instead.
62
+ * @public
63
+ */
64
+ export interface BackstageStageLauncher extends CommonBackstageItem {
65
+ readonly stageId: string;
66
+ }
67
+ /** Describes the data needed to insert a button into the backstage menu.
68
+ * @deprecated in 3.6. Use [BackstageItem]($appui-react) instead.
69
+ * @public
70
+ */
71
+ export type BackstageItem = BackstageActionItem | BackstageStageLauncher;
72
+ /** BackstageActionItem type guard.
73
+ * @deprecated in 3.6. Use [isBackstageActionItem]($appui-react) instead.
74
+ * @public
75
+ */
76
+ export declare const isActionItem: (item: BackstageItem) => item is BackstageActionItem;
77
+ /** BackstageStageLauncher type guard.
78
+ * @deprecated in 3.6. Use [isBackstageStageLauncher]($appui-react) instead.
79
+ * @public
80
+ */
81
+ export declare const isStageLauncher: (item: BackstageItem) => item is BackstageStageLauncher;
82
+ /** Utilities for creating and maintaining backstage items
83
+ * @deprecated in 3.6. Use [BackstageItemUtilities]($appui-react) instead.
84
+ * @public
85
+ */
86
+ export declare class BackstageItemUtilities {
87
+ /** Creates a stage launcher backstage item */
88
+ static createStageLauncher: (frontstageId: string, groupPriority: number, itemPriority: number, label: string | ConditionalStringValue, subtitle?: string | ConditionalStringValue, icon?: string | ConditionalStringValue, overrides?: Partial<BackstageStageLauncher>) => BackstageStageLauncher;
89
+ /** Creates an action backstage item */
90
+ static createActionItem: (itemId: string, groupPriority: number, itemPriority: number, execute: () => void, label: string | ConditionalStringValue, subtitle?: string | ConditionalStringValue, icon?: string | ConditionalStringValue, overrides?: Partial<BackstageActionItem>) => BackstageActionItem;
91
+ }
92
+ //# sourceMappingURL=BackstageItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackstageItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/backstage/BackstageItem.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;GAGG;AACH,oBAAY,iBAAiB;IAC3B,4CAA4C;IAC5C,UAAU,IAAI;IACd,kCAAkC;IAClC,aAAa,IAAI;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,8DAA8D;IAC9D,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,qHAAqH;IACrH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAChD,kIAAkI;IAClI,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzC,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IACtD,+FAA+F;IAC/F,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IACxD,sEAAsE;IACtE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,aAAa;IACb,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAChD,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACpD,eAAe;IACf,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACnD,sHAAsH;IACtH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;CACvD;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,YAAY,SAAU,aAAa,gCAE/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,SAAU,aAAa,mCAElD,CAAC;AAEF;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,8CAA8C;IAC9C,OAAc,mBAAmB,iBACjB,MAAM,iBAAiB,MAAM,gBAAgB,MAAM,SAAS,MAAM,GAAG,sBAAsB,aAC9F,MAAM,GAAG,sBAAsB,SAAS,MAAM,GAAG,sBAAsB,cAAc,QAAQ,sBAAsB,CAAC,KAC9H,sBAAsB,CAUtB;IAEH,uCAAuC;IACvC,OAAc,gBAAgB,WACpB,MAAM,iBAAiB,MAAM,gBAAgB,MAAM,WAAW,MAAM,IAAI,SAAS,MAAM,GAAG,sBAAsB,aAC7G,MAAM,GAAG,sBAAsB,SAAS,MAAM,GAAG,sBAAsB,cAAc,QAAQ,mBAAmB,CAAC,KAC3H,mBAAmB,CAUnB;CACJ"}
@@ -0,0 +1,66 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Backstage
7
+ */
8
+ /** Used to specify the item type added to the backstage menu.
9
+ * @deprecated in 3.6. Use type guards instead.
10
+ * @public
11
+ */
12
+ export var BackstageItemType;
13
+ (function (BackstageItemType) {
14
+ /** Item that executes an action function */
15
+ BackstageItemType[BackstageItemType["ActionItem"] = 1] = "ActionItem";
16
+ /** Item that activate a stage. */
17
+ BackstageItemType[BackstageItemType["StageLauncher"] = 2] = "StageLauncher";
18
+ })(BackstageItemType || (BackstageItemType = {}));
19
+ /** BackstageActionItem type guard.
20
+ * @deprecated in 3.6. Use [isBackstageActionItem]($appui-react) instead.
21
+ * @public
22
+ */
23
+ export const isActionItem = (item) => {
24
+ return item.execute !== undefined; // eslint-disable-line deprecation/deprecation
25
+ };
26
+ /** BackstageStageLauncher type guard.
27
+ * @deprecated in 3.6. Use [isBackstageStageLauncher]($appui-react) instead.
28
+ * @public
29
+ */
30
+ export const isStageLauncher = (item) => {
31
+ return item.stageId !== undefined; // eslint-disable-line deprecation/deprecation
32
+ };
33
+ /** Utilities for creating and maintaining backstage items
34
+ * @deprecated in 3.6. Use [BackstageItemUtilities]($appui-react) instead.
35
+ * @public
36
+ */
37
+ class BackstageItemUtilities {
38
+ }
39
+ /** Creates a stage launcher backstage item */
40
+ BackstageItemUtilities.createStageLauncher = (frontstageId, groupPriority, itemPriority, label, subtitle, icon, overrides // eslint-disable-line deprecation/deprecation
41
+ ) => ({
42
+ groupPriority,
43
+ icon,
44
+ internalData: overrides?.internalData,
45
+ id: frontstageId,
46
+ itemPriority,
47
+ label,
48
+ stageId: frontstageId,
49
+ subtitle,
50
+ ...overrides,
51
+ });
52
+ /** Creates an action backstage item */
53
+ BackstageItemUtilities.createActionItem = (itemId, groupPriority, itemPriority, execute, label, subtitle, icon, overrides // eslint-disable-line deprecation/deprecation
54
+ ) => ({
55
+ execute,
56
+ groupPriority,
57
+ icon,
58
+ internalData: overrides?.internalData,
59
+ id: itemId,
60
+ itemPriority,
61
+ label,
62
+ subtitle,
63
+ ...overrides,
64
+ });
65
+ export { BackstageItemUtilities };
66
+ //# sourceMappingURL=BackstageItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackstageItem.js","sourceRoot":"","sources":["../../../../src/appui-abstract/backstage/BackstageItem.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAOH;;;GAGG;AACH,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,4CAA4C;IAC5C,qEAAc,CAAA;IACd,kCAAkC;IAClC,2EAAiB,CAAA;AACnB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AA4DD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAmB,EAA+B,EAAE;IAC/E,OAAQ,IAA4B,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,8CAA8C;AAC5G,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAmB,EAAkC,EAAE;IACrF,OAAQ,IAA+B,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,8CAA8C;AAC/G,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAa,sBAAsB;;AACjC,8CAA8C;AAChC,0CAAmB,GAAG,CAClC,YAAoB,EAAE,aAAqB,EAAE,YAAoB,EAAE,KAAsC,EACzG,QAA0C,EAAE,IAAsC,EAAE,SAA2C,CAAC,8CAA8C;EACtJ,EAAE,CAAC,CAAC;IAC5B,aAAa;IACb,IAAI;IACJ,YAAY,EAAE,SAAS,EAAE,YAAY;IACrC,EAAE,EAAE,YAAY;IAChB,YAAY;IACZ,KAAK;IACL,OAAO,EAAE,YAAY;IACrB,QAAQ;IACR,GAAG,SAAS;CACb,CAAC,CAAC;AAEH,uCAAuC;AACzB,uCAAgB,GAAG,CAC/B,MAAc,EAAE,aAAqB,EAAE,YAAoB,EAAE,OAAmB,EAAE,KAAsC,EACxH,QAA0C,EAAE,IAAsC,EAAE,SAAwC,CAAC,8CAA8C;EACtJ,EAAE,CAAC,CAAC;IACzB,OAAO;IACP,aAAa;IACb,IAAI;IACJ,YAAY,EAAE,SAAS,EAAE,YAAY;IACrC,EAAE,EAAE,MAAM;IACV,YAAY;IACZ,KAAK;IACL,QAAQ;IACR,GAAG,SAAS;CACb,CAAC,CAAC;SA/BQ,sBAAsB","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Backstage\r\n */\r\n\r\nimport { BadgeType } from \"../items/BadgeType\";\r\nimport { ConditionalBooleanValue } from \"../items/ConditionalBooleanValue\";\r\nimport { ConditionalStringValue } from \"../items/ConditionalStringValue\";\r\nimport { ProvidedItem } from \"../items/ProvidedItem\";\r\n\r\n/** Used to specify the item type added to the backstage menu.\r\n * @deprecated in 3.6. Use type guards instead.\r\n * @public\r\n */\r\nexport enum BackstageItemType {\r\n /** Item that executes an action function */\r\n ActionItem = 1,\r\n /** Item that activate a stage. */\r\n StageLauncher = 2,\r\n}\r\n\r\n/** Describes the data needed to insert a button into the backstage menu.\r\n * @deprecated in 3.6. Use [CommonBackstageItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport interface CommonBackstageItem extends ProvidedItem { // eslint-disable-line deprecation/deprecation\r\n /** can be used by application to store miscellaneous data. */\r\n applicationData?: any;\r\n /** Describes badge. Renders no badge if not specified. */\r\n readonly badgeType?: BadgeType;\r\n /** Specifies the item's grouping value. Items are sorted by group and then item priority. When\r\n * group priority changes a separator is inserted. It is recommended using values 10 through 100, incrementing by 10. This\r\n * allows extensions enough gaps to insert their own groups.\r\n */\r\n readonly groupPriority: number;\r\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\r\n readonly icon?: string | ConditionalStringValue;\r\n /** Required unique id of the item. To ensure uniqueness it is suggested that a namespace prefix of the extension name be used. */\r\n readonly id: string;\r\n /** optional data to be used by item implementor. */\r\n readonly internalData?: Map<string, any>;\r\n /** Describes if the item is visible or hidden. The default is for the item to be visible. */\r\n readonly isHidden?: boolean | ConditionalBooleanValue;\r\n /** Describes if the item is enabled or disabled. The default is for the item to be enabled. */\r\n readonly isDisabled?: boolean | ConditionalBooleanValue;\r\n /** Priority within a group (recommend using values 1 through 100). */\r\n readonly itemPriority: number;\r\n /** Label. */\r\n readonly label: string | ConditionalStringValue;\r\n /** Subtitle. */\r\n readonly subtitle?: string | ConditionalStringValue;\r\n /** Tooltip. */\r\n readonly tooltip?: string | ConditionalStringValue;\r\n /** Describes if the item is active. The default is for the item to be active if stageId matches activeFrontstageId */\r\n readonly isActive?: boolean | ConditionalBooleanValue;\r\n}\r\n\r\n/** Describes the data needed to insert an action button into the backstage menu.\r\n * @deprecated in 3.6. Use [BackstageActionItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport interface BackstageActionItem extends CommonBackstageItem { // eslint-disable-line deprecation/deprecation\r\n readonly execute: () => void;\r\n}\r\n\r\n/** Describes the data needed to insert an action button into the backstage menu.\r\n * @deprecated in 3.6. Use [BackstageActionItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport interface BackstageStageLauncher extends CommonBackstageItem { // eslint-disable-line deprecation/deprecation\r\n readonly stageId: string;\r\n}\r\n\r\n/** Describes the data needed to insert a button into the backstage menu.\r\n * @deprecated in 3.6. Use [BackstageItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport type BackstageItem = BackstageActionItem | BackstageStageLauncher; // eslint-disable-line deprecation/deprecation\r\n\r\n/** BackstageActionItem type guard.\r\n * @deprecated in 3.6. Use [isBackstageActionItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport const isActionItem = (item: BackstageItem): item is BackstageActionItem => { // eslint-disable-line deprecation/deprecation\r\n return (item as BackstageActionItem).execute !== undefined; // eslint-disable-line deprecation/deprecation\r\n};\r\n\r\n/** BackstageStageLauncher type guard.\r\n * @deprecated in 3.6. Use [isBackstageStageLauncher]($appui-react) instead.\r\n * @public\r\n */\r\nexport const isStageLauncher = (item: BackstageItem): item is BackstageStageLauncher => { // eslint-disable-line deprecation/deprecation\r\n return (item as BackstageStageLauncher).stageId !== undefined; // eslint-disable-line deprecation/deprecation\r\n};\r\n\r\n/** Utilities for creating and maintaining backstage items\r\n * @deprecated in 3.6. Use [BackstageItemUtilities]($appui-react) instead.\r\n * @public\r\n */\r\nexport class BackstageItemUtilities {\r\n /** Creates a stage launcher backstage item */\r\n public static createStageLauncher = (\r\n frontstageId: string, groupPriority: number, itemPriority: number, label: string | ConditionalStringValue,\r\n subtitle?: string | ConditionalStringValue, icon?: string | ConditionalStringValue, overrides?: Partial<BackstageStageLauncher> // eslint-disable-line deprecation/deprecation\r\n ): BackstageStageLauncher => ({ // eslint-disable-line deprecation/deprecation\r\n groupPriority,\r\n icon,\r\n internalData: overrides?.internalData,\r\n id: frontstageId,\r\n itemPriority,\r\n label,\r\n stageId: frontstageId,\r\n subtitle,\r\n ...overrides,\r\n });\r\n\r\n /** Creates an action backstage item */\r\n public static createActionItem = (\r\n itemId: string, groupPriority: number, itemPriority: number, execute: () => void, label: string | ConditionalStringValue,\r\n subtitle?: string | ConditionalStringValue, icon?: string | ConditionalStringValue, overrides?: Partial<BackstageActionItem> // eslint-disable-line deprecation/deprecation\r\n ): BackstageActionItem => ({ // eslint-disable-line deprecation/deprecation\r\n execute,\r\n groupPriority,\r\n icon,\r\n internalData: overrides?.internalData,\r\n id: itemId,\r\n itemPriority,\r\n label,\r\n subtitle,\r\n ...overrides,\r\n });\r\n}\r\n"]}
@@ -0,0 +1,39 @@
1
+ /** @packageDocumentation
2
+ * @module Backstage
3
+ */
4
+ import { BeEvent } from "@itwin/core-bentley";
5
+ import { BackstageItem } from "./BackstageItem";
6
+ /** Arguments of [[BackstageItemsManager.onChanged]] event.
7
+ * @internal
8
+ */
9
+ export interface BackstageItemsChangedArgs {
10
+ readonly items: ReadonlyArray<BackstageItem>;
11
+ }
12
+ /**
13
+ * Controls backstage items.
14
+ * @internal
15
+ */
16
+ export declare class BackstageItemsManager {
17
+ private _items;
18
+ constructor(items?: ReadonlyArray<BackstageItem>);
19
+ private loadItemsInternal;
20
+ /** load items but do not fire onItemsChanged
21
+ * @internal
22
+ */
23
+ loadItems(items: ReadonlyArray<BackstageItem>): void;
24
+ /** Event raised when backstage items are changed.
25
+ * @internal
26
+ */
27
+ readonly onItemsChanged: BeEvent<(args: BackstageItemsChangedArgs) => void>;
28
+ get items(): ReadonlyArray<BackstageItem>;
29
+ set items(items: ReadonlyArray<BackstageItem>);
30
+ /** @internal */
31
+ add(itemOrItems: BackstageItem | ReadonlyArray<BackstageItem>): void;
32
+ /** @internal */
33
+ remove(itemIdOrItemIds: BackstageItem["id"] | ReadonlyArray<BackstageItem["id"]>): void;
34
+ /** @internal */
35
+ static getSyncIdsOfInterest(items: readonly BackstageItem[]): string[];
36
+ private internalRefreshAffectedItems;
37
+ refreshAffectedItems(eventIds: Set<string>): void;
38
+ }
39
+ //# sourceMappingURL=BackstageItemsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackstageItemsManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/backstage/BackstageItemsManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CAC9C;AAQD;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAoC;gBAEtC,KAAK,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC;IAMhD,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC;IAIpD;;OAEG;IACH,SAAgB,cAAc,iBAAsB,yBAAyB,KAAK,IAAI,EAAI;IAE1F,IAAW,KAAK,IAAI,aAAa,CAAC,aAAa,CAAC,CAE/C;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,EAInD;IAED,gBAAgB;IACT,GAAG,CAAC,WAAW,EAAE,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;IAiBpE,gBAAgB;IACT,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAOvF,gBAAgB;WACF,oBAAoB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,EAAE;IAc7E,OAAO,CAAC,4BAA4B;IA6B7B,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;CAYlD"}
@@ -0,0 +1,130 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Backstage
7
+ */
8
+ import { BeEvent } from "@itwin/core-bentley";
9
+ import { ConditionalBooleanValue } from "../items/ConditionalBooleanValue";
10
+ import { ConditionalStringValue } from "../items/ConditionalStringValue";
11
+ const isInstance = (args) => {
12
+ return !Array.isArray(args);
13
+ };
14
+ /**
15
+ * Controls backstage items.
16
+ * @internal
17
+ */
18
+ export class BackstageItemsManager {
19
+ constructor(items) {
20
+ this._items = [];
21
+ /** Event raised when backstage items are changed.
22
+ * @internal
23
+ */
24
+ this.onItemsChanged = new BeEvent();
25
+ // istanbul ignore else
26
+ if (items)
27
+ this.loadItemsInternal(items, true, false);
28
+ }
29
+ loadItemsInternal(items, processConditions, sendItemChanged) {
30
+ if (processConditions && items) {
31
+ const eventIds = BackstageItemsManager.getSyncIdsOfInterest(items);
32
+ if (0 !== eventIds.length) {
33
+ const { itemsUpdated, updatedItems } = this.internalRefreshAffectedItems(items, new Set(eventIds));
34
+ // istanbul ignore else
35
+ if (itemsUpdated)
36
+ items = updatedItems;
37
+ }
38
+ }
39
+ this._items = items;
40
+ if (sendItemChanged)
41
+ this.onItemsChanged.raiseEvent({ items });
42
+ }
43
+ /** load items but do not fire onItemsChanged
44
+ * @internal
45
+ */
46
+ loadItems(items) {
47
+ this.loadItemsInternal(items, true, false);
48
+ }
49
+ get items() {
50
+ return this._items;
51
+ }
52
+ set items(items) {
53
+ // istanbul ignore else
54
+ if (items !== this._items)
55
+ this.loadItemsInternal(items, true, true);
56
+ }
57
+ /** @internal */
58
+ add(itemOrItems) {
59
+ let itemsToAdd;
60
+ if (isInstance(itemOrItems))
61
+ itemsToAdd = [itemOrItems];
62
+ else {
63
+ itemsToAdd = itemOrItems.filter((itemToAdd, index) => itemOrItems.findIndex((item) => item.id === itemToAdd.id) === index);
64
+ }
65
+ itemsToAdd = itemsToAdd.filter((itemToAdd) => this._items.find((item) => item.id === itemToAdd.id) === undefined);
66
+ if (itemsToAdd.length === 0)
67
+ return;
68
+ const items = [
69
+ ...this._items,
70
+ ...itemsToAdd,
71
+ ];
72
+ this.items = items;
73
+ }
74
+ /** @internal */
75
+ remove(itemIdOrItemIds) {
76
+ const items = this._items.filter((item) => {
77
+ return isInstance(itemIdOrItemIds) ? item.id !== itemIdOrItemIds : !itemIdOrItemIds.find((itemId) => itemId === item.id);
78
+ });
79
+ this.items = items;
80
+ }
81
+ /** @internal */
82
+ static getSyncIdsOfInterest(items) {
83
+ const eventIds = new Set();
84
+ items.forEach((item) => {
85
+ for (const [, entry] of Object.entries(item)) {
86
+ if (entry instanceof ConditionalBooleanValue) {
87
+ entry.syncEventIds.forEach((eventId) => eventIds.add(eventId.toLowerCase()));
88
+ }
89
+ else /* istanbul ignore else */ if (entry instanceof ConditionalStringValue) {
90
+ entry.syncEventIds.forEach((eventId) => eventIds.add(eventId.toLowerCase()));
91
+ }
92
+ }
93
+ });
94
+ return [...eventIds.values()];
95
+ }
96
+ internalRefreshAffectedItems(items, eventIds) {
97
+ // istanbul ignore next
98
+ if (0 === eventIds.size)
99
+ return { itemsUpdated: false, updatedItems: [] };
100
+ let updateRequired = false;
101
+ const newItems = [];
102
+ for (const item of items) {
103
+ const updatedItem = { ...item };
104
+ for (const [, entry] of Object.entries(updatedItem)) {
105
+ if (entry instanceof ConditionalBooleanValue) {
106
+ // istanbul ignore else
107
+ if (ConditionalBooleanValue.refreshValue(entry, eventIds))
108
+ updateRequired = true;
109
+ }
110
+ else /* istanbul ignore else */ if (entry instanceof ConditionalStringValue) {
111
+ // istanbul ignore else
112
+ if (ConditionalStringValue.refreshValue(entry, eventIds))
113
+ updateRequired = true;
114
+ }
115
+ }
116
+ newItems.push(updatedItem);
117
+ }
118
+ return { itemsUpdated: updateRequired, updatedItems: newItems };
119
+ }
120
+ refreshAffectedItems(eventIds) {
121
+ // istanbul ignore next
122
+ if (0 === eventIds.size)
123
+ return;
124
+ const { itemsUpdated, updatedItems } = this.internalRefreshAffectedItems(this.items, eventIds);
125
+ // istanbul ignore else
126
+ if (itemsUpdated)
127
+ this.loadItemsInternal(updatedItems, false, true);
128
+ }
129
+ }
130
+ //# sourceMappingURL=BackstageItemsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackstageItemsManager.js","sourceRoot":"","sources":["../../../../src/appui-abstract/backstage/BackstageItemsManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Backstage\r\n */\r\n\r\nimport { BeEvent } from \"@itwin/core-bentley\";\r\nimport { ConditionalBooleanValue } from \"../items/ConditionalBooleanValue\";\r\nimport { ConditionalStringValue } from \"../items/ConditionalStringValue\";\r\nimport { BackstageItem } from \"./BackstageItem\";\r\n\r\n/* eslint-disable deprecation/deprecation */\r\n\r\n/** Arguments of [[BackstageItemsManager.onChanged]] event.\r\n * @internal\r\n */\r\nexport interface BackstageItemsChangedArgs {\r\n readonly items: ReadonlyArray<BackstageItem>;\r\n}\r\n\r\ntype InstanceOrArray<T> = T | ReadonlyArray<T>;\r\n\r\nconst isInstance = <T>(args: InstanceOrArray<T>): args is T => {\r\n return !Array.isArray(args);\r\n};\r\n\r\n/**\r\n * Controls backstage items.\r\n * @internal\r\n */\r\nexport class BackstageItemsManager {\r\n private _items: ReadonlyArray<BackstageItem> = [];\r\n\r\n constructor(items?: ReadonlyArray<BackstageItem>) {\r\n // istanbul ignore else\r\n if (items)\r\n this.loadItemsInternal(items, true, false);\r\n }\r\n\r\n private loadItemsInternal(items: ReadonlyArray<BackstageItem>, processConditions: boolean, sendItemChanged: boolean) {\r\n if (processConditions && items) {\r\n const eventIds = BackstageItemsManager.getSyncIdsOfInterest(items);\r\n if (0 !== eventIds.length) {\r\n const { itemsUpdated, updatedItems } = this.internalRefreshAffectedItems(items, new Set(eventIds));\r\n\r\n // istanbul ignore else\r\n if (itemsUpdated)\r\n items = updatedItems;\r\n }\r\n }\r\n\r\n this._items = items;\r\n if (sendItemChanged)\r\n this.onItemsChanged.raiseEvent({ items });\r\n }\r\n\r\n /** load items but do not fire onItemsChanged\r\n * @internal\r\n */\r\n public loadItems(items: ReadonlyArray<BackstageItem>) {\r\n this.loadItemsInternal(items, true, false);\r\n }\r\n\r\n /** Event raised when backstage items are changed.\r\n * @internal\r\n */\r\n public readonly onItemsChanged = new BeEvent<(args: BackstageItemsChangedArgs) => void>();\r\n\r\n public get items(): ReadonlyArray<BackstageItem> {\r\n return this._items;\r\n }\r\n\r\n public set items(items: ReadonlyArray<BackstageItem>) {\r\n // istanbul ignore else\r\n if (items !== this._items)\r\n this.loadItemsInternal(items, true, true);\r\n }\r\n\r\n /** @internal */\r\n public add(itemOrItems: BackstageItem | ReadonlyArray<BackstageItem>) {\r\n let itemsToAdd;\r\n if (isInstance(itemOrItems))\r\n itemsToAdd = [itemOrItems];\r\n else {\r\n itemsToAdd = itemOrItems.filter((itemToAdd, index) => itemOrItems.findIndex((item) => item.id === itemToAdd.id) === index);\r\n }\r\n itemsToAdd = itemsToAdd.filter((itemToAdd) => this._items.find((item) => item.id === itemToAdd.id) === undefined);\r\n if (itemsToAdd.length === 0)\r\n return;\r\n const items = [\r\n ...this._items,\r\n ...itemsToAdd,\r\n ];\r\n this.items = items;\r\n }\r\n\r\n /** @internal */\r\n public remove(itemIdOrItemIds: BackstageItem[\"id\"] | ReadonlyArray<BackstageItem[\"id\"]>) {\r\n const items = this._items.filter((item) => {\r\n return isInstance(itemIdOrItemIds) ? item.id !== itemIdOrItemIds : !itemIdOrItemIds.find((itemId) => itemId === item.id);\r\n });\r\n this.items = items;\r\n }\r\n\r\n /** @internal */\r\n public static getSyncIdsOfInterest(items: readonly BackstageItem[]): string[] {\r\n const eventIds = new Set<string>();\r\n items.forEach((item) => {\r\n for (const [, entry] of Object.entries(item)) {\r\n if (entry instanceof ConditionalBooleanValue) {\r\n entry.syncEventIds.forEach((eventId: string) => eventIds.add(eventId.toLowerCase()));\r\n } else /* istanbul ignore else */ if (entry instanceof ConditionalStringValue) {\r\n entry.syncEventIds.forEach((eventId: string) => eventIds.add(eventId.toLowerCase()));\r\n }\r\n }\r\n });\r\n return [...eventIds.values()];\r\n }\r\n\r\n private internalRefreshAffectedItems(items: readonly BackstageItem[], eventIds: Set<string>): { itemsUpdated: boolean, updatedItems: BackstageItem[] } {\r\n // istanbul ignore next\r\n if (0 === eventIds.size)\r\n return { itemsUpdated: false, updatedItems: [] };\r\n\r\n let updateRequired = false;\r\n\r\n const newItems: BackstageItem[] = [];\r\n for (const item of items) {\r\n const updatedItem = { ...item };\r\n\r\n for (const [, entry] of Object.entries(updatedItem)) {\r\n if (entry instanceof ConditionalBooleanValue) {\r\n // istanbul ignore else\r\n if (ConditionalBooleanValue.refreshValue(entry, eventIds))\r\n updateRequired = true;\r\n } else /* istanbul ignore else */ if (entry instanceof ConditionalStringValue) {\r\n // istanbul ignore else\r\n if (ConditionalStringValue.refreshValue(entry, eventIds))\r\n updateRequired = true;\r\n }\r\n }\r\n\r\n newItems.push(updatedItem);\r\n }\r\n\r\n return { itemsUpdated: updateRequired, updatedItems: newItems };\r\n }\r\n\r\n public refreshAffectedItems(eventIds: Set<string>) {\r\n // istanbul ignore next\r\n if (0 === eventIds.size)\r\n return;\r\n\r\n const { itemsUpdated, updatedItems } = this.internalRefreshAffectedItems(this.items, eventIds);\r\n\r\n // istanbul ignore else\r\n if (itemsUpdated)\r\n this.loadItemsInternal(updatedItems, false, true);\r\n }\r\n\r\n}\r\n"]}
@@ -0,0 +1,12 @@
1
+ /** @packageDocumentation
2
+ * @module Item
3
+ */
4
+ /** Properties for an item provided by UiItemsProvider
5
+ * @deprecated in 3.6. Use [ProviderItem]($appui-react) instead.
6
+ * @public
7
+ */
8
+ export interface ProvidedItem {
9
+ /** id of UiItemsProvider */
10
+ readonly providerId?: string;
11
+ }
12
+ //# sourceMappingURL=ProvidedItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProvidedItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/items/ProvidedItem.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B"}
@@ -0,0 +1,9 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Item
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=ProvidedItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProvidedItem.js","sourceRoot":"","sources":["../../../../src/appui-abstract/items/ProvidedItem.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Item\r\n */\r\n\r\n/** Properties for an item provided by UiItemsProvider\r\n * @deprecated in 3.6. Use [ProviderItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport interface ProvidedItem {\r\n /** id of UiItemsProvider */\r\n readonly providerId?: string;\r\n}\r\n"]}
@@ -0,0 +1,17 @@
1
+ /** @packageDocumentation
2
+ * @module Item
3
+ */
4
+ /** Standard stage uses. Allows extension to target ui item to include on a stage without
5
+ * knowing the stage name defined in the host application.
6
+ * @deprecated in 3.6. Use [StageUsage]($appui-react) instead.
7
+ * @public
8
+ */
9
+ export declare enum StageUsage {
10
+ Private = "Private",
11
+ General = "General",
12
+ Redline = "Redline",
13
+ ViewOnly = "ViewOnly",
14
+ Edit = "Edit",
15
+ Settings = "Settings"
16
+ }
17
+ //# sourceMappingURL=StageUsage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StageUsage.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/items/StageUsage.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;GAIG;AACH,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,22 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Item
7
+ */
8
+ /** Standard stage uses. Allows extension to target ui item to include on a stage without
9
+ * knowing the stage name defined in the host application.
10
+ * @deprecated in 3.6. Use [StageUsage]($appui-react) instead.
11
+ * @public
12
+ */
13
+ export var StageUsage;
14
+ (function (StageUsage) {
15
+ StageUsage["Private"] = "Private";
16
+ StageUsage["General"] = "General";
17
+ StageUsage["Redline"] = "Redline";
18
+ StageUsage["ViewOnly"] = "ViewOnly";
19
+ StageUsage["Edit"] = "Edit";
20
+ StageUsage["Settings"] = "Settings";
21
+ })(StageUsage || (StageUsage = {}));
22
+ //# sourceMappingURL=StageUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StageUsage.js","sourceRoot":"","sources":["../../../../src/appui-abstract/items/StageUsage.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH;;;;GAIG;AACH,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;IACrB,2BAAa,CAAA;IACb,mCAAqB,CAAA;AACvB,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Item\r\n */\r\n\r\n/** Standard stage uses. Allows extension to target ui item to include on a stage without\r\n * knowing the stage name defined in the host application.\r\n * @deprecated in 3.6. Use [StageUsage]($appui-react) instead.\r\n * @public\r\n */\r\nexport enum StageUsage {\r\n Private = \"Private\",\r\n General = \"General\",\r\n Redline = \"Redline\",\r\n ViewOnly = \"ViewOnly\",\r\n Edit = \"Edit\",\r\n Settings = \"Settings\",\r\n}\r\n"]}