@itwin/rpcinterface-full-stack-tests 5.0.0-dev.49 → 5.0.0-dev.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dist/bundled-tests.js +16 -295
- package/lib/dist/bundled-tests.js.map +1 -1
- package/package.json +14 -14
|
@@ -54357,7 +54357,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
54357
54357
|
|
|
54358
54358
|
/** Represents a texture image applied to a surface during rendering.
|
|
54359
54359
|
* A RenderTexture is typically - but not always - associated with a [[RenderMaterial]].
|
|
54360
|
-
* @see [RenderSystem.
|
|
54360
|
+
* @see [RenderSystem.createTexture]($frontend) to obtain a texture.
|
|
54361
54361
|
* @see [RenderSystem.createTextureFromElement]($frontend) to obtain a texture from a [Texture]($backend) element.
|
|
54362
54362
|
* @public
|
|
54363
54363
|
*/
|
|
@@ -90630,12 +90630,9 @@ class BriefcaseConnection extends _IModelConnection__WEBPACK_IMPORTED_MODULE_5__
|
|
|
90630
90630
|
*/
|
|
90631
90631
|
async pullChanges(toIndex, options) {
|
|
90632
90632
|
const removeListeners = [];
|
|
90633
|
-
|
|
90634
|
-
const shouldReportProgress = !!options?.progressCallback || !!options?.downloadProgressCallback;
|
|
90633
|
+
const shouldReportProgress = !!options?.downloadProgressCallback;
|
|
90635
90634
|
if (shouldReportProgress) {
|
|
90636
90635
|
const handleProgress = (_evt, data) => {
|
|
90637
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
90638
|
-
options?.progressCallback?.(data);
|
|
90639
90636
|
options?.downloadProgressCallback?.(data);
|
|
90640
90637
|
};
|
|
90641
90638
|
const removeProgressListener = _IpcApp__WEBPACK_IMPORTED_MODULE_6__.IpcApp.addListener((0,_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.getPullChangesIpcChannel)(this.iModelId), handleProgress);
|
|
@@ -96734,7 +96731,6 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
96734
96731
|
this.transientIds = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.TransientIdSequence();
|
|
96735
96732
|
/** @internal Whether GCS has been disabled for this iModelConnection. */
|
|
96736
96733
|
this._gcsDisabled = false;
|
|
96737
|
-
this._extentsExpansion = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Range3d.createNull();
|
|
96738
96734
|
/** The RPC routing for this connection. */
|
|
96739
96735
|
this.routingContext = _IModelRoutingContext__WEBPACK_IMPORTED_MODULE_6__.IModelRoutingContext.default;
|
|
96740
96736
|
/** Event raised immediately before this IModelConnection is [[close]]d.
|
|
@@ -96760,13 +96756,6 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
96760
96756
|
this.hilited = new _SelectionSet__WEBPACK_IMPORTED_MODULE_8__.HiliteSet(this);
|
|
96761
96757
|
this.tiles = new _Tiles__WEBPACK_IMPORTED_MODULE_11__.Tiles(this);
|
|
96762
96758
|
this.geoServices = _GeoServices__WEBPACK_IMPORTED_MODULE_4__.GeoServices.createForIModel(this);
|
|
96763
|
-
/* eslint-disable-next-line @typescript-eslint/no-deprecated */
|
|
96764
|
-
this.displayedExtents = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Range3d.fromJSON(this.projectExtents);
|
|
96765
|
-
this.onProjectExtentsChanged.addListener(() => {
|
|
96766
|
-
// Compute new displayed extents as the union of the ranges we previously expanded by with the new project extents.
|
|
96767
|
-
/* eslint-disable-next-line @typescript-eslint/no-deprecated */
|
|
96768
|
-
this.expandDisplayedExtents(this._extentsExpansion);
|
|
96769
|
-
});
|
|
96770
96759
|
this.hilited.onModelSubCategoryModeChanged.addListener(() => {
|
|
96771
96760
|
_IModelApp__WEBPACK_IMPORTED_MODULE_5__.IModelApp.viewManager.onSelectionSetChanged(this);
|
|
96772
96761
|
});
|
|
@@ -96817,70 +96806,6 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
96817
96806
|
async queryAllUsedSpatialSubCategories() {
|
|
96818
96807
|
return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelReadRpcInterface.getClientForRouting(this.routingContext.token).queryAllUsedSpatialSubCategories(this.getRpcProps());
|
|
96819
96808
|
}
|
|
96820
|
-
/** Execute a query and stream its results
|
|
96821
|
-
* The result of the query is async iterator over the rows. The iterator will get next page automatically once rows in current page has been read.
|
|
96822
|
-
* [ECSQL row]($docs/learning/ECSQLRowFormat).
|
|
96823
|
-
*
|
|
96824
|
-
* See also:
|
|
96825
|
-
* - [ECSQL Overview]($docs/learning/frontend/ExecutingECSQL)
|
|
96826
|
-
* - [Code Examples]($docs/learning/frontend/ECSQLCodeExamples)
|
|
96827
|
-
*
|
|
96828
|
-
* @param ecsql The ECSQL statement to execute
|
|
96829
|
-
* @param params The values to bind to the parameters (if the ECSQL has any).
|
|
96830
|
-
* @param options Allow to specify certain flags which control how query is executed.
|
|
96831
|
-
* @returns Returns the query result as an *AsyncIterableIterator<any>* which lazy load result as needed. The row format is determined by *rowFormat* parameter.
|
|
96832
|
-
* See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
|
|
96833
|
-
* @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
|
|
96834
|
-
* @deprecated in 3.7. Use [[createQueryReader]] instead; it accepts the same parameters.
|
|
96835
|
-
*/
|
|
96836
|
-
async *query(ecsql, params, options) {
|
|
96837
|
-
const builder = new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryOptionsBuilder(options);
|
|
96838
|
-
const reader = this.createQueryReader(ecsql, params, builder.getOptions());
|
|
96839
|
-
while (await reader.step())
|
|
96840
|
-
yield reader.formatCurrentRow();
|
|
96841
|
-
}
|
|
96842
|
-
/** Compute number of rows that would be returned by the ECSQL.
|
|
96843
|
-
*
|
|
96844
|
-
* See also:
|
|
96845
|
-
* - [ECSQL Overview]($docs/learning/frontend/ExecutingECSQL)
|
|
96846
|
-
* - [Code Examples]($docs/learning/frontend/ECSQLCodeExamples)
|
|
96847
|
-
*
|
|
96848
|
-
* @param ecsql The ECSQL statement to execute
|
|
96849
|
-
* @param params The values to bind to the parameters (if the ECSQL has any).
|
|
96850
|
-
* See "[iTwin.js Types used in ECSQL Parameter Bindings]($docs/learning/ECSQLParameterTypes)" for details.
|
|
96851
|
-
* @returns Return row count.
|
|
96852
|
-
* @throws [IModelError]($common) If the statement is invalid
|
|
96853
|
-
* @deprecated in 3.7. Count the number of results using `count(*)` where the original query is a subquery instead. E.g., `SELECT count(*) FROM (<query-whose-rows-to-count>)`.
|
|
96854
|
-
*/
|
|
96855
|
-
async queryRowCount(ecsql, params) {
|
|
96856
|
-
for await (const row of this.createQueryReader(`select count(*) from (${ecsql})`, params)) {
|
|
96857
|
-
return row[0];
|
|
96858
|
-
}
|
|
96859
|
-
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.DbResult.BE_SQLITE_ERROR, "Failed to get row count");
|
|
96860
|
-
}
|
|
96861
|
-
/** Cancel any previous query with same token and run execute the current specified query.
|
|
96862
|
-
* The result of the query is async iterator over the rows. The iterator will get next page automatically once rows in current page has been read.
|
|
96863
|
-
* [ECSQL row]($docs/learning/ECSQLRowFormat).
|
|
96864
|
-
*
|
|
96865
|
-
* See also:
|
|
96866
|
-
* - [ECSQL Overview]($docs/learning/frontend/ExecutingECSQL)
|
|
96867
|
-
* - [Code Examples]($docs/learning/frontend/ECSQLCodeExamples)
|
|
96868
|
-
*
|
|
96869
|
-
* @param ecsql The ECSQL statement to execute
|
|
96870
|
-
* @param token None empty restart token. The previous query with same token would be cancelled. This would cause
|
|
96871
|
-
* exception which user code must handle.
|
|
96872
|
-
* @param params The values to bind to the parameters (if the ECSQL has any).
|
|
96873
|
-
* @param options Allow to specify certain flags which control how query is executed.
|
|
96874
|
-
* @returns Returns the query result as an *AsyncIterableIterator<any>* which lazy load result as needed. The row format is determined by *rowFormat* parameter.
|
|
96875
|
-
* See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
|
|
96876
|
-
* @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
|
|
96877
|
-
* @deprecated in 3.7. Use [[createQueryReader]] instead. Pass in the restart token as part of the `config` argument; e.g., `{ restartToken: myToken }` or `new QueryOptionsBuilder().setRestartToken(myToken).getOptions()`.
|
|
96878
|
-
*/
|
|
96879
|
-
async *restartQuery(token, ecsql, params, options) {
|
|
96880
|
-
for await (const row of this.createQueryReader(ecsql, params, new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.QueryOptionsBuilder(options).setRestartToken(token).getOptions())) {
|
|
96881
|
-
yield row;
|
|
96882
|
-
}
|
|
96883
|
-
}
|
|
96884
96809
|
/** Query for a set of element ids that satisfy the supplied query params
|
|
96885
96810
|
* @param params The query parameters. The `limit` and `offset` members should be used to page results.
|
|
96886
96811
|
* @throws [IModelError]($common) If the generated statement is invalid or would return too many rows.
|
|
@@ -97110,18 +97035,6 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
97110
97035
|
}
|
|
97111
97036
|
});
|
|
97112
97037
|
}
|
|
97113
|
-
/** Expand this iModel's [[displayedExtents]] to include the specified range.
|
|
97114
|
-
* This is done automatically when reality models are added to a spatial view. In some cases a [[TiledGraphicsProvider]] may wish to expand
|
|
97115
|
-
* the extents explicitly to include its geometry.
|
|
97116
|
-
* @deprecated in 3.6. See [[displayedExtents]].
|
|
97117
|
-
*/
|
|
97118
|
-
expandDisplayedExtents(range) {
|
|
97119
|
-
this._extentsExpansion.extendRange(range);
|
|
97120
|
-
/* eslint-disable-next-line @typescript-eslint/no-deprecated */
|
|
97121
|
-
this.displayedExtents.setFrom(this.projectExtents);
|
|
97122
|
-
/* eslint-disable-next-line @typescript-eslint/no-deprecated */
|
|
97123
|
-
this.displayedExtents.extendRange(this._extentsExpansion);
|
|
97124
|
-
}
|
|
97125
97038
|
/** @internal */
|
|
97126
97039
|
getMapEcefToDb(bimElevationBias) {
|
|
97127
97040
|
if (!this.ecefLocation)
|
|
@@ -98059,10 +97972,6 @@ class IpcApp {
|
|
|
98059
97972
|
},
|
|
98060
97973
|
});
|
|
98061
97974
|
}
|
|
98062
|
-
/** @deprecated in 3.x. use [[appFunctionIpc]] */
|
|
98063
|
-
static async callIpcHost(methodName, ...args) {
|
|
98064
|
-
return this[_common_internal_Symbols__WEBPACK_IMPORTED_MODULE_3__._callIpcChannel](_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ipcAppChannels.functions, methodName, ...args);
|
|
98065
|
-
}
|
|
98066
97975
|
/** A Proxy to call one of the [IpcAppFunctions]($common) functions via IPC. */
|
|
98067
97976
|
static { this.appFunctionIpc = IpcApp.makeIpcProxy(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ipcAppChannels.functions); }
|
|
98068
97977
|
/** start an IpcApp.
|
|
@@ -99077,7 +98986,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
99077
98986
|
/* harmony import */ var _common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./common/FrontendLoggerCategory */ "../../core/frontend/lib/esm/common/FrontendLoggerCategory.js");
|
|
99078
98987
|
/* harmony import */ var _IpcApp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./IpcApp */ "../../core/frontend/lib/esm/IpcApp.js");
|
|
99079
98988
|
/* harmony import */ var _NativeAppLogger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NativeAppLogger */ "../../core/frontend/lib/esm/NativeAppLogger.js");
|
|
99080
|
-
/* harmony import */ var _common_internal_Symbols__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./common/internal/Symbols */ "../../core/frontend/lib/esm/common/internal/Symbols.js");
|
|
99081
98989
|
/*---------------------------------------------------------------------------------------------
|
|
99082
98990
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
99083
98991
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -99090,7 +98998,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
99090
98998
|
|
|
99091
98999
|
|
|
99092
99000
|
|
|
99093
|
-
|
|
99094
99001
|
/** NativeApp notifications from backend */
|
|
99095
99002
|
class NativeAppNotifyHandler extends _IpcApp__WEBPACK_IMPORTED_MODULE_3__.NotificationHandler {
|
|
99096
99003
|
get channelName() { return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.nativeAppIpcStrings.notifyChannel; }
|
|
@@ -99105,10 +99012,6 @@ class NativeAppNotifyHandler extends _IpcApp__WEBPACK_IMPORTED_MODULE_3__.Notifi
|
|
|
99105
99012
|
* @public
|
|
99106
99013
|
*/
|
|
99107
99014
|
class NativeApp {
|
|
99108
|
-
/** @deprecated in 3.x. use nativeAppIpc */
|
|
99109
|
-
static async callNativeHost(methodName, ...args) {
|
|
99110
|
-
return _IpcApp__WEBPACK_IMPORTED_MODULE_3__.IpcApp[_common_internal_Symbols__WEBPACK_IMPORTED_MODULE_5__._callIpcChannel](_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.nativeAppIpcStrings.channelName, methodName, ...args);
|
|
99111
|
-
}
|
|
99112
99015
|
/** A Proxy to call one of the [NativeAppFunctions]($common) functions via IPC. */
|
|
99113
99016
|
static { this.nativeAppIpc = _IpcApp__WEBPACK_IMPORTED_MODULE_3__.IpcApp.makeIpcProxy(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.nativeAppIpcStrings.channelName); }
|
|
99114
99017
|
static { this._storages = new Map(); }
|
|
@@ -99169,12 +99072,11 @@ class NativeApp {
|
|
|
99169
99072
|
await _IpcApp__WEBPACK_IMPORTED_MODULE_3__.IpcApp.shutdown();
|
|
99170
99073
|
this._isValid = false;
|
|
99171
99074
|
}
|
|
99172
|
-
static async requestDownloadBriefcase(iTwinId, iModelId, downloadOptions, asOf = _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelVersion.latest()
|
|
99173
|
-
const shouldReportProgress = !!
|
|
99075
|
+
static async requestDownloadBriefcase(iTwinId, iModelId, downloadOptions, asOf = _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelVersion.latest()) {
|
|
99076
|
+
const shouldReportProgress = !!downloadOptions.progressCallback;
|
|
99174
99077
|
let stopProgressEvents = () => { };
|
|
99175
99078
|
if (shouldReportProgress) {
|
|
99176
99079
|
const handleProgress = (_evt, data) => {
|
|
99177
|
-
progress?.(data);
|
|
99178
99080
|
downloadOptions.progressCallback?.(data);
|
|
99179
99081
|
};
|
|
99180
99082
|
stopProgressEvents = _IpcApp__WEBPACK_IMPORTED_MODULE_3__.IpcApp.addListener(`nativeApp.progress-${iModelId}`, handleProgress);
|
|
@@ -102563,16 +102465,6 @@ class SpatialViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_6__.ViewState
|
|
|
102563
102465
|
markModelSelectorChanged() {
|
|
102564
102466
|
this._treeRefs.update();
|
|
102565
102467
|
}
|
|
102566
|
-
/** Get world-space viewed extents based on the iModel's project extents.
|
|
102567
|
-
* @deprecated in 3.6. These extents are based on [[IModelConnection.displayedExtents]], which is deprecated. Consider using [[computeFitRange]] or [[getViewedExtents]] instead.
|
|
102568
|
-
*/
|
|
102569
|
-
getDisplayedExtents() {
|
|
102570
|
-
/* eslint-disable-next-line @typescript-eslint/no-deprecated */
|
|
102571
|
-
const extents = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.fromJSON(this.iModel.displayedExtents);
|
|
102572
|
-
extents.scaleAboutCenterInPlace(1.0001); // projectExtents. lying smack up against the extents is not excluded by frustum...
|
|
102573
|
-
extents.extendRange(this.getGroundExtents());
|
|
102574
|
-
return extents;
|
|
102575
|
-
}
|
|
102576
102468
|
computeBaseExtents() {
|
|
102577
102469
|
const extents = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.fromJSON(this.iModel.projectExtents);
|
|
102578
102470
|
// Ensure geometry coincident with planes of the project extents is not clipped.
|
|
@@ -110097,18 +109989,6 @@ class Viewport {
|
|
|
110097
109989
|
return false; // Reality Models not selectable
|
|
110098
109990
|
return (0 === this.mapLayerFromIds(pixel.modelId, pixel.elementId).length); // Maps no selectable.
|
|
110099
109991
|
}
|
|
110100
|
-
/** Read the current image from this viewport from the rendering system. If a "null" rectangle is supplied (@see [[ViewRect.isNull]]), the entire view is captured.
|
|
110101
|
-
* @param rect The area of the view to read. The origin of a viewRect must specify the upper left corner.
|
|
110102
|
-
* @param targetSize The size of the image to be returned. The size can be larger or smaller than the original view.
|
|
110103
|
-
* @param flipVertically If true, the image is flipped along the x-axis.
|
|
110104
|
-
* @returns The contents of the viewport within the specified rectangle as a bitmap image, or undefined if the image could not be read.
|
|
110105
|
-
* @note By default the image is returned with the coordinate (0,0) referring to the bottom-most pixel. Pass `true` for `flipVertically` to flip it along the x-axis.
|
|
110106
|
-
* @deprecated in 3.x. Use readImageBuffer.
|
|
110107
|
-
*/
|
|
110108
|
-
readImage(rect = new _common_ViewRect__WEBPACK_IMPORTED_MODULE_27__.ViewRect(1, 1, 0, 0), targetSize = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.createZero(), flipVertically = false) {
|
|
110109
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
110110
|
-
return this.target.readImage(rect, targetSize, flipVertically);
|
|
110111
|
-
}
|
|
110112
109992
|
/** Capture the image currently rendered in this viewport, or a subset thereof.
|
|
110113
109993
|
* @param args Describes the region to capture and optional resizing. By default the entire image is captured with no resizing.
|
|
110114
109994
|
* @returns The image, or `undefined` if the specified capture rect is not fully contained in [[viewRect], a 2d context could not be obtained, or the resultant image consists entirely
|
|
@@ -110565,14 +110445,6 @@ class ScreenViewport extends Viewport {
|
|
|
110565
110445
|
mouseMovementFromEvent(ev) {
|
|
110566
110446
|
return { x: ev.movementX, y: ev.movementY };
|
|
110567
110447
|
}
|
|
110568
|
-
/** Set the event controller for this Viewport. Destroys previous controller, if one was defined.
|
|
110569
|
-
* @deprecated in 3.x. this was intended for internal use only.
|
|
110570
|
-
*/
|
|
110571
|
-
setEventController(controller) {
|
|
110572
|
-
if (this._evController)
|
|
110573
|
-
this._evController.destroy();
|
|
110574
|
-
this._evController = controller;
|
|
110575
|
-
}
|
|
110576
110448
|
/** Invoked by ViewManager.addViewport.
|
|
110577
110449
|
* @internal
|
|
110578
110450
|
*/
|
|
@@ -123081,13 +122953,6 @@ class GraphicBuilder extends _common_render_GraphicAssembler__WEBPACK_IMPORTED_M
|
|
|
123081
122953
|
return pixelSize * 0.25;
|
|
123082
122954
|
};
|
|
123083
122955
|
}
|
|
123084
|
-
/** The Id to be associated with the graphic for picking.
|
|
123085
|
-
* @see [[GraphicBuilderOptions.pickable]] for more options.
|
|
123086
|
-
* @deprecated in 3.x. This provides only the **first** pickable Id for this graphic - you should keep track of the **current** pickable Id yourself.
|
|
123087
|
-
*/
|
|
123088
|
-
get pickId() {
|
|
123089
|
-
return this.pickable?.id;
|
|
123090
|
-
}
|
|
123091
122956
|
}
|
|
123092
122957
|
|
|
123093
122958
|
|
|
@@ -124713,16 +124578,6 @@ class RenderSystem {
|
|
|
124713
124578
|
* @returns A previously-created material matching the specified ID, or undefined if no such material exists.
|
|
124714
124579
|
*/
|
|
124715
124580
|
findMaterial(_key, _imodel) { return undefined; }
|
|
124716
|
-
/** Create a [RenderMaterial]($common) from parameters
|
|
124717
|
-
* If the parameters include a non-empty key, and no previously-created material already exists with that key, the newly-created material will be cached on the IModelConnection such
|
|
124718
|
-
* that it can later be retrieved by the same key using [[RenderSystem.findMaterial]].
|
|
124719
|
-
* @param _params A description of the material's properties.
|
|
124720
|
-
* @param _imodel The IModelConnection associated with the material.
|
|
124721
|
-
* @returns the newly-created material, or undefined if the material could not be created or if a material with the same key as that specified in the params already exists.
|
|
124722
|
-
* @deprecated in 3.x. Use [[createRenderMaterial]].
|
|
124723
|
-
*/
|
|
124724
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
124725
|
-
createMaterial(_params, _imodel) { return undefined; }
|
|
124726
124581
|
/** Create a [RenderMaterial]($common).
|
|
124727
124582
|
* @see [[CreateRenderMaterialArgs]] for a description of the material parameters.
|
|
124728
124583
|
*/
|
|
@@ -125003,49 +124858,6 @@ class RenderSystem {
|
|
|
125003
124858
|
getGradientTexture(_symb, _imodel) {
|
|
125004
124859
|
return undefined;
|
|
125005
124860
|
}
|
|
125006
|
-
/** Create a new texture from an [[ImageBuffer]].
|
|
125007
|
-
* @deprecated in 3.x. Use [[createTexture]].
|
|
125008
|
-
*/
|
|
125009
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
125010
|
-
createTextureFromImageBuffer(image, iModel, params) {
|
|
125011
|
-
const ownership = params.key ? { key: params.key, iModel } : (params.isOwned ? "external" : undefined);
|
|
125012
|
-
return this.createTexture({
|
|
125013
|
-
type: params.type,
|
|
125014
|
-
ownership,
|
|
125015
|
-
image: {
|
|
125016
|
-
source: image,
|
|
125017
|
-
transparency: _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ImageBufferFormat.Rgba === image.format ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.TextureTransparency.Mixed : _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.TextureTransparency.Opaque,
|
|
125018
|
-
},
|
|
125019
|
-
});
|
|
125020
|
-
}
|
|
125021
|
-
/** Create a new texture from an HTML image. Typically the image was extracted from a binary representation of a jpeg or png via [[imageElementFromImageSource]].
|
|
125022
|
-
* @deprecated in 3.x. Use [[createTexture]].
|
|
125023
|
-
*/
|
|
125024
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
125025
|
-
createTextureFromImage(image, hasAlpha, iModel, params) {
|
|
125026
|
-
const ownership = params.key && iModel ? { key: params.key, iModel } : (params.isOwned ? "external" : undefined);
|
|
125027
|
-
return this.createTexture({
|
|
125028
|
-
type: params.type,
|
|
125029
|
-
ownership,
|
|
125030
|
-
image: {
|
|
125031
|
-
source: image,
|
|
125032
|
-
transparency: hasAlpha ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.TextureTransparency.Mixed : _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.TextureTransparency.Opaque,
|
|
125033
|
-
},
|
|
125034
|
-
});
|
|
125035
|
-
}
|
|
125036
|
-
/** Create a new texture from an ImageSource.
|
|
125037
|
-
* @deprecated in 3.x. Use RenderSystem.createTextureFromSource.
|
|
125038
|
-
*/
|
|
125039
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
125040
|
-
async createTextureFromImageSource(source, iModel, params) {
|
|
125041
|
-
const ownership = iModel && params.key ? { iModel, key: params.key } : (params.isOwned ? "external" : undefined);
|
|
125042
|
-
return this.createTextureFromSource({
|
|
125043
|
-
type: params.type,
|
|
125044
|
-
source,
|
|
125045
|
-
ownership,
|
|
125046
|
-
transparency: source.format === _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.ImageSourceFormat.Jpeg ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.TextureTransparency.Opaque : _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.TextureTransparency.Mixed,
|
|
125047
|
-
});
|
|
125048
|
-
}
|
|
125049
124861
|
/** Create a texture from an ImageSource. */
|
|
125050
124862
|
async createTextureFromSource(args) {
|
|
125051
124863
|
try {
|
|
@@ -125290,10 +125102,6 @@ class RenderTarget {
|
|
|
125290
125102
|
onBeforeRender(_viewport, _setSceneNeedRedraw) { }
|
|
125291
125103
|
/** @internal */
|
|
125292
125104
|
onResized() { }
|
|
125293
|
-
/** @deprecated in 3.x. use readImageBuffer
|
|
125294
|
-
* @internal
|
|
125295
|
-
*/
|
|
125296
|
-
readImage(_rect, _targetSize, _flipVertically) { return undefined; }
|
|
125297
125105
|
/** @internal */
|
|
125298
125106
|
readImageBuffer(_args) { return undefined; }
|
|
125299
125107
|
/** @internal */
|
|
@@ -142306,13 +142114,6 @@ class System extends _RenderSystem__WEBPACK_IMPORTED_MODULE_9__.RenderSystem {
|
|
|
142306
142114
|
(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.dispose)(idMap);
|
|
142307
142115
|
this.resourceCache.delete(imodel);
|
|
142308
142116
|
}
|
|
142309
|
-
/** Attempt to create a material for the given iModel using a set of material parameters. */
|
|
142310
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
142311
|
-
createMaterial(params, imodel) {
|
|
142312
|
-
const idMap = this.getIdMap(imodel);
|
|
142313
|
-
const material = idMap.getMaterial(params);
|
|
142314
|
-
return material;
|
|
142315
|
-
}
|
|
142316
142117
|
createRenderMaterial(args) {
|
|
142317
142118
|
if (args.source) {
|
|
142318
142119
|
const cached = this.findMaterial(args.source.id, args.source.iModel);
|
|
@@ -143422,79 +143223,6 @@ class Target extends _RenderTarget__WEBPACK_IMPORTED_MODULE_7__.RenderTarget {
|
|
|
143422
143223
|
const bestRatio = Math.min(widthRatio, heightRatio);
|
|
143423
143224
|
return new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d(curSize.x * bestRatio, curSize.y * bestRatio);
|
|
143424
143225
|
}
|
|
143425
|
-
/** wantRectIn is in CSS pixels. Output ImageBuffer will be in device pixels.
|
|
143426
|
-
* If wantRect is null, that means "read the entire image".
|
|
143427
|
-
*/
|
|
143428
|
-
readImage(wantRectIn, targetSizeIn, flipVertically) {
|
|
143429
|
-
if (!this.assignDC())
|
|
143430
|
-
return undefined;
|
|
143431
|
-
// Determine capture rect and validate
|
|
143432
|
-
const actualViewRect = this.renderRect; // already has device pixel ratio applied
|
|
143433
|
-
const wantRect = wantRectIn.isNull ? actualViewRect : this.cssViewRectToDeviceViewRect(wantRectIn);
|
|
143434
|
-
const lowerRight = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(wantRect.right - 1, wantRect.bottom - 1);
|
|
143435
|
-
if (!actualViewRect.containsPoint(_itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d.create(wantRect.left, wantRect.top)) || !actualViewRect.containsPoint(lowerRight))
|
|
143436
|
-
return undefined;
|
|
143437
|
-
// Read pixels. Note ViewRect thinks (0,0) = top-left. gl.readPixels expects (0,0) = bottom-left.
|
|
143438
|
-
const bytesPerPixel = 4;
|
|
143439
|
-
const imageData = new Uint8Array(bytesPerPixel * wantRect.width * wantRect.height);
|
|
143440
|
-
const isValidImageData = this.readImagePixels(imageData, wantRect.left, wantRect.top, wantRect.width, wantRect.height);
|
|
143441
|
-
if (!isValidImageData)
|
|
143442
|
-
return undefined;
|
|
143443
|
-
let image = _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ImageBuffer.create(imageData, _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.ImageBufferFormat.Rgba, wantRect.width);
|
|
143444
|
-
if (!image)
|
|
143445
|
-
return undefined;
|
|
143446
|
-
const targetSize = targetSizeIn.clone();
|
|
143447
|
-
if (targetSize.x === 0 || targetSize.y === 0) { // Indicates image should have same dimensions as rect (no scaling)
|
|
143448
|
-
targetSize.x = wantRect.width;
|
|
143449
|
-
targetSize.y = wantRect.height;
|
|
143450
|
-
}
|
|
143451
|
-
if (targetSize.x === wantRect.width && targetSize.y === wantRect.height) {
|
|
143452
|
-
// No need to scale image.
|
|
143453
|
-
// Some callers want background pixels to be treated as fully-transparent
|
|
143454
|
-
// They indicate this by supplying a background color with full transparency
|
|
143455
|
-
// Any other pixels are treated as fully-opaque as alpha has already been blended
|
|
143456
|
-
// ###TODO: This introduces a defect in that we are not preserving alpha of translucent pixels, and therefore the returned image cannot be blended
|
|
143457
|
-
const preserveBGAlpha = 0.0 === this.uniforms.style.backgroundAlpha;
|
|
143458
|
-
// Optimization for view attachments: if image consists entirely of background pixels, return an undefined
|
|
143459
|
-
let isEmptyImage = true;
|
|
143460
|
-
for (let i = 3; i < image.data.length; i += 4) {
|
|
143461
|
-
const a = image.data[i];
|
|
143462
|
-
if (!preserveBGAlpha || 0 < a) {
|
|
143463
|
-
image.data[i] = 0xff;
|
|
143464
|
-
isEmptyImage = false;
|
|
143465
|
-
}
|
|
143466
|
-
}
|
|
143467
|
-
if (isEmptyImage)
|
|
143468
|
-
return undefined;
|
|
143469
|
-
}
|
|
143470
|
-
else {
|
|
143471
|
-
// Need to scale image.
|
|
143472
|
-
const canvas = (0,_common_ImageUtil__WEBPACK_IMPORTED_MODULE_4__.imageBufferToCanvas)(image, false); // retrieve a canvas of the image we read, throwing away alpha channel.
|
|
143473
|
-
if (undefined === canvas)
|
|
143474
|
-
return undefined;
|
|
143475
|
-
const adjustedTargetSize = Target._applyAspectRatioCorrection(new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d(wantRect.width, wantRect.height), targetSize);
|
|
143476
|
-
const resizedCanvas = (0,_common_ImageUtil__WEBPACK_IMPORTED_MODULE_4__.canvasToResizedCanvasWithBars)(canvas, adjustedTargetSize, new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Point2d(targetSize.x - adjustedTargetSize.x, targetSize.y - adjustedTargetSize.y), this.uniforms.style.backgroundHexString);
|
|
143477
|
-
const resizedImage = (0,_common_ImageUtil__WEBPACK_IMPORTED_MODULE_4__.canvasToImageBuffer)(resizedCanvas);
|
|
143478
|
-
if (undefined !== resizedImage)
|
|
143479
|
-
image = resizedImage;
|
|
143480
|
-
}
|
|
143481
|
-
if (flipVertically) {
|
|
143482
|
-
const halfHeight = Math.floor(image.height / 2);
|
|
143483
|
-
const numBytesPerRow = image.width * 4;
|
|
143484
|
-
for (let loY = 0; loY < halfHeight; loY++) {
|
|
143485
|
-
for (let x = 0; x < image.width; x++) {
|
|
143486
|
-
const hiY = (image.height - 1) - loY;
|
|
143487
|
-
const loIdx = loY * numBytesPerRow + x * 4;
|
|
143488
|
-
const hiIdx = hiY * numBytesPerRow + x * 4;
|
|
143489
|
-
swapImageByte(image, loIdx, hiIdx);
|
|
143490
|
-
swapImageByte(image, loIdx + 1, hiIdx + 1);
|
|
143491
|
-
swapImageByte(image, loIdx + 2, hiIdx + 2);
|
|
143492
|
-
swapImageByte(image, loIdx + 3, hiIdx + 3);
|
|
143493
|
-
}
|
|
143494
|
-
}
|
|
143495
|
-
}
|
|
143496
|
-
return image;
|
|
143497
|
-
}
|
|
143498
143226
|
readImageBuffer(args) {
|
|
143499
143227
|
if (!this.assignDC())
|
|
143500
143228
|
return undefined;
|
|
@@ -159626,8 +159354,13 @@ function getMaterial(mat, options) {
|
|
|
159626
159354
|
params.ambient = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.JsonUtils.asDouble(json.ambient);
|
|
159627
159355
|
if (undefined !== json.textureMapping)
|
|
159628
159356
|
params.textureMapping = textureMappingFromJson(json.textureMapping.texture, options);
|
|
159629
|
-
|
|
159630
|
-
|
|
159357
|
+
return options.system.createRenderMaterial({
|
|
159358
|
+
diffuse: { color: params.diffuseColor, weight: params.diffuse },
|
|
159359
|
+
specular: { color: params.specularColor, weight: params.specular, exponent: params.specularExponent },
|
|
159360
|
+
alpha: params.alpha,
|
|
159361
|
+
textureMapping: params.textureMapping
|
|
159362
|
+
});
|
|
159363
|
+
;
|
|
159631
159364
|
}
|
|
159632
159365
|
function getModifiers(primitive) {
|
|
159633
159366
|
const mod = primitive.modifier;
|
|
@@ -160926,9 +160659,6 @@ class OrbitGtTileTree extends _internal__WEBPACK_IMPORTED_MODULE_9__.TileTree {
|
|
|
160926
160659
|
this._ecefTransform = _ecefTransform;
|
|
160927
160660
|
this.viewFlagOverrides = {};
|
|
160928
160661
|
this._tileGraphics = new Map();
|
|
160929
|
-
const worldContentRange = this.iModelTransform.multiplyRange(cloudRange);
|
|
160930
|
-
/* eslint-disable-next-line @typescript-eslint/no-deprecated */
|
|
160931
|
-
this.iModel.expandDisplayedExtents(worldContentRange);
|
|
160932
160662
|
this._tileParams = { contentId: "0", range: cloudRange, maximumSize: 256 };
|
|
160933
160663
|
this.rootTile = new OrbitGtRootTile(this._tileParams, this);
|
|
160934
160664
|
}
|
|
@@ -162482,11 +162212,6 @@ class RealityModelTileTree extends _internal__WEBPACK_IMPORTED_MODULE_8__.Realit
|
|
|
162482
162212
|
constructor(params) {
|
|
162483
162213
|
super(params);
|
|
162484
162214
|
this._isContentUnbounded = this.rootTile.contentRange.diagonal().magnitude() > 2 * _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Constant.earthRadiusWGS84.equator;
|
|
162485
|
-
if (!this.isContentUnbounded && !this.rootTile.contentRange.isNull) {
|
|
162486
|
-
const worldContentRange = this.iModelTransform.multiplyRange(this.rootTile.contentRange);
|
|
162487
|
-
/* eslint-disable-next-line @typescript-eslint/no-deprecated */
|
|
162488
|
-
this.iModel.expandDisplayedExtents(worldContentRange);
|
|
162489
|
-
}
|
|
162490
162215
|
}
|
|
162491
162216
|
get isContentUnbounded() { return this._isContentUnbounded; }
|
|
162492
162217
|
}
|
|
@@ -177754,8 +177479,6 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
|
|
|
177754
177479
|
button: {
|
|
177755
177480
|
/** Background color of locked buttons. */
|
|
177756
177481
|
pressedColor: "rgba(50, 50, 50, 0.75)",
|
|
177757
|
-
/** Padding to use on left and right of label and affects overall width. */
|
|
177758
|
-
padding: "0.25em",
|
|
177759
177482
|
/** Margin to use on left and right to position relative to text input field. */
|
|
177760
177483
|
margin: "0.25em",
|
|
177761
177484
|
/** Width of border outline. */
|
|
@@ -178203,7 +177926,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
|
|
|
178203
177926
|
this.initializeItemStyle(style, true);
|
|
178204
177927
|
this.updateItemFieldLock(itemLock, item);
|
|
178205
177928
|
const button = AccuDrawViewportUI.controlProps.button;
|
|
178206
|
-
style.paddingLeft = style.paddingRight =
|
|
177929
|
+
style.paddingLeft = style.paddingRight = "0";
|
|
178207
177930
|
style.marginLeft = style.marginRight = button.margin;
|
|
178208
177931
|
style.outlineWidth = button.outlineWidth;
|
|
178209
177932
|
return itemLock;
|
|
@@ -178259,11 +177982,9 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
|
|
|
178259
177982
|
const itemLock = itemLocks[item] = this.createItemFieldLock(item);
|
|
178260
177983
|
itemLock.style.top = itemField.style.top;
|
|
178261
177984
|
itemLock.style.left = isHorizontalLayout ? `${columnOffset + itemWidth}px` : `${itemWidth}px`;
|
|
177985
|
+
itemLock.style.width = itemLock.style.height = `${itemHeight}px`; // Make square of same height as text field...
|
|
178262
177986
|
div.appendChild(itemLock);
|
|
178263
|
-
|
|
178264
|
-
lockWidth = itemLock.offsetWidth;
|
|
178265
|
-
else
|
|
178266
|
-
itemLock.style.width = `${lockWidth}px`;
|
|
177987
|
+
lockWidth = itemLock.offsetWidth;
|
|
178267
177988
|
if (is3dLayout || _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item !== item)
|
|
178268
177989
|
columnOffset += (itemWidth + lockWidth) * AccuDrawViewportUI.controlProps.columnSpacingFactor;
|
|
178269
177990
|
};
|
|
@@ -306567,7 +306288,7 @@ class TestContext {
|
|
|
306567
306288
|
this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
|
|
306568
306289
|
const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
|
|
306569
306290
|
await core_frontend_1.NoRenderApp.startup({
|
|
306570
|
-
applicationVersion: "5.0.0-dev.
|
|
306291
|
+
applicationVersion: "5.0.0-dev.50",
|
|
306571
306292
|
applicationId: this.settings.gprid,
|
|
306572
306293
|
authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.serviceAuthToken),
|
|
306573
306294
|
hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
|
|
@@ -333177,7 +332898,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
|
|
|
333177
332898
|
/***/ ((module) => {
|
|
333178
332899
|
|
|
333179
332900
|
"use strict";
|
|
333180
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.0.0-dev.
|
|
332901
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.0.0-dev.50","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run --coverage","test:debug":"vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/eslint-plugin":"5.0.0-dev.1","@types/chai-as-promised":"^7","@vitest/browser":"^2.1.0","@vitest/coverage-v8":"^2.1.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","cpx2":"^3.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^3.0.2","source-map-loader":"^4.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^2.1.0","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"1.0.6","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.2.5","@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
|
|
333181
332902
|
|
|
333182
332903
|
/***/ }),
|
|
333183
332904
|
|