@itwin/appui-react 5.15.2 → 5.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/lib/appui-react/accudraw/AccuDrawFieldContainer.d.ts +0 -2
  3. package/lib/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  4. package/lib/appui-react/accudraw/AccuDrawFieldContainer.js +9 -17
  5. package/lib/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  6. package/lib/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  7. package/lib/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +19 -16
  8. package/lib/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  9. package/lib/appui-react/accudraw/AccuDrawStore.d.ts +10 -0
  10. package/lib/appui-react/accudraw/AccuDrawStore.d.ts.map +1 -0
  11. package/lib/appui-react/accudraw/AccuDrawStore.js +11 -0
  12. package/lib/appui-react/accudraw/AccuDrawStore.js.map +1 -0
  13. package/lib/appui-react/accudraw/FrameworkAccuDraw.d.ts +1 -1
  14. package/lib/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  15. package/lib/appui-react/accudraw/FrameworkAccuDraw.js +4 -1
  16. package/lib/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  17. package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
  18. package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  19. package/lib/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  20. package/lib/appui-react/content/ContentGroup.js +1 -1
  21. package/lib/appui-react/content/ContentGroup.js.map +1 -1
  22. package/lib/appui-react/content/FloatingViewportContent.js +1 -1
  23. package/lib/appui-react/content/FloatingViewportContent.js.map +1 -1
  24. package/lib/appui-react/content/split-pane/Pane.d.ts +1 -1
  25. package/lib/appui-react/content/split-pane/Pane.d.ts.map +1 -1
  26. package/lib/appui-react/content/split-pane/Pane.js.map +1 -1
  27. package/lib/appui-react/content/split-pane/SplitPane.js +1 -1
  28. package/lib/appui-react/content/split-pane/SplitPane.js.map +1 -1
  29. package/lib/appui-react/core-icons.d.ts +8 -0
  30. package/lib/appui-react/core-icons.d.ts.map +1 -0
  31. package/lib/appui-react/core-icons.js +2 -0
  32. package/lib/appui-react/core-icons.js.map +1 -0
  33. package/lib/appui-react/cursor/cursormenu/CursorMenu.js +1 -1
  34. package/lib/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  35. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.js +1 -1
  36. package/lib/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  37. package/lib/appui-react/dialog/UiDataProvidedDialog.js +2 -2
  38. package/lib/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
  39. package/lib/appui-react/framework/FrameworkFrontstages.d.ts +5 -0
  40. package/lib/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
  41. package/lib/appui-react/framework/FrameworkFrontstages.js.map +1 -1
  42. package/lib/appui-react/hooks/useLatestRef.d.ts +1 -1
  43. package/lib/appui-react/hooks/useLatestRef.d.ts.map +1 -1
  44. package/lib/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  45. package/lib/appui-react/keyboardshortcut/KeyboardShortcut.js +2 -3
  46. package/lib/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  47. package/lib/appui-react/keyboardshortcut/KeyboardShortcutMenu.d.ts.map +1 -1
  48. package/lib/appui-react/keyboardshortcut/KeyboardShortcutMenu.js +1 -1
  49. package/lib/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
  50. package/lib/appui-react/layout/StandardLayout.scss +0 -1
  51. package/lib/appui-react/layout/footer/tool-assistance/Instruction.scss +4 -0
  52. package/lib/appui-react/layout/tool-settings/Docked.js.map +1 -1
  53. package/lib/appui-react/layout/widget/Tab.js +2 -2
  54. package/lib/appui-react/layout/widget/Tab.js.map +1 -1
  55. package/lib/appui-react/layout/widget/TabBar.js +1 -1
  56. package/lib/appui-react/layout/widget/TabBar.js.map +1 -1
  57. package/lib/appui-react/layout/widget-panels/Grip.js +1 -1
  58. package/lib/appui-react/layout/widget-panels/Grip.js.map +1 -1
  59. package/lib/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
  60. package/lib/appui-react/layout/widget-panels/useAnimatePanel.d.ts.map +1 -1
  61. package/lib/appui-react/layout/widget-panels/useAnimatePanel.js +3 -3
  62. package/lib/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  63. package/lib/appui-react/messages/MessageRenderer.d.ts.map +1 -1
  64. package/lib/appui-react/messages/MessageRenderer.js +1 -1
  65. package/lib/appui-react/messages/MessageRenderer.js.map +1 -1
  66. package/lib/appui-react/pickers/ListPicker.d.ts.map +1 -1
  67. package/lib/appui-react/pickers/ListPicker.js +1 -1
  68. package/lib/appui-react/pickers/ListPicker.js.map +1 -1
  69. package/lib/appui-react/pickers/ListPicker.scss +10 -0
  70. package/lib/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  71. package/lib/appui-react/settings/quantityformatting/QuantityFormat.js +1 -1
  72. package/lib/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  73. package/lib/appui-react/statusbar/popup/Popup.js +1 -1
  74. package/lib/appui-react/statusbar/popup/Popup.js.map +1 -1
  75. package/lib/appui-react/statusbar/popup/StatusBarPopover.js +1 -1
  76. package/lib/appui-react/statusbar/popup/StatusBarPopover.js.map +1 -1
  77. package/lib/appui-react/statusfields/SnapMode.js +1 -1
  78. package/lib/appui-react/statusfields/SnapMode.js.map +1 -1
  79. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js +2 -0
  80. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  81. package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +1 -1
  82. package/lib/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  83. package/lib/appui-react/syncui/SyncUiEventDispatcher.js +6 -1
  84. package/lib/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  85. package/lib/appui-react/syncui/UiSyncEvent.d.ts +5 -1
  86. package/lib/appui-react/syncui/UiSyncEvent.d.ts.map +1 -1
  87. package/lib/appui-react/syncui/UiSyncEvent.js +5 -1
  88. package/lib/appui-react/syncui/UiSyncEvent.js.map +1 -1
  89. package/lib/appui-react/toolbar/new-toolbars/ToolGroup.js.map +1 -1
  90. package/lib/appui-react/toolbar/new-toolbars/useOverflow.js +2 -2
  91. package/lib/appui-react/toolbar/new-toolbars/useOverflow.js.map +1 -1
  92. package/lib/appui-react/tools/FrameworkToolAdmin.js +10 -2
  93. package/lib/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  94. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  95. package/lib/appui-react/uiprovider/ComponentGenerator.d.ts.map +1 -1
  96. package/lib/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  97. package/lib/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  98. package/lib/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  99. package/lib/appui-react/widget-panels/ToolSettings.js.map +1 -1
  100. package/lib/appui-react.d.ts +1 -0
  101. package/lib/appui-react.d.ts.map +1 -1
  102. package/lib/appui-react.js.map +1 -1
  103. package/lib/cjs/appui-react/layout/StandardLayout.scss +0 -1
  104. package/lib/cjs/appui-react/layout/footer/tool-assistance/Instruction.scss +4 -0
  105. package/lib/cjs/appui-react/pickers/ListPicker.scss +10 -0
  106. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +1 -1
  107. package/lib/esm/appui-react/layout/StandardLayout.scss +0 -1
  108. package/lib/esm/appui-react/layout/footer/tool-assistance/Instruction.scss +4 -0
  109. package/lib/esm/appui-react/pickers/ListPicker.scss +10 -0
  110. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +1 -1
  111. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"UiDataProvidedDialog.js","sourceRoot":"","sources":["../../../src/appui-react/dialog/UiDataProvidedDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport type {\n DialogButtonDef,\n DialogLayoutDataProvider,\n} from \"@itwin/appui-abstract\";\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\nimport * as React from \"react\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { getUniqueId } from \"../layout/base/NineZone.js\";\nimport { ComponentGenerator } from \"../uiprovider/ComponentGenerator.js\";\nimport { DefaultDialogGridContainer } from \"../uiprovider/DefaultDialogGridContainer.js\";\nimport { Button, Dialog } from \"@itwin/itwinui-react\";\nimport classnames from \"classnames\";\nimport { useTranslation } from \"../hooks/useTranslation.js\";\n\n/** Props for [[UiDataProvidedDialog]] component.\n * @public\n * @deprecated in 4.15.0. Props of deprecated {@link UiDataProvidedDialog} component.\n */\nexport interface UiDataProvidedDialogProps {\n /** Dialog title */\n title: string;\n /** Provider that provides and lays out DialogItems */\n uiDataProvider: DialogLayoutDataProvider;\n /** Indicates if Dialog is Modal */\n isModal: boolean;\n /** Id used to specify dialog. */\n id?: string;\n /** Indicates whether the user can resize dialog with cursor. Default: false */\n resizable?: boolean;\n /** Indicates whether the user can move dialog with cursor. Default: false */\n movable?: boolean;\n /** Initial width of dialog. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: \"50%\" */\n width?: string | number;\n /** Initial height of dialog. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n height?: string | number;\n /** Minimum width that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: 300px */\n minWidth?: string | number;\n /** Minimum height that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: 100px */\n minHeight?: string | number;\n /** Maximum width that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n maxWidth?: string | number;\n /** Maximum height that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n maxHeight?: string | number;\n /** Custom CSS style properties. */\n style?: React.CSSProperties;\n}\n\n/** Component to show dialog populated from properties supplied via uiDataProvider\n * @public\n * @deprecated in 4.15.0. Use {@link https://itwinui.bentley.com/docs/dialog iTwinUI Dialog} instead.\n */\nexport function UiDataProvidedDialog({\n uiDataProvider,\n id,\n isModal,\n title,\n movable,\n resizable,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n}: // eslint-disable-next-line @typescript-eslint/no-deprecated\nUiDataProvidedDialogProps) {\n const dialogId = React.useRef(id ? id : getUniqueId());\n const dialogIsModal = React.useRef(isModal);\n const onOK = React.useRef<() => void>();\n const onCancel = React.useRef<() => void>();\n const closeDialog = () => {\n if (dialogIsModal.current) UiFramework.dialogs.modal.close();\n else UiFramework.dialogs.modeless.close(dialogId.current);\n };\n\n const handleOk = React.useCallback(() => {\n onOK.current && onOK.current();\n closeDialog();\n }, []);\n\n const handleCancel = React.useCallback(() => {\n onCancel.current && onCancel.current();\n closeDialog();\n }, []);\n\n const generateButtonCluster = React.useCallback(\n (buttons: DialogButtonDef[] | undefined) => {\n if (buttons) {\n for (const button of buttons) {\n if (DialogButtonType.Cancel === button.type) {\n onCancel.current = button.onClick;\n button.onClick = handleCancel;\n continue;\n }\n if (DialogButtonType.OK === button.type) {\n onOK.current = button.onClick;\n button.onClick = handleOk;\n continue;\n }\n }\n }\n return buttons;\n },\n [handleCancel, handleOk]\n );\n const [buttonCluster, setButtonCluster] = React.useState(() =>\n generateButtonCluster(uiDataProvider.supplyButtonData())\n );\n\n React.useEffect(() => {\n return uiDataProvider.onItemsReloadedEvent.addListener(() => {\n setButtonCluster(\n generateButtonCluster(uiDataProvider.supplyButtonData())\n );\n });\n }, [generateButtonCluster, uiDataProvider]);\n\n React.useEffect(() => {\n return uiDataProvider.onButtonsReloadedEvent.addListener(() => {\n setButtonCluster(\n generateButtonCluster(uiDataProvider.supplyButtonData())\n );\n });\n }, [generateButtonCluster, uiDataProvider]);\n\n const handleClose = React.useCallback(() => closeDialog(), []);\n\n const containerStyle: React.CSSProperties = {\n minWidth,\n minHeight,\n maxWidth: maxWidth || \"100%\",\n maxHeight,\n width: width || \"50%\",\n margin: \"\",\n height,\n };\n\n return (\n <Dialog\n isOpen={true}\n onClose={handleClose}\n closeOnEsc\n closeOnExternalClick={false}\n isDraggable={movable}\n isResizable={resizable}\n preventDocumentScroll\n style={style}\n >\n {isModal && <Dialog.Backdrop />}\n <Dialog.Main\n style={containerStyle}\n data-testid=\"ui-data-provided-dialog-container\"\n >\n <Dialog.TitleBar titleText={title} />\n <Dialog.Content>\n <DefaultDialogGridContainer\n componentGenerator={new ComponentGenerator(uiDataProvider)}\n />\n </Dialog.Content>\n <Dialog.ButtonBar>\n {buttonCluster &&\n buttonCluster.map((button, index) => (\n <DialogButton key={index} button={button} />\n ))}\n </Dialog.ButtonBar>\n </Dialog.Main>\n </Dialog>\n );\n}\n\nfunction DialogButton({ button }: { button: DialogButtonDef }) {\n const { translate } = useTranslation();\n\n let buttonText = \"\";\n let usePrimaryStyleType = false;\n let buttonClass = button.className;\n\n switch (button.type) {\n case DialogButtonType.OK:\n buttonText = translate(\"dialog.ok\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n usePrimaryStyleType = true;\n break;\n case DialogButtonType.Retry:\n buttonText = translate(\"dialog.retry\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n usePrimaryStyleType = true;\n break;\n case DialogButtonType.Yes:\n buttonText = translate(\"dialog.yes\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n usePrimaryStyleType = true;\n break;\n case DialogButtonType.No:\n buttonText = translate(\"dialog.no\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n break;\n case DialogButtonType.Cancel:\n buttonText = translate(\"dialog.cancel\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n break;\n case DialogButtonType.Close:\n buttonText = translate(\"dialog.close\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n break;\n case DialogButtonType.Next:\n buttonText = translate(\"dialog.next\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n usePrimaryStyleType = true;\n break;\n case DialogButtonType.Previous:\n buttonText = translate(\"dialog.previous\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n usePrimaryStyleType = true;\n break;\n }\n\n buttonText = button.label || buttonText;\n\n return (\n <Button\n className={buttonClass}\n disabled={button.disabled}\n styleType={usePrimaryStyleType ? \"high-visibility\" : undefined}\n onClick={button.onClick}\n >\n {buttonText}\n </Button>\n );\n}\n"]}
