@itwin/appui-react 5.24.1 → 5.24.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/lib/appui-react/UiFramework.d.ts.map +1 -1
  3. package/lib/appui-react/UiFramework.js.map +1 -1
  4. package/lib/appui-react/backstage/BackstageComposerItem.js +1 -3
  5. package/lib/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  6. package/lib/appui-react/content/ContentControl.d.ts.map +1 -1
  7. package/lib/appui-react/content/ContentControl.js +0 -1
  8. package/lib/appui-react/content/ContentControl.js.map +1 -1
  9. package/lib/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  10. package/lib/appui-react/content/FloatingViewportContent.js +0 -4
  11. package/lib/appui-react/content/FloatingViewportContent.js.map +1 -1
  12. package/lib/appui-react/content/InternalContentViewManager.d.ts.map +1 -1
  13. package/lib/appui-react/content/InternalContentViewManager.js +0 -5
  14. package/lib/appui-react/content/InternalContentViewManager.js.map +1 -1
  15. package/lib/appui-react/dialog/ModelessDialog.d.ts.map +1 -1
  16. package/lib/appui-react/dialog/ModelessDialog.js +1 -3
  17. package/lib/appui-react/dialog/ModelessDialog.js.map +1 -1
  18. package/lib/appui-react/feedback/ElementTooltip.d.ts +1 -2
  19. package/lib/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  20. package/lib/appui-react/feedback/ElementTooltip.js.map +1 -1
  21. package/lib/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  22. package/lib/appui-react/frontstage/FrontstageDef.js +0 -3
  23. package/lib/appui-react/frontstage/FrontstageDef.js.map +1 -1
  24. package/lib/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  25. package/lib/appui-react/frontstage/InternalFrontstageManager.js +3 -12
  26. package/lib/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  27. package/lib/appui-react/layout/widget/Tab.d.ts.map +1 -1
  28. package/lib/appui-react/layout/widget/Tab.js.map +1 -1
  29. package/lib/appui-react/layout/widget/widget-content-layout/WidgetContentLayout.d.ts.map +1 -1
  30. package/lib/appui-react/layout/widget/widget-content-layout/WidgetContentLayout.js +2 -3
  31. package/lib/appui-react/layout/widget/widget-content-layout/WidgetContentLayout.js.map +1 -1
  32. package/lib/appui-react/layout/widget/widget-content-layout/WidgetContentLayout.scss +12 -6
  33. package/lib/appui-react/layout/widget/widget-content-layout/header/HeaderLayout.d.ts +1 -1
  34. package/lib/appui-react/layout/widget/widget-content-layout/header/HeaderLayout.d.ts.map +1 -1
  35. package/lib/appui-react/layout/widget/widget-content-layout/header/HeaderLayout.js +2 -1
  36. package/lib/appui-react/layout/widget/widget-content-layout/header/HeaderLayout.js.map +1 -1
  37. package/lib/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  38. package/lib/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  39. package/lib/appui-react/redux/ReducerRegistry.d.ts.map +1 -1
  40. package/lib/appui-react/redux/ReducerRegistry.js +0 -1
  41. package/lib/appui-react/redux/ReducerRegistry.js.map +1 -1
  42. package/lib/appui-react/redux/StateManager.d.ts.map +1 -1
  43. package/lib/appui-react/redux/StateManager.js +0 -2
  44. package/lib/appui-react/redux/StateManager.js.map +1 -1
  45. package/lib/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  46. package/lib/appui-react/selection/SelectionContextItemDef.js +0 -1
  47. package/lib/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  48. package/lib/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  49. package/lib/appui-react/settings/ui/UiSettingsPage.js +1 -6
  50. package/lib/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  51. package/lib/appui-react/shared/GroupItemProps.d.ts.map +1 -1
  52. package/lib/appui-react/shared/GroupItemProps.js.map +1 -1
  53. package/lib/appui-react/shared/MenuItem.d.ts.map +1 -1
  54. package/lib/appui-react/shared/MenuItem.js +0 -1
  55. package/lib/appui-react/shared/MenuItem.js.map +1 -1
  56. package/lib/appui-react/syncui/UiSyncEvent.d.ts +1 -1
  57. package/lib/appui-react/syncui/UiSyncEvent.js +1 -1
  58. package/lib/appui-react/syncui/UiSyncEvent.js.map +1 -1
  59. package/lib/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  60. package/lib/appui-react/toolbar/ToolbarHelper.js +2 -3
  61. package/lib/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  62. package/lib/appui-react/toolsettings/InternalToolSettingsManager.js +0 -1
  63. package/lib/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
  64. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js +1 -1
  65. package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  66. package/lib/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  67. package/lib/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  68. package/lib/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  69. package/lib/appui-react/uistate/AppUiSettings.js +0 -1
  70. package/lib/appui-react/uistate/AppUiSettings.js.map +1 -1
  71. package/lib/appui-react/utils/PropsHelper.d.ts +1 -1
  72. package/lib/appui-react/utils/PropsHelper.d.ts.map +1 -1
  73. package/lib/appui-react/utils/PropsHelper.js +2 -3
  74. package/lib/appui-react/utils/PropsHelper.js.map +1 -1
  75. package/lib/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  76. package/lib/appui-react/widgets/WidgetDef.js +0 -1
  77. package/lib/appui-react/widgets/WidgetDef.js.map +1 -1
  78. package/lib/cjs/appui-react/layout/widget/widget-content-layout/WidgetContentLayout.scss +12 -6
  79. package/lib/esm/appui-react/layout/widget/widget-content-layout/WidgetContentLayout.scss +12 -6
  80. package/package.json +13 -14
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Tab.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./Tab.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { Timer } from \"@itwin/core-react\";\nimport {\n Point,\n Rectangle,\n useRefs,\n useResizeObserver,\n} from \"@itwin/core-react/internal\";\nimport { Tooltip } from \"@itwin/itwinui-react\";\nimport { useDragTab } from \"../base/DragManager.js\";\nimport {\n MeasureContext,\n NineZoneDispatchContext,\n ShowWidgetIconContext,\n TabNodeContext,\n} from \"../base/NineZone.js\";\nimport type { TabState } from \"../state/TabState.js\";\nimport type {\n PointerCaptorArgs,\n PointerCaptorEvent,\n} from \"../base/usePointerCaptor.js\";\nimport { usePointerCaptor } from \"../base/usePointerCaptor.js\";\nimport { PanelSideContext } from \"../widget-panels/Panel.js\";\nimport { WidgetTabsEntryContext } from \"./Tabs.js\";\nimport {\n restrainInitialWidgetSize,\n WidgetContext,\n WidgetIdContext,\n} from \"./Widget.js\";\nimport { TabIdContext } from \"./ContentRenderer.js\";\nimport { TabTarget } from \"../target/TabTarget.js\";\nimport { WidgetMenuTab } from \"./MenuTab.js\";\nimport { WidgetOverflowContext } from \"./Overflow.js\";\nimport { useLayout, useLayoutStore } from \"../base/LayoutStore.js\";\nimport { useFloatingWidgetId } from \"./FloatingWidget.js\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers.js\";\nimport { useIsMaximizedWidget } from \"../../preview/enable-maximized-widget/useMaximizedWidget.js\";\nimport { FloatingTab } from \"./FloatingTab.js\";\n\n/** @internal */\nexport interface WidgetTabProviderProps extends TabPositionContextArgs {\n id: TabState[\"id\"];\n showOnlyTabIcon?: boolean;\n}\n\n/** @internal */\nexport function WidgetTabProvider({\n id,\n first,\n firstInactive,\n last,\n showOnlyTabIcon,\n}: WidgetTabProviderProps) {\n const tabNode = React.useContext(TabNodeContext);\n const position = React.useMemo<TabPositionContextArgs>(\n () => ({\n first,\n firstInactive,\n last,\n }),\n [first, firstInactive, last]\n );\n return (\n <TabIdContext.Provider value={id}>\n <TabPositionContext.Provider value={position}>\n <IconOnlyOnWidgetTabContext.Provider value={!!showOnlyTabIcon}>\n {tabNode}\n </IconOnlyOnWidgetTabContext.Provider>\n </TabPositionContext.Provider>\n </TabIdContext.Provider>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-deprecated\ninterface WidgetTabProps {\n badge?: React.ReactNode;\n icon?: React.ReactElement;\n}\n\n/** Component that displays a tab in a side panel widget.\n * @internal\n */\nexport function WidgetTab(props: WidgetTabProps) {\n const widgetOverflow = React.useContext(WidgetOverflowContext);\n const tabId = React.useContext(TabIdContext);\n const overflown = !!widgetOverflow;\n const floatingTabId = useLayout((state) => state.draggedTab?.tabId);\n\n if (tabId === floatingTabId) return <FloatingTab {...props} />;\n if (overflown) return <WidgetMenuTab {...props} />;\n return <WidgetTabComponent {...props} />;\n}\n\nfunction WidgetTabComponent(props: WidgetTabProps) {\n const id = React.useContext(TabIdContext);\n const { first, firstInactive, last } = React.useContext(TabPositionContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const showIconOnly = React.useContext(IconOnlyOnWidgetTabContext);\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n const showActiveWidgetLabel = React.useContext(ShowActiveWidgetLabelContext);\n assert(!!id);\n assert(!!widgetId);\n\n const label = useLayout((state) => state.tabs[id].label);\n const activeTabId = useLayout(\n (state) => getWidgetState(state, widgetId).activeTabId\n );\n const minimized = useLayout(\n (state) => getWidgetState(state, widgetId).minimized\n );\n\n const maximizedWidget = useIsMaximizedWidget();\n\n const resizeObserverRef = useResizeObserver<HTMLDivElement>(\n widgetTabsEntryContext?.onResize\n );\n const pointerCaptorRef = useTabInteractions({ clickOnly: maximizedWidget });\n const refs = useRefs<HTMLDivElement>(resizeObserverRef, pointerCaptorRef);\n\n const active = activeTabId === id;\n const className = classnames(\n \"nz-widget-tab\",\n active && \"nz-active\",\n undefined === side && minimized && \"nz-minimized\",\n first && \"nz-first\",\n last && \"nz-last\",\n firstInactive && \"nz-first-inactive\"\n );\n\n const showLabel =\n (showActiveWidgetLabel && active) ||\n (showIconOnly && !props.icon) ||\n (showWidgetIcon && !showIconOnly) ||\n !showWidgetIcon;\n return (\n <Tooltip content={label} ariaStrategy={showLabel ? \"none\" : \"label\"}>\n <div\n data-item-id={id}\n data-item-type=\"widget-tab\"\n className={className}\n ref={refs}\n role=\"tab\"\n tabIndex={0}\n >\n {(showWidgetIcon || showIconOnly) && (\n <span className=\"nz-icon\">{props.icon}</span>\n )}\n {showLabel && <span className=\"nz-label\">{label}</span>}\n {props.badge && <div className=\"nz-badge\">{props.badge}</div>}\n <TabTarget />\n </div>\n </Tooltip>\n );\n}\n\n/** @internal */\nexport interface UseTabInteractionsArgs {\n onClick?: () => void;\n onDoubleClick?: () => void;\n onDragStart?: () => void;\n clickOnly?: boolean;\n}\n\n/** @internal */\nexport function useTabInteractions<T extends HTMLElement>({\n onClick,\n onDoubleClick,\n onDragStart,\n clickOnly,\n}: UseTabInteractionsArgs) {\n const id = React.useContext(TabIdContext);\n const widgetContext = React.useContext(WidgetContext);\n const measure = React.useContext(MeasureContext);\n const dispatch = React.useContext(NineZoneDispatchContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const floatingWidgetId = useFloatingWidgetId();\n assert(!!id);\n assert(!!widgetId);\n\n const layoutStore = useLayoutStore();\n const tabRef = React.useRef(layoutStore.getState().tabs[id]);\n const clickCount = React.useRef(0);\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const doubleClickTimer = React.useRef(new Timer(300));\n const initialPointerPosition = React.useRef<Point | undefined>(undefined);\n\n const overflown = !widgetTabsEntryContext;\n\n React.useEffect(\n () =>\n layoutStore.subscribe((state) => {\n tabRef.current = state.tabs[id];\n }),\n [layoutStore, id]\n );\n\n const handleClick = React.useCallback(() => {\n dispatch({\n type: \"WIDGET_TAB_CLICK\",\n side,\n widgetId,\n id,\n });\n onClick?.();\n }, [dispatch, widgetId, id, side, onClick]);\n const handleDoubleClick = React.useCallback(() => {\n if (clickOnly) return;\n dispatch({\n type: \"WIDGET_TAB_DOUBLE_CLICK\",\n side,\n widgetId,\n floatingWidgetId,\n id,\n });\n onDoubleClick?.();\n }, [\n clickOnly,\n dispatch,\n floatingWidgetId,\n widgetId,\n id,\n side,\n onDoubleClick,\n ]);\n\n const handleDragTabStart = useDragTab({\n tabId: id,\n });\n const handleDragStart = React.useCallback(\n (pointerPosition: Point) => {\n if (clickOnly) return;\n assert(!!ref.current);\n assert(!!initialPointerPosition.current);\n const nzBounds = measure();\n const nzOffset = new Point(-nzBounds.left, -nzBounds.top);\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n bounds = bounds.offset(nzOffset);\n\n const tab = tabRef.current;\n const userSized =\n tab.userSized ||\n (tab.isFloatingWidgetResizable && !!tab.preferredFloatingWidgetSize);\n let position = bounds.topLeft();\n const widgetBounds = widgetContext.measure();\n const widgetSize = restrainInitialWidgetSize(\n widgetBounds.getSize(),\n nzBounds.getSize()\n );\n if (overflown) {\n position = initialPointerPosition.current.offset(nzOffset);\n position = position.offset({ x: -7, y: -7 });\n }\n\n const dragOffset =\n initialPointerPosition.current.getOffsetTo(pointerPosition);\n position = position.offset(dragOffset);\n\n handleDragTabStart({\n initialPointerPosition: Point.create(initialPointerPosition.current),\n pointerPosition,\n widgetSize,\n });\n dispatch({\n type: \"WIDGET_TAB_DRAG_START\",\n floatingWidgetId,\n side,\n widgetId,\n id,\n position,\n userSized,\n });\n onDragStart?.();\n\n initialPointerPosition.current = undefined;\n },\n [\n clickOnly,\n measure,\n widgetContext,\n handleDragTabStart,\n dispatch,\n floatingWidgetId,\n side,\n widgetId,\n id,\n onDragStart,\n overflown,\n ]\n );\n const handlePointerDown = React.useCallback(\n (args: PointerCaptorArgs, e: PointerCaptorEvent) => {\n e.type === \"touchstart\" &&\n floatingWidgetId &&\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id: floatingWidgetId,\n });\n\n initialPointerPosition.current = new Point(args.clientX, args.clientY);\n },\n [dispatch, floatingWidgetId]\n );\n const handlePointerMove = React.useCallback(\n (args: PointerCaptorArgs) => {\n if (!initialPointerPosition.current) return;\n\n const pointerPosition = new Point(args.clientX, args.clientY);\n const distance =\n initialPointerPosition.current.getDistanceTo(pointerPosition);\n if (distance < 10) return;\n handleDragStart(pointerPosition);\n },\n [handleDragStart]\n );\n const handlePointerUp = React.useCallback(() => {\n clickCount.current++;\n initialPointerPosition.current = undefined;\n doubleClickTimer.current.start();\n }, []);\n\n const pointerCaptorRef = usePointerCaptor<T>(\n handlePointerDown,\n handlePointerMove,\n handlePointerUp\n );\n const ref = React.useRef<T | undefined>(undefined);\n const refs = useRefs(pointerCaptorRef, ref);\n\n React.useEffect(() => {\n const timer = doubleClickTimer.current;\n timer.setOnExecute(() => {\n if (clickCount.current === 1) handleClick();\n else handleDoubleClick();\n clickCount.current = 0;\n });\n const keydown = (e: KeyboardEvent) => {\n if (e.key === \" \" || e.key === Key.Enter.valueOf()) {\n handleClick();\n }\n };\n const instance = ref.current;\n instance && instance.addEventListener(\"keydown\", keydown);\n return () => {\n timer.setOnExecute(undefined);\n instance && instance.removeEventListener(\"keydown\", keydown);\n };\n }, [handleClick, handleDoubleClick]);\n return refs;\n}\n\n/** @internal */\nexport interface TabPositionContextArgs {\n first?: boolean;\n last?: boolean;\n firstInactive?: boolean;\n}\n\n/** @internal */\nexport const TabPositionContext = React.createContext<TabPositionContextArgs>(\n undefined!\n);\nTabPositionContext.displayName = \"nz:TabPositionContext\";\n\n/** @internal */\nexport const IconOnlyOnWidgetTabContext = React.createContext<boolean>(false);\nIconOnlyOnWidgetTabContext.displayName = \"nz:IconOnlyOnWidgetTabContext\";\n\n/** @internal */\nexport const ShowActiveWidgetLabelContext = React.createContext<boolean>(false);\nShowActiveWidgetLabelContext.displayName = \"nz:ShowActiveWidgetLabelContext\";\n"]}
1
+ {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Tab.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./Tab.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { Timer } from \"@itwin/core-react\";\nimport {\n Point,\n Rectangle,\n useRefs,\n useResizeObserver,\n} from \"@itwin/core-react/internal\";\nimport { Tooltip } from \"@itwin/itwinui-react\";\nimport { useDragTab } from \"../base/DragManager.js\";\nimport {\n MeasureContext,\n NineZoneDispatchContext,\n ShowWidgetIconContext,\n TabNodeContext,\n} from \"../base/NineZone.js\";\nimport type { TabState } from \"../state/TabState.js\";\nimport type {\n PointerCaptorArgs,\n PointerCaptorEvent,\n} from \"../base/usePointerCaptor.js\";\nimport { usePointerCaptor } from \"../base/usePointerCaptor.js\";\nimport { PanelSideContext } from \"../widget-panels/Panel.js\";\nimport { WidgetTabsEntryContext } from \"./Tabs.js\";\nimport {\n restrainInitialWidgetSize,\n WidgetContext,\n WidgetIdContext,\n} from \"./Widget.js\";\nimport { TabIdContext } from \"./ContentRenderer.js\";\nimport { TabTarget } from \"../target/TabTarget.js\";\nimport { WidgetMenuTab } from \"./MenuTab.js\";\nimport { WidgetOverflowContext } from \"./Overflow.js\";\nimport { useLayout, useLayoutStore } from \"../base/LayoutStore.js\";\nimport { useFloatingWidgetId } from \"./FloatingWidget.js\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers.js\";\nimport { useIsMaximizedWidget } from \"../../preview/enable-maximized-widget/useMaximizedWidget.js\";\nimport { FloatingTab } from \"./FloatingTab.js\";\n\n/** @internal */\nexport interface WidgetTabProviderProps extends TabPositionContextArgs {\n id: TabState[\"id\"];\n showOnlyTabIcon?: boolean;\n}\n\n/** @internal */\nexport function WidgetTabProvider({\n id,\n first,\n firstInactive,\n last,\n showOnlyTabIcon,\n}: WidgetTabProviderProps) {\n const tabNode = React.useContext(TabNodeContext);\n const position = React.useMemo<TabPositionContextArgs>(\n () => ({\n first,\n firstInactive,\n last,\n }),\n [first, firstInactive, last]\n );\n return (\n <TabIdContext.Provider value={id}>\n <TabPositionContext.Provider value={position}>\n <IconOnlyOnWidgetTabContext.Provider value={!!showOnlyTabIcon}>\n {tabNode}\n </IconOnlyOnWidgetTabContext.Provider>\n </TabPositionContext.Provider>\n </TabIdContext.Provider>\n );\n}\n\ninterface WidgetTabProps {\n badge?: React.ReactNode;\n icon?: React.ReactElement;\n}\n\n/** Component that displays a tab in a side panel widget.\n * @internal\n */\nexport function WidgetTab(props: WidgetTabProps) {\n const widgetOverflow = React.useContext(WidgetOverflowContext);\n const tabId = React.useContext(TabIdContext);\n const overflown = !!widgetOverflow;\n const floatingTabId = useLayout((state) => state.draggedTab?.tabId);\n\n if (tabId === floatingTabId) return <FloatingTab {...props} />;\n if (overflown) return <WidgetMenuTab {...props} />;\n return <WidgetTabComponent {...props} />;\n}\n\nfunction WidgetTabComponent(props: WidgetTabProps) {\n const id = React.useContext(TabIdContext);\n const { first, firstInactive, last } = React.useContext(TabPositionContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const showIconOnly = React.useContext(IconOnlyOnWidgetTabContext);\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n const showActiveWidgetLabel = React.useContext(ShowActiveWidgetLabelContext);\n assert(!!id);\n assert(!!widgetId);\n\n const label = useLayout((state) => state.tabs[id].label);\n const activeTabId = useLayout(\n (state) => getWidgetState(state, widgetId).activeTabId\n );\n const minimized = useLayout(\n (state) => getWidgetState(state, widgetId).minimized\n );\n\n const maximizedWidget = useIsMaximizedWidget();\n\n const resizeObserverRef = useResizeObserver<HTMLDivElement>(\n widgetTabsEntryContext?.onResize\n );\n const pointerCaptorRef = useTabInteractions({ clickOnly: maximizedWidget });\n const refs = useRefs<HTMLDivElement>(resizeObserverRef, pointerCaptorRef);\n\n const active = activeTabId === id;\n const className = classnames(\n \"nz-widget-tab\",\n active && \"nz-active\",\n undefined === side && minimized && \"nz-minimized\",\n first && \"nz-first\",\n last && \"nz-last\",\n firstInactive && \"nz-first-inactive\"\n );\n\n const showLabel =\n (showActiveWidgetLabel && active) ||\n (showIconOnly && !props.icon) ||\n (showWidgetIcon && !showIconOnly) ||\n !showWidgetIcon;\n return (\n <Tooltip content={label} ariaStrategy={showLabel ? \"none\" : \"label\"}>\n <div\n data-item-id={id}\n data-item-type=\"widget-tab\"\n className={className}\n ref={refs}\n role=\"tab\"\n tabIndex={0}\n >\n {(showWidgetIcon || showIconOnly) && (\n <span className=\"nz-icon\">{props.icon}</span>\n )}\n {showLabel && <span className=\"nz-label\">{label}</span>}\n {props.badge && <div className=\"nz-badge\">{props.badge}</div>}\n <TabTarget />\n </div>\n </Tooltip>\n );\n}\n\n/** @internal */\nexport interface UseTabInteractionsArgs {\n onClick?: () => void;\n onDoubleClick?: () => void;\n onDragStart?: () => void;\n clickOnly?: boolean;\n}\n\n/** @internal */\nexport function useTabInteractions<T extends HTMLElement>({\n onClick,\n onDoubleClick,\n onDragStart,\n clickOnly,\n}: UseTabInteractionsArgs) {\n const id = React.useContext(TabIdContext);\n const widgetContext = React.useContext(WidgetContext);\n const measure = React.useContext(MeasureContext);\n const dispatch = React.useContext(NineZoneDispatchContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const floatingWidgetId = useFloatingWidgetId();\n assert(!!id);\n assert(!!widgetId);\n\n const layoutStore = useLayoutStore();\n const tabRef = React.useRef(layoutStore.getState().tabs[id]);\n const clickCount = React.useRef(0);\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const doubleClickTimer = React.useRef(new Timer(300));\n const initialPointerPosition = React.useRef<Point | undefined>(undefined);\n\n const overflown = !widgetTabsEntryContext;\n\n React.useEffect(\n () =>\n layoutStore.subscribe((state) => {\n tabRef.current = state.tabs[id];\n }),\n [layoutStore, id]\n );\n\n const handleClick = React.useCallback(() => {\n dispatch({\n type: \"WIDGET_TAB_CLICK\",\n side,\n widgetId,\n id,\n });\n onClick?.();\n }, [dispatch, widgetId, id, side, onClick]);\n const handleDoubleClick = React.useCallback(() => {\n if (clickOnly) return;\n dispatch({\n type: \"WIDGET_TAB_DOUBLE_CLICK\",\n side,\n widgetId,\n floatingWidgetId,\n id,\n });\n onDoubleClick?.();\n }, [\n clickOnly,\n dispatch,\n floatingWidgetId,\n widgetId,\n id,\n side,\n onDoubleClick,\n ]);\n\n const handleDragTabStart = useDragTab({\n tabId: id,\n });\n const handleDragStart = React.useCallback(\n (pointerPosition: Point) => {\n if (clickOnly) return;\n assert(!!ref.current);\n assert(!!initialPointerPosition.current);\n const nzBounds = measure();\n const nzOffset = new Point(-nzBounds.left, -nzBounds.top);\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n bounds = bounds.offset(nzOffset);\n\n const tab = tabRef.current;\n const userSized =\n tab.userSized ||\n (tab.isFloatingWidgetResizable && !!tab.preferredFloatingWidgetSize);\n let position = bounds.topLeft();\n const widgetBounds = widgetContext.measure();\n const widgetSize = restrainInitialWidgetSize(\n widgetBounds.getSize(),\n nzBounds.getSize()\n );\n if (overflown) {\n position = initialPointerPosition.current.offset(nzOffset);\n position = position.offset({ x: -7, y: -7 });\n }\n\n const dragOffset =\n initialPointerPosition.current.getOffsetTo(pointerPosition);\n position = position.offset(dragOffset);\n\n handleDragTabStart({\n initialPointerPosition: Point.create(initialPointerPosition.current),\n pointerPosition,\n widgetSize,\n });\n dispatch({\n type: \"WIDGET_TAB_DRAG_START\",\n floatingWidgetId,\n side,\n widgetId,\n id,\n position,\n userSized,\n });\n onDragStart?.();\n\n initialPointerPosition.current = undefined;\n },\n [\n clickOnly,\n measure,\n widgetContext,\n handleDragTabStart,\n dispatch,\n floatingWidgetId,\n side,\n widgetId,\n id,\n onDragStart,\n overflown,\n ]\n );\n const handlePointerDown = React.useCallback(\n (args: PointerCaptorArgs, e: PointerCaptorEvent) => {\n e.type === \"touchstart\" &&\n floatingWidgetId &&\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id: floatingWidgetId,\n });\n\n initialPointerPosition.current = new Point(args.clientX, args.clientY);\n },\n [dispatch, floatingWidgetId]\n );\n const handlePointerMove = React.useCallback(\n (args: PointerCaptorArgs) => {\n if (!initialPointerPosition.current) return;\n\n const pointerPosition = new Point(args.clientX, args.clientY);\n const distance =\n initialPointerPosition.current.getDistanceTo(pointerPosition);\n if (distance < 10) return;\n handleDragStart(pointerPosition);\n },\n [handleDragStart]\n );\n const handlePointerUp = React.useCallback(() => {\n clickCount.current++;\n initialPointerPosition.current = undefined;\n doubleClickTimer.current.start();\n }, []);\n\n const pointerCaptorRef = usePointerCaptor<T>(\n handlePointerDown,\n handlePointerMove,\n handlePointerUp\n );\n const ref = React.useRef<T | undefined>(undefined);\n const refs = useRefs(pointerCaptorRef, ref);\n\n React.useEffect(() => {\n const timer = doubleClickTimer.current;\n timer.setOnExecute(() => {\n if (clickCount.current === 1) handleClick();\n else handleDoubleClick();\n clickCount.current = 0;\n });\n const keydown = (e: KeyboardEvent) => {\n if (e.key === \" \" || e.key === Key.Enter.valueOf()) {\n handleClick();\n }\n };\n const instance = ref.current;\n instance && instance.addEventListener(\"keydown\", keydown);\n return () => {\n timer.setOnExecute(undefined);\n instance && instance.removeEventListener(\"keydown\", keydown);\n };\n }, [handleClick, handleDoubleClick]);\n return refs;\n}\n\n/** @internal */\nexport interface TabPositionContextArgs {\n first?: boolean;\n last?: boolean;\n firstInactive?: boolean;\n}\n\n/** @internal */\nexport const TabPositionContext = React.createContext<TabPositionContextArgs>(\n undefined!\n);\nTabPositionContext.displayName = \"nz:TabPositionContext\";\n\n/** @internal */\nexport const IconOnlyOnWidgetTabContext = React.createContext<boolean>(false);\nIconOnlyOnWidgetTabContext.displayName = \"nz:IconOnlyOnWidgetTabContext\";\n\n/** @internal */\nexport const ShowActiveWidgetLabelContext = React.createContext<boolean>(false);\nShowActiveWidgetLabelContext.displayName = \"nz:ShowActiveWidgetLabelContext\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetContentLayout.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/widget-content-layout/WidgetContentLayout.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIzD,KAAK,QAAQ,GAAG,cAAc,GAAG,eAAe,CAAC;AAEjD,UAAU,cAAc;IACtB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,8BAA+B,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;IACnD;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,IAAI,CAAA;SAAE,EAAE,CAAC;KACjD,CAAC;IACF;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA2CD,UAAU,4BAA6B,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IACzE;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA+BD,UAAU,8BAA+B,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IAC3E;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA6BD,UAAU,wBAAyB,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IACrE;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA2CD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB;;;;CAI9B,CAAC"}
1
+ {"version":3,"file":"WidgetContentLayout.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/widget-content-layout/WidgetContentLayout.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIzD,KAAK,QAAQ,GAAG,cAAc,GAAG,eAAe,CAAC;AAEjD,UAAU,cAAc;IACtB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,8BAA+B,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;IACnD;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,IAAI,CAAA;SAAE,EAAE,CAAC;KACjD,CAAC;IACF;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA4CD,UAAU,4BAA6B,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IACzE;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA+BD,UAAU,8BAA+B,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IAC3E;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA6BD,UAAU,wBAAyB,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IACrE;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA4CD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB;;;;CAI9B,CAAC"}
@@ -13,8 +13,7 @@ import { HeaderLayout } from "./header/HeaderLayout.js";
13
13
  const Header = React.forwardRef(function Header(props, ref) {
14
14
  const { className, children, toggle, buttons, menu, title, onSearch, icons, iconSize, ...rest } = props;
15
15
  return (React.createElement("div", { className: classNames("nz-widget-widgetContentLayout-header", className), ...rest, ref: ref },
16
- React.createElement(HeaderLayout, { toggle: toggle, buttons: buttons, menu: menu, title: title, onSearch: onSearch, icons: icons, iconSize: iconSize }),
17
- children));
16
+ React.createElement(HeaderLayout, { toggle: toggle, buttons: buttons, menu: menu, title: title, onSearch: onSearch, icons: icons, iconSize: iconSize }, children)));
18
17
  });
