@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.
Files changed (105) hide show
  1. package/CHANGELOG.md +12 -4
  2. package/lib/cjs/appui-react/UiFramework.d.ts +0 -7
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +0 -22
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/_variables.scss +3 -3
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +3 -3
  8. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +3 -3
  9. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -2
  11. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  12. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.scss +3 -3
  13. package/lib/cjs/appui-react/configurableui/configurableui.scss +3 -3
  14. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +3 -3
  15. package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +3 -3
  16. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  17. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +25 -5
  18. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  19. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +3 -3
  20. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +3 -3
  21. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/pickers/ViewSelector.js +3 -1
  23. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  24. package/lib/cjs/appui-react/popup/CardPopup.scss +3 -3
  25. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
  26. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +0 -53
  27. package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  28. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +3 -3
  29. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +3 -3
  30. package/lib/cjs/appui-react/statusbar/Separator.scss +3 -3
  31. package/lib/cjs/appui-react/statusfields/SectionsField.scss +3 -3
  32. package/lib/cjs/appui-react/statusfields/SelectionCount.scss +3 -3
  33. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +3 -3
  34. package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +3 -3
  35. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +3 -3
  36. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -3
  37. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +3 -1
  38. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  39. package/lib/cjs/appui-react/widget-panels/Frontstage.js +93 -77
  40. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  41. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +3 -3
  42. package/lib/cjs/appui-react/widget-panels/Tab.scss +3 -3
  43. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  44. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  45. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +23 -29
  46. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  47. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +3 -3
  48. package/lib/cjs/appui-react/widget-panels/Toolbars.scss +3 -3
  49. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +1 -1
  50. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  51. package/lib/cjs/appui-react/widgets/WidgetDef.js +12 -11
  52. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  53. package/lib/esm/appui-react/UiFramework.d.ts +0 -7
  54. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  55. package/lib/esm/appui-react/UiFramework.js +0 -22
  56. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  57. package/lib/esm/appui-react/_variables.scss +3 -3
  58. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +3 -3
  59. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +3 -3
  60. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  61. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -2
  62. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  63. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.scss +3 -3
  64. package/lib/esm/appui-react/configurableui/configurableui.scss +3 -3
  65. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +3 -3
  66. package/lib/esm/appui-react/feedback/ValidationTextbox.scss +3 -3
  67. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  68. package/lib/esm/appui-react/frontstage/FrontstageDef.js +25 -5
  69. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  70. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +3 -3
  71. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +3 -3
  72. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  73. package/lib/esm/appui-react/pickers/ViewSelector.js +3 -1
  74. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  75. package/lib/esm/appui-react/popup/CardPopup.scss +3 -3
  76. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
  77. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +0 -53
  78. package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
  79. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +3 -3
  80. package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +3 -3
  81. package/lib/esm/appui-react/statusbar/Separator.scss +3 -3
  82. package/lib/esm/appui-react/statusfields/SectionsField.scss +3 -3
  83. package/lib/esm/appui-react/statusfields/SelectionCount.scss +3 -3
  84. package/lib/esm/appui-react/statusfields/SelectionScope.scss +3 -3
  85. package/lib/esm/appui-react/statusfields/ViewAttributes.scss +3 -3
  86. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +3 -3
  87. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +3 -3
  88. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +3 -1
  89. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  90. package/lib/esm/appui-react/widget-panels/Frontstage.js +90 -74
  91. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  92. package/lib/esm/appui-react/widget-panels/Frontstage.scss +3 -3
  93. package/lib/esm/appui-react/widget-panels/Tab.scss +3 -3
  94. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  95. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  96. package/lib/esm/appui-react/widget-panels/ToolSettings.js +23 -29
  97. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  98. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +3 -3
  99. package/lib/esm/appui-react/widget-panels/Toolbars.scss +3 -3
  100. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +1 -1
  101. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  102. package/lib/esm/appui-react/widgets/WidgetDef.js +12 -11
  103. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  104. package/lib/public/locales/en/UiFramework.json +3 -1
  105. package/package.json +12 -12
@@ -12,7 +12,6 @@ const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_common_1 = require("@itwin/core-common");
13
13
  const core_frontend_1 = require("@itwin/core-frontend");
14
14
  const SyncUiEventDispatcher_1 = require("../syncui/SyncUiEventDispatcher");
15
- const UiFramework_1 = require("../UiFramework");
16
15
  /** Supported Hide, Isolate, and Emphasize Actions. These also serve as FeatureTracking Ids.
17
16
  * @public
18
17
  */
@@ -29,48 +28,6 @@ var HideIsolateEmphasizeAction;
29
28
  HideIsolateEmphasizeAction["ClearOverrideModels"] = "ClearOverrideModels";
30
29
  HideIsolateEmphasizeAction["ClearOverrideCategories"] = "ClearOverrideCategories";
31
30
  })(HideIsolateEmphasizeAction = exports.HideIsolateEmphasizeAction || (exports.HideIsolateEmphasizeAction = {}));
