@cognite/reveal-components 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/poi-markers/poi-create-cursor.js +4 -0
  3. package/dist/common/i18n/en/reveal-components.js +183 -178
  4. package/dist/data-providers/Fdm3dDataProvider.d.ts +3 -3
  5. package/dist/data-providers/FdmSDK.d.ts +8 -0
  6. package/dist/data-providers/FdmSDK.js +34 -21
  7. package/dist/data-providers/assets/createClassicAssetsCache.d.ts +7 -0
  8. package/dist/data-providers/assets/createClassicAssetsCache.js +18 -0
  9. package/dist/data-providers/assets/createDmsDescribableNodesCache.d.ts +23 -0
  10. package/dist/data-providers/assets/createDmsDescribableNodesCache.js +19 -0
  11. package/dist/data-providers/cache/PointCloudAnnotationCache.js +10 -10
  12. package/dist/data-providers/cache/RevisionFdmNodeCache.d.ts +3 -2
  13. package/dist/data-providers/cache/RevisionFdmNodeCache.js +65 -39
  14. package/dist/data-providers/cache/annotationModelUtils.js +8 -6
  15. package/dist/data-providers/cache/cad/CadInstanceMappingsCache.d.ts +5 -2
  16. package/dist/data-providers/cache/cad/CadInstanceMappingsCacheImpl.js +9 -6
  17. package/dist/data-providers/cache/cad/FdmCadNodeCache.d.ts +3 -1
  18. package/dist/data-providers/cache/cad/FdmCadNodeCacheImpl.d.ts +5 -0
  19. package/dist/data-providers/cache/cad/FdmCadNodeCacheImpl.js +8 -3
  20. package/dist/data-providers/core-dm-provider/CoreDm3dDataProvider.d.ts +3 -3
  21. package/dist/data-providers/core-dm-provider/CoreDm3dDataProvider.js +11 -11
  22. package/dist/data-providers/core-dm-provider/filterNodesByMappedTo3d.js +13 -13
  23. package/dist/data-providers/core-dm-provider/getCadConnectionsForInstances.js +18 -18
  24. package/dist/data-providers/core-dm-provider/getCadConnectionsForRevisions.js +11 -11
  25. package/dist/data-providers/core-dm-provider/getCadModelsForInstance.js +3 -3
  26. package/dist/data-providers/core-dm-provider/getDMSModels.js +6 -6
  27. package/dist/data-providers/core-dm-provider/getEdgeConnected3dInstances.js +8 -8
  28. package/dist/data-providers/core-dm-provider/getFdmConnectionsForNodes.d.ts +2 -3
  29. package/dist/data-providers/core-dm-provider/getFdmConnectionsForNodes.js +19 -19
  30. package/dist/data-providers/core-dm-provider/listMappedFdmNodes.js +14 -14
  31. package/dist/data-providers/index.d.ts +2 -1
  32. package/dist/data-providers/index.js +2 -0
  33. package/dist/data-providers/legacy-fdm-provider/LegacyFdm3dDataProvider.d.ts +3 -3
  34. package/dist/data-providers/legacy-fdm-provider/fdmEdgesToCadConnections.js +3 -3
  35. package/dist/data-providers/legacy-fdm-provider/getFdmConnectionsForNodeIds.d.ts +3 -3
  36. package/dist/data-providers/legacy-fdm-provider/getFdmConnectionsForNodeIds.js +1 -1
  37. package/dist/data-providers/network/cad/searchClassicAssetsForCadModels.js +5 -5
  38. package/dist/data-providers/network/cad/searchHybridDmAssetsForCadModels.js +3 -3
  39. package/dist/data-providers/network/common/getDMAssetsForAnnotationReference.js +3 -3
  40. package/dist/data-providers/utils/getDMSModelRevisionRefs.js +3 -3
  41. package/dist/domains/annotation360/image360SceneCollectionTransform.d.ts +18 -0
  42. package/dist/domains/annotation360/image360SceneCollectionTransform.js +37 -0
  43. package/dist/domains/index.d.ts +4 -2
  44. package/dist/domains/index.js +3 -1
  45. package/dist/domains/pointsOfInterest/PointsOfInterestTool.d.ts +5 -0
  46. package/dist/domains/pointsOfInterest/PointsOfInterestTool.js +36 -17
  47. package/dist/domains/reveal/RevealDomainObjectUtils.d.ts +1 -0
  48. package/dist/domains/reveal/RevealDomainObjectUtils.js +1 -1
  49. package/dist/domains/reveal/cad/CadDomainObject.d.ts +18 -1
  50. package/dist/domains/reveal/cad/CadDomainObject.js +31 -15
  51. package/dist/foundation/renderTarget/CdfCaches.d.ts +9 -1
  52. package/dist/foundation/renderTarget/CdfCaches.js +24 -14
  53. package/dist/foundation/treeNodes/cad-tree-node/cad-lazy-loader.d.ts +3 -1
  54. package/dist/foundation/treeNodes/cad-tree-node/cad-lazy-loader.js +33 -22
  55. package/dist/foundation/treeNodes/cad-tree-node/cad-node-update-styling.js +6 -6
  56. package/dist/foundation/treeNodes/cad-tree-node/cad-tree-node.d.ts +1 -0
  57. package/dist/foundation/treeNodes/cad-tree-node/cad-tree-node.js +4 -1
  58. package/dist/foundation/treeNodes/cad-tree-node/nodes-and-instance-mappings-sdk/classic-instance-mappings-sdk.js +2 -5
  59. package/dist/foundation/treeNodes/cad-tree-node/nodes-and-instance-mappings-sdk/core-dm-instance-mappings-sdk.d.ts +14 -0
  60. package/dist/foundation/treeNodes/cad-tree-node/nodes-and-instance-mappings-sdk/core-dm-instance-mappings-sdk.js +23 -0
  61. package/dist/ui/components/InstanceLabel/InstanceLabel.js +18 -30
  62. package/dist/ui/components/Reveal3DResources/Reveal3DResources.js +20 -20
  63. package/dist/ui/components/RevealCanvas/SDKProvider.js +6 -6
  64. package/dist/ui/components/RevealCanvas/UsageMetricsTrackerContext.d.ts +3 -0
  65. package/dist/ui/components/RevealCanvas/UsageMetricsTrackerContext.js +6 -0
  66. package/dist/ui/components/RevealCanvas/ViewerContext.d.ts +2 -0
  67. package/dist/ui/components/RevealCanvas/ViewerContext.js +5 -5
  68. package/dist/ui/components/RevealContext/RevealContext.js +6 -6
  69. package/dist/ui/components/RevealToolbar/AssetContextualizedButton.js +1 -1
  70. package/dist/ui/components/RuleBasedOutputs/hooks/useGetDMConnectionWithNodeFromHybridMappingsQuery.js +11 -11
  71. package/dist/ui/components/Widget/RevealWidget.context.d.ts +2 -1
  72. package/dist/ui/components/Widget/RevealWidget.context.js +1 -1
  73. package/dist/ui/components/Widget/RevealWidget.d.ts +11 -2
  74. package/dist/ui/components/Widget/RevealWidget.js +35 -20
  75. package/dist/ui/components/Widget/RevealWidgetCameraController.d.ts +3 -1
  76. package/dist/ui/components/Widget/RevealWidgetCameraController.js +12 -10
  77. package/dist/ui/components/Widget/RevealWidgetController.d.ts +3 -1
  78. package/dist/ui/components/Widget/RevealWidgetController.js +40 -33
  79. package/dist/ui/components/Widget/index.d.ts +1 -1
  80. package/dist/ui/components/Widget/styling/applyPointCloudInstanceStyling.js +5 -5
  81. package/dist/ui/components/Widget/useRevealWidgetMetricsTracking.d.ts +21 -0
  82. package/dist/ui/components/Widget/useRevealWidgetMetricsTracking.js +33 -0
  83. package/dist/ui/components/commandBased/Factories/DefaultIcons.js +31 -31
  84. package/dist/ui/components/commandBased/buttons/DropdownButton.d.ts +2 -0
  85. package/dist/ui/components/commandBased/buttons/DropdownButton.js +67 -48
  86. package/dist/ui/components/commandBased/pointsOfInterest/PoiCommentSection.js +6 -6
  87. package/dist/ui/components/commandBased/treeView/DomainObjectTreeView/CadNodeInfoDialog.context.d.ts +16 -0
  88. package/dist/ui/components/commandBased/treeView/DomainObjectTreeView/CadNodeInfoDialog.context.js +6 -0
  89. package/dist/ui/components/commandBased/treeView/DomainObjectTreeView/CadNodeInfoDialog.d.ts +15 -0
  90. package/dist/ui/components/commandBased/treeView/DomainObjectTreeView/CadNodeInfoDialog.function.d.ts +5 -0
  91. package/dist/ui/components/commandBased/treeView/DomainObjectTreeView/CadNodeInfoDialog.function.js +14 -0
  92. package/dist/ui/components/commandBased/treeView/DomainObjectTreeView/CadNodeInfoDialog.js +105 -0
  93. package/dist/ui/components/commandBased/treeView/DomainObjectTreeView/DomainObjectTreeView.function.d.ts +13 -2
  94. package/dist/ui/components/commandBased/treeView/DomainObjectTreeView/DomainObjectTreeView.function.js +17 -9
  95. package/dist/ui/components/commandBased/treeView/DomainObjectTreeView/DomainObjectTreeView.js +27 -13
  96. package/dist/ui/components/commandBased/treeView/TreeView/components/tree-view-info.js +2 -2
  97. package/dist/ui/components/commandBased/treeView/TreeView/extraComponents/CadTreeAssetMappingDropdown.js +34 -33
  98. package/dist/ui/components/commandBased/treeView/TreeView/tree-view-node.js +1 -0
  99. package/dist/ui/components/commandBased/treeView/TreeView/tree-view-props.d.ts +1 -0
  100. package/dist/ui/components/commandBased/treeView/TreeView/tree-view.js +27 -25
  101. package/dist/ui/components/i18n/I18n.js +3 -3
  102. package/dist/ui/components/index.d.ts +1 -1
  103. package/dist/ui/hooks/network/fetchLinkFromRelationshipsByTimeseries.js +4 -4
  104. package/dist/ui/hooks/network/getImage360CollectionsForDmInstance.js +7 -7
  105. package/dist/ui/hooks/network/getTimeseriesLatestDatapoints.js +3 -3
  106. package/dist/ui/hooks/pointClouds/fetchAnnotationsForModel.js +4 -4
  107. package/dist/ui/hooks/pointClouds/usePointCloudAnnotationMappingForIntersection.js +11 -11
  108. package/dist/ui/hooks/pointClouds/usePointCloudAnnotationMappingsForAssetInstances.js +4 -4
  109. package/dist/ui/hooks/scenes/use3dScenes.js +4 -4
  110. package/dist/ui/query/core-dm/usePointCloudDMVolumeMappingForIntersection.js +9 -9
  111. package/dist/ui/query/core-dm/usePointCloudDMVolumes.js +10 -10
  112. package/dist/ui/query/index.d.ts +1 -0
  113. package/dist/ui/query/index.js +17 -16
  114. package/dist/ui/query/useAll3dDirectConnectionsWithProperties.js +6 -6
  115. package/dist/ui/query/useAssetsAndTimeseriesLinkageDataQuery.js +24 -24
  116. package/dist/ui/query/useAssetsAndTimeseriesLinkages.context.d.ts +3 -2
  117. package/dist/ui/query/useAssetsAndTimeseriesLinkages.context.js +4 -4
  118. package/dist/ui/query/useAssetsAndTimeseriesLinkages.js +13 -13
  119. package/dist/ui/query/useAssetsByIdsQuery.js +10 -11
  120. package/dist/ui/query/useCadNode3DInfo.d.ts +8 -0
  121. package/dist/ui/query/useCadNode3DInfo.js +24 -0
  122. package/dist/ui/query/useFetchClassicAssetsByIds.js +5 -5
  123. package/dist/ui/query/useFilterOnClassicAssetsInScene.js +6 -6
  124. package/dist/ui/query/useHybridMappingsForAssetInstances.js +9 -9
  125. package/dist/ui/query/useInstanceNames.d.ts +11 -0
  126. package/dist/ui/query/useInstanceNames.js +17 -0
  127. package/dist/ui/query/useInstancesByIdsQuery.context.d.ts +3 -5
  128. package/dist/ui/query/useInstancesByIdsQuery.context.js +4 -8
  129. package/dist/ui/query/useInstancesByIdsQuery.d.ts +9 -6
  130. package/dist/ui/query/useInstancesByIdsQuery.js +14 -23
  131. package/dist/ui/query/useNamedDmInstancesByIds.d.ts +12 -0
  132. package/dist/utilities/cache/ReadonlyEntityCache.d.ts +4 -0
  133. package/dist/utilities/cache/ReadonlyEntityCache.js +27 -0
  134. package/dist/utilities/createMixpanelUsageMetricsTracker.d.ts +23 -0
  135. package/dist/utilities/createMixpanelUsageMetricsTracker.js +23 -0
  136. package/dist/utilities/externalIndex.d.ts +2 -0
  137. package/dist/utilities/externalIndex.js +3 -1
  138. package/dist/utilities/getInstancesFromClick.js +9 -9
  139. package/dist/utilities/index.d.ts +2 -1
  140. package/dist/utilities/index.js +12 -9
  141. package/dist/utilities/queryKeys.d.ts +2 -0
  142. package/dist/utilities/queryKeys.js +7 -0
  143. package/dist/utilities/signal/useCombinedUpdateSignal.d.ts +9 -0
  144. package/dist/utilities/signal/useCombinedUpdateSignal.js +14 -0
  145. package/dist/utilities/signal/useMemoWithUpdateSignal.d.ts +3 -0
  146. package/dist/utilities/signal/useMemoWithUpdateSignal.js +13 -0
  147. package/dist/utilities/usageMetricsTracker.d.ts +4 -0
  148. package/dist/utilities/usageMetricsTracker.js +4 -0
  149. package/package.json +7 -3
  150. package/dist/ui/hooks/network/getAssetsByIds.d.ts +0 -2
  151. package/dist/ui/hooks/network/getAssetsByIds.js +0 -4
  152. package/dist/ui/query/useDmsInstanceByIdsQuery.d.ts +0 -3
  153. package/dist/ui/query/useDmsInstanceByIdsQuery.js +0 -18
