@itwin/core-common 5.1.0-dev.60 → 5.1.0-dev.62

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 (77) hide show
  1. package/lib/cjs/BackgroundMapSettings.d.ts +2 -2
  2. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  3. package/lib/cjs/ChangesetProps.d.ts +28 -0
  4. package/lib/cjs/ChangesetProps.d.ts.map +1 -1
  5. package/lib/cjs/ChangesetProps.js.map +1 -1
  6. package/lib/cjs/ClipStyle.d.ts +1 -1
  7. package/lib/cjs/ClipStyle.d.ts.map +1 -1
  8. package/lib/cjs/ClipStyle.js.map +1 -1
  9. package/lib/cjs/ElementProps.d.ts +22 -12
  10. package/lib/cjs/ElementProps.d.ts.map +1 -1
  11. package/lib/cjs/ElementProps.js.map +1 -1
  12. package/lib/cjs/EntityProps.d.ts.map +1 -1
  13. package/lib/cjs/EntityProps.js +2 -0
  14. package/lib/cjs/EntityProps.js.map +1 -1
  15. package/lib/cjs/TerrainSettings.d.ts +1 -1
  16. package/lib/cjs/TerrainSettings.js.map +1 -1
  17. package/lib/cjs/annotation/TextAnnotation.d.ts +4 -39
  18. package/lib/cjs/annotation/TextAnnotation.d.ts.map +1 -1
  19. package/lib/cjs/annotation/TextAnnotation.js +14 -26
  20. package/lib/cjs/annotation/TextAnnotation.js.map +1 -1
  21. package/lib/cjs/annotation/TextBlock.d.ts +41 -42
  22. package/lib/cjs/annotation/TextBlock.d.ts.map +1 -1
  23. package/lib/cjs/annotation/TextBlock.js +56 -56
  24. package/lib/cjs/annotation/TextBlock.js.map +1 -1
  25. package/lib/cjs/annotation/TextBlockLayoutResult.d.ts +1 -1
  26. package/lib/cjs/annotation/TextBlockLayoutResult.d.ts.map +1 -1
  27. package/lib/cjs/annotation/TextBlockLayoutResult.js.map +1 -1
  28. package/lib/cjs/annotation/TextStyle.d.ts +63 -34
  29. package/lib/cjs/annotation/TextStyle.d.ts.map +1 -1
  30. package/lib/cjs/annotation/TextStyle.js +84 -39
  31. package/lib/cjs/annotation/TextStyle.js.map +1 -1
  32. package/lib/cjs/internal/BackendTypes.d.ts +3 -3
  33. package/lib/cjs/internal/BackendTypes.d.ts.map +1 -1
  34. package/lib/cjs/internal/BackendTypes.js.map +1 -1
  35. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +1 -1
  36. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts.map +1 -1
  37. package/lib/cjs/rpc/IModelReadRpcInterface.js +1 -1
  38. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  39. package/lib/esm/BackgroundMapSettings.d.ts +2 -2
  40. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  41. package/lib/esm/ChangesetProps.d.ts +28 -0
  42. package/lib/esm/ChangesetProps.d.ts.map +1 -1
  43. package/lib/esm/ChangesetProps.js.map +1 -1
  44. package/lib/esm/ClipStyle.d.ts +1 -1
  45. package/lib/esm/ClipStyle.d.ts.map +1 -1
  46. package/lib/esm/ClipStyle.js.map +1 -1
  47. package/lib/esm/ElementProps.d.ts +22 -12
  48. package/lib/esm/ElementProps.d.ts.map +1 -1
  49. package/lib/esm/ElementProps.js.map +1 -1
  50. package/lib/esm/EntityProps.d.ts.map +1 -1
  51. package/lib/esm/EntityProps.js +2 -0
  52. package/lib/esm/EntityProps.js.map +1 -1
  53. package/lib/esm/TerrainSettings.d.ts +1 -1
  54. package/lib/esm/TerrainSettings.js.map +1 -1
  55. package/lib/esm/annotation/TextAnnotation.d.ts +4 -39
  56. package/lib/esm/annotation/TextAnnotation.d.ts.map +1 -1
  57. package/lib/esm/annotation/TextAnnotation.js +13 -25
  58. package/lib/esm/annotation/TextAnnotation.js.map +1 -1
  59. package/lib/esm/annotation/TextBlock.d.ts +41 -42
  60. package/lib/esm/annotation/TextBlock.d.ts.map +1 -1
  61. package/lib/esm/annotation/TextBlock.js +56 -56
  62. package/lib/esm/annotation/TextBlock.js.map +1 -1
  63. package/lib/esm/annotation/TextBlockLayoutResult.d.ts +1 -1
  64. package/lib/esm/annotation/TextBlockLayoutResult.d.ts.map +1 -1
  65. package/lib/esm/annotation/TextBlockLayoutResult.js.map +1 -1
  66. package/lib/esm/annotation/TextStyle.d.ts +63 -34
  67. package/lib/esm/annotation/TextStyle.d.ts.map +1 -1
  68. package/lib/esm/annotation/TextStyle.js +82 -36
  69. package/lib/esm/annotation/TextStyle.js.map +1 -1
  70. package/lib/esm/internal/BackendTypes.d.ts +3 -3
  71. package/lib/esm/internal/BackendTypes.d.ts.map +1 -1
  72. package/lib/esm/internal/BackendTypes.js.map +1 -1
  73. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +1 -1
  74. package/lib/esm/rpc/IModelReadRpcInterface.d.ts.map +1 -1
  75. package/lib/esm/rpc/IModelReadRpcInterface.js +1 -1
  76. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  77. package/package.json +9 -8
