@itwin/appui-react 5.4.0 → 5.5.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 (85) hide show
  1. package/CHANGELOG.md +317 -30
  2. package/lib/appui-react/UiFramework.js +1 -1
  3. package/lib/appui-react/UiFramework.js.map +1 -1
  4. package/lib/appui-react/accudraw/AccuDrawWidget.d.ts.map +1 -1
  5. package/lib/appui-react/accudraw/AccuDrawWidget.js +1 -0
  6. package/lib/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
  7. package/lib/appui-react/backstage/BackstageItemUtilities.d.ts.map +1 -1
  8. package/lib/appui-react/backstage/BackstageItemUtilities.js +2 -0
  9. package/lib/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
  10. package/lib/appui-react/content/DefaultViewOverlay.d.ts.map +1 -1
  11. package/lib/appui-react/content/DefaultViewOverlay.js +6 -2
  12. package/lib/appui-react/content/DefaultViewOverlay.js.map +1 -1
  13. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  14. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.js +3 -1
  15. package/lib/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  16. package/lib/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  17. package/lib/appui-react/frontstage/StandardFrontstageProvider.js +1 -0
  18. package/lib/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  19. package/lib/appui-react/messages/Pointer.js +1 -1
  20. package/lib/appui-react/messages/Pointer.js.map +1 -1
  21. package/lib/appui-react/navigationaids/CubeNavigationAidControl.d.ts.map +1 -1
  22. package/lib/appui-react/navigationaids/CubeNavigationAidControl.js +1 -0
  23. package/lib/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
  24. package/lib/appui-react/navigationaids/DrawingNavigationAidControl.d.ts.map +1 -1
  25. package/lib/appui-react/navigationaids/DrawingNavigationAidControl.js +1 -0
  26. package/lib/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
  27. package/lib/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  28. package/lib/appui-react/navigationaids/SheetNavigationAid.js +1 -0
  29. package/lib/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  30. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  31. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -0
  32. package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  33. package/lib/appui-react/popup/KeyinPalettePanel.js +1 -1
  34. package/lib/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  35. package/lib/appui-react/popup/PopupManager.d.ts.map +1 -1
  36. package/lib/appui-react/popup/PopupManager.js +9 -3
  37. package/lib/appui-react/popup/PopupManager.js.map +1 -1
  38. package/lib/appui-react/preview/PreviewFeatures.d.ts +5 -0
  39. package/lib/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  40. package/lib/appui-react/preview/PreviewFeatures.js +1 -0
  41. package/lib/appui-react/preview/PreviewFeatures.js.map +1 -1
  42. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.d.ts.map +1 -1
  43. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +8 -2
  44. package/lib/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  45. package/lib/appui-react/preview/tool-settings-new-editors/useToolsSettingsNewEditors.d.ts +5 -0
  46. package/lib/appui-react/preview/tool-settings-new-editors/useToolsSettingsNewEditors.d.ts.map +1 -0
  47. package/lib/appui-react/preview/tool-settings-new-editors/useToolsSettingsNewEditors.js +13 -0
  48. package/lib/appui-react/preview/tool-settings-new-editors/useToolsSettingsNewEditors.js.map +1 -0
  49. package/lib/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
  50. package/lib/appui-react/statusbar/StatusBarItemUtilities.js +2 -0
  51. package/lib/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  52. package/lib/appui-react/statusfields/ActivityCenter.js +1 -1
  53. package/lib/appui-react/statusfields/ActivityCenter.js.map +1 -1
  54. package/lib/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -1
  55. package/lib/appui-react/toolbar/ToolbarItemUtilities.js +3 -0
  56. package/lib/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  57. package/lib/appui-react/toolbar/new-toolbars/GroupItem.d.ts +1 -1
  58. package/lib/appui-react/toolbar/new-toolbars/Item.d.ts +2 -2
  59. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.d.ts.map +1 -1
  60. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.js +1 -0
  61. package/lib/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  62. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  63. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js +9 -2
  64. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  65. package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  66. package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
  67. package/lib/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  68. package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  69. package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +1 -0
  70. package/lib/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  71. package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  72. package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +1 -0
  73. package/lib/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  74. package/lib/appui-react/uiprovider/ComponentGenerator.d.ts.map +1 -1
  75. package/lib/appui-react/uiprovider/ComponentGenerator.js +4 -2
  76. package/lib/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  77. package/lib/appui-react/utils/PropsHelper.js +1 -1
  78. package/lib/appui-react/utils/PropsHelper.js.map +1 -1
  79. package/lib/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  80. package/lib/appui-react/widgets/BasicToolWidget.js +3 -1
  81. package/lib/appui-react/widgets/BasicToolWidget.js.map +1 -1
  82. package/lib/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  83. package/lib/appui-react/widgets/WidgetDef.js +0 -1
  84. package/lib/appui-react/widgets/WidgetDef.js.map +1 -1
  85. package/package.json +29 -28
@@ -1 +1 @@
1
- {"version":3,"file":"StandardNavigationToolsProvider.js","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/StandardNavigationToolsProvider.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAOH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,sCAAsC,EAAE,MAAM,6CAA6C,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,4DAA4D;AAC5D,MAAM,OAAO,+BAAgC,SAAQ,mBAAmB;IAEtE;;;;;;;;OAQG;IACI,MAAM,CAAC,QAAQ,CACpB,UAAkB,EAClB,sBAA+C,EAC/C,gBAIY;QAEZ,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,IAAI,+BAA+B,CAClD,UAAU,EACV,sBAAsB,EACtB,gBAAgB,CACjB,CAAC;QACF,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YACE,UAAkB,EAClB,sBAA2D,EAC3D,gBAIY;QAEZ,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,IAAI,sCAAsC,CAC/D,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAEe,2BAA2B,CACzC,QAAgB,EAChB,WAAmB,EACnB,YAA0B,EAC1B,kBAAsC,EACtC,aAAmB;QAEnB,4DAA4D;QAC5D,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAC7C,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,aAAa,CACd,CAAC;IACJ,CAAC;CACF","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 StandardUiItemsProvider\n */\n\nimport type {\n ToolbarItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"../toolbar/ToolbarItem.js\";\nimport { BaseUiItemsProvider } from \"./BaseUiItemsProvider.js\";\nimport type { DefaultNavigationTools } from \"./StandardNavigationToolsUiItemsProvider.js\";\nimport { StandardNavigationToolsUiItemsProvider } from \"./StandardNavigationToolsUiItemsProvider.js\";\nimport { UiItemsManager } from \"./UiItemsManager.js\";\n\n/** Provide standard tools for the ViewNavigationWidgetComposer.\n * @public\n * @deprecated in 4.17.0. Use {@link StandardNavigationToolsUiItemsProvider} instead. Supported frontstages can be specified when registering the provider.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class StandardNavigationToolsProvider extends BaseUiItemsProvider {\n private uiItemsProvider: StandardNavigationToolsUiItemsProvider;\n /**\n * static function to register the StandardContentToolsProvider\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\n * to set up custom stage with their own subset of standard tools\n * @param defaultNavigationTools - if undefined all available tools are provided to stage. If defined only those\n * specific tool buttons are shown.\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\n */\n public static register(\n providerId: string,\n defaultNavigationTools?: DefaultNavigationTools,\n isSupportedStage?: (\n stageId: string,\n stageUsage: string,\n stageAppData?: any\n ) => boolean\n ) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const provider = new StandardNavigationToolsProvider(\n providerId,\n defaultNavigationTools,\n isSupportedStage\n );\n UiItemsManager.register(provider);\n return provider;\n }\n\n constructor(\n providerId: string,\n defaultNavigationTools?: DefaultNavigationTools | undefined,\n isSupportedStage?: (\n stageId: string,\n stageUsage: string,\n stageAppData?: any\n ) => boolean\n ) {\n super(providerId, isSupportedStage);\n this.uiItemsProvider = new StandardNavigationToolsUiItemsProvider(\n defaultNavigationTools\n );\n }\n\n public override provideToolbarItemsInternal(\n _stageId: string,\n _stageUsage: string,\n toolbarUsage: ToolbarUsage,\n toolbarOrientation: ToolbarOrientation,\n _stageAppData?: any\n ): ToolbarItem[] {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.uiItemsProvider.provideToolbarItems(\n _stageId,\n _stageUsage,\n toolbarUsage,\n toolbarOrientation,\n _stageAppData\n );\n }\n}\n"]}
1
+ {"version":3,"file":"StandardNavigationToolsProvider.js","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/StandardNavigationToolsProvider.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAOH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,sCAAsC,EAAE,MAAM,6CAA6C,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,4DAA4D;AAC5D,MAAM,OAAO,+BAAgC,SAAQ,mBAAmB;IAEtE;;;;;;;;OAQG;IACI,MAAM,CAAC,QAAQ,CACpB,UAAkB,EAClB,sBAA+C,EAC/C,gBAIY;QAEZ,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,IAAI,+BAA+B,CAClD,UAAU,EACV,sBAAsB,EACtB,gBAAgB,CACjB,CAAC;QACF,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YACE,UAAkB,EAClB,sBAA2D,EAC3D,gBAIY;QAEZ,4DAA4D;QAC5D,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,IAAI,sCAAsC,CAC/D,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAEe,2BAA2B,CACzC,QAAgB,EAChB,WAAmB,EACnB,YAA0B,EAC1B,kBAAsC,EACtC,aAAmB;QAEnB,4DAA4D;QAC5D,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAC7C,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,aAAa,CACd,CAAC;IACJ,CAAC;CACF","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 StandardUiItemsProvider\n */\n\nimport type {\n ToolbarItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"../toolbar/ToolbarItem.js\";\nimport { BaseUiItemsProvider } from \"./BaseUiItemsProvider.js\";\nimport type { DefaultNavigationTools } from \"./StandardNavigationToolsUiItemsProvider.js\";\nimport { StandardNavigationToolsUiItemsProvider } from \"./StandardNavigationToolsUiItemsProvider.js\";\nimport { UiItemsManager } from \"./UiItemsManager.js\";\n\n/** Provide standard tools for the ViewNavigationWidgetComposer.\n * @public\n * @deprecated in 4.17.0. Use {@link StandardNavigationToolsUiItemsProvider} instead. Supported frontstages can be specified when registering the provider.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class StandardNavigationToolsProvider extends BaseUiItemsProvider {\n private uiItemsProvider: StandardNavigationToolsUiItemsProvider;\n /**\n * static function to register the StandardContentToolsProvider\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\n * to set up custom stage with their own subset of standard tools\n * @param defaultNavigationTools - if undefined all available tools are provided to stage. If defined only those\n * specific tool buttons are shown.\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\n */\n public static register(\n providerId: string,\n defaultNavigationTools?: DefaultNavigationTools,\n isSupportedStage?: (\n stageId: string,\n stageUsage: string,\n stageAppData?: any\n ) => boolean\n ) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const provider = new StandardNavigationToolsProvider(\n providerId,\n defaultNavigationTools,\n isSupportedStage\n );\n UiItemsManager.register(provider);\n return provider;\n }\n\n constructor(\n providerId: string,\n defaultNavigationTools?: DefaultNavigationTools | undefined,\n isSupportedStage?: (\n stageId: string,\n stageUsage: string,\n stageAppData?: any\n ) => boolean\n ) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n super(providerId, isSupportedStage);\n this.uiItemsProvider = new StandardNavigationToolsUiItemsProvider(\n defaultNavigationTools\n );\n }\n\n public override provideToolbarItemsInternal(\n _stageId: string,\n _stageUsage: string,\n toolbarUsage: ToolbarUsage,\n toolbarOrientation: ToolbarOrientation,\n _stageAppData?: any\n ): ToolbarItem[] {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.uiItemsProvider.provideToolbarItems(\n _stageId,\n _stageUsage,\n toolbarUsage,\n toolbarOrientation,\n _stageAppData\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StandardStatusbarItemsProvider.d.ts","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAEnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AAEH,qBAAa,8BAA+B,SAAQ,mBAAmB;IACrE,OAAO,CAAC,eAAe,CAAmC;gBAExD,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,qBAAqB,GAAG,SAAS,EACjD,gBAAgB,CAAC,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,GAAG,KACf,OAAO;IAMd;;;;;;;;OAQG;WACW,QAAQ,CACpB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,qBAAqB,EACpC,gBAAgB,CAAC,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,GAAG,KACf,OAAO;IAYE,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,GAAG,GAClB,aAAa,EAAE;CAQnB"}
1
+ {"version":3,"file":"StandardStatusbarItemsProvider.d.ts","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAEnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AAEH,qBAAa,8BAA+B,SAAQ,mBAAmB;IACrE,OAAO,CAAC,eAAe,CAAmC;gBAExD,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,qBAAqB,GAAG,SAAS,EACjD,gBAAgB,CAAC,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,GAAG,KACf,OAAO;IAOd;;;;;;;;OAQG;WACW,QAAQ,CACpB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,qBAAqB,EACpC,gBAAgB,CAAC,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,GAAG,KACf,OAAO;IAYE,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,GAAG,GAClB,aAAa,EAAE;CAQnB"}
@@ -15,6 +15,7 @@ import { BaseUiItemsProvider } from "./BaseUiItemsProvider.js";
15
15
  // eslint-disable-next-line @typescript-eslint/no-deprecated
