@itwin/core-common 4.3.0-dev.8 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/lib/cjs/ClipStyle.d.ts +63 -1
  3. package/lib/cjs/ClipStyle.d.ts.map +1 -1
  4. package/lib/cjs/ClipStyle.js +75 -11
  5. package/lib/cjs/ClipStyle.js.map +1 -1
  6. package/lib/cjs/ConcurrentQuery.d.ts +15 -0
  7. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  8. package/lib/cjs/ConcurrentQuery.js +8 -9
  9. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  10. package/lib/cjs/MapLayerSettings.d.ts +25 -0
  11. package/lib/cjs/MapLayerSettings.d.ts.map +1 -1
  12. package/lib/cjs/MapLayerSettings.js +27 -0
  13. package/lib/cjs/MapLayerSettings.js.map +1 -1
  14. package/lib/cjs/ThematicDisplay.d.ts +27 -0
  15. package/lib/cjs/ThematicDisplay.d.ts.map +1 -1
  16. package/lib/cjs/ThematicDisplay.js +51 -18
  17. package/lib/cjs/ThematicDisplay.js.map +1 -1
  18. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +3 -0
  19. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  20. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  21. package/lib/esm/ClipStyle.d.ts +63 -1
  22. package/lib/esm/ClipStyle.d.ts.map +1 -1
  23. package/lib/esm/ClipStyle.js +74 -10
  24. package/lib/esm/ClipStyle.js.map +1 -1
  25. package/lib/esm/ConcurrentQuery.d.ts +15 -0
  26. package/lib/esm/ConcurrentQuery.d.ts.map +1 -1
  27. package/lib/esm/ConcurrentQuery.js +7 -8
  28. package/lib/esm/ConcurrentQuery.js.map +1 -1
  29. package/lib/esm/MapLayerSettings.d.ts +25 -0
  30. package/lib/esm/MapLayerSettings.d.ts.map +1 -1
  31. package/lib/esm/MapLayerSettings.js +27 -0
  32. package/lib/esm/MapLayerSettings.js.map +1 -1
  33. package/lib/esm/ThematicDisplay.d.ts +27 -0
  34. package/lib/esm/ThematicDisplay.d.ts.map +1 -1
  35. package/lib/esm/ThematicDisplay.js +50 -17
  36. package/lib/esm/ThematicDisplay.js.map +1 -1
  37. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +3 -0
  38. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  39. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  40. package/package.json +6 -7
package/CHANGELOG.md CHANGED
@@ -1,6 +1,45 @@
1
1
  # Change Log - @itwin/core-common
2
2
 
3
- This log was last generated on Tue, 10 Oct 2023 20:02:00 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 07 Dec 2023 17:43:09 GMT and should not be manually modified.
4
+
5
+ ## 4.3.0
6
+ Thu, 07 Dec 2023 17:43:09 GMT
7
+
8
+ ### Updates
9
+
10
+ - Add tests for `QueryBinder`.
11
+ - Added support for recoloring geometry intersecting a clip volume
12
+ - Custom query parameters can now be configured on map layer objects.
13
+ - Add support for transparency in thematic display gradient.
14
+
15
+ ## 4.2.4
16
+ Mon, 20 Nov 2023 16:14:45 GMT
17
+
18
+ _Version update only_
19
+
20
+ ## 4.2.3
21
+ Mon, 06 Nov 2023 14:01:52 GMT
22
+
23
+ _Version update only_
24
+
25
+ ## 4.2.2
26
+ Thu, 02 Nov 2023 15:36:20 GMT
27
+
28
+ _Version update only_
29
+
30
+ ## 4.2.1
31
+ Tue, 24 Oct 2023 15:09:13 GMT
32
+
33
+ _Version update only_
34
+
35
+ ## 4.2.0
36
+ Tue, 17 Oct 2023 15:14:32 GMT
37
+
38
+ ### Updates
39
+
40
+ - Add ECSqlExpr api
41
+ - ECSqlReader is now public
42
+ - ECSqlReader.formatCurrentRow and ECSqlReader.getRowInternal are now internal
4
43
 
5
44
  ## 4.1.9
6
45
  Tue, 10 Oct 2023 18:48:12 GMT
@@ -115,6 +154,16 @@ Mon, 22 May 2023 15:34:14 GMT
115
154
  - Add interfaces representing 3d tileset schema.
116
155
  - add Atmosphere class as a property of Environment
117
156
 
157
+ ## 3.7.17
158
+ Mon, 20 Nov 2023 18:24:23 GMT
159
+
160
+ _Version update only_
161
+
162
+ ## 3.7.16
163
+ Mon, 16 Oct 2023 12:49:07 GMT
164
+
165
+ _Version update only_
166
+
118
167
  ## 3.7.15
119
168
  Tue, 10 Oct 2023 19:58:35 GMT
120
169
 
@@ -40,6 +40,58 @@ export declare class CutStyle {
40
40
  /** Returns true if this style matches the default style - that is, it overrides none of the view's settings. */
41
41
  get matchesDefaults(): boolean;
42
42
  }