1
+ {"version":3,"file":"UiDataProvidedDialog.js","sourceRoot":"","sources":["../../../src/appui-react/dialog/UiDataProvidedDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Dialog\n */\n\nimport type {\n DialogButtonDef,\n DialogLayoutDataProvider,\n} from \"@itwin/appui-abstract\";\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\nimport * as React from \"react\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { getUniqueId } from \"../layout/base/NineZone.js\";\nimport { ComponentGenerator } from \"../uiprovider/ComponentGenerator.js\";\nimport { DefaultDialogGridContainer } from \"../uiprovider/DefaultDialogGridContainer.js\";\nimport { Button, Dialog } from \"@itwin/itwinui-react\";\nimport classnames from \"classnames\";\nimport { useTranslation } from \"../hooks/useTranslation.js\";\n\n/** Props for [[UiDataProvidedDialog]] component.\n * @public\n * @deprecated in 4.15.0. Props of deprecated {@link UiDataProvidedDialog} component.\n */\nexport interface UiDataProvidedDialogProps {\n /** Dialog title */\n title: string;\n /** Provider that provides and lays out DialogItems */\n uiDataProvider: DialogLayoutDataProvider;\n /** Indicates if Dialog is Modal */\n isModal: boolean;\n /** Id used to specify dialog. */\n id?: string;\n /** Indicates whether the user can resize dialog with cursor. Default: false */\n resizable?: boolean;\n /** Indicates whether the user can move dialog with cursor. Default: false */\n movable?: boolean;\n /** Initial width of dialog. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: \"50%\" */\n width?: string | number;\n /** Initial height of dialog. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n height?: string | number;\n /** Minimum width that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: 300px */\n minWidth?: string | number;\n /** Minimum height that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. Default: 100px */\n minHeight?: string | number;\n /** Maximum width that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n maxWidth?: string | number;\n /** Maximum height that the dialog may be resized to. Displayed in px if value is a number; otherwise, displayed in specified CSS unit. */\n maxHeight?: string | number;\n /** Custom CSS style properties. */\n style?: React.CSSProperties;\n}\n\n/** Component to show dialog populated from properties supplied via uiDataProvider\n * @public\n * @deprecated in 4.15.0. Use {@link https://itwinui.bentley.com/docs/dialog iTwinUI Dialog} instead.\n */\nexport function UiDataProvidedDialog({\n uiDataProvider,\n id,\n isModal,\n title,\n movable,\n resizable,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n}: // eslint-disable-next-line @typescript-eslint/no-deprecated\nUiDataProvidedDialogProps) {\n const dialogId = React.useRef(id ? id : getUniqueId());\n const dialogIsModal = React.useRef(isModal);\n const onOK = React.useRef<(() => void) | undefined>(undefined);\n const onCancel = React.useRef<(() => void) | undefined>(undefined);\n const closeDialog = () => {\n if (dialogIsModal.current) UiFramework.dialogs.modal.close();\n else UiFramework.dialogs.modeless.close(dialogId.current);\n };\n\n const handleOk = React.useCallback(() => {\n onOK.current && onOK.current();\n closeDialog();\n }, []);\n\n const handleCancel = React.useCallback(() => {\n onCancel.current && onCancel.current();\n closeDialog();\n }, []);\n\n const generateButtonCluster = React.useCallback(\n (buttons: DialogButtonDef[] | undefined) => {\n if (buttons) {\n for (const button of buttons) {\n if (DialogButtonType.Cancel === button.type) {\n onCancel.current = button.onClick;\n button.onClick = handleCancel;\n continue;\n }\n if (DialogButtonType.OK === button.type) {\n onOK.current = button.onClick;\n button.onClick = handleOk;\n continue;\n }\n }\n }\n return buttons;\n },\n [handleCancel, handleOk]\n );\n const [buttonCluster, setButtonCluster] = React.useState(() =>\n generateButtonCluster(uiDataProvider.supplyButtonData())\n );\n\n React.useEffect(() => {\n return uiDataProvider.onItemsReloadedEvent.addListener(() => {\n setButtonCluster(\n generateButtonCluster(uiDataProvider.supplyButtonData())\n );\n });\n }, [generateButtonCluster, uiDataProvider]);\n\n React.useEffect(() => {\n return uiDataProvider.onButtonsReloadedEvent.addListener(() => {\n setButtonCluster(\n generateButtonCluster(uiDataProvider.supplyButtonData())\n );\n });\n }, [generateButtonCluster, uiDataProvider]);\n\n const handleClose = React.useCallback(() => closeDialog(), []);\n\n const containerStyle: React.CSSProperties = {\n minWidth,\n minHeight,\n maxWidth: maxWidth || \"100%\",\n maxHeight,\n width: width || \"50%\",\n margin: \"\",\n height,\n };\n\n return (\n <Dialog\n isOpen={true}\n onClose={handleClose}\n closeOnEsc\n closeOnExternalClick={false}\n isDraggable={movable}\n isResizable={resizable}\n preventDocumentScroll\n style={style}\n >\n {isModal && <Dialog.Backdrop />}\n <Dialog.Main\n style={containerStyle}\n data-testid=\"ui-data-provided-dialog-container\"\n >\n <Dialog.TitleBar titleText={title} />\n <Dialog.Content>\n <DefaultDialogGridContainer\n componentGenerator={new ComponentGenerator(uiDataProvider)}\n />\n </Dialog.Content>\n <Dialog.ButtonBar>\n {buttonCluster &&\n buttonCluster.map((button, index) => (\n <DialogButton key={index} button={button} />\n ))}\n </Dialog.ButtonBar>\n </Dialog.Main>\n </Dialog>\n );\n}\n\nfunction DialogButton({ button }: { button: DialogButtonDef }) {\n const { translate } = useTranslation();\n\n let buttonText = \"\";\n let usePrimaryStyleType = false;\n let buttonClass = button.className;\n\n switch (button.type) {\n case DialogButtonType.OK:\n buttonText = translate(\"dialog.ok\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n usePrimaryStyleType = true;\n break;\n case DialogButtonType.Retry:\n buttonText = translate(\"dialog.retry\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n usePrimaryStyleType = true;\n break;\n case DialogButtonType.Yes:\n buttonText = translate(\"dialog.yes\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n usePrimaryStyleType = true;\n break;\n case DialogButtonType.No:\n buttonText = translate(\"dialog.no\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n break;\n case DialogButtonType.Cancel:\n buttonText = translate(\"dialog.cancel\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n break;\n case DialogButtonType.Close:\n buttonText = translate(\"dialog.close\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n break;\n case DialogButtonType.Next:\n buttonText = translate(\"dialog.next\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n usePrimaryStyleType = true;\n break;\n case DialogButtonType.Previous:\n buttonText = translate(\"dialog.previous\");\n buttonClass = classnames(buttonClass, button.buttonStyle);\n usePrimaryStyleType = true;\n break;\n }\n\n buttonText = button.label || buttonText;\n\n return (\n <Button\n className={buttonClass}\n disabled={button.disabled}\n styleType={usePrimaryStyleType ? \"high-visibility\" : undefined}\n onClick={button.onClick}\n >\n {buttonText}\n </Button>\n );\n}\n"]}
@@ -146,8 +146,13 @@ export declare class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventAr
146
146
  * @public
147
147
  */
148
148
  export interface ModalFrontstageInfo {
149
+ /** Id used for frontstage identification. */
150
+ id?: string;
151
+ /** Title displayed at the top of the modal frontstage. */
149
152
  title: string;
153
+ /** Content of the modal frontstage. */
150
154
  content: React.ReactNode;
155
+ /** Content displayed in the upper right of the modal frontstage. */
151
156
  appBarRight?: React.ReactNode;
152
157
  /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so
153
158
  * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkFrontstages.d.ts","sourceRoot":"","sources":["../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrameworkFrontstages.d.ts","sourceRoot":"","sources":["../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkFrontstages.js","sourceRoot":"","sources":["../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport type { ToolInformation } from \"../toolsettings/ToolInformation.js\";\nimport type { TimeTracker } from \"../configurableui/TimeTracker.js\";\nimport { type ContentControlActivatedEvent } from \"../content/ContentControl.js\";\nimport type { ContentLayoutActivatedEvent } from \"../content/ContentLayout.js\";\nimport type { FrontstageDef } from \"../frontstage/FrontstageDef.js\";\nimport type { FrontstageProvider } from \"../frontstage/FrontstageProvider.js\";\nimport type { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl.js\";\nimport type {\n PanelPinnedChangedEventArgs,\n PanelStateChangedEvent,\n} from \"../stagepanels/StagePanelDef.js\";\nimport type {\n WidgetDef,\n WidgetStateChangedEvent,\n} from \"../widgets/WidgetDef.js\";\nimport type { WidgetState } from \"../widgets/WidgetState.js\";\nimport type { Frontstage } from \"../frontstage/Frontstage.js\";\nimport { FrameworkContent } from \"./FrameworkContent.js\";\nimport type { ModalFrontstageButton } from \"../frontstage/ModalFrontstageButton.js\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager.js\";\n\n/** Frontstage Activated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageActivatedEventArgs {\n deactivatedFrontstageDef?: FrontstageDef;\n activatedFrontstageDef: FrontstageDef;\n}\n\n/** Frontstage Activated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> {}\n\n/** Frontstage Deactivated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageDeactivatedEventArgs {\n /** Frontstage being deactivated */\n deactivatedFrontstageDef: FrontstageDef;\n /** Frontstage being activated */\n activatedFrontstageDef?: FrontstageDef;\n\n /** Total time spent in frontstage */\n totalTime: number;\n /** Engagement time spent in frontstage */\n engagementTime: number;\n /** Idle time spent in frontstage */\n idleTime: number;\n}\n\n/** Frontstage Deactivated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> {}\n\n/** Frontstage Ready Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageReadyEventArgs {\n frontstageDef: FrontstageDef;\n}\n\n/** Frontstage Ready Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> {}\n\n/** Modal Frontstage Changed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageChangedEventArgs {\n modalFrontstageCount: number;\n}\n\n/** Modal Frontstage Stack Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> {}\n\n/** Modal Frontstage Closed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageClosedEventArgs {\n /** Modal Frontstage being closed */\n modalFrontstage: ModalFrontstageInfo;\n\n /** Total time spent in frontstage */\n totalTime: number;\n /** Engagement time spent in frontstage */\n engagementTime: number;\n /** Idle time spent in frontstage */\n idleTime: number;\n}\n\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\n * any unsaved data.\n * @alpha\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> {}\n\n/** Modal Frontstage RequestedClose Event Args interface.\n * @alpha\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageRequestedCloseEventArgs {\n /** Modal Frontstage that is to be closed */\n modalFrontstage: ModalFrontstageInfo;\n /** Function to call to close the stage */\n stageCloseFunc: () => void;\n}\n\n/** Modal Frontstage Closed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> {}\n\n/** Tool Activated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ToolActivatedEventArgs {\n toolId: string;\n}\n\n/** Tool Activated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> {}\n\n/** Tool Icon Changed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ToolIconChangedEventArgs {\n iconSpec: string;\n}\n\n/** Tool Icon Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> {}\n\n/** Modal Frontstage information interface.\n * @public\n */\nexport interface ModalFrontstageInfo {\n title: string;\n content: React.ReactNode;\n appBarRight?: React.ReactNode;\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\n * @alpha */\n notifyCloseRequest?: boolean;\n /** If specified overrides the default back button. See {@link ModalFrontstageButton}. */\n backButton?: React.ReactNode;\n}\n\n/** Modal Frontstage array item interface.\n * @internal\n */\nexport interface ModalFrontstageItem {\n modalFrontstage: ModalFrontstageInfo;\n timeTracker: TimeTracker;\n}\n\n/** [[UiFramework.frontstages]] interface\n * @public\n */\nexport interface FrameworkFrontstages {\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\n readonly isLoading: boolean;\n\n /** Get Frontstage Deactivated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageDeactivatedEvent: FrontstageDeactivatedEvent;\n\n /** Get Frontstage Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageActivatedEvent: FrontstageActivatedEvent;\n\n /** Get Frontstage Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageReadyEvent: FrontstageReadyEvent;\n\n /** Get Modal Frontstage Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onModalFrontstageChangedEvent: ModalFrontstageChangedEvent;\n\n /** Get Modal Frontstage Closed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onModalFrontstageClosedEvent: ModalFrontstageClosedEvent;\n\n /** Get Modal Frontstage Requested Closed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onCloseModalFrontstageRequestedEvent: ModalFrontstageRequestedCloseEvent;\n\n /** Get Tool Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolActivatedEvent: ToolActivatedEvent;\n\n /** Get ToolSetting Reload event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolSettingsReloadEvent: UiEvent<void>;\n\n /** Get Tool Icon Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolIconChangedEvent: ToolIconChangedEvent;\n\n /** Get Content Layout Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onContentLayoutActivatedEvent: ContentLayoutActivatedEvent;\n\n /** Get Content Control Activated event.\n * @deprecated in 4.16.0. Use {@link FrameworkContent.onActiveContentChangedEvent} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onContentControlActivatedEvent: ContentControlActivatedEvent;\n\n /** Get Navigation Aid Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onNavigationAidActivatedEvent: NavigationAidActivatedEvent;\n\n /** Get Widget State Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onWidgetStateChangedEvent: WidgetStateChangedEvent;\n\n /** Get panel state changed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onPanelStateChangedEvent: PanelStateChangedEvent;\n\n /** Get panel pinned changed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onPanelPinnedChangedEvent: UiEvent<PanelPinnedChangedEventArgs>;\n\n /** Clears the Frontstage map.\n */\n clearFrontstageDefs(): void;\n\n /** Clears the Frontstage Providers and the defs that may have been created from them.\n * @deprecated in 4.17.0. Use {@link FrameworkFrontstages.clearFrontstages} instead.\n */\n clearFrontstageProviders(): void;\n\n /** Clears the Frontstages. */\n clearFrontstages(): void;\n\n /** Adds a frontstage provider.\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\n * @deprecated in 4.15.0. Use {@link FrameworkFrontstages.addFrontstage} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n addFrontstageProvider(frontstageProvider: FrontstageProvider): void;\n\n /** Adds a frontstage. */\n addFrontstage(frontstage: Frontstage): void;\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\n * returned.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n getFrontstageDef(id?: string): Promise<FrontstageDef | undefined>;\n\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\n * @return Active FrontstageDef, or undefined if one is not active.\n */\n readonly activeFrontstageDef: FrontstageDef | undefined;\n\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\n * @return Id of the active FrontstageDef, or blank if one is not active.\n */\n readonly activeFrontstageId: string;\n\n hasFrontstage(frontstageId: string): boolean;\n\n /** Sets the active FrontstageDef give the stageId.\n * @param frontstageId Id of the Frontstage to set active.\n * @returns A Promise that is fulfilled when the Frontstage is ready.\n */\n setActiveFrontstage(frontstageId: string): Promise<void>;\n\n /** Sets the active FrontstageDef.\n * @param frontstageDef FrontstageDef to set active.\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\n */\n setActiveFrontstageDef(\n frontstageDef: FrontstageDef | undefined\n ): Promise<void>;\n\n /** Deactivates the active FrontstageDef.\n */\n deactivateFrontstageDef(): Promise<void>;\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n readonly activeToolId: string;\n\n /** Sets the active tool id */\n setActiveToolId(toolId: string): void;\n\n /** Sets the active tool */\n setActiveTool(tool: Tool): void;\n\n /** Gets the active tool's [[ToolInformation]].\n * @deprecated in 4.16.0. Uses a deprecated class {@link ToolInformation}.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly activeToolInformation: ToolInformation | undefined;\n\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\n * @param modalFrontstage Information about the modal Frontstage\n */\n openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void;\n\n /** Closes the top-most modal Frontstage.\n */\n closeModalFrontstage(): void;\n\n /** Updates the top-most modal Frontstage.\n */\n updateModalFrontstage(): void;\n\n /** Gets the top-most modal Frontstage.\n * @returns Top-most modal Frontstage, or undefined if there is none.\n */\n readonly activeModalFrontstage: ModalFrontstageInfo | undefined;\n\n /** Gets the number of modal Frontstages.\n * @returns Modal Frontstage count\n */\n readonly modalFrontstageCount: number;\n\n /** Sets the active Navigation Aid via its Id.\n * @param navigationAidId Id of the Navigation Aid to set as active\n * @param iModelConnection IModelConnection to query for view data\n */\n setActiveNavigationAid(\n navigationAidId: string,\n iModelConnection: IModelConnection\n ): void;\n\n /** Sets the state of the widget with the given id\n * @param widgetId Id of the Widget for which to set the state\n * @param state New state of the widget\n * @returns true if the widget state was set successfully, or false if not.\n */\n setWidgetState(widgetId: string, state: WidgetState): boolean;\n\n /** Finds a widget with the given id in the active frontstage\n * @param widgetId Id of the Widget to find\n * @returns The WidgetDef with the given id, or undefined if not found.\n */\n findWidget(widgetId: string): WidgetDef | undefined;\n\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\n * @param nestedFrontstage Information about the nested Frontstage\n */\n openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void>;\n\n /** Closes the top-most nested Frontstage.\n */\n closeNestedFrontstage(): Promise<void>;\n\n /** Gets the top-most nested Frontstage.\n * @returns Top-most nested Frontstage, or undefined if there is none.\n */\n readonly activeNestedFrontstage: FrontstageDef | undefined;\n\n /** Gets the number of nested Frontstages.\n * @returns Nested Frontstage count\n */\n readonly nestedFrontstageCount: number;\n}\n\n/** @alpha */\nexport class DefaultFrameworkFrontstages implements FrameworkFrontstages {\n public get isLoading() {\n return InternalFrontstageManager.isLoading;\n }\n public get onFrontstageDeactivatedEvent() {\n return InternalFrontstageManager.onFrontstageDeactivatedEvent;\n }\n public get onFrontstageActivatedEvent() {\n return InternalFrontstageManager.onFrontstageActivatedEvent;\n }\n public get onFrontstageReadyEvent() {\n return InternalFrontstageManager.onFrontstageReadyEvent;\n }\n public get onModalFrontstageChangedEvent() {\n return InternalFrontstageManager.onModalFrontstageChangedEvent;\n }\n public get onModalFrontstageClosedEvent() {\n return InternalFrontstageManager.onModalFrontstageClosedEvent;\n }\n public get onCloseModalFrontstageRequestedEvent() {\n return InternalFrontstageManager.onCloseModalFrontstageRequestedEvent;\n }\n public get onToolActivatedEvent() {\n return InternalFrontstageManager.onToolActivatedEvent;\n }\n public get onToolSettingsReloadEvent() {\n return InternalFrontstageManager.onToolSettingsReloadEvent;\n }\n public get onToolIconChangedEvent() {\n return InternalFrontstageManager.onToolIconChangedEvent;\n }\n public get onContentLayoutActivatedEvent() {\n return InternalFrontstageManager.onContentLayoutActivatedEvent;\n }\n public get onContentControlActivatedEvent() {\n return InternalFrontstageManager.onContentControlActivatedEvent;\n }\n public get onNavigationAidActivatedEvent() {\n return InternalFrontstageManager.onNavigationAidActivatedEvent;\n }\n public get onWidgetStateChangedEvent() {\n return InternalFrontstageManager.onWidgetStateChangedEvent;\n }\n public get onPanelStateChangedEvent() {\n return InternalFrontstageManager.onPanelStateChangedEvent;\n }\n public get onPanelPinnedChangedEvent() {\n return InternalFrontstageManager.onPanelPinnedChangedEvent;\n }\n public get activeFrontstageDef() {\n return InternalFrontstageManager.activeFrontstageDef;\n }\n public get activeFrontstageId() {\n return InternalFrontstageManager.activeFrontstageId;\n }\n public get activeToolId() {\n return InternalFrontstageManager.activeToolId;\n }\n public get activeToolInformation() {\n return InternalFrontstageManager.activeToolInformation;\n }\n public get activeModalFrontstage() {\n return InternalFrontstageManager.activeModalFrontstage;\n }\n public get modalFrontstageCount() {\n return InternalFrontstageManager.modalFrontstageCount;\n }\n public get activeNestedFrontstage() {\n return InternalFrontstageManager.activeNestedFrontstage;\n }\n public get nestedFrontstageCount() {\n return InternalFrontstageManager.nestedFrontstageCount;\n }\n public clearFrontstageDefs(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstageDefs\"]>\n ) {\n return InternalFrontstageManager.clearFrontstageDefs(...args);\n }\n public clearFrontstageProviders(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstageProviders\"]>\n ) {\n return InternalFrontstageManager.clearFrontstageProviders(...args);\n }\n public clearFrontstages(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstages\"]>\n ) {\n return InternalFrontstageManager.clearFrontstages(...args);\n }\n public addFrontstageProvider(\n ...args: Parameters<FrameworkFrontstages[\"addFrontstageProvider\"]>\n ) {\n return InternalFrontstageManager.addFrontstageProvider(...args);\n }\n public addFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"addFrontstage\"]>\n ) {\n return InternalFrontstageManager.addFrontstage(...args);\n }\n public async getFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"getFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.getFrontstageDef(...args);\n }\n public hasFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"hasFrontstage\"]>\n ) {\n return InternalFrontstageManager.hasFrontstage(...args);\n }\n public async setActiveFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"setActiveFrontstage\"]>\n ) {\n return InternalFrontstageManager.setActiveFrontstage(...args);\n }\n public async setActiveFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"setActiveFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.setActiveFrontstageDef(...args);\n }\n public async deactivateFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"deactivateFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.deactivateFrontstageDef(...args);\n }\n public setActiveToolId(\n ...args: Parameters<FrameworkFrontstages[\"setActiveToolId\"]>\n ) {\n return InternalFrontstageManager.setActiveToolId(...args);\n }\n public setActiveTool(\n ...args: Parameters<FrameworkFrontstages[\"setActiveTool\"]>\n ) {\n return InternalFrontstageManager.setActiveTool(...args);\n }\n public openModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"openModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.openModalFrontstage(...args);\n }\n public closeModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"closeModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.closeModalFrontstage(...args);\n }\n public updateModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"updateModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.updateModalFrontstage(...args);\n }\n public setActiveNavigationAid(\n ...args: Parameters<FrameworkFrontstages[\"setActiveNavigationAid\"]>\n ) {\n return InternalFrontstageManager.setActiveNavigationAid(...args);\n }\n public setWidgetState(\n ...args: Parameters<FrameworkFrontstages[\"setWidgetState\"]>\n ) {\n return InternalFrontstageManager.setWidgetState(...args);\n }\n public findWidget(...args: Parameters<FrameworkFrontstages[\"findWidget\"]>) {\n return InternalFrontstageManager.findWidget(...args);\n }\n public async openNestedFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"openNestedFrontstage\"]>\n ) {\n return InternalFrontstageManager.openNestedFrontstage(...args);\n }\n public async closeNestedFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"closeNestedFrontstage\"]>\n ) {\n return InternalFrontstageManager.closeNestedFrontstage(...args);\n }\n}\n"]}
