@itwin/appui-react 4.0.0-dev.15 → 4.0.0-dev.17

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 (148) hide show
  1. package/lib/cjs/appui-react/UiFramework.d.ts +6 -4
  2. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  3. package/lib/cjs/appui-react/UiFramework.js +6 -4
  4. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  5. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts +6 -2
  6. package/lib/cjs/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  8. package/lib/cjs/appui-react/frontstage/FrontstageConfig.d.ts +5 -0
  9. package/lib/cjs/appui-react/frontstage/FrontstageConfig.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/frontstage/FrontstageConfig.js.map +1 -1
  11. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +4 -2
  12. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  13. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +29 -4
  14. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  15. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +6 -2
  16. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  17. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +5 -1
  18. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  19. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +5 -0
  20. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  21. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -0
  22. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  23. package/lib/cjs/appui-react/popup/CardPopup.js +2 -1
  24. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  25. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  26. package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -3
  27. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  28. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +13 -197
  29. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  30. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +32 -4
  31. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  32. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +3 -10
  33. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  34. package/lib/cjs/appui-react/statusfields/SelectionScope.js +17 -24
  35. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  36. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +3 -24
  37. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/statusfields/SnapMode.js +43 -72
  39. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  40. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +4 -1
  41. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +12 -0
  43. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  44. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +32 -0
  45. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -0
  46. package/lib/cjs/appui-react/toolbar/Toolbar.js +26 -0
  47. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -0
  48. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +4 -5
  50. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  51. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.d.ts +34 -0
  52. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -0
  53. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.js +26 -0
  54. package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -0
  55. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js +1 -1
  56. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
  57. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts +2 -2
  58. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +2 -2
  59. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  60. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts +1 -1
  61. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
  62. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +1 -1
  63. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  64. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  65. package/lib/cjs/appui-react/widget-panels/Frontstage.js +7 -6
  66. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  67. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +2 -2
  68. package/lib/cjs/appui-react/widgets/WidgetDef.js +2 -2
  69. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  70. package/lib/cjs/appui-react.d.ts +2 -0
  71. package/lib/cjs/appui-react.d.ts.map +1 -1
  72. package/lib/cjs/appui-react.js +2 -0
  73. package/lib/cjs/appui-react.js.map +1 -1
  74. package/lib/esm/appui-react/UiFramework.d.ts +6 -4
  75. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  76. package/lib/esm/appui-react/UiFramework.js +6 -4
  77. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  78. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts +6 -2
  79. package/lib/esm/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
  80. package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  81. package/lib/esm/appui-react/frontstage/FrontstageConfig.d.ts +5 -0
  82. package/lib/esm/appui-react/frontstage/FrontstageConfig.d.ts.map +1 -1
  83. package/lib/esm/appui-react/frontstage/FrontstageConfig.js.map +1 -1
  84. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +4 -2
  85. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  86. package/lib/esm/appui-react/frontstage/FrontstageDef.js +29 -4
  87. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  88. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +6 -2
  89. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  90. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +5 -1
  91. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  92. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +5 -0
  93. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  94. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -0
  95. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  96. package/lib/esm/appui-react/popup/CardPopup.js +2 -1
  97. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  98. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  99. package/lib/esm/appui-react/popup/ToolbarPopup.js +3 -4
  100. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  101. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +13 -197
  102. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  103. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +31 -3
  104. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  105. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +3 -10
  106. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  107. package/lib/esm/appui-react/statusfields/SelectionScope.js +17 -24
  108. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  109. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +3 -24
  110. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  111. package/lib/esm/appui-react/statusfields/SnapMode.js +43 -72
  112. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  113. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +4 -1
  114. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  115. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +12 -0
  116. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  117. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +32 -0
  118. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -0
  119. package/lib/esm/appui-react/toolbar/Toolbar.js +22 -0
  120. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -0
  121. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  122. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +5 -6
  123. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  124. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.d.ts +34 -0
  125. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.d.ts.map +1 -0
  126. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.js +22 -0
  127. package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -0
  128. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js +1 -1
  129. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
  130. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts +2 -2
  131. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +2 -2
  132. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  133. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts +1 -1
  134. package/lib/esm/appui-react/utils/InternalUiShowHideManager.d.ts.map +1 -1
  135. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +1 -1
  136. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  137. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  138. package/lib/esm/appui-react/widget-panels/Frontstage.js +7 -6
  139. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  140. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +2 -2
  141. package/lib/esm/appui-react/widgets/WidgetDef.js +2 -2
  142. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  143. package/lib/esm/appui-react.d.ts +2 -0
  144. package/lib/esm/appui-react.d.ts.map +1 -1
  145. package/lib/esm/appui-react.js +2 -0
  146. package/lib/esm/appui-react.js.map +1 -1
  147. package/lib/public/locales/en/UiFramework.json +0 -5
  148. package/package.json +11 -10
@@ -35,6 +35,7 @@ class StandardFrontstageProvider extends FrontstageProvider_1.FrontstageProvider
35
35
  version: this.props.version ?? 1.0,
36
36
  contentGroup,
37
37
  usage: this.props.usage,