32
- const featureIdMap = new Map([
33
- [
34
- HideIsolateEmphasizeAction.EmphasizeSelectedElements,
35
- "d74eb93f-deae-4700-8da6-1013a8a7aa26",
36
- ],
37
- [
38
- HideIsolateEmphasizeAction.IsolateSelectedElements,
39
- "24327638-1611-45fa-a379-fa73329098ec",
40
- ],
41
- [
42
- HideIsolateEmphasizeAction.IsolateSelectedCategories,
43
- "e58081ab-2c33-4a15-924f-71082b58ca3b",
44
- ],
45
- [
46
- HideIsolateEmphasizeAction.IsolateSelectedModels,
47
- "3475921e-7dd1-4547-993e-a3e284ef8b62",
48
- ],
49
- [
50
- HideIsolateEmphasizeAction.HideSelectedElements,
51
- "2ca673ec-001a-4890-bc25-18bc88358fe0",
52
- ],
53
- [
54
- HideIsolateEmphasizeAction.HideSelectedModels,
55
- "8b41e859-ae17-4e19-b220-87a5cf9f8242",
56
- ],
57
- [
58
- HideIsolateEmphasizeAction.HideSelectedCategories,
59
- "c5d6916b-e8d7-4796-bae9-a5303712d46b",
60
- ],
61
- [
62
- HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized,
63
- "7b135c8a-3f3c-4297-b36c-b0ac51f1d8de",
64
- ],
65
- [
66
- HideIsolateEmphasizeAction.ClearOverrideModels,
67
- "6e519b94-edab-4b13-9ce7-0bcdfa27ccfe",
68
- ],
69
- [
70
- HideIsolateEmphasizeAction.ClearOverrideCategories,
71
- "9d2be3c6-6992-4c30-84eb-10f6b9379d06",
72
- ],
73
- ]);
74
31
  /** Overrides given models to provide emphasize functionality
75
32
  * @public
76
33
  */
@@ -415,7 +372,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
415
372
  viewport: vp,
416
373
  action: HideIsolateEmphasizeAction.IsolateSelectedModels,
417
374
  });
418
- void UiFramework_1.UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedModels));
419
375
  SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
420
376
  }
421
377
  /**
@@ -430,7 +386,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
430
386
  viewport: vp,
431
387
  action: HideIsolateEmphasizeAction.IsolateSelectedCategories,
432
388
  });
433
- void UiFramework_1.UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedCategories));
434
389
  SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
435
390
  }
436
391
  /**
@@ -445,7 +400,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
445
400
  viewport: vp,
446
401
  action: HideIsolateEmphasizeAction.IsolateSelectedElements,
447
402
  });
448
- void UiFramework_1.UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedElements));
449
403
  SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
450
404
  // clear out selection now that any callbacks have processed
451
405
  const selection = vp.view.iModel.selectionSet;
@@ -464,7 +418,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
464
418
  viewport: vp,
465
419
  action: HideIsolateEmphasizeAction.HideSelectedModels,
466
420
  });
467
- void UiFramework_1.UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedModels));
468
421
  SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
469
422
  }
470
423
  /**
@@ -479,7 +432,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
479
432
  viewport: vp,
480
433
  action: HideIsolateEmphasizeAction.HideSelectedCategories,
481
434
  });
482
- void UiFramework_1.UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedCategories));
483
435
  SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
484
436
  }
485
437
  /**
@@ -494,7 +446,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
494
446
  viewport: vp,
495
447
  action: HideIsolateEmphasizeAction.HideSelectedElements,
496
448
  });
497
- void UiFramework_1.UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedElements));
498
449
  SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
499
450
  // clear out selection now that any callbacks have processed
500
451
  const selection = vp.view.iModel.selectionSet;
@@ -513,7 +464,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
513
464
  viewport: vp,
514
465
  action: HideIsolateEmphasizeAction.EmphasizeSelectedElements,
515
466
  });
516
- void UiFramework_1.UiFramework.postTelemetry(HideIsolateEmphasizeAction.EmphasizeSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.EmphasizeSelectedElements));
517
467
  SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
518
468
  // clear out selection now that any callbacks have processed
519
469
  const selection = vp.view.iModel.selectionSet;
@@ -532,7 +482,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
532
482
  viewport: vp,
533
483
  action: HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized,
534
484
  });
535
- void UiFramework_1.UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized, featureIdMap.get(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized));
536
485
  SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
537
486
  }
538
487
  /**
@@ -547,7 +496,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
547
496
  viewport: vp,
548
497
  action: HideIsolateEmphasizeAction.ClearOverrideModels,
549
498
  });
550
- void UiFramework_1.UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideModels, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideModels));
551
499
  SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
552
500
  }
553
501
  /**
@@ -562,7 +510,6 @@ class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {
562
510
  viewport: vp,
563
511
  action: HideIsolateEmphasizeAction.ClearOverrideCategories,
564
512
  });
565
- void UiFramework_1.UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideCategories, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideCategories));
566
513
  SyncUiEventDispatcher_1.SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);
567
514
  }
568
515
  /**
@@ -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, initialState: NineZoneState): NineZoneState;
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":"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"}
1
+ {"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"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"}