@@ -2,44 +2,46 @@ import { assertNever as e } from "../../../utilities/assertNever.js";
2
2
  import { RevealDomainObject as t } from "../../../domains/reveal/RevealDomainObject.js";
3
3
  import { Image360CollectionDomainObject as n } from "../../../domains/reveal/Image360Collection/Image360CollectionDomainObject.js";
4
4
  import { PointCloudDomainObject as r } from "../../../domains/reveal/pointCloud/PointCloudDomainObject.js";
5
- import { findViewerAnnotationInfo as i } from "../../../data-providers/cache/utils.js";
5
+ import { noopUsageMetricsTracker as i } from "../../../utilities/usageMetricsTracker.js";
6
6
  import { convertNewImage360AddOptionToRevealAddOptions as a, convertNewModel3dAddOptionToRevealAddOptions as o } from "../../../data-providers/types/typeAdapters.js";
7
- import { CadDomainObject as s } from "../../../domains/reveal/cad/CadDomainObject.js";
8
- import { RevealDomainObjectUtils as c } from "../../../domains/reveal/RevealDomainObjectUtils.js";
9
- import { SceneDomainObject as l } from "../../../domains/scene/SceneDomainObject.js";
10
- import "../../../domains/index.js";
7
+ import { findViewerAnnotationInfo as s } from "../../../data-providers/cache/utils.js";
11
8
  import "../../../data-providers/cache/index.js";