38
+ defaultTool: this.props.defaultTool,
38
39
  contentManipulation: {
39
40
  id: `${this.props.id}-contentManipulationTools`,
40
41
  content: React.createElement(ContentToolWidgetComposer_1.ContentToolWidgetComposer, { cornerButton: this.props.cornerButton }),
@@ -1 +1 @@
1
- {"version":3,"file":"StandardFrontstageProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/StandardFrontstageProvider.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAAgG;AAChG,6DAA0D;AAC1D,oFAAiF;AACjF,8EAA2E;AAC3E,gEAA+D;AAI/D,sEAAmE;AAoDnE;;;;GAIG;AACH,MAAa,0BAA2B,SAAQ,uCAAkB;IAChE,YAAoB,KAA8B;QAChD,KAAK,EAAE,CAAC;QADU,UAAK,GAAL,KAAK,CAAyB;IAElD,CAAC;IAED,IAAoB,EAAE;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,CAAC;IAEe,gBAAgB;QAC9B,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,YAAY,mCAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpK,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACjB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,GAAG;YAClC,YAAY;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,mBAAmB,EAAE;gBACnB,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,2BAA2B;gBAC/C,OAAO,EAAE,oBAAC,qDAAyB,IAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;aAC9E;YACD,cAAc,EAAE;gBACd,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,sBAAsB;gBAC1C,OAAO,EAAE,oBAAC,+CAAsB,IAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAI;aACrF;YACD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACtD,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,eAAe;aACpC;YACD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAChD,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY;gBAChC,OAAO,EAAE,oBAAC,qCAAiB,IAAC,KAAK,EAAE,EAAE,GAAI;aAC1C;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,+BAAe,CAAC,SAAS;gBACvC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc;aAC7B;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,+BAAe,CAAC,SAAS;gBACvC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;aAC5B;YACD,UAAU,EAAE;gBACV,YAAY,EAAE,+BAAe,CAAC,IAAI;gBAClC,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe;aAC9B;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,GAAG;gBACT,YAAY,EAAE,+BAAe,CAAC,IAAI;gBAClC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB;aAC/B;SACF,CAAC;IACJ,CAAC;CACF;AAtDD,gEAsDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ContentGroup, ContentGroupProps, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { ContentToolWidgetComposer } from \"../widgets/ContentToolWidgetComposer\";\r\nimport { ViewToolWidgetComposer } from \"../widgets/ViewToolWidgetComposer\";\r\nimport { StagePanelState } from \"../stagepanels/StagePanelDef\";\r\nimport { FrontstageConfig } from \"./FrontstageConfig\";\r\nimport { StagePanelConfig } from \"../stagepanels/StagePanelConfig\";\r\nimport { StageUsage } from \"./StageUsage\";\r\nimport { StatusBarComposer } from \"../statusbar/StatusBarComposer\";\r\n\r\n/** Properties of a [[WidgetPanelProps]] component\r\n * @public\r\n */\r\nexport type WidgetPanelProps = Omit<StagePanelConfig, \"widgets\" | \"runtimeProps\" | \"header\" | \"allowedZones\" | \"panelZones\">;\r\n\r\n/**\r\n * Props for [[StandardFrontstageProvider]]\r\n * @public\r\n */\r\nexport interface StandardFrontstageProps {\r\n /* unique stage id. To ensure uniqueness it is common practice to format id like `appName:stageId` */\r\n id: string;\r\n /* version id that is used to store state of stage */\r\n version?: number;\r\n // Usage of stage. To allow generic UiItemProvides to populate this stage set to `StageUsage.General`.\r\n usage: StageUsage | string;\r\n /** Definition of available content groups or a function that provides them */\r\n contentGroupProps: ContentGroupProps | ContentGroupProvider;\r\n /** Specify button to use to open backstage. Leave undefined for no backstage button.\r\n * ```\r\n * <BackstageAppButton icon={<SvgBentleySystems />} />\r\n * ```\r\n * Custom corner button definition\r\n * ```\r\n * const cornerButton = <BackstageAppButton icon={<SvgBentleySystems />}\r\n * label=\"Toggle Backstage display\",\r\n * execute={() => UiFramework.backstage.getBackstageToggleCommand().execute()} />;\r\n * ```\r\n */\r\n cornerButton?: React.ReactNode;\r\n /** Set to true if default Navigation aid is not desired */\r\n hideNavigationAid?: boolean;\r\n /** Set to true if no tool setting dock is needed. Typically only used in modal stages. */\r\n hideToolSettings?: boolean;\r\n /** Set to true if no status bar is needed in stage */\r\n hideStatusBar?: boolean;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 300, pinned=false, defaultState:StagePanelState.Minimized} */\r\n leftPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 90, pinned=false, defaultState:StagePanelState.Minimized} */\r\n topPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 200, pinned=true, defaultState:StagePanelState.Open} */\r\n rightPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 180, pinned=true, defaultState:StagePanelState.Open} */\r\n bottomPanelProps?: WidgetPanelProps;\r\n}\r\n\r\n/**\r\n * FrontstageProvider that provides an \"empty\" stage. All tool buttons, statusbar items, and widgets must\r\n * be provided by one or more item providers, see [UiItemsProvider]($appui-abstract).\r\n * @public\r\n */\r\nexport class StandardFrontstageProvider extends FrontstageProvider {\r\n constructor(private props: StandardFrontstageProps) {\r\n super();\r\n }\r\n\r\n public override get id(): string {\r\n return this.props.id;\r\n }\r\n\r\n public override frontstageConfig(): FrontstageConfig {\r\n const contentGroup = (this.props.contentGroupProps instanceof ContentGroupProvider) ? this.props.contentGroupProps : new ContentGroup(this.props.contentGroupProps);\r\n return {\r\n id: this.props.id,\r\n version: this.props.version ?? 1.0,\r\n contentGroup,\r\n usage: this.props.usage,\r\n contentManipulation: {\r\n id: `${this.props.id}-contentManipulationTools`,\r\n content: <ContentToolWidgetComposer cornerButton={this.props.cornerButton} />,\r\n },\r\n viewNavigation: {\r\n id: `${this.props.id}-viewNavigationTools`,\r\n content: <ViewToolWidgetComposer hideNavigationAid={this.props.hideNavigationAid} />,\r\n },\r\n toolSettings: this.props.hideToolSettings ? undefined : {\r\n id: `${this.props.id}-toolSettings`,\r\n },\r\n statusBar: this.props.hideStatusBar ? undefined : {\r\n id: `${this.props.id}-statusBar`,\r\n content: <StatusBarComposer items={[]} />,\r\n },\r\n leftPanel: {\r\n size: 300,\r\n pinned: false,\r\n defaultState: StagePanelState.Minimized,\r\n ...this.props.leftPanelProps,\r\n },\r\n topPanel: {\r\n size: 90,\r\n pinned: false,\r\n defaultState: StagePanelState.Minimized,\r\n ...this.props.topPanelProps,\r\n },\r\n rightPanel: {\r\n defaultState: StagePanelState.Open,\r\n ...this.props.rightPanelProps,\r\n },\r\n bottomPanel: {\r\n size: 180,\r\n defaultState: StagePanelState.Open,\r\n ...this.props.bottomPanelProps,\r\n },\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StandardFrontstageProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/StandardFrontstageProvider.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAAgG;AAChG,6DAA0D;AAC1D,oFAAiF;AACjF,8EAA2E;AAC3E,gEAA+D;AAI/D,sEAAmE;AAyDnE;;;;GAIG;AACH,MAAa,0BAA2B,SAAQ,uCAAkB;IAChE,YAAoB,KAA8B;QAChD,KAAK,EAAE,CAAC;QADU,UAAK,GAAL,KAAK,CAAyB;IAElD,CAAC;IAED,IAAoB,EAAE;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,CAAC;IAEe,gBAAgB;QAC9B,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,YAAY,mCAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpK,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACjB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,GAAG;YAClC,YAAY;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,mBAAmB,EAAE;gBACnB,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,2BAA2B;gBAC/C,OAAO,EAAE,oBAAC,qDAAyB,IAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI;aAC9E;YACD,cAAc,EAAE;gBACd,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,sBAAsB;gBAC1C,OAAO,EAAE,oBAAC,+CAAsB,IAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAI;aACrF;YACD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBACtD,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,eAAe;aACpC;YACD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAChD,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY;gBAChC,OAAO,EAAE,oBAAC,qCAAiB,IAAC,KAAK,EAAE,EAAE,GAAI;aAC1C;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,+BAAe,CAAC,SAAS;gBACvC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc;aAC7B;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,KAAK;gBACb,YAAY,EAAE,+BAAe,CAAC,SAAS;gBACvC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;aAC5B;YACD,UAAU,EAAE;gBACV,YAAY,EAAE,+BAAe,CAAC,IAAI;gBAClC,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe;aAC9B;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,GAAG;gBACT,YAAY,EAAE,+BAAe,CAAC,IAAI;gBAClC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB;aAC/B;SACF,CAAC;IACJ,CAAC;CACF;AAvDD,gEAuDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ContentGroup, ContentGroupProps, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { ContentToolWidgetComposer } from \"../widgets/ContentToolWidgetComposer\";\r\nimport { ViewToolWidgetComposer } from \"../widgets/ViewToolWidgetComposer\";\r\nimport { StagePanelState } from \"../stagepanels/StagePanelDef\";\r\nimport { FrontstageConfig } from \"./FrontstageConfig\";\r\nimport { StagePanelConfig } from \"../stagepanels/StagePanelConfig\";\r\nimport { StageUsage } from \"./StageUsage\";\r\nimport { StatusBarComposer } from \"../statusbar/StatusBarComposer\";\r\n\r\n/** Properties of a [[WidgetPanelProps]] component\r\n * @public\r\n */\r\nexport type WidgetPanelProps = Omit<StagePanelConfig, \"widgets\" | \"runtimeProps\" | \"header\" | \"allowedZones\" | \"panelZones\">;\r\n\r\n/**\r\n * Props for [[StandardFrontstageProvider]]\r\n * @public\r\n */\r\nexport interface StandardFrontstageProps {\r\n /* unique stage id. To ensure uniqueness it is common practice to format id like `appName:stageId` */\r\n id: string;\r\n /* version id that is used to store state of stage */\r\n version?: number;\r\n // Usage of stage. To allow generic UiItemProvides to populate this stage set to `StageUsage.General`.\r\n usage: StageUsage | string;\r\n /** The defaultTool is is started when then frontstage loads and whenever any other tools exit.\r\n * Most of the time, this is the Element Selection Tool (SelectionTool.toolId).\r\n * Your app can specify its own tool or another core tool as default with this property.\r\n */\r\n defaultTool?: string;\r\n /** Definition of available content groups or a function that provides them */\r\n contentGroupProps: ContentGroupProps | ContentGroupProvider;\r\n /** Specify button to use to open backstage. Leave undefined for no backstage button.\r\n * ```\r\n * <BackstageAppButton icon={<SvgBentleySystems />} />\r\n * ```\r\n * Custom corner button definition\r\n * ```\r\n * const cornerButton = <BackstageAppButton icon={<SvgBentleySystems />}\r\n * label=\"Toggle Backstage display\",\r\n * execute={() => UiFramework.backstage.getBackstageToggleCommand().execute()} />;\r\n * ```\r\n */\r\n cornerButton?: React.ReactNode;\r\n /** Set to true if default Navigation aid is not desired */\r\n hideNavigationAid?: boolean;\r\n /** Set to true if no tool setting dock is needed. Typically only used in modal stages. */\r\n hideToolSettings?: boolean;\r\n /** Set to true if no status bar is needed in stage */\r\n hideStatusBar?: boolean;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 300, pinned=false, defaultState:StagePanelState.Minimized} */\r\n leftPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 90, pinned=false, defaultState:StagePanelState.Minimized} */\r\n topPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 200, pinned=true, defaultState:StagePanelState.Open} */\r\n rightPanelProps?: WidgetPanelProps;\r\n /** Props used to set initial size and state of panel. Defaults to:\r\n * {size: 180, pinned=true, defaultState:StagePanelState.Open} */\r\n bottomPanelProps?: WidgetPanelProps;\r\n}\r\n\r\n/**\r\n * FrontstageProvider that provides an \"empty\" stage. All tool buttons, statusbar items, and widgets must\r\n * be provided by one or more item providers, see [UiItemsProvider]($appui-abstract).\r\n * @public\r\n */\r\nexport class StandardFrontstageProvider extends FrontstageProvider {\r\n constructor(private props: StandardFrontstageProps) {\r\n super();\r\n }\r\n\r\n public override get id(): string {\r\n return this.props.id;\r\n }\r\n\r\n public override frontstageConfig(): FrontstageConfig {\r\n const contentGroup = (this.props.contentGroupProps instanceof ContentGroupProvider) ? this.props.contentGroupProps : new ContentGroup(this.props.contentGroupProps);\r\n return {\r\n id: this.props.id,\r\n version: this.props.version ?? 1.0,\r\n contentGroup,\r\n usage: this.props.usage,\r\n defaultTool: this.props.defaultTool,\r\n contentManipulation: {\r\n id: `${this.props.id}-contentManipulationTools`,\r\n content: <ContentToolWidgetComposer cornerButton={this.props.cornerButton} />,\r\n },\r\n viewNavigation: {\r\n id: `${this.props.id}-viewNavigationTools`,\r\n content: <ViewToolWidgetComposer hideNavigationAid={this.props.hideNavigationAid} />,\r\n },\r\n toolSettings: this.props.hideToolSettings ? undefined : {\r\n id: `${this.props.id}-toolSettings`,\r\n },\r\n statusBar: this.props.hideStatusBar ? undefined : {\r\n id: `${this.props.id}-statusBar`,\r\n content: <StatusBarComposer items={[]} />,\r\n },\r\n leftPanel: {\r\n size: 300,\r\n pinned: false,\r\n defaultState: StagePanelState.Minimized,\r\n ...this.props.leftPanelProps,\r\n },\r\n topPanel: {\r\n size: 90,\r\n pinned: false,\r\n defaultState: StagePanelState.Minimized,\r\n ...this.props.topPanelProps,\r\n },\r\n rightPanel: {\r\n defaultState: StagePanelState.Open,\r\n ...this.props.rightPanelProps,\r\n },\r\n bottomPanel: {\r\n size: 180,\r\n defaultState: StagePanelState.Open,\r\n ...this.props.bottomPanelProps,\r\n },\r\n };\r\n }\r\n}\r\n"]}
@@ -84,7 +84,8 @@ function Card(props) {
84
84
  props.items &&
85
85
  React.createElement(React.Fragment, null,
86
86
  React.createElement("div", { className: "uifw-card-separator" }),
87
- React.createElement(components_react_1.ToolbarWithOverflow, { expandsTo: components_react_1.Direction.Bottom, panelAlignment: components_react_1.ToolbarPanelAlignment.Start, items: props.items, useDragInteraction: true, toolbarOpacitySetting: components_react_1.ToolbarOpacitySetting.Transparent, onItemExecuted: props.onItemExecuted }))));
87
+ React.createElement(components_react_1.ToolbarWithOverflow // eslint-disable-line deprecation/deprecation
88
+ , { expandsTo: components_react_1.Direction.Bottom, panelAlignment: components_react_1.ToolbarPanelAlignment.Start, items: props.items, useDragInteraction: true, toolbarOpacitySetting: components_react_1.ToolbarOpacitySetting.Transparent, onItemExecuted: props.onItemExecuted }))));
88
89
  }
89
90
  exports.Card = Card;
