@itwin/saved-views-react 0.4.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -2
- package/lib/SavedView.d.ts +26 -4
- package/lib/SavedViewTile/SavedViewTile.js +2 -2
- package/lib/SavedViewsClient/ITwinSavedViewsClient.d.ts +9 -9
- package/lib/SavedViewsClient/ITwinSavedViewsClient.js +58 -36
- package/lib/SavedViewsClient/SavedViewsClient.d.ts +27 -19
- package/lib/applySavedView.d.ts +67 -0
- package/lib/applySavedView.js +47 -0
- package/lib/captureSavedViewData.d.ts +30 -5
- package/lib/captureSavedViewData.js +33 -12
- package/lib/captureSavedViewThumbnail.d.ts +8 -1
- package/lib/captureSavedViewThumbnail.js +8 -1
- package/lib/createViewState.d.ts +31 -2
- package/lib/createViewState.js +35 -22
- package/lib/experimental.d.ts +0 -3
- package/lib/experimental.js +0 -3
- package/lib/index.d.ts +3 -1
- package/lib/index.js +2 -0
- package/lib/translation/SavedViewTypes.d.ts +0 -2
- package/lib/translation/SavedViewsExtensionHandlers.d.ts +17 -9
- package/lib/translation/SavedViewsExtensionHandlers.js +36 -25
- package/lib/translation/displayStyleExtractor.js +72 -0
- package/lib/translation/extensionExtractor.d.ts +0 -6
- package/lib/translation/extensionExtractor.js +0 -24
- package/lib/useSavedViews.d.ts +8 -3
- package/lib/useSavedViews.js +27 -24
- package/lib/utils.d.ts +1 -0
- package/package.json +4 -4
- package/lib/ModelCategoryOverrideProvider.d.ts +0 -31
- package/lib/ModelCategoryOverrideProvider.js +0 -88
- package/lib/translation/SavedViewTranslation.d.ts +0 -4
- package/lib/translation/SavedViewTranslation.js +0 -25
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { type FeatureAppearanceProps } from "@itwin/core-common";
|
|
2
|
-
import type { FeatureOverrideProvider, FeatureSymbology, Viewport } from "@itwin/core-frontend";
|
|
3
|
-
interface AppearanceOverrideProps {
|
|
4
|
-
ids: string[];
|
|
5
|
-
app: FeatureAppearanceProps;
|
|
6
|
-
}
|
|
7
|
-
/** Overrides given categories to provide emphasize functionality
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export interface ModelCategoryOverrideProviderProps {
|
|
11
|
-
subCategoryOverrides?: AppearanceOverrideProps[];
|
|
12
|
-
modelOverrides?: AppearanceOverrideProps[];
|
|
13
|
-
catEmphasizeOverride?: AppearanceOverrideProps;
|
|
14
|
-
modelEmphasizeOverride?: AppearanceOverrideProps;
|
|
15
|
-
}
|
|
16
|
-
/** Model & Category override provider (override plus emphasize)
|
|
17
|
-
* @public
|
|
18
|
-
*/
|
|
19
|
-
export declare class ModelCategoryOverrideProvider implements FeatureOverrideProvider {
|
|
20
|
-
private readonly _subCategoryOverrides;
|
|
21
|
-
private readonly _modelOverrides;
|
|
22
|
-
private readonly _emphasizedSubcats;
|
|
23
|
-
private readonly _emphasizedModels;
|
|
24
|
-
private _catDefaultAppearance?;
|
|
25
|
-
private _modelDefaultAppearance?;
|
|
26
|
-
static get(vp: Viewport): ModelCategoryOverrideProvider | undefined;
|
|
27
|
-
static getOrCreate(vp: Viewport): ModelCategoryOverrideProvider;
|
|
28
|
-
addFeatureOverrides(overrides: FeatureSymbology.Overrides, _vp: Viewport): void;
|
|
29
|
-
fromJSON(props: ModelCategoryOverrideProviderProps): boolean;
|
|
30
|
-
}
|
|
31
|
-
export {};
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { FeatureAppearance } from "@itwin/core-common";
|
|
6
|
-
/** Model & Category override provider (override plus emphasize)
|
|
7
|
-
* @public
|
|
8
|
-
*/
|
|
9
|
-
export class ModelCategoryOverrideProvider {
|
|
10
|
-
_subCategoryOverrides = new Map();
|
|
11
|
-
_modelOverrides = new Map();
|
|
12
|
-
_emphasizedSubcats = [];
|
|
13
|
-
_emphasizedModels = [];
|
|
14
|
-
_catDefaultAppearance;
|
|
15
|
-
_modelDefaultAppearance;
|
|
16
|
-
static get(vp) {
|
|
17
|
-
return vp.findFeatureOverrideProviderOfType(ModelCategoryOverrideProvider);
|
|
18
|
-
}
|
|
19
|
-
static getOrCreate(vp) {
|
|
20
|
-
let provider = this.get(vp);
|
|
21
|
-
if (!provider) {
|
|
22
|
-
provider = new ModelCategoryOverrideProvider();
|
|
23
|
-
vp.addFeatureOverrideProvider(provider);
|
|
24
|
-
}
|
|
25
|
-
return provider;
|
|
26
|
-
}
|
|
27
|
-
addFeatureOverrides(overrides, _vp) {
|
|
28
|
-
this._subCategoryOverrides.forEach((appearance, ids, _map) => {
|
|
29
|
-
ids.forEach((id) => {
|
|
30
|
-
overrides.override({ subCategoryId: id, appearance });
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
this._modelOverrides.forEach((appearance, ids, _map) => {
|
|
34
|
-
ids.forEach((id) => {
|
|
35
|
-
overrides.override({ modelId: id, appearance });
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
if (0 !== this._emphasizedSubcats.length) {
|
|
39
|
-
if (this._catDefaultAppearance) {
|
|
40
|
-
overrides.setDefaultOverrides(this._catDefaultAppearance, true);
|
|
41
|
-
}
|
|
42
|
-
// Override with nothing so that we keep the category looking normal and override the default appearance of everything else
|
|
43
|
-
const override = FeatureAppearance.fromJSON({});
|
|
44
|
-
this._emphasizedSubcats.forEach((id) => {
|
|
45
|
-
overrides.override({
|
|
46
|
-
subCategoryId: id,
|
|
47
|
-
appearance: override,
|
|
48
|
-
onConflict: "replace",
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
if (0 !== this._emphasizedModels.length) {
|
|
53
|
-
if (this._modelDefaultAppearance) {
|
|
54
|
-
overrides.setDefaultOverrides(this._modelDefaultAppearance, true);
|
|
55
|
-
}
|
|
56
|
-
// Override with nothing so that we keep the category looking normal and override the default appearance of everything else
|
|
57
|
-
const override = FeatureAppearance.fromJSON({});
|
|
58
|
-
this._emphasizedModels.forEach((id) => {
|
|
59
|
-
overrides.override({
|
|
60
|
-
modelId: id,
|
|
61
|
-
appearance: override,
|
|
62
|
-
onConflict: "replace",
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
fromJSON(props) {
|
|
68
|
-
if (props.subCategoryOverrides) {
|
|
69
|
-
props.subCategoryOverrides.forEach((appProps) => {
|
|
70
|
-
this._subCategoryOverrides.set(appProps.ids, FeatureAppearance.fromJSON(appProps.app));
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
if (props.modelOverrides) {
|
|
74
|
-
props.modelOverrides.forEach((appProps) => {
|
|
75
|
-
this._modelOverrides.set(appProps.ids, FeatureAppearance.fromJSON(appProps.app));
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
if (props.catEmphasizeOverride) {
|
|
79
|
-
this._emphasizedSubcats.push(...props.catEmphasizeOverride.ids);
|
|
80
|
-
this._catDefaultAppearance = FeatureAppearance.fromJSON(props.catEmphasizeOverride.app);
|
|
81
|
-
}
|
|
82
|
-
if (props.modelEmphasizeOverride) {
|
|
83
|
-
this._emphasizedModels.push(...props.modelEmphasizeOverride.ids);
|
|
84
|
-
this._modelDefaultAppearance = FeatureAppearance.fromJSON(props.modelEmphasizeOverride.app);
|
|
85
|
-
}
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type Viewport } from "@itwin/core-frontend";
|
|
2
|
-
import type { SavedView } from "../SavedView.js";
|
|
3
|
-
/** Apply extension data (overrides) onto the supplied viewport. Only works with legacy-formatted extension data. */
|
|
4
|
-
export declare function applyExtensionsToViewport(viewport: Viewport, savedView: SavedView): Promise<void>;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { EmphasizeElements } from "@itwin/core-frontend";
|
|
6
|
-
import { SavedViewsExtensionHandlers } from "./SavedViewsExtensionHandlers.js";
|
|
7
|
-
/** Apply extension data (overrides) onto the supplied viewport. Only works with legacy-formatted extension data. */
|
|
8
|
-
export async function applyExtensionsToViewport(viewport, savedView) {
|
|
9
|
-
// Clear the current if there's any (this should always happen, even if there are no extensions)
|
|
10
|
-
if (EmphasizeElements.get(viewport)) {
|
|
11
|
-
EmphasizeElements.clear(viewport);
|
|
12
|
-
viewport.isFadeOutActive = false;
|
|
13
|
-
}
|
|
14
|
-
const defaultHandlers = [
|
|
15
|
-
SavedViewsExtensionHandlers.EmphasizeElements,
|
|
16
|
-
SavedViewsExtensionHandlers.PerModelCategoryVisibility,
|
|
17
|
-
SavedViewsExtensionHandlers.VisibilityOverride,
|
|
18
|
-
];
|
|
19
|
-
for (const extHandler of defaultHandlers) {
|
|
20
|
-
const extData = savedView.extensions?.get(extHandler.extensionName);
|
|
21
|
-
if (extData) {
|
|
22
|
-
await extHandler.onViewApply(extData, viewport);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|