12
- import { getBoundsForInstance as u } from "../../../data-providers/network/bounds/getBoundsForInstance.js";
13
- import { getResourceIdentifiersFromResourceOptions as d } from "../../../data-providers/network/common/getResourceIdentifierFromResourceOptions.js";
14
- import { getResourceIdentifierWithType as f } from "../../../data-providers/network/common/getResourceIdentifierWithType.js";
15
- import { RevealWidgetCameraController as p } from "./RevealWidgetCameraController.js";
16
- import { applyCadDefaultStyling as m } from "./styling/applyCadDefaultStyling.js";
17
- import { applyCadInstanceStyling as h } from "./styling/applyCadInstanceStyling.js";
18
- import { applyImage360InstanceStyling as g } from "./styling/applyImage360InstanceStyling.js";
19
- import { applyPointCloudDefaultStyling as _ } from "./styling/applyPointCloudDefaultStyling.js";
20
- import { applyPointCloudInstanceStyling as v } from "./styling/applyPointCloudInstanceStyling.js";
9
+ import { CadDomainObject as c } from "../../../domains/reveal/cad/CadDomainObject.js";
10
+ import { RevealDomainObjectUtils as l } from "../../../domains/reveal/RevealDomainObjectUtils.js";
11
+ import { SceneDomainObject as u } from "../../../domains/scene/SceneDomainObject.js";
12
+ import "../../../domains/index.js";
13
+ import { getBoundsForInstance as d } from "../../../data-providers/network/bounds/getBoundsForInstance.js";
14
+ import { getResourceIdentifiersFromResourceOptions as f } from "../../../data-providers/network/common/getResourceIdentifierFromResourceOptions.js";
15
+ import { getResourceIdentifierWithType as p } from "../../../data-providers/network/common/getResourceIdentifierWithType.js";
16
+ import { RevealWidgetCameraController as m } from "./RevealWidgetCameraController.js";
17
+ import { applyCadDefaultStyling as h } from "./styling/applyCadDefaultStyling.js";
18
+ import { applyCadInstanceStyling as g } from "./styling/applyCadInstanceStyling.js";
19
+ import { applyImage360InstanceStyling as _ } from "./styling/applyImage360InstanceStyling.js";
20
+ import { applyPointCloudDefaultStyling as v } from "./styling/applyPointCloudDefaultStyling.js";
21
+ import { applyPointCloudInstanceStyling as y } from "./styling/applyPointCloudInstanceStyling.js";
21
22
  //#region libs/shared/reveal-components/src/ui/components/Widget/RevealWidgetController.ts