90
91
  //# sourceMappingURL=CardPopup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/CardPopup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\nimport \"./CardPopup.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { CommonToolbarItem, OnCancelFunc, OnItemExecutedFunc, PropertyRecord, RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { DivWithOutsideClick, FocusTrap, Orientation, Point, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { Text } from \"@itwin/itwinui-react\";\r\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup\";\r\nimport { isReactContent, PopupContentType, PopupManager, PopupPropsBase } from \"./PopupManager\";\r\nimport { PositionPopup } from \"./PositionPopup\";\r\nimport { MessageDiv } from \"../messages/MessageSpan\";\r\nimport { Direction, PropertyValueRendererManager, ToolbarOpacitySetting, ToolbarPanelAlignment, ToolbarWithOverflow } from \"@itwin/components-react\";\r\n\r\n/** Props for defining a CardPopup editor\r\n * @beta */\r\nexport interface CardPopupProps extends PopupPropsBase {\r\n content: PopupContentType;\r\n title: string | PropertyRecord | undefined;\r\n items: CommonToolbarItem[] | undefined;\r\n relativePosition: RelativePosition;\r\n orientation: Orientation;\r\n onCancel: OnCancelFunc;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** @internal */\r\ninterface CardPopupState {\r\n size: Size;\r\n}\r\n\r\n/** Popup component for Input Editor\r\n * @beta\r\n */\r\nexport class CardPopup extends React.PureComponent<CardPopupProps, CardPopupState> {\r\n /** @internal */\r\n public override readonly state = {\r\n size: new Size(-1, -1),\r\n };\r\n\r\n private _onSizeKnown = (newSize: SizeProps) => {\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize))\r\n this.setState({ size: Size.create(newSize) });\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent): void => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n }\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n }\r\n\r\n public override render() {\r\n let point = PopupManager.getPopupPosition(this.props.el, this.props.pt, new Point(), this.state.size);\r\n const popupRect = CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);\r\n point = new Point(popupRect.left, popupRect.top);\r\n\r\n return (\r\n <PositionPopup key={this.props.id}\r\n className={classnames(\"uifw-no-border\", \"uifw-card\")}\r\n point={point}\r\n onSizeKnown={this._onSizeKnown}\r\n >\r\n <DivWithOutsideClick onOutsideClick={this.props.onCancel} onKeyDown={this._handleKeyDown}>\r\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\r\n <Card content={this.props.content} title={this.props.title} items={this.props.items}\r\n onItemExecuted={this.props.onItemExecuted} />\r\n </FocusTrap>\r\n </DivWithOutsideClick>\r\n </PositionPopup>\r\n );\r\n }\r\n}\r\n\r\n/** Props defining a Card component\r\n * @beta */\r\nexport interface CardProps {\r\n content: PopupContentType;\r\n title: string | PropertyRecord | undefined;\r\n items: CommonToolbarItem[] | undefined;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** Card component\r\n * @beta */\r\nexport function Card(props: CardProps) {\r\n let titleNode: React.ReactNode;\r\n // istanbul ignore else\r\n if (props.title) {\r\n if (typeof props.title === \"string\")\r\n titleNode = <Text variant=\"leading\">{props.title}</Text>;\r\n else {\r\n const propertyValueRendererManager = PropertyValueRendererManager.defaultManager;\r\n const titleValue = propertyValueRendererManager.render(props.title);\r\n titleNode = <Text variant=\"leading\">{titleValue}</Text>;\r\n }\r\n }\r\n\r\n const content = isReactContent(props.content) ? props.content.reactNode : <MessageDiv message={props.content} />;\r\n\r\n return (\r\n <>\r\n <div className=\"uifw-card-content\">\r\n {props.title &&\r\n <>\r\n {titleNode}\r\n <div className=\"uifw-card-gap\" />\r\n </>\r\n }\r\n {content}\r\n </div>\r\n {props.items &&\r\n <>\r\n <div className=\"uifw-card-separator\" />\r\n <ToolbarWithOverflow\r\n expandsTo={Direction.Bottom}\r\n panelAlignment={ToolbarPanelAlignment.Start}\r\n items={props.items}\r\n useDragInteraction={true}\r\n toolbarOpacitySetting={ToolbarOpacitySetting.Transparent}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n </>\r\n }\r\n </>\r\n );\r\n}\r\n"]}
1
+ {"version":3,"file":"CardPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/CardPopup.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,4BAA0B;AAC1B,+BAA+B;AAC/B,2CAAoC;AACpC,0DAA0I;AAC1I,kDAAwG;AACxG,wDAA4C;AAC5C,mEAAgE;AAChE,iDAAgG;AAChG,mDAAgD;AAChD,yDAAqD;AACrD,8DAAqJ;AAmBrJ;;GAEG;AACH,MAAa,SAAU,SAAQ,KAAK,CAAC,aAA6C;IAAlF;;QACE,gBAAgB;QACS,UAAK,GAAG;YAC/B,IAAI,EAAE,IAAI,iBAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvB,CAAC;QAEM,iBAAY,GAAG,CAAC,OAAkB,EAAE,EAAE;YAC5C,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,KAA0B,EAAQ,EAAE;YAC5D,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,2BAAU,CAAC,MAAM;oBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM;aACT;QACH,CAAC,CAAC;IA6BJ,CAAC;IA3BS,OAAO;QACb,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC;IAEe,MAAM;QACpB,IAAI,KAAK,GAAG,2BAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,kBAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,yBAAW,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnH,KAAK,GAAG,IAAI,kBAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAEjD,OAAO,CACL,oBAAC,6BAAa,IAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAC/B,SAAS,EAAE,IAAA,oBAAU,EAAC,gBAAgB,EAAE,WAAW,CAAC,EACpD,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,IAAI,CAAC,YAAY;YAE9B,oBAAC,gCAAmB,IAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc;gBACtF,oBAAC,sBAAS,IAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI;oBACpD,oBAAC,IAAI,IAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACjF,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAI,CACrC,CACQ,CACR,CACjB,CAAC;IACJ,CAAC;CACF;AA/CD,8BA+CC;AAWD;WACW;AACX,SAAgB,IAAI,CAAC,KAAgB;IACnC,IAAI,SAA0B,CAAC;IAC/B,uBAAuB;IACvB,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YACjC,SAAS,GAAG,oBAAC,oBAAI,IAAC,OAAO,EAAC,SAAS,IAAE,KAAK,CAAC,KAAK,CAAQ,CAAC;aACtD;YACH,MAAM,4BAA4B,GAAG,+CAA4B,CAAC,cAAc,CAAC;YACjF,MAAM,UAAU,GAAG,4BAA4B,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpE,SAAS,GAAG,oBAAC,oBAAI,IAAC,OAAO,EAAC,SAAS,IAAE,UAAU,CAAQ,CAAC;SACzD;KACF;IAED,MAAM,OAAO,GAAG,IAAA,6BAAc,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAC,wBAAU,IAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAI,CAAC;IAEjH,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,mBAAmB;YAC/B,KAAK,CAAC,KAAK;gBACV;oBACG,SAAS;oBACV,6BAAK,SAAS,EAAC,eAAe,GAAG,CAChC;YAEJ,OAAO,CACJ;QACL,KAAK,CAAC,KAAK;YACV;gBACE,6BAAK,SAAS,EAAC,qBAAqB,GAAG;gBACvC,oBAAC,sCAAmB,CAAC,8CAA8C;oBACjE,SAAS,EAAE,4BAAS,CAAC,MAAM,EAC3B,cAAc,EAAE,wCAAqB,CAAC,KAAK,EAC3C,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,kBAAkB,EAAE,IAAI,EACxB,qBAAqB,EAAE,wCAAqB,CAAC,WAAW,EACxD,cAAc,EAAE,KAAK,CAAC,cAAc,GACpC,CACD,CAEJ,CACJ,CAAC;AACJ,CAAC;AAzCD,oBAyCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\nimport \"./CardPopup.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { CommonToolbarItem, OnCancelFunc, OnItemExecutedFunc, PropertyRecord, RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { DivWithOutsideClick, FocusTrap, Orientation, Point, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { Text } from \"@itwin/itwinui-react\";\r\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup\";\r\nimport { isReactContent, PopupContentType, PopupManager, PopupPropsBase } from \"./PopupManager\";\r\nimport { PositionPopup } from \"./PositionPopup\";\r\nimport { MessageDiv } from \"../messages/MessageSpan\";\r\nimport { Direction, PropertyValueRendererManager, ToolbarOpacitySetting, ToolbarPanelAlignment, ToolbarWithOverflow } from \"@itwin/components-react\";\r\n\r\n/** Props for defining a CardPopup editor\r\n * @beta */\r\nexport interface CardPopupProps extends PopupPropsBase {\r\n content: PopupContentType;\r\n title: string | PropertyRecord | undefined;\r\n items: CommonToolbarItem[] | undefined;\r\n relativePosition: RelativePosition;\r\n orientation: Orientation;\r\n onCancel: OnCancelFunc;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** @internal */\r\ninterface CardPopupState {\r\n size: Size;\r\n}\r\n\r\n/** Popup component for Input Editor\r\n * @beta\r\n */\r\nexport class CardPopup extends React.PureComponent<CardPopupProps, CardPopupState> {\r\n /** @internal */\r\n public override readonly state = {\r\n size: new Size(-1, -1),\r\n };\r\n\r\n private _onSizeKnown = (newSize: SizeProps) => {\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize))\r\n this.setState({ size: Size.create(newSize) });\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent): void => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n }\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n }\r\n\r\n public override render() {\r\n let point = PopupManager.getPopupPosition(this.props.el, this.props.pt, new Point(), this.state.size);\r\n const popupRect = CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);\r\n point = new Point(popupRect.left, popupRect.top);\r\n\r\n return (\r\n <PositionPopup key={this.props.id}\r\n className={classnames(\"uifw-no-border\", \"uifw-card\")}\r\n point={point}\r\n onSizeKnown={this._onSizeKnown}\r\n >\r\n <DivWithOutsideClick onOutsideClick={this.props.onCancel} onKeyDown={this._handleKeyDown}>\r\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\r\n <Card content={this.props.content} title={this.props.title} items={this.props.items}\r\n onItemExecuted={this.props.onItemExecuted} />\r\n </FocusTrap>\r\n </DivWithOutsideClick>\r\n </PositionPopup>\r\n );\r\n }\r\n}\r\n\r\n/** Props defining a Card component\r\n * @beta */\r\nexport interface CardProps {\r\n content: PopupContentType;\r\n title: string | PropertyRecord | undefined;\r\n items: CommonToolbarItem[] | undefined;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** Card component\r\n * @beta */\r\nexport function Card(props: CardProps) {\r\n let titleNode: React.ReactNode;\r\n // istanbul ignore else\r\n if (props.title) {\r\n if (typeof props.title === \"string\")\r\n titleNode = <Text variant=\"leading\">{props.title}</Text>;\r\n else {\r\n const propertyValueRendererManager = PropertyValueRendererManager.defaultManager;\r\n const titleValue = propertyValueRendererManager.render(props.title);\r\n titleNode = <Text variant=\"leading\">{titleValue}</Text>;\r\n }\r\n }\r\n\r\n const content = isReactContent(props.content) ? props.content.reactNode : <MessageDiv message={props.content} />;\r\n\r\n return (\r\n <>\r\n <div className=\"uifw-card-content\">\r\n {props.title &&\r\n <>\r\n {titleNode}\r\n <div className=\"uifw-card-gap\" />\r\n </>\r\n }\r\n {content}\r\n </div>\r\n {props.items &&\r\n <>\r\n <div className=\"uifw-card-separator\" />\r\n <ToolbarWithOverflow // eslint-disable-line deprecation/deprecation\r\n expandsTo={Direction.Bottom}\r\n panelAlignment={ToolbarPanelAlignment.Start}\r\n items={props.items}\r\n useDragInteraction={true}\r\n toolbarOpacitySetting={ToolbarOpacitySetting.Transparent}\r\n onItemExecuted={props.onItemExecuted}\r\n />\r\n </>\r\n }\r\n </>\r\n );\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarPopup.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAc,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAkC,WAAW,EAAS,IAAI,EAAa,MAAM,mBAAmB,CAAC;AAGxG,OAAO,EAAgB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD;WACW;AACX,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACzF,gBAAgB;IAChB,SAAyB,KAAK;;MAE5B;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,OAAO;IAOC,MAAM;CA0BvB"}
1
+ {"version":3,"file":"ToolbarPopup.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAc,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAkC,WAAW,EAAS,IAAI,EAAa,MAAM,mBAAmB,CAAC;AAGxG,OAAO,EAAgB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD;WACW;AACX,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACzF,gBAAgB;IAChB,SAAyB,KAAK;;MAE5B;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,OAAO;IAOC,MAAM;CAyBvB"}
@@ -15,7 +15,7 @@ const components_react_1 = require("@itwin/components-react");
15
15
  const CursorPopup_1 = require("../cursor/cursorpopup/CursorPopup");
