@esri/hub-common 11.21.3 → 11.22.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.
- package/dist/esm/core/HubItemEntity.js +48 -1
- package/dist/esm/core/HubItemEntity.js.map +1 -1
- package/dist/esm/core/behaviors/IWithFeaturedImageBehavior.js +1 -0
- package/dist/esm/core/behaviors/IWithFeaturedImageBehavior.js.map +1 -0
- package/dist/esm/core/behaviors/index.js +1 -0
- package/dist/esm/core/behaviors/index.js.map +1 -1
- package/dist/esm/items/index.js +1 -0
- package/dist/esm/items/index.js.map +1 -1
- package/dist/esm/items/uploadImageResource.js +39 -0
- package/dist/esm/items/uploadImageResource.js.map +1 -0
- package/dist/node/core/HubItemEntity.js +47 -0
- package/dist/node/core/HubItemEntity.js.map +1 -1
- package/dist/node/core/behaviors/IWithFeaturedImageBehavior.js +3 -0
- package/dist/node/core/behaviors/IWithFeaturedImageBehavior.js.map +1 -0
- package/dist/node/core/behaviors/index.js +1 -0
- package/dist/node/core/behaviors/index.js.map +1 -1
- package/dist/node/items/index.js +1 -0
- package/dist/node/items/index.js.map +1 -1
- package/dist/node/items/uploadImageResource.js +43 -0
- package/dist/node/items/uploadImageResource.js.map +1 -0
- package/dist/types/content/_internal.d.ts +1 -0
- package/dist/types/core/HubItemEntity.d.ts +12 -2
- package/dist/types/core/behaviors/IWithFeaturedImageBehavior.d.ts +16 -0
- package/dist/types/core/behaviors/index.d.ts +1 -0
- package/dist/types/core/types/IHubItemEntity.d.ts +4 -0
- package/dist/types/items/index.d.ts +1 -0
- package/dist/types/items/uploadImageResource.d.ts +12 -0
- package/package.json +1 -1
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { getUser, setItemAccess, shareItemWithGroup, unshareItemWithGroup, } from "@esri/arcgis-rest-portal";
|
|
1
|
+
import { getUser, removeItemResource, setItemAccess, shareItemWithGroup, unshareItemWithGroup, } from "@esri/arcgis-rest-portal";
|
|
2
|
+
import HubError from "../HubError";
|
|
3
|
+
import { uploadImageResource } from "../items";
|
|
2
4
|
import { setItemThumbnail } from "../items/setItemThumbnail";
|
|
3
5
|
import { getItemThumbnailUrl } from "../resources";
|
|
4
6
|
import { cloneObject } from "../util";
|
|
5
7
|
import { mapBy } from "../utils";
|
|
6
8
|
import { sharedWith } from "./_internal/sharedWith";
|
|
9
|
+
const FEATURED_IMAGE_FILENAME = "featuredImage.png";
|
|
7
10
|
/**
|
|
8
11
|
* Base class for all Hub Entities backed by items
|
|
9
12
|
*/
|
|
@@ -198,5 +201,49 @@ export class HubItemEntity {
|
|
|
198
201
|
};
|
|
199
202
|
return getItemThumbnailUrl(minimalItem, this.context.requestOptions, opts);
|
|
200
203
|
}
|
|
204
|
+
//#endregion IWithThumbnailBehavior
|
|
205
|
+
//#region IWithFeaturedImageBehavior
|
|
206
|
+
/**
|
|
207
|
+
* Set a featured image on the Entity, if one already exists it is cleared out before the new one is set
|
|
208
|
+
* to keep the number of resources in control
|
|
209
|
+
* @param file
|
|
210
|
+
*/
|
|
211
|
+
async setFeaturedImage(file) {
|
|
212
|
+
// If we have a featured image then clear it out.
|
|
213
|
+
if (this.entity.featuredImageUrl) {
|
|
214
|
+
await this.clearFeaturedImage();
|
|
215
|
+
}
|
|
216
|
+
// add the new featured image
|
|
217
|
+
const featuredImageUrl = await uploadImageResource(this.entity.id, this.entity.owner, file, FEATURED_IMAGE_FILENAME, this.context.userRequestOptions);
|
|
218
|
+
// If successful, update the entity
|
|
219
|
+
this.entity.featuredImageUrl = featuredImageUrl;
|
|
220
|
+
// save the entity
|
|
221
|
+
await this.save();
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Remove the featured image from the item
|
|
225
|
+
*/
|
|
226
|
+
async clearFeaturedImage() {
|
|
227
|
+
try {
|
|
228
|
+
// remove the resource
|
|
229
|
+
const response = await removeItemResource(Object.assign({ id: this.entity.id, owner: this.entity.owner, resource: FEATURED_IMAGE_FILENAME }, this.context.userRequestOptions));
|
|
230
|
+
// if not successful throw an error
|
|
231
|
+
if (response && !response.success) {
|
|
232
|
+
throw new HubError("Clear Item Featured Image", "Unknown error clearing featured image.");
|
|
233
|
+
}
|
|
234
|
+
// If successful, clear the featured image url
|
|
235
|
+
this.entity.featuredImageUrl = null;
|
|
236
|
+
// save the entity
|
|
237
|
+
await this.save();
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
if (err instanceof Error) {
|
|
241
|
+
throw new HubError("Clear Item Featured Image", err.message, err);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
throw new HubError("Clear Item Featured Image", "Unknown error clearing featured image.");
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
201
248
|
}
|
|
202
249
|
//# sourceMappingURL=HubItemEntity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubItemEntity.js","sourceRoot":"","sources":["../../../src/core/HubItemEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,aAAa,EACb,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAqB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"HubItemEntity.js","sourceRoot":"","sources":["../../../src/core/HubItemEntity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=IWithFeaturedImageBehavior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IWithFeaturedImageBehavior.js","sourceRoot":"","sources":["../../../../src/core/behaviors/IWithFeaturedImageBehavior.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/behaviors/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/behaviors/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC"}
|
package/dist/esm/items/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { addItemResource } from "@esri/arcgis-rest-portal";
|
|
2
|
+
import HubError from "../HubError";
|
|
3
|
+
import { getPortalApiUrl } from "../urls";
|
|
4
|
+
/**
|
|
5
|
+
* Given an item, and owner, add a image resource to the item and returns its url
|
|
6
|
+
* @param id
|
|
7
|
+
* @param owner
|
|
8
|
+
* @param file
|
|
9
|
+
* @param filename
|
|
10
|
+
* @param ro
|
|
11
|
+
* @param prefix
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export async function uploadImageResource(id, owner, file, filename, ro, prefix = "") {
|
|
15
|
+
try {
|
|
16
|
+
// Add item resource
|
|
17
|
+
const response = await addItemResource(Object.assign({ id,
|
|
18
|
+
owner, resource: file, name: filename, prefix }, ro));
|
|
19
|
+
// if err throw
|
|
20
|
+
if (!response.success) {
|
|
21
|
+
throw new HubError("Set Item Featured Image", "Unknown error setting featured image.");
|
|
22
|
+
}
|
|
23
|
+
// return url
|
|
24
|
+
const portalRestUrl = getPortalApiUrl(ro.portal);
|
|
25
|
+
if (prefix) {
|
|
26
|
+
prefix = `${prefix}/`;
|
|
27
|
+
}
|
|
28
|
+
return `${portalRestUrl}/content/items/${id}/resources/${prefix}${filename}`;
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
if (err instanceof Error) {
|
|
32
|
+
throw new HubError("Set Item Featured Image", err.message, err);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
throw new HubError("Set Item Featured Image", "Unknown error setting featured image.");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=uploadImageResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadImageResource.js","sourceRoot":"","sources":["../../../src/items/uploadImageResource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAU,EACV,KAAa,EACb,IAAS,EACT,QAAgB,EAChB,EAAuB,EACvB,SAAiB,EAAE;IAEnB,IAAI;QACF,oBAAoB;QACpB,MAAM,QAAQ,GAAG,MAAM,eAAe,iBACpC,EAAE;YACF,KAAK,EACL,QAAQ,EAAE,IAAI,EACd,IAAI,EAAE,QAAQ,EACd,MAAM,IACH,EAAE,EACL,CAAC;QACH,eAAe;QACf,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACrB,MAAM,IAAI,QAAQ,CAChB,yBAAyB,EACzB,uCAAuC,CACxC,CAAC;SACH;QACD,aAAa;QACb,MAAM,aAAa,GAAG,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE;YACV,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;SACvB;QACD,OAAO,GAAG,aAAa,kBAAkB,EAAE,cAAc,MAAM,GAAG,QAAQ,EAAE,CAAC;KAC9E;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,KAAK,EAAE;YACxB,MAAM,IAAI,QAAQ,CAAC,yBAAyB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SACjE;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,yBAAyB,EACzB,uCAAuC,CACxC,CAAC;SACH;KACF;AACH,CAAC"}
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HubItemEntity = void 0;
|
|
4
4
|
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
5
|
+
const HubError_1 = require("../HubError");
|
|
6
|
+
const items_1 = require("../items");
|
|
5
7
|
const setItemThumbnail_1 = require("../items/setItemThumbnail");
|
|
6
8
|
const resources_1 = require("../resources");
|
|
7
9
|
const util_1 = require("../util");
|
|
8
10
|
const utils_1 = require("../utils");
|
|
9
11
|
const sharedWith_1 = require("./_internal/sharedWith");
|
|
12
|
+
const FEATURED_IMAGE_FILENAME = "featuredImage.png";
|
|
10
13
|
/**
|
|
11
14
|
* Base class for all Hub Entities backed by items
|
|
12
15
|
*/
|
|
@@ -201,6 +204,50 @@ class HubItemEntity {
|
|
|
201
204
|
};
|
|
202
205
|
return resources_1.getItemThumbnailUrl(minimalItem, this.context.requestOptions, opts);
|
|
203
206
|
}
|
|
207
|
+
//#endregion IWithThumbnailBehavior
|
|
208
|
+
//#region IWithFeaturedImageBehavior
|
|
209
|
+
/**
|
|
210
|
+
* Set a featured image on the Entity, if one already exists it is cleared out before the new one is set
|
|
211
|
+
* to keep the number of resources in control
|
|
212
|
+
* @param file
|
|
213
|
+
*/
|
|
214
|
+
async setFeaturedImage(file) {
|
|
215
|
+
// If we have a featured image then clear it out.
|
|
216
|
+
if (this.entity.featuredImageUrl) {
|
|
217
|
+
await this.clearFeaturedImage();
|
|
218
|
+
}
|
|
219
|
+
// add the new featured image
|
|
220
|
+
const featuredImageUrl = await items_1.uploadImageResource(this.entity.id, this.entity.owner, file, FEATURED_IMAGE_FILENAME, this.context.userRequestOptions);
|
|
221
|
+
// If successful, update the entity
|
|
222
|
+
this.entity.featuredImageUrl = featuredImageUrl;
|
|
223
|
+
// save the entity
|
|
224
|
+
await this.save();
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Remove the featured image from the item
|
|
228
|
+
*/
|
|
229
|
+
async clearFeaturedImage() {
|
|
230
|
+
try {
|
|
231
|
+
// remove the resource
|
|
232
|
+
const response = await arcgis_rest_portal_1.removeItemResource(Object.assign({ id: this.entity.id, owner: this.entity.owner, resource: FEATURED_IMAGE_FILENAME }, this.context.userRequestOptions));
|
|
233
|
+
// if not successful throw an error
|
|
234
|
+
if (response && !response.success) {
|
|
235
|
+
throw new HubError_1.default("Clear Item Featured Image", "Unknown error clearing featured image.");
|
|
236
|
+
}
|
|
237
|
+
// If successful, clear the featured image url
|
|
238
|
+
this.entity.featuredImageUrl = null;
|
|
239
|
+
// save the entity
|
|
240
|
+
await this.save();
|
|
241
|
+
}
|
|
242
|
+
catch (err) {
|
|
243
|
+
if (err instanceof Error) {
|
|
244
|
+
throw new HubError_1.default("Clear Item Featured Image", err.message, err);
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
throw new HubError_1.default("Clear Item Featured Image", "Unknown error clearing featured image.");
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
204
251
|
}
|
|
205
252
|
exports.HubItemEntity = HubItemEntity;
|
|
206
253
|
//# sourceMappingURL=HubItemEntity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubItemEntity.js","sourceRoot":"","sources":["../../../src/core/HubItemEntity.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"HubItemEntity.js","sourceRoot":"","sources":["../../../src/core/HubItemEntity.ts"],"names":[],"mappings":";;;AAAA,iEAQkC;AAElC,0CAAmC;AACnC,oCAA+C;AAC/C,gEAA6D;AAC7D,4CAAsE;AACtE,kCAAsC;AACtC,oCAAiC;AASjC,uDAAoD;AAEpD,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAsB,aAAa;IAYjC,YAAY,MAAS,EAAE,OAAuB;QAHpC,gBAAW,GAAY,KAAK,CAAC;QAC7B,mBAAc,GAAoC,IAAI,CAAC;QAG/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kFAAkF;IAClF;;OAEG;IACH,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,4BAA4B;IAE5B;;;OAGG;IACH,MAAM;QACJ,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACjD;QACD,OAAO,kBAAW,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAC;IAClD,CAAC;IAKD;;;;;OAKG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACtC,wBAAwB;QACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACvC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9B;QAED,+CAA+C;QAC/C,2DAA2D;QAC3D,MAAM,CAAC,GAAG,MAAM,4BAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YACvB,yEAAyE;YACzE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC/B;QACD,yCAAyC;QACzC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7C,+BAA+B;QAC/B,MAAM,YAAY,GAAG,YAAY;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,IAAI,GAAI,CAAC,CAAC,YAAyB,IAAI,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,4BAA4B;QAC5B,MAAM,cAAc,GAAG,aAAK,CAAC,IAAI,EAAE,WAAW,CAAa,CAAC;QAC5D,wBAAwB;QACxB,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE;YAC/B,mBAAmB,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,mBAAmB,EAAE;gBACvB,MAAM;aACP;SACF;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACtC,0BAA0B;QAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACvC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9B;QACD,gEAAgE;QAChE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC7C,sDAAsD;YACtD,MAAM,SAAS,GAAG,MAAM,4BAAO,CAAC;gBAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBAC3B,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;aACrC,CAAC,CAAC;YACH,0DAA0D;YAC1D,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;YACzE,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SACxC;aAAM;YACL,4BAA4B;YAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,+BAA+B;IAE/B,8BAA8B;IAC9B;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,uCAAkB,CAAC;YACvB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAClB,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YACxB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;SACrC,CAAC,CAAC;IACL,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,yCAAoB,CAAC;YACzB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAClB,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YACxB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;SACrC,CAAC,CAAC;IACL,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,MAA2B;QACzC,MAAM,kCAAa,CAAC;YAClB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAClB,MAAM;YACN,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;SACrC,CAAC,CAAC;QACH,uCAAuC;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,6FAA6F;QAC7F,OAAO,uBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACjE,CAAC;IAED,YAAY;IAEZ;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,oBAAoB;QACpB,6CAA6C;QAC7C,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,qBAAqB;YACrB,MAAM,mCAAgB,CACpB,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,cAAc,CAAC,IAAI,EACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;YAEF,mFAAmF;YACnF,2DAA2D;YAC3D,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,aAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,4BAA4B;YAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;IACH,CAAC;IAED,gCAAgC;IAEhC;;;;OAIG;IACH,YAAY,CAAC,IAAS,EAAE,QAAgB;QACtC,oFAAoF;QACpF,IAAI,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IACD;;;OAGG;IACH,eAAe,CAAC,QAAgB,GAAG;QACjC,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;SACb,CAAC;QAEtB,MAAM,IAAI,GAAsB;YAC9B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK;YACjC,KAAK;SACN,CAAC;QAEF,OAAO,+BAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IACD,mCAAmC;IAEnC,oCAAoC;IACpC;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAS;QAC9B,iDAAiD;QACjD,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAChC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;SACjC;QACD,6BAA6B;QAC7B,MAAM,gBAAgB,GAAG,MAAM,2BAAmB,CAChD,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,IAAI,EACJ,uBAAuB,EACvB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;QACF,mCAAmC;QACnC,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAChD,kBAAkB;QAClB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,IAAI;YACF,sBAAsB;YACtB,MAAM,QAAQ,GAAG,MAAM,uCAAkB,iBACvC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAClB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EACxB,QAAQ,EAAE,uBAAuB,IAC9B,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAClC,CAAC;YACH,mCAAmC;YACnC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACjC,MAAM,IAAI,kBAAQ,CAChB,2BAA2B,EAC3B,wCAAwC,CACzC,CAAC;aACH;YACD,8CAA8C;YAC9C,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACpC,kBAAkB;YAClB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;SACnB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,KAAK,EAAE;gBACxB,MAAM,IAAI,kBAAQ,CAAC,2BAA2B,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;aACnE;iBAAM;gBACL,MAAM,IAAI,kBAAQ,CAChB,2BAA2B,EAC3B,wCAAwC,CACzC,CAAC;aACH;SACF;IACH,CAAC;CAEF;AA9RD,sCA8RC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IWithFeaturedImageBehavior.js","sourceRoot":"","sources":["../../../../src/core/behaviors/IWithFeaturedImageBehavior.ts"],"names":[],"mappings":""}
|
|
@@ -6,4 +6,5 @@ tslib_1.__exportStar(require("./IWithCatalogBehavior"), exports);
|
|
|
6
6
|
tslib_1.__exportStar(require("./IWithStoreBehavior"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./IWithSharingBehavior"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./IWithEditorBehavior"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./IWithFeaturedImageBehavior"), exports);
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/behaviors/index.ts"],"names":[],"mappings":";;;AAAA,oEAA0C;AAC1C,iEAAuC;AACvC,+DAAqC;AACrC,iEAAuC;AACvC,gEAAsC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/behaviors/index.ts"],"names":[],"mappings":";;;AAAA,oEAA0C;AAC1C,iEAAuC;AACvC,+DAAqC;AACrC,iEAAuC;AACvC,gEAAsC;AACtC,uEAA6C"}
|
package/dist/node/items/index.js
CHANGED
|
@@ -23,4 +23,5 @@ tslib_1.__exportStar(require("./registerBrowserApp"), exports);
|
|
|
23
23
|
tslib_1.__exportStar(require("./create-item-from-file"), exports);
|
|
24
24
|
tslib_1.__exportStar(require("./create-item-from-url"), exports);
|
|
25
25
|
tslib_1.__exportStar(require("./create-item-from-url-or-file"), exports);
|
|
26
|
+
tslib_1.__exportStar(require("./uploadImageResource"), exports);
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":";;;AAAA,uEAA6C;AAC7C,sEAA4C;AAC5C,wDAA8B;AAC9B,6DAAmC;AACnC,mEAAyC;AACzC,wDAA8B;AAC9B,gEAAsC;AACtC,4DAAkC;AAClC,iEAAuC;AACvC,4DAAkC;AAClC,qEAA2C;AAC3C,uEAA6C;AAC7C,kEAAwC;AACxC,4DAAkC;AAClC,mEAAyC;AACzC,kDAAwB;AACxB,6EAAmD;AACnD,6DAAmC;AACnC,+DAAqC;AACrC,kEAAwC;AACxC,iEAAuC;AACvC,yEAA+C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/items/index.ts"],"names":[],"mappings":";;;AAAA,uEAA6C;AAC7C,sEAA4C;AAC5C,wDAA8B;AAC9B,6DAAmC;AACnC,mEAAyC;AACzC,wDAA8B;AAC9B,gEAAsC;AACtC,4DAAkC;AAClC,iEAAuC;AACvC,4DAAkC;AAClC,qEAA2C;AAC3C,uEAA6C;AAC7C,kEAAwC;AACxC,4DAAkC;AAClC,mEAAyC;AACzC,kDAAwB;AACxB,6EAAmD;AACnD,6DAAmC;AACnC,+DAAqC;AACrC,kEAAwC;AACxC,iEAAuC;AACvC,yEAA+C;AAC/C,gEAAsC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uploadImageResource = void 0;
|
|
4
|
+
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
5
|
+
const HubError_1 = require("../HubError");
|
|
6
|
+
const urls_1 = require("../urls");
|
|
7
|
+
/**
|
|
8
|
+
* Given an item, and owner, add a image resource to the item and returns its url
|
|
9
|
+
* @param id
|
|
10
|
+
* @param owner
|
|
11
|
+
* @param file
|
|
12
|
+
* @param filename
|
|
13
|
+
* @param ro
|
|
14
|
+
* @param prefix
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
async function uploadImageResource(id, owner, file, filename, ro, prefix = "") {
|
|
18
|
+
try {
|
|
19
|
+
// Add item resource
|
|
20
|
+
const response = await arcgis_rest_portal_1.addItemResource(Object.assign({ id,
|
|
21
|
+
owner, resource: file, name: filename, prefix }, ro));
|
|
22
|
+
// if err throw
|
|
23
|
+
if (!response.success) {
|
|
24
|
+
throw new HubError_1.default("Set Item Featured Image", "Unknown error setting featured image.");
|
|
25
|
+
}
|
|
26
|
+
// return url
|
|
27
|
+
const portalRestUrl = urls_1.getPortalApiUrl(ro.portal);
|
|
28
|
+
if (prefix) {
|
|
29
|
+
prefix = `${prefix}/`;
|
|
30
|
+
}
|
|
31
|
+
return `${portalRestUrl}/content/items/${id}/resources/${prefix}${filename}`;
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
if (err instanceof Error) {
|
|
35
|
+
throw new HubError_1.default("Set Item Featured Image", err.message, err);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
throw new HubError_1.default("Set Item Featured Image", "Unknown error setting featured image.");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.uploadImageResource = uploadImageResource;
|
|
43
|
+
//# sourceMappingURL=uploadImageResource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadImageResource.js","sourceRoot":"","sources":["../../../src/items/uploadImageResource.ts"],"names":[],"mappings":";;;AACA,iEAA2D;AAC3D,0CAAmC;AACnC,kCAA0C;AAE1C;;;;;;;;;GASG;AACI,KAAK,UAAU,mBAAmB,CACvC,EAAU,EACV,KAAa,EACb,IAAS,EACT,QAAgB,EAChB,EAAuB,EACvB,SAAiB,EAAE;IAEnB,IAAI;QACF,oBAAoB;QACpB,MAAM,QAAQ,GAAG,MAAM,oCAAe,iBACpC,EAAE;YACF,KAAK,EACL,QAAQ,EAAE,IAAI,EACd,IAAI,EAAE,QAAQ,EACd,MAAM,IACH,EAAE,EACL,CAAC;QACH,eAAe;QACf,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACrB,MAAM,IAAI,kBAAQ,CAChB,yBAAyB,EACzB,uCAAuC,CACxC,CAAC;SACH;QACD,aAAa;QACb,MAAM,aAAa,GAAG,sBAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE;YACV,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;SACvB;QACD,OAAO,GAAG,aAAa,kBAAkB,EAAE,cAAc,MAAM,GAAG,QAAQ,EAAE,CAAC;KAC9E;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,KAAK,EAAE;YACxB,MAAM,IAAI,kBAAQ,CAAC,yBAAyB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SACjE;aAAM;YACL,MAAM,IAAI,kBAAQ,CAChB,yBAAyB,EACzB,uCAAuC,CACxC,CAAC;SACH;KACF;AACH,CAAC;AAzCD,kDAyCC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { IGroup } from "@esri/arcgis-rest-portal";
|
|
2
2
|
import { IArcGISContext } from "../ArcGISContext";
|
|
3
|
-
import { IWithSharingBehavior, IWithStoreBehavior } from "./behaviors";
|
|
3
|
+
import { IWithSharingBehavior, IWithStoreBehavior, IWithFeaturedImageBehavior } from "./behaviors";
|
|
4
4
|
import { IWithThumbnailBehavior } from "./behaviors/IWithThumbnailBehavior";
|
|
5
5
|
import { IHubItemEntity, SettableAccessLevel } from "./types";
|
|
6
6
|
/**
|
|
7
7
|
* Base class for all Hub Entities backed by items
|
|
8
8
|
*/
|
|
9
|
-
export declare abstract class HubItemEntity<T extends IHubItemEntity> implements IWithStoreBehavior<T>, IWithSharingBehavior, IWithThumbnailBehavior {
|
|
9
|
+
export declare abstract class HubItemEntity<T extends IHubItemEntity> implements IWithStoreBehavior<T>, IWithSharingBehavior, IWithThumbnailBehavior, IWithFeaturedImageBehavior {
|
|
10
10
|
protected context: IArcGISContext;
|
|
11
11
|
protected entity: T;
|
|
12
12
|
protected isDestroyed: boolean;
|
|
@@ -80,4 +80,14 @@ export declare abstract class HubItemEntity<T extends IHubItemEntity> implements
|
|
|
80
80
|
* @param width
|
|
81
81
|
*/
|
|
82
82
|
getThumbnailUrl(width?: number): string;
|
|
83
|
+
/**
|
|
84
|
+
* Set a featured image on the Entity, if one already exists it is cleared out before the new one is set
|
|
85
|
+
* to keep the number of resources in control
|
|
86
|
+
* @param file
|
|
87
|
+
*/
|
|
88
|
+
setFeaturedImage(file: any): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Remove the featured image from the item
|
|
91
|
+
*/
|
|
92
|
+
clearFeaturedImage(): Promise<void>;
|
|
83
93
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composable behavior that adds featured image support to an entity class
|
|
3
|
+
*/
|
|
4
|
+
export interface IWithFeaturedImageBehavior {
|
|
5
|
+
/**
|
|
6
|
+
* Set the featured image for the item
|
|
7
|
+
* @param file
|
|
8
|
+
* @param filename
|
|
9
|
+
*/
|
|
10
|
+
setFeaturedImage(file: any, filename: string): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Clears the featured image for the item
|
|
13
|
+
* @param filename
|
|
14
|
+
*/
|
|
15
|
+
clearFeaturedImage(filename: string): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IUserRequestOptions } from "@esri/arcgis-rest-auth";
|
|
2
|
+
/**
|
|
3
|
+
* Given an item, and owner, add a image resource to the item and returns its url
|
|
4
|
+
* @param id
|
|
5
|
+
* @param owner
|
|
6
|
+
* @param file
|
|
7
|
+
* @param filename
|
|
8
|
+
* @param ro
|
|
9
|
+
* @param prefix
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
export declare function uploadImageResource(id: string, owner: string, file: any, filename: string, ro: IUserRequestOptions, prefix?: string): Promise<string>;
|