19
18
  Header.displayName = "appui:WidgetContentLayout.Header";
20
19
  const Body = React.forwardRef(function Body(props, ref) {
@@ -51,7 +50,7 @@ const WidgetContentLayoutInner = React.forwardRef(function WidgetContentLayoutIn
51
50
  });
52
51
  }, [children]);
53
52
  const widgetComponents = [headerElement, bodyElement, footerElement].filter(Boolean);
54
- return (React.createElement("div", { className: classNames("nz-widget-widgetContentLayout", className), ...divProps, ref: ref },
53
+ return (React.createElement("div", { className: classNames("nz-widget-widgetContentLayout", className), ...divProps, ref: ref, "data-_appui-hide-dividers": hideDividers ? "true" : "false" },
55
54
  isLoading && React.createElement(LoadingOverlay, null),
56
55
  widgetComponents.map((component, index) => (React.createElement(React.Fragment, { key: index },
57
56
  component,
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetContentLayout.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/widget-content-layout/WidgetContentLayout.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 WidgetContentLayout\n */\n\nimport \"./WidgetContentLayout.scss\";\nimport classNames from \"classnames\";\nimport type { ComponentPropsWithRef } from \"react\";\nimport * as React from \"react\";\n\nimport { Divider, ProgressLinear, ProgressRadial } from \"@itwin/itwinui-react\";\nimport type { ToggleSwitch } from \"@itwin/itwinui-react\";\n\nimport { HeaderLayout } from \"./header/HeaderLayout.js\";\n\ntype IconMenu = IconMenuButton | IconMenuDivider;\n\ninterface IconMenuButton {\n icon: React.ReactNode;\n onClick: () => void;\n label: string;\n tooltipContent?: string;\n type?: \"button\";\n disabled?: boolean;\n isActive?: boolean;\n}\n\ninterface IconMenuDivider {\n type: \"divider\";\n key?: string;\n}\n\ninterface WidgetContentLayoutHeaderProps extends ComponentPropsWithRef<\"div\"> {\n /**\n * Toggle switch in the header.\n */\n toggle?: React.ComponentProps<typeof ToggleSwitch>;\n /**\n * Array of buttons to display in the header.\n */\n buttons?: React.ReactNode[];\n /**\n * Menu in the header.\n */\n menu?: {\n title: string;\n items: { label: string; onClick: () => void }[];\n };\n /**\n * Title to display in the header.\n */\n title?: string;\n /**\n * Callback function for search functionality.\n */\n onSearch?: (value: string) => void;\n /**\n * Array of icon menu items to display in the header.\n */\n icons?: IconMenu[];\n /**\n * Size of the icons.\n */\n iconSize?: \"small\" | \"large\";\n /**\n * Child elements to render within the header.\n */\n children?: React.ReactNode;\n}\n\nconst Header = React.forwardRef<HTMLDivElement, WidgetContentLayoutHeaderProps>(\n function Header(props, ref) {\n const {\n className,\n children,\n toggle,\n buttons,\n menu,\n title,\n onSearch,\n icons,\n iconSize,\n ...rest\n } = props;\n\n return (\n <div\n className={classNames(\n \"nz-widget-widgetContentLayout-header\",\n className\n )}\n {...rest}\n ref={ref}\n >\n <HeaderLayout\n toggle={toggle}\n buttons={buttons}\n menu={menu}\n title={title}\n onSearch={onSearch}\n icons={icons}\n iconSize={iconSize}\n />\n {children}\n </div>\n );\n }\n);\n\nHeader.displayName = \"appui:WidgetContentLayout.Header\";\n\ninterface WidgetContentLayoutBodyProps extends ComponentPropsWithRef<\"div\"> {\n /**\n * Whether the body is in a loading state.\n */\n isLoading?: boolean;\n /**\n * Whether to show a non-blocking loading indicator.\n */\n isNonBlockingLoading?: boolean;\n /**\n * Child elements to render within the body.\n */\n children?: React.ReactNode;\n}\n\nconst Body = React.forwardRef<HTMLDivElement, WidgetContentLayoutBodyProps>(\n function Body(props, ref) {\n const { isNonBlockingLoading, isLoading, className, children, ...rest } =\n props;\n return (\n <div className=\"nz-widget-widgetContentLayout-body_wrapper\">\n {isLoading ? (\n <LoadingOverlay />\n ) : (\n isNonBlockingLoading && (\n <ProgressLinear className=\"nz-widget-widgetContentLayout-progress\" />\n )\n )}\n <div\n className={classNames(\n \"nz-widget-widgetContentLayout-body\",\n className\n )}\n {...rest}\n ref={ref}\n >\n {children}\n </div>\n </div>\n );\n }\n);\nBody.displayName = \"appui:WidgetContentLayout.Body\";\n\ninterface WidgetContentLayoutFooterProps extends ComponentPropsWithRef<\"div\"> {\n /**\n * Child elements to render within the footer.\n */\n children?: React.ReactNode;\n}\n\nconst Footer = React.forwardRef<HTMLDivElement, WidgetContentLayoutFooterProps>(\n function Footer(props, ref) {\n const { className, children, ...rest } = props;\n return (\n <div\n className={classNames(\n \"nz-widget-widgetContentLayout-footer\",\n className\n )}\n {...rest}\n ref={ref}\n >\n {children}\n </div>\n );\n }\n);\nFooter.displayName = \"appui:WidgetContentLayout.Footer\";\n\nfunction LoadingOverlay() {\n return (\n <div className=\"nz-widget-widgetContentLayout-loadingOverlay\">\n <ProgressRadial />\n </div>\n );\n}\n\ninterface WidgetContentLayoutProps extends ComponentPropsWithRef<\"div\"> {\n /**\n * Whether the entire layout is in a loading state.\n */\n isLoading?: boolean;\n /**\n * Whether to hide dividers between sections.\n */\n hideDividers?: boolean;\n /**\n * Child elements (Header, Body, Footer) to render.\n */\n children?: React.ReactNode;\n}\n\nconst WidgetContentLayoutInner = React.forwardRef<\n HTMLDivElement,\n WidgetContentLayoutProps\n>(function WidgetContentLayoutInner(props, ref) {\n const { isLoading, hideDividers, children, className, ...divProps } = props;\n const [headerElement, setHeaderElement] = React.useState<React.ReactNode>();\n const [bodyElement, setBodyElement] = React.useState<React.ReactNode>();\n const [footerElement, setFooterElement] = React.useState<React.ReactNode>();\n\n React.useEffect(() => {\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type === Header) setHeaderElement(child);\n else if (child.type === Body) setBodyElement(child);\n else if (child.type === Footer) setFooterElement(child);\n });\n }, [children]);\n\n const widgetComponents = [headerElement, bodyElement, footerElement].filter(\n Boolean\n );\n\n return (\n <div\n className={classNames(\"nz-widget-widgetContentLayout\", className)}\n {...divProps}\n ref={ref}\n >\n {isLoading && <LoadingOverlay />}\n {widgetComponents.map((component, index) => (\n <React.Fragment key={index}>\n {component}\n {index < widgetComponents.length - 1 && !hideDividers && (\n <Divider className=\"nz-widget-widgetContentLayout-divider\" />\n )}\n </React.Fragment>\n ))}\n </div>\n );\n});\n\n/**\n * A layout component for widgets that provides a top section for buttons, a body section and a footer section.\n * @example\n * <WidgetContentLayout>\n * <WidgetContentLayout.Header />\n * <WidgetContentLayout.Body>\n * <ContentComponent />\n * </WidgetContentLayout.Body>\n * <WidgetContentLayout.Footer>\n * <FooterComponent />\n * </WidgetContentLayout.Footer>\n * </WidgetContentLayout>\n * @public\n */\nexport const WidgetContentLayout = Object.assign(WidgetContentLayoutInner, {\n Header,\n Body,\n Footer,\n});\n\nWidgetContentLayout.Header = Header;\nWidgetContentLayout.Body = Body;\nWidgetContentLayout.Footer = Footer;\n"]}
1
+ {"version":3,"file":"WidgetContentLayout.js","sourceRoot":"","sources":["../../../../../src/appui-react/layout/widget/widget-content-layout/WidgetContentLayout.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 WidgetContentLayout\n */\n\nimport \"./WidgetContentLayout.scss\";\nimport classNames from \"classnames\";\nimport type { ComponentPropsWithRef } from \"react\";\nimport * as React from \"react\";\n\nimport { Divider, ProgressLinear, ProgressRadial } from \"@itwin/itwinui-react\";\nimport type { ToggleSwitch } from \"@itwin/itwinui-react\";\n\nimport { HeaderLayout } from \"./header/HeaderLayout.js\";\n\ntype IconMenu = IconMenuButton | IconMenuDivider;\n\ninterface IconMenuButton {\n icon: React.ReactNode;\n onClick: () => void;\n label: string;\n tooltipContent?: string;\n type?: \"button\";\n disabled?: boolean;\n isActive?: boolean;\n}\n\ninterface IconMenuDivider {\n type: \"divider\";\n key?: string;\n}\n\ninterface WidgetContentLayoutHeaderProps extends ComponentPropsWithRef<\"div\"> {\n /**\n * Toggle switch in the header.\n */\n toggle?: React.ComponentProps<typeof ToggleSwitch>;\n /**\n * Array of buttons to display in the header.\n */\n buttons?: React.ReactNode[];\n /**\n * Menu in the header.\n */\n menu?: {\n title: string;\n items: { label: string; onClick: () => void }[];\n };\n /**\n * Title to display in the header.\n */\n title?: string;\n /**\n * Callback function for search functionality.\n */\n onSearch?: (value: string) => void;\n /**\n * Array of icon menu items to display in the header.\n */\n icons?: IconMenu[];\n /**\n * Size of the icons.\n */\n iconSize?: \"small\" | \"large\";\n /**\n * Child elements to render within the header.\n */\n children?: React.ReactNode;\n}\n\nconst Header = React.forwardRef<HTMLDivElement, WidgetContentLayoutHeaderProps>(\n function Header(props, ref) {\n const {\n className,\n children,\n toggle,\n buttons,\n menu,\n title,\n onSearch,\n icons,\n iconSize,\n ...rest\n } = props;\n\n return (\n <div\n className={classNames(\n \"nz-widget-widgetContentLayout-header\",\n className\n )}\n {...rest}\n ref={ref}\n >\n <HeaderLayout\n toggle={toggle}\n buttons={buttons}\n menu={menu}\n title={title}\n onSearch={onSearch}\n icons={icons}\n iconSize={iconSize}\n >\n {children}\n </HeaderLayout>\n </div>\n );\n }\n);\n\nHeader.displayName = \"appui:WidgetContentLayout.Header\";\n\ninterface WidgetContentLayoutBodyProps extends ComponentPropsWithRef<\"div\"> {\n /**\n * Whether the body is in a loading state.\n */\n isLoading?: boolean;\n /**\n * Whether to show a non-blocking loading indicator.\n */\n isNonBlockingLoading?: boolean;\n /**\n * Child elements to render within the body.\n */\n children?: React.ReactNode;\n}\n\nconst Body = React.forwardRef<HTMLDivElement, WidgetContentLayoutBodyProps>(\n function Body(props, ref) {\n const { isNonBlockingLoading, isLoading, className, children, ...rest } =\n props;\n return (\n <div className=\"nz-widget-widgetContentLayout-body_wrapper\">\n {isLoading ? (\n <LoadingOverlay />\n ) : (\n isNonBlockingLoading && (\n <ProgressLinear className=\"nz-widget-widgetContentLayout-progress\" />\n )\n )}\n <div\n className={classNames(\n \"nz-widget-widgetContentLayout-body\",\n className\n )}\n {...rest}\n ref={ref}\n >\n {children}\n </div>\n </div>\n );\n }\n);\nBody.displayName = \"appui:WidgetContentLayout.Body\";\n\ninterface WidgetContentLayoutFooterProps extends ComponentPropsWithRef<\"div\"> {\n /**\n * Child elements to render within the footer.\n */\n children?: React.ReactNode;\n}\n\nconst Footer = React.forwardRef<HTMLDivElement, WidgetContentLayoutFooterProps>(\n function Footer(props, ref) {\n const { className, children, ...rest } = props;\n return (\n <div\n className={classNames(\n \"nz-widget-widgetContentLayout-footer\",\n className\n )}\n {...rest}\n ref={ref}\n >\n {children}\n </div>\n );\n }\n);\nFooter.displayName = \"appui:WidgetContentLayout.Footer\";\n\nfunction LoadingOverlay() {\n return (\n <div className=\"nz-widget-widgetContentLayout-loadingOverlay\">\n <ProgressRadial />\n </div>\n );\n}\n\ninterface WidgetContentLayoutProps extends ComponentPropsWithRef<\"div\"> {\n /**\n * Whether the entire layout is in a loading state.\n */\n isLoading?: boolean;\n /**\n * Whether to hide dividers between sections.\n */\n hideDividers?: boolean;\n /**\n * Child elements (Header, Body, Footer) to render.\n */\n children?: React.ReactNode;\n}\n\nconst WidgetContentLayoutInner = React.forwardRef<\n HTMLDivElement,\n WidgetContentLayoutProps\n>(function WidgetContentLayoutInner(props, ref) {\n const { isLoading, hideDividers, children, className, ...divProps } = props;\n const [headerElement, setHeaderElement] = React.useState<React.ReactNode>();\n const [bodyElement, setBodyElement] = React.useState<React.ReactNode>();\n const [footerElement, setFooterElement] = React.useState<React.ReactNode>();\n\n React.useEffect(() => {\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type === Header) setHeaderElement(child);\n else if (child.type === Body) setBodyElement(child);\n else if (child.type === Footer) setFooterElement(child);\n });\n }, [children]);\n\n const widgetComponents = [headerElement, bodyElement, footerElement].filter(\n Boolean\n );\n\n return (\n <div\n className={classNames(\"nz-widget-widgetContentLayout\", className)}\n {...divProps}\n ref={ref}\n data-_appui-hide-dividers={hideDividers ? \"true\" : \"false\"}\n >\n {isLoading && <LoadingOverlay />}\n {widgetComponents.map((component, index) => (\n <React.Fragment key={index}>\n {component}\n {index < widgetComponents.length - 1 && !hideDividers && (\n <Divider className=\"nz-widget-widgetContentLayout-divider\" />\n )}\n </React.Fragment>\n ))}\n </div>\n );\n});\n\n/**\n * A layout component for widgets that provides a top section for buttons, a body section and a footer section.\n * @example\n * <WidgetContentLayout>\n * <WidgetContentLayout.Header />\n * <WidgetContentLayout.Body>\n * <ContentComponent />\n * </WidgetContentLayout.Body>\n * <WidgetContentLayout.Footer>\n * <FooterComponent />\n * </WidgetContentLayout.Footer>\n * </WidgetContentLayout>\n * @public\n */\nexport const WidgetContentLayout = Object.assign(WidgetContentLayoutInner, {\n Header,\n Body,\n Footer,\n});\n\nWidgetContentLayout.Header = Header;\nWidgetContentLayout.Body = Body;\nWidgetContentLayout.Footer = Footer;\n"]}
@@ -6,6 +6,18 @@
6
6
  width: 100%;
7
7
  position: relative;
8
8
  overflow: hidden;
9
+
10
+ &[data-_appui-hide-dividers="true"] {
11
+ .nz-widget-widgetContentLayout-header {
12
+ padding-block-end: calc(var(--iui-size-s) / 2);
13
+ }
14
+ .nz-widget-widgetContentLayout-body {
15
+ padding-block: calc(var(--iui-size-s) / 2);
16
+ }
17
+ .nz-widget-widgetContentLayout-footer {
18
+ padding-block-start: calc(var(--iui-size-s) / 2);
19
+ }
20
+ }
9
21
  }
10
22
  .nz-widget-widgetContentLayout-header {
11
23
  display: flex;
@@ -21,15 +33,9 @@
21
33
  width: 100%;
22
34
  display: flex;
23
35
  flex-direction: column;
24
- gap: var(--iui-size-s);
25
36
 
26
37
  .nz-widget-widgetContentLayout-progress {
27
38
  padding-inline: var(--iui-size-s);
28
-
29
- /* check if it has sibling with classname .nz-widget-widgetContentLayout-body */
30
- + .nz-widget-widgetContentLayout-body {
31
- padding-block-start: 0px;
32
- }
33
39
  }
34
40
 
35
41
  .nz-widget-widgetContentLayout-body {
@@ -2,7 +2,7 @@ import "./HeaderLayout.scss";
2
2
  import * as React from "react";
3
3
  import type { WidgetContentLayout } from "../WidgetContentLayout.js";
4
4
  type WidgetContentLayoutHeaderProps = React.ComponentProps<typeof WidgetContentLayout.Header>;
5
- type HeaderLayoutProps = Pick<WidgetContentLayoutHeaderProps, "toggle" | "buttons" | "menu" | "title" | "onSearch" | "icons" | "iconSize">;
5
+ type HeaderLayoutProps = Pick<WidgetContentLayoutHeaderProps, "toggle" | "buttons" | "menu" | "title" | "onSearch" | "icons" | "iconSize" | "children">;
6
6
  /**
7
7
  * A layout component for the header, including optional search, icons, buttons, title, and a menu.
8
8
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderLayout.d.ts","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/widget/widget-content-layout/header/HeaderLayout.tsx"],"names":[],"mappings":"AAKA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,KAAK,8BAA8B,GAAG,KAAK,CAAC,cAAc,CACxD,OAAO,mBAAmB,CAAC,MAAM,CAClC,CAAC;AAEF,KAAK,iBAAiB,GAAG,IAAI,CAC3B,8BAA8B,EAC9B,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAC5E,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAiDpD"}
1
+ {"version":3,"file":"HeaderLayout.d.ts","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/widget/widget-content-layout/header/HeaderLayout.tsx"],"names":[],"mappings":"AAKA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,KAAK,8BAA8B,GAAG,KAAK,CAAC,cAAc,CACxD,OAAO,mBAAmB,CAAC,MAAM,CAClC,CAAC;AAEF,KAAK,iBAAiB,GAAG,IAAI,CAC3B,8BAA8B,EAC5B,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,GACP,UAAU,GACV,OAAO,GACP,UAAU,GACV,UAAU,CACb,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,qBAkDpD"}
@@ -26,6 +26,7 @@ export function HeaderLayout(props) {
26
26
  const remainingLeftItems = props.title ? leftItems : leftItems.slice(1);
27
27
  return (React.createElement("div", { className: "nz-widget-widgetContentLayout-header-headerLayout" },
28
28
  (props.onSearch || topBarLeftItems.length > 0 || icons.length > 0) && (React.createElement(HeaderTopBar, { primaryContent: topBarLeftItems, onSearch: props.onSearch, icons: icons, iconSize: props.iconSize })),
29
- remainingLeftItems.map((item) => (React.createElement("div", { className: "nz-remainingItems", key: item.key }, item)))));
29
+ remainingLeftItems.map((item) => (React.createElement("div", { className: "nz-remainingItems", key: item.key }, item))),
30
+ props.children));
30
31
  }
31
32
  //# sourceMappingURL=HeaderLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderLayout.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/widget/widget-content-layout/header/HeaderLayout.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAYjD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG;QAChB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAC,YAAY,IAAC,GAAG,EAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,GAAI,CAAC,CAAC,CAAC,SAAS;QAC1E,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,oBAAC,cAAc,IACb,GAAG,EAAC,MAAM,EACV,SAAS,EAAC,SAAS,EACnB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACrC,oBAAC,QAAQ,IAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IACvC,CAAC,CAAC,KAAK,CACC,CACZ,CAAC,IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CACF,CAClB,CAAC,CAAC,CAAC,SAAS;QACb,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACnB,6BAAK,GAAG,EAAC,SAAS,EAAC,SAAS,EAAC,YAAY,IACtC,OAAO,CACJ,CACP,CAAC,CAAC,CAAC,SAAS;KACd,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK;QACjC,CAAC,CAAC;YACE,oBAAC,IAAI,IAAC,GAAG,EAAC,OAAO,EAAC,SAAS,EAAC,UAAU,IACnC,KAAK,CAAC,KAAK,CACP;SACR;QACH,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxE,OAAO,CACL,6BAAK,SAAS,EAAC,mDAAmD;QAC/D,CAAC,KAAK,CAAC,QAAQ,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CACrE,oBAAC,YAAY,IACX,cAAc,EAAE,eAAe,EAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,GACxB,CACH;QACA,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAChC,6BAAK,SAAS,EAAC,mBAAmB,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAC7C,IAAI,CACD,CACP,CAAC,CACE,CACP,CAAC;AACJ,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\nimport \"./HeaderLayout.scss\";\nimport * as React from \"react\";\nimport {\n DropdownButton,\n MenuItem,\n Text,\n ToggleSwitch,\n} from \"@itwin/itwinui-react\";\nimport { HeaderTopBar } from \"./HeaderTopBar.js\";\nimport type { WidgetContentLayout } from \"../WidgetContentLayout.js\";\n\ntype WidgetContentLayoutHeaderProps = React.ComponentProps<\n typeof WidgetContentLayout.Header\n>;\n\ntype HeaderLayoutProps = Pick<\n WidgetContentLayoutHeaderProps,\n \"toggle\" | \"buttons\" | \"menu\" | \"title\" | \"onSearch\" | \"icons\" | \"iconSize\"\n>;\n\n/**\n * A layout component for the header, including optional search, icons, buttons, title, and a menu.\n * @internal\n */\nexport function HeaderLayout(props: HeaderLayoutProps) {\n const buttons = props.buttons || [];\n const icons = props.icons || [];\n const leftItems = [\n props.toggle ? <ToggleSwitch key=\"toggle\" {...props.toggle} /> : undefined,\n props.menu ? (\n <DropdownButton\n key=\"menu\"\n className=\"nz-menu\"\n menuItems={props.menu.items.map((i) => (\n <MenuItem key={i.label} onClick={i.onClick}>\n {i.label}\n </MenuItem>\n ))}\n >\n {props.menu.title}\n </DropdownButton>\n ) : undefined,\n buttons.length > 0 ? (\n <div key=\"buttons\" className=\"nz-buttons\">\n {buttons}\n </div>\n ) : undefined,\n ].filter((item) => !!item);\n const topBarLeftItems = props.title\n ? [\n <Text key=\"title\" className=\"nz-title\">\n {props.title}\n </Text>,\n ]\n : leftItems.slice(0, 1);\n const remainingLeftItems = props.title ? leftItems : leftItems.slice(1);\n return (\n <div className=\"nz-widget-widgetContentLayout-header-headerLayout\">\n {(props.onSearch || topBarLeftItems.length > 0 || icons.length > 0) && (\n <HeaderTopBar\n primaryContent={topBarLeftItems}\n onSearch={props.onSearch}\n icons={icons}\n iconSize={props.iconSize}\n />\n )}\n {remainingLeftItems.map((item) => (\n <div className=\"nz-remainingItems\" key={item.key}>\n {item}\n </div>\n ))}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"HeaderLayout.js","sourceRoot":"","sources":["../../../../../../src/appui-react/layout/widget/widget-content-layout/header/HeaderLayout.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAmBjD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG;QAChB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAC,YAAY,IAAC,GAAG,EAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,GAAI,CAAC,CAAC,CAAC,SAAS;QAC1E,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,oBAAC,cAAc,IACb,GAAG,EAAC,MAAM,EACV,SAAS,EAAC,SAAS,EACnB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACrC,oBAAC,QAAQ,IAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IACvC,CAAC,CAAC,KAAK,CACC,CACZ,CAAC,IAED,KAAK,CAAC,IAAI,CAAC,KAAK,CACF,CAClB,CAAC,CAAC,CAAC,SAAS;QACb,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACnB,6BAAK,GAAG,EAAC,SAAS,EAAC,SAAS,EAAC,YAAY,IACtC,OAAO,CACJ,CACP,CAAC,CAAC,CAAC,SAAS;KACd,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK;QACjC,CAAC,CAAC;YACE,oBAAC,IAAI,IAAC,GAAG,EAAC,OAAO,EAAC,SAAS,EAAC,UAAU,IACnC,KAAK,CAAC,KAAK,CACP;SACR;QACH,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxE,OAAO,CACL,6BAAK,SAAS,EAAC,mDAAmD;QAC/D,CAAC,KAAK,CAAC,QAAQ,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CACrE,oBAAC,YAAY,IACX,cAAc,EAAE,eAAe,EAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,GACxB,CACH;QACA,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAChC,6BAAK,SAAS,EAAC,mBAAmB,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAC7C,IAAI,CACD,CACP,CAAC;QACD,KAAK,CAAC,QAAQ,CACX,CACP,CAAC;AACJ,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\nimport \"./HeaderLayout.scss\";\nimport * as React from \"react\";\nimport {\n DropdownButton,\n MenuItem,\n Text,\n ToggleSwitch,\n} from \"@itwin/itwinui-react\";\nimport { HeaderTopBar } from \"./HeaderTopBar.js\";\nimport type { WidgetContentLayout } from \"../WidgetContentLayout.js\";\n\ntype WidgetContentLayoutHeaderProps = React.ComponentProps<\n typeof WidgetContentLayout.Header\n>;\n\ntype HeaderLayoutProps = Pick<\n WidgetContentLayoutHeaderProps,\n | \"toggle\"\n | \"buttons\"\n | \"menu\"\n | \"title\"\n | \"onSearch\"\n | \"icons\"\n | \"iconSize\"\n | \"children\"\n>;\n\n/**\n * A layout component for the header, including optional search, icons, buttons, title, and a menu.\n * @internal\n */\nexport function HeaderLayout(props: HeaderLayoutProps) {\n const buttons = props.buttons || [];\n const icons = props.icons || [];\n const leftItems = [\n props.toggle ? <ToggleSwitch key=\"toggle\" {...props.toggle} /> : undefined,\n props.menu ? (\n <DropdownButton\n key=\"menu\"\n className=\"nz-menu\"\n menuItems={props.menu.items.map((i) => (\n <MenuItem key={i.label} onClick={i.onClick}>\n {i.label}\n </MenuItem>\n ))}\n >\n {props.menu.title}\n </DropdownButton>\n ) : undefined,\n buttons.length > 0 ? (\n <div key=\"buttons\" className=\"nz-buttons\">\n {buttons}\n </div>\n ) : undefined,\n ].filter((item) => !!item);\n const topBarLeftItems = props.title\n ? [\n <Text key=\"title\" className=\"nz-title\">\n {props.title}\n </Text>,\n ]\n : leftItems.slice(0, 1);\n const remainingLeftItems = props.title ? leftItems : leftItems.slice(1);\n return (\n <div className=\"nz-widget-widgetContentLayout-header-headerLayout\">\n {(props.onSearch || topBarLeftItems.length > 0 || icons.length > 0) && (\n <HeaderTopBar\n primaryContent={topBarLeftItems}\n onSearch={props.onSearch}\n icons={icons}\n iconSize={props.iconSize}\n />\n )}\n {remainingLeftItems.map((item) => (\n <div className=\"nz-remainingItems\" key={item.key}>\n {item}\n </div>\n ))}\n {props.children}\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SheetNavigationAid.d.ts","sourceRoot":"","sources":["../../../src/appui-react/navigationaids/SheetNavigationAid.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,2BAA2B,CAAC;AAEnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAIzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAQjE;;;GAGG;AAEH,qBAAa,yBAA0B,SAAQ,oBAAoB;IACjE,OAAc,eAAe,SAAwB;gBAGzC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG;IAMtC,OAAO,IAAI,MAAM,GAAG,SAAS;CAG9C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AAEH,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CACrD,oBAAoB,EACpB,oBAAoB,CACrB;IACC,OAAO,CAAC,UAAU,CAAS;IAE3B,SAAyB,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAG5D;IAEF,OAAO,CAAC,SAAS,CAA6B;gBAElC,KAAK,EAAE,oBAAoB;IAMvC,4CAA4C;IACtB,iBAAiB;IAiBvC,oDAAoD;IACpC,oBAAoB;IAapC,mDAAmD;YACrC,YAAY;IA4BV,MAAM,IAAI,KAAK,CAAC,SAAS;IAgFzC,wCAAwC;IACxC,OAAO,CAAC,mBAAmB,CAOzB;IAEF,yDAAyD;IACzD,OAAO,CAAC,uBAAuB,CAU7B;IAEF,sDAAsD;IACtD,OAAO,CAAC,wBAAwB,CAO9B;IAEF,mDAAmD;IACnD,OAAO,CAAC,8BAA8B,CAMpC;IAEF,OAAO,CAAC,oBAAoB,CAK1B;IAEF,mDAAmD;IACnD,OAAO,CAAC,sBAAsB,CAgB5B;IAEF,0CAA0C;YAC5B,WAAW;IAOzB,0CAA0C;IAC1C,OAAO,CAAC,eAAe;IAQvB,2DAA2D;IAC3D,OAAO,CAAC,uBAAuB,CAE7B;CACH"}
1
+ {"version":3,"file":"SheetNavigationAid.d.ts","sourceRoot":"","sources":["../../../src/appui-react/navigationaids/SheetNavigationAid.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,2BAA2B,CAAC;AAEnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAIzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAQjE;;;GAGG;AAEH,qBAAa,yBAA0B,SAAQ,oBAAoB;IACjE,OAAc,eAAe,SAAwB;gBAGzC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG;IAMtC,OAAO,IAAI,MAAM,GAAG,SAAS;CAG9C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AAEH,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CACrD,oBAAoB,EACpB,oBAAoB,CACrB;IACC,OAAO,CAAC,UAAU,CAAS;IAE3B,SAAyB,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAG5D;IAEF,OAAO,CAAC,SAAS,CAA6B;gBAElC,KAAK,EAAE,oBAAoB;IAMvC,4CAA4C;IACtB,iBAAiB;IAiBvC,oDAAoD;IACpC,oBAAoB;IAapC,mDAAmD;YACrC,YAAY;IA4BV,MAAM,IAAI,KAAK,CAAC,SAAS;IA8EzC,wCAAwC;IACxC,OAAO,CAAC,mBAAmB,CAOzB;IAEF,yDAAyD;IACzD,OAAO,CAAC,uBAAuB,CAU7B;IAEF,sDAAsD;IACtD,OAAO,CAAC,wBAAwB,CAO9B;IAEF,mDAAmD;IACnD,OAAO,CAAC,8BAA8B,CAMpC;IAEF,OAAO,CAAC,oBAAoB,CAK1B;IAEF,mDAAmD;IACnD,OAAO,CAAC,sBAAsB,CAgB5B;IAEF,0CAA0C;YAC5B,WAAW;IAOzB,0CAA0C;IAC1C,OAAO,CAAC,eAAe;IAQvB,2DAA2D;IAC3D,OAAO,CAAC,uBAAuB,CAE7B;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"SheetNavigationAid.js","sourceRoot":"","sources":["../../../src/appui-react/navigationaids/SheetNavigationAid.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 NavigationAids\n */\n\nimport \"./SheetNavigationAid.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n IModelConnection,\n ScreenViewport,\n SelectedViewportChangedArgs,\n} from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { ViewportComponentEvents } from \"@itwin/imodel-components-react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport type { ListenerType } from \"@itwin/core-react/internal\";\nimport type { ConfigurableCreateInfo } from \"../configurableui/ConfigurableUiControl.js\";\nimport type { ModalFrontstageInfo } from \"../framework/FrameworkFrontstages.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { ViewUtilities } from \"../utils/ViewUtilities.js\";\nimport { NavigationAidControl } from \"./NavigationAidControl.js\";\nimport {\n CardContainer,\n SheetsModalFrontstage,\n} from \"./SheetsModalFrontstage.js\";\nimport { IconButton, ProgressRadial } from \"@itwin/itwinui-react\";\nimport { SvgChevronLeft, SvgChevronRight } from \"@itwin/itwinui-icons-react\";\n\n/** A Sheet Navigation Aid control.\n * @public\n * @deprecated in 4.16.0. Use {@link SheetNavigationAid} component instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class SheetNavigationAidControl extends NavigationAidControl {\n public static navigationAidId = \"SheetNavigationAid\";\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n constructor(info: ConfigurableCreateInfo, options: any) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n super(info, options);\n this.reactNode = <SheetNavigationAid iModelConnection={options.imodel} />;\n }\n\n public override getSize(): string | undefined {\n return \"96px\";\n }\n}\n\n/** Data displayed about sheet\n * @alpha\n */\nexport interface SheetData {\n name: string;\n viewId: string;\n}\n\n/** Properties for the [[SheetNavigationAid]] component\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface SheetNavigationProps extends CommonProps {\n iModelConnection: IModelConnection;\n}\n\ninterface SheetNavigationState {\n index: number;\n sheetData: SheetData[];\n}\n\n/** A Sheet Navigation Aid.\n * @public\n */\nexport class SheetNavigationAid extends React.Component<\n SheetNavigationProps,\n SheetNavigationState\n> {\n private _isMounted = false;\n\n public override readonly state: Readonly<SheetNavigationState> = {\n index: 0,\n sheetData: [],\n };\n\n private _viewport: ScreenViewport | undefined;\n\n constructor(props: SheetNavigationProps) {\n super(props);\n\n this._viewport = IModelApp.viewManager.selectedView;\n }\n\n /** Adds listeners when components mounts */\n public override async componentDidMount() {\n this._isMounted = true;\n\n CardContainer.onCardSelectedEvent.addListener(this._handleCardSelected);\n ViewportComponentEvents.onViewIdChangedEvent.addListener(\n this._handleViewIdChanged\n );\n\n IModelApp.viewManager.onSelectedViewportChanged.addListener(\n this._handleSelectedViewportChanged\n );\n\n const stateData = await this._setupSheets();\n\n if (this._isMounted) this.setState(stateData);\n }\n\n /** Removes listeners when component will unmount */\n public override componentWillUnmount() {\n this._isMounted = false;\n\n CardContainer.onCardSelectedEvent.removeListener(this._handleCardSelected);\n ViewportComponentEvents.onViewIdChangedEvent.removeListener(\n this._handleViewIdChanged\n );\n\n IModelApp.viewManager.onSelectedViewportChanged.removeListener(\n this._handleSelectedViewportChanged\n );\n }\n\n /** Queries for sheet info and sets as sheetData */\n private async _setupSheets(): Promise<SheetNavigationState> {\n const stateData: SheetNavigationState = {\n index: 0,\n sheetData: [],\n };\n\n if (\n !this.props.iModelConnection ||\n !this.props.iModelConnection.views.getViewList\n )\n return stateData;\n\n let viewId = \"\";\n if (this._viewport) {\n viewId = this._viewport.view.id.toString();\n }\n\n const sheets = await this.props.iModelConnection.views.getViewList({\n from: \"BisCore.SheetViewDefinition\",\n });\n sheets.forEach((viewSpec: IModelConnection.ViewSpec, index: number) => {\n stateData.sheetData.push({ name: viewSpec.name, viewId: viewSpec.id });\n if (viewSpec.id === viewId) stateData.index = index;\n });\n\n return stateData;\n }\n\n public override render(): React.ReactNode {\n const name =\n this.state.sheetData.length > 0\n ? this.state.sheetData[this.state.index].name\n : \"\";\n const leftIndex =\n this.state.index === 0\n ? this.state.sheetData.length - 1\n : this.state.index - 1;\n const rightIndex =\n this.state.index >= this.state.sheetData.length - 1\n ? 0\n : this.state.index + 1;\n const leftTitle = this.state.sheetData[leftIndex]\n ? this.state.sheetData[leftIndex].name\n : undefined;\n const rightTitle = this.state.sheetData[rightIndex]\n ? this.state.sheetData[rightIndex].name\n : undefined;\n\n let content: React.ReactNode;\n if (this.state.sheetData.length > 0) {\n content = (\n <>\n <div className=\"sheet-title\">\n {UiFramework.translate(\"general.sheet\")}\n </div>\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div\n className=\"sheet-name\"\n title={name}\n onClick={this._handleOnClickSheetName}\n role=\"button\"\n tabIndex={-1}\n >\n {name}\n </div>\n <div className=\"sheet-container\">\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <IconButton\n size=\"small\"\n styleType=\"borderless\"\n onClick={this._handleOnClickLeftArrow}\n tabIndex={-1}\n label={leftTitle}\n >\n <SvgChevronLeft />\n </IconButton>\n <div>\n {this.state.index + 1} {UiFramework.translate(\"general.of\")}\n {this.state.sheetData.length}\n </div>\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <IconButton\n size=\"small\"\n styleType=\"borderless\"\n onClick={this._handleOnClickRightArrow}\n role=\"button\"\n tabIndex={-1}\n label={rightTitle}\n >\n <SvgChevronRight />\n </IconButton>\n </div>\n </>\n );\n } else {\n content = <ProgressRadial size=\"x-small\" indeterminate />;\n }\n\n return (\n <div\n className={classnames(\"uifw-sheet-navigation\", this.props.className)}\n style={this.props.style}\n >\n {content}\n </div>\n );\n }\n\n /** Sets index of newly selected card */\n private _handleCardSelected: ListenerType<\n typeof CardContainer.onCardSelectedEvent\n > = (event) => {\n event &&\n this.setState({\n index: event.index,\n });\n };\n\n /** Updates view to the next lowest index in sheetData */\n private _handleOnClickLeftArrow = () => {\n this.setState(\n (prevState) => ({\n index:\n prevState.index <= 0\n ? prevState.sheetData.length - 1\n : prevState.index - 1,\n }),\n async () => this._updateView()\n );\n };\n\n /** Updates view to next highest index in sheetData */\n private _handleOnClickRightArrow = () => {\n this.setState(\n (prevState) => ({\n index: (prevState.index + 1) % prevState.sheetData.length,\n }),\n async () => this._updateView()\n );\n };\n\n /** Handles a Viewport change & synchs the index */\n private _handleSelectedViewportChanged = (\n args: SelectedViewportChangedArgs\n ) => {\n if (args.current) {\n this._handleViewportChanged(args.current);\n }\n };\n\n private _handleViewIdChanged: ListenerType<\n typeof ViewportComponentEvents.onViewIdChangedEvent\n > = (args) => {\n if (this._viewport === args.viewport)\n this._handleViewportChanged(args.viewport as ScreenViewport);\n };\n\n /** Handles a Viewport change & synchs the index */\n private _handleViewportChanged = (viewport: ScreenViewport) => {\n const className = ViewUtilities.getBisBaseClass(\n viewport.view.classFullName\n );\n\n if (ViewUtilities.isSheet(className)) {\n this._viewport = viewport;\n\n const viewId = this._viewport.view.id.toString();\n\n const index = this.state.sheetData.findIndex((sheetData: SheetData) => {\n return viewId === sheetData.viewId;\n });\n\n if (index >= 0) this.setState({ index });\n }\n };\n\n /** Updates view to currently set sheet */\n private async _updateView() {\n const viewState = await this.props.iModelConnection.views.load(\n this.state.sheetData[this.state.index].viewId\n );\n if (this._viewport) this._viewport.changeView(viewState);\n }\n\n /** Creates a new SheetsModalFrontstage */\n private modalFrontstage(): ModalFrontstageInfo {\n return new SheetsModalFrontstage(\n this.state.sheetData,\n this.props.iModelConnection,\n this.state.index\n );\n }\n\n /** Opens a new SheetsModelFrontstage on sheetName click */\n private _handleOnClickSheetName = () => {\n UiFramework.frontstages.openModalFrontstage(this.modalFrontstage());\n };\n}\n"]}
1
+ {"version":3,"file":"SheetNavigationAid.js","sourceRoot":"","sources":["../../../src/appui-react/navigationaids/SheetNavigationAid.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 NavigationAids\n */\n\nimport \"./SheetNavigationAid.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type {\n IModelConnection,\n ScreenViewport,\n SelectedViewportChangedArgs,\n} from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { ViewportComponentEvents } from \"@itwin/imodel-components-react\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport type { ListenerType } from \"@itwin/core-react/internal\";\nimport type { ConfigurableCreateInfo } from \"../configurableui/ConfigurableUiControl.js\";\nimport type { ModalFrontstageInfo } from \"../framework/FrameworkFrontstages.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { ViewUtilities } from \"../utils/ViewUtilities.js\";\nimport { NavigationAidControl } from \"./NavigationAidControl.js\";\nimport {\n CardContainer,\n SheetsModalFrontstage,\n} from \"./SheetsModalFrontstage.js\";\nimport { IconButton, ProgressRadial } from \"@itwin/itwinui-react\";\nimport { SvgChevronLeft, SvgChevronRight } from \"@itwin/itwinui-icons-react\";\n\n/** A Sheet Navigation Aid control.\n * @public\n * @deprecated in 4.16.0. Use {@link SheetNavigationAid} component instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class SheetNavigationAidControl extends NavigationAidControl {\n public static navigationAidId = \"SheetNavigationAid\";\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n constructor(info: ConfigurableCreateInfo, options: any) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n super(info, options);\n this.reactNode = <SheetNavigationAid iModelConnection={options.imodel} />;\n }\n\n public override getSize(): string | undefined {\n return \"96px\";\n }\n}\n\n/** Data displayed about sheet\n * @alpha\n */\nexport interface SheetData {\n name: string;\n viewId: string;\n}\n\n/** Properties for the [[SheetNavigationAid]] component\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface SheetNavigationProps extends CommonProps {\n iModelConnection: IModelConnection;\n}\n\ninterface SheetNavigationState {\n index: number;\n sheetData: SheetData[];\n}\n\n/** A Sheet Navigation Aid.\n * @public\n */\nexport class SheetNavigationAid extends React.Component<\n SheetNavigationProps,\n SheetNavigationState\n> {\n private _isMounted = false;\n\n public override readonly state: Readonly<SheetNavigationState> = {\n index: 0,\n sheetData: [],\n };\n\n private _viewport: ScreenViewport | undefined;\n\n constructor(props: SheetNavigationProps) {\n super(props);\n\n this._viewport = IModelApp.viewManager.selectedView;\n }\n\n /** Adds listeners when components mounts */\n public override async componentDidMount() {\n this._isMounted = true;\n\n CardContainer.onCardSelectedEvent.addListener(this._handleCardSelected);\n ViewportComponentEvents.onViewIdChangedEvent.addListener(\n this._handleViewIdChanged\n );\n\n IModelApp.viewManager.onSelectedViewportChanged.addListener(\n this._handleSelectedViewportChanged\n );\n\n const stateData = await this._setupSheets();\n\n if (this._isMounted) this.setState(stateData);\n }\n\n /** Removes listeners when component will unmount */\n public override componentWillUnmount() {\n this._isMounted = false;\n\n CardContainer.onCardSelectedEvent.removeListener(this._handleCardSelected);\n ViewportComponentEvents.onViewIdChangedEvent.removeListener(\n this._handleViewIdChanged\n );\n\n IModelApp.viewManager.onSelectedViewportChanged.removeListener(\n this._handleSelectedViewportChanged\n );\n }\n\n /** Queries for sheet info and sets as sheetData */\n private async _setupSheets(): Promise<SheetNavigationState> {\n const stateData: SheetNavigationState = {\n index: 0,\n sheetData: [],\n };\n\n if (\n !this.props.iModelConnection ||\n !this.props.iModelConnection.views.getViewList\n )\n return stateData;\n\n let viewId = \"\";\n if (this._viewport) {\n viewId = this._viewport.view.id.toString();\n }\n\n const sheets = await this.props.iModelConnection.views.getViewList({\n from: \"BisCore.SheetViewDefinition\",\n });\n sheets.forEach((viewSpec: IModelConnection.ViewSpec, index: number) => {\n stateData.sheetData.push({ name: viewSpec.name, viewId: viewSpec.id });\n if (viewSpec.id === viewId) stateData.index = index;\n });\n\n return stateData;\n }\n\n public override render(): React.ReactNode {\n const name =\n this.state.sheetData.length > 0\n ? this.state.sheetData[this.state.index].name\n : \"\";\n const leftIndex =\n this.state.index === 0\n ? this.state.sheetData.length - 1\n : this.state.index - 1;\n const rightIndex =\n this.state.index >= this.state.sheetData.length - 1\n ? 0\n : this.state.index + 1;\n const leftTitle = this.state.sheetData[leftIndex]\n ? this.state.sheetData[leftIndex].name\n : undefined;\n const rightTitle = this.state.sheetData[rightIndex]\n ? this.state.sheetData[rightIndex].name\n : undefined;\n\n let content: React.ReactNode;\n if (this.state.sheetData.length > 0) {\n content = (\n <>\n <div className=\"sheet-title\">\n {UiFramework.translate(\"general.sheet\")}\n </div>\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div\n className=\"sheet-name\"\n title={name}\n onClick={this._handleOnClickSheetName}\n role=\"button\"\n tabIndex={-1}\n >\n {name}\n </div>\n <div className=\"sheet-container\">\n <IconButton\n size=\"small\"\n styleType=\"borderless\"\n onClick={this._handleOnClickLeftArrow}\n tabIndex={-1}\n label={leftTitle}\n >\n <SvgChevronLeft />\n </IconButton>\n <div>\n {this.state.index + 1} {UiFramework.translate(\"general.of\")}\n {this.state.sheetData.length}\n </div>\n <IconButton\n size=\"small\"\n styleType=\"borderless\"\n onClick={this._handleOnClickRightArrow}\n role=\"button\"\n tabIndex={-1}\n label={rightTitle}\n >\n <SvgChevronRight />\n </IconButton>\n </div>\n </>\n );\n } else {\n content = <ProgressRadial size=\"x-small\" indeterminate />;\n }\n\n return (\n <div\n className={classnames(\"uifw-sheet-navigation\", this.props.className)}\n style={this.props.style}\n >\n {content}\n </div>\n );\n }\n\n /** Sets index of newly selected card */\n private _handleCardSelected: ListenerType<\n typeof CardContainer.onCardSelectedEvent\n > = (event) => {\n event &&\n this.setState({\n index: event.index,\n });\n };\n\n /** Updates view to the next lowest index in sheetData */\n private _handleOnClickLeftArrow = () => {\n this.setState(\n (prevState) => ({\n index:\n prevState.index <= 0\n ? prevState.sheetData.length - 1\n : prevState.index - 1,\n }),\n async () => this._updateView()\n );\n };\n\n /** Updates view to next highest index in sheetData */\n private _handleOnClickRightArrow = () => {\n this.setState(\n (prevState) => ({\n index: (prevState.index + 1) % prevState.sheetData.length,\n }),\n async () => this._updateView()\n );\n };\n\n /** Handles a Viewport change & synchs the index */\n private _handleSelectedViewportChanged = (\n args: SelectedViewportChangedArgs\n ) => {\n if (args.current) {\n this._handleViewportChanged(args.current);\n }\n };\n\n private _handleViewIdChanged: ListenerType<\n typeof ViewportComponentEvents.onViewIdChangedEvent\n > = (args) => {\n if (this._viewport === args.viewport)\n this._handleViewportChanged(args.viewport as ScreenViewport);\n };\n\n /** Handles a Viewport change & synchs the index */\n private _handleViewportChanged = (viewport: ScreenViewport) => {\n const className = ViewUtilities.getBisBaseClass(\n viewport.view.classFullName\n );\n\n if (ViewUtilities.isSheet(className)) {\n this._viewport = viewport;\n\n const viewId = this._viewport.view.id.toString();\n\n const index = this.state.sheetData.findIndex((sheetData: SheetData) => {\n return viewId === sheetData.viewId;\n });\n\n if (index >= 0) this.setState({ index });\n }\n };\n\n /** Updates view to currently set sheet */\n private async _updateView() {\n const viewState = await this.props.iModelConnection.views.load(\n this.state.sheetData[this.state.index].viewId\n );\n if (this._viewport) this._viewport.changeView(viewState);\n }\n\n /** Creates a new SheetsModalFrontstage */\n private modalFrontstage(): ModalFrontstageInfo {\n return new SheetsModalFrontstage(\n this.state.sheetData,\n this.props.iModelConnection,\n this.state.index\n );\n }\n\n /** Opens a new SheetsModelFrontstage on sheetName click */\n private _handleOnClickSheetName = () => {\n UiFramework.frontstages.openModalFrontstage(this.modalFrontstage());\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ReducerRegistry.d.ts","sourceRoot":"","sources":["../../../src/appui-react/redux/ReducerRegistry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAOH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;CAClD;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,qBAAqB,CAEf;IACd,OAAO,CAAC,SAAS,CAAmB;IAEpC,sHAAsH;;IAKtH,+CAA+C;IACxC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG;IAgB3C;;OAEG;IACI,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI;IAIvE,0CAA0C;IACnC,WAAW;IAIlB;;OAEG;IACI,aAAa;CAMrB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,iBAAwB,CAAC"}
1
+ {"version":3,"file":"ReducerRegistry.d.ts","sourceRoot":"","sources":["../../../src/appui-react/redux/ReducerRegistry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAOH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;CAClD;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,qBAAqB,CAEf;IACd,OAAO,CAAC,SAAS,CAAmB;IAEpC,sHAAsH;;IAKtH,+CAA+C;IACxC,eAAe,CACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG;IAe3C;;OAEG;IACI,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI;IAIvE,0CAA0C;IACnC,WAAW;IAIlB;;OAEG;IACI,aAAa;CAMrB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,iBAAwB,CAAC"}
@@ -23,7 +23,6 @@ export class ReducerRegistry {
23
23
  /** Call to register a reducer and its name. */
24
24
  registerReducer(name, reducer) {
25
25
  if (this._reducers[name]) {
26
- // eslint-disable-next-line @typescript-eslint/no-deprecated
27
26
  throw new UiError(UiFramework.loggerCategory("ReducerRegistry"), `Redux Reducer with matching name of '${name}' is already registered`);
28
27
  }
29
28
  this._reducers = { ...this._reducers, [name]: reducer };
@@ -1 +1 @@
1
- {"version":3,"file":"ReducerRegistry.js","sourceRoot":"","sources":["../../../src/appui-react/redux/ReducerRegistry.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAYhD;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAClB,qBAAqB,CAEf;IACN,SAAS,CAAmB;IAEpC,sHAAsH;IACtH;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,+CAA+C;IACxC,eAAe,CACpB,IAAY,EACZ,OAAyC;QAEzC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,4DAA4D;YAC5D,MAAM,IAAI,OAAO,CACf,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAC7C,wCAAwC,IAAI,yBAAyB,CACtE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,QAA8C;QACrE,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;IACxC,CAAC;IAED,0CAA0C;IACnC,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,eAAe,EAAE,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 State\n */\n\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { UiFramework } from \"../UiFramework.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** NameToReducerMap used by Reducer Registry\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport interface NameToReducerMap {\n [name: string]: (state: any, action: any) => any;\n}\n\n/** Redux Reducer Registry.\n * Follows the example at http://nicolasgallagher.com/redux-modules-and-code-splitting/\n * Allows for small modules to provide their own reducers so that the they can manage their own state\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport class ReducerRegistry {\n private _onReducerListChanged:\n | ((reducers: NameToReducerMap) => void)\n | undefined;\n private _reducers: NameToReducerMap;\n\n /** ReducerRegistry constructor that initializes an empty reducer map to be populated by called to registerReducer. */\n constructor() {\n this._reducers = {};\n }\n\n /** Call to register a reducer and its name. */\n public registerReducer(\n name: string,\n reducer: (state: any, action: any) => any\n ) {\n if (this._reducers[name]) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n throw new UiError(\n UiFramework.loggerCategory(\"ReducerRegistry\"),\n `Redux Reducer with matching name of '${name}' is already registered`\n );\n }\n\n this._reducers = { ...this._reducers, [name]: reducer };\n if (this._onReducerListChanged) {\n this._onReducerListChanged(this._reducers);\n }\n }\n\n /** Supports a single listener which should be the Redux store, see [[StoreManager]].\n * @internal\n */\n public setChangeListener(listener: (reducers: NameToReducerMap) => void) {\n this._onReducerListChanged = listener;\n }\n\n /** Returns map of registered Reducers. */\n public getReducers() {\n return this._reducers;\n }\n\n /** Clear reducers only required for unit testing\n * @internal\n */\n public clearReducers() {\n this._reducers = {};\n if (this._onReducerListChanged) {\n this._onReducerListChanged(this._reducers);\n }\n }\n}\n\n/** ReducerRegistryInstance singleton instance of Reducer Registry\n * @beta\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport const ReducerRegistryInstance = new ReducerRegistry();\n"]}
1
+ {"version":3,"file":"ReducerRegistry.js","sourceRoot":"","sources":["../../../src/appui-react/redux/ReducerRegistry.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAYhD;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAClB,qBAAqB,CAEf;IACN,SAAS,CAAmB;IAEpC,sHAAsH;IACtH;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,+CAA+C;IACxC,eAAe,CACpB,IAAY,EACZ,OAAyC;QAEzC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,OAAO,CACf,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAC7C,wCAAwC,IAAI,yBAAyB,CACtE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,QAA8C;QACrE,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;IACxC,CAAC;IAED,0CAA0C;IACnC,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,eAAe,EAAE,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 State\n */\n\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { UiFramework } from \"../UiFramework.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** NameToReducerMap used by Reducer Registry\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport interface NameToReducerMap {\n [name: string]: (state: any, action: any) => any;\n}\n\n/** Redux Reducer Registry.\n * Follows the example at http://nicolasgallagher.com/redux-modules-and-code-splitting/\n * Allows for small modules to provide their own reducers so that the they can manage their own state\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport class ReducerRegistry {\n private _onReducerListChanged:\n | ((reducers: NameToReducerMap) => void)\n | undefined;\n private _reducers: NameToReducerMap;\n\n /** ReducerRegistry constructor that initializes an empty reducer map to be populated by called to registerReducer. */\n constructor() {\n this._reducers = {};\n }\n\n /** Call to register a reducer and its name. */\n public registerReducer(\n name: string,\n reducer: (state: any, action: any) => any\n ) {\n if (this._reducers[name]) {\n throw new UiError(\n UiFramework.loggerCategory(\"ReducerRegistry\"),\n `Redux Reducer with matching name of '${name}' is already registered`\n );\n }\n\n this._reducers = { ...this._reducers, [name]: reducer };\n if (this._onReducerListChanged) {\n this._onReducerListChanged(this._reducers);\n }\n }\n\n /** Supports a single listener which should be the Redux store, see [[StoreManager]].\n * @internal\n */\n public setChangeListener(listener: (reducers: NameToReducerMap) => void) {\n this._onReducerListChanged = listener;\n }\n\n /** Returns map of registered Reducers. */\n public getReducers() {\n return this._reducers;\n }\n\n /** Clear reducers only required for unit testing\n * @internal\n */\n public clearReducers() {\n this._reducers = {};\n if (this._onReducerListChanged) {\n this._onReducerListChanged(this._reducers);\n }\n }\n}\n\n/** ReducerRegistryInstance singleton instance of Reducer Registry\n * @beta\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport const ReducerRegistryInstance = new ReducerRegistry();\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StateManager.d.ts","sourceRoot":"","sources":["../../../src/appui-react/redux/StateManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAqB,KAAK,EAAE,MAAM,OAAO,CAAC;AAItD,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAK7D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAkB;IAC9C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAyB;IAEvD;;;OAGG;gBACS,eAAe,CAAC,EAAE,gBAAgB;IAsC9C;;OAEG;WAEW,aAAa,CAAC,gBAAgB,UAAQ,GAAG,OAAO;IAa9D,+GAA+G;IAC/G,WAAkB,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAUpC;IAED,qDAAqD;IACrD,WAAkB,KAAK,IAAI,GAAG,CAM7B;IAED,OAAO,CAAC,gCAAgC;IAYxC;;OAEG;WACW,UAAU;CAGzB"}
1
+ {"version":3,"file":"StateManager.d.ts","sourceRoot":"","sources":["../../../src/appui-react/redux/StateManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAqB,KAAK,EAAE,MAAM,OAAO,CAAC;AAItD,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAK7D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAkB;IAC9C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAyB;IAEvD;;;OAGG;gBACS,eAAe,CAAC,EAAE,gBAAgB;IAqC9C;;OAEG;WAEW,aAAa,CAAC,gBAAgB,UAAQ,GAAG,OAAO;IAa9D,+GAA+G;IAC/G,WAAkB,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CASpC;IAED,qDAAqD;IACrD,WAAkB,KAAK,IAAI,GAAG,CAM7B;IAED,OAAO,CAAC,gCAAgC;IAYxC;;OAEG;WACW,UAAU;CAGzB"}
@@ -42,7 +42,6 @@ export class StateManager {
42
42
  const dynamicallyRegisteredReducers = ReducerRegistryInstance.getReducers();
43
43
  let allReducers = this.combineDynamicAndDefaultReducers(dynamicallyRegisteredReducers, this._defaultReducers);
44
44
  // create the Redux Store.
45
- // eslint-disable-next-line @typescript-eslint/no-deprecated
46
45
  this._store = createStore(allReducers, window.__REDUX_DEVTOOLS_EXTENSION__ &&
47
46
  window.__REDUX_DEVTOOLS_EXTENSION__());
48
47
  ReducerRegistryInstance.setChangeListener((newDynamicReducers) => {
@@ -70,7 +69,6 @@ export class StateManager {
70
69
  return StateManager._singletonStore;
71
70
  }
72
71
  else {
73
- // eslint-disable-next-line @typescript-eslint/no-deprecated
74
72
  throw new UiError(StateManager._LOG_CATEGORY, `Redux Store has not been initialized`);
75
73
  }
76
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StateManager.js","sourceRoot":"","sources":["../../../src/appui-react/redux/StateManager.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 State\n */\n\nimport type { ReducersMapObject, Store } from \"redux\";\nimport { combineReducers, createStore } from \"redux\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { FrameworkReducer, type FrameworkState } from \"./FrameworkState.js\";\nimport type { NameToReducerMap } from \"./ReducerRegistry.js\";\nimport { ReducerRegistryInstance } from \"./ReducerRegistry.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** Generic 'root' state for the appui-react package. Since this state contains common values needed by many applications\n * it is automatically added to the Redux store when using [[StateManager]].\n * @beta\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport interface FrameworkRootState {\n frameworkState: FrameworkState;\n}\n\n/** Centralized state management class using Redux actions, reducers and store. This class monitors the ReducerRegistry and will\n * automatically update the store when a new reducer is registered. This allows the store to be incrementally constructed as modules\n * and/or extensions are loaded.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport class StateManager {\n private static _LOG_CATEGORY = \"StateManager\";\n private _store: Store<any>;\n private _defaultReducers: NameToReducerMap;\n\n private static _singletonStore: Store<any> | undefined;\n\n /**\n * StateManager construct.\n * @param defaultReducers Default set of Reducers used by the current application. If this object does not contain the [[FrameworkReducer]] it will automatically be added.\n */\n constructor(defaultReducers?: NameToReducerMap) {\n if (defaultReducers) {\n this._defaultReducers = defaultReducers;\n const keys = Object.keys(defaultReducers);\n // ensure frameworkState is included in the set of defaultReducers\n if (-1 === keys.findIndex((key) => key === \"frameworkState\"))\n this._defaultReducers = {\n ...defaultReducers,\n frameworkState: FrameworkReducer,\n };\n } else {\n this._defaultReducers = { frameworkState: FrameworkReducer };\n }\n\n const dynamicallyRegisteredReducers = ReducerRegistryInstance.getReducers();\n let allReducers: any = this.combineDynamicAndDefaultReducers(\n dynamicallyRegisteredReducers,\n this._defaultReducers\n );\n\n // create the Redux Store.\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._store = createStore(\n allReducers,\n (window as any).__REDUX_DEVTOOLS_EXTENSION__ &&\n (window as any).__REDUX_DEVTOOLS_EXTENSION__()\n );\n\n ReducerRegistryInstance.setChangeListener((newDynamicReducers) => {\n allReducers = this.combineDynamicAndDefaultReducers(\n newDynamicReducers,\n this._defaultReducers\n );\n this._store.replaceReducer(allReducers);\n });\n StateManager._singletonStore = this._store;\n }\n\n /** Method to test if the StateManager has been initialized.\n * @param suppressErrorLog If true and the StateManager is not initialized a log message will be output.\n */\n\n public static isInitialized(suppressErrorLog = false): boolean {\n if (!StateManager._singletonStore) {\n if (!suppressErrorLog)\n Logger.logError(\n StateManager._LOG_CATEGORY,\n \"Accessing store before it is created.\"\n );\n return false;\n } else {\n return true;\n }\n }\n\n /** Return the current Redux store. Useful when using connect method to connect a Ui Component to the store. */\n public static get store(): Store<any> {\n if (StateManager.isInitialized()) {\n return StateManager._singletonStore!;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n throw new UiError(\n StateManager._LOG_CATEGORY,\n `Redux Store has not been initialized`\n );\n }\n }\n\n /** Return the current state from the Redux store. */\n public static get state(): any {\n if (StateManager.isInitialized()) {\n return StateManager._singletonStore!.getState();\n } else {\n return undefined;\n }\n }\n\n private combineDynamicAndDefaultReducers(\n dynamicallyRegisteredReducers: ReducersMapObject,\n defaultReducers: ReducersMapObject\n ) {\n const allReducers = {\n ...defaultReducers,\n ...dynamicallyRegisteredReducers,\n };\n\n return combineReducers(allReducers);\n }\n\n /** To be used only in unit test\n * @internal\n */\n public static clearStore() {\n StateManager._singletonStore = undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"StateManager.js","sourceRoot":"","sources":["../../../src/appui-react/redux/StateManager.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 State\n */\n\nimport type { ReducersMapObject, Store } from \"redux\";\nimport { combineReducers, createStore } from \"redux\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { UiError } from \"@itwin/appui-abstract\";\nimport { FrameworkReducer, type FrameworkState } from \"./FrameworkState.js\";\nimport type { NameToReducerMap } from \"./ReducerRegistry.js\";\nimport { ReducerRegistryInstance } from \"./ReducerRegistry.js\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** Generic 'root' state for the appui-react package. Since this state contains common values needed by many applications\n * it is automatically added to the Redux store when using [[StateManager]].\n * @beta\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport interface FrameworkRootState {\n frameworkState: FrameworkState;\n}\n\n/** Centralized state management class using Redux actions, reducers and store. This class monitors the ReducerRegistry and will\n * automatically update the store when a new reducer is registered. This allows the store to be incrementally constructed as modules\n * and/or extensions are loaded.\n * @public\n * @deprecated in 4.15.0. Use your preferred state management library instead.\n */\nexport class StateManager {\n private static _LOG_CATEGORY = \"StateManager\";\n private _store: Store<any>;\n private _defaultReducers: NameToReducerMap;\n\n private static _singletonStore: Store<any> | undefined;\n\n /**\n * StateManager construct.\n * @param defaultReducers Default set of Reducers used by the current application. If this object does not contain the [[FrameworkReducer]] it will automatically be added.\n */\n constructor(defaultReducers?: NameToReducerMap) {\n if (defaultReducers) {\n this._defaultReducers = defaultReducers;\n const keys = Object.keys(defaultReducers);\n // ensure frameworkState is included in the set of defaultReducers\n if (-1 === keys.findIndex((key) => key === \"frameworkState\"))\n this._defaultReducers = {\n ...defaultReducers,\n frameworkState: FrameworkReducer,\n };\n } else {\n this._defaultReducers = { frameworkState: FrameworkReducer };\n }\n\n const dynamicallyRegisteredReducers = ReducerRegistryInstance.getReducers();\n let allReducers: any = this.combineDynamicAndDefaultReducers(\n dynamicallyRegisteredReducers,\n this._defaultReducers\n );\n\n // create the Redux Store.\n this._store = createStore(\n allReducers,\n (window as any).__REDUX_DEVTOOLS_EXTENSION__ &&\n (window as any).__REDUX_DEVTOOLS_EXTENSION__()\n );\n\n ReducerRegistryInstance.setChangeListener((newDynamicReducers) => {\n allReducers = this.combineDynamicAndDefaultReducers(\n newDynamicReducers,\n this._defaultReducers\n );\n this._store.replaceReducer(allReducers);\n });\n StateManager._singletonStore = this._store;\n }\n\n /** Method to test if the StateManager has been initialized.\n * @param suppressErrorLog If true and the StateManager is not initialized a log message will be output.\n */\n\n public static isInitialized(suppressErrorLog = false): boolean {\n if (!StateManager._singletonStore) {\n if (!suppressErrorLog)\n Logger.logError(\n StateManager._LOG_CATEGORY,\n \"Accessing store before it is created.\"\n );\n return false;\n } else {\n return true;\n }\n }\n\n /** Return the current Redux store. Useful when using connect method to connect a Ui Component to the store. */\n public static get store(): Store<any> {\n if (StateManager.isInitialized()) {\n return StateManager._singletonStore!;\n } else {\n throw new UiError(\n StateManager._LOG_CATEGORY,\n `Redux Store has not been initialized`\n );\n }\n }\n\n /** Return the current state from the Redux store. */\n public static get state(): any {\n if (StateManager.isInitialized()) {\n return StateManager._singletonStore!.getState();\n } else {\n return undefined;\n }\n }\n\n private combineDynamicAndDefaultReducers(\n dynamicallyRegisteredReducers: ReducersMapObject,\n defaultReducers: ReducersMapObject\n ) {\n const allReducers = {\n ...defaultReducers,\n ...dynamicallyRegisteredReducers,\n };\n\n return combineReducers(allReducers);\n }\n\n /** To be used only in unit test\n * @internal\n */\n public static clearStore() {\n StateManager._singletonStore = undefined;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionContextItemDef.d.ts","sourceRoot":"","sources":["../../../src/appui-react/selection/SelectionContextItemDef.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAkBvD;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAOzD;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,EAAE,CAU1D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAgB7C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CASrD;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,IAAI,uBAAuB,CAK7E;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CAKzE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,aAAa,CAWf;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,aAAa,CAUf;AAED;;;GAGG;AACH,qBAAa,+BAA+B;IAC1C,WAAkB,+BAA+B,mBAQhD;IAED,WAAkB,mCAAmC,mBAQpD;IAED,WAAkB,sBAAsB,mBASvC;IAED,WAAkB,yBAAyB,iBAa1C;IAED,WAAkB,4BAA4B,mBAQ7C;IAED,WAAkB,gCAAgC,mBAQjD;IAED,WAAkB,mBAAmB,mBASpC;IAED,WAAkB,oBAAoB,iBAarC;IAED,WAAkB,wBAAwB,mBASzC;IAED,WAAkB,wCAAwC,mBAYzD;CACF"}
1
+ {"version":3,"file":"SelectionContextItemDef.d.ts","sourceRoot":"","sources":["../../../src/appui-react/selection/SelectionContextItemDef.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAkBvD;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAOzD;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,EAAE,CAS1D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAgB7C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CASrD;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,IAAI,uBAAuB,CAK7E;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CAKzE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,aAAa,CAWf;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,aAAa,CAUf;AAED;;;GAGG;AACH,qBAAa,+BAA+B;IAC1C,WAAkB,+BAA+B,mBAQhD;IAED,WAAkB,mCAAmC,mBAQpD;IAED,WAAkB,sBAAsB,mBASvC;IAED,WAAkB,yBAAyB,iBAa1C;IAED,WAAkB,4BAA4B,mBAQ7C;IAED,WAAkB,gCAAgC,mBAQjD;IAED,WAAkB,mBAAmB,mBASpC;IAED,WAAkB,oBAAoB,iBAarC;IAED,WAAkB,wBAAwB,mBASzC;IAED,WAAkB,wCAAwC,mBAYzD;CACF"}
@@ -45,7 +45,6 @@ export function getSelectionContextSyncEventIds() {
45
45
  SyncUiEventId.SelectionSetChanged,
46
46
  SyncUiEventId.ActiveContentChanged,
47
47
  SyncUiEventId.ActiveViewportChanged,
48
- // eslint-disable-next-line @typescript-eslint/no-deprecated
49
48
  SessionStateActionId.SetNumItemsSelected,
50
49
  SyncUiEventId.FeatureOverridesChanged,
51
50
  SyncUiEventId.ViewedModelsChanged,
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../src/appui-react/selection/SelectionContextItemDef.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 Tools\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState.js\";\nimport { CommandItemDef } from \"../shared/CommandItemDef.js\";\nimport type { BaseItemState } from \"../shared/ItemDefBase.js\";\nimport { SyncUiEventId } from \"../syncui/UiSyncEvent.js\";\nimport { GroupItemDef } from \"../toolbar/GroupItem.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { SvgModelIsolate } from \"../icons/SvgModelIsolate.js\";\nimport { SvgLayersIsolate } from \"../icons/SvgLayersIsolate.js\";\nimport { SvgAssetIsolate } from \"../icons/SvgAssetIsolate.js\";\nimport { SvgIsolate } from \"@itwin/itwinui-icons-react\";\nimport { SvgModelHide } from \"../icons/SvgModelHide.js\";\nimport { SvgLayersHide } from \"../icons/SvgLayersHide.js\";\nimport { SvgAssetClassificationHide } from \"../icons/SvgAssetClassificationHide.js\";\nimport { SvgVisibilityHalf } from \"@itwin/itwinui-icons-react\";\nimport { SvgVisibilityHide } from \"@itwin/itwinui-icons-react\";\nimport { SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport type { ToolbarItems } from \"../tools/ToolbarItems.js\";\nimport { getActiveViewport } from \"../utils/getActiveViewport.js\";\nimport * as React from \"react\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function isNoSelectionActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n if (selectionCount > 0) return false;\n\n // TODO: add check for categories, subcategories and models\n const hiddenElementsSet = viewport.neverDrawn;\n const selectedElementsSet = viewport.view.iModel.selectionSet.elements;\n if (![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value)))\n return false;\n\n return true;\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n}\n\n/** Return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n return { ...state, isVisible };\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n const isVisible =\n viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n * @deprecated in 4.15.0. Use {@link ToolbarItems} instead.\n */\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: <SvgModelIsolate />,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: <SvgLayersIsolate />,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: <SvgAssetIsolate />,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: <SvgIsolate />,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: <SvgModelHide />,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: <SvgLayersHide />,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: <SvgAssetClassificationHide />,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: <SvgVisibilityHide />,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: <SvgVisibilityHalf />,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: <SvgVisibilityShow />,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
1
+ {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../src/appui-react/selection/SelectionContextItemDef.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 Tools\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState.js\";\nimport { CommandItemDef } from \"../shared/CommandItemDef.js\";\nimport type { BaseItemState } from \"../shared/ItemDefBase.js\";\nimport { SyncUiEventId } from \"../syncui/UiSyncEvent.js\";\nimport { GroupItemDef } from \"../toolbar/GroupItem.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { SvgModelIsolate } from \"../icons/SvgModelIsolate.js\";\nimport { SvgLayersIsolate } from \"../icons/SvgLayersIsolate.js\";\nimport { SvgAssetIsolate } from \"../icons/SvgAssetIsolate.js\";\nimport { SvgIsolate } from \"@itwin/itwinui-icons-react\";\nimport { SvgModelHide } from \"../icons/SvgModelHide.js\";\nimport { SvgLayersHide } from \"../icons/SvgLayersHide.js\";\nimport { SvgAssetClassificationHide } from \"../icons/SvgAssetClassificationHide.js\";\nimport { SvgVisibilityHalf } from \"@itwin/itwinui-icons-react\";\nimport { SvgVisibilityHide } from \"@itwin/itwinui-icons-react\";\nimport { SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport type { ToolbarItems } from \"../tools/ToolbarItems.js\";\nimport { getActiveViewport } from \"../utils/getActiveViewport.js\";\nimport * as React from \"react\";\n\n/* eslint-disable @typescript-eslint/no-deprecated */\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function isNoSelectionActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n if (selectionCount > 0) return false;\n\n // TODO: add check for categories, subcategories and models\n const hiddenElementsSet = viewport.neverDrawn;\n const selectedElementsSet = viewport.view.iModel.selectionSet.elements;\n if (![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value)))\n return false;\n\n return true;\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n}\n\n/** Return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n return { ...state, isVisible };\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n const isVisible =\n viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n * @deprecated in 4.15.0. Use {@link ToolbarItems} instead.\n */\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: <SvgModelIsolate />,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: <SvgLayersIsolate />,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: <SvgAssetIsolate />,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: <SvgIsolate />,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: <SvgModelHide />,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: <SvgLayersHide />,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: <SvgAssetClassificationHide />,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: <SvgVisibilityHide />,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: <SvgVisibilityHalf />,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: <SvgVisibilityShow />,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}