@esri/hub-common 9.25.4 → 9.25.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es2017/content/_internal.js +72 -13
- package/dist/es2017/content/_internal.js.map +1 -1
- package/dist/es2017/content/compose.js +27 -23
- package/dist/es2017/content/compose.js.map +1 -1
- package/dist/es2017/content/fetch.js +25 -5
- package/dist/es2017/content/fetch.js.map +1 -1
- package/dist/esm/content/_internal.js +72 -13
- package/dist/esm/content/_internal.js.map +1 -1
- package/dist/esm/content/compose.js +27 -23
- package/dist/esm/content/compose.js.map +1 -1
- package/dist/esm/content/fetch.js +29 -11
- package/dist/esm/content/fetch.js.map +1 -1
- package/dist/node/content/_internal.js +71 -12
- package/dist/node/content/_internal.js.map +1 -1
- package/dist/node/content/compose.js +26 -22
- package/dist/node/content/compose.js.map +1 -1
- package/dist/node/content/fetch.js +23 -3
- package/dist/node/content/fetch.js.map +1 -1
- package/dist/types/content/_internal.d.ts +30 -13
- package/dist/umd/common.umd.js +144 -42
- package/dist/umd/common.umd.js.map +1 -1
- package/dist/umd/common.umd.min.js +1 -1
- package/dist/umd/common.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -14,8 +14,22 @@ const compose_1 = require("./compose");
|
|
|
14
14
|
const hasFeatures = (contentType) => ["Feature Layer", "Table"].includes(contentType);
|
|
15
15
|
const maybeFetchLayerEnrichments = async (itemAndEnrichments, options) => {
|
|
16
16
|
// determine if this is a client-side feature layer view
|
|
17
|
-
const { item, data
|
|
18
|
-
|
|
17
|
+
const { item, data } = itemAndEnrichments;
|
|
18
|
+
let { layers } = itemAndEnrichments;
|
|
19
|
+
let layer = layers && compose_1.getItemLayer(item, layers, options && options.layerId);
|
|
20
|
+
// TODO: Remove once we stop supporting ArcGIS Servers below version 10.5.
|
|
21
|
+
// The /layers endpoint of some earlier servers return layers and tables
|
|
22
|
+
// without certain critical properties, such as type. If this is the case,
|
|
23
|
+
// fetch the fully hydrated target layer and stab it onto the layers array.
|
|
24
|
+
// See https://devtopia.esri.com/dc/hub/issues/3488 for more details
|
|
25
|
+
if (layer && !layer.type) {
|
|
26
|
+
const layerUrl = arcgis_rest_feature_layer_1.parseServiceUrl(item.url) + "/" + layer.id;
|
|
27
|
+
const getLayerOptions = Object.assign({ url: layerUrl }, options); // works whether options is defined or not
|
|
28
|
+
layer = await arcgis_rest_feature_layer_1.getLayer(getLayerOptions);
|
|
29
|
+
layers = layers.map((unhydratedLayer) => {
|
|
30
|
+
return unhydratedLayer.id === layer.id ? layer : unhydratedLayer;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
19
33
|
// TODO: add recordCount here too?
|
|
20
34
|
const layerEnrichments = layer && compose_1.isLayerView(layer) && !data
|
|
21
35
|
? // NOTE: I'm not sure what conditions causes a layer view
|
|
@@ -26,11 +40,17 @@ const maybeFetchLayerEnrichments = async (itemAndEnrichments, options) => {
|
|
|
26
40
|
: undefined;
|
|
27
41
|
return Object.assign(Object.assign(Object.assign({}, itemAndEnrichments), layerEnrichments), {
|
|
28
42
|
// merge error arrays
|
|
29
|
-
errors: _array_1.maybeConcat([itemAndEnrichments.errors, layerEnrichments === null || layerEnrichments === void 0 ? void 0 : layerEnrichments.errors])
|
|
43
|
+
errors: _array_1.maybeConcat([itemAndEnrichments.errors, layerEnrichments === null || layerEnrichments === void 0 ? void 0 : layerEnrichments.errors]),
|
|
44
|
+
// Also remove once we stop supporting ArcGIS Servers below version 10.5
|
|
45
|
+
layers });
|
|
30
46
|
};
|
|
31
47
|
const fetchItemAndEnrichments = async (itemId, options) => {
|
|
32
48
|
// fetch the item
|
|
33
49
|
const item = await arcgis_rest_portal_1.getItem(itemId, options);
|
|
50
|
+
// The Hub Application expects the item url of proxied CSVs to point to the
|
|
51
|
+
// proxying feature service. Stabbing it on here maintains that consistency
|
|
52
|
+
// and also helps us fetch and calculate the correct reference layer
|
|
53
|
+
item.url = compose_1.getProxyUrl(item, options) || item.url;
|
|
34
54
|
// fetch the enrichments
|
|
35
55
|
const enrichmentsToFetch = (options === null || options === void 0 ? void 0 : options.enrichments) || _fetch_1.getContentEnrichments(item);
|
|
36
56
|
const enrichments = await _enrichments_1.fetchItemEnrichments(item, enrichmentsToFetch, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/content/fetch.ts"],"names":[],"mappings":";;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/content/fetch.ts"],"names":[],"mappings":";;;;AAAA,+EAIyC;AACzC,iEAAmD;AAEnD,wDAI+B;AAE/B,kCAAgC;AAChC,4CAA8C;AAC9C,mCAAmE;AACnE,qCAIkB;AAClB,2CAAkD;AAClD,uCAKmB;AAGnB,MAAM,WAAW,GAAG,CAAC,WAAmB,EAAE,EAAE,CAC1C,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAWnD,MAAM,0BAA0B,GAAG,KAAK,EACtC,kBAAuC,EACvC,OAA8B,EAC9B,EAAE;IACF,wDAAwD;IACxD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC;IAC1C,IAAI,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC;IAEpC,IAAI,KAAK,GAAG,MAAM,IAAI,sBAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7E,0EAA0E;IAC1E,wEAAwE;IACxE,0EAA0E;IAC1E,2EAA2E;IAC3E,oEAAoE;IACpE,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QACxB,MAAM,QAAQ,GAAG,2CAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;QAC5D,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,0CAA0C;QAC7G,KAAK,GAAG,MAAM,oCAAQ,CAAC,eAAe,CAAC,CAAC;QACxC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE;YACtC,OAAO,eAAe,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;QACnE,CAAC,CAAC,CAAC;KACJ;IAED,kCAAkC;IAClC,MAAM,gBAAgB,GACpB,KAAK,IAAI,qBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;QAClC,CAAC,CAAC,yDAAyD;YACzD,gEAAgE;YAChE,iEAAiE;YACjE,kDAAkD;YAClD,MAAM,mCAAoB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;IAChB,qDACK,kBAAkB,GAClB,gBAAgB;QACnB,qBAAqB;QACrB,MAAM,EAAE,oBAAW,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAC,CAAC;QAC1E,wEAAwE;QACxE,MAAM,IACN;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,KAAK,EACnC,MAAc,EACd,OAA8B,EAC9B,EAAE;IACF,iBAAiB;IACjB,MAAM,IAAI,GAAG,MAAM,4BAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE5C,2EAA2E;IAC3E,2EAA2E;IAC3E,oEAAoE;IACpE,IAAI,CAAC,GAAG,GAAG,qBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC;IAElD,wBAAwB;IACxB,MAAM,kBAAkB,GACtB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,8BAAqB,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,mCAAoB,CAC5C,IAAI,EACJ,kBAAkB,EAClB,OAAO,CACR,CAAC;IACF,OAAO,0BAA0B,iCAAM,WAAW,KAAE,IAAI,KAAI,OAAO,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,KAAK,EAC5B,KAAa,EACb,OAA8B,EAC9B,EAAE;IACF,kDAAkD;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,sBAAc,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,KAA+B,MAAM,uBAAuB,CAChE,MAAM,EACN,OAAO,CACR,EAHK,EAAE,IAAI,OAGX,EAHgB,eAAe,sBAA1B,QAA4B,CAGjC,CAAC;IACF,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IACpD,uDAAuD;IACvD,4DAA4D;IAC5D,6EAA6E;IAC7E,MAAM,cAAc,GAAG,+BAAmB,CAAC,IAAI,EAAE,OAAO,CAAC;QACvD,CAAC,CAAC,MAAM,gCAAuB,CAAC,KAAK,EAAE,OAAO,CAAC;QAC/C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IACvC,gFAAgF;IAChF,OAAO,wBAAc,CAAC,IAAI,8CACxB,cAAc,EAAE,OAAO,IACpB,eAAe,GACf,cAAc;QACjB,mCAAmC;QACnC,OAAO,EAAE,YAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;QAC7D,qBAAqB;QACrB,MAAM,EAAE,oBAAW,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,IACpE,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAC9B,kBAA0B,EAC1B,OAA8B,EAC9B,EAAE;IACF,sDAAsD;IACtD,0DAA0D;IAC1D,yDAAyD;IACzD,IAAI,cAAc,GAAG,MAAM,kCAAyB,CAClD,kBAAkB,EAClB,OAAO,CACR,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IAClC,IAAI,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;IACjC,iDAAiD;IACjD,MAAM,KAA+B,MAAM,uBAAuB,CAChE,MAAM,EACN,OAAO,CACR,EAHK,EAAE,IAAI,OAGX,EAHgB,eAAe,sBAA1B,QAA4B,CAGjC,CAAC;IACF,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IACpD,IAAI,CAAC,YAAK,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,KAAK,OAAO,EAAE;QAC5D,yDAAyD;QACzD,+DAA+D;QAC/D,2DAA2D;QAC3D,OAAO,GAAG,gBAAgB,CAAC;QAC3B,cAAc,mCACT,cAAc,GACd,CAAC,MAAM,gCAAuB,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CACpE,CAAC;KACH;IACD,OAAO,wBAAc,CAAC,IAAI,8CACxB,cAAc,EAAE,OAAO,IACpB,eAAe,GACf,cAAc,KACjB,OAAO;QACP,oEAAoE;QACpE,uEAAuE;QACvE,uEAAuE;QACvE,wEAAwE;QACxE,EAAE;QACF,gEAAgE;QAChE,gFAAgF;QAChF,IAAI,EAAE,kBAAkB;QACxB,qBAAqB;QACrB,MAAM,EAAE,oBAAW,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,IACpE,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,KAAK,EACnC,OAAoB,EACpB,cAA+B,EAC/B,EAAE;IACF,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACxC,MAAM,KAAK,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,oBAAoB,CAAC;IACnD,IAAI;QACF,MAAM,QAAQ,GAAQ,MAAM,yCAAa,iCACpC,cAAc,KACjB,GAAG;YACH,KAAK,EACL,eAAe,EAAE,IAAI,IACrB,CAAC;QACH,OAAO,QAAQ,CAAC,KAAK,CAAC;KACvB;IAAC,WAAM;QACN,6EAA6E;QAC7E,yDAAyD;QACzD,2IAA2I;QAC3I,iFAAiF;QACjF,OAAO,QAAQ,CAAC;KACjB;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACU,QAAA,YAAY,GAAG,KAAK,EAC/B,UAAkB,EAClB,OAA8B,EAC9B,EAAE;IACF,MAAM,OAAO,GAAG,cAAM,CAAC,UAAU,CAAC;QAChC,CAAC,CAAC,MAAM,kBAAkB,CACtB,wBAAgB,CAAC,UAAU,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC,EACjD,OAAO,CACR;QACH,CAAC,CAAC,MAAM,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,0FAA0F;IAC1F,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAChC,OAAO,CAAC,WAAW;QACjB,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC;YAC1B,CAAC,CAAC,MAAM,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC;YACjD,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Use this module for functions that do not need to be used by consumers (yet),
|
|
3
|
-
* but may be shared between hub.js modules, and/or need to be tested
|
|
4
|
-
* to get 100% coverage w/o writing cumbersome tests of higher level functions.
|
|
5
|
-
*
|
|
6
|
-
* Consuming will not be able to import these functions.
|
|
7
|
-
*
|
|
8
|
-
* It's probably a good pattern to add functions here first and then
|
|
9
|
-
* move them to index.ts only when they are needed by a consumer.
|
|
10
|
-
*/
|
|
11
|
-
import { ILayerDefinition, IFeatureServiceDefinition } from "@esri/arcgis-rest-feature-layer";
|
|
12
1
|
import { IItem } from "@esri/arcgis-rest-portal";
|
|
13
|
-
import { ISpatialReference } from "@esri/arcgis-rest-types";
|
|
2
|
+
import { ILayerDefinition, ISpatialReference } from "@esri/arcgis-rest-types";
|
|
14
3
|
import { IHubContent } from "../core";
|
|
15
4
|
import { IHubGeography, GeographyProvenance, IHubRequestOptions } from "../types";
|
|
16
5
|
import { IHubAdditionalResource } from "../core/types/IHubAdditionalResource";
|
|
@@ -98,7 +87,7 @@ export declare const setContentBoundary: (content: IHubContent, boundary: Geogra
|
|
|
98
87
|
ownerUser?: import("@esri/arcgis-rest-portal").IUser;
|
|
99
88
|
org?: Partial<import("@esri/arcgis-rest-portal").IPortal>;
|
|
100
89
|
errors?: import("../types").IEnrichmentErrorInfo[];
|
|
101
|
-
server?: Partial<IFeatureServiceDefinition>;
|
|
90
|
+
server?: Partial<import("@esri/arcgis-rest-feature-layer").IFeatureServiceDefinition>;
|
|
102
91
|
layers?: Partial<ILayerDefinition>[];
|
|
103
92
|
recordCount?: number;
|
|
104
93
|
created: number;
|
|
@@ -242,6 +231,16 @@ interface IAGOAdditionalResource {
|
|
|
242
231
|
* @private
|
|
243
232
|
*/
|
|
244
233
|
export declare const getAdditionalResources: (item: IItem, metadata?: any, requestOptions?: IHubRequestOptions) => IHubAdditionalResource[];
|
|
234
|
+
/**
|
|
235
|
+
* @private
|
|
236
|
+
*
|
|
237
|
+
* Extracts additional resources from formal item metadata.
|
|
238
|
+
* If none are available, null is returned.
|
|
239
|
+
*
|
|
240
|
+
* @param metadata the formal item metadata
|
|
241
|
+
* @returns an array of all additional resources, or null
|
|
242
|
+
*/
|
|
243
|
+
export declare const extractRawResources: (metadata?: any) => IAGOAdditionalResource[];
|
|
245
244
|
/**
|
|
246
245
|
* Determines whether a raw additional resource (i.e. extracted out of formal
|
|
247
246
|
* metadata with no transformation) references the underlying service that backs
|
|
@@ -266,4 +265,22 @@ export declare const isDataSourceOfItem: (resource: IAGOAdditionalResource, item
|
|
|
266
265
|
* @private
|
|
267
266
|
*/
|
|
268
267
|
export declare const getAdditionalResourceUrl: (resource: IAGOAdditionalResource, item: IItem, requestOptions?: IHubRequestOptions) => string;
|
|
268
|
+
/**
|
|
269
|
+
* @private
|
|
270
|
+
*
|
|
271
|
+
* Contains fallback logic for determining a content's extent.
|
|
272
|
+
*
|
|
273
|
+
* The fallback priority is as follows:
|
|
274
|
+
* 1) item's extent (if valid bbox)
|
|
275
|
+
* 2) extent enrichment from the hub api (if coordinates are valid bbox)
|
|
276
|
+
* 3) layer's extent (if spatial reference is 4326)
|
|
277
|
+
*
|
|
278
|
+
* If none of these conditions are met, undefined is returned.
|
|
279
|
+
*
|
|
280
|
+
* @param item
|
|
281
|
+
* @param layer
|
|
282
|
+
* @param extentEnrichment
|
|
283
|
+
* @returns the correct extent in a bbox format, or undefined
|
|
284
|
+
*/
|
|
285
|
+
export declare const determineExtent: (item: IItem, extentEnrichment?: any, layer?: ILayerDefinition) => any;
|
|
269
286
|
export {};
|
package/dist/umd/common.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* @preserve
|
|
2
|
-
* @esri/hub-common - v9.25.
|
|
2
|
+
* @esri/hub-common - v9.25.6 - Mon Apr 04 2022 23:16:31 GMT+0000 (Coordinated Universal Time)
|
|
3
3
|
* Copyright (c) 2022 Environmental Systems Research Institute, Inc.
|
|
4
4
|
* Apache-2.0
|
|
5
5
|
*/
|
|
@@ -6172,6 +6172,26 @@
|
|
|
6172
6172
|
return request(layersUrl, requestOptions);
|
|
6173
6173
|
}
|
|
6174
6174
|
|
|
6175
|
+
/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
|
|
6176
|
+
* Apache-2.0 */
|
|
6177
|
+
/**
|
|
6178
|
+
* ```js
|
|
6179
|
+
* import { getLayer } from '@esri/arcgis-rest-feature-layer';
|
|
6180
|
+
* //
|
|
6181
|
+
* getLayer({
|
|
6182
|
+
* url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/ServiceRequest/FeatureServer/0"
|
|
6183
|
+
* })
|
|
6184
|
+
* .then(response) // { name: "311", id: 0, ... }
|
|
6185
|
+
* ```
|
|
6186
|
+
* Layer (Feature Service) request. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/layer-feature-service-.htm) for more information.
|
|
6187
|
+
*
|
|
6188
|
+
* @param options - Options for the request.
|
|
6189
|
+
* @returns A Promise that will resolve with the addFeatures response.
|
|
6190
|
+
*/
|
|
6191
|
+
function getLayer(options) {
|
|
6192
|
+
return request(cleanUrl(options.url), options);
|
|
6193
|
+
}
|
|
6194
|
+
|
|
6175
6195
|
/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
|
|
6176
6196
|
* Apache-2.0 */
|
|
6177
6197
|
/**
|
|
@@ -6629,17 +6649,49 @@
|
|
|
6629
6649
|
* @private
|
|
6630
6650
|
*/
|
|
6631
6651
|
var getAdditionalResources = function (item, metadata, requestOptions) {
|
|
6632
|
-
var rawResources =
|
|
6633
|
-
|
|
6634
|
-
return
|
|
6635
|
-
|
|
6636
|
-
|
|
6637
|
-
|
|
6638
|
-
|
|
6639
|
-
|
|
6640
|
-
|
|
6641
|
-
|
|
6642
|
-
|
|
6652
|
+
var rawResources = extractRawResources(metadata);
|
|
6653
|
+
return (rawResources &&
|
|
6654
|
+
rawResources.map(function (resource) { return ({
|
|
6655
|
+
name: resource.orName,
|
|
6656
|
+
url: getAdditionalResourceUrl(resource, item, requestOptions),
|
|
6657
|
+
isDataSource: isDataSourceOfItem(resource, item),
|
|
6658
|
+
}); }));
|
|
6659
|
+
};
|
|
6660
|
+
/**
|
|
6661
|
+
* @private
|
|
6662
|
+
*
|
|
6663
|
+
* Extracts additional resources from formal item metadata.
|
|
6664
|
+
* If none are available, null is returned.
|
|
6665
|
+
*
|
|
6666
|
+
* @param metadata the formal item metadata
|
|
6667
|
+
* @returns an array of all additional resources, or null
|
|
6668
|
+
*/
|
|
6669
|
+
var extractRawResources = function (metadata) {
|
|
6670
|
+
var rawResources = [];
|
|
6671
|
+
// The property path to additional resources should be fairly simple.
|
|
6672
|
+
// In many cases, it's just `metadata.metadata.distInfo.distTranOps.onLineSrc`.
|
|
6673
|
+
// However, since `distInfo`, `distTranOps` and `onLineSrc` can be either
|
|
6674
|
+
// Objects OR Arrays, we have to do all this looping.
|
|
6675
|
+
castToArray(getProp(metadata, "metadata.distInfo") || []).forEach(function (distInfo) {
|
|
6676
|
+
castToArray(distInfo.distTranOps || []).forEach(function (distTranOps) {
|
|
6677
|
+
castToArray(distTranOps.onLineSrc || []).forEach(function (onLineSrc) {
|
|
6678
|
+
rawResources.push(onLineSrc);
|
|
6679
|
+
});
|
|
6680
|
+
});
|
|
6681
|
+
});
|
|
6682
|
+
return rawResources.length ? rawResources : null;
|
|
6683
|
+
};
|
|
6684
|
+
/**
|
|
6685
|
+
* @private
|
|
6686
|
+
*
|
|
6687
|
+
* Arrays are returned as-is.
|
|
6688
|
+
* Objects are wrapped into a 1 element array.
|
|
6689
|
+
*
|
|
6690
|
+
* @param objectOrArray
|
|
6691
|
+
* @returns the casted array
|
|
6692
|
+
*/
|
|
6693
|
+
var castToArray = function (objectOrArray) {
|
|
6694
|
+
return Array.isArray(objectOrArray) ? objectOrArray : [objectOrArray];
|
|
6643
6695
|
};
|
|
6644
6696
|
/**
|
|
6645
6697
|
* Determines whether a raw additional resource (i.e. extracted out of formal
|
|
@@ -6679,6 +6731,33 @@
|
|
|
6679
6731
|
}
|
|
6680
6732
|
return result;
|
|
6681
6733
|
};
|
|
6734
|
+
/**
|
|
6735
|
+
* @private
|
|
6736
|
+
*
|
|
6737
|
+
* Contains fallback logic for determining a content's extent.
|
|
6738
|
+
*
|
|
6739
|
+
* The fallback priority is as follows:
|
|
6740
|
+
* 1) item's extent (if valid bbox)
|
|
6741
|
+
* 2) extent enrichment from the hub api (if coordinates are valid bbox)
|
|
6742
|
+
* 3) layer's extent (if spatial reference is 4326)
|
|
6743
|
+
*
|
|
6744
|
+
* If none of these conditions are met, undefined is returned.
|
|
6745
|
+
*
|
|
6746
|
+
* @param item
|
|
6747
|
+
* @param layer
|
|
6748
|
+
* @param extentEnrichment
|
|
6749
|
+
* @returns the correct extent in a bbox format, or undefined
|
|
6750
|
+
*/
|
|
6751
|
+
var determineExtent = function (item, extentEnrichment, layer) {
|
|
6752
|
+
var itemExtent = isBBox(item.extent) ? item.extent : undefined;
|
|
6753
|
+
var extentEnrichmentCoordinates = isBBox(extentEnrichment === null || extentEnrichment === void 0 ? void 0 : extentEnrichment.coordinates)
|
|
6754
|
+
? extentEnrichment.coordinates
|
|
6755
|
+
: undefined;
|
|
6756
|
+
var layerExtent = getProp(layer, "extent.spatialReference.wkid") === 4326
|
|
6757
|
+
? extentToBBox(layer.extent)
|
|
6758
|
+
: undefined;
|
|
6759
|
+
return itemExtent || extentEnrichmentCoordinates || layerExtent;
|
|
6760
|
+
};
|
|
6682
6761
|
|
|
6683
6762
|
var STANDARD_LICENSES = [
|
|
6684
6763
|
{
|
|
@@ -7010,17 +7089,18 @@
|
|
|
7010
7089
|
var layer = layers && layers.length === 1 ? layers[0] : undefined;
|
|
7011
7090
|
return layer && layer.capabilities.includes("Query") ? layer : undefined;
|
|
7012
7091
|
};
|
|
7013
|
-
var shouldUseLayerInfo = function (layer, layers,
|
|
7014
|
-
return (
|
|
7092
|
+
var shouldUseLayerInfo = function (item, layer, layers, requestOptions) {
|
|
7093
|
+
return (!isProxiedCSV(item, requestOptions) &&
|
|
7094
|
+
layer &&
|
|
7015
7095
|
layers &&
|
|
7016
7096
|
layers.length > 1 &&
|
|
7017
7097
|
// we use item info instead of layer info for single layer items
|
|
7018
|
-
!getLayerIdFromUrl(url));
|
|
7098
|
+
!getLayerIdFromUrl(item.url));
|
|
7019
7099
|
};
|
|
7020
7100
|
// this logic adapted from hub-indexer's determineName(), see
|
|
7021
7101
|
// https://github.com/ArcGIS/hub-indexer/blob/8f4dd6f928124c1f35dd02bc11bd996191ee1160/packages/duke/compose/common.js#L7-L34
|
|
7022
|
-
var getContentName = function (item, layer, layers) {
|
|
7023
|
-
return ((shouldUseLayerInfo(layer, layers,
|
|
7102
|
+
var getContentName = function (item, layer, layers, requestOptions) {
|
|
7103
|
+
return ((shouldUseLayerInfo(item, layer, layers, requestOptions)
|
|
7024
7104
|
? layer.name
|
|
7025
7105
|
: item.title || item.name) || "").replace(/_/g, " ");
|
|
7026
7106
|
};
|
|
@@ -7268,7 +7348,9 @@
|
|
|
7268
7348
|
var getProxyUrl = function (item, requestOptions) {
|
|
7269
7349
|
var result;
|
|
7270
7350
|
if (isProxiedCSV(item, requestOptions)) {
|
|
7271
|
-
|
|
7351
|
+
// Sometimes hubApiUrl includes /api/v3, sometimes it doesn't
|
|
7352
|
+
var baseUrl = getHubApiUrl(requestOptions).replace("/api/v3", "");
|
|
7353
|
+
result = baseUrl + "/datasets/" + item.id + "_0/FeatureServer/0";
|
|
7272
7354
|
}
|
|
7273
7355
|
return result;
|
|
7274
7356
|
};
|
|
@@ -7408,6 +7490,18 @@
|
|
|
7408
7490
|
var isLayerView = function (layer) {
|
|
7409
7491
|
return layer.isView;
|
|
7410
7492
|
};
|
|
7493
|
+
var determineHubId = function (item, layer, requestOptions) {
|
|
7494
|
+
// Proxied CSVs are one offs in that we don't index the proxied layer,
|
|
7495
|
+
// so we cannot append _0. Return item id instead.
|
|
7496
|
+
if (isProxiedCSV(item, requestOptions)) {
|
|
7497
|
+
return item.id;
|
|
7498
|
+
}
|
|
7499
|
+
return canUseHubApiForItem(item, requestOptions)
|
|
7500
|
+
? layer
|
|
7501
|
+
? item.id + "_" + layer.id
|
|
7502
|
+
: getItemHubId(item)
|
|
7503
|
+
: undefined;
|
|
7504
|
+
};
|
|
7411
7505
|
/**
|
|
7412
7506
|
* Compose a new content object out of an item, enrichments, and context
|
|
7413
7507
|
* @param item
|
|
@@ -7420,15 +7514,12 @@
|
|
|
7420
7514
|
// set common variables that we will use in the derived properties below
|
|
7421
7515
|
var layer = getItemLayer(item, layers, options === null || options === void 0 ? void 0 : options.layerId);
|
|
7422
7516
|
// NOTE: we only set hubId for public items in online
|
|
7423
|
-
var hubId =
|
|
7424
|
-
? layer
|
|
7425
|
-
? item.id + "_" + layer.id
|
|
7426
|
-
: getItemHubId(item)
|
|
7427
|
-
: undefined;
|
|
7517
|
+
var hubId = determineHubId(item, layer, requestOptions);
|
|
7428
7518
|
var identifier = slug || hubId || item.id;
|
|
7429
7519
|
// whether or not we should show layer info for name, description, etc
|
|
7430
|
-
var name = getContentName(item, layer, layers);
|
|
7431
|
-
var _layerDescription = shouldUseLayerInfo(layer, layers,
|
|
7520
|
+
var name = getContentName(item, layer, layers, requestOptions);
|
|
7521
|
+
var _layerDescription = shouldUseLayerInfo(item, layer, layers, requestOptions) &&
|
|
7522
|
+
layer.description;
|
|
7432
7523
|
// so much depends on type
|
|
7433
7524
|
var type = layer
|
|
7434
7525
|
? // use layer type (Feature Layer, Table, etc) for layer content
|
|
@@ -7507,15 +7598,8 @@
|
|
|
7507
7598
|
control: item.itemControl || "view",
|
|
7508
7599
|
};
|
|
7509
7600
|
},
|
|
7510
|
-
// TODO: do we want to add dataset extent logic as a getter here?
|
|
7511
7601
|
get extent() {
|
|
7512
|
-
return
|
|
7513
|
-
? // we fall back to the extent derived by the Hub API
|
|
7514
|
-
// which prefers layer or service extents and ultimately
|
|
7515
|
-
// falls back to the org's extent
|
|
7516
|
-
extent.coordinates
|
|
7517
|
-
: // prefer item extent
|
|
7518
|
-
item.extent;
|
|
7602
|
+
return determineExtent(item, extent, layer);
|
|
7519
7603
|
},
|
|
7520
7604
|
// would require us to do client-side projection of server/layer extent
|
|
7521
7605
|
get boundary() {
|
|
@@ -8994,31 +9078,45 @@
|
|
|
8994
9078
|
return ["Feature Layer", "Table"].includes(contentType);
|
|
8995
9079
|
};
|
|
8996
9080
|
var maybeFetchLayerEnrichments = function (itemAndEnrichments, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
8997
|
-
var item, data, layers, layer, layerEnrichments, _a;
|
|
9081
|
+
var item, data, layers, layer, layerUrl, getLayerOptions, layerEnrichments, _a;
|
|
8998
9082
|
return __generator(this, function (_b) {
|
|
8999
9083
|
switch (_b.label) {
|
|
9000
9084
|
case 0:
|
|
9001
|
-
item = itemAndEnrichments.item, data = itemAndEnrichments.data
|
|
9085
|
+
item = itemAndEnrichments.item, data = itemAndEnrichments.data;
|
|
9086
|
+
layers = itemAndEnrichments.layers;
|
|
9002
9087
|
layer = layers && getItemLayer(item, layers, options && options.layerId);
|
|
9003
|
-
if (!(layer &&
|
|
9088
|
+
if (!(layer && !layer.type)) return [3 /*break*/, 2];
|
|
9089
|
+
layerUrl = parseServiceUrl(item.url) + "/" + layer.id;
|
|
9090
|
+
getLayerOptions = Object.assign({ url: layerUrl }, options);
|
|
9091
|
+
return [4 /*yield*/, getLayer(getLayerOptions)];
|
|
9092
|
+
case 1:
|
|
9093
|
+
layer = _b.sent();
|
|
9094
|
+
layers = layers.map(function (unhydratedLayer) {
|
|
9095
|
+
return unhydratedLayer.id === layer.id ? layer : unhydratedLayer;
|
|
9096
|
+
});
|
|
9097
|
+
_b.label = 2;
|
|
9098
|
+
case 2:
|
|
9099
|
+
if (!(layer && isLayerView(layer) && !data)) return [3 /*break*/, 4];
|
|
9004
9100
|
// to store (at least part of) it's view definition in item data
|
|
9005
9101
|
// it seems that most do not, but until we have a reliable signal
|
|
9006
9102
|
// we just fetch the item data for all layer views
|
|
9007
9103
|
return [4 /*yield*/, fetchItemEnrichments(item, ["data"], options)];
|
|
9008
|
-
case
|
|
9104
|
+
case 3:
|
|
9009
9105
|
// to store (at least part of) it's view definition in item data
|
|
9010
9106
|
// it seems that most do not, but until we have a reliable signal
|
|
9011
9107
|
// we just fetch the item data for all layer views
|
|
9012
9108
|
_a = _b.sent();
|
|
9013
|
-
return [3 /*break*/,
|
|
9014
|
-
case
|
|
9109
|
+
return [3 /*break*/, 5];
|
|
9110
|
+
case 4:
|
|
9015
9111
|
_a = undefined;
|
|
9016
|
-
_b.label =
|
|
9017
|
-
case
|
|
9112
|
+
_b.label = 5;
|
|
9113
|
+
case 5:
|
|
9018
9114
|
layerEnrichments = _a;
|
|
9019
9115
|
return [2 /*return*/, __assign(__assign(__assign({}, itemAndEnrichments), layerEnrichments), {
|
|
9020
9116
|
// merge error arrays
|
|
9021
|
-
errors: maybeConcat([itemAndEnrichments.errors, layerEnrichments === null || layerEnrichments === void 0 ? void 0 : layerEnrichments.errors])
|
|
9117
|
+
errors: maybeConcat([itemAndEnrichments.errors, layerEnrichments === null || layerEnrichments === void 0 ? void 0 : layerEnrichments.errors]),
|
|
9118
|
+
// Also remove once we stop supporting ArcGIS Servers below version 10.5
|
|
9119
|
+
layers: layers })];
|
|
9022
9120
|
}
|
|
9023
9121
|
});
|
|
9024
9122
|
}); };
|
|
@@ -9029,6 +9127,10 @@
|
|
|
9029
9127
|
case 0: return [4 /*yield*/, getItem(itemId, options)];
|
|
9030
9128
|
case 1:
|
|
9031
9129
|
item = _a.sent();
|
|
9130
|
+
// The Hub Application expects the item url of proxied CSVs to point to the
|
|
9131
|
+
// proxying feature service. Stabbing it on here maintains that consistency
|
|
9132
|
+
// and also helps us fetch and calculate the correct reference layer
|
|
9133
|
+
item.url = getProxyUrl(item, options) || item.url;
|
|
9032
9134
|
enrichmentsToFetch = (options === null || options === void 0 ? void 0 : options.enrichments) || getContentEnrichments(item);
|
|
9033
9135
|
return [4 /*yield*/, fetchItemEnrichments(item, enrichmentsToFetch, options)];
|
|
9034
9136
|
case 2:
|