@itwin/appui-react 4.0.0-dev.18 → 4.0.0-dev.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts +3 -2
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.d.ts.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js +4 -4
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts +3 -2
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +4 -0
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts +3 -2
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.d.ts.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.js +4 -4
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts +3 -2
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +4 -0
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/package.json +9 -9
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module Backstage
|
|
3
3
|
*/
|
|
4
|
+
import { IconSpec } from "@itwin/core-react";
|
|
4
5
|
import { BackstageActionItem, BackstageStageLauncher } from "./BackstageItem";
|
|
5
6
|
/** Utilities for creating and maintaining backstage items
|
|
6
7
|
* @beta
|
|
7
8
|
*/
|
|
8
9
|
export declare namespace BackstageItemUtilities {
|
|
9
10
|
/** Creates a stage launcher backstage item. */
|
|
10
|
-
function createStageLauncher(frontstageId: string, groupPriority: number, itemPriority: number, label: string, subtitle?: string,
|
|
11
|
+
function createStageLauncher(frontstageId: string, groupPriority: number, itemPriority: number, label: string, subtitle?: string, icon?: IconSpec, overrides?: Partial<BackstageStageLauncher>): BackstageStageLauncher;
|
|
11
12
|
/** Creates an action backstage item. */
|
|
12
|
-
function createActionItem(itemId: string, groupPriority: number, itemPriority: number, execute: () => void, label: string, subtitle?: string,
|
|
13
|
+
function createActionItem(itemId: string, groupPriority: number, itemPriority: number, execute: () => void, label: string, subtitle?: string, icon?: IconSpec, overrides?: Partial<BackstageActionItem>): BackstageActionItem;
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=BackstageItemUtilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackstageItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9E;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC,+CAA+C;IAC/C,SAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"BackstageItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9E;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC,+CAA+C;IAC/C,SAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAW7N;IAED,wCAAwC;IACxC,SAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAWnO;CACF"}
|
|
@@ -14,10 +14,10 @@ exports.BackstageItemUtilities = void 0;
|
|
|
14
14
|
var BackstageItemUtilities;
|
|
15
15
|
(function (BackstageItemUtilities) {
|
|
16
16
|
/** Creates a stage launcher backstage item. */
|
|
17
|
-
function createStageLauncher(frontstageId, groupPriority, itemPriority, label, subtitle,
|
|
17
|
+
function createStageLauncher(frontstageId, groupPriority, itemPriority, label, subtitle, icon, overrides) {
|
|
18
18
|
return {
|
|
19
19
|
groupPriority,
|
|
20
|
-
icon
|
|
20
|
+
icon,
|
|
21
21
|
id: frontstageId,
|
|
22
22
|
itemPriority,
|
|
23
23
|
label,
|
|
@@ -28,11 +28,11 @@ var BackstageItemUtilities;
|
|
|
28
28
|
}
|
|
29
29
|
BackstageItemUtilities.createStageLauncher = createStageLauncher;
|
|
30
30
|
/** Creates an action backstage item. */
|
|
31
|
-
function createActionItem(itemId, groupPriority, itemPriority, execute, label, subtitle,
|
|
31
|
+
function createActionItem(itemId, groupPriority, itemPriority, execute, label, subtitle, icon, overrides) {
|
|
32
32
|
return {
|
|
33
33
|
execute,
|
|
34
34
|
groupPriority,
|
|
35
|
-
icon
|
|
35
|
+
icon,
|
|
36
36
|
id: itemId,
|
|
37
37
|
itemPriority,
|
|
38
38
|
label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackstageItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageItemUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"BackstageItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageItemUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAKH;;GAEG;AACH,IAAiB,sBAAsB,CA4BtC;AA5BD,WAAiB,sBAAsB;IACrC,+CAA+C;IAC/C,SAAgB,mBAAmB,CAAC,YAAoB,EAAE,aAAqB,EAAE,YAAoB,EAAE,KAAa,EAAE,QAAiB,EAAE,IAAe,EAAE,SAA2C;QACnM,OAAO;YACL,aAAa;YACb,IAAI;YACJ,EAAE,EAAE,YAAY;YAChB,YAAY;YACZ,KAAK;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;YACR,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAXe,0CAAmB,sBAWlC,CAAA;IAED,wCAAwC;IACxC,SAAgB,gBAAgB,CAAC,MAAc,EAAE,aAAqB,EAAE,YAAoB,EAAE,OAAmB,EAAE,KAAa,EAAE,QAAiB,EAAE,IAAe,EAAE,SAAwC;QAC5M,OAAO;YACL,OAAO;YACP,aAAa;YACb,IAAI;YACJ,EAAE,EAAE,MAAM;YACV,YAAY;YACZ,KAAK;YACL,QAAQ;YACR,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAXe,uCAAgB,mBAW/B,CAAA;AACH,CAAC,EA5BgB,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QA4BtC","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 { IconSpec } from \"@itwin/core-react\";\r\nimport { BackstageActionItem, BackstageStageLauncher } from \"./BackstageItem\";\r\n\r\n/** Utilities for creating and maintaining backstage items\r\n * @beta\r\n */\r\nexport namespace BackstageItemUtilities {\r\n /** Creates a stage launcher backstage item. */\r\n export function createStageLauncher(frontstageId: string, groupPriority: number, itemPriority: number, label: string, subtitle?: string, icon?: IconSpec, overrides?: Partial<BackstageStageLauncher>): BackstageStageLauncher {\r\n return {\r\n groupPriority,\r\n icon,\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\r\n /** Creates an action backstage item. */\r\n export function createActionItem(itemId: string, groupPriority: number, itemPriority: number, execute: () => void, label: string, subtitle?: string, icon?: IconSpec, overrides?: Partial<BackstageActionItem>): BackstageActionItem {\r\n return {\r\n execute,\r\n groupPriority,\r\n icon,\r\n id: itemId,\r\n itemPriority,\r\n label,\r\n subtitle,\r\n ...overrides,\r\n };\r\n }\r\n}\r\n"]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { ConditionalStringValue } from "@itwin/appui-abstract";
|
|
6
|
+
import { IconSpec } from "@itwin/core-react";
|
|
6
7
|
import { StatusBarActionItem, StatusBarCustomItem, StatusBarLabelItem, StatusBarLabelSide, StatusBarSection } from "./StatusBarItem";
|
|
7
8
|
/** Utility functions for creating and maintaining StatusBar items.
|
|
8
9
|
* @public
|
|
@@ -11,11 +12,11 @@ export declare namespace StatusBarItemUtilities {
|
|
|
11
12
|
/** Creates a StatusBar item to perform an action.
|
|
12
13
|
* @beta
|
|
13
14
|
*/
|
|
14
|
-
function createActionItem(id: string, section: StatusBarSection, itemPriority: number, icon:
|
|
15
|
+
function createActionItem(id: string, section: StatusBarSection, itemPriority: number, icon: IconSpec, tooltip: string | ConditionalStringValue, execute: () => void, overrides?: Partial<StatusBarActionItem>): StatusBarActionItem;
|
|
15
16
|
/** Creates a StatusBar item to display a label.
|
|
16
17
|
* @beta
|
|
17
18
|
*/
|
|
18
|
-
function createLabelItem(id: string, section: StatusBarSection, itemPriority: number, icon:
|
|
19
|
+
function createLabelItem(id: string, section: StatusBarSection, itemPriority: number, icon: IconSpec, label: string | ConditionalStringValue, labelSide?: StatusBarLabelSide, overrides?: Partial<StatusBarLabelItem>): StatusBarLabelItem;
|
|
19
20
|
/** Creates a StatusBar item to display a custom content.
|
|
20
21
|
* @beta
|
|
21
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAErI;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"StatusBarItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAErI;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAU1O;IAED;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,sBAAsB,EAAE,SAAS,qBAA2B,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAUtP;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAQrL;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"StatusBarItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAKH,mDAAqI;AAErI;;GAEG;AACH,IAAiB,sBAAsB,CA2CtC;AA3CD,WAAiB,sBAAsB;IACrC;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,IAAc,EAAE,OAAwC,EAAE,OAAmB,EAAE,SAAwC;QACnN,OAAO;YACL,EAAE;YACF,OAAO;YACP,YAAY;YACZ,IAAI;YACJ,OAAO;YACP,OAAO;YACP,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAVe,uCAAgB,mBAU/B,CAAA;IAED;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,IAAc,EAAE,KAAsC,EAAE,SAAS,GAAG,kCAAkB,CAAC,KAAK,EAAE,SAAuC;QAChO,OAAO;YACL,EAAE;YACF,OAAO;YACP,YAAY;YACZ,IAAI;YACJ,KAAK;YACL,SAAS;YACT,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAVe,sCAAe,kBAU9B,CAAA;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,OAAwB,EAAE,SAAwC;QAC9J,OAAO;YACL,EAAE;YACF,OAAO;YACP,YAAY;YACZ,OAAO;YACP,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IARe,uCAAgB,mBAQ/B,CAAA;AACH,CAAC,EA3CgB,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QA2CtC","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 * as React from \"react\";\r\nimport { ConditionalStringValue } from \"@itwin/appui-abstract\";\r\nimport { IconSpec } from \"@itwin/core-react\";\r\nimport { StatusBarActionItem, StatusBarCustomItem, StatusBarLabelItem, StatusBarLabelSide, StatusBarSection } from \"./StatusBarItem\";\r\n\r\n/** Utility functions for creating and maintaining StatusBar items.\r\n * @public\r\n */\r\nexport namespace StatusBarItemUtilities {\r\n /** Creates a StatusBar item to perform an action.\r\n * @beta\r\n */\r\n export function createActionItem(id: string, section: StatusBarSection, itemPriority: number, icon: IconSpec, tooltip: string | ConditionalStringValue, execute: () => void, overrides?: Partial<StatusBarActionItem>): StatusBarActionItem {\r\n return {\r\n id,\r\n section,\r\n itemPriority,\r\n icon,\r\n tooltip,\r\n execute,\r\n ...overrides,\r\n };\r\n }\r\n\r\n /** Creates a StatusBar item to display a label.\r\n * @beta\r\n */\r\n export function createLabelItem(id: string, section: StatusBarSection, itemPriority: number, icon: IconSpec, label: string | ConditionalStringValue, labelSide = StatusBarLabelSide.Right, overrides?: Partial<StatusBarLabelItem>): StatusBarLabelItem {\r\n return {\r\n id,\r\n section,\r\n itemPriority,\r\n icon,\r\n label,\r\n labelSide,\r\n ...overrides,\r\n };\r\n }\r\n\r\n /** Creates a StatusBar item to display a custom content.\r\n * @beta\r\n */\r\n export function createCustomItem(id: string, section: StatusBarSection, itemPriority: number, content: React.ReactNode, overrides?: Partial<StatusBarCustomItem>): StatusBarCustomItem {\r\n return {\r\n id,\r\n section,\r\n itemPriority,\r\n content,\r\n ...overrides,\r\n };\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncUiEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAqB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAa,gBAAgB,EAAkD,MAAM,sBAAsB,CAAC;AAUnH;;GAEG;AACH,oBAAY,aAAa;IACvB,yCAAyC;IACzC,0BAA0B,+BAA+B;IACzD,qCAAqC;IACrC,uBAAuB,4BAA4B;IACnD,8EAA8E;IAC9E,oBAAoB,yBAAyB;IAC7C,iEAAiE;IACjE,qBAAqB,0BAA0B;IAC/C,kCAAkC;IAClC,cAAc,mBAAmB;IACjC,4CAA4C;IAC5C,sBAAsB,2BAA2B;IACjD,kFAAkF;IAClF,uBAAuB,4BAA4B;IACnD,kCAAkC;IAClC,oBAAoB,yBAAyB;IAC7C,yEAAyE;IACzE,eAAe,oBAAoB;IACnC,oDAAoD;IACpD,sBAAsB,2BAA2B;IACjD,gDAAgD;IAChD,kBAAkB,uBAAuB;IACzC,0CAA0C;IAC1C,sBAAsB,2BAA2B;IACjD,+DAA+D;IAC/D,aAAa,kBAAkB;IAC/B,yCAAyC;IACzC,kBAAkB,uBAAuB;IACzC,oEAAoE;IACpE,mBAAmB,wBAAwB;IAC3C,kFAAkF;IAClF,wBAAwB,6BAA6B;IACrD,mFAAmF;IACnF,gBAAgB,qBAAqB;IACrC,mEAAmE;IACnE,qBAAqB,0BAA0B;IAC/C,4BAA4B,6BAA6B;IACzD,6DAA6D;IAC7D,uBAAuB,4BAA4B;CACpD;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA2B;IAC5D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAa;IACpD,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAyB;IAEhE,wCAAwC;WAE1B,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpD,+DAA+D;IAC/D,WAAkB,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAE5C;IAED,oEAAoE;IACpE,WAAkB,aAAa,IAAI,WAAW,CAE7C;IAED,iDAAiD;WACnC,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjE,0CAA0C;WAC5B,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQxD,oDAAoD;WACtC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ5D,kFAAkF;WACpE,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAK/E,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAKlC,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAI9C,gFAAgF;WAClE,UAAU;IAwExB,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAItC,qFAAqF;WACvE,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB;IAKtE,0FAA0F;WAC5E,0BAA0B,CAAC,gBAAgB,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"SyncUiEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAqB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAa,gBAAgB,EAAkD,MAAM,sBAAsB,CAAC;AAUnH;;GAEG;AACH,oBAAY,aAAa;IACvB,yCAAyC;IACzC,0BAA0B,+BAA+B;IACzD,qCAAqC;IACrC,uBAAuB,4BAA4B;IACnD,8EAA8E;IAC9E,oBAAoB,yBAAyB;IAC7C,iEAAiE;IACjE,qBAAqB,0BAA0B;IAC/C,kCAAkC;IAClC,cAAc,mBAAmB;IACjC,4CAA4C;IAC5C,sBAAsB,2BAA2B;IACjD,kFAAkF;IAClF,uBAAuB,4BAA4B;IACnD,kCAAkC;IAClC,oBAAoB,yBAAyB;IAC7C,yEAAyE;IACzE,eAAe,oBAAoB;IACnC,oDAAoD;IACpD,sBAAsB,2BAA2B;IACjD,gDAAgD;IAChD,kBAAkB,uBAAuB;IACzC,0CAA0C;IAC1C,sBAAsB,2BAA2B;IACjD,+DAA+D;IAC/D,aAAa,kBAAkB;IAC/B,yCAAyC;IACzC,kBAAkB,uBAAuB;IACzC,oEAAoE;IACpE,mBAAmB,wBAAwB;IAC3C,kFAAkF;IAClF,wBAAwB,6BAA6B;IACrD,mFAAmF;IACnF,gBAAgB,qBAAqB;IACrC,mEAAmE;IACnE,qBAAqB,0BAA0B;IAC/C,4BAA4B,6BAA6B;IACzD,6DAA6D;IAC7D,uBAAuB,4BAA4B;CACpD;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA2B;IAC5D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAa;IACpD,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAyB;IAEhE,wCAAwC;WAE1B,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpD,+DAA+D;IAC/D,WAAkB,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAE5C;IAED,oEAAoE;IACpE,WAAkB,aAAa,IAAI,WAAW,CAE7C;IAED,iDAAiD;WACnC,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjE,0CAA0C;WAC5B,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQxD,oDAAoD;WACtC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ5D,kFAAkF;WACpE,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAK/E,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAKlC,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAI9C,gFAAgF;WAClE,UAAU;IAwExB,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAItC,qFAAqF;WACvE,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB;IAKtE,0FAA0F;WAC5E,0BAA0B,CAAC,gBAAgB,EAAE,gBAAgB;CAkB5E"}
|
|
@@ -193,6 +193,10 @@ class SyncUiEventDispatcher {
|
|
|
193
193
|
iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);
|
|
194
194
|
iModelConnection.selectionSet.onChanged.addListener(SyncUiEventDispatcher.selectionChangedHandler);
|
|
195
195
|
iModelConnection.iModelId && UiFramework_1.UiFramework.setActiveIModelId(iModelConnection.iModelId);
|
|
196
|
+
SyncUiEventDispatcher._unregisterListenerFunc = iModelConnection.selectionSet.onChanged.addListener((ev) => {
|
|
197
|
+
const numSelected = ev.set.elements.size;
|
|
198
|
+
UiFramework_1.UiFramework.dispatchActionToStore(SessionState_1.SessionStateActionId.SetNumItemsSelected, numSelected);
|
|
199
|
+
});
|
|
196
200
|
}
|
|
197
201
|
}
|
|
198
202
|
SyncUiEventDispatcher._uiEventDispatcher = new appui_abstract_1.UiEventDispatcher();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncUiEventDispatcher.js","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.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 SyncUi\r\n */\r\n\r\nimport { UiEventDispatcher, UiSyncEvent } from \"@itwin/appui-abstract\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, SelectedViewportChangedArgs, SelectionSetEvent } from \"@itwin/core-frontend\";\r\nimport { SessionStateActionId } from \"../redux/SessionState\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n// cSpell:ignore activecontentchanged, activitymessageupdated, activitymessagecancelled, backstageevent, contentlayoutactivated, contentcontrolactivated,\r\n// cSpell:ignore elementtooltipchanged, frontstageactivated, inputfieldmessageadded, inputfieldmessageremoved, modalfrontstagechanged, modaldialogchanged\r\n// cSpell:ignore navigationaidactivated, notificationmessageadded, toolactivated, taskactivated, widgetstatechanged, workflowactivated frontstageactivating\r\n// cSpell:ignore frontstageready activeviewportchanged selectionsetchanged presentationselectionchanged viewstatechanged\r\n// cSpell:ignore accudrawcompassmodechanged accudrawfieldlockchanged accudrawrotationchanged uisettingschanged configurableui\r\n\r\n/** Event Id used to sync UI components. Used to refresh visibility or enable state of control.\r\n * @public\r\n */\r\nexport enum SyncUiEventId {\r\n /** AccuDraw compass mode has changed. */\r\n AccuDrawCompassModeChanged = \"accudrawcompassmodechanged\",\r\n /** AccuDraw rotation has changed. */\r\n AccuDrawRotationChanged = \"accudrawrotationchanged\",\r\n /** The active content as maintained by the ContentViewManager has changed. */\r\n ActiveContentChanged = \"activecontentchanged\",\r\n /** The active view maintained by the ViewManager has changed. */\r\n ActiveViewportChanged = \"activeviewportchanged\",\r\n /** Backstage has been toggled. */\r\n BackstageEvent = \"backstageevent\",\r\n /** A Content Layout has been activated. */\r\n ContentLayoutActivated = \"contentlayoutactivated\",\r\n /** A Content Control maintained by UiFramework.frontstages has been activated. */\r\n ContentControlActivated = \"contentcontrolactivated\",\r\n /** A Frontstage is activating. */\r\n FrontstageActivating = \"frontstageactivating\",\r\n /** A Frontstage has been activated and the content has been assigned. */\r\n FrontstageReady = \"frontstageready\",\r\n /** A Modal Frontstage has been opened or closed. */\r\n ModalFrontstageChanged = \"modalfrontstagechanged\",\r\n /** A Modal Dialog has been opened or closed. */\r\n ModalDialogChanged = \"modaldialogchanged\",\r\n /** A NavigationAid has been activated. */\r\n NavigationAidActivated = \"navigationaidactivated\",\r\n /** An InteractiveTool has been activated via the ToolAdmin. */\r\n ToolActivated = \"toolactivated\",\r\n /** The state of a Widget has changed. */\r\n WidgetStateChanged = \"widgetstatechanged\",\r\n /** The SelectionSet for the active IModelConnection has changed. */\r\n SelectionSetChanged = \"selectionsetchanged\",\r\n /** The list of settings providers registered with SettingsManager has changed. */\r\n SettingsProvidersChanged = \"settingsproviderschanged\",\r\n /** The current view state has changed (used by view undo/redo toolbar buttons). */\r\n ViewStateChanged = \"viewstatechanged\",\r\n /** The current object the reads and write UI State has changed. */\r\n UiStateStorageChanged = \"uistatestoragechanged\",\r\n ShowHideManagerSettingChange = \"show-hide-setting-change\",\r\n /** The list of feature overrides applied has been changed */\r\n FeatureOverridesChanged = \"featureoverrideschanged\",\r\n}\r\n\r\n/** This class is used to send eventIds to interested UI components so the component can determine if it needs\r\n * to refresh its display by calling setState on itself.\r\n * @public\r\n */\r\nexport class SyncUiEventDispatcher {\r\n private static _uiEventDispatcher = new UiEventDispatcher();\r\n private static _unregisterListenerFunc?: () => void;\r\n private static _unregisterListenerFuncs: Array<() => void> = [];\r\n\r\n /** @internal - used for testing only */\r\n /* istanbul ignore next */\r\n public static setTimeoutPeriod(period: number): void {\r\n SyncUiEventDispatcher._uiEventDispatcher.setTimeoutPeriod(period);\r\n }\r\n\r\n /** Return set of event ids that will be sent to listeners/. */\r\n public static get syncEventIds(): Set<string> {\r\n return SyncUiEventDispatcher._uiEventDispatcher.syncEventIds;\r\n }\r\n\r\n /** Return SyncUiEvent so callers can register an event callback. */\r\n public static get onSyncUiEvent(): UiSyncEvent {\r\n return SyncUiEventDispatcher._uiEventDispatcher.onSyncUiEvent;\r\n }\r\n\r\n /** Immediately trigger sync event processing. */\r\n public static dispatchImmediateSyncUiEvent(eventId: string): void {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchImmediateSyncUiEvent(eventId);\r\n }\r\n\r\n /** Save eventId in Set for processing. */\r\n public static dispatchSyncUiEvent(eventId: string): void {\r\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\r\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvent] not processed because timeoutPeriod=0`);\r\n return;\r\n }\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(eventId);\r\n }\r\n\r\n /** Save multiple eventIds in Set for processing. */\r\n public static dispatchSyncUiEvents(eventIds: string[]): void {\r\n // istanbul ignore if\r\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\r\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvents] not processed because _timeoutPeriod=0`);\r\n }\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvents(eventIds);\r\n }\r\n\r\n /** Checks to see if an eventId of interest is contained in the set of eventIds */\r\n public static hasEventOfInterest(eventIds: Set<string>, idsOfInterest: string[]) {\r\n return SyncUiEventDispatcher._uiEventDispatcher.hasEventOfInterest(eventIds, idsOfInterest);\r\n }\r\n\r\n // istanbul ignore next\r\n private static _dispatchViewChange() {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ViewStateChanged);\r\n }\r\n\r\n // istanbul ignore next\r\n private static _dispatchFeatureOverridesChange() {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FeatureOverridesChanged);\r\n }\r\n\r\n /** Initializes the Monitoring of Events that trigger dispatching sync events */\r\n public static initialize() {\r\n // clear any registered listeners - this should only be encountered in unit test scenarios\r\n this._unregisterListenerFuncs.forEach((unregisterListenerFunc) => unregisterListenerFunc());\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onContentControlActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentControlActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onContentLayoutActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentLayoutActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onFrontstageActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageActivating);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onFrontstageReadyEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageReady);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onModalFrontstageChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ModalFrontstageChanged);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onNavigationAidActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.NavigationAidActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onToolActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ToolActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onWidgetStateChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WidgetStateChanged);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.backstage.onToggled.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.BackstageEvent);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.content.onActiveContentChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveContentChanged);\r\n }));\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n this._unregisterListenerFuncs.push(IModelApp.viewManager.onSelectedViewportChanged.addListener((args: SelectedViewportChangedArgs) => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveViewportChanged);\r\n\r\n // if this is the first view being opened up start the default tool so tool admin is happy.\r\n if (undefined === args.previous) {\r\n IModelApp.toolAdmin.startDefaultTool();// eslint-disable-line @typescript-eslint/no-floating-promises\r\n } else {\r\n // istanbul ignore next\r\n if (args.previous.onViewChanged && typeof args.previous.onViewChanged.removeListener === \"function\") // not set during unit test\r\n args.previous.onViewChanged.removeListener(SyncUiEventDispatcher._dispatchViewChange);\r\n // istanbul ignore next\r\n if (args.previous.onFeatureOverridesChanged && typeof args.previous.onFeatureOverridesChanged.removeListener === \"function\") // not set during unit test\r\n args.previous.onFeatureOverridesChanged.removeListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);\r\n }\r\n // istanbul ignore next\r\n if (args.current) {\r\n if (args.current.onViewChanged && typeof args.current.onViewChanged.addListener === \"function\") // not set during unit test\r\n args.current.onViewChanged.addListener(SyncUiEventDispatcher._dispatchViewChange);\r\n // istanbul ignore next\r\n if (args.current.onFeatureOverridesChanged && typeof args.current.onFeatureOverridesChanged.addListener === \"function\") // not set during unit test\r\n args.current.onFeatureOverridesChanged.addListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);\r\n }\r\n }));\r\n }\r\n }\r\n\r\n private static selectionChangedHandler(_ev: SelectionSetEvent) {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SelectionSetChanged);\r\n }\r\n\r\n /** This should be called by IModelApp when the active IModelConnection is closed. */\r\n public static clearConnectionEvents(iModelConnection: IModelConnection) {\r\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n SyncUiEventDispatcher._unregisterListenerFunc && SyncUiEventDispatcher._unregisterListenerFunc();\r\n }\r\n\r\n /** This should be called by IModelApp when the active IModelConnection is established. */\r\n public static initializeConnectionEvents(iModelConnection: IModelConnection) {\r\n if (SyncUiEventDispatcher._unregisterListenerFunc)\r\n SyncUiEventDispatcher._unregisterListenerFunc();\r\n\r\n if (iModelConnection.isBlankConnection() || !iModelConnection.isOpen) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, 0);\r\n return;\r\n }\r\n\r\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n iModelConnection.selectionSet.onChanged.addListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n iModelConnection.iModelId && UiFramework.setActiveIModelId(iModelConnection.iModelId);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SyncUiEventDispatcher.js","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.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 SyncUi\r\n */\r\n\r\nimport { UiEventDispatcher, UiSyncEvent } from \"@itwin/appui-abstract\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, SelectedViewportChangedArgs, SelectionSetEvent } from \"@itwin/core-frontend\";\r\nimport { SessionStateActionId } from \"../redux/SessionState\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n// cSpell:ignore activecontentchanged, activitymessageupdated, activitymessagecancelled, backstageevent, contentlayoutactivated, contentcontrolactivated,\r\n// cSpell:ignore elementtooltipchanged, frontstageactivated, inputfieldmessageadded, inputfieldmessageremoved, modalfrontstagechanged, modaldialogchanged\r\n// cSpell:ignore navigationaidactivated, notificationmessageadded, toolactivated, taskactivated, widgetstatechanged, workflowactivated frontstageactivating\r\n// cSpell:ignore frontstageready activeviewportchanged selectionsetchanged presentationselectionchanged viewstatechanged\r\n// cSpell:ignore accudrawcompassmodechanged accudrawfieldlockchanged accudrawrotationchanged uisettingschanged configurableui\r\n\r\n/** Event Id used to sync UI components. Used to refresh visibility or enable state of control.\r\n * @public\r\n */\r\nexport enum SyncUiEventId {\r\n /** AccuDraw compass mode has changed. */\r\n AccuDrawCompassModeChanged = \"accudrawcompassmodechanged\",\r\n /** AccuDraw rotation has changed. */\r\n AccuDrawRotationChanged = \"accudrawrotationchanged\",\r\n /** The active content as maintained by the ContentViewManager has changed. */\r\n ActiveContentChanged = \"activecontentchanged\",\r\n /** The active view maintained by the ViewManager has changed. */\r\n ActiveViewportChanged = \"activeviewportchanged\",\r\n /** Backstage has been toggled. */\r\n BackstageEvent = \"backstageevent\",\r\n /** A Content Layout has been activated. */\r\n ContentLayoutActivated = \"contentlayoutactivated\",\r\n /** A Content Control maintained by UiFramework.frontstages has been activated. */\r\n ContentControlActivated = \"contentcontrolactivated\",\r\n /** A Frontstage is activating. */\r\n FrontstageActivating = \"frontstageactivating\",\r\n /** A Frontstage has been activated and the content has been assigned. */\r\n FrontstageReady = \"frontstageready\",\r\n /** A Modal Frontstage has been opened or closed. */\r\n ModalFrontstageChanged = \"modalfrontstagechanged\",\r\n /** A Modal Dialog has been opened or closed. */\r\n ModalDialogChanged = \"modaldialogchanged\",\r\n /** A NavigationAid has been activated. */\r\n NavigationAidActivated = \"navigationaidactivated\",\r\n /** An InteractiveTool has been activated via the ToolAdmin. */\r\n ToolActivated = \"toolactivated\",\r\n /** The state of a Widget has changed. */\r\n WidgetStateChanged = \"widgetstatechanged\",\r\n /** The SelectionSet for the active IModelConnection has changed. */\r\n SelectionSetChanged = \"selectionsetchanged\",\r\n /** The list of settings providers registered with SettingsManager has changed. */\r\n SettingsProvidersChanged = \"settingsproviderschanged\",\r\n /** The current view state has changed (used by view undo/redo toolbar buttons). */\r\n ViewStateChanged = \"viewstatechanged\",\r\n /** The current object the reads and write UI State has changed. */\r\n UiStateStorageChanged = \"uistatestoragechanged\",\r\n ShowHideManagerSettingChange = \"show-hide-setting-change\",\r\n /** The list of feature overrides applied has been changed */\r\n FeatureOverridesChanged = \"featureoverrideschanged\",\r\n}\r\n\r\n/** This class is used to send eventIds to interested UI components so the component can determine if it needs\r\n * to refresh its display by calling setState on itself.\r\n * @public\r\n */\r\nexport class SyncUiEventDispatcher {\r\n private static _uiEventDispatcher = new UiEventDispatcher();\r\n private static _unregisterListenerFunc?: () => void;\r\n private static _unregisterListenerFuncs: Array<() => void> = [];\r\n\r\n /** @internal - used for testing only */\r\n /* istanbul ignore next */\r\n public static setTimeoutPeriod(period: number): void {\r\n SyncUiEventDispatcher._uiEventDispatcher.setTimeoutPeriod(period);\r\n }\r\n\r\n /** Return set of event ids that will be sent to listeners/. */\r\n public static get syncEventIds(): Set<string> {\r\n return SyncUiEventDispatcher._uiEventDispatcher.syncEventIds;\r\n }\r\n\r\n /** Return SyncUiEvent so callers can register an event callback. */\r\n public static get onSyncUiEvent(): UiSyncEvent {\r\n return SyncUiEventDispatcher._uiEventDispatcher.onSyncUiEvent;\r\n }\r\n\r\n /** Immediately trigger sync event processing. */\r\n public static dispatchImmediateSyncUiEvent(eventId: string): void {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchImmediateSyncUiEvent(eventId);\r\n }\r\n\r\n /** Save eventId in Set for processing. */\r\n public static dispatchSyncUiEvent(eventId: string): void {\r\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\r\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvent] not processed because timeoutPeriod=0`);\r\n return;\r\n }\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(eventId);\r\n }\r\n\r\n /** Save multiple eventIds in Set for processing. */\r\n public static dispatchSyncUiEvents(eventIds: string[]): void {\r\n // istanbul ignore if\r\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\r\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvents] not processed because _timeoutPeriod=0`);\r\n }\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvents(eventIds);\r\n }\r\n\r\n /** Checks to see if an eventId of interest is contained in the set of eventIds */\r\n public static hasEventOfInterest(eventIds: Set<string>, idsOfInterest: string[]) {\r\n return SyncUiEventDispatcher._uiEventDispatcher.hasEventOfInterest(eventIds, idsOfInterest);\r\n }\r\n\r\n // istanbul ignore next\r\n private static _dispatchViewChange() {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ViewStateChanged);\r\n }\r\n\r\n // istanbul ignore next\r\n private static _dispatchFeatureOverridesChange() {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FeatureOverridesChanged);\r\n }\r\n\r\n /** Initializes the Monitoring of Events that trigger dispatching sync events */\r\n public static initialize() {\r\n // clear any registered listeners - this should only be encountered in unit test scenarios\r\n this._unregisterListenerFuncs.forEach((unregisterListenerFunc) => unregisterListenerFunc());\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onContentControlActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentControlActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onContentLayoutActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentLayoutActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onFrontstageActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageActivating);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onFrontstageReadyEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageReady);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onModalFrontstageChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ModalFrontstageChanged);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onNavigationAidActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.NavigationAidActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onToolActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ToolActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onWidgetStateChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WidgetStateChanged);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.backstage.onToggled.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.BackstageEvent);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.content.onActiveContentChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveContentChanged);\r\n }));\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n this._unregisterListenerFuncs.push(IModelApp.viewManager.onSelectedViewportChanged.addListener((args: SelectedViewportChangedArgs) => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveViewportChanged);\r\n\r\n // if this is the first view being opened up start the default tool so tool admin is happy.\r\n if (undefined === args.previous) {\r\n IModelApp.toolAdmin.startDefaultTool();// eslint-disable-line @typescript-eslint/no-floating-promises\r\n } else {\r\n // istanbul ignore next\r\n if (args.previous.onViewChanged && typeof args.previous.onViewChanged.removeListener === \"function\") // not set during unit test\r\n args.previous.onViewChanged.removeListener(SyncUiEventDispatcher._dispatchViewChange);\r\n // istanbul ignore next\r\n if (args.previous.onFeatureOverridesChanged && typeof args.previous.onFeatureOverridesChanged.removeListener === \"function\") // not set during unit test\r\n args.previous.onFeatureOverridesChanged.removeListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);\r\n }\r\n // istanbul ignore next\r\n if (args.current) {\r\n if (args.current.onViewChanged && typeof args.current.onViewChanged.addListener === \"function\") // not set during unit test\r\n args.current.onViewChanged.addListener(SyncUiEventDispatcher._dispatchViewChange);\r\n // istanbul ignore next\r\n if (args.current.onFeatureOverridesChanged && typeof args.current.onFeatureOverridesChanged.addListener === \"function\") // not set during unit test\r\n args.current.onFeatureOverridesChanged.addListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);\r\n }\r\n }));\r\n }\r\n }\r\n\r\n private static selectionChangedHandler(_ev: SelectionSetEvent) {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SelectionSetChanged);\r\n }\r\n\r\n /** This should be called by IModelApp when the active IModelConnection is closed. */\r\n public static clearConnectionEvents(iModelConnection: IModelConnection) {\r\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n SyncUiEventDispatcher._unregisterListenerFunc && SyncUiEventDispatcher._unregisterListenerFunc();\r\n }\r\n\r\n /** This should be called by IModelApp when the active IModelConnection is established. */\r\n public static initializeConnectionEvents(iModelConnection: IModelConnection) {\r\n if (SyncUiEventDispatcher._unregisterListenerFunc)\r\n SyncUiEventDispatcher._unregisterListenerFunc();\r\n\r\n if (iModelConnection.isBlankConnection() || !iModelConnection.isOpen) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, 0);\r\n return;\r\n }\r\n\r\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n iModelConnection.selectionSet.onChanged.addListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n iModelConnection.iModelId && UiFramework.setActiveIModelId(iModelConnection.iModelId);\r\n\r\n SyncUiEventDispatcher._unregisterListenerFunc = iModelConnection.selectionSet.onChanged.addListener((ev) => {\r\n const numSelected = ev.set.elements.size;\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, numSelected);\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module Backstage
|
|
3
3
|
*/
|
|
4
|
+
import { IconSpec } from "@itwin/core-react";
|
|
4
5
|
import { BackstageActionItem, BackstageStageLauncher } from "./BackstageItem";
|
|
5
6
|
/** Utilities for creating and maintaining backstage items
|
|
6
7
|
* @beta
|
|
7
8
|
*/
|
|
8
9
|
export declare namespace BackstageItemUtilities {
|
|
9
10
|
/** Creates a stage launcher backstage item. */
|
|
10
|
-
function createStageLauncher(frontstageId: string, groupPriority: number, itemPriority: number, label: string, subtitle?: string,
|
|
11
|
+
function createStageLauncher(frontstageId: string, groupPriority: number, itemPriority: number, label: string, subtitle?: string, icon?: IconSpec, overrides?: Partial<BackstageStageLauncher>): BackstageStageLauncher;
|
|
11
12
|
/** Creates an action backstage item. */
|
|
12
|
-
function createActionItem(itemId: string, groupPriority: number, itemPriority: number, execute: () => void, label: string, subtitle?: string,
|
|
13
|
+
function createActionItem(itemId: string, groupPriority: number, itemPriority: number, execute: () => void, label: string, subtitle?: string, icon?: IconSpec, overrides?: Partial<BackstageActionItem>): BackstageActionItem;
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=BackstageItemUtilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackstageItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9E;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC,+CAA+C;IAC/C,SAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"BackstageItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9E;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC,+CAA+C;IAC/C,SAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAW7N;IAED,wCAAwC;IACxC,SAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAWnO;CACF"}
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
export var BackstageItemUtilities;
|
|
12
12
|
(function (BackstageItemUtilities) {
|
|
13
13
|
/** Creates a stage launcher backstage item. */
|
|
14
|
-
function createStageLauncher(frontstageId, groupPriority, itemPriority, label, subtitle,
|
|
14
|
+
function createStageLauncher(frontstageId, groupPriority, itemPriority, label, subtitle, icon, overrides) {
|
|
15
15
|
return {
|
|
16
16
|
groupPriority,
|
|
17
|
-
icon
|
|
17
|
+
icon,
|
|
18
18
|
id: frontstageId,
|
|
19
19
|
itemPriority,
|
|
20
20
|
label,
|
|
@@ -25,11 +25,11 @@ export var BackstageItemUtilities;
|
|
|
25
25
|
}
|
|
26
26
|
BackstageItemUtilities.createStageLauncher = createStageLauncher;
|
|
27
27
|
/** Creates an action backstage item. */
|
|
28
|
-
function createActionItem(itemId, groupPriority, itemPriority, execute, label, subtitle,
|
|
28
|
+
function createActionItem(itemId, groupPriority, itemPriority, execute, label, subtitle, icon, overrides) {
|
|
29
29
|
return {
|
|
30
30
|
execute,
|
|
31
31
|
groupPriority,
|
|
32
|
-
icon
|
|
32
|
+
icon,
|
|
33
33
|
id: itemId,
|
|
34
34
|
itemPriority,
|
|
35
35
|
label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackstageItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageItemUtilities.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;
|
|
1
|
+
{"version":3,"file":"BackstageItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageItemUtilities.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAKH;;GAEG;AACH,MAAM,KAAW,sBAAsB,CA4BtC;AA5BD,WAAiB,sBAAsB;IACrC,+CAA+C;IAC/C,SAAgB,mBAAmB,CAAC,YAAoB,EAAE,aAAqB,EAAE,YAAoB,EAAE,KAAa,EAAE,QAAiB,EAAE,IAAe,EAAE,SAA2C;QACnM,OAAO;YACL,aAAa;YACb,IAAI;YACJ,EAAE,EAAE,YAAY;YAChB,YAAY;YACZ,KAAK;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;YACR,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAXe,0CAAmB,sBAWlC,CAAA;IAED,wCAAwC;IACxC,SAAgB,gBAAgB,CAAC,MAAc,EAAE,aAAqB,EAAE,YAAoB,EAAE,OAAmB,EAAE,KAAa,EAAE,QAAiB,EAAE,IAAe,EAAE,SAAwC;QAC5M,OAAO;YACL,OAAO;YACP,aAAa;YACb,IAAI;YACJ,EAAE,EAAE,MAAM;YACV,YAAY;YACZ,KAAK;YACL,QAAQ;YACR,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAXe,uCAAgB,mBAW/B,CAAA;AACH,CAAC,EA5BgB,sBAAsB,KAAtB,sBAAsB,QA4BtC","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 { IconSpec } from \"@itwin/core-react\";\r\nimport { BackstageActionItem, BackstageStageLauncher } from \"./BackstageItem\";\r\n\r\n/** Utilities for creating and maintaining backstage items\r\n * @beta\r\n */\r\nexport namespace BackstageItemUtilities {\r\n /** Creates a stage launcher backstage item. */\r\n export function createStageLauncher(frontstageId: string, groupPriority: number, itemPriority: number, label: string, subtitle?: string, icon?: IconSpec, overrides?: Partial<BackstageStageLauncher>): BackstageStageLauncher {\r\n return {\r\n groupPriority,\r\n icon,\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\r\n /** Creates an action backstage item. */\r\n export function createActionItem(itemId: string, groupPriority: number, itemPriority: number, execute: () => void, label: string, subtitle?: string, icon?: IconSpec, overrides?: Partial<BackstageActionItem>): BackstageActionItem {\r\n return {\r\n execute,\r\n groupPriority,\r\n icon,\r\n id: itemId,\r\n itemPriority,\r\n label,\r\n subtitle,\r\n ...overrides,\r\n };\r\n }\r\n}\r\n"]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { ConditionalStringValue } from "@itwin/appui-abstract";
|
|
6
|
+
import { IconSpec } from "@itwin/core-react";
|
|
6
7
|
import { StatusBarActionItem, StatusBarCustomItem, StatusBarLabelItem, StatusBarLabelSide, StatusBarSection } from "./StatusBarItem";
|
|
7
8
|
/** Utility functions for creating and maintaining StatusBar items.
|
|
8
9
|
* @public
|
|
@@ -11,11 +12,11 @@ export declare namespace StatusBarItemUtilities {
|
|
|
11
12
|
/** Creates a StatusBar item to perform an action.
|
|
12
13
|
* @beta
|
|
13
14
|
*/
|
|
14
|
-
function createActionItem(id: string, section: StatusBarSection, itemPriority: number, icon:
|
|
15
|
+
function createActionItem(id: string, section: StatusBarSection, itemPriority: number, icon: IconSpec, tooltip: string | ConditionalStringValue, execute: () => void, overrides?: Partial<StatusBarActionItem>): StatusBarActionItem;
|
|
15
16
|
/** Creates a StatusBar item to display a label.
|
|
16
17
|
* @beta
|
|
17
18
|
*/
|
|
18
|
-
function createLabelItem(id: string, section: StatusBarSection, itemPriority: number, icon:
|
|
19
|
+
function createLabelItem(id: string, section: StatusBarSection, itemPriority: number, icon: IconSpec, label: string | ConditionalStringValue, labelSide?: StatusBarLabelSide, overrides?: Partial<StatusBarLabelItem>): StatusBarLabelItem;
|
|
19
20
|
/** Creates a StatusBar item to display a custom content.
|
|
20
21
|
* @beta
|
|
21
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAErI;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"StatusBarItemUtilities.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAErI;;GAEG;AACH,yBAAiB,sBAAsB,CAAC;IACtC;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAU1O;IAED;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,sBAAsB,EAAE,SAAS,qBAA2B,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAUtP;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAQrL;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBarItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;
|
|
1
|
+
{"version":3,"file":"StatusBarItemUtilities.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBarItemUtilities.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAKH,OAAO,EAAgE,kBAAkB,EAAoB,MAAM,iBAAiB,CAAC;AAErI;;GAEG;AACH,MAAM,KAAW,sBAAsB,CA2CtC;AA3CD,WAAiB,sBAAsB;IACrC;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,IAAc,EAAE,OAAwC,EAAE,OAAmB,EAAE,SAAwC;QACnN,OAAO;YACL,EAAE;YACF,OAAO;YACP,YAAY;YACZ,IAAI;YACJ,OAAO;YACP,OAAO;YACP,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAVe,uCAAgB,mBAU/B,CAAA;IAED;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,IAAc,EAAE,KAAsC,EAAE,SAAS,GAAG,kBAAkB,CAAC,KAAK,EAAE,SAAuC;QAChO,OAAO;YACL,EAAE;YACF,OAAO;YACP,YAAY;YACZ,IAAI;YACJ,KAAK;YACL,SAAS;YACT,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAVe,sCAAe,kBAU9B,CAAA;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,EAAU,EAAE,OAAyB,EAAE,YAAoB,EAAE,OAAwB,EAAE,SAAwC;QAC9J,OAAO;YACL,EAAE;YACF,OAAO;YACP,YAAY;YACZ,OAAO;YACP,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IARe,uCAAgB,mBAQ/B,CAAA;AACH,CAAC,EA3CgB,sBAAsB,KAAtB,sBAAsB,QA2CtC","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 * as React from \"react\";\r\nimport { ConditionalStringValue } from \"@itwin/appui-abstract\";\r\nimport { IconSpec } from \"@itwin/core-react\";\r\nimport { StatusBarActionItem, StatusBarCustomItem, StatusBarLabelItem, StatusBarLabelSide, StatusBarSection } from \"./StatusBarItem\";\r\n\r\n/** Utility functions for creating and maintaining StatusBar items.\r\n * @public\r\n */\r\nexport namespace StatusBarItemUtilities {\r\n /** Creates a StatusBar item to perform an action.\r\n * @beta\r\n */\r\n export function createActionItem(id: string, section: StatusBarSection, itemPriority: number, icon: IconSpec, tooltip: string | ConditionalStringValue, execute: () => void, overrides?: Partial<StatusBarActionItem>): StatusBarActionItem {\r\n return {\r\n id,\r\n section,\r\n itemPriority,\r\n icon,\r\n tooltip,\r\n execute,\r\n ...overrides,\r\n };\r\n }\r\n\r\n /** Creates a StatusBar item to display a label.\r\n * @beta\r\n */\r\n export function createLabelItem(id: string, section: StatusBarSection, itemPriority: number, icon: IconSpec, label: string | ConditionalStringValue, labelSide = StatusBarLabelSide.Right, overrides?: Partial<StatusBarLabelItem>): StatusBarLabelItem {\r\n return {\r\n id,\r\n section,\r\n itemPriority,\r\n icon,\r\n label,\r\n labelSide,\r\n ...overrides,\r\n };\r\n }\r\n\r\n /** Creates a StatusBar item to display a custom content.\r\n * @beta\r\n */\r\n export function createCustomItem(id: string, section: StatusBarSection, itemPriority: number, content: React.ReactNode, overrides?: Partial<StatusBarCustomItem>): StatusBarCustomItem {\r\n return {\r\n id,\r\n section,\r\n itemPriority,\r\n content,\r\n ...overrides,\r\n };\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncUiEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAqB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAa,gBAAgB,EAAkD,MAAM,sBAAsB,CAAC;AAUnH;;GAEG;AACH,oBAAY,aAAa;IACvB,yCAAyC;IACzC,0BAA0B,+BAA+B;IACzD,qCAAqC;IACrC,uBAAuB,4BAA4B;IACnD,8EAA8E;IAC9E,oBAAoB,yBAAyB;IAC7C,iEAAiE;IACjE,qBAAqB,0BAA0B;IAC/C,kCAAkC;IAClC,cAAc,mBAAmB;IACjC,4CAA4C;IAC5C,sBAAsB,2BAA2B;IACjD,kFAAkF;IAClF,uBAAuB,4BAA4B;IACnD,kCAAkC;IAClC,oBAAoB,yBAAyB;IAC7C,yEAAyE;IACzE,eAAe,oBAAoB;IACnC,oDAAoD;IACpD,sBAAsB,2BAA2B;IACjD,gDAAgD;IAChD,kBAAkB,uBAAuB;IACzC,0CAA0C;IAC1C,sBAAsB,2BAA2B;IACjD,+DAA+D;IAC/D,aAAa,kBAAkB;IAC/B,yCAAyC;IACzC,kBAAkB,uBAAuB;IACzC,oEAAoE;IACpE,mBAAmB,wBAAwB;IAC3C,kFAAkF;IAClF,wBAAwB,6BAA6B;IACrD,mFAAmF;IACnF,gBAAgB,qBAAqB;IACrC,mEAAmE;IACnE,qBAAqB,0BAA0B;IAC/C,4BAA4B,6BAA6B;IACzD,6DAA6D;IAC7D,uBAAuB,4BAA4B;CACpD;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA2B;IAC5D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAa;IACpD,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAyB;IAEhE,wCAAwC;WAE1B,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpD,+DAA+D;IAC/D,WAAkB,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAE5C;IAED,oEAAoE;IACpE,WAAkB,aAAa,IAAI,WAAW,CAE7C;IAED,iDAAiD;WACnC,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjE,0CAA0C;WAC5B,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQxD,oDAAoD;WACtC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ5D,kFAAkF;WACpE,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAK/E,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAKlC,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAI9C,gFAAgF;WAClE,UAAU;IAwExB,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAItC,qFAAqF;WACvE,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB;IAKtE,0FAA0F;WAC5E,0BAA0B,CAAC,gBAAgB,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"SyncUiEventDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAqB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAa,gBAAgB,EAAkD,MAAM,sBAAsB,CAAC;AAUnH;;GAEG;AACH,oBAAY,aAAa;IACvB,yCAAyC;IACzC,0BAA0B,+BAA+B;IACzD,qCAAqC;IACrC,uBAAuB,4BAA4B;IACnD,8EAA8E;IAC9E,oBAAoB,yBAAyB;IAC7C,iEAAiE;IACjE,qBAAqB,0BAA0B;IAC/C,kCAAkC;IAClC,cAAc,mBAAmB;IACjC,4CAA4C;IAC5C,sBAAsB,2BAA2B;IACjD,kFAAkF;IAClF,uBAAuB,4BAA4B;IACnD,kCAAkC;IAClC,oBAAoB,yBAAyB;IAC7C,yEAAyE;IACzE,eAAe,oBAAoB;IACnC,oDAAoD;IACpD,sBAAsB,2BAA2B;IACjD,gDAAgD;IAChD,kBAAkB,uBAAuB;IACzC,0CAA0C;IAC1C,sBAAsB,2BAA2B;IACjD,+DAA+D;IAC/D,aAAa,kBAAkB;IAC/B,yCAAyC;IACzC,kBAAkB,uBAAuB;IACzC,oEAAoE;IACpE,mBAAmB,wBAAwB;IAC3C,kFAAkF;IAClF,wBAAwB,6BAA6B;IACrD,mFAAmF;IACnF,gBAAgB,qBAAqB;IACrC,mEAAmE;IACnE,qBAAqB,0BAA0B;IAC/C,4BAA4B,6BAA6B;IACzD,6DAA6D;IAC7D,uBAAuB,4BAA4B;CACpD;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA2B;IAC5D,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAa;IACpD,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAyB;IAEhE,wCAAwC;WAE1B,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpD,+DAA+D;IAC/D,WAAkB,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAE5C;IAED,oEAAoE;IACpE,WAAkB,aAAa,IAAI,WAAW,CAE7C;IAED,iDAAiD;WACnC,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjE,0CAA0C;WAC5B,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQxD,oDAAoD;WACtC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ5D,kFAAkF;WACpE,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;IAK/E,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAKlC,OAAO,CAAC,MAAM,CAAC,+BAA+B;IAI9C,gFAAgF;WAClE,UAAU;IAwExB,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAItC,qFAAqF;WACvE,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB;IAKtE,0FAA0F;WAC5E,0BAA0B,CAAC,gBAAgB,EAAE,gBAAgB;CAkB5E"}
|
|
@@ -190,6 +190,10 @@ class SyncUiEventDispatcher {
|
|
|
190
190
|
iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);
|
|
191
191
|
iModelConnection.selectionSet.onChanged.addListener(SyncUiEventDispatcher.selectionChangedHandler);
|
|
192
192
|
iModelConnection.iModelId && UiFramework.setActiveIModelId(iModelConnection.iModelId);
|
|
193
|
+
SyncUiEventDispatcher._unregisterListenerFunc = iModelConnection.selectionSet.onChanged.addListener((ev) => {
|
|
194
|
+
const numSelected = ev.set.elements.size;
|
|
195
|
+
UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, numSelected);
|
|
196
|
+
});
|
|
193
197
|
}
|
|
194
198
|
}
|
|
195
199
|
SyncUiEventDispatcher._uiEventDispatcher = new UiEventDispatcher();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncUiEventDispatcher.js","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.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 SyncUi\r\n */\r\n\r\nimport { UiEventDispatcher, UiSyncEvent } from \"@itwin/appui-abstract\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, SelectedViewportChangedArgs, SelectionSetEvent } from \"@itwin/core-frontend\";\r\nimport { SessionStateActionId } from \"../redux/SessionState\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n// cSpell:ignore activecontentchanged, activitymessageupdated, activitymessagecancelled, backstageevent, contentlayoutactivated, contentcontrolactivated,\r\n// cSpell:ignore elementtooltipchanged, frontstageactivated, inputfieldmessageadded, inputfieldmessageremoved, modalfrontstagechanged, modaldialogchanged\r\n// cSpell:ignore navigationaidactivated, notificationmessageadded, toolactivated, taskactivated, widgetstatechanged, workflowactivated frontstageactivating\r\n// cSpell:ignore frontstageready activeviewportchanged selectionsetchanged presentationselectionchanged viewstatechanged\r\n// cSpell:ignore accudrawcompassmodechanged accudrawfieldlockchanged accudrawrotationchanged uisettingschanged configurableui\r\n\r\n/** Event Id used to sync UI components. Used to refresh visibility or enable state of control.\r\n * @public\r\n */\r\nexport enum SyncUiEventId {\r\n /** AccuDraw compass mode has changed. */\r\n AccuDrawCompassModeChanged = \"accudrawcompassmodechanged\",\r\n /** AccuDraw rotation has changed. */\r\n AccuDrawRotationChanged = \"accudrawrotationchanged\",\r\n /** The active content as maintained by the ContentViewManager has changed. */\r\n ActiveContentChanged = \"activecontentchanged\",\r\n /** The active view maintained by the ViewManager has changed. */\r\n ActiveViewportChanged = \"activeviewportchanged\",\r\n /** Backstage has been toggled. */\r\n BackstageEvent = \"backstageevent\",\r\n /** A Content Layout has been activated. */\r\n ContentLayoutActivated = \"contentlayoutactivated\",\r\n /** A Content Control maintained by UiFramework.frontstages has been activated. */\r\n ContentControlActivated = \"contentcontrolactivated\",\r\n /** A Frontstage is activating. */\r\n FrontstageActivating = \"frontstageactivating\",\r\n /** A Frontstage has been activated and the content has been assigned. */\r\n FrontstageReady = \"frontstageready\",\r\n /** A Modal Frontstage has been opened or closed. */\r\n ModalFrontstageChanged = \"modalfrontstagechanged\",\r\n /** A Modal Dialog has been opened or closed. */\r\n ModalDialogChanged = \"modaldialogchanged\",\r\n /** A NavigationAid has been activated. */\r\n NavigationAidActivated = \"navigationaidactivated\",\r\n /** An InteractiveTool has been activated via the ToolAdmin. */\r\n ToolActivated = \"toolactivated\",\r\n /** The state of a Widget has changed. */\r\n WidgetStateChanged = \"widgetstatechanged\",\r\n /** The SelectionSet for the active IModelConnection has changed. */\r\n SelectionSetChanged = \"selectionsetchanged\",\r\n /** The list of settings providers registered with SettingsManager has changed. */\r\n SettingsProvidersChanged = \"settingsproviderschanged\",\r\n /** The current view state has changed (used by view undo/redo toolbar buttons). */\r\n ViewStateChanged = \"viewstatechanged\",\r\n /** The current object the reads and write UI State has changed. */\r\n UiStateStorageChanged = \"uistatestoragechanged\",\r\n ShowHideManagerSettingChange = \"show-hide-setting-change\",\r\n /** The list of feature overrides applied has been changed */\r\n FeatureOverridesChanged = \"featureoverrideschanged\",\r\n}\r\n\r\n/** This class is used to send eventIds to interested UI components so the component can determine if it needs\r\n * to refresh its display by calling setState on itself.\r\n * @public\r\n */\r\nexport class SyncUiEventDispatcher {\r\n private static _uiEventDispatcher = new UiEventDispatcher();\r\n private static _unregisterListenerFunc?: () => void;\r\n private static _unregisterListenerFuncs: Array<() => void> = [];\r\n\r\n /** @internal - used for testing only */\r\n /* istanbul ignore next */\r\n public static setTimeoutPeriod(period: number): void {\r\n SyncUiEventDispatcher._uiEventDispatcher.setTimeoutPeriod(period);\r\n }\r\n\r\n /** Return set of event ids that will be sent to listeners/. */\r\n public static get syncEventIds(): Set<string> {\r\n return SyncUiEventDispatcher._uiEventDispatcher.syncEventIds;\r\n }\r\n\r\n /** Return SyncUiEvent so callers can register an event callback. */\r\n public static get onSyncUiEvent(): UiSyncEvent {\r\n return SyncUiEventDispatcher._uiEventDispatcher.onSyncUiEvent;\r\n }\r\n\r\n /** Immediately trigger sync event processing. */\r\n public static dispatchImmediateSyncUiEvent(eventId: string): void {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchImmediateSyncUiEvent(eventId);\r\n }\r\n\r\n /** Save eventId in Set for processing. */\r\n public static dispatchSyncUiEvent(eventId: string): void {\r\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\r\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvent] not processed because timeoutPeriod=0`);\r\n return;\r\n }\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(eventId);\r\n }\r\n\r\n /** Save multiple eventIds in Set for processing. */\r\n public static dispatchSyncUiEvents(eventIds: string[]): void {\r\n // istanbul ignore if\r\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\r\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvents] not processed because _timeoutPeriod=0`);\r\n }\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvents(eventIds);\r\n }\r\n\r\n /** Checks to see if an eventId of interest is contained in the set of eventIds */\r\n public static hasEventOfInterest(eventIds: Set<string>, idsOfInterest: string[]) {\r\n return SyncUiEventDispatcher._uiEventDispatcher.hasEventOfInterest(eventIds, idsOfInterest);\r\n }\r\n\r\n // istanbul ignore next\r\n private static _dispatchViewChange() {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ViewStateChanged);\r\n }\r\n\r\n // istanbul ignore next\r\n private static _dispatchFeatureOverridesChange() {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FeatureOverridesChanged);\r\n }\r\n\r\n /** Initializes the Monitoring of Events that trigger dispatching sync events */\r\n public static initialize() {\r\n // clear any registered listeners - this should only be encountered in unit test scenarios\r\n this._unregisterListenerFuncs.forEach((unregisterListenerFunc) => unregisterListenerFunc());\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onContentControlActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentControlActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onContentLayoutActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentLayoutActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onFrontstageActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageActivating);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onFrontstageReadyEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageReady);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onModalFrontstageChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ModalFrontstageChanged);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onNavigationAidActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.NavigationAidActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onToolActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ToolActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onWidgetStateChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WidgetStateChanged);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.backstage.onToggled.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.BackstageEvent);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.content.onActiveContentChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveContentChanged);\r\n }));\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n this._unregisterListenerFuncs.push(IModelApp.viewManager.onSelectedViewportChanged.addListener((args: SelectedViewportChangedArgs) => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveViewportChanged);\r\n\r\n // if this is the first view being opened up start the default tool so tool admin is happy.\r\n if (undefined === args.previous) {\r\n IModelApp.toolAdmin.startDefaultTool();// eslint-disable-line @typescript-eslint/no-floating-promises\r\n } else {\r\n // istanbul ignore next\r\n if (args.previous.onViewChanged && typeof args.previous.onViewChanged.removeListener === \"function\") // not set during unit test\r\n args.previous.onViewChanged.removeListener(SyncUiEventDispatcher._dispatchViewChange);\r\n // istanbul ignore next\r\n if (args.previous.onFeatureOverridesChanged && typeof args.previous.onFeatureOverridesChanged.removeListener === \"function\") // not set during unit test\r\n args.previous.onFeatureOverridesChanged.removeListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);\r\n }\r\n // istanbul ignore next\r\n if (args.current) {\r\n if (args.current.onViewChanged && typeof args.current.onViewChanged.addListener === \"function\") // not set during unit test\r\n args.current.onViewChanged.addListener(SyncUiEventDispatcher._dispatchViewChange);\r\n // istanbul ignore next\r\n if (args.current.onFeatureOverridesChanged && typeof args.current.onFeatureOverridesChanged.addListener === \"function\") // not set during unit test\r\n args.current.onFeatureOverridesChanged.addListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);\r\n }\r\n }));\r\n }\r\n }\r\n\r\n private static selectionChangedHandler(_ev: SelectionSetEvent) {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SelectionSetChanged);\r\n }\r\n\r\n /** This should be called by IModelApp when the active IModelConnection is closed. */\r\n public static clearConnectionEvents(iModelConnection: IModelConnection) {\r\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n SyncUiEventDispatcher._unregisterListenerFunc && SyncUiEventDispatcher._unregisterListenerFunc();\r\n }\r\n\r\n /** This should be called by IModelApp when the active IModelConnection is established. */\r\n public static initializeConnectionEvents(iModelConnection: IModelConnection) {\r\n if (SyncUiEventDispatcher._unregisterListenerFunc)\r\n SyncUiEventDispatcher._unregisterListenerFunc();\r\n\r\n if (iModelConnection.isBlankConnection() || !iModelConnection.isOpen) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, 0);\r\n return;\r\n }\r\n\r\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n iModelConnection.selectionSet.onChanged.addListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n iModelConnection.iModelId && UiFramework.setActiveIModelId(iModelConnection.iModelId);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SyncUiEventDispatcher.js","sourceRoot":"","sources":["../../../../src/appui-react/syncui/SyncUiEventDispatcher.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 SyncUi\r\n */\r\n\r\nimport { UiEventDispatcher, UiSyncEvent } from \"@itwin/appui-abstract\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, SelectedViewportChangedArgs, SelectionSetEvent } from \"@itwin/core-frontend\";\r\nimport { SessionStateActionId } from \"../redux/SessionState\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n// cSpell:ignore activecontentchanged, activitymessageupdated, activitymessagecancelled, backstageevent, contentlayoutactivated, contentcontrolactivated,\r\n// cSpell:ignore elementtooltipchanged, frontstageactivated, inputfieldmessageadded, inputfieldmessageremoved, modalfrontstagechanged, modaldialogchanged\r\n// cSpell:ignore navigationaidactivated, notificationmessageadded, toolactivated, taskactivated, widgetstatechanged, workflowactivated frontstageactivating\r\n// cSpell:ignore frontstageready activeviewportchanged selectionsetchanged presentationselectionchanged viewstatechanged\r\n// cSpell:ignore accudrawcompassmodechanged accudrawfieldlockchanged accudrawrotationchanged uisettingschanged configurableui\r\n\r\n/** Event Id used to sync UI components. Used to refresh visibility or enable state of control.\r\n * @public\r\n */\r\nexport enum SyncUiEventId {\r\n /** AccuDraw compass mode has changed. */\r\n AccuDrawCompassModeChanged = \"accudrawcompassmodechanged\",\r\n /** AccuDraw rotation has changed. */\r\n AccuDrawRotationChanged = \"accudrawrotationchanged\",\r\n /** The active content as maintained by the ContentViewManager has changed. */\r\n ActiveContentChanged = \"activecontentchanged\",\r\n /** The active view maintained by the ViewManager has changed. */\r\n ActiveViewportChanged = \"activeviewportchanged\",\r\n /** Backstage has been toggled. */\r\n BackstageEvent = \"backstageevent\",\r\n /** A Content Layout has been activated. */\r\n ContentLayoutActivated = \"contentlayoutactivated\",\r\n /** A Content Control maintained by UiFramework.frontstages has been activated. */\r\n ContentControlActivated = \"contentcontrolactivated\",\r\n /** A Frontstage is activating. */\r\n FrontstageActivating = \"frontstageactivating\",\r\n /** A Frontstage has been activated and the content has been assigned. */\r\n FrontstageReady = \"frontstageready\",\r\n /** A Modal Frontstage has been opened or closed. */\r\n ModalFrontstageChanged = \"modalfrontstagechanged\",\r\n /** A Modal Dialog has been opened or closed. */\r\n ModalDialogChanged = \"modaldialogchanged\",\r\n /** A NavigationAid has been activated. */\r\n NavigationAidActivated = \"navigationaidactivated\",\r\n /** An InteractiveTool has been activated via the ToolAdmin. */\r\n ToolActivated = \"toolactivated\",\r\n /** The state of a Widget has changed. */\r\n WidgetStateChanged = \"widgetstatechanged\",\r\n /** The SelectionSet for the active IModelConnection has changed. */\r\n SelectionSetChanged = \"selectionsetchanged\",\r\n /** The list of settings providers registered with SettingsManager has changed. */\r\n SettingsProvidersChanged = \"settingsproviderschanged\",\r\n /** The current view state has changed (used by view undo/redo toolbar buttons). */\r\n ViewStateChanged = \"viewstatechanged\",\r\n /** The current object the reads and write UI State has changed. */\r\n UiStateStorageChanged = \"uistatestoragechanged\",\r\n ShowHideManagerSettingChange = \"show-hide-setting-change\",\r\n /** The list of feature overrides applied has been changed */\r\n FeatureOverridesChanged = \"featureoverrideschanged\",\r\n}\r\n\r\n/** This class is used to send eventIds to interested UI components so the component can determine if it needs\r\n * to refresh its display by calling setState on itself.\r\n * @public\r\n */\r\nexport class SyncUiEventDispatcher {\r\n private static _uiEventDispatcher = new UiEventDispatcher();\r\n private static _unregisterListenerFunc?: () => void;\r\n private static _unregisterListenerFuncs: Array<() => void> = [];\r\n\r\n /** @internal - used for testing only */\r\n /* istanbul ignore next */\r\n public static setTimeoutPeriod(period: number): void {\r\n SyncUiEventDispatcher._uiEventDispatcher.setTimeoutPeriod(period);\r\n }\r\n\r\n /** Return set of event ids that will be sent to listeners/. */\r\n public static get syncEventIds(): Set<string> {\r\n return SyncUiEventDispatcher._uiEventDispatcher.syncEventIds;\r\n }\r\n\r\n /** Return SyncUiEvent so callers can register an event callback. */\r\n public static get onSyncUiEvent(): UiSyncEvent {\r\n return SyncUiEventDispatcher._uiEventDispatcher.onSyncUiEvent;\r\n }\r\n\r\n /** Immediately trigger sync event processing. */\r\n public static dispatchImmediateSyncUiEvent(eventId: string): void {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchImmediateSyncUiEvent(eventId);\r\n }\r\n\r\n /** Save eventId in Set for processing. */\r\n public static dispatchSyncUiEvent(eventId: string): void {\r\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\r\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvent] not processed because timeoutPeriod=0`);\r\n return;\r\n }\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(eventId);\r\n }\r\n\r\n /** Save multiple eventIds in Set for processing. */\r\n public static dispatchSyncUiEvents(eventIds: string[]): void {\r\n // istanbul ignore if\r\n if (0 === SyncUiEventDispatcher._uiEventDispatcher.timeoutPeriod) {\r\n Logger.logInfo(UiFramework.loggerCategory(this), `[dispatchSyncUiEvents] not processed because _timeoutPeriod=0`);\r\n }\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvents(eventIds);\r\n }\r\n\r\n /** Checks to see if an eventId of interest is contained in the set of eventIds */\r\n public static hasEventOfInterest(eventIds: Set<string>, idsOfInterest: string[]) {\r\n return SyncUiEventDispatcher._uiEventDispatcher.hasEventOfInterest(eventIds, idsOfInterest);\r\n }\r\n\r\n // istanbul ignore next\r\n private static _dispatchViewChange() {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ViewStateChanged);\r\n }\r\n\r\n // istanbul ignore next\r\n private static _dispatchFeatureOverridesChange() {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FeatureOverridesChanged);\r\n }\r\n\r\n /** Initializes the Monitoring of Events that trigger dispatching sync events */\r\n public static initialize() {\r\n // clear any registered listeners - this should only be encountered in unit test scenarios\r\n this._unregisterListenerFuncs.forEach((unregisterListenerFunc) => unregisterListenerFunc());\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onContentControlActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentControlActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onContentLayoutActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ContentLayoutActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onFrontstageActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageActivating);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onFrontstageReadyEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.FrontstageReady);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onModalFrontstageChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ModalFrontstageChanged);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onNavigationAidActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.NavigationAidActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onToolActivatedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ToolActivated);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.frontstages.onWidgetStateChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.WidgetStateChanged);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.backstage.onToggled.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.BackstageEvent);\r\n }));\r\n\r\n this._unregisterListenerFuncs.push(UiFramework.content.onActiveContentChangedEvent.addListener(() => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveContentChanged);\r\n }));\r\n\r\n // istanbul ignore else\r\n if (IModelApp && IModelApp.viewManager) {\r\n this._unregisterListenerFuncs.push(IModelApp.viewManager.onSelectedViewportChanged.addListener((args: SelectedViewportChangedArgs) => {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.ActiveViewportChanged);\r\n\r\n // if this is the first view being opened up start the default tool so tool admin is happy.\r\n if (undefined === args.previous) {\r\n IModelApp.toolAdmin.startDefaultTool();// eslint-disable-line @typescript-eslint/no-floating-promises\r\n } else {\r\n // istanbul ignore next\r\n if (args.previous.onViewChanged && typeof args.previous.onViewChanged.removeListener === \"function\") // not set during unit test\r\n args.previous.onViewChanged.removeListener(SyncUiEventDispatcher._dispatchViewChange);\r\n // istanbul ignore next\r\n if (args.previous.onFeatureOverridesChanged && typeof args.previous.onFeatureOverridesChanged.removeListener === \"function\") // not set during unit test\r\n args.previous.onFeatureOverridesChanged.removeListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);\r\n }\r\n // istanbul ignore next\r\n if (args.current) {\r\n if (args.current.onViewChanged && typeof args.current.onViewChanged.addListener === \"function\") // not set during unit test\r\n args.current.onViewChanged.addListener(SyncUiEventDispatcher._dispatchViewChange);\r\n // istanbul ignore next\r\n if (args.current.onFeatureOverridesChanged && typeof args.current.onFeatureOverridesChanged.addListener === \"function\") // not set during unit test\r\n args.current.onFeatureOverridesChanged.addListener(SyncUiEventDispatcher._dispatchFeatureOverridesChange);\r\n }\r\n }));\r\n }\r\n }\r\n\r\n private static selectionChangedHandler(_ev: SelectionSetEvent) {\r\n SyncUiEventDispatcher._uiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SelectionSetChanged);\r\n }\r\n\r\n /** This should be called by IModelApp when the active IModelConnection is closed. */\r\n public static clearConnectionEvents(iModelConnection: IModelConnection) {\r\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n SyncUiEventDispatcher._unregisterListenerFunc && SyncUiEventDispatcher._unregisterListenerFunc();\r\n }\r\n\r\n /** This should be called by IModelApp when the active IModelConnection is established. */\r\n public static initializeConnectionEvents(iModelConnection: IModelConnection) {\r\n if (SyncUiEventDispatcher._unregisterListenerFunc)\r\n SyncUiEventDispatcher._unregisterListenerFunc();\r\n\r\n if (iModelConnection.isBlankConnection() || !iModelConnection.isOpen) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, 0);\r\n return;\r\n }\r\n\r\n iModelConnection.selectionSet.onChanged.removeListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n iModelConnection.selectionSet.onChanged.addListener(SyncUiEventDispatcher.selectionChangedHandler);\r\n iModelConnection.iModelId && UiFramework.setActiveIModelId(iModelConnection.iModelId);\r\n\r\n SyncUiEventDispatcher._unregisterListenerFunc = iModelConnection.selectionSet.onChanged.addListener((ev) => {\r\n const numSelected = ev.set.elements.size;\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetNumItemsSelected, numSelected);\r\n });\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/appui-react",
|
|
3
|
-
"version": "4.0.0-dev.
|
|
3
|
+
"version": "4.0.0-dev.19",
|
|
4
4
|
"description": "UI framework",
|
|
5
5
|
"main": "lib/cjs/appui-react.js",
|
|
6
6
|
"module": "lib/esm/appui-react.js",
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@itwin/appui-abstract": ">=3.7.0",
|
|
26
|
-
"@itwin/appui-layout-react": "^4.0.0-dev.
|
|
27
|
-
"@itwin/components-react": "^4.0.0-dev.
|
|
26
|
+
"@itwin/appui-layout-react": "^4.0.0-dev.19",
|
|
27
|
+
"@itwin/components-react": "^4.0.0-dev.19",
|
|
28
28
|
"@itwin/core-bentley": ">=3.7.0",
|
|
29
29
|
"@itwin/core-common": ">=3.7.0",
|
|
30
30
|
"@itwin/core-frontend": ">=3.7.0",
|
|
31
31
|
"@itwin/core-geometry": ">=3.7.0",
|
|
32
32
|
"@itwin/core-quantity": ">=3.7.0",
|
|
33
|
-
"@itwin/core-react": "^4.0.0-dev.
|
|
33
|
+
"@itwin/core-react": "^4.0.0-dev.19",
|
|
34
34
|
"@itwin/core-telemetry": ">=3.7.0",
|
|
35
|
-
"@itwin/imodel-components-react": "^4.0.0-dev.
|
|
35
|
+
"@itwin/imodel-components-react": "^4.0.0-dev.19",
|
|
36
36
|
"react": "^17.0.0 || ^18.0.0",
|
|
37
37
|
"react-dom": "^17.0.0 || ^18.0.0",
|
|
38
38
|
"react-redux": "^7.2.2",
|
|
@@ -44,20 +44,20 @@
|
|
|
44
44
|
],
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@itwin/appui-abstract": "^3.7.0",
|
|
47
|
-
"@itwin/appui-layout-react": "4.0.0-dev.
|
|
47
|
+
"@itwin/appui-layout-react": "4.0.0-dev.19",
|
|
48
48
|
"@itwin/build-tools": "^3.7.0",
|
|
49
|
-
"@itwin/components-react": "4.0.0-dev.
|
|
49
|
+
"@itwin/components-react": "4.0.0-dev.19",
|
|
50
50
|
"@itwin/core-bentley": "^3.7.0",
|
|
51
51
|
"@itwin/core-common": "^3.7.0",
|
|
52
52
|
"@itwin/core-frontend": "^3.7.0",
|
|
53
53
|
"@itwin/core-geometry": "^3.7.0",
|
|
54
54
|
"@itwin/core-orbitgt": "^3.7.0",
|
|
55
55
|
"@itwin/core-quantity": "^3.7.0",
|
|
56
|
-
"@itwin/core-react": "4.0.0-dev.
|
|
56
|
+
"@itwin/core-react": "4.0.0-dev.19",
|
|
57
57
|
"@itwin/core-telemetry": "^3.7.0",
|
|
58
58
|
"@itwin/ecschema-metadata": "^3.7.0",
|
|
59
59
|
"@itwin/eslint-plugin": "^3.7.0",
|
|
60
|
-
"@itwin/imodel-components-react": "4.0.0-dev.
|
|
60
|
+
"@itwin/imodel-components-react": "4.0.0-dev.19",
|
|
61
61
|
"@itwin/webgl-compatibility": "^3.7.0",
|
|
62
62
|
"@testing-library/dom": "^8.11.2",
|
|
63
63
|
"@testing-library/react": "^12.0.0",
|