@itwin/appui-abstract 4.1.0-dev.6 → 4.1.0-dev.7

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 (129) hide show
  1. package/lib/cjs/appui-abstract/BaseUiItemsProvider.d.ts +31 -0
  2. package/lib/cjs/appui-abstract/BaseUiItemsProvider.d.ts.map +1 -0
  3. package/lib/cjs/appui-abstract/BaseUiItemsProvider.js +80 -0
  4. package/lib/cjs/appui-abstract/BaseUiItemsProvider.js.map +1 -0
  5. package/lib/cjs/appui-abstract/UiItemsManager.d.ts +114 -0
  6. package/lib/cjs/appui-abstract/UiItemsManager.d.ts.map +1 -0
  7. package/lib/cjs/appui-abstract/UiItemsManager.js +194 -0
  8. package/lib/cjs/appui-abstract/UiItemsManager.js.map +1 -0
  9. package/lib/cjs/appui-abstract/UiItemsProvider.d.ts +30 -0
  10. package/lib/cjs/appui-abstract/UiItemsProvider.d.ts.map +1 -0
  11. package/lib/cjs/appui-abstract/UiItemsProvider.js +10 -0
  12. package/lib/cjs/appui-abstract/UiItemsProvider.js.map +1 -0
  13. package/lib/cjs/appui-abstract/backstage/BackstageItem.d.ts +92 -0
  14. package/lib/cjs/appui-abstract/backstage/BackstageItem.d.ts.map +1 -0
  15. package/lib/cjs/appui-abstract/backstage/BackstageItem.js +71 -0
  16. package/lib/cjs/appui-abstract/backstage/BackstageItem.js.map +1 -0
  17. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.d.ts +39 -0
  18. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.d.ts.map +1 -0
  19. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.js +134 -0
  20. package/lib/cjs/appui-abstract/backstage/BackstageItemsManager.js.map +1 -0
  21. package/lib/cjs/appui-abstract/items/ProvidedItem.d.ts +12 -0
  22. package/lib/cjs/appui-abstract/items/ProvidedItem.d.ts.map +1 -0
  23. package/lib/cjs/appui-abstract/items/ProvidedItem.js +10 -0
  24. package/lib/cjs/appui-abstract/items/ProvidedItem.js.map +1 -0
  25. package/lib/cjs/appui-abstract/items/StageUsage.d.ts +17 -0
  26. package/lib/cjs/appui-abstract/items/StageUsage.d.ts.map +1 -0
  27. package/lib/cjs/appui-abstract/items/StageUsage.js +25 -0
  28. package/lib/cjs/appui-abstract/items/StageUsage.js.map +1 -0
  29. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.d.ts +129 -0
  30. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.d.ts.map +1 -0
  31. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.js +88 -0
  32. package/lib/cjs/appui-abstract/statusbar/StatusBarItem.js.map +1 -0
  33. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.d.ts +40 -0
  34. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.d.ts.map +1 -0
  35. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.js +136 -0
  36. package/lib/cjs/appui-abstract/statusbar/StatusBarItemsManager.js.map +1 -0
  37. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.d.ts +27 -1
  38. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.d.ts.map +1 -1
  39. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.js +23 -1
  40. package/lib/cjs/appui-abstract/toolbars/ToolbarItem.js.map +1 -1
  41. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.d.ts +46 -0
  42. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.d.ts.map +1 -0
  43. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.js +236 -0
  44. package/lib/cjs/appui-abstract/toolbars/ToolbarItemsManager.js.map +1 -0
  45. package/lib/cjs/appui-abstract/utils/isLetter.d.ts +10 -0
  46. package/lib/cjs/appui-abstract/utils/isLetter.d.ts.map +1 -0
  47. package/lib/cjs/appui-abstract/utils/isLetter.js +20 -0
  48. package/lib/cjs/appui-abstract/utils/isLetter.js.map +1 -0
  49. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.d.ts +87 -0
  50. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.d.ts.map +1 -0
  51. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.js +10 -0
  52. package/lib/cjs/appui-abstract/widget/AbstractWidgetProps.js.map +1 -0
  53. package/lib/cjs/appui-abstract/widget/StagePanel.d.ts +37 -0
  54. package/lib/cjs/appui-abstract/widget/StagePanel.d.ts.map +1 -0
  55. package/lib/cjs/appui-abstract/widget/StagePanel.js +47 -0
  56. package/lib/cjs/appui-abstract/widget/StagePanel.js.map +1 -0
  57. package/lib/cjs/appui-abstract/widget/WidgetState.d.ts +20 -0
  58. package/lib/cjs/appui-abstract/widget/WidgetState.d.ts.map +1 -0
  59. package/lib/cjs/appui-abstract/widget/WidgetState.js +28 -0
  60. package/lib/cjs/appui-abstract/widget/WidgetState.js.map +1 -0
  61. package/lib/cjs/appui-abstract.d.ts +32 -0
  62. package/lib/cjs/appui-abstract.d.ts.map +1 -1
  63. package/lib/cjs/appui-abstract.js +32 -0
  64. package/lib/cjs/appui-abstract.js.map +1 -1
  65. package/lib/esm/appui-abstract/BaseUiItemsProvider.d.ts +31 -0
  66. package/lib/esm/appui-abstract/BaseUiItemsProvider.d.ts.map +1 -0
  67. package/lib/esm/appui-abstract/BaseUiItemsProvider.js +76 -0
  68. package/lib/esm/appui-abstract/BaseUiItemsProvider.js.map +1 -0
  69. package/lib/esm/appui-abstract/UiItemsManager.d.ts +114 -0
  70. package/lib/esm/appui-abstract/UiItemsManager.d.ts.map +1 -0
  71. package/lib/esm/appui-abstract/UiItemsManager.js +191 -0
  72. package/lib/esm/appui-abstract/UiItemsManager.js.map +1 -0
  73. package/lib/esm/appui-abstract/UiItemsProvider.d.ts +30 -0
  74. package/lib/esm/appui-abstract/UiItemsProvider.d.ts.map +1 -0
  75. package/lib/esm/appui-abstract/UiItemsProvider.js +9 -0
  76. package/lib/esm/appui-abstract/UiItemsProvider.js.map +1 -0
  77. package/lib/esm/appui-abstract/backstage/BackstageItem.d.ts +92 -0
  78. package/lib/esm/appui-abstract/backstage/BackstageItem.d.ts.map +1 -0
  79. package/lib/esm/appui-abstract/backstage/BackstageItem.js +66 -0
  80. package/lib/esm/appui-abstract/backstage/BackstageItem.js.map +1 -0
  81. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.d.ts +39 -0
  82. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.d.ts.map +1 -0
  83. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.js +130 -0
  84. package/lib/esm/appui-abstract/backstage/BackstageItemsManager.js.map +1 -0
  85. package/lib/esm/appui-abstract/items/ProvidedItem.d.ts +12 -0
  86. package/lib/esm/appui-abstract/items/ProvidedItem.d.ts.map +1 -0
  87. package/lib/esm/appui-abstract/items/ProvidedItem.js +9 -0
  88. package/lib/esm/appui-abstract/items/ProvidedItem.js.map +1 -0
  89. package/lib/esm/appui-abstract/items/StageUsage.d.ts +17 -0
  90. package/lib/esm/appui-abstract/items/StageUsage.d.ts.map +1 -0
  91. package/lib/esm/appui-abstract/items/StageUsage.js +22 -0
  92. package/lib/esm/appui-abstract/items/StageUsage.js.map +1 -0
  93. package/lib/esm/appui-abstract/statusbar/StatusBarItem.d.ts +129 -0
  94. package/lib/esm/appui-abstract/statusbar/StatusBarItem.d.ts.map +1 -0
  95. package/lib/esm/appui-abstract/statusbar/StatusBarItem.js +82 -0
  96. package/lib/esm/appui-abstract/statusbar/StatusBarItem.js.map +1 -0
  97. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.d.ts +40 -0
  98. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.d.ts.map +1 -0
  99. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.js +132 -0
  100. package/lib/esm/appui-abstract/statusbar/StatusBarItemsManager.js.map +1 -0
  101. package/lib/esm/appui-abstract/toolbars/ToolbarItem.d.ts +27 -1
  102. package/lib/esm/appui-abstract/toolbars/ToolbarItem.d.ts.map +1 -1
  103. package/lib/esm/appui-abstract/toolbars/ToolbarItem.js +22 -0
  104. package/lib/esm/appui-abstract/toolbars/ToolbarItem.js.map +1 -1
  105. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.d.ts +46 -0
  106. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.d.ts.map +1 -0
  107. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.js +232 -0
  108. package/lib/esm/appui-abstract/toolbars/ToolbarItemsManager.js.map +1 -0
  109. package/lib/esm/appui-abstract/utils/isLetter.d.ts +10 -0
  110. package/lib/esm/appui-abstract/utils/isLetter.d.ts.map +1 -0
  111. package/lib/esm/appui-abstract/utils/isLetter.js +16 -0
  112. package/lib/esm/appui-abstract/utils/isLetter.js.map +1 -0
  113. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.d.ts +87 -0
  114. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.d.ts.map +1 -0
  115. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.js +9 -0
  116. package/lib/esm/appui-abstract/widget/AbstractWidgetProps.js.map +1 -0
  117. package/lib/esm/appui-abstract/widget/StagePanel.d.ts +37 -0
  118. package/lib/esm/appui-abstract/widget/StagePanel.d.ts.map +1 -0
  119. package/lib/esm/appui-abstract/widget/StagePanel.js +44 -0
  120. package/lib/esm/appui-abstract/widget/StagePanel.js.map +1 -0
  121. package/lib/esm/appui-abstract/widget/WidgetState.d.ts +20 -0
  122. package/lib/esm/appui-abstract/widget/WidgetState.d.ts.map +1 -0
  123. package/lib/esm/appui-abstract/widget/WidgetState.js +25 -0
  124. package/lib/esm/appui-abstract/widget/WidgetState.js.map +1 -0
  125. package/lib/esm/appui-abstract.d.ts +32 -0
  126. package/lib/esm/appui-abstract.d.ts.map +1 -1
  127. package/lib/esm/appui-abstract.js +32 -0
  128. package/lib/esm/appui-abstract.js.map +1 -1
  129. package/package.json +5 -5