16
16
  const PopupManager_1 = require("./PopupManager");
17
17
  const PositionPopup_1 = require("./PositionPopup");
18
- const toUIAToolbarItem_1 = require("../toolbar/toUIAToolbarItem");
18
+ const Toolbar_1 = require("../toolbar/Toolbar");
19
19
  /** Popup component for Toolbar
20
20
  * @beta
21
21
  */
@@ -49,11 +49,10 @@ class ToolbarPopup extends React.PureComponent {
49
49
  let point = PopupManager_1.PopupManager.getPopupPosition(this.props.el, this.props.pt, new core_react_1.Point(), this.state.size);
50
50
  const popupRect = CursorPopup_1.CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);
51
51
  point = new core_react_1.Point(popupRect.left, popupRect.top);
52
- const items = this.props.items.map((item) => (0, toUIAToolbarItem_1.toUIAToolbarItem)(item));
53
52
  return (React.createElement(PositionPopup_1.PositionPopup, { key: this.props.id, className: "uifw-no-border", point: point, onSizeKnown: this._onSizeKnown },
54
53
  React.createElement(core_react_1.DivWithOutsideClick, { onOutsideClick: this.props.onCancel, onKeyDown: this._handleKeyDown },
55
54
  React.createElement(core_react_1.FocusTrap, { active: true, returnFocusOnDeactivate: true },
56
- React.createElement(components_react_1.Toolbar, { expandsTo: components_react_1.Direction.Bottom, panelAlignment: components_react_1.ToolbarPanelAlignment.Start, items: items, useDragInteraction: true, toolbarOpacitySetting: components_react_1.ToolbarOpacitySetting.Defaults, onItemExecuted: this.props.onItemExecuted })))));
55
+ React.createElement(Toolbar_1.Toolbar, { expandsTo: components_react_1.Direction.Bottom, panelAlignment: components_react_1.ToolbarPanelAlignment.Start, items: this.props.items, useDragInteraction: true, toolbarOpacitySetting: components_react_1.ToolbarOpacitySetting.Defaults, onItemExecuted: this.props.onItemExecuted })))));
57
56
  }
58
57
  }
