@itwin/appui-react 5.15.2 → 5.16.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.
- package/CHANGELOG.md +19 -0
- package/lib/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts +1 -1
- package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/appui-react/content/ContentGroup.js +1 -1
- package/lib/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/appui-react/content/FloatingViewportContent.js +1 -1
- package/lib/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/appui-react/content/split-pane/Pane.d.ts +1 -1
- package/lib/appui-react/content/split-pane/Pane.d.ts.map +1 -1
- package/lib/appui-react/content/split-pane/Pane.js.map +1 -1
- package/lib/appui-react/content/split-pane/SplitPane.js +1 -1
- package/lib/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/appui-react/cursor/cursormenu/CursorMenu.js +1 -1
- package/lib/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/appui-react/cursor/cursorprompt/CursorPrompt.js +1 -1
- package/lib/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
- package/lib/appui-react/dialog/UiDataProvidedDialog.js +2 -2
- package/lib/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
- package/lib/appui-react/framework/FrameworkFrontstages.d.ts +5 -0
- package/lib/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
- package/lib/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/appui-react/hooks/useLatestRef.d.ts +1 -1
- package/lib/appui-react/hooks/useLatestRef.d.ts.map +1 -1
- package/lib/appui-react/layout/StandardLayout.scss +0 -1
- package/lib/appui-react/layout/tool-settings/Docked.js.map +1 -1
- package/lib/appui-react/layout/widget/Tab.js +2 -2
- package/lib/appui-react/layout/widget/Tab.js.map +1 -1
- package/lib/appui-react/layout/widget/TabBar.js +1 -1
- package/lib/appui-react/layout/widget/TabBar.js.map +1 -1
- package/lib/appui-react/layout/widget-panels/Grip.js +1 -1
- package/lib/appui-react/layout/widget-panels/Grip.js.map +1 -1
- package/lib/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
- package/lib/appui-react/layout/widget-panels/useAnimatePanel.d.ts.map +1 -1
- package/lib/appui-react/layout/widget-panels/useAnimatePanel.js +3 -3
- package/lib/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
- package/lib/appui-react/messages/MessageRenderer.d.ts.map +1 -1
- package/lib/appui-react/messages/MessageRenderer.js +1 -1
- package/lib/appui-react/messages/MessageRenderer.js.map +1 -1
- package/lib/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/appui-react/pickers/ListPicker.js +1 -1
- package/lib/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/appui-react/pickers/ListPicker.scss +10 -0
- package/lib/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
- package/lib/appui-react/settings/quantityformatting/QuantityFormat.js +1 -1
- package/lib/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/appui-react/statusbar/popup/Popup.js +1 -1
- package/lib/appui-react/statusbar/popup/Popup.js.map +1 -1
- package/lib/appui-react/statusbar/popup/StatusBarPopover.js +1 -1
- package/lib/appui-react/statusbar/popup/StatusBarPopover.js.map +1 -1
- package/lib/appui-react/statusfields/SnapMode.js +1 -1
- package/lib/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +1 -1
- package/lib/appui-react/toolbar/new-toolbars/ToolGroup.js.map +1 -1
- package/lib/appui-react/toolbar/new-toolbars/useOverflow.js +2 -2
- package/lib/appui-react/toolbar/new-toolbars/useOverflow.js.map +1 -1
- package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/appui-react/uiprovider/ComponentGenerator.d.ts.map +1 -1
- package/lib/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/appui-react/widget-panels/ToolSettings.d.ts +1 -1
- package/lib/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
- package/lib/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/layout/StandardLayout.scss +0 -1
- package/lib/cjs/appui-react/pickers/ListPicker.scss +10 -0
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +1 -1
- package/lib/esm/appui-react/layout/StandardLayout.scss +0 -1
- package/lib/esm/appui-react/pickers/ListPicker.scss +10 -0
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +1 -1
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolAssistanceField.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/toolassistance/ToolAssistanceField.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 Notification\n */\n\nimport { Logger, ProcessDetector } from \"@itwin/core-bentley\";\nimport type {\n ToolAssistanceInstruction,\n ToolAssistanceInstructions,\n ToolAssistanceKeyboardInfo,\n ToolAssistanceSection,\n} from \"@itwin/core-frontend\";\nimport {\n ToolAssistanceImage,\n ToolAssistanceInputMethod,\n} from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { FillCentered, Icon } from \"@itwin/core-react\";\nimport { Button, Tabs, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { UiFramework } from \"../../UiFramework.js\";\nimport { useCursorPrompt } from \"../../cursor/cursorprompt/CursorPrompt.js\";\nimport { MessageManager } from \"../../messages/MessageManager.js\";\nimport { UiStateStorageContext } from \"../../uistate/useUiStateStorage.js\";\nimport \"./ToolAssistanceField.scss\";\n\nimport {\n SvgAdd,\n SvgClose,\n SvgCursorClick,\n SvgGestureOneFingerDrag,\n SvgGestureOneFingerTap,\n SvgGestureOneFingerTapDouble,\n SvgGesturePinch,\n SvgGestureTwoFingerDrag,\n SvgGestureTwoFingerTap,\n SvgMouseClickLeft,\n SvgMouseClickRight,\n SvgMouseClickWheel,\n SvgPin,\n} from \"@itwin/itwinui-icons-react\";\nimport { ToolAssistanceDialog } from \"../../layout/footer/tool-assistance/Dialog.js\";\nimport { ToolAssistanceInstruction as NZ_ToolAssistanceInstruction } from \"../../layout/footer/tool-assistance/Instruction.js\";\nimport { ToolAssistanceItem } from \"../../layout/footer/tool-assistance/Item.js\";\nimport { ToolAssistanceSeparator } from \"../../layout/footer/tool-assistance/Separator.js\";\nimport { StatusBarDialog } from \"../../statusbar/dialog/Dialog.js\";\nimport { StatusBarPopover } from \"../../statusbar/popup/StatusBarPopover.js\";\nimport {\n type UiStateStorage,\n UiStateStorageStatus,\n} from \"../../uistate/UiStateStorage.js\";\nimport { SvgTouchCursorPoint } from \"../../icons/SvgTouchCursorPoint.js\";\nimport { SvgTouchCursorPan } from \"../../icons/SvgTouchCursorPan.js\";\nimport { SvgMouseClickLeftDrag } from \"../../icons/SvgMouseClickLeftDrag.js\";\nimport { SvgMouseClickRightDrag } from \"../../icons/SvgMouseClickRightDrag.js\";\nimport { SvgMouseClickWheelDrag } from \"../../icons/SvgMouseClickWheelDrag.js\";\nimport { useTranslation } from \"../../hooks/useTranslation.js\";\nimport { useActiveTool } from \"../../hooks/useActiveTool.js\";\nimport { useControlledState } from \"../../hooks/useControlledState.js\";\n\n/** Properties of [[ToolAssistanceField]] component.\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface ToolAssistanceFieldProps extends CommonProps {\n /** Indicates whether to include promptAtCursor Checkbox. Defaults to `true`. */\n includePromptAtCursor: boolean;\n /** Optional parameter for persistent UI settings. Defaults to `UiStateStorageContext`. */\n uiStateStorage?: UiStateStorage;\n /** Cursor prompt timeout period. Defaults to `5000`.\n * @note Specify `Number.POSITIVE_INFINITY` to keep the cursor prompt open indefinitely.\n */\n cursorPromptTimeout: number;\n /** Fade out the cursor prompt when closed. */\n fadeOutCursorPrompt: boolean;\n /** Indicates whether to show promptAtCursor by default. Defaults to `false`. */\n defaultPromptAtCursor: boolean;\n /** When set to `true` will show prompt at cursor only when the content area is hovered. */\n promptAtContent?: boolean;\n}\n\ntype PopoverProps = React.ComponentProps<typeof StatusBarPopover>;\n\ninterface Props\n extends Omit<\n ToolAssistanceFieldProps,\n | \"includePromptAtCursor\"\n | \"cursorPromptTimeout\"\n | \"fadeOutCursorPrompt\"\n | \"defaultPromptAtCursor\"\n >,\n Partial<\n Pick<\n ToolAssistanceFieldProps,\n | \"includePromptAtCursor\"\n | \"cursorPromptTimeout\"\n | \"fadeOutCursorPrompt\"\n | \"defaultPromptAtCursor\"\n >\n >,\n Pick<PopoverProps, \"visible\" | \"onVisibleChange\"> {\n /**\n * Controlled flag for whether the popover is pinned.\n */\n pinned?: boolean;\n /**\n * Callback invoked every time the popover is pinned or unpinned as a result\n * of internal logic. Should be used alongside `pinned` prop.\n */\n onPinnedChange?: (pinned: boolean) => void;\n}\n\ninterface ToolAssistanceFieldState {\n instructions: ToolAssistanceInstructions | undefined;\n toolIconSpec: string;\n showPromptAtCursor: boolean;\n mouseTouchTabIndex: number;\n}\n\nconst toolAssistanceKey = \"ToolAssistance\";\nconst showPromptAtCursorKey = \"showPromptAtCursor\";\nconst mouseTouchTabIndexKey = \"mouseTouchTabIndex\";\n\n/** Tool Assistance Field React component.\n * @public\n * @note Tool assistance field will only display 30 characters in the status bar. Any additional text will be hidden. The full text will always be shown in the opened popover.\n */\nexport function ToolAssistanceField(props: Props) {\n const {\n includePromptAtCursor = true,\n cursorPromptTimeout = 5000,\n fadeOutCursorPrompt = true,\n defaultPromptAtCursor = false,\n uiStateStorage: uiStateStorageProp,\n promptAtContent = false,\n visible: visibleProp,\n onVisibleChange,\n pinned: pinnedProp,\n onPinnedChange,\n } = props;\n const uiStateStorageCtx = React.useContext(UiStateStorageContext);\n const uiStateStorage = uiStateStorageProp ?? uiStateStorageCtx;\n const { translate } = useTranslation();\n const activeTool = useActiveTool();\n\n const [state, setState] = React.useState<ToolAssistanceFieldState>(() => {\n return {\n instructions: undefined,\n toolIconSpec: \"\",\n showPromptAtCursor: defaultPromptAtCursor,\n mouseTouchTabIndex: 0,\n };\n });\n\n const { showPromptAtCursor, toolIconSpec, mouseTouchTabIndex, instructions } =\n state;\n const mainInstruction = state.instructions?.mainInstruction.text;\n const { open } = useCursorPrompt({\n show: showPromptAtCursor,\n timeout: cursorPromptTimeout,\n iconSpec: toolIconSpec,\n instruction: mainInstruction,\n fadeOut: fadeOutCursorPrompt,\n promptAtContent,\n });\n\n const handleClose = () => {\n if (pinned) {\n setPinned(false);\n }\n setVisible(false);\n };\n\n const getDisplayableInstructions = (section: ToolAssistanceSection) => {\n const displayableInstructions = section.instructions.filter(\n (instruction) => {\n const includeMouseInstructions = showMouseTouchTabs\n ? mouseTouchTabIndex === 0 && showMouseInstructions\n : showMouseInstructions;\n const includeTouchInstructions = showMouseTouchTabs\n ? mouseTouchTabIndex === 1 && showTouchInstructions\n : showTouchInstructions;\n return (\n isBothInstruction(instruction) ||\n (includeMouseInstructions && isMouseInstruction(instruction)) ||\n (includeTouchInstructions && isTouchInstruction(instruction))\n );\n }\n );\n return displayableInstructions;\n };\n\n React.useEffect(() => {\n void (async () => {\n const result = await uiStateStorage.getSetting(\n toolAssistanceKey,\n showPromptAtCursorKey\n );\n\n if (result.status !== UiStateStorageStatus.Success) return;\n setState((prev) => ({\n ...prev,\n showPromptAtCursor: result.setting,\n }));\n })();\n }, [uiStateStorage]);\n React.useEffect(() => {\n void (async () => {\n const result = await uiStateStorage.getSetting(\n toolAssistanceKey,\n mouseTouchTabIndexKey\n );\n\n if (result.status !== UiStateStorageStatus.Success) return;\n setState((prev) => ({\n ...prev,\n mouseTouchTabIndex: result.setting,\n }));\n })();\n }, [uiStateStorage]);\n React.useEffect(() => {\n return MessageManager.onToolAssistanceChangedEvent.addListener((args) => {\n setState((prev) => ({\n ...prev,\n instructions: args.instructions,\n }));\n open();\n });\n }, [open]);\n React.useEffect(() => {\n return UiFramework.frontstages.onToolIconChangedEvent.addListener(\n (args) => {\n setState((prev) => ({\n ...prev,\n toolIconSpec: args.iconSpec,\n }));\n open();\n }\n );\n }, [open]);\n\n const hasMouseInstructions = !!instructions?.sections?.some((section) => {\n return section.instructions.some((instruction) =>\n isMouseInstruction(instruction)\n );\n });\n const hasTouchInstructions = !!instructions?.sections?.some((section) => {\n return section.instructions.some((instruction) =>\n isTouchInstruction(instruction)\n );\n });\n\n const isMobileBrowser = React.useMemo(() => {\n return ProcessDetector.isMobileBrowser;\n }, []);\n const showMouseInstructions = !isMobileBrowser && hasMouseInstructions;\n const showTouchInstructions = hasTouchInstructions;\n const showMouseTouchTabs = showMouseInstructions && showTouchInstructions;\n\n const sectionInstructions = (instructions?.sections ?? [])\n .map((section) => {\n const displayableInstructions = getDisplayableInstructions(section);\n return {\n displayableInstructions,\n section,\n };\n })\n .filter((section) => {\n return section.displayableInstructions.length > 0;\n });\n\n const prompt = instructions?.mainInstruction.text;\n const tooltip = React.useMemo(() => {\n const lineBreak = \"\\u000d\\u000a\";\n const moreInfo = translate(\"toolAssistance.moreInfo\");\n const postfix = `${lineBreak}${moreInfo}`;\n if (activeTool) {\n return `${activeTool.flyover}${prompt ? ` > ${prompt}` : \"\"}${postfix}`;\n }\n if (prompt) {\n return `${prompt}${postfix}`;\n }\n return moreInfo;\n }, [prompt, activeTool, translate]);\n\n const dialogTitle = activeTool?.flyover ?? translate(\"toolAssistance.title\");\n const tabs = [\n translate(\"toolAssistance.mouse\"),\n translate(\"toolAssistance.touch\"),\n ];\n const [visible, setVisible] = useControlledState(\n false,\n visibleProp,\n onVisibleChange as React.Dispatch<React.SetStateAction<boolean>>\n );\n const [pinned, setPinned] = useControlledState(\n false,\n pinnedProp,\n onPinnedChange as React.Dispatch<React.SetStateAction<boolean>>\n );\n return (\n <StatusBarPopover\n visible={visible}\n onVisibleChange={setVisible}\n closeOnOutsideClick={!pinned}\n content={\n <ToolAssistanceDialog\n buttons={\n <StatusBarDialog.TitleBarButton\n onClick={() => {\n if (pinned) {\n handleClose();\n return;\n }\n setPinned(true);\n }}\n title={translate(pinned ? \"dialog.close\" : \"toolAssistance.pin\")}\n >\n {pinned ? <SvgClose /> : <SvgPin />}\n </StatusBarDialog.TitleBarButton>\n }\n title={dialogTitle}\n >\n <div>\n {showMouseTouchTabs && (\n <Tabs.Wrapper type=\"pill\" value={String(mouseTouchTabIndex)}>\n <Tabs.TabList className=\"uifw-toolAssistance-tabs\">\n {tabs.map((tab, index) => (\n <Tabs.Tab\n key={index}\n className=\"uifw-tab\"\n value={String(index)}\n label={tab}\n onClick={async () => {\n setState((prev) => ({\n ...prev,\n mouseTouchTabIndex: index,\n }));\n void uiStateStorage.saveSetting(\n toolAssistanceKey,\n mouseTouchTabIndexKey,\n index\n );\n }}\n />\n ))}\n </Tabs.TabList>\n </Tabs.Wrapper>\n )}\n {instructions ? (\n <div className=\"uifw-toolAssistance-content\">\n <NZ_ToolAssistanceInstruction\n key=\"main\"\n image={\n <InstructionImage\n instruction={instructions.mainInstruction}\n />\n }\n text={instructions.mainInstruction.text}\n isNew={instructions.mainInstruction.isNew}\n />\n\n {sectionInstructions.map((sectionInstruction, index) => {\n const { section, displayableInstructions } =\n sectionInstruction;\n return (\n <React.Fragment key={index.toString()}>\n <ToolAssistanceSeparator>\n {section.label}\n </ToolAssistanceSeparator>\n {displayableInstructions.map((instruction, index1) => {\n return (\n <NZ_ToolAssistanceInstruction\n key={`${index1.toString()}-${index.toString()}`}\n image={\n <InstructionImage instruction={instruction} />\n }\n text={instruction.text}\n isNew={instruction.isNew}\n />\n );\n })}\n </React.Fragment>\n );\n })}\n\n {includePromptAtCursor && (\n <>\n <ToolAssistanceSeparator key=\"prompt-sep\" />\n <ToolAssistanceItem key=\"prompt-item\">\n <ToggleSwitch\n label={translate(\"toolAssistance.promptAtCursor\")}\n labelPosition=\"right\"\n checked={state.showPromptAtCursor}\n onChange={(e) => {\n const checked = e.target.checked;\n setState((prev) => ({\n ...prev,\n showPromptAtCursor: checked,\n }));\n void uiStateStorage.saveSetting(\n toolAssistanceKey,\n showPromptAtCursorKey,\n checked\n );\n }}\n />\n </ToolAssistanceItem>\n </>\n )}\n </div>\n ) : undefined}\n </div>\n </ToolAssistanceDialog>\n }\n >\n <Button\n styleType=\"borderless\"\n startIcon={\n instructions ? (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <Icon iconSpec={state.toolIconSpec} />\n ) : (\n <></>\n )\n }\n className={classnames(\n \"uifw-statusFields-toolAssistance-toolAssistanceField\",\n props.className\n )}\n title={tooltip}\n style={props.style}\n labelProps={{ className: \"prompt\" }}\n >\n {prompt}\n <StatusBarPopover.ExpandIndicator />\n </Button>\n </StatusBarPopover>\n );\n}\n\nfunction isBothInstruction(instruction: ToolAssistanceInstruction) {\n return (\n instruction.inputMethod === undefined ||\n instruction.inputMethod === ToolAssistanceInputMethod.Both\n );\n}\n\nfunction isMouseInstruction(instruction: ToolAssistanceInstruction) {\n return instruction.inputMethod === ToolAssistanceInputMethod.Mouse;\n}\n\nfunction isTouchInstruction(instruction: ToolAssistanceInstruction) {\n return instruction.inputMethod === ToolAssistanceInputMethod.Touch;\n}\n\nfunction getWebComponentSource(iconSpec: string): string | undefined {\n if (iconSpec.startsWith(\"webSvg:\") && iconSpec.length > 7) {\n return iconSpec.slice(7);\n }\n\n return undefined;\n}\n\nfunction InstructionImage({\n instruction,\n}: {\n instruction: ToolAssistanceInstruction;\n}) {\n let image: React.ReactNode;\n\n if (\n (typeof instruction.image === \"string\" ||\n instruction.image !== ToolAssistanceImage.Keyboard) &&\n instruction.keyboardInfo\n ) {\n if (\n instruction.keyboardInfo.keys.length === 1 &&\n !instruction.keyboardInfo.bottomKeys\n ) {\n const key = instruction.keyboardInfo.keys[0];\n const rightImage =\n typeof instruction.image === \"string\" ? (\n <div className=\"uifw-toolassistance-icon-medium\">\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <Icon iconSpec={instruction.image} />\n </div>\n ) : (\n <InstructionSvgImage instruction={instruction} mediumSize={true} />\n );\n\n image = (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <FillCentered>\n <KeyNode\n keyboardKey={key}\n className=\"uifw-toolassistance-key-modifier\"\n />\n {rightImage}\n </FillCentered>\n );\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"ToolAssistanceField\"),\n `getInstructionImage: Invalid keyboardInfo provided with image`\n );\n }\n } else if (typeof instruction.image === \"string\") {\n if (instruction.image.length > 0) {\n const svgSource = getWebComponentSource(instruction.image);\n const className =\n svgSource !== undefined\n ? \"uifw-toolassistance-svg\"\n : \"uifw-toolassistance-icon-large\";\n image = (\n <div className={className}>\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <Icon iconSpec={svgSource ?? instruction.image} />\n </div>\n );\n }\n } else if (instruction.image === ToolAssistanceImage.Keyboard) {\n if (instruction.keyboardInfo) {\n image = (\n <InstructionKeyboardImage keyboardInfo={instruction.keyboardInfo} />\n );\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"ToolAssistanceField\"),\n `getInstructionImage: ToolAssistanceImage.Keyboard specified but no keyboardInfo provided`\n );\n }\n } else {\n image = (\n <InstructionSvgImage instruction={instruction} mediumSize={false} />\n );\n }\n\n return image;\n}\n\nfunction InstructionSvgImage({\n instruction,\n mediumSize,\n}: {\n instruction: ToolAssistanceInstruction;\n mediumSize: boolean;\n}) {\n let image: React.ReactNode;\n let className = mediumSize\n ? \"uifw-toolassistance-svg-medium\"\n : \"uifw-toolassistance-svg\";\n\n if (\n typeof instruction.image !== \"string\" &&\n instruction.image !== ToolAssistanceImage.Keyboard\n ) {\n const toolAssistanceImage: ToolAssistanceImage = instruction.image;\n let svgImage: React.ReactNode;\n\n switch (toolAssistanceImage) {\n case ToolAssistanceImage.AcceptPoint:\n svgImage = <SvgAdd />;\n break;\n case ToolAssistanceImage.CursorClick:\n svgImage = <SvgCursorClick />;\n break;\n case ToolAssistanceImage.LeftClick:\n svgImage = <SvgMouseClickLeft />;\n break;\n case ToolAssistanceImage.RightClick:\n svgImage = <SvgMouseClickRight />;\n break;\n case ToolAssistanceImage.MouseWheel:\n svgImage = <SvgMouseClickWheel />;\n break;\n case ToolAssistanceImage.LeftClickDrag:\n svgImage = <SvgMouseClickLeftDrag />;\n className = mediumSize\n ? \"uifw-toolassistance-svg-medium-wide\"\n : \"uifw-toolassistance-svg-wide\";\n break;\n case ToolAssistanceImage.RightClickDrag:\n svgImage = <SvgMouseClickRightDrag />;\n className = mediumSize\n ? \"uifw-toolassistance-svg-medium-wide\"\n : \"uifw-toolassistance-svg-wide\";\n break;\n case ToolAssistanceImage.MouseWheelClickDrag:\n svgImage = <SvgMouseClickWheelDrag />;\n className = mediumSize\n ? \"uifw-toolassistance-svg-medium-wide\"\n : \"uifw-toolassistance-svg-wide\";\n break;\n case ToolAssistanceImage.OneTouchTap:\n svgImage = <SvgGestureOneFingerTap />;\n break;\n case ToolAssistanceImage.OneTouchDoubleTap:\n svgImage = <SvgGestureOneFingerTapDouble />;\n break;\n case ToolAssistanceImage.OneTouchDrag:\n svgImage = <SvgGestureOneFingerDrag />;\n break;\n case ToolAssistanceImage.TwoTouchTap:\n svgImage = <SvgGestureTwoFingerTap />;\n break;\n case ToolAssistanceImage.TwoTouchDrag:\n svgImage = <SvgGestureTwoFingerDrag />;\n break;\n case ToolAssistanceImage.TwoTouchPinch:\n svgImage = <SvgGesturePinch />;\n break;\n case ToolAssistanceImage.TouchCursorTap:\n svgImage = <SvgTouchCursorPoint />;\n break;\n case ToolAssistanceImage.TouchCursorDrag:\n svgImage = <SvgTouchCursorPan />;\n className = mediumSize\n ? \"uifw-toolassistance-svg-medium-wide\"\n : \"uifw-toolassistance-svg-wide\";\n break;\n }\n\n image = (\n <div className={className}>\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n {svgImage && <Icon iconSpec={svgImage} />}\n </div>\n );\n }\n\n return image;\n}\n\nfunction InstructionKeyboardImage({\n keyboardInfo,\n}: {\n keyboardInfo: ToolAssistanceKeyboardInfo;\n}) {\n let image: React.ReactNode;\n\n if (keyboardInfo.bottomKeys !== undefined) {\n image = (\n <div className=\"uifw-toolassistance-key-group\">\n <span className=\"row1\">\n {keyboardInfo.keys.map((key, index) => {\n return (\n <KeyNode\n key={index}\n keyboardKey={key}\n className=\"uifw-toolassistance-key-small\"\n />\n );\n })}\n </span>\n <br />\n <span className=\"row2\">\n {keyboardInfo.bottomKeys.map((key, index) => {\n return (\n <KeyNode\n key={index}\n keyboardKey={key}\n className=\"uifw-toolassistance-key-small\"\n />\n );\n })}\n </span>\n </div>\n );\n } else if (keyboardInfo.keys.length === 2) {\n image = (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <FillCentered>\n {keyboardInfo.keys.map((key, index) => {\n let className = \"uifw-toolassistance-key-medium\";\n if (key.length > 1) className = \"uifw-toolassistance-key-modifier\";\n return (\n <KeyNode key={index} keyboardKey={key} className={className} />\n );\n })}\n </FillCentered>\n );\n } else if (keyboardInfo.keys[0]) {\n if (keyboardInfo.keys[0].length > 1)\n image = (\n <KeyNode\n keyboardKey={keyboardInfo.keys[0]}\n className=\"uifw-toolassistance-key-large\"\n />\n );\n else image = <KeyNode keyboardKey={keyboardInfo.keys[0]} />;\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"ToolAssistanceField\"),\n `ToolAssistanceImage.Keyboard specified but ToolAssistanceKeyboardInfo not valid`\n );\n }\n\n return image;\n}\n\nfunction KeyNode({\n keyboardKey,\n className,\n}: {\n keyboardKey: string;\n className?: string;\n}) {\n return (\n <div className={classnames(\"uifw-toolassistance-key\", className)}>\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <FillCentered>{keyboardKey}</FillCentered>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ToolAssistanceField.js","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/toolassistance/ToolAssistanceField.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 Notification\n */\n\nimport { Logger, ProcessDetector } from \"@itwin/core-bentley\";\nimport type {\n ToolAssistanceInstruction,\n ToolAssistanceInstructions,\n ToolAssistanceKeyboardInfo,\n ToolAssistanceSection,\n} from \"@itwin/core-frontend\";\nimport {\n ToolAssistanceImage,\n ToolAssistanceInputMethod,\n} from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { FillCentered, Icon } from \"@itwin/core-react\";\nimport { Button, Tabs, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { UiFramework } from \"../../UiFramework.js\";\nimport { useCursorPrompt } from \"../../cursor/cursorprompt/CursorPrompt.js\";\nimport { MessageManager } from \"../../messages/MessageManager.js\";\nimport { UiStateStorageContext } from \"../../uistate/useUiStateStorage.js\";\nimport \"./ToolAssistanceField.scss\";\n\nimport {\n SvgAdd,\n SvgClose,\n SvgCursorClick,\n SvgGestureOneFingerDrag,\n SvgGestureOneFingerTap,\n SvgGestureOneFingerTapDouble,\n SvgGesturePinch,\n SvgGestureTwoFingerDrag,\n SvgGestureTwoFingerTap,\n SvgMouseClickLeft,\n SvgMouseClickRight,\n SvgMouseClickWheel,\n SvgPin,\n} from \"@itwin/itwinui-icons-react\";\nimport { ToolAssistanceDialog } from \"../../layout/footer/tool-assistance/Dialog.js\";\nimport { ToolAssistanceInstruction as NZ_ToolAssistanceInstruction } from \"../../layout/footer/tool-assistance/Instruction.js\";\nimport { ToolAssistanceItem } from \"../../layout/footer/tool-assistance/Item.js\";\nimport { ToolAssistanceSeparator } from \"../../layout/footer/tool-assistance/Separator.js\";\nimport { StatusBarDialog } from \"../../statusbar/dialog/Dialog.js\";\nimport { StatusBarPopover } from \"../../statusbar/popup/StatusBarPopover.js\";\nimport {\n type UiStateStorage,\n UiStateStorageStatus,\n} from \"../../uistate/UiStateStorage.js\";\nimport { SvgTouchCursorPoint } from \"../../icons/SvgTouchCursorPoint.js\";\nimport { SvgTouchCursorPan } from \"../../icons/SvgTouchCursorPan.js\";\nimport { SvgMouseClickLeftDrag } from \"../../icons/SvgMouseClickLeftDrag.js\";\nimport { SvgMouseClickRightDrag } from \"../../icons/SvgMouseClickRightDrag.js\";\nimport { SvgMouseClickWheelDrag } from \"../../icons/SvgMouseClickWheelDrag.js\";\nimport { useTranslation } from \"../../hooks/useTranslation.js\";\nimport { useActiveTool } from \"../../hooks/useActiveTool.js\";\nimport { useControlledState } from \"../../hooks/useControlledState.js\";\n\n/** Properties of [[ToolAssistanceField]] component.\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface ToolAssistanceFieldProps extends CommonProps {\n /** Indicates whether to include promptAtCursor Checkbox. Defaults to `true`. */\n includePromptAtCursor: boolean;\n /** Optional parameter for persistent UI settings. Defaults to `UiStateStorageContext`. */\n uiStateStorage?: UiStateStorage;\n /** Cursor prompt timeout period. Defaults to `5000`.\n * @note Specify `Number.POSITIVE_INFINITY` to keep the cursor prompt open indefinitely.\n */\n cursorPromptTimeout: number;\n /** Fade out the cursor prompt when closed. */\n fadeOutCursorPrompt: boolean;\n /** Indicates whether to show promptAtCursor by default. Defaults to `false`. */\n defaultPromptAtCursor: boolean;\n /** When set to `true` will show prompt at cursor only when the content area is hovered. */\n promptAtContent?: boolean;\n}\n\ntype PopoverProps = React.ComponentProps<typeof StatusBarPopover>;\n\ninterface Props\n extends Omit<\n ToolAssistanceFieldProps,\n | \"includePromptAtCursor\"\n | \"cursorPromptTimeout\"\n | \"fadeOutCursorPrompt\"\n | \"defaultPromptAtCursor\"\n >,\n Partial<\n Pick<\n ToolAssistanceFieldProps,\n | \"includePromptAtCursor\"\n | \"cursorPromptTimeout\"\n | \"fadeOutCursorPrompt\"\n | \"defaultPromptAtCursor\"\n >\n >,\n Pick<PopoverProps, \"visible\" | \"onVisibleChange\"> {\n /**\n * Controlled flag for whether the popover is pinned.\n */\n pinned?: boolean;\n /**\n * Callback invoked every time the popover is pinned or unpinned as a result\n * of internal logic. Should be used alongside `pinned` prop.\n */\n onPinnedChange?: (pinned: boolean) => void;\n}\n\ninterface ToolAssistanceFieldState {\n instructions: ToolAssistanceInstructions | undefined;\n toolIconSpec: string;\n showPromptAtCursor: boolean;\n mouseTouchTabIndex: number;\n}\n\nconst toolAssistanceKey = \"ToolAssistance\";\nconst showPromptAtCursorKey = \"showPromptAtCursor\";\nconst mouseTouchTabIndexKey = \"mouseTouchTabIndex\";\n\n/** Tool Assistance Field React component.\n * @public\n * @note Tool assistance field will only display 30 characters in the status bar. Any additional text will be hidden. The full text will always be shown in the opened popover.\n */\nexport function ToolAssistanceField(props: Props) {\n const {\n includePromptAtCursor = true,\n cursorPromptTimeout = 5000,\n fadeOutCursorPrompt = true,\n defaultPromptAtCursor = false,\n uiStateStorage: uiStateStorageProp,\n promptAtContent = false,\n visible: visibleProp,\n onVisibleChange,\n pinned: pinnedProp,\n onPinnedChange,\n } = props;\n const uiStateStorageCtx = React.useContext(UiStateStorageContext);\n const uiStateStorage = uiStateStorageProp ?? uiStateStorageCtx;\n const { translate } = useTranslation();\n const activeTool = useActiveTool();\n\n const [state, setState] = React.useState<ToolAssistanceFieldState>(() => {\n return {\n instructions: undefined,\n toolIconSpec: \"\",\n showPromptAtCursor: defaultPromptAtCursor,\n mouseTouchTabIndex: 0,\n };\n });\n\n const { showPromptAtCursor, toolIconSpec, mouseTouchTabIndex, instructions } =\n state;\n const mainInstruction = state.instructions?.mainInstruction.text;\n const { open } = useCursorPrompt({\n show: showPromptAtCursor,\n timeout: cursorPromptTimeout,\n iconSpec: toolIconSpec,\n instruction: mainInstruction,\n fadeOut: fadeOutCursorPrompt,\n promptAtContent,\n });\n\n const handleClose = () => {\n if (pinned) {\n setPinned(false);\n }\n setVisible(false);\n };\n\n const getDisplayableInstructions = (section: ToolAssistanceSection) => {\n const displayableInstructions = section.instructions.filter(\n (instruction) => {\n const includeMouseInstructions = showMouseTouchTabs\n ? mouseTouchTabIndex === 0 && showMouseInstructions\n : showMouseInstructions;\n const includeTouchInstructions = showMouseTouchTabs\n ? mouseTouchTabIndex === 1 && showTouchInstructions\n : showTouchInstructions;\n return (\n isBothInstruction(instruction) ||\n (includeMouseInstructions && isMouseInstruction(instruction)) ||\n (includeTouchInstructions && isTouchInstruction(instruction))\n );\n }\n );\n return displayableInstructions;\n };\n\n React.useEffect(() => {\n void (async () => {\n const result = await uiStateStorage.getSetting(\n toolAssistanceKey,\n showPromptAtCursorKey\n );\n\n if (result.status !== UiStateStorageStatus.Success) return;\n setState((prev) => ({\n ...prev,\n showPromptAtCursor: result.setting,\n }));\n })();\n }, [uiStateStorage]);\n React.useEffect(() => {\n void (async () => {\n const result = await uiStateStorage.getSetting(\n toolAssistanceKey,\n mouseTouchTabIndexKey\n );\n\n if (result.status !== UiStateStorageStatus.Success) return;\n setState((prev) => ({\n ...prev,\n mouseTouchTabIndex: result.setting,\n }));\n })();\n }, [uiStateStorage]);\n React.useEffect(() => {\n return MessageManager.onToolAssistanceChangedEvent.addListener((args) => {\n setState((prev) => ({\n ...prev,\n instructions: args.instructions,\n }));\n open();\n });\n }, [open]);\n React.useEffect(() => {\n return UiFramework.frontstages.onToolIconChangedEvent.addListener(\n (args) => {\n setState((prev) => ({\n ...prev,\n toolIconSpec: args.iconSpec,\n }));\n open();\n }\n );\n }, [open]);\n\n const hasMouseInstructions = !!instructions?.sections?.some((section) => {\n return section.instructions.some((instruction) =>\n isMouseInstruction(instruction)\n );\n });\n const hasTouchInstructions = !!instructions?.sections?.some((section) => {\n return section.instructions.some((instruction) =>\n isTouchInstruction(instruction)\n );\n });\n\n const isMobileBrowser = React.useMemo(() => {\n return ProcessDetector.isMobileBrowser;\n }, []);\n const showMouseInstructions = !isMobileBrowser && hasMouseInstructions;\n const showTouchInstructions = hasTouchInstructions;\n const showMouseTouchTabs = showMouseInstructions && showTouchInstructions;\n\n const sectionInstructions = (instructions?.sections ?? [])\n .map((section) => {\n const displayableInstructions = getDisplayableInstructions(section);\n return {\n displayableInstructions,\n section,\n };\n })\n .filter((section) => {\n return section.displayableInstructions.length > 0;\n });\n\n const prompt = instructions?.mainInstruction.text;\n const tooltip = React.useMemo(() => {\n const lineBreak = \"\\u000d\\u000a\";\n const moreInfo = translate(\"toolAssistance.moreInfo\");\n const postfix = `${lineBreak}${moreInfo}`;\n if (activeTool) {\n return `${activeTool.flyover}${prompt ? ` > ${prompt}` : \"\"}${postfix}`;\n }\n if (prompt) {\n return `${prompt}${postfix}`;\n }\n return moreInfo;\n }, [prompt, activeTool, translate]);\n\n const dialogTitle = activeTool?.flyover ?? translate(\"toolAssistance.title\");\n const tabs = [\n translate(\"toolAssistance.mouse\"),\n translate(\"toolAssistance.touch\"),\n ];\n const [visible, setVisible] = useControlledState(\n false,\n visibleProp,\n onVisibleChange as React.Dispatch<React.SetStateAction<boolean>>\n );\n const [pinned, setPinned] = useControlledState(\n false,\n pinnedProp,\n onPinnedChange as React.Dispatch<React.SetStateAction<boolean>>\n );\n return (\n <StatusBarPopover\n visible={visible}\n onVisibleChange={setVisible}\n closeOnOutsideClick={!pinned}\n content={\n <ToolAssistanceDialog\n buttons={\n <StatusBarDialog.TitleBarButton\n onClick={() => {\n if (pinned) {\n handleClose();\n return;\n }\n setPinned(true);\n }}\n title={translate(pinned ? \"dialog.close\" : \"toolAssistance.pin\")}\n >\n {pinned ? <SvgClose /> : <SvgPin />}\n </StatusBarDialog.TitleBarButton>\n }\n title={dialogTitle}\n >\n <div>\n {showMouseTouchTabs && (\n <Tabs.Wrapper type=\"pill\" value={String(mouseTouchTabIndex)}>\n <Tabs.TabList className=\"uifw-toolAssistance-tabs\">\n {tabs.map((tab, index) => (\n <Tabs.Tab\n key={index}\n className=\"uifw-tab\"\n value={String(index)}\n label={tab}\n onClick={async () => {\n setState((prev) => ({\n ...prev,\n mouseTouchTabIndex: index,\n }));\n void uiStateStorage.saveSetting(\n toolAssistanceKey,\n mouseTouchTabIndexKey,\n index\n );\n }}\n />\n ))}\n </Tabs.TabList>\n </Tabs.Wrapper>\n )}\n {instructions ? (\n <div className=\"uifw-toolAssistance-content\">\n <NZ_ToolAssistanceInstruction\n key=\"main\"\n image={\n <InstructionImage\n instruction={instructions.mainInstruction}\n />\n }\n text={instructions.mainInstruction.text}\n isNew={instructions.mainInstruction.isNew}\n />\n\n {sectionInstructions.map((sectionInstruction, index) => {\n const { section, displayableInstructions } =\n sectionInstruction;\n return (\n <React.Fragment key={index.toString()}>\n <ToolAssistanceSeparator>\n {section.label}\n </ToolAssistanceSeparator>\n {displayableInstructions.map((instruction, index1) => {\n return (\n <NZ_ToolAssistanceInstruction\n key={`${index1.toString()}-${index.toString()}`}\n image={\n <InstructionImage instruction={instruction} />\n }\n text={instruction.text}\n isNew={instruction.isNew}\n />\n );\n })}\n </React.Fragment>\n );\n })}\n\n {includePromptAtCursor && (\n <>\n <ToolAssistanceSeparator key=\"prompt-sep\" />\n <ToolAssistanceItem key=\"prompt-item\">\n <ToggleSwitch\n label={translate(\"toolAssistance.promptAtCursor\")}\n labelPosition=\"right\"\n checked={state.showPromptAtCursor}\n onChange={(e) => {\n const checked = e.target.checked;\n setState((prev) => ({\n ...prev,\n showPromptAtCursor: checked,\n }));\n void uiStateStorage.saveSetting(\n toolAssistanceKey,\n showPromptAtCursorKey,\n checked\n );\n }}\n />\n </ToolAssistanceItem>\n </>\n )}\n </div>\n ) : undefined}\n </div>\n </ToolAssistanceDialog>\n }\n >\n <Button\n styleType=\"borderless\"\n startIcon={\n instructions ? (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <Icon iconSpec={state.toolIconSpec} />\n ) : (\n <></>\n )\n }\n className={classnames(\n \"uifw-statusFields-toolAssistance-toolAssistanceField\",\n props.className\n )}\n title={tooltip}\n style={props.style}\n labelProps={{ className: \"prompt\" }}\n >\n {prompt}\n <StatusBarPopover.ExpandIndicator />\n </Button>\n </StatusBarPopover>\n );\n}\n\nfunction isBothInstruction(instruction: ToolAssistanceInstruction) {\n return (\n instruction.inputMethod === undefined ||\n instruction.inputMethod === ToolAssistanceInputMethod.Both\n );\n}\n\nfunction isMouseInstruction(instruction: ToolAssistanceInstruction) {\n return instruction.inputMethod === ToolAssistanceInputMethod.Mouse;\n}\n\nfunction isTouchInstruction(instruction: ToolAssistanceInstruction) {\n return instruction.inputMethod === ToolAssistanceInputMethod.Touch;\n}\n\nfunction getWebComponentSource(iconSpec: string): string | undefined {\n if (iconSpec.startsWith(\"webSvg:\") && iconSpec.length > 7) {\n return iconSpec.slice(7);\n }\n\n return undefined;\n}\n\nfunction InstructionImage({\n instruction,\n}: {\n instruction: ToolAssistanceInstruction;\n}): React.ReactNode {\n let image: React.ReactNode;\n\n if (\n (typeof instruction.image === \"string\" ||\n instruction.image !== ToolAssistanceImage.Keyboard) &&\n instruction.keyboardInfo\n ) {\n if (\n instruction.keyboardInfo.keys.length === 1 &&\n !instruction.keyboardInfo.bottomKeys\n ) {\n const key = instruction.keyboardInfo.keys[0];\n const rightImage =\n typeof instruction.image === \"string\" ? (\n <div className=\"uifw-toolassistance-icon-medium\">\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <Icon iconSpec={instruction.image} />\n </div>\n ) : (\n <InstructionSvgImage instruction={instruction} mediumSize={true} />\n );\n\n image = (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <FillCentered>\n <KeyNode\n keyboardKey={key}\n className=\"uifw-toolassistance-key-modifier\"\n />\n {rightImage}\n </FillCentered>\n );\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"ToolAssistanceField\"),\n `getInstructionImage: Invalid keyboardInfo provided with image`\n );\n }\n } else if (typeof instruction.image === \"string\") {\n if (instruction.image.length > 0) {\n const svgSource = getWebComponentSource(instruction.image);\n const className =\n svgSource !== undefined\n ? \"uifw-toolassistance-svg\"\n : \"uifw-toolassistance-icon-large\";\n image = (\n <div className={className}>\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <Icon iconSpec={svgSource ?? instruction.image} />\n </div>\n );\n }\n } else if (instruction.image === ToolAssistanceImage.Keyboard) {\n if (instruction.keyboardInfo) {\n image = (\n <InstructionKeyboardImage keyboardInfo={instruction.keyboardInfo} />\n );\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"ToolAssistanceField\"),\n `getInstructionImage: ToolAssistanceImage.Keyboard specified but no keyboardInfo provided`\n );\n }\n } else {\n image = (\n <InstructionSvgImage instruction={instruction} mediumSize={false} />\n );\n }\n\n return image;\n}\n\nfunction InstructionSvgImage({\n instruction,\n mediumSize,\n}: {\n instruction: ToolAssistanceInstruction;\n mediumSize: boolean;\n}): React.ReactNode {\n let image: React.ReactNode;\n let className = mediumSize\n ? \"uifw-toolassistance-svg-medium\"\n : \"uifw-toolassistance-svg\";\n\n if (\n typeof instruction.image !== \"string\" &&\n instruction.image !== ToolAssistanceImage.Keyboard\n ) {\n const toolAssistanceImage: ToolAssistanceImage = instruction.image;\n let svgImage: React.ReactNode;\n\n switch (toolAssistanceImage) {\n case ToolAssistanceImage.AcceptPoint:\n svgImage = <SvgAdd />;\n break;\n case ToolAssistanceImage.CursorClick:\n svgImage = <SvgCursorClick />;\n break;\n case ToolAssistanceImage.LeftClick:\n svgImage = <SvgMouseClickLeft />;\n break;\n case ToolAssistanceImage.RightClick:\n svgImage = <SvgMouseClickRight />;\n break;\n case ToolAssistanceImage.MouseWheel:\n svgImage = <SvgMouseClickWheel />;\n break;\n case ToolAssistanceImage.LeftClickDrag:\n svgImage = <SvgMouseClickLeftDrag />;\n className = mediumSize\n ? \"uifw-toolassistance-svg-medium-wide\"\n : \"uifw-toolassistance-svg-wide\";\n break;\n case ToolAssistanceImage.RightClickDrag:\n svgImage = <SvgMouseClickRightDrag />;\n className = mediumSize\n ? \"uifw-toolassistance-svg-medium-wide\"\n : \"uifw-toolassistance-svg-wide\";\n break;\n case ToolAssistanceImage.MouseWheelClickDrag:\n svgImage = <SvgMouseClickWheelDrag />;\n className = mediumSize\n ? \"uifw-toolassistance-svg-medium-wide\"\n : \"uifw-toolassistance-svg-wide\";\n break;\n case ToolAssistanceImage.OneTouchTap:\n svgImage = <SvgGestureOneFingerTap />;\n break;\n case ToolAssistanceImage.OneTouchDoubleTap:\n svgImage = <SvgGestureOneFingerTapDouble />;\n break;\n case ToolAssistanceImage.OneTouchDrag:\n svgImage = <SvgGestureOneFingerDrag />;\n break;\n case ToolAssistanceImage.TwoTouchTap:\n svgImage = <SvgGestureTwoFingerTap />;\n break;\n case ToolAssistanceImage.TwoTouchDrag:\n svgImage = <SvgGestureTwoFingerDrag />;\n break;\n case ToolAssistanceImage.TwoTouchPinch:\n svgImage = <SvgGesturePinch />;\n break;\n case ToolAssistanceImage.TouchCursorTap:\n svgImage = <SvgTouchCursorPoint />;\n break;\n case ToolAssistanceImage.TouchCursorDrag:\n svgImage = <SvgTouchCursorPan />;\n className = mediumSize\n ? \"uifw-toolassistance-svg-medium-wide\"\n : \"uifw-toolassistance-svg-wide\";\n break;\n }\n\n image = (\n <div className={className}>\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n {svgImage && <Icon iconSpec={svgImage} />}\n </div>\n );\n }\n\n return image;\n}\n\nfunction InstructionKeyboardImage({\n keyboardInfo,\n}: {\n keyboardInfo: ToolAssistanceKeyboardInfo;\n}): React.ReactNode {\n let image: React.ReactNode;\n\n if (keyboardInfo.bottomKeys !== undefined) {\n image = (\n <div className=\"uifw-toolassistance-key-group\">\n <span className=\"row1\">\n {keyboardInfo.keys.map((key, index) => {\n return (\n <KeyNode\n key={index}\n keyboardKey={key}\n className=\"uifw-toolassistance-key-small\"\n />\n );\n })}\n </span>\n <br />\n <span className=\"row2\">\n {keyboardInfo.bottomKeys.map((key, index) => {\n return (\n <KeyNode\n key={index}\n keyboardKey={key}\n className=\"uifw-toolassistance-key-small\"\n />\n );\n })}\n </span>\n </div>\n );\n } else if (keyboardInfo.keys.length === 2) {\n image = (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <FillCentered>\n {keyboardInfo.keys.map((key, index) => {\n let className = \"uifw-toolassistance-key-medium\";\n if (key.length > 1) className = \"uifw-toolassistance-key-modifier\";\n return (\n <KeyNode key={index} keyboardKey={key} className={className} />\n );\n })}\n </FillCentered>\n );\n } else if (keyboardInfo.keys[0]) {\n if (keyboardInfo.keys[0].length > 1)\n image = (\n <KeyNode\n keyboardKey={keyboardInfo.keys[0]}\n className=\"uifw-toolassistance-key-large\"\n />\n );\n else image = <KeyNode keyboardKey={keyboardInfo.keys[0]} />;\n } else {\n Logger.logError(\n UiFramework.loggerCategory(\"ToolAssistanceField\"),\n `ToolAssistanceImage.Keyboard specified but ToolAssistanceKeyboardInfo not valid`\n );\n }\n\n return image;\n}\n\nfunction KeyNode({\n keyboardKey,\n className,\n}: {\n keyboardKey: string;\n className?: string;\n}) {\n return (\n <div className={classnames(\"uifw-toolassistance-key\", className)}>\n {/* eslint-disable-next-line @typescript-eslint/no-deprecated */}\n <FillCentered>{keyboardKey}</FillCentered>\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolGroup.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/new-toolbars/ToolGroup.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ToolGroup.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/new-toolbars/ToolGroup.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 Toolbar\n */\n\nimport \"./ToolGroup.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { OverflowButton } from \"./OverflowButton.js\";\nimport { useOverflow } from \"./useOverflow.js\";\nimport { getChildKey } from \"../../layout/tool-settings/Docked.js\";\nimport { ToolbarContext } from \"./Toolbar.js\";\nimport { Surface } from \"./Surface.js\";\nimport { useSafeContext } from \"../../hooks/useSafeContext.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-deprecated\ninterface ToolGroupProps extends CommonProps {\n children?: React.ReactNode;\n}\n\ntype Child = ReturnType<typeof React.Children.toArray>[0];\n\n/** @internal */\nexport function ToolGroup({ children, className, ...props }: ToolGroupProps) {\n const { panelAlignment, orientation } = useSafeContext(ToolbarContext);\n const childrenArray = React.Children.toArray(children);\n\n const keyToChildMap = childrenArray.reduce<Map<string, Child>>(\n (acc, child, index) => {\n const childKey = getChildKey(child, index);\n acc.set(childKey, child);\n return acc;\n },\n new Map()\n );\n const childrenKeys = Array.from(keyToChildMap.keys());\n const itemRefs = React.useRef<Map<string, Element>>(new Map());\n const overflowRef = React.useRef<HTMLButtonElement>(null);\n\n const getItemSize = React.useCallback((item: string) => {\n const element = itemRefs.current.get(item);\n if (!element) return { width: 0, height: 0 };\n\n const elementSize = element.getBoundingClientRect();\n\n const separatorSize = getSeparatorSize(element);\n if (!separatorSize) return elementSize;\n\n return {\n width: elementSize.width + separatorSize.width,\n height: elementSize.height + separatorSize.height,\n };\n }, []);\n const getOverflowSize = React.useCallback(() => {\n const element = overflowRef.current;\n if (!element) return { width: 0, height: 0 };\n return element.getBoundingClientRect();\n }, []);\n\n const [containerRef, componentRef, visibleCount, renderOverflow] =\n useOverflow(childrenKeys, orientation, getItemSize, getOverflowSize);\n\n const keyToChildEntries = Array.from(keyToChildMap.entries());\n const visibleChildren = keyToChildEntries.slice(0, visibleCount);\n const overflown = keyToChildEntries.slice(visibleCount);\n return (\n <div\n className={classnames(\n \"uifw-toolbar-group-toolGroup_container\",\n `uifw-${orientation}`,\n `uifw-${panelAlignment}`,\n className\n )}\n ref={containerRef}\n >\n <Surface orientation={orientation} ref={componentRef} {...props}>\n {visibleChildren.map(([item, child]): React.ReactNode => {\n if (!React.isValidElement<{ ref: React.Ref<Element> }>(child))\n return child;\n return React.cloneElement(child, {\n ref: (el: Element | null) => {\n if (!el) {\n itemRefs.current.delete(item);\n return;\n }\n itemRefs.current.set(item, el);\n },\n });\n })}\n {renderOverflow && (\n <OverflowButton ref={overflowRef}>\n {overflown.map(([_, child]): Child => child)}\n </OverflowButton>\n )}\n </Surface>\n </div>\n );\n}\n\n// First item in the group reserves space for the separator to correctly calculate the overflow.\nfunction getSeparatorSize(toolbarItem: Element) {\n const firstInGroup = isFirstInGroup(toolbarItem);\n if (!firstInGroup) return undefined;\n\n // Last group does not have a separator.\n if (isLastGroup(toolbarItem)) return undefined;\n\n const separator = getSeparator(toolbarItem);\n if (!separator) return undefined;\n\n return separator.getBoundingClientRect();\n}\n\n// Returns if the toolbar item is the first in its group.\nfunction isFirstInGroup(toolbarItem: Element) {\n const prev = toolbarItem.previousElementSibling;\n if (prev?.tagName === \"BUTTON\") return false;\n return true;\n}\n\n// Returns if the toolbar item is in the last group of the toolbar.\nfunction isLastGroup(toolbarItem: Element) {\n let el = toolbarItem.nextElementSibling;\n while (el) {\n if (el.tagName === \"BUTTON\" && el.hasAttribute(\"data-item-id\")) {\n return false;\n }\n el = el.nextElementSibling;\n }\n return true;\n}\n\n// Returns the first separator element after the toolbar item, if it exists.\nfunction getSeparator(toolbarItem: Element) {\n let el = toolbarItem.nextElementSibling;\n while (el) {\n if (el.classList.contains(\"uifw-toolbar-newToolbars-separator\")) {\n return el;\n }\n el = el.nextElementSibling;\n }\n return undefined;\n}\n"]}
|
|
@@ -11,8 +11,8 @@ import { useResizeObserver } from "@itwin/core-react/internal";
|
|
|
11
11
|
export const useOverflow = (allItems, orientation, getItemSize, getOverflowSize) => {
|
|
12
12
|
const [visible, setVisible] = React.useState(allItems.length);
|
|
13
13
|
const [calculate, setCalculate] = React.useState(false);
|
|
14
|
-
const containerSizeRef = React.useRef();
|
|
15
|
-
const componentSizeRef = React.useRef();
|
|
14
|
+
const containerSizeRef = React.useRef(undefined);
|
|
15
|
+
const componentSizeRef = React.useRef(undefined);
|
|
16
16
|
const [prevOrientation, setPrevOrientation] = React.useState(orientation);
|
|
17
17
|
if (prevOrientation !== orientation) {
|
|
18
18
|
setPrevOrientation(orientation);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOverflow.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/new-toolbars/useOverflow.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,gBAAgB;AAChB,MAAM,CAAC,MAAM,WAAW,GAAG,CAIzB,QAA+B,EAC/B,WAAwB,EACxB,WAAwC,EACxC,eAAgC,EAChC,EAAE;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"useOverflow.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/new-toolbars/useOverflow.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,gBAAgB;AAChB,MAAM,CAAC,MAAM,WAAW,GAAG,CAIzB,QAA+B,EAC/B,WAAwB,EACxB,WAAwC,EACxC,eAAgC,EAChC,EAAE;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAwB,SAAS,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAwB,SAAS,CAAC,CAAC;IAExE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC1E,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;QACpC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAChC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,YAAY,CAAC,KAAK,CAAC,CAAC;QAEpB,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO;YAC5C,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC;YAClD,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO;QAExC,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO;YAC5C,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC;YAClD,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO;QAExC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,EAAE,EAAE,WAAW,CAAC,CAAC;QAE/D,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;QACjE,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;YAC9B,eAAe;YACf,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;YAClC,wBAAwB;YACxB,UAAU,CAAC,CAAC,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,YAAY,CAAC;QAC7B,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,SAAS,IAAI,IAAI,CAAC;YAClB,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;gBAC/B,MAAM;YACR,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QACD,UAAU,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,iBAAiB,CACtC,KAAK,CAAC,WAAW,CACf,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO;YACrC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC;YAClD,CAAC,CAAC,SAAS,CAAC;QACd,gBAAgB,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEnE,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO;QACjC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,WAAW,CAAC,CACd,CACF,CAAC;IACF,MAAM,cAAc,GAAG,iBAAiB,CACtC,KAAK,CAAC,WAAW,CACf,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO;YACrC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC;YAClD,CAAC,CAAC,SAAS,CAAC;QACd,gBAAgB,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEnE,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO;QACjC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,WAAW,CAAC,CACd,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,SAAS,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;IACxD,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3D,OAAO,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC;AAC3E,CAAC,CAAC;AAEF,SAAS,SAAS,CAChB,IAAuC,EACvC,WAAwB;IAExB,OAAO,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACjE,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 Toolbar\n */\n\nimport * as React from \"react\";\nimport { useResizeObserver } from \"@itwin/core-react/internal\";\nimport type { SizeProps } from \"../../utils/SizeProps.js\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\n\n/** @internal */\nexport const useOverflow = <\n TContainer extends HTMLElement,\n TComponent extends HTMLElement\n>(\n allItems: ReadonlyArray<string>,\n orientation: Orientation,\n getItemSize: (item: string) => SizeProps,\n getOverflowSize: () => SizeProps\n) => {\n const [visible, setVisible] = React.useState(allItems.length);\n const [calculate, setCalculate] = React.useState(false);\n const containerSizeRef = React.useRef<SizeProps | undefined>(undefined);\n const componentSizeRef = React.useRef<SizeProps | undefined>(undefined);\n\n const [prevOrientation, setPrevOrientation] = React.useState(orientation);\n if (prevOrientation !== orientation) {\n setPrevOrientation(orientation);\n setCalculate(true);\n }\n\n React.useLayoutEffect(() => {\n if (!calculate) return;\n setCalculate(false);\n\n const containerSize = containerSizeRef.current\n ? getLength(containerSizeRef.current, orientation)\n : undefined;\n if (containerSize === undefined) return;\n\n const componentSize = componentSizeRef.current\n ? getLength(componentSizeRef.current, orientation)\n : undefined;\n if (componentSize === undefined) return;\n\n const itemSizes = allItems.map((item) => {\n const size = getItemSize(item);\n return getLength(size, orientation);\n });\n const overflowSize = getLength(getOverflowSize(), orientation);\n\n const otherSize = itemSizes.reduce((acc, size) => acc + size, 0);\n if (otherSize < containerSize) {\n // No overflow.\n setVisible(itemSizes.length);\n return;\n }\n\n if (overflowSize >= containerSize) {\n // Render only overflow.\n setVisible(0);\n return;\n }\n\n let totalSize = overflowSize;\n let newVisible = 0;\n for (const size of itemSizes) {\n totalSize += size;\n if (totalSize >= containerSize) {\n break;\n }\n newVisible++;\n }\n setVisible(newVisible);\n }, [calculate, allItems, getItemSize, getOverflowSize, orientation]);\n const containerRoRef = useResizeObserver<TContainer>(\n React.useCallback(\n (width: number, height: number) => {\n const length = containerSizeRef.current\n ? getLength(containerSizeRef.current, orientation)\n : undefined;\n containerSizeRef.current = { width, height };\n const newLength = getLength(containerSizeRef.current, orientation);\n\n if (newLength === length) return;\n setCalculate(true);\n },\n [orientation]\n )\n );\n const componentRoRef = useResizeObserver<TComponent>(\n React.useCallback(\n (width: number, height: number) => {\n const length = componentSizeRef.current\n ? getLength(componentSizeRef.current, orientation)\n : undefined;\n componentSizeRef.current = { width, height };\n const newLength = getLength(componentSizeRef.current, orientation);\n\n if (newLength === length) return;\n setCalculate(true);\n },\n [orientation]\n )\n );\n\n const overflow = calculate || visible < allItems.length;\n const visibleItems = calculate ? allItems.length : visible;\n return [containerRoRef, componentRoRef, visibleItems, overflow] as const;\n};\n\nfunction getLength(\n size: { width: number; height: number },\n orientation: Orientation\n) {\n return orientation === \"horizontal\" ? size.width : size.height;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractUiItemsManager.js","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/AbstractUiItemsManager.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 UiProvider\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated, @typescript-eslint/ban-ts-comment */\n\nimport * as abstract from \"@itwin/appui-abstract\";\nimport type { BeUiEvent } from \"@itwin/core-bentley\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { IconSpec } from \"@itwin/core-react\";\nimport type { BadgeKind } from \"@itwin/core-react/internal\";\nimport { BadgeType, IconHelper } from \"@itwin/core-react\";\nimport type {\n // @ts-ignore Removed in 4.0\n BackstageItem as AbstractBackstageItem,\n // @ts-ignore Removed in 4.0\n CommonStatusBarItem as AbstractStatusBarItem,\n CommonToolbarItem as AbstractToolbarItem,\n // @ts-ignore Removed in 4.0\n UiItemsManager as AbstractUiItemsManagerType,\n // @ts-ignore Removed in 4.0\n UiItemsProvider as AbstractUiItemsProvider,\n // @ts-ignore Removed in 4.0\n AbstractWidgetProps as AbstractWidget,\n} from \"@itwin/appui-abstract\";\nimport type {\n UiItemsManager,\n UiItemsProviderOverrides,\n UiItemsProviderRegisteredEventArgs,\n} from \"./UiItemsManager.js\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation.js\";\nimport { StagePanelSection } from \"../stagepanels/StagePanelSection.js\";\nimport type { Widget } from \"../widgets/Widget.js\";\nimport type { ProviderItem } from \"./ProviderItem.js\";\nimport type { UiItemsProvider } from \"./UiItemsProvider.js\";\nimport type {\n ToolbarItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"../toolbar/ToolbarItem.js\";\nimport {\n isToolbarActionItem,\n isToolbarGroupItem,\n} from \"../toolbar/ToolbarItem.js\";\nimport type { BackstageItem } from \"../backstage/BackstageItem.js\";\nimport type { StatusBarItem } from \"../statusbar/StatusBarItem.js\";\nimport { isStatusBarCustomItem } from \"../statusbar/StatusBarItem.js\";\n\nconst _abstract = abstract;\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nconst AbstractUiItemsManager: typeof AbstractUiItemsManagerType | undefined =\n // @ts-ignore Removed in 4.0\n _abstract.UiItemsManager;\n// @ts-ignore Removed in 4.0\nconst isAbstractStatusBarCustomItem = _abstract.isAbstractStatusBarCustomItem;\n// @ts-ignore Removed in 4.0\ntype AbstractStagePanelLocation = _abstract.StagePanelLocation;\n// @ts-ignore Removed in 4.0\nconst AbstractStagePanelLocation = _abstract.StagePanelLocation; // eslint-disable-line @typescript-eslint/no-redeclare\n// @ts-ignore Removed in 4.0\ntype AbstractStagePanelSection = _abstract.StagePanelSection;\n// @ts-ignore Removed in 4.0\nconst AbstractStagePanelSection = _abstract.StagePanelSection; // eslint-disable-line @typescript-eslint/no-redeclare\n// @ts-ignore Removed in 4.0\ntype AbstractToolbarUsage = _abstract.ToolbarUsage;\n// @ts-ignore Removed in 4.0\nconst AbstractToolbarUsage = _abstract.ToolbarUsage; // eslint-disable-line @typescript-eslint/no-redeclare\n// @ts-ignore Removed in 4.0\ntype AbstractToolbarOrientation = _abstract.ToolbarOrientation;\n// @ts-ignore Removed in 4.0\nconst AbstractToolbarOrientation = _abstract.ToolbarOrientation; // eslint-disable-line @typescript-eslint/no-redeclare\n// @ts-ignore Removed in 4.0\ntype AbstractZoneLocation = _abstract.AbstractZoneLocation;\n// @ts-ignore Removed in 4.0\nconst AbstractZoneLocation = _abstract.AbstractZoneLocation; // eslint-disable-line @typescript-eslint/no-redeclare\n\nconst AbstractToolbarItemUtilities = abstract.ToolbarItemUtilities;\n\nconst originalDataSymbol = Symbol(\"originalData\");\n\n/** @internal */\nexport function createAbstractUiItemsManagerAdapter() {\n if (!AbstractUiItemsManager) return undefined;\n return new AbstractUiItemsManagerAdapter(AbstractUiItemsManager);\n}\n\ntype Target = Pick<\n typeof UiItemsManager,\n | \"getToolbarButtonItems\"\n | \"getStatusBarItems\"\n | \"getBackstageItems\"\n | \"register\"\n | \"getUiItemsProvider\"\n | \"registeredProviderIds\"\n | \"hasRegisteredProviders\"\n | \"unregister\"\n | \"onUiProviderRegisteredEvent\"\n | \"clearAllProviders\"\n>;\n\nclass AbstractUiItemsManagerAdapter implements Target {\n constructor(private readonly _adaptee: typeof AbstractUiItemsManagerType) {}\n\n public clearAllProviders(): void {\n return this._adaptee.clearAllProviders();\n }\n\n public get onUiProviderRegisteredEvent(): BeUiEvent<UiItemsProviderRegisteredEventArgs> {\n if (!(\"emit\" in this._adaptee.onUiProviderRegisteredEvent)) {\n (this._adaptee.onUiProviderRegisteredEvent as any).emit = (\n args: UiItemsProviderRegisteredEventArgs\n ) => {\n this._adaptee.onUiProviderRegisteredEvent.raiseEvent(args);\n };\n }\n return this._adaptee\n .onUiProviderRegisteredEvent as BeUiEvent<UiItemsProviderRegisteredEventArgs>;\n }\n\n public unregister(providerId: string): void {\n return this._adaptee.unregister(providerId);\n }\n\n public get hasRegisteredProviders(): boolean {\n return this._adaptee.hasRegisteredProviders;\n }\n\n public get registeredProviderIds(): string[] {\n return this._adaptee.registeredProviderIds;\n }\n\n public register(\n provider: UiItemsProvider,\n overrides?: UiItemsProviderOverrides | undefined\n ): void {\n const abstractProvider = createUiItemsProviderToAbstractAdapter(provider);\n return this._adaptee.register(abstractProvider, overrides);\n }\n\n public getUiItemsProvider(providerId: string): UiItemsProvider | undefined {\n const abstractProvider = this._adaptee.getUiItemsProvider(providerId);\n if (!abstractProvider) return undefined;\n\n const provider = createAbstractToUiItemsProviderAdapter(abstractProvider);\n return provider;\n }\n\n public getBackstageItems(): readonly ProviderItem<BackstageItem>[] {\n const abstractItems = this._adaptee.getBackstageItems();\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractBackstageItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ? abstractItem.providerId : \"\",\n };\n });\n return items;\n }\n\n public getStatusBarItems(\n stageId: string,\n stageUsage: string\n ): readonly ProviderItem<StatusBarItem>[] {\n const abstractItems = this._adaptee.getStatusBarItems(stageId, stageUsage);\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractStatusBarItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ? abstractItem.providerId : \"\",\n };\n });\n return items;\n }\n\n public getToolbarButtonItems(\n stageId: string,\n stageUsage: string,\n usage: ToolbarUsage,\n orientation: ToolbarOrientation\n ): readonly ProviderItem<ToolbarItem>[] {\n const abstractItems = this._adaptee.getToolbarButtonItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractToolbarItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ?? \"\",\n };\n });\n return items;\n }\n\n public getWidgets(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n section?: StagePanelSection | undefined\n ): readonly ProviderItem<Widget>[] {\n const abstractLocations = toAbstractStagePanelLocation(location);\n const abstractSections =\n section === undefined\n ? ([undefined] as const)\n : toAbstractStagePanelSection(section);\n const combos: [\n AbstractStagePanelLocation,\n AbstractStagePanelSection | undefined // eslint-disable-line @typescript-eslint/no-redundant-type-constituents\n ][] = [];\n abstractLocations.forEach((abstractLocation) => {\n abstractSections.forEach((abstractSection) => {\n combos.push([abstractLocation, abstractSection]);\n });\n });\n let abstractWidgets = combos.reduce<AbstractWidget[]>(\n (acc, [abstractLocation, abstractSection]) => {\n const w = this._adaptee.getWidgets(\n stageId,\n stageUsage,\n abstractLocation,\n abstractSection\n );\n acc.push(...w);\n return acc;\n },\n []\n );\n abstractWidgets = abstractWidgets.reduce<AbstractWidget[]>(\n (acc, abstractWidget) => {\n if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))\n acc.push(abstractWidget);\n return acc;\n },\n []\n );\n const widgets = abstractWidgets\n // @ts-ignore Possibly 'any'\n .map((abstractWidget) => {\n const widget = fromAbstractWidget(abstractWidget);\n return {\n ...widget,\n providerId: abstractWidget.providerId ?? \"\",\n };\n });\n return widgets;\n }\n}\n\nfunction createUiItemsProviderToAbstractAdapter(\n adaptee: UiItemsProvider\n): AbstractUiItemsProvider {\n const {\n id,\n onUnregister,\n provideBackstageItems,\n provideStatusBarItems,\n provideWidgets,\n ...other\n } = adaptee;\n const provider = createGetPropertyAdapter(adaptee);\n return {\n id: adaptee.id,\n onUnregister: adaptee.onUnregister,\n provideBackstageItems: () => {\n const items = provider.provideBackstageItems();\n const abstractItems = items.map((item) => toAbstractBackstageItem(item));\n return abstractItems;\n },\n provideStatusBarItems: (\n stageId: string,\n stageUsage: string,\n _stageAppData: any\n ) => {\n const items = provider.provideStatusBarItems(stageId, stageUsage);\n const abstractItems = items.map((item) => toAbstractStatusBarItem(item));\n return abstractItems;\n },\n provideToolbarButtonItems: (\n stageId: string,\n stageUsage: string,\n usage: AbstractToolbarUsage,\n orientation: AbstractToolbarOrientation,\n _stageAppData: any\n ) => {\n const items = provider.provideToolbarItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n const abstractItems = items.map((item) => toAbstractToolbarItem(item));\n return abstractItems;\n },\n provideWidgets: (\n stageId: string,\n stageUsage: string,\n abstractLocation: AbstractStagePanelLocation,\n abstractSection: AbstractStagePanelSection,\n _zoneLocation: AbstractZoneLocation,\n _stageAppData: any\n ) => {\n const location = fromAbstractStagePanelLocation(abstractLocation);\n const section =\n abstractSection === undefined\n ? undefined\n : fromAbstractStagePanelSection(abstractSection);\n const items = provider.provideWidgets(\n stageId,\n stageUsage,\n location,\n section\n );\n const abstractWidgets = items.map((item) => toAbstractWidget(item));\n return abstractWidgets;\n },\n ...other,\n };\n}\n\nfunction createAbstractToUiItemsProviderAdapter(\n adaptee: AbstractUiItemsProvider\n): UiItemsProvider {\n const {\n id,\n onUnregister,\n provideBackstageItems,\n provideStatusBarItems,\n provideWidgets,\n ...other\n } = adaptee;\n return {\n id: adaptee.id,\n onUnregister: adaptee.onUnregister,\n provideBackstageItems: () => {\n if (!adaptee.provideBackstageItems) return [];\n\n const abstractItems = adaptee.provideBackstageItems();\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractBackstageItem(abstractItem)\n );\n return items;\n },\n provideStatusBarItems: (stageId, stageUsage) => {\n if (!adaptee.provideStatusBarItems) return [];\n\n const abstractItems = adaptee.provideStatusBarItems(stageId, stageUsage);\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractStatusBarItem(abstractItem)\n );\n return items;\n },\n provideWidgets: (stageId, stageUsage, location, section) => {\n if (!adaptee.provideWidgets) return [];\n\n const abstractLocations = toAbstractStagePanelLocation(location);\n const abstractSections =\n section === undefined\n ? ([undefined] as const)\n : toAbstractStagePanelSection(section);\n const combos: [\n AbstractStagePanelLocation,\n AbstractStagePanelSection | undefined // eslint-disable-line @typescript-eslint/no-redundant-type-constituents\n ][] = [];\n abstractLocations.forEach((abstractLocation) => {\n abstractSections.forEach((abstractSection) => {\n combos.push([abstractLocation, abstractSection]);\n });\n });\n let abstractWidgets = combos.reduce<AbstractWidget[]>(\n (acc, [abstractLocation, abstractSection]) => {\n assert(!!adaptee.provideWidgets);\n const w = adaptee.provideWidgets(\n stageId,\n stageUsage,\n abstractLocation,\n abstractSection\n );\n acc.push(...w);\n return acc;\n },\n []\n );\n abstractWidgets = abstractWidgets.reduce<AbstractWidget[]>(\n (acc, abstractWidget) => {\n if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))\n acc.push(abstractWidget);\n return acc;\n },\n []\n );\n const widgets = abstractWidgets.map((abstractWidget) =>\n fromAbstractWidget(abstractWidget)\n );\n return widgets;\n },\n provideToolbarItems: (stageId, stageUsage, usage, orientation) => {\n if (!adaptee.provideToolbarButtonItems) return [];\n\n const abstractItems = adaptee.provideToolbarButtonItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractToolbarItem(abstractItem)\n );\n return items;\n },\n ...other,\n };\n}\n\nfunction getBadgeType(badgeKind: BadgeKind | undefined) {\n switch (badgeKind) {\n case \"new\":\n return BadgeType.New;\n case \"technical-preview\":\n return BadgeType.TechnicalPreview;\n default:\n return undefined;\n }\n}\n\nfunction toAbstractBackstageItem(item: BackstageItem): AbstractBackstageItem {\n let abstractItem = getOriginalData<AbstractBackstageItem>(item);\n if (abstractItem) return abstractItem;\n\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n };\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractStatusBarItem(item: StatusBarItem): AbstractStatusBarItem {\n let abstractItem = getOriginalData<AbstractStatusBarItem>(item);\n if (abstractItem) return abstractItem;\n\n if (isStatusBarCustomItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n isCustom: true,\n reactNode: item.content,\n } as AbstractStatusBarItem;\n } else {\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n };\n }\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractToolbarItem(item: ToolbarItem): AbstractToolbarItem {\n let abstractItem = getOriginalData<AbstractToolbarItem>(item);\n if (abstractItem) return abstractItem;\n\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n if (isToolbarActionItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n parentToolGroupId: item.parentGroupItemId,\n };\n } else if (isToolbarGroupItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n parentToolGroupId: item.parentGroupItemId,\n items: item.items.map((i) => toAbstractToolbarItem(i)) as any,\n };\n } else {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n isCustom: true,\n icon,\n internalData,\n };\n }\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractWidget(widget: Widget): AbstractWidget {\n let abstractWidget = getOriginalData<AbstractWidget>(widget);\n if (abstractWidget) return abstractWidget;\n\n const allowedPanelTargets = widget.allowedPanels\n // @ts-ignore Possibly 'any'\n ?.map((location) => {\n const map = {\n [StagePanelLocation.Top]: \"top\" as const,\n [StagePanelLocation.Left]: \"left\" as const,\n [StagePanelLocation.Right]: \"right\" as const,\n [StagePanelLocation.Bottom]: \"bottom\" as const,\n };\n // @ts-ignore Possibly 'any'\n return map[location];\n });\n const internalData = new Map();\n const icon = IconHelper.getIconData(widget.icon, internalData);\n abstractWidget = {\n ...widget,\n id: widget.id ?? \"\",\n getWidgetContent: () => widget.content,\n allowedPanelTargets,\n badgeType: getBadgeType(widget.badgeKind) || widget.badge,\n defaultFloatingPosition:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.defaultPosition\n : undefined,\n defaultFloatingSize:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.defaultSize\n : undefined,\n floatingContainerId:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.containerId\n : undefined,\n hideWithUiWhenFloating:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.hideWithUi\n : undefined,\n isFloatingStateSupported: !!widget.canFloat,\n isFloatingStateWindowResizable:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.isResizable\n : undefined,\n icon,\n internalData,\n };\n setOriginalData(abstractWidget, widget);\n return abstractWidget;\n}\n\nfunction fromAbstractBackstageItem(\n abstractItem: AbstractBackstageItem\n): BackstageItem {\n let item = getOriginalData<BackstageItem>(abstractItem);\n if (item) return item;\n\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n assert(!!item);\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractStatusBarItem(\n abstractItem: AbstractStatusBarItem\n): StatusBarItem {\n let item = getOriginalData<StatusBarItem>(abstractItem);\n if (item) return item;\n\n if (isAbstractStatusBarCustomItem(abstractItem)) {\n const content: React.ReactNode | undefined = (abstractItem as any)\n .reactNode;\n return {\n ...abstractItem,\n badge: abstractItem.badgeType,\n content,\n };\n } else {\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n }\n assert(!!item);\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractToolbarItem(\n abstractItem: AbstractToolbarItem\n): ToolbarItem {\n let item = getOriginalData<ToolbarItem>(abstractItem);\n if (item) return item;\n\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n if (AbstractToolbarItemUtilities.isCustomDefinition(abstractItem)) {\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n } else {\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n parentGroupItemId: abstractItem.parentToolGroupId,\n icon,\n };\n }\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractWidget(abstractWidget: AbstractWidget): Widget {\n let widget = getOriginalData<Widget>(abstractWidget);\n if (widget) return widget;\n\n const allowedPanels = abstractWidget.allowedPanelTargets\n // @ts-ignore Possibly 'any'\n ?.map((target) => {\n const map = {\n top: StagePanelLocation.Top,\n left: StagePanelLocation.Left,\n right: StagePanelLocation.Right,\n bottom: StagePanelLocation.Bottom,\n };\n // @ts-ignore Possibly 'any'\n return map[target];\n });\n const icon = fromAbstractIcon(\n abstractWidget.icon,\n abstractWidget.internalData\n );\n widget = {\n ...abstractWidget,\n id: abstractWidget.id ?? \"\",\n content: abstractWidget.getWidgetContent(),\n allowedPanels,\n badge: abstractWidget.badgeType,\n canFloat: abstractWidget.isFloatingStateSupported && {\n containerId: abstractWidget.floatingContainerId,\n defaultPosition: abstractWidget.defaultFloatingPosition,\n defaultSize: abstractWidget.defaultFloatingSize,\n hideWithUi: abstractWidget.hideWithUiWhenFloating,\n isResizable: abstractWidget.isFloatingStateWindowResizable,\n },\n icon,\n };\n assert(!!widget);\n setOriginalData(widget, abstractWidget);\n return widget;\n}\n\nfunction fromAbstractStagePanelLocation(\n location: AbstractStagePanelLocation\n): StagePanelLocation {\n switch (location) {\n case AbstractStagePanelLocation.Left:\n return StagePanelLocation.Left;\n case AbstractStagePanelLocation.Top:\n return StagePanelLocation.Top;\n case AbstractStagePanelLocation.TopMost:\n return StagePanelLocation.Top;\n case AbstractStagePanelLocation.Bottom:\n return StagePanelLocation.Bottom;\n case AbstractStagePanelLocation.BottomMost:\n return StagePanelLocation.Bottom;\n }\n return StagePanelLocation.Right;\n}\n\nfunction toAbstractStagePanelLocation(\n location: StagePanelLocation\n): AbstractStagePanelLocation[] {\n switch (location) {\n case StagePanelLocation.Left:\n return [AbstractStagePanelLocation.Left];\n case StagePanelLocation.Top:\n return [\n AbstractStagePanelLocation.Top,\n AbstractStagePanelLocation.TopMost,\n ];\n case StagePanelLocation.Bottom:\n return [\n AbstractStagePanelLocation.Bottom,\n AbstractStagePanelLocation.BottomMost,\n ];\n }\n return [AbstractStagePanelLocation.Right];\n}\n\nfunction fromAbstractStagePanelSection(\n section: AbstractStagePanelSection\n): StagePanelSection {\n switch (section) {\n case AbstractStagePanelSection.End:\n return StagePanelSection.End;\n }\n return StagePanelSection.Start;\n}\n\nfunction toAbstractStagePanelSection(\n section: StagePanelSection\n): AbstractStagePanelSection[] {\n switch (section) {\n case StagePanelSection.End:\n return [AbstractStagePanelSection.End];\n }\n return [AbstractStagePanelSection.Start, AbstractStagePanelSection.Middle];\n}\n\nfunction fromAbstractIcon(\n icon: string | abstract.ConditionalStringValue | undefined,\n internalData: Map<string, any> | undefined\n): IconSpec {\n if (!icon) return undefined;\n const iconString = abstract.ConditionalStringValue.getValue(icon);\n if (!iconString) return undefined;\n if (iconString === IconHelper.reactIconKey && internalData)\n return internalData.get(IconHelper.reactIconKey) as React.ReactNode;\n return iconString;\n}\n\nfunction getOriginalData<TData>(obj: object): TData | undefined {\n const originalData = (obj as any)[originalDataSymbol];\n if (!originalData) return undefined;\n return originalData;\n}\n\nfunction setOriginalData<TData>(obj: object, data: TData) {\n (obj as any)[originalDataSymbol] = data;\n}\n\n/** Maps items of existing `get` properties to `provide` properties, otherwise uses `provide` properties.\n * @internal\n */\nexport function createGetPropertyAdapter(provider: UiItemsProvider) {\n return {\n ...provider,\n provideBackstageItems: () => {\n return (\n provider.getBackstageItems?.() ??\n provider.provideBackstageItems?.() ??\n []\n );\n },\n provideStatusBarItems: (stageId, stageUsage) => {\n return (\n provider.getStatusBarItems?.() ??\n provider.provideStatusBarItems?.(stageId, stageUsage) ??\n []\n );\n },\n provideToolbarItems: (stageId, stageUsage, usage, orientation) => {\n if (provider.getToolbarItems) {\n return provider.getToolbarItems().filter((item) => {\n const layout = item.layouts?.standard;\n if (!layout) return false;\n return layout.usage === usage && layout.orientation === orientation;\n });\n }\n return (\n provider.provideToolbarItems?.(\n stageId,\n stageUsage,\n usage,\n orientation\n ) ?? []\n );\n },\n provideWidgets: (stageId, stageUsage, location, section) => {\n if (provider.getWidgets) {\n return provider.getWidgets().filter((item) => {\n const layout = item.layouts?.standard;\n if (!layout) return false;\n return layout.location === location && layout.section === section;\n });\n }\n return (\n provider.provideWidgets?.(stageId, stageUsage, location, section) ?? []\n );\n },\n } satisfies UiItemsProvider;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AbstractUiItemsManager.js","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/AbstractUiItemsManager.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 UiProvider\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated, @typescript-eslint/ban-ts-comment */\n\nimport * as abstract from \"@itwin/appui-abstract\";\nimport type { BeUiEvent } from \"@itwin/core-bentley\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { IconSpec } from \"@itwin/core-react\";\nimport type { BadgeKind } from \"@itwin/core-react/internal\";\nimport { BadgeType, IconHelper } from \"@itwin/core-react\";\nimport type {\n // @ts-ignore Removed in 4.0\n BackstageItem as AbstractBackstageItem,\n // @ts-ignore Removed in 4.0\n CommonStatusBarItem as AbstractStatusBarItem,\n CommonToolbarItem as AbstractToolbarItem,\n // @ts-ignore Removed in 4.0\n UiItemsManager as AbstractUiItemsManagerType,\n // @ts-ignore Removed in 4.0\n UiItemsProvider as AbstractUiItemsProvider,\n // @ts-ignore Removed in 4.0\n AbstractWidgetProps as AbstractWidget,\n} from \"@itwin/appui-abstract\";\nimport type {\n UiItemsManager,\n UiItemsProviderOverrides,\n UiItemsProviderRegisteredEventArgs,\n} from \"./UiItemsManager.js\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation.js\";\nimport { StagePanelSection } from \"../stagepanels/StagePanelSection.js\";\nimport type { Widget } from \"../widgets/Widget.js\";\nimport type { ProviderItem } from \"./ProviderItem.js\";\nimport type { UiItemsProvider } from \"./UiItemsProvider.js\";\nimport type {\n ToolbarItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"../toolbar/ToolbarItem.js\";\nimport {\n isToolbarActionItem,\n isToolbarGroupItem,\n} from \"../toolbar/ToolbarItem.js\";\nimport type { BackstageItem } from \"../backstage/BackstageItem.js\";\nimport type { StatusBarItem } from \"../statusbar/StatusBarItem.js\";\nimport { isStatusBarCustomItem } from \"../statusbar/StatusBarItem.js\";\n\nconst _abstract = abstract;\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nconst AbstractUiItemsManager: typeof AbstractUiItemsManagerType | undefined =\n // @ts-ignore Removed in 4.0\n _abstract.UiItemsManager;\n// @ts-ignore Removed in 4.0\nconst isAbstractStatusBarCustomItem = _abstract.isAbstractStatusBarCustomItem;\n// @ts-ignore Removed in 4.0\ntype AbstractStagePanelLocation = _abstract.StagePanelLocation;\n// @ts-ignore Removed in 4.0\nconst AbstractStagePanelLocation = _abstract.StagePanelLocation; // eslint-disable-line @typescript-eslint/no-redeclare\n// @ts-ignore Removed in 4.0\ntype AbstractStagePanelSection = _abstract.StagePanelSection;\n// @ts-ignore Removed in 4.0\nconst AbstractStagePanelSection = _abstract.StagePanelSection; // eslint-disable-line @typescript-eslint/no-redeclare\n// @ts-ignore Removed in 4.0\ntype AbstractToolbarUsage = _abstract.ToolbarUsage;\n// @ts-ignore Removed in 4.0\nconst AbstractToolbarUsage = _abstract.ToolbarUsage; // eslint-disable-line @typescript-eslint/no-redeclare\n// @ts-ignore Removed in 4.0\ntype AbstractToolbarOrientation = _abstract.ToolbarOrientation;\n// @ts-ignore Removed in 4.0\nconst AbstractToolbarOrientation = _abstract.ToolbarOrientation; // eslint-disable-line @typescript-eslint/no-redeclare\n// @ts-ignore Removed in 4.0\ntype AbstractZoneLocation = _abstract.AbstractZoneLocation;\n// @ts-ignore Removed in 4.0\nconst AbstractZoneLocation = _abstract.AbstractZoneLocation; // eslint-disable-line @typescript-eslint/no-redeclare\n\nconst AbstractToolbarItemUtilities = abstract.ToolbarItemUtilities;\n\nconst originalDataSymbol = Symbol(\"originalData\");\n\n/** @internal */\nexport function createAbstractUiItemsManagerAdapter() {\n if (!AbstractUiItemsManager) return undefined;\n return new AbstractUiItemsManagerAdapter(AbstractUiItemsManager);\n}\n\ntype Target = Pick<\n typeof UiItemsManager,\n | \"getToolbarButtonItems\"\n | \"getStatusBarItems\"\n | \"getBackstageItems\"\n | \"register\"\n | \"getUiItemsProvider\"\n | \"registeredProviderIds\"\n | \"hasRegisteredProviders\"\n | \"unregister\"\n | \"onUiProviderRegisteredEvent\"\n | \"clearAllProviders\"\n>;\n\nclass AbstractUiItemsManagerAdapter implements Target {\n constructor(private readonly _adaptee: typeof AbstractUiItemsManagerType) {}\n\n public clearAllProviders(): void {\n return this._adaptee.clearAllProviders();\n }\n\n public get onUiProviderRegisteredEvent(): BeUiEvent<UiItemsProviderRegisteredEventArgs> {\n if (!(\"emit\" in this._adaptee.onUiProviderRegisteredEvent)) {\n (this._adaptee.onUiProviderRegisteredEvent as any).emit = (\n args: UiItemsProviderRegisteredEventArgs\n ) => {\n this._adaptee.onUiProviderRegisteredEvent.raiseEvent(args);\n };\n }\n return this._adaptee\n .onUiProviderRegisteredEvent as BeUiEvent<UiItemsProviderRegisteredEventArgs>;\n }\n\n public unregister(providerId: string): void {\n return this._adaptee.unregister(providerId);\n }\n\n public get hasRegisteredProviders(): boolean {\n return this._adaptee.hasRegisteredProviders;\n }\n\n public get registeredProviderIds(): string[] {\n return this._adaptee.registeredProviderIds;\n }\n\n public register(\n provider: UiItemsProvider,\n overrides?: UiItemsProviderOverrides | undefined\n ): void {\n const abstractProvider = createUiItemsProviderToAbstractAdapter(provider);\n return this._adaptee.register(abstractProvider, overrides);\n }\n\n public getUiItemsProvider(providerId: string): UiItemsProvider | undefined {\n const abstractProvider = this._adaptee.getUiItemsProvider(providerId);\n if (!abstractProvider) return undefined;\n\n const provider = createAbstractToUiItemsProviderAdapter(abstractProvider);\n return provider;\n }\n\n public getBackstageItems(): readonly ProviderItem<BackstageItem>[] {\n const abstractItems = this._adaptee.getBackstageItems();\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractBackstageItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ? abstractItem.providerId : \"\",\n };\n });\n return items;\n }\n\n public getStatusBarItems(\n stageId: string,\n stageUsage: string\n ): readonly ProviderItem<StatusBarItem>[] {\n const abstractItems = this._adaptee.getStatusBarItems(stageId, stageUsage);\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractStatusBarItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ? abstractItem.providerId : \"\",\n };\n });\n return items;\n }\n\n public getToolbarButtonItems(\n stageId: string,\n stageUsage: string,\n usage: ToolbarUsage,\n orientation: ToolbarOrientation\n ): readonly ProviderItem<ToolbarItem>[] {\n const abstractItems = this._adaptee.getToolbarButtonItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractToolbarItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ?? \"\",\n };\n });\n return items;\n }\n\n public getWidgets(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n section?: StagePanelSection | undefined\n ): readonly ProviderItem<Widget>[] {\n const abstractLocations = toAbstractStagePanelLocation(location);\n const abstractSections =\n section === undefined\n ? ([undefined] as const)\n : toAbstractStagePanelSection(section);\n const combos: [\n AbstractStagePanelLocation,\n AbstractStagePanelSection | undefined // eslint-disable-line @typescript-eslint/no-redundant-type-constituents\n ][] = [];\n abstractLocations.forEach((abstractLocation) => {\n abstractSections.forEach((abstractSection) => {\n combos.push([abstractLocation, abstractSection]);\n });\n });\n let abstractWidgets = combos.reduce<AbstractWidget[]>(\n (acc, [abstractLocation, abstractSection]) => {\n const w = this._adaptee.getWidgets(\n stageId,\n stageUsage,\n abstractLocation,\n abstractSection\n );\n acc.push(...w);\n return acc;\n },\n []\n );\n abstractWidgets = abstractWidgets.reduce<AbstractWidget[]>(\n (acc, abstractWidget) => {\n if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))\n acc.push(abstractWidget);\n return acc;\n },\n []\n );\n const widgets = abstractWidgets\n // @ts-ignore Possibly 'any'\n .map((abstractWidget) => {\n const widget = fromAbstractWidget(abstractWidget);\n return {\n ...widget,\n providerId: abstractWidget.providerId ?? \"\",\n };\n });\n return widgets;\n }\n}\n\nfunction createUiItemsProviderToAbstractAdapter(\n adaptee: UiItemsProvider\n): AbstractUiItemsProvider {\n const {\n id,\n onUnregister,\n provideBackstageItems,\n provideStatusBarItems,\n provideWidgets,\n ...other\n } = adaptee;\n const provider = createGetPropertyAdapter(adaptee);\n return {\n id: adaptee.id,\n onUnregister: adaptee.onUnregister,\n provideBackstageItems: () => {\n const items = provider.provideBackstageItems();\n const abstractItems = items.map((item) => toAbstractBackstageItem(item));\n return abstractItems;\n },\n provideStatusBarItems: (\n stageId: string,\n stageUsage: string,\n _stageAppData: any\n ) => {\n const items = provider.provideStatusBarItems(stageId, stageUsage);\n const abstractItems = items.map((item) => toAbstractStatusBarItem(item));\n return abstractItems;\n },\n provideToolbarButtonItems: (\n stageId: string,\n stageUsage: string,\n usage: AbstractToolbarUsage,\n orientation: AbstractToolbarOrientation,\n _stageAppData: any\n ) => {\n const items = provider.provideToolbarItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n const abstractItems = items.map((item) => toAbstractToolbarItem(item));\n return abstractItems;\n },\n provideWidgets: (\n stageId: string,\n stageUsage: string,\n abstractLocation: AbstractStagePanelLocation,\n abstractSection: AbstractStagePanelSection,\n _zoneLocation: AbstractZoneLocation,\n _stageAppData: any\n ) => {\n const location = fromAbstractStagePanelLocation(abstractLocation);\n const section =\n abstractSection === undefined\n ? undefined\n : fromAbstractStagePanelSection(abstractSection);\n const items = provider.provideWidgets(\n stageId,\n stageUsage,\n location,\n section\n );\n const abstractWidgets = items.map((item) => toAbstractWidget(item));\n return abstractWidgets;\n },\n ...other,\n };\n}\n\nfunction createAbstractToUiItemsProviderAdapter(\n adaptee: AbstractUiItemsProvider\n): UiItemsProvider {\n const {\n id,\n onUnregister,\n provideBackstageItems,\n provideStatusBarItems,\n provideWidgets,\n ...other\n } = adaptee;\n return {\n id: adaptee.id,\n onUnregister: adaptee.onUnregister,\n provideBackstageItems: () => {\n if (!adaptee.provideBackstageItems) return [];\n\n const abstractItems = adaptee.provideBackstageItems();\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractBackstageItem(abstractItem)\n );\n return items;\n },\n provideStatusBarItems: (stageId, stageUsage) => {\n if (!adaptee.provideStatusBarItems) return [];\n\n const abstractItems = adaptee.provideStatusBarItems(stageId, stageUsage);\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractStatusBarItem(abstractItem)\n );\n return items;\n },\n provideWidgets: (stageId, stageUsage, location, section) => {\n if (!adaptee.provideWidgets) return [];\n\n const abstractLocations = toAbstractStagePanelLocation(location);\n const abstractSections =\n section === undefined\n ? ([undefined] as const)\n : toAbstractStagePanelSection(section);\n const combos: [\n AbstractStagePanelLocation,\n AbstractStagePanelSection | undefined // eslint-disable-line @typescript-eslint/no-redundant-type-constituents\n ][] = [];\n abstractLocations.forEach((abstractLocation) => {\n abstractSections.forEach((abstractSection) => {\n combos.push([abstractLocation, abstractSection]);\n });\n });\n let abstractWidgets = combos.reduce<AbstractWidget[]>(\n (acc, [abstractLocation, abstractSection]) => {\n assert(!!adaptee.provideWidgets);\n const w = adaptee.provideWidgets(\n stageId,\n stageUsage,\n abstractLocation,\n abstractSection\n );\n acc.push(...w);\n return acc;\n },\n []\n );\n abstractWidgets = abstractWidgets.reduce<AbstractWidget[]>(\n (acc, abstractWidget) => {\n if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))\n acc.push(abstractWidget);\n return acc;\n },\n []\n );\n const widgets = abstractWidgets.map((abstractWidget) =>\n fromAbstractWidget(abstractWidget)\n );\n return widgets;\n },\n provideToolbarItems: (stageId, stageUsage, usage, orientation) => {\n if (!adaptee.provideToolbarButtonItems) return [];\n\n const abstractItems = adaptee.provideToolbarButtonItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractToolbarItem(abstractItem)\n );\n return items;\n },\n ...other,\n };\n}\n\nfunction getBadgeType(badgeKind: BadgeKind | undefined) {\n switch (badgeKind) {\n case \"new\":\n return BadgeType.New;\n case \"technical-preview\":\n return BadgeType.TechnicalPreview;\n default:\n return undefined;\n }\n}\n\nfunction toAbstractBackstageItem(item: BackstageItem): AbstractBackstageItem {\n let abstractItem = getOriginalData<AbstractBackstageItem>(item);\n if (abstractItem) return abstractItem;\n\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n };\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractStatusBarItem(item: StatusBarItem): AbstractStatusBarItem {\n let abstractItem = getOriginalData<AbstractStatusBarItem>(item);\n if (abstractItem) return abstractItem;\n\n if (isStatusBarCustomItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n isCustom: true,\n reactNode: item.content,\n } as AbstractStatusBarItem;\n } else {\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n };\n }\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractToolbarItem(item: ToolbarItem): AbstractToolbarItem {\n let abstractItem = getOriginalData<AbstractToolbarItem>(item);\n if (abstractItem) return abstractItem;\n\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n if (isToolbarActionItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n parentToolGroupId: item.parentGroupItemId,\n };\n } else if (isToolbarGroupItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n parentToolGroupId: item.parentGroupItemId,\n items: item.items.map((i) => toAbstractToolbarItem(i)) as any,\n };\n } else {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n isCustom: true,\n icon,\n internalData,\n };\n }\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractWidget(widget: Widget): AbstractWidget {\n let abstractWidget = getOriginalData<AbstractWidget>(widget);\n if (abstractWidget) return abstractWidget;\n\n const allowedPanelTargets = widget.allowedPanels\n // @ts-ignore Possibly 'any'\n ?.map((location) => {\n const map = {\n [StagePanelLocation.Top]: \"top\" as const,\n [StagePanelLocation.Left]: \"left\" as const,\n [StagePanelLocation.Right]: \"right\" as const,\n [StagePanelLocation.Bottom]: \"bottom\" as const,\n };\n // @ts-ignore Possibly 'any'\n return map[location];\n });\n const internalData = new Map();\n const icon = IconHelper.getIconData(widget.icon, internalData);\n abstractWidget = {\n ...widget,\n id: widget.id ?? \"\",\n getWidgetContent: (): React.ReactNode => widget.content,\n allowedPanelTargets,\n badgeType: getBadgeType(widget.badgeKind) || widget.badge,\n defaultFloatingPosition:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.defaultPosition\n : undefined,\n defaultFloatingSize:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.defaultSize\n : undefined,\n floatingContainerId:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.containerId\n : undefined,\n hideWithUiWhenFloating:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.hideWithUi\n : undefined,\n isFloatingStateSupported: !!widget.canFloat,\n isFloatingStateWindowResizable:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.isResizable\n : undefined,\n icon,\n internalData,\n };\n setOriginalData(abstractWidget, widget);\n return abstractWidget;\n}\n\nfunction fromAbstractBackstageItem(\n abstractItem: AbstractBackstageItem\n): BackstageItem {\n let item = getOriginalData<BackstageItem>(abstractItem);\n if (item) return item;\n\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n assert(!!item);\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractStatusBarItem(\n abstractItem: AbstractStatusBarItem\n): StatusBarItem {\n let item = getOriginalData<StatusBarItem>(abstractItem);\n if (item) return item;\n\n if (isAbstractStatusBarCustomItem(abstractItem)) {\n const content: React.ReactNode | undefined = (abstractItem as any)\n .reactNode;\n return {\n ...abstractItem,\n badge: abstractItem.badgeType,\n content,\n };\n } else {\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n }\n assert(!!item);\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractToolbarItem(\n abstractItem: AbstractToolbarItem\n): ToolbarItem {\n let item = getOriginalData<ToolbarItem>(abstractItem);\n if (item) return item;\n\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n if (AbstractToolbarItemUtilities.isCustomDefinition(abstractItem)) {\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n } else {\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n parentGroupItemId: abstractItem.parentToolGroupId,\n icon,\n };\n }\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractWidget(abstractWidget: AbstractWidget): Widget {\n let widget = getOriginalData<Widget>(abstractWidget);\n if (widget) return widget;\n\n const allowedPanels = abstractWidget.allowedPanelTargets\n // @ts-ignore Possibly 'any'\n ?.map((target) => {\n const map = {\n top: StagePanelLocation.Top,\n left: StagePanelLocation.Left,\n right: StagePanelLocation.Right,\n bottom: StagePanelLocation.Bottom,\n };\n // @ts-ignore Possibly 'any'\n return map[target];\n });\n const icon = fromAbstractIcon(\n abstractWidget.icon,\n abstractWidget.internalData\n );\n widget = {\n ...abstractWidget,\n id: abstractWidget.id ?? \"\",\n content: abstractWidget.getWidgetContent(),\n allowedPanels,\n badge: abstractWidget.badgeType,\n canFloat: abstractWidget.isFloatingStateSupported && {\n containerId: abstractWidget.floatingContainerId,\n defaultPosition: abstractWidget.defaultFloatingPosition,\n defaultSize: abstractWidget.defaultFloatingSize,\n hideWithUi: abstractWidget.hideWithUiWhenFloating,\n isResizable: abstractWidget.isFloatingStateWindowResizable,\n },\n icon,\n };\n assert(!!widget);\n setOriginalData(widget, abstractWidget);\n return widget;\n}\n\nfunction fromAbstractStagePanelLocation(\n location: AbstractStagePanelLocation\n): StagePanelLocation {\n switch (location) {\n case AbstractStagePanelLocation.Left:\n return StagePanelLocation.Left;\n case AbstractStagePanelLocation.Top:\n return StagePanelLocation.Top;\n case AbstractStagePanelLocation.TopMost:\n return StagePanelLocation.Top;\n case AbstractStagePanelLocation.Bottom:\n return StagePanelLocation.Bottom;\n case AbstractStagePanelLocation.BottomMost:\n return StagePanelLocation.Bottom;\n }\n return StagePanelLocation.Right;\n}\n\nfunction toAbstractStagePanelLocation(\n location: StagePanelLocation\n): AbstractStagePanelLocation[] {\n switch (location) {\n case StagePanelLocation.Left:\n return [AbstractStagePanelLocation.Left];\n case StagePanelLocation.Top:\n return [\n AbstractStagePanelLocation.Top,\n AbstractStagePanelLocation.TopMost,\n ];\n case StagePanelLocation.Bottom:\n return [\n AbstractStagePanelLocation.Bottom,\n AbstractStagePanelLocation.BottomMost,\n ];\n }\n return [AbstractStagePanelLocation.Right];\n}\n\nfunction fromAbstractStagePanelSection(\n section: AbstractStagePanelSection\n): StagePanelSection {\n switch (section) {\n case AbstractStagePanelSection.End:\n return StagePanelSection.End;\n }\n return StagePanelSection.Start;\n}\n\nfunction toAbstractStagePanelSection(\n section: StagePanelSection\n): AbstractStagePanelSection[] {\n switch (section) {\n case StagePanelSection.End:\n return [AbstractStagePanelSection.End];\n }\n return [AbstractStagePanelSection.Start, AbstractStagePanelSection.Middle];\n}\n\nfunction fromAbstractIcon(\n icon: string | abstract.ConditionalStringValue | undefined,\n internalData: Map<string, any> | undefined\n): IconSpec {\n if (!icon) return undefined;\n const iconString = abstract.ConditionalStringValue.getValue(icon);\n if (!iconString) return undefined;\n if (iconString === IconHelper.reactIconKey && internalData)\n return internalData.get(IconHelper.reactIconKey) as React.ReactNode;\n return iconString;\n}\n\nfunction getOriginalData<TData>(obj: object): TData | undefined {\n const originalData = (obj as any)[originalDataSymbol];\n if (!originalData) return undefined;\n return originalData;\n}\n\nfunction setOriginalData<TData>(obj: object, data: TData) {\n (obj as any)[originalDataSymbol] = data;\n}\n\n/** Maps items of existing `get` properties to `provide` properties, otherwise uses `provide` properties.\n * @internal\n */\nexport function createGetPropertyAdapter(provider: UiItemsProvider) {\n return {\n ...provider,\n provideBackstageItems: () => {\n return (\n provider.getBackstageItems?.() ??\n provider.provideBackstageItems?.() ??\n []\n );\n },\n provideStatusBarItems: (stageId, stageUsage) => {\n return (\n provider.getStatusBarItems?.() ??\n provider.provideStatusBarItems?.(stageId, stageUsage) ??\n []\n );\n },\n provideToolbarItems: (stageId, stageUsage, usage, orientation) => {\n if (provider.getToolbarItems) {\n return provider.getToolbarItems().filter((item) => {\n const layout = item.layouts?.standard;\n if (!layout) return false;\n return layout.usage === usage && layout.orientation === orientation;\n });\n }\n return (\n provider.provideToolbarItems?.(\n stageId,\n stageUsage,\n usage,\n orientation\n ) ?? []\n );\n },\n provideWidgets: (stageId, stageUsage, location, section) => {\n if (provider.getWidgets) {\n return provider.getWidgets().filter((item) => {\n const layout = item.layouts?.standard;\n if (!layout) return false;\n return layout.location === location && layout.section === section;\n });\n }\n return (\n provider.provideWidgets?.(stageId, stageUsage, location, section) ?? []\n );\n },\n } satisfies UiItemsProvider;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentGenerator.d.ts","sourceRoot":"","sources":["../../../src/appui-react/uiprovider/ComponentGenerator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mCAAmC,CAAC;AAE3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAKV,SAAS,EACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAgN1E;;GAEG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,SAAS,CAAC;gBADV,eAAe,EAAE,oBAAoB,EACrC,SAAS,CAAC,GAAE,MAAM,IAAI,aAAA;IAGhC,IAAW,cAAc,yBAExB;IAED,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,iCAAiC;IA2BzC,OAAO,CAAC,mCAAmC;IAiC3C,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,yBAAyB;
|
|
1
|
+
{"version":3,"file":"ComponentGenerator.d.ts","sourceRoot":"","sources":["../../../src/appui-react/uiprovider/ComponentGenerator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mCAAmC,CAAC;AAE3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAKV,SAAS,EACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAgN1E;;GAEG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,SAAS,CAAC;gBADV,eAAe,EAAE,oBAAoB,EACrC,SAAS,CAAC,GAAE,MAAM,IAAI,aAAA;IAGhC,IAAW,cAAc,yBAExB;IAED,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,iCAAiC;IA2BzC,OAAO,CAAC,mCAAmC;IAiC3C,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,YAAY;IAKb,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS;IAazD,oBAAoB,CACzB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,MAAM,GACf,iBAAiB;IAWpB,6DAA6D;IACtD,sBAAsB,IAAI,iBAAiB,EAAE;CAKrD"}
|