1
+ {"version":3,"file":"FrameworkFrontstages.js","sourceRoot":"","sources":["../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport type { ToolInformation } from \"../toolsettings/ToolInformation.js\";\nimport type { TimeTracker } from \"../configurableui/TimeTracker.js\";\nimport { type ContentControlActivatedEvent } from \"../content/ContentControl.js\";\nimport type { ContentLayoutActivatedEvent } from \"../content/ContentLayout.js\";\nimport type { FrontstageDef } from \"../frontstage/FrontstageDef.js\";\nimport type { FrontstageProvider } from \"../frontstage/FrontstageProvider.js\";\nimport type { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl.js\";\nimport type {\n PanelPinnedChangedEventArgs,\n PanelStateChangedEvent,\n} from \"../stagepanels/StagePanelDef.js\";\nimport type {\n WidgetDef,\n WidgetStateChangedEvent,\n} from \"../widgets/WidgetDef.js\";\nimport type { WidgetState } from \"../widgets/WidgetState.js\";\nimport type { Frontstage } from \"../frontstage/Frontstage.js\";\nimport { FrameworkContent } from \"./FrameworkContent.js\";\nimport type { ModalFrontstageButton } from \"../frontstage/ModalFrontstageButton.js\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager.js\";\n\n/** Frontstage Activated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageActivatedEventArgs {\n deactivatedFrontstageDef?: FrontstageDef;\n activatedFrontstageDef: FrontstageDef;\n}\n\n/** Frontstage Activated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> {}\n\n/** Frontstage Deactivated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageDeactivatedEventArgs {\n /** Frontstage being deactivated */\n deactivatedFrontstageDef: FrontstageDef;\n /** Frontstage being activated */\n activatedFrontstageDef?: FrontstageDef;\n\n /** Total time spent in frontstage */\n totalTime: number;\n /** Engagement time spent in frontstage */\n engagementTime: number;\n /** Idle time spent in frontstage */\n idleTime: number;\n}\n\n/** Frontstage Deactivated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> {}\n\n/** Frontstage Ready Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageReadyEventArgs {\n frontstageDef: FrontstageDef;\n}\n\n/** Frontstage Ready Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> {}\n\n/** Modal Frontstage Changed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageChangedEventArgs {\n modalFrontstageCount: number;\n}\n\n/** Modal Frontstage Stack Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> {}\n\n/** Modal Frontstage Closed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageClosedEventArgs {\n /** Modal Frontstage being closed */\n modalFrontstage: ModalFrontstageInfo;\n\n /** Total time spent in frontstage */\n totalTime: number;\n /** Engagement time spent in frontstage */\n engagementTime: number;\n /** Idle time spent in frontstage */\n idleTime: number;\n}\n\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\n * any unsaved data.\n * @alpha\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> {}\n\n/** Modal Frontstage RequestedClose Event Args interface.\n * @alpha\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageRequestedCloseEventArgs {\n /** Modal Frontstage that is to be closed */\n modalFrontstage: ModalFrontstageInfo;\n /** Function to call to close the stage */\n stageCloseFunc: () => void;\n}\n\n/** Modal Frontstage Closed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> {}\n\n/** Tool Activated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ToolActivatedEventArgs {\n toolId: string;\n}\n\n/** Tool Activated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> {}\n\n/** Tool Icon Changed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ToolIconChangedEventArgs {\n iconSpec: string;\n}\n\n/** Tool Icon Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> {}\n\n/** Modal Frontstage information interface.\n * @public\n */\nexport interface ModalFrontstageInfo {\n /** Id used for frontstage identification. */\n id?: string;\n /** Title displayed at the top of the modal frontstage. */\n title: string;\n /** Content of the modal frontstage. */\n content: React.ReactNode;\n /** Content displayed in the upper right of the modal frontstage. */\n appBarRight?: React.ReactNode;\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\n * @alpha */\n notifyCloseRequest?: boolean;\n /** If specified overrides the default back button. See {@link ModalFrontstageButton}. */\n backButton?: React.ReactNode;\n}\n\n/** Modal Frontstage array item interface.\n * @internal\n */\nexport interface ModalFrontstageItem {\n modalFrontstage: ModalFrontstageInfo;\n timeTracker: TimeTracker;\n}\n\n/** [[UiFramework.frontstages]] interface\n * @public\n */\nexport interface FrameworkFrontstages {\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\n readonly isLoading: boolean;\n\n /** Get Frontstage Deactivated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageDeactivatedEvent: FrontstageDeactivatedEvent;\n\n /** Get Frontstage Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageActivatedEvent: FrontstageActivatedEvent;\n\n /** Get Frontstage Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageReadyEvent: FrontstageReadyEvent;\n\n /** Get Modal Frontstage Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onModalFrontstageChangedEvent: ModalFrontstageChangedEvent;\n\n /** Get Modal Frontstage Closed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onModalFrontstageClosedEvent: ModalFrontstageClosedEvent;\n\n /** Get Modal Frontstage Requested Closed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onCloseModalFrontstageRequestedEvent: ModalFrontstageRequestedCloseEvent;\n\n /** Get Tool Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolActivatedEvent: ToolActivatedEvent;\n\n /** Get ToolSetting Reload event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolSettingsReloadEvent: UiEvent<void>;\n\n /** Get Tool Icon Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolIconChangedEvent: ToolIconChangedEvent;\n\n /** Get Content Layout Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onContentLayoutActivatedEvent: ContentLayoutActivatedEvent;\n\n /** Get Content Control Activated event.\n * @deprecated in 4.16.0. Use {@link FrameworkContent.onActiveContentChangedEvent} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onContentControlActivatedEvent: ContentControlActivatedEvent;\n\n /** Get Navigation Aid Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onNavigationAidActivatedEvent: NavigationAidActivatedEvent;\n\n /** Get Widget State Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onWidgetStateChangedEvent: WidgetStateChangedEvent;\n\n /** Get panel state changed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onPanelStateChangedEvent: PanelStateChangedEvent;\n\n /** Get panel pinned changed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onPanelPinnedChangedEvent: UiEvent<PanelPinnedChangedEventArgs>;\n\n /** Clears the Frontstage map.\n */\n clearFrontstageDefs(): void;\n\n /** Clears the Frontstage Providers and the defs that may have been created from them.\n * @deprecated in 4.17.0. Use {@link FrameworkFrontstages.clearFrontstages} instead.\n */\n clearFrontstageProviders(): void;\n\n /** Clears the Frontstages. */\n clearFrontstages(): void;\n\n /** Adds a frontstage provider.\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\n * @deprecated in 4.15.0. Use {@link FrameworkFrontstages.addFrontstage} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n addFrontstageProvider(frontstageProvider: FrontstageProvider): void;\n\n /** Adds a frontstage. */\n addFrontstage(frontstage: Frontstage): void;\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\n * returned.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n getFrontstageDef(id?: string): Promise<FrontstageDef | undefined>;\n\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\n * @return Active FrontstageDef, or undefined if one is not active.\n */\n readonly activeFrontstageDef: FrontstageDef | undefined;\n\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\n * @return Id of the active FrontstageDef, or blank if one is not active.\n */\n readonly activeFrontstageId: string;\n\n hasFrontstage(frontstageId: string): boolean;\n\n /** Sets the active FrontstageDef give the stageId.\n * @param frontstageId Id of the Frontstage to set active.\n * @returns A Promise that is fulfilled when the Frontstage is ready.\n */\n setActiveFrontstage(frontstageId: string): Promise<void>;\n\n /** Sets the active FrontstageDef.\n * @param frontstageDef FrontstageDef to set active.\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\n */\n setActiveFrontstageDef(\n frontstageDef: FrontstageDef | undefined\n ): Promise<void>;\n\n /** Deactivates the active FrontstageDef.\n */\n deactivateFrontstageDef(): Promise<void>;\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n readonly activeToolId: string;\n\n /** Sets the active tool id */\n setActiveToolId(toolId: string): void;\n\n /** Sets the active tool */\n setActiveTool(tool: Tool): void;\n\n /** Gets the active tool's [[ToolInformation]].\n * @deprecated in 4.16.0. Uses a deprecated class {@link ToolInformation}.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly activeToolInformation: ToolInformation | undefined;\n\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\n * @param modalFrontstage Information about the modal Frontstage\n */\n openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void;\n\n /** Closes the top-most modal Frontstage.\n */\n closeModalFrontstage(): void;\n\n /** Updates the top-most modal Frontstage.\n */\n updateModalFrontstage(): void;\n\n /** Gets the top-most modal Frontstage.\n * @returns Top-most modal Frontstage, or undefined if there is none.\n */\n readonly activeModalFrontstage: ModalFrontstageInfo | undefined;\n\n /** Gets the number of modal Frontstages.\n * @returns Modal Frontstage count\n */\n readonly modalFrontstageCount: number;\n\n /** Sets the active Navigation Aid via its Id.\n * @param navigationAidId Id of the Navigation Aid to set as active\n * @param iModelConnection IModelConnection to query for view data\n */\n setActiveNavigationAid(\n navigationAidId: string,\n iModelConnection: IModelConnection\n ): void;\n\n /** Sets the state of the widget with the given id\n * @param widgetId Id of the Widget for which to set the state\n * @param state New state of the widget\n * @returns true if the widget state was set successfully, or false if not.\n */\n setWidgetState(widgetId: string, state: WidgetState): boolean;\n\n /** Finds a widget with the given id in the active frontstage\n * @param widgetId Id of the Widget to find\n * @returns The WidgetDef with the given id, or undefined if not found.\n */\n findWidget(widgetId: string): WidgetDef | undefined;\n\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\n * @param nestedFrontstage Information about the nested Frontstage\n */\n openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void>;\n\n /** Closes the top-most nested Frontstage.\n */\n closeNestedFrontstage(): Promise<void>;\n\n /** Gets the top-most nested Frontstage.\n * @returns Top-most nested Frontstage, or undefined if there is none.\n */\n readonly activeNestedFrontstage: FrontstageDef | undefined;\n\n /** Gets the number of nested Frontstages.\n * @returns Nested Frontstage count\n */\n readonly nestedFrontstageCount: number;\n}\n\n/** @alpha */\nexport class DefaultFrameworkFrontstages implements FrameworkFrontstages {\n public get isLoading() {\n return InternalFrontstageManager.isLoading;\n }\n public get onFrontstageDeactivatedEvent() {\n return InternalFrontstageManager.onFrontstageDeactivatedEvent;\n }\n public get onFrontstageActivatedEvent() {\n return InternalFrontstageManager.onFrontstageActivatedEvent;\n }\n public get onFrontstageReadyEvent() {\n return InternalFrontstageManager.onFrontstageReadyEvent;\n }\n public get onModalFrontstageChangedEvent() {\n return InternalFrontstageManager.onModalFrontstageChangedEvent;\n }\n public get onModalFrontstageClosedEvent() {\n return InternalFrontstageManager.onModalFrontstageClosedEvent;\n }\n public get onCloseModalFrontstageRequestedEvent() {\n return InternalFrontstageManager.onCloseModalFrontstageRequestedEvent;\n }\n public get onToolActivatedEvent() {\n return InternalFrontstageManager.onToolActivatedEvent;\n }\n public get onToolSettingsReloadEvent() {\n return InternalFrontstageManager.onToolSettingsReloadEvent;\n }\n public get onToolIconChangedEvent() {\n return InternalFrontstageManager.onToolIconChangedEvent;\n }\n public get onContentLayoutActivatedEvent() {\n return InternalFrontstageManager.onContentLayoutActivatedEvent;\n }\n public get onContentControlActivatedEvent() {\n return InternalFrontstageManager.onContentControlActivatedEvent;\n }\n public get onNavigationAidActivatedEvent() {\n return InternalFrontstageManager.onNavigationAidActivatedEvent;\n }\n public get onWidgetStateChangedEvent() {\n return InternalFrontstageManager.onWidgetStateChangedEvent;\n }\n public get onPanelStateChangedEvent() {\n return InternalFrontstageManager.onPanelStateChangedEvent;\n }\n public get onPanelPinnedChangedEvent() {\n return InternalFrontstageManager.onPanelPinnedChangedEvent;\n }\n public get activeFrontstageDef() {\n return InternalFrontstageManager.activeFrontstageDef;\n }\n public get activeFrontstageId() {\n return InternalFrontstageManager.activeFrontstageId;\n }\n public get activeToolId() {\n return InternalFrontstageManager.activeToolId;\n }\n public get activeToolInformation() {\n return InternalFrontstageManager.activeToolInformation;\n }\n public get activeModalFrontstage() {\n return InternalFrontstageManager.activeModalFrontstage;\n }\n public get modalFrontstageCount() {\n return InternalFrontstageManager.modalFrontstageCount;\n }\n public get activeNestedFrontstage() {\n return InternalFrontstageManager.activeNestedFrontstage;\n }\n public get nestedFrontstageCount() {\n return InternalFrontstageManager.nestedFrontstageCount;\n }\n public clearFrontstageDefs(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstageDefs\"]>\n ) {\n return InternalFrontstageManager.clearFrontstageDefs(...args);\n }\n public clearFrontstageProviders(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstageProviders\"]>\n ) {\n return InternalFrontstageManager.clearFrontstageProviders(...args);\n }\n public clearFrontstages(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstages\"]>\n ) {\n return InternalFrontstageManager.clearFrontstages(...args);\n }\n public addFrontstageProvider(\n ...args: Parameters<FrameworkFrontstages[\"addFrontstageProvider\"]>\n ) {\n return InternalFrontstageManager.addFrontstageProvider(...args);\n }\n public addFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"addFrontstage\"]>\n ) {\n return InternalFrontstageManager.addFrontstage(...args);\n }\n public async getFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"getFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.getFrontstageDef(...args);\n }\n public hasFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"hasFrontstage\"]>\n ) {\n return InternalFrontstageManager.hasFrontstage(...args);\n }\n public async setActiveFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"setActiveFrontstage\"]>\n ) {\n return InternalFrontstageManager.setActiveFrontstage(...args);\n }\n public async setActiveFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"setActiveFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.setActiveFrontstageDef(...args);\n }\n public async deactivateFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"deactivateFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.deactivateFrontstageDef(...args);\n }\n public setActiveToolId(\n ...args: Parameters<FrameworkFrontstages[\"setActiveToolId\"]>\n ) {\n return InternalFrontstageManager.setActiveToolId(...args);\n }\n public setActiveTool(\n ...args: Parameters<FrameworkFrontstages[\"setActiveTool\"]>\n ) {\n return InternalFrontstageManager.setActiveTool(...args);\n }\n public openModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"openModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.openModalFrontstage(...args);\n }\n public closeModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"closeModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.closeModalFrontstage(...args);\n }\n public updateModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"updateModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.updateModalFrontstage(...args);\n }\n public setActiveNavigationAid(\n ...args: Parameters<FrameworkFrontstages[\"setActiveNavigationAid\"]>\n ) {\n return InternalFrontstageManager.setActiveNavigationAid(...args);\n }\n public setWidgetState(\n ...args: Parameters<FrameworkFrontstages[\"setWidgetState\"]>\n ) {\n return InternalFrontstageManager.setWidgetState(...args);\n }\n public findWidget(...args: Parameters<FrameworkFrontstages[\"findWidget\"]>) {\n return InternalFrontstageManager.findWidget(...args);\n }\n public async openNestedFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"openNestedFrontstage\"]>\n ) {\n return InternalFrontstageManager.openNestedFrontstage(...args);\n }\n public async closeNestedFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"closeNestedFrontstage\"]>\n ) {\n return InternalFrontstageManager.closeNestedFrontstage(...args);\n }\n}\n"]}
@@ -3,5 +3,5 @@
3
3
  */
