@itwin/appui-react 5.2.0 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -1
- package/lib/appui-react/UiFramework.d.ts +2 -2
- package/lib/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/appui-react/UiFramework.js +2 -2
- package/lib/appui-react/UiFramework.js.map +1 -1
- package/lib/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
- package/lib/appui-react/childwindow/InternalChildWindowManager.js +8 -0
- package/lib/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts +14 -2
- package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/appui-react/configurableui/ConfigurableUiContent.js +28 -18
- package/lib/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/appui-react/frontstage/FrontstageConfig.d.ts +6 -0
- package/lib/appui-react/frontstage/FrontstageConfig.d.ts.map +1 -1
- package/lib/appui-react/frontstage/FrontstageConfig.js.map +1 -1
- package/lib/appui-react/frontstage/FrontstageDef.d.ts +2 -0
- package/lib/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/appui-react/frontstage/FrontstageDef.js +4 -0
- package/lib/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/appui-react/layout/base/NineZone.d.ts +0 -5
- package/lib/appui-react/layout/base/NineZone.d.ts.map +1 -1
- package/lib/appui-react/layout/base/NineZone.js.map +1 -1
- package/lib/appui-react/layout/widget/Dock.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/Dock.js +6 -4
- package/lib/appui-react/layout/widget/Dock.js.map +1 -1
- package/lib/appui-react/layout/widget/NavigationArea.d.ts +1 -2
- package/lib/appui-react/layout/widget/NavigationArea.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/NavigationArea.js +2 -3
- package/lib/appui-react/layout/widget/NavigationArea.js.map +1 -1
- package/lib/appui-react/layout/widget/NavigationArea.scss +16 -4
- package/lib/appui-react/layout/widget/PinToggle.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/PinToggle.js +7 -5
- package/lib/appui-react/layout/widget/PinToggle.js.map +1 -1
- package/lib/appui-react/layout/widget/PopoutToggle.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/PopoutToggle.js +6 -4
- package/lib/appui-react/layout/widget/PopoutToggle.js.map +1 -1
- package/lib/appui-react/layout/widget/SendBack.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/SendBack.js +6 -6
- package/lib/appui-react/layout/widget/SendBack.js.map +1 -1
- package/lib/appui-react/layout/widget/TabBar.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/TabBar.js +4 -2
- package/lib/appui-react/layout/widget/TabBar.js.map +1 -1
- package/lib/appui-react/layout/widget/ToolsArea.d.ts +1 -2
- package/lib/appui-react/layout/widget/ToolsArea.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/ToolsArea.js +2 -3
- package/lib/appui-react/layout/widget/ToolsArea.js.map +1 -1
- package/lib/appui-react/layout/widget/ToolsArea.scss +10 -4
- package/lib/appui-react/layout/widget/WidgetAction.d.ts +16 -0
- package/lib/appui-react/layout/widget/WidgetAction.d.ts.map +1 -0
- package/lib/appui-react/{preview/widget-action-dropdown/Button.js → layout/widget/WidgetAction.js} +13 -9
- package/lib/appui-react/layout/widget/WidgetAction.js.map +1 -0
- package/lib/appui-react/layout/widget/WidgetActions.d.ts +45 -0
- package/lib/appui-react/layout/widget/WidgetActions.d.ts.map +1 -0
- package/lib/appui-react/layout/widget/{Buttons.js → WidgetActions.js} +35 -29
- package/lib/appui-react/layout/widget/WidgetActions.js.map +1 -0
- package/lib/appui-react/layout/widget/{Buttons.scss → WidgetActions.scss} +1 -1
- package/lib/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
- package/lib/appui-react/preview/control-widget-visibility/CloseWidgetButton.js +2 -2
- package/lib/appui-react/preview/control-widget-visibility/CloseWidgetButton.js.map +1 -1
- package/lib/appui-react/preview/enable-maximized-widget/MaximizeToggle.js +2 -2
- package/lib/appui-react/preview/enable-maximized-widget/MaximizeToggle.js.map +1 -1
- package/lib/appui-react/preview/widget-action-dropdown/MoreButton.d.ts +2 -2
- package/lib/appui-react/preview/widget-action-dropdown/MoreButton.d.ts.map +1 -1
- package/lib/appui-react/preview/widget-action-dropdown/MoreButton.js +4 -4
- package/lib/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
- package/lib/appui-react/toolbar/ToolbarItem.d.ts +4 -0
- package/lib/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
- package/lib/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +1 -1
- package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
- package/lib/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/appui-react/ui-items-provider/UiItemsManager.d.ts +25 -23
- package/lib/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
- package/lib/appui-react/ui-items-provider/UiItemsManager.js +67 -40
- package/lib/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/appui-react/widget-panels/Frontstage.js +0 -5
- package/lib/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/appui-react/widgets/Widget.d.ts +4 -0
- package/lib/appui-react/widgets/Widget.d.ts.map +1 -1
- package/lib/appui-react/widgets/Widget.js.map +1 -1
- package/lib/appui-react/widgets/useWidget.d.ts +1 -1
- package/lib/appui-react.d.ts +3 -1
- package/lib/appui-react.d.ts.map +1 -1
- package/lib/appui-react.js +3 -1
- package/lib/appui-react.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/NavigationArea.scss +16 -4
- package/lib/cjs/appui-react/layout/widget/ToolsArea.scss +10 -4
- package/lib/cjs/appui-react/layout/widget/{Buttons.scss → WidgetActions.scss} +1 -1
- package/lib/esm/appui-react/layout/widget/NavigationArea.scss +16 -4
- package/lib/esm/appui-react/layout/widget/ToolsArea.scss +10 -4
- package/lib/esm/appui-react/layout/widget/{Buttons.scss → WidgetActions.scss} +1 -1
- package/package.json +7 -7
- package/lib/appui-react/layout/widget/Buttons.d.ts +0 -12
- package/lib/appui-react/layout/widget/Buttons.d.ts.map +0 -1
- package/lib/appui-react/layout/widget/Buttons.js.map +0 -1
- package/lib/appui-react/preview/widget-action-dropdown/Button.d.ts +0 -17
- package/lib/appui-react/preview/widget-action-dropdown/Button.d.ts.map +0 -1
- package/lib/appui-react/preview/widget-action-dropdown/Button.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractUiItemsManager.js","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/AbstractUiItemsManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module UiProvider\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated, @typescript-eslint/ban-ts-comment */\n\nimport * as abstract from \"@itwin/appui-abstract\";\nimport type { BeUiEvent } from \"@itwin/core-bentley\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { IconSpec } from \"@itwin/core-react\";\nimport type { BadgeKind } from \"@itwin/core-react/internal\";\nimport { BadgeType, IconHelper } from \"@itwin/core-react\";\nimport type {\n // @ts-ignore Removed in 4.0\n BackstageItem as AbstractBackstageItem,\n // @ts-ignore Removed in 4.0\n CommonStatusBarItem as AbstractStatusBarItem,\n CommonToolbarItem as AbstractToolbarItem,\n // @ts-ignore Removed in 4.0\n UiItemsManager as AbstractUiItemsManagerType,\n // @ts-ignore Removed in 4.0\n UiItemsProvider as AbstractUiItemsProvider,\n // @ts-ignore Removed in 4.0\n AbstractWidgetProps as AbstractWidget,\n} from \"@itwin/appui-abstract\";\nimport type {\n UiItemsManager,\n UiItemsProviderOverrides,\n UiItemsProviderRegisteredEventArgs,\n} from \"./UiItemsManager.js\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation.js\";\nimport { StagePanelSection } from \"../stagepanels/StagePanelSection.js\";\nimport type { Widget } from \"../widgets/Widget.js\";\nimport type { ProviderItem } from \"./ProviderItem.js\";\nimport type { UiItemsProvider } from \"./UiItemsProvider.js\";\nimport type {\n ToolbarItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"../toolbar/ToolbarItem.js\";\nimport {\n isToolbarActionItem,\n isToolbarGroupItem,\n} from \"../toolbar/ToolbarItem.js\";\nimport type { BackstageItem } from \"../backstage/BackstageItem.js\";\nimport type { StatusBarItem } from \"../statusbar/StatusBarItem.js\";\nimport { isStatusBarCustomItem } from \"../statusbar/StatusBarItem.js\";\n\nconst _abstract = abstract;\n\n// @ts-ignore Removed in 4.0\nconst AbstractUiItemsManager: typeof AbstractUiItemsManagerType | undefined =\n _abstract.UiItemsManager;\n// @ts-ignore Removed in 4.0\nconst isAbstractStatusBarCustomItem = _abstract.isAbstractStatusBarCustomItem;\n// @ts-ignore Removed in 4.0\ntype AbstractStagePanelLocation = _abstract.StagePanelLocation;\n// @ts-ignore Removed in 4.0\nconst AbstractStagePanelLocation = _abstract.StagePanelLocation; // eslint-disable-line @typescript-eslint/no-redeclare\n// @ts-ignore Removed in 4.0\ntype AbstractStagePanelSection = _abstract.StagePanelSection;\n// @ts-ignore Removed in 4.0\nconst AbstractStagePanelSection = _abstract.StagePanelSection; // eslint-disable-line @typescript-eslint/no-redeclare\n\nconst AbstractToolbarItemUtilities = abstract.ToolbarItemUtilities;\n\nconst originalDataSymbol = Symbol(\"originalData\");\n\n/** @internal */\nexport function createAbstractUiItemsManagerAdapter() {\n if (!AbstractUiItemsManager) return undefined;\n return new AbstractUiItemsManagerAdapter(AbstractUiItemsManager);\n}\n\ntype Target = Pick<\n typeof UiItemsManager,\n | \"getWidgets\"\n | \"getToolbarButtonItems\"\n | \"getStatusBarItems\"\n | \"getBackstageItems\"\n | \"register\"\n | \"getUiItemsProvider\"\n | \"registeredProviderIds\"\n | \"hasRegisteredProviders\"\n | \"unregister\"\n | \"onUiProviderRegisteredEvent\"\n | \"clearAllProviders\"\n>;\n\nclass AbstractUiItemsManagerAdapter implements Target {\n constructor(private readonly _adaptee: typeof AbstractUiItemsManagerType) {}\n\n public clearAllProviders(): void {\n return this._adaptee.clearAllProviders();\n }\n\n public get onUiProviderRegisteredEvent(): BeUiEvent<UiItemsProviderRegisteredEventArgs> {\n if (!(\"emit\" in this._adaptee.onUiProviderRegisteredEvent)) {\n (this._adaptee.onUiProviderRegisteredEvent as any).emit = (\n args: UiItemsProviderRegisteredEventArgs\n ) => {\n this._adaptee.onUiProviderRegisteredEvent.raiseEvent(args);\n };\n }\n return this._adaptee\n .onUiProviderRegisteredEvent as BeUiEvent<UiItemsProviderRegisteredEventArgs>;\n }\n\n public unregister(providerId: string): void {\n return this._adaptee.unregister(providerId);\n }\n\n public get hasRegisteredProviders(): boolean {\n return this._adaptee.hasRegisteredProviders;\n }\n\n public get registeredProviderIds(): string[] {\n return this._adaptee.registeredProviderIds;\n }\n\n public register(\n provider: UiItemsProvider,\n overrides?: UiItemsProviderOverrides | undefined\n ): void {\n const abstractProvider = createUiItemsProviderToAbstractAdapter(provider);\n return this._adaptee.register(abstractProvider, overrides);\n }\n\n public getUiItemsProvider(providerId: string): UiItemsProvider | undefined {\n const abstractProvider = this._adaptee.getUiItemsProvider(providerId);\n if (!abstractProvider) return undefined;\n\n const provider = createAbstractToUiItemsProviderAdapter(abstractProvider);\n return provider;\n }\n\n public getBackstageItems(): readonly ProviderItem<BackstageItem>[] {\n const abstractItems = this._adaptee.getBackstageItems();\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractBackstageItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ? abstractItem.providerId : \"\",\n };\n });\n return items;\n }\n\n public getStatusBarItems(\n stageId: string,\n stageUsage: string\n ): readonly ProviderItem<StatusBarItem>[] {\n const abstractItems = this._adaptee.getStatusBarItems(stageId, stageUsage);\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractStatusBarItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ? abstractItem.providerId : \"\",\n };\n });\n return items;\n }\n\n public getToolbarButtonItems(\n stageId: string,\n stageUsage: string,\n usage: ToolbarUsage,\n orientation: ToolbarOrientation\n ): readonly ProviderItem<ToolbarItem>[] {\n const abstractItems = this._adaptee.getToolbarButtonItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractToolbarItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ?? \"\",\n };\n });\n return items;\n }\n\n public getWidgets(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n section?: StagePanelSection | undefined\n ): readonly ProviderItem<Widget>[] {\n const abstractLocations = toAbstractStagePanelLocation(location);\n const abstractSections =\n section === undefined\n ? ([undefined] as const)\n : toAbstractStagePanelSection(section);\n const combos: [\n AbstractStagePanelLocation,\n AbstractStagePanelSection | undefined // eslint-disable-line @typescript-eslint/no-redundant-type-constituents\n ][] = [];\n abstractLocations.forEach((abstractLocation) => {\n abstractSections.forEach((abstractSection) => {\n combos.push([abstractLocation, abstractSection]);\n });\n });\n let abstractWidgets = combos.reduce<AbstractWidget[]>(\n (acc, [abstractLocation, abstractSection]) => {\n const w = this._adaptee.getWidgets(\n stageId,\n stageUsage,\n abstractLocation,\n abstractSection\n );\n acc.push(...w);\n return acc;\n },\n []\n );\n abstractWidgets = abstractWidgets.reduce<AbstractWidget[]>(\n (acc, abstractWidget) => {\n if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))\n acc.push(abstractWidget);\n return acc;\n },\n []\n );\n const widgets = abstractWidgets\n // @ts-ignore Possibly 'any'\n .map((abstractWidget) => {\n const widget = fromAbstractWidget(abstractWidget);\n return {\n ...widget,\n providerId: abstractWidget.providerId ?? \"\",\n };\n });\n return widgets;\n }\n}\n\nfunction createUiItemsProviderToAbstractAdapter(\n adaptee: UiItemsProvider\n): AbstractUiItemsProvider {\n const {\n id,\n onUnregister,\n provideBackstageItems,\n provideStatusBarItems,\n provideWidgets,\n ...other\n } = adaptee;\n const provider = createGetPropertyAdapter(adaptee);\n return {\n id: adaptee.id,\n onUnregister: adaptee.onUnregister,\n provideBackstageItems: () => {\n const items = provider.provideBackstageItems();\n const abstractItems = items.map((item) => toAbstractBackstageItem(item));\n return abstractItems;\n },\n provideStatusBarItems: (stageId, stageUsage, _stageAppData) => {\n const items = provider.provideStatusBarItems(stageId, stageUsage);\n const abstractItems = items.map((item) => toAbstractStatusBarItem(item));\n return abstractItems;\n },\n provideToolbarButtonItems: (\n stageId,\n stageUsage,\n usage,\n orientation,\n _stageAppData\n ) => {\n const items = provider.provideToolbarItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n const abstractItems = items.map((item) => toAbstractToolbarItem(item));\n return abstractItems;\n },\n provideWidgets: (\n stageId,\n stageUsage,\n abstractLocation,\n abstractSection,\n _zoneLocation,\n _stageAppData\n ) => {\n const location = fromAbstractStagePanelLocation(abstractLocation);\n const section =\n abstractSection === undefined\n ? undefined\n : fromAbstractStagePanelSection(abstractSection);\n const items = provider.provideWidgets(\n stageId,\n stageUsage,\n location,\n section\n );\n const abstractWidgets = items.map((item) => toAbstractWidget(item));\n return abstractWidgets;\n },\n ...other,\n };\n}\n\nfunction createAbstractToUiItemsProviderAdapter(\n adaptee: AbstractUiItemsProvider\n): UiItemsProvider {\n const {\n id,\n onUnregister,\n provideBackstageItems,\n provideStatusBarItems,\n provideWidgets,\n ...other\n } = adaptee;\n return {\n id: adaptee.id,\n onUnregister: adaptee.onUnregister,\n provideBackstageItems: () => {\n if (!adaptee.provideBackstageItems) return [];\n\n const abstractItems = adaptee.provideBackstageItems();\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractBackstageItem(abstractItem)\n );\n return items;\n },\n provideStatusBarItems: (stageId, stageUsage) => {\n if (!adaptee.provideStatusBarItems) return [];\n\n const abstractItems = adaptee.provideStatusBarItems(stageId, stageUsage);\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractStatusBarItem(abstractItem)\n );\n return items;\n },\n provideWidgets: (stageId, stageUsage, location, section) => {\n if (!adaptee.provideWidgets) return [];\n\n const abstractLocations = toAbstractStagePanelLocation(location);\n const abstractSections =\n section === undefined\n ? ([undefined] as const)\n : toAbstractStagePanelSection(section);\n const combos: [\n AbstractStagePanelLocation,\n AbstractStagePanelSection | undefined // eslint-disable-line @typescript-eslint/no-redundant-type-constituents\n ][] = [];\n abstractLocations.forEach((abstractLocation) => {\n abstractSections.forEach((abstractSection) => {\n combos.push([abstractLocation, abstractSection]);\n });\n });\n let abstractWidgets = combos.reduce<AbstractWidget[]>(\n (acc, [abstractLocation, abstractSection]) => {\n assert(!!adaptee.provideWidgets);\n const w = adaptee.provideWidgets(\n stageId,\n stageUsage,\n abstractLocation,\n abstractSection\n );\n acc.push(...w);\n return acc;\n },\n []\n );\n abstractWidgets = abstractWidgets.reduce<AbstractWidget[]>(\n (acc, abstractWidget) => {\n if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))\n acc.push(abstractWidget);\n return acc;\n },\n []\n );\n const widgets = abstractWidgets.map((abstractWidget) =>\n fromAbstractWidget(abstractWidget)\n );\n return widgets;\n },\n provideToolbarItems: (stageId, stageUsage, usage, orientation) => {\n if (!adaptee.provideToolbarButtonItems) return [];\n\n const abstractItems = adaptee.provideToolbarButtonItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractToolbarItem(abstractItem)\n );\n return items;\n },\n ...other,\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getBadgeType(badgeKind: BadgeKind | undefined) {\n switch (badgeKind) {\n case \"new\":\n return BadgeType.New;\n case \"technical-preview\":\n return BadgeType.TechnicalPreview;\n default:\n return undefined;\n }\n}\n\nfunction toAbstractBackstageItem(item: BackstageItem): AbstractBackstageItem {\n let abstractItem = getOriginalData<AbstractBackstageItem>(item);\n if (abstractItem) return abstractItem;\n\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n };\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractStatusBarItem(item: StatusBarItem): AbstractStatusBarItem {\n let abstractItem = getOriginalData<AbstractStatusBarItem>(item);\n if (abstractItem) return abstractItem;\n\n if (isStatusBarCustomItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n isCustom: true,\n reactNode: item.content,\n } as AbstractStatusBarItem;\n } else {\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n };\n }\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractToolbarItem(item: ToolbarItem): AbstractToolbarItem {\n let abstractItem = getOriginalData<AbstractToolbarItem>(item);\n if (abstractItem) return abstractItem;\n\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n if (isToolbarActionItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n parentToolGroupId: item.parentGroupItemId,\n };\n } else if (isToolbarGroupItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n parentToolGroupId: item.parentGroupItemId,\n items: item.items.map((i) => toAbstractToolbarItem(i)) as any,\n };\n } else {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n isCustom: true,\n icon,\n internalData,\n };\n }\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractWidget(widget: Widget): AbstractWidget {\n let abstractWidget = getOriginalData<AbstractWidget>(widget);\n if (abstractWidget) return abstractWidget;\n\n const allowedPanelTargets = widget.allowedPanels\n // @ts-ignore Possibly 'any'\n ?.map((location) => {\n const map = {\n [StagePanelLocation.Top]: \"top\" as const,\n [StagePanelLocation.Left]: \"left\" as const,\n [StagePanelLocation.Right]: \"right\" as const,\n [StagePanelLocation.Bottom]: \"bottom\" as const,\n };\n // @ts-ignore Possibly 'any'\n return map[location];\n });\n const internalData = new Map();\n const icon = IconHelper.getIconData(widget.icon, internalData);\n abstractWidget = {\n ...widget,\n id: widget.id ?? \"\",\n getWidgetContent: () => widget.content,\n allowedPanelTargets,\n badgeType: getBadgeType(widget.badgeKind) || widget.badge,\n defaultFloatingPosition:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.defaultPosition\n : undefined,\n defaultFloatingSize:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.defaultSize\n : undefined,\n floatingContainerId:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.containerId\n : undefined,\n hideWithUiWhenFloating:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.hideWithUi\n : undefined,\n isFloatingStateSupported: !!widget.canFloat,\n isFloatingStateWindowResizable:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.isResizable\n : undefined,\n icon,\n internalData,\n };\n setOriginalData(abstractWidget, widget);\n return abstractWidget;\n}\n\nfunction fromAbstractBackstageItem(\n abstractItem: AbstractBackstageItem\n): BackstageItem {\n let item = getOriginalData<BackstageItem>(abstractItem);\n if (item) return item;\n\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n assert(!!item);\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractStatusBarItem(\n abstractItem: AbstractStatusBarItem\n): StatusBarItem {\n let item = getOriginalData<StatusBarItem>(abstractItem);\n if (item) return item;\n\n if (isAbstractStatusBarCustomItem(abstractItem)) {\n const content: React.ReactNode | undefined = (abstractItem as any)\n .reactNode;\n return {\n ...abstractItem,\n badge: abstractItem.badgeType,\n content,\n };\n } else {\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n }\n assert(!!item);\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractToolbarItem(\n abstractItem: AbstractToolbarItem\n): ToolbarItem {\n let item = getOriginalData<ToolbarItem>(abstractItem);\n if (item) return item;\n\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n if (AbstractToolbarItemUtilities.isCustomDefinition(abstractItem)) {\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n } else {\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n parentGroupItemId: abstractItem.parentToolGroupId,\n icon,\n };\n }\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractWidget(abstractWidget: AbstractWidget): Widget {\n let widget = getOriginalData<Widget>(abstractWidget);\n if (widget) return widget;\n\n const allowedPanels = abstractWidget.allowedPanelTargets\n // @ts-ignore Possibly 'any'\n ?.map((target) => {\n const map = {\n top: StagePanelLocation.Top,\n left: StagePanelLocation.Left,\n right: StagePanelLocation.Right,\n bottom: StagePanelLocation.Bottom,\n };\n // @ts-ignore Possibly 'any'\n return map[target];\n });\n const icon = fromAbstractIcon(\n abstractWidget.icon,\n abstractWidget.internalData\n );\n widget = {\n ...abstractWidget,\n id: abstractWidget.id ?? \"\",\n content: abstractWidget.getWidgetContent(),\n allowedPanels,\n badge: abstractWidget.badgeType,\n canFloat: abstractWidget.isFloatingStateSupported && {\n containerId: abstractWidget.floatingContainerId,\n defaultPosition: abstractWidget.defaultFloatingPosition,\n defaultSize: abstractWidget.defaultFloatingSize,\n hideWithUi: abstractWidget.hideWithUiWhenFloating,\n isResizable: abstractWidget.isFloatingStateWindowResizable,\n },\n icon,\n };\n assert(!!widget);\n setOriginalData(widget, abstractWidget);\n return widget;\n}\n\nfunction fromAbstractStagePanelLocation(\n location: AbstractStagePanelLocation\n): StagePanelLocation {\n switch (location) {\n case AbstractStagePanelLocation.Left:\n return StagePanelLocation.Left;\n case AbstractStagePanelLocation.Top:\n return StagePanelLocation.Top;\n case AbstractStagePanelLocation.TopMost:\n return StagePanelLocation.Top;\n case AbstractStagePanelLocation.Bottom:\n return StagePanelLocation.Bottom;\n case AbstractStagePanelLocation.BottomMost:\n return StagePanelLocation.Bottom;\n }\n return StagePanelLocation.Right;\n}\n\nfunction toAbstractStagePanelLocation(\n location: StagePanelLocation\n): AbstractStagePanelLocation[] {\n switch (location) {\n case StagePanelLocation.Left:\n return [AbstractStagePanelLocation.Left];\n case StagePanelLocation.Top:\n return [\n AbstractStagePanelLocation.Top,\n AbstractStagePanelLocation.TopMost,\n ];\n case StagePanelLocation.Bottom:\n return [\n AbstractStagePanelLocation.Bottom,\n AbstractStagePanelLocation.BottomMost,\n ];\n }\n return [AbstractStagePanelLocation.Right];\n}\n\nfunction fromAbstractStagePanelSection(\n section: AbstractStagePanelSection\n): StagePanelSection {\n switch (section) {\n case AbstractStagePanelSection.End:\n return StagePanelSection.End;\n }\n return StagePanelSection.Start;\n}\n\nfunction toAbstractStagePanelSection(\n section: StagePanelSection\n): AbstractStagePanelSection[] {\n switch (section) {\n case StagePanelSection.End:\n return [AbstractStagePanelSection.End];\n }\n return [AbstractStagePanelSection.Start, AbstractStagePanelSection.Middle];\n}\n\nfunction fromAbstractIcon(\n icon: string | abstract.ConditionalStringValue | undefined,\n internalData: Map<string, any> | undefined\n): IconSpec {\n if (!icon) return undefined;\n const iconString = abstract.ConditionalStringValue.getValue(icon);\n if (!iconString) return undefined;\n if (iconString === IconHelper.reactIconKey && internalData)\n return internalData.get(IconHelper.reactIconKey) as React.ReactNode;\n return iconString;\n}\n\nfunction getOriginalData<TData>(obj: object): TData | undefined {\n const originalData = (obj as any)[originalDataSymbol];\n if (!originalData) return undefined;\n return originalData;\n}\n\nfunction setOriginalData<TData>(obj: object, data: TData) {\n (obj as any)[originalDataSymbol] = data;\n}\n\n/** Maps items of existing `get` properties to `provide` properties, otherwise uses `provide` properties.\n * @internal\n */\nexport function createGetPropertyAdapter(provider: UiItemsProvider) {\n return {\n ...provider,\n provideBackstageItems: () => {\n return (\n provider.getBackstageItems?.() ??\n provider.provideBackstageItems?.() ??\n []\n );\n },\n provideStatusBarItems: (stageId, stageUsage) => {\n return (\n provider.getStatusBarItems?.() ??\n provider.provideStatusBarItems?.(stageId, stageUsage) ??\n []\n );\n },\n provideToolbarItems: (stageId, stageUsage, usage, orientation) => {\n if (provider.getToolbarItems) {\n return provider.getToolbarItems().filter((item) => {\n const layout = item.layouts?.standard;\n if (!layout) return false;\n return layout.usage === usage && layout.orientation === orientation;\n });\n }\n return (\n provider.provideToolbarItems?.(\n stageId,\n stageUsage,\n usage,\n orientation\n ) ?? []\n );\n },\n provideWidgets: (stageId, stageUsage, location, section) => {\n if (provider.getWidgets) {\n return provider.getWidgets().filter((item) => {\n const layout = item.layouts?.standard;\n if (!layout) return false;\n return layout.location === location && layout.section === section;\n });\n }\n return (\n provider.provideWidgets?.(stageId, stageUsage, location, section) ?? []\n );\n },\n } satisfies UiItemsProvider;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AbstractUiItemsManager.js","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/AbstractUiItemsManager.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,wFAAwF;AAExF,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAmB1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AASxE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B,4BAA4B;AAC5B,MAAM,sBAAsB,GAC1B,SAAS,CAAC,cAAc,CAAC;AAC3B,4BAA4B;AAC5B,MAAM,6BAA6B,GAAG,SAAS,CAAC,6BAA6B,CAAC;AAG9E,4BAA4B;AAC5B,MAAM,0BAA0B,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC,sDAAsD;AAGvH,4BAA4B;AAC5B,MAAM,yBAAyB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,sDAAsD;AAErH,MAAM,4BAA4B,GAAG,QAAQ,CAAC,oBAAoB,CAAC;AAEnE,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAElD,gBAAgB;AAChB,MAAM,UAAU,mCAAmC;IACjD,IAAI,CAAC,sBAAsB;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,IAAI,6BAA6B,CAAC,sBAAsB,CAAC,CAAC;AACnE,CAAC;AAgBD,MAAM,6BAA6B;IACjC,YAA6B,QAA2C;QAA3C,aAAQ,GAAR,QAAQ,CAAmC;IAAG,CAAC;IAErE,iBAAiB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IAC3C,CAAC;IAED,IAAW,2BAA2B;QACpC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,2BAAmC,CAAC,IAAI,GAAG,CACxD,IAAwC,EACxC,EAAE;gBACF,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7D,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ;aACjB,2BAA4E,CAAC;IAClF,CAAC;IAEM,UAAU,CAAC,UAAkB;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,IAAW,sBAAsB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC9C,CAAC;IAED,IAAW,qBAAqB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC7C,CAAC;IAEM,QAAQ,CACb,QAAyB,EACzB,SAAgD;QAEhD,MAAM,gBAAgB,GAAG,sCAAsC,CAAC,QAAQ,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAEM,kBAAkB,CAAC,UAAkB;QAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,gBAAgB;YAAE,OAAO,SAAS,CAAC;QAExC,MAAM,QAAQ,GAAG,sCAAsC,CAAC,gBAAgB,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,iBAAiB;QACtB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACxD,4BAA4B;QAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/C,MAAM,IAAI,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAAC;YACrD,OAAO;gBACL,GAAG,IAAI;gBACP,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;aACnE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,iBAAiB,CACtB,OAAe,EACf,UAAkB;QAElB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3E,4BAA4B;QAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/C,MAAM,IAAI,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAAC;YACrD,OAAO;gBACL,GAAG,IAAI;gBACP,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;aACnE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,qBAAqB,CAC1B,OAAe,EACf,UAAkB,EAClB,KAAmB,EACnB,WAA+B;QAE/B,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CACvD,OAAO,EACP,UAAU,EACV,KAAK,EACL,WAAW,CACZ,CAAC;QACF,4BAA4B;QAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/C,MAAM,IAAI,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;YACnD,OAAO;gBACL,GAAG,IAAI;gBACP,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,EAAE;aAC1C,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,UAAU,CACf,OAAe,EACf,UAAkB,EAClB,QAA4B,EAC5B,OAAuC;QAEvC,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,gBAAgB,GACpB,OAAO,KAAK,SAAS;YACnB,CAAC,CAAE,CAAC,SAAS,CAAW;YACxB,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAGN,EAAE,CAAC;QACT,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE;YAC7C,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;gBAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAChC,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,eAAe,CAChB,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACf,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;QACF,eAAe,GAAG,eAAe,CAAC,MAAM,CACtC,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE;YACtB,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;QACF,MAAM,OAAO,GAAG,eAAe;YAC7B,4BAA4B;aAC3B,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAClD,OAAO;gBACL,GAAG,MAAM;gBACT,UAAU,EAAE,cAAc,CAAC,UAAU,IAAI,EAAE;aAC5C,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,SAAS,sCAAsC,CAC7C,OAAwB;IAExB,MAAM,EACJ,EAAE,EACF,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,GAAG,KAAK,EACT,GAAG,OAAO,CAAC;IACZ,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,qBAAqB,EAAE,GAAG,EAAE;YAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAC/C,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;YACzE,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,qBAAqB,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;YAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;YACzE,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,yBAAyB,EAAE,CACzB,OAAO,EACP,UAAU,EACV,KAAK,EACL,WAAW,EACX,aAAa,EACb,EAAE;YACF,MAAM,KAAK,GAAG,QAAQ,CAAC,mBAAmB,CACxC,OAAO,EACP,UAAU,EACV,KAAK,EACL,WAAW,CACZ,CAAC;YACF,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,cAAc,EAAE,CACd,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,aAAa,EACb,EAAE;YACF,MAAM,QAAQ,GAAG,8BAA8B,CAAC,gBAAgB,CAAC,CAAC;YAClE,MAAM,OAAO,GACX,eAAe,KAAK,SAAS;gBAC3B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,6BAA6B,CAAC,eAAe,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CACnC,OAAO,EACP,UAAU,EACV,QAAQ,EACR,OAAO,CACR,CAAC;YACF,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YACpE,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,GAAG,KAAK;KACT,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAC7C,OAAgC;IAEhC,MAAM,EACJ,EAAE,EACF,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,GAAG,KAAK,EACT,GAAG,OAAO,CAAC;IACZ,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,qBAAqB,EAAE,GAAG,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,qBAAqB;gBAAE,OAAO,EAAE,CAAC;YAE9C,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACtD,4BAA4B;YAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAC/C,yBAAyB,CAAC,YAAY,CAAC,CACxC,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,qBAAqB,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC7C,IAAI,CAAC,OAAO,CAAC,qBAAqB;gBAAE,OAAO,EAAE,CAAC;YAE9C,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACzE,4BAA4B;YAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAC/C,yBAAyB,CAAC,YAAY,CAAC,CACxC,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;YACzD,IAAI,CAAC,OAAO,CAAC,cAAc;gBAAE,OAAO,EAAE,CAAC;YAEvC,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,gBAAgB,GACpB,OAAO,KAAK,SAAS;gBACnB,CAAC,CAAE,CAAC,SAAS,CAAW;gBACxB,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,MAAM,GAGN,EAAE,CAAC;YACT,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE;gBAC7C,gBAAgB,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;oBAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC,EAAE,EAAE;gBAC3C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACjC,MAAM,CAAC,GAAG,OAAO,CAAC,cAAc,CAC9B,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,eAAe,CAChB,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACf,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAE,CACH,CAAC;YACF,eAAe,GAAG,eAAe,CAAC,MAAM,CACtC,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE;gBACtB,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC;oBACzD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3B,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAE,CACH,CAAC;YACF,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CACrD,kBAAkB,CAAC,cAAc,CAAC,CACnC,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,mBAAmB,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YAC/D,IAAI,CAAC,OAAO,CAAC,yBAAyB;gBAAE,OAAO,EAAE,CAAC;YAElD,MAAM,aAAa,GAAG,OAAO,CAAC,yBAAyB,CACrD,OAAO,EACP,UAAU,EACV,KAAK,EACL,WAAW,CACZ,CAAC;YACF,4BAA4B;YAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAC/C,uBAAuB,CAAC,YAAY,CAAC,CACtC,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,GAAG,KAAK;KACT,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,SAAS,YAAY,CAAC,SAAgC;IACpD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,GAAG,CAAC;QACvB,KAAK,mBAAmB;YACtB,OAAO,SAAS,CAAC,gBAAgB,CAAC;QACpC;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAmB;IAClD,IAAI,YAAY,GAAG,eAAe,CAAwB,IAAI,CAAC,CAAC;IAChE,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7D,YAAY,GAAG;QACb,GAAG,IAAI;QACP,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK;QACrD,IAAI;QACJ,YAAY;KACb,CAAC;IACF,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACpC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAmB;IAClD,IAAI,YAAY,GAAG,eAAe,CAAwB,IAAI,CAAC,CAAC;IAChE,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,YAAY,GAAG;YACb,GAAG,IAAI;YACP,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK;YACrD,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI,CAAC,OAAO;SACC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC7D,YAAY,GAAG;YACb,GAAG,IAAI;YACP,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK;YACrD,IAAI;YACJ,YAAY;SACb,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACpC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAiB;IAC9C,IAAI,YAAY,GAAG,eAAe,CAAsB,IAAI,CAAC,CAAC;IAC9D,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7D,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,YAAY,GAAG;YACb,GAAG,IAAI;YACP,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK;YACrD,IAAI;YACJ,YAAY;YACZ,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC;IACJ,CAAC;SAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,YAAY,GAAG;YACb,GAAG,IAAI;YACP,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK;YACrD,IAAI;YACJ,YAAY;YACZ,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAQ;SAC9D,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,YAAY,GAAG;YACb,GAAG,IAAI;YACP,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK;YACrD,QAAQ,EAAE,IAAI;YACd,IAAI;YACJ,YAAY;SACb,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACpC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,cAAc,GAAG,eAAe,CAAiB,MAAM,CAAC,CAAC;IAC7D,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAE1C,MAAM,mBAAmB,GAAG,MAAM,CAAC,aAAa;QAC9C,4BAA4B;QAC5B,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG;YACV,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,KAAc;YACxC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAe;YAC1C,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAgB;YAC5C,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,QAAiB;SAC/C,CAAC;QACF,4BAA4B;QAC5B,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IACL,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC/D,cAAc,GAAG;QACf,GAAG,MAAM;QACT,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE;QACnB,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO;QACtC,mBAAmB;QACnB,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,KAAK;QACzD,uBAAuB,EACrB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe;YACjC,CAAC,CAAC,SAAS;QACf,mBAAmB,EACjB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW;YAC7B,CAAC,CAAC,SAAS;QACf,mBAAmB,EACjB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW;YAC7B,CAAC,CAAC,SAAS;QACf,sBAAsB,EACpB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU;YAC5B,CAAC,CAAC,SAAS;QACf,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;QAC3C,8BAA8B,EAC5B,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW;YAC7B,CAAC,CAAC,SAAS;QACf,IAAI;QACJ,YAAY;KACb,CAAC;IACF,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,yBAAyB,CAChC,YAAmC;IAEnC,IAAI,IAAI,GAAG,eAAe,CAAgB,YAAY,CAAC,CAAC;IACxD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAC5E,IAAI,GAAG;QACL,GAAG,YAAY;QACf,KAAK,EAAE,YAAY,CAAC,SAAS;QAC7B,IAAI;KACL,CAAC;IACF,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACf,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAChC,YAAmC;IAEnC,IAAI,IAAI,GAAG,eAAe,CAAgB,YAAY,CAAC,CAAC;IACxD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAI,6BAA6B,CAAC,YAAY,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAiC,YAAoB;aAC/D,SAAS,CAAC;QACb,OAAO;YACL,GAAG,YAAY;YACf,KAAK,EAAE,YAAY,CAAC,SAAS;YAC7B,OAAO;SACR,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;QAC5E,IAAI,GAAG;YACL,GAAG,YAAY;YACf,KAAK,EAAE,YAAY,CAAC,SAAS;YAC7B,IAAI;SACL,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACf,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAC9B,YAAiC;IAEjC,IAAI,IAAI,GAAG,eAAe,CAAc,YAAY,CAAC,CAAC;IACtD,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAC5E,IAAI,4BAA4B,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;QAClE,IAAI,GAAG;YACL,GAAG,YAAY;YACf,KAAK,EAAE,YAAY,CAAC,SAAS;YAC7B,IAAI;SACL,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,GAAG;YACL,GAAG,YAAY;YACf,KAAK,EAAE,YAAY,CAAC,SAAS;YAC7B,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;YACjD,IAAI;SACL,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,cAA8B;IACxD,IAAI,MAAM,GAAG,eAAe,CAAS,cAAc,CAAC,CAAC;IACrD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,aAAa,GAAG,cAAc,CAAC,mBAAmB;QACtD,4BAA4B;QAC5B,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,MAAM,GAAG,GAAG;YACV,GAAG,EAAE,kBAAkB,CAAC,GAAG;YAC3B,IAAI,EAAE,kBAAkB,CAAC,IAAI;YAC7B,KAAK,EAAE,kBAAkB,CAAC,KAAK;YAC/B,MAAM,EAAE,kBAAkB,CAAC,MAAM;SAClC,CAAC;QACF,4BAA4B;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IACL,MAAM,IAAI,GAAG,gBAAgB,CAC3B,cAAc,CAAC,IAAI,EACnB,cAAc,CAAC,YAAY,CAC5B,CAAC;IACF,MAAM,GAAG;QACP,GAAG,cAAc;QACjB,EAAE,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE;QAC3B,OAAO,EAAE,cAAc,CAAC,gBAAgB,EAAE;QAC1C,aAAa;QACb,KAAK,EAAE,cAAc,CAAC,SAAS;QAC/B,QAAQ,EAAE,cAAc,CAAC,wBAAwB,IAAI;YACnD,WAAW,EAAE,cAAc,CAAC,mBAAmB;YAC/C,eAAe,EAAE,cAAc,CAAC,uBAAuB;YACvD,WAAW,EAAE,cAAc,CAAC,mBAAmB;YAC/C,UAAU,EAAE,cAAc,CAAC,sBAAsB;YACjD,WAAW,EAAE,cAAc,CAAC,8BAA8B;SAC3D;QACD,IAAI;KACL,CAAC;IACF,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACjB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,8BAA8B,CACrC,QAAoC;IAEpC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,0BAA0B,CAAC,IAAI;YAClC,OAAO,kBAAkB,CAAC,IAAI,CAAC;QACjC,KAAK,0BAA0B,CAAC,GAAG;YACjC,OAAO,kBAAkB,CAAC,GAAG,CAAC;QAChC,KAAK,0BAA0B,CAAC,OAAO;YACrC,OAAO,kBAAkB,CAAC,GAAG,CAAC;QAChC,KAAK,0BAA0B,CAAC,MAAM;YACpC,OAAO,kBAAkB,CAAC,MAAM,CAAC;QACnC,KAAK,0BAA0B,CAAC,UAAU;YACxC,OAAO,kBAAkB,CAAC,MAAM,CAAC;IACrC,CAAC;IACD,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAClC,CAAC;AAED,SAAS,4BAA4B,CACnC,QAA4B;IAE5B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,kBAAkB,CAAC,IAAI;YAC1B,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,kBAAkB,CAAC,GAAG;YACzB,OAAO;gBACL,0BAA0B,CAAC,GAAG;gBAC9B,0BAA0B,CAAC,OAAO;aACnC,CAAC;QACJ,KAAK,kBAAkB,CAAC,MAAM;YAC5B,OAAO;gBACL,0BAA0B,CAAC,MAAM;gBACjC,0BAA0B,CAAC,UAAU;aACtC,CAAC;IACN,CAAC;IACD,OAAO,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,6BAA6B,CACpC,OAAkC;IAElC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,yBAAyB,CAAC,GAAG;YAChC,OAAO,iBAAiB,CAAC,GAAG,CAAC;IACjC,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,SAAS,2BAA2B,CAClC,OAA0B;IAE1B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,iBAAiB,CAAC,GAAG;YACxB,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,yBAAyB,CAAC,KAAK,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,gBAAgB,CACvB,IAA0D,EAC1D,YAA0C;IAE1C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,UAAU,GAAG,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,UAAU,KAAK,UAAU,CAAC,YAAY,IAAI,YAAY;QACxD,OAAO,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAoB,CAAC;IACtE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAQ,GAAW;IACzC,MAAM,YAAY,GAAI,GAAW,CAAC,kBAAkB,CAAC,CAAC;IACtD,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IACpC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAQ,GAAW,EAAE,IAAW;IACrD,GAAW,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAyB;IAChE,OAAO;QACL,GAAG,QAAQ;QACX,qBAAqB,EAAE,GAAG,EAAE;YAC1B,OAAO,CACL,QAAQ,CAAC,iBAAiB,EAAE,EAAE;gBAC9B,QAAQ,CAAC,qBAAqB,EAAE,EAAE;gBAClC,EAAE,CACH,CAAC;QACJ,CAAC;QACD,qBAAqB,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC7C,OAAO,CACL,QAAQ,CAAC,iBAAiB,EAAE,EAAE;gBAC9B,QAAQ,CAAC,qBAAqB,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;gBACrD,EAAE,CACH,CAAC;QACJ,CAAC;QACD,mBAAmB,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YAC/D,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAC7B,OAAO,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;oBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;oBACtC,IAAI,CAAC,MAAM;wBAAE,OAAO,KAAK,CAAC;oBAC1B,OAAO,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC;gBACtE,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CACL,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,OAAO,EACP,UAAU,EACV,KAAK,EACL,WAAW,CACZ,IAAI,EAAE,CACR,CAAC;QACJ,CAAC;QACD,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;YACzD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;oBACtC,IAAI,CAAC,MAAM;wBAAE,OAAO,KAAK,CAAC;oBAC1B,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC;gBACpE,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CACL,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,CACxE,CAAC;QACJ,CAAC;KACwB,CAAC;AAC9B,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 UiProvider\n */\n\n/* eslint-disable @typescript-eslint/no-deprecated, @typescript-eslint/ban-ts-comment */\n\nimport * as abstract from \"@itwin/appui-abstract\";\nimport type { BeUiEvent } from \"@itwin/core-bentley\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { IconSpec } from \"@itwin/core-react\";\nimport type { BadgeKind } from \"@itwin/core-react/internal\";\nimport { BadgeType, IconHelper } from \"@itwin/core-react\";\nimport type {\n // @ts-ignore Removed in 4.0\n BackstageItem as AbstractBackstageItem,\n // @ts-ignore Removed in 4.0\n CommonStatusBarItem as AbstractStatusBarItem,\n CommonToolbarItem as AbstractToolbarItem,\n // @ts-ignore Removed in 4.0\n UiItemsManager as AbstractUiItemsManagerType,\n // @ts-ignore Removed in 4.0\n UiItemsProvider as AbstractUiItemsProvider,\n // @ts-ignore Removed in 4.0\n AbstractWidgetProps as AbstractWidget,\n} from \"@itwin/appui-abstract\";\nimport type {\n UiItemsManager,\n UiItemsProviderOverrides,\n UiItemsProviderRegisteredEventArgs,\n} from \"./UiItemsManager.js\";\nimport { StagePanelLocation } from \"../stagepanels/StagePanelLocation.js\";\nimport { StagePanelSection } from \"../stagepanels/StagePanelSection.js\";\nimport type { Widget } from \"../widgets/Widget.js\";\nimport type { ProviderItem } from \"./ProviderItem.js\";\nimport type { UiItemsProvider } from \"./UiItemsProvider.js\";\nimport type {\n ToolbarItem,\n ToolbarOrientation,\n ToolbarUsage,\n} from \"../toolbar/ToolbarItem.js\";\nimport {\n isToolbarActionItem,\n isToolbarGroupItem,\n} from \"../toolbar/ToolbarItem.js\";\nimport type { BackstageItem } from \"../backstage/BackstageItem.js\";\nimport type { StatusBarItem } from \"../statusbar/StatusBarItem.js\";\nimport { isStatusBarCustomItem } from \"../statusbar/StatusBarItem.js\";\n\nconst _abstract = abstract;\n\n// @ts-ignore Removed in 4.0\nconst AbstractUiItemsManager: typeof AbstractUiItemsManagerType | undefined =\n _abstract.UiItemsManager;\n// @ts-ignore Removed in 4.0\nconst isAbstractStatusBarCustomItem = _abstract.isAbstractStatusBarCustomItem;\n// @ts-ignore Removed in 4.0\ntype AbstractStagePanelLocation = _abstract.StagePanelLocation;\n// @ts-ignore Removed in 4.0\nconst AbstractStagePanelLocation = _abstract.StagePanelLocation; // eslint-disable-line @typescript-eslint/no-redeclare\n// @ts-ignore Removed in 4.0\ntype AbstractStagePanelSection = _abstract.StagePanelSection;\n// @ts-ignore Removed in 4.0\nconst AbstractStagePanelSection = _abstract.StagePanelSection; // eslint-disable-line @typescript-eslint/no-redeclare\n\nconst AbstractToolbarItemUtilities = abstract.ToolbarItemUtilities;\n\nconst originalDataSymbol = Symbol(\"originalData\");\n\n/** @internal */\nexport function createAbstractUiItemsManagerAdapter() {\n if (!AbstractUiItemsManager) return undefined;\n return new AbstractUiItemsManagerAdapter(AbstractUiItemsManager);\n}\n\ntype Target = Pick<\n typeof UiItemsManager,\n | \"getToolbarButtonItems\"\n | \"getStatusBarItems\"\n | \"getBackstageItems\"\n | \"register\"\n | \"getUiItemsProvider\"\n | \"registeredProviderIds\"\n | \"hasRegisteredProviders\"\n | \"unregister\"\n | \"onUiProviderRegisteredEvent\"\n | \"clearAllProviders\"\n>;\n\nclass AbstractUiItemsManagerAdapter implements Target {\n constructor(private readonly _adaptee: typeof AbstractUiItemsManagerType) {}\n\n public clearAllProviders(): void {\n return this._adaptee.clearAllProviders();\n }\n\n public get onUiProviderRegisteredEvent(): BeUiEvent<UiItemsProviderRegisteredEventArgs> {\n if (!(\"emit\" in this._adaptee.onUiProviderRegisteredEvent)) {\n (this._adaptee.onUiProviderRegisteredEvent as any).emit = (\n args: UiItemsProviderRegisteredEventArgs\n ) => {\n this._adaptee.onUiProviderRegisteredEvent.raiseEvent(args);\n };\n }\n return this._adaptee\n .onUiProviderRegisteredEvent as BeUiEvent<UiItemsProviderRegisteredEventArgs>;\n }\n\n public unregister(providerId: string): void {\n return this._adaptee.unregister(providerId);\n }\n\n public get hasRegisteredProviders(): boolean {\n return this._adaptee.hasRegisteredProviders;\n }\n\n public get registeredProviderIds(): string[] {\n return this._adaptee.registeredProviderIds;\n }\n\n public register(\n provider: UiItemsProvider,\n overrides?: UiItemsProviderOverrides | undefined\n ): void {\n const abstractProvider = createUiItemsProviderToAbstractAdapter(provider);\n return this._adaptee.register(abstractProvider, overrides);\n }\n\n public getUiItemsProvider(providerId: string): UiItemsProvider | undefined {\n const abstractProvider = this._adaptee.getUiItemsProvider(providerId);\n if (!abstractProvider) return undefined;\n\n const provider = createAbstractToUiItemsProviderAdapter(abstractProvider);\n return provider;\n }\n\n public getBackstageItems(): readonly ProviderItem<BackstageItem>[] {\n const abstractItems = this._adaptee.getBackstageItems();\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractBackstageItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ? abstractItem.providerId : \"\",\n };\n });\n return items;\n }\n\n public getStatusBarItems(\n stageId: string,\n stageUsage: string\n ): readonly ProviderItem<StatusBarItem>[] {\n const abstractItems = this._adaptee.getStatusBarItems(stageId, stageUsage);\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractStatusBarItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ? abstractItem.providerId : \"\",\n };\n });\n return items;\n }\n\n public getToolbarButtonItems(\n stageId: string,\n stageUsage: string,\n usage: ToolbarUsage,\n orientation: ToolbarOrientation\n ): readonly ProviderItem<ToolbarItem>[] {\n const abstractItems = this._adaptee.getToolbarButtonItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) => {\n const item = fromAbstractToolbarItem(abstractItem);\n return {\n ...item,\n providerId: abstractItem.providerId ?? \"\",\n };\n });\n return items;\n }\n\n public getWidgets(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n section?: StagePanelSection | undefined\n ): readonly ProviderItem<Widget>[] {\n const abstractLocations = toAbstractStagePanelLocation(location);\n const abstractSections =\n section === undefined\n ? ([undefined] as const)\n : toAbstractStagePanelSection(section);\n const combos: [\n AbstractStagePanelLocation,\n AbstractStagePanelSection | undefined // eslint-disable-line @typescript-eslint/no-redundant-type-constituents\n ][] = [];\n abstractLocations.forEach((abstractLocation) => {\n abstractSections.forEach((abstractSection) => {\n combos.push([abstractLocation, abstractSection]);\n });\n });\n let abstractWidgets = combos.reduce<AbstractWidget[]>(\n (acc, [abstractLocation, abstractSection]) => {\n const w = this._adaptee.getWidgets(\n stageId,\n stageUsage,\n abstractLocation,\n abstractSection\n );\n acc.push(...w);\n return acc;\n },\n []\n );\n abstractWidgets = abstractWidgets.reduce<AbstractWidget[]>(\n (acc, abstractWidget) => {\n if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))\n acc.push(abstractWidget);\n return acc;\n },\n []\n );\n const widgets = abstractWidgets\n // @ts-ignore Possibly 'any'\n .map((abstractWidget) => {\n const widget = fromAbstractWidget(abstractWidget);\n return {\n ...widget,\n providerId: abstractWidget.providerId ?? \"\",\n };\n });\n return widgets;\n }\n}\n\nfunction createUiItemsProviderToAbstractAdapter(\n adaptee: UiItemsProvider\n): AbstractUiItemsProvider {\n const {\n id,\n onUnregister,\n provideBackstageItems,\n provideStatusBarItems,\n provideWidgets,\n ...other\n } = adaptee;\n const provider = createGetPropertyAdapter(adaptee);\n return {\n id: adaptee.id,\n onUnregister: adaptee.onUnregister,\n provideBackstageItems: () => {\n const items = provider.provideBackstageItems();\n const abstractItems = items.map((item) => toAbstractBackstageItem(item));\n return abstractItems;\n },\n provideStatusBarItems: (stageId, stageUsage, _stageAppData) => {\n const items = provider.provideStatusBarItems(stageId, stageUsage);\n const abstractItems = items.map((item) => toAbstractStatusBarItem(item));\n return abstractItems;\n },\n provideToolbarButtonItems: (\n stageId,\n stageUsage,\n usage,\n orientation,\n _stageAppData\n ) => {\n const items = provider.provideToolbarItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n const abstractItems = items.map((item) => toAbstractToolbarItem(item));\n return abstractItems;\n },\n provideWidgets: (\n stageId,\n stageUsage,\n abstractLocation,\n abstractSection,\n _zoneLocation,\n _stageAppData\n ) => {\n const location = fromAbstractStagePanelLocation(abstractLocation);\n const section =\n abstractSection === undefined\n ? undefined\n : fromAbstractStagePanelSection(abstractSection);\n const items = provider.provideWidgets(\n stageId,\n stageUsage,\n location,\n section\n );\n const abstractWidgets = items.map((item) => toAbstractWidget(item));\n return abstractWidgets;\n },\n ...other,\n };\n}\n\nfunction createAbstractToUiItemsProviderAdapter(\n adaptee: AbstractUiItemsProvider\n): UiItemsProvider {\n const {\n id,\n onUnregister,\n provideBackstageItems,\n provideStatusBarItems,\n provideWidgets,\n ...other\n } = adaptee;\n return {\n id: adaptee.id,\n onUnregister: adaptee.onUnregister,\n provideBackstageItems: () => {\n if (!adaptee.provideBackstageItems) return [];\n\n const abstractItems = adaptee.provideBackstageItems();\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractBackstageItem(abstractItem)\n );\n return items;\n },\n provideStatusBarItems: (stageId, stageUsage) => {\n if (!adaptee.provideStatusBarItems) return [];\n\n const abstractItems = adaptee.provideStatusBarItems(stageId, stageUsage);\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractStatusBarItem(abstractItem)\n );\n return items;\n },\n provideWidgets: (stageId, stageUsage, location, section) => {\n if (!adaptee.provideWidgets) return [];\n\n const abstractLocations = toAbstractStagePanelLocation(location);\n const abstractSections =\n section === undefined\n ? ([undefined] as const)\n : toAbstractStagePanelSection(section);\n const combos: [\n AbstractStagePanelLocation,\n AbstractStagePanelSection | undefined // eslint-disable-line @typescript-eslint/no-redundant-type-constituents\n ][] = [];\n abstractLocations.forEach((abstractLocation) => {\n abstractSections.forEach((abstractSection) => {\n combos.push([abstractLocation, abstractSection]);\n });\n });\n let abstractWidgets = combos.reduce<AbstractWidget[]>(\n (acc, [abstractLocation, abstractSection]) => {\n assert(!!adaptee.provideWidgets);\n const w = adaptee.provideWidgets(\n stageId,\n stageUsage,\n abstractLocation,\n abstractSection\n );\n acc.push(...w);\n return acc;\n },\n []\n );\n abstractWidgets = abstractWidgets.reduce<AbstractWidget[]>(\n (acc, abstractWidget) => {\n if (-1 === acc.findIndex((w) => w.id === abstractWidget.id))\n acc.push(abstractWidget);\n return acc;\n },\n []\n );\n const widgets = abstractWidgets.map((abstractWidget) =>\n fromAbstractWidget(abstractWidget)\n );\n return widgets;\n },\n provideToolbarItems: (stageId, stageUsage, usage, orientation) => {\n if (!adaptee.provideToolbarButtonItems) return [];\n\n const abstractItems = adaptee.provideToolbarButtonItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n // @ts-ignore Possibly 'any'\n const items = abstractItems.map((abstractItem) =>\n fromAbstractToolbarItem(abstractItem)\n );\n return items;\n },\n ...other,\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getBadgeType(badgeKind: BadgeKind | undefined) {\n switch (badgeKind) {\n case \"new\":\n return BadgeType.New;\n case \"technical-preview\":\n return BadgeType.TechnicalPreview;\n default:\n return undefined;\n }\n}\n\nfunction toAbstractBackstageItem(item: BackstageItem): AbstractBackstageItem {\n let abstractItem = getOriginalData<AbstractBackstageItem>(item);\n if (abstractItem) return abstractItem;\n\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n };\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractStatusBarItem(item: StatusBarItem): AbstractStatusBarItem {\n let abstractItem = getOriginalData<AbstractStatusBarItem>(item);\n if (abstractItem) return abstractItem;\n\n if (isStatusBarCustomItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n isCustom: true,\n reactNode: item.content,\n } as AbstractStatusBarItem;\n } else {\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n };\n }\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractToolbarItem(item: ToolbarItem): AbstractToolbarItem {\n let abstractItem = getOriginalData<AbstractToolbarItem>(item);\n if (abstractItem) return abstractItem;\n\n const internalData = new Map();\n const icon = IconHelper.getIconData(item.icon, internalData);\n if (isToolbarActionItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n parentToolGroupId: item.parentGroupItemId,\n };\n } else if (isToolbarGroupItem(item)) {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n icon,\n internalData,\n parentToolGroupId: item.parentGroupItemId,\n items: item.items.map((i) => toAbstractToolbarItem(i)) as any,\n };\n } else {\n abstractItem = {\n ...item,\n badgeType: getBadgeType(item.badgeKind) || item.badge,\n isCustom: true,\n icon,\n internalData,\n };\n }\n setOriginalData(abstractItem, item);\n return abstractItem;\n}\n\nfunction toAbstractWidget(widget: Widget): AbstractWidget {\n let abstractWidget = getOriginalData<AbstractWidget>(widget);\n if (abstractWidget) return abstractWidget;\n\n const allowedPanelTargets = widget.allowedPanels\n // @ts-ignore Possibly 'any'\n ?.map((location) => {\n const map = {\n [StagePanelLocation.Top]: \"top\" as const,\n [StagePanelLocation.Left]: \"left\" as const,\n [StagePanelLocation.Right]: \"right\" as const,\n [StagePanelLocation.Bottom]: \"bottom\" as const,\n };\n // @ts-ignore Possibly 'any'\n return map[location];\n });\n const internalData = new Map();\n const icon = IconHelper.getIconData(widget.icon, internalData);\n abstractWidget = {\n ...widget,\n id: widget.id ?? \"\",\n getWidgetContent: () => widget.content,\n allowedPanelTargets,\n badgeType: getBadgeType(widget.badgeKind) || widget.badge,\n defaultFloatingPosition:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.defaultPosition\n : undefined,\n defaultFloatingSize:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.defaultSize\n : undefined,\n floatingContainerId:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.containerId\n : undefined,\n hideWithUiWhenFloating:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.hideWithUi\n : undefined,\n isFloatingStateSupported: !!widget.canFloat,\n isFloatingStateWindowResizable:\n typeof widget.canFloat === \"object\"\n ? widget.canFloat.isResizable\n : undefined,\n icon,\n internalData,\n };\n setOriginalData(abstractWidget, widget);\n return abstractWidget;\n}\n\nfunction fromAbstractBackstageItem(\n abstractItem: AbstractBackstageItem\n): BackstageItem {\n let item = getOriginalData<BackstageItem>(abstractItem);\n if (item) return item;\n\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n assert(!!item);\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractStatusBarItem(\n abstractItem: AbstractStatusBarItem\n): StatusBarItem {\n let item = getOriginalData<StatusBarItem>(abstractItem);\n if (item) return item;\n\n if (isAbstractStatusBarCustomItem(abstractItem)) {\n const content: React.ReactNode | undefined = (abstractItem as any)\n .reactNode;\n return {\n ...abstractItem,\n badge: abstractItem.badgeType,\n content,\n };\n } else {\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n }\n assert(!!item);\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractToolbarItem(\n abstractItem: AbstractToolbarItem\n): ToolbarItem {\n let item = getOriginalData<ToolbarItem>(abstractItem);\n if (item) return item;\n\n const icon = fromAbstractIcon(abstractItem.icon, abstractItem.internalData);\n if (AbstractToolbarItemUtilities.isCustomDefinition(abstractItem)) {\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n icon,\n };\n } else {\n item = {\n ...abstractItem,\n badge: abstractItem.badgeType,\n parentGroupItemId: abstractItem.parentToolGroupId,\n icon,\n };\n }\n setOriginalData(item, abstractItem);\n return item;\n}\n\nfunction fromAbstractWidget(abstractWidget: AbstractWidget): Widget {\n let widget = getOriginalData<Widget>(abstractWidget);\n if (widget) return widget;\n\n const allowedPanels = abstractWidget.allowedPanelTargets\n // @ts-ignore Possibly 'any'\n ?.map((target) => {\n const map = {\n top: StagePanelLocation.Top,\n left: StagePanelLocation.Left,\n right: StagePanelLocation.Right,\n bottom: StagePanelLocation.Bottom,\n };\n // @ts-ignore Possibly 'any'\n return map[target];\n });\n const icon = fromAbstractIcon(\n abstractWidget.icon,\n abstractWidget.internalData\n );\n widget = {\n ...abstractWidget,\n id: abstractWidget.id ?? \"\",\n content: abstractWidget.getWidgetContent(),\n allowedPanels,\n badge: abstractWidget.badgeType,\n canFloat: abstractWidget.isFloatingStateSupported && {\n containerId: abstractWidget.floatingContainerId,\n defaultPosition: abstractWidget.defaultFloatingPosition,\n defaultSize: abstractWidget.defaultFloatingSize,\n hideWithUi: abstractWidget.hideWithUiWhenFloating,\n isResizable: abstractWidget.isFloatingStateWindowResizable,\n },\n icon,\n };\n assert(!!widget);\n setOriginalData(widget, abstractWidget);\n return widget;\n}\n\nfunction fromAbstractStagePanelLocation(\n location: AbstractStagePanelLocation\n): StagePanelLocation {\n switch (location) {\n case AbstractStagePanelLocation.Left:\n return StagePanelLocation.Left;\n case AbstractStagePanelLocation.Top:\n return StagePanelLocation.Top;\n case AbstractStagePanelLocation.TopMost:\n return StagePanelLocation.Top;\n case AbstractStagePanelLocation.Bottom:\n return StagePanelLocation.Bottom;\n case AbstractStagePanelLocation.BottomMost:\n return StagePanelLocation.Bottom;\n }\n return StagePanelLocation.Right;\n}\n\nfunction toAbstractStagePanelLocation(\n location: StagePanelLocation\n): AbstractStagePanelLocation[] {\n switch (location) {\n case StagePanelLocation.Left:\n return [AbstractStagePanelLocation.Left];\n case StagePanelLocation.Top:\n return [\n AbstractStagePanelLocation.Top,\n AbstractStagePanelLocation.TopMost,\n ];\n case StagePanelLocation.Bottom:\n return [\n AbstractStagePanelLocation.Bottom,\n AbstractStagePanelLocation.BottomMost,\n ];\n }\n return [AbstractStagePanelLocation.Right];\n}\n\nfunction fromAbstractStagePanelSection(\n section: AbstractStagePanelSection\n): StagePanelSection {\n switch (section) {\n case AbstractStagePanelSection.End:\n return StagePanelSection.End;\n }\n return StagePanelSection.Start;\n}\n\nfunction toAbstractStagePanelSection(\n section: StagePanelSection\n): AbstractStagePanelSection[] {\n switch (section) {\n case StagePanelSection.End:\n return [AbstractStagePanelSection.End];\n }\n return [AbstractStagePanelSection.Start, AbstractStagePanelSection.Middle];\n}\n\nfunction fromAbstractIcon(\n icon: string | abstract.ConditionalStringValue | undefined,\n internalData: Map<string, any> | undefined\n): IconSpec {\n if (!icon) return undefined;\n const iconString = abstract.ConditionalStringValue.getValue(icon);\n if (!iconString) return undefined;\n if (iconString === IconHelper.reactIconKey && internalData)\n return internalData.get(IconHelper.reactIconKey) as React.ReactNode;\n return iconString;\n}\n\nfunction getOriginalData<TData>(obj: object): TData | undefined {\n const originalData = (obj as any)[originalDataSymbol];\n if (!originalData) return undefined;\n return originalData;\n}\n\nfunction setOriginalData<TData>(obj: object, data: TData) {\n (obj as any)[originalDataSymbol] = data;\n}\n\n/** Maps items of existing `get` properties to `provide` properties, otherwise uses `provide` properties.\n * @internal\n */\nexport function createGetPropertyAdapter(provider: UiItemsProvider) {\n return {\n ...provider,\n provideBackstageItems: () => {\n return (\n provider.getBackstageItems?.() ??\n provider.provideBackstageItems?.() ??\n []\n );\n },\n provideStatusBarItems: (stageId, stageUsage) => {\n return (\n provider.getStatusBarItems?.() ??\n provider.provideStatusBarItems?.(stageId, stageUsage) ??\n []\n );\n },\n provideToolbarItems: (stageId, stageUsage, usage, orientation) => {\n if (provider.getToolbarItems) {\n return provider.getToolbarItems().filter((item) => {\n const layout = item.layouts?.standard;\n if (!layout) return false;\n return layout.usage === usage && layout.orientation === orientation;\n });\n }\n return (\n provider.provideToolbarItems?.(\n stageId,\n stageUsage,\n usage,\n orientation\n ) ?? []\n );\n },\n provideWidgets: (stageId, stageUsage, location, section) => {\n if (provider.getWidgets) {\n return provider.getWidgets().filter((item) => {\n const layout = item.layouts?.standard;\n if (!layout) return false;\n return layout.location === location && layout.section === section;\n });\n }\n return (\n provider.provideWidgets?.(stageId, stageUsage, location, section) ?? []\n );\n },\n } satisfies UiItemsProvider;\n}\n"]}
|
|
@@ -63,39 +63,41 @@ export declare class UiItemsManager {
|
|
|
63
63
|
static getUiItemsProvider(providerId: string): UiItemsProvider | undefined;
|
|
64
64
|
private static sendRegisteredEvent;
|
|
65
65
|
/**
|
|
66
|
-
* Registers
|
|
67
|
-
*
|
|
68
|
-
* @param overrides the UI items provider to register.
|
|
66
|
+
* Registers an {@link UiItemsProvider}.
|
|
67
|
+
* Optional overrides can be specified to limit when the provider is allowed to provide items.
|
|
69
68
|
*/
|
|
70
69
|
static register(uiProvider: UiItemsProvider, overrides?: UiItemsProviderOverrides): void;
|
|
71
|
-
/**
|
|
70
|
+
/** Unregisters a specific {@link UiItemsProvider}. */
|
|
72
71
|
static unregister(providerId: string): void;
|
|
73
72
|
private static allowItemsFromProvider;
|
|
74
|
-
/**
|
|
75
|
-
*
|
|
76
|
-
* @
|
|
77
|
-
* @param stageUsage the StageUsage of the active stage.
|
|
78
|
-
* @param usage usage of the toolbar
|
|
79
|
-
* @param orientation orientation of the toolbar
|
|
80
|
-
* @returns an array of error messages. The array will be empty if the load is successful, otherwise it is a list of one or more problems.
|
|
73
|
+
/** Returns registered toolbar items configured for the standard layout that match the specified frontstage id and usage.
|
|
74
|
+
* @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.
|
|
75
|
+
* @note Items returned by {@link UiItemsProvider.provideToolbarItems} are returned by this method.
|
|
81
76
|
*/
|
|
82
77
|
static getToolbarButtonItems(stageId: string, stageUsage: string, usage: ToolbarUsage, orientation: ToolbarOrientation): ReadonlyArray<ProviderItem<ToolbarItem>>;
|
|
83
|
-
/**
|
|
84
|
-
* @
|
|
85
|
-
* @
|
|
86
|
-
|
|
78
|
+
/** Returns registered toolbar items that match the specified frontstage id and usage.
|
|
79
|
+
* @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are not returned by this method.
|
|
80
|
+
* @note Items returned by {@link UiItemsProvider.provideToolbarItems} are not returned by this method.
|
|
81
|
+
*/
|
|
82
|
+
static getToolbarItems(stageId: string, stageUsage: string): ReadonlyArray<ProviderItem<ToolbarItem>>;
|
|
83
|
+
/** Returns registered status bar items that match the specified frontstage id and usage.
|
|
84
|
+
* @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.
|
|
85
|
+
* @note Items returned by {@link UiItemsProvider.provideStatusBarItems} are returned by this method.
|
|
87
86
|
*/
|
|
88
87
|
static getStatusBarItems(stageId: string, stageUsage: string): ReadonlyArray<ProviderItem<StatusBarItem>>;
|
|
89
|
-
/**
|
|
90
|
-
* @
|
|
88
|
+
/** Returns registered backstage items.
|
|
89
|
+
* @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.
|
|
90
|
+
* @note Items returned by {@link UiItemsProvider.provideBackstageItems} are returned by this method.
|
|
91
91
|
*/
|
|
92
92
|
static getBackstageItems(): ReadonlyArray<ProviderItem<BackstageItem>>;
|
|
93
|
-
/**
|
|
94
|
-
* @
|
|
95
|
-
* @
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
/** Returns registered widgets that match the specified frontstage id and usage.
|
|
94
|
+
* @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are not returned by this method.
|
|
95
|
+
* @note Items returned by {@link UiItemsProvider.provideWidgets} are not returned by this method.
|
|
96
|
+
*/
|
|
97
|
+
static getWidgets(stageId: string, stageUsage: string): ReadonlyArray<ProviderItem<Widget>>;
|
|
98
|
+
/** Returns registered widgets configured for the standard layout that match the specified frontstage id and usage.
|
|
99
|
+
* @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.
|
|
100
|
+
* @note Items returned by {@link UiItemsProvider.provideWidgets} are returned by this method.
|
|
99
101
|
*/
|
|
100
102
|
static getWidgets(stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<ProviderItem<Widget>>;
|
|
101
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiItemsManager.d.ts","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/UiItemsManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAU,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM5D;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,uJAAuJ;IACvJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4GAA4G;IAC5G,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAChC,YAAY,CAAC,+BAA+B,EAAE,YAAY,GAAG,aAAa,CAAC,GAC3E,YAAY,CAAC,+BAA+B,EAAE,YAAY,GAAG,UAAU,CAAC,GACxE,YAAY,CAAC,+BAA+B,EAAE,UAAU,CAAC,GACzD,YAAY,CAAC,+BAA+B,EAAE,aAAa,CAAC,GAC5D,YAAY,CACV,+BAA+B,EAC/B,YAAY,GAAG,aAAa,GAAG,UAAU,CAC1C,CAAC;AAQN;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,2BAA2B,CACD;IACzC,OAAO,CAAC,MAAM,CAAC,4BAA4B,CACW;IACtD,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAyC;IAExE;;OAEG;WACW,kBAAkB,CAAC,kBAAkB,EAAE,OAAO;IAQ5D;mBACe;WACD,iBAAiB;
|
|
1
|
+
{"version":3,"file":"UiItemsManager.d.ts","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/UiItemsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,8 +26,9 @@ export class UiItemsManager {
|
|
|
26
26
|
/** For use in unit testing
|
|
27
27
|
* @internal */
|
|
28
28
|
static clearAllProviders() {
|
|
29
|
-
if (this._abstractAdapter)
|
|
30
|
-
|
|
29
|
+
if (this._abstractAdapter) {
|
|
30
|
+
this._abstractAdapter.clearAllProviders();
|
|
31
|
+
}
|
|
31
32
|
UiItemsManager._registeredUiItemsProviders.clear();
|
|
32
33
|
}
|
|
33
34
|
/** Event raised any time a UiProvider is registered or unregistered. */
|
|
@@ -64,36 +65,37 @@ export class UiItemsManager {
|
|
|
64
65
|
UiItemsManager.onUiProviderRegisteredEvent.raiseEvent(args);
|
|
65
66
|
}
|
|
66
67
|
/**
|
|
67
|
-
* Registers
|
|
68
|
-
*
|
|
69
|
-
* @param overrides the UI items provider to register.
|
|
68
|
+
* Registers an {@link UiItemsProvider}.
|
|
69
|
+
* Optional overrides can be specified to limit when the provider is allowed to provide items.
|
|
70
70
|
*/
|
|
71
71
|
static register(uiProvider, overrides) {
|
|
72
|
-
if (this._abstractAdapter)
|
|
73
|
-
return this._abstractAdapter.register(uiProvider, overrides);
|
|
74
72
|
const providerId = overrides?.providerId ?? uiProvider.id;
|
|
75
73
|
if (UiItemsManager.getUiItemsProvider(providerId)) {
|
|
76
|
-
Logger.logInfo(UiFramework.loggerCategory("UiItemsManager"), `UiItemsProvider
|
|
74
|
+
Logger.logInfo(UiFramework.loggerCategory("UiItemsManager"), `UiItemsProvider '${providerId}' is already registered`);
|
|
75
|
+
return;
|
|
77
76
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
77
|
+
// Using the same structure to support layout agnostic methods i.e. `getToolbarItems`.
|
|
78
|
+
UiItemsManager._registeredUiItemsProviders.set(providerId, {
|
|
79
|
+
provider: uiProvider,
|
|
80
|
+
overrides,
|
|
81
|
+
});
|
|
82
|
+
if (this._abstractAdapter) {
|
|
83
|
+
return this._abstractAdapter.register(uiProvider, overrides);
|
|
85
84
|
}
|
|
85
|
+
Logger.logInfo(UiFramework.loggerCategory("UiItemsManager"), `UiItemsProvider '${uiProvider.id}' registered as '${providerId}'`);
|
|
86
|
+
UiItemsManager.sendRegisteredEvent({ providerId });
|
|
86
87
|
}
|
|
87
|
-
/**
|
|
88
|
+
/** Unregisters a specific {@link UiItemsProvider}. */
|
|
88
89
|
static unregister(providerId) {
|
|
89
|
-
if (this._abstractAdapter)
|
|
90
|
-
return this._abstractAdapter.unregister(providerId);
|
|
91
90
|
const provider = UiItemsManager.getUiItemsProvider(providerId);
|
|
92
91
|
if (!provider)
|
|
93
92
|
return;
|
|
94
|
-
provider.onUnregister && provider.onUnregister();
|
|
95
93
|
UiItemsManager._registeredUiItemsProviders.delete(providerId);
|
|
96
|
-
|
|
94
|
+
if (this._abstractAdapter) {
|
|
95
|
+
this._abstractAdapter.unregister(providerId);
|
|
96
|
+
}
|
|
97
|
+
provider.onUnregister?.();
|
|
98
|
+
Logger.logInfo(UiFramework.loggerCategory("UiItemsManager"), `UiItemsProvider '${providerId}' unregistered`);
|
|
97
99
|
// trigger a refresh of the ui
|
|
98
100
|
UiItemsManager.sendRegisteredEvent({ providerId });
|
|
99
101
|
}
|
|
@@ -109,13 +111,9 @@ export class UiItemsManager {
|
|
|
109
111
|
return false;
|
|
110
112
|
return true;
|
|
111
113
|
}
|
|
112
|
-
/**
|
|
113
|
-
*
|
|
114
|
-
* @
|
|
115
|
-
* @param stageUsage the StageUsage of the active stage.
|
|
116
|
-
* @param usage usage of the toolbar
|
|
117
|
-
* @param orientation orientation of the toolbar
|
|
118
|
-
* @returns an array of error messages. The array will be empty if the load is successful, otherwise it is a list of one or more problems.
|
|
114
|
+
/** Returns registered toolbar items configured for the standard layout that match the specified frontstage id and usage.
|
|
115
|
+
* @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.
|
|
116
|
+
* @note Items returned by {@link UiItemsProvider.provideToolbarItems} are returned by this method.
|
|
119
117
|
*/
|
|
120
118
|
static getToolbarButtonItems(stageId, stageUsage, usage, orientation) {
|
|
121
119
|
if (this._abstractAdapter) {
|
|
@@ -138,10 +136,29 @@ export class UiItemsManager {
|
|
|
138
136
|
});
|
|
139
137
|
return getUniqueItems(items);
|
|
140
138
|
}
|
|
141
|
-
/**
|
|
142
|
-
* @
|
|
143
|
-
* @
|
|
144
|
-
|
|
139
|
+
/** Returns registered toolbar items that match the specified frontstage id and usage.
|
|
140
|
+
* @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are not returned by this method.
|
|
141
|
+
* @note Items returned by {@link UiItemsProvider.provideToolbarItems} are not returned by this method.
|
|
142
|
+
*/
|
|
143
|
+
static getToolbarItems(stageId, stageUsage) {
|
|
144
|
+
const items = [];
|
|
145
|
+
// Not using `AbstractUiItemsManager`, since there's no way to check if provider items are allowed.
|
|
146
|
+
UiItemsManager._registeredUiItemsProviders.forEach((entry) => {
|
|
147
|
+
const uiProvider = entry.provider;
|
|
148
|
+
const providerId = entry.overrides?.providerId ?? uiProvider.id;
|
|
149
|
+
if (!this.allowItemsFromProvider(entry, stageId, stageUsage))
|
|
150
|
+
return;
|
|
151
|
+
const providerItems = uiProvider.getToolbarItems?.().map((item) => ({
|
|
152
|
+
...item,
|
|
153
|
+
providerId,
|
|
154
|
+
})) ?? [];
|
|
155
|
+
items.push(...providerItems);
|
|
156
|
+
});
|
|
157
|
+
return getUniqueItems(items);
|
|
158
|
+
}
|
|
159
|
+
/** Returns registered status bar items that match the specified frontstage id and usage.
|
|
160
|
+
* @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.
|
|
161
|
+
* @note Items returned by {@link UiItemsProvider.provideStatusBarItems} are returned by this method.
|
|
145
162
|
*/
|
|
146
163
|
static getStatusBarItems(stageId, stageUsage) {
|
|
147
164
|
if (this._abstractAdapter) {
|
|
@@ -164,8 +181,9 @@ export class UiItemsManager {
|
|
|
164
181
|
});
|
|
165
182
|
return getUniqueItems(items);
|
|
166
183
|
}
|
|
167
|
-
/**
|
|
168
|
-
* @
|
|
184
|
+
/** Returns registered backstage items.
|
|
185
|
+
* @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.
|
|
186
|
+
* @note Items returned by {@link UiItemsProvider.provideBackstageItems} are returned by this method.
|
|
169
187
|
*/
|
|
170
188
|
static getBackstageItems() {
|
|
171
189
|
if (this._abstractAdapter) {
|
|
@@ -186,15 +204,24 @@ export class UiItemsManager {
|
|
|
186
204
|
});
|
|
187
205
|
return getUniqueItems(items);
|
|
188
206
|
}
|
|
189
|
-
/** Called when the application is populating the Stage Panels so that any registered UiItemsProvider can add widgets
|
|
190
|
-
* @param stageId a string identifier of the active stage.
|
|
191
|
-
* @param stageUsage the StageUsage of the active stage.
|
|
192
|
-
* @param location the location within the stage.
|
|
193
|
-
* @param section the section within location.
|
|
194
|
-
* @returns An array of widgets.
|
|
195
|
-
*/
|
|
196
207
|
static getWidgets(stageId, stageUsage, location, section) {
|
|
197
208
|
const items = [];
|
|
209
|
+
// If location is not specified, return all registered widgets.
|
|
210
|
+
if (location === undefined) {
|
|
211
|
+
// Not using `AbstractUiItemsManager`, since there's no way to check if provider items are allowed.
|
|
212
|
+
UiItemsManager._registeredUiItemsProviders.forEach((entry) => {
|
|
213
|
+
const uiProvider = entry.provider;
|
|
214
|
+
const providerId = entry.overrides?.providerId ?? uiProvider.id;
|
|
215
|
+
if (!this.allowItemsFromProvider(entry, stageId, stageUsage))
|
|
216
|
+
return;
|
|
217
|
+
const providerItems = uiProvider.getWidgets?.().map((item) => ({
|
|
218
|
+
...item,
|
|
219
|
+
providerId,
|
|
220
|
+
})) ?? [];
|
|
221
|
+
items.push(...providerItems);
|
|
222
|
+
});
|
|
223
|
+
return getUniqueItems(items);
|
|
224
|
+
}
|
|
198
225
|
if (this._abstractAdapter) {
|
|
199
226
|
const abstractWidgets = this._abstractAdapter.getWidgets(stageId, stageUsage, location, section);
|
|
200
227
|
items.push(...abstractWidgets);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiItemsManager.js","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/UiItemsManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module UiProvider\n */\n\nimport type { MarkRequired } from \"@itwin/core-bentley\";\nimport { BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport type { BackstageItem } from \"../backstage/BackstageItem.js\";\nimport type { StagePanelLocation } from \"../stagepanels/StagePanelLocation.js\";\nimport type { StagePanelSection } from \"../stagepanels/StagePanelSection.js\";\nimport type { StatusBarItem } from \"../statusbar/StatusBarItem.js\";\nimport type { ToolbarItem } from \"../toolbar/ToolbarItem.js\";\nimport type {\n ToolbarOrientation,\n ToolbarUsage,\n} from \"../toolbar/ToolbarItem.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type { Widget } from \"../widgets/Widget.js\";\nimport type { ProviderItem } from \"./ProviderItem.js\";\nimport type { UiItemsProvider } from \"./UiItemsProvider.js\";\nimport {\n createAbstractUiItemsManagerAdapter,\n createGetPropertyAdapter,\n} from \"./AbstractUiItemsManager.js\";\n\n/** UiItemsProvider register event args.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface UiItemsProviderRegisteredEventArgs {\n providerId: string;\n}\n\n/** UiItemsProvider overrides allows the application that registers a provider to limit when it is allowed to provide items\n * @public\n */\nexport interface AllowedUiItemsProviderOverrides {\n /** allows providerId to be overridden in the items manager for cases where the same provider needs to provide different content to different stages */\n providerId?: string;\n /** if specified then the current stage's Usage will be compared before allowing any items to be provided */\n stageUsages?: string[];\n /** if specified then the current stage's Id will be compared before allowing any items to be provided */\n stageIds?: string[];\n}\n\n/** Allowed overrides applied to a UiItemsProvider the application that registers a provider to limit when it is allowed to provide items.\n * Note that if an override `providerId` is specified then either `stageIds` or `stageUsages` must be defined to limit when the provider's\n * items are allowed.\n * @public\n */\nexport type UiItemsProviderOverrides =\n | MarkRequired<AllowedUiItemsProviderOverrides, \"providerId\" | \"stageUsages\">\n | MarkRequired<AllowedUiItemsProviderOverrides, \"providerId\" | \"stageIds\">\n | MarkRequired<AllowedUiItemsProviderOverrides, \"stageIds\">\n | MarkRequired<AllowedUiItemsProviderOverrides, \"stageUsages\">\n | MarkRequired<\n AllowedUiItemsProviderOverrides,\n \"providerId\" | \"stageUsages\" | \"stageIds\"\n >;\n\n/** Interface that defines an instance of a UiItemsProvider and its application specified overrides. */\ninterface UiItemProviderEntry {\n provider: UiItemsProvider;\n overrides?: UiItemsProviderOverrides;\n}\n\n/** Controls registering of UiItemsProviders and calls the provider's methods when populating different parts of the User Interface.\n * @public\n */\nexport class UiItemsManager {\n private static _registeredUiItemsProviders: Map<string, UiItemProviderEntry> =\n new Map<string, UiItemProviderEntry>();\n private static _onUiProviderRegisteredEvent =\n new BeUiEvent<UiItemsProviderRegisteredEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n private static _abstractAdapter = createAbstractUiItemsManagerAdapter();\n\n /** For use in unit testing\n * @internal\n */\n public static useAbstractAdapter(useAbstractAdapter: boolean) {\n if (useAbstractAdapter) {\n this._abstractAdapter = createAbstractUiItemsManagerAdapter();\n } else {\n this._abstractAdapter = undefined;\n }\n }\n\n /** For use in unit testing\n * @internal */\n public static clearAllProviders() {\n if (this._abstractAdapter) return this._abstractAdapter.clearAllProviders();\n\n UiItemsManager._registeredUiItemsProviders.clear();\n }\n\n /** Event raised any time a UiProvider is registered or unregistered. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public static get onUiProviderRegisteredEvent(): BeUiEvent<UiItemsProviderRegisteredEventArgs> {\n if (this._abstractAdapter)\n return this._abstractAdapter.onUiProviderRegisteredEvent;\n\n return this._onUiProviderRegisteredEvent;\n }\n\n /** Return number of registered UiProvider. */\n public static get registeredProviderIds(): string[] {\n if (this._abstractAdapter)\n return this._abstractAdapter.registeredProviderIds;\n\n const ids = [...UiItemsManager._registeredUiItemsProviders.keys()];\n return ids;\n }\n\n /** Return true if there is any registered UiProvider. */\n public static get hasRegisteredProviders(): boolean {\n if (this._abstractAdapter)\n return this._abstractAdapter.hasRegisteredProviders;\n\n return this._registeredUiItemsProviders.size > 0;\n }\n\n /**\n * Retrieves a previously loaded UiItemsProvider.\n * @param providerId id of the UiItemsProvider to get\n */\n public static getUiItemsProvider(\n providerId: string\n ): UiItemsProvider | undefined {\n if (this._abstractAdapter)\n return this._abstractAdapter.getUiItemsProvider(providerId);\n\n return UiItemsManager._registeredUiItemsProviders.get(providerId)?.provider;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private static sendRegisteredEvent(args: UiItemsProviderRegisteredEventArgs) {\n UiItemsManager.onUiProviderRegisteredEvent.raiseEvent(args);\n }\n\n /**\n * Registers a UiItemsProvider with the UiItemsManager.\n * @param uiProvider the UI items provider to register.\n * @param overrides the UI items provider to register.\n */\n public static register(\n uiProvider: UiItemsProvider,\n overrides?: UiItemsProviderOverrides\n ): void {\n if (this._abstractAdapter)\n return this._abstractAdapter.register(uiProvider, overrides);\n\n const providerId = overrides?.providerId ?? uiProvider.id;\n\n if (UiItemsManager.getUiItemsProvider(providerId)) {\n Logger.logInfo(\n UiFramework.loggerCategory(\"UiItemsManager\"),\n `UiItemsProvider (${providerId}) is already loaded`\n );\n } else {\n UiItemsManager._registeredUiItemsProviders.set(providerId, {\n provider: uiProvider,\n overrides,\n });\n Logger.logInfo(\n UiFramework.loggerCategory(\"UiItemsManager\"),\n `UiItemsProvider ${uiProvider.id} registered as ${providerId} `\n );\n\n UiItemsManager.sendRegisteredEvent({ providerId });\n }\n }\n\n /** Remove a specific UiItemsProvider from the list of available providers. */\n public static unregister(providerId: string): void {\n if (this._abstractAdapter)\n return this._abstractAdapter.unregister(providerId);\n\n const provider = UiItemsManager.getUiItemsProvider(providerId);\n if (!provider) return;\n\n provider.onUnregister && provider.onUnregister();\n\n UiItemsManager._registeredUiItemsProviders.delete(providerId);\n Logger.logInfo(\n UiFramework.loggerCategory(\"UiItemsManager\"),\n `UiItemsProvider (${providerId}) unloaded`\n );\n\n // trigger a refresh of the ui\n UiItemsManager.sendRegisteredEvent({ providerId });\n }\n\n private static allowItemsFromProvider(\n entry: UiItemProviderEntry,\n stageId?: string,\n stageUsage?: string\n ) {\n const overrides = entry.overrides;\n if (\n undefined !== stageId &&\n overrides?.stageIds &&\n !overrides.stageIds.some((value: string) => value === stageId)\n )\n return false;\n if (\n undefined !== stageUsage &&\n overrides?.stageUsages &&\n !overrides.stageUsages.some((value: string) => value === stageUsage)\n )\n return false;\n return true;\n }\n\n /** Called when the application is populating a toolbar so that any registered UiItemsProvider can add tool buttons that either either execute\n * an action or specify a registered ToolId into toolbar.\n * @param stageId a string identifier of the active stage.\n * @param stageUsage the StageUsage of the active stage.\n * @param usage usage of the toolbar\n * @param orientation orientation of the toolbar\n * @returns an array of error messages. The array will be empty if the load is successful, otherwise it is a list of one or more problems.\n */\n public static getToolbarButtonItems(\n stageId: string,\n stageUsage: string,\n usage: ToolbarUsage,\n orientation: ToolbarOrientation\n ): ReadonlyArray<ProviderItem<ToolbarItem>> {\n if (this._abstractAdapter) {\n return this._abstractAdapter.getToolbarButtonItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n }\n\n const items: ProviderItem<ToolbarItem>[] = [];\n UiItemsManager._registeredUiItemsProviders.forEach((entry) => {\n if (!this.allowItemsFromProvider(entry, stageId, stageUsage)) return;\n\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n const provider = createGetPropertyAdapter(uiProvider);\n const providerItems = provider\n .provideToolbarItems(stageId, stageUsage, usage, orientation)\n .map((item) => ({\n ...item,\n providerId,\n }));\n items.push(...providerItems);\n });\n\n return getUniqueItems(items);\n }\n\n /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields\n * @param stageId a string identifier of the active stage.\n * @param stageUsage the StageUsage of the active stage.\n * @returns An array of CommonStatusBarItem that will be used to create controls for the status bar.\n */\n public static getStatusBarItems(\n stageId: string,\n stageUsage: string\n ): ReadonlyArray<ProviderItem<StatusBarItem>> {\n if (this._abstractAdapter) {\n return this._abstractAdapter.getStatusBarItems(stageId, stageUsage);\n }\n\n const items: ProviderItem<StatusBarItem>[] = [];\n UiItemsManager._registeredUiItemsProviders.forEach((entry) => {\n if (!this.allowItemsFromProvider(entry, stageId, stageUsage)) return;\n\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n const provider = createGetPropertyAdapter(uiProvider);\n\n const providerItems = provider\n .provideStatusBarItems(stageId, stageUsage)\n .map((item) => ({\n ...item,\n providerId,\n }));\n items.push(...providerItems);\n });\n\n return getUniqueItems(items);\n }\n\n /** Called when the application is populating the statusbar so that any registered UiItemsProvider can add status fields\n * @returns An array of BackstageItem that will be used to create controls for the backstage menu.\n */\n public static getBackstageItems(): ReadonlyArray<\n ProviderItem<BackstageItem>\n > {\n if (this._abstractAdapter) {\n return this._abstractAdapter.getBackstageItems();\n }\n\n const items: ProviderItem<BackstageItem>[] = [];\n UiItemsManager._registeredUiItemsProviders.forEach((entry) => {\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n const provider = createGetPropertyAdapter(uiProvider);\n // Note: We do not call this.allowItemsFromProvider here as backstage items\n // should not be considered stage specific.\n const providerItems = provider.provideBackstageItems().map((item) => ({\n ...item,\n providerId,\n }));\n items.push(...providerItems);\n });\n\n return getUniqueItems(items);\n }\n\n /** Called when the application is populating the Stage Panels so that any registered UiItemsProvider can add widgets\n * @param stageId a string identifier of the active stage.\n * @param stageUsage the StageUsage of the active stage.\n * @param location the location within the stage.\n * @param section the section within location.\n * @returns An array of widgets.\n */\n public static getWidgets(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n section?: StagePanelSection\n ): ReadonlyArray<ProviderItem<Widget>> {\n const items: ProviderItem<Widget>[] = [];\n if (this._abstractAdapter) {\n const abstractWidgets = this._abstractAdapter.getWidgets(\n stageId,\n stageUsage,\n location,\n section\n );\n items.push(...abstractWidgets);\n }\n\n UiItemsManager._registeredUiItemsProviders.forEach((entry) => {\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n if (!this.allowItemsFromProvider(entry, stageId, stageUsage)) return;\n\n const provider = createGetPropertyAdapter(uiProvider);\n const providerItems = provider\n .provideWidgets(stageId, stageUsage, location, section)\n .map((item) => ({\n ...item,\n providerId,\n }));\n items.push(...providerItems);\n });\n\n return getUniqueItems(items);\n }\n}\n\nfunction getUniqueItems<T extends { id: string }>(items: readonly T[]) {\n const uniqueItems: T[] = [];\n items.forEach((item) => {\n if (uniqueItems.find((existingItem) => item.id === existingItem.id)) return;\n uniqueItems.push(item);\n });\n return uniqueItems;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UiItemsManager.js","sourceRoot":"","sources":["../../../src/appui-react/ui-items-provider/UiItemsManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module UiProvider\n */\n\nimport type { MarkRequired } from \"@itwin/core-bentley\";\nimport { BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport type { BackstageItem } from \"../backstage/BackstageItem.js\";\nimport type { StagePanelLocation } from \"../stagepanels/StagePanelLocation.js\";\nimport type { StagePanelSection } from \"../stagepanels/StagePanelSection.js\";\nimport type { StatusBarItem } from \"../statusbar/StatusBarItem.js\";\nimport type { ToolbarItem } from \"../toolbar/ToolbarItem.js\";\nimport type {\n ToolbarOrientation,\n ToolbarUsage,\n} from \"../toolbar/ToolbarItem.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport type { Widget } from \"../widgets/Widget.js\";\nimport type { ProviderItem } from \"./ProviderItem.js\";\nimport type { UiItemsProvider } from \"./UiItemsProvider.js\";\nimport {\n createAbstractUiItemsManagerAdapter,\n createGetPropertyAdapter,\n} from \"./AbstractUiItemsManager.js\";\n\n/** UiItemsProvider register event args.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface UiItemsProviderRegisteredEventArgs {\n providerId: string;\n}\n\n/** UiItemsProvider overrides allows the application that registers a provider to limit when it is allowed to provide items\n * @public\n */\nexport interface AllowedUiItemsProviderOverrides {\n /** allows providerId to be overridden in the items manager for cases where the same provider needs to provide different content to different stages */\n providerId?: string;\n /** if specified then the current stage's Usage will be compared before allowing any items to be provided */\n stageUsages?: string[];\n /** if specified then the current stage's Id will be compared before allowing any items to be provided */\n stageIds?: string[];\n}\n\n/** Allowed overrides applied to a UiItemsProvider the application that registers a provider to limit when it is allowed to provide items.\n * Note that if an override `providerId` is specified then either `stageIds` or `stageUsages` must be defined to limit when the provider's\n * items are allowed.\n * @public\n */\nexport type UiItemsProviderOverrides =\n | MarkRequired<AllowedUiItemsProviderOverrides, \"providerId\" | \"stageUsages\">\n | MarkRequired<AllowedUiItemsProviderOverrides, \"providerId\" | \"stageIds\">\n | MarkRequired<AllowedUiItemsProviderOverrides, \"stageIds\">\n | MarkRequired<AllowedUiItemsProviderOverrides, \"stageUsages\">\n | MarkRequired<\n AllowedUiItemsProviderOverrides,\n \"providerId\" | \"stageUsages\" | \"stageIds\"\n >;\n\n/** Interface that defines an instance of a UiItemsProvider and its application specified overrides. */\ninterface UiItemProviderEntry {\n provider: UiItemsProvider;\n overrides?: UiItemsProviderOverrides;\n}\n\n/** Controls registering of UiItemsProviders and calls the provider's methods when populating different parts of the User Interface.\n * @public\n */\nexport class UiItemsManager {\n private static _registeredUiItemsProviders: Map<string, UiItemProviderEntry> =\n new Map<string, UiItemProviderEntry>();\n private static _onUiProviderRegisteredEvent =\n new BeUiEvent<UiItemsProviderRegisteredEventArgs>(); // eslint-disable-line @typescript-eslint/no-deprecated\n private static _abstractAdapter = createAbstractUiItemsManagerAdapter();\n\n /** For use in unit testing\n * @internal\n */\n public static useAbstractAdapter(useAbstractAdapter: boolean) {\n if (useAbstractAdapter) {\n this._abstractAdapter = createAbstractUiItemsManagerAdapter();\n } else {\n this._abstractAdapter = undefined;\n }\n }\n\n /** For use in unit testing\n * @internal */\n public static clearAllProviders() {\n if (this._abstractAdapter) {\n this._abstractAdapter.clearAllProviders();\n }\n\n UiItemsManager._registeredUiItemsProviders.clear();\n }\n\n /** Event raised any time a UiProvider is registered or unregistered. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public static get onUiProviderRegisteredEvent(): BeUiEvent<UiItemsProviderRegisteredEventArgs> {\n if (this._abstractAdapter)\n return this._abstractAdapter.onUiProviderRegisteredEvent;\n\n return this._onUiProviderRegisteredEvent;\n }\n\n /** Return number of registered UiProvider. */\n public static get registeredProviderIds(): string[] {\n if (this._abstractAdapter)\n return this._abstractAdapter.registeredProviderIds;\n\n const ids = [...UiItemsManager._registeredUiItemsProviders.keys()];\n return ids;\n }\n\n /** Return true if there is any registered UiProvider. */\n public static get hasRegisteredProviders(): boolean {\n if (this._abstractAdapter)\n return this._abstractAdapter.hasRegisteredProviders;\n\n return this._registeredUiItemsProviders.size > 0;\n }\n\n /**\n * Retrieves a previously loaded UiItemsProvider.\n * @param providerId id of the UiItemsProvider to get\n */\n public static getUiItemsProvider(\n providerId: string\n ): UiItemsProvider | undefined {\n if (this._abstractAdapter)\n return this._abstractAdapter.getUiItemsProvider(providerId);\n\n return UiItemsManager._registeredUiItemsProviders.get(providerId)?.provider;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private static sendRegisteredEvent(args: UiItemsProviderRegisteredEventArgs) {\n UiItemsManager.onUiProviderRegisteredEvent.raiseEvent(args);\n }\n\n /**\n * Registers an {@link UiItemsProvider}.\n * Optional overrides can be specified to limit when the provider is allowed to provide items.\n */\n public static register(\n uiProvider: UiItemsProvider,\n overrides?: UiItemsProviderOverrides\n ): void {\n const providerId = overrides?.providerId ?? uiProvider.id;\n if (UiItemsManager.getUiItemsProvider(providerId)) {\n Logger.logInfo(\n UiFramework.loggerCategory(\"UiItemsManager\"),\n `UiItemsProvider '${providerId}' is already registered`\n );\n return;\n }\n\n // Using the same structure to support layout agnostic methods i.e. `getToolbarItems`.\n UiItemsManager._registeredUiItemsProviders.set(providerId, {\n provider: uiProvider,\n overrides,\n });\n\n if (this._abstractAdapter) {\n return this._abstractAdapter.register(uiProvider, overrides);\n }\n\n Logger.logInfo(\n UiFramework.loggerCategory(\"UiItemsManager\"),\n `UiItemsProvider '${uiProvider.id}' registered as '${providerId}'`\n );\n UiItemsManager.sendRegisteredEvent({ providerId });\n }\n\n /** Unregisters a specific {@link UiItemsProvider}. */\n public static unregister(providerId: string): void {\n const provider = UiItemsManager.getUiItemsProvider(providerId);\n if (!provider) return;\n\n UiItemsManager._registeredUiItemsProviders.delete(providerId);\n if (this._abstractAdapter) {\n this._abstractAdapter.unregister(providerId);\n }\n\n provider.onUnregister?.();\n\n Logger.logInfo(\n UiFramework.loggerCategory(\"UiItemsManager\"),\n `UiItemsProvider '${providerId}' unregistered`\n );\n\n // trigger a refresh of the ui\n UiItemsManager.sendRegisteredEvent({ providerId });\n }\n\n private static allowItemsFromProvider(\n entry: UiItemProviderEntry,\n stageId?: string,\n stageUsage?: string\n ) {\n const overrides = entry.overrides;\n if (\n undefined !== stageId &&\n overrides?.stageIds &&\n !overrides.stageIds.some((value: string) => value === stageId)\n )\n return false;\n if (\n undefined !== stageUsage &&\n overrides?.stageUsages &&\n !overrides.stageUsages.some((value: string) => value === stageUsage)\n )\n return false;\n return true;\n }\n\n /** Returns registered toolbar items configured for the standard layout that match the specified frontstage id and usage.\n * @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.\n * @note Items returned by {@link UiItemsProvider.provideToolbarItems} are returned by this method.\n */\n public static getToolbarButtonItems(\n stageId: string,\n stageUsage: string,\n usage: ToolbarUsage,\n orientation: ToolbarOrientation\n ): ReadonlyArray<ProviderItem<ToolbarItem>> {\n if (this._abstractAdapter) {\n return this._abstractAdapter.getToolbarButtonItems(\n stageId,\n stageUsage,\n usage,\n orientation\n );\n }\n\n const items: ProviderItem<ToolbarItem>[] = [];\n UiItemsManager._registeredUiItemsProviders.forEach((entry) => {\n if (!this.allowItemsFromProvider(entry, stageId, stageUsage)) return;\n\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n const provider = createGetPropertyAdapter(uiProvider);\n const providerItems = provider\n .provideToolbarItems(stageId, stageUsage, usage, orientation)\n .map((item) => ({\n ...item,\n providerId,\n }));\n items.push(...providerItems);\n });\n\n return getUniqueItems(items);\n }\n\n /** Returns registered toolbar items that match the specified frontstage id and usage.\n * @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are not returned by this method.\n * @note Items returned by {@link UiItemsProvider.provideToolbarItems} are not returned by this method.\n */\n public static getToolbarItems(\n stageId: string,\n stageUsage: string\n ): ReadonlyArray<ProviderItem<ToolbarItem>> {\n const items: ProviderItem<ToolbarItem>[] = [];\n // Not using `AbstractUiItemsManager`, since there's no way to check if provider items are allowed.\n UiItemsManager._registeredUiItemsProviders.forEach((entry) => {\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n if (!this.allowItemsFromProvider(entry, stageId, stageUsage)) return;\n\n const providerItems =\n uiProvider.getToolbarItems?.().map((item) => ({\n ...item,\n providerId,\n })) ?? [];\n items.push(...providerItems);\n });\n\n return getUniqueItems(items);\n }\n\n /** Returns registered status bar items that match the specified frontstage id and usage.\n * @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.\n * @note Items returned by {@link UiItemsProvider.provideStatusBarItems} are returned by this method.\n */\n public static getStatusBarItems(\n stageId: string,\n stageUsage: string\n ): ReadonlyArray<ProviderItem<StatusBarItem>> {\n if (this._abstractAdapter) {\n return this._abstractAdapter.getStatusBarItems(stageId, stageUsage);\n }\n\n const items: ProviderItem<StatusBarItem>[] = [];\n UiItemsManager._registeredUiItemsProviders.forEach((entry) => {\n if (!this.allowItemsFromProvider(entry, stageId, stageUsage)) return;\n\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n const provider = createGetPropertyAdapter(uiProvider);\n\n const providerItems = provider\n .provideStatusBarItems(stageId, stageUsage)\n .map((item) => ({\n ...item,\n providerId,\n }));\n items.push(...providerItems);\n });\n\n return getUniqueItems(items);\n }\n\n /** Returns registered backstage items.\n * @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.\n * @note Items returned by {@link UiItemsProvider.provideBackstageItems} are returned by this method.\n */\n public static getBackstageItems(): ReadonlyArray<\n ProviderItem<BackstageItem>\n > {\n if (this._abstractAdapter) {\n return this._abstractAdapter.getBackstageItems();\n }\n\n const items: ProviderItem<BackstageItem>[] = [];\n UiItemsManager._registeredUiItemsProviders.forEach((entry) => {\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n const provider = createGetPropertyAdapter(uiProvider);\n // Note: We do not call this.allowItemsFromProvider here as backstage items\n // should not be considered stage specific.\n const providerItems = provider.provideBackstageItems().map((item) => ({\n ...item,\n providerId,\n }));\n items.push(...providerItems);\n });\n\n return getUniqueItems(items);\n }\n\n /** Returns registered widgets that match the specified frontstage id and usage.\n * @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are not returned by this method.\n * @note Items returned by {@link UiItemsProvider.provideWidgets} are not returned by this method.\n */\n public static getWidgets(\n stageId: string,\n stageUsage: string\n ): ReadonlyArray<ProviderItem<Widget>>;\n /** Returns registered widgets configured for the standard layout that match the specified frontstage id and usage.\n * @note Items registered in `UiItemsManager` of `@itwin/appui-abstract` are returned by this method.\n * @note Items returned by {@link UiItemsProvider.provideWidgets} are returned by this method.\n */\n public static getWidgets(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n section?: StagePanelSection\n ): ReadonlyArray<ProviderItem<Widget>>;\n public static getWidgets(\n stageId: string,\n stageUsage: string,\n location?: StagePanelLocation,\n section?: StagePanelSection\n ): ReadonlyArray<ProviderItem<Widget>> {\n const items: ProviderItem<Widget>[] = [];\n\n // If location is not specified, return all registered widgets.\n if (location === undefined) {\n // Not using `AbstractUiItemsManager`, since there's no way to check if provider items are allowed.\n UiItemsManager._registeredUiItemsProviders.forEach((entry) => {\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n if (!this.allowItemsFromProvider(entry, stageId, stageUsage)) return;\n\n const providerItems =\n uiProvider.getWidgets?.().map((item) => ({\n ...item,\n providerId,\n })) ?? [];\n items.push(...providerItems);\n });\n return getUniqueItems(items);\n }\n\n if (this._abstractAdapter) {\n const abstractWidgets = this._abstractAdapter.getWidgets(\n stageId,\n stageUsage,\n location,\n section\n );\n items.push(...abstractWidgets);\n }\n\n UiItemsManager._registeredUiItemsProviders.forEach((entry) => {\n const uiProvider = entry.provider;\n const providerId = entry.overrides?.providerId ?? uiProvider.id;\n if (!this.allowItemsFromProvider(entry, stageId, stageUsage)) return;\n\n const provider = createGetPropertyAdapter(uiProvider);\n const providerItems = provider\n .provideWidgets(stageId, stageUsage, location, section)\n .map((item) => ({\n ...item,\n providerId,\n }));\n items.push(...providerItems);\n });\n\n return getUniqueItems(items);\n }\n}\n\nfunction getUniqueItems<T extends { id: string }>(items: readonly T[]) {\n const uniqueItems: T[] = [];\n items.forEach((item) => {\n if (uniqueItems.find((existingItem) => item.id === existingItem.id)) return;\n uniqueItems.push(item);\n });\n return uniqueItems;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAMH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAMpE,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAStE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAKxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIzD,OAAO,mBAAmB,CAAC;AAwB3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AA4CpE,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,uDAiBtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,QAYjE;AAYD,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,oBAoB/D;AAED,gBAAgB;AAChB,wBAAgB,sBAAsB,6BAerC;AAMD,UAAU,gCAAgC;IACxC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,gBAAgB;AAChB,wBAAgB,2BAA2B,CAAC,EAC1C,aAAa,GACd,EAAE,gCAAgC,qBAiElC;AAED,gBAAgB;AAChB,wBAAgB,SAAS,IAAI,cAAc,
|
|
1
|
+
{"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -187,15 +187,10 @@ export function ActiveFrontstageDefProvider({ frontstageDef, }) {
|
|
|
187
187
|
export function useLabels() {
|
|
188
188
|
const { translate } = useTranslation();
|
|
189
189
|
return {
|
|
190
|
-
dockToolSettingsTitle: translate("widget.tooltips.dockToolSettings"),
|
|
191
190
|
moreWidgetsTitle: translate("widget.tooltips.moreWidgets"),
|
|
192
191
|
moreToolSettingsTitle: translate("widget.tooltips.moreToolSettings"),
|
|
193
|
-
pinPanelTitle: translate("widget.tooltips.pinPanel"),
|
|
194
192
|
resizeGripTitle: translate("widget.tooltips.resizeGrip"),
|
|
195
|
-
sendWidgetHomeTitle: translate("widget.tooltips.sendHome"),
|
|
196
193
|
toolSettingsHandleTitle: translate("widget.tooltips.toolSettingsHandle"),
|
|
197
|
-
unpinPanelTitle: translate("widget.tooltips.unpinPanel"),
|
|
198
|
-
popoutActiveTab: translate("widget.tooltips.popoutActiveTab"),
|
|
199
194
|
};
|
|
200
195
|
}
|
|
201
196
|
function toTabArgs(widget) {
|