@@ -1 +1 @@
1
- {"version":3,"file":"ElementProps.js","sourceRoot":"","sources":["../../src/ElementProps.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,IAAI,EAAc,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQjF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAqC5C;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,8DAA8D;IAC9C,EAAE,CAAa;IAE/B,oDAAoD;IACpC,YAAY,CAAU;IAEtC,YAAY,KAA0B;QACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAA0B;QAC/C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAED,8DAA8D;IACvD,MAAM,CAAU,IAAI,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvE,mJAAmJ;IAC5I,MAAM,CAAC,UAAU,CAAC,IAAS;QAChC,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,SAAS;gBACjB,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;YAC/E,OAAO,CAAC,CAAC,EAAE,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM;QACX,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,cAAc;CACjD;AA6CD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAqB;IACtD,OAAQ,KAA0B,CAAC,KAAK,KAAK,SAAS,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAqB;IACtD,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AA+BD;;;GAGG;AACH,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,mDAAW,CAAA;IACX,iDAAU,CAAA;IACV,uDAAa,CAAA;IACb,6CAAQ,CAAA;AACV,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAiSD;;GAEG;AACH,MAAM,CAAN,IAAY,4BAKX;AALD,WAAY,4BAA4B;IACtC,gEAAgE;IAChE,mGAAkB,CAAA;IAClB,0EAA0E;IAC1E,6FAAe,CAAA;AACjB,CAAC,EALW,4BAA4B,KAA5B,4BAA4B,QAKvC;AAyCD;;;GAGG;AACH,MAAM,CAAN,IAAY,IASX;AATD,WAAY,IAAI;IACd,gDAAgD;IAChD,mCAAU,CAAA;IACV,4GAA4G;IAC5G,mCAAU,CAAA;IACV,6HAA6H;IAC7H,6CAAe,CAAA;IACf,mIAAmI;IACnI,+BAAQ,CAAA;AACV,CAAC,EATW,IAAI,KAAJ,IAAI,QASf","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Entities\n */\n\nimport { GuidString, Id64, Id64String, IModelStatus } from \"@itwin/core-bentley\";\nimport {\n AngleProps, ClipVectorProps, LowAndHighXYProps, LowAndHighXYZProps, TransformProps, XYProps, XYZProps, YawPitchRollProps,\n} from \"@itwin/core-geometry\";\nimport { CodeProps } from \"./Code\";\nimport { EntityProps } from \"./EntityProps\";\nimport { ElementGeometryBuilderParams, ElementGeometryBuilderParamsForPart } from \"./geometry/ElementGeometry\";\nimport { GeometryStreamProps } from \"./geometry/GeometryStream\";\nimport { IModelError } from \"./IModelError\";\nimport { SubCategoryAppearance } from \"./SubCategoryAppearance\";\nimport { TextAnnotationProps } from \"./annotation/TextAnnotation\";\n\n/** Properties of a NavigationProperty.\n * @public @preview\n * @extensions\n */\nexport interface RelatedElementProps {\n /** The Id of the element to which this element is related. */\n id: Id64String;\n /** The full className of the relationship class. */\n relClassName?: string;\n}\n\n/** Properties of an [Element]($docs/bis/guide/fundamentals/element-fundamentals)\n * @public @preview\n * @extensions\n */\nexport interface ElementProps extends EntityProps {\n /** The Id of the [Model]($docs/bis/guide/fundamentals/model-fundamentals.md) containing this element */\n model: Id64String;\n /** The [Code]($docs/bis/guide/fundamentals/codes.md) for this element */\n code: CodeProps;\n /** The Parent of this element, if defined. */\n parent?: RelatedElementProps;\n /** A [FederationGuid]($docs/bis/guide/fundamentals/element-fundamentals.md#federationguid) assigned to this element.\n * @note On insert, if this is a valid Guid, the value is preserved. If it is `undefined`, a new Guid is created. If it is an invalid Guid (e.g. Guid.empty), the\n * resultant element will have a `null` federationGuid. For update, `undefined` means \"don't change.\"\n */\n federationGuid?: GuidString;\n /** A [user-assigned label]($docs/bis/guide/fundamentals/element-fundamentals.md#userlabel) for this element. */\n userLabel?: string;\n /** Optional [json properties]($docs/bis/guide/fundamentals/element-fundamentals.md#jsonproperties) of this element. */\n jsonProperties?: any;\n}\n\n/** The Id and relationship class of an Element that is somehow related to another Element\n * @public @preview\n */\nexport class RelatedElement implements RelatedElementProps {\n /** The Id of the element to which this element is related. */\n public readonly id: Id64String;\n\n /** The full className of the relationship class. */\n public readonly relClassName?: string;\n\n constructor(props: RelatedElementProps) {\n this.id = Id64.fromJSON(props.id);\n this.relClassName = props.relClassName;\n }\n\n public static fromJSON(json?: RelatedElementProps): RelatedElement | undefined {\n return json ? new RelatedElement(json) : undefined;\n }\n\n /** Used to *null out* an existing navigation relationship. */\n public static readonly none = new RelatedElement({ id: Id64.invalid });\n\n /** Accept the value of a navigation property that might be in the shortened format of just an id or might be in the full RelatedElement format. */\n public static idFromJson(json: any): Id64String {\n if ((typeof json === \"object\") && (\"id\" in json)) {\n const r = RelatedElement.fromJSON(json);\n if (r === undefined)\n throw new IModelError(IModelStatus.BadArg, \"Problem parsing Id64 from json\");\n return r.id;\n }\n return Id64.fromJSON(json);\n }\n\n public toJSON(): RelatedElementProps {\n return {\n id: this.id,\n relClassName: this.relClassName,\n };\n }\n}\n\n/** A [RelatedElement]($common) relationship that describes the [TypeDefinitionElement]($backend) of an element.\n * @public @preview\n */\nexport class TypeDefinition extends RelatedElement {\n}\n\n/** Properties of a [GeometricElement]($backend)\n * @public @preview\n * @extensions\n */\nexport interface GeometricElementProps extends ElementProps {\n /** The id of the category for this geometric element. */\n category: Id64String;\n /** The geometry stream properties */\n geom?: GeometryStreamProps;\n /** Describes how to build the element's GeometryStream, as an alternative to [[geom]]. This is used for insert and update operations only.\n * It is not a persistent property - it will always be undefined in the properties returned by functions that read a persistent element.\n */\n elementGeometryBuilderParams?: ElementGeometryBuilderParams;\n /** The placement properties */\n placement?: PlacementProps;\n}\n\n/** Properties of a [[Placement3d]]\n * @public @preview\n * @extensions\n */\nexport interface Placement3dProps {\n origin: XYZProps;\n angles: YawPitchRollProps;\n bbox?: LowAndHighXYZProps;\n}\n\n/** Properties of a [[Placement2d]]\n * @public @preview\n * @extensions\n */\nexport interface Placement2dProps {\n origin: XYProps;\n angle: AngleProps;\n bbox?: LowAndHighXYProps;\n}\n\n/**\n * @public @preview\n * @extensions\n */\nexport type PlacementProps = Placement2dProps | Placement3dProps;\n\n/** determine if this is Placement2dProps\n * @public @preview\n */\nexport function isPlacement2dProps(props: PlacementProps): props is Placement2dProps {\n return (props as Placement2dProps).angle !== undefined;\n}\n\n/** determine if this is Placement3dProps\n * @public @preview\n */\nexport function isPlacement3dProps(props: PlacementProps): props is Placement3dProps {\n return !isPlacement2dProps(props);\n}\n\n/** Properties that define a [GeometricElement3d]($backend)\n * @public @preview\n * @extensions\n */\nexport interface GeometricElement3dProps extends GeometricElementProps {\n placement?: Placement3dProps;\n typeDefinition?: RelatedElementProps;\n}\n\n/** JSON representation of a [TextAnnotation3d]($backend).\n * @public @preview\n * @extensions\n */\nexport interface TextAnnotation3dProps extends GeometricElement3dProps {\n jsonProperties?: {\n [key: string]: any;\n /** @beta */\n annotation?: TextAnnotationProps;\n };\n}\n\n/** Properties that define a [PhysicalElement]($backend)\n * @public @preview\n * @extensions\n */\nexport interface PhysicalElementProps extends GeometricElement3dProps {\n physicalMaterial?: RelatedElementProps;\n}\n\n/** An enumeration of the different types of [SectionDrawing]($backend)s.\n * @public @preview\n * @extensions\n */\nexport enum SectionType {\n Section = 3,\n Detail = 4,\n Elevation = 5,\n Plan = 6,\n}\n\n/** Properties that define a [Drawing]($backend).\n * @public @preview\n * @extensions\n */\nexport interface DrawingProps extends ElementProps {\n /** A factor used by tools to adjust the size of text in [GeometricElement2d]($backend)s in the associated [DrawingModel]($backend) and to compute the\n * size of the [ViewAttachment]($backend) created when attaching the [Drawing]($backend) to a [Sheet]($backend).\n * Default: 1.\n * @note The scale factor **must** be greater than zero.\n * @public @preview\n */\n scaleFactor?: number;\n}\n\n/** Properties that define a [SectionDrawing]($backend).\n * @public @preview\n * @extensions\n */\nexport interface SectionDrawingProps extends DrawingProps {\n /** The type of section used to generate the drawing. Default: Section. */\n sectionType?: SectionType;\n /** The spatial view from which the section was generated. */\n spatialView?: RelatedElementProps;\n jsonProperties?: {\n /** A transform from the section drawing model's coordinates to spatial coordinates. */\n drawingToSpatialTransform?: TransformProps;\n /** If the section drawing is placed onto a [Sheet]($backend) via a [ViewAttachment]($backend), a transform from the sheet's coordinates to spatial coordinates. */\n sheetToSpatialTransform?: TransformProps;\n /** If the section drawing is placed onto a [Sheet]($backend) via a [ViewAttachment]($backend), JSON representation of a [ClipVector]($geometry) to apply to\n * the sheet graphics when drawn in the context of the spatial view.\n * The ClipVector is in spatial coordinates.\n */\n drawingBoundaryClip?: ClipVectorProps;\n /** If true, when displaying the section drawing as a [DrawingViewState]($frontend), the [[spatialView]] will also be displayed. */\n displaySpatialView?: true;\n };\n}\n\n/** Properties that define a [SectionDrawingLocation]($backend)\n * @public @preview\n * @extensions\n */\nexport interface SectionDrawingLocationProps extends GeometricElement3dProps {\n /** The [ViewDefinition]($backend) to which this location refers. */\n sectionView?: RelatedElementProps;\n}\n\n/** Properties that define a [GeometricElement2d]($backend)\n * @public @preview\n * @extensions\n */\nexport interface GeometricElement2dProps extends GeometricElementProps {\n placement?: Placement2dProps;\n typeDefinition?: RelatedElementProps;\n}\n\n/** JSON representation of a [TextAnnotation2d]($backend).\n * @public @preview\n * @extensions\n */\nexport interface TextAnnotation2dProps extends GeometricElement2dProps {\n jsonProperties?: {\n [key: string]: any;\n /** @beta */\n annotation?: TextAnnotationProps;\n };\n}\n\n/** Properties of a [GeometryPart]($backend)\n * @public @preview\n * @extensions\n */\nexport interface GeometryPartProps extends ElementProps {\n geom?: GeometryStreamProps;\n /** Describes how to build the part's GeometryStream, as an alternative to [[geom]]. This is used for insert and update operations only.\n * It is not a persistent property - it will always be undefined in the properties returned by functions that read a persistent part.\n */\n elementGeometryBuilderParams?: ElementGeometryBuilderParamsForPart;\n bbox?: LowAndHighXYZProps;\n}\n\n/** Properties for a [ViewAttachment]($backend)\n * @public @preview\n * @extensions\n */\nexport interface ViewAttachmentProps extends GeometricElement2dProps {\n view: RelatedElementProps;\n jsonProperties?: {\n /** Integer priority in [-500,500]. Where two attachments overlap, the one with the higher priority draws in front of the other. Default: 0. */\n displayPriority?: number;\n /** JSON representation of a [ClipVector]($core-geometry] in sheet coordinate space, used to clip the attachment's graphics on the sheet. */\n clip?: ClipVectorProps;\n /** Options for customizing how the view attachment is displayed on the sheet. */\n displayOptions?: {\n /** If true, the view attachment is always drawn as a raster image. By default, only 3d perspective views are drawn this way (they always *must* be). Default: false. */\n drawAsRaster?: boolean;\n /** If true, and the view attachment is drawn as a raster image, the background color of the view will be preserved. By default the background color of the\n * sheet is used and any background pixels become transparent, allowing the contents of the sheet to show through. Default: false.\n */\n preserveBackground?: boolean;\n };\n };\n}\n\n/** Properties of a [Subject]($backend)\n * @public @preview\n * @extensions\n */\nexport interface SubjectProps extends ElementProps {\n description?: string;\n}\n\n/** Properties of a [SheetBorderTemplate]($backend)\n * @beta\n */\nexport interface SheetBorderTemplateProps extends ElementProps {\n height?: number;\n width?: number;\n}\n\n/** Properties of a [SheetTemplate]($backend)\n * @beta\n */\nexport interface SheetTemplateProps extends ElementProps {\n height?: number;\n width?: number;\n border?: Id64String;\n}\n\n/** Properties of a [Sheet]($backend).\n * @public @preview\n * @extensions\n */\nexport interface SheetProps extends ElementProps {\n width?: number;\n height?: number;\n scale?: number;\n sheetTemplate?: Id64String;\n attachments?: Id64String[];\n}\n\n/** Properties of a [DefinitionElement]($backend)\n * @public @preview\n * @extensions\n */\nexport interface DefinitionElementProps extends ElementProps {\n isPrivate?: boolean;\n}\n\n/** Properties of a [TypeDefinitionElement]($backend)\n * @public @preview\n * @extensions\n */\nexport interface TypeDefinitionElementProps extends DefinitionElementProps {\n recipe?: RelatedElementProps;\n}\n\n/** Properties of a [PhysicalType]($backend)\n * @public @preview\n * @extensions\n */\nexport interface PhysicalTypeProps extends TypeDefinitionElementProps {\n /** The [PhysicalMaterial]($backend) that makes up this physical type. */\n physicalMaterial?: RelatedElementProps;\n}\n\n/** Properties of a [InformationPartitionElement]($backend)\n * @public @preview\n * @extensions\n */\nexport interface InformationPartitionElementProps extends ElementProps {\n description?: string;\n}\n\n/** Options controlling which properties are included or excluded when querying [[DisplayStyleProps]].\n * @see [[ViewStateLoadProps]] and [[ElementLoadOptions]].\n * @public @preview\n * @extensions\n */\nexport interface DisplayStyleLoadProps {\n /** If true, the lists of element Ids in the display style's schedule script will be empty.\n * The element Ids are not required on the frontend for display and can be quite large.\n */\n omitScheduleScriptElementIds?: boolean;\n /** If true, [[DisplayStyleSettingsProps.excludedElements]] will be compressed into a single compact string; otherwise they will be expanded into an array of strings.\n * The number of Ids may be quite large, so the compressed format is preferred, especially when communicating between the backend and frontend.\n */\n compressExcludedElementIds?: boolean;\n}\n\n/** Options controlling which properties are included or excluded when querying [[RenderTimelineProps]].\n * @see [[ElementLoadOptions.renderTimeline]].\n * @public @preview\n * @extensions\n */\nexport interface RenderTimelineLoadProps {\n /** If true, the lists of element Ids in the schedule script will be empty.\n * The element Ids can be extremely numerous and are not required on the frontend for display, so they are omitted by default by [DisplayStyleState.load]($frontend).\n */\n omitScriptElementIds?: boolean;\n}\n\n/** Options used to specify properties to include or exclude when querying [[ElementProps]] with functions like\n * [IModelDb.Elements.getElementProps]($backend) and [IModelConnection.Elements.loadProps]($frontend).\n * @public @preview\n * @extensions\n */\nexport interface ElementLoadOptions {\n /** if true, only load the members of [[ElementProps]], and no members from subclasses */\n onlyBaseProperties?: boolean;\n /** If true, include the [[GeometryStreamProps]] for [[GeometricElementProps]] and [[GeometryPartProps]].\n * Geometry streams can consist of many megabytes worth of JSON, so they are omitted by default.\n */\n wantGeometry?: boolean;\n /** When including a geometry stream containing brep entries, whether to return the raw brep data or proxy geometry, false when undefined */\n /** If true, include [[BRepEntity.DataProps.data]] in the [[GeometryStreamProps]] for [[GeometricElementProps]] and [[GeometryPartProps]].\n * The data is a potentially large base-64-encoded opaque binary blob that cannot be directly inspected or manipulated on the frontend, so it is omitted by default.\n */\n wantBRepData?: boolean;\n /** Options controlling which properties of [[DisplayStyleProps]] to include or exclude. */\n displayStyle?: DisplayStyleLoadProps;\n /** Options controlling which properties of [[RenderTimelineProps]] to include or exclude. */\n renderTimeline?: RenderTimelineLoadProps;\n}\n\n/** Parameters to specify what element to load for functions like [IModelDb.Elements.getElementProps]($backend).\n * @public @preview\n * @extensions\n */\nexport interface ElementLoadProps extends ElementLoadOptions {\n id?: Id64String;\n /** The properties of the Code of the element to load.\n * @note the Value member is required even though it is not declared so here. If no value is supplied, no element will ever be loaded.\n * TODO: change to Required<CodeProps> in Version 4.0\n */\n code?: CodeProps;\n federationGuid?: GuidString;\n}\n\n/** Properties of an [ElementAspect]($backend)\n * @public @preview\n * @extensions\n */\nexport interface ElementAspectProps extends EntityProps {\n element: RelatedElementProps;\n}\n\n/** Properties of an [ExternalSourceAspect]($backend) that stores synchronization information for an element originating from an external source.\n * @public @preview\n * @extensions\n */\nexport interface ExternalSourceAspectProps extends ElementAspectProps {\n /** An element that scopes the combination of `kind` and `identifier` to uniquely identify the object from the external source.\n * @note Warning: in a future major release the `scope` property will be optional, since the scope is intended to be potentially invalid.\n * all references should treat it as potentially undefined, but we cannot change the type yet since that is a breaking change.\n */\n scope: RelatedElementProps;\n /** The identifier of the object in the source repository. */\n identifier: string;\n /** The kind of object within the source repository. */\n kind: string;\n /** An optional value that is typically a version number or a pseudo version number like last modified time.\n * It will be used by the synchronization process to detect that a source object is unchanged so that computing a cryptographic hash can be avoided.\n * If present, this value must be guaranteed to change when any of the source object's content changes.\n */\n version?: string;\n /** The optional cryptographic hash (any algorithm) of the source object's content. If defined, it must be guaranteed to change when the source object's content changes. */\n checksum?: string;\n /** A place where additional JSON properties can be stored. For example, provenance information or properties relating to the synchronization process.\n * @note Warning: if defined, jsonProperties must be a *string*, specifically a valid JSON string.\n * @note Warning: in a future major release, the type of `jsonProperties` will be changed to object, and itwin.js will automatically stringify it when writing to the iModel.\n * This will be a breaking change, since application code will have to change from supplying a string to supplying an object.\n */\n jsonProperties?: any;\n /** The source of the imported/synchronized object. Should point to an instance of [ExternalSource]($backend). */\n source?: RelatedElementProps;\n}\n\n/** Properties of an [ExternalSource]($backend)\n * @beta\n */\nexport interface ExternalSourceProps extends ElementProps {\n repository?: RelatedElementProps;\n connectorName?: string;\n connectorVersion?: string;\n}\n\n/** The role that an attached [ExternalSource]($backend) plays.\n * @beta\n */\nexport enum ExternalSourceAttachmentRole {\n /** The attached [ExternalSource]($backend) provides context. */\n SpecifyContext = 0,\n /** The attached [ExternalSource]($backend) models a part of the whole. */\n SpecifyPart = 1,\n}\n\n/** Properties of an [ExternalSourceAttachment]($backend)\n * @beta\n */\nexport interface ExternalSourceAttachmentProps extends ElementProps {\n attaches?: RelatedElementProps;\n role?: ExternalSourceAttachmentRole;\n translation?: XYZProps;\n yaw?: number;\n pitch?: number;\n roll?: number;\n scale?: XYZProps;\n}\n\n/** Properties of an [ChannelRootAspect]($backend) that identifies an Element as the root of a *channel* which is a subset of the overall iModel hierarchy that is independently maintained.\n * @public @preview\n * @extensions\n */\nexport interface ChannelRootAspectProps extends ElementAspectProps {\n /** The owner of the channel */\n owner: string;\n}\n\n/** Properties of a [LineStyle]($backend)\n * @public @preview\n * @extensions\n */\nexport interface LineStyleProps extends DefinitionElementProps {\n description?: string;\n /** The JSON string line style definition element data [LineStyleDefinition.StyleProps]($backend) */\n data: string;\n}\n\n/** Properties of a [LightLocation]($backend)\n * @internal\n */\nexport interface LightLocationProps extends GeometricElement3dProps {\n enabled?: boolean;\n}\n\n/** The *rank* for a Category\n * @public @preview\n * @extensions\n */\nexport enum Rank {\n /** This category is predefined by the system */\n System = 0,\n /** This category is defined by a schema. Elements in this category are not recognized by system classes. */\n Domain = 1,\n /** This category is defined by an application. Elements in this category are not recognized by system and schema classes. */\n Application = 2,\n /** This category is defined by a user. Elements in this category are not recognized by system, schema, and application classes. */\n User = 3,\n}\n\n/** Parameters of a [Category]($backend)\n * @public @preview\n * @extensions\n */\nexport interface CategoryProps extends DefinitionElementProps {\n rank?: Rank;\n description?: string;\n}\n\n/** Parameters of a [SubCategory]($backend)\n * @public @preview\n * @extensions\n */\nexport interface SubCategoryProps extends DefinitionElementProps {\n appearance?: SubCategoryAppearance.Props;\n description?: string;\n}\n\n/** Parameters of a [UrlLink]($backend)\n * @public @preview\n * @extensions\n */\nexport interface UrlLinkProps extends ElementProps {\n description?: string;\n url?: string;\n}\n\n/** Parameters of a [RepositoryLink]($backend)\n * @public @preview\n * @extensions\n */\nexport interface RepositoryLinkProps extends UrlLinkProps {\n repositoryGuid?: GuidString;\n format?: string;\n}\n\n/** The properties of a [SynchronizationConfigLink]($backend)\n * @beta\n */\nexport interface SynchronizationConfigLinkProps extends UrlLinkProps {\n lastSuccessfulRun?: string;\n}\n\n/** Wire format describing a [RenderTimeline]($backend).\n * @public @preview\n * @extensions\n */\nexport interface RenderTimelineProps extends ElementProps {\n /** An optional human-readable description of the timeline. */\n description?: string;\n /** The stringified JSON representation of the instructions for visualizing change over time.\n * @see [[RenderSchedule.ScriptProps]] for the JSON interface.\n */\n script: string;\n}\n\n/** Properties of a [SheetIndexEntry]($backend).\n * @beta\n*/\nexport interface SheetIndexEntryProps extends ElementProps {\n /** Can be used to prioritize or order members within a SheetIndex or SheetIndexFolder. */\n entryPriority: number;\n}\n\n/** Properties of a [SheetIndexFolder]($backend)\n * @beta\n */\nexport type SheetIndexFolderProps = SheetIndexEntryProps;\n\n/** Properties of a [SheetIndexReference]($backend)\n * @beta\n */\nexport interface SheetIndexReferenceProps extends SheetIndexEntryProps {\n /** The bis:SheetIndex that this bis:SheetIndexReference is pointing to. */\n sheetIndex?: RelatedElementProps;\n}\n\n/** Properties of a [SheetReference]($backend)\n * @beta\n */\nexport interface SheetReferenceProps extends SheetIndexEntryProps {\n /** The bis:Sheet that this bis:SheetReference is pointing to. */\n sheet?: RelatedElementProps;\n}\n"]}
1
+ {"version":3,"file":"ElementProps.js","sourceRoot":"","sources":["../../src/ElementProps.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,IAAI,EAAc,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQjF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAoC5C;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,8DAA8D;IAC9C,EAAE,CAAa;IAE/B,oDAAoD;IACpC,YAAY,CAAU;IAEtC,YAAY,KAA0B;QACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAA0B;QAC/C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAED,8DAA8D;IACvD,MAAM,CAAU,IAAI,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvE,mJAAmJ;IAC5I,MAAM,CAAC,UAAU,CAAC,IAAS;QAChC,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,SAAS;gBACjB,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;YAC/E,OAAO,CAAC,CAAC,EAAE,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM;QACX,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,cAAc;CACjD;AA6CD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAqB;IACtD,OAAQ,KAA0B,CAAC,KAAK,KAAK,SAAS,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAqB;IACtD,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AA+BD;;;GAGG;AACH,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,mDAAW,CAAA;IACX,iDAAU,CAAA;IACV,uDAAa,CAAA;IACb,6CAAQ,CAAA;AACV,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAiSD;;GAEG;AACH,MAAM,CAAN,IAAY,4BAKX;AALD,WAAY,4BAA4B;IACtC,gEAAgE;IAChE,mGAAkB,CAAA;IAClB,0EAA0E;IAC1E,6FAAe,CAAA;AACjB,CAAC,EALW,4BAA4B,KAA5B,4BAA4B,QAKvC;AAyCD;;;GAGG;AACH,MAAM,CAAN,IAAY,IASX;AATD,WAAY,IAAI;IACd,gDAAgD;IAChD,mCAAU,CAAA;IACV,4GAA4G;IAC5G,mCAAU,CAAA;IACV,6HAA6H;IAC7H,6CAAe,CAAA;IACf,mIAAmI;IACnI,+BAAQ,CAAA;AACV,CAAC,EATW,IAAI,KAAJ,IAAI,QASf","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Entities\n */\n\nimport { GuidString, Id64, Id64String, IModelStatus } from \"@itwin/core-bentley\";\nimport {\n AngleProps, ClipVectorProps, LowAndHighXYProps, LowAndHighXYZProps, TransformProps, XYProps, XYZProps, YawPitchRollProps,\n} from \"@itwin/core-geometry\";\nimport { CodeProps } from \"./Code\";\nimport { EntityProps } from \"./EntityProps\";\nimport { ElementGeometryBuilderParams, ElementGeometryBuilderParamsForPart } from \"./geometry/ElementGeometry\";\nimport { GeometryStreamProps } from \"./geometry/GeometryStream\";\nimport { IModelError } from \"./IModelError\";\nimport { SubCategoryAppearance } from \"./SubCategoryAppearance\";\n\n/** Properties of a NavigationProperty.\n * @public @preview\n * @extensions\n */\nexport interface RelatedElementProps {\n /** The Id of the element to which this element is related. */\n id: Id64String;\n /** The full className of the relationship class. */\n relClassName?: string;\n}\n\n/** Properties of an [Element]($docs/bis/guide/fundamentals/element-fundamentals)\n * @public @preview\n * @extensions\n */\nexport interface ElementProps extends EntityProps {\n /** The Id of the [Model]($docs/bis/guide/fundamentals/model-fundamentals.md) containing this element */\n model: Id64String;\n /** The [Code]($docs/bis/guide/fundamentals/codes.md) for this element */\n code: CodeProps;\n /** The Parent of this element, if defined. */\n parent?: RelatedElementProps;\n /** A [FederationGuid]($docs/bis/guide/fundamentals/element-fundamentals.md#federationguid) assigned to this element.\n * @note On insert, if this is a valid Guid, the value is preserved. If it is `undefined`, a new Guid is created. If it is an invalid Guid (e.g. Guid.empty), the\n * resultant element will have a `null` federationGuid. For update, `undefined` means \"don't change.\"\n */\n federationGuid?: GuidString;\n /** A [user-assigned label]($docs/bis/guide/fundamentals/element-fundamentals.md#userlabel) for this element. */\n userLabel?: string;\n /** Optional [json properties]($docs/bis/guide/fundamentals/element-fundamentals.md#jsonproperties) of this element. */\n jsonProperties?: any;\n}\n\n/** The Id and relationship class of an Element that is somehow related to another Element\n * @public @preview\n */\nexport class RelatedElement implements RelatedElementProps {\n /** The Id of the element to which this element is related. */\n public readonly id: Id64String;\n\n /** The full className of the relationship class. */\n public readonly relClassName?: string;\n\n constructor(props: RelatedElementProps) {\n this.id = Id64.fromJSON(props.id);\n this.relClassName = props.relClassName;\n }\n\n public static fromJSON(json?: RelatedElementProps): RelatedElement | undefined {\n return json ? new RelatedElement(json) : undefined;\n }\n\n /** Used to *null out* an existing navigation relationship. */\n public static readonly none = new RelatedElement({ id: Id64.invalid });\n\n /** Accept the value of a navigation property that might be in the shortened format of just an id or might be in the full RelatedElement format. */\n public static idFromJson(json: any): Id64String {\n if ((typeof json === \"object\") && (\"id\" in json)) {\n const r = RelatedElement.fromJSON(json);\n if (r === undefined)\n throw new IModelError(IModelStatus.BadArg, \"Problem parsing Id64 from json\");\n return r.id;\n }\n return Id64.fromJSON(json);\n }\n\n public toJSON(): RelatedElementProps {\n return {\n id: this.id,\n relClassName: this.relClassName,\n };\n }\n}\n\n/** A [RelatedElement]($common) relationship that describes the [TypeDefinitionElement]($backend) of an element.\n * @public @preview\n */\nexport class TypeDefinition extends RelatedElement {\n}\n\n/** Properties of a [GeometricElement]($backend)\n * @public @preview\n * @extensions\n */\nexport interface GeometricElementProps extends ElementProps {\n /** The id of the category for this geometric element. */\n category: Id64String;\n /** The geometry stream properties */\n geom?: GeometryStreamProps;\n /** Describes how to build the element's GeometryStream, as an alternative to [[geom]]. This is used for insert and update operations only.\n * It is not a persistent property - it will always be undefined in the properties returned by functions that read a persistent element.\n */\n elementGeometryBuilderParams?: ElementGeometryBuilderParams;\n /** The placement properties */\n placement?: PlacementProps;\n}\n\n/** Properties of a [[Placement3d]]\n * @public @preview\n * @extensions\n */\nexport interface Placement3dProps {\n origin: XYZProps;\n angles: YawPitchRollProps;\n bbox?: LowAndHighXYZProps;\n}\n\n/** Properties of a [[Placement2d]]\n * @public @preview\n * @extensions\n */\nexport interface Placement2dProps {\n origin: XYProps;\n angle: AngleProps;\n bbox?: LowAndHighXYProps;\n}\n\n/**\n * @public @preview\n * @extensions\n */\nexport type PlacementProps = Placement2dProps | Placement3dProps;\n\n/** determine if this is Placement2dProps\n * @public @preview\n */\nexport function isPlacement2dProps(props: PlacementProps): props is Placement2dProps {\n return (props as Placement2dProps).angle !== undefined;\n}\n\n/** determine if this is Placement3dProps\n * @public @preview\n */\nexport function isPlacement3dProps(props: PlacementProps): props is Placement3dProps {\n return !isPlacement2dProps(props);\n}\n\n/** Properties that define a [GeometricElement3d]($backend)\n * @public @preview\n * @extensions\n */\nexport interface GeometricElement3dProps extends GeometricElementProps {\n placement?: Placement3dProps;\n typeDefinition?: RelatedElementProps;\n}\n\n/** JSON representation of a [TextAnnotation3d]($backend).\n * @public @preview\n * @extensions\n */\nexport interface TextAnnotation3dProps extends GeometricElement3dProps {\n /** The stringified JSON representation of the text annotation.\n * @see [[TextAnnotationProps]] for the JSON representation.\n * @note Don't set this property directly - use [TextAnnotation3d.setAnnotation]($backend) instead.\n */\n textAnnotationData?: string;\n}\n\n/** Properties that define a [PhysicalElement]($backend)\n * @public @preview\n * @extensions\n */\nexport interface PhysicalElementProps extends GeometricElement3dProps {\n physicalMaterial?: RelatedElementProps;\n}\n\n/** An enumeration of the different types of [SectionDrawing]($backend)s.\n * @public @preview\n * @extensions\n */\nexport enum SectionType {\n Section = 3,\n Detail = 4,\n Elevation = 5,\n Plan = 6,\n}\n\n/** Properties that define a [Drawing]($backend).\n * @public @preview\n * @extensions\n */\nexport interface DrawingProps extends ElementProps {\n /** A factor used by tools to adjust the size of text in [GeometricElement2d]($backend)s in the associated [DrawingModel]($backend) and to compute the\n * size of the [ViewAttachment]($backend) created when attaching the [Drawing]($backend) to a [Sheet]($backend).\n * Default: 1.\n * @note The scale factor **must** be greater than zero.\n * @public @preview\n */\n scaleFactor?: number;\n}\n\n/** Properties that define a [SectionDrawing]($backend).\n * @public @preview\n * @extensions\n */\nexport interface SectionDrawingProps extends DrawingProps {\n /** The type of section used to generate the drawing. Default: Section. */\n sectionType?: SectionType;\n /** The spatial view from which the section was generated. */\n spatialView?: RelatedElementProps;\n jsonProperties?: {\n /** A transform from the section drawing model's coordinates to spatial coordinates. */\n drawingToSpatialTransform?: TransformProps;\n /** If the section drawing is placed onto a [Sheet]($backend) via a [ViewAttachment]($backend), a transform from the sheet's coordinates to spatial coordinates. */\n sheetToSpatialTransform?: TransformProps;\n /** If the section drawing is placed onto a [Sheet]($backend) via a [ViewAttachment]($backend), JSON representation of a [ClipVector]($geometry) to apply to\n * the sheet graphics when drawn in the context of the spatial view.\n * The ClipVector is in spatial coordinates.\n */\n drawingBoundaryClip?: ClipVectorProps;\n /** If true, when displaying the section drawing as a [DrawingViewState]($frontend), the [[spatialView]] will also be displayed. */\n displaySpatialView?: true;\n };\n}\n\n/** Properties that define a [SectionDrawingLocation]($backend)\n * @public @preview\n * @extensions\n */\nexport interface SectionDrawingLocationProps extends GeometricElement3dProps {\n /** The [ViewDefinition]($backend) to which this location refers. */\n sectionView?: RelatedElementProps;\n}\n\n/** Properties that define a [GeometricElement2d]($backend)\n * @public @preview\n * @extensions\n */\nexport interface GeometricElement2dProps extends GeometricElementProps {\n placement?: Placement2dProps;\n typeDefinition?: RelatedElementProps;\n}\n\n/** Properties that define a [TextAnnotation2d]($backend).\n * @public @preview\n * @extensions\n */\nexport interface TextAnnotation2dProps extends GeometricElement2dProps {\n /** The stringified JSON representation of the text annotation.\n * @see [[TextAnnotationProps]] for the JSON representation.\n * @note Don't set this property directly - use [TextAnnotation2d.setAnnotation]($backend) instead.\n */\n textAnnotationData?: string;\n}\n\n/** Properties of a [GeometryPart]($backend)\n * @public @preview\n * @extensions\n */\nexport interface GeometryPartProps extends ElementProps {\n geom?: GeometryStreamProps;\n /** Describes how to build the part's GeometryStream, as an alternative to [[geom]]. This is used for insert and update operations only.\n * It is not a persistent property - it will always be undefined in the properties returned by functions that read a persistent part.\n */\n elementGeometryBuilderParams?: ElementGeometryBuilderParamsForPart;\n bbox?: LowAndHighXYZProps;\n}\n\n/** Properties for a [ViewAttachment]($backend)\n * @public @preview\n * @extensions\n */\nexport interface ViewAttachmentProps extends GeometricElement2dProps {\n view: RelatedElementProps;\n jsonProperties?: {\n /** Integer priority in [-500,500]. Where two attachments overlap, the one with the higher priority draws in front of the other. Default: 0. */\n displayPriority?: number;\n /** JSON representation of a [ClipVector]($core-geometry] in sheet coordinate space, used to clip the attachment's graphics on the sheet. */\n clip?: ClipVectorProps;\n /** Options for customizing how the view attachment is displayed on the sheet. */\n displayOptions?: {\n /** If true, the view attachment is always drawn as a raster image. By default, only 3d perspective views are drawn this way (they always *must* be). Default: false. */\n drawAsRaster?: boolean;\n /** If true, and the view attachment is drawn as a raster image, the background color of the view will be preserved. By default the background color of the\n * sheet is used and any background pixels become transparent, allowing the contents of the sheet to show through. Default: false.\n */\n preserveBackground?: boolean;\n };\n };\n}\n\n/** Properties of a [Subject]($backend)\n * @public @preview\n * @extensions\n */\nexport interface SubjectProps extends ElementProps {\n description?: string;\n}\n\n/** Properties of a [SheetBorderTemplate]($backend)\n * @beta\n */\nexport interface SheetBorderTemplateProps extends ElementProps {\n height?: number;\n width?: number;\n}\n\n/** Properties of a [SheetTemplate]($backend)\n * @beta\n */\nexport interface SheetTemplateProps extends ElementProps {\n height?: number;\n width?: number;\n border?: Id64String;\n}\n\n/** Properties of a [Sheet]($backend).\n * @public @preview\n * @extensions\n */\nexport interface SheetProps extends ElementProps {\n width?: number;\n height?: number;\n scale?: number;\n sheetTemplate?: Id64String;\n attachments?: Id64String[];\n}\n\n/** Properties of a [DefinitionElement]($backend)\n * @public @preview\n * @extensions\n */\nexport interface DefinitionElementProps extends ElementProps {\n isPrivate?: boolean;\n}\n\n/** Properties of a [TypeDefinitionElement]($backend)\n * @public @preview\n * @extensions\n */\nexport interface TypeDefinitionElementProps extends DefinitionElementProps {\n recipe?: RelatedElementProps;\n}\n\n/** Properties of a [PhysicalType]($backend)\n * @public @preview\n * @extensions\n */\nexport interface PhysicalTypeProps extends TypeDefinitionElementProps {\n /** The [PhysicalMaterial]($backend) that makes up this physical type. */\n physicalMaterial?: RelatedElementProps;\n}\n\n/** Properties of a [InformationPartitionElement]($backend)\n * @public @preview\n * @extensions\n */\nexport interface InformationPartitionElementProps extends ElementProps {\n description?: string;\n}\n\n/** Options controlling which properties are included or excluded when querying [[DisplayStyleProps]].\n * @see [[ViewStateLoadProps]] and [[ElementLoadOptions]].\n * @public @preview\n * @extensions\n */\nexport interface DisplayStyleLoadProps {\n /** If true, the lists of element Ids in the display style's schedule script will be empty.\n * The element Ids are not required on the frontend for display and can be quite large.\n */\n omitScheduleScriptElementIds?: boolean;\n /** If true, [[DisplayStyleSettingsProps.excludedElements]] will be compressed into a single compact string; otherwise they will be expanded into an array of strings.\n * The number of Ids may be quite large, so the compressed format is preferred, especially when communicating between the backend and frontend.\n */\n compressExcludedElementIds?: boolean;\n}\n\n/** Options controlling which properties are included or excluded when querying [[RenderTimelineProps]].\n * @see [[ElementLoadOptions.renderTimeline]].\n * @public @preview\n * @extensions\n */\nexport interface RenderTimelineLoadProps {\n /** If true, the lists of element Ids in the schedule script will be empty.\n * The element Ids can be extremely numerous and are not required on the frontend for display, so they are omitted by default by [DisplayStyleState.load]($frontend).\n */\n omitScriptElementIds?: boolean;\n}\n\n/** Options used to specify properties to include or exclude when querying [[ElementProps]] with functions like\n * [IModelDb.Elements.getElementProps]($backend) and [IModelConnection.Elements.loadProps]($frontend).\n * @public @preview\n * @extensions\n */\nexport interface ElementLoadOptions {\n /** if true, only load the members of [[ElementProps]], and no members from subclasses */\n onlyBaseProperties?: boolean;\n /** If true, include the [[GeometryStreamProps]] for [[GeometricElementProps]] and [[GeometryPartProps]].\n * Geometry streams can consist of many megabytes worth of JSON, so they are omitted by default.\n */\n wantGeometry?: boolean;\n /** When including a geometry stream containing brep entries, whether to return the raw brep data or proxy geometry, false when undefined */\n /** If true, include [[BRepEntity.DataProps.data]] in the [[GeometryStreamProps]] for [[GeometricElementProps]] and [[GeometryPartProps]].\n * The data is a potentially large base-64-encoded opaque binary blob that cannot be directly inspected or manipulated on the frontend, so it is omitted by default.\n */\n wantBRepData?: boolean;\n /** Options controlling which properties of [[DisplayStyleProps]] to include or exclude. */\n displayStyle?: DisplayStyleLoadProps;\n /** Options controlling which properties of [[RenderTimelineProps]] to include or exclude. */\n renderTimeline?: RenderTimelineLoadProps;\n}\n\n/** Parameters to specify what element to load for functions like [IModelDb.Elements.getElementProps]($backend).\n * @public @preview\n * @extensions\n */\nexport interface ElementLoadProps extends ElementLoadOptions {\n id?: Id64String;\n /** The properties of the Code of the element to load.\n * @note the Value member is required even though it is not declared so here. If no value is supplied, no element will ever be loaded.\n * TODO: change to Required<CodeProps> in Version 4.0\n */\n code?: CodeProps;\n federationGuid?: GuidString;\n}\n\n/** Properties of an [ElementAspect]($backend)\n * @public @preview\n * @extensions\n */\nexport interface ElementAspectProps extends EntityProps {\n element: RelatedElementProps;\n}\n\n/** Properties of an [ExternalSourceAspect]($backend) that stores synchronization information for an element originating from an external source.\n * @public @preview\n * @extensions\n */\nexport interface ExternalSourceAspectProps extends ElementAspectProps {\n /** An element that scopes the combination of `kind` and `identifier` to uniquely identify the object from the external source.\n * @note Warning: in a future major release the `scope` property will be optional, since the scope is intended to be potentially invalid.\n * all references should treat it as potentially undefined, but we cannot change the type yet since that is a breaking change.\n */\n scope: RelatedElementProps;\n /** The identifier of the object in the source repository. */\n identifier: string;\n /** The kind of object within the source repository. */\n kind: string;\n /** An optional value that is typically a version number or a pseudo version number like last modified time.\n * It will be used by the synchronization process to detect that a source object is unchanged so that computing a cryptographic hash can be avoided.\n * If present, this value must be guaranteed to change when any of the source object's content changes.\n */\n version?: string;\n /** The optional cryptographic hash (any algorithm) of the source object's content. If defined, it must be guaranteed to change when the source object's content changes. */\n checksum?: string;\n /** A place where additional JSON properties can be stored. For example, provenance information or properties relating to the synchronization process.\n * @note Warning: if defined, jsonProperties must be a *string*, specifically a valid JSON string.\n * @note Warning: in a future major release, the type of `jsonProperties` will be changed to object, and itwin.js will automatically stringify it when writing to the iModel.\n * This will be a breaking change, since application code will have to change from supplying a string to supplying an object.\n */\n jsonProperties?: any;\n /** The source of the imported/synchronized object. Should point to an instance of [ExternalSource]($backend). */\n source?: RelatedElementProps;\n}\n\n/** Properties of an [ExternalSource]($backend)\n * @beta\n */\nexport interface ExternalSourceProps extends ElementProps {\n repository?: RelatedElementProps;\n connectorName?: string;\n connectorVersion?: string;\n}\n\n/** The role that an attached [ExternalSource]($backend) plays.\n * @beta\n */\nexport enum ExternalSourceAttachmentRole {\n /** The attached [ExternalSource]($backend) provides context. */\n SpecifyContext = 0,\n /** The attached [ExternalSource]($backend) models a part of the whole. */\n SpecifyPart = 1,\n}\n\n/** Properties of an [ExternalSourceAttachment]($backend)\n * @beta\n */\nexport interface ExternalSourceAttachmentProps extends ElementProps {\n attaches?: RelatedElementProps;\n role?: ExternalSourceAttachmentRole;\n translation?: XYZProps;\n yaw?: number;\n pitch?: number;\n roll?: number;\n scale?: XYZProps;\n}\n\n/** Properties of an [ChannelRootAspect]($backend) that identifies an Element as the root of a *channel* which is a subset of the overall iModel hierarchy that is independently maintained.\n * @public @preview\n * @extensions\n */\nexport interface ChannelRootAspectProps extends ElementAspectProps {\n /** The owner of the channel */\n owner: string;\n}\n\n/** Properties of a [LineStyle]($backend)\n * @public @preview\n * @extensions\n */\nexport interface LineStyleProps extends DefinitionElementProps {\n description?: string;\n /** The JSON string line style definition element data [LineStyleDefinition.StyleProps]($backend) */\n data: string;\n}\n\n/** Properties of a [LightLocation]($backend)\n * @internal\n */\nexport interface LightLocationProps extends GeometricElement3dProps {\n enabled?: boolean;\n}\n\n/** The *rank* for a Category\n * @public @preview\n * @extensions\n */\nexport enum Rank {\n /** This category is predefined by the system */\n System = 0,\n /** This category is defined by a schema. Elements in this category are not recognized by system classes. */\n Domain = 1,\n /** This category is defined by an application. Elements in this category are not recognized by system and schema classes. */\n Application = 2,\n /** This category is defined by a user. Elements in this category are not recognized by system, schema, and application classes. */\n User = 3,\n}\n\n/** Parameters of a [Category]($backend)\n * @public @preview\n * @extensions\n */\nexport interface CategoryProps extends DefinitionElementProps {\n rank?: Rank;\n description?: string;\n}\n\n/** Parameters of a [SubCategory]($backend)\n * @public @preview\n * @extensions\n */\nexport interface SubCategoryProps extends DefinitionElementProps {\n appearance?: SubCategoryAppearance.Props;\n description?: string;\n}\n\n/** Parameters of a [UrlLink]($backend)\n * @public @preview\n * @extensions\n */\nexport interface UrlLinkProps extends ElementProps {\n description?: string;\n url?: string;\n}\n\n/** Parameters of a [RepositoryLink]($backend)\n * @public @preview\n * @extensions\n */\nexport interface RepositoryLinkProps extends UrlLinkProps {\n repositoryGuid?: GuidString;\n format?: string;\n}\n\n/** The properties of a [SynchronizationConfigLink]($backend)\n * @beta\n */\nexport interface SynchronizationConfigLinkProps extends UrlLinkProps {\n lastSuccessfulRun?: string;\n}\n\n/** Wire format describing a [RenderTimeline]($backend).\n * @public @preview\n * @extensions\n */\nexport interface RenderTimelineProps extends ElementProps {\n /** An optional human-readable description of the timeline. */\n description?: string;\n /** The stringified JSON representation of the instructions for visualizing change over time.\n * @see [[RenderSchedule.ScriptProps]] for the JSON interface.\n */\n script: string;\n}\n\n/** Properties of a [SheetIndexEntry]($backend).\n * @beta\n*/\nexport interface SheetIndexEntryProps extends ElementProps {\n /** Can be used to prioritize or order members within a SheetIndex or SheetIndexFolder. */\n entryPriority: number;\n}\n\n/** Properties of a [SheetIndexFolder]($backend)\n * @beta\n */\nexport type SheetIndexFolderProps = SheetIndexEntryProps;\n\n/** Properties of a [SheetIndexReference]($backend)\n * @beta\n */\nexport interface SheetIndexReferenceProps extends SheetIndexEntryProps {\n /** The bis:SheetIndex that this bis:SheetIndexReference is pointing to. */\n sheetIndex?: RelatedElementProps;\n}\n\n/** Properties of a [SheetReference]($backend)\n * @beta\n */\nexport interface SheetReferenceProps extends SheetIndexEntryProps {\n /** The bis:Sheet that this bis:SheetReference is pointing to. */\n sheet?: RelatedElementProps;\n}\n\n/** Properties that define an [AnnotationTextStyle]($backend).\n * @beta\n */\nexport interface AnnotationTextStyleProps extends DefinitionElementProps {\n /** An optional human-readable description of the text style.*/\n description?: string;\n /** The stringified JSON representation of the text style.\n * @see [[TextStyleSettingsProps]]\n */\n settings?: string;\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityProps.d.ts","sourceRoot":"","sources":["../../src/EntityProps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityProps.d.ts","sourceRoot":"","sources":["../../src/EntityProps.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ export var PrimitiveTypeCode;
29
29
  * @beta
30
30
  * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `Property` class from @itwin/ecschema-metadata` instead.
31
31
  */
32
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
32
33
  export class PropertyMetaData {
33
34
  primitiveType;
34
35
  structName;
@@ -114,6 +115,7 @@ export class PropertyMetaData {
114
115
  * @beta
115
116
  * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `EntityClass` class from `@itwin/ecschema-metadata` instead.
116
117
  */
118
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
117
119
  export class EntityMetaData {
118
120
  /** The Id of the class in the [[IModelDb]] from which the metadata was obtained. */
119
121
  classId;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityProps.js","sourceRoot":"","sources":["../../src/EntityProps.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Entities\n */\n\nimport { Id64, Id64String } from \"@itwin/core-bentley\";\nimport { Point2d, Point3d } from \"@itwin/core-geometry\";\nimport { RelatedElement } from \"./ElementProps\";\n\n/** The persistent format of an [Entity]($backend), also used as the \"wire format\" when transmitting information about entities\n * between the backend and frontend.\n * EntityProps and all of its sub-types like [[ElementProps]] are \"plain old Javascript objects\" - that is, objects containing\n * no methods and no properties of `class` type.\n * @public @preview\n * @extensions\n */\nexport interface EntityProps {\n /** A non-existent property used to discriminate between [[EntityProps]] and [Entity]($backend).\n * @see [Entity.isInstanceOfEntity]($backend).\n */\n readonly isInstanceOfEntity?: never;\n /** The full name of the [ECClass]($docs/bis/guide/references/glossary/#ecclass) for this entity, in the form \"Schema:ClassName\" */\n classFullName: string;\n /** The Id of the entity. Must be present for SELECT, UPDATE, or DELETE, ignored for INSERT. */\n id?: Id64String;\n /** Optional [json properties]($docs/bis/guide/fundamentals/element-fundamentals.md#jsonproperties) of this Entity. */\n jsonProperties?: { [key: string]: any };\n}\n\n/** Specifies the source and target elements of a [[Relationship]] instance.\n * @public @preview\n * @extensions\n */\nexport interface SourceAndTarget {\n sourceId: Id64String;\n targetId: Id64String;\n}\n\n/** Properties that are common to all types of link table ECRelationships\n * @public @preview\n * @extensions\n */\nexport interface RelationshipProps extends EntityProps, SourceAndTarget {\n}\n\n/** Parameters for performing a query on [Entity]($backend) classes.\n * @public @preview\n * @extensions\n */\nexport interface EntityQueryParams {\n /** The sql className, in the form \"Schema.ClassName\", of the class to search. */\n from?: string;\n /** Set to true to limit results to *not* include sub-classes of \"from\" class */\n only?: boolean;\n /** Optional \"WHERE\" clause to filter entities. Note: do *not* include the \"WHERE\" keyword. */\n where?: string;\n /** Optional \"ORDERBY\" clause to sort results. Note: do *not* include the \"ORDERBY\" keyword. */\n orderBy?: string;\n /** Optional \"LIMIT\" clause to limit the number of rows returned. */\n limit?: number;\n /** Optional \"OFFSET\" clause. Only valid if Limit is also present. */\n offset?: number;\n /** Bindings for parameterized values.\n * @see [[ECSqlStatement.bindValues]]\n */\n bindings?: any[] | object;\n}\n\n/** The primitive types of an Entity property.\n * @beta\n */\nexport enum PrimitiveTypeCode {\n Uninitialized = 0x00,\n Binary = 0x101,\n Boolean = 0x201,\n DateTime = 0x301,\n Double = 0x401,\n Integer = 0x501,\n Long = 0x601,\n Point2d = 0x701, // eslint-disable-line @typescript-eslint/no-shadow\n Point3d = 0x801, // eslint-disable-line @typescript-eslint/no-shadow\n String = 0x901,\n IGeometry = 0xa01, // Used for Bentley.Geometry.Common.IGeometry types\n}\n\n/** A callback function to process properties of an Entity\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `PropertyHandler` from `@itwin/ecschema-metadata` instead.\n *\n * @example\n * ```typescript\n * // Current usage:\n * const callback: PropertyCallback = (name: string, propMetaData: PropertyMetaData) => {\n * console.log(`Property name: ${name}, Property type: ${propMetaData.primitiveType}`);\n * };\n *\n * // Replacement:\n * const callback: PropertyHandler = (propName: string, property: Property) => {\n * console.log(`Property name: ${propName}, Property type: ${property.propertyType}`);\n * };\n * ```\n */\nexport type PropertyCallback = (name: string, meta: PropertyMetaData) => void;\n\n/** A custom attribute instance\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `CustomAttribute` interface from `@itwin/ecschema-metadata` instead.\n */\nexport interface CustomAttribute {\n /** The class of the CustomAttribute */\n ecclass: string;\n /** An object whose properties correspond by name to the properties of this custom attribute instance. */\n properties: { [propName: string]: any };\n}\n\ntype FactoryFunc = (jsonObj: any) => any;\n\n/**\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `@itwin/ecschema-metadata` instead.\n */\nexport interface PropertyMetaDataProps {\n primitiveType?: number;\n structName?: string;\n extendedType?: string;\n description?: string;\n displayLabel?: string;\n minimumValue?: any;\n maximumValue?: any;\n minimumLength?: number;\n maximumLength?: number;\n readOnly?: boolean;\n kindOfQuantity?: string;\n isCustomHandled?: boolean;\n isCustomHandledOrphan?: boolean;\n minOccurs?: number;\n maxOccurs?: number;\n direction?: string;\n relationshipClass?: string;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n customAttributes?: CustomAttribute[];\n}\n\n/** Metadata for a property.\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `Property` class from @itwin/ecschema-metadata` instead.\n */\nexport class PropertyMetaData implements PropertyMetaDataProps {\n public primitiveType?: PrimitiveTypeCode;\n public structName?: string;\n public extendedType?: string;\n public description?: string;\n public displayLabel?: string;\n public minimumValue?: any;\n public maximumValue?: any;\n public minimumLength?: number;\n public maximumLength?: number;\n public readOnly?: boolean;\n public kindOfQuantity?: string;\n public isCustomHandled?: boolean;\n public isCustomHandledOrphan?: boolean;\n public minOccurs?: number;\n public maxOccurs?: number;\n public direction?: string;\n public relationshipClass?: string;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public customAttributes?: CustomAttribute[];\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public constructor(jsonObj: PropertyMetaDataProps) {\n this.primitiveType = jsonObj.primitiveType;\n if (jsonObj.structName)\n this.structName = jsonObj.structName;\n this.extendedType = jsonObj.extendedType;\n this.description = jsonObj.description;\n this.displayLabel = jsonObj.displayLabel;\n if (undefined !== jsonObj.minimumValue)\n this.minimumValue = jsonObj.minimumValue;\n if (undefined !== jsonObj.maximumValue)\n this.maximumValue = jsonObj.maximumValue;\n if (undefined !== jsonObj.minimumLength)\n this.minimumLength = jsonObj.minimumLength;\n if (undefined !== jsonObj.maximumLength)\n this.maximumLength = jsonObj.maximumLength;\n this.readOnly = jsonObj.readOnly;\n this.kindOfQuantity = jsonObj.kindOfQuantity;\n this.isCustomHandled = jsonObj.isCustomHandled;\n if (undefined !== jsonObj.minOccurs)\n this.minOccurs = jsonObj.minOccurs;\n if (undefined !== jsonObj.maxOccurs)\n this.maxOccurs = jsonObj.maxOccurs;\n this.direction = jsonObj.direction;\n this.relationshipClass = jsonObj.relationshipClass;\n this.customAttributes = jsonObj.customAttributes;\n }\n\n /** Create a typed value, or array of values, from a factory and an input object */\n private createValueOrArray(func: FactoryFunc, jsonObj: any) {\n if (undefined === this.minOccurs)\n return func(jsonObj); // not an array\n\n const val: any = [];\n jsonObj.forEach((element: any) => val.push(func(element)));\n return val;\n }\n\n /** construct a single property from an input object according to this metadata */\n public createProperty(jsonObj: any): any {\n if (jsonObj === undefined)\n return undefined;\n\n if (undefined !== this.primitiveType) {\n switch (this.primitiveType) {\n case PrimitiveTypeCode.Boolean:\n case PrimitiveTypeCode.Double:\n case PrimitiveTypeCode.Integer:\n case PrimitiveTypeCode.String:\n return jsonObj; // this works even for arrays or strings that are JSON because the parsed JSON is already the right type\n\n case PrimitiveTypeCode.Point2d:\n return this.createValueOrArray((obj) => Point2d.fromJSON(obj), jsonObj);\n\n case PrimitiveTypeCode.Point3d:\n return this.createValueOrArray((obj) => Point3d.fromJSON(obj), jsonObj);\n }\n }\n if (this.isNavigation)\n return jsonObj.id !== undefined ? new RelatedElement(jsonObj) : Id64.fromJSON(jsonObj);\n\n return jsonObj;\n }\n\n /** Return `true` if this property is a NavigationProperty. */\n public get isNavigation(): boolean {\n return (this.direction !== undefined); // the presence of `direction` means it is a navigation property\n }\n}\n\n/**\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `@itwin/ecschema-metadata` instead.\n */\nexport interface EntityMetaDataProps {\n classId: Id64String;\n ecclass: string;\n description?: string;\n modifier?: string;\n displayLabel?: string;\n /** The base classes from which this class derives. If more than one, the first is the super class and the others are [mixins]($docs/bis/ec/ec-mixin-class). */\n baseClasses: string[];\n /** The Custom Attributes for this class */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n customAttributes?: CustomAttribute[];\n /** An object whose properties correspond by name to the properties of this class. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n properties: { [propName: string]: PropertyMetaData };\n}\n\n/** Metadata for an Entity.\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `EntityClass` class from `@itwin/ecschema-metadata` instead.\n */\nexport class EntityMetaData implements EntityMetaDataProps {\n /** The Id of the class in the [[IModelDb]] from which the metadata was obtained. */\n public readonly classId: Id64String;\n /** The Entity name */\n public readonly ecclass: string;\n public readonly description?: string;\n public readonly modifier?: string;\n public readonly displayLabel?: string;\n /** The base class that this class is derives from. If more than one, the first is the actual base class and the others are mixins. */\n public readonly baseClasses: string[];\n /** The Custom Attributes for this class */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public readonly customAttributes?: CustomAttribute[];\n /** An object whose properties correspond by name to the properties of this class. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public readonly properties: { [propName: string]: PropertyMetaData };\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public constructor(jsonObj: EntityMetaDataProps) {\n this.classId = jsonObj.classId;\n this.ecclass = jsonObj.ecclass;\n this.description = jsonObj.description;\n this.modifier = jsonObj.modifier;\n this.displayLabel = jsonObj.displayLabel;\n this.baseClasses = jsonObj.baseClasses;\n this.customAttributes = jsonObj.customAttributes;\n this.properties = {};\n\n for (const propName in jsonObj.properties) { // eslint-disable-line guard-for-in\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.properties[propName] = new PropertyMetaData(jsonObj.properties[propName]);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"EntityProps.js","sourceRoot":"","sources":["../../src/EntityProps.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Entities\n */\n\nimport { Id64, Id64String } from \"@itwin/core-bentley\";\nimport { Point2d, Point3d } from \"@itwin/core-geometry\";\nimport { RelatedElement } from \"./ElementProps\";\n\n/** The persistent format of an [Entity]($backend), also used as the \"wire format\" when transmitting information about entities\n * between the backend and frontend.\n * EntityProps and all of its sub-types like [[ElementProps]] are \"plain old Javascript objects\" - that is, objects containing\n * no methods and no properties of `class` type.\n * @public @preview\n * @extensions\n */\nexport interface EntityProps {\n /** A non-existent property used to discriminate between [[EntityProps]] and [Entity]($backend).\n * @see [Entity.isInstanceOfEntity]($backend).\n */\n readonly isInstanceOfEntity?: never;\n /** The full name of the [ECClass]($docs/bis/guide/references/glossary/#ecclass) for this entity, in the form \"Schema:ClassName\" */\n classFullName: string;\n /** The Id of the entity. Must be present for SELECT, UPDATE, or DELETE, ignored for INSERT. */\n id?: Id64String;\n /** Optional [json properties]($docs/bis/guide/fundamentals/element-fundamentals.md#jsonproperties) of this Entity. */\n jsonProperties?: { [key: string]: any };\n}\n\n/** Specifies the source and target elements of a [[Relationship]] instance.\n * @public @preview\n * @extensions\n */\nexport interface SourceAndTarget {\n sourceId: Id64String;\n targetId: Id64String;\n}\n\n/** Properties that are common to all types of link table ECRelationships\n * @public @preview\n * @extensions\n */\nexport interface RelationshipProps extends EntityProps, SourceAndTarget {\n}\n\n/** Parameters for performing a query on [Entity]($backend) classes.\n * @public @preview\n * @extensions\n */\nexport interface EntityQueryParams {\n /** The sql className, in the form \"Schema.ClassName\", of the class to search. */\n from?: string;\n /** Set to true to limit results to *not* include sub-classes of \"from\" class */\n only?: boolean;\n /** Optional \"WHERE\" clause to filter entities. Note: do *not* include the \"WHERE\" keyword. */\n where?: string;\n /** Optional \"ORDERBY\" clause to sort results. Note: do *not* include the \"ORDERBY\" keyword. */\n orderBy?: string;\n /** Optional \"LIMIT\" clause to limit the number of rows returned. */\n limit?: number;\n /** Optional \"OFFSET\" clause. Only valid if Limit is also present. */\n offset?: number;\n /** Bindings for parameterized values.\n * @see [[ECSqlStatement.bindValues]]\n */\n bindings?: any[] | object;\n}\n\n/** The primitive types of an Entity property.\n * @beta\n */\nexport enum PrimitiveTypeCode {\n Uninitialized = 0x00,\n Binary = 0x101,\n Boolean = 0x201,\n DateTime = 0x301,\n Double = 0x401,\n Integer = 0x501,\n Long = 0x601,\n Point2d = 0x701, // eslint-disable-line @typescript-eslint/no-shadow\n Point3d = 0x801, // eslint-disable-line @typescript-eslint/no-shadow\n String = 0x901,\n IGeometry = 0xa01, // Used for Bentley.Geometry.Common.IGeometry types\n}\n\n/** A callback function to process properties of an Entity\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `PropertyHandler` from `@itwin/ecschema-metadata` instead.\n *\n * @example\n * ```typescript\n * // Current usage:\n * const callback: PropertyCallback = (name: string, propMetaData: PropertyMetaData) => {\n * console.log(`Property name: ${name}, Property type: ${propMetaData.primitiveType}`);\n * };\n *\n * // Replacement:\n * const callback: PropertyHandler = (propName: string, property: Property) => {\n * console.log(`Property name: ${propName}, Property type: ${property.propertyType}`);\n * };\n * ```\n */\nexport type PropertyCallback = (name: string, meta: PropertyMetaData) => void;\n\n/** A custom attribute instance\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `CustomAttribute` interface from `@itwin/ecschema-metadata` instead.\n */\nexport interface CustomAttribute {\n /** The class of the CustomAttribute */\n ecclass: string;\n /** An object whose properties correspond by name to the properties of this custom attribute instance. */\n properties: { [propName: string]: any };\n}\n\ntype FactoryFunc = (jsonObj: any) => any;\n\n/**\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `@itwin/ecschema-metadata` instead.\n */\nexport interface PropertyMetaDataProps {\n primitiveType?: number;\n structName?: string;\n extendedType?: string;\n description?: string;\n displayLabel?: string;\n minimumValue?: any;\n maximumValue?: any;\n minimumLength?: number;\n maximumLength?: number;\n readOnly?: boolean;\n kindOfQuantity?: string;\n isCustomHandled?: boolean;\n isCustomHandledOrphan?: boolean;\n minOccurs?: number;\n maxOccurs?: number;\n direction?: string;\n relationshipClass?: string;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n customAttributes?: CustomAttribute[];\n}\n\n/** Metadata for a property.\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use the `Property` class from @itwin/ecschema-metadata` instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class PropertyMetaData implements PropertyMetaDataProps {\n public primitiveType?: PrimitiveTypeCode;\n public structName?: string;\n public extendedType?: string;\n public description?: string;\n public displayLabel?: string;\n public minimumValue?: any;\n public maximumValue?: any;\n public minimumLength?: number;\n public maximumLength?: number;\n public readOnly?: boolean;\n public kindOfQuantity?: string;\n public isCustomHandled?: boolean;\n public isCustomHandledOrphan?: boolean;\n public minOccurs?: number;\n public maxOccurs?: number;\n public direction?: string;\n public relationshipClass?: string;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public customAttributes?: CustomAttribute[];\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public constructor(jsonObj: PropertyMetaDataProps) {\n this.primitiveType = jsonObj.primitiveType;\n if (jsonObj.structName)\n this.structName = jsonObj.structName;\n this.extendedType = jsonObj.extendedType;\n this.description = jsonObj.description;\n this.displayLabel = jsonObj.displayLabel;\n if (undefined !== jsonObj.minimumValue)\n this.minimumValue = jsonObj.minimumValue;\n if (undefined !== jsonObj.maximumValue)\n this.maximumValue = jsonObj.maximumValue;\n if (undefined !== jsonObj.minimumLength)\n this.minimumLength = jsonObj.minimumLength;\n if (undefined !== jsonObj.maximumLength)\n this.maximumLength = jsonObj.maximumLength;\n this.readOnly = jsonObj.readOnly;\n this.kindOfQuantity = jsonObj.kindOfQuantity;\n this.isCustomHandled = jsonObj.isCustomHandled;\n if (undefined !== jsonObj.minOccurs)\n this.minOccurs = jsonObj.minOccurs;\n if (undefined !== jsonObj.maxOccurs)\n this.maxOccurs = jsonObj.maxOccurs;\n this.direction = jsonObj.direction;\n this.relationshipClass = jsonObj.relationshipClass;\n this.customAttributes = jsonObj.customAttributes;\n }\n\n /** Create a typed value, or array of values, from a factory and an input object */\n private createValueOrArray(func: FactoryFunc, jsonObj: any) {\n if (undefined === this.minOccurs)\n return func(jsonObj); // not an array\n\n const val: any = [];\n jsonObj.forEach((element: any) => val.push(func(element)));\n return val;\n }\n\n /** construct a single property from an input object according to this metadata */\n public createProperty(jsonObj: any): any {\n if (jsonObj === undefined)\n return undefined;\n\n if (undefined !== this.primitiveType) {\n switch (this.primitiveType) {\n case PrimitiveTypeCode.Boolean:\n case PrimitiveTypeCode.Double:\n case PrimitiveTypeCode.Integer:\n case PrimitiveTypeCode.String:\n return jsonObj; // this works even for arrays or strings that are JSON because the parsed JSON is already the right type\n\n case PrimitiveTypeCode.Point2d:\n return this.createValueOrArray((obj) => Point2d.fromJSON(obj), jsonObj);\n\n case PrimitiveTypeCode.Point3d:\n return this.createValueOrArray((obj) => Point3d.fromJSON(obj), jsonObj);\n }\n }\n if (this.isNavigation)\n return jsonObj.id !== undefined ? new RelatedElement(jsonObj) : Id64.fromJSON(jsonObj);\n\n return jsonObj;\n }\n\n /** Return `true` if this property is a NavigationProperty. */\n public get isNavigation(): boolean {\n return (this.direction !== undefined); // the presence of `direction` means it is a navigation property\n }\n}\n\n/**\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `@itwin/ecschema-metadata` instead.\n */\nexport interface EntityMetaDataProps {\n classId: Id64String;\n ecclass: string;\n description?: string;\n modifier?: string;\n displayLabel?: string;\n /** The base classes from which this class derives. If more than one, the first is the super class and the others are [mixins]($docs/bis/ec/ec-mixin-class). */\n baseClasses: string[];\n /** The Custom Attributes for this class */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n customAttributes?: CustomAttribute[];\n /** An object whose properties correspond by name to the properties of this class. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n properties: { [propName: string]: PropertyMetaData };\n}\n\n/** Metadata for an Entity.\n * @beta\n * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `EntityClass` class from `@itwin/ecschema-metadata` instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class EntityMetaData implements EntityMetaDataProps {\n /** The Id of the class in the [[IModelDb]] from which the metadata was obtained. */\n public readonly classId: Id64String;\n /** The Entity name */\n public readonly ecclass: string;\n public readonly description?: string;\n public readonly modifier?: string;\n public readonly displayLabel?: string;\n /** The base class that this class is derives from. If more than one, the first is the actual base class and the others are mixins. */\n public readonly baseClasses: string[];\n /** The Custom Attributes for this class */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public readonly customAttributes?: CustomAttribute[];\n /** An object whose properties correspond by name to the properties of this class. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public readonly properties: { [propName: string]: PropertyMetaData };\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public constructor(jsonObj: EntityMetaDataProps) {\n this.classId = jsonObj.classId;\n this.ecclass = jsonObj.ecclass;\n this.description = jsonObj.description;\n this.modifier = jsonObj.modifier;\n this.displayLabel = jsonObj.displayLabel;\n this.baseClasses = jsonObj.baseClasses;\n this.customAttributes = jsonObj.customAttributes;\n this.properties = {};\n\n for (const propName in jsonObj.properties) { // eslint-disable-line guard-for-in\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this.properties[propName] = new PropertyMetaData(jsonObj.properties[propName]);\n }\n }\n}\n"]}
@@ -73,7 +73,7 @@ export declare class TerrainSettings {
73
73
  * @internal
74
74
  */
75
75
  get nonLocatable(): true | undefined;
76
- /** @deprecated in 4.5.x - will not be removed until after 2026-06-13. Use the overload that takes [[TerrainProps]]. */
76
+ /** @deprecated in 4.5.0 - will not be removed until after 2026-06-13. Use the overload that takes [[TerrainProps]]. */
77
77
  constructor(providerName?: string, exaggeration?: number, applyLighting?: boolean, heightOrigin?: number, heightOriginMode?: TerrainHeightOriginMode);
78
78
  constructor(props?: TerrainProps);
79
79
  static fromJSON(json?: TerrainProps): TerrainSettings;
@@ -1 +1 @@
1
- {"version":3,"file":"TerrainSettings.js","sourceRoot":"","sources":["../../src/TerrainSettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module DisplayStyles\n */\n\nimport { BackgroundMapProps } from \"./BackgroundMapSettings\";\nimport { CesiumTerrainAssetId } from \"./CesiumIonAssets\";\n\n\n/** JSON representation of the settings of the terrain applied to background map display by a [[DisplayStyle]].\n * @see [[DisplayStyleSettingsProps]]\n * @see [[BackgroundMapProps]]\n * @public\n * @extensions\n */\nexport interface TerrainProps {\n /** Identifies the [TerrainProvider]($frontend) that will supply terrain meshes.\n * If omitted, it defaults to \"CesiumWorldTerrain\".\n */\n providerName?: string;\n /** Identifies the specific terrain data source to be supplied by the [TerrainProvider]($frontend) identified by [[providerName]],\n * for those providers that support multiple data sources.\n * For example, the \"CesiumWorldTerrain\" provider uses this field to store a [[CesiumTerrainAssetId]].\n * Default value: an empty string.\n */\n dataSource?: string;\n /** A value greater than one will cause terrain height to be exaggerated/scaled.false (or 1.0) indicate no exaggeration. Default value: 1.0 */\n exaggeration?: number;\n /** Applying lighting can help to visualize subtle terrain variation. Default value: true */\n applyLighting?: boolean;\n /** Origin value - height of the IModel origin at the project center as defined by heightOriginMode. Default value: 0.0 */\n heightOrigin?: number;\n /** Determines how/if the heightOrigin is applied to the terrain height. Default value: Geodetic */\n heightOriginMode?: TerrainHeightOriginMode;\n /** If true, the terrain will not be locatable. Otherwise, [[BackgroundMapProps.nonLocatable]] will determine whether terrain is locatable.\n * @internal use [[BackgroundMapProps.nonLocatable]]. Retained for backwards compatibility only.\n */\n nonLocatable?: boolean;\n}\n\n/** Correction modes for terrain height\n * @see [[TerrainProps]]\n * @public\n * @extensions\n */\nexport enum TerrainHeightOriginMode {\n /** Height value indicates the geodetic height of the IModel origin (also referred to as ellipsoidal or GPS height) */\n Geodetic = 0,\n /** Height value indicates the geoidal height of the IModel origin (commonly referred to as sea level). */\n Geoid = 1,\n /** Height value indicates the height of the IModel origin relative to ground level at project center. */\n Ground = 2,\n}\n\n/** Normalized version of [[TerrainProps]] for which provider has been validated and default values of all members are used.\n * @public\n */\nexport class TerrainSettings {\n private _nonLocatable: true | undefined;\n /** Identifies the [TerrainProvider]($frontend) that will supply terrain meshes.\n * Defaults to \"CesiumWorldTerrain\".\n */\n public readonly providerName: string;\n /** Identifies the specific terrain data source to be supplied by the [TerrainProvider]($frontend) identified by [[providerName]],\n * for those providers that support multiple data sources.\n * For example, the \"CesiumWorldTerrain\" provider uses this field to store a [[CesiumTerrainAssetId]].\n * Default value: an empty string.\n */\n public readonly dataSource: string;\n /** A value greater than one will cause terrain height to be exaggerated/scaled. 1.0 indicates no exaggeration. Default value: 1.0 */\n public readonly exaggeration: number;\n /** Applying lighting can help to visualize subtle terrain variations. Default value: false */\n public readonly applyLighting: boolean;\n /** Origin value - height of the IModel origin at the project center as defined by heightOriginMode. Default value 0.0 */\n public readonly heightOrigin: number;\n /** Determines how/if the heightOrigin is applied to the terrain height. Default value: Geodetic */\n public readonly heightOriginMode: TerrainHeightOriginMode;\n /** Optionally overrides [[BackgroundMapSettings.locatable]]. For backwards compatibility only.\n * @see [[TerrainProps.nonLocatable]].\n * @internal\n */\n public get nonLocatable(): true | undefined {\n return this._nonLocatable;\n }\n\n /** @deprecated in 4.5.x - will not be removed until after 2026-06-13. Use the overload that takes [[TerrainProps]]. */\n constructor(providerName?: string, exaggeration?: number, applyLighting?: boolean, heightOrigin?: number, heightOriginMode?: TerrainHeightOriginMode);\n\n constructor(props?: TerrainProps);\n\n /** @internal */\n constructor(providerNameOrProps: string | TerrainProps | undefined, exaggeration?: number, applyLighting?: boolean, heightOrigin?: number, heightOriginMode?: TerrainHeightOriginMode) {\n let providerName;\n let dataSource;\n let nonLocatable;\n if (typeof providerNameOrProps === \"string\") {\n providerName = providerNameOrProps;\n } else if (providerNameOrProps) {\n ({ providerName, dataSource, exaggeration, applyLighting, heightOrigin, heightOriginMode, nonLocatable } = providerNameOrProps);\n }\n\n this.providerName = providerName ?? \"CesiumWorldTerrain\";\n this.dataSource = dataSource ?? \"\";\n this.exaggeration = Math.min(100, Math.max(0.1, exaggeration ?? 1.0));\n this.applyLighting = applyLighting ?? false;\n this.heightOrigin = heightOrigin ?? 0.0;\n\n if (true === nonLocatable)\n this._nonLocatable = true;\n\n switch (heightOriginMode) {\n case TerrainHeightOriginMode.Ground:\n case TerrainHeightOriginMode.Geoid:\n this.heightOriginMode = heightOriginMode;\n break;\n default:\n this.heightOriginMode = TerrainHeightOriginMode.Geodetic;\n break;\n }\n }\n\n public static fromJSON(json?: TerrainProps) {\n return new TerrainSettings(json);\n }\n\n /** Create settings that obtain terrain from a [Cesium ION asset](https://cesium.com/platform/cesium-ion/content/) such as\n * one of those defined by [[CesiumTerrainAssetId]].\n * @note You must ensure your Cesium ION account has access to the specified asset.\n */\n public static fromCesiumIonAsset(assetId: string = CesiumTerrainAssetId.Default, options?: Omit<TerrainProps, \"providerName\" | \"dataSource\">): TerrainSettings {\n return TerrainSettings.fromJSON({\n ...options,\n dataSource: assetId,\n });\n }\n\n public toJSON(): TerrainProps {\n const props: TerrainProps = { heightOriginMode: this.heightOriginMode };\n if (\"CesiumWorldTerrain\" !== this.providerName)\n props.providerName = this.providerName;\n if (this.dataSource)\n props.dataSource = this.dataSource;\n if (1 !== this.exaggeration)\n props.exaggeration = this.exaggeration;\n if (this.nonLocatable)\n props.nonLocatable = true;\n if (this.applyLighting)\n props.applyLighting = true;\n if (0 !== this.heightOrigin)\n props.heightOrigin = this.heightOrigin;\n\n return props;\n }\n\n public equals(other: TerrainSettings): boolean {\n return this.providerName === other.providerName && this.dataSource === other.dataSource && this.exaggeration === other.exaggeration && this.applyLighting === other.applyLighting\n && this.heightOrigin === other.heightOrigin && this.heightOriginMode === other.heightOriginMode && this.nonLocatable === other.nonLocatable;\n }\n\n /** Returns true if these settings are equivalent to the supplied JSON settings. */\n public equalsJSON(json?: BackgroundMapProps): boolean {\n return this.equals(TerrainSettings.fromJSON(json));\n }\n\n /** Create a copy of this TerrainSettings, optionally modifying some of its properties.\n * @param changedProps JSON representation of the properties to change.\n * @returns A TerrainSettings with all of its properties set to match those of`this`, except those explicitly defined in `changedProps`.\n */\n public clone(changedProps?: TerrainProps): TerrainSettings {\n if (undefined === changedProps)\n return this;\n\n const props = {\n providerName: changedProps.providerName ?? this.providerName,\n dataSource: changedProps.dataSource ?? this.dataSource,\n exaggeration: changedProps.exaggeration ?? this.exaggeration,\n nonLocatable: changedProps.nonLocatable ?? this.nonLocatable,\n applyLighting: changedProps.applyLighting ?? this.applyLighting,\n heightOrigin: changedProps.heightOrigin ?? this.heightOrigin,\n heightOriginMode: changedProps.heightOriginMode ?? this.heightOriginMode,\n };\n\n return TerrainSettings.fromJSON(props);\n }\n}\n"]}
1
+ {"version":3,"file":"TerrainSettings.js","sourceRoot":"","sources":["../../src/TerrainSettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module DisplayStyles\n */\n\nimport { BackgroundMapProps } from \"./BackgroundMapSettings\";\nimport { CesiumTerrainAssetId } from \"./CesiumIonAssets\";\n\n\n/** JSON representation of the settings of the terrain applied to background map display by a [[DisplayStyle]].\n * @see [[DisplayStyleSettingsProps]]\n * @see [[BackgroundMapProps]]\n * @public\n * @extensions\n */\nexport interface TerrainProps {\n /** Identifies the [TerrainProvider]($frontend) that will supply terrain meshes.\n * If omitted, it defaults to \"CesiumWorldTerrain\".\n */\n providerName?: string;\n /** Identifies the specific terrain data source to be supplied by the [TerrainProvider]($frontend) identified by [[providerName]],\n * for those providers that support multiple data sources.\n * For example, the \"CesiumWorldTerrain\" provider uses this field to store a [[CesiumTerrainAssetId]].\n * Default value: an empty string.\n */\n dataSource?: string;\n /** A value greater than one will cause terrain height to be exaggerated/scaled.false (or 1.0) indicate no exaggeration. Default value: 1.0 */\n exaggeration?: number;\n /** Applying lighting can help to visualize subtle terrain variation. Default value: true */\n applyLighting?: boolean;\n /** Origin value - height of the IModel origin at the project center as defined by heightOriginMode. Default value: 0.0 */\n heightOrigin?: number;\n /** Determines how/if the heightOrigin is applied to the terrain height. Default value: Geodetic */\n heightOriginMode?: TerrainHeightOriginMode;\n /** If true, the terrain will not be locatable. Otherwise, [[BackgroundMapProps.nonLocatable]] will determine whether terrain is locatable.\n * @internal use [[BackgroundMapProps.nonLocatable]]. Retained for backwards compatibility only.\n */\n nonLocatable?: boolean;\n}\n\n/** Correction modes for terrain height\n * @see [[TerrainProps]]\n * @public\n * @extensions\n */\nexport enum TerrainHeightOriginMode {\n /** Height value indicates the geodetic height of the IModel origin (also referred to as ellipsoidal or GPS height) */\n Geodetic = 0,\n /** Height value indicates the geoidal height of the IModel origin (commonly referred to as sea level). */\n Geoid = 1,\n /** Height value indicates the height of the IModel origin relative to ground level at project center. */\n Ground = 2,\n}\n\n/** Normalized version of [[TerrainProps]] for which provider has been validated and default values of all members are used.\n * @public\n */\nexport class TerrainSettings {\n private _nonLocatable: true | undefined;\n /** Identifies the [TerrainProvider]($frontend) that will supply terrain meshes.\n * Defaults to \"CesiumWorldTerrain\".\n */\n public readonly providerName: string;\n /** Identifies the specific terrain data source to be supplied by the [TerrainProvider]($frontend) identified by [[providerName]],\n * for those providers that support multiple data sources.\n * For example, the \"CesiumWorldTerrain\" provider uses this field to store a [[CesiumTerrainAssetId]].\n * Default value: an empty string.\n */\n public readonly dataSource: string;\n /** A value greater than one will cause terrain height to be exaggerated/scaled. 1.0 indicates no exaggeration. Default value: 1.0 */\n public readonly exaggeration: number;\n /** Applying lighting can help to visualize subtle terrain variations. Default value: false */\n public readonly applyLighting: boolean;\n /** Origin value - height of the IModel origin at the project center as defined by heightOriginMode. Default value 0.0 */\n public readonly heightOrigin: number;\n /** Determines how/if the heightOrigin is applied to the terrain height. Default value: Geodetic */\n public readonly heightOriginMode: TerrainHeightOriginMode;\n /** Optionally overrides [[BackgroundMapSettings.locatable]]. For backwards compatibility only.\n * @see [[TerrainProps.nonLocatable]].\n * @internal\n */\n public get nonLocatable(): true | undefined {\n return this._nonLocatable;\n }\n\n /** @deprecated in 4.5.0 - will not be removed until after 2026-06-13. Use the overload that takes [[TerrainProps]]. */\n constructor(providerName?: string, exaggeration?: number, applyLighting?: boolean, heightOrigin?: number, heightOriginMode?: TerrainHeightOriginMode);\n\n constructor(props?: TerrainProps);\n\n /** @internal */\n constructor(providerNameOrProps: string | TerrainProps | undefined, exaggeration?: number, applyLighting?: boolean, heightOrigin?: number, heightOriginMode?: TerrainHeightOriginMode) {\n let providerName;\n let dataSource;\n let nonLocatable;\n if (typeof providerNameOrProps === \"string\") {\n providerName = providerNameOrProps;\n } else if (providerNameOrProps) {\n ({ providerName, dataSource, exaggeration, applyLighting, heightOrigin, heightOriginMode, nonLocatable } = providerNameOrProps);\n }\n\n this.providerName = providerName ?? \"CesiumWorldTerrain\";\n this.dataSource = dataSource ?? \"\";\n this.exaggeration = Math.min(100, Math.max(0.1, exaggeration ?? 1.0));\n this.applyLighting = applyLighting ?? false;\n this.heightOrigin = heightOrigin ?? 0.0;\n\n if (true === nonLocatable)\n this._nonLocatable = true;\n\n switch (heightOriginMode) {\n case TerrainHeightOriginMode.Ground:\n case TerrainHeightOriginMode.Geoid:\n this.heightOriginMode = heightOriginMode;\n break;\n default:\n this.heightOriginMode = TerrainHeightOriginMode.Geodetic;\n break;\n }\n }\n\n public static fromJSON(json?: TerrainProps) {\n return new TerrainSettings(json);\n }\n\n /** Create settings that obtain terrain from a [Cesium ION asset](https://cesium.com/platform/cesium-ion/content/) such as\n * one of those defined by [[CesiumTerrainAssetId]].\n * @note You must ensure your Cesium ION account has access to the specified asset.\n */\n public static fromCesiumIonAsset(assetId: string = CesiumTerrainAssetId.Default, options?: Omit<TerrainProps, \"providerName\" | \"dataSource\">): TerrainSettings {\n return TerrainSettings.fromJSON({\n ...options,\n dataSource: assetId,\n });\n }\n\n public toJSON(): TerrainProps {\n const props: TerrainProps = { heightOriginMode: this.heightOriginMode };\n if (\"CesiumWorldTerrain\" !== this.providerName)\n props.providerName = this.providerName;\n if (this.dataSource)\n props.dataSource = this.dataSource;\n if (1 !== this.exaggeration)\n props.exaggeration = this.exaggeration;\n if (this.nonLocatable)\n props.nonLocatable = true;\n if (this.applyLighting)\n props.applyLighting = true;\n if (0 !== this.heightOrigin)\n props.heightOrigin = this.heightOrigin;\n\n return props;\n }\n\n public equals(other: TerrainSettings): boolean {\n return this.providerName === other.providerName && this.dataSource === other.dataSource && this.exaggeration === other.exaggeration && this.applyLighting === other.applyLighting\n && this.heightOrigin === other.heightOrigin && this.heightOriginMode === other.heightOriginMode && this.nonLocatable === other.nonLocatable;\n }\n\n /** Returns true if these settings are equivalent to the supplied JSON settings. */\n public equalsJSON(json?: BackgroundMapProps): boolean {\n return this.equals(TerrainSettings.fromJSON(json));\n }\n\n /** Create a copy of this TerrainSettings, optionally modifying some of its properties.\n * @param changedProps JSON representation of the properties to change.\n * @returns A TerrainSettings with all of its properties set to match those of`this`, except those explicitly defined in `changedProps`.\n */\n public clone(changedProps?: TerrainProps): TerrainSettings {\n if (undefined === changedProps)\n return this;\n\n const props = {\n providerName: changedProps.providerName ?? this.providerName,\n dataSource: changedProps.dataSource ?? this.dataSource,\n exaggeration: changedProps.exaggeration ?? this.exaggeration,\n nonLocatable: changedProps.nonLocatable ?? this.nonLocatable,\n applyLighting: changedProps.applyLighting ?? this.applyLighting,\n heightOrigin: changedProps.heightOrigin ?? this.heightOrigin,\n heightOriginMode: changedProps.heightOriginMode ?? this.heightOriginMode,\n };\n\n return TerrainSettings.fromJSON(props);\n }\n}\n"]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Point3d, Range2d, Transform, XYZProps, YawPitchRollAngles, YawPitchRollProps } from "@itwin/core-geometry";
5
5
  import { TextBlock, TextBlockProps } from "./TextBlock";
6
- import { TextStyleColor, TextStyleSettingsProps } from "./TextStyle";
6
+ import { TextStyleSettingsProps } from "./TextStyle";
7
7
  /** Describes how to compute the "anchor point" for a [[TextAnnotation]].
8
8
  * The anchor point is a point on or inside of the 2d bounding box enclosing the contents of the annotation's [[TextBlock]].
9
9
  * The annotation can be rotated and translated relative to the anchor point. The anchor point also serves as the snap point
@@ -28,35 +28,6 @@ export interface TextAnnotationAnchor {
28
28
  */
29
29
  horizontal: "left" | "center" | "right";
30
30
  }
31
- /** Set of predefined shapes that can be computed and drawn around the margins of a [[TextBlock]]
32
- * @beta
33
- */
34
- export declare const textAnnotationFrameShapes: readonly ["none", "line", "rectangle", "circle", "equilateralTriangle", "diamond", "square", "pentagon", "hexagon", "octagon", "capsule", "roundedRectangle"];
35
- /** Describes a predefined shape that can be computed and drawn around the margins of a [[TextBlock]]
36
- * @beta
37
- */
38
- export type TextAnnotationFrameShape = typeof textAnnotationFrameShapes[number];
39
- /**
40
- * Describes what color to use when filling the frame around a [[TextBlock]].
41
- * If `background` is specified, [[GeometryParams.BackgroundFill]] will be set to `BackgroundFill.Outline`.
42
- * @beta
43
- */
44
- export type TextAnnotationFillColor = TextStyleColor | "background";
45
- /**
46
- * Describes how to draw the frame around a [[TextBlock]].
47
- * The frame can be a simple line, a filled shape, or both.
48
- * @beta
49
- */
50
- export interface TextFrameStyleProps {
51
- /** Shape of the frame. Default: "rectangle" */
52
- shape?: TextAnnotationFrameShape;
53
- /** The color to fill the shape of the text frame. This fill will is applied using [[FillDisplay.Blanking]]. Default: no fill */
54
- fill?: TextAnnotationFillColor;
55
- /** The color of the text frame's outline. Default: black */
56
- border?: TextStyleColor;
57
- /** This will be used to set the [[GeometryParams.weight]] property of the frame (in pixels). Default: 1px */
58
- borderWeight?: number;
59
- }
60
31
  /**
61
32
  * Describes how to attach a [[TextAnnotationLeader]] to the frame around a [[TextBlock]].
62
33
  * Leader can be attached using one of the three modes:
@@ -122,8 +93,6 @@ export interface TextAnnotationLeaderProps {
122
93
  /** See [[TextAnnotationLeader.styleOverrides]]. Default: no style overrides. */
123
94
  styleOverrides?: TextStyleSettingsProps;
124
95
  }
125
- /**
126
-
127
96
  /**
128
97
  * JSON representation of a [[TextAnnotation]].
129
98
  * @beta
@@ -137,8 +106,6 @@ export interface TextAnnotationProps {
137
106
  textBlock?: TextBlockProps;
138
107
  /** See [[TextAnnotation.anchor]]. Default: top-left. */
139
108
  anchor?: TextAnnotationAnchor;
140
- /** See [[TextAnnotation.frame]]. Default: no frame */
141
- frame?: TextFrameStyleProps;
142
109
  /** See [[TextAnnotation.leader]]. Default: an empty leader array */
143
110
  leaders?: TextAnnotationLeaderProps[];
144
111
  }
@@ -154,8 +121,6 @@ export interface TextAnnotationCreateArgs {
154
121
  textBlock?: TextBlock;
155
122
  /** See [[TextAnnotation.anchor]]. Default: top-left. */
156
123
  anchor?: TextAnnotationAnchor;
157
- /** See [[TextAnnotation.frame]]. Default: no frame */
158
- frame?: TextFrameStyleProps;
159
124
  /** See [[TextAnnotation.leader]]. Default: an empty leader array */
160
125
  leaders?: TextAnnotationLeader[];
161
126
  }
@@ -183,8 +148,6 @@ export declare class TextAnnotation {
183
148
  anchor: TextAnnotationAnchor;
184
149
  /** An offset applied to the anchor point that can be used to position annotations within the same geometry stream relative to one another. */
185
150
  offset: Point3d;
186
- /** The frame settings of the text annotation. */
187
- frame?: TextFrameStyleProps;
188
151
  /** The leaders of the text annotation. */
189
152
  leaders?: TextAnnotationLeader[];
190
153
  private constructor();
@@ -203,11 +166,13 @@ export declare class TextAnnotation {
203
166
  * at the bottom left, then the transform will be relative to the bottom-left corner of `textBlockExtents`.
204
167
  * The text block will be rotated around the fixed anchor point according to [[orientation]], then translated by [[offset]].
205
168
  * The anchor point will coincide with (0, 0, 0) unless an [[offset]] is present.
169
+ * If a scale factor is specified, the transform will also scale the annotation by that factor. Usually, this should come from the [[Drawing]] containing the annotation.
206
170
  * @param boundingBox A box fully containing the [[textBlock]]. This range should include the margins.
171
+ * @param scaleFactor A factor by which to scale the annotation. Default: 1 (no scaling).
207
172
  * @see [[computeAnchorPoint]] to compute the transform's anchor point.
208
173
  * @see [computeLayoutTextBlockResult]($backend) to lay out a `TextBlock`.
209
174
  */
210
- computeTransform(boundingBox: Range2d): Transform;
175
+ computeTransform(boundingBox: Range2d, scaleFactor?: number): Transform;
211
176
  /** Compute the anchor point of this annotation as specified by [[anchor]].
212
177
  * @param boundingBox A box fully containing the [[textBlock]].
213
178
  * @see [[computeTransform]] to compute the transform relative to the anchor point.
@@ -1 +1 @@
1
- {"version":3,"file":"TextAnnotation.d.ts","sourceRoot":"","sources":["../../../src/annotation/TextAnnotation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextAnnotation.d.ts","sourceRoot":"","sources":["../../../src/annotation/TextAnnotation.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,6 @@
7
7
  */
8
8
  import { Point3d, Transform, YawPitchRollAngles } from "@itwin/core-geometry";
9
9
  import { TextBlock } from "./TextBlock";
10
- /** Set of predefined shapes that can be computed and drawn around the margins of a [[TextBlock]]
11
- * @beta
12
- */
13
- export const textAnnotationFrameShapes = ["none", "line", "rectangle", "circle", "equilateralTriangle", "diamond", "square", "pentagon", "hexagon", "octagon", "capsule", "roundedRectangle"];
14
10
  /**
15
11
  * Represents a formatted block of text positioned in 2d or 3d space.
16
12
  * [TextAnnotation2d]($backend) and [TextAnnotation3d]($backend) elements store a single TextAnnotation from which their geometric representation is generated.
@@ -35,16 +31,13 @@ export class TextAnnotation {
35
31
  anchor;
36
32
  /** An offset applied to the anchor point that can be used to position annotations within the same geometry stream relative to one another. */
37
33
  offset;
38
- /** The frame settings of the text annotation. */
39
- frame;
40
34
  /** The leaders of the text annotation. */
41
35
  leaders;
42
- constructor(offset, angles, textBlock, anchor, frame, leaders) {
36
+ constructor(offset, angles, textBlock, anchor, leaders) {
43
37
  this.offset = offset;
44
38
  this.orientation = angles;
45
39
  this.textBlock = textBlock;
46
40
  this.anchor = anchor;
47
- this.frame = frame;
48
41
  this.leaders = leaders;
49
42
  }
50
43
  /** Creates a new TextAnnotation. */
@@ -53,11 +46,8 @@ export class TextAnnotation {
53
46
  const angles = args?.orientation ?? new YawPitchRollAngles();
54
47
  const textBlock = args?.textBlock ?? TextBlock.createEmpty();
55
48
  const anchor = args?.anchor ?? { vertical: "top", horizontal: "left" };
56
- // If the user supplies a frame, but doesn't supply a shape, default the shape to "rectangle"
57
- const shape = args?.frame?.shape ?? "rectangle";
58
- const frame = args?.frame ? { shape, ...args.frame } : undefined;
59
49
  const leaders = args?.leaders ?? undefined;
60
- return new TextAnnotation(offset, angles, textBlock, anchor, frame, leaders);
50
+ return new TextAnnotation(offset, angles, textBlock, anchor, leaders);
61
51
  }
62
52
  /**
63
53
  * Creates a new TextAnnotation instance from its JSON representation.
@@ -68,7 +58,6 @@ export class TextAnnotation {
68
58
  orientation: props?.orientation ? YawPitchRollAngles.fromJSON(props.orientation) : undefined,
69
59
  textBlock: props?.textBlock ? TextBlock.create(props.textBlock) : undefined,
70
60
  anchor: props?.anchor ? { ...props.anchor } : undefined,
71
- frame: props?.frame ? { shape: "rectangle", ...props.frame } : undefined,
72
61
  leaders: props?.leaders ? props.leaders.map((leader) => ({
73
62
  startPoint: Point3d.fromJSON(leader.startPoint),
74
63
  attachment: leader.attachment,
@@ -82,7 +71,7 @@ export class TextAnnotation {
82
71
  */
83
72
  toJSON() {
84
73
  const props = {};
85
- // Even if the text block is empty, we want to record its style name and overrides, e.g.,
74
+ // Even if the text block is empty, we want to record its style ID and overrides, e.g.,
86
75
  // so the user can pick up where they left off editing it next time.
87
76
  props.textBlock = this.textBlock.toJSON();
88
77
  if (!this.offset.isZero) {
@@ -94,8 +83,6 @@ export class TextAnnotation {
94
83
  if (this.anchor.vertical !== "top" || this.anchor.horizontal !== "left") {
95
84
  props.anchor = { ...this.anchor };
96
85
  }
97
- // Default frame to "none"
98
- props.frame = this.frame ? { ...this.frame } : undefined;
99
86
  props.leaders = this.leaders?.map((leader) => ({
100
87
  startPoint: leader.startPoint.toJSON(),
101
88
  attachment: leader.attachment,
@@ -109,16 +96,23 @@ export class TextAnnotation {
109
96
  * at the bottom left, then the transform will be relative to the bottom-left corner of `textBlockExtents`.
110
97
  * The text block will be rotated around the fixed anchor point according to [[orientation]], then translated by [[offset]].
111
98
  * The anchor point will coincide with (0, 0, 0) unless an [[offset]] is present.
99
+ * If a scale factor is specified, the transform will also scale the annotation by that factor. Usually, this should come from the [[Drawing]] containing the annotation.
112
100
  * @param boundingBox A box fully containing the [[textBlock]]. This range should include the margins.
101
+ * @param scaleFactor A factor by which to scale the annotation. Default: 1 (no scaling).
113
102
  * @see [[computeAnchorPoint]] to compute the transform's anchor point.
114
103
  * @see [computeLayoutTextBlockResult]($backend) to lay out a `TextBlock`.
115
104
  */
116
- computeTransform(boundingBox) {
105
+ computeTransform(boundingBox, scaleFactor = 1) {
117
106
  const anchorPt = this.computeAnchorPoint(boundingBox);
118
107
  const matrix = this.orientation.toMatrix3d();
119
- const rotation = Transform.createFixedPointAndMatrix(anchorPt, matrix);
108
+ const transform = Transform.createIdentity();
120
109
  const translation = Transform.createTranslation(this.offset.minus(anchorPt));
121
- return translation.multiplyTransformTransform(rotation, rotation);
110
+ const scaleTransform = Transform.createScaleAboutPoint(anchorPt, scaleFactor);
111
+ const rotation = Transform.createFixedPointAndMatrix(anchorPt, matrix);
112
+ transform.multiplyTransformTransform(translation, transform);
113
+ transform.multiplyTransformTransform(scaleTransform, transform);
114
+ transform.multiplyTransformTransform(rotation, transform);
115
+ return transform;
122
116
  }
123
117
  /** Compute the anchor point of this annotation as specified by [[anchor]].
124
118
  * @param boundingBox A box fully containing the [[textBlock]].
@@ -179,12 +173,6 @@ export class TextAnnotation {
179
173
  !this.offset.isAlmostEqual(other.offset) ||
180
174
  !this.textBlock.equals(other.textBlock))
181
175
  return false;
182
- const framesMatch = this.frame?.shape === other.frame?.shape
183
- && this.frame?.fill === other.frame?.fill
184
- && this.frame?.border === other.frame?.border
185
- && this.frame?.borderWeight === other.frame?.borderWeight;
186
- if (!framesMatch)
187
- return false;
188
176
  return this.areLeadersEqual(this.leaders, other.leaders);
189
177
  }
190
178
  }