@itwin/appui-react 3.4.0-dev.48 → 3.4.0-dev.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts +7 -0
- package/lib/cjs/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +23 -0
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts +0 -2
- package/lib/cjs/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/dialog/ModelessDialogManager.js +6 -18
- package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
- package/lib/cjs/appui-react/dialog/StandardMessageBox.js +2 -1
- package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts +1 -0
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +9 -0
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +2 -0
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +1 -0
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +2 -0
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts +7 -0
- package/lib/esm/appui-react/dialog/DialogManagerBase.d.ts.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +23 -0
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts +0 -2
- package/lib/esm/appui-react/dialog/ModelessDialogManager.d.ts.map +1 -1
- package/lib/esm/appui-react/dialog/ModelessDialogManager.js +6 -18
- package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/StandardMessageBox.d.ts.map +1 -1
- package/lib/esm/appui-react/dialog/StandardMessageBox.js +2 -1
- package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts +1 -0
- package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js +10 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +2 -0
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +1 -0
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +2 -0
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/package.json +33 -33
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardNavigationToolsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardNavigationToolsProvider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StandardNavigationToolsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardNavigationToolsProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0DAAiI;AACjI,4DAAyD;AACzD,sEAAyD;AAGzD;;;GAGG;AACH,MAAa,+BAAgC,SAAQ,oCAAmB;IAgBtE,YAAY,UAAkB,EAAU,sBAA+C,EAAE,gBAAuF;QAC9K,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QADE,2BAAsB,GAAtB,sBAAsB,CAAyB;IAEvF,CAAC;IAjBD;;;;;;;;OAQG;IACI,MAAM,CAAC,QAAQ,CAAC,UAAkB,EAAE,sBAA+C,EAAE,gBAAuF;QACjL,MAAM,QAAQ,GAAG,IAAI,+BAA+B,CAAC,UAAU,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;QAC3G,+BAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAMe,iCAAiC,CAAC,QAAgB,EAAE,WAAmB,EAAE,YAA0B,EAAE,kBAAsC,EAAE,aAAmB;QAC9K,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,IAAI,YAAY,KAAK,6BAAY,CAAC,cAAc,IAAI,kBAAkB,KAAK,mCAAkB,CAAC,UAAU,EAAE;YAExG,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,UAAU;gBAC9H,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAE1F,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO;gBAC3H,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,cAAc,CAAC,CAAC,CAAC;YAEvF,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,EAAE;gBAC7H,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,cAAc,CAAC,CAAC,CAAC;aACtF;YAED,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,UAAU,EAAE;gBAChI,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACzF;YAED,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,YAAY,EAAE;gBAClI,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,eAAe,CAAC,CAAC,CAAC;gBACtF,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,eAAe,CAAC,CAAC,CAAC;aACvF;SAEF;aAAM,IAAI,YAAY,KAAK,6BAAY,CAAC,cAAc,IAAI,kBAAkB,KAAK,mCAAkB,CAAC,QAAQ,EAAE;YAE7G,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,eAAe;gBAC/H,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,CAAC,EAAE,+BAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAE3F,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI;gBACpH,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,eAAe,CAAC,CAAC,CAAC;YAExF,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,YAAY;gBAC5H,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC;SACjG;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAxDD,0EAwDC","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 StandardUiItemsProvider\r\n */\r\n\r\nimport { BaseUiItemsProvider, CommonToolbarItem, ToolbarOrientation, ToolbarUsage, UiItemsManager } from \"@itwin/appui-abstract\";\r\nimport { ToolbarHelper } from \"../toolbar/ToolbarHelper\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\nimport { DefaultNavigationTools } from \"./StandardNavigationToolsUiItemsProvider\";\r\n\r\n/**\r\n * Provide standard tools for the ViewNavigationWidgetComposer.\r\n * @public\r\n */\r\nexport class StandardNavigationToolsProvider extends BaseUiItemsProvider {\r\n /**\r\n * static function to register the StandardContentToolsProvider\r\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\r\n * to set up custom stage with their own subset of standard tools\r\n * @param defaultNavigationTools - if undefined all available tools are provided to stage. If defined only those\r\n * specific tool buttons are shown.\r\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\r\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\r\n */\r\n public static register(providerId: string, defaultNavigationTools?: DefaultNavigationTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n const provider = new StandardNavigationToolsProvider(providerId, defaultNavigationTools, isSupportedStage);\r\n UiItemsManager.register(provider);\r\n return provider;\r\n }\r\n\r\n constructor(providerId: string, private defaultNavigationTools?: DefaultNavigationTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n super(providerId, isSupportedStage);\r\n }\r\n\r\n public override provideToolbarButtonItemsInternal(_stageId: string, _stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, _stageAppData?: any): CommonToolbarItem[] {\r\n const items: CommonToolbarItem[] = [];\r\n if (toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Horizontal) {\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.rotateView)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.rotateViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.panView)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.panViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.fitView) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, CoreTools.fitViewCommand));\r\n }\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.windowArea) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, CoreTools.windowAreaCommand));\r\n }\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.viewUndoRedo) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(50, CoreTools.viewUndoCommand));\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(60, CoreTools.viewRedoCommand));\r\n }\r\n\r\n } else if (toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Vertical) {\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.setupWalkCamera)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(5, CoreTools.setupCameraWalkTool));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.walk)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.walkViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.toggleCamera)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.toggleCameraViewCommand));\r\n }\r\n return items;\r\n }\r\n}\r\n"]}
|
package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardNavigationToolsUiItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EACrE,MAAM,uBAAuB,CAAC;AAI/B;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"StandardNavigationToolsUiItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EACrE,MAAM,uBAAuB,CAAC;AAI/B;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED;;;GAGG;AACH,qBAAa,sCAAuC,YAAW,eAAe;IAGhE,OAAO,CAAC,sBAAsB,CAAC;IAF3C,IAAW,EAAE,IAAI,MAAM,CAAiE;gBAEpE,sBAAsB,CAAC,oCAAwB;IAE5D,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,iBAAiB,EAAE;CAoCtL"}
|
|
@@ -39,6 +39,8 @@ class StandardNavigationToolsUiItemsProvider {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
else /* istanbul ignore else */ if (toolbarUsage === appui_abstract_1.ToolbarUsage.ViewNavigation && toolbarOrientation === appui_abstract_1.ToolbarOrientation.Vertical) {
|
|
42
|
+
if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.setupWalkCamera)
|
|
43
|
+
items.push(ToolbarHelper_1.ToolbarHelper.createToolbarItemFromItemDef(5, CoreToolDefinitions_1.CoreTools.setupCameraWalkTool));
|
|
42
44
|
if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.walk)
|
|
43
45
|
items.push(ToolbarHelper_1.ToolbarHelper.createToolbarItemFromItemDef(10, CoreToolDefinitions_1.CoreTools.walkViewCommand));
|
|
44
46
|
if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.toggleCamera)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardNavigationToolsUiItemsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0DAE+B;AAC/B,4DAAyD;AACzD,sEAAyD;
|
|
1
|
+
{"version":3,"file":"StandardNavigationToolsUiItemsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0DAE+B;AAC/B,4DAAyD;AACzD,sEAAyD;AAsBzD;;;GAGG;AACH,MAAa,sCAAsC;IAGjD,YAAoB,sBAA+C;QAA/C,2BAAsB,GAAtB,sBAAsB,CAAyB;IAAI,CAAC;IAFxE,IAAW,EAAE,KAAa,OAAO,oDAAoD,CAAC,CAAC,CAAC;IAIjF,yBAAyB,CAAC,QAAgB,EAAE,WAAmB,EAAE,YAA0B,EAAE,kBAAsC,EAAE,aAAmB;QAC7J,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,IAAI,YAAY,KAAK,6BAAY,CAAC,cAAc,IAAI,kBAAkB,KAAK,mCAAkB,CAAC,UAAU,EAAE;YAExG,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,UAAU;gBAC9H,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAE1F,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO;gBAC3H,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,cAAc,CAAC,CAAC,CAAC;YAEvF,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,EAAE;gBAC7H,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,cAAc,CAAC,CAAC,CAAC;aACtF;YAED,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,UAAU,EAAE;gBAChI,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACzF;YAED,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,YAAY,EAAE;gBAClI,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,eAAe,CAAC,CAAC,CAAC;gBACtF,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,eAAe,CAAC,CAAC,CAAC;aACvF;SAEF;aAAM,0BAA0B,CAAA,IAAI,YAAY,KAAK,6BAAY,CAAC,cAAc,IAAI,kBAAkB,KAAK,mCAAkB,CAAC,QAAQ,EAAE;YAEvI,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,eAAe;gBAC/H,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,CAAC,EAAE,+BAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAE3F,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI;gBACpH,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,eAAe,CAAC,CAAC,CAAC;YAExF,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,YAAY;gBAC5H,KAAK,CAAC,IAAI,CAAC,6BAAa,CAAC,4BAA4B,CAAC,EAAE,EAAE,+BAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC;SACjG;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAzCD,wFAyCC","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 StandardUiItemsProvider\r\n */\r\n\r\nimport {\r\n CommonToolbarItem, ToolbarOrientation, ToolbarUsage, UiItemsProvider,\r\n} from \"@itwin/appui-abstract\";\r\nimport { ToolbarHelper } from \"../toolbar/ToolbarHelper\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\n\r\n/**\r\n * Defines what tools to include from the provider. If any tools in the horizontal or vertical group are\r\n * specified then only those tools will be provided to stage.\r\n * @public\r\n */\r\nexport interface DefaultNavigationTools {\r\n horizontal?: {\r\n rotateView?: boolean;\r\n panView?: boolean;\r\n fitView?: boolean;\r\n windowArea?: boolean;\r\n viewUndoRedo?: boolean;\r\n };\r\n vertical?: {\r\n walk?: boolean;\r\n toggleCamera?: boolean;\r\n setupWalkCamera?: boolean;\r\n };\r\n}\r\n\r\n/**\r\n * Provide standard tools for the ViewNavigationWidgetComposer.\r\n * @beta\r\n */\r\nexport class StandardNavigationToolsUiItemsProvider implements UiItemsProvider {\r\n public get id(): string { return \"appui-react:StandardNavigationToolsUiItemsProvider\"; }\r\n\r\n constructor(private defaultNavigationTools?: DefaultNavigationTools) { }\r\n\r\n public provideToolbarButtonItems(_stageId: string, _stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, _stageAppData?: any): CommonToolbarItem[] {\r\n const items: CommonToolbarItem[] = [];\r\n if (toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Horizontal) {\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.rotateView)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.rotateViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.panView)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.panViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.fitView) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, CoreTools.fitViewCommand));\r\n }\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.windowArea) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, CoreTools.windowAreaCommand));\r\n }\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.horizontal || this.defaultNavigationTools.horizontal.viewUndoRedo) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(50, CoreTools.viewUndoCommand));\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(60, CoreTools.viewRedoCommand));\r\n }\r\n\r\n } else /* istanbul ignore else */if (toolbarUsage === ToolbarUsage.ViewNavigation && toolbarOrientation === ToolbarOrientation.Vertical) {\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.setupWalkCamera)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(5, CoreTools.setupCameraWalkTool));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.walk)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.walkViewCommand));\r\n\r\n if (!this.defaultNavigationTools || !this.defaultNavigationTools.vertical || this.defaultNavigationTools.vertical.toggleCamera)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.toggleCameraViewCommand));\r\n }\r\n return items;\r\n }\r\n}\r\n"]}
|
|
@@ -30,9 +30,15 @@ export declare class DialogManagerBase {
|
|
|
30
30
|
private static _sId;
|
|
31
31
|
private _dialogs;
|
|
32
32
|
private _onDialogChangedEvent;
|
|
33
|
+
private static _topZIndex;
|
|
33
34
|
constructor(onDialogChangedEvent: DialogChangedEvent);
|
|
35
|
+
/** Initialize the modeless dialog manager */
|
|
36
|
+
static initialize(): void;
|
|
37
|
+
static get topZIndex(): number;
|
|
38
|
+
static set topZIndex(zIndex: number);
|
|
34
39
|
get dialogs(): DialogInfo[];
|
|
35
40
|
get onDialogChangedEvent(): DialogChangedEvent;
|
|
41
|
+
static getDialogZIndexDefault(): number;
|
|
36
42
|
/**
|
|
37
43
|
* Triggers opening a dialog.
|
|
38
44
|
* @param dialog Dialog React component.
|
|
@@ -57,6 +63,7 @@ export declare class DialogManagerBase {
|
|
|
57
63
|
*/
|
|
58
64
|
export interface DialogRendererProps {
|
|
59
65
|
dialogManager: DialogManagerBase;
|
|
66
|
+
style?: React.CSSProperties;
|
|
60
67
|
}
|
|
61
68
|
/** @internal */
|
|
62
69
|
interface DialogRendererState {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogManagerBase.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DialogManagerBase.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIhD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;CAC3C;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,sBAAsB,CAAC;CAAI;AAE3E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAKD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,qBAAqB,CAAqB;IAClD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAkB;gBAE/B,oBAAoB,EAAE,kBAAkB;IAIpD,6CAA6C;WAC/B,UAAU,IAAI,IAAI;IAIhC,WAAkB,SAAS,IAAI,MAAM,CAAyC;IAE9E,WAAkB,SAAS,CAAC,MAAM,EAAE,MAAM,EAA4C;IACtF,IAAW,OAAO,iBAA4B;IAE9C,IAAW,oBAAoB,IAAI,kBAAkB,CAAuC;WAE9E,sBAAsB,IAAI,MAAM;IAY9C;;;;;OAKG;IACI,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,QAAQ,GAAG,IAAI;IASxF,gBAAgB;IACT,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAKxC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IASlD,gBAAgB;IACT,QAAQ,IAAI,IAAI;IAKvB,gBAAgB;IACT,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAU3C,sBAAsB,IAAI,IAAI;IAI9B,MAAM,IAAI,IAAI;IAIrB,IAAW,YAAY,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS,CAKrD;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;CACF;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,gBAAgB;AAChB,UAAU,mBAAmB;IAC3B,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAC;CACjC;AACD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,aAAa,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACnG,gBAAgB;IAChB,SAAyB,KAAK,EAAE,mBAAmB,CAEjD;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAoBzB,iBAAiB,IAAI,IAAI;IAIzB,oBAAoB,IAAI,IAAI;IAI5C,OAAO,CAAC,yBAAyB,CAE/B;CAEH"}
|
|
@@ -6,12 +6,17 @@
|
|
|
6
6
|
* @module Dialog
|
|
7
7
|
*/
|
|
8
8
|
import * as React from "react";
|
|
9
|
+
import { Logger } from "@itwin/core-bentley";
|
|
9
10
|
import { UiEvent } from "@itwin/appui-abstract";
|
|
11
|
+
import { UiFramework } from "../UiFramework";
|
|
12
|
+
import { getCssVariableAsNumber } from "@itwin/core-react";
|
|
10
13
|
/** Dialog Changed Event class.
|
|
11
14
|
* @public
|
|
12
15
|
*/
|
|
13
16
|
export class DialogChangedEvent extends UiEvent {
|
|
14
17
|
}
|
|
18
|
+
/** Used if the 'dialog' z-index CSS variable cannot be read */
|
|
19
|
+
const ZINDEX_DEFAULT = 12000;
|
|
15
20
|
/** Dialog Manager class.
|
|
16
21
|
* @internal
|
|
17
22
|
*/
|
|
@@ -20,8 +25,23 @@ export class DialogManagerBase {
|
|
|
20
25
|
this._dialogs = new Array();
|
|
21
26
|
this._onDialogChangedEvent = onDialogChangedEvent;
|
|
22
27
|
}
|
|
28
|
+
/** Initialize the modeless dialog manager */
|
|
29
|
+
static initialize() {
|
|
30
|
+
DialogManagerBase._topZIndex = DialogManagerBase.getDialogZIndexDefault();
|
|
31
|
+
}
|
|
32
|
+
static get topZIndex() { return DialogManagerBase._topZIndex; }
|
|
33
|
+
static set topZIndex(zIndex) { DialogManagerBase._topZIndex = zIndex; }
|
|
23
34
|
get dialogs() { return this._dialogs; }
|
|
24
35
|
get onDialogChangedEvent() { return this._onDialogChangedEvent; }
|
|
36
|
+
static getDialogZIndexDefault() {
|
|
37
|
+
const variable = "--uicore-z-index-dialog";
|
|
38
|
+
const value = getCssVariableAsNumber(variable);
|
|
39
|
+
// istanbul ignore next
|
|
40
|
+
if (!isNaN(value))
|
|
41
|
+
return value;
|
|
42
|
+
Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);
|
|
43
|
+
return ZINDEX_DEFAULT;
|
|
44
|
+
}
|
|
25
45
|
/**
|
|
26
46
|
* Triggers opening a dialog.
|
|
27
47
|
* @param dialog Dialog React component.
|
|
@@ -59,6 +79,8 @@ export class DialogManagerBase {
|
|
|
59
79
|
});
|
|
60
80
|
if (index >= 0)
|
|
61
81
|
this._dialogs.splice(index, 1);
|
|
82
|
+
if (this._dialogs.length < 1)
|
|
83
|
+
DialogManagerBase.topZIndex = DialogManagerBase.getDialogZIndexDefault();
|
|
62
84
|
}
|
|
63
85
|
emitDialogChangedEvent() {
|
|
64
86
|
this._onDialogChangedEvent.emit({ dialogCount: this.dialogCount, activeDialog: this.activeDialog });
|
|
@@ -76,6 +98,7 @@ export class DialogManagerBase {
|
|
|
76
98
|
}
|
|
77
99
|
}
|
|
78
100
|
DialogManagerBase._sId = 0;
|
|
101
|
+
DialogManagerBase._topZIndex = ZINDEX_DEFAULT;
|
|
79
102
|
/** DialogRenderer React component.
|
|
80
103
|
* @internal
|
|
81
104
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogManagerBase.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.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 Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\n\r\n/** Dialog Stack Changed Event Args class.\r\n * @public\r\n */\r\nexport interface DialogChangedEventArgs {\r\n dialogCount: number;\r\n activeDialog: React.ReactNode | undefined;\r\n}\r\n\r\n/** Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class DialogChangedEvent extends UiEvent<DialogChangedEventArgs> { }\r\n\r\n/** Information maintained by a Dialog Manager about a dialog\r\n * @public\r\n */\r\nexport interface DialogInfo {\r\n reactNode: React.ReactNode;\r\n id: string;\r\n parentDocument: Document;\r\n}\r\n\r\n/** Dialog Manager class.\r\n * @internal\r\n */\r\nexport class DialogManagerBase {\r\n private static _sId = 0;\r\n private _dialogs: DialogInfo[] = new Array<DialogInfo>();\r\n private _onDialogChangedEvent: DialogChangedEvent;\r\n\r\n constructor(onDialogChangedEvent: DialogChangedEvent) {\r\n this._onDialogChangedEvent = onDialogChangedEvent;\r\n }\r\n\r\n public get dialogs() { return this._dialogs; }\r\n\r\n public get onDialogChangedEvent(): DialogChangedEvent { return this._onDialogChangedEvent; }\r\n\r\n /**\r\n * Triggers opening a dialog.\r\n * @param dialog Dialog React component.\r\n * @param id The unique Id the identifies the dialog.\r\n * @param parentDocument Optional document required when displaying a dialog in a child popup window.\r\n */\r\n public openDialog(dialog: React.ReactNode, id?: string, parentDocument?: Document): void {\r\n if (!id)\r\n id = `Dialog-${++DialogManagerBase._sId}`;\r\n\r\n // istanbul ignore next\r\n const owningDoc = parentDocument ?? document;\r\n this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });\r\n }\r\n\r\n /** @internal */\r\n public pushDialog(dialogInfo: DialogInfo): void {\r\n this._dialogs.push(dialogInfo);\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n public closeDialog(dialog?: React.ReactNode): void {\r\n let targetDialog = dialog;\r\n if (!dialog)\r\n targetDialog = this.activeDialog;\r\n\r\n this.removeDialog(targetDialog);\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n /** @internal */\r\n public closeAll(): void {\r\n this._dialogs = [];\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n /** @internal */\r\n public removeDialog(dialog: React.ReactNode): void {\r\n const index = this._dialogs.findIndex((dialogInfo: DialogInfo) => {\r\n return dialog === dialogInfo.reactNode;\r\n });\r\n if (index >= 0)\r\n this._dialogs.splice(index, 1);\r\n }\r\n\r\n public emitDialogChangedEvent(): void {\r\n this._onDialogChangedEvent.emit({ dialogCount: this.dialogCount, activeDialog: this.activeDialog });\r\n }\r\n\r\n public update(): void {\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n public get activeDialog(): React.ReactNode | undefined {\r\n if (this._dialogs.length > 0)\r\n return this._dialogs[this._dialogs.length - 1].reactNode;\r\n\r\n return undefined;\r\n }\r\n\r\n public get dialogCount(): number {\r\n return this._dialogs.length;\r\n }\r\n}\r\n\r\n/** Properties for the [[DialogRendererBase]] component\r\n * @internal\r\n */\r\nexport interface DialogRendererProps {\r\n dialogManager: DialogManagerBase;\r\n}\r\n\r\n/** @internal */\r\ninterface DialogRendererState {\r\n parentDocument: Document | null;\r\n}\r\n/** DialogRenderer React component.\r\n * @internal\r\n */\r\nexport class DialogRendererBase extends React.PureComponent<DialogRendererProps, DialogRendererState> {\r\n /** @internal */\r\n public override readonly state: DialogRendererState = {\r\n parentDocument: null,\r\n };\r\n\r\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\r\n this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n if (this.props.dialogManager.dialogCount <= 0)\r\n return null;\r\n\r\n return (\r\n <div className=\"appui-react-dialog-render-container\" ref={this._handleRefSet}>\r\n {this.state.parentDocument &&\r\n this.props.dialogManager.dialogs.filter((info) => info.parentDocument === this.state.parentDocument)\r\n .map((dialogInfo: DialogInfo) => {\r\n return (\r\n <React.Fragment key={dialogInfo.id} >\r\n {dialogInfo.reactNode}\r\n </React.Fragment>\r\n );\r\n })\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n public override componentDidMount(): void {\r\n this.props.dialogManager.onDialogChangedEvent.addListener(this._handleDialogChangedEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n this.props.dialogManager.onDialogChangedEvent.removeListener(this._handleDialogChangedEvent);\r\n }\r\n\r\n private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\r\n this.forceUpdate();\r\n };\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"DialogManagerBase.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/DialogManagerBase.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 Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\r\n\r\n/** Dialog Stack Changed Event Args class.\r\n * @public\r\n */\r\nexport interface DialogChangedEventArgs {\r\n dialogCount: number;\r\n activeDialog: React.ReactNode | undefined;\r\n}\r\n\r\n/** Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class DialogChangedEvent extends UiEvent<DialogChangedEventArgs> { }\r\n\r\n/** Information maintained by a Dialog Manager about a dialog\r\n * @public\r\n */\r\nexport interface DialogInfo {\r\n reactNode: React.ReactNode;\r\n id: string;\r\n parentDocument: Document;\r\n}\r\n\r\n/** Used if the 'dialog' z-index CSS variable cannot be read */\r\nconst ZINDEX_DEFAULT = 12000;\r\n\r\n/** Dialog Manager class.\r\n * @internal\r\n */\r\nexport class DialogManagerBase {\r\n private static _sId = 0;\r\n private _dialogs: DialogInfo[] = new Array<DialogInfo>();\r\n private _onDialogChangedEvent: DialogChangedEvent;\r\n private static _topZIndex = ZINDEX_DEFAULT;\r\n\r\n constructor(onDialogChangedEvent: DialogChangedEvent) {\r\n this._onDialogChangedEvent = onDialogChangedEvent;\r\n }\r\n\r\n /** Initialize the modeless dialog manager */\r\n public static initialize(): void {\r\n DialogManagerBase._topZIndex = DialogManagerBase.getDialogZIndexDefault();\r\n }\r\n\r\n public static get topZIndex(): number { return DialogManagerBase._topZIndex; }\r\n\r\n public static set topZIndex(zIndex: number) { DialogManagerBase._topZIndex = zIndex; }\r\n public get dialogs() { return this._dialogs; }\r\n\r\n public get onDialogChangedEvent(): DialogChangedEvent { return this._onDialogChangedEvent; }\r\n\r\n public static getDialogZIndexDefault(): number {\r\n const variable = \"--uicore-z-index-dialog\";\r\n const value = getCssVariableAsNumber(variable);\r\n\r\n // istanbul ignore next\r\n if (!isNaN(value))\r\n return value;\r\n\r\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\r\n return ZINDEX_DEFAULT;\r\n }\r\n\r\n /**\r\n * Triggers opening a dialog.\r\n * @param dialog Dialog React component.\r\n * @param id The unique Id the identifies the dialog.\r\n * @param parentDocument Optional document required when displaying a dialog in a child popup window.\r\n */\r\n public openDialog(dialog: React.ReactNode, id?: string, parentDocument?: Document): void {\r\n if (!id)\r\n id = `Dialog-${++DialogManagerBase._sId}`;\r\n\r\n // istanbul ignore next\r\n const owningDoc = parentDocument ?? document;\r\n this.pushDialog({ reactNode: dialog, id, parentDocument: owningDoc });\r\n }\r\n\r\n /** @internal */\r\n public pushDialog(dialogInfo: DialogInfo): void {\r\n this._dialogs.push(dialogInfo);\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n public closeDialog(dialog?: React.ReactNode): void {\r\n let targetDialog = dialog;\r\n if (!dialog)\r\n targetDialog = this.activeDialog;\r\n\r\n this.removeDialog(targetDialog);\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n /** @internal */\r\n public closeAll(): void {\r\n this._dialogs = [];\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n /** @internal */\r\n public removeDialog(dialog: React.ReactNode): void {\r\n const index = this._dialogs.findIndex((dialogInfo: DialogInfo) => {\r\n return dialog === dialogInfo.reactNode;\r\n });\r\n if (index >= 0)\r\n this._dialogs.splice(index, 1);\r\n if (this._dialogs.length < 1)\r\n DialogManagerBase.topZIndex = DialogManagerBase.getDialogZIndexDefault();\r\n }\r\n\r\n public emitDialogChangedEvent(): void {\r\n this._onDialogChangedEvent.emit({ dialogCount: this.dialogCount, activeDialog: this.activeDialog });\r\n }\r\n\r\n public update(): void {\r\n this.emitDialogChangedEvent();\r\n }\r\n\r\n public get activeDialog(): React.ReactNode | undefined {\r\n if (this._dialogs.length > 0)\r\n return this._dialogs[this._dialogs.length - 1].reactNode;\r\n\r\n return undefined;\r\n }\r\n\r\n public get dialogCount(): number {\r\n return this._dialogs.length;\r\n }\r\n}\r\n\r\n/** Properties for the [[DialogRendererBase]] component\r\n * @internal\r\n */\r\nexport interface DialogRendererProps {\r\n dialogManager: DialogManagerBase;\r\n style?: React.CSSProperties;\r\n}\r\n\r\n/** @internal */\r\ninterface DialogRendererState {\r\n parentDocument: Document | null;\r\n}\r\n/** DialogRenderer React component.\r\n * @internal\r\n */\r\nexport class DialogRendererBase extends React.PureComponent<DialogRendererProps, DialogRendererState> {\r\n /** @internal */\r\n public override readonly state: DialogRendererState = {\r\n parentDocument: null,\r\n };\r\n\r\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\r\n this.setState({ parentDocument: popupDiv?.ownerDocument ?? null });\r\n };\r\n\r\n public override render(): React.ReactNode {\r\n if (this.props.dialogManager.dialogCount <= 0)\r\n return null;\r\n\r\n return (\r\n <div className=\"appui-react-dialog-render-container\" ref={this._handleRefSet}>\r\n {this.state.parentDocument &&\r\n this.props.dialogManager.dialogs.filter((info) => info.parentDocument === this.state.parentDocument)\r\n .map((dialogInfo: DialogInfo) => {\r\n return (\r\n <React.Fragment key={dialogInfo.id} >\r\n {dialogInfo.reactNode}\r\n </React.Fragment>\r\n );\r\n })\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n public override componentDidMount(): void {\r\n this.props.dialogManager.onDialogChangedEvent.addListener(this._handleDialogChangedEvent);\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n this.props.dialogManager.onDialogChangedEvent.removeListener(this._handleDialogChangedEvent);\r\n }\r\n\r\n private _handleDialogChangedEvent = (_args: DialogChangedEventArgs) => {\r\n this.forceUpdate();\r\n };\r\n\r\n}\r\n"]}
|
|
@@ -27,10 +27,8 @@ export declare class ModelessDialogManager {
|
|
|
27
27
|
static get dialogs(): import("./DialogManagerBase").DialogInfo[];
|
|
28
28
|
private static _dialogMap;
|
|
29
29
|
private static _idArray;
|
|
30
|
-
private static _topZIndex;
|
|
31
30
|
/** Initialize the modeless dialog manager */
|
|
32
31
|
static initialize(): void;
|
|
33
|
-
private static getDialogZIndexDefault;
|
|
34
32
|
/** Open a modeless dialog
|
|
35
33
|
* @param dialog The Dialog to open
|
|
36
34
|
* @param id The id of the Dialog to open
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelessDialogManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ModelessDialogManager.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"ModelessDialogManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ModelessDialogManager.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAsB,MAAM,qBAAqB,CAAC;AAKhG;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,kBAAkB;CAAI;AAEtE,gBAAgB;AAChB,UAAU,kBAAkB;IAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC,oCAAoC;IACpC,gBAAuB,4BAA4B,6BAAoC;IAEvF,gBAAgB;IAChB,gBAAuB,aAAa,EAAE,iBAAiB,CAA6E;IAEpI,wCAAwC;IACxC,WAAkB,OAAO,+CAA0D;IAEnF,OAAO,CAAC,MAAM,CAAC,UAAU,CAAyC;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuB;IAE9C,6CAA6C;WAC/B,UAAU,IAAI,IAAI;IAIhC;;;OAGG;WACW,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,WAAW,GAAG,IAAI;IAa9F;;OAEG;WACW,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAmB3C,gBAAgB;WACF,QAAQ,IAAI,IAAI;IAI9B,yBAAyB;WACX,MAAM,IAAI,IAAI;IAI5B,qCAAqC;IACrC,WAAkB,YAAY,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS,CAU5D;IAED,wCAAwC;IACxC,WAAkB,WAAW,IAAI,MAAM,CAEtC;IAED,uDAAuD;WACzC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,GAAG,IAAI;IAc1G,4CAA4C;WAC9B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;WASnC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;CAGxE;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC;gBAE9D,KAAK,EAAE,WAAW;IAId,MAAM,IAAI,KAAK,CAAC,SAAS;CAK1C"}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
import { Logger } from "@itwin/core-bentley";
|
|
10
|
-
import { getCssVariableAsNumber } from "@itwin/core-react";
|
|
11
10
|
import { UiFramework } from "../UiFramework";
|
|
12
11
|
import { DialogChangedEvent, DialogManagerBase, DialogRendererBase } from "./DialogManagerBase";
|
|
13
12
|
import { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from "@itwin/core-frontend";
|
|
@@ -17,8 +16,6 @@ import { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageTy
|
|
|
17
16
|
*/
|
|
18
17
|
export class ModelessDialogChangedEvent extends DialogChangedEvent {
|
|
19
18
|
}
|
|
20
|
-
/** Used if the 'dialog' z-index CSS variable cannot be read */
|
|
21
|
-
const ZINDEX_DEFAULT = 12000;
|
|
22
19
|
/** Modeless Dialog Manager class displays and manages multiple modeless dialogs
|
|
23
20
|
* @public
|
|
24
21
|
*/
|
|
@@ -27,16 +24,7 @@ export class ModelessDialogManager {
|
|
|
27
24
|
static get dialogs() { return ModelessDialogManager.dialogManager.dialogs; }
|
|
28
25
|
/** Initialize the modeless dialog manager */
|
|
29
26
|
static initialize() {
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
static getDialogZIndexDefault() {
|
|
33
|
-
const variable = "--uicore-z-index-dialog";
|
|
34
|
-
const value = getCssVariableAsNumber(variable);
|
|
35
|
-
// istanbul ignore next
|
|
36
|
-
if (!isNaN(value))
|
|
37
|
-
return value;
|
|
38
|
-
Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);
|
|
39
|
-
return ZINDEX_DEFAULT;
|
|
27
|
+
DialogManagerBase.initialize();
|
|
40
28
|
}
|
|
41
29
|
/** Open a modeless dialog
|
|
42
30
|
* @param dialog The Dialog to open
|
|
@@ -50,7 +38,7 @@ export class ModelessDialogManager {
|
|
|
50
38
|
IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, message, undefined, OutputMessageType.Toast));
|
|
51
39
|
return;
|
|
52
40
|
}
|
|
53
|
-
ModelessDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex:
|
|
41
|
+
ModelessDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: DialogManagerBase.topZIndex, parentDocument });
|
|
54
42
|
ModelessDialogManager._idArray.push(id);
|
|
55
43
|
ModelessDialogManager.dialogManager.openDialog(dialog, id, parentDocument);
|
|
56
44
|
}
|
|
@@ -67,7 +55,7 @@ export class ModelessDialogManager {
|
|
|
67
55
|
if (index >= 0)
|
|
68
56
|
ModelessDialogManager._idArray.splice(index, 1);
|
|
69
57
|
if (ModelessDialogManager.activeDialog === undefined)
|
|
70
|
-
|
|
58
|
+
DialogManagerBase.topZIndex = DialogManagerBase.getDialogZIndexDefault();
|
|
71
59
|
this.update();
|
|
72
60
|
}
|
|
73
61
|
else {
|
|
@@ -101,7 +89,8 @@ export class ModelessDialogManager {
|
|
|
101
89
|
static handlePointerDownEvent(_event, id, updateFunc) {
|
|
102
90
|
const dialogInfo = ModelessDialogManager._dialogMap.get(id);
|
|
103
91
|
if (dialogInfo && dialogInfo.reactNode !== ModelessDialogManager.activeDialog) {
|
|
104
|
-
|
|
92
|
+
DialogManagerBase.topZIndex += 1;
|
|
93
|
+
dialogInfo.zIndex = DialogManagerBase.topZIndex;
|
|
105
94
|
ModelessDialogManager._idArray.splice(ModelessDialogManager._idArray.indexOf(id), 1);
|
|
106
95
|
ModelessDialogManager._idArray.push(id);
|
|
107
96
|
updateFunc();
|
|
@@ -110,7 +99,7 @@ export class ModelessDialogManager {
|
|
|
110
99
|
}
|
|
111
100
|
/** Get the z-index for a modeless dialog */
|
|
112
101
|
static getDialogZIndex(id) {
|
|
113
|
-
let zIndex =
|
|
102
|
+
let zIndex = DialogManagerBase.getDialogZIndexDefault();
|
|
114
103
|
const dialogInfo = ModelessDialogManager._dialogMap.get(id);
|
|
115
104
|
// istanbul ignore else
|
|
116
105
|
if (dialogInfo)
|
|
@@ -127,7 +116,6 @@ ModelessDialogManager.onModelessDialogChangedEvent = new ModelessDialogChangedEv
|
|
|
127
116
|
ModelessDialogManager.dialogManager = new DialogManagerBase(ModelessDialogManager.onModelessDialogChangedEvent);
|
|
128
117
|
ModelessDialogManager._dialogMap = new Map();
|
|
129
118
|
ModelessDialogManager._idArray = new Array();
|
|
130
|
-
ModelessDialogManager._topZIndex = ZINDEX_DEFAULT;
|
|
131
119
|
/** ModelessDialogRenderer React component renders modeless dialogs.
|
|
132
120
|
* @public
|
|
133
121
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelessDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ModelessDialogManager.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAe,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEjH,gCAAgC;AAEhC;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,kBAAkB;CAAI;AAStE,+DAA+D;AAC/D,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAOhC,wCAAwC;IACjC,MAAM,KAAK,OAAO,KAAK,OAAO,qBAAqB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAOnF,6CAA6C;IACtC,MAAM,CAAC,UAAU;QACtB,qBAAqB,CAAC,UAAU,GAAG,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;IACpF,CAAC;IAEO,MAAM,CAAC,sBAAsB;QACnC,MAAM,QAAQ,GAAG,yBAAyB,CAAC;QAC3C,MAAM,KAAK,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAE/C,uBAAuB;QACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACf,OAAO,KAAK,CAAC;QAEf,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,0BAA0B,CAAC,CAAC;QAC1F,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,MAAuB,EAAE,EAAU,EAAE,cAAc,GAAG,QAAQ;QACrF,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,UAAU,EAAE;YACd,MAAM,OAAO,GAAG,sBAAsB,EAAE,kBAAkB,CAAC;YAC3D,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,eAAe,OAAO,EAAE,CAAC,CAAC;YAC3E,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACzI,OAAO;SACR;QACD,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,qBAAqB,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;QAC5H,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,qBAAqB,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW,CAAC,EAAU;QAClC,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,UAAU,EAAE;YACd,qBAAqB,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACvE,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzD,uBAAuB;YACvB,IAAI,KAAK,IAAI,CAAC;gBACZ,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAElD,IAAI,qBAAqB,CAAC,YAAY,KAAK,SAAS;gBAClD,qBAAqB,CAAC,UAAU,GAAG,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;YAEpF,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;aAAM;YACL,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,kDAAkD,EAAE,GAAG,CAAC,CAAC;SAC5G;IACH,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ;QACpB,qBAAqB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC;IAED,yBAAyB;IAClB,MAAM,CAAC,MAAM;QAClB,qBAAqB,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IAC/C,CAAC;IAED,qCAAqC;IAC9B,MAAM,KAAK,YAAY;QAC5B,IAAI,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,MAAM,EAAE,GAAG,qBAAqB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrF,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,uBAAuB;YACvB,IAAI,UAAU;gBACZ,OAAO,UAAU,CAAC,SAAS,CAAC;SAC/B;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wCAAwC;IACjC,MAAM,KAAK,WAAW;QAC3B,OAAO,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC;IACzD,CAAC;IAED,uDAAuD;IAChD,MAAM,CAAC,sBAAsB,CAAC,MAA0B,EAAE,EAAU,EAAE,UAAsB;QACjG,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,KAAK,qBAAqB,CAAC,YAAY,EAAE;YAC7E,UAAU,CAAC,MAAM,GAAG,EAAE,qBAAqB,CAAC,UAAU,CAAC;YAEvD,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrF,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAExC,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;IACH,CAAC;IAED,4CAA4C;IACrC,MAAM,CAAC,eAAe,CAAC,EAAU;QACtC,IAAI,MAAM,GAAG,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,uBAAuB;QACvB,IAAI,UAAU;YACZ,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,EAAU;QACpC,OAAO,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;;AA5HD,oCAAoC;AACb,kDAA4B,GAAG,IAAI,0BAA0B,EAAE,CAAC;AAEvF,gBAAgB;AACO,mCAAa,GAAsB,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,4BAA4B,CAAC,CAAC;AAKrH,gCAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;AACnD,8BAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;AAE/B,gCAAU,GAAG,cAAc,CAAC;AAmH7C;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK,CAAC,aAA0B;IAE1E,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,MAAM;QACpB,OAAO,CACL,oBAAC,kBAAkB,OAAK,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,qBAAqB,CAAC,aAAa,GAAI,CAC3F,CAAC;IACJ,CAAC;CACF","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 Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { CommonProps, getCssVariableAsNumber } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { DialogChangedEvent, DialogManagerBase, DialogRendererBase } from \"./DialogManagerBase\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\r\n\r\n// cSpell:ignore ZINDEX modeless\r\n\r\n/** Modeless Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class ModelessDialogChangedEvent extends DialogChangedEvent { }\r\n\r\n/** @internal */\r\ninterface ModelessDialogInfo {\r\n reactNode: React.ReactNode;\r\n zIndex: number;\r\n parentDocument: Document;\r\n}\r\n\r\n/** Used if the 'dialog' z-index CSS variable cannot be read */\r\nconst ZINDEX_DEFAULT = 12000;\r\n\r\n/** Modeless Dialog Manager class displays and manages multiple modeless dialogs\r\n * @public\r\n */\r\nexport class ModelessDialogManager {\r\n /** Modeless Dialog Changed Event */\r\n public static readonly onModelessDialogChangedEvent = new ModelessDialogChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(ModelessDialogManager.onModelessDialogChangedEvent);\r\n\r\n /** Get the array of modeless dialogs */\r\n public static get dialogs() { return ModelessDialogManager.dialogManager.dialogs; }\r\n\r\n private static _dialogMap = new Map<string, ModelessDialogInfo>();\r\n private static _idArray = new Array<string>();\r\n\r\n private static _topZIndex = ZINDEX_DEFAULT;\r\n\r\n /** Initialize the modeless dialog manager */\r\n public static initialize(): void {\r\n ModelessDialogManager._topZIndex = ModelessDialogManager.getDialogZIndexDefault();\r\n }\r\n\r\n private static getDialogZIndexDefault(): number {\r\n const variable = \"--uicore-z-index-dialog\";\r\n const value = getCssVariableAsNumber(variable);\r\n\r\n // istanbul ignore next\r\n if (!isNaN(value))\r\n return value;\r\n\r\n Logger.logError(UiFramework.loggerCategory(this), `'${variable}' CSS variable not found`);\r\n return ZINDEX_DEFAULT;\r\n }\r\n\r\n /** Open a modeless dialog\r\n * @param dialog The Dialog to open\r\n * @param id The id of the Dialog to open\r\n */\r\n public static openDialog(dialog: React.ReactNode, id: string, parentDocument = document): void {\r\n const dialogInfo = ModelessDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n const message = `Dialog with id of '${id}' already opened`;\r\n Logger.logInfo(UiFramework.loggerCategory(this), `openDialog: ${message}`);\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, message, undefined, OutputMessageType.Toast));\r\n return;\r\n }\r\n ModelessDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: ++ModelessDialogManager._topZIndex, parentDocument });\r\n ModelessDialogManager._idArray.push(id);\r\n ModelessDialogManager.dialogManager.openDialog(dialog, id, parentDocument);\r\n }\r\n\r\n /** Close a modeless dialog\r\n * @param id The id of the Dialog to close.\r\n */\r\n public static closeDialog(id: string): void {\r\n const dialogInfo = ModelessDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n ModelessDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);\r\n ModelessDialogManager._dialogMap.delete(id);\r\n const index = ModelessDialogManager._idArray.indexOf(id);\r\n // istanbul ignore else\r\n if (index >= 0)\r\n ModelessDialogManager._idArray.splice(index, 1);\r\n\r\n if (ModelessDialogManager.activeDialog === undefined)\r\n ModelessDialogManager._topZIndex = ModelessDialogManager.getDialogZIndexDefault();\r\n\r\n this.update();\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `closeDialog: Could not find dialog with id of '${id}'`);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static closeAll(): void {\r\n ModelessDialogManager.dialogManager.closeAll();\r\n }\r\n\r\n /** Update the dialogs */\r\n public static update(): void {\r\n ModelessDialogManager.dialogManager.update();\r\n }\r\n\r\n /** Get the active modeless dialog */\r\n public static get activeDialog(): React.ReactNode | undefined {\r\n if (ModelessDialogManager._idArray.length > 0) {\r\n const id = ModelessDialogManager._idArray[ModelessDialogManager._idArray.length - 1];\r\n const dialogInfo = ModelessDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n return dialogInfo.reactNode;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Get the count of modeless dialogs */\r\n public static get dialogCount(): number {\r\n return ModelessDialogManager.dialogManager.dialogCount;\r\n }\r\n\r\n /** Handle a pointer down event on a modeless dialog */\r\n public static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void {\r\n const dialogInfo = ModelessDialogManager._dialogMap.get(id);\r\n if (dialogInfo && dialogInfo.reactNode !== ModelessDialogManager.activeDialog) {\r\n dialogInfo.zIndex = ++ModelessDialogManager._topZIndex;\r\n\r\n ModelessDialogManager._idArray.splice(ModelessDialogManager._idArray.indexOf(id), 1);\r\n ModelessDialogManager._idArray.push(id);\r\n\r\n updateFunc();\r\n this.update();\r\n }\r\n }\r\n\r\n /** Get the z-index for a modeless dialog */\r\n public static getDialogZIndex(id: string): number {\r\n let zIndex = ModelessDialogManager.getDialogZIndexDefault();\r\n const dialogInfo = ModelessDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n zIndex = dialogInfo.zIndex;\r\n return zIndex;\r\n }\r\n\r\n public static getDialogInfo(id: string): ModelessDialogInfo | undefined {\r\n return ModelessDialogManager._dialogMap.get(id);\r\n }\r\n}\r\n\r\n/** ModelessDialogRenderer React component renders modeless dialogs.\r\n * @public\r\n */\r\nexport class ModelessDialogRenderer extends React.PureComponent<CommonProps> {\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n return (\r\n <DialogRendererBase {...this.props} dialogManager={ModelessDialogManager.dialogManager} />\r\n );\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ModelessDialogManager.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/ModelessDialogManager.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 Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { DialogChangedEvent, DialogManagerBase, DialogRendererBase } from \"./DialogManagerBase\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, OutputMessageType } from \"@itwin/core-frontend\";\r\n\r\n// cSpell:ignore ZINDEX modeless\r\n\r\n/** Modeless Dialog Changed Event class.\r\n * @public\r\n */\r\nexport class ModelessDialogChangedEvent extends DialogChangedEvent { }\r\n\r\n/** @internal */\r\ninterface ModelessDialogInfo {\r\n reactNode: React.ReactNode;\r\n zIndex: number;\r\n parentDocument: Document;\r\n}\r\n\r\n/** Modeless Dialog Manager class displays and manages multiple modeless dialogs\r\n * @public\r\n */\r\nexport class ModelessDialogManager {\r\n /** Modeless Dialog Changed Event */\r\n public static readonly onModelessDialogChangedEvent = new ModelessDialogChangedEvent();\r\n\r\n /** @internal */\r\n public static readonly dialogManager: DialogManagerBase = new DialogManagerBase(ModelessDialogManager.onModelessDialogChangedEvent);\r\n\r\n /** Get the array of modeless dialogs */\r\n public static get dialogs() { return ModelessDialogManager.dialogManager.dialogs; }\r\n\r\n private static _dialogMap = new Map<string, ModelessDialogInfo>();\r\n private static _idArray = new Array<string>();\r\n\r\n /** Initialize the modeless dialog manager */\r\n public static initialize(): void {\r\n DialogManagerBase.initialize();\r\n }\r\n\r\n /** Open a modeless dialog\r\n * @param dialog The Dialog to open\r\n * @param id The id of the Dialog to open\r\n */\r\n public static openDialog(dialog: React.ReactNode, id: string, parentDocument = document): void {\r\n const dialogInfo = ModelessDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n const message = `Dialog with id of '${id}' already opened`;\r\n Logger.logInfo(UiFramework.loggerCategory(this), `openDialog: ${message}`);\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, message, undefined, OutputMessageType.Toast));\r\n return;\r\n }\r\n ModelessDialogManager._dialogMap.set(id, { reactNode: dialog, zIndex: DialogManagerBase.topZIndex, parentDocument });\r\n ModelessDialogManager._idArray.push(id);\r\n ModelessDialogManager.dialogManager.openDialog(dialog, id, parentDocument);\r\n }\r\n\r\n /** Close a modeless dialog\r\n * @param id The id of the Dialog to close.\r\n */\r\n public static closeDialog(id: string): void {\r\n const dialogInfo = ModelessDialogManager._dialogMap.get(id);\r\n if (dialogInfo) {\r\n ModelessDialogManager.dialogManager.removeDialog(dialogInfo.reactNode);\r\n ModelessDialogManager._dialogMap.delete(id);\r\n const index = ModelessDialogManager._idArray.indexOf(id);\r\n // istanbul ignore else\r\n if (index >= 0)\r\n ModelessDialogManager._idArray.splice(index, 1);\r\n\r\n if (ModelessDialogManager.activeDialog === undefined)\r\n DialogManagerBase.topZIndex = DialogManagerBase.getDialogZIndexDefault();\r\n\r\n this.update();\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `closeDialog: Could not find dialog with id of '${id}'`);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static closeAll(): void {\r\n ModelessDialogManager.dialogManager.closeAll();\r\n }\r\n\r\n /** Update the dialogs */\r\n public static update(): void {\r\n ModelessDialogManager.dialogManager.update();\r\n }\r\n\r\n /** Get the active modeless dialog */\r\n public static get activeDialog(): React.ReactNode | undefined {\r\n if (ModelessDialogManager._idArray.length > 0) {\r\n const id = ModelessDialogManager._idArray[ModelessDialogManager._idArray.length - 1];\r\n const dialogInfo = ModelessDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n return dialogInfo.reactNode;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Get the count of modeless dialogs */\r\n public static get dialogCount(): number {\r\n return ModelessDialogManager.dialogManager.dialogCount;\r\n }\r\n\r\n /** Handle a pointer down event on a modeless dialog */\r\n public static handlePointerDownEvent(_event: React.PointerEvent, id: string, updateFunc: () => void): void {\r\n const dialogInfo = ModelessDialogManager._dialogMap.get(id);\r\n if (dialogInfo && dialogInfo.reactNode !== ModelessDialogManager.activeDialog) {\r\n DialogManagerBase.topZIndex += 1;\r\n dialogInfo.zIndex = DialogManagerBase.topZIndex;\r\n\r\n ModelessDialogManager._idArray.splice(ModelessDialogManager._idArray.indexOf(id), 1);\r\n ModelessDialogManager._idArray.push(id);\r\n\r\n updateFunc();\r\n this.update();\r\n }\r\n }\r\n\r\n /** Get the z-index for a modeless dialog */\r\n public static getDialogZIndex(id: string): number {\r\n let zIndex = DialogManagerBase.getDialogZIndexDefault();\r\n const dialogInfo = ModelessDialogManager._dialogMap.get(id);\r\n // istanbul ignore else\r\n if (dialogInfo)\r\n zIndex = dialogInfo.zIndex;\r\n return zIndex;\r\n }\r\n\r\n public static getDialogInfo(id: string): ModelessDialogInfo | undefined {\r\n return ModelessDialogManager._dialogMap.get(id);\r\n }\r\n}\r\n\r\n/** ModelessDialogRenderer React component renders modeless dialogs.\r\n * @public\r\n */\r\nexport class ModelessDialogRenderer extends React.PureComponent<CommonProps> {\r\n\r\n constructor(props: CommonProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n return (\r\n <DialogRendererBase {...this.props} dialogManager={ModelessDialogManager.dialogManager} />\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardMessageBox.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/dialog/StandardMessageBox.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE3F,OAAO,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"StandardMessageBox.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/dialog/StandardMessageBox.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE3F,OAAO,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,gDAAgD;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,sDAAsD;IACtD,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,cAAc,EAAE,cAAc,CAAC;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,UAAU,uBAAuB;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,aAAa,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAE3G,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC;gBAEtD,KAAK,EAAE,uBAAuB;IAO1B,MAAM,IAAI,GAAG,CAAC,OAAO;IA4DrC,OAAO,CAAC,aAAa,CAMnB;IAEF,OAAO,CAAC,aAAa,CAMnB;IAEF,OAAO,CAAC,YAAY,CAOlB;CACH"}
|
|
@@ -10,6 +10,7 @@ import { MessageBoxIconType, MessageBoxType, MessageBoxValue } from "@itwin/core
|
|
|
10
10
|
import { DialogButtonType, MessageSeverity } from "@itwin/appui-abstract";
|
|
11
11
|
import { MessageBox } from "@itwin/core-react";
|
|
12
12
|
import { ModalDialogManager } from "./ModalDialogManager";
|
|
13
|
+
import { DialogManagerBase } from "./DialogManagerBase";
|
|
13
14
|
/** StandardMessageBox React component displays a standard icon, message text and a standard button set in the lower right.
|
|
14
15
|
* @public
|
|
15
16
|
*/
|
|
@@ -83,7 +84,7 @@ export class StandardMessageBox extends React.PureComponent {
|
|
|
83
84
|
severity = MessageSeverity.Success;
|
|
84
85
|
break;
|
|
85
86
|
}
|
|
86
|
-
return (React.createElement(MessageBox, { className: this.props.className, style: this.props.style, opened: this.state.opened, title: this.props.title, severity: severity, buttonCluster: buttonCluster, onClose: this._handleCancel, onEscape: this._handleCancel }, this.props.children));
|
|
87
|
+
return (React.createElement(MessageBox, { className: this.props.className, style: { zIndex: DialogManagerBase.topZIndex, ...this.props.style }, opened: this.state.opened, title: this.props.title, severity: severity, buttonCluster: buttonCluster, onClose: this._handleCancel, onEscape: this._handleCancel }, this.props.children));
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
90
|
//# sourceMappingURL=StandardMessageBox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardMessageBox.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/StandardMessageBox.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAmB,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"StandardMessageBox.js","sourceRoot":"","sources":["../../../../src/appui-react/dialog/StandardMessageBox.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 Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { MessageBoxIconType, MessageBoxType, MessageBoxValue } from \"@itwin/core-frontend\";\r\nimport { DialogButtonDef, DialogButtonType, MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, MessageBox } from \"@itwin/core-react\";\r\nimport { ModalDialogManager } from \"./ModalDialogManager\";\r\nimport { DialogManagerBase } from \"./DialogManagerBase\";\r\n\r\n/** Properties for [[StandardMessageBox]] React component\r\n * @public\r\n */\r\nexport interface StandardMessageBoxProps extends CommonProps {\r\n /** Indicates whether the message box is open */\r\n opened: boolean;\r\n /** The standard icon to display in the message box */\r\n iconType: MessageBoxIconType;\r\n /** Title to display in the message box */\r\n title: string;\r\n /** Controls the button set displayed */\r\n messageBoxType: MessageBoxType;\r\n /** Callback function for processing the message box result */\r\n onResult?: (result: MessageBoxValue) => void;\r\n}\r\n\r\n/** State for [[StandardMessageBox]] React component\r\n * @internal\r\n */\r\ninterface StandardMessageBoxState {\r\n opened: boolean;\r\n}\r\n\r\n/** StandardMessageBox React component displays a standard icon, message text and a standard button set in the lower right.\r\n * @public\r\n */\r\nexport class StandardMessageBox extends React.PureComponent<StandardMessageBoxProps, StandardMessageBoxState> {\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<StandardMessageBoxState>;\r\n\r\n constructor(props: StandardMessageBoxProps) {\r\n super(props);\r\n this.state = {\r\n opened: this.props.opened,\r\n };\r\n }\r\n\r\n public override render(): JSX.Element {\r\n const buttonCluster: DialogButtonDef[] = new Array<DialogButtonDef>();\r\n\r\n switch (this.props.messageBoxType) {\r\n case MessageBoxType.Ok:\r\n case MessageBoxType.LargeOk:\r\n buttonCluster.push({ type: DialogButtonType.OK, onClick: () => { this._handleButton(MessageBoxValue.Ok); } });\r\n break;\r\n case MessageBoxType.OkCancel:\r\n case MessageBoxType.MediumAlert:\r\n buttonCluster.push({ type: DialogButtonType.OK, onClick: () => { this._handleButton(MessageBoxValue.Ok); } });\r\n buttonCluster.push({ type: DialogButtonType.Cancel, onClick: () => { this._handleButton(MessageBoxValue.Cancel); } });\r\n break;\r\n case MessageBoxType.YesNo:\r\n case MessageBoxType.YesNoCancel:\r\n buttonCluster.push({ type: DialogButtonType.Yes, onClick: () => { this._handleButton(MessageBoxValue.Yes); } });\r\n buttonCluster.push({ type: DialogButtonType.No, onClick: () => { this._handleButton(MessageBoxValue.No); } });\r\n if (MessageBoxType.YesNoCancel === this.props.messageBoxType)\r\n buttonCluster.push({ type: DialogButtonType.Cancel, onClick: () => { this._handleButton(MessageBoxValue.Cancel); } });\r\n break;\r\n }\r\n\r\n let severity = MessageSeverity.None;\r\n switch (this.props.iconType) {\r\n case MessageBoxIconType.NoSymbol:\r\n severity = MessageSeverity.None;\r\n break;\r\n case MessageBoxIconType.Information:\r\n severity = MessageSeverity.Information;\r\n break;\r\n case MessageBoxIconType.Question:\r\n severity = MessageSeverity.Question;\r\n break;\r\n case MessageBoxIconType.Warning:\r\n severity = MessageSeverity.Warning;\r\n break;\r\n case MessageBoxIconType.Critical:\r\n severity = MessageSeverity.Error;\r\n break;\r\n case MessageBoxIconType.Success:\r\n severity = MessageSeverity.Success;\r\n break;\r\n }\r\n\r\n return (\r\n <MessageBox\r\n className={this.props.className}\r\n style={{ zIndex: DialogManagerBase.topZIndex, ...this.props.style }}\r\n opened={this.state.opened}\r\n title={this.props.title}\r\n severity={severity}\r\n buttonCluster={buttonCluster}\r\n onClose={this._handleCancel}\r\n onEscape={this._handleCancel}\r\n >\r\n {this.props.children}\r\n </MessageBox>\r\n );\r\n }\r\n\r\n private _handleButton = (buttonType: MessageBoxValue) => {\r\n this._closeDialog(() => {\r\n // istanbul ignore else\r\n if (this.props.onResult)\r\n this.props.onResult(buttonType);\r\n });\r\n };\r\n\r\n private _handleCancel = () => {\r\n this._closeDialog(() => {\r\n // istanbul ignore else\r\n if (this.props.onResult)\r\n this.props.onResult(MessageBoxValue.Cancel);\r\n });\r\n };\r\n\r\n private _closeDialog = (followUp: () => void) => {\r\n this.setState((_prevState) => ({\r\n opened: false,\r\n }), () => {\r\n ModalDialogManager.closeDialog();\r\n followUp();\r\n });\r\n };\r\n}\r\n"]}
|
|
@@ -22,6 +22,7 @@ export declare class CoreTools {
|
|
|
22
22
|
static get rotateViewCommand(): ToolItemDef;
|
|
23
23
|
static get walkViewCommand(): ToolItemDef;
|
|
24
24
|
static get selectElementCommand(): ToolItemDef;
|
|
25
|
+
static get setupCameraWalkTool(): ToolItemDef;
|
|
25
26
|
static get toggleCameraViewCommand(): ToolItemDef;
|
|
26
27
|
static get flyViewCommand(): ToolItemDef;
|
|
27
28
|
static get viewUndoCommand(): ToolItemDef;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreToolDefinitions.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/tools/CoreToolDefinitions.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAeH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQpD;;GAEG;AAEH,qBAAa,SAAS;IACpB;;OAEG;IACH,WAAkB,yBAAyB,kBAiB1C;IAGD,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAIhC;IAEF,WAAkB,yBAAyB,gBAO1C;IAED,WAAkB,cAAc,gBAQ/B;IAED,WAAkB,iBAAiB,gBAQlC;IAED,WAAkB,eAAe,gBAQhC;IAED,WAAkB,cAAc,gBAQ/B;IAED,WAAkB,iBAAiB,gBAalC;IAED,WAAkB,eAAe,gBAYhC;IAED,WAAkB,oBAAoB,gBAQrC;IAED,WAAkB,uBAAuB,gBAwBxC;IAED,WAAkB,cAAc,gBAQ/B;IAID,WAAkB,eAAe,gBAwBhC;IAED,WAAkB,eAAe,gBAsBhC;IAED,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAU/B,WAAkB,4BAA4B,gBAW7C;IAGD,WAAkB,8BAA8B,gBAW/C;IAGD,WAAkB,4BAA4B,gBAW7C;IAGD,WAAkB,4BAA4B,gBAW7C;IAED,WAAkB,gBAAgB,iBAiBjC;IAED,WAAkB,yBAAyB,iBAoC1C;IAGD,WAAkB,0BAA0B,gBAU3C;IAGD,WAAkB,0BAA0B,gBAU3C;IAED,WAAkB,gBAAgB,iBAWjC;IAED,WAAkB,qBAAqB,mBAoBtC;IAED,WAAkB,qCAAqC,gBAUtD;CACF"}
|
|
1
|
+
{"version":3,"file":"CoreToolDefinitions.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/tools/CoreToolDefinitions.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAeH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQpD;;GAEG;AAEH,qBAAa,SAAS;IACpB;;OAEG;IACH,WAAkB,yBAAyB,kBAiB1C;IAGD,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAIhC;IAEF,WAAkB,yBAAyB,gBAO1C;IAED,WAAkB,cAAc,gBAQ/B;IAED,WAAkB,iBAAiB,gBAQlC;IAED,WAAkB,eAAe,gBAQhC;IAED,WAAkB,cAAc,gBAQ/B;IAED,WAAkB,iBAAiB,gBAalC;IAED,WAAkB,eAAe,gBAYhC;IAED,WAAkB,oBAAoB,gBAQrC;IAED,WAAkB,mBAAmB,gBAQpC;IAED,WAAkB,uBAAuB,gBAwBxC;IAED,WAAkB,cAAc,gBAQ/B;IAID,WAAkB,eAAe,gBAwBhC;IAED,WAAkB,eAAe,gBAsBhC;IAED,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAU/B,WAAkB,4BAA4B,gBAW7C;IAGD,WAAkB,8BAA8B,gBAW/C;IAGD,WAAkB,4BAA4B,gBAW7C;IAGD,WAAkB,4BAA4B,gBAW7C;IAED,WAAkB,gBAAgB,iBAiBjC;IAED,WAAkB,yBAAyB,iBAoC1C;IAGD,WAAkB,0BAA0B,gBAU3C;IAGD,WAAkB,0BAA0B,gBAU3C;IAED,WAAkB,gBAAgB,iBAWjC;IAED,WAAkB,qBAAqB,mBAoBtC;IAED,WAAkB,qCAAqC,gBAUtD;CACF"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
// cSpell:ignore configurableui keyinbrowser
|
|
10
|
-
import { FitViewTool, FlyViewTool, IModelApp, MeasureDistanceTool, MeasureLocationTool, PanViewTool, RotateViewTool, SelectionTool, ViewClipByElementTool, ViewClipByPlaneTool, ViewClipByRangeTool, ViewClipByShapeTool, ViewClipDecorationProvider, ViewRedoTool, ViewToggleCameraTool, ViewUndoTool, WalkViewTool, WindowAreaTool, ZoomViewTool, } from "@itwin/core-frontend";
|
|
10
|
+
import { FitViewTool, FlyViewTool, IModelApp, MeasureDistanceTool, MeasureLocationTool, PanViewTool, RotateViewTool, SelectionTool, SetupWalkCameraTool, ViewClipByElementTool, ViewClipByPlaneTool, ViewClipByRangeTool, ViewClipByShapeTool, ViewClipDecorationProvider, ViewRedoTool, ViewToggleCameraTool, ViewUndoTool, WalkViewTool, WindowAreaTool, ZoomViewTool, } from "@itwin/core-frontend";
|
|
11
11
|
import { ConditionalBooleanValue, ConditionalStringValue, IconSpecUtilities } from "@itwin/appui-abstract";
|
|
12
12
|
import { ToolbarPopupContext } from "@itwin/components-react";
|
|
13
13
|
import { PopupButton } from "../toolbar/PopupButton";
|
|
@@ -124,6 +124,15 @@ export class CoreTools {
|
|
|
124
124
|
execute: async () => IModelApp.tools.run(SelectionTool.toolId),
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
|
+
static get setupCameraWalkTool() {
|
|
128
|
+
return new ToolItemDef({
|
|
129
|
+
toolId: SetupWalkCameraTool.toolId,
|
|
130
|
+
iconSpec: SetupWalkCameraTool.iconSpec,
|
|
131
|
+
label: SetupWalkCameraTool.flyover,
|
|
132
|
+
description: SetupWalkCameraTool.description,
|
|
133
|
+
execute: async () => IModelApp.tools.run(SetupWalkCameraTool.toolId),
|
|
134
|
+
});
|
|
135
|
+
}
|
|
127
136
|
static get toggleCameraViewCommand() {
|
|
128
137
|
return new ToolItemDef({
|
|
129
138
|
toolId: ViewToggleCameraTool.toolId,
|