43
+ /** Wire format describing a [[ClipIntersectionStyle]].
44
+ * @see [[ClipStyleProps.ClipIntersectionStyle]].
45
+ * @public
46
+ * @extensions
47
+ */
48
+ export interface ClipIntersectionStyleProps {
49
+ /** Color to apply to intersection of geometry and clip planes, default white */
50
+ color?: RgbColorProps;
51
+ /** Number of pixels to be considered intersecting the clip plane, default 1 */
52
+ width?: number;
53
+ }
54
+ /** As part of a [[ClipStyle]], describes how to colorize geometry intersecting the clip planes.
55
+ * @note Edges are highlighted only if [[ClipStyle.ClipIntersectionStyle]] is `true`.
56
+ * @public
57
+ * @extensions
58
+ */
59
+ export declare class ClipIntersectionStyle {
60
+ /** Color to apply to intersection of geometry and clip planes, default white */
61
+ readonly color: RgbColor;
62
+ /** Number of pixels to be considered intersecting the clip plane, default 1 */
63
+ readonly width: number;
64
+ private constructor();
65
+ /** Create a highlight from its components. */
66
+ static create(color?: RgbColor, width?: number): ClipIntersectionStyle;
67
+ static readonly defaults: ClipIntersectionStyle;
68
+ static fromJSON(props?: ClipIntersectionStyleProps): ClipIntersectionStyle;
69
+ /** The JSON representation of this style. It is `undefined` if this style matches the defaults. */
70
+ toJSON(): ClipIntersectionStyleProps | undefined;
71
+ get matchesDefaults(): boolean;
72
+ }
73
+ /** Arguments supplied to [[ClipStyle.create]].
74
+ * @public
75
+ * @extensions
76
+ */
77
+ export interface ClipStyleCreateArgs {
78
+ /** If `true`, geometry will be produced at the clip planes in a 3d view.
79
+ * - Solids (closed volumes) will produce facets on the clip planes.
80
+ * - Other surfaces will produce line strings representing the edges of the surface at the clip planes.
81
+ * @note Cut geometry will only be produced for element geometry - not for, e.g., terrain or reality models.
82
+ */
83
+ produceCutGeometry?: boolean;
84
+ /** If `true`, intersection of geometry and clip planes will be colorized */
85
+ colorizeIntersection?: boolean;
86
+ /** Controls aspects of how the cut geometry is displayed, if [[produceCutGeometry]] is `true`. */
87
+ cutStyle?: CutStyle;
88
+ /** If defined, geometry inside the clip planes will be drawn in this color. */
89
+ insideColor?: RgbColor;
90
+ /** If defined, geometry outside of the clip planes will be drawn in this color instead of being clipped. */
91
+ outsideColor?: RgbColor;
92
+ /** Controls the style of the intersection of geometry and clip planes */
93
+ intersectionStyle?: ClipIntersectionStyle;
94
+ }
43
95
  /** Wire format describing a [[ClipStyle]].
44
96
  * @see [[DisplayStyleSettingsProps.clipStyle]].
45
97
  * @public
@@ -52,12 +104,16 @@ export interface ClipStyleProps {
52
104
  * @note Cut geometry will only be produced for element geometry - not for, e.g., terrain or reality models.
53
105
  */
54
106
  produceCutGeometry?: boolean;
107
+ /** If 'true', intersection of geometry and clip planes will be colorized */
108
+ colorizeIntersection?: boolean;
55
109
  /** Controls aspects of how the cut geometry is displayed, if [[produceCutGeometry]] is `true`. */
56
110
  cutStyle?: CutStyleProps;
57
111
  /** If defined, geometry inside the clip planes will be drawn in this color. */
58
112
  insideColor?: RgbColorProps;
59
113
  /** If defined, geometry outside of the clip planes will be drawn in this color instead of being clipped. */
60
114
  outsideColor?: RgbColorProps;
115
+ /** Controls the style of the intersection of geometry and clip planes */
116
+ intersectionStyle?: ClipIntersectionStyleProps;
61
117
  }
62
118
  /** Describes symbology and behavior applied to a [ClipVector]($core-geometry) when applied to a [ViewState]($frontend) or [[ModelClipGroup]].
63
119
  * @see [[DisplayStyleSettings.clipStyle]].
@@ -70,17 +126,23 @@ export declare class ClipStyle {
70
126
  * @note Cut geometry will only be produced for element geometry - not for, e.g., terrain or reality models.
71
127
  */
72
128
  readonly produceCutGeometry: boolean;
129
+ /** If 'true', intersection of geometry and clip planes will be colorized */
130
+ readonly colorizeIntersection: boolean;
73
131
  /** Controls aspects of how the cut geometry is displayed, if [[produceCutGeometry]] is `true`. */
74
132
  readonly cutStyle: CutStyle;
75
133
  /** If defined, geometry inside the clip planes will be drawn in this color. */
76
134
  readonly insideColor?: RgbColor;
77
135
  /** If defined, geometry outside of the clip planes will be drawn in this color instead of being clipped. */
78
136
  readonly outsideColor?: RgbColor;
137
+ /** Controls the style of the intersection of geometry and clip planes */
138
+ readonly intersectionStyle?: ClipIntersectionStyle;
79
139
  /** The default style, which overrides none of the view's settings. */
80
140
  static readonly defaults: ClipStyle;
81
141
  private constructor();
82
- /** Create a style from its components. */
142
+ /** @deprecated in 4.x. Use [[create(style: ClipStyleCreateArgs]] */
83
143
  static create(produceCutGeometry: boolean, cutStyle: CutStyle, insideColor?: RgbColor, outsideColor?: RgbColor): ClipStyle;
144
+ /** Create a style from its components. */
145
+ static create(style: ClipStyleCreateArgs): ClipStyle;
84
146
  static fromJSON(props?: ClipStyleProps): ClipStyle;
85
147
  /** The JSON representation of this style. It is `undefined` if this style matches the defaults. */
86
148
  toJSON(): ClipStyleProps | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ClipStyle.d.ts","sourceRoot":"","sources":["../../src/ClipStyle.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE/E;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,+FAA+F;IAC/F,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,8FAA8F;IAC9F,UAAU,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC;IACtC,qEAAqE;IACrE,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACnB,oGAAoG;IACpG,SAAgB,SAAS,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACvD,sGAAsG;IACtG,SAAgB,UAAU,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IACjD,kFAAkF;IAClF,SAAgB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/C,sHAAsH;IACtH,gBAAuB,QAAQ,WAAkB;IAEjD,OAAO;IASP,6CAA6C;WAC/B,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,iBAAiB,GAAG,QAAQ;WAO3H,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,QAAQ;IAYvD,6GAA6G;IACtG,MAAM,IAAI,aAAa,GAAG,SAAS;IAiB1C,gHAAgH;IAChH,IAAW,eAAe,IAAI,OAAO,CAKpC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kGAAkG;IAClG,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,4GAA4G;IAC5G,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB;;;;OAIG;IACH,SAAgB,kBAAkB,EAAE,OAAO,CAAC;IAC5C,kGAAkG;IAClG,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,+EAA+E;IAC/E,SAAgB,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvC,4GAA4G;IAC5G,SAAgB,YAAY,CAAC,EAAE,QAAQ,CAAC;IAExC,sEAAsE;IACtE,gBAAuB,QAAQ,YAAiE;IAEhG,OAAO;IAOP,0CAA0C;WAC5B,MAAM,CAAC,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS;WAOnH,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS;IAazD,mGAAmG;IAC5F,MAAM,IAAI,cAAc,GAAG,SAAS;IAuB3C,uHAAuH;IACvH,IAAW,eAAe,IAAI,OAAO,CAKpC;CACF"}