16
16
  export class StandardStatusbarItemsProvider extends BaseUiItemsProvider {
17
17
  constructor(providerId, _defaultItems, isSupportedStage) {
18
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
18
19
  super(providerId, isSupportedStage);
19
20
  this.uiItemsProvider = new StandardStatusbarUiItemsProvider(_defaultItems);
20
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StandardStatusbarItemsProvider.js","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAEzF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AACH,4DAA4D;AAC5D,MAAM,OAAO,8BAA+B,SAAQ,mBAAmB;IAErE,YACE,UAAkB,EAClB,aAAiD,EACjD,gBAIY;QAEZ,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,IAAI,gCAAgC,CAAC,aAAa,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,QAAQ,CACpB,UAAkB,EAClB,YAAoC,EACpC,gBAIY;QAEZ,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,IAAI,8BAA8B,CACjD,UAAU,EACV,YAAY,EACZ,gBAAgB,CACjB,CAAC;QACF,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEe,6BAA6B,CAC3C,QAAgB,EAChB,WAAmB,EACnB,aAAmB;QAEnB,4DAA4D;QAC5D,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAC/C,QAAQ,EACR,WAAW,EACX,aAAa,CACd,CAAC;IACJ,CAAC;CACF","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 StandardUiItemsProvider\n */\n\nimport type { DefaultStatusbarItems } from \"./StandardStatusbarUiItemsProvider.js\";\nimport { StandardStatusbarUiItemsProvider } from \"./StandardStatusbarUiItemsProvider.js\";\nimport type { StatusBarItem } from \"../statusbar/StatusBarItem.js\";\nimport { UiItemsManager } from \"./UiItemsManager.js\";\nimport { BaseUiItemsProvider } from \"./BaseUiItemsProvider.js\";\n\n/** Provide standard status bar fields.\n * @public\n * @deprecated in 4.17.0. Use {@link StandardStatusbarUiItemsProvider} instead. Supported frontstages can be specified when registering the provider.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class StandardStatusbarItemsProvider extends BaseUiItemsProvider {\n private uiItemsProvider: StandardStatusbarUiItemsProvider;\n constructor(\n providerId: string,\n _defaultItems?: DefaultStatusbarItems | undefined,\n isSupportedStage?: (\n stageId: string,\n stageUsage: string,\n stageAppData?: any\n ) => boolean\n ) {\n super(providerId, isSupportedStage);\n this.uiItemsProvider = new StandardStatusbarUiItemsProvider(_defaultItems);\n }\n\n /**\n * static function to register the StandardStatusbarItemsProvider\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\n * to set up custom stage with their own subset of standard status bar items.\n * @param defaultItems - if undefined all available item are provided to stage except for activityCenter. If defined only those\n * specific tool buttons are shown.\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\n */\n public static register(\n providerId: string,\n defaultItems?: DefaultStatusbarItems,\n isSupportedStage?: (\n stageId: string,\n stageUsage: string,\n stageAppData?: any\n ) => boolean\n ) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const provider = new StandardStatusbarItemsProvider(\n providerId,\n defaultItems,\n isSupportedStage\n );\n UiItemsManager.register(provider);\n return provider;\n }\n\n public override provideStatusBarItemsInternal(\n _stageId: string,\n _stageUsage: string,\n _stageAppData?: any\n ): StatusBarItem[] {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.uiItemsProvider.provideStatusBarItems(\n _stageId,\n _stageUsage,\n _stageAppData\n );\n }\n}\n"]}
1
+ {"version":3,"file":"StandardStatusbarItemsProvider.js","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAEzF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;GAGG;AACH,4DAA4D;AAC5D,MAAM,OAAO,8BAA+B,SAAQ,mBAAmB;IAErE,YACE,UAAkB,EAClB,aAAiD,EACjD,gBAIY;QAEZ,4DAA4D;QAC5D,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,IAAI,gCAAgC,CAAC,aAAa,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,QAAQ,CACpB,UAAkB,EAClB,YAAoC,EACpC,gBAIY;QAEZ,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,IAAI,8BAA8B,CACjD,UAAU,EACV,YAAY,EACZ,gBAAgB,CACjB,CAAC;QACF,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEe,6BAA6B,CAC3C,QAAgB,EAChB,WAAmB,EACnB,aAAmB;QAEnB,4DAA4D;QAC5D,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAC/C,QAAQ,EACR,WAAW,EACX,aAAa,CACd,CAAC;IACJ,CAAC;CACF","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 StandardUiItemsProvider\n */\n\nimport type { DefaultStatusbarItems } from \"./StandardStatusbarUiItemsProvider.js\";\nimport { StandardStatusbarUiItemsProvider } from \"./StandardStatusbarUiItemsProvider.js\";\nimport type { StatusBarItem } from \"../statusbar/StatusBarItem.js\";\nimport { UiItemsManager } from \"./UiItemsManager.js\";\nimport { BaseUiItemsProvider } from \"./BaseUiItemsProvider.js\";\n\n/** Provide standard status bar fields.\n * @public\n * @deprecated in 4.17.0. Use {@link StandardStatusbarUiItemsProvider} instead. Supported frontstages can be specified when registering the provider.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class StandardStatusbarItemsProvider extends BaseUiItemsProvider {\n private uiItemsProvider: StandardStatusbarUiItemsProvider;\n constructor(\n providerId: string,\n _defaultItems?: DefaultStatusbarItems | undefined,\n isSupportedStage?: (\n stageId: string,\n stageUsage: string,\n stageAppData?: any\n ) => boolean\n ) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n super(providerId, isSupportedStage);\n this.uiItemsProvider = new StandardStatusbarUiItemsProvider(_defaultItems);\n }\n\n /**\n * static function to register the StandardStatusbarItemsProvider\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\n * to set up custom stage with their own subset of standard status bar items.\n * @param defaultItems - if undefined all available item are provided to stage except for activityCenter. If defined only those\n * specific tool buttons are shown.\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\n */\n public static register(\n providerId: string,\n defaultItems?: DefaultStatusbarItems,\n isSupportedStage?: (\n stageId: string,\n stageUsage: string,\n stageAppData?: any\n ) => boolean\n ) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const provider = new StandardStatusbarItemsProvider(\n providerId,\n defaultItems,\n isSupportedStage\n );\n UiItemsManager.register(provider);\n return provider;\n }\n\n public override provideStatusBarItemsInternal(\n _stageId: string,\n _stageUsage: string,\n _stageAppData?: any\n ): StatusBarItem[] {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this.uiItemsProvider.provideStatusBarItems(\n _stageId,\n _stageUsage,\n _stageAppData\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentGenerator.d.ts","sourceRoot":"","sources":["../../../src/appui-react/uiprovider/ComponentGenerator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mCAAmC,CAAC;AAE3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAKV,SAAS,EACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAkL1E;;GAEG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,SAAS,CAAC;gBADV,eAAe,EAAE,oBAAoB,EACrC,SAAS,CAAC,GAAE,MAAM,IAAI,aAAA;IAGhC,IAAW,cAAc,yBAExB;IAED,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,iCAAiC;IA2BzC,OAAO,CAAC,mCAAmC;IAiC3C,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,YAAY;IAKb,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS;IAazD,oBAAoB,CACzB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,MAAM,GACf,iBAAiB;IAWpB,6DAA6D;IACtD,sBAAsB,IAAI,iBAAiB,EAAE;CAKrD"}
1
+ {"version":3,"file":"ComponentGenerator.d.ts","sourceRoot":"","sources":["../../../src/appui-react/uiprovider/ComponentGenerator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mCAAmC,CAAC;AAE3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAKV,SAAS,EACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAiM1E;;GAEG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,SAAS,CAAC;gBADV,eAAe,EAAE,oBAAoB,EACrC,SAAS,CAAC,GAAE,MAAM,IAAI,aAAA;IAGhC,IAAW,cAAc,yBAExB;IAED,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,iCAAiC;IA2BzC,OAAO,CAAC,mCAAmC;IAiC3C,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,YAAY;IAKb,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS;IAazD,oBAAoB,CACzB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,MAAM,GACf,iBAAiB;IAWpB,6DAA6D;IACtD,sBAAsB,IAAI,iBAAiB,EAAE;CAKrD"}
@@ -9,9 +9,11 @@ import "./DefaultDialogGridContainer.scss";
9
9
  import classnames from "classnames";
10
10
  import * as React from "react";
11
11
  import { PropertyValueFormat, UiLayoutDataProvider, } from "@itwin/appui-abstract";
12
+ import { PropertyRecordEditor } from "@itwin/components-react";
12
13
  import { EditorContainer } from "@itwin/components-react";
13
14
  import { assert, Logger } from "@itwin/core-bentley";
14
15
  import { Label } from "@itwin/itwinui-react";
16
+ import { useToolSettingsNewEditors } from "../preview/tool-settings-new-editors/useToolsSettingsNewEditors.js";
15
17
  function EditorLabel({ uiDataProvider, item, isLeftmostRecord, }) {
16
18
  const [isDisabled, setIsDisabled] = React.useState(!!item.isDisabled);
17
19
  const displayLabel = React.useMemo(() => {
@@ -108,8 +110,8 @@ function PropertyEditor({ uiDataProvider, initialItem, isLock = false, setFocus,
108
110
  uiDataProvider.reloadDialogItems(true);
109
111
  }, [initialItem.property.name, propertyRecord, uiDataProvider]);
110
112
  const handleCancel = () => { };
111
- return (React.createElement("div", { key: initialItem.property.name, className: className },
112
- React.createElement(EditorContainer, { key: initialItem.property.name, propertyRecord: propertyRecord, setFocus: setFocus, onCommit: handleCommit, onCancel: onCancel ?? handleCancel })));
113
+ const useNewEditors = useToolSettingsNewEditors();
114
+ return (React.createElement("div", { key: initialItem.property.name, className: className }, useNewEditors ? (React.createElement(PropertyRecordEditor, { key: initialItem.property.name, propertyRecord: propertyRecord, setFocus: setFocus, onCommit: handleCommit, onCancel: onCancel ?? handleCancel, editorSystem: "new", size: "small" })) : (React.createElement(EditorContainer, { key: initialItem.property.name, propertyRecord: propertyRecord, setFocus: setFocus, onCommit: handleCommit, onCancel: onCancel ?? handleCancel }))));
113
115
  }
114
116
  /** Utility methods to generate react ui from DialogRow specs
115
117
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentGenerator.js","sourceRoot":"","sources":["../../../src/appui-react/uiprovider/ComponentGenerator.tsx"],"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 UiProvider\n */\n\nimport \"./DefaultDialogGridContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n BaseDialogItem,\n DialogItem,\n DialogItemValue,\n DialogPropertySyncItem,\n DialogRow,\n} from \"@itwin/appui-abstract\";\nimport {\n PropertyValueFormat,\n UiLayoutDataProvider,\n} from \"@itwin/appui-abstract\";\nimport type { PropertyUpdatedArgs } from \"@itwin/components-react\";\nimport { EditorContainer } from \"@itwin/components-react\";\nimport type { ToolSettingsEntry } from \"../widget-panels/ToolSettings.js\";\nimport { assert, Logger } from \"@itwin/core-bentley\";\nimport { Label } from \"@itwin/itwinui-react\";\n\nfunction EditorLabel({\n uiDataProvider,\n item,\n isLeftmostRecord,\n}: {\n uiDataProvider: UiLayoutDataProvider;\n item: DialogItem;\n isLeftmostRecord?: boolean;\n}) {\n const [isDisabled, setIsDisabled] = React.useState(!!item.isDisabled);\n const displayLabel = React.useMemo(() => {\n return item.property.displayLabel || item.property.name;\n }, [item]);\n\n // listen for tool sync property events and update the isDisabled state\n React.useEffect(() => {\n return uiDataProvider.onSyncPropertiesChangeEvent.addListener((args) => {\n const mySyncItem = args.properties.find(\n (syncItem) => syncItem.propertyName === item.property.name\n );\n if (mySyncItem) {\n setIsDisabled(!!mySyncItem.isDisabled);\n }\n });\n }, [uiDataProvider, item]);\n\n const className = classnames(\n \"uifw-default-label\",\n !!isLeftmostRecord && \"uifw-default-narrow-only-display\"\n );\n return (\n <Label\n className={className}\n htmlFor={item.property.name}\n disabled={isDisabled}\n >\n {displayLabel}:\n </Label>\n );\n}\n\nfunction PropertyEditor({\n uiDataProvider,\n initialItem,\n isLock = false,\n setFocus,\n onCancel,\n}: {\n uiDataProvider: UiLayoutDataProvider;\n initialItem: BaseDialogItem;\n isLock?: boolean;\n setFocus?: boolean;\n onCancel?: () => void;\n}) {\n const getLatestRecordValue = React.useCallback(\n (initial: BaseDialogItem) => {\n let newRecord = UiLayoutDataProvider.getPropertyRecord(initial);\n\n const foundItem = isLock\n ? uiDataProvider.items.find(\n (item) => item.lockProperty?.property.name === initial.property.name\n )\n : uiDataProvider.items.find(\n (item) => item.property.name === initial.property.name\n );\n if (foundItem) {\n if (isLock) {\n newRecord = newRecord.copyWithNewValue({\n value: foundItem.lockProperty!.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n });\n newRecord.isDisabled = foundItem.lockProperty!.isDisabled;\n } else {\n newRecord = newRecord.copyWithNewValue({\n value: foundItem.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n });\n newRecord.isDisabled = foundItem.isDisabled;\n }\n }\n return newRecord;\n },\n [isLock, uiDataProvider.items]\n );\n\n const currentRecord = getLatestRecordValue(initialItem);\n const [propertyRecord, setPropertyRecord] = React.useState(currentRecord);\n\n // monitor tool for sync UI events\n React.useEffect(() => {\n return uiDataProvider.onSyncPropertiesChangeEvent.addListener((args) => {\n const mySyncItem = args.properties.find(\n (syncItem: DialogPropertySyncItem) =>\n syncItem.propertyName === initialItem.property.name\n );\n if (mySyncItem) {\n const newPropertyValue = propertyRecord.copyWithNewValue(\n {\n value: mySyncItem.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n displayValue: mySyncItem.value.displayValue,\n },\n mySyncItem.property\n );\n\n if (mySyncItem.property) {\n if (mySyncItem.property.name === mySyncItem.propertyName) {\n newPropertyValue.isDisabled = mySyncItem.isDisabled;\n setPropertyRecord(newPropertyValue);\n } else {\n Logger.logError(\n \"PropertyEditor\",\n `Error trying to replace propertyName=${mySyncItem.propertyName} with property named ${mySyncItem.property.name}`\n );\n }\n } else {\n newPropertyValue.isDisabled = mySyncItem.isDisabled;\n setPropertyRecord(newPropertyValue);\n }\n }\n });\n }, [uiDataProvider, propertyRecord, initialItem.property.name]);\n\n React.useEffect(() => {\n return uiDataProvider.onItemsReloadedEvent.addListener(() => {\n const newItem = findDialogItem(\n uiDataProvider,\n initialItem.property.name,\n isLock\n );\n if (!newItem) return;\n setPropertyRecord(getLatestRecordValue(newItem));\n });\n }, [uiDataProvider, initialItem.property.name, getLatestRecordValue, isLock]);\n\n const className = React.useMemo(\n () => (isLock ? \"uifw-default-property-lock\" : \"uifw-default-editor\"),\n [isLock]\n );\n const handleCommit = React.useCallback(\n (commit: PropertyUpdatedArgs) => {\n // UiLayoutDataProvider supports only primitive property types\n assert(\n commit.newValue.valueFormat === PropertyValueFormat.Primitive &&\n commit.propertyRecord.value.valueFormat ===\n PropertyValueFormat.Primitive\n );\n const newPropertyValue = propertyRecord.copyWithNewValue(commit.newValue);\n const syncItem: DialogPropertySyncItem = {\n value: commit.newValue as DialogItemValue,\n propertyName: initialItem.property.name,\n isDisabled: newPropertyValue.isDisabled,\n };\n uiDataProvider.applyUiPropertyChange(syncItem);\n // Now have the uiDataProvider refetch the latest property values from the tool\n uiDataProvider.reloadDialogItems(true);\n },\n [initialItem.property.name, propertyRecord, uiDataProvider]\n );\n const handleCancel = () => {};\n\n return (\n <div key={initialItem.property.name} className={className}>\n <EditorContainer\n key={initialItem.property.name}\n propertyRecord={propertyRecord}\n setFocus={setFocus}\n onCommit={handleCommit}\n onCancel={onCancel ?? handleCancel}\n />\n </div>\n );\n}\n\n/** Utility methods to generate react ui from DialogRow specs\n * @public\n */\nexport class ComponentGenerator {\n constructor(\n private _uiDataProvider: UiLayoutDataProvider,\n private _onCancel?: () => void\n ) {}\n\n public get uiDataProvider() {\n return this._uiDataProvider;\n }\n\n private getEditor(\n item: BaseDialogItem,\n isLock = false,\n setFocus = false\n ): React.ReactNode {\n return (\n <PropertyEditor\n key={item.property.name}\n uiDataProvider={this.uiDataProvider}\n initialItem={item}\n isLock={isLock}\n setFocus={setFocus}\n onCancel={this._onCancel}\n />\n );\n }\n\n private generateRowWithButtonGroupEditors(\n row: DialogRow,\n rowIndex: number\n ): React.ReactNode {\n if (1 === row.items.length) {\n return (\n <div\n key={row.items[0].property.name}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n {this.getEditor(row.items[0])}\n </div>\n );\n }\n\n return (\n <div\n key={rowIndex}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item) => this.getEditor(item))}\n </div>\n </div>\n );\n }\n\n private generateEntryWithButtonGroupEditors(\n row: DialogRow,\n rowIndex: number\n ): ToolSettingsEntry {\n if (1 === row.items.length) {\n return {\n labelNode: \"\",\n editorNode: (\n <div\n key={row.items[0].property.name}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n {this.getEditor(row.items[0])}\n </div>\n ),\n };\n }\n\n return {\n labelNode: \"\",\n editorNode: (\n <div\n key={rowIndex}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item) => this.getEditor(item))}\n </div>\n </div>\n ),\n };\n }\n\n private getEditorLabel(\n item: DialogItem,\n isLeftmostRecord = false\n ): React.ReactNode {\n return (\n <EditorLabel\n uiDataProvider={this.uiDataProvider}\n item={item}\n isLeftmostRecord={isLeftmostRecord}\n />\n );\n }\n\n private getLeftLockAndLabel(\n rowItem: DialogItem,\n multiplePropertiesOnRow: boolean\n ): React.ReactNode {\n const record = UiLayoutDataProvider.getPropertyRecord(rowItem);\n const lockEditor = UiLayoutDataProvider.hasAssociatedLockProperty(rowItem)\n ? this.getEditor(rowItem.lockProperty!, true)\n : null;\n const label = UiLayoutDataProvider.editorWantsLabel(rowItem)\n ? this.getEditorLabel(rowItem)\n : null;\n const classNames = multiplePropertiesOnRow\n ? \"uifw-default-lock-and-label uifw-default-wide-only-display\"\n : \"uifw-default-lock-and-label\";\n return (\n <div key={`lock-${record.property.name}`} className={classNames}>\n {lockEditor}\n {label}\n </div>\n );\n }\n\n private getInlineLabelAndEditor(\n item: DialogItem,\n isLeftmostRecord: boolean\n ): React.ReactNode {\n const label = UiLayoutDataProvider.editorWantsLabel(item)\n ? this.getEditorLabel(item, isLeftmostRecord)\n : null;\n return (\n <div\n key={item.property.name}\n className=\"uifw-default-inline-label-and-editor\"\n >\n {label}\n {this.getEditor(item)}\n </div>\n );\n }\n\n private getRowWithMultipleEditors(row: DialogRow): React.ReactNode {\n return (\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item: DialogItem, index: number) =>\n this.getInlineLabelAndEditor(item, index === 0)\n )}\n </div>\n );\n }\n\n private getDivForRow(row: DialogRow): React.ReactNode {\n if (row.items.length === 1) return this.getEditor(row.items[0]);\n return this.getRowWithMultipleEditors(row);\n }\n\n public getRow(row: DialogRow, rowIndex: number): React.ReactNode {\n if (UiLayoutDataProvider.onlyContainButtonGroupEditors(row)) {\n return this.generateRowWithButtonGroupEditors(row, rowIndex);\n } else {\n return (\n <React.Fragment key={rowIndex}>\n {this.getLeftLockAndLabel(row.items[0], row.items.length > 1)}\n {this.getDivForRow(row)}\n </React.Fragment>\n );\n }\n }\n\n public getToolSettingsEntry(\n row: DialogRow,\n rowIndex: number\n ): ToolSettingsEntry {\n if (UiLayoutDataProvider.onlyContainButtonGroupEditors(row)) {\n return this.generateEntryWithButtonGroupEditors(row, rowIndex);\n } else {\n return {\n labelNode: this.getLeftLockAndLabel(row.items[0], row.items.length > 1),\n editorNode: this.getDivForRow(row),\n };\n }\n }\n\n /** ToolSettingsEntries are used by the tool settings bar. */\n public getToolSettingsEntries(): ToolSettingsEntry[] {\n return this.uiDataProvider.rows.map((row: DialogRow, index: number) =>\n this.getToolSettingsEntry(row, index)\n );\n }\n}\n\nfunction findDialogItem(\n uiDataProvider: UiLayoutDataProvider,\n propertyName: string,\n isLock: boolean\n) {\n const dialogItem = uiDataProvider.items.find((item) => {\n if (isLock) {\n return item.lockProperty?.property.name === propertyName;\n }\n return item.property.name === propertyName;\n });\n return isLock ? dialogItem?.lockProperty : dialogItem;\n}\n"]}
1
+ {"version":3,"file":"ComponentGenerator.js","sourceRoot":"","sources":["../../../src/appui-react/uiprovider/ComponentGenerator.tsx"],"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 UiProvider\n */\n\nimport \"./DefaultDialogGridContainer.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n BaseDialogItem,\n DialogItem,\n DialogItemValue,\n DialogPropertySyncItem,\n DialogRow,\n} from \"@itwin/appui-abstract\";\nimport {\n PropertyValueFormat,\n UiLayoutDataProvider,\n} from \"@itwin/appui-abstract\";\nimport type { PropertyUpdatedArgs } from \"@itwin/components-react\";\nimport { PropertyRecordEditor } from \"@itwin/components-react\";\nimport { EditorContainer } from \"@itwin/components-react\";\nimport type { ToolSettingsEntry } from \"../widget-panels/ToolSettings.js\";\nimport { assert, Logger } from \"@itwin/core-bentley\";\nimport { Label } from \"@itwin/itwinui-react\";\nimport { useToolSettingsNewEditors } from \"../preview/tool-settings-new-editors/useToolsSettingsNewEditors.js\";\n\nfunction EditorLabel({\n uiDataProvider,\n item,\n isLeftmostRecord,\n}: {\n uiDataProvider: UiLayoutDataProvider;\n item: DialogItem;\n isLeftmostRecord?: boolean;\n}) {\n const [isDisabled, setIsDisabled] = React.useState(!!item.isDisabled);\n const displayLabel = React.useMemo(() => {\n return item.property.displayLabel || item.property.name;\n }, [item]);\n\n // listen for tool sync property events and update the isDisabled state\n React.useEffect(() => {\n return uiDataProvider.onSyncPropertiesChangeEvent.addListener((args) => {\n const mySyncItem = args.properties.find(\n (syncItem) => syncItem.propertyName === item.property.name\n );\n if (mySyncItem) {\n setIsDisabled(!!mySyncItem.isDisabled);\n }\n });\n }, [uiDataProvider, item]);\n\n const className = classnames(\n \"uifw-default-label\",\n !!isLeftmostRecord && \"uifw-default-narrow-only-display\"\n );\n return (\n <Label\n className={className}\n htmlFor={item.property.name}\n disabled={isDisabled}\n >\n {displayLabel}:\n </Label>\n );\n}\n\nfunction PropertyEditor({\n uiDataProvider,\n initialItem,\n isLock = false,\n setFocus,\n onCancel,\n}: {\n uiDataProvider: UiLayoutDataProvider;\n initialItem: BaseDialogItem;\n isLock?: boolean;\n setFocus?: boolean;\n onCancel?: () => void;\n}) {\n const getLatestRecordValue = React.useCallback(\n (initial: BaseDialogItem) => {\n let newRecord = UiLayoutDataProvider.getPropertyRecord(initial);\n\n const foundItem = isLock\n ? uiDataProvider.items.find(\n (item) => item.lockProperty?.property.name === initial.property.name\n )\n : uiDataProvider.items.find(\n (item) => item.property.name === initial.property.name\n );\n if (foundItem) {\n if (isLock) {\n newRecord = newRecord.copyWithNewValue({\n value: foundItem.lockProperty!.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n });\n newRecord.isDisabled = foundItem.lockProperty!.isDisabled;\n } else {\n newRecord = newRecord.copyWithNewValue({\n value: foundItem.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n });\n newRecord.isDisabled = foundItem.isDisabled;\n }\n }\n return newRecord;\n },\n [isLock, uiDataProvider.items]\n );\n\n const currentRecord = getLatestRecordValue(initialItem);\n const [propertyRecord, setPropertyRecord] = React.useState(currentRecord);\n\n // monitor tool for sync UI events\n React.useEffect(() => {\n return uiDataProvider.onSyncPropertiesChangeEvent.addListener((args) => {\n const mySyncItem = args.properties.find(\n (syncItem: DialogPropertySyncItem) =>\n syncItem.propertyName === initialItem.property.name\n );\n if (mySyncItem) {\n const newPropertyValue = propertyRecord.copyWithNewValue(\n {\n value: mySyncItem.value.value,\n valueFormat: PropertyValueFormat.Primitive,\n displayValue: mySyncItem.value.displayValue,\n },\n mySyncItem.property\n );\n\n if (mySyncItem.property) {\n if (mySyncItem.property.name === mySyncItem.propertyName) {\n newPropertyValue.isDisabled = mySyncItem.isDisabled;\n setPropertyRecord(newPropertyValue);\n } else {\n Logger.logError(\n \"PropertyEditor\",\n `Error trying to replace propertyName=${mySyncItem.propertyName} with property named ${mySyncItem.property.name}`\n );\n }\n } else {\n newPropertyValue.isDisabled = mySyncItem.isDisabled;\n setPropertyRecord(newPropertyValue);\n }\n }\n });\n }, [uiDataProvider, propertyRecord, initialItem.property.name]);\n\n React.useEffect(() => {\n return uiDataProvider.onItemsReloadedEvent.addListener(() => {\n const newItem = findDialogItem(\n uiDataProvider,\n initialItem.property.name,\n isLock\n );\n if (!newItem) return;\n setPropertyRecord(getLatestRecordValue(newItem));\n });\n }, [uiDataProvider, initialItem.property.name, getLatestRecordValue, isLock]);\n\n const className = React.useMemo(\n () => (isLock ? \"uifw-default-property-lock\" : \"uifw-default-editor\"),\n [isLock]\n );\n const handleCommit = React.useCallback(\n (commit: PropertyUpdatedArgs) => {\n // UiLayoutDataProvider supports only primitive property types\n assert(\n commit.newValue.valueFormat === PropertyValueFormat.Primitive &&\n commit.propertyRecord.value.valueFormat ===\n PropertyValueFormat.Primitive\n );\n const newPropertyValue = propertyRecord.copyWithNewValue(commit.newValue);\n const syncItem: DialogPropertySyncItem = {\n value: commit.newValue as DialogItemValue,\n propertyName: initialItem.property.name,\n isDisabled: newPropertyValue.isDisabled,\n };\n uiDataProvider.applyUiPropertyChange(syncItem);\n // Now have the uiDataProvider refetch the latest property values from the tool\n uiDataProvider.reloadDialogItems(true);\n },\n [initialItem.property.name, propertyRecord, uiDataProvider]\n );\n const handleCancel = () => {};\n\n const useNewEditors = useToolSettingsNewEditors();\n\n return (\n <div key={initialItem.property.name} className={className}>\n {useNewEditors ? (\n <PropertyRecordEditor\n key={initialItem.property.name}\n propertyRecord={propertyRecord}\n setFocus={setFocus}\n onCommit={handleCommit}\n onCancel={onCancel ?? handleCancel}\n editorSystem=\"new\"\n size=\"small\"\n />\n ) : (\n <EditorContainer\n key={initialItem.property.name}\n propertyRecord={propertyRecord}\n setFocus={setFocus}\n onCommit={handleCommit}\n onCancel={onCancel ?? handleCancel}\n />\n )}\n </div>\n );\n}\n\n/** Utility methods to generate react ui from DialogRow specs\n * @public\n */\nexport class ComponentGenerator {\n constructor(\n private _uiDataProvider: UiLayoutDataProvider,\n private _onCancel?: () => void\n ) {}\n\n public get uiDataProvider() {\n return this._uiDataProvider;\n }\n\n private getEditor(\n item: BaseDialogItem,\n isLock = false,\n setFocus = false\n ): React.ReactNode {\n return (\n <PropertyEditor\n key={item.property.name}\n uiDataProvider={this.uiDataProvider}\n initialItem={item}\n isLock={isLock}\n setFocus={setFocus}\n onCancel={this._onCancel}\n />\n );\n }\n\n private generateRowWithButtonGroupEditors(\n row: DialogRow,\n rowIndex: number\n ): React.ReactNode {\n if (1 === row.items.length) {\n return (\n <div\n key={row.items[0].property.name}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n {this.getEditor(row.items[0])}\n </div>\n );\n }\n\n return (\n <div\n key={rowIndex}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item) => this.getEditor(item))}\n </div>\n </div>\n );\n }\n\n private generateEntryWithButtonGroupEditors(\n row: DialogRow,\n rowIndex: number\n ): ToolSettingsEntry {\n if (1 === row.items.length) {\n return {\n labelNode: \"\",\n editorNode: (\n <div\n key={row.items[0].property.name}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n {this.getEditor(row.items[0])}\n </div>\n ),\n };\n }\n\n return {\n labelNode: \"\",\n editorNode: (\n <div\n key={rowIndex}\n className=\"uifw-default-inline-editor-group uifw-default-center-across-width\"\n >\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item) => this.getEditor(item))}\n </div>\n </div>\n ),\n };\n }\n\n private getEditorLabel(\n item: DialogItem,\n isLeftmostRecord = false\n ): React.ReactNode {\n return (\n <EditorLabel\n uiDataProvider={this.uiDataProvider}\n item={item}\n isLeftmostRecord={isLeftmostRecord}\n />\n );\n }\n\n private getLeftLockAndLabel(\n rowItem: DialogItem,\n multiplePropertiesOnRow: boolean\n ): React.ReactNode {\n const record = UiLayoutDataProvider.getPropertyRecord(rowItem);\n const lockEditor = UiLayoutDataProvider.hasAssociatedLockProperty(rowItem)\n ? this.getEditor(rowItem.lockProperty!, true)\n : null;\n const label = UiLayoutDataProvider.editorWantsLabel(rowItem)\n ? this.getEditorLabel(rowItem)\n : null;\n const classNames = multiplePropertiesOnRow\n ? \"uifw-default-lock-and-label uifw-default-wide-only-display\"\n : \"uifw-default-lock-and-label\";\n return (\n <div key={`lock-${record.property.name}`} className={classNames}>\n {lockEditor}\n {label}\n </div>\n );\n }\n\n private getInlineLabelAndEditor(\n item: DialogItem,\n isLeftmostRecord: boolean\n ): React.ReactNode {\n const label = UiLayoutDataProvider.editorWantsLabel(item)\n ? this.getEditorLabel(item, isLeftmostRecord)\n : null;\n return (\n <div\n key={item.property.name}\n className=\"uifw-default-inline-label-and-editor\"\n >\n {label}\n {this.getEditor(item)}\n </div>\n );\n }\n\n private getRowWithMultipleEditors(row: DialogRow): React.ReactNode {\n return (\n <div className=\"uifw-default-inline-editor-group\">\n {row.items.map((item: DialogItem, index: number) =>\n this.getInlineLabelAndEditor(item, index === 0)\n )}\n </div>\n );\n }\n\n private getDivForRow(row: DialogRow): React.ReactNode {\n if (row.items.length === 1) return this.getEditor(row.items[0]);\n return this.getRowWithMultipleEditors(row);\n }\n\n public getRow(row: DialogRow, rowIndex: number): React.ReactNode {\n if (UiLayoutDataProvider.onlyContainButtonGroupEditors(row)) {\n return this.generateRowWithButtonGroupEditors(row, rowIndex);\n } else {\n return (\n <React.Fragment key={rowIndex}>\n {this.getLeftLockAndLabel(row.items[0], row.items.length > 1)}\n {this.getDivForRow(row)}\n </React.Fragment>\n );\n }\n }\n\n public getToolSettingsEntry(\n row: DialogRow,\n rowIndex: number\n ): ToolSettingsEntry {\n if (UiLayoutDataProvider.onlyContainButtonGroupEditors(row)) {\n return this.generateEntryWithButtonGroupEditors(row, rowIndex);\n } else {\n return {\n labelNode: this.getLeftLockAndLabel(row.items[0], row.items.length > 1),\n editorNode: this.getDivForRow(row),\n };\n }\n }\n\n /** ToolSettingsEntries are used by the tool settings bar. */\n public getToolSettingsEntries(): ToolSettingsEntry[] {\n return this.uiDataProvider.rows.map((row: DialogRow, index: number) =>\n this.getToolSettingsEntry(row, index)\n );\n }\n}\n\nfunction findDialogItem(\n uiDataProvider: UiLayoutDataProvider,\n propertyName: string,\n isLock: boolean\n) {\n const dialogItem = uiDataProvider.items.find((item) => {\n if (isLock) {\n return item.lockProperty?.property.name === propertyName;\n }\n return item.property.name === propertyName;\n });\n return isLock ? dialogItem?.lockProperty : dialogItem;\n}\n"]}
@@ -56,7 +56,7 @@ export class PropsHelper {
56
56
  static getAbstractPropsForReactIcon(
57
57
  // eslint-disable-next-line @typescript-eslint/no-deprecated
58
58
  iconSpec, internalData
59
- // eslint-disable-next-line @typescript-eslint/no-deprecated
59
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-redundant-type-constituents
60
60
  ) {
61
61
  if (!iconSpec || !React.isValidElement(iconSpec))
62
62
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"PropsHelper.js","sourceRoot":"","sources":["../../../src/appui-react/utils/PropsHelper.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,sDAAsD;AAEtD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;;GAGG;AACH,MAAM,OAAO,WAAW;IACtB,sHAAsH;IAC/G,MAAM,CAAC,aAAa,CACzB,aAAyE,EACzE,SAAkB;QAElB,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS;YACxB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACtD,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8BAA8B;IACvB,MAAM,CAAC,iBAAiB,CAC7B,IAAoD;QAEpD,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,KAAK,GAAG,IAAI,CAAC;aACtC,IAAI,IAAI,YAAY,sBAAsB;YAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;;YAC/D,KAAK,GAAG,IAAI,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8JAA8J;IACvJ,MAAM,CAAC,OAAO,CACnB,QAA2D;QAE3D,IAAI,QAAQ,YAAY,sBAAsB;YAC5C,4DAA4D;YAC5D,OAAO,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,GAAI,CAAC;QAE5C,4DAA4D;QAC5D,OAAO,QAAQ,CAAC,CAAC,CAAC,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAED,4FAA4F;IACrF,MAAM,CAAC,cAAc,CAAC,MAAW,EAAE,OAAY;QACpD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kEAAkE;IAC3D,MAAM,CAAC,4BAA4B;IACxC,4DAA4D;IAC5D,QAAkB,EAClB,YAA+B;IAC/B,4DAA4D;;QAE5D,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAE5D,IAAI,CAAC,YAAY;YAAE,YAAY,GAAG,IAAI,GAAG,EAAe,CAAC;QAEzD,4DAA4D;QAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE5D,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACzD,CAAC;CACF","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 Utilities\n */\n\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n\nimport * as React from \"react\";\nimport type { IconSpec } from \"@itwin/core-react\";\nimport { Icon, IconHelper } from \"@itwin/core-react\";\nimport type {\n StringGetter,\n // @ts-ignore Removed in 4.0\n AbstractWidgetProps as UIA_AbstractWidgetProps,\n // @ts-ignore Removed in 4.0\n CommonBackstageItem as UIA_CommonBackstageItem,\n} from \"@itwin/appui-abstract\";\nimport { ConditionalStringValue } from \"@itwin/appui-abstract\";\nimport { IModelApp } from \"@itwin/core-frontend\";\n\n/** A set of helper methods for various props\n * @public\n * @deprecated in 4.16.0. Used internally.\n */\nexport class PropsHelper {\n /** Get spec for returning a string. Could be a simple string of a 'StringGetter' method used to return the string. */\n public static getStringSpec(\n explicitValue: string | StringGetter | ConditionalStringValue | undefined,\n stringKey?: string\n ): string | StringGetter | ConditionalStringValue {\n if (explicitValue) {\n return explicitValue;\n }\n\n const outValue = stringKey\n ? IModelApp.localization.getLocalizedString(stringKey)\n : \"\";\n return outValue;\n }\n\n /** Get the display string. */\n public static getStringFromSpec(\n spec: string | StringGetter | ConditionalStringValue\n ): string {\n let label = \"\";\n if (typeof spec === \"string\") label = spec;\n else if (spec instanceof ConditionalStringValue) label = spec.value;\n else label = spec();\n return label;\n }\n\n /** Get JSX element that defines an icon. If iconSpec is a string, then a web-font icon class is used otherwise a ReactNode holding an SVG icon is assumed. */\n public static getIcon(\n iconSpec: string | ConditionalStringValue | React.ReactNode\n ): React.ReactElement | undefined {\n if (iconSpec instanceof ConditionalStringValue)\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return <Icon iconSpec={iconSpec.value} />;\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return iconSpec ? <Icon iconSpec={iconSpec} /> : undefined;\n }\n\n /** returns true if the two objects are the same using a shallow compare of each property */\n public static isShallowEqual(newObj: any, prevObj: any) {\n for (const key in newObj) {\n if (newObj[key] !== prevObj[key]) return false;\n }\n return true;\n }\n\n /** @deprecated in 4.0 These abstract props types are obsolete. */\n public static getAbstractPropsForReactIcon(\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec: IconSpec,\n internalData?: Map<string, any>\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): Partial<UIA_AbstractWidgetProps> | Partial<UIA_CommonBackstageItem> {\n if (!iconSpec || !React.isValidElement(iconSpec)) return {};\n\n if (!internalData) internalData = new Map<string, any>();\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const icon = IconHelper.getIconData(iconSpec, internalData);\n\n return icon === \"\" ? { icon } : { icon, internalData };\n }\n}\n"]}
1
+ {"version":3,"file":"PropsHelper.js","sourceRoot":"","sources":["../../../src/appui-react/utils/PropsHelper.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,sDAAsD;AAEtD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;;GAGG;AACH,MAAM,OAAO,WAAW;IACtB,sHAAsH;IAC/G,MAAM,CAAC,aAAa,CACzB,aAAyE,EACzE,SAAkB;QAElB,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS;YACxB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACtD,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8BAA8B;IACvB,MAAM,CAAC,iBAAiB,CAC7B,IAAoD;QAEpD,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,KAAK,GAAG,IAAI,CAAC;aACtC,IAAI,IAAI,YAAY,sBAAsB;YAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;;YAC/D,KAAK,GAAG,IAAI,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8JAA8J;IACvJ,MAAM,CAAC,OAAO,CACnB,QAA2D;QAE3D,IAAI,QAAQ,YAAY,sBAAsB;YAC5C,4DAA4D;YAC5D,OAAO,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,GAAI,CAAC;QAE5C,4DAA4D;QAC5D,OAAO,QAAQ,CAAC,CAAC,CAAC,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAED,4FAA4F;IACrF,MAAM,CAAC,cAAc,CAAC,MAAW,EAAE,OAAY;QACpD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kEAAkE;IAC3D,MAAM,CAAC,4BAA4B;IACxC,4DAA4D;IAC5D,QAAkB,EAClB,YAA+B;IAC/B,+GAA+G;;QAE/G,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAE5D,IAAI,CAAC,YAAY;YAAE,YAAY,GAAG,IAAI,GAAG,EAAe,CAAC;QAEzD,4DAA4D;QAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE5D,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACzD,CAAC;CACF","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 Utilities\n */\n\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n\nimport * as React from \"react\";\nimport type { IconSpec } from \"@itwin/core-react\";\nimport { Icon, IconHelper } from \"@itwin/core-react\";\nimport type {\n StringGetter,\n // @ts-ignore Removed in 4.0\n AbstractWidgetProps as UIA_AbstractWidgetProps,\n // @ts-ignore Removed in 4.0\n CommonBackstageItem as UIA_CommonBackstageItem,\n} from \"@itwin/appui-abstract\";\nimport { ConditionalStringValue } from \"@itwin/appui-abstract\";\nimport { IModelApp } from \"@itwin/core-frontend\";\n\n/** A set of helper methods for various props\n * @public\n * @deprecated in 4.16.0. Used internally.\n */\nexport class PropsHelper {\n /** Get spec for returning a string. Could be a simple string of a 'StringGetter' method used to return the string. */\n public static getStringSpec(\n explicitValue: string | StringGetter | ConditionalStringValue | undefined,\n stringKey?: string\n ): string | StringGetter | ConditionalStringValue {\n if (explicitValue) {\n return explicitValue;\n }\n\n const outValue = stringKey\n ? IModelApp.localization.getLocalizedString(stringKey)\n : \"\";\n return outValue;\n }\n\n /** Get the display string. */\n public static getStringFromSpec(\n spec: string | StringGetter | ConditionalStringValue\n ): string {\n let label = \"\";\n if (typeof spec === \"string\") label = spec;\n else if (spec instanceof ConditionalStringValue) label = spec.value;\n else label = spec();\n return label;\n }\n\n /** Get JSX element that defines an icon. If iconSpec is a string, then a web-font icon class is used otherwise a ReactNode holding an SVG icon is assumed. */\n public static getIcon(\n iconSpec: string | ConditionalStringValue | React.ReactNode\n ): React.ReactElement | undefined {\n if (iconSpec instanceof ConditionalStringValue)\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return <Icon iconSpec={iconSpec.value} />;\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return iconSpec ? <Icon iconSpec={iconSpec} /> : undefined;\n }\n\n /** returns true if the two objects are the same using a shallow compare of each property */\n public static isShallowEqual(newObj: any, prevObj: any) {\n for (const key in newObj) {\n if (newObj[key] !== prevObj[key]) return false;\n }\n return true;\n }\n\n /** @deprecated in 4.0 These abstract props types are obsolete. */\n public static getAbstractPropsForReactIcon(\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iconSpec: IconSpec,\n internalData?: Map<string, any>\n // eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-redundant-type-constituents\n ): Partial<UIA_AbstractWidgetProps> | Partial<UIA_CommonBackstageItem> {\n if (!iconSpec || !React.isValidElement(iconSpec)) return {};\n\n if (!internalData) internalData = new Map<string, any>();\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const icon = IconHelper.getIconData(iconSpec, internalData);\n\n return icon === \"\" ? { icon } : { icon, internalData };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BasicToolWidget.d.ts","sourceRoot":"","sources":["../../../src/appui-react/widgets/BasicToolWidget.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI7D;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,qHAAqH;IACrH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,yBAAyB,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1C,sEAAsE;IACtE,uBAAuB,CAAC,EAAE,WAAW,EAAE,CAAC;CACzC;AAED;;;GAGG;AAEH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,qBAgH1D"}
1
+ {"version":3,"file":"BasicToolWidget.d.ts","sourceRoot":"","sources":["../../../src/appui-react/widgets/BasicToolWidget.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI7D;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,qHAAqH;IACrH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,yBAAyB,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1C,sEAAsE;IACtE,uBAAuB,CAAC,EAAE,WAAW,EAAE,CAAC;CACzC;AAED;;;GAGG;AAEH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,qBAiH1D"}
@@ -83,6 +83,8 @@ export function BasicToolWidget(props) {
83
83
  ]);
84
84
  const uiIsVisible = useUiVisibility();
85
85
  const className = classnames(!uiIsVisible && "nz-hidden");
86
- return (React.createElement(ToolWidgetComposer, { className: className, cornerItem: React.createElement(BackstageAppButton, { icon: props.icon }), horizontalToolbar: React.createElement(ToolbarComposer, { items: horizontalItems, usage: ToolbarUsage.ContentManipulation, orientation: ToolbarOrientation.Horizontal }), verticalToolbar: React.createElement(ToolbarComposer, { items: verticalItems, usage: ToolbarUsage.ContentManipulation, orientation: ToolbarOrientation.Vertical }) }));
86
+ return (React.createElement(ToolWidgetComposer, { className: className,
87
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
88
+ cornerItem: React.createElement(BackstageAppButton, { icon: props.icon }), horizontalToolbar: React.createElement(ToolbarComposer, { items: horizontalItems, usage: ToolbarUsage.ContentManipulation, orientation: ToolbarOrientation.Horizontal }), verticalToolbar: React.createElement(ToolbarComposer, { items: verticalItems, usage: ToolbarUsage.ContentManipulation, orientation: ToolbarOrientation.Vertical }) }));
87
89
  }
88
90
  //# sourceMappingURL=BasicToolWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BasicToolWidget.js","sourceRoot":"","sources":["../../../src/appui-react/widgets/BasicToolWidget.tsx"],"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 Widget\n */\n\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { ToolbarComposer } from \"../toolbar/ToolbarComposer.js\";\nimport { ToolWidgetComposer } from \"./ToolWidgetComposer.js\";\nimport { BackstageAppButton } from \"./BackstageAppButton.js\";\nimport { useUiVisibility } from \"../hooks/useUiVisibility.js\";\nimport type { ToolbarItem } from \"../toolbar/ToolbarItem.js\";\nimport { ToolbarOrientation, ToolbarUsage } from \"../toolbar/ToolbarItem.js\";\nimport { ToolbarItems } from \"../tools/ToolbarItems.js\";\n\n/** Properties that can be used to append items to the default set of toolbar items.\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof BasicToolWidget>`\n */\nexport interface BasicToolWidgetProps {\n /** if true include hide/isolate Models and Categories */\n showCategoryAndModelsContextTools?: boolean;\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n icon?: string;\n /** optional set of additional items to include in horizontal toolbar */\n additionalHorizontalItems?: ToolbarItem[];\n /** optional set of additional items to include in vertical toolbar */\n additionalVerticalItems?: ToolbarItem[];\n}\n\n/** Default Tool Widget for standard \"review\" applications. Provides standard tools to review, and measure elements.\n * This definition will also show a overflow button if there is not enough room to display all the toolbar buttons.\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport function BasicToolWidget(props: BasicToolWidgetProps) {\n const getHorizontalToolbarItems = React.useCallback(\n (useCategoryAndModelsContextTools: boolean): ToolbarItem[] => {\n const items: ToolbarItem[] = [];\n if (useCategoryAndModelsContextTools) {\n items.push(\n ToolbarItems.createClearSelection({\n itemPriority: 10,\n }),\n ToolbarItems.createClearHideIsolateEmphasizeElements({\n itemPriority: 20,\n }),\n ToolbarItems.createHideSectionGroup({\n itemPriority: 30,\n }),\n ToolbarItems.createIsolateSelectionGroup({\n itemPriority: 40,\n }),\n ToolbarItems.createEmphasizeElements({\n itemPriority: 50,\n })\n );\n } else {\n items.push(\n ToolbarItems.createClearSelection({\n itemPriority: 10,\n }),\n ToolbarItems.createClearHideIsolateEmphasizeElements({\n itemPriority: 20,\n }),\n ToolbarItems.createHideElements({\n itemPriority: 30,\n }),\n ToolbarItems.createIsolateElements({\n itemPriority: 40,\n }),\n ToolbarItems.createEmphasizeElements({\n itemPriority: 50,\n })\n );\n }\n if (props.additionalHorizontalItems)\n items.push(...props.additionalHorizontalItems);\n return items;\n },\n [props.additionalHorizontalItems]\n );\n\n const getVerticalToolbarItems = React.useCallback((): ToolbarItem[] => {\n const items: ToolbarItem[] = [];\n items.push(\n ToolbarItems.createSelectElement({\n itemPriority: 10,\n }),\n ToolbarItems.createMeasureGroup({\n itemPriority: 20,\n }),\n ToolbarItems.createSectionGroup({\n itemPriority: 30,\n })\n );\n if (props.additionalVerticalItems)\n items.push(...props.additionalVerticalItems);\n return items;\n }, [props.additionalVerticalItems]);\n\n const [horizontalItems, setHorizontalItems] = React.useState(() =>\n getHorizontalToolbarItems(!!props.showCategoryAndModelsContextTools)\n );\n const [verticalItems, setVerticalItems] = React.useState(() =>\n getVerticalToolbarItems()\n );\n\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setHorizontalItems(\n getHorizontalToolbarItems(!!props.showCategoryAndModelsContextTools)\n );\n setVerticalItems(getVerticalToolbarItems());\n }\n }, [\n props.showCategoryAndModelsContextTools,\n props.additionalHorizontalItems,\n props.additionalVerticalItems,\n getHorizontalToolbarItems,\n getVerticalToolbarItems,\n ]);\n\n const uiIsVisible = useUiVisibility();\n const className = classnames(!uiIsVisible && \"nz-hidden\");\n return (\n <ToolWidgetComposer\n className={className}\n cornerItem={<BackstageAppButton icon={props.icon} />}\n horizontalToolbar={\n <ToolbarComposer\n items={horizontalItems}\n usage={ToolbarUsage.ContentManipulation}\n orientation={ToolbarOrientation.Horizontal}\n />\n }\n verticalToolbar={\n <ToolbarComposer\n items={verticalItems}\n usage={ToolbarUsage.ContentManipulation}\n orientation={ToolbarOrientation.Vertical}\n />\n }\n />\n );\n}\n"]}
1
+ {"version":3,"file":"BasicToolWidget.js","sourceRoot":"","sources":["../../../src/appui-react/widgets/BasicToolWidget.tsx"],"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 Widget\n */\n\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { ToolbarComposer } from \"../toolbar/ToolbarComposer.js\";\nimport { ToolWidgetComposer } from \"./ToolWidgetComposer.js\";\nimport { BackstageAppButton } from \"./BackstageAppButton.js\";\nimport { useUiVisibility } from \"../hooks/useUiVisibility.js\";\nimport type { ToolbarItem } from \"../toolbar/ToolbarItem.js\";\nimport { ToolbarOrientation, ToolbarUsage } from \"../toolbar/ToolbarItem.js\";\nimport { ToolbarItems } from \"../tools/ToolbarItems.js\";\n\n/** Properties that can be used to append items to the default set of toolbar items.\n * @public\n * @deprecated in 4.17.0. Use `React.ComponentProps<typeof BasicToolWidget>`\n */\nexport interface BasicToolWidgetProps {\n /** if true include hide/isolate Models and Categories */\n showCategoryAndModelsContextTools?: boolean;\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n icon?: string;\n /** optional set of additional items to include in horizontal toolbar */\n additionalHorizontalItems?: ToolbarItem[];\n /** optional set of additional items to include in vertical toolbar */\n additionalVerticalItems?: ToolbarItem[];\n}\n\n/** Default Tool Widget for standard \"review\" applications. Provides standard tools to review, and measure elements.\n * This definition will also show a overflow button if there is not enough room to display all the toolbar buttons.\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport function BasicToolWidget(props: BasicToolWidgetProps) {\n const getHorizontalToolbarItems = React.useCallback(\n (useCategoryAndModelsContextTools: boolean): ToolbarItem[] => {\n const items: ToolbarItem[] = [];\n if (useCategoryAndModelsContextTools) {\n items.push(\n ToolbarItems.createClearSelection({\n itemPriority: 10,\n }),\n ToolbarItems.createClearHideIsolateEmphasizeElements({\n itemPriority: 20,\n }),\n ToolbarItems.createHideSectionGroup({\n itemPriority: 30,\n }),\n ToolbarItems.createIsolateSelectionGroup({\n itemPriority: 40,\n }),\n ToolbarItems.createEmphasizeElements({\n itemPriority: 50,\n })\n );\n } else {\n items.push(\n ToolbarItems.createClearSelection({\n itemPriority: 10,\n }),\n ToolbarItems.createClearHideIsolateEmphasizeElements({\n itemPriority: 20,\n }),\n ToolbarItems.createHideElements({\n itemPriority: 30,\n }),\n ToolbarItems.createIsolateElements({\n itemPriority: 40,\n }),\n ToolbarItems.createEmphasizeElements({\n itemPriority: 50,\n })\n );\n }\n if (props.additionalHorizontalItems)\n items.push(...props.additionalHorizontalItems);\n return items;\n },\n [props.additionalHorizontalItems]\n );\n\n const getVerticalToolbarItems = React.useCallback((): ToolbarItem[] => {\n const items: ToolbarItem[] = [];\n items.push(\n ToolbarItems.createSelectElement({\n itemPriority: 10,\n }),\n ToolbarItems.createMeasureGroup({\n itemPriority: 20,\n }),\n ToolbarItems.createSectionGroup({\n itemPriority: 30,\n })\n );\n if (props.additionalVerticalItems)\n items.push(...props.additionalVerticalItems);\n return items;\n }, [props.additionalVerticalItems]);\n\n const [horizontalItems, setHorizontalItems] = React.useState(() =>\n getHorizontalToolbarItems(!!props.showCategoryAndModelsContextTools)\n );\n const [verticalItems, setVerticalItems] = React.useState(() =>\n getVerticalToolbarItems()\n );\n\n const isInitialMount = React.useRef(true);\n React.useEffect(() => {\n if (isInitialMount.current) isInitialMount.current = false;\n else {\n setHorizontalItems(\n getHorizontalToolbarItems(!!props.showCategoryAndModelsContextTools)\n );\n setVerticalItems(getVerticalToolbarItems());\n }\n }, [\n props.showCategoryAndModelsContextTools,\n props.additionalHorizontalItems,\n props.additionalVerticalItems,\n getHorizontalToolbarItems,\n getVerticalToolbarItems,\n ]);\n\n const uiIsVisible = useUiVisibility();\n const className = classnames(!uiIsVisible && \"nz-hidden\");\n return (\n <ToolWidgetComposer\n className={className}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n cornerItem={<BackstageAppButton icon={props.icon} />}\n horizontalToolbar={\n <ToolbarComposer\n items={horizontalItems}\n usage={ToolbarUsage.ContentManipulation}\n orientation={ToolbarOrientation.Horizontal}\n />\n }\n verticalToolbar={\n <ToolbarComposer\n items={verticalItems}\n usage={ToolbarUsage.ContentManipulation}\n orientation={ToolbarOrientation.Vertical}\n />\n }\n />\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetDef.d.ts","sourceRoot":"","sources":["../../../src/appui-react/widgets/WidgetDef.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WidgetDef.d.ts","sourceRoot":"","sources":["../../../src/appui-react/widgets/WidgetDef.tsx"],"names":[],"mappings":"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"}
@@ -107,7 +107,6 @@ export class WidgetDef {
107
107
  get badgeType() {
108
108
  return this._badge;
109
109
  }
110
- // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
111
110
  get badgeKind() {
112
111
  return this._badgeKind;
113
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetDef.js","sourceRoot":"","sources":["../../../src/appui-react/widgets/WidgetDef.tsx"],"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 Widget\n */\n\nimport type * as React from \"react\";\nimport type {\n ConditionalStringValue,\n StringGetter,\n} from \"@itwin/appui-abstract\";\nimport { UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { ConfigurableUiControlConstructor } from \"../configurableui/ConfigurableUiControl.js\";\nimport {\n ConfigurableCreateInfo,\n ConfigurableUiControlType,\n} from \"../configurableui/ConfigurableUiControl.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { PropsHelper } from \"../utils/PropsHelper.js\";\nimport type { WidgetControl } from \"./WidgetControl.js\";\nimport type { BadgeType, IconSpec } from \"@itwin/core-react\";\nimport type { BadgeKind } from \"@itwin/core-react/internal\";\nimport { IconHelper } from \"@itwin/core-react\";\nimport type { WidgetConfig } from \"./WidgetConfig.js\";\nimport { WidgetState } from \"./WidgetState.js\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation.js\";\nimport { StatusBarWidgetComposerControl } from \"./StatusBarWidgetComposerControl.js\";\nimport {\n getTabLocation,\n isFloatingTabLocation,\n isPanelTabLocation,\n isPopoutTabLocation,\n} from \"../layout/state/TabLocation.js\";\nimport type { NineZoneState } from \"../layout/state/NineZoneState.js\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { SizeProps } from \"../utils/SizeProps.js\";\nimport { Widget } from \"./Widget.js\";\n\n/** Widget State Changed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface WidgetStateChangedEventArgs {\n widgetDef: WidgetDef;\n widgetState: WidgetState;\n}\n\n/** Widget State Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class WidgetStateChangedEvent extends UiEvent<WidgetStateChangedEventArgs> {}\n\n/** Widget type enum.\n * @public\n */\nexport enum WidgetType {\n Tool,\n Navigation,\n Rectangular,\n ToolSettings,\n StatusBar,\n}\n\n// -----------------------------------------------------------------------------\n\n/** A Widget Definition in the 9-Zone Layout system.\n * @public\n */\nexport class WidgetDef {\n private static _sId = 0;\n private _label: string | ConditionalStringValue | StringGetter = \"\";\n private _tooltip: string | ConditionalStringValue | StringGetter = \"\";\n private _widgetReactNode: React.ReactNode;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _widgetControl!: WidgetControl;\n private _defaultState: WidgetState = WidgetState.Closed;\n private _id: string;\n private _priority: number = 0;\n private _stateChanged: boolean = false;\n private _widgetType: WidgetType = WidgetType.Rectangular;\n private _applicationData?: any;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _iconSpec?: IconSpec;\n private _internalData?: Map<string, any>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _badge?: BadgeType;\n private _badgeKind?: BadgeKind;\n private _saveTransientState?: () => void;\n private _restoreTransientState?: () => boolean;\n private _preferredPanelSize: \"fit-content\" | undefined;\n private _defaultFloatingSize: SizeProps | undefined;\n private _canPopout?: boolean;\n private _floatingContainerId?: string;\n private _defaultFloatingPosition: XAndY | undefined;\n\n private _hideWithUiWhenFloating?: boolean;\n private _allowedPanelTargets?: ReadonlyArray<StagePanelLocation>;\n private _initialConfig?: WidgetConfig;\n\n public get state(): WidgetState {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const nineZone = frontstageDef?.nineZoneState;\n if (!nineZone) return this.defaultState;\n if (!frontstageDef.findWidgetDef(this.id)) return this.defaultState;\n return getWidgetState(this.id, nineZone);\n }\n\n public get id(): string {\n return this._id;\n }\n\n public get priority(): number {\n return this._priority;\n }\n\n public get isFloatingStateSupported(): boolean {\n if (!this.initialConfig) return true;\n\n const allowedPanels = this.initialConfig.allowedPanels;\n if (allowedPanels && allowedPanels.length === 0) {\n return true;\n }\n\n const canFloat = this.initialConfig.canFloat;\n if (canFloat === undefined) return true;\n return !!canFloat;\n }\n\n public get isFloatingStateWindowResizable(): boolean {\n const canFloat = this.initialConfig?.canFloat;\n if (typeof canFloat === \"object\") {\n return canFloat.isResizable === undefined ? true : canFloat.isResizable;\n }\n\n return true;\n }\n\n public get isToolSettings(): boolean {\n return this._widgetType === WidgetType.ToolSettings;\n }\n public get isStatusBar(): boolean {\n return this._widgetType === WidgetType.StatusBar;\n }\n public get stateChanged(): boolean {\n return this._stateChanged;\n }\n public get applicationData(): any {\n return this._applicationData;\n }\n public get isFloating(): boolean {\n return this.state === WidgetState.Floating;\n }\n\n /** @deprecated in 4.16.0. Use {@link Widget.iconNode} instead. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public get iconSpec(): IconSpec {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this._iconSpec === IconHelper.reactIconKey\n ? IconHelper.getIconReactNode(this._iconSpec, this._internalData) // eslint-disable-line @typescript-eslint/no-deprecated\n : this._iconSpec;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public set iconSpec(spec: IconSpec) {\n // Setter is deprecated as well: ae-setter-with-docs.\n this._iconSpec = this._internalData\n ? IconHelper.getIconData(spec, this._internalData) // eslint-disable-line @typescript-eslint/no-deprecated\n : spec;\n }\n /** @deprecated in 4.16.0. Use `badgeKind` instead. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public get badgeType(): BadgeType | undefined {\n return this._badge;\n }\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n public get badgeKind(): BadgeKind | undefined {\n return this._badgeKind;\n }\n public get initialConfig(): WidgetConfig | undefined {\n return this._initialConfig;\n }\n\n public get widgetType(): WidgetType {\n return this._widgetType;\n }\n public set widgetType(type: WidgetType) {\n this._widgetType = type;\n }\n\n /** @internal */\n public get defaultFloatingPosition() {\n return this._defaultFloatingPosition;\n }\n public set defaultFloatingPosition(position: XAndY | undefined) {\n this._defaultFloatingPosition = position;\n }\n\n /** @internal */\n public get defaultFloatingSize() {\n return this._defaultFloatingSize;\n }\n public set defaultFloatingSize(size: SizeProps | undefined) {\n this._defaultFloatingSize = size;\n }\n\n public get defaultState() {\n return this._defaultState;\n }\n\n constructor() {\n WidgetDef._sId++;\n this._id = `Widget-${WidgetDef._sId}`;\n }\n\n /** @internal */\n public static create(\n config: WidgetConfig,\n type: WidgetType = WidgetType.Rectangular\n ) {\n const def = new WidgetDef();\n def.initializeFromConfig(config, type);\n return def;\n }\n\n private initializeFromConfig(config: WidgetConfig, type: WidgetType) {\n this._widgetType = type;\n this._initialConfig = config;\n this._id = config.id;\n\n if (config.label) this._label = config.label;\n else if (config.labelKey)\n this._label = IModelApp.localization.getLocalizedString(config.labelKey);\n else if (type === WidgetType.ToolSettings) this._label = \"Tool Settings\";\n\n this.setCanPopout(config.canPopout);\n\n const canFloat = config.canFloat;\n if (typeof canFloat === \"object\") {\n this.setFloatingContainerId(canFloat.containerId);\n this.defaultFloatingPosition = canFloat.defaultPosition;\n this._hideWithUiWhenFloating = !!canFloat.hideWithUi;\n this._defaultFloatingSize = canFloat.defaultSize;\n }\n\n if (\"allowedPanels\" in config) {\n this.allowedPanelTargets = config.allowedPanels;\n } else if (type === WidgetType.ToolSettings)\n this.allowedPanelTargets = [\n StagePanelLocation.Bottom,\n StagePanelLocation.Left,\n StagePanelLocation.Right,\n ];\n\n if (config.priority !== undefined) this._priority = config.priority;\n\n if (config.tooltip) this.setTooltip(config.tooltip);\n else if (config.tooltipKey)\n this._tooltip = IModelApp.localization.getLocalizedString(\n config.tooltipKey\n );\n\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n }\n\n if (\n config.allowedPanels &&\n config.allowedPanels.length === 0 &&\n config.defaultState === WidgetState.Open\n ) {\n this._defaultState = WidgetState.Floating;\n }\n\n this._widgetReactNode = config.content;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._iconSpec = config.iconNode ?? config.icon;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._badge = config.badge;\n this._badgeKind = config.badgeKind;\n\n this._preferredPanelSize = config.preferredPanelSize;\n }\n\n /** @alpha */\n public get preferredPanelSize() {\n return this._preferredPanelSize;\n }\n\n /** Get the label string */\n public get label(): string {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return PropsHelper.getStringFromSpec(this._label);\n }\n\n /** Set the label.\n * @param labelSpec A string or a function to get the string.\n */\n public setLabel(labelSpec: string | ConditionalStringValue | StringGetter) {\n this._label = labelSpec; // TODO: handle ConditionalStringValue\n\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const label = PropsHelper.getStringFromSpec(labelSpec);\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_SET_LABEL\",\n id: this.id,\n label,\n });\n }\n\n /** Get the tooltip string */\n public get tooltip(): string {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return PropsHelper.getStringFromSpec(this._tooltip);\n }\n\n /** Set the tooltip.\n * @param v A string or a function to get the string.\n */\n public setTooltip(v: string | ConditionalStringValue | StringGetter) {\n this._tooltip = v;\n }\n\n public get reactNode(): React.ReactNode {\n if (!this._widgetReactNode) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const widgetControl = this.getWidgetControl(\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ConfigurableUiControlType.Widget\n );\n\n if (widgetControl && widgetControl.reactNode)\n this._widgetReactNode = widgetControl.reactNode;\n }\n\n return this._widgetReactNode;\n }\n\n public set reactNode(node: React.ReactNode) {\n this._widgetReactNode = node;\n }\n\n public setWidgetState(newState: WidgetState): void {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const nineZone = frontstageDef?.nineZoneState;\n if (!nineZone || this.isStatusBar) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n switch (newState) {\n case WidgetState.Closed: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_CLOSE\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Floating: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_FLOAT\",\n id: this.id,\n position: this._defaultFloatingPosition,\n });\n break;\n }\n case WidgetState.Hidden: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_HIDE\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Open: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_OPEN\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Unloaded: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_UNLOAD\",\n id: this.id,\n });\n break;\n }\n }\n }\n\n /** @internal */\n public handleWidgetStateChanged(newState: WidgetState) {\n this._stateChanged = true;\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({\n widgetDef: this,\n widgetState: newState,\n });\n this.onWidgetStateChanged();\n }\n\n public setCanPopout(value: boolean | undefined) {\n this._canPopout = value;\n }\n\n public get canPopout(): boolean | undefined {\n return this._canPopout;\n }\n\n public setFloatingContainerId(value: string | undefined) {\n this._floatingContainerId = value;\n }\n\n public get floatingContainerId(): string | undefined {\n return this._floatingContainerId;\n }\n\n public canOpen(): boolean {\n return this.isFloating || this.isActive;\n }\n\n public get isVisible(): boolean {\n return (\n WidgetState.Hidden !== this.state && WidgetState.Unloaded !== this.state\n );\n }\n\n public get activeState(): WidgetState {\n return this.state;\n }\n\n public get isActive(): boolean {\n return WidgetState.Open === this.activeState;\n }\n\n public set hideWithUiWhenFloating(hide: boolean | undefined) {\n this._hideWithUiWhenFloating = !!hide;\n }\n\n public get hideWithUiWhenFloating(): boolean {\n return !!this._hideWithUiWhenFloating;\n }\n\n public get allowedPanelTargets():\n | ReadonlyArray<StagePanelLocation>\n | undefined {\n return this._allowedPanelTargets;\n }\n\n public set allowedPanelTargets(\n targets: ReadonlyArray<StagePanelLocation> | undefined\n ) {\n this._allowedPanelTargets = targets;\n }\n\n public onWidgetStateChanged(): void {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.widgetControl && this.widgetControl.onWidgetStateChanged();\n }\n\n /** Overwrite to save transient DOM state (i.e. scroll offset). */\n public saveTransientState(): void {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.widgetControl && this.widgetControl.saveTransientState();\n this._saveTransientState && this._saveTransientState();\n }\n\n /** Overwrite to restore transient DOM state.\n * @note Return true if the state is restored or the Widget will remount.\n */\n public restoreTransientState(): boolean {\n let result = true;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n if (this.widgetControl || this._restoreTransientState) {\n let result1 = false,\n result2 = false;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n if (this.widgetControl)\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n result1 = this.widgetControl.restoreTransientState();\n if (this._restoreTransientState) result2 = this._restoreTransientState();\n result = !(result1 || result2);\n }\n return result;\n }\n\n /** Opens the widget and makes it visible to the user.\n * @note Opens the stage panel if needed.\n * @note Brings the floating widget to the front.\n * @note Brings the window of the popout widget to the front (if allowed by the browser).\n * @public\n */\n public show() {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const nineZone = frontstageDef?.nineZoneState;\n if (!nineZone) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n const tabLocation = getTabLocation(nineZone, this.id);\n if (tabLocation && isPopoutTabLocation(tabLocation)) {\n const testWindow = UiFramework.childWindows.find(\n tabLocation.popoutWidgetId\n );\n // Try to bring the window of the popout widget to the front.\n testWindow?.window.focus();\n }\n\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_SHOW\",\n id: this.id,\n });\n }\n\n /** Opens the widget and expands it to fill full size of the stage panel.\n * @public\n */\n public expand() {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const nineZone = frontstageDef?.nineZoneState;\n if (!nineZone) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_EXPAND\",\n id: this.id,\n });\n }\n\n /* eslint-disable @typescript-eslint/no-deprecated */\n\n /** @deprecated in 4.16.0. Uses a deprecated type {@link ConfigurableUiControlConstructor}. */\n public get classId(): string | ConfigurableUiControlConstructor | undefined {\n return undefined;\n }\n\n /** @deprecated in 4.16.0. Returns an instance of a deprecated type {@link WidgetControl}. */\n public get widgetControl(): WidgetControl | undefined {\n return this._widgetControl;\n }\n\n /** @deprecated in 4.16.0. Returns an instance of a deprecated type {@link WidgetControl}. */\n public getWidgetControl(\n type: ConfigurableUiControlType\n ): WidgetControl | undefined {\n if (!this._widgetControl && this.classId) {\n let usedClassId: string = \"\";\n\n if (typeof this.classId === \"string\") {\n if (this.classId)\n this._widgetControl = UiFramework.controls.create(\n this.classId,\n this.id,\n this.applicationData\n ) as WidgetControl;\n usedClassId = this.classId;\n } else {\n const info = new ConfigurableCreateInfo(\n this.classId.name,\n this.id,\n this.id\n );\n usedClassId = this.classId.name;\n this._widgetControl = new this.classId(\n info,\n this.applicationData\n ) as WidgetControl;\n }\n\n if (this._widgetControl) {\n if (this._widgetControl.getType() !== type) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n throw new UiError(\n UiFramework.loggerCategory(\"WidgetDef\"),\n `getWidgetControl: '${usedClassId}' is NOT a ${type}; it is a ${this._widgetControl.getType()}`\n );\n }\n\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n }\n\n if (!this._widgetControl && this.isStatusBar) {\n const info = new ConfigurableCreateInfo(\n \"StatusBarWidgetComposerControl\",\n StatusBarWidgetComposerControl.controlId,\n StatusBarWidgetComposerControl.controlId\n );\n this._widgetControl = new StatusBarWidgetComposerControl(info, undefined);\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n\n return this._widgetControl;\n }\n\n /* eslint-enable @typescript-eslint/no-deprecated */\n}\n\n/** @internal */\nexport function getWidgetState(\n widgetId: WidgetDef[\"id\"],\n nineZone: NineZoneState\n) {\n const tab = nineZone.tabs[widgetId];\n if (tab && tab.unloaded) {\n return WidgetState.Unloaded;\n }\n\n if (nineZone.draggedTab?.tabId === widgetId) {\n return WidgetState.Closed;\n }\n\n const toolSettingsTabId = nineZone.toolSettings?.tabId;\n if (\n toolSettingsTabId === widgetId &&\n nineZone.toolSettings?.type === \"docked\"\n ) {\n return nineZone.toolSettings.hidden ? WidgetState.Hidden : WidgetState.Open;\n }\n\n const location = getTabLocation(nineZone, widgetId);\n if (!location) {\n return WidgetState.Hidden;\n }\n\n if (isFloatingTabLocation(location)) {\n return WidgetState.Floating;\n }\n\n if (isPanelTabLocation(location)) {\n const panel = nineZone.panels[location.side];\n if (panel.collapsed || undefined === panel.size || 0 === panel.size)\n return WidgetState.Closed;\n }\n\n const widget = nineZone.widgets[location.widgetId];\n if (widget.minimized || widgetId !== widget.activeTabId)\n return WidgetState.Closed;\n\n return WidgetState.Open;\n}\n"]}
1
+ {"version":3,"file":"WidgetDef.js","sourceRoot":"","sources":["../../../src/appui-react/widgets/WidgetDef.tsx"],"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 Widget\n */\n\nimport type * as React from \"react\";\nimport type {\n ConditionalStringValue,\n StringGetter,\n} from \"@itwin/appui-abstract\";\nimport { UiError, UiEvent } from \"@itwin/appui-abstract\";\nimport type { XAndY } from \"@itwin/core-geometry\";\nimport type { ConfigurableUiControlConstructor } from \"../configurableui/ConfigurableUiControl.js\";\nimport {\n ConfigurableCreateInfo,\n ConfigurableUiControlType,\n} from \"../configurableui/ConfigurableUiControl.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { PropsHelper } from \"../utils/PropsHelper.js\";\nimport type { WidgetControl } from \"./WidgetControl.js\";\nimport type { BadgeType, IconSpec } from \"@itwin/core-react\";\nimport type { BadgeKind } from \"@itwin/core-react/internal\";\nimport { IconHelper } from \"@itwin/core-react\";\nimport type { WidgetConfig } from \"./WidgetConfig.js\";\nimport { WidgetState } from \"./WidgetState.js\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation.js\";\nimport { StatusBarWidgetComposerControl } from \"./StatusBarWidgetComposerControl.js\";\nimport {\n getTabLocation,\n isFloatingTabLocation,\n isPanelTabLocation,\n isPopoutTabLocation,\n} from \"../layout/state/TabLocation.js\";\nimport type { NineZoneState } from \"../layout/state/NineZoneState.js\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { SizeProps } from \"../utils/SizeProps.js\";\nimport { Widget } from \"./Widget.js\";\n\n/** Widget State Changed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface WidgetStateChangedEventArgs {\n widgetDef: WidgetDef;\n widgetState: WidgetState;\n}\n\n/** Widget State Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class WidgetStateChangedEvent extends UiEvent<WidgetStateChangedEventArgs> {}\n\n/** Widget type enum.\n * @public\n */\nexport enum WidgetType {\n Tool,\n Navigation,\n Rectangular,\n ToolSettings,\n StatusBar,\n}\n\n// -----------------------------------------------------------------------------\n\n/** A Widget Definition in the 9-Zone Layout system.\n * @public\n */\nexport class WidgetDef {\n private static _sId = 0;\n private _label: string | ConditionalStringValue | StringGetter = \"\";\n private _tooltip: string | ConditionalStringValue | StringGetter = \"\";\n private _widgetReactNode: React.ReactNode;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _widgetControl!: WidgetControl;\n private _defaultState: WidgetState = WidgetState.Closed;\n private _id: string;\n private _priority: number = 0;\n private _stateChanged: boolean = false;\n private _widgetType: WidgetType = WidgetType.Rectangular;\n private _applicationData?: any;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _iconSpec?: IconSpec;\n private _internalData?: Map<string, any>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _badge?: BadgeType;\n private _badgeKind?: BadgeKind;\n private _saveTransientState?: () => void;\n private _restoreTransientState?: () => boolean;\n private _preferredPanelSize: \"fit-content\" | undefined;\n private _defaultFloatingSize: SizeProps | undefined;\n private _canPopout?: boolean;\n private _floatingContainerId?: string;\n private _defaultFloatingPosition: XAndY | undefined;\n\n private _hideWithUiWhenFloating?: boolean;\n private _allowedPanelTargets?: ReadonlyArray<StagePanelLocation>;\n private _initialConfig?: WidgetConfig;\n\n public get state(): WidgetState {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const nineZone = frontstageDef?.nineZoneState;\n if (!nineZone) return this.defaultState;\n if (!frontstageDef.findWidgetDef(this.id)) return this.defaultState;\n return getWidgetState(this.id, nineZone);\n }\n\n public get id(): string {\n return this._id;\n }\n\n public get priority(): number {\n return this._priority;\n }\n\n public get isFloatingStateSupported(): boolean {\n if (!this.initialConfig) return true;\n\n const allowedPanels = this.initialConfig.allowedPanels;\n if (allowedPanels && allowedPanels.length === 0) {\n return true;\n }\n\n const canFloat = this.initialConfig.canFloat;\n if (canFloat === undefined) return true;\n return !!canFloat;\n }\n\n public get isFloatingStateWindowResizable(): boolean {\n const canFloat = this.initialConfig?.canFloat;\n if (typeof canFloat === \"object\") {\n return canFloat.isResizable === undefined ? true : canFloat.isResizable;\n }\n\n return true;\n }\n\n public get isToolSettings(): boolean {\n return this._widgetType === WidgetType.ToolSettings;\n }\n public get isStatusBar(): boolean {\n return this._widgetType === WidgetType.StatusBar;\n }\n public get stateChanged(): boolean {\n return this._stateChanged;\n }\n public get applicationData(): any {\n return this._applicationData;\n }\n public get isFloating(): boolean {\n return this.state === WidgetState.Floating;\n }\n\n /** @deprecated in 4.16.0. Use {@link Widget.iconNode} instead. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public get iconSpec(): IconSpec {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return this._iconSpec === IconHelper.reactIconKey\n ? IconHelper.getIconReactNode(this._iconSpec, this._internalData) // eslint-disable-line @typescript-eslint/no-deprecated\n : this._iconSpec;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public set iconSpec(spec: IconSpec) {\n // Setter is deprecated as well: ae-setter-with-docs.\n this._iconSpec = this._internalData\n ? IconHelper.getIconData(spec, this._internalData) // eslint-disable-line @typescript-eslint/no-deprecated\n : spec;\n }\n /** @deprecated in 4.16.0. Use `badgeKind` instead. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public get badgeType(): BadgeType | undefined {\n return this._badge;\n }\n public get badgeKind(): BadgeKind | undefined {\n return this._badgeKind;\n }\n public get initialConfig(): WidgetConfig | undefined {\n return this._initialConfig;\n }\n\n public get widgetType(): WidgetType {\n return this._widgetType;\n }\n public set widgetType(type: WidgetType) {\n this._widgetType = type;\n }\n\n /** @internal */\n public get defaultFloatingPosition() {\n return this._defaultFloatingPosition;\n }\n public set defaultFloatingPosition(position: XAndY | undefined) {\n this._defaultFloatingPosition = position;\n }\n\n /** @internal */\n public get defaultFloatingSize() {\n return this._defaultFloatingSize;\n }\n public set defaultFloatingSize(size: SizeProps | undefined) {\n this._defaultFloatingSize = size;\n }\n\n public get defaultState() {\n return this._defaultState;\n }\n\n constructor() {\n WidgetDef._sId++;\n this._id = `Widget-${WidgetDef._sId}`;\n }\n\n /** @internal */\n public static create(\n config: WidgetConfig,\n type: WidgetType = WidgetType.Rectangular\n ) {\n const def = new WidgetDef();\n def.initializeFromConfig(config, type);\n return def;\n }\n\n private initializeFromConfig(config: WidgetConfig, type: WidgetType) {\n this._widgetType = type;\n this._initialConfig = config;\n this._id = config.id;\n\n if (config.label) this._label = config.label;\n else if (config.labelKey)\n this._label = IModelApp.localization.getLocalizedString(config.labelKey);\n else if (type === WidgetType.ToolSettings) this._label = \"Tool Settings\";\n\n this.setCanPopout(config.canPopout);\n\n const canFloat = config.canFloat;\n if (typeof canFloat === \"object\") {\n this.setFloatingContainerId(canFloat.containerId);\n this.defaultFloatingPosition = canFloat.defaultPosition;\n this._hideWithUiWhenFloating = !!canFloat.hideWithUi;\n this._defaultFloatingSize = canFloat.defaultSize;\n }\n\n if (\"allowedPanels\" in config) {\n this.allowedPanelTargets = config.allowedPanels;\n } else if (type === WidgetType.ToolSettings)\n this.allowedPanelTargets = [\n StagePanelLocation.Bottom,\n StagePanelLocation.Left,\n StagePanelLocation.Right,\n ];\n\n if (config.priority !== undefined) this._priority = config.priority;\n\n if (config.tooltip) this.setTooltip(config.tooltip);\n else if (config.tooltipKey)\n this._tooltip = IModelApp.localization.getLocalizedString(\n config.tooltipKey\n );\n\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n }\n\n if (\n config.allowedPanels &&\n config.allowedPanels.length === 0 &&\n config.defaultState === WidgetState.Open\n ) {\n this._defaultState = WidgetState.Floating;\n }\n\n this._widgetReactNode = config.content;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._iconSpec = config.iconNode ?? config.icon;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._badge = config.badge;\n this._badgeKind = config.badgeKind;\n\n this._preferredPanelSize = config.preferredPanelSize;\n }\n\n /** @alpha */\n public get preferredPanelSize() {\n return this._preferredPanelSize;\n }\n\n /** Get the label string */\n public get label(): string {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return PropsHelper.getStringFromSpec(this._label);\n }\n\n /** Set the label.\n * @param labelSpec A string or a function to get the string.\n */\n public setLabel(labelSpec: string | ConditionalStringValue | StringGetter) {\n this._label = labelSpec; // TODO: handle ConditionalStringValue\n\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const label = PropsHelper.getStringFromSpec(labelSpec);\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_SET_LABEL\",\n id: this.id,\n label,\n });\n }\n\n /** Get the tooltip string */\n public get tooltip(): string {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return PropsHelper.getStringFromSpec(this._tooltip);\n }\n\n /** Set the tooltip.\n * @param v A string or a function to get the string.\n */\n public setTooltip(v: string | ConditionalStringValue | StringGetter) {\n this._tooltip = v;\n }\n\n public get reactNode(): React.ReactNode {\n if (!this._widgetReactNode) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const widgetControl = this.getWidgetControl(\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ConfigurableUiControlType.Widget\n );\n\n if (widgetControl && widgetControl.reactNode)\n this._widgetReactNode = widgetControl.reactNode;\n }\n\n return this._widgetReactNode;\n }\n\n public set reactNode(node: React.ReactNode) {\n this._widgetReactNode = node;\n }\n\n public setWidgetState(newState: WidgetState): void {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const nineZone = frontstageDef?.nineZoneState;\n if (!nineZone || this.isStatusBar) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n switch (newState) {\n case WidgetState.Closed: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_CLOSE\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Floating: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_FLOAT\",\n id: this.id,\n position: this._defaultFloatingPosition,\n });\n break;\n }\n case WidgetState.Hidden: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_HIDE\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Open: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_OPEN\",\n id: this.id,\n });\n break;\n }\n case WidgetState.Unloaded: {\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_UNLOAD\",\n id: this.id,\n });\n break;\n }\n }\n }\n\n /** @internal */\n public handleWidgetStateChanged(newState: WidgetState) {\n this._stateChanged = true;\n UiFramework.frontstages.onWidgetStateChangedEvent.emit({\n widgetDef: this,\n widgetState: newState,\n });\n this.onWidgetStateChanged();\n }\n\n public setCanPopout(value: boolean | undefined) {\n this._canPopout = value;\n }\n\n public get canPopout(): boolean | undefined {\n return this._canPopout;\n }\n\n public setFloatingContainerId(value: string | undefined) {\n this._floatingContainerId = value;\n }\n\n public get floatingContainerId(): string | undefined {\n return this._floatingContainerId;\n }\n\n public canOpen(): boolean {\n return this.isFloating || this.isActive;\n }\n\n public get isVisible(): boolean {\n return (\n WidgetState.Hidden !== this.state && WidgetState.Unloaded !== this.state\n );\n }\n\n public get activeState(): WidgetState {\n return this.state;\n }\n\n public get isActive(): boolean {\n return WidgetState.Open === this.activeState;\n }\n\n public set hideWithUiWhenFloating(hide: boolean | undefined) {\n this._hideWithUiWhenFloating = !!hide;\n }\n\n public get hideWithUiWhenFloating(): boolean {\n return !!this._hideWithUiWhenFloating;\n }\n\n public get allowedPanelTargets():\n | ReadonlyArray<StagePanelLocation>\n | undefined {\n return this._allowedPanelTargets;\n }\n\n public set allowedPanelTargets(\n targets: ReadonlyArray<StagePanelLocation> | undefined\n ) {\n this._allowedPanelTargets = targets;\n }\n\n public onWidgetStateChanged(): void {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.widgetControl && this.widgetControl.onWidgetStateChanged();\n }\n\n /** Overwrite to save transient DOM state (i.e. scroll offset). */\n public saveTransientState(): void {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.widgetControl && this.widgetControl.saveTransientState();\n this._saveTransientState && this._saveTransientState();\n }\n\n /** Overwrite to restore transient DOM state.\n * @note Return true if the state is restored or the Widget will remount.\n */\n public restoreTransientState(): boolean {\n let result = true;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n if (this.widgetControl || this._restoreTransientState) {\n let result1 = false,\n result2 = false;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n if (this.widgetControl)\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n result1 = this.widgetControl.restoreTransientState();\n if (this._restoreTransientState) result2 = this._restoreTransientState();\n result = !(result1 || result2);\n }\n return result;\n }\n\n /** Opens the widget and makes it visible to the user.\n * @note Opens the stage panel if needed.\n * @note Brings the floating widget to the front.\n * @note Brings the window of the popout widget to the front (if allowed by the browser).\n * @public\n */\n public show() {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const nineZone = frontstageDef?.nineZoneState;\n if (!nineZone) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n const tabLocation = getTabLocation(nineZone, this.id);\n if (tabLocation && isPopoutTabLocation(tabLocation)) {\n const testWindow = UiFramework.childWindows.find(\n tabLocation.popoutWidgetId\n );\n // Try to bring the window of the popout widget to the front.\n testWindow?.window.focus();\n }\n\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_SHOW\",\n id: this.id,\n });\n }\n\n /** Opens the widget and expands it to fill full size of the stage panel.\n * @public\n */\n public expand() {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const nineZone = frontstageDef?.nineZoneState;\n if (!nineZone) return;\n if (!frontstageDef.findWidgetDef(this.id)) return;\n\n frontstageDef.dispatch({\n type: \"WIDGET_TAB_EXPAND\",\n id: this.id,\n });\n }\n\n /* eslint-disable @typescript-eslint/no-deprecated */\n\n /** @deprecated in 4.16.0. Uses a deprecated type {@link ConfigurableUiControlConstructor}. */\n public get classId(): string | ConfigurableUiControlConstructor | undefined {\n return undefined;\n }\n\n /** @deprecated in 4.16.0. Returns an instance of a deprecated type {@link WidgetControl}. */\n public get widgetControl(): WidgetControl | undefined {\n return this._widgetControl;\n }\n\n /** @deprecated in 4.16.0. Returns an instance of a deprecated type {@link WidgetControl}. */\n public getWidgetControl(\n type: ConfigurableUiControlType\n ): WidgetControl | undefined {\n if (!this._widgetControl && this.classId) {\n let usedClassId: string = \"\";\n\n if (typeof this.classId === \"string\") {\n if (this.classId)\n this._widgetControl = UiFramework.controls.create(\n this.classId,\n this.id,\n this.applicationData\n ) as WidgetControl;\n usedClassId = this.classId;\n } else {\n const info = new ConfigurableCreateInfo(\n this.classId.name,\n this.id,\n this.id\n );\n usedClassId = this.classId.name;\n this._widgetControl = new this.classId(\n info,\n this.applicationData\n ) as WidgetControl;\n }\n\n if (this._widgetControl) {\n if (this._widgetControl.getType() !== type) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n throw new UiError(\n UiFramework.loggerCategory(\"WidgetDef\"),\n `getWidgetControl: '${usedClassId}' is NOT a ${type}; it is a ${this._widgetControl.getType()}`\n );\n }\n\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n }\n\n if (!this._widgetControl && this.isStatusBar) {\n const info = new ConfigurableCreateInfo(\n \"StatusBarWidgetComposerControl\",\n StatusBarWidgetComposerControl.controlId,\n StatusBarWidgetComposerControl.controlId\n );\n this._widgetControl = new StatusBarWidgetComposerControl(info, undefined);\n this._widgetControl.widgetDef = this;\n this._widgetControl.initialize();\n }\n\n return this._widgetControl;\n }\n\n /* eslint-enable @typescript-eslint/no-deprecated */\n}\n\n/** @internal */\nexport function getWidgetState(\n widgetId: WidgetDef[\"id\"],\n nineZone: NineZoneState\n) {\n const tab = nineZone.tabs[widgetId];\n if (tab && tab.unloaded) {\n return WidgetState.Unloaded;\n }\n\n if (nineZone.draggedTab?.tabId === widgetId) {\n return WidgetState.Closed;\n }\n\n const toolSettingsTabId = nineZone.toolSettings?.tabId;\n if (\n toolSettingsTabId === widgetId &&\n nineZone.toolSettings?.type === \"docked\"\n ) {\n return nineZone.toolSettings.hidden ? WidgetState.Hidden : WidgetState.Open;\n }\n\n const location = getTabLocation(nineZone, widgetId);\n if (!location) {\n return WidgetState.Hidden;\n }\n\n if (isFloatingTabLocation(location)) {\n return WidgetState.Floating;\n }\n\n if (isPanelTabLocation(location)) {\n const panel = nineZone.panels[location.side];\n if (panel.collapsed || undefined === panel.size || 0 === panel.size)\n return WidgetState.Closed;\n }\n\n const widget = nineZone.widgets[location.widgetId];\n if (widget.minimized || widgetId !== widget.activeTabId)\n return WidgetState.Closed;\n\n return WidgetState.Open;\n}\n"]}