59
58
  exports.ToolbarPopup = ToolbarPopup;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAAuG;AACvG,kDAAwG;AACxG,8DAA2G;AAC3G,mEAAgE;AAChE,iDAA8D;AAC9D,mDAAgD;AAEhD,kEAA+D;AAiB/D;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK,CAAC,aAAmD;IAA3F;;QACE,gBAAgB;QACS,UAAK,GAAG;YAC/B,IAAI,EAAE,IAAI,iBAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvB,CAAC;QAEM,iBAAY,GAAG,CAAC,OAAkB,EAAE,EAAE;YAC5C,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,KAA0C,EAAQ,EAAE;YAC5E,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,2BAAU,CAAC,MAAM;oBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM;aACT;QACH,CAAC,CAAC;IAmCJ,CAAC;IAjCS,OAAO;QACb,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC;IAEe,MAAM;QACpB,IAAI,KAAK,GAAG,2BAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,kBAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,yBAAW,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnH,KAAK,GAAG,IAAI,kBAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO,CACL,oBAAC,6BAAa,IAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAC/B,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,IAAI,CAAC,YAAY;YAE9B,oBAAC,gCAAmB,IAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc;gBACtF,oBAAC,sBAAS,IAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI;oBACpD,oBAAC,0BAAO,IACN,SAAS,EAAE,4BAAS,CAAC,MAAM,EAC3B,cAAc,EAAE,wCAAqB,CAAC,KAAK,EAC3C,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,IAAI,EACxB,qBAAqB,EAAE,wCAAqB,CAAC,QAAQ,EACrD,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GACzC,CACQ,CACQ,CACR,CACjB,CAAC;IACJ,CAAC;CACF;AArDD,oCAqDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { OnCancelFunc, OnItemExecutedFunc, RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { DivWithOutsideClick, FocusTrap, Orientation, Point, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { Direction, Toolbar, ToolbarOpacitySetting, ToolbarPanelAlignment } from \"@itwin/components-react\";\r\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup\";\r\nimport { PopupManager, PopupPropsBase } from \"./PopupManager\";\r\nimport { PositionPopup } from \"./PositionPopup\";\r\nimport { ToolbarItem } from \"../toolbar/ToolbarItem\";\r\nimport { toUIAToolbarItem } from \"../toolbar/toUIAToolbarItem\";\r\n\r\n/** Props for a popup toolbar\r\n * @beta */\r\nexport interface ToolbarPopupProps extends PopupPropsBase {\r\n items: ToolbarItem[];\r\n relativePosition: RelativePosition;\r\n orientation: Orientation;\r\n onCancel: OnCancelFunc;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** @internal */\r\ninterface ToolbarPopupState {\r\n size: Size;\r\n}\r\n\r\n/** Popup component for Toolbar\r\n * @beta\r\n */\r\nexport class ToolbarPopup extends React.PureComponent<ToolbarPopupProps, ToolbarPopupState> {\r\n /** @internal */\r\n public override readonly state = {\r\n size: new Size(-1, -1),\r\n };\r\n\r\n private _onSizeKnown = (newSize: SizeProps) => {\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize))\r\n this.setState({ size: Size.create(newSize) });\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n }\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n }\r\n\r\n public override render() {\r\n let point = PopupManager.getPopupPosition(this.props.el, this.props.pt, new Point(), this.state.size);\r\n const popupRect = CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);\r\n point = new Point(popupRect.left, popupRect.top);\r\n const items = this.props.items.map((item) => toUIAToolbarItem(item));\r\n return (\r\n <PositionPopup key={this.props.id}\r\n className=\"uifw-no-border\"\r\n point={point}\r\n onSizeKnown={this._onSizeKnown}\r\n >\r\n <DivWithOutsideClick onOutsideClick={this.props.onCancel} onKeyDown={this._handleKeyDown}>\r\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\r\n <Toolbar\r\n expandsTo={Direction.Bottom}\r\n panelAlignment={ToolbarPanelAlignment.Start}\r\n items={items}\r\n useDragInteraction={true}\r\n toolbarOpacitySetting={ToolbarOpacitySetting.Defaults}\r\n onItemExecuted={this.props.onItemExecuted}\r\n />\r\n </FocusTrap>\r\n </DivWithOutsideClick>\r\n </PositionPopup>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ToolbarPopup.js","sourceRoot":"","sources":["../../../../src/appui-react/popup/ToolbarPopup.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,0DAAuG;AACvG,kDAAwG;AACxG,8DAAkG;AAClG,mEAAgE;AAChE,iDAA8D;AAC9D,mDAAgD;AAEhD,gDAA6C;AAiB7C;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK,CAAC,aAAmD;IAA3F;;QACE,gBAAgB;QACS,UAAK,GAAG;YAC/B,IAAI,EAAE,IAAI,iBAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvB,CAAC;QAEM,iBAAY,GAAG,CAAC,OAAkB,EAAE,EAAE;YAC5C,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,KAA0C,EAAQ,EAAE;YAC5E,QAAQ,KAAK,CAAC,GAAG,EAAE;gBACjB,KAAK,2BAAU,CAAC,MAAM;oBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,MAAM;aACT;QACH,CAAC,CAAC;IAkCJ,CAAC;IAhCS,OAAO;QACb,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC;IAEe,MAAM;QACpB,IAAI,KAAK,GAAG,2BAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,kBAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtG,MAAM,SAAS,GAAG,yBAAW,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnH,KAAK,GAAG,IAAI,kBAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,CACL,oBAAC,6BAAa,IAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAC/B,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,IAAI,CAAC,YAAY;YAE9B,oBAAC,gCAAmB,IAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc;gBACtF,oBAAC,sBAAS,IAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI;oBACpD,oBAAC,iBAAO,IACN,SAAS,EAAE,4BAAS,CAAC,MAAM,EAC3B,cAAc,EAAE,wCAAqB,CAAC,KAAK,EAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,kBAAkB,EAAE,IAAI,EACxB,qBAAqB,EAAE,wCAAqB,CAAC,QAAQ,EACrD,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GACzC,CACQ,CACQ,CACR,CACjB,CAAC;IACJ,CAAC;CACF;AApDD,oCAoDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { OnCancelFunc, OnItemExecutedFunc, RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { DivWithOutsideClick, FocusTrap, Orientation, Point, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { Direction, ToolbarOpacitySetting, ToolbarPanelAlignment } from \"@itwin/components-react\";\r\nimport { CursorPopup } from \"../cursor/cursorpopup/CursorPopup\";\r\nimport { PopupManager, PopupPropsBase } from \"./PopupManager\";\r\nimport { PositionPopup } from \"./PositionPopup\";\r\nimport { ToolbarItem } from \"../toolbar/ToolbarItem\";\r\nimport { Toolbar } from \"../toolbar/Toolbar\";\r\n\r\n/** Props for a popup toolbar\r\n * @beta */\r\nexport interface ToolbarPopupProps extends PopupPropsBase {\r\n items: ToolbarItem[];\r\n relativePosition: RelativePosition;\r\n orientation: Orientation;\r\n onCancel: OnCancelFunc;\r\n onItemExecuted: OnItemExecutedFunc;\r\n}\r\n\r\n/** @internal */\r\ninterface ToolbarPopupState {\r\n size: Size;\r\n}\r\n\r\n/** Popup component for Toolbar\r\n * @beta\r\n */\r\nexport class ToolbarPopup extends React.PureComponent<ToolbarPopupProps, ToolbarPopupState> {\r\n /** @internal */\r\n public override readonly state = {\r\n size: new Size(-1, -1),\r\n };\r\n\r\n private _onSizeKnown = (newSize: SizeProps) => {\r\n // istanbul ignore else\r\n if (!this.state.size.equals(newSize))\r\n this.setState({ size: Size.create(newSize) });\r\n };\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\r\n switch (event.key) {\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n }\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n }\r\n\r\n public override render() {\r\n let point = PopupManager.getPopupPosition(this.props.el, this.props.pt, new Point(), this.state.size);\r\n const popupRect = CursorPopup.getPopupRect(point, this.props.offset, this.state.size, this.props.relativePosition);\r\n point = new Point(popupRect.left, popupRect.top);\r\n return (\r\n <PositionPopup key={this.props.id}\r\n className=\"uifw-no-border\"\r\n point={point}\r\n onSizeKnown={this._onSizeKnown}\r\n >\r\n <DivWithOutsideClick onOutsideClick={this.props.onCancel} onKeyDown={this._handleKeyDown}>\r\n <FocusTrap active={true} returnFocusOnDeactivate={true}>\r\n <Toolbar\r\n expandsTo={Direction.Bottom}\r\n panelAlignment={ToolbarPanelAlignment.Start}\r\n items={this.props.items}\r\n useDragInteraction={true}\r\n toolbarOpacitySetting={ToolbarOpacitySetting.Defaults}\r\n onItemExecuted={this.props.onItemExecuted}\r\n />\r\n </FocusTrap>\r\n </DivWithOutsideClick>\r\n </PositionPopup>\r\n );\r\n }\r\n}\r\n"]}
@@ -1,7 +1,6 @@
1
1
  /** @packageDocumentation
2
2
  * @module Frontstage
3
3
  */
4
- /// <reference types="react" />
5
4
  import { UiEvent } from "@itwin/appui-abstract";
6
5
  import { NineZoneState, PanelSide } from "@itwin/appui-layout-react";
7
6
  import { WidgetDef } from "../widgets/WidgetDef";
@@ -18,14 +17,14 @@ export declare enum StagePanelState {
18
17
  Open = 2,
19
18
  Popup = 3
20
19
  }
21
- /** Panel State Changed Event Args interface.
20
+ /** Panel state changed event args interface.
22
21
  * @public
23
22
  */
24
23
  export interface PanelStateChangedEventArgs {
25
24
  panelDef: StagePanelDef;
26
25
  panelState: StagePanelState;
27
26
  }
28
- /** Panel State Changed Event class.
27
+ /** Panel state changed event class.
29
28
  * @beta
30
29
  */
31
30
  export declare class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> {
@@ -38,6 +37,13 @@ export interface PanelSizeChangedEventArgs {
38
37
  /** @internal */
39
38
  export declare class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> {
40
39
  }
40
+ /** Panel pinned changed event args interface.
41
+ * @public
42
+ */
43
+ export interface PanelPinnedChangedEventArgs {
44
+ panelDef: StagePanelDef;
45
+ pinned: boolean;
46
+ }
41
47
  /**
42
48
  * A StagePanelDef represents each Stage Panel within a Frontstage.
43
49
  * @public
@@ -68,6 +74,7 @@ export declare class StagePanelDef extends WidgetHost {
68
74
  get resizable(): boolean;
69
75
  /** Indicates whether the panel is pinned. */
70
76
  get pinned(): boolean;
77
+ set pinned(pinned: boolean);
71
78
  /** Location of panel. */
72
79
  get location(): StagePanelLocation;
73
80
  /** Panel state. Defaults to PanelState.Open. */
@@ -96,198 +103,7 @@ export declare class StagePanelSectionDef extends WidgetHost {
96
103
  /** @internal */
97
104
  export declare function toPanelSide(location: StagePanelLocation): PanelSide;
98
105
  /** @internal */
99
- export declare const setPanelSize: (base: {
100
- readonly draggedTab: {
101
- readonly tabId: string;
102
- readonly position: {
103
- readonly x: number;
104
- readonly y: number;
105
- };
106
- readonly home: {
107
- readonly widgetIndex: number;
108
- readonly widgetId: string | undefined;
109
- readonly side: PanelSide;
110
- };
111
- } | undefined;
112
- readonly floatingWidgets: {
113
- readonly byId: {
114
- readonly [x: string]: {
115
- readonly bounds: {
116
- readonly left: number;
117
- readonly top: number;
118
- readonly right: number;
119
- readonly bottom: number;
120
- };
121
- readonly id: string;
122
- readonly home: {
123
- readonly widgetIndex: number;
124
- readonly widgetId: string | undefined;
125
- readonly side: PanelSide;
126
- };
127
- readonly userSized?: boolean | undefined;
128
- readonly hidden?: boolean | undefined;
129
- };
130
- };
131
- readonly allIds: readonly string[];
132
- };
133
- readonly popoutWidgets: {
134
- readonly byId: {
135
- readonly [x: string]: {
136
- readonly bounds: {
137
- readonly left: number;
138
- readonly top: number;
139
- readonly right: number;
140
- readonly bottom: number;
141
- };
142
- readonly id: string;
143
- readonly home: {
144
- readonly widgetIndex: number;
145
- readonly widgetId: string | undefined;
146
- readonly side: PanelSide;
147
- };
148
- };
149
- };
150
- readonly allIds: readonly string[];
151
- };
152
- readonly panels: {
153
- readonly bottom: {
154
- readonly span: boolean;
155
- readonly side: import("@itwin/appui-layout-react").HorizontalPanelSide;
156
- readonly collapseOffset: number;
157
- readonly collapsed: boolean;
158
- readonly maxSize: number;
159
- readonly minSize: number;
160
- readonly pinned: boolean;
161
- readonly resizable: boolean;
162
- readonly size: number | undefined;
163
- readonly widgets: readonly string[];
164
- readonly maxWidgetCount: number;
165
- readonly splitterPercent: number | undefined;
166
- };
167
- readonly left: {
168
- readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
169
- readonly collapseOffset: number;
170
- readonly collapsed: boolean;
171
- readonly maxSize: number;
172
- readonly minSize: number;
173
- readonly pinned: boolean;
174
- readonly resizable: boolean;
175
- readonly size: number | undefined;
176
- readonly widgets: readonly string[];
177
- readonly maxWidgetCount: number;
178
- readonly splitterPercent: number | undefined;
179
- };
180
- readonly right: {
181
- readonly side: import("@itwin/appui-layout-react").VerticalPanelSide;
182
- readonly collapseOffset: number;
183
- readonly collapsed: boolean;
184
- readonly maxSize: number;
185
- readonly minSize: number;
186
- readonly pinned: boolean;
187
- readonly resizable: boolean;
188
- readonly size: number | undefined;
189
- readonly widgets: readonly string[];
190
- readonly maxWidgetCount: number;
191
- readonly splitterPercent: number | undefined;
192
- };
193
- readonly top: {
194
- readonly span: boolean;
195
- readonly side: import("@itwin/appui-layout-react").HorizontalPanelSide;
196
- readonly collapseOffset: number;
197
- readonly collapsed: boolean;
198
- readonly maxSize: number;
199
- readonly minSize: number;
200
- readonly pinned: boolean;
201
- readonly resizable: boolean;
202
- readonly size: number | undefined;
203
- readonly widgets: readonly string[];
204
- readonly maxWidgetCount: number;
205
- readonly splitterPercent: number | undefined;
206
- };
207
- };
208
- readonly tabs: {
209
- readonly [x: string]: {
210
- readonly id: string;
211
- readonly label: string;
212
- readonly iconSpec?: boolean | import("react").ReactText | {
213
- readonly stringGetter: () => string;
214
- readonly syncEventIds: readonly string[];
215
- readonly value: string;
216
- readonly refresh: () => boolean;
217
- } | {
218
- readonly type: string | import("react").JSXElementConstructor<any>;
219
- readonly props: any;
220
- readonly key: import("react").Key | null;
221
- } | {} | {
222
- readonly [Symbol.iterator]: () => Iterator<import("react").ReactNode, any, undefined>;
223
- } | {
224
- readonly key: import("react").Key | null;
225
- readonly children: boolean | import("react").ReactText | {
226
- readonly type: string | import("react").JSXElementConstructor<any>;
227
- readonly props: any;
228
- readonly key: import("react").Key | null;
229
- } | {} | {
230
- readonly [Symbol.iterator]: () => Iterator<import("react").ReactNode, any, undefined>;
231
- } | any | null | undefined;
232
- readonly type: string | import("react").JSXElementConstructor<any>;
233
- readonly props: any;
234
- } | {
235
- readonly iconGetter: () => import("@itwin/core-react").IconSpec;
236
- readonly syncEventIds: readonly string[];
237
- readonly value: boolean | import("react").ReactText | {
238
- readonly stringGetter: () => string;
239
- readonly syncEventIds: readonly string[];
240
- readonly value: string;
241
- readonly refresh: () => boolean;
242
- } | {
243
- readonly type: string | import("react").JSXElementConstructor<any>;
244
- readonly props: any;
245
- readonly key: import("react").Key | null;
246
- } | {} | {
247
- readonly [Symbol.iterator]: () => Iterator<import("react").ReactNode, any, undefined>;
248
- } | {
249
- readonly key: import("react").Key | null;
250
- readonly children: boolean | import("react").ReactText | {
251
- readonly type: string | import("react").JSXElementConstructor<any>;
252
- readonly props: any;
253
- readonly key: import("react").Key | null;
254
- } | {} | {
255
- readonly [Symbol.iterator]: () => Iterator<import("react").ReactNode, any, undefined>;
256
- } | any | null | undefined;
257
- readonly type: string | import("react").JSXElementConstructor<any>;
258
- readonly props: any;
259
- } | any | null | undefined;
260
- readonly refresh: () => boolean;
261
- } | null | undefined;
262
- readonly preferredFloatingWidgetSize?: {
263
- readonly width: number;
264
- readonly height: number;
265
- } | undefined;
266
- readonly preferredPanelWidgetSize?: "fit-content" | undefined;
267
- readonly allowedPanelTargets?: readonly PanelSide[] | undefined;
268
- readonly canPopout?: boolean | undefined;
269
- readonly userSized?: boolean | undefined;
270
- readonly isFloatingStateWindowResizable?: boolean | undefined;
271
- readonly hideWithUiWhenFloating?: boolean | undefined;
272
- };
273
- };
274
- readonly toolSettings: {
275
- readonly type: "docked";
276
- } | {
277
- readonly type: "widget";
278
- };
279
- readonly widgets: {
280
- readonly [x: string]: {
281
- readonly activeTabId: string;
282
- readonly id: string;
283
- readonly minimized: boolean;
284
- readonly tabs: readonly string[];
285
- readonly isFloatingStateWindowResizable?: boolean | undefined;
286
- };
287
- };
288
- readonly size: {
289
- readonly width: number;
290
- readonly height: number;
291
- };
292
- }, side: PanelSide, size: number | undefined) => import("immer/dist/internal").WritableDraft<NineZoneState>;
106
+ export declare const setPanelSize: (nineZone: NineZoneState, side: PanelSide, size: number | undefined) => NineZoneState;
107
+ /** @internal */
108
+ export declare const setPanelPinned: (nineZone: NineZoneState, side: PanelSide, pinned: boolean) => NineZoneState;
293
109
  //# sourceMappingURL=StagePanelDef.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StagePanelDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StagePanelDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * @module Frontstage
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.setPanelSize = exports.toPanelSide = exports.StagePanelSectionDef = exports.StagePanelDef = exports.PanelSizeChangedEvent = exports.PanelStateChangedEvent = exports.StagePanelState = void 0;
10
+ exports.setPanelPinned = exports.setPanelSize = exports.toPanelSide = exports.StagePanelSectionDef = exports.StagePanelDef = exports.PanelSizeChangedEvent = exports.PanelStateChangedEvent = exports.StagePanelState = void 0;
11
11
  const immer_1 = require("immer");
12
12
  const appui_abstract_1 = require("@itwin/appui-abstract");
13
13
  const WidgetDef_1 = require("../widgets/WidgetDef");
@@ -26,7 +26,7 @@ var StagePanelState;
26
26
  StagePanelState[StagePanelState["Open"] = 2] = "Open";
27
27
  StagePanelState[StagePanelState["Popup"] = 3] = "Popup";
28
28
  })(StagePanelState = exports.StagePanelState || (exports.StagePanelState = {}));
29
- /** Panel State Changed Event class.
29
+ /** Panel state changed event class.
30
30
  * @beta
31
31
  */
32
32
  class PanelStateChangedEvent extends appui_abstract_1.UiEvent {
@@ -91,7 +91,30 @@ class StagePanelDef extends WidgetHost_1.WidgetHost {
91
91
  // istanbul ignore next
92
92
  get resizable() { return this._resizable; }
93
93
  /** Indicates whether the panel is pinned. */
94
- get pinned() { return this._pinned; }
94
+ get pinned() {
95
+ if (UiFramework_1.UiFramework.frontstages.activeFrontstageDef) {
96
+ const state = UiFramework_1.UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);
97
+ return state[2];
98
+ }
99
+ // istanbul ignore next
100
+ return false;
101
+ }
102
+ set pinned(pinned) {
103
+ if (this._pinned === pinned)
104
+ return;
105
+ // istanbul ignore else
106
+ const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
107
+ // istanbul ignore else
108
+ if (frontstageDef && frontstageDef.nineZoneState) {
109
+ const side = toPanelSide(this.location);
110
+ frontstageDef.nineZoneState = (0, exports.setPanelPinned)(frontstageDef.nineZoneState, side, pinned);
111
+ }
112
+ this._pinned = pinned;
113
+ UiFramework_1.UiFramework.frontstages.onPanelPinnedChangedEvent.emit({
114
+ panelDef: this,
115
+ pinned,
116
+ });
117
+ }
95
118
  /** Location of panel. */
96
119
  get location() { return this._location; }
97
120
  /** Panel state. Defaults to PanelState.Open. */
@@ -154,8 +177,8 @@ class StagePanelDef extends WidgetHost_1.WidgetHost {
154
177
  this._maxSizeSpec = config.maxSize;
155
178
  this._minSize = config.minSize;
156
179
  if (config.defaultState !== undefined) {
157
- this._panelState = config.defaultState;
158
180
  this._defaultState = config.defaultState;
181
+ this._panelState = config.defaultState;
159
182
  }
160
183
  this._resizable = config.resizable ?? true;
161
184
  if (config.pinned !== undefined)
@@ -216,4 +239,9 @@ exports.setPanelSize = (0, immer_1.default)((nineZone, side, size) => {
216
239
  const panel = nineZone.panels[side];
217
240
  panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);
218
241
  });
242
+ /** @internal */
243
+ exports.setPanelPinned = (0, immer_1.default)((nineZone, side, pinned) => {
244
+ const panel = nineZone.panels[side];
245
+ panel.pinned = pinned;
246
+ });
219
247
  //# sourceMappingURL=StagePanelDef.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StagePanelDef.js","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,iCAAuC;AACvC,0DAAgD;AAEhD,oDAAiD;AACjD,sDAAmD;AAEnD,6DAA0D;AAC1D,2DAAwD;AACxD,uFAAoF;AACpF,gDAA6C;AAE7C;;GAEG;AACH,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,mDAAG,CAAA;IACH,+DAAS,CAAA;IACT,qDAAI,CAAA;IACJ,uDAAK,CAAA;AACP,CAAC,EALW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAK1B;AAUD;;GAEG;AACH,MAAa,sBAAuB,SAAQ,wBAAmC;CAAI;AAAnF,wDAAmF;AAQnF,gBAAgB;AAChB,MAAa,qBAAsB,SAAQ,wBAAkC;CAAI;AAAjF,sDAAiF;AAEjF;;;GAGG;AACH,MAAa,aAAc,SAAQ,uBAAU;IAa3C;OACG;IACH;QACE,KAAK,EAAE,CAAC;QAfF,gBAAW,GAAG,eAAe,CAAC,IAAI,CAAC;QACnC,kBAAa,GAAG,eAAe,CAAC,IAAI,CAAC;QAKrC,eAAU,GAAG,IAAI,CAAC;QAClB,YAAO,GAAG,IAAI,CAAC;QACf,cAAS,GAAuB,uCAAkB,CAAC,IAAI,CAAC;QACxD,WAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACpC,SAAI,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAM1C,CAAC;IAED,gBAAgB;IAChB,IAAW,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtD,gBAAgB;IAChB,IAAW,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9C,gCAAgC;IAChC,IAAW,IAAI;QACb,uBAAuB;QACvB,IAAI,yBAAW,CAAC,WAAW,CAAC,mBAAmB,EAAE;YAC/C,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACzF,OAAO,IAAI,CAAC;SACb;QACD,uBAAuB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,IAAI,CAAC,IAAI;QAClB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YACrB,OAAO;QAET,uBAAuB;QACvB,MAAM,aAAa,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;QAClE,uBAAuB;QACvB,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,EAAE;YAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,aAAa,CAAC,aAAa,GAAG,IAAA,oBAAY,EAAC,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpF,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK;gBAC3B,OAAO;YACT,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;SACnB;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,qDAAyB,CAAC,uBAAuB,CAAC,IAAI,CAAC;YACrD,QAAQ,EAAE,IAAI;YACd,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,gDAAgD;IAChD,uBAAuB;IACvB,IAAW,SAAS,KAAc,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3D,6CAA6C;IAC7C,IAAW,MAAM,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAErD,yBAAyB;IACzB,IAAW,QAAQ,KAAyB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpE,gDAAgD;IAChD,IAAW,UAAU;QACnB,uBAAuB;QACvB,IAAI,yBAAW,CAAC,WAAW,CAAC,mBAAmB,EAAE;YAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACxF,OAAO,KAAK,CAAC;SACd;QACD,uBAAuB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,UAAU,CAAC,UAA2B;QAC/C,IAAI,UAAU,KAAK,IAAI,CAAC,WAAW;YACjC,OAAO;QACT,MAAM,aAAa,GAAG,yBAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;QAClE,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,EAAE;YAChD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,aAAa,CAAC,aAAa,GAAG,IAAA,eAAO,EAAC,aAAa,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpC,QAAQ,UAAU,EAAE;oBAClB,KAAK,eAAe,CAAC,SAAS,CAAC,CAAC;wBAC9B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;wBACvB,MAAM;qBACP;oBACD,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC;wBACzB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;wBACxB,MAAM;qBACP;oBACD,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC;wBACxB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;wBACvB,MAAM;qBACP;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,yBAAW,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACpD,QAAQ,EAAE,IAAI;YACd,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,IAAW,YAAY,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAExD,gBAAgB;IAChB,IAAW,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtD,gBAAgB;IACT,MAAM,CAAC,MAAM,CAAC,MAAwB,EAAE,QAA4B;QACzE,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,GAAG,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gBAAgB;IACT,oBAAoB,CAAC,MAAoC,EAAE,QAA4B;QAC5F,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,IAAI,CAAC,MAAM;YACT,OAAO;QACT,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;YACrC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;YACvC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;SAC1C;QACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;QAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAE/B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,gCAAgC;IAChC,IAAoB,UAAU;QAC5B,OAAO,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnF,CAAC;IAED,gBAAgB;IACA,uBAAuB,CAAC,OAAe,EAAE,UAAkB,EAAE,QAA4B,EAAE,QAAuC,EAChJ,kBAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,qCAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QAChH,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,qCAAiB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC9G,CAAC;IAED,gBAAgB;IACT,kBAAkB,CAAC,OAA0B;QAClD,QAAQ,OAAO,EAAE;YACf,KAAK,qCAAiB,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;YACD,KAAK,qCAAiB,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,IAAI,CAAC,IAAI,CAAC;aAClB;SACF;IACH,CAAC;CACF;AAzKD,sCAyKC;AAED,gBAAgB;AAChB,MAAa,oBAAqB,SAAQ,uBAAU;IAClD,gBAAgB;IACT,oBAAoB,CAAC,MAA2C;QACrE,MAAM,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,qBAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AARD,oDAQC;AAED,gBAAgB;AAChB,SAAgB,WAAW,CAAC,QAA4B;IACtD,QAAQ,QAAQ,EAAE;QAChB,KAAK,uCAAkB,CAAC,MAAM;YAC5B,OAAO,QAAQ,CAAC;QAClB,KAAK,uCAAkB,CAAC,IAAI;YAC1B,OAAO,MAAM,CAAC;QAChB,KAAK,uCAAkB,CAAC,KAAK;YAC3B,OAAO,OAAO,CAAC;QACjB,KAAK,uCAAkB,CAAC,GAAG;YACzB,OAAO,KAAK,CAAC;KAChB;AACH,CAAC;AAXD,kCAWC;AAED,gBAAgB;AACH,QAAA,YAAY,GAAG,IAAA,eAAO,EAAC,CAClC,QAA8B,EAC9B,IAAe,EACf,IAAwB,EACxB,EAAE;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAClG,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport produce, { Draft } from \"immer\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { NineZoneState, PanelSide } from \"@itwin/appui-layout-react\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { WidgetHost } from \"../widgets/WidgetHost\";\r\nimport { StagePanelConfig, StagePanelMaxSizeSpec, StagePanelSectionConfig } from \"./StagePanelConfig\";\r\nimport { StagePanelLocation } from \"./StagePanelLocation\";\r\nimport { StagePanelSection } from \"./StagePanelSection\";\r\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Enum for StagePanel state.\r\n * @public\r\n */\r\nexport enum StagePanelState {\r\n Off,\r\n Minimized,\r\n Open,\r\n Popup,\r\n}\r\n\r\n/** Panel State Changed Event Args interface.\r\n * @public\r\n */\r\nexport interface PanelStateChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n panelState: StagePanelState;\r\n}\r\n\r\n/** Panel State Changed Event class.\r\n * @beta\r\n */\r\nexport class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> { }\r\n\r\n/** @internal */\r\nexport interface PanelSizeChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n size: number | undefined;\r\n}\r\n\r\n/** @internal */\r\nexport class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> { }\r\n\r\n/**\r\n * A StagePanelDef represents each Stage Panel within a Frontstage.\r\n * @public\r\n */\r\nexport class StagePanelDef extends WidgetHost {\r\n private _panelState = StagePanelState.Open;\r\n private _defaultState = StagePanelState.Open;\r\n private _maxSizeSpec: StagePanelMaxSizeSpec | undefined;\r\n private _minSize: number | undefined;\r\n private _size: number | undefined;\r\n private _defaultSize: number | undefined;\r\n private _resizable = true;\r\n private _pinned = true;\r\n private _location: StagePanelLocation = StagePanelLocation.Left;\r\n private _start = new StagePanelSectionDef();\r\n private _end = new StagePanelSectionDef();\r\n\r\n /** Constructor for PanelDef.\r\n */\r\n constructor() {\r\n super();\r\n }\r\n\r\n /** @internal */\r\n public get maxSizeSpec() { return this._maxSizeSpec; }\r\n\r\n /** @internal */\r\n public get minSize() { return this._minSize; }\r\n\r\n /** Default size of the panel */\r\n public get size() {\r\n // istanbul ignore else\r\n if (UiFramework.frontstages.activeFrontstageDef) {\r\n const [_, size] = UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\r\n return size;\r\n }\r\n // istanbul ignore next\r\n return this._defaultSize;\r\n }\r\n\r\n public set size(size) {\r\n if (this._size === size)\r\n return;\r\n\r\n // istanbul ignore else\r\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = setPanelSize(frontstageDef.nineZoneState, side, size);\r\n const panel = frontstageDef.nineZoneState.panels[side];\r\n if (panel.size === this._size)\r\n return;\r\n size = panel.size;\r\n }\r\n this._size = size;\r\n InternalFrontstageManager.onPanelSizeChangedEvent.emit({\r\n panelDef: this,\r\n size,\r\n });\r\n }\r\n\r\n /** Indicates whether the panel is resizable. */\r\n // istanbul ignore next\r\n public get resizable(): boolean { return this._resizable; }\r\n\r\n /** Indicates whether the panel is pinned. */\r\n public get pinned(): boolean { return this._pinned; }\r\n\r\n /** Location of panel. */\r\n public get location(): StagePanelLocation { return this._location; }\r\n\r\n /** Panel state. Defaults to PanelState.Open. */\r\n public get panelState() {\r\n // istanbul ignore else\r\n if (UiFramework.frontstages.activeFrontstageDef) {\r\n const [state] = UiFramework.frontstages.activeFrontstageDef?.getPanelCurrentState(this);\r\n return state;\r\n }\r\n // istanbul ignore next\r\n return this.defaultState;\r\n }\r\n\r\n public set panelState(panelState: StagePanelState) {\r\n if (panelState === this._panelState)\r\n return;\r\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = produce(frontstageDef.nineZoneState, (nineZone) => {\r\n const panel = nineZone.panels[side];\r\n switch (panelState) {\r\n case StagePanelState.Minimized: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n case StagePanelState.Open: {\r\n panel.collapsed = false;\r\n break;\r\n }\r\n case StagePanelState.Off: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n this._panelState = panelState;\r\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\r\n panelDef: this,\r\n panelState,\r\n });\r\n }\r\n\r\n /** @internal */\r\n public get defaultState() { return this._defaultState; }\r\n\r\n /** @internal */\r\n public get defaultSize() { return this._defaultSize; }\r\n\r\n /** @internal */\r\n public static create(config: StagePanelConfig, location: StagePanelLocation) {\r\n const def = new StagePanelDef();\r\n def.initializeFromConfig(config, location);\r\n return def;\r\n }\r\n\r\n /** @internal */\r\n public initializeFromConfig(config: StagePanelConfig | undefined, location: StagePanelLocation): void {\r\n this._location = location;\r\n\r\n if (!config)\r\n return;\r\n this._size = config.size;\r\n this._defaultSize = config.size;\r\n this._maxSizeSpec = config.maxSize;\r\n this._minSize = config.minSize;\r\n if (config.defaultState !== undefined) {\r\n this._panelState = config.defaultState;\r\n this._defaultState = config.defaultState;\r\n }\r\n this._resizable = config.resizable ?? true;\r\n if (config.pinned !== undefined)\r\n this._pinned = config.pinned;\r\n\r\n const sections = config.sections;\r\n this._start.initializeFromConfig(sections?.start);\r\n this._end.initializeFromConfig(sections?.end);\r\n }\r\n\r\n /** Gets the list of Widgets. */\r\n public override get widgetDefs(): ReadonlyArray<WidgetDef> {\r\n return [...super.widgetDefs, ...this._start.widgetDefs, ...this._end.widgetDefs];\r\n }\r\n\r\n /** @internal */\r\n public override updateDynamicWidgetDefs(stageId: string, stageUsage: string, location: StagePanelLocation, _section: StagePanelSection | undefined,\r\n allStageWidgetDefs: WidgetDef[]) {\r\n this._start.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Start, allStageWidgetDefs);\r\n this._end.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.End, allStageWidgetDefs);\r\n }\r\n\r\n /** @internal */\r\n public getPanelSectionDef(section: StagePanelSection) {\r\n switch (section) {\r\n case StagePanelSection.Start: {\r\n return this._start;\r\n }\r\n case StagePanelSection.End: {\r\n return this._end;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class StagePanelSectionDef extends WidgetHost {\r\n /** @internal */\r\n public initializeFromConfig(config: StagePanelSectionConfig | undefined) {\r\n config?.forEach((widgetConfig) => {\r\n const widgetDef = WidgetDef.create(widgetConfig);\r\n this.addWidgetDef(widgetDef);\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function toPanelSide(location: StagePanelLocation): PanelSide {\r\n switch (location) {\r\n case StagePanelLocation.Bottom:\r\n return \"bottom\";\r\n case StagePanelLocation.Left:\r\n return \"left\";\r\n case StagePanelLocation.Right:\r\n return \"right\";\r\n case StagePanelLocation.Top:\r\n return \"top\";\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const setPanelSize = produce((\r\n nineZone: Draft<NineZoneState>,\r\n side: PanelSide,\r\n size: number | undefined,\r\n) => {\r\n const panel = nineZone.panels[side];\r\n panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);\r\n});\r\n"]}
1
+ {"version":3,"file":"StagePanelDef.js","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\nimport produce, { Draft } from \"immer\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { NineZoneState, PanelSide } from \"@itwin/appui-layout-react\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { WidgetHost } from \"../widgets/WidgetHost\";\r\nimport { StagePanelConfig, StagePanelMaxSizeSpec, StagePanelSectionConfig } from \"./StagePanelConfig\";\r\nimport { StagePanelLocation } from \"./StagePanelLocation\";\r\nimport { StagePanelSection } from \"./StagePanelSection\";\r\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Enum for StagePanel state.\r\n * @public\r\n */\r\nexport enum StagePanelState {\r\n Off,\r\n Minimized,\r\n Open,\r\n Popup,\r\n}\r\n\r\n/** Panel state changed event args interface.\r\n * @public\r\n */\r\nexport interface PanelStateChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n panelState: StagePanelState;\r\n}\r\n\r\n/** Panel state changed event class.\r\n * @beta\r\n */\r\nexport class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> { }\r\n\r\n/** @internal */\r\nexport interface PanelSizeChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n size: number | undefined;\r\n}\r\n\r\n/** @internal */\r\nexport class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> { }\r\n\r\n/** Panel pinned changed event args interface.\r\n * @public\r\n */\r\nexport interface PanelPinnedChangedEventArgs {\r\n panelDef: StagePanelDef;\r\n pinned: boolean;\r\n}\r\n\r\n/**\r\n * A StagePanelDef represents each Stage Panel within a Frontstage.\r\n * @public\r\n */\r\nexport class StagePanelDef extends WidgetHost {\r\n private _panelState = StagePanelState.Open;\r\n private _defaultState = StagePanelState.Open;\r\n private _maxSizeSpec: StagePanelMaxSizeSpec | undefined;\r\n private _minSize: number | undefined;\r\n private _size: number | undefined;\r\n private _defaultSize: number | undefined;\r\n private _resizable = true;\r\n private _pinned = true;\r\n private _location: StagePanelLocation = StagePanelLocation.Left;\r\n private _start = new StagePanelSectionDef();\r\n private _end = new StagePanelSectionDef();\r\n\r\n /** Constructor for PanelDef.\r\n */\r\n constructor() {\r\n super();\r\n }\r\n\r\n /** @internal */\r\n public get maxSizeSpec() { return this._maxSizeSpec; }\r\n\r\n /** @internal */\r\n public get minSize() { return this._minSize; }\r\n\r\n /** Default size of the panel */\r\n public get size() {\r\n // istanbul ignore else\r\n if (UiFramework.frontstages.activeFrontstageDef) {\r\n const [_, size] = UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\r\n return size;\r\n }\r\n // istanbul ignore next\r\n return this._defaultSize;\r\n }\r\n\r\n public set size(size) {\r\n if (this._size === size)\r\n return;\r\n\r\n // istanbul ignore else\r\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = setPanelSize(frontstageDef.nineZoneState, side, size);\r\n const panel = frontstageDef.nineZoneState.panels[side];\r\n if (panel.size === this._size)\r\n return;\r\n size = panel.size;\r\n }\r\n this._size = size;\r\n InternalFrontstageManager.onPanelSizeChangedEvent.emit({\r\n panelDef: this,\r\n size,\r\n });\r\n }\r\n\r\n /** Indicates whether the panel is resizable. */\r\n // istanbul ignore next\r\n public get resizable(): boolean { return this._resizable; }\r\n\r\n /** Indicates whether the panel is pinned. */\r\n public get pinned(): boolean {\r\n if (UiFramework.frontstages.activeFrontstageDef) {\r\n const state = UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\r\n return state[2];\r\n }\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n public set pinned(pinned: boolean) {\r\n if (this._pinned === pinned)\r\n return;\r\n\r\n // istanbul ignore else\r\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n // istanbul ignore else\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = setPanelPinned(frontstageDef.nineZoneState, side, pinned);\r\n }\r\n this._pinned = pinned;\r\n UiFramework.frontstages.onPanelPinnedChangedEvent.emit({\r\n panelDef: this,\r\n pinned,\r\n });\r\n }\r\n\r\n /** Location of panel. */\r\n public get location(): StagePanelLocation { return this._location; }\r\n\r\n /** Panel state. Defaults to PanelState.Open. */\r\n public get panelState() {\r\n // istanbul ignore else\r\n if (UiFramework.frontstages.activeFrontstageDef) {\r\n const [state] = UiFramework.frontstages.activeFrontstageDef?.getPanelCurrentState(this);\r\n return state;\r\n }\r\n // istanbul ignore next\r\n return this.defaultState;\r\n }\r\n\r\n public set panelState(panelState: StagePanelState) {\r\n if (panelState === this._panelState)\r\n return;\r\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\r\n if (frontstageDef && frontstageDef.nineZoneState) {\r\n const side = toPanelSide(this.location);\r\n frontstageDef.nineZoneState = produce(frontstageDef.nineZoneState, (nineZone) => {\r\n const panel = nineZone.panels[side];\r\n switch (panelState) {\r\n case StagePanelState.Minimized: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n case StagePanelState.Open: {\r\n panel.collapsed = false;\r\n break;\r\n }\r\n case StagePanelState.Off: {\r\n panel.collapsed = true;\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n this._panelState = panelState;\r\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\r\n panelDef: this,\r\n panelState,\r\n });\r\n }\r\n\r\n /** @internal */\r\n public get defaultState() { return this._defaultState; }\r\n\r\n /** @internal */\r\n public get defaultSize() { return this._defaultSize; }\r\n\r\n /** @internal */\r\n public static create(config: StagePanelConfig, location: StagePanelLocation) {\r\n const def = new StagePanelDef();\r\n def.initializeFromConfig(config, location);\r\n return def;\r\n }\r\n\r\n /** @internal */\r\n public initializeFromConfig(config: StagePanelConfig | undefined, location: StagePanelLocation): void {\r\n this._location = location;\r\n\r\n if (!config)\r\n return;\r\n this._size = config.size;\r\n this._defaultSize = config.size;\r\n this._maxSizeSpec = config.maxSize;\r\n this._minSize = config.minSize;\r\n if (config.defaultState !== undefined) {\r\n this._defaultState = config.defaultState;\r\n this._panelState = config.defaultState;\r\n }\r\n this._resizable = config.resizable ?? true;\r\n if (config.pinned !== undefined)\r\n this._pinned = config.pinned;\r\n\r\n const sections = config.sections;\r\n this._start.initializeFromConfig(sections?.start);\r\n this._end.initializeFromConfig(sections?.end);\r\n }\r\n\r\n /** Gets the list of Widgets. */\r\n public override get widgetDefs(): ReadonlyArray<WidgetDef> {\r\n return [...super.widgetDefs, ...this._start.widgetDefs, ...this._end.widgetDefs];\r\n }\r\n\r\n /** @internal */\r\n public override updateDynamicWidgetDefs(stageId: string, stageUsage: string, location: StagePanelLocation, _section: StagePanelSection | undefined,\r\n allStageWidgetDefs: WidgetDef[]) {\r\n this._start.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.Start, allStageWidgetDefs);\r\n this._end.updateDynamicWidgetDefs(stageId, stageUsage, location, StagePanelSection.End, allStageWidgetDefs);\r\n }\r\n\r\n /** @internal */\r\n public getPanelSectionDef(section: StagePanelSection) {\r\n switch (section) {\r\n case StagePanelSection.Start: {\r\n return this._start;\r\n }\r\n case StagePanelSection.End: {\r\n return this._end;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class StagePanelSectionDef extends WidgetHost {\r\n /** @internal */\r\n public initializeFromConfig(config: StagePanelSectionConfig | undefined) {\r\n config?.forEach((widgetConfig) => {\r\n const widgetDef = WidgetDef.create(widgetConfig);\r\n this.addWidgetDef(widgetDef);\r\n });\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function toPanelSide(location: StagePanelLocation): PanelSide {\r\n switch (location) {\r\n case StagePanelLocation.Bottom:\r\n return \"bottom\";\r\n case StagePanelLocation.Left:\r\n return \"left\";\r\n case StagePanelLocation.Right:\r\n return \"right\";\r\n case StagePanelLocation.Top:\r\n return \"top\";\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const setPanelSize: (nineZone: NineZoneState, side: PanelSide, size: number | undefined) => NineZoneState = produce((\r\n nineZone: Draft<NineZoneState>,\r\n side: PanelSide,\r\n size: number | undefined,\r\n) => {\r\n const panel = nineZone.panels[side];\r\n panel.size = size === undefined ? size : Math.min(Math.max(size, panel.minSize), panel.maxSize);\r\n});\r\n\r\n/** @internal */\r\nexport const setPanelPinned: (nineZone: NineZoneState, side: PanelSide, pinned: boolean) => NineZoneState = produce((\r\n nineZone: Draft<NineZoneState>,\r\n side: PanelSide,\r\n pinned: boolean,\r\n) => {\r\n const panel = nineZone.panels[side];\r\n panel.pinned = pinned;\r\n});\r\n"]}
@@ -1,8 +1,8 @@
1
1
  /** @packageDocumentation
2
2
  * @module StatusBar
3
3
  */
4
+ /// <reference types="react" />
4
5
  import "./SelectionScope.scss";
5
- import * as React from "react";
6
6
  import { PresentationSelectionScope } from "../redux/SessionState";
7
7
  import { CommonProps } from "@itwin/core-react";
8
8
  /** Defines properties supported by the SelectionScopeField Component.
@@ -20,19 +20,12 @@ interface SelectionScopeFieldProps extends CommonProps {
20
20
  * in the Redux state.
21
21
  * @public
22
22
  */
23
- declare class SelectionScopeFieldComponent extends React.Component<SelectionScopeFieldProps> {
24
- private _label;
25
- private _toolTip;
26
- private _scopeOptions;
27
- constructor(props: SelectionScopeFieldProps);
28
- private _updateSelectValue;
29
- render(): React.ReactNode;
30
- }
23
+ declare function SelectionScopeFieldComponent(props: SelectionScopeFieldProps): JSX.Element;
31
24
  /**
32
25
  * SelectionScopeField React component. This component is designed to be specified in a status bar definition. It will
33
26
  * display the active selection scope that is used by the PresentationManager to determine what elements are added to the selection nap mode.
34
27
  * This React component is Redux connected.
35
28
  * @public
36
- */ export declare const SelectionScopeField: import("react-redux").ConnectedComponent<typeof SelectionScopeFieldComponent, import("react-redux").Omit<React.ClassAttributes<SelectionScopeFieldComponent> & SelectionScopeFieldProps, "availableSelectionScopes" | "activeSelectionScope">>;
29
+ */ export declare const SelectionScopeField: import("react-redux").ConnectedComponent<typeof SelectionScopeFieldComponent, import("react-redux").Omit<SelectionScopeFieldProps, "availableSelectionScopes" | "activeSelectionScope">>;
37
30
  export {};
38
31
  //# sourceMappingURL=SelectionScope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionScope.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SelectionScope.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,UAAU,wBAAyB,SAAQ,WAAW;IAEpD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;CACxD;AAED;;;;;;;GAOG;AACH,cAAM,4BAA6B,SAAQ,KAAK,CAAC,SAAS,CAAC,wBAAwB,CAAC;IAClF,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,QAAQ,CAAwD;IACxE,OAAO,CAAC,aAAa,CAA8B;gBAEvC,KAAK,EAAE,wBAAwB;IAQ3C,OAAO,CAAC,kBAAkB,CAKxB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;CAqB1C;AAaD;;;;;GAKG,CACH,eAAO,MAAM,mBAAmB,gPAAyD,CAAC"}
1
+ {"version":3,"file":"SelectionScope.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/SelectionScope.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,uBAAuB,CAAC;AAM/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,UAAU,wBAAyB,SAAQ,WAAW;IACpD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,0BAA0B,EAAE,CAAC;CACxD;AAED;;;;;;;GAOG;AACH,iBAAS,4BAA4B,CAAC,KAAK,EAAE,wBAAwB,eAiCpE;AAaD;;;;;GAKG,CACH,eAAO,MAAM,mBAAmB,0LAAyD,CAAC"}