@itwin/appui-react 3.7.0-dev.1 → 3.7.0-dev.3
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 +21 -1
- package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js +2 -4
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts +2 -0
- package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.js +2 -1
- package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.scss +7 -0
- package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +3 -0
- package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/cjs/appui-react/pickers/ViewSelector.js +23 -7
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js +2 -0
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js +2 -4
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.d.ts +2 -0
- package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.js +3 -2
- package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.scss +7 -0
- package/lib/esm/appui-react/pickers/ViewSelector.d.ts +3 -0
- package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/esm/appui-react/pickers/ViewSelector.js +23 -7
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.d.ts.map +1 -1
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js +2 -0
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/package.json +32 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSelector.js","sourceRoot":"","sources":["../../../../src/appui-react/pickers/ViewSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Picker\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Id64String, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, ViewState } from \"@itwin/core-frontend\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { SupportsViewSelectorChange } from \"../content/ContentControl\";\r\nimport { connectIModelConnection } from \"../redux/connectIModel\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\nimport { ListItem, ListItemType, ListPicker } from \"./ListPicker\";\r\n\r\n// cSpell:ignore Spatials\r\n\r\n/** [[ViewSelectorChangedEvent]] Args interface.\r\n * @beta\r\n */\r\nexport interface ViewSelectorChangedEventArgs {\r\n iModelConnection: IModelConnection;\r\n viewDefinitionId: Id64String;\r\n viewState: ViewState;\r\n name: string;\r\n}\r\n\r\n/** ViewSelector Changed Event class.\r\n * @beta\r\n */\r\nexport class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> { }\r\n\r\n/** Properties for the [[ViewSelector]] component\r\n * @beta\r\n */\r\nexport interface ViewSelectorProps {\r\n imodel?: IModelConnection;\r\n listenForShowUpdates?: boolean;\r\n\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** State for the [[ViewSelector]] component\r\n * @beta\r\n */\r\ninterface ViewSelectorState {\r\n items: ListItem[];\r\n title: string;\r\n initialized: boolean;\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** Default properties of [[ViewSelector]] component.\r\n * @beta\r\n */\r\nexport type ViewSelectorDefaultProps = Pick<ViewSelectorProps, \"showSpatials\" | \"showDrawings\" | \"showSheets\" | \"showUnknown\">;\r\n\r\n/** ViewSelector Show Update Event Args interface.\r\n */\r\ninterface ViewSelectorShowUpdateEventArgs {\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** ViewSelector Show Update Event class.\r\n */\r\nclass ViewSelectorShowUpdateEvent extends UiEvent<ViewSelectorShowUpdateEventArgs> { }\r\n\r\n/** View Selector React component\r\n * @beta\r\n */\r\nexport class ViewSelector extends React.Component<ViewSelectorProps, ViewSelectorState> {\r\n\r\n private static readonly _onViewSelectorShowUpdateEvent = new ViewSelectorShowUpdateEvent();\r\n private _removeShowUpdateListener?: () => void;\r\n private _isMounted = false;\r\n\r\n public static readonly defaultProps: ViewSelectorDefaultProps = {\r\n showSpatials: true,\r\n showDrawings: true,\r\n showSheets: true,\r\n showUnknown: true,\r\n };\r\n\r\n /** Gets the [[ViewSelectorChangedEvent]] */\r\n public static readonly onViewSelectorChangedEvent = new ViewSelectorChangedEvent();\r\n\r\n /** Updates the ViewSelector show settings.\r\n */\r\n public static updateShowSettings(showSpatials: boolean, showDrawings: boolean, showSheets: boolean, showUnknown: boolean): void {\r\n ViewSelector._onViewSelectorShowUpdateEvent.emit({ showSpatials, showDrawings, showSheets, showUnknown });\r\n }\r\n\r\n /** Creates a ViewSelector */\r\n constructor(props: ViewSelectorProps) {\r\n super(props);\r\n\r\n this.state = {\r\n items: new Array<ListItem>(),\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: false,\r\n showSpatials: props.showSpatials,\r\n showDrawings: props.showDrawings,\r\n showSheets: props.showSheets,\r\n showUnknown: props.showUnknown,\r\n };\r\n }\r\n\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n if (this.props.listenForShowUpdates)\r\n this._removeShowUpdateListener = ViewSelector._onViewSelectorShowUpdateEvent.addListener(this._handleViewSelectorShowUpdateEvent);\r\n\r\n await this.loadViews();\r\n }\r\n\r\n public override async componentDidUpdate(prevProps: ViewSelectorProps) {\r\n if (this.props.imodel !== prevProps.imodel) {\r\n await this.loadViews();\r\n }\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n // istanbul ignore else\r\n if (this._removeShowUpdateListener)\r\n this._removeShowUpdateListener();\r\n }\r\n\r\n private _handleViewSelectorShowUpdateEvent = (args: ViewSelectorShowUpdateEventArgs): void => {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState(args, async () => this.loadViews());\r\n };\r\n\r\n private setStateContainers(views3d: ListItem[], views2d: ListItem[], sheets: ListItem[], unknown?: ListItem[]) {\r\n const views3dContainer: ListItem = {\r\n key: \"views3dContainer\",\r\n name: UiFramework.translate(\"viewTypes.spatialViews\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views3d,\r\n };\r\n\r\n const views2dContainer: ListItem = {\r\n key: \"views2dContainer\",\r\n name: UiFramework.translate(\"viewTypes.drawings\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views2d,\r\n };\r\n\r\n const sheetContainer: ListItem = {\r\n key: \"sheetContainer\",\r\n name: UiFramework.translate(\"viewTypes.sheets\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: sheets,\r\n };\r\n\r\n const containers = [views3dContainer, views2dContainer, sheetContainer];\r\n\r\n // istanbul ignore if\r\n if (unknown && unknown.length > 0) {\r\n // This should never show, but just in case we missed a type of view state\r\n const unknownContainer: ListItem = {\r\n key: \"unknownContainer\",\r\n name: UiFramework.translate(\"viewTypes.others\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: unknown,\r\n };\r\n\r\n if (unknown.length !== 0)\r\n containers.push(unknownContainer);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState({\r\n items: containers,\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: true,\r\n });\r\n }\r\n /**\r\n * Query the views and set the initial state with the iModel's views.\r\n */\r\n public async loadViews(): Promise<void> {\r\n // Query views and add them to state\r\n const views3d: ListItem[] = [];\r\n const views2d: ListItem[] = [];\r\n const sheets: ListItem[] = [];\r\n const unknown: ListItem[] = [];\r\n\r\n // istanbul ignore if\r\n if (this.props.imodel && this.props.imodel.views.getViewList) {\r\n const query = { wantPrivate: false };\r\n const specs = await this.props.imodel.views.getViewList(query);\r\n\r\n specs.forEach((spec: IModelConnection.ViewSpec) => {\r\n const viewItem: ListItem = {\r\n key: spec.id,\r\n name: spec.name,\r\n enabled: false,\r\n type: ListItemType.Item,\r\n };\r\n\r\n const className = ViewUtilities.getBisBaseClass(spec.class);\r\n\r\n if (ViewUtilities.isSpatial(className) && this.state.showSpatials)\r\n views3d.push(viewItem);\r\n else if (ViewUtilities.isDrawing(className) && this.state.showDrawings)\r\n views2d.push(viewItem);\r\n else if (ViewUtilities.isSheet(className) && this.state.showSheets)\r\n sheets.push(viewItem);\r\n else if (this.state.showUnknown)\r\n unknown.push(viewItem);\r\n });\r\n }\r\n\r\n this.setStateContainers(views3d, views2d, sheets, unknown);\r\n }\r\n\r\n /**\r\n * Update state of the entries in the widget.\r\n * @param viewId Identifier for the relevant view\r\n */\r\n // istanbul ignore next\r\n public async updateState(viewId?: any): Promise<void> {\r\n // Wait for initialization finished\r\n if (!this.state.initialized)\r\n return;\r\n\r\n // Query views and add them to state\r\n const views3d: ListItem[] = this.state.items[0].children!;\r\n const views2d: ListItem[] = this.state.items[1].children!;\r\n const sheets: ListItem[] = this.state.items[2].children!;\r\n const unknown: ListItem[] = this.state.items.length > 3 ? this.state.items[3].children! : [];\r\n\r\n const updateChildren = (item: ListItem) => {\r\n if (item.key === viewId)\r\n return { ...item, enabled: true };\r\n else\r\n return { ...item, enabled: false };\r\n };\r\n\r\n this.setStateContainers(views3d.map(updateChildren), views2d.map(updateChildren), sheets.map(updateChildren), unknown.map(updateChildren));\r\n }\r\n\r\n // enable/disable the models\r\n // istanbul ignore next\r\n private _setEnabled = async (item: ListItem, _enabled: boolean) => {\r\n const activeContentControl = UiFramework.content.getActiveContentControl() as unknown as SupportsViewSelectorChange;\r\n if (!activeContentControl || !activeContentControl.supportsViewSelectorChange) {\r\n Logger.logError(UiFramework.loggerCategory(this), `No active ContentControl for ViewSelector change`);\r\n return;\r\n }\r\n\r\n // Enable the item temporarily to let user see that their click was registered\r\n // while we query for view state and change the current view which may take a bit\r\n if (_enabled && item.type !== ListItemType.Container) {\r\n // This itemMapper simply looks through all the list items and their nested children and enables the one\r\n // that we have registered to enable\r\n // Also disable all other items\r\n const itemMapper: (tempItem: ListItem) => ListItem = (tempItem: ListItem) => {\r\n if (tempItem.type === ListItemType.Container) {\r\n return { ...tempItem, children: tempItem.children!.map(itemMapper) };\r\n } else if (tempItem.key === item.key) {\r\n return { ...tempItem, enabled: true };\r\n } else {\r\n return { ...tempItem, enabled: false };\r\n }\r\n };\r\n\r\n // Create the new array with the current item enabled\r\n const itemsWithEnabled = this.state.items.map(itemMapper);\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n // Update the state so that we show the user it was enabled while we work in the background\r\n this.setState({ items: itemsWithEnabled });\r\n }\r\n\r\n // Load the view state using the viewSpec's ID\r\n const viewState = await this.props.imodel!.views.load(item.key);\r\n\r\n // Let activeContentControl process the ViewSelector change\r\n await activeContentControl.processViewSelectorChange(this.props.imodel!, item.key, viewState, item.name!);\r\n\r\n // Emit a change event\r\n ViewSelector.onViewSelectorChangedEvent.emit({\r\n iModelConnection: this.props.imodel!,\r\n viewDefinitionId: item.key,\r\n viewState,\r\n name: item.name!,\r\n });\r\n\r\n // Set state to show enabled the view that got selected\r\n this.updateState(item.key); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n // Hook on the category selector being expanded so that we may initialize if needed\r\n // istanbul ignore next\r\n private _onExpanded = (expand: boolean) => {\r\n if (expand)\r\n this.updateState(IModelApp.viewManager.selectedView ? IModelApp.viewManager.selectedView.view.id : undefined); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n /**\r\n * Renders ViewSelector component\r\n */\r\n public override render() {\r\n if (!this.state.initialized)\r\n return null;\r\n\r\n const { imodel, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n return (\r\n <ListPicker\r\n {...props}\r\n title={this.state.title}\r\n setEnabled={this._setEnabled}\r\n items={this.state.items}\r\n iconSpec={\"icon-saved-view\"}\r\n onExpanded={this._onExpanded}\r\n />\r\n );\r\n }\r\n}\r\n\r\n/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\r\n * @beta\r\n */\r\nexport const IModelConnectedViewSelector = connectIModelConnection(null, null)(ViewSelector); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
|
|
1
|
+
{"version":3,"file":"ViewSelector.js","sourceRoot":"","sources":["../../../../src/appui-react/pickers/ViewSelector.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAc,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAA+B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAY,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAclC;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,OAAqC;CAAI;AA4CvF;GACG;AACH,MAAM,2BAA4B,SAAQ,OAAwC;CAAI;AAEtF;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK,CAAC,SAA+C;IAuBrF,6BAA6B;IAC7B,YAAY,KAAwB;QAClC,KAAK,CAAC,KAAK,CAAC,CAAC;QArBP,eAAU,GAAG,KAAK,CAAC;QACnB,iBAAY,GAAG,EAAE,CAAC;QAuDlB,uCAAkC,GAAG,CAAC,IAAqC,EAAQ,EAAE;YAC3F,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,UAAU;gBAClB,OAAO;YAET,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC;QAmIF,4BAA4B;QAC5B,uBAAuB;QACf,gBAAW,GAAG,KAAK,EAAE,IAAc,EAAE,QAAiB,EAAE,EAAE;YAChE,MAAM,oBAAoB,GAAG,WAAW,CAAC,OAAO,CAAC,uBAAuB,EAA2C,CAAC;YACpH,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,0BAA0B,EAAE;gBAC7E,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,kDAAkD,CAAC,CAAC;gBACtG,OAAO;aACR;YAED,8EAA8E;YAC9E,iFAAiF;YACjF,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,EAAE;gBACpD,wGAAwG;gBACxG,oCAAoC;gBACpC,+BAA+B;gBAC/B,MAAM,UAAU,GAAqC,CAAC,QAAkB,EAAE,EAAE;oBAC1E,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,EAAE;wBAC5C,OAAO,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;qBACtE;yBAAM,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE;wBACpC,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qBACvC;yBAAM;wBACL,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;qBACxC;gBACH,CAAC,CAAC;gBAEF,qDAAqD;gBACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAE1D,uBAAuB;gBACvB,IAAI,CAAC,IAAI,CAAC,UAAU;oBAClB,OAAO;gBAET,2FAA2F;gBAC3F,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;aAC5C;YAED,8CAA8C;YAC9C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEhE,2DAA2D;YAC3D,MAAM,oBAAoB,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,IAAK,CAAC,CAAC;YAE1G,sBAAsB;YACtB,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAO;gBACpC,gBAAgB,EAAE,IAAI,CAAC,GAAG;gBAC1B,SAAS;gBACT,IAAI,EAAE,IAAI,CAAC,IAAK;aACjB,CAAC,CAAC;YAEH,uDAAuD;YACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,8DAA8D;QAC5F,CAAC,CAAC;QAEF,mFAAmF;QACnF,uBAAuB;QACf,gBAAW,GAAG,CAAC,MAAe,EAAE,EAAE;YACxC,IAAI,MAAM;gBACR,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8DAA8D;QACjL,CAAC,CAAC;QArOA,IAAI,CAAC,KAAK,GAAG;YACX,KAAK,EAAE,IAAI,KAAK,EAAY;YAC5B,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAC/C,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAU,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;SACrD,CAAC;IACJ,CAAC;IApBD;OACG;IACI,MAAM,CAAC,kBAAkB,CAAC,YAAqB,EAAE,YAAqB,EAAE,UAAmB,EAAE,WAAoB;QACtH,YAAY,CAAC,8BAA8B,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5G,CAAC;IAkBe,KAAK,CAAC,iBAAiB;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB;YACjC,IAAI,CAAC,yBAAyB,GAAG,YAAY,CAAC,8BAA8B,CAAC,WAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAEpI,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACzB,CAAC;IAEe,KAAK,CAAC,kBAAkB,CAAC,SAA4B;QACnE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE;YAC1C,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;SACxB;IACH,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,uBAAuB;QACvB,IAAI,IAAI,CAAC,yBAAyB;YAChC,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACrC,CAAC;IAUO,kBAAkB,CAAC,OAAmB,EAAE,OAAmB,EAAE,MAAkB,EAAE,OAAoB,EAC3G,eAA4B,EAAE,eAA4B,EAAE,cAA2B,EAAE,eAA4B;QACrH,MAAM,gBAAgB,GAAa;YACjC,GAAG,EAAE,kBAAkB;YACvB,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,wBAAwB,CAAC;YACrD,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,YAAY,CAAC,SAAS;YAC5B,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO;SACtD,CAAC;QAEF,MAAM,gBAAgB,GAAa;YACjC,GAAG,EAAE,kBAAkB;YACvB,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;YACjD,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,YAAY,CAAC,SAAS;YAC5B,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO;SACtD,CAAC;QAEF,MAAM,cAAc,GAAa;YAC/B,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC;YAC/C,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,YAAY,CAAC,SAAS;YAC5B,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM;SACnD,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAExE,qBAAqB;QACrB,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,0EAA0E;YAC1E,MAAM,gBAAgB,GAAa;gBACjC,GAAG,EAAE,kBAAkB;gBACvB,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC;gBAC/C,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,YAAY,CAAC,SAAS;gBAC5B,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO;aACtD,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBACtB,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACrC;QAED,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,OAAO;QAET,IAAI,CAAC,QAAQ,CAAC;YACZ,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAC/C,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IACD;;OAEG;IACI,KAAK,CAAC,SAAS;QACpB,oCAAoC;QACpC,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,IAAI,eAAuC,CAAC;QAC5C,IAAI,eAAuC,CAAC;QAC5C,IAAI,cAAsC,CAAC;QAC3C,IAAI,eAAuC,CAAC;QAE5C,qBAAqB;QACrB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;YAC5D,MAAM,KAAK,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAE/D,KAAK,CAAC,OAAO,CAAC,CAAC,IAA+B,EAAE,EAAE;gBAChD,MAAM,QAAQ,GAAa;oBACzB,GAAG,EAAE,IAAI,CAAC,EAAE;oBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,YAAY,CAAC,IAAI;iBACxB,CAAC;gBAEF,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE5D,IAAI,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY;oBAC/D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACpB,IAAI,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY;oBACpE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACpB,IAAI,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU;oBAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACnB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW;oBAC7B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,IAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAC;gBAC9B,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;gBAC/G,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;gBAC/G,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;gBAC7G,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,IAAI,0CAAG,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;aACjH;SACF;QAED,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;IAChI,CAAC;IAED;;;OAGG;IACH,uBAAuB;IAChB,KAAK,CAAC,WAAW,CAAC,MAAY;QACnC,mCAAmC;QACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;YACzB,OAAO;QAET,oCAAoC;QACpC,MAAM,OAAO,GAAe,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC;QAC1D,MAAM,OAAO,GAAe,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC;QAC1D,MAAM,MAAM,GAAe,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC;QACzD,MAAM,OAAO,GAAe,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7F,MAAM,cAAc,GAAG,CAAC,IAAc,EAAE,EAAE;YACxC,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM;gBACrB,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;gBAElC,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IAC7I,CAAC;IA+DD;;OAEG;IACa,MAAM;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;YACzB,OAAO,IAAI,CAAC;QAEd,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,wDAAwD;QAEjG,OAAO,CACL,oBAAC,UAAU,OACL,KAAK,EACT,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,mBAAmB,EAAE,QAAQ,CAAC,CAAC,MAAc,EAAE,EAAE;gBAC/C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;gBAC3B,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,CAAC,EAAE,GAAG,CAAC,GACP,CACH,CAAC;IACJ,CAAC;;AAxRuB,2CAA8B,GAAG,IAAI,2BAA2B,EAAE,CAAC;AAKpE,yBAAY,GAA6B;IAC9D,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,4CAA4C;AACrB,uCAA0B,GAAG,IAAI,wBAAwB,EAAE,CAAC;AA8QrF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,2DAA2D","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Picker\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { Id64String, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelApp, IModelConnection, ViewState } from \"@itwin/core-frontend\";\r\nimport { UiEvent } from \"@itwin/appui-abstract\";\r\nimport { SupportsViewSelectorChange } from \"../content/ContentControl\";\r\nimport { connectIModelConnection } from \"../redux/connectIModel\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { ViewUtilities } from \"../utils/ViewUtilities\";\r\nimport { ListItem, ListItemType, ListPicker } from \"./ListPicker\";\r\nimport { debounce } from \"lodash\";\r\n\r\n// cSpell:ignore Spatials\r\n\r\n/** [[ViewSelectorChangedEvent]] Args interface.\r\n * @beta\r\n */\r\nexport interface ViewSelectorChangedEventArgs {\r\n iModelConnection: IModelConnection;\r\n viewDefinitionId: Id64String;\r\n viewState: ViewState;\r\n name: string;\r\n}\r\n\r\n/** ViewSelector Changed Event class.\r\n * @beta\r\n */\r\nexport class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> { }\r\n\r\n/** Properties for the [[ViewSelector]] component\r\n * @beta\r\n */\r\nexport interface ViewSelectorProps {\r\n imodel?: IModelConnection;\r\n listenForShowUpdates?: boolean;\r\n\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n searchBox?: boolean;\r\n}\r\n\r\n/** State for the [[ViewSelector]] component\r\n * @beta\r\n */\r\ninterface ViewSelectorState {\r\n items: ListItem[];\r\n title: string;\r\n initialized: boolean;\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n searchBox: boolean;\r\n}\r\n\r\n/** Default properties of [[ViewSelector]] component.\r\n * @beta\r\n */\r\nexport type ViewSelectorDefaultProps = Pick<ViewSelectorProps, \"showSpatials\" | \"showDrawings\" | \"showSheets\" | \"showUnknown\">;\r\n\r\n/** ViewSelector Show Update Event Args interface.\r\n */\r\ninterface ViewSelectorShowUpdateEventArgs {\r\n showSpatials: boolean;\r\n showDrawings: boolean;\r\n showSheets: boolean;\r\n showUnknown: boolean;\r\n}\r\n\r\n/** ViewSelector Show Update Event class.\r\n */\r\nclass ViewSelectorShowUpdateEvent extends UiEvent<ViewSelectorShowUpdateEventArgs> { }\r\n\r\n/** View Selector React component\r\n * @beta\r\n */\r\nexport class ViewSelector extends React.Component<ViewSelectorProps, ViewSelectorState> {\r\n\r\n private static readonly _onViewSelectorShowUpdateEvent = new ViewSelectorShowUpdateEvent();\r\n private _removeShowUpdateListener?: () => void;\r\n private _isMounted = false;\r\n private _searchInput = \"\";\r\n\r\n public static readonly defaultProps: ViewSelectorDefaultProps = {\r\n showSpatials: true,\r\n showDrawings: true,\r\n showSheets: true,\r\n showUnknown: true,\r\n };\r\n\r\n /** Gets the [[ViewSelectorChangedEvent]] */\r\n public static readonly onViewSelectorChangedEvent = new ViewSelectorChangedEvent();\r\n\r\n /** Updates the ViewSelector show settings.\r\n */\r\n public static updateShowSettings(showSpatials: boolean, showDrawings: boolean, showSheets: boolean, showUnknown: boolean): void {\r\n ViewSelector._onViewSelectorShowUpdateEvent.emit({ showSpatials, showDrawings, showSheets, showUnknown });\r\n }\r\n\r\n /** Creates a ViewSelector */\r\n constructor(props: ViewSelectorProps) {\r\n super(props);\r\n\r\n this.state = {\r\n items: new Array<ListItem>(),\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: false,\r\n showSpatials: props.showSpatials,\r\n showDrawings: props.showDrawings,\r\n showSheets: props.showSheets,\r\n showUnknown: props.showUnknown,\r\n searchBox: props.searchBox! ? props.searchBox : true,\r\n };\r\n }\r\n\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n if (this.props.listenForShowUpdates)\r\n this._removeShowUpdateListener = ViewSelector._onViewSelectorShowUpdateEvent.addListener(this._handleViewSelectorShowUpdateEvent);\r\n\r\n await this.loadViews();\r\n }\r\n\r\n public override async componentDidUpdate(prevProps: ViewSelectorProps) {\r\n if (this.props.imodel !== prevProps.imodel) {\r\n await this.loadViews();\r\n }\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n // istanbul ignore else\r\n if (this._removeShowUpdateListener)\r\n this._removeShowUpdateListener();\r\n }\r\n\r\n private _handleViewSelectorShowUpdateEvent = (args: ViewSelectorShowUpdateEventArgs): void => {\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState(args, async () => this.loadViews());\r\n };\r\n\r\n private setStateContainers(views3d: ListItem[], views2d: ListItem[], sheets: ListItem[], unknown?: ListItem[],\r\n views3dFiltered?: ListItem[], views2dFiltered?: ListItem[], sheetsFiltered?: ListItem[], unknownFiltered?: ListItem[]) {\r\n const views3dContainer: ListItem = {\r\n key: \"views3dContainer\",\r\n name: UiFramework.translate(\"viewTypes.spatialViews\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views3dFiltered ? views3dFiltered : views3d,\r\n };\r\n\r\n const views2dContainer: ListItem = {\r\n key: \"views2dContainer\",\r\n name: UiFramework.translate(\"viewTypes.drawings\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: views2dFiltered ? views2dFiltered : views2d,\r\n };\r\n\r\n const sheetContainer: ListItem = {\r\n key: \"sheetContainer\",\r\n name: UiFramework.translate(\"viewTypes.sheets\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: sheetsFiltered ? sheetsFiltered : sheets,\r\n };\r\n\r\n const containers = [views3dContainer, views2dContainer, sheetContainer];\r\n\r\n // istanbul ignore if\r\n if (unknown && unknown.length > 0) {\r\n // This should never show, but just in case we missed a type of view state\r\n const unknownContainer: ListItem = {\r\n key: \"unknownContainer\",\r\n name: UiFramework.translate(\"viewTypes.others\"),\r\n enabled: false,\r\n type: ListItemType.Container,\r\n children: unknownFiltered ? unknownFiltered : unknown,\r\n };\r\n\r\n if (unknown.length !== 0)\r\n containers.push(unknownContainer);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n this.setState({\r\n items: containers,\r\n title: UiFramework.translate(\"viewTypes.views\"),\r\n initialized: true,\r\n });\r\n }\r\n /**\r\n * Query the views and set the initial state with the iModel's views.\r\n */\r\n public async loadViews(): Promise<void> {\r\n // Query views and add them to state\r\n const views3d: ListItem[] = [];\r\n const views2d: ListItem[] = [];\r\n const sheets: ListItem[] = [];\r\n const unknown: ListItem[] = [];\r\n let views3dFiltered: ListItem[] | undefined;\r\n let views2dFiltered: ListItem[] | undefined;\r\n let sheetsFiltered: ListItem[] | undefined;\r\n let unknownFiltered: ListItem[] | undefined;\r\n\r\n // istanbul ignore if\r\n if (this.props.imodel && this.props.imodel.views.getViewList) {\r\n const query = { wantPrivate: false };\r\n const specs = await this.props.imodel.views.getViewList(query);\r\n\r\n specs.forEach((spec: IModelConnection.ViewSpec) => {\r\n const viewItem: ListItem = {\r\n key: spec.id,\r\n name: spec.name,\r\n enabled: false,\r\n type: ListItemType.Item,\r\n };\r\n\r\n const className = ViewUtilities.getBisBaseClass(spec.class);\r\n\r\n if (ViewUtilities.isSpatial(className) && this.state.showSpatials)\r\n views3d.push(viewItem);\r\n else if (ViewUtilities.isDrawing(className) && this.state.showDrawings)\r\n views2d.push(viewItem);\r\n else if (ViewUtilities.isSheet(className) && this.state.showSheets)\r\n sheets.push(viewItem);\r\n else if (this.state.showUnknown)\r\n unknown.push(viewItem);\r\n });\r\n\r\n if(this._searchInput.length > 0){\r\n views3dFiltered = views3d.filter((view) => view.name?.toLowerCase().includes(this._searchInput.toLowerCase()));\r\n views2dFiltered = views2d.filter((view) => view.name?.toLowerCase().includes(this._searchInput.toLowerCase()));\r\n sheetsFiltered = sheets.filter((view) => view.name?.toLowerCase().includes(this._searchInput.toLowerCase()));\r\n unknownFiltered = unknown.filter((view) => view.name?. toLowerCase().includes(this._searchInput.toLowerCase()));\r\n }\r\n }\r\n\r\n this.setStateContainers(views3d, views2d, sheets, unknown, views3dFiltered, views2dFiltered, sheetsFiltered, unknownFiltered);\r\n }\r\n\r\n /**\r\n * Update state of the entries in the widget.\r\n * @param viewId Identifier for the relevant view\r\n */\r\n // istanbul ignore next\r\n public async updateState(viewId?: any): Promise<void> {\r\n // Wait for initialization finished\r\n if (!this.state.initialized)\r\n return;\r\n\r\n // Query views and add them to state\r\n const views3d: ListItem[] = this.state.items[0].children!;\r\n const views2d: ListItem[] = this.state.items[1].children!;\r\n const sheets: ListItem[] = this.state.items[2].children!;\r\n const unknown: ListItem[] = this.state.items.length > 3 ? this.state.items[3].children! : [];\r\n\r\n const updateChildren = (item: ListItem) => {\r\n if (item.key === viewId)\r\n return { ...item, enabled: true };\r\n else\r\n return { ...item, enabled: false };\r\n };\r\n\r\n this.setStateContainers(views3d.map(updateChildren), views2d.map(updateChildren), sheets.map(updateChildren), unknown.map(updateChildren));\r\n }\r\n\r\n // enable/disable the models\r\n // istanbul ignore next\r\n private _setEnabled = async (item: ListItem, _enabled: boolean) => {\r\n const activeContentControl = UiFramework.content.getActiveContentControl() as unknown as SupportsViewSelectorChange;\r\n if (!activeContentControl || !activeContentControl.supportsViewSelectorChange) {\r\n Logger.logError(UiFramework.loggerCategory(this), `No active ContentControl for ViewSelector change`);\r\n return;\r\n }\r\n\r\n // Enable the item temporarily to let user see that their click was registered\r\n // while we query for view state and change the current view which may take a bit\r\n if (_enabled && item.type !== ListItemType.Container) {\r\n // This itemMapper simply looks through all the list items and their nested children and enables the one\r\n // that we have registered to enable\r\n // Also disable all other items\r\n const itemMapper: (tempItem: ListItem) => ListItem = (tempItem: ListItem) => {\r\n if (tempItem.type === ListItemType.Container) {\r\n return { ...tempItem, children: tempItem.children!.map(itemMapper) };\r\n } else if (tempItem.key === item.key) {\r\n return { ...tempItem, enabled: true };\r\n } else {\r\n return { ...tempItem, enabled: false };\r\n }\r\n };\r\n\r\n // Create the new array with the current item enabled\r\n const itemsWithEnabled = this.state.items.map(itemMapper);\r\n\r\n // istanbul ignore next\r\n if (!this._isMounted)\r\n return;\r\n\r\n // Update the state so that we show the user it was enabled while we work in the background\r\n this.setState({ items: itemsWithEnabled });\r\n }\r\n\r\n // Load the view state using the viewSpec's ID\r\n const viewState = await this.props.imodel!.views.load(item.key);\r\n\r\n // Let activeContentControl process the ViewSelector change\r\n await activeContentControl.processViewSelectorChange(this.props.imodel!, item.key, viewState, item.name!);\r\n\r\n // Emit a change event\r\n ViewSelector.onViewSelectorChangedEvent.emit({\r\n iModelConnection: this.props.imodel!,\r\n viewDefinitionId: item.key,\r\n viewState,\r\n name: item.name!,\r\n });\r\n\r\n // Set state to show enabled the view that got selected\r\n this.updateState(item.key); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n // Hook on the category selector being expanded so that we may initialize if needed\r\n // istanbul ignore next\r\n private _onExpanded = (expand: boolean) => {\r\n if (expand)\r\n this.updateState(IModelApp.viewManager.selectedView ? IModelApp.viewManager.selectedView.view.id : undefined); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n };\r\n\r\n /**\r\n * Renders ViewSelector component\r\n */\r\n public override render() {\r\n if (!this.state.initialized)\r\n return null;\r\n\r\n const { imodel, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n return (\r\n <ListPicker\r\n {...props}\r\n title={this.state.title}\r\n setEnabled={this._setEnabled}\r\n items={this.state.items}\r\n iconSpec={\"icon-saved-view\"}\r\n onExpanded={this._onExpanded}\r\n searchBox={this.state.searchBox}\r\n onSearchValueChange={debounce((search: string) => {\r\n this._searchInput = search;\r\n void this.loadViews();\r\n }, 300)}\r\n />\r\n );\r\n }\r\n}\r\n\r\n/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\r\n * @beta\r\n */\r\nexport const IModelConnectedViewSelector = connectIModelConnection(null, null)(ViewSelector); // eslint-disable-line @typescript-eslint/naming-convention\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HideIsolateEmphasizeManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/HideIsolateEmphasizeManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAA0B,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAA2E,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAK3J;;GAEG;AACH,oBAAY,0BAA0B;IACpC,yBAAyB,8BAA8B;IACvD,uBAAuB,4BAA4B;IACnD,yBAAyB,8BAA8B;IACvD,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;IACzC,sBAAsB,2BAA2B;IACjD,6BAA6B,kCAAkC;IAC/D,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;CACpD;AAeD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAC7C;
|
|
1
|
+
{"version":3,"file":"HideIsolateEmphasizeManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/selection/HideIsolateEmphasizeManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,6 +84,7 @@ class SubjectModelIdsCache {
|
|
|
84
84
|
async initSubjectsHierarchy() {
|
|
85
85
|
this._subjectsHierarchy = new Map();
|
|
86
86
|
const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;
|
|
87
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
87
88
|
const result = this._imodel.query(ecsql, undefined, { limit: { count: 1000 } });
|
|
88
89
|
for await (const row of result) {
|
|
89
90
|
let list = this._subjectsHierarchy.get(row.parentId);
|
|
@@ -97,6 +98,7 @@ class SubjectModelIdsCache {
|
|
|
97
98
|
async initSubjectModels() {
|
|
98
99
|
this._subjectModels = new Map();
|
|
99
100
|
const ecsql = `SELECT p.ECInstanceId id, p.Parent.Id subjectId FROM bis.InformationPartitionElement p JOIN bis.Model m ON m.ModeledElement.Id = p.ECInstanceId`;
|
|
101
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
100
102
|
const result = this._imodel.query(ecsql, undefined, { limit: { count: 1000 } });
|
|
101
103
|
for await (const row of result) {
|
|
102
104
|
let list = this._subjectModels.get(row.subjectId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HideIsolateEmphasizeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/HideIsolateEmphasizeManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { BeEvent, GuidString, Id64String } from \"@itwin/core-bentley\";\r\nimport { FeatureAppearance, GeometricElementProps } from \"@itwin/core-common\";\r\nimport { EmphasizeElements, FeatureOverrideProvider, FeatureSymbology, IModelApp, IModelConnection, ScreenViewport, Viewport } from \"@itwin/core-frontend\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Supported Hide, Isolate, and Emphasize Actions. These also serve as FeatureTracking Ids.\r\n * @public\r\n */\r\nexport enum HideIsolateEmphasizeAction {\r\n EmphasizeSelectedElements = \"EmphasizeSelectedElements\",\r\n IsolateSelectedElements = \"IsolateSelectedElements\",\r\n IsolateSelectedCategories = \"IsolateSelectedCategories\",\r\n IsolateSelectedModels = \"IsolateSelectedModels\",\r\n HideSelectedElements = \"HideSelectedElements\",\r\n HideSelectedModels = \"HideSelectedModels\",\r\n HideSelectedCategories = \"HideSelectedCategories\",\r\n ClearHiddenIsolatedEmphasized = \"ClearHiddenIsolatedEmphasized\",\r\n ClearOverrideModels = \"ClearOverrideModels\",\r\n ClearOverrideCategories = \"ClearOverrideCategories\",\r\n}\r\n\r\nconst featureIdMap = new Map<HideIsolateEmphasizeAction, GuidString>([\r\n [HideIsolateEmphasizeAction.EmphasizeSelectedElements, \"d74eb93f-deae-4700-8da6-1013a8a7aa26\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedElements, \"24327638-1611-45fa-a379-fa73329098ec\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedCategories, \"e58081ab-2c33-4a15-924f-71082b58ca3b\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedModels, \"3475921e-7dd1-4547-993e-a3e284ef8b62\"],\r\n [HideIsolateEmphasizeAction.HideSelectedElements, \"2ca673ec-001a-4890-bc25-18bc88358fe0\"],\r\n [HideIsolateEmphasizeAction.HideSelectedModels, \"8b41e859-ae17-4e19-b220-87a5cf9f8242\"],\r\n [HideIsolateEmphasizeAction.HideSelectedCategories, \"c5d6916b-e8d7-4796-bae9-a5303712d46b\"],\r\n [HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized, \"7b135c8a-3f3c-4297-b36c-b0ac51f1d8de\"],\r\n [HideIsolateEmphasizeAction.ClearOverrideModels, \"6e519b94-edab-4b13-9ce7-0bcdfa27ccfe\"],\r\n [HideIsolateEmphasizeAction.ClearOverrideCategories, \"9d2be3c6-6992-4c30-84eb-10f6b9379d06\"],\r\n]);\r\n\r\n/** Selection Context Action Event Argument\r\n * @public\r\n */\r\nexport interface EmphasizeElementsChangedArgs {\r\n /** viewport where action was performed */\r\n readonly viewport: ScreenViewport;\r\n /** action being performed */\r\n readonly action: HideIsolateEmphasizeAction;\r\n}\r\n\r\n/** Overrides given models to provide emphasize functionality\r\n * @public\r\n */\r\n// istanbul ignore next\r\nclass ModelOverrideProvider implements FeatureOverrideProvider {\r\n constructor(public modelIds: string[], public defaultAppearance: FeatureAppearance) { }\r\n\r\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, _viewport: Viewport): void {\r\n overrides.setDefaultOverrides(this.defaultAppearance, true);\r\n // Override with nothing so that we keep the model looking normal and override the default appearance of everything else\r\n const appearance = FeatureAppearance.fromJSON({});\r\n this.modelIds.forEach((modelId: string) => {\r\n overrides.override({ modelId, appearance, onConflict: \"replace\" });\r\n });\r\n }\r\n}\r\n\r\n/** Overrides given categories to provide emphasize functionality\r\n * @public\r\n */\r\n// istanbul ignore next\r\nclass SubCategoryOverrideProvider implements FeatureOverrideProvider {\r\n constructor(public subCategoryIds: string[], public defaultAppearance: FeatureAppearance) { }\r\n\r\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, _viewport: Viewport): void {\r\n overrides.setDefaultOverrides(this.defaultAppearance, true);\r\n // Override with nothing so that we keep the category looking normal and override the default appearance of everything else\r\n const appearance = FeatureAppearance.fromJSON({});\r\n this.subCategoryIds.forEach((subCategoryId: string) => {\r\n overrides.override({ subCategoryId, appearance, onConflict: \"replace\" });\r\n });\r\n }\r\n}\r\n\r\n/** Cache of Models that are inside of subjects */\r\n// istanbul ignore next\r\nclass SubjectModelIdsCache {\r\n private _imodel: IModelConnection;\r\n private _subjectsHierarchy: Map<Id64String, Id64String[]> | undefined;\r\n private _subjectModels: Map<Id64String, Id64String[]> | undefined;\r\n private _init: Promise<void> | undefined;\r\n\r\n constructor(imodel: IModelConnection) {\r\n this._imodel = imodel;\r\n }\r\n\r\n private async initSubjectsHierarchy() {\r\n this._subjectsHierarchy = new Map();\r\n const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;\r\n const result = this._imodel.query(ecsql, undefined, { limit: { count: 1000 } });\r\n for await (const row of result) {\r\n let list = this._subjectsHierarchy.get(row.parentId);\r\n if (!list) {\r\n list = [];\r\n this._subjectsHierarchy.set(row.parentId, list);\r\n }\r\n list.push(row.id);\r\n }\r\n }\r\n\r\n private async initSubjectModels() {\r\n this._subjectModels = new Map();\r\n const ecsql = `SELECT p.ECInstanceId id, p.Parent.Id subjectId FROM bis.InformationPartitionElement p JOIN bis.Model m ON m.ModeledElement.Id = p.ECInstanceId`;\r\n const result = this._imodel.query(ecsql, undefined, { limit: { count: 1000 } });\r\n for await (const row of result) {\r\n let list = this._subjectModels.get(row.subjectId);\r\n if (!list) {\r\n list = [];\r\n this._subjectModels.set(row.subjectId, list);\r\n }\r\n list.push(row.id);\r\n }\r\n }\r\n\r\n private async initCache() {\r\n if (!this._init) {\r\n this._init = Promise.all([this.initSubjectModels(), this.initSubjectsHierarchy()]).then(() => { });\r\n }\r\n return this._init;\r\n }\r\n\r\n private appendSubjectModelsRecursively(modelIds: Id64String[], subjectId: Id64String) {\r\n const subjectModelIds = this._subjectModels!.get(subjectId);\r\n if (subjectModelIds)\r\n modelIds.push(...subjectModelIds);\r\n\r\n const childSubjectIds = this._subjectsHierarchy!.get(subjectId);\r\n if (childSubjectIds)\r\n childSubjectIds.forEach((cs) => this.appendSubjectModelsRecursively(modelIds, cs));\r\n }\r\n\r\n public async getSubjectModelIds(subjectId: Id64String): Promise<Id64String[]> {\r\n await this.initCache();\r\n const modelIds = new Array<Id64String>();\r\n this.appendSubjectModelsRecursively(modelIds, subjectId);\r\n return modelIds;\r\n }\r\n}\r\n\r\n/**\r\n * Interface for class that handles Hide, Isolate, and Emphasize Actions\r\n * @public\r\n */\r\nexport abstract class HideIsolateEmphasizeActionHandler {\r\n public static emphasizeElementsChanged = new BeEvent<(args: EmphasizeElementsChangedArgs) => void>();\r\n\r\n /** String Id sent to allow UI to refresh its display state. */\r\n public static get hideIsolateEmphasizeUiSyncId() {\r\n return \"selection-context-emphasize-elements-changed\";\r\n }\r\n\r\n /**\r\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processIsolateSelectedElementsModel(): Promise<void>;\r\n /**\r\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n\r\n public abstract processIsolateSelectedElementsCategory(): Promise<void>;\r\n\r\n /**\r\n * Function run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processIsolateSelected(): Promise<void>;\r\n\r\n /**\r\n * Function run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processHideSelectedElementsModel(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\r\n */\r\n public abstract processHideSelectedElementsCategory(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `HideSelected` tool button is pressed\r\n */\r\n public abstract processHideSelected(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `EmphasizeSelected` tool button is pressed\r\n */\r\n public abstract processEmphasizeSelected(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `ClearEmphasize` tool button is pressed\r\n */\r\n public abstract processClearEmphasize(): Promise<void>;\r\n\r\n /**\r\n * Function that informs called if Hide, Isolate, or Emphasize of elements is active.\r\n */\r\n public abstract areFeatureOverridesActive(vp: Viewport): boolean;\r\n\r\n /**\r\n * Function run when `ClearOverrideCategories` tool button is pressed\r\n */\r\n public abstract processClearOverrideCategories(): Promise<void>;\r\n\r\n /**\r\n * Function run when `ClearOverrideModels` tool button is pressed\r\n */\r\n public abstract processClearOverrideModels(): Promise<void>;\r\n}\r\n\r\n/** Provides helper functions for doing commands on logical selection like categories and subjects.\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {\r\n // TODO: We need to check the type by going to backend, not by using classnames\r\n private static _categoryClassName = \"BisCore:SpatialCategory\";\r\n private static _subjectClassName = \"BisCore:Subject\";\r\n private static _modelClassName = \"BisCore:PhysicalModel\";\r\n private static _subjectModelIdsCache: SubjectModelIdsCache | undefined = undefined;\r\n private static _overrideCategoryIds = new Map<Viewport, Set<string>>();\r\n private static _overrideModelIds = new Map<Viewport, Set<string>>();\r\n\r\n /**\r\n * Initialize the subject model cache\r\n * @param iModelConnection iModel to use for querying subject's models\r\n */\r\n public static initializeSubjectModelCache(iModelConnection: IModelConnection) {\r\n HideIsolateEmphasizeManager._subjectModelIdsCache = new SubjectModelIdsCache(iModelConnection);\r\n }\r\n\r\n /**\r\n * Returns true if the selection in presentation layer only has a single selection class and it is the given one\r\n * @param className ECClass name to check for\r\n */\r\n private static _checkClassSelected(className: string) {\r\n if (!UiFramework.getIModelConnection())\r\n throw new Error(\"Undefined iModelConnection\");\r\n\r\n const selection = Presentation.selection.getSelection(UiFramework.getIModelConnection()!);\r\n return selection.size === 1 && selection.instanceKeys.has(className);\r\n }\r\n\r\n /**\r\n * Gets the Ids of all elements selected that have the given class name\r\n * @param className ECClass name to check for\r\n */\r\n private static _getIdsOfClassName(className: string) {\r\n if (!UiFramework.getIModelConnection())\r\n throw new Error(\"Undefined iModelConnection\");\r\n\r\n const selection = Presentation.selection.getSelection(UiFramework.getIModelConnection()!);\r\n const ids: string[] = [];\r\n selection.instanceKeys.forEach((currentIds: Set<string>, key: string) => {\r\n if (key === className)\r\n ids.push(...currentIds);\r\n });\r\n return ids;\r\n }\r\n\r\n /** Returns true if there are only categories selected in presentation's logical selection */\r\n private static categorySelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._categoryClassName);\r\n }\r\n\r\n /** Returns true if there are only subjects selected in presentation's logical selection */\r\n private static subjectSelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._subjectClassName);\r\n }\r\n\r\n /** Returns true if a model is selected in presentation's logical selection */\r\n private static modelSelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._modelClassName);\r\n }\r\n\r\n /**\r\n * Hide the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static hideSelectedCategory(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName);\r\n vp.changeCategoryDisplay(ids, false);\r\n }\r\n\r\n /** Get sub categories that relate to the category Id */\r\n private static async _getSubCategories(iModelConnection: IModelConnection, categoryIds: string[]) {\r\n const allSubcats: string[] = [];\r\n const request = iModelConnection.subcategories.load(categoryIds);\r\n if (request)\r\n await request.promise;\r\n\r\n for (const categoryId of categoryIds) {\r\n const subcats = iModelConnection.subcategories.getSubCategories(categoryId);\r\n if (subcats)\r\n allSubcats.push(...subcats);\r\n }\r\n return allSubcats;\r\n }\r\n\r\n /**\r\n * Emphasize the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n public static async emphasizeSelectedCategory(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n const subcats = await HideIsolateEmphasizeManager._getSubCategories(vp.iModel, ids);\r\n vp.addFeatureOverrideProvider(new SubCategoryOverrideProvider(subcats, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Query the model Id that models a subject\r\n * @param subjectId Subject Id to use in query\r\n */\r\n private static async _getModelIds(subjectId: string): Promise<string[]> {\r\n return HideIsolateEmphasizeManager._subjectModelIdsCache!.getSubjectModelIds(subjectId);\r\n }\r\n\r\n /**\r\n * Hide the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static async hideSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n vp.changeModelDisplay(modelIds, false);\r\n }\r\n\r\n /**\r\n * Isolate the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static async emphasizeSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n vp.addFeatureOverrideProvider(new ModelOverrideProvider(modelIds, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Hide the selected model\r\n * @param vp Viewport to affect\r\n */\r\n private static hideSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n vp.changeModelDisplay(ids, false);\r\n }\r\n\r\n /**\r\n * Isolate the selected model\r\n * @param vp Viewport to affect\r\n */\r\n private static emphasizeSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n vp.addFeatureOverrideProvider(new ModelOverrideProvider(ids, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Isolate the selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static isolateSelected(vp: Viewport) {\r\n EmphasizeElements.getOrCreate(vp).isolateSelectedElements(vp, true, false); // Isolate selected elements\r\n }\r\n\r\n /**\r\n * Hide the selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static hideSelected(vp: Viewport) {\r\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide all selected elements\r\n }\r\n\r\n /**\r\n * Clear Hidden,Isolated, or Emphasized elements in specified view\r\n * @param vp Viewport to affect\r\n *\r\n */\r\n public static clearEmphasize(vp: Viewport | undefined) {\r\n if (vp) {\r\n EmphasizeElements.clear(vp);\r\n }\r\n }\r\n\r\n /**\r\n * Emphasize the selected elements from either presentation layer's logical selection or selected graphics\r\n * @param vp Viewport to affect\r\n * @param emphasisSilhouette defaults to true\r\n */\r\n public static async emphasizeSelected(vp: Viewport, emphasisSilhouette = true) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n await HideIsolateEmphasizeManager.emphasizeSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n HideIsolateEmphasizeManager.emphasizeSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.emphasizeSelectedSubject(vp);\r\n return;\r\n }\r\n\r\n const ee = EmphasizeElements.getOrCreate(vp);\r\n ee.wantEmphasis = emphasisSilhouette;\r\n\r\n ee.emphasizeSelectedElements(vp, undefined, true, false); // Emphasize elements by making all others grey/transparent\r\n vp.isFadeOutActive = true; // Enable flat alpha for greyed out elements…\r\n }\r\n\r\n /**\r\n * Isolate the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n await vp.replaceViewedModels(modelIds);\r\n }\r\n\r\n /**\r\n * Isolate the selected model\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n await vp.replaceViewedModels(ids);\r\n }\r\n\r\n /**\r\n * Isolate the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static isolateSelectedCategory(vp: Viewport) {\r\n const ids = new Set(HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName));\r\n const categoriesToDrop: string[] = [];\r\n vp.view.categorySelector.categories.forEach((categoryId: string) => {\r\n if (!ids.has(categoryId))\r\n categoriesToDrop.push(categoryId);\r\n });\r\n vp.changeCategoryDisplay(categoriesToDrop, false);\r\n vp.changeCategoryDisplay(ids, true);\r\n }\r\n\r\n private static async getSelectionSetElementModels(iModel: IModelConnection) {\r\n const props = await iModel.elements.getProps(iModel.selectionSet.elements);\r\n const modelIds = new Set<string>();\r\n for (const prop of props)\r\n if (prop.model)\r\n modelIds.add(prop.model);\r\n return modelIds;\r\n }\r\n\r\n private static async getSelectionSetElementCategories(iModel: IModelConnection) {\r\n const props = (await iModel.elements.getProps(iModel.selectionSet.elements)) as GeometricElementProps[];\r\n const categoryIds = new Set<string>();\r\n for (const prop of props)\r\n if (prop.category)\r\n categoryIds.add(prop.category);\r\n return categoryIds;\r\n }\r\n\r\n /**\r\n * Isolate either based on Presentation selection, if defined, else the selected graphic elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateCommand(vp: Viewport) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n HideIsolateEmphasizeManager.isolateSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n await HideIsolateEmphasizeManager.isolateSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.isolateSelectedSubject(vp);\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Isolate model from selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedElementsModel(vp: Viewport) {\r\n const modelsToKeep = new Set(await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel));\r\n\r\n if (vp.view.isSpatialView()) {\r\n const modelsToTurnOff = [...vp.view.modelSelector.models].filter((modelId: string) => !modelsToKeep.has(modelId));\r\n this.updateModelOverride(vp, modelsToTurnOff);\r\n }\r\n\r\n await vp.replaceViewedModels(modelsToKeep);\r\n }\r\n\r\n /**\r\n * Isolate the selected category found in SelectionSet elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedElementsCategory(vp: Viewport) {\r\n const categoriesToKeep = new Set(await HideIsolateEmphasizeManager.getSelectionSetElementCategories(vp.iModel));\r\n const categoriesToTurnOff = [...vp.view.categorySelector.categories].filter((categoryId: string) => !categoriesToKeep.has(categoryId));\r\n vp.changeCategoryDisplay(categoriesToTurnOff, false);\r\n vp.changeCategoryDisplay(categoriesToKeep, true);\r\n this.updateCategoryOverride(vp, categoriesToTurnOff);\r\n }\r\n\r\n /**\r\n * Hide either based on Presentation selection, if defined, else the selected graphic elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideCommand(vp: Viewport) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n HideIsolateEmphasizeManager.hideSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n HideIsolateEmphasizeManager.hideSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.hideSelectedSubject(vp);\r\n return;\r\n }\r\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide selected elements\r\n }\r\n\r\n /**\r\n * Hide the models defined by the elements in the current SelectionSet\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideSelectedElementsModel(vp: Viewport) {\r\n const modelIds = await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel);\r\n vp.changeModelDisplay(modelIds, false);\r\n this.updateModelOverride(vp, [...modelIds]);\r\n }\r\n\r\n /**\r\n * Clear (restore) the previously hidden/isolated models hidden by hideSelectedElementsModel\r\n * @param vp Viewport to affect\r\n */\r\n public static clearOverrideModels(vp: Viewport) {\r\n const ids = this._overrideModelIds.get(vp);\r\n if (ids) {\r\n vp.changeModelDisplay([...ids], true);\r\n this.clearModelOverride(vp);\r\n }\r\n }\r\n\r\n /**\r\n * Determine if models are hidden by hideSelectedElementsModel or isolateSelectedElementsModel\r\n * @param vp Viewport to affect\r\n */\r\n public static isOverrideModels(vp: Viewport): boolean {\r\n const ids = this._overrideModelIds.get(vp);\r\n return (ids) ? [...ids].length > 0 : false;\r\n }\r\n\r\n /**\r\n * Determine if categories are hidden by hideSelectedElementsCategory or isolateSelectedElementsCategory\r\n * @param vp Viewport to affect\r\n */\r\n public static isOverrideCategories(vp: Viewport): boolean {\r\n const ids = this._overrideCategoryIds.get(vp);\r\n return (ids) ? [...ids].length > 0 : false;\r\n }\r\n\r\n /**\r\n * Hide the categories defined by the elements in the current SelectionSet\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideSelectedElementsCategory(vp: Viewport) {\r\n const categoryIds = await HideIsolateEmphasizeManager.getSelectionSetElementCategories(vp.iModel);\r\n vp.changeCategoryDisplay(categoryIds, false);\r\n this.updateCategoryOverride(vp, [...categoryIds]);\r\n }\r\n\r\n /**\r\n * Clear (restore) the previously hidden categories hidden by hideSelectedElementsCategory\r\n * @param vp Viewport to affect\r\n */\r\n public static clearOverrideCategories(vp: Viewport) {\r\n const ids = this._overrideCategoryIds.get(vp);\r\n if (ids) {\r\n vp.changeCategoryDisplay([...ids], true);\r\n this.clearCategoryOverride(vp);\r\n }\r\n }\r\n\r\n /** Checks to see if any featureOverrideProviders are active */\r\n public areFeatureOverridesActive(vp: Viewport): boolean {\r\n // Check all the emphasize possibilities\r\n const emphasizeElementsProvider = vp.findFeatureOverrideProviderOfType<EmphasizeElements>(EmphasizeElements);\r\n if (undefined !== emphasizeElementsProvider && emphasizeElementsProvider.isActive)\r\n return true;\r\n\r\n const modelOverrideProvider = vp.findFeatureOverrideProviderOfType<ModelOverrideProvider>(ModelOverrideProvider);\r\n if (undefined !== modelOverrideProvider && modelOverrideProvider.modelIds.length > 0)\r\n return true;\r\n\r\n const subCategoryOverrideProvider = vp.findFeatureOverrideProviderOfType<SubCategoryOverrideProvider>(SubCategoryOverrideProvider);\r\n if (undefined !== subCategoryOverrideProvider && subCategoryOverrideProvider.subCategoryIds.length > 0)\r\n return true;\r\n\r\n // Check hide/isolate possibilities\r\n if (HideIsolateEmphasizeManager.isOverrideCategories(vp))\r\n return true;\r\n\r\n if (HideIsolateEmphasizeManager.isOverrideModels(vp))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n public async processIsolateSelectedElementsModel(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.isolateSelectedElementsModel(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelectedElementsCategory` tool button is pressed\r\n */\r\n public async processIsolateSelectedElementsCategory(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.isolateSelectedElementsCategory(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelected` tool button is pressed\r\n */\r\n public async processIsolateSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.isolateSelected(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public async processHideSelectedElementsModel(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.hideSelectedElementsModel(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\r\n */\r\n public async processHideSelectedElementsCategory(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.hideSelectedElementsCategory(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelected` tool button is pressed\r\n */\r\n public async processHideSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n HideIsolateEmphasizeManager.hideSelected(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `EmphasizeSelected` tool button is pressed\r\n */\r\n public async processEmphasizeSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.emphasizeSelected(vp);\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.EmphasizeSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.EmphasizeSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.EmphasizeSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearEmphasize` tool button is pressed\r\n */\r\n public async processClearEmphasize(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearEmphasize(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized, featureIdMap.get(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearOverrideModels` tool button is pressed\r\n */\r\n public async processClearOverrideModels(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearOverrideModels(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearOverrideModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideModels, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearOverrideCategories` tool button is pressed\r\n */\r\n public async processClearOverrideCategories(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearOverrideCategories(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearOverrideCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideCategories, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Add category ids to the category override cache (hidden or isolated categories)\r\n */\r\n public static updateCategoryOverride(vp: Viewport, ids: string[]) {\r\n const prevIds = this._overrideCategoryIds.get(vp);\r\n const newIds = [...(prevIds || []), ...ids];\r\n this._overrideCategoryIds.set(vp, new Set(newIds));\r\n }\r\n\r\n /**\r\n * Add model ids to the model override cache (hidden or isolated models)\r\n */\r\n public static updateModelOverride(vp: Viewport, ids: string[]) {\r\n const prevIds = this._overrideModelIds.get(vp);\r\n const newIds = [...(prevIds || []), ...ids];\r\n this._overrideModelIds.set(vp, new Set(newIds));\r\n }\r\n\r\n /**\r\n * Return the list of category overrides (hidden or isolated categories)\r\n */\r\n public static getCategoryOverrides(vp: Viewport) {\r\n return this._overrideCategoryIds.get(vp);\r\n }\r\n\r\n /**\r\n * Return the list of model overrides (hidden or isolated models)\r\n */\r\n public static getModelOverrides(vp: Viewport) {\r\n return this._overrideModelIds.get(vp);\r\n }\r\n\r\n /**\r\n * Clear the category override cache (hidden or isolated categories)\r\n */\r\n private static clearCategoryOverride(vp: Viewport) {\r\n this._overrideCategoryIds.delete(vp);\r\n }\r\n\r\n /**\r\n * Clear the model override cache (hidden or isolated models)\r\n */\r\n private static clearModelOverride(vp: Viewport) {\r\n this._overrideModelIds.delete(vp);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"HideIsolateEmphasizeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/HideIsolateEmphasizeManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { BeEvent, GuidString, Id64String } from \"@itwin/core-bentley\";\r\nimport { FeatureAppearance, GeometricElementProps } from \"@itwin/core-common\";\r\nimport { EmphasizeElements, FeatureOverrideProvider, FeatureSymbology, IModelApp, IModelConnection, ScreenViewport, Viewport } from \"@itwin/core-frontend\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Supported Hide, Isolate, and Emphasize Actions. These also serve as FeatureTracking Ids.\r\n * @public\r\n */\r\nexport enum HideIsolateEmphasizeAction {\r\n EmphasizeSelectedElements = \"EmphasizeSelectedElements\",\r\n IsolateSelectedElements = \"IsolateSelectedElements\",\r\n IsolateSelectedCategories = \"IsolateSelectedCategories\",\r\n IsolateSelectedModels = \"IsolateSelectedModels\",\r\n HideSelectedElements = \"HideSelectedElements\",\r\n HideSelectedModels = \"HideSelectedModels\",\r\n HideSelectedCategories = \"HideSelectedCategories\",\r\n ClearHiddenIsolatedEmphasized = \"ClearHiddenIsolatedEmphasized\",\r\n ClearOverrideModels = \"ClearOverrideModels\",\r\n ClearOverrideCategories = \"ClearOverrideCategories\",\r\n}\r\n\r\nconst featureIdMap = new Map<HideIsolateEmphasizeAction, GuidString>([\r\n [HideIsolateEmphasizeAction.EmphasizeSelectedElements, \"d74eb93f-deae-4700-8da6-1013a8a7aa26\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedElements, \"24327638-1611-45fa-a379-fa73329098ec\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedCategories, \"e58081ab-2c33-4a15-924f-71082b58ca3b\"],\r\n [HideIsolateEmphasizeAction.IsolateSelectedModels, \"3475921e-7dd1-4547-993e-a3e284ef8b62\"],\r\n [HideIsolateEmphasizeAction.HideSelectedElements, \"2ca673ec-001a-4890-bc25-18bc88358fe0\"],\r\n [HideIsolateEmphasizeAction.HideSelectedModels, \"8b41e859-ae17-4e19-b220-87a5cf9f8242\"],\r\n [HideIsolateEmphasizeAction.HideSelectedCategories, \"c5d6916b-e8d7-4796-bae9-a5303712d46b\"],\r\n [HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized, \"7b135c8a-3f3c-4297-b36c-b0ac51f1d8de\"],\r\n [HideIsolateEmphasizeAction.ClearOverrideModels, \"6e519b94-edab-4b13-9ce7-0bcdfa27ccfe\"],\r\n [HideIsolateEmphasizeAction.ClearOverrideCategories, \"9d2be3c6-6992-4c30-84eb-10f6b9379d06\"],\r\n]);\r\n\r\n/** Selection Context Action Event Argument\r\n * @public\r\n */\r\nexport interface EmphasizeElementsChangedArgs {\r\n /** viewport where action was performed */\r\n readonly viewport: ScreenViewport;\r\n /** action being performed */\r\n readonly action: HideIsolateEmphasizeAction;\r\n}\r\n\r\n/** Overrides given models to provide emphasize functionality\r\n * @public\r\n */\r\n// istanbul ignore next\r\nclass ModelOverrideProvider implements FeatureOverrideProvider {\r\n constructor(public modelIds: string[], public defaultAppearance: FeatureAppearance) { }\r\n\r\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, _viewport: Viewport): void {\r\n overrides.setDefaultOverrides(this.defaultAppearance, true);\r\n // Override with nothing so that we keep the model looking normal and override the default appearance of everything else\r\n const appearance = FeatureAppearance.fromJSON({});\r\n this.modelIds.forEach((modelId: string) => {\r\n overrides.override({ modelId, appearance, onConflict: \"replace\" });\r\n });\r\n }\r\n}\r\n\r\n/** Overrides given categories to provide emphasize functionality\r\n * @public\r\n */\r\n// istanbul ignore next\r\nclass SubCategoryOverrideProvider implements FeatureOverrideProvider {\r\n constructor(public subCategoryIds: string[], public defaultAppearance: FeatureAppearance) { }\r\n\r\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, _viewport: Viewport): void {\r\n overrides.setDefaultOverrides(this.defaultAppearance, true);\r\n // Override with nothing so that we keep the category looking normal and override the default appearance of everything else\r\n const appearance = FeatureAppearance.fromJSON({});\r\n this.subCategoryIds.forEach((subCategoryId: string) => {\r\n overrides.override({ subCategoryId, appearance, onConflict: \"replace\" });\r\n });\r\n }\r\n}\r\n\r\n/** Cache of Models that are inside of subjects */\r\n// istanbul ignore next\r\nclass SubjectModelIdsCache {\r\n private _imodel: IModelConnection;\r\n private _subjectsHierarchy: Map<Id64String, Id64String[]> | undefined;\r\n private _subjectModels: Map<Id64String, Id64String[]> | undefined;\r\n private _init: Promise<void> | undefined;\r\n\r\n constructor(imodel: IModelConnection) {\r\n this._imodel = imodel;\r\n }\r\n\r\n private async initSubjectsHierarchy() {\r\n this._subjectsHierarchy = new Map();\r\n const ecsql = `SELECT ECInstanceId id, Parent.Id parentId FROM bis.Subject WHERE Parent IS NOT NULL`;\r\n // eslint-disable-next-line deprecation/deprecation\r\n const result = this._imodel.query(ecsql, undefined, { limit: { count: 1000 } });\r\n for await (const row of result) {\r\n let list = this._subjectsHierarchy.get(row.parentId);\r\n if (!list) {\r\n list = [];\r\n this._subjectsHierarchy.set(row.parentId, list);\r\n }\r\n list.push(row.id);\r\n }\r\n }\r\n\r\n private async initSubjectModels() {\r\n this._subjectModels = new Map();\r\n const ecsql = `SELECT p.ECInstanceId id, p.Parent.Id subjectId FROM bis.InformationPartitionElement p JOIN bis.Model m ON m.ModeledElement.Id = p.ECInstanceId`;\r\n // eslint-disable-next-line deprecation/deprecation\r\n const result = this._imodel.query(ecsql, undefined, { limit: { count: 1000 } });\r\n for await (const row of result) {\r\n let list = this._subjectModels.get(row.subjectId);\r\n if (!list) {\r\n list = [];\r\n this._subjectModels.set(row.subjectId, list);\r\n }\r\n list.push(row.id);\r\n }\r\n }\r\n\r\n private async initCache() {\r\n if (!this._init) {\r\n this._init = Promise.all([this.initSubjectModels(), this.initSubjectsHierarchy()]).then(() => { });\r\n }\r\n return this._init;\r\n }\r\n\r\n private appendSubjectModelsRecursively(modelIds: Id64String[], subjectId: Id64String) {\r\n const subjectModelIds = this._subjectModels!.get(subjectId);\r\n if (subjectModelIds)\r\n modelIds.push(...subjectModelIds);\r\n\r\n const childSubjectIds = this._subjectsHierarchy!.get(subjectId);\r\n if (childSubjectIds)\r\n childSubjectIds.forEach((cs) => this.appendSubjectModelsRecursively(modelIds, cs));\r\n }\r\n\r\n public async getSubjectModelIds(subjectId: Id64String): Promise<Id64String[]> {\r\n await this.initCache();\r\n const modelIds = new Array<Id64String>();\r\n this.appendSubjectModelsRecursively(modelIds, subjectId);\r\n return modelIds;\r\n }\r\n}\r\n\r\n/**\r\n * Interface for class that handles Hide, Isolate, and Emphasize Actions\r\n * @public\r\n */\r\nexport abstract class HideIsolateEmphasizeActionHandler {\r\n public static emphasizeElementsChanged = new BeEvent<(args: EmphasizeElementsChangedArgs) => void>();\r\n\r\n /** String Id sent to allow UI to refresh its display state. */\r\n public static get hideIsolateEmphasizeUiSyncId() {\r\n return \"selection-context-emphasize-elements-changed\";\r\n }\r\n\r\n /**\r\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processIsolateSelectedElementsModel(): Promise<void>;\r\n /**\r\n * Function run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n\r\n public abstract processIsolateSelectedElementsCategory(): Promise<void>;\r\n\r\n /**\r\n * Function run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processIsolateSelected(): Promise<void>;\r\n\r\n /**\r\n * Function run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public abstract processHideSelectedElementsModel(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\r\n */\r\n public abstract processHideSelectedElementsCategory(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `HideSelected` tool button is pressed\r\n */\r\n public abstract processHideSelected(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `EmphasizeSelected` tool button is pressed\r\n */\r\n public abstract processEmphasizeSelected(): Promise<void>;\r\n\r\n /**\r\n * Function that is run when `ClearEmphasize` tool button is pressed\r\n */\r\n public abstract processClearEmphasize(): Promise<void>;\r\n\r\n /**\r\n * Function that informs called if Hide, Isolate, or Emphasize of elements is active.\r\n */\r\n public abstract areFeatureOverridesActive(vp: Viewport): boolean;\r\n\r\n /**\r\n * Function run when `ClearOverrideCategories` tool button is pressed\r\n */\r\n public abstract processClearOverrideCategories(): Promise<void>;\r\n\r\n /**\r\n * Function run when `ClearOverrideModels` tool button is pressed\r\n */\r\n public abstract processClearOverrideModels(): Promise<void>;\r\n}\r\n\r\n/** Provides helper functions for doing commands on logical selection like categories and subjects.\r\n * @public\r\n */\r\n// istanbul ignore next\r\nexport class HideIsolateEmphasizeManager extends HideIsolateEmphasizeActionHandler {\r\n // TODO: We need to check the type by going to backend, not by using classnames\r\n private static _categoryClassName = \"BisCore:SpatialCategory\";\r\n private static _subjectClassName = \"BisCore:Subject\";\r\n private static _modelClassName = \"BisCore:PhysicalModel\";\r\n private static _subjectModelIdsCache: SubjectModelIdsCache | undefined = undefined;\r\n private static _overrideCategoryIds = new Map<Viewport, Set<string>>();\r\n private static _overrideModelIds = new Map<Viewport, Set<string>>();\r\n\r\n /**\r\n * Initialize the subject model cache\r\n * @param iModelConnection iModel to use for querying subject's models\r\n */\r\n public static initializeSubjectModelCache(iModelConnection: IModelConnection) {\r\n HideIsolateEmphasizeManager._subjectModelIdsCache = new SubjectModelIdsCache(iModelConnection);\r\n }\r\n\r\n /**\r\n * Returns true if the selection in presentation layer only has a single selection class and it is the given one\r\n * @param className ECClass name to check for\r\n */\r\n private static _checkClassSelected(className: string) {\r\n if (!UiFramework.getIModelConnection())\r\n throw new Error(\"Undefined iModelConnection\");\r\n\r\n const selection = Presentation.selection.getSelection(UiFramework.getIModelConnection()!);\r\n return selection.size === 1 && selection.instanceKeys.has(className);\r\n }\r\n\r\n /**\r\n * Gets the Ids of all elements selected that have the given class name\r\n * @param className ECClass name to check for\r\n */\r\n private static _getIdsOfClassName(className: string) {\r\n if (!UiFramework.getIModelConnection())\r\n throw new Error(\"Undefined iModelConnection\");\r\n\r\n const selection = Presentation.selection.getSelection(UiFramework.getIModelConnection()!);\r\n const ids: string[] = [];\r\n selection.instanceKeys.forEach((currentIds: Set<string>, key: string) => {\r\n if (key === className)\r\n ids.push(...currentIds);\r\n });\r\n return ids;\r\n }\r\n\r\n /** Returns true if there are only categories selected in presentation's logical selection */\r\n private static categorySelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._categoryClassName);\r\n }\r\n\r\n /** Returns true if there are only subjects selected in presentation's logical selection */\r\n private static subjectSelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._subjectClassName);\r\n }\r\n\r\n /** Returns true if a model is selected in presentation's logical selection */\r\n private static modelSelected() {\r\n return HideIsolateEmphasizeManager._checkClassSelected(HideIsolateEmphasizeManager._modelClassName);\r\n }\r\n\r\n /**\r\n * Hide the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static hideSelectedCategory(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName);\r\n vp.changeCategoryDisplay(ids, false);\r\n }\r\n\r\n /** Get sub categories that relate to the category Id */\r\n private static async _getSubCategories(iModelConnection: IModelConnection, categoryIds: string[]) {\r\n const allSubcats: string[] = [];\r\n const request = iModelConnection.subcategories.load(categoryIds);\r\n if (request)\r\n await request.promise;\r\n\r\n for (const categoryId of categoryIds) {\r\n const subcats = iModelConnection.subcategories.getSubCategories(categoryId);\r\n if (subcats)\r\n allSubcats.push(...subcats);\r\n }\r\n return allSubcats;\r\n }\r\n\r\n /**\r\n * Emphasize the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n public static async emphasizeSelectedCategory(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n const subcats = await HideIsolateEmphasizeManager._getSubCategories(vp.iModel, ids);\r\n vp.addFeatureOverrideProvider(new SubCategoryOverrideProvider(subcats, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Query the model Id that models a subject\r\n * @param subjectId Subject Id to use in query\r\n */\r\n private static async _getModelIds(subjectId: string): Promise<string[]> {\r\n return HideIsolateEmphasizeManager._subjectModelIdsCache!.getSubjectModelIds(subjectId);\r\n }\r\n\r\n /**\r\n * Hide the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static async hideSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n vp.changeModelDisplay(modelIds, false);\r\n }\r\n\r\n /**\r\n * Isolate the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static async emphasizeSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n vp.addFeatureOverrideProvider(new ModelOverrideProvider(modelIds, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Hide the selected model\r\n * @param vp Viewport to affect\r\n */\r\n private static hideSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n vp.changeModelDisplay(ids, false);\r\n }\r\n\r\n /**\r\n * Isolate the selected model\r\n * @param vp Viewport to affect\r\n */\r\n private static emphasizeSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const defaultAppearance = EmphasizeElements.getOrCreate(vp).createDefaultAppearance();\r\n EmphasizeElements.clear(vp);\r\n vp.addFeatureOverrideProvider(new ModelOverrideProvider(ids, defaultAppearance));\r\n }\r\n\r\n /**\r\n * Isolate the selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static isolateSelected(vp: Viewport) {\r\n EmphasizeElements.getOrCreate(vp).isolateSelectedElements(vp, true, false); // Isolate selected elements\r\n }\r\n\r\n /**\r\n * Hide the selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static hideSelected(vp: Viewport) {\r\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide all selected elements\r\n }\r\n\r\n /**\r\n * Clear Hidden,Isolated, or Emphasized elements in specified view\r\n * @param vp Viewport to affect\r\n *\r\n */\r\n public static clearEmphasize(vp: Viewport | undefined) {\r\n if (vp) {\r\n EmphasizeElements.clear(vp);\r\n }\r\n }\r\n\r\n /**\r\n * Emphasize the selected elements from either presentation layer's logical selection or selected graphics\r\n * @param vp Viewport to affect\r\n * @param emphasisSilhouette defaults to true\r\n */\r\n public static async emphasizeSelected(vp: Viewport, emphasisSilhouette = true) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n await HideIsolateEmphasizeManager.emphasizeSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n HideIsolateEmphasizeManager.emphasizeSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.emphasizeSelectedSubject(vp);\r\n return;\r\n }\r\n\r\n const ee = EmphasizeElements.getOrCreate(vp);\r\n ee.wantEmphasis = emphasisSilhouette;\r\n\r\n ee.emphasizeSelectedElements(vp, undefined, true, false); // Emphasize elements by making all others grey/transparent\r\n vp.isFadeOutActive = true; // Enable flat alpha for greyed out elements…\r\n }\r\n\r\n /**\r\n * Isolate the selected subject's model found in the presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedSubject(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._subjectClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n const modelIds = await HideIsolateEmphasizeManager._getModelIds(ids[0]);\r\n await vp.replaceViewedModels(modelIds);\r\n }\r\n\r\n /**\r\n * Isolate the selected model\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedModel(vp: Viewport) {\r\n const ids = HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._modelClassName);\r\n if (ids.length === 0)\r\n return;\r\n\r\n await vp.replaceViewedModels(ids);\r\n }\r\n\r\n /**\r\n * Isolate the selected category found in presentation layer's logical selection\r\n * @param vp Viewport to affect\r\n */\r\n private static isolateSelectedCategory(vp: Viewport) {\r\n const ids = new Set(HideIsolateEmphasizeManager._getIdsOfClassName(HideIsolateEmphasizeManager._categoryClassName));\r\n const categoriesToDrop: string[] = [];\r\n vp.view.categorySelector.categories.forEach((categoryId: string) => {\r\n if (!ids.has(categoryId))\r\n categoriesToDrop.push(categoryId);\r\n });\r\n vp.changeCategoryDisplay(categoriesToDrop, false);\r\n vp.changeCategoryDisplay(ids, true);\r\n }\r\n\r\n private static async getSelectionSetElementModels(iModel: IModelConnection) {\r\n const props = await iModel.elements.getProps(iModel.selectionSet.elements);\r\n const modelIds = new Set<string>();\r\n for (const prop of props)\r\n if (prop.model)\r\n modelIds.add(prop.model);\r\n return modelIds;\r\n }\r\n\r\n private static async getSelectionSetElementCategories(iModel: IModelConnection) {\r\n const props = (await iModel.elements.getProps(iModel.selectionSet.elements)) as GeometricElementProps[];\r\n const categoryIds = new Set<string>();\r\n for (const prop of props)\r\n if (prop.category)\r\n categoryIds.add(prop.category);\r\n return categoryIds;\r\n }\r\n\r\n /**\r\n * Isolate either based on Presentation selection, if defined, else the selected graphic elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateCommand(vp: Viewport) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n HideIsolateEmphasizeManager.isolateSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n await HideIsolateEmphasizeManager.isolateSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.isolateSelectedSubject(vp);\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Isolate model from selected elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedElementsModel(vp: Viewport) {\r\n const modelsToKeep = new Set(await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel));\r\n\r\n if (vp.view.isSpatialView()) {\r\n const modelsToTurnOff = [...vp.view.modelSelector.models].filter((modelId: string) => !modelsToKeep.has(modelId));\r\n this.updateModelOverride(vp, modelsToTurnOff);\r\n }\r\n\r\n await vp.replaceViewedModels(modelsToKeep);\r\n }\r\n\r\n /**\r\n * Isolate the selected category found in SelectionSet elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async isolateSelectedElementsCategory(vp: Viewport) {\r\n const categoriesToKeep = new Set(await HideIsolateEmphasizeManager.getSelectionSetElementCategories(vp.iModel));\r\n const categoriesToTurnOff = [...vp.view.categorySelector.categories].filter((categoryId: string) => !categoriesToKeep.has(categoryId));\r\n vp.changeCategoryDisplay(categoriesToTurnOff, false);\r\n vp.changeCategoryDisplay(categoriesToKeep, true);\r\n this.updateCategoryOverride(vp, categoriesToTurnOff);\r\n }\r\n\r\n /**\r\n * Hide either based on Presentation selection, if defined, else the selected graphic elements\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideCommand(vp: Viewport) {\r\n if (HideIsolateEmphasizeManager.categorySelected()) {\r\n HideIsolateEmphasizeManager.hideSelectedCategory(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.modelSelected()) {\r\n HideIsolateEmphasizeManager.hideSelectedModel(vp);\r\n return;\r\n } else if (HideIsolateEmphasizeManager.subjectSelected()) {\r\n await HideIsolateEmphasizeManager.hideSelectedSubject(vp);\r\n return;\r\n }\r\n EmphasizeElements.getOrCreate(vp).hideSelectedElements(vp, false, false); // Hide selected elements\r\n }\r\n\r\n /**\r\n * Hide the models defined by the elements in the current SelectionSet\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideSelectedElementsModel(vp: Viewport) {\r\n const modelIds = await HideIsolateEmphasizeManager.getSelectionSetElementModels(vp.iModel);\r\n vp.changeModelDisplay(modelIds, false);\r\n this.updateModelOverride(vp, [...modelIds]);\r\n }\r\n\r\n /**\r\n * Clear (restore) the previously hidden/isolated models hidden by hideSelectedElementsModel\r\n * @param vp Viewport to affect\r\n */\r\n public static clearOverrideModels(vp: Viewport) {\r\n const ids = this._overrideModelIds.get(vp);\r\n if (ids) {\r\n vp.changeModelDisplay([...ids], true);\r\n this.clearModelOverride(vp);\r\n }\r\n }\r\n\r\n /**\r\n * Determine if models are hidden by hideSelectedElementsModel or isolateSelectedElementsModel\r\n * @param vp Viewport to affect\r\n */\r\n public static isOverrideModels(vp: Viewport): boolean {\r\n const ids = this._overrideModelIds.get(vp);\r\n return (ids) ? [...ids].length > 0 : false;\r\n }\r\n\r\n /**\r\n * Determine if categories are hidden by hideSelectedElementsCategory or isolateSelectedElementsCategory\r\n * @param vp Viewport to affect\r\n */\r\n public static isOverrideCategories(vp: Viewport): boolean {\r\n const ids = this._overrideCategoryIds.get(vp);\r\n return (ids) ? [...ids].length > 0 : false;\r\n }\r\n\r\n /**\r\n * Hide the categories defined by the elements in the current SelectionSet\r\n * @param vp Viewport to affect\r\n */\r\n public static async hideSelectedElementsCategory(vp: Viewport) {\r\n const categoryIds = await HideIsolateEmphasizeManager.getSelectionSetElementCategories(vp.iModel);\r\n vp.changeCategoryDisplay(categoryIds, false);\r\n this.updateCategoryOverride(vp, [...categoryIds]);\r\n }\r\n\r\n /**\r\n * Clear (restore) the previously hidden categories hidden by hideSelectedElementsCategory\r\n * @param vp Viewport to affect\r\n */\r\n public static clearOverrideCategories(vp: Viewport) {\r\n const ids = this._overrideCategoryIds.get(vp);\r\n if (ids) {\r\n vp.changeCategoryDisplay([...ids], true);\r\n this.clearCategoryOverride(vp);\r\n }\r\n }\r\n\r\n /** Checks to see if any featureOverrideProviders are active */\r\n public areFeatureOverridesActive(vp: Viewport): boolean {\r\n // Check all the emphasize possibilities\r\n const emphasizeElementsProvider = vp.findFeatureOverrideProviderOfType<EmphasizeElements>(EmphasizeElements);\r\n if (undefined !== emphasizeElementsProvider && emphasizeElementsProvider.isActive)\r\n return true;\r\n\r\n const modelOverrideProvider = vp.findFeatureOverrideProviderOfType<ModelOverrideProvider>(ModelOverrideProvider);\r\n if (undefined !== modelOverrideProvider && modelOverrideProvider.modelIds.length > 0)\r\n return true;\r\n\r\n const subCategoryOverrideProvider = vp.findFeatureOverrideProviderOfType<SubCategoryOverrideProvider>(SubCategoryOverrideProvider);\r\n if (undefined !== subCategoryOverrideProvider && subCategoryOverrideProvider.subCategoryIds.length > 0)\r\n return true;\r\n\r\n // Check hide/isolate possibilities\r\n if (HideIsolateEmphasizeManager.isOverrideCategories(vp))\r\n return true;\r\n\r\n if (HideIsolateEmphasizeManager.isOverrideModels(vp))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelectedElementsModel` tool button is pressed\r\n */\r\n public async processIsolateSelectedElementsModel(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.isolateSelectedElementsModel(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelectedElementsCategory` tool button is pressed\r\n */\r\n public async processIsolateSelectedElementsCategory(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.isolateSelectedElementsCategory(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `IsolateSelected` tool button is pressed\r\n */\r\n public async processIsolateSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.isolateSelected(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.IsolateSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.IsolateSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.IsolateSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsModel` tool button is pressed\r\n */\r\n public async processHideSelectedElementsModel(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.hideSelectedElementsModel(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedModels, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelectedElementsCategory` tool button is pressed\r\n */\r\n public async processHideSelectedElementsCategory(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.hideSelectedElementsCategory(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `HideSelected` tool button is pressed\r\n */\r\n public async processHideSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n HideIsolateEmphasizeManager.hideSelected(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.HideSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.HideSelectedCategories, featureIdMap.get(HideIsolateEmphasizeAction.HideSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `EmphasizeSelected` tool button is pressed\r\n */\r\n public async processEmphasizeSelected(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n\r\n await HideIsolateEmphasizeManager.emphasizeSelected(vp);\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.EmphasizeSelectedElements });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.EmphasizeSelectedElements, featureIdMap.get(HideIsolateEmphasizeAction.EmphasizeSelectedElements)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n\r\n // clear out selection now that any callbacks have processed\r\n const selection = vp.view.iModel.selectionSet;\r\n if (selection.isActive)\r\n selection.emptyAll();\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearEmphasize` tool button is pressed\r\n */\r\n public async processClearEmphasize(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearEmphasize(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized, featureIdMap.get(HideIsolateEmphasizeAction.ClearHiddenIsolatedEmphasized)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearOverrideModels` tool button is pressed\r\n */\r\n public async processClearOverrideModels(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearOverrideModels(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearOverrideModels });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideModels, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideModels)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Function that is run when `ClearOverrideCategories` tool button is pressed\r\n */\r\n public async processClearOverrideCategories(): Promise<void> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return;\r\n HideIsolateEmphasizeManager.clearOverrideCategories(vp);\r\n\r\n HideIsolateEmphasizeActionHandler.emphasizeElementsChanged.raiseEvent({ viewport: vp, action: HideIsolateEmphasizeAction.ClearOverrideCategories });\r\n UiFramework.postTelemetry(HideIsolateEmphasizeAction.ClearOverrideCategories, featureIdMap.get(HideIsolateEmphasizeAction.ClearOverrideCategories)); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(HideIsolateEmphasizeActionHandler.hideIsolateEmphasizeUiSyncId);\r\n }\r\n\r\n /**\r\n * Add category ids to the category override cache (hidden or isolated categories)\r\n */\r\n public static updateCategoryOverride(vp: Viewport, ids: string[]) {\r\n const prevIds = this._overrideCategoryIds.get(vp);\r\n const newIds = [...(prevIds || []), ...ids];\r\n this._overrideCategoryIds.set(vp, new Set(newIds));\r\n }\r\n\r\n /**\r\n * Add model ids to the model override cache (hidden or isolated models)\r\n */\r\n public static updateModelOverride(vp: Viewport, ids: string[]) {\r\n const prevIds = this._overrideModelIds.get(vp);\r\n const newIds = [...(prevIds || []), ...ids];\r\n this._overrideModelIds.set(vp, new Set(newIds));\r\n }\r\n\r\n /**\r\n * Return the list of category overrides (hidden or isolated categories)\r\n */\r\n public static getCategoryOverrides(vp: Viewport) {\r\n return this._overrideCategoryIds.get(vp);\r\n }\r\n\r\n /**\r\n * Return the list of model overrides (hidden or isolated models)\r\n */\r\n public static getModelOverrides(vp: Viewport) {\r\n return this._overrideModelIds.get(vp);\r\n }\r\n\r\n /**\r\n * Clear the category override cache (hidden or isolated categories)\r\n */\r\n private static clearCategoryOverride(vp: Viewport) {\r\n this._overrideCategoryIds.delete(vp);\r\n }\r\n\r\n /**\r\n * Clear the model override cache (hidden or isolated models)\r\n */\r\n private static clearModelOverride(vp: Viewport) {\r\n this._overrideModelIds.delete(vp);\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/appui-react",
|
|
3
|
-
"version": "3.7.0-dev.
|
|
3
|
+
"version": "3.7.0-dev.3",
|
|
4
4
|
"description": "UI framework",
|
|
5
5
|
"main": "lib/cjs/appui-react.js",
|
|
6
6
|
"module": "lib/esm/appui-react.js",
|
|
@@ -20,19 +20,19 @@
|
|
|
20
20
|
"url": "http://www.bentley.com"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@itwin/appui-abstract": "^3.7.0-dev.
|
|
24
|
-
"@itwin/appui-layout-react": "^3.7.0-dev.
|
|
25
|
-
"@itwin/components-react": "^3.7.0-dev.
|
|
26
|
-
"@itwin/core-bentley": "^3.7.0-dev.
|
|
27
|
-
"@itwin/core-common": "^3.7.0-dev.
|
|
28
|
-
"@itwin/core-frontend": "^3.7.0-dev.
|
|
29
|
-
"@itwin/core-geometry": "^3.7.0-dev.
|
|
30
|
-
"@itwin/core-markup": "^3.7.0-dev.
|
|
31
|
-
"@itwin/core-quantity": "^3.7.0-dev.
|
|
32
|
-
"@itwin/core-react": "^3.7.0-dev.
|
|
33
|
-
"@itwin/imodel-components-react": "^3.7.0-dev.
|
|
34
|
-
"@itwin/presentation-common": "^3.7.0-dev.
|
|
35
|
-
"@itwin/presentation-frontend": "^3.7.0-dev.
|
|
23
|
+
"@itwin/appui-abstract": "^3.7.0-dev.3",
|
|
24
|
+
"@itwin/appui-layout-react": "^3.7.0-dev.3",
|
|
25
|
+
"@itwin/components-react": "^3.7.0-dev.3",
|
|
26
|
+
"@itwin/core-bentley": "^3.7.0-dev.3",
|
|
27
|
+
"@itwin/core-common": "^3.7.0-dev.3",
|
|
28
|
+
"@itwin/core-frontend": "^3.7.0-dev.3",
|
|
29
|
+
"@itwin/core-geometry": "^3.7.0-dev.3",
|
|
30
|
+
"@itwin/core-markup": "^3.7.0-dev.3",
|
|
31
|
+
"@itwin/core-quantity": "^3.7.0-dev.3",
|
|
32
|
+
"@itwin/core-react": "^3.7.0-dev.3",
|
|
33
|
+
"@itwin/imodel-components-react": "^3.7.0-dev.3",
|
|
34
|
+
"@itwin/presentation-common": "^3.7.0-dev.3",
|
|
35
|
+
"@itwin/presentation-frontend": "^3.7.0-dev.3",
|
|
36
36
|
"react": "^17.0.0",
|
|
37
37
|
"react-dom": "^17.0.0",
|
|
38
38
|
"react-redux": "^7.2.2",
|
|
@@ -43,22 +43,22 @@
|
|
|
43
43
|
"NOTE: All tools used by scripts in this package must be listed as devDependencies"
|
|
44
44
|
],
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@itwin/appui-abstract": "3.7.0-dev.
|
|
47
|
-
"@itwin/appui-layout-react": "3.7.0-dev.
|
|
48
|
-
"@itwin/build-tools": "3.7.0-dev.
|
|
49
|
-
"@itwin/components-react": "3.7.0-dev.
|
|
50
|
-
"@itwin/core-bentley": "3.7.0-dev.
|
|
51
|
-
"@itwin/core-common": "3.7.0-dev.
|
|
52
|
-
"@itwin/core-frontend": "3.7.0-dev.
|
|
53
|
-
"@itwin/core-geometry": "3.7.0-dev.
|
|
54
|
-
"@itwin/core-markup": "3.7.0-dev.
|
|
55
|
-
"@itwin/core-quantity": "3.7.0-dev.
|
|
56
|
-
"@itwin/core-react": "3.7.0-dev.
|
|
57
|
-
"@itwin/eslint-plugin": "3.7.0-dev.
|
|
58
|
-
"@itwin/imodel-components-react": "3.7.0-dev.
|
|
59
|
-
"@itwin/presentation-common": "3.7.0-dev.
|
|
60
|
-
"@itwin/presentation-frontend": "3.7.0-dev.
|
|
61
|
-
"@itwin/presentation-testing": "3.7.0-dev.
|
|
46
|
+
"@itwin/appui-abstract": "3.7.0-dev.3",
|
|
47
|
+
"@itwin/appui-layout-react": "3.7.0-dev.3",
|
|
48
|
+
"@itwin/build-tools": "3.7.0-dev.3",
|
|
49
|
+
"@itwin/components-react": "3.7.0-dev.3",
|
|
50
|
+
"@itwin/core-bentley": "3.7.0-dev.3",
|
|
51
|
+
"@itwin/core-common": "3.7.0-dev.3",
|
|
52
|
+
"@itwin/core-frontend": "3.7.0-dev.3",
|
|
53
|
+
"@itwin/core-geometry": "3.7.0-dev.3",
|
|
54
|
+
"@itwin/core-markup": "3.7.0-dev.3",
|
|
55
|
+
"@itwin/core-quantity": "3.7.0-dev.3",
|
|
56
|
+
"@itwin/core-react": "3.7.0-dev.3",
|
|
57
|
+
"@itwin/eslint-plugin": "3.7.0-dev.3",
|
|
58
|
+
"@itwin/imodel-components-react": "3.7.0-dev.3",
|
|
59
|
+
"@itwin/presentation-common": "3.7.0-dev.3",
|
|
60
|
+
"@itwin/presentation-frontend": "3.7.0-dev.3",
|
|
61
|
+
"@itwin/presentation-testing": "3.7.0-dev.3",
|
|
62
62
|
"@testing-library/react": "^12.0.0",
|
|
63
63
|
"@testing-library/react-hooks": "^7.0.2",
|
|
64
64
|
"@testing-library/user-event": "^14.4.2",
|
|
@@ -114,8 +114,8 @@
|
|
|
114
114
|
"dependencies": {
|
|
115
115
|
"@bentley/icons-generic": "^1.0.15",
|
|
116
116
|
"@bentley/icons-generic-webfont": "^1.0.15",
|
|
117
|
-
"@itwin/core-telemetry": "3.7.0-dev.
|
|
118
|
-
"@itwin/presentation-components": "3.7.0-dev.
|
|
117
|
+
"@itwin/core-telemetry": "3.7.0-dev.3",
|
|
118
|
+
"@itwin/presentation-components": "3.7.0-dev.3",
|
|
119
119
|
"@itwin/itwinui-css": "0.x",
|
|
120
120
|
"@itwin/itwinui-react": "~1.46.0",
|
|
121
121
|
"@itwin/itwinui-icons-react": "^1.15.0",
|