@vertexvis/viewer 0.21.0-testing.2 → 0.21.0-testing.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/dist/cjs/{controller-9e5744ec.js → controller-004b9f2c.js} +197 -4
- package/dist/cjs/controller-004b9f2c.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{queries-b9bf26dd.js → queries-731d8cf1.js} +40 -12
- package/dist/cjs/queries-731d8cf1.js.map +1 -0
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +24 -11
- package/dist/cjs/vertex-scene-tree.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +6 -0
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer.cjs.entry.js +1 -1
- package/dist/cjs/viewer.cjs.js +1 -1
- package/dist/collection/components/scene-tree/lib/controller.js +5 -0
- package/dist/collection/components/scene-tree/lib/controller.js.map +1 -1
- package/dist/collection/components/scene-tree/lib/viewer-ops.js +4 -2
- package/dist/collection/components/scene-tree/lib/viewer-ops.js.map +1 -1
- package/dist/collection/components/scene-tree/scene-tree.js +50 -12
- package/dist/collection/components/scene-tree/scene-tree.js.map +1 -1
- package/dist/collection/components/scene-tree/types.js.map +1 -1
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +6 -0
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js.map +1 -1
- package/dist/collection/lib/scenes/mapper.js +34 -8
- package/dist/collection/lib/scenes/mapper.js.map +1 -1
- package/dist/collection/lib/scenes/queries.js +5 -3
- package/dist/collection/lib/scenes/queries.js.map +1 -1
- package/dist/components/controller.js +196 -3
- package/dist/components/controller.js.map +1 -1
- package/dist/components/queries.js +39 -11
- package/dist/components/queries.js.map +1 -1
- package/dist/components/vertex-scene-tree.js +24 -10
- package/dist/components/vertex-scene-tree.js.map +1 -1
- package/dist/components/vertex-viewer-measurement-distance.js +6 -0
- package/dist/components/vertex-viewer-measurement-distance.js.map +1 -1
- package/dist/esm/{controller-f2beee15.js → controller-6d2fbb9b.js} +197 -4
- package/dist/esm/controller-6d2fbb9b.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loader.mjs +1 -1
- package/dist/esm/{queries-78f566c5.js → queries-3bd4cfe1.js} +40 -12
- package/dist/esm/queries-3bd4cfe1.js.map +1 -0
- package/dist/esm/vertex-scene-tree.entry.js +24 -11
- package/dist/esm/vertex-scene-tree.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-measurement-distance.entry.js +6 -0
- package/dist/esm/vertex-viewer-measurement-distance.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-pin-group.entry.js +1 -1
- package/dist/esm/vertex-viewer.entry.js +1 -1
- package/dist/esm/viewer.js +1 -1
- package/dist/types/components/scene-tree/lib/controller.d.ts +4 -0
- package/dist/types/components/scene-tree/lib/viewer-ops.d.ts +1 -1
- package/dist/types/components/scene-tree/scene-tree.d.ts +7 -1
- package/dist/types/components/scene-tree/types.d.ts +5 -0
- package/dist/types/components.d.ts +13 -5
- package/dist/types/lib/scenes/queries.d.ts +4 -2
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/p-0f4f3757.js +5 -0
- package/dist/viewer/p-0f4f3757.js.map +1 -0
- package/dist/viewer/{p-1486ba3d.entry.js → p-70d29252.entry.js} +2 -2
- package/dist/viewer/{p-33627452.entry.js → p-be1fd8a7.entry.js} +2 -2
- package/dist/viewer/p-ccb5ff47.js +5 -0
- package/dist/viewer/p-ccb5ff47.js.map +1 -0
- package/dist/viewer/p-d41913d2.entry.js +5 -0
- package/dist/viewer/p-d41913d2.entry.js.map +1 -0
- package/dist/viewer/{p-f8c3e667.entry.js → p-d8626aa7.entry.js} +2 -2
- package/dist/viewer/p-d8626aa7.entry.js.map +1 -0
- package/dist/viewer/viewer.esm.js +1 -1
- package/dist/viewer/viewer.esm.js.map +1 -1
- package/package.json +8 -8
- package/dist/cjs/controller-9e5744ec.js.map +0 -1
- package/dist/cjs/queries-b9bf26dd.js.map +0 -1
- package/dist/esm/controller-f2beee15.js.map +0 -1
- package/dist/esm/queries-78f566c5.js.map +0 -1
- package/dist/viewer/p-07b05774.entry.js +0 -5
- package/dist/viewer/p-07b05774.entry.js.map +0 -1
- package/dist/viewer/p-564f9027.js +0 -5
- package/dist/viewer/p-564f9027.js.map +0 -1
- package/dist/viewer/p-949afb47.js +0 -5
- package/dist/viewer/p-949afb47.js.map +0 -1
- package/dist/viewer/p-f8c3e667.entry.js.map +0 -1
- /package/dist/viewer/{p-1486ba3d.entry.js.map → p-70d29252.entry.js.map} +0 -0
- /package/dist/viewer/{p-33627452.entry.js.map → p-be1fd8a7.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport { Dimensions } from '@vertexvis/geometry';\nimport { RepresentationPredefinedId } from '@vertexvis/scene-view-protos/core/protos/representation_pb';\nimport { toProtoDuration } from '@vertexvis/stream-api';\nimport { UUID } from '@vertexvis/utils';\n\nimport {\n Animation,\n FlyTo,\n FrameCamera,\n SceneViewStateIdentifier,\n} from '../types';\nimport { ItemOperation } from './operations';\nimport { QueryExpression } from './queries';\nimport { SceneViewStateFeature } from './scene';\n\nexport interface BuildSceneOperationContext {\n dimensions: Dimensions.Dimensions;\n}\n\nexport function buildSceneViewStateIdentifier(\n identifier: UUID.UUID | SceneViewStateIdentifier.SceneViewStateIdentifier\n):\n | Pick<\n vertexvis.protobuf.stream.ILoadSceneViewStatePayload,\n 'sceneViewStateId'\n >\n | Pick<\n vertexvis.protobuf.stream.ILoadSceneViewStatePayload,\n 'sceneViewStateSuppliedId'\n > {\n if (typeof identifier === 'string') {\n return { sceneViewStateId: { hex: identifier } };\n } else if (SceneViewStateIdentifier.isSceneViewStateId(identifier)) {\n return { sceneViewStateId: { hex: identifier.id } };\n } else if (SceneViewStateIdentifier.isSceneViewStateSuppliedId(identifier)) {\n return { sceneViewStateSuppliedId: { value: identifier.suppliedId } };\n } else {\n throw new Error(\n 'Unable to build scene view state identifier, input must be a string or `SceneViewStateIdentifier`.'\n );\n }\n}\n\nexport function buildQueryExpression(\n query: QueryExpression,\n context: BuildSceneOperationContext\n): vertexvis.protobuf.stream.IQueryExpression {\n switch (query.type) {\n case 'and':\n case 'or':\n return {\n operand: {\n itemCollection: {\n queries: query.expressions.map((exp) => ({\n sceneItemQuery: buildSceneItemQuery(exp),\n })),\n },\n },\n };\n case 'not':\n return {\n not: {\n expression: buildQueryExpression(query.query, context),\n },\n };\n case 'item-id':\n case 'supplied-id':\n return {\n operand: {\n item: {\n sceneItemQuery: buildSceneItemQuery(query),\n },\n },\n };\n case 'all':\n return {\n operand: {\n root: {},\n },\n };\n case 'scene-tree-range':\n return {\n operand: {\n sceneTreeRange: {\n start: query.range.start,\n end: query.range.end,\n },\n },\n };\n case 'metadata':\n return {\n operand: {\n metadata: {\n valueFilter: query.filter,\n keys: query.keys,\n exactMatch: query.exactMatch,\n },\n },\n };\n case 'all-selected':\n return {\n operand: {\n override: {\n selection: {},\n },\n },\n };\n case 'all-visible':\n return {\n operand: {\n override: {\n visibility: {\n visibilityState: true,\n },\n },\n },\n };\n case 'point':\n return {\n operand: {\n point: {\n point: query.point,\n viewport: context.dimensions,\n },\n },\n };\n case 'volume-intersection':\n return {\n operand: {\n volume: {\n frustumByRectangle: {\n rectangle: query.rectangle,\n },\n exclusive: query.exclusive,\n viewport: context.dimensions,\n },\n },\n };\n default:\n return {};\n }\n}\n\nexport function buildSceneOperation(\n query: QueryExpression,\n operations: ItemOperation[],\n context: BuildSceneOperationContext\n): vertexvis.protobuf.stream.ISceneOperation {\n const operationTypes = buildOperationTypes(operations);\n const queryExpression = buildQueryExpression(query, context);\n\n return { queryExpression, operationTypes };\n}\n\nfunction buildSceneItemQuery(\n item: QueryExpression\n): vertexvis.protobuf.stream.ISceneItemQuery {\n switch (item.type) {\n case 'item-id':\n return {\n id: new vertexvis.protobuf.core.Uuid({\n hex: item.value,\n }),\n };\n case 'supplied-id':\n return {\n suppliedId: item.value,\n };\n default:\n return {};\n }\n}\n\nexport function buildFlyToOperation(\n frameCorrelationId: UUID.UUID,\n options: FlyTo.FlyToOptions,\n animation?: Animation.Animation,\n baseCamera?: FrameCamera.FrameCamera\n): vertexvis.protobuf.stream.IFlyToPayload {\n const payload = {\n frameCorrelationId: {\n value: frameCorrelationId,\n },\n animation: animation\n ? {\n duration: toProtoDuration(animation.milliseconds),\n }\n : undefined,\n baseCamera:\n baseCamera != null ? FrameCamera.toProtobuf(baseCamera) : undefined,\n };\n\n switch (options.flyTo.type) {\n case 'supplied': {\n return {\n ...payload,\n itemSuppliedId: options.flyTo.data,\n };\n }\n case 'internal': {\n return {\n ...payload,\n itemId: new vertexvis.protobuf.core.Uuid({\n hex: options.flyTo.data,\n }),\n };\n }\n case 'camera': {\n return {\n ...payload,\n camera: FrameCamera.toProtobuf(options.flyTo.data),\n };\n }\n\n case 'bounding-box': {\n return {\n ...payload,\n boundingBox: {\n xmin: options.flyTo.data.min.x,\n xmax: options.flyTo.data.max.x,\n ymin: options.flyTo.data.min.y,\n ymax: options.flyTo.data.max.y,\n zmin: options.flyTo.data.min.z,\n zmax: options.flyTo.data.max.z,\n },\n };\n }\n default:\n return {};\n }\n}\n\nfunction buildOperationTypes(\n operations: ItemOperation[]\n): vertexvis.protobuf.stream.IOperationType[] {\n return operations.map((op) => {\n switch (op.type) {\n case 'change-material':\n return {\n changeMaterial: {\n materialOverride: {\n colorMaterial: {\n d: op.material.opacity,\n ns: op.material.glossiness,\n ka: op.material.ambient,\n kd: op.material.diffuse,\n ks: op.material.specular,\n ke: op.material.emissive,\n },\n },\n },\n };\n case 'clear-override':\n return { clearMaterial: {} };\n case 'change-transform':\n return { changeTransform: { transform: { ...op.transform } } };\n case 'clear-transform':\n return { clearTransform: { cascade: op.cascade } };\n case 'hide':\n return { changeVisibility: { visible: false } };\n case 'show':\n return { changeVisibility: { visible: true } };\n case 'select':\n return { changeSelection: { selected: true } };\n case 'deselect':\n return { changeSelection: { selected: false } };\n case 'change-phantom':\n return { changePhantom: { phantom: op.phantomState ?? true } };\n case 'clear-phantom':\n return { changePhantom: { phantom: false } };\n case 'change-end-item':\n return { changeEndItem: { endItem: op.endItemState ?? true } };\n case 'clear-end-item':\n return { changeEndItem: { endItem: false } };\n case 'view-rendition-by-id':\n return {\n viewRendition: {\n id: new vertexvis.protobuf.core.Uuid({ hex: op.id }),\n },\n };\n case 'view-rendition-by-supplied-id':\n return { viewRendition: { suppliedId: op.suppliedId } };\n case 'view-default-rendition':\n return { viewDefaultRendition: {} };\n case 'clear-rendition':\n return { clearRendition: {} };\n case 'view-representation':\n if (op.id === 'empty') {\n return {\n viewRepresentation: {\n predefinedId:\n RepresentationPredefinedId.REPRESENTATION_PREDEFINED_ID_EMPTY,\n },\n };\n } else if (op.id === 'entire-part') {\n return {\n viewRepresentation: {\n predefinedId:\n RepresentationPredefinedId.REPRESENTATION_PREDEFINED_ID_ENTIRE_PART,\n },\n };\n } else {\n return {\n viewRepresentation: {\n id: new vertexvis.protobuf.core.Uuid({ hex: op.id }),\n },\n };\n }\n case 'clear-representation':\n return { clearRepresentation: {} };\n default:\n return {};\n }\n });\n}\n\nexport function toPbSceneViewStateFeatures(\n features: SceneViewStateFeature[]\n): vertexvis.protobuf.stream.SceneViewStateFeature[] {\n return features.map((feature) => {\n switch (feature) {\n case 'camera':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_CAMERA;\n case 'material_overrides':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_MATERIAL_OVERRIDE;\n case 'selection':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_SELECTION;\n case 'visibility':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_VISIBILITY;\n case 'transforms':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_TRANSFORM;\n case 'cross_section':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_CROSS_SECTION;\n case 'phantom':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_PHANTOM;\n default:\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_INVALID;\n }\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport { Dimensions } from '@vertexvis/geometry';\nimport { RepresentationPredefinedId } from '@vertexvis/scene-view-protos/core/protos/representation_pb';\nimport { toProtoDuration } from '@vertexvis/stream-api';\nimport { UUID } from '@vertexvis/utils';\n\nimport {\n Animation,\n FlyTo,\n FrameCamera,\n SceneViewStateIdentifier,\n} from '../types';\nimport { ItemOperation } from './operations';\nimport { QueryExpression } from './queries';\nimport { SceneViewStateFeature } from './scene';\n\nexport interface BuildSceneOperationContext {\n dimensions: Dimensions.Dimensions;\n}\n\nexport function buildSceneViewStateIdentifier(\n identifier: UUID.UUID | SceneViewStateIdentifier.SceneViewStateIdentifier\n):\n | Pick<\n vertexvis.protobuf.stream.ILoadSceneViewStatePayload,\n 'sceneViewStateId'\n >\n | Pick<\n vertexvis.protobuf.stream.ILoadSceneViewStatePayload,\n 'sceneViewStateSuppliedId'\n > {\n if (typeof identifier === 'string') {\n return { sceneViewStateId: { hex: identifier } };\n } else if (SceneViewStateIdentifier.isSceneViewStateId(identifier)) {\n return { sceneViewStateId: { hex: identifier.id } };\n } else if (SceneViewStateIdentifier.isSceneViewStateSuppliedId(identifier)) {\n return { sceneViewStateSuppliedId: { value: identifier.suppliedId } };\n } else {\n throw new Error(\n 'Unable to build scene view state identifier, input must be a string or `SceneViewStateIdentifier`.'\n );\n }\n}\n\nexport function buildQueryExpression(\n query: QueryExpression,\n context: BuildSceneOperationContext\n): vertexvis.protobuf.stream.IQueryExpression {\n switch (query.type) {\n case 'and':\n case 'or':\n return {\n operand: {\n itemCollection: {\n queries: query.expressions.map((exp) => ({\n sceneItemQuery: buildSceneItemQuery(exp),\n })),\n },\n },\n };\n case 'not':\n return {\n not: {\n expression: buildQueryExpression(query.query, context),\n },\n };\n case 'item-id':\n case 'supplied-id':\n return {\n operand: {\n item: {\n sceneItemQuery: buildSceneItemQuery(query),\n },\n },\n };\n case 'all':\n return {\n operand: {\n root: {},\n },\n };\n case 'scene-tree-range':\n return {\n operand: {\n sceneTreeRange: {\n start: query.range.start,\n end: query.range.end,\n },\n },\n };\n case 'metadata':\n if (query.removeHiddenItems) {\n return {\n and: {\n first: {\n operand: {\n metadata: {\n valueFilter: query.filter,\n keys: query.keys,\n exactMatch: query.exactMatch,\n },\n },\n },\n second: {\n operand: {\n override: {\n visibility: {\n visibilityState: true,\n },\n },\n },\n },\n },\n };\n } else {\n return {\n operand: {\n metadata: {\n valueFilter: query.filter,\n keys: query.keys,\n exactMatch: query.exactMatch,\n },\n },\n };\n }\n case 'all-selected':\n return {\n operand: {\n override: {\n selection: {},\n },\n },\n };\n case 'all-visible':\n return {\n operand: {\n override: {\n visibility: {\n visibilityState: true,\n },\n },\n },\n };\n case 'point':\n return {\n operand: {\n point: {\n point: query.point,\n viewport: context.dimensions,\n },\n },\n };\n case 'volume-intersection':\n return {\n operand: {\n volume: {\n frustumByRectangle: {\n rectangle: query.rectangle,\n },\n exclusive: query.exclusive,\n viewport: context.dimensions,\n },\n },\n };\n default:\n return {};\n }\n}\n\nexport function buildSceneOperation(\n query: QueryExpression,\n operations: ItemOperation[],\n context: BuildSceneOperationContext\n): vertexvis.protobuf.stream.ISceneOperation {\n const operationTypes = buildOperationTypes(operations);\n const queryExpression = buildQueryExpression(query, context);\n\n return { queryExpression, operationTypes };\n}\n\nfunction buildSceneItemQuery(\n item: QueryExpression\n): vertexvis.protobuf.stream.ISceneItemQuery {\n switch (item.type) {\n case 'item-id':\n return {\n id: new vertexvis.protobuf.core.Uuid({\n hex: item.value,\n }),\n };\n case 'supplied-id':\n return {\n suppliedId: item.value,\n };\n default:\n return {};\n }\n}\n\nexport function buildFlyToOperation(\n frameCorrelationId: UUID.UUID,\n options: FlyTo.FlyToOptions,\n animation?: Animation.Animation,\n baseCamera?: FrameCamera.FrameCamera\n): vertexvis.protobuf.stream.IFlyToPayload {\n const payload = {\n frameCorrelationId: {\n value: frameCorrelationId,\n },\n animation: animation\n ? {\n duration: toProtoDuration(animation.milliseconds),\n }\n : undefined,\n baseCamera:\n baseCamera != null ? FrameCamera.toProtobuf(baseCamera) : undefined,\n };\n\n switch (options.flyTo.type) {\n case 'supplied': {\n return {\n ...payload,\n itemSuppliedId: options.flyTo.data,\n };\n }\n case 'internal': {\n return {\n ...payload,\n itemId: new vertexvis.protobuf.core.Uuid({\n hex: options.flyTo.data,\n }),\n };\n }\n case 'camera': {\n return {\n ...payload,\n camera: FrameCamera.toProtobuf(options.flyTo.data),\n };\n }\n\n case 'bounding-box': {\n return {\n ...payload,\n boundingBox: {\n xmin: options.flyTo.data.min.x,\n xmax: options.flyTo.data.max.x,\n ymin: options.flyTo.data.min.y,\n ymax: options.flyTo.data.max.y,\n zmin: options.flyTo.data.min.z,\n zmax: options.flyTo.data.max.z,\n },\n };\n }\n default:\n return {};\n }\n}\n\nfunction buildOperationTypes(\n operations: ItemOperation[]\n): vertexvis.protobuf.stream.IOperationType[] {\n return operations.map((op) => {\n switch (op.type) {\n case 'change-material':\n return {\n changeMaterial: {\n materialOverride: {\n colorMaterial: {\n d: op.material.opacity,\n ns: op.material.glossiness,\n ka: op.material.ambient,\n kd: op.material.diffuse,\n ks: op.material.specular,\n ke: op.material.emissive,\n },\n },\n },\n };\n case 'clear-override':\n return { clearMaterial: {} };\n case 'change-transform':\n return { changeTransform: { transform: { ...op.transform } } };\n case 'clear-transform':\n return { clearTransform: { cascade: op.cascade } };\n case 'hide':\n return { changeVisibility: { visible: false } };\n case 'show':\n return { changeVisibility: { visible: true } };\n case 'select':\n return { changeSelection: { selected: true } };\n case 'deselect':\n return { changeSelection: { selected: false } };\n case 'change-phantom':\n return { changePhantom: { phantom: op.phantomState ?? true } };\n case 'clear-phantom':\n return { changePhantom: { phantom: false } };\n case 'change-end-item':\n return { changeEndItem: { endItem: op.endItemState ?? true } };\n case 'clear-end-item':\n return { changeEndItem: { endItem: false } };\n case 'view-rendition-by-id':\n return {\n viewRendition: {\n id: new vertexvis.protobuf.core.Uuid({ hex: op.id }),\n },\n };\n case 'view-rendition-by-supplied-id':\n return { viewRendition: { suppliedId: op.suppliedId } };\n case 'view-default-rendition':\n return { viewDefaultRendition: {} };\n case 'clear-rendition':\n return { clearRendition: {} };\n case 'view-representation':\n if (op.id === 'empty') {\n return {\n viewRepresentation: {\n predefinedId:\n RepresentationPredefinedId.REPRESENTATION_PREDEFINED_ID_EMPTY,\n },\n };\n } else if (op.id === 'entire-part') {\n return {\n viewRepresentation: {\n predefinedId:\n RepresentationPredefinedId.REPRESENTATION_PREDEFINED_ID_ENTIRE_PART,\n },\n };\n } else {\n return {\n viewRepresentation: {\n id: new vertexvis.protobuf.core.Uuid({ hex: op.id }),\n },\n };\n }\n case 'clear-representation':\n return { clearRepresentation: {} };\n default:\n return {};\n }\n });\n}\n\nexport function toPbSceneViewStateFeatures(\n features: SceneViewStateFeature[]\n): vertexvis.protobuf.stream.SceneViewStateFeature[] {\n return features.map((feature) => {\n switch (feature) {\n case 'camera':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_CAMERA;\n case 'material_overrides':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_MATERIAL_OVERRIDE;\n case 'selection':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_SELECTION;\n case 'visibility':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_VISIBILITY;\n case 'transforms':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_TRANSFORM;\n case 'cross_section':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_CROSS_SECTION;\n case 'phantom':\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_PHANTOM;\n default:\n return vertexvis.protobuf.stream.SceneViewStateFeature\n .SCENE_VIEW_STATE_FEATURE_INVALID;\n }\n });\n}\n"]}
|
|
@@ -172,8 +172,8 @@ export class RootQuery {
|
|
|
172
172
|
* ]).execute();
|
|
173
173
|
* ```
|
|
174
174
|
*/
|
|
175
|
-
withMetadata(filter, keys, exactMatch) {
|
|
176
|
-
return new MetadataQuery(filter, keys, exactMatch, this.inverted);
|
|
175
|
+
withMetadata(filter, keys, exactMatch, removeHiddenItems) {
|
|
176
|
+
return new MetadataQuery(filter, keys, exactMatch, this.inverted, removeHiddenItems);
|
|
177
177
|
}
|
|
178
178
|
/**
|
|
179
179
|
* Specifies that the operation should be performed on any item that has been selected.
|
|
@@ -292,11 +292,12 @@ export class SceneTreeRangeQuery extends TerminalQuery {
|
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
294
|
export class MetadataQuery extends TerminalQuery {
|
|
295
|
-
constructor(filter, keys, exactMatch, inverted) {
|
|
295
|
+
constructor(filter, keys, exactMatch, inverted, removeHiddenItems) {
|
|
296
296
|
super(inverted);
|
|
297
297
|
this.filter = filter;
|
|
298
298
|
this.keys = keys;
|
|
299
299
|
this.exactMatch = exactMatch;
|
|
300
|
+
this.removeHiddenItems = removeHiddenItems;
|
|
300
301
|
}
|
|
301
302
|
queryExpressionBuilder() {
|
|
302
303
|
return {
|
|
@@ -304,6 +305,7 @@ export class MetadataQuery extends TerminalQuery {
|
|
|
304
305
|
filter: this.filter,
|
|
305
306
|
keys: this.keys,
|
|
306
307
|
exactMatch: this.exactMatch,
|
|
308
|
+
removeHiddenItems: this.removeHiddenItems,
|
|
307
309
|
};
|
|
308
310
|
}
|
|
309
311
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/queries.ts"],"names":[],"mappings":"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","sourcesContent":["import { Point, Rectangle } from '@vertexvis/geometry';\n\nimport { SceneItemOperationsBuilder } from './scene';\n\ninterface AllQueryExpression {\n type: 'all';\n}\n\nexport interface SceneTreeRange {\n start: number;\n end: number;\n}\n\ninterface ItemQueryExpression {\n type: 'item-id' | 'supplied-id';\n value: string;\n}\n\nexport interface AndExpression {\n type: 'and';\n expressions: QueryExpression[];\n}\n\nexport interface OrExpression {\n type: 'or';\n expressions: QueryExpression[];\n}\n\ninterface SceneTreeRangeQueryExpression {\n type: 'scene-tree-range';\n range: SceneTreeRange;\n}\n\ninterface NotQueryExpression {\n type: 'not';\n query: QueryExpression;\n}\ninterface MetadataQueryExpression {\n type: 'metadata';\n filter: string;\n keys: string[];\n exactMatch: boolean;\n}\n\ninterface AllSelectedQueryExpression {\n type: 'all-selected';\n}\n\ninterface AllVisibleQueryExpression {\n type: 'all-visible';\n}\n\ninterface PointQueryExpression {\n type: 'point';\n point: Point.Point;\n}\n\ninterface VolumeIntersectionQueryExpression {\n type: 'volume-intersection';\n rectangle: Rectangle.Rectangle;\n exclusive: boolean;\n}\n\n/**\n * Represents the sum of all possible types of expressions.\n */\nexport type QueryExpression =\n | AllQueryExpression\n | ItemQueryExpression\n | AndExpression\n | OrExpression\n | SceneTreeRangeQueryExpression\n | PointQueryExpression\n | VolumeIntersectionQueryExpression\n | MetadataQueryExpression\n | AllSelectedQueryExpression\n | AllVisibleQueryExpression\n | NotQueryExpression;\n\n/**\n * An interface that represents a query is \"complete\" and can be turned into an\n * expression.\n */\nabstract class TerminalQuery {\n protected inverted: boolean;\n public constructor(inverted: boolean) {\n this.inverted = inverted;\n }\n\n public build(): QueryExpression {\n if (this.inverted) {\n return {\n type: 'not',\n query: this.queryExpressionBuilder(),\n };\n } else {\n return this.queryExpressionBuilder();\n }\n }\n\n public abstract queryExpressionBuilder(): QueryExpression;\n}\n\ninterface ItemQuery<N> {\n withItemId(id: string): N;\n\n withSuppliedId(id: string): N;\n}\n\ninterface BooleanQuery {\n and(): AndQuery;\n or(): OrQuery;\n}\n\nexport class RootQuery implements ItemQuery<SingleQuery> {\n public constructor(private inverted: boolean = false) {}\n\n /**\n * Specifies that the operation should be performed on all items in the scene.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Deselect all items in the scene\n * await scene.items((op) => [op.where((q) => q.all()).deselect()]).execute();\n * ```\n */\n public all(): AllQuery {\n return new AllQuery();\n }\n\n /**\n * Specifies that the operation should be performed on all items that do not match any following queries.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide all items that are not selected\n * await scene.items((op) => [op.where((q) => q.not().withSelected()).hide()]).execute();\n * ```\n */\n public not(): RootQuery {\n return new NotQuery(!this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item matching any one of the provided IDs.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide the item with the `item-uuid-1` ID and the `item-uuid-2` ID\n * await scene.items((op) => [\n * op.where((q) => q.withItemIds(['item-uuid-1', 'item-uuid-2'])).hide(),\n * ]).execute();\n * ```\n */\n public withItemIds(ids: string[]): BulkQuery {\n return new BulkQuery(ids, 'item-id', this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item matching any one of the provided custom supplied IDs.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide the item with the `item-supplied-id-1` supplied ID\n * // and the `item-supplied-id-2` supplied ID\n * await scene.items((op) => [\n * op\n * .where((q) => q.withItemIds(['item-supplied-id-1', 'item-supplied-id-2']))\n * .hide(),\n * ]).execute();\n * ```\n */\n public withSuppliedIds(ids: string[]): BulkQuery {\n return new BulkQuery(ids, 'supplied-id', this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item matching the provided ID.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide the item with the `item-uuid` ID\n * await scene.items((op) => [\n * op.where((q) => q.withItemId('item-uuid')).hide(),\n * ]).execute();\n * ```\n */\n public withItemId(id: string): SingleQuery {\n return new SingleQuery({ type: 'item-id', value: id }, this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item matching the provided custom supplied ID.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide the item with the `item-supplied-id` supplied ID\n * await scene.items((op) => [\n * op.where((q) => q.withSuppliedId('item-supplied-id')).hide(),\n * ]).execute();\n * ```\n */\n public withSuppliedId(id: string): SingleQuery {\n return new SingleQuery({ type: 'supplied-id', value: id }, this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on a range within the `<vertex-scene-tree>` component.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide all items from the 2nd row to the 5th row of the scene-tree\n * await scene.items((op) => [\n * op\n * .where((q) =>\n * q.withSceneTreeRange({\n * start: 2,\n * end: 5,\n * })\n * )\n * .hide(),\n * ]).execute();\n * ```\n */\n public withSceneTreeRange(range: SceneTreeRange): SceneTreeRangeQuery {\n return new SceneTreeRangeQuery(range, this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item that has a metadata value matching the\n * filter provided for any of the keys specified. Can optionally be set to perform an exactMatch,\n * which will require that the filter matches the value exactly.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide all items where the `PART_NAME_KEY` includes a value of `PartName`\n * await scene.items((op) => [\n * op.where((q) => q.withMetadata('PartName', ['PART_NAME_KEY'])).hide(),\n * ]).execute();\n *\n * // Hide all items where the `PART_NAME_KEY` has exactly a value of `PartName`\n * await scene.items((op) => [\n * op.where((q) => q.withMetadata('PartName', ['PART_NAME_KEY'], true)).hide(),\n * ]).execute();\n * ```\n */\n public withMetadata(\n filter: string,\n keys: string[],\n exactMatch: boolean\n ): MetadataQuery {\n return new MetadataQuery(filter, keys, exactMatch, this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item that has been selected.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide all items that are selected\n * await scene.items((op) => [op.where((q) => q.withSelected()).hide()]).execute();\n * ```\n */\n public withSelected(): AllSelectedQuery {\n return new AllSelectedQuery(this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item that is visible.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Select all items that are visible\n * await scene.items((op) => [op.where((q) => q.withVisible()).select()]).execute();\n * ```\n */\n public withVisible(): AllVisibleQuery {\n return new AllVisibleQuery(this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item present at the provided `point` in the image.\n * This query operates on the item found at that `point` similar to using `withItemId` in combination with\n * `raycaster.hitItems`, which can be useful if the additional metadata from the `raycaster.hitItems`\n * method is not needed to eliminate a network request.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Select the item present at the [100, 100] coordinate of the image\n * await scene.items((op) => [\n * op.where((q) => q.withPoint(Point.create(100, 100))).select(),\n * ]).execute();\n * ```\n */\n public withPoint(point: Point.Point): PointQuery {\n return new PointQuery(point, this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on items within the specified `rectangle` boundary \n * within the Viewer. The `exclusive` flag here determines whether items that intersect with the `rectangle`, \n * but are not contained should be included in the result.\n * \n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n\n * // Select all items within the specified 100x100 region of the image\n * // excluding any elements that are not fully contained by the region\n * await scene.items((op) => [\n * op\n * .where((q) =>\n * q.withVolumeIntersection(\n * Rectangle.create(100, 100, 100, 100),\n * true\n * )\n * )\n * .hide(),\n * ]).execute();\n\n * // Select all items within the specified 100x100 region of the image\n * // including any elements that intersect with the region\n * await scene.items((op) => [\n * op\n * .where((q) =>\n * q.withVolumeIntersection(\n * Rectangle.create(100, 100, 100, 100),\n * false\n * )\n * )\n * .hide(),\n * ]).execute();\n * ```\n */\n public withVolumeIntersection(\n rectangle: Rectangle.Rectangle,\n exclusive?: boolean\n ): VolumeIntersectionQuery {\n return new VolumeIntersectionQuery(rectangle, this.inverted, exclusive);\n }\n}\n\nexport class NotQuery extends RootQuery {\n public constructor(inverted: boolean) {\n super(inverted);\n }\n}\n\nexport class AllQuery extends TerminalQuery {\n public constructor(inverted = false) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): QueryExpression {\n return { type: 'all' };\n }\n}\n\nexport class SceneTreeRangeQuery extends TerminalQuery {\n public constructor(private range: SceneTreeRange, inverted: boolean) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): SceneTreeRangeQueryExpression {\n return {\n type: 'scene-tree-range',\n range: this.range,\n };\n }\n}\n\nexport class MetadataQuery extends TerminalQuery {\n public constructor(\n private filter: string,\n private keys: string[],\n private exactMatch: boolean,\n inverted: boolean\n ) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): MetadataQueryExpression {\n return {\n type: 'metadata',\n filter: this.filter,\n keys: this.keys,\n exactMatch: this.exactMatch,\n };\n }\n}\n\nexport class AllSelectedQuery extends TerminalQuery {\n public constructor(inverted: boolean) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): AllSelectedQueryExpression {\n return {\n type: 'all-selected',\n };\n }\n}\n\nexport class AllVisibleQuery extends TerminalQuery {\n public constructor(inverted: boolean) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): AllVisibleQueryExpression {\n return {\n type: 'all-visible',\n };\n }\n}\n\nexport class PointQuery extends TerminalQuery {\n public constructor(private point: Point.Point, inverted: boolean) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): PointQueryExpression {\n return {\n type: 'point',\n point: this.point,\n };\n }\n}\n\nexport class VolumeIntersectionQuery extends TerminalQuery {\n public constructor(\n private rectangle: Rectangle.Rectangle,\n inverted: boolean,\n private exclusive?: boolean\n ) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): VolumeIntersectionQueryExpression {\n return {\n type: 'volume-intersection',\n rectangle: this.rectangle,\n exclusive: !!this.exclusive,\n };\n }\n}\n\nexport class BulkQuery extends TerminalQuery {\n public constructor(\n private ids: string[],\n private type: 'item-id' | 'supplied-id',\n inverted: boolean\n ) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): QueryExpression {\n return {\n type: 'or',\n expressions: this.ids.map((id) => {\n return {\n type: this.type,\n value: id,\n };\n }),\n };\n }\n}\n\nclass SingleQuery extends TerminalQuery implements BooleanQuery {\n public constructor(private query: QueryExpression, inverted: boolean) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): QueryExpression {\n return { ...this.query };\n }\n\n public and(): AndQuery {\n return new AndQuery([this.query], this.inverted);\n }\n\n public or(): OrQuery {\n return new OrQuery([this.query], this.inverted);\n }\n}\n\nexport class OrQuery extends TerminalQuery implements ItemQuery<OrQuery> {\n public constructor(\n private expressions: QueryExpression[],\n inverted: boolean\n ) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): QueryExpression {\n return { type: 'or', expressions: [...this.expressions] };\n }\n\n public withItemId(id: string): OrQuery {\n return new OrQuery(\n [...this.expressions, { type: 'item-id', value: id }],\n this.inverted\n );\n }\n\n public withSuppliedId(id: string): OrQuery {\n return new OrQuery(\n [...this.expressions, { type: 'supplied-id', value: id }],\n this.inverted\n );\n }\n\n public or(): OrQuery {\n return this;\n }\n}\n\nexport class AndQuery extends TerminalQuery implements ItemQuery<AndQuery> {\n public constructor(\n private expressions: QueryExpression[],\n inverted: boolean\n ) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): QueryExpression {\n return { type: 'and', expressions: [...this.expressions] };\n }\n\n public withItemId(id: string): AndQuery {\n return new AndQuery(\n [...this.expressions, { type: 'item-id', value: id }],\n this.inverted\n );\n }\n\n public withSuppliedId(id: string): AndQuery {\n return new AndQuery(\n [...this.expressions, { type: 'supplied-id', value: id }],\n this.inverted\n );\n }\n\n public and(): AndQuery {\n return this;\n }\n}\n\nexport class SceneItemQueryExecutor {\n public where(\n query: (q: RootQuery) => TerminalQuery\n ): SceneItemOperationsBuilder {\n const expression: QueryExpression = query(new RootQuery()).build();\n\n return new SceneItemOperationsBuilder(expression);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/queries.ts"],"names":[],"mappings":"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","sourcesContent":["import { Point, Rectangle } from '@vertexvis/geometry';\n\nimport { SceneItemOperationsBuilder } from './scene';\n\ninterface AllQueryExpression {\n type: 'all';\n}\n\nexport interface SceneTreeRange {\n start: number;\n end: number;\n}\n\ninterface ItemQueryExpression {\n type: 'item-id' | 'supplied-id';\n value: string;\n}\n\nexport interface AndExpression {\n type: 'and';\n expressions: QueryExpression[];\n}\n\nexport interface OrExpression {\n type: 'or';\n expressions: QueryExpression[];\n}\n\ninterface SceneTreeRangeQueryExpression {\n type: 'scene-tree-range';\n range: SceneTreeRange;\n}\n\ninterface NotQueryExpression {\n type: 'not';\n query: QueryExpression;\n}\n\ninterface MetadataQueryExpression {\n type: 'metadata';\n filter: string;\n keys: string[];\n exactMatch: boolean;\n removeHiddenItems?: boolean;\n}\n\ninterface AllSelectedQueryExpression {\n type: 'all-selected';\n}\n\ninterface AllVisibleQueryExpression {\n type: 'all-visible';\n}\n\ninterface PointQueryExpression {\n type: 'point';\n point: Point.Point;\n}\n\ninterface VolumeIntersectionQueryExpression {\n type: 'volume-intersection';\n rectangle: Rectangle.Rectangle;\n exclusive: boolean;\n}\n\n/**\n * Represents the sum of all possible types of expressions.\n */\nexport type QueryExpression =\n | AllQueryExpression\n | ItemQueryExpression\n | AndExpression\n | OrExpression\n | SceneTreeRangeQueryExpression\n | PointQueryExpression\n | VolumeIntersectionQueryExpression\n | MetadataQueryExpression\n | AllSelectedQueryExpression\n | AllVisibleQueryExpression\n | NotQueryExpression;\n\n/**\n * An interface that represents a query is \"complete\" and can be turned into an\n * expression.\n */\nabstract class TerminalQuery {\n protected inverted: boolean;\n public constructor(inverted: boolean) {\n this.inverted = inverted;\n }\n\n public build(): QueryExpression {\n if (this.inverted) {\n return {\n type: 'not',\n query: this.queryExpressionBuilder(),\n };\n } else {\n return this.queryExpressionBuilder();\n }\n }\n\n public abstract queryExpressionBuilder(): QueryExpression;\n}\n\ninterface ItemQuery<N> {\n withItemId(id: string): N;\n\n withSuppliedId(id: string): N;\n}\n\ninterface BooleanQuery {\n and(): AndQuery;\n or(): OrQuery;\n}\n\nexport class RootQuery implements ItemQuery<SingleQuery> {\n public constructor(private inverted: boolean = false) {}\n\n /**\n * Specifies that the operation should be performed on all items in the scene.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Deselect all items in the scene\n * await scene.items((op) => [op.where((q) => q.all()).deselect()]).execute();\n * ```\n */\n public all(): AllQuery {\n return new AllQuery();\n }\n\n /**\n * Specifies that the operation should be performed on all items that do not match any following queries.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide all items that are not selected\n * await scene.items((op) => [op.where((q) => q.not().withSelected()).hide()]).execute();\n * ```\n */\n public not(): RootQuery {\n return new NotQuery(!this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item matching any one of the provided IDs.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide the item with the `item-uuid-1` ID and the `item-uuid-2` ID\n * await scene.items((op) => [\n * op.where((q) => q.withItemIds(['item-uuid-1', 'item-uuid-2'])).hide(),\n * ]).execute();\n * ```\n */\n public withItemIds(ids: string[]): BulkQuery {\n return new BulkQuery(ids, 'item-id', this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item matching any one of the provided custom supplied IDs.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide the item with the `item-supplied-id-1` supplied ID\n * // and the `item-supplied-id-2` supplied ID\n * await scene.items((op) => [\n * op\n * .where((q) => q.withItemIds(['item-supplied-id-1', 'item-supplied-id-2']))\n * .hide(),\n * ]).execute();\n * ```\n */\n public withSuppliedIds(ids: string[]): BulkQuery {\n return new BulkQuery(ids, 'supplied-id', this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item matching the provided ID.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide the item with the `item-uuid` ID\n * await scene.items((op) => [\n * op.where((q) => q.withItemId('item-uuid')).hide(),\n * ]).execute();\n * ```\n */\n public withItemId(id: string): SingleQuery {\n return new SingleQuery({ type: 'item-id', value: id }, this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item matching the provided custom supplied ID.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide the item with the `item-supplied-id` supplied ID\n * await scene.items((op) => [\n * op.where((q) => q.withSuppliedId('item-supplied-id')).hide(),\n * ]).execute();\n * ```\n */\n public withSuppliedId(id: string): SingleQuery {\n return new SingleQuery({ type: 'supplied-id', value: id }, this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on a range within the `<vertex-scene-tree>` component.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide all items from the 2nd row to the 5th row of the scene-tree\n * await scene.items((op) => [\n * op\n * .where((q) =>\n * q.withSceneTreeRange({\n * start: 2,\n * end: 5,\n * })\n * )\n * .hide(),\n * ]).execute();\n * ```\n */\n public withSceneTreeRange(range: SceneTreeRange): SceneTreeRangeQuery {\n return new SceneTreeRangeQuery(range, this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item that has a metadata value matching the\n * filter provided for any of the keys specified. Can optionally be set to perform an exactMatch,\n * which will require that the filter matches the value exactly.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide all items where the `PART_NAME_KEY` includes a value of `PartName`\n * await scene.items((op) => [\n * op.where((q) => q.withMetadata('PartName', ['PART_NAME_KEY'])).hide(),\n * ]).execute();\n *\n * // Hide all items where the `PART_NAME_KEY` has exactly a value of `PartName`\n * await scene.items((op) => [\n * op.where((q) => q.withMetadata('PartName', ['PART_NAME_KEY'], true)).hide(),\n * ]).execute();\n * ```\n */\n public withMetadata(\n filter: string,\n keys: string[],\n exactMatch: boolean,\n removeHiddenItems?: boolean\n ): MetadataQuery {\n return new MetadataQuery(\n filter,\n keys,\n exactMatch,\n this.inverted,\n removeHiddenItems\n );\n }\n\n /**\n * Specifies that the operation should be performed on any item that has been selected.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Hide all items that are selected\n * await scene.items((op) => [op.where((q) => q.withSelected()).hide()]).execute();\n * ```\n */\n public withSelected(): AllSelectedQuery {\n return new AllSelectedQuery(this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item that is visible.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Select all items that are visible\n * await scene.items((op) => [op.where((q) => q.withVisible()).select()]).execute();\n * ```\n */\n public withVisible(): AllVisibleQuery {\n return new AllVisibleQuery(this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on any item present at the provided `point` in the image.\n * This query operates on the item found at that `point` similar to using `withItemId` in combination with\n * `raycaster.hitItems`, which can be useful if the additional metadata from the `raycaster.hitItems`\n * method is not needed to eliminate a network request.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n *\n * // Select the item present at the [100, 100] coordinate of the image\n * await scene.items((op) => [\n * op.where((q) => q.withPoint(Point.create(100, 100))).select(),\n * ]).execute();\n * ```\n */\n public withPoint(point: Point.Point): PointQuery {\n return new PointQuery(point, this.inverted);\n }\n\n /**\n * Specifies that the operation should be performed on items within the specified `rectangle` boundary \n * within the Viewer. The `exclusive` flag here determines whether items that intersect with the `rectangle`, \n * but are not contained should be included in the result.\n * \n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n\n * // Select all items within the specified 100x100 region of the image\n * // excluding any elements that are not fully contained by the region\n * await scene.items((op) => [\n * op\n * .where((q) =>\n * q.withVolumeIntersection(\n * Rectangle.create(100, 100, 100, 100),\n * true\n * )\n * )\n * .hide(),\n * ]).execute();\n\n * // Select all items within the specified 100x100 region of the image\n * // including any elements that intersect with the region\n * await scene.items((op) => [\n * op\n * .where((q) =>\n * q.withVolumeIntersection(\n * Rectangle.create(100, 100, 100, 100),\n * false\n * )\n * )\n * .hide(),\n * ]).execute();\n * ```\n */\n public withVolumeIntersection(\n rectangle: Rectangle.Rectangle,\n exclusive?: boolean\n ): VolumeIntersectionQuery {\n return new VolumeIntersectionQuery(rectangle, this.inverted, exclusive);\n }\n}\n\nexport class NotQuery extends RootQuery {\n public constructor(inverted: boolean) {\n super(inverted);\n }\n}\n\nexport class AllQuery extends TerminalQuery {\n public constructor(inverted = false) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): QueryExpression {\n return { type: 'all' };\n }\n}\n\nexport class SceneTreeRangeQuery extends TerminalQuery {\n public constructor(private range: SceneTreeRange, inverted: boolean) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): SceneTreeRangeQueryExpression {\n return {\n type: 'scene-tree-range',\n range: this.range,\n };\n }\n}\n\nexport class MetadataQuery extends TerminalQuery {\n public constructor(\n private filter: string,\n private keys: string[],\n private exactMatch: boolean,\n inverted: boolean,\n private removeHiddenItems?: boolean\n ) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): MetadataQueryExpression {\n return {\n type: 'metadata',\n filter: this.filter,\n keys: this.keys,\n exactMatch: this.exactMatch,\n removeHiddenItems: this.removeHiddenItems,\n };\n }\n}\n\nexport class AllSelectedQuery extends TerminalQuery {\n public constructor(inverted: boolean) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): AllSelectedQueryExpression {\n return {\n type: 'all-selected',\n };\n }\n}\n\nexport class AllVisibleQuery extends TerminalQuery {\n public constructor(inverted: boolean) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): AllVisibleQueryExpression {\n return {\n type: 'all-visible',\n };\n }\n}\n\nexport class PointQuery extends TerminalQuery {\n public constructor(private point: Point.Point, inverted: boolean) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): PointQueryExpression {\n return {\n type: 'point',\n point: this.point,\n };\n }\n}\n\nexport class VolumeIntersectionQuery extends TerminalQuery {\n public constructor(\n private rectangle: Rectangle.Rectangle,\n inverted: boolean,\n private exclusive?: boolean\n ) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): VolumeIntersectionQueryExpression {\n return {\n type: 'volume-intersection',\n rectangle: this.rectangle,\n exclusive: !!this.exclusive,\n };\n }\n}\n\nexport class BulkQuery extends TerminalQuery {\n public constructor(\n private ids: string[],\n private type: 'item-id' | 'supplied-id',\n inverted: boolean\n ) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): QueryExpression {\n return {\n type: 'or',\n expressions: this.ids.map((id) => {\n return {\n type: this.type,\n value: id,\n };\n }),\n };\n }\n}\n\nclass SingleQuery extends TerminalQuery implements BooleanQuery {\n public constructor(private query: QueryExpression, inverted: boolean) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): QueryExpression {\n return { ...this.query };\n }\n\n public and(): AndQuery {\n return new AndQuery([this.query], this.inverted);\n }\n\n public or(): OrQuery {\n return new OrQuery([this.query], this.inverted);\n }\n}\n\nexport class OrQuery extends TerminalQuery implements ItemQuery<OrQuery> {\n public constructor(\n private expressions: QueryExpression[],\n inverted: boolean\n ) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): QueryExpression {\n return { type: 'or', expressions: [...this.expressions] };\n }\n\n public withItemId(id: string): OrQuery {\n return new OrQuery(\n [...this.expressions, { type: 'item-id', value: id }],\n this.inverted\n );\n }\n\n public withSuppliedId(id: string): OrQuery {\n return new OrQuery(\n [...this.expressions, { type: 'supplied-id', value: id }],\n this.inverted\n );\n }\n\n public or(): OrQuery {\n return this;\n }\n}\n\nexport class AndQuery extends TerminalQuery implements ItemQuery<AndQuery> {\n public constructor(\n private expressions: QueryExpression[],\n inverted: boolean\n ) {\n super(inverted);\n }\n\n public queryExpressionBuilder(): QueryExpression {\n return { type: 'and', expressions: [...this.expressions] };\n }\n\n public withItemId(id: string): AndQuery {\n return new AndQuery(\n [...this.expressions, { type: 'item-id', value: id }],\n this.inverted\n );\n }\n\n public withSuppliedId(id: string): AndQuery {\n return new AndQuery(\n [...this.expressions, { type: 'supplied-id', value: id }],\n this.inverted\n );\n }\n\n public and(): AndQuery {\n return this;\n }\n}\n\nexport class SceneItemQueryExecutor {\n public where(\n query: (q: RootQuery) => TerminalQuery\n ): SceneItemOperationsBuilder {\n const expression: QueryExpression = query(new RootQuery()).build();\n\n return new SceneItemOperationsBuilder(expression);\n }\n}\n"]}
|
|
@@ -1106,6 +1106,7 @@ var global = Function('return this')();
|
|
|
1106
1106
|
|
|
1107
1107
|
|
|
1108
1108
|
goog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ColumnKey', null, global);
|
|
1109
|
+
goog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange', null, global);
|
|
1109
1110
|
goog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive', null, global);
|
|
1110
1111
|
goog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange', null, global);
|
|
1111
1112
|
goog.exportSymbol('proto.vertexvis.protobuf.scenetree.v1alpha1.Node', null, global);
|
|
@@ -2428,6 +2429,148 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.serializeBinaryToWriter =
|
|
|
2428
2429
|
|
|
2429
2430
|
|
|
2430
2431
|
|
|
2432
|
+
/**
|
|
2433
|
+
* Generated by JsPbCodeGenerator.
|
|
2434
|
+
* @param {Array=} opt_data Optional initial data array, typically from a
|
|
2435
|
+
* server response, or constructed directly in Javascript. The array is used
|
|
2436
|
+
* in place and becomes part of the constructed object. It is not cloned.
|
|
2437
|
+
* If no data is provided, the constructed object will be empty, but still
|
|
2438
|
+
* valid.
|
|
2439
|
+
* @extends {jspb.Message}
|
|
2440
|
+
* @constructor
|
|
2441
|
+
*/
|
|
2442
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange = function(opt_data) {
|
|
2443
|
+
googleProtobuf.Message.initialize(this, opt_data, 0, -1, null, null);
|
|
2444
|
+
};
|
|
2445
|
+
goog.inherits(proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange, googleProtobuf.Message);
|
|
2446
|
+
if (goog.DEBUG && !COMPILED) {
|
|
2447
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.displayName = 'proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange';
|
|
2448
|
+
}
|
|
2449
|
+
|
|
2450
|
+
|
|
2451
|
+
if (googleProtobuf.Message.GENERATE_TO_OBJECT) {
|
|
2452
|
+
/**
|
|
2453
|
+
* Creates an object representation of this proto suitable for use in Soy templates.
|
|
2454
|
+
* Field names that are reserved in JavaScript and will be renamed to pb_name.
|
|
2455
|
+
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
|
|
2456
|
+
* For the list of reserved names please see:
|
|
2457
|
+
* com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
|
|
2458
|
+
* @param {boolean=} opt_includeInstance Whether to include the JSPB instance
|
|
2459
|
+
* for transitional soy proto support: http://goto/soy-param-migration
|
|
2460
|
+
* @return {!Object}
|
|
2461
|
+
*/
|
|
2462
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.prototype.toObject = function(opt_includeInstance) {
|
|
2463
|
+
return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.toObject(opt_includeInstance, this);
|
|
2464
|
+
};
|
|
2465
|
+
|
|
2466
|
+
|
|
2467
|
+
/**
|
|
2468
|
+
* Static version of the {@see toObject} method.
|
|
2469
|
+
* @param {boolean|undefined} includeInstance Whether to include the JSPB
|
|
2470
|
+
* instance for transitional soy proto support:
|
|
2471
|
+
* http://goto/soy-param-migration
|
|
2472
|
+
* @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange} msg The msg instance to transform.
|
|
2473
|
+
* @return {!Object}
|
|
2474
|
+
* @suppress {unusedLocalVariables} f is only used for nested messages
|
|
2475
|
+
*/
|
|
2476
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.toObject = function(includeInstance, msg) {
|
|
2477
|
+
var obj = {
|
|
2478
|
+
numberOfResults: googleProtobuf.Message.getFieldWithDefault(msg, 1, 0)
|
|
2479
|
+
};
|
|
2480
|
+
|
|
2481
|
+
if (includeInstance) {
|
|
2482
|
+
obj.$jspbMessageInstance = msg;
|
|
2483
|
+
}
|
|
2484
|
+
return obj;
|
|
2485
|
+
};
|
|
2486
|
+
}
|
|
2487
|
+
|
|
2488
|
+
|
|
2489
|
+
/**
|
|
2490
|
+
* Deserializes binary data (in protobuf wire format).
|
|
2491
|
+
* @param {jspb.ByteSource} bytes The bytes to deserialize.
|
|
2492
|
+
* @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange}
|
|
2493
|
+
*/
|
|
2494
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.deserializeBinary = function(bytes) {
|
|
2495
|
+
var reader = new googleProtobuf.BinaryReader(bytes);
|
|
2496
|
+
var msg = new proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange;
|
|
2497
|
+
return proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.deserializeBinaryFromReader(msg, reader);
|
|
2498
|
+
};
|
|
2499
|
+
|
|
2500
|
+
|
|
2501
|
+
/**
|
|
2502
|
+
* Deserializes binary data (in protobuf wire format) from the
|
|
2503
|
+
* given reader into the given message object.
|
|
2504
|
+
* @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange} msg The message object to deserialize into.
|
|
2505
|
+
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
|
|
2506
|
+
* @return {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange}
|
|
2507
|
+
*/
|
|
2508
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.deserializeBinaryFromReader = function(msg, reader) {
|
|
2509
|
+
while (reader.nextField()) {
|
|
2510
|
+
if (reader.isEndGroup()) {
|
|
2511
|
+
break;
|
|
2512
|
+
}
|
|
2513
|
+
var field = reader.getFieldNumber();
|
|
2514
|
+
switch (field) {
|
|
2515
|
+
case 1:
|
|
2516
|
+
var value = /** @type {number} */ (reader.readInt32());
|
|
2517
|
+
msg.setNumberOfResults(value);
|
|
2518
|
+
break;
|
|
2519
|
+
default:
|
|
2520
|
+
reader.skipField();
|
|
2521
|
+
break;
|
|
2522
|
+
}
|
|
2523
|
+
}
|
|
2524
|
+
return msg;
|
|
2525
|
+
};
|
|
2526
|
+
|
|
2527
|
+
|
|
2528
|
+
/**
|
|
2529
|
+
* Serializes the message to binary data (in protobuf wire format).
|
|
2530
|
+
* @return {!Uint8Array}
|
|
2531
|
+
*/
|
|
2532
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.prototype.serializeBinary = function() {
|
|
2533
|
+
var writer = new googleProtobuf.BinaryWriter();
|
|
2534
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.serializeBinaryToWriter(this, writer);
|
|
2535
|
+
return writer.getResultBuffer();
|
|
2536
|
+
};
|
|
2537
|
+
|
|
2538
|
+
|
|
2539
|
+
/**
|
|
2540
|
+
* Serializes the given message to binary data (in protobuf wire
|
|
2541
|
+
* format), writing to the given BinaryWriter.
|
|
2542
|
+
* @param {!proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange} message
|
|
2543
|
+
* @param {!jspb.BinaryWriter} writer
|
|
2544
|
+
* @suppress {unusedLocalVariables} f is only used for nested messages
|
|
2545
|
+
*/
|
|
2546
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.serializeBinaryToWriter = function(message, writer) {
|
|
2547
|
+
var f = undefined;
|
|
2548
|
+
f = message.getNumberOfResults();
|
|
2549
|
+
if (f !== 0) {
|
|
2550
|
+
writer.writeInt32(
|
|
2551
|
+
1,
|
|
2552
|
+
f
|
|
2553
|
+
);
|
|
2554
|
+
}
|
|
2555
|
+
};
|
|
2556
|
+
|
|
2557
|
+
|
|
2558
|
+
/**
|
|
2559
|
+
* optional int32 number_of_results = 1;
|
|
2560
|
+
* @return {number}
|
|
2561
|
+
*/
|
|
2562
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.prototype.getNumberOfResults = function() {
|
|
2563
|
+
return /** @type {number} */ (googleProtobuf.Message.getFieldWithDefault(this, 1, 0));
|
|
2564
|
+
};
|
|
2565
|
+
|
|
2566
|
+
|
|
2567
|
+
/** @param {number} value */
|
|
2568
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.prototype.setNumberOfResults = function(value) {
|
|
2569
|
+
googleProtobuf.Message.setProto3IntField(this, 1, value);
|
|
2570
|
+
};
|
|
2571
|
+
|
|
2572
|
+
|
|
2573
|
+
|
|
2431
2574
|
/**
|
|
2432
2575
|
* Generated by JsPbCodeGenerator.
|
|
2433
2576
|
* @param {Array=} opt_data Optional initial data array, typically from a
|
|
@@ -2453,7 +2596,7 @@ if (goog.DEBUG && !COMPILED) {
|
|
|
2453
2596
|
* @private {!Array<!Array<number>>}
|
|
2454
2597
|
* @const
|
|
2455
2598
|
*/
|
|
2456
|
-
proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_ = [[1,2,3]];
|
|
2599
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_ = [[1,2,3,4]];
|
|
2457
2600
|
|
|
2458
2601
|
/**
|
|
2459
2602
|
* @enum {number}
|
|
@@ -2462,7 +2605,8 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.SealedValueCase = {
|
|
|
2462
2605
|
SEALED_VALUE_NOT_SET: 0,
|
|
2463
2606
|
LIST_CHANGE: 1,
|
|
2464
2607
|
RANGES: 2,
|
|
2465
|
-
KEEP_ALIVE: 3
|
|
2608
|
+
KEEP_ALIVE: 3,
|
|
2609
|
+
FILTER_CHANGE: 4
|
|
2466
2610
|
};
|
|
2467
2611
|
|
|
2468
2612
|
/**
|
|
@@ -2503,7 +2647,8 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.toObject = function(i
|
|
|
2503
2647
|
var f, obj = {
|
|
2504
2648
|
listChange: (f = msg.getListChange()) && proto.vertexvis.protobuf.scenetree.v1alpha1.ListChange.toObject(includeInstance, f),
|
|
2505
2649
|
ranges: (f = msg.getRanges()) && proto.vertexvis.protobuf.scenetree.v1alpha1.StateChange.toObject(includeInstance, f),
|
|
2506
|
-
keepAlive: (f = msg.getKeepAlive()) && proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.toObject(includeInstance, f)
|
|
2650
|
+
keepAlive: (f = msg.getKeepAlive()) && proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.toObject(includeInstance, f),
|
|
2651
|
+
filterChange: (f = msg.getFilterChange()) && proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.toObject(includeInstance, f)
|
|
2507
2652
|
};
|
|
2508
2653
|
|
|
2509
2654
|
if (includeInstance) {
|
|
@@ -2555,6 +2700,11 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.deserializeBinaryFrom
|
|
|
2555
2700
|
reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.deserializeBinaryFromReader);
|
|
2556
2701
|
msg.setKeepAlive(value);
|
|
2557
2702
|
break;
|
|
2703
|
+
case 4:
|
|
2704
|
+
var value = new proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange;
|
|
2705
|
+
reader.readMessage(value,proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.deserializeBinaryFromReader);
|
|
2706
|
+
msg.setFilterChange(value);
|
|
2707
|
+
break;
|
|
2558
2708
|
default:
|
|
2559
2709
|
reader.skipField();
|
|
2560
2710
|
break;
|
|
@@ -2608,6 +2758,14 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.serializeBinaryToWrit
|
|
|
2608
2758
|
proto.vertexvis.protobuf.scenetree.v1alpha1.KeepAlive.serializeBinaryToWriter
|
|
2609
2759
|
);
|
|
2610
2760
|
}
|
|
2761
|
+
f = message.getFilterChange();
|
|
2762
|
+
if (f != null) {
|
|
2763
|
+
writer.writeMessage(
|
|
2764
|
+
4,
|
|
2765
|
+
f,
|
|
2766
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange.serializeBinaryToWriter
|
|
2767
|
+
);
|
|
2768
|
+
}
|
|
2611
2769
|
};
|
|
2612
2770
|
|
|
2613
2771
|
|
|
@@ -2701,6 +2859,36 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.hasKeepAliv
|
|
|
2701
2859
|
};
|
|
2702
2860
|
|
|
2703
2861
|
|
|
2862
|
+
/**
|
|
2863
|
+
* optional FilterChange filter_change = 4;
|
|
2864
|
+
* @return {?proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange}
|
|
2865
|
+
*/
|
|
2866
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.getFilterChange = function() {
|
|
2867
|
+
return /** @type{?proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange} */ (
|
|
2868
|
+
googleProtobuf.Message.getWrapperField(this, proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange, 4));
|
|
2869
|
+
};
|
|
2870
|
+
|
|
2871
|
+
|
|
2872
|
+
/** @param {?proto.vertexvis.protobuf.scenetree.v1alpha1.FilterChange|undefined} value */
|
|
2873
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.setFilterChange = function(value) {
|
|
2874
|
+
googleProtobuf.Message.setOneofWrapperField(this, 4, proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.oneofGroups_[0], value);
|
|
2875
|
+
};
|
|
2876
|
+
|
|
2877
|
+
|
|
2878
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.clearFilterChange = function() {
|
|
2879
|
+
this.setFilterChange(undefined);
|
|
2880
|
+
};
|
|
2881
|
+
|
|
2882
|
+
|
|
2883
|
+
/**
|
|
2884
|
+
* Returns whether this field is set.
|
|
2885
|
+
* @return {!boolean}
|
|
2886
|
+
*/
|
|
2887
|
+
proto.vertexvis.protobuf.scenetree.v1alpha1.TreeChangeType.prototype.hasFilterChange = function() {
|
|
2888
|
+
return googleProtobuf.Message.getField(this, 4) != null;
|
|
2889
|
+
};
|
|
2890
|
+
|
|
2891
|
+
|
|
2704
2892
|
|
|
2705
2893
|
/**
|
|
2706
2894
|
* Generated by JsPbCodeGenerator.
|
|
@@ -7260,6 +7448,7 @@ class SceneTreeController {
|
|
|
7260
7448
|
req.setFilter(term);
|
|
7261
7449
|
req.setFullTree((_a = options.includeCollapsed) !== null && _a !== void 0 ? _a : true);
|
|
7262
7450
|
req.setExactMatch(!!options.exactMatch);
|
|
7451
|
+
req.setRemoveHiddenItems(!!options.removeHiddenItems);
|
|
7263
7452
|
if (options.columns)
|
|
7264
7453
|
req.setColumnsKeysList(options.columns);
|
|
7265
7454
|
this.pendingFilterGrpcRes = this.client.filter(req, metadata, handler);
|
|
@@ -7382,6 +7571,10 @@ class SceneTreeController {
|
|
|
7382
7571
|
}
|
|
7383
7572
|
this.startIdleReconnectTimer();
|
|
7384
7573
|
const { change } = msg.toObject();
|
|
7574
|
+
// Update the number of filtered results if changed
|
|
7575
|
+
if ((change === null || change === void 0 ? void 0 : change.filterChange) != null) {
|
|
7576
|
+
this.updateState(Object.assign(Object.assign({}, this.state), { totalFilteredRows: change.filterChange.numberOfResults }));
|
|
7577
|
+
}
|
|
7385
7578
|
if ((change === null || change === void 0 ? void 0 : change.listChange) != null) {
|
|
7386
7579
|
this.log('Received list change', change.listChange.start);
|
|
7387
7580
|
this.invalidateAfterOffset(change.listChange.start);
|