4
4
  import * as React from "react";
5
5
  /** @internal */
6
- export declare function useLatestRef<T>(value: T): React.MutableRefObject<T>;
6
+ export declare function useLatestRef<T>(value: T): React.RefObject<T>;
7
7
  //# sourceMappingURL=useLatestRef.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLatestRef.d.ts","sourceRoot":"","sources":["../../../src/appui-react/hooks/useLatestRef.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,6BAQvC"}
1
+ {"version":3,"file":"useLatestRef.d.ts","sourceRoot":"","sources":["../../../src/appui-react/hooks/useLatestRef.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,sBAQvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcut.d.ts","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcut.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAgDxE;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAC,CAAsB;IACpC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,QAAQ,CAAC,CAAa;IAE9B,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAkB;gBAE3B,KAAK,EAAE,qBAAqB;IA2CxC,uCAAuC;IACvC,IAAW,EAAE,IAAI,MAAM,CAEtB;IAED,qCAAqC;IACrC,IAAW,iBAAiB,IAAI,yBAAyB,CAExD;IAED,oEAAoE;IAC7D,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIhE,wDAAwD;IACxD,IAAW,SAAS,IAAI,MAAM,CAQ7B;IAED,wEAAwE;IACxE,IAAW,IAAI,IAAI,mBAAmB,GAAG,SAAS,CAEjD;IAED,uFAAuF;IAChF,UAAU,IAAI,IAAI;IAWzB,4BAA4B;IAC5B,IAAW,GAAG,IAAI,MAAM,CAEvB;IACD,yCAAyC;IACzC,IAAW,gBAAgB,IAAI,OAAO,CAErC;IACD,0CAA0C;IAC1C,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IACD,2CAA2C;IAC3C,IAAW,kBAAkB,IAAI,OAAO,CAEvC;IACD,2CAA2C;IAC3C,IAAW,aAAa,IAAI,OAAO,CAElC;IACD,0CAA0C;IAC1C,IAAW,YAAY,IAAI,OAAO,CAEjC;CACF;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,OAAO,CAGX;IACJ,OAAO,CAAC,SAAS,CAAqD;IAEtE,oFAAoF;IAC7E,WAAW,CAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,gBAAgB,GAC3B,gBAAgB,GAAG,SAAS;IAqB/B,4DAA4D;IACrD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/D,2EAA2E;IACpE,6BAA6B,IAAI,OAAO;IAI/C,yDAAyD;IAClD,SAAS,IAAI,IAAI;IAKjB,6BAA6B,IAAI,gBAAgB,EAAE;IAI1D,4FAA4F;WAC9E,iBAAiB,CAC7B,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,OAAO,EACzB,iBAAiB,EAAE,OAAO,EAC1B,kBAAkB,EAAE,OAAO,GAC1B,MAAM;IAUT,mEAAmE;IAC5D,iBAAiB;CASzB"}
1
+ {"version":3,"file":"KeyboardShortcut.d.ts","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcut.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAgDxE;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAC,CAAsB;IACpC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,QAAQ,CAAC,CAAa;IAE9B,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAkB;gBAE3B,KAAK,EAAE,qBAAqB;IA2CxC,uCAAuC;IACvC,IAAW,EAAE,IAAI,MAAM,CAEtB;IAED,qCAAqC;IACrC,IAAW,iBAAiB,IAAI,yBAAyB,CAExD;IAED,oEAAoE;IAC7D,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIhE,wDAAwD;IACxD,IAAW,SAAS,IAAI,MAAM,CAQ7B;IAED,wEAAwE;IACxE,IAAW,IAAI,IAAI,mBAAmB,GAAG,SAAS,CAEjD;IAED,uFAAuF;IAChF,UAAU,IAAI,IAAI;IAWzB,4BAA4B;IAC5B,IAAW,GAAG,IAAI,MAAM,CAEvB;IACD,yCAAyC;IACzC,IAAW,gBAAgB,IAAI,OAAO,CAErC;IACD,0CAA0C;IAC1C,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IACD,2CAA2C;IAC3C,IAAW,kBAAkB,IAAI,OAAO,CAEvC;IACD,2CAA2C;IAC3C,IAAW,aAAa,IAAI,OAAO,CAElC;IACD,0CAA0C;IAC1C,IAAW,YAAY,IAAI,OAAO,CAEjC;CACF;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,OAAO,CAGX;IACJ,OAAO,CAAC,SAAS,CAAqD;IAEtE,oFAAoF;IAC7E,WAAW,CAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,gBAAgB,GAC3B,gBAAgB,GAAG,SAAS;IAqB/B,4DAA4D;IACrD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/D,2EAA2E;IACpE,6BAA6B,IAAI,OAAO;IAI/C,yDAAyD;IAClD,SAAS,IAAI,IAAI;IAKjB,6BAA6B,IAAI,gBAAgB,EAAE;IAI1D,4FAA4F;WAC9E,iBAAiB,CAC7B,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,OAAO,EACzB,iBAAiB,EAAE,OAAO,EAC1B,kBAAkB,EAAE,OAAO,GAC1B,MAAM;IAUT,mEAAmE;IAC5D,iBAAiB;CAQzB"}
@@ -222,11 +222,10 @@ export class KeyboardShortcutContainer {
222
222
  }
223
223
  /** Displays a menu for the Keyboard Shortcuts in this container */
224
224
  showShortcutsMenu() {
225
- const offset = 8;
226
225
  KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({
227
226
  menuVisible: true,
228
- menuX: UiFramework.keyboardShortcuts.cursorX - offset,
229
- menuY: UiFramework.keyboardShortcuts.cursorY - offset,
227
+ menuX: UiFramework.keyboardShortcuts.cursorX,
228
+ menuY: UiFramework.keyboardShortcuts.cursorY,
230
229
  shortcuts: this.getAvailableKeyboardShortcuts(),
231
230
  });
232
231
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcut.js","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcut.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAOjE,qDAAqD;AAErD,IAAK,WAaJ;AAbD,WAAK,WAAW;IACd,wBAAS,CAAA;IACT,wBAAS,CAAA;IACT,wBAAS,CAAA;IACT,wBAAS,CAAA;IACT,wBAAS,CAAA;IACT,wBAAS,CAAA;IACT,wBAAS,CAAA;IACT,wBAAS,CAAA;IACT,wBAAS,CAAA;IACT,0BAAW,CAAA;IACX,0BAAW,CAAA;IACX,0BAAW,CAAA;AACb,CAAC,EAbI,WAAW,KAAX,WAAW,QAaf;AAED,IAAK,UAuBJ;AAvBD,WAAK,UAAU;IACb,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;IACrB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,yBAAW,CAAA;IACX,qCAAuB,CAAA;IACvB,uCAAyB,CAAA;IACzB,iCAAmB,CAAA;IACnB,qCAAuB,CAAA;IACvB,6BAAe,CAAA;IACf,8BAAgB,CAAA;IAChB,yBAAW,CAAA;IACX,qCAAuB,CAAA;IACvB,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;IACrB,mCAAqB,CAAA;IACrB,yBAAW,CAAA;IACX,iCAAmB,CAAA;AACrB,CAAC,EAvBI,UAAU,KAAV,UAAU,QAuBd;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAY/C,YAAY,KAA4B;QACtC,KAAK,CAAC,KAAK,CAAC,CAAC;QAPP,sBAAiB,GAAY,KAAK,CAAC;QACnC,uBAAkB,GAAY,KAAK,CAAC;QACpC,wBAAmB,GAAY,KAAK,CAAC;QACrC,mBAAc,GAAY,KAAK,CAAC;QAChC,kBAAa,GAAY,KAAK,CAAC;QAKrC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;QAEtB,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU;YAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAEvD,IAAI,CAAC,UAAU,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAElD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YAExB,gDAAgD;YAChD,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC1C,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACvE,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAiC,EAAE,EAAE;gBAC5D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,OAAO,CACf,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAC9C,kEAAkE,KAAK,CAAC,GAAG,QAAQ,CACpF,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS;YACtC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAClD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS;YACvC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACpD,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS;YACxC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,kBAAkB,CAAC;QACtD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,0CAAG,KAAK,CAAC,QAAQ,CAAI,CAAC;IAC1E,CAAC;IAED,uCAAuC;IACvC,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,qCAAqC;IACrC,IAAW,iBAAiB;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,oEAAoE;IAC7D,WAAW,CAAC,MAAc;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,wDAAwD;IACxD,IAAW,SAAS;QAClB,MAAM,SAAS,GAAG,yBAAyB,CAAC,iBAAiB,CAC3D,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,mBAAmB,CACzB,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wEAAwE;IACxE,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,uFAAuF;IAChF,UAAU;QACf,IAAI,IAAI,CAAC,UAAU,CAAC,6BAA6B,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;qBAChC,IAAI,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,yCAAyC;IACzC,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD,0CAA0C;IAC1C,IAAW,iBAAiB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IACD,2CAA2C;IAC3C,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IACD,2CAA2C;IAC3C,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,0CAA0C;IAC1C,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,yBAAyB;IAAtC;QACU,YAAO,GAAkC,IAAI,GAAG,EAGrD,CAAC;QACI,cAAS,GAAuB,IAAI,KAAK,EAAoB,CAAC;IAyExE,CAAC;IAvEC,oFAAoF;IAC7E,WAAW,CAChB,SAAiB,EACjB,UAA4B;QAE5B,IAAI,QAAsC,CAAC;QAE3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACvD,QAAQ,GAAG,UAAU,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAuB,EAAE,EAAE;gBACjE,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,QAAQ,GAAG,UAAU,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;YACnC,CAAC;QACH,CAAC;QAED,IAAI,QAAQ;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEpD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,4DAA4D;IACrD,OAAO,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,2EAA2E;IACpE,6BAA6B;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,yDAAyD;IAClD,SAAS;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,6BAA6B;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,4FAA4F;IACrF,MAAM,CAAC,iBAAiB,CAC7B,WAAmB,EACnB,gBAAyB,EACzB,iBAA0B,EAC1B,kBAA2B;QAE3B,IAAI,SAAS,GAAG,WAAW,CAAC;QAE5B,IAAI,gBAAgB;YAAE,SAAS,GAAG,OAAO,SAAS,EAAE,CAAC;QACrD,IAAI,kBAAkB;YAAE,SAAS,GAAG,SAAS,SAAS,EAAE,CAAC;QACzD,IAAI,iBAAiB;YAAE,SAAS,GAAG,QAAQ,SAAS,EAAE,CAAC;QAEvD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mEAAmE;IAC5D,iBAAiB;QACtB,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,oBAAoB,CAAC,2BAA2B,CAAC,IAAI,CAAC;YACpD,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,OAAO,GAAG,MAAM;YACrD,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,OAAO,GAAG,MAAM;YACrD,SAAS,EAAE,IAAI,CAAC,6BAA6B,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module KeyboardShortcut\n */\n\nimport * as React from \"react\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport type { ActionButtonItemDef } from \"../shared/ActionButtonItemDef.js\";\nimport { ItemDefBase } from \"../shared/ItemDefBase.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { KeyboardShortcutMenu } from \"./KeyboardShortcutMenu.js\";\nimport type { KeyboardShortcutProps } from \"./KeyboardShortcutProps.js\";\nimport type {\n FrameworkKeyboardShortcut,\n FrameworkKeyboardShortcutContainer,\n} from \"../framework/FrameworkKeyboardShortcuts.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nenum FunctionKey {\n F1 = \"F1\",\n F2 = \"F2\",\n F3 = \"F3\",\n F4 = \"F4\",\n F5 = \"F5\",\n F6 = \"F6\",\n F7 = \"F7\",\n F8 = \"F8\",\n F9 = \"F9\",\n F10 = \"F10\",\n F11 = \"F11\",\n F12 = \"F12\",\n}\n\nenum SpecialKey {\n Home = \"Home\",\n End = \"End\",\n PageUp = \"PageUp\",\n PageDown = \"PageDown\",\n Escape = \"Escape\",\n Delete = \"Delete\",\n Insert = \"Insert\",\n Tab = \"Tab\",\n ArrowLeft = \"ArrowLeft\",\n ArrowRight = \"ArrowRight\",\n ArrowUp = \"ArrowUp\",\n ArrowDown = \"ArrowDown\",\n Enter = \"Enter\",\n Return = \"Enter\", // eslint-disable-line @typescript-eslint/no-duplicate-enum-values\n Space = \" \",\n Backspace = \"Backspace\",\n Clear = \"Clear\",\n Divide = \"Divide\",\n Multiply = \"Multiply\",\n Subtract = \"Subtract\",\n Add = \"Add\",\n Decimal = \"Decimal\",\n}\n\n/** Keyboard Shortcut used to execute an action\n * @public\n * @deprecated in 4.15.0. Use {@link KeyboardShortcutProps} or {@link FrameworkKeyboardShortcut} instead.\n */\nexport class KeyboardShortcut extends ItemDefBase {\n private _key: string;\n private _item?: ActionButtonItemDef;\n private _shortcuts: KeyboardShortcutContainer;\n private _execute?: () => void;\n\n private _isAltKeyRequired: boolean = false;\n private _isCtrlKeyRequired: boolean = false;\n private _isShiftKeyRequired: boolean = false;\n private _isFunctionKey: boolean = false;\n private _isSpecialKey: boolean = false;\n\n constructor(props: KeyboardShortcutProps) {\n super(props);\n\n this._key = props.key;\n\n if (this._key in FunctionKey) this._isFunctionKey = true;\n if (this._key in SpecialKey) this._isSpecialKey = true;\n\n this._shortcuts = new KeyboardShortcutContainer();\n\n if (props.item) {\n this._item = props.item;\n\n // Copy over icon, label & tooltip from the item\n if (!this.iconSpec) this.iconSpec = this._item.iconSpec;\n if (!this.label) this.setLabel(this._item.label);\n if (!this.tooltip) this.setTooltip(this._item.tooltip);\n if (this.isDisabled === undefined)\n this.isDisabled = this._item.isDisabled;\n if (this.isHidden === undefined) this.isHidden = this._item.isHidden;\n } else if (props.execute) {\n this._execute = props.execute;\n } else if (props.shortcuts) {\n props.shortcuts.forEach((childProps: KeyboardShortcutProps) => {\n const shortcut = new KeyboardShortcut(childProps);\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\n });\n } else {\n throw new UiError(\n UiFramework.loggerCategory(\"KeyboardShortcut\"),\n `Either 'item', 'execute' or 'shortcuts' must be specified for '${props.key}' key.`\n );\n }\n\n if (props.isAltKeyRequired !== undefined)\n this._isAltKeyRequired = props.isAltKeyRequired;\n if (props.isCtrlKeyRequired !== undefined)\n this._isCtrlKeyRequired = props.isCtrlKeyRequired;\n if (props.isShiftKeyRequired !== undefined)\n this._isShiftKeyRequired = props.isShiftKeyRequired;\n if (props.iconNode !== undefined) this.iconSpec = <>{props.iconNode}</>;\n }\n\n /** Returns the id for this shortcut */\n public get id(): string {\n return this.keyMapKey;\n }\n\n /** Returns the shortcut container */\n public get shortcutContainer(): KeyboardShortcutContainer {\n return this._shortcuts;\n }\n\n /** Finds a shortcut with a given key in the shortcut's container */\n public getShortcut(mapKey: string): KeyboardShortcut | undefined {\n return this._shortcuts.findKey(mapKey);\n }\n\n /** Returns the shortcut's key map key used as the id */\n public get keyMapKey(): string {\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(\n this.key,\n this._isAltKeyRequired,\n this._isCtrlKeyRequired,\n this._isShiftKeyRequired\n );\n return keyMapKey;\n }\n\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\n public get item(): ActionButtonItemDef | undefined {\n return this._item;\n }\n\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\n public itemPicked(): void {\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\n this._shortcuts.showShortcutsMenu();\n } else {\n setTimeout(() => {\n if (this._item) this._item.execute();\n else if (this._execute) this._execute();\n });\n }\n }\n\n /** Gets the keyboard key */\n public get key(): string {\n return this._key;\n }\n /** Gets whether the Alt key required. */\n public get isAltKeyRequired(): boolean {\n return this._isAltKeyRequired;\n }\n /** Gets whether the Ctrl key required. */\n public get isCtrlKeyRequired(): boolean {\n return this._isCtrlKeyRequired;\n }\n /** Gets whether the Shift key required. */\n public get isShiftKeyRequired(): boolean {\n return this._isShiftKeyRequired;\n }\n /** Gets whether this is a Function key. */\n public get isFunctionKey(): boolean {\n return this._isFunctionKey;\n }\n /** Gets whether this is a Special key. */\n public get isSpecialKey(): boolean {\n return this._isSpecialKey;\n }\n}\n\n/** Keyboard Shortcut Container\n * @public\n * @deprecated in 4.15.0. Use {@link FrameworkKeyboardShortcutContainer} instead.\n */\nexport class KeyboardShortcutContainer {\n private _keyMap: Map<string, KeyboardShortcut> = new Map<\n string,\n KeyboardShortcut\n >();\n private _keyArray: KeyboardShortcut[] = new Array<KeyboardShortcut>();\n\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\n public registerKey(\n keyMapKey: string,\n inShortcut: KeyboardShortcut\n ): KeyboardShortcut | undefined {\n let shortcut: KeyboardShortcut | undefined;\n\n if ((shortcut = this.findKey(keyMapKey)) === undefined) {\n shortcut = inShortcut;\n this._keyArray.push(shortcut);\n } else {\n const index = this._keyArray.findIndex((value: KeyboardShortcut) => {\n return value.keyMapKey === keyMapKey;\n });\n if (index >= 0) {\n shortcut = inShortcut;\n this._keyArray[index] = shortcut;\n }\n }\n\n if (shortcut) this._keyMap.set(keyMapKey, shortcut);\n\n return shortcut;\n }\n\n /** Finds a Keyboard Shortcut associated with a given key */\n public findKey(keyMapKey: string): KeyboardShortcut | undefined {\n return this._keyMap.get(keyMapKey);\n }\n\n /** Determines if any Keyboard Shortcuts are available in this container */\n public areKeyboardShortcutsAvailable(): boolean {\n return this._keyMap.size !== 0;\n }\n\n /** Empties any Keyboard Shortcuts from this container */\n public emptyData(): void {\n this._keyMap.clear();\n this._keyArray.length = 0;\n }\n\n public getAvailableKeyboardShortcuts(): KeyboardShortcut[] {\n return this._keyArray.slice();\n }\n\n /** Generates a key used for storing and finding the Keyboard Shortcuts in this container */\n public static generateKeyMapKey(\n keyboardKey: string,\n isAltKeyRequired: boolean,\n isCtrlKeyRequired: boolean,\n isShiftKeyRequired: boolean\n ): string {\n let keyMapKey = keyboardKey;\n\n if (isAltKeyRequired) keyMapKey = `Alt+${keyMapKey}`;\n if (isShiftKeyRequired) keyMapKey = `Shift+${keyMapKey}`;\n if (isCtrlKeyRequired) keyMapKey = `Ctrl+${keyMapKey}`;\n\n return keyMapKey;\n }\n\n /** Displays a menu for the Keyboard Shortcuts in this container */\n public showShortcutsMenu() {\n const offset = 8;\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\n menuVisible: true,\n menuX: UiFramework.keyboardShortcuts.cursorX - offset,\n menuY: UiFramework.keyboardShortcuts.cursorY - offset,\n shortcuts: this.getAvailableKeyboardShortcuts(),\n });\n }\n}\n"]}
1
+ {"version":3,"file":"KeyboardShortcut.js","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcut.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module KeyboardShortcut\n */\n\nimport * as React from \"react\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport type { ActionButtonItemDef } from \"../shared/ActionButtonItemDef.js\";\nimport { ItemDefBase } from \"../shared/ItemDefBase.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { KeyboardShortcutMenu } from \"./KeyboardShortcutMenu.js\";\nimport type { KeyboardShortcutProps } from \"./KeyboardShortcutProps.js\";\nimport type {\n FrameworkKeyboardShortcut,\n FrameworkKeyboardShortcutContainer,\n} from \"../framework/FrameworkKeyboardShortcuts.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nenum FunctionKey {\n F1 = \"F1\",\n F2 = \"F2\",\n F3 = \"F3\",\n F4 = \"F4\",\n F5 = \"F5\",\n F6 = \"F6\",\n F7 = \"F7\",\n F8 = \"F8\",\n F9 = \"F9\",\n F10 = \"F10\",\n F11 = \"F11\",\n F12 = \"F12\",\n}\n\nenum SpecialKey {\n Home = \"Home\",\n End = \"End\",\n PageUp = \"PageUp\",\n PageDown = \"PageDown\",\n Escape = \"Escape\",\n Delete = \"Delete\",\n Insert = \"Insert\",\n Tab = \"Tab\",\n ArrowLeft = \"ArrowLeft\",\n ArrowRight = \"ArrowRight\",\n ArrowUp = \"ArrowUp\",\n ArrowDown = \"ArrowDown\",\n Enter = \"Enter\",\n Return = \"Enter\", // eslint-disable-line @typescript-eslint/no-duplicate-enum-values\n Space = \" \",\n Backspace = \"Backspace\",\n Clear = \"Clear\",\n Divide = \"Divide\",\n Multiply = \"Multiply\",\n Subtract = \"Subtract\",\n Add = \"Add\",\n Decimal = \"Decimal\",\n}\n\n/** Keyboard Shortcut used to execute an action\n * @public\n * @deprecated in 4.15.0. Use {@link KeyboardShortcutProps} or {@link FrameworkKeyboardShortcut} instead.\n */\nexport class KeyboardShortcut extends ItemDefBase {\n private _key: string;\n private _item?: ActionButtonItemDef;\n private _shortcuts: KeyboardShortcutContainer;\n private _execute?: () => void;\n\n private _isAltKeyRequired: boolean = false;\n private _isCtrlKeyRequired: boolean = false;\n private _isShiftKeyRequired: boolean = false;\n private _isFunctionKey: boolean = false;\n private _isSpecialKey: boolean = false;\n\n constructor(props: KeyboardShortcutProps) {\n super(props);\n\n this._key = props.key;\n\n if (this._key in FunctionKey) this._isFunctionKey = true;\n if (this._key in SpecialKey) this._isSpecialKey = true;\n\n this._shortcuts = new KeyboardShortcutContainer();\n\n if (props.item) {\n this._item = props.item;\n\n // Copy over icon, label & tooltip from the item\n if (!this.iconSpec) this.iconSpec = this._item.iconSpec;\n if (!this.label) this.setLabel(this._item.label);\n if (!this.tooltip) this.setTooltip(this._item.tooltip);\n if (this.isDisabled === undefined)\n this.isDisabled = this._item.isDisabled;\n if (this.isHidden === undefined) this.isHidden = this._item.isHidden;\n } else if (props.execute) {\n this._execute = props.execute;\n } else if (props.shortcuts) {\n props.shortcuts.forEach((childProps: KeyboardShortcutProps) => {\n const shortcut = new KeyboardShortcut(childProps);\n this._shortcuts.registerKey(shortcut.keyMapKey, shortcut);\n });\n } else {\n throw new UiError(\n UiFramework.loggerCategory(\"KeyboardShortcut\"),\n `Either 'item', 'execute' or 'shortcuts' must be specified for '${props.key}' key.`\n );\n }\n\n if (props.isAltKeyRequired !== undefined)\n this._isAltKeyRequired = props.isAltKeyRequired;\n if (props.isCtrlKeyRequired !== undefined)\n this._isCtrlKeyRequired = props.isCtrlKeyRequired;\n if (props.isShiftKeyRequired !== undefined)\n this._isShiftKeyRequired = props.isShiftKeyRequired;\n if (props.iconNode !== undefined) this.iconSpec = <>{props.iconNode}</>;\n }\n\n /** Returns the id for this shortcut */\n public get id(): string {\n return this.keyMapKey;\n }\n\n /** Returns the shortcut container */\n public get shortcutContainer(): KeyboardShortcutContainer {\n return this._shortcuts;\n }\n\n /** Finds a shortcut with a given key in the shortcut's container */\n public getShortcut(mapKey: string): KeyboardShortcut | undefined {\n return this._shortcuts.findKey(mapKey);\n }\n\n /** Returns the shortcut's key map key used as the id */\n public get keyMapKey(): string {\n const keyMapKey = KeyboardShortcutContainer.generateKeyMapKey(\n this.key,\n this._isAltKeyRequired,\n this._isCtrlKeyRequired,\n this._isShiftKeyRequired\n );\n return keyMapKey;\n }\n\n /** Returns the [[ActionButtonItemDef]] associated with this shortcut */\n public get item(): ActionButtonItemDef | undefined {\n return this._item;\n }\n\n /** Called when the [[ActionButtonItemDef]] associated with this shortcut is invoked */\n public itemPicked(): void {\n if (this._shortcuts.areKeyboardShortcutsAvailable()) {\n this._shortcuts.showShortcutsMenu();\n } else {\n setTimeout(() => {\n if (this._item) this._item.execute();\n else if (this._execute) this._execute();\n });\n }\n }\n\n /** Gets the keyboard key */\n public get key(): string {\n return this._key;\n }\n /** Gets whether the Alt key required. */\n public get isAltKeyRequired(): boolean {\n return this._isAltKeyRequired;\n }\n /** Gets whether the Ctrl key required. */\n public get isCtrlKeyRequired(): boolean {\n return this._isCtrlKeyRequired;\n }\n /** Gets whether the Shift key required. */\n public get isShiftKeyRequired(): boolean {\n return this._isShiftKeyRequired;\n }\n /** Gets whether this is a Function key. */\n public get isFunctionKey(): boolean {\n return this._isFunctionKey;\n }\n /** Gets whether this is a Special key. */\n public get isSpecialKey(): boolean {\n return this._isSpecialKey;\n }\n}\n\n/** Keyboard Shortcut Container\n * @public\n * @deprecated in 4.15.0. Use {@link FrameworkKeyboardShortcutContainer} instead.\n */\nexport class KeyboardShortcutContainer {\n private _keyMap: Map<string, KeyboardShortcut> = new Map<\n string,\n KeyboardShortcut\n >();\n private _keyArray: KeyboardShortcut[] = new Array<KeyboardShortcut>();\n\n /** Registers a Keyboard Shortcut associated with a given key in the managed list */\n public registerKey(\n keyMapKey: string,\n inShortcut: KeyboardShortcut\n ): KeyboardShortcut | undefined {\n let shortcut: KeyboardShortcut | undefined;\n\n if ((shortcut = this.findKey(keyMapKey)) === undefined) {\n shortcut = inShortcut;\n this._keyArray.push(shortcut);\n } else {\n const index = this._keyArray.findIndex((value: KeyboardShortcut) => {\n return value.keyMapKey === keyMapKey;\n });\n if (index >= 0) {\n shortcut = inShortcut;\n this._keyArray[index] = shortcut;\n }\n }\n\n if (shortcut) this._keyMap.set(keyMapKey, shortcut);\n\n return shortcut;\n }\n\n /** Finds a Keyboard Shortcut associated with a given key */\n public findKey(keyMapKey: string): KeyboardShortcut | undefined {\n return this._keyMap.get(keyMapKey);\n }\n\n /** Determines if any Keyboard Shortcuts are available in this container */\n public areKeyboardShortcutsAvailable(): boolean {\n return this._keyMap.size !== 0;\n }\n\n /** Empties any Keyboard Shortcuts from this container */\n public emptyData(): void {\n this._keyMap.clear();\n this._keyArray.length = 0;\n }\n\n public getAvailableKeyboardShortcuts(): KeyboardShortcut[] {\n return this._keyArray.slice();\n }\n\n /** Generates a key used for storing and finding the Keyboard Shortcuts in this container */\n public static generateKeyMapKey(\n keyboardKey: string,\n isAltKeyRequired: boolean,\n isCtrlKeyRequired: boolean,\n isShiftKeyRequired: boolean\n ): string {\n let keyMapKey = keyboardKey;\n\n if (isAltKeyRequired) keyMapKey = `Alt+${keyMapKey}`;\n if (isShiftKeyRequired) keyMapKey = `Shift+${keyMapKey}`;\n if (isCtrlKeyRequired) keyMapKey = `Ctrl+${keyMapKey}`;\n\n return keyMapKey;\n }\n\n /** Displays a menu for the Keyboard Shortcuts in this container */\n public showShortcutsMenu() {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.emit({\n menuVisible: true,\n menuX: UiFramework.keyboardShortcuts.cursorX,\n menuY: UiFramework.keyboardShortcuts.cursorY,\n shortcuts: this.getAvailableKeyboardShortcuts(),\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcutMenu.d.ts","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcutMenu.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAA2B,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIzE;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,OAAO,CAAC,yBAAyB,CAAC;CAAG;AAEpF;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,aAAa,CAC3D,WAAW,EACX,yBAAyB,CAC1B;IACC,SAAyB,KAAK,EAAE,yBAAyB,CAIvD;IAEF,uCAAuC;IACvC,gBAAuB,2BAA2B,4BAChB;IAElB,iBAAiB;IAMjB,oBAAoB;IAMpC,OAAO,CAAC,gCAAgC,CAItC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IA6BzC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,mBAAmB;IA0D3B,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW,CAGjB;CACH"}
1
+ {"version":3,"file":"KeyboardShortcutMenu.d.ts","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcutMenu.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAA2B,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIzE;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,OAAO,CAAC,yBAAyB,CAAC;CAAG;AAEpF;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,aAAa,CAC3D,WAAW,EACX,yBAAyB,CAC1B;IACC,SAAyB,KAAK,EAAE,yBAAyB,CAIvD;IAEF,uCAAuC;IACvC,gBAAuB,2BAA2B,4BAChB;IAElB,iBAAiB;IAMjB,oBAAoB;IAMpC,OAAO,CAAC,gCAAgC,CAItC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IA8BzC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,mBAAmB;IA0D3B,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW,CAGjB;CACH"}
@@ -48,7 +48,7 @@ export class KeyboardShortcutMenu extends React.PureComponent {
48
48
  const onClose = this._hideContextMenu;
49
49
  if (menuVisible) {
50
50
  const items = this.getShortcutMenuItems(shortcuts);
51
- return (React.createElement(GlobalContextMenu, { className: this.props.className, style: this.props.style, identifier: "keyboard-shortcuts", x: menuX, y: menuY, opened: menuVisible, onEsc: onClose, onOutsideClick: onClose, edgeLimit: false, autoflip: true, ignoreNextKeyUp: true }, items));
51
+ return (React.createElement(GlobalContextMenu, { className: this.props.className, style: this.props.style, identifier: "keyboard-shortcuts", x: menuX, y: menuY, opened: menuVisible, onEsc: onClose, onOutsideClick: onClose, edgeLimit: false, autoflip: true, ignoreNextKeyUp: true, offset: 12 }, items));
52
52
  }
53
53
  return null;
54
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcutMenu.js","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcutMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module KeyboardShortcut\n */\n\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport type { ListenerType } from \"@itwin/core-react/internal\";\nimport {\n ContextMenuItem,\n ContextSubMenu,\n GlobalContextMenu,\n} from \"@itwin/core-react\";\nimport type { KeyboardShortcut } from \"./KeyboardShortcut.js\";\nimport { ConditionalBooleanValue, UiEvent } from \"@itwin/appui-abstract\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** State of a [[KeyboardShortcutMenuEvent]] and [[KeyboardShortcutMenu]] component\n * @public\n * @deprecated in 4.15.0. Used internally by {@link KeyboardShortcutMenu} component.\n */\nexport interface KeyboardShortcutMenuState {\n menuVisible: boolean;\n menuX: number;\n menuY: number;\n shortcuts?: KeyboardShortcut[];\n}\n\n/** KeyboardShortcut Menu Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\nexport class KeyboardShortcutMenuEvent extends UiEvent<KeyboardShortcutMenuState> {}\n\n/** React component that displays a context menu at the cursor containing keyboard shortcuts.\n * @public\n * @deprecated in 4.15.0. Component used internally to display keyboard shortcuts in a context menu.\n */\nexport class KeyboardShortcutMenu extends React.PureComponent<\n CommonProps,\n KeyboardShortcutMenuState\n> {\n public override readonly state: KeyboardShortcutMenuState = {\n menuVisible: false,\n menuX: 0,\n menuY: 0,\n };\n\n /** Get KeyboardShortcut Menu Event. */\n public static readonly onKeyboardShortcutMenuEvent =\n new KeyboardShortcutMenuEvent();\n\n public override componentDidMount() {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.addListener(\n this._handleKeyboardShortcutMenuEvent\n );\n }\n\n public override componentWillUnmount() {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.removeListener(\n this._handleKeyboardShortcutMenuEvent\n );\n }\n\n private _handleKeyboardShortcutMenuEvent: ListenerType<\n typeof KeyboardShortcutMenu.onKeyboardShortcutMenuEvent\n > = (state) => {\n this.setState(state);\n };\n\n public override render(): React.ReactNode {\n const { shortcuts, menuX, menuY, menuVisible } = this.state;\n const onClose = this._hideContextMenu;\n\n if (menuVisible) {\n const items = this.getShortcutMenuItems(shortcuts);\n\n return (\n <GlobalContextMenu\n className={this.props.className}\n style={this.props.style}\n identifier=\"keyboard-shortcuts\"\n x={menuX}\n y={menuY}\n opened={menuVisible}\n onEsc={onClose}\n onOutsideClick={onClose}\n edgeLimit={false}\n autoflip={true}\n ignoreNextKeyUp={true} // Executing the shortcut on the keydown, so ignore the keyup in the menu\n >\n {items}\n </GlobalContextMenu>\n );\n }\n\n return null;\n }\n\n private getShortcutMenuItems(\n shortcuts?: KeyboardShortcut[]\n ): React.ReactNode[] {\n const items: React.ReactNode[] = [];\n\n if (shortcuts) {\n shortcuts.forEach((shortcut: KeyboardShortcut, index: number) => {\n const item = this.getShortcutMenuItem(shortcut, index);\n if (item) items.push(item);\n });\n }\n\n return items;\n }\n\n private getShortcutMenuItem(\n shortcut: KeyboardShortcut,\n index: number\n ): React.ReactNode {\n const shortcutKey = shortcut.key;\n const isHidden = ConditionalBooleanValue.getValue(shortcut.isHidden);\n\n // Only pure characters go into the context menu\n if (\n shortcutKey !== shortcut.keyMapKey ||\n shortcut.isFunctionKey ||\n shortcut.isSpecialKey ||\n isHidden\n )\n return null;\n\n let node: React.ReactNode = null;\n let label = shortcut.label;\n const iconSpec = shortcut.iconSpec;\n\n label = `~${shortcutKey.toLocaleUpperCase()} ${label}`;\n\n if (shortcut.shortcutContainer.areKeyboardShortcutsAvailable()) {\n const shortcuts =\n shortcut.shortcutContainer.getAvailableKeyboardShortcuts();\n const items = this.getShortcutMenuItems(shortcuts);\n\n node = (\n <ContextSubMenu\n key={index}\n icon={iconSpec}\n label={label}\n disabled={shortcut.isDisabled}\n badgeType={shortcut.badgeType}\n badgeKind={shortcut.badgeKind}\n >\n {items}\n </ContextSubMenu>\n );\n } else {\n const sel = () => this._itemPicked(shortcut);\n node = (\n <ContextMenuItem\n key={index}\n onSelect={sel}\n icon={iconSpec}\n disabled={shortcut.isDisabled}\n badgeType={shortcut.badgeType}\n badgeKind={shortcut.badgeKind}\n >\n {label}\n </ContextMenuItem>\n );\n }\n\n return node;\n }\n\n private _hideContextMenu = () => {\n this.setState({ menuVisible: false, shortcuts: undefined });\n };\n\n private _itemPicked = (shortcut: KeyboardShortcut): void => {\n this._hideContextMenu();\n shortcut.itemPicked();\n };\n}\n"]}
1
+ {"version":3,"file":"KeyboardShortcutMenu.js","sourceRoot":"","sources":["../../../src/appui-react/keyboardshortcut/KeyboardShortcutMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module KeyboardShortcut\n */\n\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport type { ListenerType } from \"@itwin/core-react/internal\";\nimport {\n ContextMenuItem,\n ContextSubMenu,\n GlobalContextMenu,\n} from \"@itwin/core-react\";\nimport type { KeyboardShortcut } from \"./KeyboardShortcut.js\";\nimport { ConditionalBooleanValue, UiEvent } from \"@itwin/appui-abstract\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** State of a [[KeyboardShortcutMenuEvent]] and [[KeyboardShortcutMenu]] component\n * @public\n * @deprecated in 4.15.0. Used internally by {@link KeyboardShortcutMenu} component.\n */\nexport interface KeyboardShortcutMenuState {\n menuVisible: boolean;\n menuX: number;\n menuY: number;\n shortcuts?: KeyboardShortcut[];\n}\n\n/** KeyboardShortcut Menu Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\nexport class KeyboardShortcutMenuEvent extends UiEvent<KeyboardShortcutMenuState> {}\n\n/** React component that displays a context menu at the cursor containing keyboard shortcuts.\n * @public\n * @deprecated in 4.15.0. Component used internally to display keyboard shortcuts in a context menu.\n */\nexport class KeyboardShortcutMenu extends React.PureComponent<\n CommonProps,\n KeyboardShortcutMenuState\n> {\n public override readonly state: KeyboardShortcutMenuState = {\n menuVisible: false,\n menuX: 0,\n menuY: 0,\n };\n\n /** Get KeyboardShortcut Menu Event. */\n public static readonly onKeyboardShortcutMenuEvent =\n new KeyboardShortcutMenuEvent();\n\n public override componentDidMount() {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.addListener(\n this._handleKeyboardShortcutMenuEvent\n );\n }\n\n public override componentWillUnmount() {\n KeyboardShortcutMenu.onKeyboardShortcutMenuEvent.removeListener(\n this._handleKeyboardShortcutMenuEvent\n );\n }\n\n private _handleKeyboardShortcutMenuEvent: ListenerType<\n typeof KeyboardShortcutMenu.onKeyboardShortcutMenuEvent\n > = (state) => {\n this.setState(state);\n };\n\n public override render(): React.ReactNode {\n const { shortcuts, menuX, menuY, menuVisible } = this.state;\n const onClose = this._hideContextMenu;\n\n if (menuVisible) {\n const items = this.getShortcutMenuItems(shortcuts);\n\n return (\n <GlobalContextMenu\n className={this.props.className}\n style={this.props.style}\n identifier=\"keyboard-shortcuts\"\n x={menuX}\n y={menuY}\n opened={menuVisible}\n onEsc={onClose}\n onOutsideClick={onClose}\n edgeLimit={false}\n autoflip={true}\n ignoreNextKeyUp={true} // Executing the shortcut on the keydown, so ignore the keyup in the menu\n offset={12}\n >\n {items}\n </GlobalContextMenu>\n );\n }\n\n return null;\n }\n\n private getShortcutMenuItems(\n shortcuts?: KeyboardShortcut[]\n ): React.ReactNode[] {\n const items: React.ReactNode[] = [];\n\n if (shortcuts) {\n shortcuts.forEach((shortcut: KeyboardShortcut, index: number) => {\n const item = this.getShortcutMenuItem(shortcut, index);\n if (item) items.push(item);\n });\n }\n\n return items;\n }\n\n private getShortcutMenuItem(\n shortcut: KeyboardShortcut,\n index: number\n ): React.ReactNode {\n const shortcutKey = shortcut.key;\n const isHidden = ConditionalBooleanValue.getValue(shortcut.isHidden);\n\n // Only pure characters go into the context menu\n if (\n shortcutKey !== shortcut.keyMapKey ||\n shortcut.isFunctionKey ||\n shortcut.isSpecialKey ||\n isHidden\n )\n return null;\n\n let node: React.ReactNode = null;\n let label = shortcut.label;\n const iconSpec = shortcut.iconSpec;\n\n label = `~${shortcutKey.toLocaleUpperCase()} ${label}`;\n\n if (shortcut.shortcutContainer.areKeyboardShortcutsAvailable()) {\n const shortcuts =\n shortcut.shortcutContainer.getAvailableKeyboardShortcuts();\n const items = this.getShortcutMenuItems(shortcuts);\n\n node = (\n <ContextSubMenu\n key={index}\n icon={iconSpec}\n label={label}\n disabled={shortcut.isDisabled}\n badgeType={shortcut.badgeType}\n badgeKind={shortcut.badgeKind}\n >\n {items}\n </ContextSubMenu>\n );\n } else {\n const sel = () => this._itemPicked(shortcut);\n node = (\n <ContextMenuItem\n key={index}\n onSelect={sel}\n icon={iconSpec}\n disabled={shortcut.isDisabled}\n badgeType={shortcut.badgeType}\n badgeKind={shortcut.badgeKind}\n >\n {label}\n </ContextMenuItem>\n );\n }\n\n return node;\n }\n\n private _hideContextMenu = () => {\n this.setState({ menuVisible: false, shortcuts: undefined });\n };\n\n private _itemPicked = (shortcut: KeyboardShortcut): void => {\n this._hideContextMenu();\n shortcut.itemPicked();\n };\n}\n"]}
@@ -6,7 +6,6 @@
6
6
  .nz-standardLayout {
7
7
  position: relative;
8
8
  height: 100%;
9
- background-color: var(--iui-color-background-backdrop);
10
9
  overflow: hidden;
11
10
 
12
11
  display: grid;
@@ -20,6 +20,10 @@
20
20
  top: 12px;
21
21
  left: -2px;
22
22
  }