22
- var y = {
23
- addCadModel: c.addCadDomainObject,
24
- addPointCloud: c.addPointCloudDomainObject,
25
- addImage360: c.addImage360CollectionDomainObject,
26
- sceneFactory: (e) => new l(e),
27
- getBoundsForInstance: u,
28
- findViewerAnnotationInfo: i,
29
- applyCadDefaultStyling: m,
30
- applyPointCloudDefaultStyling: _
31
- }, b = class {
23
+ var b = {
24
+ addCadModel: l.addCadDomainObject,
25
+ addPointCloud: l.addPointCloudDomainObject,
26
+ addImage360: l.addImage360CollectionDomainObject,
27
+ sceneFactory: (e) => new u(e),
28
+ getBoundsForInstance: d,
29
+ findViewerAnnotationInfo: s,
30
+ applyCadDefaultStyling: h,
31
+ applyPointCloudDefaultStyling: v
32
+ }, x = class {
32
33
  _renderTarget;
33
34
  _dependencies;
35
+ _usageMetricsTracker;
34
36
  _cameraController;
35
- constructor(e, t = y) {
36
- this._renderTarget = e, this._dependencies = t, this._cameraController = new p(this._renderTarget);
37
+ constructor(e, t = b, n = i) {
38
+ this._renderTarget = e, this._dependencies = t, this._usageMetricsTracker = n, this._cameraController = new m(this._renderTarget, this._usageMetricsTracker);
37
39
  }
38
40
  get cameraController() {
39
41
  return this._cameraController;
40
42
  }
41
43
  async addResource(t) {
42
- if (t.type === "scene") {
44
+ if (this._usageMetricsTracker.track("reveal-widget.resource.add", { resourceType: t.type }), t.type === "scene") {
43
45
  let e = this._dependencies.sceneFactory(t);
44
46
  return this._renderTarget.root.addChild(e), await e.load(this._renderTarget), e;
45
47
  }
@@ -73,16 +75,21 @@ var y = {
73
75
  return this.getModels().filter((e) => e.isVisible(this._renderTarget));
74
76
  }
75
77
  styleByInstance(e, t) {
76
- let i = h(e, t.filter((e) => e instanceof s), this._renderTarget.cdfCaches.cogniteClient, this._renderTarget.cdfCaches.cadMappingsCache);
77
- return v(e, t.filter((e) => e instanceof r)), g(e, t.filter((e) => e instanceof n)), i;
78
+ this._usageMetricsTracker.track("reveal-widget.style.byInstance", {
79
+ instanceGroupCount: e.length,
80
+ modelCount: t.length
81
+ });
82
+ let i = g(e, t.filter((e) => e instanceof c), this._renderTarget.cdfCaches.cogniteClient, this._renderTarget.cdfCaches.cadMappingsCache);
83
+ return y(e, t.filter((e) => e instanceof r)), _(e, t.filter((e) => e instanceof n)), i;
78
84
  }
79
85
  async applyDefaultStyling(e, t) {
80
- let i = this._dependencies.applyCadDefaultStyling(e, t.filter((e) => e instanceof s), this._renderTarget.cdfCaches.cadMappingsCache);
86
+ let i = this._dependencies.applyCadDefaultStyling(e, t.filter((e) => e instanceof c), this._renderTarget.cdfCaches.cadMappingsCache);
81
87
  this._dependencies.applyPointCloudDefaultStyling(e, t.filter((e) => e instanceof r));
82
88
  let a = e.contextualizedAppearance ?? e.defaultAppearance ?? {};
83
89
  t.filter((e) => e instanceof n).forEach((e) => e.setDefaultStyling(a)), await i;
84
90
  }
85
91
  async focusInstances(e) {
92
+ this._usageMetricsTracker.track("reveal-widget.camera.focusInstances", { instanceCount: e.length });
86
93
  let t = await this._dependencies.getBoundsForInstance(e, this.getVisibleModels(), this._renderTarget.viewer, this._renderTarget.cdfCaches.cadMappingsCache, this._renderTarget.cdfCaches.image360Cache);
87
94
  if (t.length === 0) return;
88
95
  let n = t[0];
@@ -97,14 +104,14 @@ var y = {
97
104
  }
98
105
  }
99
106
  async getResourceIdentifierWithType(e) {
100
- return f(e, this._renderTarget.viewer, this._renderTarget.root.fdmSdk);
107
+ return p(e, this._renderTarget.viewer, this._renderTarget.root.fdmSdk);
101
108
  }
102
109
  async getResourceIdentifiersFromResourceOptions(e) {
103
- return d(e, this._renderTarget.viewer, this._renderTarget.root.fdmSdk);
110
+ return f(e, this._renderTarget.viewer, this._renderTarget.root.fdmSdk);
104
111
  }
105
112
  async getScreenshot(e, t, n) {
106
113
  return this._renderTarget.viewer.getScreenshot(e, t, n);
107
114
  }
108
115
  };
109
116
  //#endregion
110
- export { b as RevealWidgetController, y as defaultRevealWidgetControllerDependencies };
117
+ export { x as RevealWidgetController, b as defaultRevealWidgetControllerDependencies };
@@ -1,4 +1,4 @@
1
- export { RevealWidget, type RevealWidgetProps } from './RevealWidget';
1
+ export { RevealWidget, type RevealWidgetProps, type RevealWidgetTrackingProps, } from './RevealWidget';
2
2
  export { RevealWidgetController } from './RevealWidgetController';
3
3
  export { Default3DStyles } from './styling/constants';
4
4
  export { RevealWidgetCameraController } from './RevealWidgetCameraController';
@@ -2,18 +2,18 @@ import { createInstanceKey as e } from "../../../../data-providers/cache/idAndKe
2
2
  import { createInstanceReferenceKey as t } from "../../../../utilities/instanceIds/toKey.js";
3
3
  import "../../../../utilities/instanceIds/index.js";
4
4
  import { isDefined as n } from "../../../../utilities/isDefined.js";
5
- import { concatenateMapValues as r } from "../../../../utilities/map/concatenateMapValues.js";
6
- import { getInstanceReferencesFromPointCloudVolume as i, getPointCloudVolumeId as a } from "../../../../data-providers/cache/utils.js";
5
+ import { getInstanceReferencesFromPointCloudVolume as r, getPointCloudVolumeId as i } from "../../../../data-providers/cache/utils.js";
6
+ import { concatenateMapValues as a } from "../../../../utilities/map/concatenateMapValues.js";
7
7
  import { createPointCloudObjectCollectionFromVolumeIds as o } from "../../PointCloudContainer/useApplyPointCloudStyling.js";
8
8
  //#region libs/shared/reveal-components/src/ui/components/Widget/styling/applyPointCloudInstanceStyling.ts
9
9
  var s = Symbol("widget-instance-styling");
10
10
  function c(c, l) {
11
11
  let u = new Map(c.flatMap((t) => t.instanceIds.map((n) => t.style.pointcloud === void 0 ? void 0 : [e(n), t.style.pointcloud]).filter(n)));
12
12
  l.forEach((e) => {
13
- let c = e.model.stylableObjects.flatMap((e) => i(e).map((n) => {
13
+ let c = e.model.stylableObjects.flatMap((e) => r(e).map((n) => {
14
14
  let r = u.get(t(n));
15
- return r === void 0 ? void 0 : [r, a(e)];
16
- }).filter(n)), l = r(c), d = l.entries().map(([e, t]) => {
15
+ return r === void 0 ? void 0 : [r, i(e)];
16
+ }).filter(n)), l = a(c), d = l.entries().map(([e, t]) => {
17
17
  let n = o(t);
18
18
  return n === void 0 ? void 0 : {
19
19
  collection: n,
@@ -0,0 +1,21 @@
1
+ import { createMixpanelUsageMetricsTracker } from '../../../utilities/createMixpanelUsageMetricsTracker';
2
+ import { UsageMetricsTracker } from '../../../utilities/usageMetricsTracker';
3
+ export type UseRevealWidgetMetricsTrackingDeps = {
4
+ createMixpanelUsageMetricsTracker: typeof createMixpanelUsageMetricsTracker;
5
+ };
6
+ export type RevealWidgetTrackingProps = {
7
+ /**
8
+ * Mixpanel project token used to report usage events.
9
+ * Defaults to a Cognite-owned reveal-widget project if omitted.
10
+ */
11
+ mixpanelToken?: string;
12
+ }
13
+ /** Routes events into the host application's own tracker instead of Mixpanel. */
14
+ | {
15
+ usageMetricsTracker: UsageMetricsTracker;
16
+ }
17
+ /** Opts out of usage tracking entirely, including the default Mixpanel sink. */
18
+ | {
19
+ disabled: true;
20
+ };
21
+ export declare function useRevealWidgetMetricsTracking(appIdentifier: string, tracking: RevealWidgetTrackingProps | undefined, deps?: UseRevealWidgetMetricsTrackingDeps): UsageMetricsTracker;
@@ -0,0 +1,33 @@
1
+ import { noopUsageMetricsTracker as e } from "../../../utilities/usageMetricsTracker.js";
2
+ import { DEFAULT_REVEAL_WIDGET_MIXPANEL_TOKEN as t, createMixpanelUsageMetricsTracker as n } from "../../../utilities/createMixpanelUsageMetricsTracker.js";
3
+ import { useMemo as r } from "react";
4
+ //#region libs/shared/reveal-components/src/ui/components/Widget/useRevealWidgetMetricsTracking.ts
5
+ var i = { createMixpanelUsageMetricsTracker: n };
6
+ function a(t, n, a = i) {
7
+ let { disabled: s, usageMetricsTracker: c, mixpanelToken: l } = o(n);
8
+ return r(() => s ? e : c === void 0 ? a.createMixpanelUsageMetricsTracker(l, t) : c, [
9
+ s,
10
+ c,
11
+ l,
12
+ t,
13
+ a
14
+ ]);
15
+ }
16
+ function o(e) {
17
+ let n = {
18
+ disabled: !1,
19
+ mixpanelToken: t
20
+ };
21
+ return e === void 0 ? n : "disabled" in e ? {
22
+ ...n,
23
+ disabled: e.disabled
24
+ } : "usageMetricsTracker" in e ? {
25
+ ...n,
26
+ usageMetricsTracker: e.usageMetricsTracker
27
+ } : {
28
+ ...n,
29
+ mixpanelToken: e.mixpanelToken ?? "35470288c6070af490c9c1aa3c487d9d"
30
+ };
31
+ }
32
+ //#endregion
33
+ export { a as useRevealWidgetMetricsTracking };
@@ -1,42 +1,42 @@
1
- import { IconAlertTriangle as e, IconAngle as t, IconArrowLeft as n, IconArrowRight as r, IconAsset as i, IconBorderHorizontal as a, IconBorderVertical as o, IconBug as s, IconChartScatter3d as c, IconCircle as l, IconClearAll as u, IconCloudFog as d, IconCopy as f, IconCrop as p, IconCube as m, IconCubeSend as h, IconCubeUnfolded as g, IconCursorText as _, IconCylinder as v, IconDeviceFloppy as y, IconDrone as b, IconEye as x, IconFilter as S, IconFlag as C, IconFlipHorizontal as w, IconFlipVertical as T, IconFolder as E, IconFolderFilled as D, IconGripVertical as O, IconHelp as k, IconHierarchy as A, IconInfoCircle as j, IconLeaf as ee, IconLine as M, IconListTree as N, IconMapPin as P, IconMaximize as F, IconPerspective as I, IconPhotoScan as L, IconPlus as R, IconPoint as z, IconPolygon as B, IconRefresh as V, IconRestore as H, IconRuler as U, IconRulerMeasure as W, IconSettings as G, IconShape as K, IconShare as q, IconSnowflake as J, IconStack2 as Y, IconSun as X, IconTrash as Z, IconVectorBezier as Q, IconX as $ } from "@tabler/icons-react";
1
+ import { IconAlertTriangle as e, IconAngle as t, IconArrowLeft as n, IconArrowRight as r, IconBorderHorizontal as i, IconBorderVertical as a, IconBug as o, IconChartScatter3d as s, IconCircle as c, IconClearAll as l, IconCloudFog as u, IconCopy as d, IconCrop as f, IconCube as p, IconCubeSend as m, IconCubeUnfolded as h, IconCursorText as g, IconCylinder as _, IconDeviceFloppy as v, IconDrone as y, IconEye as b, IconFilter as x, IconFlag as S, IconFlipHorizontal as C, IconFlipVertical as w, IconFolder as T, IconFolderFilled as E, IconGripVertical as D, IconHelp as O, IconHexagon as k, IconHierarchy as A, IconInfoCircle as j, IconLeaf as ee, IconLine as M, IconListTree as N, IconMapPin as P, IconMaximize as F, IconPerspective as I, IconPhotoScan as L, IconPlus as R, IconPoint as z, IconPolygon as B, IconRefresh as V, IconRestore as H, IconRuler as U, IconRulerMeasure as W, IconSettings as G, IconShape as K, IconShare as q, IconSnowflake as J, IconStack2 as Y, IconSun as X, IconTrash as Z, IconVectorBezier as Q, IconX as $ } from "@tabler/icons-react";
2
2
  //#region libs/shared/reveal-components/src/ui/components/commandBased/Factories/DefaultIcons.tsx
3
3
  var te = [
4
4
  ["Angle", t],
5
- ["AssetsIcon", i],
5
+ ["AssetsIcon", k],
6
6
  ["ArrowLeft", n],
7
7
  ["ArrowRight", r],
8
- ["Axis3D", c],
9
- ["BorderHorizontal", a],
10
- ["BorderVertical", o],
11
- ["Bug", s],
12
- ["Circle", l],
13
- ["ClearAll", u],
8
+ ["Axis3D", s],
9
+ ["BorderHorizontal", i],
10
+ ["BorderVertical", a],
11
+ ["Bug", o],
12
+ ["Circle", c],
13
+ ["ClearAll", l],
14
14
  ["CloseLarge", $],
15
- ["CloudFog", d],
15
+ ["CloudFog", u],
16
16
  ["Coordinates", P],
17
- ["Copy", f],
18
- ["Crop", p],
19
- ["Cube", m],
20
- ["CubeFrontLeft", h],
21
- ["CubeFrontRight", h],
22
- ["Cubes", g],
23
- ["CubeTop", m],
24
- ["Cursor", _],
25
- ["CylinderArbitrary", v],
26
- ["CylinderHorizontal", v],
27
- ["CylinderVertical", v],
17
+ ["Copy", d],
18
+ ["Crop", f],
19
+ ["Cube", p],
20
+ ["CubeFrontLeft", m],
21
+ ["CubeFrontRight", m],
22
+ ["Cubes", h],
23
+ ["CubeTop", p],
24
+ ["Cursor", g],
25
+ ["CylinderArbitrary", _],
26
+ ["CylinderHorizontal", _],
27
+ ["CylinderVertical", _],
28
28
  ["Delete", Z],
29
- ["Drone", b],
29
+ ["Drone", y],
30
30
  ["ExpandAlternative", F],
31
- ["EyeShow", x],
32
- ["Filter", S],
33
- ["Flag", C],
34
- ["FlipHorizontal", w],
35
- ["FlipVertical", T],
36
- ["Folder", E],
37
- ["FolderFilled", D],
38
- ["Grab", O],
39
- ["Help", k],
31
+ ["EyeShow", b],
32
+ ["Filter", x],
33
+ ["Flag", S],
34
+ ["FlipHorizontal", C],
35
+ ["FlipVertical", w],
36
+ ["Folder", T],
37
+ ["FolderFilled", E],
38
+ ["Grab", D],
39
+ ["Help", O],
40
40
  ["Info", j],
41
41
  ["Layers", Y],
42
42
  ["Leaf", ee],
@@ -53,7 +53,7 @@ var te = [
53
53
  ["Restore", H],
54
54
  ["Ruler", U],
55
55
  ["RulerAlternative", W],
56
- ["Save", y],
56
+ ["Save", v],
57
57
  ["Settings", G],
58
58
  ["Shapes", K],
59
59
  ["Share", q],
@@ -1,7 +1,9 @@
1
1
  import { ReactElement } from 'react';
2
+ import { Menu as MenuPrimitive } from '@base-ui/react/menu';
2
3
  import { BaseCommand } from '../../../../foundation/commands/BaseCommand';
3
4
  import { BaseOptionCommand } from '../../../../foundation/commands/BaseOptionCommand';
4
5
  import { PlacementType } from '../utils/types';
6
+ export declare function isSpuriousTriggerClickClose(open: boolean, { reason, event }: MenuPrimitive.Root.ChangeEventDetails): boolean;
5
7
  export declare function createDropdownButton(command: BaseCommand, placement: PlacementType): ReactElement | undefined;
6
8
  export declare const DropdownButton: ({ inputCommand, placement, usedInSettings, }: {
7
9
  inputCommand: BaseOptionCommand;
@@ -1,75 +1,94 @@
1
1
  import { useCommand as e } from "../hooks/useCommand.js";
2
2
  import { useCommandProps as t, useCommandVisible as n } from "../hooks/useCommandProps.js";
3
- import { mapButtonType as r } from "../utils/utilities.js";
4
- import { BaseOptionCommand as i, OptionType as a } from "../../../../foundation/commands/BaseOptionCommand.js";
5
- import { useState as o } from "react";
6
- import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
7
- import { Button as u } from "@cognite/aura/components/button";
8
- import { IconChevronDown as d, IconChevronUp as f } from "@tabler/icons-react";
9
- import { DropdownMenu as p, DropdownMenuCheckboxItem as m, DropdownMenuContent as h, DropdownMenuTrigger as g } from "@cognite/aura/components/dropdown-menu";
3
+ import { LabelWithShortcut as r } from "../utils/LabelWithShortcut.js";
4
+ import { mapButtonType as i } from "../utils/utilities.js";
5
+ import { BaseOptionCommand as a, OptionType as o } from "../../../../foundation/commands/BaseOptionCommand.js";
6
+ import { useState as s } from "react";
7
+ import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
8
+ import { Tooltip as d, TooltipContent as f, TooltipProvider as p, TooltipTrigger as m } from "@cognite/aura/components/tooltip";
9
+ import { Button as h } from "@cognite/aura/components/button";
10
+ import { IconChevronDown as g, IconChevronUp as _ } from "@tabler/icons-react";
11
+ import { DropdownMenu as v, DropdownMenuCheckboxItem as y, DropdownMenuContent as b, DropdownMenuTrigger as x } from "@cognite/aura/components/dropdown-menu";
10
12
  //#region libs/shared/reveal-components/src/ui/components/commandBased/buttons/DropdownButton.tsx
11
- function _(e, t) {
12
- if (e instanceof i && e.optionType === a.Dropdown) return /* @__PURE__ */ c(v, {
13
+ function S(e, { reason: t, event: n }) {
14
+ return !e && t === "trigger-press" && n instanceof MouseEvent && n.type === "click" && n.detail > 0;
15
+ }
16
+ function C(e, t) {
17
+ if (e instanceof a && e.optionType === o.Dropdown) return /* @__PURE__ */ l(w, {
13
18
  inputCommand: e,
14
19
  placement: t
15
20
  }, e.uniqueId);
16
21
  }
17
- var v = ({ inputCommand: t, placement: r, usedInSettings: i = !1 }) => {
22
+ var w = ({ inputCommand: t, placement: r, usedInSettings: i = !1 }) => {
18
23
  let a = e(t);
19
- return n(a) ? i ? /* @__PURE__ */ c(b, { command: a }) : /* @__PURE__ */ c(y, {
24
+ return n(a) ? i ? /* @__PURE__ */ l(E, { command: a }) : /* @__PURE__ */ l(T, {
20
25
  command: a,
21
26
  placement: r
22
- }) : /* @__PURE__ */ c(s, {});
23
- }, y = ({ command: e, placement: n }) => {
24
- let { uniqueId: i, isEnabled: a } = t(e), [m, _] = o(!1);
25
- if (!e.children?.length) return /* @__PURE__ */ c(s, {});
26
- let v = e.selectedChild?.label, y = r(e.buttonType);
27
+ }) : /* @__PURE__ */ l(c, {});
28
+ }, T = ({ command: e, placement: n }) => {
29
+ let { uniqueId: a, isEnabled: o } = t(e), [y, C] = s(!1);
30
+ if (!e.children?.length) return /* @__PURE__ */ l(c, {});
31
+ let w = e.selectedChild?.label, T = i(e.buttonType), E = e.label;
27
32
  return /* @__PURE__ */ l(p, {
28
- open: m,
29
- onOpenChange: _,
30
- children: [/* @__PURE__ */ c(g, { render: /* @__PURE__ */ l(u, {
31
- variant: y,
32
- size: "sm",
33
- disabled: !a,
34
- "aria-label": e.label,
35
- className: `pl-1 pr-2 py-1 ${m ? "bg-accent-background" : ""}`,
36
- children: [c(m ? f : d, {}), v]
37
- }, i) }), /* @__PURE__ */ c(h, {
38
- side: n,
39
- align: "start",
40
- children: e.children.map((e) => /* @__PURE__ */ c(x, {
41
- command: e,
42
- setOpen: _
43
- }, e.uniqueId))
44
- })]
33
+ delayDuration: 500,
34
+ children: /* @__PURE__ */ u(d, {
35
+ disabled: E === void 0 || y,
36
+ children: [/* @__PURE__ */ u(v, {
37
+ open: y,
38
+ onOpenChange: (e, t) => {
39
+ S(e, t) || C(e);
40
+ },
41
+ children: [/* @__PURE__ */ l(m, { render: /* @__PURE__ */ l(x, { render: /* @__PURE__ */ u(h, {
42
+ variant: T,
43
+ size: "sm",
44
+ disabled: !o,
45
+ "aria-label": E,
46
+ className: `pl-1 pr-2 py-1 ${y ? "bg-accent-background" : ""}`,
47
+ children: [l(y ? _ : g, {}), w]
48
+ }, a) }) }), /* @__PURE__ */ l(b, {
49
+ side: n,
50
+ align: "start",
51
+ children: e.children.map((e) => /* @__PURE__ */ l(D, {
52
+ command: e,
53
+ setOpen: C
54
+ }, e.uniqueId))
55
+ })]
56
+ }), /* @__PURE__ */ l(f, {
57
+ side: n,
58
+ children: /* @__PURE__ */ l(r, {
59
+ label: E,
60
+ command: e
61
+ })
62
+ })]
63
+ })
45
64
  });
46
- }, b = ({ command: e }) => {
47
- let [t, n] = o(!1);
48
- if (!e.children?.length) return /* @__PURE__ */ c(s, {});
65
+ }, E = ({ command: e }) => {
66
+ let [t, n] = s(!1);
67
+ if (!e.children?.length) return /* @__PURE__ */ l(c, {});
49
68
  let r = e.label, i = e.selectedChild?.label;
50
- return /* @__PURE__ */ l("div", {
69
+ return /* @__PURE__ */ u("div", {
51
70
  className: "flex flex-row self-stretch items-center gap-3",
52
- children: [/* @__PURE__ */ c("p", {
71
+ children: [/* @__PURE__ */ l("p", {
53
72
  title: r,
54
73
  className: "w-[80px] truncate text-sm",
55
74
  children: r
56
- }), /* @__PURE__ */ c("div", {
75
+ }), /* @__PURE__ */ l("div", {
57
76
  className: "flex-1",
58
- children: /* @__PURE__ */ l(p, {
77
+ children: /* @__PURE__ */ u(v, {
59
78
  open: t,
60
79
  onOpenChange: n,
61
- children: [/* @__PURE__ */ c(g, { render: /* @__PURE__ */ l(u, {
80
+ children: [/* @__PURE__ */ l(x, { render: /* @__PURE__ */ u(h, {
62
81
  variant: "ghost",
63
82
  "aria-label": r,
64
83
  className: `w-full justify-between border border-transparent rounded-lg bg-background py-2 pl-2 pr-1 text-sm hover:bg-accent-background hover:border-border-emphasized${t ? " bg-accent-background" : ""}`,
65
- children: [/* @__PURE__ */ c("span", {
84
+ children: [/* @__PURE__ */ l("span", {
66
85
  className: "font-normal",
67
86
  children: i
68
- }), c(t ? f : d, {})]
69
- }) }), /* @__PURE__ */ c(h, {
87
+ }), l(t ? _ : g, {})]
88
+ }) }), /* @__PURE__ */ l(b, {
70
89
  side: "bottom",
71
90
  align: "start",
72
- children: e.children.map((e) => /* @__PURE__ */ c(x, {
91
+ children: e.children.map((e) => /* @__PURE__ */ l(D, {
73
92
  command: e,
74
93
  setOpen: n
75
94
  }, e.uniqueId))
@@ -77,9 +96,9 @@ var v = ({ inputCommand: t, placement: r, usedInSettings: i = !1 }) => {
77
96
  })
78
97
  })]
79
98
  });
80
- }, x = ({ command: e, setOpen: n }) => {
99
+ }, D = ({ command: e, setOpen: n }) => {
81
100
  let { isEnabled: r, isChecked: i } = t(e);
82
- return /* @__PURE__ */ c(m, {
101
+ return /* @__PURE__ */ l(y, {
83
102
  disabled: !r,
84
103
  checked: i,
85
104
  onCheckedChange: () => {
@@ -89,4 +108,4 @@ var v = ({ inputCommand: t, placement: r, usedInSettings: i = !1 }) => {
89
108
  });
90
109
  };
91
110
  //#endregion
92
- export { v as DropdownButton, _ as createDropdownButton };
111
+ export { w as DropdownButton, C as createDropdownButton, S as isSpuriousTriggerClickClose };
@@ -9,8 +9,8 @@ import { jsx as c, jsxs as l } from "react/jsx-runtime";
9
9
  import { IconLoader2 as u, IconSend as d } from "@tabler/icons-react";
10
10
  import { Separator as f } from "@cognite/aura/components/separator";
11
11
  import { Label as p } from "@cognite/aura/components/label";
12
- import { Avatar as m, AvatarFallback as h } from "@cognite/aura/components/avatar";
13
- import { EmptyState as g, EmptyStateIcon as _, EmptyStateTitle as v } from "@cognite/aura/components/empty-state";
12
+ import { EmptyState as m, EmptyStateIcon as h, EmptyStateTitle as g } from "@cognite/aura/components/empty-state";
13
+ import { Avatar as _, AvatarFallback as v } from "@cognite/aura/components/avatar";
14
14
  import { InputGroup as y, InputGroupAddon as b, InputGroupButton as x, InputGroupTextarea as S } from "@cognite/aura/components/input-group";
15
15
  //#region libs/shared/reveal-components/src/ui/components/commandBased/pointsOfInterest/PoiCommentSection.tsx
16
16
  var C = () => {
@@ -51,10 +51,10 @@ var C = () => {
51
51
  })]
52
52
  }) : /* @__PURE__ */ c("div", {
53
53
  className: "flex min-h-full flex-col items-center justify-center px-2 py-3",
54
- children: /* @__PURE__ */ l(g, {
54
+ children: /* @__PURE__ */ l(m, {
55
55
  variant: "compact",
56
56
  type: "new-chat",
57
- children: [/* @__PURE__ */ c(_, {}), /* @__PURE__ */ c(v, {
57
+ children: [/* @__PURE__ */ c(h, {}), /* @__PURE__ */ c(g, {
58
58
  as: "p",
59
59
  children: n({ key: "POINT_OF_INTEREST_NO_COMMENTS_YET" })
60
60
  })]
@@ -67,9 +67,9 @@ var C = () => {
67
67
  let { currentLanguage: o } = e();
68
68
  return /* @__PURE__ */ l("div", {
69
69
  className: "flex flex-row gap-2 items-start",
70
- children: [/* @__PURE__ */ c(m, {
70
+ children: [/* @__PURE__ */ c(_, {
71
71
  variant: i(a.ownerId),
72
- children: /* @__PURE__ */ c(h, { children: r(a.ownerId) })
72
+ children: /* @__PURE__ */ c(v, { children: r(a.ownerId) })
73
73
  }), /* @__PURE__ */ l("div", {
74
74
  className: "flex min-w-0 flex-1 flex-col gap-1",
75
75
  children: [/* @__PURE__ */ c("div", {
@@ -0,0 +1,16 @@
1
+ import { Context, ReactElement } from 'react';
2
+ import { ColumnDef } from '@tanstack/react-table';
3
+ import { PropertyRow } from './CadNodeInfoDialog';
4
+ export type PropertyDataGridProps = {
5
+ data: PropertyRow[];
6
+ columns: ColumnDef<PropertyRow>[];
7
+ rowHeight: number;
8
+ getRowId: (row: PropertyRow) => string;
9
+ 'aria-label': string;
10
+ className?: string;
11
+ };
12
+ export type CadNodeInfoDialogDependencies = {
13
+ DataGrid: (props: PropertyDataGridProps) => ReactElement;
14
+ };
15
+ export declare const defaultCadNodeInfoDialogDependencies: CadNodeInfoDialogDependencies;
16
+ export declare const CadNodeInfoDialogContext: Context<CadNodeInfoDialogDependencies>;
@@ -0,0 +1,6 @@
1
+ import { createContext as e } from "react";
2
+ import { DataGrid as t } from "@cognite/aura/data-grid";
3
+ //#region libs/shared/reveal-components/src/ui/components/commandBased/treeView/DomainObjectTreeView/CadNodeInfoDialog.context.ts
4
+ var n = { DataGrid: t }, r = e(n);
5
+ //#endregion
6
+ export { r as CadNodeInfoDialogContext, n as defaultCadNodeInfoDialogDependencies };
@@ -0,0 +1,15 @@
1
+ import { ReactElement } from 'react';
2
+ import { Node3D } from '@cognite/sdk';
3
+ export type CadNodeInfoDialogProps = {
4
+ open: boolean;
5
+ onOpenChange: (open: boolean) => void;
6
+ node: Node3D | undefined;
7
+ isLoading: boolean;
8
+ isError: boolean;
9
+ };
10
+ export declare const CadNodeInfoDialog: ({ open, onOpenChange, node, isLoading, isError, }: CadNodeInfoDialogProps) => ReactElement;
11
+ export type PropertyRow = {
12
+ id: string;
13
+ key: string;
14
+ value: string;
15
+ };
@@ -0,0 +1,5 @@
1
+ import { Node3D } from '@cognite/sdk';
2
+ export declare const PRIORITY_CATEGORY = "Item";
3
+ export declare function getOtherCategories(node: Node3D | undefined): string[];
4
+ export declare function getCdfMetadataEntries(node: Node3D): Array<[string, unknown]>;
5
+ export declare function formatPropertyValue(value: unknown): string;
@@ -0,0 +1,14 @@
1
+ //#region libs/shared/reveal-components/src/ui/components/commandBased/treeView/DomainObjectTreeView/CadNodeInfoDialog.function.tsx
2
+ var e = "Item";
3
+ function t(t) {
4
+ return Object.keys(t?.properties ?? {}).filter((t) => t !== e).sort();
5
+ }
6
+ function n(e) {
7
+ let { properties: t, ...n } = e;
8
+ return Object.entries(n);
9
+ }
10
+ function r(e) {
11
+ return typeof e == "object" && e ? JSON.stringify(e, null, 2) : String(e ?? "");
12
+ }
13
+ //#endregion
14
+ export { e as PRIORITY_CATEGORY, r as formatPropertyValue, n as getCdfMetadataEntries, t as getOtherCategories };