1
+ {"version":3,"file":"ClipStyle.d.ts","sourceRoot":"","sources":["../../src/ClipStyle.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,12 @@
7
7
  * @module Views
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.ClipStyle = exports.CutStyle = void 0;
10
+ exports.ClipStyle = exports.ClipIntersectionStyle = exports.CutStyle = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const RgbColor_1 = require("./RgbColor");
13
13
  const HiddenLine_1 = require("./HiddenLine");
14
14
  const FeatureSymbology_1 = require("./FeatureSymbology");
15
+ const ColorDef_1 = require("./ColorDef");
15
16
  /** As part of a [[ClipStyle]], describes how section-cut graphics should be displayed.
16
17
  * @note Section-cut graphics are only produced if [[ClipStyle.produceCutGeometry]] is `true`.
17
18
  * @public
@@ -64,30 +65,89 @@ class CutStyle {
64
65
  /** The default CutStyle, configured to draw the section-cut graphics using the view's settings, with no overrides. */
65
66
  CutStyle.defaults = new CutStyle();
66
67
  exports.CutStyle = CutStyle;
68
+ /** As part of a [[ClipStyle]], describes how to colorize geometry intersecting the clip planes.
69
+ * @note Edges are highlighted only if [[ClipStyle.ClipIntersectionStyle]] is `true`.
70
+ * @public
71
+ * @extensions
72
+ */
73
+ class ClipIntersectionStyle {
74
+ constructor(color = RgbColor_1.RgbColor.fromColorDef(ColorDef_1.ColorDef.white), width = 1) {
75
+ this.color = color;
76
+ this.width = width;
77
+ }
78
+ /** Create a highlight from its components. */
79
+ static create(color, width) {
80
+ if (!color && !width)
81
+ return this.defaults;
82
+ return new ClipIntersectionStyle(color, width);
83
+ }
84
+ static fromJSON(props) {
85
+ if (props === undefined) {
86
+ return ClipIntersectionStyle.defaults;
87
+ }
88
+ const color = props.color ? RgbColor_1.RgbColor.fromJSON(props.color) : RgbColor_1.RgbColor.fromColorDef(ColorDef_1.ColorDef.white);
89
+ const width = props.width ? props.width : 1;
90
+ return new ClipIntersectionStyle(color, width);
91
+ }
92
+ /** The JSON representation of this style. It is `undefined` if this style matches the defaults. */
93
+ toJSON() {
94
+ const props = {};
95
+ if (this.matchesDefaults) {
96
+ return undefined;
97
+ }
98
+ if (this.color)
99
+ props.color = this.color.toJSON();
100
+ if (this.width)
101
+ props.width = this.width;
102
+ return props;
103
+ }
104
+ get matchesDefaults() {
105
+ if (this === ClipIntersectionStyle.defaults)
106
+ return true;
107
+ return !this.color && !this.width;
108
+ }
109
+ }
110
+ ClipIntersectionStyle.defaults = new ClipIntersectionStyle();
111
+ exports.ClipIntersectionStyle = ClipIntersectionStyle;
67
112
  /** Describes symbology and behavior applied to a [ClipVector]($core-geometry) when applied to a [ViewState]($frontend) or [[ModelClipGroup]].
68
113
  * @see [[DisplayStyleSettings.clipStyle]].
69
114
  * @public
70
115
  */
71
116
  class ClipStyle {
72
- constructor(produceCutGeometry, cutStyle, inside, outside) {
117
+ constructor(produceCutGeometry, colorizeIntersection, cutStyle, inside, outside, intersectionStyle) {
73
118
  this.produceCutGeometry = produceCutGeometry;
119
+ this.colorizeIntersection = colorizeIntersection;
74
120
  this.cutStyle = cutStyle;
75
121
  this.insideColor = inside;
76
122
  this.outsideColor = outside;
123
+ this.intersectionStyle = intersectionStyle;
77
124
  }
78
- /** Create a style from its components. */
79
- static create(produceCutGeometry, cutStyle, insideColor, outsideColor) {
80
- if (!produceCutGeometry && cutStyle.matchesDefaults && !insideColor && !outsideColor)
125
+ /** @internal */
126
+ static create(styleOrProduceCutGeometry, cutStyle, insideColor, outsideColor) {
127
+ if (typeof styleOrProduceCutGeometry === "boolean") {
128
+ cutStyle = cutStyle === undefined ? CutStyle.defaults : cutStyle;
129
+ if (!styleOrProduceCutGeometry && cutStyle.matchesDefaults && !insideColor && !outsideColor) {
130
+ return this.defaults;
131
+ }
132
+ return new ClipStyle(styleOrProduceCutGeometry, false, cutStyle, insideColor, outsideColor, undefined);
133
+ }
134
+ const style = styleOrProduceCutGeometry;
135
+ if (!style.produceCutGeometry && !style.colorizeIntersection && (!style.cutStyle || style.cutStyle.matchesDefaults) && !style.insideColor && !style.outsideColor && !style.intersectionStyle)
81
136
  return this.defaults;
82
- return new ClipStyle(produceCutGeometry, cutStyle, insideColor, outsideColor);
137
+ const produceCutGeometry = style.produceCutGeometry ? true : false;
138
+ const colorizeIntersection = style.colorizeIntersection ? true : false;
139
+ cutStyle = style.cutStyle === undefined ? CutStyle.defaults : style.cutStyle;
140
+ return new ClipStyle(produceCutGeometry, colorizeIntersection, cutStyle, style.insideColor, style.outsideColor, style.intersectionStyle);
83
141
  }
84
142
  static fromJSON(props) {
85
143
  if (core_bentley_1.JsonUtils.isNonEmptyObject(props)) {
86
144
  const produceCutGeometry = props.produceCutGeometry ?? false;
145
+ const colorizeIntersection = props.colorizeIntersection ? true : false;
87
146
  const cutStyle = CutStyle.fromJSON(props.cutStyle);
88
- const inside = props.insideColor ? RgbColor_1.RgbColor.fromJSON(props.insideColor) : undefined;
89
- const outside = props.outsideColor ? RgbColor_1.RgbColor.fromJSON(props.outsideColor) : undefined;
90
- return this.create(produceCutGeometry, cutStyle, inside, outside);
147
+ const insideColor = props.insideColor ? RgbColor_1.RgbColor.fromJSON(props.insideColor) : undefined;
148
+ const outsideColor = props.outsideColor ? RgbColor_1.RgbColor.fromJSON(props.outsideColor) : undefined;
149
+ const intersectionStyle = props.intersectionStyle ? ClipIntersectionStyle.fromJSON(props.intersectionStyle) : undefined;
150
+ return this.create({ produceCutGeometry, colorizeIntersection, cutStyle, insideColor, outsideColor, intersectionStyle });
91
151
  }
92
152
  return this.defaults;
93
153
  }
@@ -98,6 +158,8 @@ class ClipStyle {
98
158
  const props = {};
99
159
  if (this.produceCutGeometry)
100
160
  props.produceCutGeometry = true;
161
+ if (this.colorizeIntersection)
162
+ props.colorizeIntersection = true;
101
163
  const cutStyle = this.cutStyle.toJSON();
102
164
  if (cutStyle) {
103
165
  (0, core_bentley_1.assert)(!this.cutStyle.matchesDefaults);
@@ -107,16 +169,18 @@ class ClipStyle {
107
169
  props.insideColor = this.insideColor.toJSON();
108
170
  if (this.outsideColor)
109
171
  props.outsideColor = this.outsideColor.toJSON();
172
+ if (this.intersectionStyle)
173
+ props.intersectionStyle = this.intersectionStyle.toJSON();
110
174
  return props;
111
175
  }
112
176
  /** Returns true if this style matches the [[ClipStyle.defaults]] - that is, it overrides no settings from the view. */
113
177
  get matchesDefaults() {
114
178
  if (this === ClipStyle.defaults)
115
179
  return true;
116
- return !this.produceCutGeometry && !this.insideColor && !this.outsideColor && this.cutStyle.matchesDefaults;
180
+ return !this.produceCutGeometry && !this.colorizeIntersection && !this.insideColor && !this.outsideColor && this.cutStyle.matchesDefaults && !this.intersectionStyle;
117
181
  }
118
182
  }
119
183
  /** The default style, which overrides none of the view's settings. */
120
- ClipStyle.defaults = new ClipStyle(false, CutStyle.defaults, undefined, undefined);
184
+ ClipStyle.defaults = new ClipStyle(false, false, CutStyle.defaults, undefined, undefined, undefined);
121
185
  exports.ClipStyle = ClipStyle;
122
186
  //# sourceMappingURL=ClipStyle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClipStyle.js","sourceRoot":"","sources":["../../src/ClipStyle.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { assert, JsonUtils } from \"@itwin/core-bentley\";\r\nimport { ViewFlagOverrides } from \"./ViewFlags\";\r\nimport { RgbColor, RgbColorProps } from \"./RgbColor\";\r\nimport { HiddenLine } from \"./HiddenLine\";\r\nimport { FeatureAppearance, FeatureAppearanceProps } from \"./FeatureSymbology\";\r\n\r\n/** Wire format describing a [[CutStyle]] applied to section-cut geometry produced at intersections with a view's [ClipVector]($core-geometry).\r\n * @see [[ClipStyleProps.cutStyle]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface CutStyleProps {\r\n /** If defined, overrides aspects of the view's [[ViewFlags]] when drawing the cut geometry. */\r\n viewflags?: ViewFlagOverrides;\r\n /** If defined, overrides the view's [[HiddenLine.Settings]] when drawing the cut geometry. */\r\n hiddenLine?: HiddenLine.SettingsProps;\r\n /** If defined, overrides aspects of the cut geometry's symbology. */\r\n appearance?: FeatureAppearanceProps;\r\n}\r\n\r\n/** As part of a [[ClipStyle]], describes how section-cut graphics should be displayed.\r\n * @note Section-cut graphics are only produced if [[ClipStyle.produceCutGeometry]] is `true`.\r\n * @public\r\n */\r\nexport class CutStyle {\r\n /** Selectively overrides some of the view's [[ViewFlags]] when drawing the section-cut graphics. */\r\n public readonly viewflags: Readonly<ViewFlagOverrides>;\r\n /** If defined, overrides the settings the view uses to draw the edges of the section-cut graphics. */\r\n public readonly hiddenLine?: HiddenLine.Settings;\r\n /** If defined, overrides aspects of the symbology of the section-cut graphics. */\r\n public readonly appearance?: FeatureAppearance;\r\n\r\n /** The default CutStyle, configured to draw the section-cut graphics using the view's settings, with no overrides. */\r\n public static readonly defaults = new CutStyle();\r\n\r\n private constructor(viewflags?: Readonly<ViewFlagOverrides>, hiddenLine?: HiddenLine.Settings, appearance?: FeatureAppearance) {\r\n this.viewflags = viewflags ?? {};\r\n if (hiddenLine && !hiddenLine.matchesDefaults)\r\n this.hiddenLine = hiddenLine;\r\n\r\n if (appearance && !appearance.matchesDefaults)\r\n this.appearance = appearance;\r\n }\r\n\r\n /** Create a CutStyle from its components. */\r\n public static create(viewflags?: Readonly<ViewFlagOverrides>, hiddenLine?: HiddenLine.Settings, appearance?: FeatureAppearance): CutStyle {\r\n if ((viewflags && JsonUtils.isNonEmptyObject(viewflags)) || (hiddenLine && !hiddenLine.matchesDefaults) || (appearance && !appearance.matchesDefaults))\r\n return new CutStyle(viewflags, hiddenLine, appearance);\r\n\r\n return this.defaults;\r\n }\r\n\r\n public static fromJSON(props?: CutStyleProps): CutStyle {\r\n if (JsonUtils.isNonEmptyObject(props)) {\r\n const viewflags = { ...props?.viewflags };\r\n const hiddenLine = props?.hiddenLine ? HiddenLine.Settings.fromJSON(props.hiddenLine) : undefined;\r\n const appearance = props?.appearance ? FeatureAppearance.fromJSON(props.appearance) : undefined;\r\n\r\n return this.create(viewflags, hiddenLine, appearance);\r\n } else {\r\n return this.defaults;\r\n }\r\n }\r\n\r\n /** Return JSON representation. The representation is `undefined` if this style matches the default style. */\r\n public toJSON(): CutStyleProps | undefined {\r\n if (this.matchesDefaults)\r\n return undefined;\r\n\r\n const props: CutStyleProps = {};\r\n if (JsonUtils.isNonEmptyObject(this.viewflags))\r\n props.viewflags = this.viewflags;\r\n\r\n if (this.hiddenLine && !this.hiddenLine.matchesDefaults)\r\n props.hiddenLine = this.hiddenLine?.toJSON();\r\n\r\n if (this.appearance && !this.appearance.matchesDefaults)\r\n props.appearance = this.appearance.toJSON();\r\n\r\n return props;\r\n }\r\n\r\n /** Returns true if this style matches the default style - that is, it overrides none of the view's settings. */\r\n public get matchesDefaults(): boolean {\r\n if (this === CutStyle.defaults)\r\n return true;\r\n\r\n return !JsonUtils.isNonEmptyObject(this.viewflags) && (!this.hiddenLine || this.hiddenLine.matchesDefaults) && (!this.appearance || this.appearance.matchesDefaults);\r\n }\r\n}\r\n\r\n/** Wire format describing a [[ClipStyle]].\r\n * @see [[DisplayStyleSettingsProps.clipStyle]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ClipStyleProps {\r\n /** If `true`, geometry will be produced at the clip planes in a 3d view.\r\n * - Solids (closed volumes) will produce facets on the clip planes.\r\n * - Other surfaces will produce line strings representing the edges of the surface at the clip planes.\r\n * @note Cut geometry will only be produced for element geometry - not for, e.g., terrain or reality models.\r\n */\r\n produceCutGeometry?: boolean;\r\n /** Controls aspects of how the cut geometry is displayed, if [[produceCutGeometry]] is `true`. */\r\n cutStyle?: CutStyleProps;\r\n /** If defined, geometry inside the clip planes will be drawn in this color. */\r\n insideColor?: RgbColorProps;\r\n /** If defined, geometry outside of the clip planes will be drawn in this color instead of being clipped. */\r\n outsideColor?: RgbColorProps;\r\n}\r\n\r\n/** Describes symbology and behavior applied to a [ClipVector]($core-geometry) when applied to a [ViewState]($frontend) or [[ModelClipGroup]].\r\n * @see [[DisplayStyleSettings.clipStyle]].\r\n * @public\r\n */\r\nexport class ClipStyle {\r\n /** If `true`, geometry will be produced at the clip planes.\r\n * - Solids (closed volumes) will produce facets on the clip planes.\r\n * - Other surfaces will produce line strings representing the edges of the surface at the clip planes.\r\n * @note Cut geometry will only be produced for element geometry - not for, e.g., terrain or reality models.\r\n */\r\n public readonly produceCutGeometry: boolean;\r\n /** Controls aspects of how the cut geometry is displayed, if [[produceCutGeometry]] is `true`. */\r\n public readonly cutStyle: CutStyle;\r\n /** If defined, geometry inside the clip planes will be drawn in this color. */\r\n public readonly insideColor?: RgbColor;\r\n /** If defined, geometry outside of the clip planes will be drawn in this color instead of being clipped. */\r\n public readonly outsideColor?: RgbColor;\r\n\r\n /** The default style, which overrides none of the view's settings. */\r\n public static readonly defaults = new ClipStyle(false, CutStyle.defaults, undefined, undefined);\r\n\r\n private constructor(produceCutGeometry: boolean, cutStyle: CutStyle, inside: RgbColor | undefined, outside: RgbColor | undefined) {\r\n this.produceCutGeometry = produceCutGeometry;\r\n this.cutStyle = cutStyle;\r\n this.insideColor = inside;\r\n this.outsideColor = outside;\r\n }\r\n\r\n /** Create a style from its components. */\r\n public static create(produceCutGeometry: boolean, cutStyle: CutStyle, insideColor?: RgbColor, outsideColor?: RgbColor): ClipStyle {\r\n if (!produceCutGeometry && cutStyle.matchesDefaults && !insideColor && !outsideColor)\r\n return this.defaults;\r\n\r\n return new ClipStyle(produceCutGeometry, cutStyle, insideColor, outsideColor);\r\n }\r\n\r\n public static fromJSON(props?: ClipStyleProps): ClipStyle {\r\n if (JsonUtils.isNonEmptyObject(props)) {\r\n const produceCutGeometry = props.produceCutGeometry ?? false;\r\n const cutStyle = CutStyle.fromJSON(props.cutStyle);\r\n const inside = props.insideColor ? RgbColor.fromJSON(props.insideColor) : undefined;\r\n const outside = props.outsideColor ? RgbColor.fromJSON(props.outsideColor) : undefined;\r\n\r\n return this.create(produceCutGeometry, cutStyle, inside, outside);\r\n }\r\n\r\n return this.defaults;\r\n }\r\n\r\n /** The JSON representation of this style. It is `undefined` if this style matches the defaults. */\r\n public toJSON(): ClipStyleProps | undefined {\r\n if (this.matchesDefaults)\r\n return undefined;\r\n\r\n const props: ClipStyleProps = {};\r\n if (this.produceCutGeometry)\r\n props.produceCutGeometry = true;\r\n\r\n const cutStyle = this.cutStyle.toJSON();\r\n if (cutStyle) {\r\n assert(!this.cutStyle.matchesDefaults);\r\n props.cutStyle = cutStyle;\r\n }\r\n\r\n if (this.insideColor)\r\n props.insideColor = this.insideColor.toJSON();\r\n\r\n if (this.outsideColor)\r\n props.outsideColor = this.outsideColor.toJSON();\r\n\r\n return props;\r\n }\r\n\r\n /** Returns true if this style matches the [[ClipStyle.defaults]] - that is, it overrides no settings from the view. */\r\n public get matchesDefaults(): boolean {\r\n if (this === ClipStyle.defaults)\r\n return true;\r\n\r\n return !this.produceCutGeometry && !this.insideColor && !this.outsideColor && this.cutStyle.matchesDefaults;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ClipStyle.js","sourceRoot":"","sources":["../../src/ClipStyle.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\nimport { assert, JsonUtils } from \"@itwin/core-bentley\";\r\nimport { ViewFlagOverrides } from \"./ViewFlags\";\r\nimport { RgbColor, RgbColorProps } from \"./RgbColor\";\r\nimport { HiddenLine } from \"./HiddenLine\";\r\nimport { FeatureAppearance, FeatureAppearanceProps } from \"./FeatureSymbology\";\r\nimport { ColorDef } from \"./ColorDef\";\r\n\r\n/** Wire format describing a [[CutStyle]] applied to section-cut geometry produced at intersections with a view's [ClipVector]($core-geometry).\r\n * @see [[ClipStyleProps.cutStyle]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface CutStyleProps {\r\n /** If defined, overrides aspects of the view's [[ViewFlags]] when drawing the cut geometry. */\r\n viewflags?: ViewFlagOverrides;\r\n /** If defined, overrides the view's [[HiddenLine.Settings]] when drawing the cut geometry. */\r\n hiddenLine?: HiddenLine.SettingsProps;\r\n /** If defined, overrides aspects of the cut geometry's symbology. */\r\n appearance?: FeatureAppearanceProps;\r\n}\r\n\r\n/** As part of a [[ClipStyle]], describes how section-cut graphics should be displayed.\r\n * @note Section-cut graphics are only produced if [[ClipStyle.produceCutGeometry]] is `true`.\r\n * @public\r\n */\r\nexport class CutStyle {\r\n /** Selectively overrides some of the view's [[ViewFlags]] when drawing the section-cut graphics. */\r\n public readonly viewflags: Readonly<ViewFlagOverrides>;\r\n /** If defined, overrides the settings the view uses to draw the edges of the section-cut graphics. */\r\n public readonly hiddenLine?: HiddenLine.Settings;\r\n /** If defined, overrides aspects of the symbology of the section-cut graphics. */\r\n public readonly appearance?: FeatureAppearance;\r\n\r\n /** The default CutStyle, configured to draw the section-cut graphics using the view's settings, with no overrides. */\r\n public static readonly defaults = new CutStyle();\r\n\r\n private constructor(viewflags?: Readonly<ViewFlagOverrides>, hiddenLine?: HiddenLine.Settings, appearance?: FeatureAppearance) {\r\n this.viewflags = viewflags ?? {};\r\n if (hiddenLine && !hiddenLine.matchesDefaults)\r\n this.hiddenLine = hiddenLine;\r\n\r\n if (appearance && !appearance.matchesDefaults)\r\n this.appearance = appearance;\r\n }\r\n\r\n /** Create a CutStyle from its components. */\r\n public static create(viewflags?: Readonly<ViewFlagOverrides>, hiddenLine?: HiddenLine.Settings, appearance?: FeatureAppearance): CutStyle {\r\n if ((viewflags && JsonUtils.isNonEmptyObject(viewflags)) || (hiddenLine && !hiddenLine.matchesDefaults) || (appearance && !appearance.matchesDefaults))\r\n return new CutStyle(viewflags, hiddenLine, appearance);\r\n\r\n return this.defaults;\r\n }\r\n\r\n public static fromJSON(props?: CutStyleProps): CutStyle {\r\n if (JsonUtils.isNonEmptyObject(props)) {\r\n const viewflags = { ...props?.viewflags };\r\n const hiddenLine = props?.hiddenLine ? HiddenLine.Settings.fromJSON(props.hiddenLine) : undefined;\r\n const appearance = props?.appearance ? FeatureAppearance.fromJSON(props.appearance) : undefined;\r\n\r\n return this.create(viewflags, hiddenLine, appearance);\r\n } else {\r\n return this.defaults;\r\n }\r\n }\r\n\r\n /** Return JSON representation. The representation is `undefined` if this style matches the default style. */\r\n public toJSON(): CutStyleProps | undefined {\r\n if (this.matchesDefaults)\r\n return undefined;\r\n\r\n const props: CutStyleProps = {};\r\n if (JsonUtils.isNonEmptyObject(this.viewflags))\r\n props.viewflags = this.viewflags;\r\n\r\n if (this.hiddenLine && !this.hiddenLine.matchesDefaults)\r\n props.hiddenLine = this.hiddenLine?.toJSON();\r\n\r\n if (this.appearance && !this.appearance.matchesDefaults)\r\n props.appearance = this.appearance.toJSON();\r\n\r\n return props;\r\n }\r\n\r\n /** Returns true if this style matches the default style - that is, it overrides none of the view's settings. */\r\n public get matchesDefaults(): boolean {\r\n if (this === CutStyle.defaults)\r\n return true;\r\n\r\n return !JsonUtils.isNonEmptyObject(this.viewflags) && (!this.hiddenLine || this.hiddenLine.matchesDefaults) && (!this.appearance || this.appearance.matchesDefaults);\r\n }\r\n}\r\n\r\n/** Wire format describing a [[ClipIntersectionStyle]].\r\n * @see [[ClipStyleProps.ClipIntersectionStyle]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ClipIntersectionStyleProps {\r\n /** Color to apply to intersection of geometry and clip planes, default white */\r\n color?: RgbColorProps;\r\n /** Number of pixels to be considered intersecting the clip plane, default 1 */\r\n width?: number;\r\n}\r\n\r\n/** As part of a [[ClipStyle]], describes how to colorize geometry intersecting the clip planes.\r\n * @note Edges are highlighted only if [[ClipStyle.ClipIntersectionStyle]] is `true`.\r\n * @public\r\n * @extensions\r\n */\r\nexport class ClipIntersectionStyle {\r\n /** Color to apply to intersection of geometry and clip planes, default white */\r\n public readonly color: RgbColor;\r\n /** Number of pixels to be considered intersecting the clip plane, default 1 */\r\n public readonly width: number;\r\n\r\n private constructor(color: RgbColor = RgbColor.fromColorDef(ColorDef.white), width: number = 1) {\r\n this.color = color;\r\n this.width = width;\r\n }\r\n /** Create a highlight from its components. */\r\n public static create(color?: RgbColor, width?: number): ClipIntersectionStyle {\r\n if (!color && !width)\r\n return this.defaults;\r\n\r\n return new ClipIntersectionStyle(color, width);\r\n }\r\n\r\n public static readonly defaults = new ClipIntersectionStyle();\r\n\r\n public static fromJSON(props?: ClipIntersectionStyleProps): ClipIntersectionStyle {\r\n if (props === undefined) {\r\n return ClipIntersectionStyle.defaults;\r\n }\r\n\r\n const color = props.color ? RgbColor.fromJSON(props.color) : RgbColor.fromColorDef(ColorDef.white);\r\n const width = props.width ? props.width : 1;\r\n return new ClipIntersectionStyle(color, width);\r\n }\r\n\r\n /** The JSON representation of this style. It is `undefined` if this style matches the defaults. */\r\n public toJSON(): ClipIntersectionStyleProps | undefined {\r\n const props: ClipIntersectionStyleProps = {};\r\n\r\n if (this.matchesDefaults) {\r\n return undefined;\r\n }\r\n\r\n if (this.color)\r\n props.color = this.color.toJSON();\r\n\r\n if (this.width)\r\n props.width = this.width;\r\n\r\n return props;\r\n }\r\n\r\n public get matchesDefaults(): boolean {\r\n if (this === ClipIntersectionStyle.defaults)\r\n return true;\r\n\r\n return !this.color && !this.width;\r\n }\r\n}\r\n\r\n/** Arguments supplied to [[ClipStyle.create]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ClipStyleCreateArgs {\r\n /** If `true`, geometry will be produced at the clip planes in a 3d view.\r\n * - Solids (closed volumes) will produce facets on the clip planes.\r\n * - Other surfaces will produce line strings representing the edges of the surface at the clip planes.\r\n * @note Cut geometry will only be produced for element geometry - not for, e.g., terrain or reality models.\r\n */\r\n produceCutGeometry?: boolean;\r\n /** If `true`, intersection of geometry and clip planes will be colorized */\r\n colorizeIntersection?: boolean;\r\n /** Controls aspects of how the cut geometry is displayed, if [[produceCutGeometry]] is `true`. */\r\n cutStyle?: CutStyle;\r\n /** If defined, geometry inside the clip planes will be drawn in this color. */\r\n insideColor?: RgbColor;\r\n /** If defined, geometry outside of the clip planes will be drawn in this color instead of being clipped. */\r\n outsideColor?: RgbColor;\r\n /** Controls the style of the intersection of geometry and clip planes */\r\n intersectionStyle?: ClipIntersectionStyle;\r\n}\r\n\r\n/** Wire format describing a [[ClipStyle]].\r\n * @see [[DisplayStyleSettingsProps.clipStyle]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ClipStyleProps {\r\n /** If `true`, geometry will be produced at the clip planes in a 3d view.\r\n * - Solids (closed volumes) will produce facets on the clip planes.\r\n * - Other surfaces will produce line strings representing the edges of the surface at the clip planes.\r\n * @note Cut geometry will only be produced for element geometry - not for, e.g., terrain or reality models.\r\n */\r\n produceCutGeometry?: boolean;\r\n /** If 'true', intersection of geometry and clip planes will be colorized */\r\n colorizeIntersection?: boolean;\r\n /** Controls aspects of how the cut geometry is displayed, if [[produceCutGeometry]] is `true`. */\r\n cutStyle?: CutStyleProps;\r\n /** If defined, geometry inside the clip planes will be drawn in this color. */\r\n insideColor?: RgbColorProps;\r\n /** If defined, geometry outside of the clip planes will be drawn in this color instead of being clipped. */\r\n outsideColor?: RgbColorProps;\r\n /** Controls the style of the intersection of geometry and clip planes */\r\n intersectionStyle?: ClipIntersectionStyleProps;\r\n}\r\n\r\n/** Describes symbology and behavior applied to a [ClipVector]($core-geometry) when applied to a [ViewState]($frontend) or [[ModelClipGroup]].\r\n * @see [[DisplayStyleSettings.clipStyle]].\r\n * @public\r\n */\r\nexport class ClipStyle {\r\n /** If `true`, geometry will be produced at the clip planes.\r\n * - Solids (closed volumes) will produce facets on the clip planes.\r\n * - Other surfaces will produce line strings representing the edges of the surface at the clip planes.\r\n * @note Cut geometry will only be produced for element geometry - not for, e.g., terrain or reality models.\r\n */\r\n public readonly produceCutGeometry: boolean;\r\n /** If 'true', intersection of geometry and clip planes will be colorized */\r\n public readonly colorizeIntersection: boolean;\r\n /** Controls aspects of how the cut geometry is displayed, if [[produceCutGeometry]] is `true`. */\r\n public readonly cutStyle: CutStyle;\r\n /** If defined, geometry inside the clip planes will be drawn in this color. */\r\n public readonly insideColor?: RgbColor;\r\n /** If defined, geometry outside of the clip planes will be drawn in this color instead of being clipped. */\r\n public readonly outsideColor?: RgbColor;\r\n /** Controls the style of the intersection of geometry and clip planes */\r\n public readonly intersectionStyle?: ClipIntersectionStyle;\r\n\r\n /** The default style, which overrides none of the view's settings. */\r\n public static readonly defaults = new ClipStyle(false, false, CutStyle.defaults, undefined, undefined, undefined);\r\n\r\n private constructor(produceCutGeometry: boolean, colorizeIntersection: boolean, cutStyle: CutStyle, inside: RgbColor | undefined, outside: RgbColor | undefined, intersectionStyle: ClipIntersectionStyle | undefined) {\r\n this.produceCutGeometry = produceCutGeometry;\r\n this.colorizeIntersection = colorizeIntersection;\r\n this.cutStyle = cutStyle;\r\n this.insideColor = inside;\r\n this.outsideColor = outside;\r\n this.intersectionStyle = intersectionStyle;\r\n }\r\n\r\n /** @deprecated in 4.x. Use [[create(style: ClipStyleCreateArgs]] */\r\n public static create(produceCutGeometry: boolean, cutStyle: CutStyle, insideColor?: RgbColor, outsideColor?: RgbColor): ClipStyle;\r\n\r\n /** Create a style from its components. */\r\n public static create(style: ClipStyleCreateArgs): ClipStyle;\r\n\r\n /** @internal */\r\n public static create(styleOrProduceCutGeometry: ClipStyleCreateArgs | boolean, cutStyle?: CutStyle, insideColor?: RgbColor, outsideColor?: RgbColor): ClipStyle {\r\n\r\n if (typeof styleOrProduceCutGeometry === \"boolean\") {\r\n cutStyle = cutStyle === undefined ? CutStyle.defaults : cutStyle;\r\n\r\n if (!styleOrProduceCutGeometry && cutStyle.matchesDefaults && !insideColor && !outsideColor) {\r\n return this.defaults;\r\n }\r\n\r\n return new ClipStyle(styleOrProduceCutGeometry, false, cutStyle, insideColor, outsideColor, undefined);\r\n }\r\n\r\n const style = styleOrProduceCutGeometry;\r\n if (!style.produceCutGeometry && !style.colorizeIntersection && (!style.cutStyle || style.cutStyle.matchesDefaults) && !style.insideColor && !style.outsideColor && !style.intersectionStyle)\r\n return this.defaults;\r\n\r\n const produceCutGeometry = style.produceCutGeometry ? true : false;\r\n const colorizeIntersection = style.colorizeIntersection ? true : false;\r\n cutStyle = style.cutStyle === undefined ? CutStyle.defaults : style.cutStyle;\r\n\r\n return new ClipStyle(produceCutGeometry, colorizeIntersection, cutStyle, style.insideColor, style.outsideColor, style.intersectionStyle);\r\n }\r\n\r\n public static fromJSON(props?: ClipStyleProps): ClipStyle {\r\n if (JsonUtils.isNonEmptyObject(props)) {\r\n const produceCutGeometry = props.produceCutGeometry ?? false;\r\n const colorizeIntersection = props.colorizeIntersection ? true : false;\r\n const cutStyle = CutStyle.fromJSON(props.cutStyle);\r\n const insideColor = props.insideColor ? RgbColor.fromJSON(props.insideColor) : undefined;\r\n const outsideColor = props.outsideColor ? RgbColor.fromJSON(props.outsideColor) : undefined;\r\n const intersectionStyle = props.intersectionStyle ? ClipIntersectionStyle.fromJSON(props.intersectionStyle) : undefined;\r\n\r\n return this.create({produceCutGeometry, colorizeIntersection, cutStyle, insideColor, outsideColor, intersectionStyle});\r\n }\r\n\r\n return this.defaults;\r\n }\r\n\r\n /** The JSON representation of this style. It is `undefined` if this style matches the defaults. */\r\n public toJSON(): ClipStyleProps | undefined {\r\n if (this.matchesDefaults)\r\n return undefined;\r\n\r\n const props: ClipStyleProps = {};\r\n if (this.produceCutGeometry)\r\n props.produceCutGeometry = true;\r\n\r\n if (this.colorizeIntersection)\r\n props.colorizeIntersection = true;\r\n\r\n const cutStyle = this.cutStyle.toJSON();\r\n if (cutStyle) {\r\n assert(!this.cutStyle.matchesDefaults);\r\n props.cutStyle = cutStyle;\r\n }\r\n\r\n if (this.insideColor)\r\n props.insideColor = this.insideColor.toJSON();\r\n\r\n if (this.outsideColor)\r\n props.outsideColor = this.outsideColor.toJSON();\r\n\r\n if (this.intersectionStyle)\r\n props.intersectionStyle = this.intersectionStyle.toJSON();\r\n\r\n return props;\r\n }\r\n\r\n /** Returns true if this style matches the [[ClipStyle.defaults]] - that is, it overrides no settings from the view. */\r\n public get matchesDefaults(): boolean {\r\n if (this === ClipStyle.defaults)\r\n return true;\r\n\r\n return !this.produceCutGeometry && !this.colorizeIntersection && !this.insideColor && !this.outsideColor && this.cutStyle.matchesDefaults && !this.intersectionStyle;\r\n }\r\n}\r\n"]}
@@ -236,6 +236,21 @@ export declare class BlobOptionsBuilder {
236
236
  */
237
237
  setDelay(val: number): this;
238
238
  }
239
+ /** @internal */
240
+ export declare enum QueryParamType {
241
+ Boolean = 0,
242
+ Double = 1,
243
+ Id = 2,
244
+ IdSet = 3,
245
+ Integer = 4,
246
+ Long = 5,
247
+ Null = 6,
248
+ Point2d = 7,
249
+ Point3d = 8,
250
+ String = 9,
251
+ Blob = 10,
252
+ Struct = 11
253
+ }
239
254
  /**
240
255
  * Bind values to an ECSQL query.
241
256
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ConcurrentQuery.d.ts","sourceRoot":"","sources":["../../src/ConcurrentQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConcurrentQuery.d.ts","sourceRoot":"","sources":["../../src/ConcurrentQuery.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DbQueryError = exports.DbValueFormat = exports.DbResponseStatus = exports.DbResponseKind = exports.DbRequestKind = exports.QueryBinder = exports.BlobOptionsBuilder = exports.QueryOptionsBuilder = exports.QueryRowFormat = void 0;
3
+ exports.DbQueryError = exports.DbValueFormat = exports.DbResponseStatus = exports.DbResponseKind = exports.DbRequestKind = exports.QueryBinder = exports.QueryParamType = exports.BlobOptionsBuilder = exports.QueryOptionsBuilder = exports.QueryRowFormat = void 0;
4
4
  /*---------------------------------------------------------------------------------------------
5
5
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
6
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -215,7 +215,7 @@ var QueryParamType;
215
215
  QueryParamType[QueryParamType["String"] = 9] = "String";
216
216
  QueryParamType[QueryParamType["Blob"] = 10] = "Blob";
217
217
  QueryParamType[QueryParamType["Struct"] = 11] = "Struct";
218
- })(QueryParamType || (QueryParamType = {}));
218
+ })(QueryParamType = exports.QueryParamType || (exports.QueryParamType = {}));
219
219
  /**
220
220
  * Bind values to an ECSQL query.
221
221
  *
@@ -252,11 +252,10 @@ class QueryBinder {
252
252
  if (typeof indexOrName === "number") {
253
253
  if (indexOrName < 1)
254
254
  throw new Error("expect index to be >= 1");
255
+ return;
255
256
  }
256
- if (typeof indexOrName === "string") {
257
- if (!/^[a-zA-Z_]+\w*$/i.test(indexOrName)) {
258
- throw new Error("expect named parameter to meet identifier specification");
259
- }
257
+ if (!/^[a-zA-Z_]+\w*$/i.test(indexOrName)) {
258
+ throw new Error("expect named parameter to meet identifier specification");
260
259
  }
261
260
  }
262
261
  /**
@@ -487,12 +486,12 @@ class QueryBinder {
487
486
  else if (val instanceof Array && val.length > 0 && typeof val[0] === "string" && core_bentley_1.Id64.isValidId64(val[0])) {
488
487
  params.bindIdSet(nameOrId, val);
489
488
  }
490
- else if (typeof val === "object" && !Array.isArray(val)) {
491
- params.bindStruct(nameOrId, val);
492
- }
493
489
  else if (typeof val === "undefined" || val === null) {
494
490
  params.bindNull(nameOrId);
495
491
  }
492
+ else if (typeof val === "object" && !Array.isArray(val)) {
493
+ params.bindStruct(nameOrId, val);
494
+ }
496
495
  else {
497
496
  throw new Error("unsupported type");
498
497
  }