@@ -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":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAczE,MAAM,UAAU,GAAG,CAAI,IAAwB,EAAa,EAAE;IAC5D,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IAGhC,YAAY,KAAoC;QAFxC,WAAM,GAAiC,EAAE,CAAC;QAgClD;;WAEG;QACa,mBAAc,GAAG,IAAI,OAAO,EAA6C,CAAC;QAhCxF,uBAAuB;QACvB,IAAI,KAAK;YACP,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEO,iBAAiB,CAAC,KAAmC,EAAE,iBAA0B,EAAE,eAAwB;QACjH,IAAI,iBAAiB,IAAI,KAAK,EAAE;YAC9B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE;gBACzB,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAEnG,uBAAuB;gBACvB,IAAI,YAAY;oBACd,KAAK,GAAG,YAAY,CAAC;aACxB;SACF;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,eAAe;YACjB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,KAAmC;QAClD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAOD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAW,KAAK,CAAC,KAAmC;QAClD,uBAAuB;QACvB,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;YACvB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;IACT,GAAG,CAAC,WAAyD;QAClE,IAAI,UAAU,CAAC;QACf,IAAI,UAAU,CAAC,WAAW,CAAC;YACzB,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC;aACxB;YACH,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;SAC5H;QACD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC;QAClH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO;QACT,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,CAAC,MAAM;YACd,GAAG,UAAU;SACd,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,eAAyE;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3H,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,oBAAoB,CAAC,KAA+B;QAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC5C,IAAI,KAAK,YAAY,uBAAuB,EAAE;oBAC5C,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;iBACtF;qBAAM,0BAA0B,CAAC,IAAI,KAAK,YAAY,sBAAsB,EAAE;oBAC7E,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;iBACtF;aACF;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,CAAC;IAEO,4BAA4B,CAAC,KAA+B,EAAE,QAAqB;QACzF,uBAAuB;QACvB,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI;YACrB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QAEnD,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAEhC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBACnD,IAAI,KAAK,YAAY,uBAAuB,EAAE;oBAC5C,uBAAuB;oBACvB,IAAI,uBAAuB,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;wBACvD,cAAc,GAAG,IAAI,CAAC;iBACzB;qBAAM,0BAA0B,CAAC,IAAI,KAAK,YAAY,sBAAsB,EAAE;oBAC7E,uBAAuB;oBACvB,IAAI,sBAAsB,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;wBACtD,cAAc,GAAG,IAAI,CAAC;iBACzB;aACF;YAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5B;QAED,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IAClE,CAAC;IAEM,oBAAoB,CAAC,QAAqB;QAC/C,uBAAuB;QACvB,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI;YACrB,OAAO;QAET,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE/F,uBAAuB;QACvB,IAAI,YAAY;YACd,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CAEF","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"]}
@@ -0,0 +1,129 @@
1
+ /** @packageDocumentation
2
+ * @module StatusBar
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
+ /** Status bar Groups/Sections from Left to Right
9
+ * @deprecated in 3.6. Use [StatusBarSection]($appui-react) instead.
10
+ * @public
11
+ */
12
+ export declare enum StatusBarSection {
13
+ /** area for tool assistance and messages */
14
+ Message = 0,
15
+ /** area for tool assistance and messages */
16
+ Left = 0,
17
+ /** items specific to stage/task */
18
+ Stage = 1,
19
+ /** items specific to stage/task */
20
+ Center = 1,
21
+ /** Select scope and selection info */
22
+ Selection = 2,
23
+ /** Select scope and selection info */
24
+ Right = 2,
25
+ /** items that only show based on context */
26
+ Context = 3
27
+ }
28
+ /** Defines which side of Icon where label is placed
29
+ * @deprecated in 3.6. Use [StatusBarLabelSide]($appui-react) instead.
30
+ * @public
31
+ */
32
+ export declare enum StatusBarLabelSide {
33
+ /** Label is placed left side of icon. This is the default if not specified */
34
+ Left = 0,
35
+ /** Label is placed on right side of icon. */
36
+ Right = 1
37
+ }
38
+ /** Type for StatusBar Item Id
39
+ * @deprecated in 3.6. Please use `CommonStatusBarItem["id"]` from @itwin/appui-react.
40
+ * @public
41
+ */
42
+ export type StatusBarItemId = CommonStatusBarItem["id"];
43
+ /** Describes the data needed to insert a button into the status bar.
44
+ * @deprecated in 3.6. Use [CommonStatusBarItem]($appui-react) instead.
45
+ * @public
46
+ */
47
+ export interface AbstractStatusBarItem extends ProvidedItem {
48
+ /** can be used by application to store miscellaneous data. */
49
+ applicationData?: any;
50
+ /** Describes badge. Renders no badge if not specified. */
51
+ readonly badgeType?: BadgeType;
52
+ /** Required unique id of the item. To ensure uniqueness it is suggested that a namespace prefix of the extension name be used. */
53
+ readonly id: string;
54
+ /** optional data to used by item implementor. */
55
+ readonly internalData?: Map<string, any>;
56
+ /** Describes if the item is visible or hidden. The default is for the item to be visible. */
57
+ readonly isHidden?: boolean | ConditionalBooleanValue;
58
+ /** Describes if the item is enabled or disabled. The default is for the item to be enabled. */
59
+ readonly isDisabled?: boolean | ConditionalBooleanValue;
60
+ /** Priority within a section (recommend using values 1 through 100). */
61
+ readonly itemPriority: number;
62
+ /** status bar section */
63
+ readonly section: StatusBarSection;
64
+ }
65
+ /** Describes the data needed to insert an action item into the status bar.
66
+ * @deprecated in 3.6. Use [StatusBarActionItem]($appui-react) instead.
67
+ * @public
68
+ */
69
+ export interface AbstractStatusBarActionItem extends AbstractStatusBarItem {
70
+ /** method to execute when icon is pressed */
71
+ readonly execute: () => void;
72
+ /** Name of icon WebFont entry or if specifying an imported SVG symbol use "webSvg:" prefix to imported symbol Id. */
73
+ readonly icon?: string | ConditionalStringValue;
74
+ /** Label. */
75
+ readonly label?: string | ConditionalStringValue;
76
+ /** tooltip. */
77
+ readonly tooltip?: string | ConditionalStringValue;
78
+ }
79
+ /** Describes the data needed to insert a label item with an optional icon into the status bar.
80
+ * @deprecated in 3.6. Use [StatusBarLabelItem]($appui-react) instead.
81
+ * @public
82
+ */
83
+ export interface AbstractStatusBarLabelItem extends AbstractStatusBarItem {
84
+ /** Name of icon WebFont entry or if specifying an imported SVG symbol use "webSvg:" prefix to imported symbol Id. */
85
+ readonly icon?: string | ConditionalStringValue;
86
+ /** Label. */
87
+ readonly label: string | ConditionalStringValue;
88
+ /** Defines which side of icon to display label if icon is defined. */
89
+ readonly labelSide?: StatusBarLabelSide;
90
+ }
91
+ /** Describes the data needed to insert a custom item into the status bar. This is used to allow extension
92
+ * implementer to create a framework specific component.
93
+ * @deprecated in 3.6. Use [StatusBarCustomItem]($appui-react) instead.
94
+ * @public
95
+ */
96
+ export interface AbstractStatusBarCustomItem extends AbstractStatusBarItem {
97
+ readonly isCustom: true;
98
+ }
99
+ /** Describes the data needed to insert a button into the status bar.
100
+ * @deprecated in 3.6. Use [StatusBarItem]($appui-react) instead.
101
+ * @public
102
+ */
103
+ export type CommonStatusBarItem = AbstractStatusBarActionItem | AbstractStatusBarLabelItem | AbstractStatusBarCustomItem;
104
+ /** AbstractStatusBarActionItem type guard.
105
+ * @deprecated in 3.6. Use [isStatusBarActionItem]($appui-react) instead.
106
+ * @public
107
+ */
108
+ export declare const isAbstractStatusBarActionItem: (item: CommonStatusBarItem) => item is AbstractStatusBarActionItem;
109
+ /** AbstractStatusBarLabelItem type guard.
110
+ * @deprecated in 3.6. Use [isStatusBarLabelItem]($appui-react) instead.
111
+ * @public
112
+ */
113
+ export declare const isAbstractStatusBarLabelItem: (item: CommonStatusBarItem) => item is AbstractStatusBarLabelItem;
114
+ /** AbstractStatusBarCustomItem type guard.
115
+ * @deprecated in 3.6. Use [isStatusBarCustomItem]($appui-react) instead.
116
+ * @public
117
+ */
118
+ export declare const isAbstractStatusBarCustomItem: (item: CommonStatusBarItem) => item is AbstractStatusBarCustomItem;
119
+ /** Helper class to create Abstract StatusBar Item definitions.
120
+ * @deprecated in 3.6. Use [StatusBarItemUtilities]($appui-react) instead.
121
+ * @public
122
+ */
123
+ export declare class AbstractStatusBarItemUtilities {
124
+ /** Creates a StatusBar item to perform an action */
125
+ static createActionItem: (id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, tooltip: string | ConditionalStringValue, execute: () => void, overrides?: Partial<AbstractStatusBarCustomItem>) => AbstractStatusBarActionItem;
126
+ /** Creates a StatusBar item to display a label */
127
+ static createLabelItem: (id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, label: string | ConditionalStringValue, labelSide?: StatusBarLabelSide, overrides?: Partial<AbstractStatusBarLabelItem>) => AbstractStatusBarLabelItem;
128
+ }
129
+ //# sourceMappingURL=StatusBarItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBarItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/statusbar/StatusBarItem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
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 StatusBar
7
+ */
8
+ /** Status bar Groups/Sections from Left to Right
9
+ * @deprecated in 3.6. Use [StatusBarSection]($appui-react) instead.
10
+ * @public
11
+ */
12
+ export var StatusBarSection;
13
+ (function (StatusBarSection) {
14
+ /** area for tool assistance and messages */
15
+ StatusBarSection[StatusBarSection["Message"] = 0] = "Message";
16
+ /** area for tool assistance and messages */
17
+ StatusBarSection[StatusBarSection["Left"] = 0] = "Left";
18
+ /** items specific to stage/task */
19
+ StatusBarSection[StatusBarSection["Stage"] = 1] = "Stage";
20
+ /** items specific to stage/task */
21
+ StatusBarSection[StatusBarSection["Center"] = 1] = "Center";
22
+ /** Select scope and selection info */
23
+ StatusBarSection[StatusBarSection["Selection"] = 2] = "Selection";
24
+ /** Select scope and selection info */
25
+ StatusBarSection[StatusBarSection["Right"] = 2] = "Right";
26
+ /** items that only show based on context */
27
+ StatusBarSection[StatusBarSection["Context"] = 3] = "Context";
28
+ })(StatusBarSection || (StatusBarSection = {}));
29
+ /** Defines which side of Icon where label is placed
30
+ * @deprecated in 3.6. Use [StatusBarLabelSide]($appui-react) instead.
31
+ * @public
32
+ */
33
+ export var StatusBarLabelSide;
34
+ (function (StatusBarLabelSide) {
35
+ /** Label is placed left side of icon. This is the default if not specified */
36
+ StatusBarLabelSide[StatusBarLabelSide["Left"] = 0] = "Left";
37
+ /** Label is placed on right side of icon. */
38
+ StatusBarLabelSide[StatusBarLabelSide["Right"] = 1] = "Right";
39
+ })(StatusBarLabelSide || (StatusBarLabelSide = {}));
40
+ /** AbstractStatusBarActionItem type guard.
41
+ * @deprecated in 3.6. Use [isStatusBarActionItem]($appui-react) instead.
42
+ * @public
43
+ */
44
+ export const isAbstractStatusBarActionItem = (item) => {
45
+ return item.execute !== undefined; // eslint-disable-line deprecation/deprecation
46
+ };
47
+ /** AbstractStatusBarLabelItem type guard.
48
+ * @deprecated in 3.6. Use [isStatusBarLabelItem]($appui-react) instead.
49
+ * @public
50
+ */
51
+ export const isAbstractStatusBarLabelItem = (item) => {
52
+ return item.label !== undefined && item.execute === undefined; // eslint-disable-line deprecation/deprecation
53
+ };
54
+ /** AbstractStatusBarCustomItem type guard.
55
+ * @deprecated in 3.6. Use [isStatusBarCustomItem]($appui-react) instead.
56
+ * @public
57
+ */
58
+ export const isAbstractStatusBarCustomItem = (item) => {
59
+ return !!item.isCustom; // eslint-disable-line deprecation/deprecation
60
+ };
61
+ /** Helper class to create Abstract StatusBar Item definitions.
62
+ * @deprecated in 3.6. Use [StatusBarItemUtilities]($appui-react) instead.
63
+ * @public
64
+ */
65
+ class AbstractStatusBarItemUtilities {
66
+ }
67
+ /** Creates a StatusBar item to perform an action */
68
+ AbstractStatusBarItemUtilities.createActionItem = (id, section, itemPriority, icon, tooltip, execute, overrides) => ({
69
+ id, section, itemPriority,
70
+ icon, tooltip,
71
+ execute,
72
+ ...overrides,
73
+ });
74
+ /** Creates a StatusBar item to display a label */
75
+ AbstractStatusBarItemUtilities.createLabelItem = (id, section, itemPriority, icon, label, labelSide = StatusBarLabelSide.Right, overrides) => ({
76
+ id, section, itemPriority,
77
+ icon, label,
78
+ labelSide,
79
+ ...overrides,
80
+ });
81
+ export { AbstractStatusBarItemUtilities };
82
+ //# sourceMappingURL=StatusBarItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBarItem.js","sourceRoot":"","sources":["../../../../src/appui-abstract/statusbar/StatusBarItem.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAOH;;;GAGG;AACH,MAAM,CAAN,IAAY,gBAeX;AAfD,WAAY,gBAAgB;IAC1B,4CAA4C;IAC5C,6DAAW,CAAA;IACX,4CAA4C;IAC5C,uDAAQ,CAAA;IACR,mCAAmC;IACnC,yDAAS,CAAA;IACT,mCAAmC;IACnC,2DAAU,CAAA;IACV,sCAAsC;IACtC,iEAAa,CAAA;IACb,sCAAsC;IACtC,yDAAS,CAAA;IACT,4CAA4C;IAC5C,6DAAW,CAAA;AACb,CAAC,EAfW,gBAAgB,KAAhB,gBAAgB,QAe3B;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,8EAA8E;IAC9E,2DAAI,CAAA;IACJ,6CAA6C;IAC7C,6DAAK,CAAA;AACP,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AA0ED;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAyB,EAAuC,EAAE;IAC9G,OAAQ,IAAoC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,8CAA8C;AACpH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAyB,EAAsC,EAAE;IAC5G,OAAQ,IAAmC,CAAC,KAAK,KAAK,SAAS,IAAK,IAAoC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,8CAA8C;AAChL,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAyB,EAAuC,EAAE;IAC9G,OAAO,CAAC,CAAE,IAAoC,CAAC,QAAQ,CAAC,CAAC,8CAA8C;AACzG,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAa,8BAA8B;;AACzC,oDAAoD;AACtC,+CAAgB,GAAG,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,IAAqC,EAAE,OAAwC,EAAE,OAAmB,EAAE,SAAgD,EAA+B,EAAE,CAAC,CAAC;IACtR,EAAE,EAAE,OAAO,EAAE,YAAY;IACzB,IAAI,EAAE,OAAO;IACb,OAAO;IACP,GAAG,SAAS;CACb,CAAC,CAAC;AAEH,kDAAkD;AACpC,8CAAe,GAAG,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,IAAqC,EAAE,KAAsC,EAAE,SAAS,GAAG,kBAAkB,CAAC,KAAK,EAAE,SAA+C,EAA8B,EAAE,CAAC,CAAC;IAClS,EAAE,EAAE,OAAO,EAAE,YAAY;IACzB,IAAI,EAAE,KAAK;IACX,SAAS;IACT,GAAG,SAAS;CACb,CAAC,CAAC;SAfQ,8BAA8B","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 StatusBar\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/** Status bar Groups/Sections from Left to Right\r\n * @deprecated in 3.6. Use [StatusBarSection]($appui-react) instead.\r\n * @public\r\n */\r\nexport enum StatusBarSection {\r\n /** area for tool assistance and messages */\r\n Message = 0,\r\n /** area for tool assistance and messages */\r\n Left = 0,\r\n /** items specific to stage/task */\r\n Stage = 1,\r\n /** items specific to stage/task */\r\n Center = 1,\r\n /** Select scope and selection info */\r\n Selection = 2,\r\n /** Select scope and selection info */\r\n Right = 2,\r\n /** items that only show based on context */\r\n Context = 3,\r\n}\r\n\r\n/** Defines which side of Icon where label is placed\r\n * @deprecated in 3.6. Use [StatusBarLabelSide]($appui-react) instead.\r\n * @public\r\n */\r\nexport enum StatusBarLabelSide {\r\n /** Label is placed left side of icon. This is the default if not specified */\r\n Left,\r\n /** Label is placed on right side of icon. */\r\n Right,\r\n}\r\n\r\n/** Type for StatusBar Item Id\r\n * @deprecated in 3.6. Please use `CommonStatusBarItem[\"id\"]` from @itwin/appui-react.\r\n * @public\r\n */\r\nexport type StatusBarItemId = CommonStatusBarItem[\"id\"]; // eslint-disable-line deprecation/deprecation\r\n\r\n/** Describes the data needed to insert a button into the status bar.\r\n * @deprecated in 3.6. Use [CommonStatusBarItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport interface AbstractStatusBarItem 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 /** 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 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 section (recommend using values 1 through 100). */\r\n readonly itemPriority: number;\r\n /** status bar section */\r\n readonly section: StatusBarSection; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Describes the data needed to insert an action item into the status bar.\r\n * @deprecated in 3.6. Use [StatusBarActionItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport interface AbstractStatusBarActionItem extends AbstractStatusBarItem { // eslint-disable-line deprecation/deprecation\r\n /** method to execute when icon is pressed */\r\n readonly execute: () => void;\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 /** Label. */\r\n readonly label?: string | ConditionalStringValue;\r\n /** tooltip. */\r\n readonly tooltip?: string | ConditionalStringValue;\r\n}\r\n\r\n/** Describes the data needed to insert a label item with an optional icon into the status bar.\r\n * @deprecated in 3.6. Use [StatusBarLabelItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport interface AbstractStatusBarLabelItem extends AbstractStatusBarItem { // eslint-disable-line deprecation/deprecation\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 /** Label. */\r\n readonly label: string | ConditionalStringValue;\r\n /** Defines which side of icon to display label if icon is defined. */\r\n readonly labelSide?: StatusBarLabelSide; // eslint-disable-line deprecation/deprecation\r\n}\r\n\r\n/** Describes the data needed to insert a custom item into the status bar. This is used to allow extension\r\n * implementer to create a framework specific component.\r\n * @deprecated in 3.6. Use [StatusBarCustomItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport interface AbstractStatusBarCustomItem extends AbstractStatusBarItem { // eslint-disable-line deprecation/deprecation\r\n readonly isCustom: true;\r\n}\r\n\r\n/** Describes the data needed to insert a button into the status bar.\r\n * @deprecated in 3.6. Use [StatusBarItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport type CommonStatusBarItem = AbstractStatusBarActionItem | AbstractStatusBarLabelItem | AbstractStatusBarCustomItem; // eslint-disable-line deprecation/deprecation\r\n\r\n/** AbstractStatusBarActionItem type guard.\r\n * @deprecated in 3.6. Use [isStatusBarActionItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport const isAbstractStatusBarActionItem = (item: CommonStatusBarItem): item is AbstractStatusBarActionItem => { // eslint-disable-line deprecation/deprecation\r\n return (item as AbstractStatusBarActionItem).execute !== undefined; // eslint-disable-line deprecation/deprecation\r\n};\r\n\r\n/** AbstractStatusBarLabelItem type guard.\r\n * @deprecated in 3.6. Use [isStatusBarLabelItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport const isAbstractStatusBarLabelItem = (item: CommonStatusBarItem): item is AbstractStatusBarLabelItem => { // eslint-disable-line deprecation/deprecation\r\n return (item as AbstractStatusBarLabelItem).label !== undefined && (item as AbstractStatusBarActionItem).execute === undefined; // eslint-disable-line deprecation/deprecation\r\n};\r\n\r\n/** AbstractStatusBarCustomItem type guard.\r\n * @deprecated in 3.6. Use [isStatusBarCustomItem]($appui-react) instead.\r\n * @public\r\n */\r\nexport const isAbstractStatusBarCustomItem = (item: CommonStatusBarItem): item is AbstractStatusBarCustomItem => { // eslint-disable-line deprecation/deprecation\r\n return !!(item as AbstractStatusBarCustomItem).isCustom; // eslint-disable-line deprecation/deprecation\r\n};\r\n\r\n/** Helper class to create Abstract StatusBar Item definitions.\r\n * @deprecated in 3.6. Use [StatusBarItemUtilities]($appui-react) instead.\r\n * @public\r\n */\r\nexport class AbstractStatusBarItemUtilities {\r\n /** Creates a StatusBar item to perform an action */\r\n public static createActionItem = (id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, tooltip: string | ConditionalStringValue, execute: () => void, overrides?: Partial<AbstractStatusBarCustomItem>): AbstractStatusBarActionItem => ({ // eslint-disable-line deprecation/deprecation\r\n id, section, itemPriority,\r\n icon, tooltip,\r\n execute,\r\n ...overrides,\r\n });\r\n\r\n /** Creates a StatusBar item to display a label */\r\n public static createLabelItem = (id: string, section: StatusBarSection, itemPriority: number, icon: string | ConditionalStringValue, label: string | ConditionalStringValue, labelSide = StatusBarLabelSide.Right, overrides?: Partial<AbstractStatusBarLabelItem>): AbstractStatusBarLabelItem => ({ // eslint-disable-line deprecation/deprecation\r\n id, section, itemPriority,\r\n icon, label,\r\n labelSide,\r\n ...overrides,\r\n });\r\n}\r\n"]}
@@ -0,0 +1,40 @@
1
+ /** @packageDocumentation
2
+ * @module StatusBar
3
+ */
4
+ import { BeEvent } from "@itwin/core-bentley";
5
+ import { CommonStatusBarItem, StatusBarItemId } from "./StatusBarItem";
6
+ /** Arguments of [[StatusBarItemsManager.onChanged]] event.
7
+ * @internal
8
+ */
9
+ export interface StatusBarItemsChangedArgs {
10
+ readonly items: ReadonlyArray<CommonStatusBarItem>;
11
+ }
12
+ /**
13
+ * Controls status bar items.
14
+ * @internal
15
+ */
16
+ export declare class StatusBarItemsManager {
17
+ private _items;
18
+ constructor(items?: ReadonlyArray<CommonStatusBarItem>);
19
+ /** Event raised when StatusBar items are changed.
20
+ * @internal
21
+ */
22
+ readonly onItemsChanged: BeEvent<(args: StatusBarItemsChangedArgs) => void>;
23
+ private loadItemsInternal;
24
+ /** load items but do not fire onItemsChanged
25
+ * @internal
26
+ */
27
+ loadItems(items: ReadonlyArray<CommonStatusBarItem>): void;
28
+ /** Get an array of the StatusBar items */
29
+ get items(): ReadonlyArray<CommonStatusBarItem>;
30
+ set items(items: ReadonlyArray<CommonStatusBarItem>);
31
+ add(itemOrItems: CommonStatusBarItem | ReadonlyArray<CommonStatusBarItem>): void;
32
+ /** Remove StatusBar items based on id */
33
+ remove(itemIdOrItemIds: StatusBarItemId | ReadonlyArray<StatusBarItemId>): void;
34
+ /** @internal */
35
+ removeAll(): void;
36
+ static getSyncIdsOfInterest(items: readonly CommonStatusBarItem[]): string[];
37
+ private internalRefreshAffectedItems;
38
+ refreshAffectedItems(eventIds: Set<string>): void;
39
+ }
40
+ //# sourceMappingURL=StatusBarItemsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBarItemsManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/statusbar/StatusBarItemsManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAUvE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;CACpD;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAA0C;gBAE5C,KAAK,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAKtD;;OAEG;IACH,SAAgB,cAAc,iBAAsB,yBAAyB,KAAK,IAAI,EAAI;IAE1F,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAI1D,2CAA2C;IAC3C,IAAW,KAAK,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAErD;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAIzD;IAEM,GAAG,CAAC,WAAW,EAAE,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAC;IAiBhF,yCAAyC;IAClC,MAAM,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa,CAAC,eAAe,CAC7E;IAOD,gBAAgB;IACT,SAAS;WAIF,oBAAoB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,MAAM,EAAE;IAcnF,OAAO,CAAC,4BAA4B;IA6B7B,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;CAWlD"}