@itwin/appui-react 4.2.1 → 4.3.0
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/CHANGELOG.md +12 -4
- package/lib/cjs/appui-react/UiFramework.d.ts +0 -7
- package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/cjs/appui-react/UiFramework.js +0 -22
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/_variables.scss +3 -3
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +3 -3
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +3 -3
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -2
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.scss +3 -3
- package/lib/cjs/appui-react/configurableui/configurableui.scss +3 -3
- package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +3 -3
- package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +3 -3
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +25 -5
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +3 -3
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +3 -3
- package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +3 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.scss +3 -3
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +0 -53
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +3 -3
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +3 -3
- package/lib/cjs/appui-react/statusbar/Separator.scss +3 -3
- package/lib/cjs/appui-react/statusfields/SectionsField.scss +3 -3
- package/lib/cjs/appui-react/statusfields/SelectionCount.scss +3 -3
- package/lib/cjs/appui-react/statusfields/SelectionScope.scss +3 -3
- package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +3 -3
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +3 -3
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -3
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +3 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +93 -77
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.scss +3 -3
- package/lib/cjs/appui-react/widget-panels/Tab.scss +3 -3
- package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js +23 -29
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +3 -3
- package/lib/cjs/appui-react/widget-panels/Toolbars.scss +3 -3
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +12 -11
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.d.ts +0 -7
- package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +0 -22
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/_variables.scss +3 -3
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +3 -3
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +3 -3
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -2
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.scss +3 -3
- package/lib/esm/appui-react/configurableui/configurableui.scss +3 -3
- package/lib/esm/appui-react/content/DefaultViewOverlay.scss +3 -3
- package/lib/esm/appui-react/feedback/ValidationTextbox.scss +3 -3
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +25 -5
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +3 -3
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +3 -3
- package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +3 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.scss +3 -3
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +0 -53
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +3 -3
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +3 -3
- package/lib/esm/appui-react/statusbar/Separator.scss +3 -3
- package/lib/esm/appui-react/statusfields/SectionsField.scss +3 -3
- package/lib/esm/appui-react/statusfields/SelectionCount.scss +3 -3
- package/lib/esm/appui-react/statusfields/SelectionScope.scss +3 -3
- package/lib/esm/appui-react/statusfields/ViewAttributes.scss +3 -3
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +3 -3
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -3
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +3 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +90 -74
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.scss +3 -3
- package/lib/esm/appui-react/widget-panels/Tab.scss +3 -3
- package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.js +23 -29
- package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.scss +3 -3
- package/lib/esm/appui-react/widget-panels/Toolbars.scss +3 -3
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +12 -11
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/public/locales/en/UiFramework.json +3 -1
- package/package.json +12 -12
|
@@ -9,7 +9,6 @@ import { BeEvent } from "@itwin/core-bentley";
|
|
|
9
9
|
import { FeatureAppearance } from "@itwin/core-common";
|
|
10
10
|
import { EmphasizeElements, IModelApp } from "@itwin/core-frontend";
|
|
11
11
|
import { SyncUiEventDispatcher } from "../syncui/SyncUiEventDispatcher";
|
|
12
|
-
import { UiFramework } from "../UiFramework";
|
|
13
12
|
/** Supported Hide, Isolate, and Emphasize Actions. These also serve as FeatureTracking Ids.
|
|
14
13
|
* @public
|
|
15
14
|
*/
|
|
@@ -26,48 +25,6 @@ export var HideIsolateEmphasizeAction;
|
|
|
26
25
|
HideIsolateEmphasizeAction["ClearOverrideModels"] = "ClearOverrideModels";
|
|
27
26
|
HideIsolateEmphasizeAction["ClearOverrideCategories"] = "ClearOverrideCategories";
|
|
28
27
|
})(HideIsolateEmphasizeAction || (HideIsolateEmphasizeAction = {}));
|
|
29
|
-
const featureIdMap = new Map([
|
|
30
|
-
[
|
|
31
|
-
HideIsolateEmphasizeAction.EmphasizeSelectedElements,
|
|
32
|
-
"d74eb93f-deae-4700-8da6-1013a8a7aa26",
|
|
33
|
-
],
|
|
34
|
-
[
|
|
35
|
-
HideIsolateEmphasizeAction.IsolateSelectedElements,
|
|
36
|
-
"24327638-1611-45fa-a379-fa73329098ec",
|
|
37
|
-
],
|
|
38
|
-
[
|
|
39
|
-
HideIsolateEmphasizeAction.IsolateSelectedCategories,
|
|
40
|
-
"e58081ab-2c33-4a15-924f-71082b58ca3b",
|
|
41
|
-
],
|
|
42
|
-
[
|
|
43
|
-
HideIsolateEmphasizeAction.IsolateSelectedModels,
|
|
44
|
-
"3475921e-7dd1-4547-993e-a3e284ef8b62",
|
|
45
|
-
],
|
|
46
|
-
[
|
|
47
|
-
HideIsolateEmphasizeAction.HideSelectedElements,
|
|
48
|
-
"2ca673ec-001a-4890-bc25-18bc88358fe0",
|
|
49
|
-
],
|
|
50
|
-
[
|
|
51
|
-
HideIsolateEmphasizeAction.HideSelectedModels,
|
|
52
|
-
"8b41e859-ae17-4e19-b220-87a5cf9f8242",
|
|
53
|
-
],
|
|
54
|
-
[
|
|
55
|
-
HideIsolateEmphasizeAction.HideSelectedCategories,
|
|
56
|
-
"c5d6916b-e8d7-4796-bae9-a5303712d46b",
|
|
57
|
-
],
|
|
58
|
-
[
|
|
59
|
-
HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized,
|
|
60
|
-
"7b135c8a-3f3c-4297-b36c-b0ac51f1d8de",
|
|
61
|
-
],
|
|
62
|
-
[
|
|
63
|
-
HideIsolateEmphasizeAction.ClearOverrideModels,
|
|
64
|
-
"6e519b94-edab-4b13-9ce7-0bcdfa27ccfe",
|
|
65
|
-
],
|
|
66
|
-
[
|
|
67
|
-
HideIsolateEmphasizeAction.ClearOverrideCategories,
|
|
68
|
-
"9d2be3c6-6992-4c30-84eb-10f6b9379d06",
|
|
69
|
-
],
|
|
70
|
-
]);
|
|
71
28
|
/** Overrides given models to provide emphasize functionality
|
|
72
29
|
* @public
|
|
73
30
|
*/
|
|
@@ -412,7 +369,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
|
|
|
412
369
|
viewport: vp,
|
|
413
370
|
action: HideIsolateEmphasizeAction.IsolateSelectedModels,
|
|
414
371
|
});
|
|
415
|
-
void UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedModels));
|
|
416
372
|
SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
|
|
417
373
|
}
|
|
418
374
|
/**
|
|
@@ -427,7 +383,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
|
|
|
427
383
|
viewport: vp,
|
|
428
384
|
action: HideIsolateEmphasizeAction.IsolateSelectedCategories,
|
|
429
385
|
});
|
|
430
|
-
void UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedCategories));
|
|
431
386
|
SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
|
|
432
387
|
}
|
|
433
388
|
/**
|
|
@@ -442,7 +397,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
|
|
|
442
397
|
viewport: vp,
|
|
443
398
|
action: HideIsolateEmphasizeAction.IsolateSelectedElements,
|
|
444
399
|
});
|
|
445
|
-
void UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedElements));
|
|
446
400
|
SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
|
|
447
401
|
// clear out selection now that any callbacks have processed
|
|
448
402
|
const selection = vp.view.iModel.selectionSet;
|
|
@@ -461,7 +415,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
|
|
|
461
415
|
viewport: vp,
|
|
462
416
|
action: HideIsolateEmphasizeAction.HideSelectedModels,
|
|
463
417
|
});
|
|
464
|
-
void UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedModels));
|
|
465
418
|
SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
|
|
466
419
|
}
|
|
467
420
|
/**
|
|
@@ -476,7 +429,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
|
|
|
476
429
|
viewport: vp,
|
|
477
430
|
action: HideIsolateEmphasizeAction.HideSelectedCategories,
|
|
478
431
|
});
|
|
479
|
-
void UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedCategories));
|
|
480
432
|
SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
|
|
481
433
|
}
|
|
482
434
|
/**
|
|
@@ -491,7 +443,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
|
|
|
491
443
|
viewport: vp,
|
|
492
444
|
action: HideIsolateEmphasizeAction.HideSelectedElements,
|
|
493
445
|
});
|
|
494
|
-
void UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedElements));
|
|
495
446
|
SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
|
|
496
447
|
// clear out selection now that any callbacks have processed
|
|
497
448
|
const selection = vp.view.iModel.selectionSet;
|
|
@@ -510,7 +461,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
|
|
|
510
461
|
viewport: vp,
|
|
511
462
|
action: HideIsolateEmphasizeAction.EmphasizeSelectedElements,
|
|
512
463
|
});
|
|
513
|
-
void UiFramework.postTelemetry(HideIsolateEmphasizeAction.EmphasizeSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.EmphasizeSelectedElements));
|
|
514
464
|
SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
|
|
515
465
|
// clear out selection now that any callbacks have processed
|
|
516
466
|
const selection = vp.view.iModel.selectionSet;
|
|
@@ -529,7 +479,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
|
|
|
529
479
|
viewport: vp,
|
|
530
480
|
action: HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized,
|
|
531
481
|
});
|
|
532
|
-
void UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized, featureIdMap.get(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized));
|
|
533
482
|
SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
|
|
534
483
|
}
|
|
535
484
|
/**
|
|
@@ -544,7 +493,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
|
|
|
544
493
|
viewport: vp,
|
|
545
494
|
action: HideIsolateEmphasizeAction.ClearOverrideModels,
|
|
546
495
|
});
|
|
547
|
-
void UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideModels, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideModels));
|
|
548
496
|
SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
|
|
549
497
|
}
|
|
550
498
|
/**
|
|
@@ -559,7 +507,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
|
|
|
559
507
|
viewport: vp,
|
|
560
508
|
action: HideIsolateEmphasizeAction.ClearOverrideCategories,
|
|
561
509
|
});
|
|
562
|
-
void UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideCategories, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideCategories));
|
|
563
510
|
SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
|
|
564
511
|
}
|
|
565
512
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HideIsolateEmphasizeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/HideIsolateEmphasizeManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport type { GuidString } from \"@itwin/core-bentley\";\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport type { GeometricElementProps } from \"@itwin/core-common\";\nimport { FeatureAppearance } from \"@itwin/core-common\";\nimport type {\n FeatureOverrideProvider,\n FeatureSymbology,\n IModelConnection,\n ScreenViewport,\n Viewport,\n} from \"@itwin/core-frontend\";\nimport { EmphasizeElements, IModelApp } from \"@itwin/core-frontend\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Supported Hide, Isolate, and Emphasize Actions. These also serve as FeatureTracking Ids.\n * @public\n */\nexport enum HideIsolateEmphasizeAction {\n EmphasizeSelectedElements = \"EmphasizeSelectedElements\",\n IsolateSelectedElements = \"IsolateSelectedElements\",\n IsolateSelectedCategories = \"IsolateSelectedCategories\",\n IsolateSelectedModels = \"IsolateSelectedModels\",\n HideSelectedElements = \"HideSelectedElements\",\n HideSelectedModels = \"HideSelectedModels\",\n HideSelectedCategories = \"HideSelectedCategories\",\n ClearHiddenIsolatedEmphasized = \"ClearHiddenIsolatedEmphasized\",\n ClearOverrideModels = \"ClearOverrideModels\",\n ClearOverrideCategories = \"ClearOverrideCategories\",\n}\n\nconst featureIdMap = new Map<HideIsolateEmphasizeAction, GuidString>([\n [\n HideIsolateEmphasizeAction.EmphasizeSelectedElements,\n \"d74eb93f-deae-4700-8da6-1013a8a7aa26\",\n ],\n [\n HideIsolateEmphasizeAction.IsolateSelectedElements,\n \"24327638-1611-45fa-a379-fa73329098ec\",\n ],\n [\n HideIsolateEmphasizeAction.IsolateSelectedCategories,\n \"e58081ab-2c33-4a15-924f-71082b58ca3b\",\n ],\n [\n HideIsolateEmphasizeAction.IsolateSelectedModels,\n \"3475921e-7dd1-4547-993e-a3e284ef8b62\",\n ],\n [\n HideIsolateEmphasizeAction.HideSelectedElements,\n \"2ca673ec-001a-4890-bc25-18bc88358fe0\",\n ],\n [\n HideIsolateEmphasizeAction.HideSelectedModels,\n \"8b41e859-ae17-4e19-b220-87a5cf9f8242\",\n ],\n [\n HideIsolateEmphasizeAction.HideSelectedCategories,\n \"c5d6916b-e8d7-4796-bae9-a5303712d46b\",\n ],\n [\n HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized,\n \"7b135c8a-3f3c-4297-b36c-b0ac51f1d8de\",\n ],\n [\n HideIsolateEmphasizeAction.ClearOverrideModels,\n \"6e519b94-edab-4b13-9ce7-0bcdfa27ccfe\",\n ],\n [\n HideIsolateEmphasizeAction.ClearOverrideCategories,\n \"9d2be3c6-6992-4c30-84eb-10f6b9379d06\",\n ],\n]);\n\n/** Selection Context Action Event Argument\n * @public\n */\nexport interface EmphasizeElementsChangedArgs {\n /** viewport where action was performed */\n readonly viewport: ScreenViewport;\n /** action being performed */\n readonly action: HideIsolateEmphasizeAction;\n}\n\n/** Overrides given models to provide emphasize functionality\n * @public\n */\n// istanbul ignore next\nclass ModelOverrideProvider implements FeatureOverrideProvider {\n constructor(\n public modelIds: string[],\n public defaultAppearance: FeatureAppearance\n ) {}\n\n public addFeatureOverrides(\n overrides: FeatureSymbology.Overrides,\n _viewport: Viewport\n ): void {\n overrides.setDefaultOverrides(this.defaultAppearance, true);\n // Override with nothing so that we keep the model looking normal and override the default appearance of everything else\n const appearance = FeatureAppearance.fromJSON({});\n this.modelIds.forEach((modelId: string) => {\n overrides.override({ modelId, appearance, onConflict: \"replace\" });\n });\n }\n}\n\n/** Overrides given categories to provide emphasize functionality\n * @public\n */\n// istanbul ignore next\nclass SubCategoryOverrideProvider implements FeatureOverrideProvider {\n constructor(\n public subCategoryIds: string[],\n public defaultAppearance: FeatureAppearance\n ) {}\n\n public addFeatureOverrides(\n overrides: FeatureSymbology.Overrides,\n _viewport: Viewport\n ): void {\n overrides.setDefaultOverrides(this.defaultAppearance, true);\n // Override with nothing so that we keep the category looking normal and override the default appearance of everything else\n const appearance = FeatureAppearance.fromJSON({});\n this.subCategoryIds.forEach((subCategoryId: string) => {\n overrides.override({ subCategoryId, appearance, onConflict: \"replace\" });\n });\n }\n}\n\n/**\n * Interface for class that handles Hide, Isolate, and Emphasize Actions\n * @public\n */\nexport abstract class HideIsolateEmphasizeActionHandler {\n public static emphasizeElementsChanged = new BeEvent<\n (args: EmphasizeElementsChangedArgs) => void\n >();\n\n /** String Id sent to allow UI to refresh its display state. */\n public static get hideIsolateEmphasizeUiSyncId() {\n return \"selection-context-emphasize-elements-changed\";\n }\n\n /**\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\n */\n public abstract processIsolateSelectedElementsModel(): Promise<void>;\n /**\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\n */\n\n public abstract processIsolateSelectedElementsCategory(): Promise<void>;\n\n /**\n * Function run when `HideSelectedElementsModel` tool button is pressed\n */\n public abstract processIsolateSelected(): Promise<void>;\n\n /**\n * Function run when `HideSelectedElementsModel` tool button is pressed\n */\n public abstract processHideSelectedElementsModel(): Promise<void>;\n\n /**\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\n */\n public abstract processHideSelectedElementsCategory(): Promise<void>;\n\n /**\n * Function that is run when `HideSelected` tool button is pressed\n */\n public abstract processHideSelected(): Promise<void>;\n\n /**\n * Function that is run when `EmphasizeSelected` tool button is pressed\n */\n public abstract processEmphasizeSelected(): Promise<void>;\n\n /**\n * Function that is run when `ClearEmphasize` tool button is pressed\n */\n public abstract processClearEmphasize(): Promise<void>;\n\n /**\n * Function that informs called if Hide, Isolate, or Emphasize of elements is active.\n */\n public abstract areFeatureOverridesActive(vp: Viewport): boolean;\n\n /**\n * Function run when `ClearOverrideCategories` tool button is pressed\n */\n public abstract processClearOverrideCategories(): Promise<void>;\n\n /**\n * Function run when `ClearOverrideModels` tool button is pressed\n */\n public abstract processClearOverrideModels(): Promise<void>;\n}\n\n/** Provides helper functions for doing commands on logical selection like categories and subjects.\n * @public\n */\n// istanbul ignore next\nexport class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {\n private static _overrideCategoryIds = new Map<Viewport, Set<string>>();\n private static _overrideModelIds = new Map<Viewport, Set<string>>();\n\n /** Returns true if there is only a category hilited. */\n private static categorySelected(vp: Viewport) {\n const subcategories = vp.iModel.hilited.subcategories;\n return subcategories.size === 1;\n }\n\n /** Returns true if only a model is hilited. */\n private static modelSelected(vp: Viewport) {\n const models = vp.iModel.hilited.models;\n return models.size === 1;\n }\n\n /**\n * Hide the hilited categories.\n * @param vp Viewport to affect\n */\n private static hideSelectedCategory(vp: Viewport) {\n const ids = vp.iModel.hilited.subcategories.toId64Set();\n vp.changeCategoryDisplay(ids, false);\n }\n\n /** Get sub categories that relate to the category Id */\n private static async _getSubCategories(\n iModelConnection: IModelConnection,\n categoryIds: string[]\n ) {\n const allSubcats: string[] = [];\n const request = iModelConnection.subcategories.load(categoryIds);\n if (request) await request.promise;\n\n for (const categoryId of categoryIds) {\n const subcats =\n iModelConnection.subcategories.getSubCategories(categoryId);\n if (subcats) allSubcats.push(...subcats);\n }\n return allSubcats;\n }\n\n /**\n * Emphasize hilited categories.\n * @param vp Viewport to affect\n */\n public static async emphasizeSelectedCategory(vp: Viewport) {\n const ids = vp.iModel.hilited.subcategories.toId64Array();\n if (ids.length === 0) return;\n\n const defaultAppearance =\n EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\n EmphasizeElements.clear(vp);\n const subcats = await HideIsolateEmphasizeManager._getSubCategories(\n vp.iModel,\n ids\n );\n vp.addFeatureOverrideProvider(\n new SubCategoryOverrideProvider(subcats, defaultAppearance)\n );\n }\n\n /**\n * Hide the selected model\n * @param vp Viewport to affect\n */\n private static hideSelectedModel(vp: Viewport) {\n const ids = vp.iModel.hilited.models.toId64Array();\n if (ids.length === 0) return;\n\n vp.changeModelDisplay(ids, false);\n }\n\n /**\n * Isolate the selected model\n * @param vp Viewport to affect\n */\n private static emphasizeSelectedModel(vp: Viewport) {\n const ids = vp.iModel.hilited.models.toId64Array();\n if (ids.length === 0) return;\n\n const defaultAppearance =\n EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\n EmphasizeElements.clear(vp);\n vp.addFeatureOverrideProvider(\n new ModelOverrideProvider(ids, defaultAppearance)\n );\n }\n\n /**\n * Isolate the selected elements\n * @param vp Viewport to affect\n */\n public static isolateSelected(vp: Viewport) {\n EmphasizeElements.getOrCreate(vp).isolateSelectedElements(vp, true, false); // Isolate selected elements\n }\n\n /**\n * Hide the selected elements\n * @param vp Viewport to affect\n */\n public static hideSelected(vp: Viewport) {\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide all selected elements\n }\n\n /**\n * Clear Hidden,Isolated, or Emphasized elements in specified view\n * @param vp Viewport to affect\n *\n */\n public static clearEmphasize(vp: Viewport | undefined) {\n if (vp) {\n EmphasizeElements.clear(vp);\n }\n }\n\n /**\n * Emphasize the selected elements from either presentation layer's logical selection or selected graphics\n * @param vp Viewport to affect\n * @param emphasisSilhouette defaults to true\n */\n public static async emphasizeSelected(\n vp: Viewport,\n emphasisSilhouette = true\n ) {\n if (HideIsolateEmphasizeManager.categorySelected(vp)) {\n await HideIsolateEmphasizeManager.emphasizeSelectedCategory(vp);\n return;\n } else if (HideIsolateEmphasizeManager.modelSelected(vp)) {\n HideIsolateEmphasizeManager.emphasizeSelectedModel(vp);\n return;\n }\n\n const ee = EmphasizeElements.getOrCreate(vp);\n ee.wantEmphasis = emphasisSilhouette;\n\n ee.emphasizeSelectedElements(vp, undefined, true, false); // Emphasize elements by making all others grey/transparent\n vp.isFadeOutActive = true; // Enable flat alpha for greyed out elements…\n }\n\n /**\n * Isolate hilited models.\n * @param vp Viewport to affect\n */\n public static async isolateSelectedModel(vp: Viewport) {\n const ids = vp.iModel.hilited.models.toId64Array();\n if (ids.length === 0) return;\n\n await vp.replaceViewedModels(ids);\n }\n\n /**\n * Isolate hilited categories.\n * @param vp Viewport to affect\n */\n private static isolateSelectedCategory(vp: Viewport) {\n const ids = vp.iModel.hilited.subcategories.toId64Set();\n const categoriesToDrop: string[] = [];\n vp.view.categorySelector.categories.forEach((categoryId: string) => {\n if (!ids.has(categoryId)) categoriesToDrop.push(categoryId);\n });\n vp.changeCategoryDisplay(categoriesToDrop, false);\n vp.changeCategoryDisplay(ids, true);\n }\n\n private static async getSelectionSetElementModels(iModel: IModelConnection) {\n const props = await iModel.elements.getProps(iModel.selectionSet.elements);\n const modelIds = new Set<string>();\n for (const prop of props) if (prop.model) modelIds.add(prop.model);\n return modelIds;\n }\n\n private static async getSelectionSetElementCategories(\n iModel: IModelConnection\n ) {\n const props = (await iModel.elements.getProps(\n iModel.selectionSet.elements\n )) as GeometricElementProps[];\n const categoryIds = new Set<string>();\n for (const prop of props) if (prop.category) categoryIds.add(prop.category);\n return categoryIds;\n }\n\n /**\n * Isolate either based on Presentation selection, if defined, else the selected graphic elements\n * @param vp Viewport to affect\n */\n public static async isolateCommand(vp: Viewport) {\n if (HideIsolateEmphasizeManager.categorySelected(vp)) {\n HideIsolateEmphasizeManager.isolateSelectedCategory(vp);\n return;\n } else if (HideIsolateEmphasizeManager.modelSelected(vp)) {\n await HideIsolateEmphasizeManager.isolateSelectedModel(vp);\n return;\n }\n }\n\n /**\n * Isolate model from selected elements\n * @param vp Viewport to affect\n */\n public static async isolateSelectedElementsModel(vp: Viewport) {\n const modelsToKeep = new Set(\n await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel)\n );\n\n if (vp.view.isSpatialView()) {\n const modelsToTurnOff = [...vp.view.modelSelector.models].filter(\n (modelId: string) => !modelsToKeep.has(modelId)\n );\n this.updateModelOverride(vp, modelsToTurnOff);\n }\n\n await vp.replaceViewedModels(modelsToKeep);\n }\n\n /**\n * Isolate the selected category found in SelectionSet elements\n * @param vp Viewport to affect\n */\n public static async isolateSelectedElementsCategory(vp: Viewport) {\n const categoriesToKeep = new Set(\n await HideIsolateEmphasizeManager.getSelectionSetElementCategories(\n vp.iModel\n )\n );\n const categoriesToTurnOff = [...vp.view.categorySelector.categories].filter(\n (categoryId: string) => !categoriesToKeep.has(categoryId)\n );\n vp.changeCategoryDisplay(categoriesToTurnOff, false);\n vp.changeCategoryDisplay(categoriesToKeep, true);\n this.updateCategoryOverride(vp, categoriesToTurnOff);\n }\n\n /**\n * Hide either based on Presentation selection, if defined, else the selected graphic elements\n * @param vp Viewport to affect\n */\n public static async hideCommand(vp: Viewport) {\n if (HideIsolateEmphasizeManager.categorySelected(vp)) {\n HideIsolateEmphasizeManager.hideSelectedCategory(vp);\n return;\n } else if (HideIsolateEmphasizeManager.modelSelected(vp)) {\n HideIsolateEmphasizeManager.hideSelectedModel(vp);\n return;\n }\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide selected elements\n }\n\n /**\n * Hide the models defined by the elements in the current SelectionSet\n * @param vp Viewport to affect\n */\n public static async hideSelectedElementsModel(vp: Viewport) {\n const modelIds =\n await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel);\n vp.changeModelDisplay(modelIds, false);\n this.updateModelOverride(vp, [...modelIds]);\n }\n\n /**\n * Clear (restore) the previously hidden/isolated models hidden by hideSelectedElementsModel\n * @param vp Viewport to affect\n */\n public static clearOverrideModels(vp: Viewport) {\n const ids = this._overrideModelIds.get(vp);\n if (ids) {\n vp.changeModelDisplay([...ids], true);\n this.clearModelOverride(vp);\n }\n }\n\n /**\n * Determine if models are hidden by hideSelectedElementsModel or isolateSelectedElementsModel\n * @param vp Viewport to affect\n */\n public static isOverrideModels(vp: Viewport): boolean {\n const ids = this._overrideModelIds.get(vp);\n return ids ? [...ids].length > 0 : false;\n }\n\n /**\n * Determine if categories are hidden by hideSelectedElementsCategory or isolateSelectedElementsCategory\n * @param vp Viewport to affect\n */\n public static isOverrideCategories(vp: Viewport): boolean {\n const ids = this._overrideCategoryIds.get(vp);\n return ids ? [...ids].length > 0 : false;\n }\n\n /**\n * Hide the categories defined by the elements in the current SelectionSet\n * @param vp Viewport to affect\n */\n public static async hideSelectedElementsCategory(vp: Viewport) {\n const categoryIds =\n await HideIsolateEmphasizeManager.getSelectionSetElementCategories(\n vp.iModel\n );\n vp.changeCategoryDisplay(categoryIds, false);\n this.updateCategoryOverride(vp, [...categoryIds]);\n }\n\n /**\n * Clear (restore) the previously hidden categories hidden by hideSelectedElementsCategory\n * @param vp Viewport to affect\n */\n public static clearOverrideCategories(vp: Viewport) {\n const ids = this._overrideCategoryIds.get(vp);\n if (ids) {\n vp.changeCategoryDisplay([...ids], true);\n this.clearCategoryOverride(vp);\n }\n }\n\n /** Checks to see if any featureOverrideProviders are active */\n public areFeatureOverridesActive(vp: Viewport): boolean {\n // Check all the emphasize possibilities\n const emphasizeElementsProvider =\n vp.findFeatureOverrideProviderOfType<EmphasizeElements>(\n EmphasizeElements\n );\n if (\n undefined !== emphasizeElementsProvider &&\n emphasizeElementsProvider.isActive(vp)\n )\n return true;\n\n const modelOverrideProvider =\n vp.findFeatureOverrideProviderOfType<ModelOverrideProvider>(\n ModelOverrideProvider\n );\n if (\n undefined !== modelOverrideProvider &&\n modelOverrideProvider.modelIds.length > 0\n )\n return true;\n\n const subCategoryOverrideProvider =\n vp.findFeatureOverrideProviderOfType<SubCategoryOverrideProvider>(\n SubCategoryOverrideProvider\n );\n if (\n undefined !== subCategoryOverrideProvider &&\n subCategoryOverrideProvider.subCategoryIds.length > 0\n )\n return true;\n\n // Check hide/isolate possibilities\n if (HideIsolateEmphasizeManager.isOverrideCategories(vp)) return true;\n\n if (HideIsolateEmphasizeManager.isOverrideModels(vp)) return true;\n\n return false;\n }\n\n /**\n * Function that is run when `IsolateSelectedElementsModel` tool button is pressed\n */\n public async processIsolateSelectedElementsModel(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n await HideIsolateEmphasizeManager.isolateSelectedElementsModel(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.IsolateSelectedModels,\n });\n void UiFramework.postTelemetry(\n HideIsolateEmphasizeAction.IsolateSelectedModels,\n featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedModels)\n );\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `IsolateSelectedElementsCategory` tool button is pressed\n */\n public async processIsolateSelectedElementsCategory(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n await HideIsolateEmphasizeManager.isolateSelectedElementsCategory(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.IsolateSelectedCategories,\n });\n void UiFramework.postTelemetry(\n HideIsolateEmphasizeAction.IsolateSelectedCategories,\n featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedCategories)\n );\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `IsolateSelected` tool button is pressed\n */\n public async processIsolateSelected(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n HideIsolateEmphasizeManager.isolateSelected(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.IsolateSelectedElements,\n });\n void UiFramework.postTelemetry(\n HideIsolateEmphasizeAction.IsolateSelectedElements,\n featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedElements)\n );\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n\n // clear out selection now that any callbacks have processed\n const selection = vp.view.iModel.selectionSet;\n if (selection.isActive) selection.emptyAll();\n }\n\n /**\n * Function that is run when `HideSelectedElementsModel` tool button is pressed\n */\n public async processHideSelectedElementsModel(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n await HideIsolateEmphasizeManager.hideSelectedElementsModel(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.HideSelectedModels,\n });\n void UiFramework.postTelemetry(\n HideIsolateEmphasizeAction.HideSelectedModels,\n featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedModels)\n );\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\n */\n public async processHideSelectedElementsCategory(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n await HideIsolateEmphasizeManager.hideSelectedElementsCategory(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.HideSelectedCategories,\n });\n void UiFramework.postTelemetry(\n HideIsolateEmphasizeAction.HideSelectedCategories,\n featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedCategories)\n );\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `HideSelected` tool button is pressed\n */\n public async processHideSelected(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n HideIsolateEmphasizeManager.hideSelected(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.HideSelectedElements,\n });\n void UiFramework.postTelemetry(\n HideIsolateEmphasizeAction.HideSelectedCategories,\n featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedElements)\n );\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n\n // clear out selection now that any callbacks have processed\n const selection = vp.view.iModel.selectionSet;\n if (selection.isActive) selection.emptyAll();\n }\n\n /**\n * Function that is run when `EmphasizeSelected` tool button is pressed\n */\n public async processEmphasizeSelected(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n await HideIsolateEmphasizeManager.emphasizeSelected(vp);\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.EmphasizeSelectedElements,\n });\n void UiFramework.postTelemetry(\n HideIsolateEmphasizeAction.EmphasizeSelectedElements,\n featureIdMap.get(HideIsolateEmphasizeAction.EmphasizeSelectedElements)\n );\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n\n // clear out selection now that any callbacks have processed\n const selection = vp.view.iModel.selectionSet;\n if (selection.isActive) selection.emptyAll();\n }\n\n /**\n * Function that is run when `ClearEmphasize` tool button is pressed\n */\n public async processClearEmphasize(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n HideIsolateEmphasizeManager.clearEmphasize(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized,\n });\n void UiFramework.postTelemetry(\n HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized,\n featureIdMap.get(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized)\n );\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `ClearOverrideModels` tool button is pressed\n */\n public async processClearOverrideModels(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n HideIsolateEmphasizeManager.clearOverrideModels(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.ClearOverrideModels,\n });\n void UiFramework.postTelemetry(\n HideIsolateEmphasizeAction.ClearOverrideModels,\n featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideModels)\n );\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `ClearOverrideCategories` tool button is pressed\n */\n public async processClearOverrideCategories(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n HideIsolateEmphasizeManager.clearOverrideCategories(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.ClearOverrideCategories,\n });\n void UiFramework.postTelemetry(\n HideIsolateEmphasizeAction.ClearOverrideCategories,\n featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideCategories)\n );\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Add category ids to the category override cache (hidden or isolated categories)\n */\n public static updateCategoryOverride(vp: Viewport, ids: string[]) {\n const prevIds = this._overrideCategoryIds.get(vp);\n const newIds = [...(prevIds || []), ...ids];\n this._overrideCategoryIds.set(vp, new Set(newIds));\n }\n\n /**\n * Add model ids to the model override cache (hidden or isolated models)\n */\n public static updateModelOverride(vp: Viewport, ids: string[]) {\n const prevIds = this._overrideModelIds.get(vp);\n const newIds = [...(prevIds || []), ...ids];\n this._overrideModelIds.set(vp, new Set(newIds));\n }\n\n /**\n * Return the list of category overrides (hidden or isolated categories)\n */\n public static getCategoryOverrides(vp: Viewport) {\n return this._overrideCategoryIds.get(vp);\n }\n\n /**\n * Return the list of model overrides (hidden or isolated models)\n */\n public static getModelOverrides(vp: Viewport) {\n return this._overrideModelIds.get(vp);\n }\n\n /**\n * Clear the category override cache (hidden or isolated categories)\n */\n private static clearCategoryOverride(vp: Viewport) {\n this._overrideCategoryIds.delete(vp);\n }\n\n /**\n * Clear the model override cache (hidden or isolated models)\n */\n private static clearModelOverride(vp: Viewport) {\n this._overrideModelIds.delete(vp);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HideIsolateEmphasizeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/HideIsolateEmphasizeManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport type { GeometricElementProps } from \"@itwin/core-common\";\nimport { FeatureAppearance } from \"@itwin/core-common\";\nimport type {\n FeatureOverrideProvider,\n FeatureSymbology,\n IModelConnection,\n ScreenViewport,\n Viewport,\n} from \"@itwin/core-frontend\";\nimport { EmphasizeElements, IModelApp } from \"@itwin/core-frontend\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/** Supported Hide, Isolate, and Emphasize Actions. These also serve as FeatureTracking Ids.\n * @public\n */\nexport enum HideIsolateEmphasizeAction {\n EmphasizeSelectedElements = \"EmphasizeSelectedElements\",\n IsolateSelectedElements = \"IsolateSelectedElements\",\n IsolateSelectedCategories = \"IsolateSelectedCategories\",\n IsolateSelectedModels = \"IsolateSelectedModels\",\n HideSelectedElements = \"HideSelectedElements\",\n HideSelectedModels = \"HideSelectedModels\",\n HideSelectedCategories = \"HideSelectedCategories\",\n ClearHiddenIsolatedEmphasized = \"ClearHiddenIsolatedEmphasized\",\n ClearOverrideModels = \"ClearOverrideModels\",\n ClearOverrideCategories = \"ClearOverrideCategories\",\n}\n\n/** Selection Context Action Event Argument\n * @public\n */\nexport interface EmphasizeElementsChangedArgs {\n /** viewport where action was performed */\n readonly viewport: ScreenViewport;\n /** action being performed */\n readonly action: HideIsolateEmphasizeAction;\n}\n\n/** Overrides given models to provide emphasize functionality\n * @public\n */\n// istanbul ignore next\nclass ModelOverrideProvider implements FeatureOverrideProvider {\n constructor(\n public modelIds: string[],\n public defaultAppearance: FeatureAppearance\n ) {}\n\n public addFeatureOverrides(\n overrides: FeatureSymbology.Overrides,\n _viewport: Viewport\n ): void {\n overrides.setDefaultOverrides(this.defaultAppearance, true);\n // Override with nothing so that we keep the model looking normal and override the default appearance of everything else\n const appearance = FeatureAppearance.fromJSON({});\n this.modelIds.forEach((modelId: string) => {\n overrides.override({ modelId, appearance, onConflict: \"replace\" });\n });\n }\n}\n\n/** Overrides given categories to provide emphasize functionality\n * @public\n */\n// istanbul ignore next\nclass SubCategoryOverrideProvider implements FeatureOverrideProvider {\n constructor(\n public subCategoryIds: string[],\n public defaultAppearance: FeatureAppearance\n ) {}\n\n public addFeatureOverrides(\n overrides: FeatureSymbology.Overrides,\n _viewport: Viewport\n ): void {\n overrides.setDefaultOverrides(this.defaultAppearance, true);\n // Override with nothing so that we keep the category looking normal and override the default appearance of everything else\n const appearance = FeatureAppearance.fromJSON({});\n this.subCategoryIds.forEach((subCategoryId: string) => {\n overrides.override({ subCategoryId, appearance, onConflict: \"replace\" });\n });\n }\n}\n\n/**\n * Interface for class that handles Hide, Isolate, and Emphasize Actions\n * @public\n */\nexport abstract class HideIsolateEmphasizeActionHandler {\n public static emphasizeElementsChanged = new BeEvent<\n (args: EmphasizeElementsChangedArgs) => void\n >();\n\n /** String Id sent to allow UI to refresh its display state. */\n public static get hideIsolateEmphasizeUiSyncId() {\n return \"selection-context-emphasize-elements-changed\";\n }\n\n /**\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\n */\n public abstract processIsolateSelectedElementsModel(): Promise<void>;\n /**\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\n */\n\n public abstract processIsolateSelectedElementsCategory(): Promise<void>;\n\n /**\n * Function run when `HideSelectedElementsModel` tool button is pressed\n */\n public abstract processIsolateSelected(): Promise<void>;\n\n /**\n * Function run when `HideSelectedElementsModel` tool button is pressed\n */\n public abstract processHideSelectedElementsModel(): Promise<void>;\n\n /**\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\n */\n public abstract processHideSelectedElementsCategory(): Promise<void>;\n\n /**\n * Function that is run when `HideSelected` tool button is pressed\n */\n public abstract processHideSelected(): Promise<void>;\n\n /**\n * Function that is run when `EmphasizeSelected` tool button is pressed\n */\n public abstract processEmphasizeSelected(): Promise<void>;\n\n /**\n * Function that is run when `ClearEmphasize` tool button is pressed\n */\n public abstract processClearEmphasize(): Promise<void>;\n\n /**\n * Function that informs called if Hide, Isolate, or Emphasize of elements is active.\n */\n public abstract areFeatureOverridesActive(vp: Viewport): boolean;\n\n /**\n * Function run when `ClearOverrideCategories` tool button is pressed\n */\n public abstract processClearOverrideCategories(): Promise<void>;\n\n /**\n * Function run when `ClearOverrideModels` tool button is pressed\n */\n public abstract processClearOverrideModels(): Promise<void>;\n}\n\n/** Provides helper functions for doing commands on logical selection like categories and subjects.\n * @public\n */\n// istanbul ignore next\nexport class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {\n private static _overrideCategoryIds = new Map<Viewport, Set<string>>();\n private static _overrideModelIds = new Map<Viewport, Set<string>>();\n\n /** Returns true if there is only a category hilited. */\n private static categorySelected(vp: Viewport) {\n const subcategories = vp.iModel.hilited.subcategories;\n return subcategories.size === 1;\n }\n\n /** Returns true if only a model is hilited. */\n private static modelSelected(vp: Viewport) {\n const models = vp.iModel.hilited.models;\n return models.size === 1;\n }\n\n /**\n * Hide the hilited categories.\n * @param vp Viewport to affect\n */\n private static hideSelectedCategory(vp: Viewport) {\n const ids = vp.iModel.hilited.subcategories.toId64Set();\n vp.changeCategoryDisplay(ids, false);\n }\n\n /** Get sub categories that relate to the category Id */\n private static async _getSubCategories(\n iModelConnection: IModelConnection,\n categoryIds: string[]\n ) {\n const allSubcats: string[] = [];\n const request = iModelConnection.subcategories.load(categoryIds);\n if (request) await request.promise;\n\n for (const categoryId of categoryIds) {\n const subcats =\n iModelConnection.subcategories.getSubCategories(categoryId);\n if (subcats) allSubcats.push(...subcats);\n }\n return allSubcats;\n }\n\n /**\n * Emphasize hilited categories.\n * @param vp Viewport to affect\n */\n public static async emphasizeSelectedCategory(vp: Viewport) {\n const ids = vp.iModel.hilited.subcategories.toId64Array();\n if (ids.length === 0) return;\n\n const defaultAppearance =\n EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\n EmphasizeElements.clear(vp);\n const subcats = await HideIsolateEmphasizeManager._getSubCategories(\n vp.iModel,\n ids\n );\n vp.addFeatureOverrideProvider(\n new SubCategoryOverrideProvider(subcats, defaultAppearance)\n );\n }\n\n /**\n * Hide the selected model\n * @param vp Viewport to affect\n */\n private static hideSelectedModel(vp: Viewport) {\n const ids = vp.iModel.hilited.models.toId64Array();\n if (ids.length === 0) return;\n\n vp.changeModelDisplay(ids, false);\n }\n\n /**\n * Isolate the selected model\n * @param vp Viewport to affect\n */\n private static emphasizeSelectedModel(vp: Viewport) {\n const ids = vp.iModel.hilited.models.toId64Array();\n if (ids.length === 0) return;\n\n const defaultAppearance =\n EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\n EmphasizeElements.clear(vp);\n vp.addFeatureOverrideProvider(\n new ModelOverrideProvider(ids, defaultAppearance)\n );\n }\n\n /**\n * Isolate the selected elements\n * @param vp Viewport to affect\n */\n public static isolateSelected(vp: Viewport) {\n EmphasizeElements.getOrCreate(vp).isolateSelectedElements(vp, true, false); // Isolate selected elements\n }\n\n /**\n * Hide the selected elements\n * @param vp Viewport to affect\n */\n public static hideSelected(vp: Viewport) {\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide all selected elements\n }\n\n /**\n * Clear Hidden,Isolated, or Emphasized elements in specified view\n * @param vp Viewport to affect\n *\n */\n public static clearEmphasize(vp: Viewport | undefined) {\n if (vp) {\n EmphasizeElements.clear(vp);\n }\n }\n\n /**\n * Emphasize the selected elements from either presentation layer's logical selection or selected graphics\n * @param vp Viewport to affect\n * @param emphasisSilhouette defaults to true\n */\n public static async emphasizeSelected(\n vp: Viewport,\n emphasisSilhouette = true\n ) {\n if (HideIsolateEmphasizeManager.categorySelected(vp)) {\n await HideIsolateEmphasizeManager.emphasizeSelectedCategory(vp);\n return;\n } else if (HideIsolateEmphasizeManager.modelSelected(vp)) {\n HideIsolateEmphasizeManager.emphasizeSelectedModel(vp);\n return;\n }\n\n const ee = EmphasizeElements.getOrCreate(vp);\n ee.wantEmphasis = emphasisSilhouette;\n\n ee.emphasizeSelectedElements(vp, undefined, true, false); // Emphasize elements by making all others grey/transparent\n vp.isFadeOutActive = true; // Enable flat alpha for greyed out elements…\n }\n\n /**\n * Isolate hilited models.\n * @param vp Viewport to affect\n */\n public static async isolateSelectedModel(vp: Viewport) {\n const ids = vp.iModel.hilited.models.toId64Array();\n if (ids.length === 0) return;\n\n await vp.replaceViewedModels(ids);\n }\n\n /**\n * Isolate hilited categories.\n * @param vp Viewport to affect\n */\n private static isolateSelectedCategory(vp: Viewport) {\n const ids = vp.iModel.hilited.subcategories.toId64Set();\n const categoriesToDrop: string[] = [];\n vp.view.categorySelector.categories.forEach((categoryId: string) => {\n if (!ids.has(categoryId)) categoriesToDrop.push(categoryId);\n });\n vp.changeCategoryDisplay(categoriesToDrop, false);\n vp.changeCategoryDisplay(ids, true);\n }\n\n private static async getSelectionSetElementModels(iModel: IModelConnection) {\n const props = await iModel.elements.getProps(iModel.selectionSet.elements);\n const modelIds = new Set<string>();\n for (const prop of props) if (prop.model) modelIds.add(prop.model);\n return modelIds;\n }\n\n private static async getSelectionSetElementCategories(\n iModel: IModelConnection\n ) {\n const props = (await iModel.elements.getProps(\n iModel.selectionSet.elements\n )) as GeometricElementProps[];\n const categoryIds = new Set<string>();\n for (const prop of props) if (prop.category) categoryIds.add(prop.category);\n return categoryIds;\n }\n\n /**\n * Isolate either based on Presentation selection, if defined, else the selected graphic elements\n * @param vp Viewport to affect\n */\n public static async isolateCommand(vp: Viewport) {\n if (HideIsolateEmphasizeManager.categorySelected(vp)) {\n HideIsolateEmphasizeManager.isolateSelectedCategory(vp);\n return;\n } else if (HideIsolateEmphasizeManager.modelSelected(vp)) {\n await HideIsolateEmphasizeManager.isolateSelectedModel(vp);\n return;\n }\n }\n\n /**\n * Isolate model from selected elements\n * @param vp Viewport to affect\n */\n public static async isolateSelectedElementsModel(vp: Viewport) {\n const modelsToKeep = new Set(\n await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel)\n );\n\n if (vp.view.isSpatialView()) {\n const modelsToTurnOff = [...vp.view.modelSelector.models].filter(\n (modelId: string) => !modelsToKeep.has(modelId)\n );\n this.updateModelOverride(vp, modelsToTurnOff);\n }\n\n await vp.replaceViewedModels(modelsToKeep);\n }\n\n /**\n * Isolate the selected category found in SelectionSet elements\n * @param vp Viewport to affect\n */\n public static async isolateSelectedElementsCategory(vp: Viewport) {\n const categoriesToKeep = new Set(\n await HideIsolateEmphasizeManager.getSelectionSetElementCategories(\n vp.iModel\n )\n );\n const categoriesToTurnOff = [...vp.view.categorySelector.categories].filter(\n (categoryId: string) => !categoriesToKeep.has(categoryId)\n );\n vp.changeCategoryDisplay(categoriesToTurnOff, false);\n vp.changeCategoryDisplay(categoriesToKeep, true);\n this.updateCategoryOverride(vp, categoriesToTurnOff);\n }\n\n /**\n * Hide either based on Presentation selection, if defined, else the selected graphic elements\n * @param vp Viewport to affect\n */\n public static async hideCommand(vp: Viewport) {\n if (HideIsolateEmphasizeManager.categorySelected(vp)) {\n HideIsolateEmphasizeManager.hideSelectedCategory(vp);\n return;\n } else if (HideIsolateEmphasizeManager.modelSelected(vp)) {\n HideIsolateEmphasizeManager.hideSelectedModel(vp);\n return;\n }\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide selected elements\n }\n\n /**\n * Hide the models defined by the elements in the current SelectionSet\n * @param vp Viewport to affect\n */\n public static async hideSelectedElementsModel(vp: Viewport) {\n const modelIds =\n await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel);\n vp.changeModelDisplay(modelIds, false);\n this.updateModelOverride(vp, [...modelIds]);\n }\n\n /**\n * Clear (restore) the previously hidden/isolated models hidden by hideSelectedElementsModel\n * @param vp Viewport to affect\n */\n public static clearOverrideModels(vp: Viewport) {\n const ids = this._overrideModelIds.get(vp);\n if (ids) {\n vp.changeModelDisplay([...ids], true);\n this.clearModelOverride(vp);\n }\n }\n\n /**\n * Determine if models are hidden by hideSelectedElementsModel or isolateSelectedElementsModel\n * @param vp Viewport to affect\n */\n public static isOverrideModels(vp: Viewport): boolean {\n const ids = this._overrideModelIds.get(vp);\n return ids ? [...ids].length > 0 : false;\n }\n\n /**\n * Determine if categories are hidden by hideSelectedElementsCategory or isolateSelectedElementsCategory\n * @param vp Viewport to affect\n */\n public static isOverrideCategories(vp: Viewport): boolean {\n const ids = this._overrideCategoryIds.get(vp);\n return ids ? [...ids].length > 0 : false;\n }\n\n /**\n * Hide the categories defined by the elements in the current SelectionSet\n * @param vp Viewport to affect\n */\n public static async hideSelectedElementsCategory(vp: Viewport) {\n const categoryIds =\n await HideIsolateEmphasizeManager.getSelectionSetElementCategories(\n vp.iModel\n );\n vp.changeCategoryDisplay(categoryIds, false);\n this.updateCategoryOverride(vp, [...categoryIds]);\n }\n\n /**\n * Clear (restore) the previously hidden categories hidden by hideSelectedElementsCategory\n * @param vp Viewport to affect\n */\n public static clearOverrideCategories(vp: Viewport) {\n const ids = this._overrideCategoryIds.get(vp);\n if (ids) {\n vp.changeCategoryDisplay([...ids], true);\n this.clearCategoryOverride(vp);\n }\n }\n\n /** Checks to see if any featureOverrideProviders are active */\n public areFeatureOverridesActive(vp: Viewport): boolean {\n // Check all the emphasize possibilities\n const emphasizeElementsProvider =\n vp.findFeatureOverrideProviderOfType<EmphasizeElements>(\n EmphasizeElements\n );\n if (\n undefined !== emphasizeElementsProvider &&\n emphasizeElementsProvider.isActive(vp)\n )\n return true;\n\n const modelOverrideProvider =\n vp.findFeatureOverrideProviderOfType<ModelOverrideProvider>(\n ModelOverrideProvider\n );\n if (\n undefined !== modelOverrideProvider &&\n modelOverrideProvider.modelIds.length > 0\n )\n return true;\n\n const subCategoryOverrideProvider =\n vp.findFeatureOverrideProviderOfType<SubCategoryOverrideProvider>(\n SubCategoryOverrideProvider\n );\n if (\n undefined !== subCategoryOverrideProvider &&\n subCategoryOverrideProvider.subCategoryIds.length > 0\n )\n return true;\n\n // Check hide/isolate possibilities\n if (HideIsolateEmphasizeManager.isOverrideCategories(vp)) return true;\n\n if (HideIsolateEmphasizeManager.isOverrideModels(vp)) return true;\n\n return false;\n }\n\n /**\n * Function that is run when `IsolateSelectedElementsModel` tool button is pressed\n */\n public async processIsolateSelectedElementsModel(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n await HideIsolateEmphasizeManager.isolateSelectedElementsModel(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.IsolateSelectedModels,\n });\n\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `IsolateSelectedElementsCategory` tool button is pressed\n */\n public async processIsolateSelectedElementsCategory(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n await HideIsolateEmphasizeManager.isolateSelectedElementsCategory(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.IsolateSelectedCategories,\n });\n\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `IsolateSelected` tool button is pressed\n */\n public async processIsolateSelected(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n HideIsolateEmphasizeManager.isolateSelected(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.IsolateSelectedElements,\n });\n\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n\n // clear out selection now that any callbacks have processed\n const selection = vp.view.iModel.selectionSet;\n if (selection.isActive) selection.emptyAll();\n }\n\n /**\n * Function that is run when `HideSelectedElementsModel` tool button is pressed\n */\n public async processHideSelectedElementsModel(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n await HideIsolateEmphasizeManager.hideSelectedElementsModel(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.HideSelectedModels,\n });\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\n */\n public async processHideSelectedElementsCategory(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n await HideIsolateEmphasizeManager.hideSelectedElementsCategory(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.HideSelectedCategories,\n });\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `HideSelected` tool button is pressed\n */\n public async processHideSelected(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n HideIsolateEmphasizeManager.hideSelected(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.HideSelectedElements,\n });\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n\n // clear out selection now that any callbacks have processed\n const selection = vp.view.iModel.selectionSet;\n if (selection.isActive) selection.emptyAll();\n }\n\n /**\n * Function that is run when `EmphasizeSelected` tool button is pressed\n */\n public async processEmphasizeSelected(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n\n await HideIsolateEmphasizeManager.emphasizeSelected(vp);\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.EmphasizeSelectedElements,\n });\n\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n\n // clear out selection now that any callbacks have processed\n const selection = vp.view.iModel.selectionSet;\n if (selection.isActive) selection.emptyAll();\n }\n\n /**\n * Function that is run when `ClearEmphasize` tool button is pressed\n */\n public async processClearEmphasize(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n HideIsolateEmphasizeManager.clearEmphasize(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized,\n });\n\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `ClearOverrideModels` tool button is pressed\n */\n public async processClearOverrideModels(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n HideIsolateEmphasizeManager.clearOverrideModels(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.ClearOverrideModels,\n });\n\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Function that is run when `ClearOverrideCategories` tool button is pressed\n */\n public async processClearOverrideCategories(): Promise<void> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp) return;\n HideIsolateEmphasizeManager.clearOverrideCategories(vp);\n\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({\n viewport: vp,\n action: HideIsolateEmphasizeAction.ClearOverrideCategories,\n });\n\n SyncUiEventDispatcher.dispatchSyncUiEvent(\n HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId\n );\n }\n\n /**\n * Add category ids to the category override cache (hidden or isolated categories)\n */\n public static updateCategoryOverride(vp: Viewport, ids: string[]) {\n const prevIds = this._overrideCategoryIds.get(vp);\n const newIds = [...(prevIds || []), ...ids];\n this._overrideCategoryIds.set(vp, new Set(newIds));\n }\n\n /**\n * Add model ids to the model override cache (hidden or isolated models)\n */\n public static updateModelOverride(vp: Viewport, ids: string[]) {\n const prevIds = this._overrideModelIds.get(vp);\n const newIds = [...(prevIds || []), ...ids];\n this._overrideModelIds.set(vp, new Set(newIds));\n }\n\n /**\n * Return the list of category overrides (hidden or isolated categories)\n */\n public static getCategoryOverrides(vp: Viewport) {\n return this._overrideCategoryIds.get(vp);\n }\n\n /**\n * Return the list of model overrides (hidden or isolated models)\n */\n public static getModelOverrides(vp: Viewport) {\n return this._overrideModelIds.get(vp);\n }\n\n /**\n * Clear the category override cache (hidden or isolated categories)\n */\n private static clearCategoryOverride(vp: Viewport) {\n this._overrideCategoryIds.delete(vp);\n }\n\n /**\n * Clear the model override cache (hidden or isolated models)\n */\n private static clearModelOverride(vp: Viewport) {\n this._overrideModelIds.delete(vp);\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
@import "~@itwin/core-react/lib/cjs/core-react/inputs/variables";
|
|
6
6
|
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
@import "~@itwin/core-react/lib/cjs/core-react/base/base";
|
|
6
6
|
|
|
7
7
|
// cspell:ignore leftpanel rightpanel
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
@import "~@itwin/appui-layout-react/lib/cjs/appui-layout-react/footer/variables";
|
|
6
6
|
|
|
7
7
|
.uifw-statusbar-separator {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
6
6
|
|
|
7
7
|
.uifw-sections-footer-contents {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
.uifw-statusFields-selectionCount {
|
|
6
6
|
gap: 4px;
|
|
7
7
|
min-width: 6em;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
@import "~@itwin/core-react/lib/cjs/core-react/style/breakpoints";
|
|
6
6
|
@import "~@itwin/appui-layout-react/lib/cjs/appui-layout-react/footer/variables";
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
.uifw-view-attributes-contents {
|
|
6
6
|
display: flex;
|
|
7
7
|
flex-direction: column;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
@import "~@itwin/core-react/lib/cjs/core-react/style/breakpoints";
|
|
6
6
|
|
|
7
7
|
.uifw-tile-loading-bar {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
@import "~@itwin/core-react/lib/cjs/core-react/style/breakpoints";
|
|
6
6
|
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
7
7
|
|
|
@@ -43,7 +43,7 @@ export declare function addMissingWidgets(frontstageDef: FrontstageDef, initialS
|
|
|
43
43
|
/** Removes NineZoneState widgets that are missing in frontstageDef.
|
|
44
44
|
* @internal
|
|
45
45
|
*/
|
|
46
|
-
export declare function removeMissingWidgets(frontstageDef: FrontstageDef,
|
|
46
|
+
export declare function removeMissingWidgets(frontstageDef: FrontstageDef, state: NineZoneState): NineZoneState;
|
|
47
47
|
type WidgetId = "leftStart" | "leftEnd" | "rightStart" | "rightEnd" | "topStart" | "topEnd" | "bottomStart" | "bottomEnd";
|
|
48
48
|
/** @internal */
|
|
49
49
|
export declare function getWidgetId(location: StagePanelLocation, section: StagePanelSection): WidgetId;
|
|
@@ -59,6 +59,8 @@ export declare function isFrontstageStateSettingResult(settingsResult: UiStateSt
|
|
|
59
59
|
/** @internal */
|
|
60
60
|
export declare function initializePanel(state: NineZoneState, frontstageDef: FrontstageDef, location: StagePanelLocation): NineZoneState;
|
|
61
61
|
/** @internal */
|
|
62
|
+
export declare const stateVersion = 14;
|
|
63
|
+
/** @internal */
|
|
62
64
|
export declare function initializeNineZoneState(frontstageDef: FrontstageDef): NineZoneState;
|
|
63
65
|
/** Converts from saved NineZoneState to NineZoneState.
|
|
64
66
|
* @note Restores toolSettings tab.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAIH,OAAO,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EACV,cAAc,EAEd,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAmB,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,KAAK,EAEV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,SAAS,EACT,QAAQ,EACT,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAIH,OAAO,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EACV,cAAc,EAEd,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAmB,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,KAAK,EAEV,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,SAAS,EACT,QAAQ,EACT,MAAM,2BAA2B,CAAC;AA8BnC,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,eAAe,EAAe,MAAM,8BAA8B,CAAC;AAG5E,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAkB9B,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AA6BvE,gBAAgB;AAChB,wBAAgB,cAAc,sDAoC7B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,QAkBjE;AAED,gBAAgB;AAChB,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,aAAa,EAAE,aAAa,iBA0B7B;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,oBAwB/D;AAED,gBAAgB;AAChB,wBAAgB,sBAAsB,uBAuBrC;AAMD,UAAU,gCAAgC;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,gBAAgB;AAChB,wBAAgB,2BAA2B,CAAC,EAC1C,aAAa,EACb,MAAM,GACP,EAAE,gCAAgC,eAuDlC;AAED,gBAAgB;AAChB,wBAAgB,SAAS,mBAqBxB;AAkBD,gBAAgB;AAChB,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,EACjC,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,QAAQ,GACjB,aAAa,CAuBf;AAED,gBAAgB;AAEhB,wBAAgB,aAAa,CAC3B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,EACpC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,iBAAiB,GACzB,aAAa,CAmGf;AA4BD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,aAAa,GAC1B,aAAa,CAsGf;AAoBD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,aAAa,GACnB,aAAa,CASf;AAMD,KAAK,QAAQ,GACT,WAAW,GACX,SAAS,GACT,YAAY,GACZ,UAAU,GACV,UAAU,GACV,QAAQ,GACR,aAAa,GACb,WAAW,CAAC;AAehB,gBAAgB;AAChB,wBAAgB,WAAW,CACzB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,iBAAiB,GACzB,QAAQ,CAmBV;AAED,gBAAgB;AAChB,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,iBAAiB,GACzB,aAAa,CAAC,SAAS,CAAC,CAI1B;AAED,gBAAgB;AAChB,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,kBAAkB,GAC3B,aAAa,CAwBf;AAED,gBAAgB;AAChB,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,oBAAoB,GACnC,cAAc,IAAI;IACnB,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC;IACrC,OAAO,EAAE,2BAA2B,CAAC;CACtC,CAGA;AAED,gBAAgB;AAChB,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,kBAAkB,iBA0B7B;AAgBD,gBAAgB;AAChB,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,gBAAgB;AAChB,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,aAAa,GAC3B,aAAa,CAyDf;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,kBAAkB,GACxB,aAAa,CA2Ff;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,kBAAkB,CAe1E;AAwDD,gBAAgB;AAChB,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,eAAe,GAAG,SAAS,WAEvE;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACxB,mHAAmH;IACnH,OAAO,EAAE,MAAM,CAAC;IAChB,+FAA+F;IAC/F,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;CACxC;AAED,gBAAgB;AAChB,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAGtD,KAAK,aAAa,GAAG,IAAI,CACvB,QAAQ,EACR,OAAO,GAAG,WAAW,GAAG,gCAAgC,GAAG,UAAU,CACtE,CAAC;AAEF,UAAU,cAAc;IACtB,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAAC;CACtC;AASD,UAAU,kBAAmB,SAAQ,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CAE/B;AAkDD,gBAAgB;AAChB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,iBA4FzB;AAgDD,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAgBlE;AAED,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAepE;AAED,gBAAgB;AAChB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAClB,KAAK,EAAE,MAAM,iBAQd;AAED,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,QAwDnE;AAED,gBAAgB;AAChB,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,WAAW,QA8CnB;AAED,gBAAgB;AAChB,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AAEvE,gBAAgB;AAChB,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,2BAA2B,CAAC,IAAI,CAAC,UAGhD;AAgCD,gBAAgB;AAChB,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,aAAa,EAC5B,0BAA0B,CAAC,EAAE,OAAO,QAkJrC;AAED,gBAAgB;AAEhB,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,QAwB3D"}
|