@esri/hub-common 14.178.0 → 14.179.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/content/HubContent.js +5 -0
- package/dist/esm/content/HubContent.js.map +1 -1
- package/dist/esm/content/_internal/ContentSchema.js +5 -0
- package/dist/esm/content/_internal/ContentSchema.js.map +1 -1
- package/dist/esm/content/_internal/ContentUiSchemaSettings.js +5 -23
- package/dist/esm/content/_internal/ContentUiSchemaSettings.js.map +1 -1
- package/dist/esm/content/_internal/computeProps.js +1 -0
- package/dist/esm/content/_internal/computeProps.js.map +1 -1
- package/dist/esm/content/_internal/getDownloadsSection.js +135 -0
- package/dist/esm/content/_internal/getDownloadsSection.js.map +1 -0
- package/dist/esm/content/_internal/shouldShowDownloadsConfiguration.js +23 -0
- package/dist/esm/content/_internal/shouldShowDownloadsConfiguration.js.map +1 -0
- package/dist/esm/content/edit.js +40 -3
- package/dist/esm/content/edit.js.map +1 -1
- package/dist/esm/downloads/_internal/additional-resources/utils.js +23 -0
- package/dist/esm/downloads/_internal/additional-resources/utils.js.map +1 -0
- package/dist/esm/downloads/_internal/getDownloadConfigurationDisplayFormats.js +75 -0
- package/dist/esm/downloads/_internal/getDownloadConfigurationDisplayFormats.js.map +1 -0
- package/dist/esm/downloads/_internal/getDownloadFlow.js +26 -0
- package/dist/esm/downloads/_internal/getDownloadFlow.js.map +1 -0
- package/dist/esm/downloads/_internal/getDownloadFormatsByFlow.js +28 -0
- package/dist/esm/downloads/_internal/getDownloadFormatsByFlow.js.map +1 -0
- package/dist/esm/downloads/fetchDownloadFile.js +20 -0
- package/dist/esm/downloads/fetchDownloadFile.js.map +1 -1
- package/dist/esm/downloads/fetchDownloadFormats.js +4 -0
- package/dist/esm/downloads/fetchDownloadFormats.js.map +1 -1
- package/dist/esm/downloads/getDownloadConfiguration.js +52 -0
- package/dist/esm/downloads/getDownloadConfiguration.js.map +1 -0
- package/dist/esm/downloads/getDownloadFormats.js +59 -0
- package/dist/esm/downloads/getDownloadFormats.js.map +1 -0
- package/dist/esm/downloads/index.js +2 -0
- package/dist/esm/downloads/index.js.map +1 -1
- package/dist/node/content/HubContent.js +5 -0
- package/dist/node/content/HubContent.js.map +1 -1
- package/dist/node/content/_internal/ContentSchema.js +5 -0
- package/dist/node/content/_internal/ContentSchema.js.map +1 -1
- package/dist/node/content/_internal/ContentUiSchemaSettings.js +5 -23
- package/dist/node/content/_internal/ContentUiSchemaSettings.js.map +1 -1
- package/dist/node/content/_internal/computeProps.js +1 -0
- package/dist/node/content/_internal/computeProps.js.map +1 -1
- package/dist/node/content/_internal/getDownloadsSection.js +139 -0
- package/dist/node/content/_internal/getDownloadsSection.js.map +1 -0
- package/dist/node/content/_internal/shouldShowDownloadsConfiguration.js +27 -0
- package/dist/node/content/_internal/shouldShowDownloadsConfiguration.js.map +1 -0
- package/dist/node/content/edit.js +39 -2
- package/dist/node/content/edit.js.map +1 -1
- package/dist/node/downloads/_internal/additional-resources/utils.js +28 -0
- package/dist/node/downloads/_internal/additional-resources/utils.js.map +1 -0
- package/dist/node/downloads/_internal/getDownloadConfigurationDisplayFormats.js +79 -0
- package/dist/node/downloads/_internal/getDownloadConfigurationDisplayFormats.js.map +1 -0
- package/dist/node/downloads/_internal/getDownloadFlow.js +30 -0
- package/dist/node/downloads/_internal/getDownloadFlow.js.map +1 -0
- package/dist/node/downloads/_internal/getDownloadFormatsByFlow.js +32 -0
- package/dist/node/downloads/_internal/getDownloadFormatsByFlow.js.map +1 -0
- package/dist/node/downloads/fetchDownloadFile.js +20 -0
- package/dist/node/downloads/fetchDownloadFile.js.map +1 -1
- package/dist/node/downloads/fetchDownloadFormats.js +4 -0
- package/dist/node/downloads/fetchDownloadFormats.js.map +1 -1
- package/dist/node/downloads/getDownloadConfiguration.js +56 -0
- package/dist/node/downloads/getDownloadConfiguration.js.map +1 -0
- package/dist/node/downloads/getDownloadFormats.js +63 -0
- package/dist/node/downloads/getDownloadFormats.js.map +1 -0
- package/dist/node/downloads/index.js +2 -0
- package/dist/node/downloads/index.js.map +1 -1
- package/dist/types/content/_internal/getDownloadsSection.d.ts +13 -0
- package/dist/types/content/_internal/shouldShowDownloadsConfiguration.d.ts +13 -0
- package/dist/types/core/types/IHubEditableContent.d.ts +57 -1
- package/dist/types/downloads/_internal/additional-resources/utils.d.ts +19 -0
- package/dist/types/downloads/_internal/getDownloadConfigurationDisplayFormats.d.ts +10 -0
- package/dist/types/downloads/_internal/getDownloadFlow.d.ts +11 -0
- package/dist/types/downloads/_internal/getDownloadFormatsByFlow.d.ts +11 -0
- package/dist/types/downloads/fetchDownloadFormats.d.ts +2 -0
- package/dist/types/downloads/getDownloadConfiguration.d.ts +11 -0
- package/dist/types/downloads/getDownloadFormats.d.ts +9 -0
- package/dist/types/downloads/index.d.ts +2 -0
- package/package.json +1 -1
|
@@ -3,6 +3,8 @@ import { getEditorConfig } from "../core/schemas/getEditorConfig";
|
|
|
3
3
|
import { cloneObject } from "../util";
|
|
4
4
|
import { editorToContent } from "./edit";
|
|
5
5
|
import { enrichEntity } from "../core/enrichEntity";
|
|
6
|
+
import { shouldShowDownloadsConfiguration } from "./_internal/shouldShowDownloadsConfiguration";
|
|
7
|
+
import { getDownloadConfigurationDisplayFormats } from "../downloads/_internal/getDownloadConfigurationDisplayFormats";
|
|
6
8
|
export class HubContent extends HubItemEntity {
|
|
7
9
|
constructor(content, context) {
|
|
8
10
|
super(content, context);
|
|
@@ -81,6 +83,9 @@ export class HubContent extends HubItemEntity {
|
|
|
81
83
|
: cloneObject(this.entity);
|
|
82
84
|
// 2. Apply transforms to relevant entity values so they
|
|
83
85
|
// can be consumed by the editor
|
|
86
|
+
if (shouldShowDownloadsConfiguration(this.entity)) {
|
|
87
|
+
editor.downloadFormats = getDownloadConfigurationDisplayFormats(this.entity);
|
|
88
|
+
}
|
|
84
89
|
return editor;
|
|
85
90
|
}
|
|
86
91
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubContent.js","sourceRoot":"","sources":["../../../src/content/HubContent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQtD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"HubContent.js","sourceRoot":"","sources":["../../../src/content/HubContent.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,5 +19,10 @@ export const ContentSchema = Object.assign(Object.assign({}, HubItemEntitySchema
|
|
|
19
19
|
type: "boolean",
|
|
20
20
|
enum: [true],
|
|
21
21
|
},
|
|
22
|
+
}, downloadFormats: {
|
|
23
|
+
type: "array",
|
|
24
|
+
items: {
|
|
25
|
+
type: "object",
|
|
26
|
+
},
|
|
22
27
|
} }) });
|
|
23
28
|
//# sourceMappingURL=ContentSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentSchema.js","sourceRoot":"","sources":["../../../../src/content/_internal/ContentSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAGpF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,kBAAkB;IAClB,sBAAsB;IACtB,yBAAyB;CACjB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAyB,gCAC9C,mBAAmB,KACtB,UAAU,kCACL,mBAAmB,CAAC,UAAU,KACjC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;SACf,EACD,uBAAuB,EAAE;YACvB,IAAI,EAAE,SAAS;SAChB,EACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;SACf,EACD,YAAY,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,CAAC,IAAI,CAAC;aACb;SACF,MAEoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"ContentSchema.js","sourceRoot":"","sources":["../../../../src/content/_internal/ContentSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAGpF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,kBAAkB;IAClB,sBAAsB;IACtB,yBAAyB;CACjB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAyB,gCAC9C,mBAAmB,KACtB,UAAU,kCACL,mBAAmB,CAAC,UAAU,KACjC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;SACf,EACD,uBAAuB,EAAE;YACvB,IAAI,EAAE,SAAS;SAChB,EACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;SACf,EACD,YAAY,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,CAAC,IAAI,CAAC;aACb;SACF,EACD,eAAe,EAAE;YACf,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;aACf;SACF,MAEoB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { UiSchemaMessageTypes, } from "../../core/schemas/types";
|
|
2
2
|
import { checkPermission } from "../../permissions/checkPermission";
|
|
3
|
-
import {
|
|
3
|
+
import { getDownloadsSection } from "./getDownloadsSection";
|
|
4
|
+
import { shouldShowDownloadsConfiguration } from "./shouldShowDownloadsConfiguration";
|
|
4
5
|
/**
|
|
5
6
|
* @private
|
|
6
7
|
* constructs the complete settings uiSchema for Hub Editable Content.
|
|
@@ -78,28 +79,9 @@ export const buildUiSchema = async (i18nScope, options, _context) => {
|
|
|
78
79
|
elements: scheduleSectionElements,
|
|
79
80
|
});
|
|
80
81
|
}
|
|
81
|
-
if (
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
labelKey: `${i18nScope}.sections.downloads.label`,
|
|
85
|
-
options: {
|
|
86
|
-
helperText: {
|
|
87
|
-
labelKey: `${i18nScope}.sections.downloads.helperText`,
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
elements: [
|
|
91
|
-
{
|
|
92
|
-
labelKey: `${i18nScope}.fields.serverExtractCapability.label`,
|
|
93
|
-
scope: "/properties/serverExtractCapability",
|
|
94
|
-
type: "Control",
|
|
95
|
-
options: {
|
|
96
|
-
helperText: {
|
|
97
|
-
labelKey: `${i18nScope}.fields.serverExtractCapability.helperText`,
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
],
|
|
102
|
-
});
|
|
82
|
+
if (shouldShowDownloadsConfiguration(options)) {
|
|
83
|
+
const downloadsSection = getDownloadsSection(i18nScope, options);
|
|
84
|
+
uiSchema.elements.push(downloadsSection);
|
|
103
85
|
}
|
|
104
86
|
return uiSchema;
|
|
105
87
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentUiSchemaSettings.js","sourceRoot":"","sources":["../../../../src/content/_internal/ContentUiSchemaSettings.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ContentUiSchemaSettings.js","sourceRoot":"","sources":["../../../../src/content/_internal/ContentUiSchemaSettings.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,SAAiB,EACjB,OAA4B,EAC5B,QAAwB,EACJ,EAAE;IACtB,MAAM,QAAQ,GAAc;QAC1B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE;KACb,CAAC;IACF,IACE,eAAe,CACb,yCAAyC,EACzC,QAAQ,EACR,OAAO,CACR,CAAC,MAAM,EACR;QACA,MAAM,sBAAsB,GAAqB;YAC/C,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,sBAAsB;YAC7B,QAAQ,EAAE,GAAG,SAAS,+BAA+B;YACrD,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,2BAA2B;gBACpC,QAAQ,EAAE,aAAa;gBACvB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,WAAW,EAAE;oBACrB,EAAE,IAAI,EAAE,OAAO,EAAE;oBACjB,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAClB,EAAE,IAAI,EAAE,SAAS,EAAE;oBACnB,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAClB;wBACE,IAAI,EAAE,QAAQ;wBACd,gBAAgB,EAAE,eAAe;wBACjC,gBAAgB,EAAE,KAAK,SAAS,sDAAsD;qBACvF;iBACF;aACF;SACF,CAAC;QAEF,MAAM,uBAAuB,GAAuB;YAClD,sBAAsB;SACvB,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC/B,8DAA8D;YAC9D,sBAAsB,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC/C,sBAAsB,CAAC,OAAO,CAAC,QAAQ,GAAG;gBACxC;oBACE,IAAI,EAAE,oBAAoB,CAAC,MAAM;oBACjC,OAAO,EAAE,QAAQ;oBACjB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,2BAA2B;oBACjC,QAAQ,EAAE,GAAG,SAAS,0CAA0C;oBAChE,QAAQ,EAAE,GAAG,SAAS,yCAAyC;oBAC/D,uBAAuB,EAAE,IAAI;oBAC7B,UAAU,EAAE,IAAI;iBACjB;aACoB,CAAC;SACzB;aAAM;YACL,oEAAoE;YACpE,uBAAuB,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,0BAA0B;gBACjC,OAAO,EAAE;oBACP,OAAO,EAAE,6BAA6B;oBACtC,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE;wBACN,KAAK,SAAS,sDAAsD;qBACrE;oBACD,YAAY,EAAE;wBACZ,KAAK,SAAS,4DAA4D;qBAC3E;iBACF;aACF,CAAC,CAAC;SACJ;QAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,GAAG,SAAS,0BAA0B;YAChD,QAAQ,EAAE,uBAAuB;SAClC,CAAC,CAAC;KACJ;IAED,IAAI,gCAAgC,CAAC,OAA8B,CAAC,EAAE;QACpE,MAAM,gBAAgB,GAAG,mBAAmB,CAC1C,SAAS,EACT,OAA8B,CAC/B,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC1C;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -103,6 +103,7 @@ function getBaseExtendedProps(item, enrichments, requestOptions) {
|
|
|
103
103
|
kind: null,
|
|
104
104
|
metadata: enrichments.metadata,
|
|
105
105
|
additionalResources: getAdditionalResources(item, enrichments.metadata, requestOptions),
|
|
106
|
+
downloads: getProp(item, "properties.downloads"),
|
|
106
107
|
};
|
|
107
108
|
}
|
|
108
109
|
//# sourceMappingURL=computeProps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/content/_internal/computeProps.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/content/_internal/computeProps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { UiSchemaMessageTypes, UiSchemaRuleEffects, } from "../../core/schemas/types";
|
|
2
|
+
import { getDownloadFlow } from "../../downloads/_internal/getDownloadFlow";
|
|
3
|
+
import { isHostedFeatureServiceMainEntity } from "../hostedServiceUtils";
|
|
4
|
+
/**
|
|
5
|
+
* @private
|
|
6
|
+
* Constructs the downloads section for an IHubEditableContent entity.
|
|
7
|
+
* Due to numerous product requirements, the content and state of this section
|
|
8
|
+
* can vary greatly depending on the entity type and configuration.
|
|
9
|
+
*
|
|
10
|
+
* @param i18nScope translation scope
|
|
11
|
+
* @param entity entity to get the downloads section for
|
|
12
|
+
* @returns ui schema elements for the downloads section
|
|
13
|
+
*/
|
|
14
|
+
export function getDownloadsSection(i18nScope, entity) {
|
|
15
|
+
const downloadSectionElements = [];
|
|
16
|
+
if (shouldShowExtractToggleElement(entity)) {
|
|
17
|
+
const extractToggleElement = getExtractToggleElement(i18nScope);
|
|
18
|
+
downloadSectionElements.push(extractToggleElement);
|
|
19
|
+
}
|
|
20
|
+
const downloadFormatsElement = getDownloadFormatsElement(i18nScope, entity);
|
|
21
|
+
downloadSectionElements.push(downloadFormatsElement);
|
|
22
|
+
return {
|
|
23
|
+
type: "Section",
|
|
24
|
+
labelKey: `${i18nScope}.sections.downloads.label`,
|
|
25
|
+
options: {},
|
|
26
|
+
elements: downloadSectionElements,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* NOTE: we only show the extract toggle for main entities of a hosted feature service
|
|
31
|
+
* since we can guarantee that the user will have the necessary permissions to enable
|
|
32
|
+
* extract capabilities on the service.
|
|
33
|
+
*/
|
|
34
|
+
function shouldShowExtractToggleElement(entity) {
|
|
35
|
+
return isHostedFeatureServiceMainEntity(entity);
|
|
36
|
+
}
|
|
37
|
+
function getExtractToggleElement(i18nScope) {
|
|
38
|
+
return {
|
|
39
|
+
labelKey: `${i18nScope}.fields.serverExtractCapability.label`,
|
|
40
|
+
scope: "/properties/serverExtractCapability",
|
|
41
|
+
type: "Control",
|
|
42
|
+
options: {
|
|
43
|
+
helperText: {
|
|
44
|
+
labelKey: `${i18nScope}.fields.serverExtractCapability.helperText`,
|
|
45
|
+
},
|
|
46
|
+
messages: [
|
|
47
|
+
{
|
|
48
|
+
type: UiSchemaMessageTypes.custom,
|
|
49
|
+
display: "notice",
|
|
50
|
+
kind: "warning",
|
|
51
|
+
icon: "exclamation-mark-triangle",
|
|
52
|
+
titleKey: `${i18nScope}.fields.serverExtractCapability.noFormatConfigurationNotice.title`,
|
|
53
|
+
labelKey: `${i18nScope}.fields.serverExtractCapability.noFormatConfigurationNotice.body`,
|
|
54
|
+
allowShowBeforeInteract: true,
|
|
55
|
+
conditions: [
|
|
56
|
+
{
|
|
57
|
+
scope: "/properties/serverExtractCapability",
|
|
58
|
+
schema: {
|
|
59
|
+
const: false,
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Returns the ui schema element for the download formats field. Populating this field
|
|
70
|
+
* is a complex process that depends on the entity type, configuration, and product requirements.
|
|
71
|
+
*/
|
|
72
|
+
function getDownloadFormatsElement(i18nScope, entity) {
|
|
73
|
+
const result = {
|
|
74
|
+
labelKey: `${i18nScope}.fields.downloadFormats.label`,
|
|
75
|
+
scope: "/properties/downloadFormats",
|
|
76
|
+
type: "Control",
|
|
77
|
+
options: {
|
|
78
|
+
control: "hub-field-input-list",
|
|
79
|
+
helperText: {
|
|
80
|
+
labelKey: `${i18nScope}.fields.downloadFormats.helperText`,
|
|
81
|
+
},
|
|
82
|
+
allowReorder: true,
|
|
83
|
+
allowHide: true,
|
|
84
|
+
},
|
|
85
|
+
rules: [],
|
|
86
|
+
};
|
|
87
|
+
// Product has asked that if the extract capability toggle is present, we should disable
|
|
88
|
+
// the download formats control when the toggle is off. We hope this will encourage more
|
|
89
|
+
// users to opt into the hosted downloads experience.
|
|
90
|
+
if (shouldShowExtractToggleElement(entity)) {
|
|
91
|
+
result.rules.push({
|
|
92
|
+
effect: UiSchemaRuleEffects.DISABLE,
|
|
93
|
+
conditions: [
|
|
94
|
+
{
|
|
95
|
+
scope: "/properties/serverExtractCapability",
|
|
96
|
+
schema: {
|
|
97
|
+
const: false,
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
});
|
|
102
|
+
// Product had us add this branch in to encourage users to make their content / service downloadable.
|
|
103
|
+
// This branch should run when the entity represents a service that cannot be downloaded and extract
|
|
104
|
+
// cannot be enabled. The control will list all the formats that _could_ be available if the user
|
|
105
|
+
// were to make the necessary changes
|
|
106
|
+
}
|
|
107
|
+
else if (shouldDisableDownloadFormatsControl(entity)) {
|
|
108
|
+
result.rules.push({
|
|
109
|
+
effect: UiSchemaRuleEffects.DISABLE,
|
|
110
|
+
conditions: [true],
|
|
111
|
+
});
|
|
112
|
+
result.options.messages = [
|
|
113
|
+
{
|
|
114
|
+
type: UiSchemaMessageTypes.custom,
|
|
115
|
+
display: "notice",
|
|
116
|
+
kind: "warning",
|
|
117
|
+
icon: "exclamation-mark-triangle",
|
|
118
|
+
titleKey: `${i18nScope}.fields.downloadFormats.downloadsUnavailableNotice.title`,
|
|
119
|
+
labelKey: `${i18nScope}.fields.downloadFormats.downloadsUnavailableNotice.body`,
|
|
120
|
+
allowShowBeforeInteract: true,
|
|
121
|
+
alwaysShow: true,
|
|
122
|
+
},
|
|
123
|
+
];
|
|
124
|
+
}
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Returns true when an entity represents a item/service that
|
|
129
|
+
* cannot be downloaded with its current configuration.
|
|
130
|
+
*/
|
|
131
|
+
function shouldDisableDownloadFormatsControl(entity) {
|
|
132
|
+
const downloadFlow = getDownloadFlow(entity);
|
|
133
|
+
return !downloadFlow;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=getDownloadsSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDownloadsSection.js","sourceRoot":"","sources":["../../../../src/content/_internal/getDownloadsSection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { canUseExportImageFlow } from "../../downloads/_internal/canUseExportImageFlow";
|
|
2
|
+
import { getProp } from "../../objects/get-prop";
|
|
3
|
+
/**
|
|
4
|
+
* @private
|
|
5
|
+
* Determines if the downloads configuration should be shown for an entity.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: product has asked that the download configuration be shown for entities that _can_
|
|
8
|
+
* be downloaded, as well as certain entities that _cannot_ be downloaded currently, but
|
|
9
|
+
* could be downloaded with a change in item / service settings.
|
|
10
|
+
*
|
|
11
|
+
* @param entity entity to check
|
|
12
|
+
* @returns whether downloads configuration should be shown
|
|
13
|
+
*/
|
|
14
|
+
export function shouldShowDownloadsConfiguration(entity) {
|
|
15
|
+
// NOTE: At this time, product has asked that we hide the downloads configuration
|
|
16
|
+
// for multi-layer service entities.
|
|
17
|
+
const isReferenceLayerEntity = ["Feature Service", "Map Service"].includes(entity.type) &&
|
|
18
|
+
/\/\d+$/.test(entity.url);
|
|
19
|
+
const isSingleLayerEntity = getProp(entity, "extendedProps.server.layers.length") === 1;
|
|
20
|
+
const isDownloadableImageService = canUseExportImageFlow(entity);
|
|
21
|
+
return (isReferenceLayerEntity || isSingleLayerEntity || isDownloadableImageService);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=shouldShowDownloadsConfiguration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shouldShowDownloadsConfiguration.js","sourceRoot":"","sources":["../../../../src/content/_internal/shouldShowDownloadsConfiguration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAA2B;IAE3B,iFAAiF;IACjF,oCAAoC;IACpC,MAAM,sBAAsB,GAC1B,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAE,MAA8B,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,mBAAmB,GACvB,OAAO,CAAC,MAAM,EAAE,oCAAoC,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEjE,OAAO,CACL,sBAAsB,IAAI,mBAAmB,IAAI,0BAA0B,CAC5E,CAAC;AACJ,CAAC"}
|
package/dist/esm/content/edit.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { __rest } from "tslib";
|
|
1
2
|
import { getItem, removeItem, } from "@esri/arcgis-rest-portal";
|
|
2
3
|
// Note - we separate these imports so we can cleanly spy on things in tests
|
|
3
4
|
import { createModel, updateModel, } from "../models";
|
|
@@ -11,7 +12,10 @@ import { updateServiceDefinition } from "@esri/arcgis-rest-service-admin";
|
|
|
11
12
|
import { hasServiceCapability, isHostedFeatureServiceMainEntity, ServiceCapabilities, toggleServiceCapability, } from "./hostedServiceUtils";
|
|
12
13
|
import { isDownloadSchedulingAvailable, maybeUpdateSchedule, } from "./manageSchedule";
|
|
13
14
|
import { forceUpdateContent } from "./_internal/internalContentUtils";
|
|
14
|
-
import { deepEqual } from "../objects";
|
|
15
|
+
import { deepEqual, getProp, setProp } from "../objects";
|
|
16
|
+
import { getDownloadFlow } from "../downloads/_internal/getDownloadFlow";
|
|
17
|
+
import { getDownloadConfiguration } from "../downloads/getDownloadConfiguration";
|
|
18
|
+
import { shouldShowDownloadsConfiguration } from "./_internal/shouldShowDownloadsConfiguration";
|
|
15
19
|
// TODO: move this to defaults?
|
|
16
20
|
const DEFAULT_CONTENT_MODEL = {
|
|
17
21
|
item: {
|
|
@@ -80,6 +84,22 @@ export async function updateContent(content, requestOptions) {
|
|
|
80
84
|
// we are not attempting to handle "concurrent edit" conflict resolution
|
|
81
85
|
// but this is where we would apply that sort of logic
|
|
82
86
|
const modelToUpdate = mapper.entityToStore(content, model);
|
|
87
|
+
// NOTE: Product has asked that we display a _disabled_ downloads configuration for
|
|
88
|
+
// certain types of entities, but not allow users to change any settings. The following
|
|
89
|
+
// checks are in place to make sure we don't accidentally save configurations in
|
|
90
|
+
// situations where we shouldn't
|
|
91
|
+
const downloadFlow = getDownloadFlow(content);
|
|
92
|
+
const updatedFormats = getProp(content, "extendedProps.downloads.formats");
|
|
93
|
+
const isMainEntityExtractDisabled = isHostedFeatureServiceMainEntity(content) &&
|
|
94
|
+
downloadFlow !== "createReplica";
|
|
95
|
+
const wasDownloadsConfigurationDisplayed = shouldShowDownloadsConfiguration(content);
|
|
96
|
+
if (wasDownloadsConfigurationDisplayed && // whether the downloads configuration was displayed
|
|
97
|
+
downloadFlow && // whether the entity can be downloaded
|
|
98
|
+
updatedFormats && // whether download format configuration is present
|
|
99
|
+
!isMainEntityExtractDisabled) {
|
|
100
|
+
const updatedDownloadsConfiguration = cloneObject(content.extendedProps.downloads);
|
|
101
|
+
setProp("item.properties.downloads", updatedDownloadsConfiguration, modelToUpdate, true);
|
|
102
|
+
}
|
|
83
103
|
// TODO: if we have resources disconnect them from the model for now.
|
|
84
104
|
// if (modelToUpdate.resources) {
|
|
85
105
|
// resources = configureBaseResources(
|
|
@@ -146,8 +166,25 @@ export async function deleteContent(id, requestOptions) {
|
|
|
146
166
|
*/
|
|
147
167
|
export function editorToContent(editor, portal) {
|
|
148
168
|
var _a;
|
|
149
|
-
//
|
|
150
|
-
const
|
|
169
|
+
// Clone the editor to prevent mutation
|
|
170
|
+
const clonedEditor = cloneObject(editor);
|
|
171
|
+
// Remove unneeded properties
|
|
172
|
+
delete clonedEditor.downloadFormats;
|
|
173
|
+
// Cast the editor to a content
|
|
174
|
+
const content = cloneObject(clonedEditor);
|
|
175
|
+
// Conditionally set the downloads configuration. We only want
|
|
176
|
+
// to set the configuration if the entity is actually downloadable
|
|
177
|
+
const downloadFlow = getDownloadFlow(content);
|
|
178
|
+
if (downloadFlow && editor.downloadFormats) {
|
|
179
|
+
const downloadConfiguration = getDownloadConfiguration(content);
|
|
180
|
+
// Convert the download format display objects to the stored format
|
|
181
|
+
const forStorage = editor.downloadFormats.map((format) => {
|
|
182
|
+
const { label } = format, rest = __rest(format, ["label"]);
|
|
183
|
+
return rest;
|
|
184
|
+
});
|
|
185
|
+
downloadConfiguration.formats = forStorage;
|
|
186
|
+
setProp("extendedProps.downloads", downloadConfiguration, content, true);
|
|
187
|
+
}
|
|
151
188
|
// copy the location extent up one level
|
|
152
189
|
content.extent = (_a = editor.location) === null || _a === void 0 ? void 0 : _a.extent;
|
|
153
190
|
return content;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/content/edit.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,OAAO,EACP,UAAU,GACX,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/content/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @private
|
|
3
|
+
* Determines if the given download format configuration is for
|
|
4
|
+
* an additional resource.
|
|
5
|
+
*
|
|
6
|
+
* @param config IDownloadFormatConfiguration
|
|
7
|
+
* @returns boolean
|
|
8
|
+
*/
|
|
9
|
+
export function isAdditionalResourceConfiguration(config) {
|
|
10
|
+
return config.key.startsWith("additionalResource::");
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @private
|
|
14
|
+
* Get's the index of the additional resource from the given
|
|
15
|
+
* download format configuration.
|
|
16
|
+
*
|
|
17
|
+
* @param config IDownloadFormatConfiguration
|
|
18
|
+
* @returns number - The index of the additional resource
|
|
19
|
+
*/
|
|
20
|
+
export function getAdditionalResourceIndex(config) {
|
|
21
|
+
return parseInt(config.key.split("::")[1], 10);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/downloads/_internal/additional-resources/utils.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAoC;IAEpC,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAoC;IAEpC,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { isHostedFeatureServiceMainEntity } from "../../content";
|
|
2
|
+
import { getProp } from "../../objects/get-prop";
|
|
3
|
+
import { getDownloadConfiguration } from "../getDownloadConfiguration";
|
|
4
|
+
import { getCreateReplicaFormats } from "./format-fetchers/getCreateReplicaFormats";
|
|
5
|
+
import { getPagingJobFormats } from "./format-fetchers/getPagingJobFormats";
|
|
6
|
+
import { getAdditionalResourceIndex, isAdditionalResourceConfiguration, } from "./additional-resources/utils";
|
|
7
|
+
/**
|
|
8
|
+
* @private
|
|
9
|
+
* Returns configuration objects for each download format that should be displayed
|
|
10
|
+
* in the editing experience of a content entity. This function should not be used
|
|
11
|
+
* to calculate the download formats that should be present on the live UI.
|
|
12
|
+
* @param entity entity to get download format configurations for
|
|
13
|
+
* @returns download format configurations to display
|
|
14
|
+
*/
|
|
15
|
+
export function getDownloadConfigurationDisplayFormats(entity) {
|
|
16
|
+
const configuration = getDownloadConfiguration(entity);
|
|
17
|
+
const flowType = configuration.flowType;
|
|
18
|
+
let formats = configuration.formats;
|
|
19
|
+
// For feature or map services that don't meet the criteria to be downloaded (i.e., no flowType)
|
|
20
|
+
// Product wants to show paging formats as a preview of what _could_ be downloaded should
|
|
21
|
+
// the criteria be met.
|
|
22
|
+
if (!flowType && ["Feature Service", "Map Service"].includes(entity.type)) {
|
|
23
|
+
const pagingFormats = getPagingJobFormats().map((f) => {
|
|
24
|
+
return {
|
|
25
|
+
key: f.format,
|
|
26
|
+
hidden: false,
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
// TODO: Should we just show paging formats as a preview or include additional resources?
|
|
30
|
+
formats = pagingFormats;
|
|
31
|
+
}
|
|
32
|
+
// For main entities of a hosted feature service with extract disabled, we want to display
|
|
33
|
+
// the list of createReplica formats as a preview of what _could_ be downloaded should
|
|
34
|
+
// the extract capability be enabled
|
|
35
|
+
if (isHostedFeatureServiceMainEntity(entity) &&
|
|
36
|
+
flowType !== "createReplica") {
|
|
37
|
+
const createReplicaFormats = getCreateReplicaFormats(entity).map((f) => {
|
|
38
|
+
return {
|
|
39
|
+
key: f.format,
|
|
40
|
+
hidden: false,
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
formats = createReplicaFormats;
|
|
44
|
+
}
|
|
45
|
+
const additionalResources = getProp(entity, "extendedProps.additionalResources") || [];
|
|
46
|
+
return formats.map((f) => isAdditionalResourceConfiguration(f)
|
|
47
|
+
? toAdditionalResourceConfigurationDisplay(f, additionalResources)
|
|
48
|
+
: toDownloadFormatConfigurationDisplay(f));
|
|
49
|
+
}
|
|
50
|
+
// Converts a download format configuration storage object to a display object
|
|
51
|
+
// (i.e., adds appropriate labels, etc.)
|
|
52
|
+
function toDownloadFormatConfigurationDisplay(config) {
|
|
53
|
+
return Object.assign({ label: `{{shared.fields.download.format.${config.key}:translate}}` }, config);
|
|
54
|
+
}
|
|
55
|
+
// Converts an additional resource configuration storage object to a display object
|
|
56
|
+
// (i.e., adds appropriate labels, etc.)
|
|
57
|
+
function toAdditionalResourceConfigurationDisplay(config, additionalResources) {
|
|
58
|
+
const resourceIndex = getAdditionalResourceIndex(config);
|
|
59
|
+
const { name, isDataSource } = additionalResources[resourceIndex];
|
|
60
|
+
let label;
|
|
61
|
+
// Prefer the name of the additional resource if it exists
|
|
62
|
+
if (name) {
|
|
63
|
+
label = `{{shared.fields.download.additionalResource|resourceName=${encodeURIComponent(name)}:translate}}`;
|
|
64
|
+
// If the additional resource is the data source...
|
|
65
|
+
}
|
|
66
|
+
else if (isDataSource) {
|
|
67
|
+
label = "{{shared.fields.download.dataSourceResource:translate}}";
|
|
68
|
+
// If the additional resource has no name...
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
label = "{{shared.fields.download.noTitleResource:translate}}";
|
|
72
|
+
}
|
|
73
|
+
return Object.assign({ label }, config);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=getDownloadConfigurationDisplayFormats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDownloadConfigurationDisplayFormats.js","sourceRoot":"","sources":["../../../../src/downloads/_internal/getDownloadConfigurationDisplayFormats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAOjE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;GAOG;AACH,MAAM,UAAU,sCAAsC,CACpD,MAA2B;IAE3B,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;IACxC,IAAI,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IAEpC,gGAAgG;IAChG,yFAAyF;IACzF,uBAAuB;IACvB,IAAI,CAAC,QAAQ,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACzE,MAAM,aAAa,GACjB,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,OAAO;gBACL,GAAG,EAAE,CAAC,CAAC,MAAM;gBACb,MAAM,EAAE,KAAK;aACd,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,yFAAyF;QACzF,OAAO,GAAG,aAAa,CAAC;KACzB;IAED,0FAA0F;IAC1F,sFAAsF;IACtF,oCAAoC;IACpC,IACE,gCAAgC,CAAC,MAAM,CAAC;QACxC,QAAQ,KAAK,eAAe,EAC5B;QACA,MAAM,oBAAoB,GACxB,uBAAuB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACxC,OAAO;gBACL,GAAG,EAAE,CAAC,CAAC,MAAM;gBACb,MAAM,EAAE,KAAK;aACd,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,OAAO,GAAG,oBAAoB,CAAC;KAChC;IAED,MAAM,mBAAmB,GACvB,OAAO,CAAC,MAAM,EAAE,mCAAmC,CAAC,IAAI,EAAE,CAAC;IAE7D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,iCAAiC,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,wCAAwC,CAAC,CAAC,EAAE,mBAAmB,CAAC;QAClE,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,wCAAwC;AACxC,SAAS,oCAAoC,CAC3C,MAAoC;IAEpC,uBACE,KAAK,EAAE,mCAAmC,MAAM,CAAC,GAAG,cAAc,IAC/D,MAAM,EACT;AACJ,CAAC;AAED,mFAAmF;AACnF,wCAAwC;AACxC,SAAS,wCAAwC,CAC/C,MAAoC,EACpC,mBAA6C;IAE7C,MAAM,aAAa,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAElE,IAAI,KAAK,CAAC;IACV,0DAA0D;IAC1D,IAAI,IAAI,EAAE;QACR,KAAK,GAAG,4DAA4D,kBAAkB,CACpF,IAAI,CACL,cAAc,CAAC;QAChB,mDAAmD;KACpD;SAAM,IAAI,YAAY,EAAE;QACvB,KAAK,GAAG,yDAAyD,CAAC;QAClE,4CAA4C;KAC7C;SAAM;QACL,KAAK,GAAG,sDAAsD,CAAC;KAChE;IAED,uBACE,KAAK,IACF,MAAM,EACT;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { canUseCreateReplica } from "../canUseCreateReplica";
|
|
2
|
+
import { canUseHubDownloadSystem } from "../canUseHubDownloadSystem";
|
|
3
|
+
import { canUseExportImageFlow } from "./canUseExportImageFlow";
|
|
4
|
+
/**
|
|
5
|
+
* @private
|
|
6
|
+
* Determines the download flow that will be used for the current entity.
|
|
7
|
+
* If the entity cannot be downloaded, returns null.
|
|
8
|
+
*
|
|
9
|
+
* @param entity the entity to get the download flow for
|
|
10
|
+
* @param isEnterprise whether the the download will be executed in an enterprise environment
|
|
11
|
+
* @returns the download flow that will be used for the current entity
|
|
12
|
+
*/
|
|
13
|
+
export function getDownloadFlow(entity, isEnterprise) {
|
|
14
|
+
let downloadFlow = null;
|
|
15
|
+
if (canUseCreateReplica(entity)) {
|
|
16
|
+
downloadFlow = "createReplica";
|
|
17
|
+
}
|
|
18
|
+
else if (canUseHubDownloadSystem(entity) && !isEnterprise) {
|
|
19
|
+
downloadFlow = "paging";
|
|
20
|
+
}
|
|
21
|
+
else if (canUseExportImageFlow(entity)) {
|
|
22
|
+
downloadFlow = "exportImage";
|
|
23
|
+
}
|
|
24
|
+
return downloadFlow;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=getDownloadFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDownloadFlow.js","sourceRoot":"","sources":["../../../../src/downloads/_internal/getDownloadFlow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,MAA2B,EAC3B,YAAsB;IAEtB,IAAI,YAAY,GAAqB,IAAI,CAAC;IAC1C,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;QAC/B,YAAY,GAAG,eAAe,CAAC;KAChC;SAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE;QAC3D,YAAY,GAAG,QAAQ,CAAC;KACzB;SAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;QACxC,YAAY,GAAG,aAAa,CAAC;KAC9B;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getCreateReplicaFormats } from "./format-fetchers/getCreateReplicaFormats";
|
|
2
|
+
import { getExportImageFormats } from "./format-fetchers/getExportImageFormats";
|
|
3
|
+
import { getPagingJobFormats } from "./format-fetchers/getPagingJobFormats";
|
|
4
|
+
/**
|
|
5
|
+
* @private
|
|
6
|
+
* Get the download formats for a given download flow and entity.
|
|
7
|
+
*
|
|
8
|
+
* @param downloadFlow DownloadFlowType
|
|
9
|
+
* @param entity IHubEditableContent
|
|
10
|
+
* @returns IDynamicDownloadFormat[]
|
|
11
|
+
*/
|
|
12
|
+
export function getDownloadFormatsByFlow(downloadFlow, entity) {
|
|
13
|
+
let downloadFormats = [];
|
|
14
|
+
const actionsByFlow = {
|
|
15
|
+
createReplica: () => {
|
|
16
|
+
downloadFormats = getCreateReplicaFormats(entity);
|
|
17
|
+
},
|
|
18
|
+
paging: () => {
|
|
19
|
+
downloadFormats = getPagingJobFormats();
|
|
20
|
+
},
|
|
21
|
+
exportImage: () => {
|
|
22
|
+
downloadFormats = getExportImageFormats(entity);
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
actionsByFlow[downloadFlow] && actionsByFlow[downloadFlow]();
|
|
26
|
+
return downloadFormats;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=getDownloadFormatsByFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDownloadFormatsByFlow.js","sourceRoot":"","sources":["../../../../src/downloads/_internal/getDownloadFormatsByFlow.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE5E;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAA8B,EAC9B,MAA2B;IAE3B,IAAI,eAAe,GAA6B,EAAE,CAAC;IACnD,MAAM,aAAa,GAAyC;QAC1D,aAAa,EAAE,GAAG,EAAE;YAClB,eAAe,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACX,eAAe,GAAG,mBAAmB,EAAE,CAAC;QAC1C,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,eAAe,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;IACF,aAAa,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;IAC7D,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import HubError from "../HubError";
|
|
2
2
|
import { canUseExportImageFlow } from "./_internal/canUseExportImageFlow";
|
|
3
3
|
import { canUseHubDownloadApi } from "./canUseHubDownloadApi";
|
|
4
|
+
import { getDownloadFormats } from "./getDownloadFormats";
|
|
4
5
|
/**
|
|
5
6
|
* Fetches a download file URL for the given entity and format.
|
|
6
7
|
* @param options options to refine / filter the results of the fetchDownloadFile operation
|
|
@@ -8,6 +9,8 @@ import { canUseHubDownloadApi } from "./canUseHubDownloadApi";
|
|
|
8
9
|
* @throws {ArcgisHubDownloadError} if the download file URL cannot be fetched for a well-known reason
|
|
9
10
|
*/
|
|
10
11
|
export async function fetchDownloadFile(options) {
|
|
12
|
+
// Make sure that format requested has been enabled for the entity
|
|
13
|
+
validateFormat(options);
|
|
11
14
|
// If the pollInterval is not set, default to 3 seconds
|
|
12
15
|
const withPollInterval = options.pollInterval == null ? Object.assign(Object.assign({}, options), { pollInterval: 3000 }) : options;
|
|
13
16
|
let fetchingFn;
|
|
@@ -22,4 +25,21 @@ export async function fetchDownloadFile(options) {
|
|
|
22
25
|
}
|
|
23
26
|
return fetchingFn(withPollInterval);
|
|
24
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Validates the format requested is enabled for the entity
|
|
30
|
+
* @param options options for the fetchDownloadFile operation
|
|
31
|
+
* @throws {HubError} if the format requested is not enabled for the entity
|
|
32
|
+
*/
|
|
33
|
+
function validateFormat(options) {
|
|
34
|
+
const { entity, context, format } = options;
|
|
35
|
+
const validServerFormats = getDownloadFormats({
|
|
36
|
+
entity,
|
|
37
|
+
context,
|
|
38
|
+
})
|
|
39
|
+
.filter((f) => f.type === "dynamic")
|
|
40
|
+
.map((f) => f.format);
|
|
41
|
+
if (!validServerFormats.includes(format)) {
|
|
42
|
+
throw new HubError("fetchDownloadFile", `The following format is not enabled for the entity: ${format}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
25
45
|
//# sourceMappingURL=fetchDownloadFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchDownloadFile.js","sourceRoot":"","sources":["../../../src/downloads/fetchDownloadFile.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"fetchDownloadFile.js","sourceRoot":"","sources":["../../../src/downloads/fetchDownloadFile.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQ1D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAkC;IAElC,kEAAkE;IAClE,cAAc,CAAC,OAAO,CAAC,CAAC;IAExB,uDAAuD;IACvD,MAAM,gBAAgB,GACpB,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,iCAAM,OAAO,KAAE,YAAY,EAAE,IAAI,IAAG,CAAC,CAAC,OAAO,CAAC;IAE9E,IAAI,UAAU,CAAC;IACf,IAAI,oBAAoB,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAC3E,UAAU,GAAG,CACX,MAAM,MAAM,CAAC,uDAAuD,CAAC,CACtE,CAAC,uBAAuB,CAAC;KAC3B;SAAM,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;QACzD,UAAU,GAAG,CACX,MAAM,MAAM,CAAC,4DAA4D,CAAC,CAC3E,CAAC,4BAA4B,CAAC;KAChC;SAAM;QACL,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,+DAA+D,CAChE,CAAC;KACH;IACD,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,OAAkC;IACxD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC5C,MAAM,kBAAkB,GAA4B,kBAAkB,CAAC;QACrE,MAAM;QACN,OAAO;KACR,CAAC;SACC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;SACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAA4B,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACxC,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,uDAAuD,MAAM,EAAE,CAChE,CAAC;KACH;AACH,CAAC"}
|