23
+
24
+ svg {
25
+ fill: currentColor;
26
+ }
23
27
  }
24
28
 
25
29
  > .nz-text-new {
@@ -1 +1 @@
1
- {"version":3,"file":"Docked.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/tool-settings/Docked.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,gBAAgB;AAChB,MAAM,UAAU,8BAA8B,KAAI,CAAC;AAEnD,4HAA4H;AAC5H,SAAS,sBAAsB,CAAC,EAAE,OAAO,EAAgC;IACvE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAC9B,GAAG,EAAE,CAAC,CAAC;QACL,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,8BAA8B;KACzC,CAAC,EACF,EAAE,CACH,CAAC;IACF,MAAM,eAAe,GAAI,OAAmC,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC5E,OAAO,CACL;QACE,oBAAC,8BAA8B,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,IACvD,eAAe;YACd,KAAK,CAAC,QAAQ,CAAC,GAAG,CAChB,eAAe,EACf,CAAC,KAAsB,EAAE,EAAE,CAAC,KAAK,CAClC,CACqC,CACzC,CACJ,CAAC;AACJ,CAAC;AAaD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAC1C,gCAAgC,CACjC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAC7D,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAC5C,CAAC;IACF,MAAM,CACJ,SAAS,EACT,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EAChB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,KAAK,CAAC,OAAO,KAAK,SAAS;YACzB,WAAW,CAAC,OAAO,KAAK,SAAS;YACjC,qBAAqB,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC,CAAC;IAC7C,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAC1C,CAAC,CAAS,EAAE,EAAE;QACZ,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC;QACxB,QAAQ,EAAE,CAAC;IACb,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,CAAC,CAAS,EAAE,EAAE;QACZ,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAClB,QAAQ,EAAE,CAAC;IACb,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAE1D,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC3C,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC5C,CAAC,KAAK,CAAC,QAAQ,CAAC,CACjB,CAAC;IACF,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACpB,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IACF,MAAM,iBAAiB,GAAG,SAAS;QACjC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtE,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC;QACR,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc;QACzC,CAAC,CAAC,KAAK,CAAC,cAAc;QACtB,CAAC,CAAC,qBAAqB,CAAC;IAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,0BAA0B,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1E,OAAO,CACL,2DAC8B,KAAK,CAAC,MAAM,EACxC,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,KAAK,CAAC,KAAK;QAElB,oBAAC,wBAAwB,IAAC,QAAQ,EAAE,kBAAkB,GAAI;QACzD,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnC,OAAO,CACL,oBAAC,eAAe,IACd,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,GAAG;gBAER,oBAAC,aAAa,IACZ,EAAE,EAAE,mBAAmB,EACvB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE;wBACV,MAAM,EAAE,qBAAqB;wBAC7B,KAAK,EAAE,qBAAqB;wBAC5B,YAAY,EAAE,4BAA4B;wBAC1C,WAAW,EAAE,4BAA4B;qBAC1C;oBAED,oBAAC,uBAAuB,IACtB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,GAAG,EACb,WAAW,EAAE,gBAAgB,IAE5B,KAAK,CACkB,CACZ,CACA,CACnB,CAAC;QACJ,CAAC,CAAC;QACD,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CACvC;YACE,oBAAC,0BAA0B,IACzB,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,EAAE,SAAS,GACd;YACD,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,CAC5D,oBAAC,yBAAyB,IACxB,OAAO,EAAE,aAAa,EACtB,IAAI,QACJ,MAAM,EAAE,SAAS,CAAC,OAAO;gBAEzB,oBAAC,cAAc,QACZ,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACtC,OAAO,oBAAC,sBAAsB,IAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,GAAI,CAAC;gBAC9D,CAAC,CAAC,CACa,CACS,CAC7B,CACA,CACJ,CACG,CACP,CAAC;AACJ,CAAC;AAQD,SAAS,uBAAuB,CAAC,EAC/B,QAAQ,EACR,QAAQ,EACR,WAAW,GACkB;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAC3B,CAAC,WAAW,EAAE,QAAQ,CAAC,CACxB,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CACzB,GAAG,EAAE,CAAC,CAAC;QACL,WAAW,EAAE,KAAK;QAClB,QAAQ;KACT,CAAC,EACF,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,OAAO,CACL,oBAAC,8BAA8B,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAClD,QAAQ,CAC+B,CAC3C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAsB,EAAE,KAAa;IAC/D,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,MAAgD,EAChD,aAAqB,EACrB,WAAoB,EACpB,OAAO,GAAG,CAAC;IAEX,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,kCAAkC;IAClC,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,2CAA2C;IAC3C,IAAI,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACxC,aAAa,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,oBAAoB;QACpB,IAAI,CAAC,KAAK,WAAW;YAAE,SAAS;QAEhC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,gBAAgB,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC;QAElE,0CAA0C;QAC1C,IAAI,gBAAgB,GAAG,KAAK,EAAE,CAAC;YAC7B,aAAa,IAAI,aAAa,GAAG,UAAU,EAAE,CAAC;YAC9C,MAAM;QACR,CAAC;QAED,0BAA0B;QAC1B,aAAa,GAAG,gBAAgB,CAAC;IACnC,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,WAAW;gBAAE,SAAS;YAChC,IAAI,aAAa,IAAI,KAAK;gBAAE,MAAM;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,aAAa,IAAI,SAAS,GAAG,OAAO,CAAC;QACvC,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,KAAK,EAAU,CAAC;IACtC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,WAAW;YAAE,SAAS;QAChC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,QAA+B,EAC/B,eAAwB;IAaxB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAyB,CAAC;IAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,EAA8B,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEhC,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvD,IACE,KAAK,CAAC,OAAO,KAAK,SAAS;YAC3B,MAAM,KAAK,SAAS;YACpB,aAAa,CAAC,OAAO,KAAK,SAAS,EACnC,CAAC;YACD,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,MAAM,YAAY,GAAG,YAAY,CAC/B,KAAK,CAAC,OAAO,EACb,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,EACrB,aAAa,CAAC,OAAO,EACrB,eAAe,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QACF,YAAY,CAAC,CAAC,aAAa,EAAE,EAAE;YAC7B,OAAO,YAAY,CAAC,aAAa,EAAE,YAAY,CAAC;gBAC9C,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,YAAY,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,MAAM,cAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC7D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/C,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,WAAW,CAAC,OAAO,GAAG,cAAc,CAAC;QACrC,iBAAiB,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAElC,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAC7C,CAAC,CAAS,EAAE,EAAE;QACZ,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;QACtC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAClB,SAAS,IAAI,iBAAiB,EAAE,CAAC;IACnC,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAC5C,CAAC,CAAS,EAAE,EAAE;QACZ,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,KAAK,CAAC,CAAC;QAC9C,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,SAAS,IAAI,iBAAiB,EAAE,CAAC;IACnC,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CACzC,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAS,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO;QACvB,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,iBAAiB,EAAE,CAAC;IACtB,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,CAAC,CAAS,EAAE,EAAE;QACZ,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO;QAClC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;QACpB,iBAAiB,EAAE,CAAC;IACtB,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,OAAO;QACL,SAAS;QACT,qBAAqB;QACrB,oBAAoB;QACpB,iBAAiB;QACjB,eAAe;KAChB,CAAC;AACJ,CAAC;AAOD,MAAM,8BAA8B,GAClC,KAAK,CAAC,aAAa,CAAqC,IAAK,CAAC,CAAC;AACjE,8BAA8B,CAAC,WAAW;IACxC,mCAAmC,CAAC;AAEtC,gBAAgB;AAChB,MAAM,UAAU,oBAAoB;IAClC,OAAO,KAAK,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAI,GAA+B;IAC5D,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;IAC1C,CAAC;IACD,OAAO,GAAqB,CAAC;AAC/B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAoC;IACjE,OAAO,CACL,6BAAK,SAAS,EAAC,oCAAoC,IAAE,KAAK,CAAC,QAAQ,CAAO,CAC3E,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,YAAY,CAC1B,IAAmC,EACnC,KAAwB;IAExB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,WAAwB;IAC9C,4DAA4D;IAC5D,MAAM,GAAG,GAAG,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ToolSettings\n */\n\nimport \"./Docked.scss\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\nimport { useRefs, useResizeObserver } from \"@itwin/core-react/internal\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\";\nimport { AnimateDockedToolSettingsContext } from \"../base/NineZone.js\";\nimport { DockedToolSettingsHandle } from \"./Handle.js\";\nimport { DockedToolSettingsOverflow } from \"./Overflow.js\";\nimport { ToolSettingsOverflowPanel } from \"./Panel.js\";\n\n/** @internal */\nexport function onOverflowLabelAndEditorResize() {}\n\n/** This component takes a DockedToolSetting \"wrapper\" component and extract only the label and editor components from it */\nfunction OverflowLabelAndEditor({ wrapper }: { wrapper: React.ReactNode }) {\n assert(React.isValidElement(wrapper));\n const entryValue = React.useMemo<DockedToolSettingsEntryContextArgs>(\n () => ({\n isOverflown: true,\n onResize: onOverflowLabelAndEditorResize,\n }),\n []\n );\n const wrapperChildren = (wrapper as React.ReactElement<any>).props.children;\n return (\n <>\n <DockedToolSettingsEntryContext.Provider value={entryValue}>\n {wrapperChildren &&\n React.Children.map(\n wrapperChildren,\n (child: React.ReactNode) => child\n )}\n </DockedToolSettingsEntryContext.Provider>\n </>\n );\n}\n\n/** Properties of [[DockedToolSettings]] component.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface DockedToolSettingsProps extends CommonProps {\n /** Tool settings content. */\n children?: React.ReactNode;\n /** Container for overflown entries. */\n panelContainer?: React.ComponentType<{ children?: React.ReactNode }>;\n}\n\n/** Component that displays tool settings as a bar across the top of the content view.\n * @internal\n */\nexport function DockedToolSettings(props: DockedToolSettingsProps) {\n const [open, setOpen] = React.useState(false);\n const animateToolSettings = React.useContext(\n AnimateDockedToolSettingsContext\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n const width = React.useRef<number | undefined>(undefined);\n const handleWidth = React.useRef<number | undefined>(undefined);\n const childrenKeys = React.Children.toArray(props.children).map(\n (child, index) => getChildKey(child, index)\n );\n const [\n overflown,\n handleContainerResize,\n handleOverflowResize,\n getOnEntryResize,\n handleGapResize,\n ] = useOverflow(childrenKeys);\n const onResize = React.useCallback(() => {\n let gapSize = 0;\n if (ref.current) {\n gapSize = getGapVariable(ref.current);\n handleGapResize(gapSize);\n }\n width.current !== undefined &&\n handleWidth.current !== undefined &&\n handleContainerResize(width.current - handleWidth.current - gapSize);\n }, [handleContainerResize, handleGapResize]);\n const handleHandleResize = React.useCallback(\n (w: number) => {\n handleWidth.current = w;\n onResize();\n },\n [onResize]\n );\n const handleResize = React.useCallback(\n (w: number) => {\n width.current = w;\n onResize();\n },\n [onResize]\n );\n const resizeObserverRef = useResizeObserver(handleResize);\n\n const onOverflowClick = React.useCallback(() => {\n setOpen((prev) => !prev);\n }, []);\n const handleOnClose = React.useCallback(() => {\n setOpen(false);\n }, []);\n const targetRef = React.useRef<HTMLDivElement>(null);\n const refs = useRefs(ref, resizeObserverRef);\n const children = React.useMemo(\n () => React.Children.toArray(props.children),\n [props.children]\n );\n const dockedChildren = children.reduce<Array<[string, React.ReactNode]>>(\n (acc, child, index) => {\n const key = getChildKey(child, index);\n if (!overflown || overflown.indexOf(key) < 0) {\n acc.push([key, child]);\n }\n return acc;\n },\n []\n );\n const overflownChildren = overflown\n ? children.reduce<Array<[string, React.ReactNode]>>((acc, child, index) => {\n const key = getChildKey(child, index);\n if (overflown.indexOf(key) >= 0) {\n acc.push([key, child]);\n }\n return acc;\n }, [])\n : [];\n const PanelContainer = props.panelContainer\n ? props.panelContainer\n : DefaultPanelContainer;\n const className = classnames(\"uifw-toolSettings-docked\", props.className);\n return (\n <div\n data-toolsettings-provider={props.itemId}\n className={className}\n ref={refs}\n style={props.style}\n >\n <DockedToolSettingsHandle onResize={handleHandleResize} />\n {dockedChildren.map(([key, child]) => {\n return (\n <TransitionGroup\n appear={animateToolSettings}\n enter={animateToolSettings}\n key={key}\n >\n <CSSTransition\n in={animateToolSettings}\n timeout={400}\n classNames={{\n appear: \"toolsettings-appear\",\n enter: \"toolsettings-appear\",\n appearActive: \"toolsettings-appear-active\",\n enterActive: \"toolsettings-appear-active\",\n }}\n >\n <DockedToolSettingsEntry\n key={key}\n entryKey={key}\n getOnResize={getOnEntryResize}\n >\n {child}\n </DockedToolSettingsEntry>\n </CSSTransition>\n </TransitionGroup>\n );\n })}\n {(!overflown || overflown.length > 0) && (\n <>\n <DockedToolSettingsOverflow\n onClick={onOverflowClick}\n onResize={handleOverflowResize}\n ref={targetRef}\n />\n {overflownChildren.length > 0 && open && targetRef.current && (\n <ToolSettingsOverflowPanel\n onClose={handleOnClose}\n open\n target={targetRef.current}\n >\n <PanelContainer>\n {overflownChildren.map(([key, child]) => {\n return <OverflowLabelAndEditor key={key} wrapper={child} />;\n })}\n </PanelContainer>\n </ToolSettingsOverflowPanel>\n )}\n </>\n )}\n </div>\n );\n}\n\ninterface DockedToolSettingsEntryProps {\n children?: React.ReactNode;\n entryKey: string;\n getOnResize: (key: string) => (w: number) => void;\n}\n\nfunction DockedToolSettingsEntry({\n children,\n entryKey,\n getOnResize,\n}: DockedToolSettingsEntryProps) {\n const onResize = React.useMemo(\n () => getOnResize(entryKey),\n [getOnResize, entryKey]\n );\n const entry = React.useMemo<DockedToolSettingsEntryContextArgs>(\n () => ({\n isOverflown: false,\n onResize,\n }),\n [onResize]\n );\n return (\n <DockedToolSettingsEntryContext.Provider value={entry}>\n {children}\n </DockedToolSettingsEntryContext.Provider>\n );\n}\n\n/** Returns key of a child. Must be used along with React.Children.toArray to preserve the semantics of children.\n * @internal\n */\nexport function getChildKey(child: React.ReactNode, index: number) {\n if (React.isValidElement(child) && child.key !== null) {\n return child.key.toString();\n }\n return index.toString();\n}\n\n/** Returns a subset of docked entry keys that exceed given width and should be overflown.\n * @internal\n */\nexport function getOverflown(\n width: number,\n docked: ReadonlyArray<readonly [string, number]>,\n overflowWidth: number,\n activeIndex?: number,\n gapSize = 0\n) {\n let settingsWidth = 0;\n\n // Avoid adding gap to first item.\n let firstItem = true;\n const getGapSize = () => {\n if (firstItem) {\n firstItem = false;\n return 0;\n }\n return gapSize;\n };\n\n // Make sure active item is always visible.\n if (activeIndex !== undefined && docked.length > activeIndex) {\n const activeWidth = docked[activeIndex];\n settingsWidth += activeWidth[1] + getGapSize();\n }\n\n let i = 0;\n\n for (; i < docked.length; i++) {\n // Skip active item.\n if (i === activeIndex) continue;\n\n const itemWidth = docked[i][1];\n const newSettingsWidth = settingsWidth + itemWidth + getGapSize();\n\n // Items overflow, add an overflow button.\n if (newSettingsWidth > width) {\n settingsWidth += overflowWidth + getGapSize();\n break;\n }\n\n // Items fit, add an item.\n settingsWidth = newSettingsWidth;\n }\n\n // Remove items until they fit.\n let j = i;\n if (j < docked.length) {\n for (; j > 0; j--) {\n if (j === activeIndex) continue;\n if (settingsWidth <= width) break;\n const itemWidth = docked[j][1];\n settingsWidth -= itemWidth + gapSize;\n }\n }\n\n const overflown = new Array<string>();\n for (i = j; i < docked.length; i++) {\n if (i === activeIndex) continue;\n overflown.push(docked[i][0]);\n }\n return overflown;\n}\n\n/** Hook that returns a list of overflown children keys.\n * @internal\n */\nexport function useOverflow(\n itemKeys: ReadonlyArray<string>,\n activeItemIndex?: number\n): [\n /** Keys of overflown items. */\n ReadonlyArray<string> | undefined,\n /** Function to update container size. */\n (containerSize: number) => void,\n /** Function to update overflow button size. */\n (overflowButtonSize: number) => void,\n /** Returns a function to update an entry size for a given key. */\n (key: string) => (entrySize: number) => void,\n /** Function to update gap size. */\n (gapSize: number) => void\n] {\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\n const entryWidths = React.useRef(new Map<string, number | undefined>());\n const width = React.useRef<number | undefined>(undefined);\n const overflowWidth = React.useRef<number | undefined>(undefined);\n const gapSize = React.useRef(0);\n\n const calculateOverflow = React.useCallback(() => {\n const widths = verifiedMapEntries(entryWidths.current);\n if (\n width.current === undefined ||\n widths === undefined ||\n overflowWidth.current === undefined\n ) {\n setOverflown(undefined);\n return;\n }\n\n // Calculate overflow.\n const newOverflown = getOverflown(\n width.current,\n [...widths.entries()],\n overflowWidth.current,\n activeItemIndex,\n gapSize.current\n );\n setOverflown((prevOverflown) => {\n return eqlOverflown(prevOverflown, newOverflown)\n ? prevOverflown\n : newOverflown;\n });\n }, [activeItemIndex]);\n\n React.useLayoutEffect(() => {\n const newEntryWidths = new Map<string, number | undefined>();\n for (const itemKey of itemKeys) {\n const lastW = entryWidths.current.get(itemKey);\n newEntryWidths.set(itemKey, lastW);\n }\n entryWidths.current = newEntryWidths;\n calculateOverflow();\n }, [itemKeys, calculateOverflow]);\n\n const handleContainerResize = React.useCallback(\n (w: number) => {\n const calculate = width.current !== w;\n width.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleOverflowResize = React.useCallback(\n (w: number) => {\n const calculate = overflowWidth.current !== w;\n overflowWidth.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleEntryResize = React.useCallback(\n (key: string) => (w: number) => {\n const oldW = entryWidths.current.get(key);\n if (oldW === w) return;\n entryWidths.current.set(key, w);\n calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleGapResize = React.useCallback(\n (w: number) => {\n if (gapSize.current === w) return;\n gapSize.current = w;\n calculateOverflow();\n },\n [calculateOverflow]\n );\n\n return [\n overflown,\n handleContainerResize,\n handleOverflowResize,\n handleEntryResize,\n handleGapResize,\n ];\n}\n\ninterface DockedToolSettingsEntryContextArgs {\n readonly isOverflown: boolean;\n readonly onResize: (w: number) => void;\n}\n\nconst DockedToolSettingsEntryContext =\n React.createContext<DockedToolSettingsEntryContextArgs>(null!);\nDockedToolSettingsEntryContext.displayName =\n \"nz:DockedToolSettingsEntryContext\";\n\n/** @internal */\nexport function useToolSettingsEntry() {\n return React.useContext(DockedToolSettingsEntryContext);\n}\n\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\n for (const [, val] of map) {\n if (val === undefined) return undefined;\n }\n return map as Map<string, T>;\n}\n\nfunction DefaultPanelContainer(props: { children: React.ReactNode }) {\n return (\n <div className=\"uifw-toolSettings-docked_container\">{props.children}</div>\n );\n}\n\n/** @internal */\nexport function eqlOverflown(\n prev: readonly string[] | undefined,\n value: readonly string[]\n) {\n if (!prev) return false;\n if (prev.length !== value.length) return false;\n for (let i = 0; i < prev.length; i++) {\n const p = prev[i];\n const v = value[i];\n if (p !== v) return false;\n }\n return true;\n}\n\nfunction getGapVariable(htmlElement: HTMLElement) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const gap = getCssVariableAsNumber(\"gap\", htmlElement);\n if (isNaN(gap)) return 0;\n return gap;\n}\n"]}
1
+ {"version":3,"file":"Docked.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/tool-settings/Docked.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,gBAAgB;AAChB,MAAM,UAAU,8BAA8B,KAAI,CAAC;AAEnD,4HAA4H;AAC5H,SAAS,sBAAsB,CAAC,EAAE,OAAO,EAAgC;IACvE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAC9B,GAAG,EAAE,CAAC,CAAC;QACL,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,8BAA8B;KACzC,CAAC,EACF,EAAE,CACH,CAAC;IACF,MAAM,eAAe,GAAI,OAAmC,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC5E,OAAO,CACL;QACE,oBAAC,8BAA8B,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,IACvD,eAAe;YACd,KAAK,CAAC,QAAQ,CAAC,GAAG,CAChB,eAAe,EACf,CAAC,KAAsB,EAAmB,EAAE,CAAC,KAAK,CACnD,CACqC,CACzC,CACJ,CAAC;AACJ,CAAC;AAaD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAC1C,gCAAgC,CACjC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAC7D,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAC5C,CAAC;IACF,MAAM,CACJ,SAAS,EACT,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EAChB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,KAAK,CAAC,OAAO,KAAK,SAAS;YACzB,WAAW,CAAC,OAAO,KAAK,SAAS;YACjC,qBAAqB,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC,CAAC;IAC7C,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAC1C,CAAC,CAAS,EAAE,EAAE;QACZ,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC;QACxB,QAAQ,EAAE,CAAC;IACb,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,CAAC,CAAS,EAAE,EAAE;QACZ,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAClB,QAAQ,EAAE,CAAC;IACb,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAE1D,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC3C,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC5C,CAAC,KAAK,CAAC,QAAQ,CAAC,CACjB,CAAC;IACF,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACpB,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IACF,MAAM,iBAAiB,GAAG,SAAS;QACjC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtE,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC;QACR,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc;QACzC,CAAC,CAAC,KAAK,CAAC,cAAc;QACtB,CAAC,CAAC,qBAAqB,CAAC;IAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,0BAA0B,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1E,OAAO,CACL,2DAC8B,KAAK,CAAC,MAAM,EACxC,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,KAAK,CAAC,KAAK;QAElB,oBAAC,wBAAwB,IAAC,QAAQ,EAAE,kBAAkB,GAAI;QACzD,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnC,OAAO,CACL,oBAAC,eAAe,IACd,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,GAAG;gBAER,oBAAC,aAAa,IACZ,EAAE,EAAE,mBAAmB,EACvB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE;wBACV,MAAM,EAAE,qBAAqB;wBAC7B,KAAK,EAAE,qBAAqB;wBAC5B,YAAY,EAAE,4BAA4B;wBAC1C,WAAW,EAAE,4BAA4B;qBAC1C;oBAED,oBAAC,uBAAuB,IACtB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,GAAG,EACb,WAAW,EAAE,gBAAgB,IAE5B,KAAK,CACkB,CACZ,CACA,CACnB,CAAC;QACJ,CAAC,CAAC;QACD,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CACvC;YACE,oBAAC,0BAA0B,IACzB,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,EAAE,SAAS,GACd;YACD,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,CAC5D,oBAAC,yBAAyB,IACxB,OAAO,EAAE,aAAa,EACtB,IAAI,QACJ,MAAM,EAAE,SAAS,CAAC,OAAO;gBAEzB,oBAAC,cAAc,QACZ,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACtC,OAAO,oBAAC,sBAAsB,IAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,GAAI,CAAC;gBAC9D,CAAC,CAAC,CACa,CACS,CAC7B,CACA,CACJ,CACG,CACP,CAAC;AACJ,CAAC;AAQD,SAAS,uBAAuB,CAAC,EAC/B,QAAQ,EACR,QAAQ,EACR,WAAW,GACkB;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAC3B,CAAC,WAAW,EAAE,QAAQ,CAAC,CACxB,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CACzB,GAAG,EAAE,CAAC,CAAC;QACL,WAAW,EAAE,KAAK;QAClB,QAAQ;KACT,CAAC,EACF,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,OAAO,CACL,oBAAC,8BAA8B,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAClD,QAAQ,CAC+B,CAC3C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAsB,EAAE,KAAa;IAC/D,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,MAAgD,EAChD,aAAqB,EACrB,WAAoB,EACpB,OAAO,GAAG,CAAC;IAEX,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,kCAAkC;IAClC,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,2CAA2C;IAC3C,IAAI,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACxC,aAAa,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,oBAAoB;QACpB,IAAI,CAAC,KAAK,WAAW;YAAE,SAAS;QAEhC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,gBAAgB,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC;QAElE,0CAA0C;QAC1C,IAAI,gBAAgB,GAAG,KAAK,EAAE,CAAC;YAC7B,aAAa,IAAI,aAAa,GAAG,UAAU,EAAE,CAAC;YAC9C,MAAM;QACR,CAAC;QAED,0BAA0B;QAC1B,aAAa,GAAG,gBAAgB,CAAC;IACnC,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,WAAW;gBAAE,SAAS;YAChC,IAAI,aAAa,IAAI,KAAK;gBAAE,MAAM;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,aAAa,IAAI,SAAS,GAAG,OAAO,CAAC;QACvC,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,KAAK,EAAU,CAAC;IACtC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,WAAW;YAAE,SAAS;QAChC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,QAA+B,EAC/B,eAAwB;IAaxB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAyB,CAAC;IAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,EAA8B,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAqB,SAAS,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEhC,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvD,IACE,KAAK,CAAC,OAAO,KAAK,SAAS;YAC3B,MAAM,KAAK,SAAS;YACpB,aAAa,CAAC,OAAO,KAAK,SAAS,EACnC,CAAC;YACD,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,MAAM,YAAY,GAAG,YAAY,CAC/B,KAAK,CAAC,OAAO,EACb,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,EACrB,aAAa,CAAC,OAAO,EACrB,eAAe,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QACF,YAAY,CAAC,CAAC,aAAa,EAAE,EAAE;YAC7B,OAAO,YAAY,CAAC,aAAa,EAAE,YAAY,CAAC;gBAC9C,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,YAAY,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,MAAM,cAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC7D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/C,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,WAAW,CAAC,OAAO,GAAG,cAAc,CAAC;QACrC,iBAAiB,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAElC,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAC7C,CAAC,CAAS,EAAE,EAAE;QACZ,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;QACtC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAClB,SAAS,IAAI,iBAAiB,EAAE,CAAC;IACnC,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAC5C,CAAC,CAAS,EAAE,EAAE;QACZ,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,KAAK,CAAC,CAAC;QAC9C,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC;QAC1B,SAAS,IAAI,iBAAiB,EAAE,CAAC;IACnC,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CACzC,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAS,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO;QACvB,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,iBAAiB,EAAE,CAAC;IACtB,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,CAAC,CAAS,EAAE,EAAE;QACZ,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO;QAClC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;QACpB,iBAAiB,EAAE,CAAC;IACtB,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,OAAO;QACL,SAAS;QACT,qBAAqB;QACrB,oBAAoB;QACpB,iBAAiB;QACjB,eAAe;KAChB,CAAC;AACJ,CAAC;AAOD,MAAM,8BAA8B,GAClC,KAAK,CAAC,aAAa,CAAqC,IAAK,CAAC,CAAC;AACjE,8BAA8B,CAAC,WAAW;IACxC,mCAAmC,CAAC;AAEtC,gBAAgB;AAChB,MAAM,UAAU,oBAAoB;IAClC,OAAO,KAAK,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAI,GAA+B;IAC5D,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;IAC1C,CAAC;IACD,OAAO,GAAqB,CAAC;AAC/B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAoC;IACjE,OAAO,CACL,6BAAK,SAAS,EAAC,oCAAoC,IAAE,KAAK,CAAC,QAAQ,CAAO,CAC3E,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,YAAY,CAC1B,IAAmC,EACnC,KAAwB;IAExB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,WAAwB;IAC9C,4DAA4D;IAC5D,MAAM,GAAG,GAAG,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ToolSettings\n */\n\nimport \"./Docked.scss\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { getCssVariableAsNumber } from \"@itwin/core-react\";\nimport { useRefs, useResizeObserver } from \"@itwin/core-react/internal\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { CSSTransition, TransitionGroup } from \"react-transition-group\";\nimport { AnimateDockedToolSettingsContext } from \"../base/NineZone.js\";\nimport { DockedToolSettingsHandle } from \"./Handle.js\";\nimport { DockedToolSettingsOverflow } from \"./Overflow.js\";\nimport { ToolSettingsOverflowPanel } from \"./Panel.js\";\n\n/** @internal */\nexport function onOverflowLabelAndEditorResize() {}\n\n/** This component takes a DockedToolSetting \"wrapper\" component and extract only the label and editor components from it */\nfunction OverflowLabelAndEditor({ wrapper }: { wrapper: React.ReactNode }) {\n assert(React.isValidElement(wrapper));\n const entryValue = React.useMemo<DockedToolSettingsEntryContextArgs>(\n () => ({\n isOverflown: true,\n onResize: onOverflowLabelAndEditorResize,\n }),\n []\n );\n const wrapperChildren = (wrapper as React.ReactElement<any>).props.children;\n return (\n <>\n <DockedToolSettingsEntryContext.Provider value={entryValue}>\n {wrapperChildren &&\n React.Children.map(\n wrapperChildren,\n (child: React.ReactNode): React.ReactNode => child\n )}\n </DockedToolSettingsEntryContext.Provider>\n </>\n );\n}\n\n/** Properties of [[DockedToolSettings]] component.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface DockedToolSettingsProps extends CommonProps {\n /** Tool settings content. */\n children?: React.ReactNode;\n /** Container for overflown entries. */\n panelContainer?: React.ComponentType<{ children?: React.ReactNode }>;\n}\n\n/** Component that displays tool settings as a bar across the top of the content view.\n * @internal\n */\nexport function DockedToolSettings(props: DockedToolSettingsProps) {\n const [open, setOpen] = React.useState(false);\n const animateToolSettings = React.useContext(\n AnimateDockedToolSettingsContext\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n const width = React.useRef<number | undefined>(undefined);\n const handleWidth = React.useRef<number | undefined>(undefined);\n const childrenKeys = React.Children.toArray(props.children).map(\n (child, index) => getChildKey(child, index)\n );\n const [\n overflown,\n handleContainerResize,\n handleOverflowResize,\n getOnEntryResize,\n handleGapResize,\n ] = useOverflow(childrenKeys);\n const onResize = React.useCallback(() => {\n let gapSize = 0;\n if (ref.current) {\n gapSize = getGapVariable(ref.current);\n handleGapResize(gapSize);\n }\n width.current !== undefined &&\n handleWidth.current !== undefined &&\n handleContainerResize(width.current - handleWidth.current - gapSize);\n }, [handleContainerResize, handleGapResize]);\n const handleHandleResize = React.useCallback(\n (w: number) => {\n handleWidth.current = w;\n onResize();\n },\n [onResize]\n );\n const handleResize = React.useCallback(\n (w: number) => {\n width.current = w;\n onResize();\n },\n [onResize]\n );\n const resizeObserverRef = useResizeObserver(handleResize);\n\n const onOverflowClick = React.useCallback(() => {\n setOpen((prev) => !prev);\n }, []);\n const handleOnClose = React.useCallback(() => {\n setOpen(false);\n }, []);\n const targetRef = React.useRef<HTMLDivElement>(null);\n const refs = useRefs(ref, resizeObserverRef);\n const children = React.useMemo(\n () => React.Children.toArray(props.children),\n [props.children]\n );\n const dockedChildren = children.reduce<Array<[string, React.ReactNode]>>(\n (acc, child, index) => {\n const key = getChildKey(child, index);\n if (!overflown || overflown.indexOf(key) < 0) {\n acc.push([key, child]);\n }\n return acc;\n },\n []\n );\n const overflownChildren = overflown\n ? children.reduce<Array<[string, React.ReactNode]>>((acc, child, index) => {\n const key = getChildKey(child, index);\n if (overflown.indexOf(key) >= 0) {\n acc.push([key, child]);\n }\n return acc;\n }, [])\n : [];\n const PanelContainer = props.panelContainer\n ? props.panelContainer\n : DefaultPanelContainer;\n const className = classnames(\"uifw-toolSettings-docked\", props.className);\n return (\n <div\n data-toolsettings-provider={props.itemId}\n className={className}\n ref={refs}\n style={props.style}\n >\n <DockedToolSettingsHandle onResize={handleHandleResize} />\n {dockedChildren.map(([key, child]) => {\n return (\n <TransitionGroup\n appear={animateToolSettings}\n enter={animateToolSettings}\n key={key}\n >\n <CSSTransition\n in={animateToolSettings}\n timeout={400}\n classNames={{\n appear: \"toolsettings-appear\",\n enter: \"toolsettings-appear\",\n appearActive: \"toolsettings-appear-active\",\n enterActive: \"toolsettings-appear-active\",\n }}\n >\n <DockedToolSettingsEntry\n key={key}\n entryKey={key}\n getOnResize={getOnEntryResize}\n >\n {child}\n </DockedToolSettingsEntry>\n </CSSTransition>\n </TransitionGroup>\n );\n })}\n {(!overflown || overflown.length > 0) && (\n <>\n <DockedToolSettingsOverflow\n onClick={onOverflowClick}\n onResize={handleOverflowResize}\n ref={targetRef}\n />\n {overflownChildren.length > 0 && open && targetRef.current && (\n <ToolSettingsOverflowPanel\n onClose={handleOnClose}\n open\n target={targetRef.current}\n >\n <PanelContainer>\n {overflownChildren.map(([key, child]) => {\n return <OverflowLabelAndEditor key={key} wrapper={child} />;\n })}\n </PanelContainer>\n </ToolSettingsOverflowPanel>\n )}\n </>\n )}\n </div>\n );\n}\n\ninterface DockedToolSettingsEntryProps {\n children?: React.ReactNode;\n entryKey: string;\n getOnResize: (key: string) => (w: number) => void;\n}\n\nfunction DockedToolSettingsEntry({\n children,\n entryKey,\n getOnResize,\n}: DockedToolSettingsEntryProps) {\n const onResize = React.useMemo(\n () => getOnResize(entryKey),\n [getOnResize, entryKey]\n );\n const entry = React.useMemo<DockedToolSettingsEntryContextArgs>(\n () => ({\n isOverflown: false,\n onResize,\n }),\n [onResize]\n );\n return (\n <DockedToolSettingsEntryContext.Provider value={entry}>\n {children}\n </DockedToolSettingsEntryContext.Provider>\n );\n}\n\n/** Returns key of a child. Must be used along with React.Children.toArray to preserve the semantics of children.\n * @internal\n */\nexport function getChildKey(child: React.ReactNode, index: number) {\n if (React.isValidElement(child) && child.key !== null) {\n return child.key.toString();\n }\n return index.toString();\n}\n\n/** Returns a subset of docked entry keys that exceed given width and should be overflown.\n * @internal\n */\nexport function getOverflown(\n width: number,\n docked: ReadonlyArray<readonly [string, number]>,\n overflowWidth: number,\n activeIndex?: number,\n gapSize = 0\n) {\n let settingsWidth = 0;\n\n // Avoid adding gap to first item.\n let firstItem = true;\n const getGapSize = () => {\n if (firstItem) {\n firstItem = false;\n return 0;\n }\n return gapSize;\n };\n\n // Make sure active item is always visible.\n if (activeIndex !== undefined && docked.length > activeIndex) {\n const activeWidth = docked[activeIndex];\n settingsWidth += activeWidth[1] + getGapSize();\n }\n\n let i = 0;\n\n for (; i < docked.length; i++) {\n // Skip active item.\n if (i === activeIndex) continue;\n\n const itemWidth = docked[i][1];\n const newSettingsWidth = settingsWidth + itemWidth + getGapSize();\n\n // Items overflow, add an overflow button.\n if (newSettingsWidth > width) {\n settingsWidth += overflowWidth + getGapSize();\n break;\n }\n\n // Items fit, add an item.\n settingsWidth = newSettingsWidth;\n }\n\n // Remove items until they fit.\n let j = i;\n if (j < docked.length) {\n for (; j > 0; j--) {\n if (j === activeIndex) continue;\n if (settingsWidth <= width) break;\n const itemWidth = docked[j][1];\n settingsWidth -= itemWidth + gapSize;\n }\n }\n\n const overflown = new Array<string>();\n for (i = j; i < docked.length; i++) {\n if (i === activeIndex) continue;\n overflown.push(docked[i][0]);\n }\n return overflown;\n}\n\n/** Hook that returns a list of overflown children keys.\n * @internal\n */\nexport function useOverflow(\n itemKeys: ReadonlyArray<string>,\n activeItemIndex?: number\n): [\n /** Keys of overflown items. */\n ReadonlyArray<string> | undefined,\n /** Function to update container size. */\n (containerSize: number) => void,\n /** Function to update overflow button size. */\n (overflowButtonSize: number) => void,\n /** Returns a function to update an entry size for a given key. */\n (key: string) => (entrySize: number) => void,\n /** Function to update gap size. */\n (gapSize: number) => void\n] {\n const [overflown, setOverflown] = React.useState<ReadonlyArray<string>>();\n const entryWidths = React.useRef(new Map<string, number | undefined>());\n const width = React.useRef<number | undefined>(undefined);\n const overflowWidth = React.useRef<number | undefined>(undefined);\n const gapSize = React.useRef(0);\n\n const calculateOverflow = React.useCallback(() => {\n const widths = verifiedMapEntries(entryWidths.current);\n if (\n width.current === undefined ||\n widths === undefined ||\n overflowWidth.current === undefined\n ) {\n setOverflown(undefined);\n return;\n }\n\n // Calculate overflow.\n const newOverflown = getOverflown(\n width.current,\n [...widths.entries()],\n overflowWidth.current,\n activeItemIndex,\n gapSize.current\n );\n setOverflown((prevOverflown) => {\n return eqlOverflown(prevOverflown, newOverflown)\n ? prevOverflown\n : newOverflown;\n });\n }, [activeItemIndex]);\n\n React.useLayoutEffect(() => {\n const newEntryWidths = new Map<string, number | undefined>();\n for (const itemKey of itemKeys) {\n const lastW = entryWidths.current.get(itemKey);\n newEntryWidths.set(itemKey, lastW);\n }\n entryWidths.current = newEntryWidths;\n calculateOverflow();\n }, [itemKeys, calculateOverflow]);\n\n const handleContainerResize = React.useCallback(\n (w: number) => {\n const calculate = width.current !== w;\n width.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleOverflowResize = React.useCallback(\n (w: number) => {\n const calculate = overflowWidth.current !== w;\n overflowWidth.current = w;\n calculate && calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleEntryResize = React.useCallback(\n (key: string) => (w: number) => {\n const oldW = entryWidths.current.get(key);\n if (oldW === w) return;\n entryWidths.current.set(key, w);\n calculateOverflow();\n },\n [calculateOverflow]\n );\n\n const handleGapResize = React.useCallback(\n (w: number) => {\n if (gapSize.current === w) return;\n gapSize.current = w;\n calculateOverflow();\n },\n [calculateOverflow]\n );\n\n return [\n overflown,\n handleContainerResize,\n handleOverflowResize,\n handleEntryResize,\n handleGapResize,\n ];\n}\n\ninterface DockedToolSettingsEntryContextArgs {\n readonly isOverflown: boolean;\n readonly onResize: (w: number) => void;\n}\n\nconst DockedToolSettingsEntryContext =\n React.createContext<DockedToolSettingsEntryContextArgs>(null!);\nDockedToolSettingsEntryContext.displayName =\n \"nz:DockedToolSettingsEntryContext\";\n\n/** @internal */\nexport function useToolSettingsEntry() {\n return React.useContext(DockedToolSettingsEntryContext);\n}\n\nfunction verifiedMapEntries<T>(map: Map<string, T | undefined>) {\n for (const [, val] of map) {\n if (val === undefined) return undefined;\n }\n return map as Map<string, T>;\n}\n\nfunction DefaultPanelContainer(props: { children: React.ReactNode }) {\n return (\n <div className=\"uifw-toolSettings-docked_container\">{props.children}</div>\n );\n}\n\n/** @internal */\nexport function eqlOverflown(\n prev: readonly string[] | undefined,\n value: readonly string[]\n) {\n if (!prev) return false;\n if (prev.length !== value.length) return false;\n for (let i = 0; i < prev.length; i++) {\n const p = prev[i];\n const v = value[i];\n if (p !== v) return false;\n }\n return true;\n}\n\nfunction getGapVariable(htmlElement: HTMLElement) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const gap = getCssVariableAsNumber(\"gap\", htmlElement);\n if (isNaN(gap)) return 0;\n return gap;\n}\n"]}