@esri/hub-common 14.168.2 → 14.170.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/_internal/ContentBusinessRules.js +6 -0
- package/dist/esm/content/_internal/ContentBusinessRules.js.map +1 -1
- package/dist/esm/core/_internal/getBasePropertyMap.js +1 -1
- package/dist/esm/core/_internal/getBasePropertyMap.js.map +1 -1
- package/dist/esm/core/types/IHubProject.js.map +1 -1
- package/dist/esm/discussions/api/types.js.map +1 -1
- package/dist/esm/discussions/defaults.js +2 -0
- package/dist/esm/discussions/defaults.js.map +1 -1
- package/dist/esm/events/defaults.js +1 -1
- package/dist/esm/events/defaults.js.map +1 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/initiatives/defaults.js +2 -0
- package/dist/esm/initiatives/defaults.js.map +1 -1
- package/dist/esm/permissions/HubPermissionPolicies.js +4 -0
- package/dist/esm/permissions/HubPermissionPolicies.js.map +1 -1
- package/dist/esm/permissions/checkPermission.js +16 -14
- package/dist/esm/permissions/checkPermission.js.map +1 -1
- package/dist/esm/permissions/types/Permission.js +1 -0
- package/dist/esm/permissions/types/Permission.js.map +1 -1
- package/dist/esm/projects/defaults.js +2 -0
- package/dist/esm/projects/defaults.js.map +1 -1
- package/dist/esm/search/Catalog.js +85 -54
- package/dist/esm/search/Catalog.js.map +1 -1
- package/dist/esm/search/_internal/getCatalogGroups.js +51 -0
- package/dist/esm/search/_internal/getCatalogGroups.js.map +1 -0
- package/dist/esm/search/_internal/getEntityTypeFromType.js +1 -1
- package/dist/esm/search/_internal/getUserGroupsFromQuery.js +46 -0
- package/dist/esm/search/_internal/getUserGroupsFromQuery.js.map +1 -0
- package/dist/esm/search/_internal/getWorkflowForType.js +211 -0
- package/dist/esm/search/_internal/getWorkflowForType.js.map +1 -0
- package/dist/esm/search/_internal/index.js +2 -0
- package/dist/esm/search/_internal/index.js.map +1 -1
- package/dist/esm/search/_internal/negateGroupPredicates.js +2 -2
- package/dist/esm/search/_internal/negateGroupPredicates.js.map +1 -1
- package/dist/esm/search/_internal/portalSearchItems.js +12 -2
- package/dist/esm/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/esm/search/getAddContentConfig.js +230 -0
- package/dist/esm/search/getAddContentConfig.js.map +1 -0
- package/dist/esm/search/getPredicateValues.js +32 -0
- package/dist/esm/search/getPredicateValues.js.map +1 -0
- package/dist/esm/search/searchCatalogs.js +66 -0
- package/dist/esm/search/searchCatalogs.js.map +1 -0
- package/dist/esm/search/searchEntityCatalogs.js +19 -0
- package/dist/esm/search/searchEntityCatalogs.js.map +1 -0
- package/dist/esm/search/serializeQueryForPortal.js +4 -4
- package/dist/esm/search/serializeQueryForPortal.js.map +1 -1
- package/dist/esm/search/types/AddContentWorkflowTypes.js +1 -0
- package/dist/esm/search/types/AddContentWorkflowTypes.js.map +1 -0
- package/dist/esm/search/types/IGroupsByMembership.js +4 -0
- package/dist/esm/search/types/IGroupsByMembership.js.map +1 -0
- package/dist/esm/search/types/index.js +1 -1
- package/dist/esm/search/types/index.js.map +1 -1
- package/dist/esm/sites/defaults.js +2 -0
- package/dist/esm/sites/defaults.js.map +1 -1
- package/dist/node/content/_internal/ContentBusinessRules.js +6 -0
- package/dist/node/content/_internal/ContentBusinessRules.js.map +1 -1
- package/dist/node/core/_internal/getBasePropertyMap.js +1 -1
- package/dist/node/core/_internal/getBasePropertyMap.js.map +1 -1
- package/dist/node/core/types/IHubProject.js.map +1 -1
- package/dist/node/discussions/api/types.js.map +1 -1
- package/dist/node/discussions/defaults.js +2 -0
- package/dist/node/discussions/defaults.js.map +1 -1
- package/dist/node/events/defaults.js +1 -1
- package/dist/node/events/defaults.js.map +1 -1
- package/dist/node/index.js +5 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/initiatives/defaults.js +2 -0
- package/dist/node/initiatives/defaults.js.map +1 -1
- package/dist/node/permissions/HubPermissionPolicies.js +4 -0
- package/dist/node/permissions/HubPermissionPolicies.js.map +1 -1
- package/dist/node/permissions/checkPermission.js +16 -14
- package/dist/node/permissions/checkPermission.js.map +1 -1
- package/dist/node/permissions/types/Permission.js +1 -0
- package/dist/node/permissions/types/Permission.js.map +1 -1
- package/dist/node/projects/defaults.js +2 -0
- package/dist/node/projects/defaults.js.map +1 -1
- package/dist/node/search/Catalog.js +85 -54
- package/dist/node/search/Catalog.js.map +1 -1
- package/dist/node/search/_internal/getCatalogGroups.js +55 -0
- package/dist/node/search/_internal/getCatalogGroups.js.map +1 -0
- package/dist/node/search/_internal/getEntityTypeFromType.js +1 -1
- package/dist/node/search/_internal/getUserGroupsFromQuery.js +50 -0
- package/dist/node/search/_internal/getUserGroupsFromQuery.js.map +1 -0
- package/dist/node/search/_internal/getWorkflowForType.js +216 -0
- package/dist/node/search/_internal/getWorkflowForType.js.map +1 -0
- package/dist/node/search/_internal/index.js +2 -0
- package/dist/node/search/_internal/index.js.map +1 -1
- package/dist/node/search/_internal/negateGroupPredicates.js +1 -1
- package/dist/node/search/_internal/negateGroupPredicates.js.map +1 -1
- package/dist/node/search/_internal/portalSearchItems.js +15 -4
- package/dist/node/search/_internal/portalSearchItems.js.map +1 -1
- package/dist/node/search/getAddContentConfig.js +234 -0
- package/dist/node/search/getAddContentConfig.js.map +1 -0
- package/dist/node/search/getPredicateValues.js +36 -0
- package/dist/node/search/getPredicateValues.js.map +1 -0
- package/dist/node/search/searchCatalogs.js +70 -0
- package/dist/node/search/searchCatalogs.js.map +1 -0
- package/dist/node/search/searchEntityCatalogs.js +23 -0
- package/dist/node/search/searchEntityCatalogs.js.map +1 -0
- package/dist/node/search/serializeQueryForPortal.js +4 -4
- package/dist/node/search/serializeQueryForPortal.js.map +1 -1
- package/dist/node/search/types/{ISearchResponseHash.js → AddContentWorkflowTypes.js} +1 -1
- package/dist/node/search/types/AddContentWorkflowTypes.js.map +1 -0
- package/dist/node/search/types/IGroupsByMembership.js +6 -0
- package/dist/node/search/types/IGroupsByMembership.js.map +1 -0
- package/dist/node/search/types/index.js +1 -1
- package/dist/node/search/types/index.js.map +1 -1
- package/dist/node/sites/defaults.js +2 -0
- package/dist/node/sites/defaults.js.map +1 -1
- package/dist/types/content/_internal/ContentBusinessRules.d.ts +1 -1
- package/dist/types/core/traits/IWithCatalog.d.ts +9 -0
- package/dist/types/core/types/IHubDiscussion.d.ts +4 -2
- package/dist/types/core/types/IHubEvent.d.ts +4 -2
- package/dist/types/core/types/IHubInitiative.d.ts +5 -2
- package/dist/types/core/types/IHubItemEntity.d.ts +3 -1
- package/dist/types/core/types/IHubProject.d.ts +3 -2
- package/dist/types/core/types/IHubSite.d.ts +6 -2
- package/dist/types/discussions/api/types.d.ts +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/search/Catalog.d.ts +15 -12
- package/dist/types/search/_internal/getCatalogGroups.d.ts +11 -0
- package/dist/types/search/_internal/getEntityTypeFromType.d.ts +1 -1
- package/dist/types/search/_internal/getUserGroupsFromQuery.d.ts +13 -0
- package/dist/types/search/_internal/getWorkflowForType.d.ts +61 -0
- package/dist/types/search/_internal/index.d.ts +2 -0
- package/dist/types/search/_internal/portalSearchItems.d.ts +7 -0
- package/dist/types/search/getAddContentConfig.d.ts +11 -0
- package/dist/types/search/getPredicateValues.d.ts +8 -0
- package/dist/types/search/searchCatalogs.d.ts +15 -0
- package/dist/types/search/searchEntityCatalogs.d.ts +15 -0
- package/dist/types/search/types/AddContentWorkflowTypes.d.ts +36 -0
- package/dist/types/search/types/IGroupsByMembership.d.ts +22 -0
- package/dist/types/search/types/IHubCatalog.d.ts +14 -0
- package/dist/types/search/types/IHubSearchOptions.d.ts +29 -17
- package/dist/types/search/types/index.d.ts +1 -1
- package/dist/types/search/types/types.d.ts +16 -0
- package/package.json +1 -1
- package/dist/esm/search/types/ISearchResponseHash.js +0 -1
- package/dist/esm/search/types/ISearchResponseHash.js.map +0 -1
- package/dist/node/search/types/ISearchResponseHash.js.map +0 -1
- package/dist/types/search/types/ISearchResponseHash.d.ts +0 -7
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDefaultCreateableTypes = exports.getWorkflowForType = void 0;
|
|
4
|
+
const checkPermission_1 = require("../../permissions/checkPermission");
|
|
5
|
+
/**
|
|
6
|
+
* Given a type and context, return the workflows that are available to the user.
|
|
7
|
+
* This checks the permissions for defined for the type, and if the user has the
|
|
8
|
+
* permission, returns the workflows defined for the type.
|
|
9
|
+
* @param type
|
|
10
|
+
* @param context
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
function getWorkflowForType(type, context) {
|
|
14
|
+
// Default response is an empty array of workflows
|
|
15
|
+
// meaning the user can not do anything with this type
|
|
16
|
+
const response = {
|
|
17
|
+
type,
|
|
18
|
+
targetEntity: "item",
|
|
19
|
+
workflows: [],
|
|
20
|
+
};
|
|
21
|
+
// If the type has a definition, we use those settings, but otherwise
|
|
22
|
+
// we default to "existing"
|
|
23
|
+
const definition = TypeWorkflowDefinitions.find((ct) => ct.type === type);
|
|
24
|
+
// if we don't have a definition, we default to "existing"
|
|
25
|
+
if (!definition) {
|
|
26
|
+
// check of the user can share items
|
|
27
|
+
if (checkPermission_1.checkPermission("platform:portal:user:shareToGroup", context).access) {
|
|
28
|
+
response.workflows = ["existing"];
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// if the user can't share items, we don't return any workflows
|
|
32
|
+
// FUTURE: Add the failed permisson check to the response
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// ensure the targetEntity is set
|
|
37
|
+
response.targetEntity = definition.targetEntity;
|
|
38
|
+
// otherwise we check the permission first...
|
|
39
|
+
if (checkPermission_1.checkPermission(definition.permission, context).access) {
|
|
40
|
+
response.workflows = definition.workflows;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// we leave the workflows empty if the user does not have the permission
|
|
44
|
+
// FUTURE: Add the failed permisson check to the response
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return response;
|
|
48
|
+
}
|
|
49
|
+
exports.getWorkflowForType = getWorkflowForType;
|
|
50
|
+
/**
|
|
51
|
+
* Return a list of types to use as the "default" types a user could possibly
|
|
52
|
+
* create / add (depending on permissions and group access).
|
|
53
|
+
* This list is used when an IQuery does not have type predicates, which
|
|
54
|
+
* we interpret as "all types", which is this list.
|
|
55
|
+
* @param context
|
|
56
|
+
* @returns
|
|
57
|
+
*/
|
|
58
|
+
function getDefaultCreateableTypes(context, limitTo = []) {
|
|
59
|
+
const itemCreateableTypes = ["Hub Project", "Hub Initiative", "Discussion"];
|
|
60
|
+
// If the user has the hub:license:enterprise-sites permission
|
|
61
|
+
// they are on Enterprise and the types are "site applications" and "site pages"
|
|
62
|
+
if (checkPermission_1.checkPermission("hub:environment:enterprise", context).access) {
|
|
63
|
+
itemCreateableTypes.push("Site Application");
|
|
64
|
+
itemCreateableTypes.push("Site Page");
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Otherwise we infer they are running on AGO, and can
|
|
68
|
+
// the types are "hub site applications" and "hub pages"
|
|
69
|
+
itemCreateableTypes.push("Hub Site Application");
|
|
70
|
+
itemCreateableTypes.push("Hub Page");
|
|
71
|
+
}
|
|
72
|
+
const eventCreateableTypes = ["Event"];
|
|
73
|
+
const groupCreateableTypes = ["Group"];
|
|
74
|
+
let response = [];
|
|
75
|
+
if (limitTo.length) {
|
|
76
|
+
if (limitTo.includes("item")) {
|
|
77
|
+
response = itemCreateableTypes;
|
|
78
|
+
}
|
|
79
|
+
if (limitTo.includes("event")) {
|
|
80
|
+
response = [...response, ...eventCreateableTypes];
|
|
81
|
+
}
|
|
82
|
+
if (limitTo.includes("group")) {
|
|
83
|
+
response = [...response, ...groupCreateableTypes];
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
response = [
|
|
88
|
+
...itemCreateableTypes,
|
|
89
|
+
...eventCreateableTypes,
|
|
90
|
+
...groupCreateableTypes,
|
|
91
|
+
];
|
|
92
|
+
}
|
|
93
|
+
return response;
|
|
94
|
+
}
|
|
95
|
+
exports.getDefaultCreateableTypes = getDefaultCreateableTypes;
|
|
96
|
+
/**
|
|
97
|
+
* @internal
|
|
98
|
+
* Define the content types and their workflows
|
|
99
|
+
* Note: This does not include non-item backed types like Event or Group
|
|
100
|
+
* which are handled separately in getQueryContentConfig
|
|
101
|
+
* Note: This is not exported from the package so changes are non-breaking
|
|
102
|
+
* in terms of semver.
|
|
103
|
+
*/
|
|
104
|
+
const TypeWorkflowDefinitions = [
|
|
105
|
+
{
|
|
106
|
+
type: "Discussion",
|
|
107
|
+
targetEntity: "item",
|
|
108
|
+
permission: "hub:discussion:create",
|
|
109
|
+
workflows: ["create", "existing"],
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: "Hub Project",
|
|
113
|
+
targetEntity: "item",
|
|
114
|
+
permission: "hub:project:create",
|
|
115
|
+
workflows: ["create", "existing"],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: "Hub Page",
|
|
119
|
+
targetEntity: "item",
|
|
120
|
+
permission: "hub:page:create",
|
|
121
|
+
workflows: ["create", "existing"],
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: "Site Page",
|
|
125
|
+
targetEntity: "item",
|
|
126
|
+
permission: "hub:page:create",
|
|
127
|
+
workflows: ["create", "existing"],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: "Hub Initiative",
|
|
131
|
+
targetEntity: "item",
|
|
132
|
+
permission: "hub:initiative:create",
|
|
133
|
+
workflows: ["create", "existing"],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: "Hub Site Application",
|
|
137
|
+
targetEntity: "item",
|
|
138
|
+
permission: "hub:site:create",
|
|
139
|
+
workflows: ["create", "existing"],
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: "Site Application",
|
|
143
|
+
targetEntity: "item",
|
|
144
|
+
permission: "hub:site:create",
|
|
145
|
+
workflows: ["create", "existing"],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: "Group",
|
|
149
|
+
targetEntity: "group",
|
|
150
|
+
permission: "hub:group:create",
|
|
151
|
+
workflows: ["create"],
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: "Event",
|
|
155
|
+
targetEntity: "event",
|
|
156
|
+
permission: "hub:event:create",
|
|
157
|
+
workflows: ["create", "existing"],
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
// Documents will be uploadable / creatable by Hub
|
|
161
|
+
// so this entry exists separate from the others
|
|
162
|
+
// which will be created in AGO, and just ADDED
|
|
163
|
+
// via Hub
|
|
164
|
+
type: "$document",
|
|
165
|
+
targetEntity: "item",
|
|
166
|
+
permission: "hub:content:document:create",
|
|
167
|
+
workflows: ["upload", "existing"],
|
|
168
|
+
},
|
|
169
|
+
// Anything that just has existing really just needs
|
|
170
|
+
// to check if the user has the permission to share
|
|
171
|
+
// which we can do with the platform permission vs having
|
|
172
|
+
// to define a specific permission for each type
|
|
173
|
+
{
|
|
174
|
+
type: "$application",
|
|
175
|
+
targetEntity: "item",
|
|
176
|
+
permission: "platform:portal:user:shareToGroup",
|
|
177
|
+
workflows: ["existing"],
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
type: "$feedback",
|
|
181
|
+
targetEntity: "item",
|
|
182
|
+
permission: "platform:portal:user:shareToGroup",
|
|
183
|
+
workflows: ["existing"],
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
type: "$dashboard",
|
|
187
|
+
targetEntity: "item",
|
|
188
|
+
permission: "platform:portal:user:shareToGroup",
|
|
189
|
+
workflows: ["existing"],
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
type: "$dataset",
|
|
193
|
+
targetEntity: "item",
|
|
194
|
+
permission: "platform:portal:user:shareToGroup",
|
|
195
|
+
workflows: ["existing"],
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
type: "$experience",
|
|
199
|
+
targetEntity: "item",
|
|
200
|
+
permission: "platform:portal:user:shareToGroup",
|
|
201
|
+
workflows: ["existing"],
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: "$storymap",
|
|
205
|
+
targetEntity: "item",
|
|
206
|
+
permission: "platform:portal:user:shareToGroup",
|
|
207
|
+
workflows: ["existing"],
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: "$webmap",
|
|
211
|
+
targetEntity: "item",
|
|
212
|
+
permission: "platform:portal:user:shareToGroup",
|
|
213
|
+
workflows: ["existing"],
|
|
214
|
+
},
|
|
215
|
+
];
|
|
216
|
+
//# sourceMappingURL=getWorkflowForType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getWorkflowForType.js","sourceRoot":"","sources":["../../../../src/search/_internal/getWorkflowForType.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,4 +8,6 @@ tslib_1.__exportStar(require("./portalSearchUsers"), exports);
|
|
|
8
8
|
tslib_1.__exportStar(require("./hubSearchChannels"), exports);
|
|
9
9
|
tslib_1.__exportStar(require("./hubSearchEvents"), exports);
|
|
10
10
|
tslib_1.__exportStar(require("./hubSearchEventAttendees"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./getWorkflowForType"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./getCatalogGroups"), exports);
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/search/_internal/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,2DAAiC;AACjC,+DAAqC;AACrC,8DAAoC;AACpC,8DAAoC;AACpC,4DAAkC;AAClC,oEAA0C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/search/_internal/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,2DAAiC;AACjC,+DAAqC;AACrC,8DAAoC;AACpC,8DAAoC;AACpC,4DAAkC;AAClC,oEAA0C;AAC1C,+DAAqC;AACrC,6DAAmC"}
|
|
@@ -14,7 +14,7 @@ function negateGroupPredicates(query) {
|
|
|
14
14
|
if (!query) {
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
17
|
-
const expanded = portalSearchItems_1.
|
|
17
|
+
const expanded = portalSearchItems_1.expandPredicates(query);
|
|
18
18
|
// negate the group predicate on the query
|
|
19
19
|
// we opted to be surgical about this vs attempting a `negateQuery(query)` function
|
|
20
20
|
expanded.filters.forEach((f) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"negateGroupPredicates.js","sourceRoot":"","sources":["../../../../src/search/_internal/negateGroupPredicates.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"negateGroupPredicates.js","sourceRoot":"","sources":["../../../../src/search/_internal/negateGroupPredicates.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AAEvD;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,KAAa;IACjD,gDAAgD;IAChD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;KACR;IACD,MAAM,QAAQ,GAAG,oCAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,0CAA0C;IAC1C,mFAAmF;IACnF,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/D,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;gBACjB,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAlBD,sDAkBC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isWellKnownTypeFilter = exports.applyWellKnownItemPredicates = exports.applyWellKnownCollectionFilters = exports.WellKnownItemPredicates = exports.itemToSearchResult = exports.expandQuery = exports.portalSearchItemsAsItems = exports.portalSearchItems = void 0;
|
|
3
|
+
exports.isWellKnownTypeFilter = exports.applyWellKnownItemPredicates = exports.applyWellKnownCollectionFilters = exports.WellKnownItemPredicates = exports.itemToSearchResult = exports.expandPredicates = exports.expandQuery = exports.portalSearchItemsAsItems = exports.portalSearchItems = void 0;
|
|
4
4
|
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
5
5
|
const serializeQueryForPortal_1 = require("../serializeQueryForPortal");
|
|
6
6
|
const HubPages_1 = require("../../pages/HubPages");
|
|
@@ -54,13 +54,24 @@ function expandQuery(query) {
|
|
|
54
54
|
// TODO: Should we remove this with the whole idea of collections?
|
|
55
55
|
updatedQuery = applyWellKnownItemPredicates(updatedQuery);
|
|
56
56
|
// Expand the individual predicates in each filter
|
|
57
|
-
|
|
57
|
+
return expandPredicates(updatedQuery);
|
|
58
|
+
}
|
|
59
|
+
exports.expandQuery = expandQuery;
|
|
60
|
+
/**
|
|
61
|
+
* Expand the predicates in a query without applying
|
|
62
|
+
* the well-known type expansions
|
|
63
|
+
* @param query
|
|
64
|
+
* @returns
|
|
65
|
+
*/
|
|
66
|
+
function expandPredicates(query) {
|
|
67
|
+
const clonedQuery = util_1.cloneObject(query);
|
|
68
|
+
clonedQuery.filters = clonedQuery.filters.map((filter) => {
|
|
58
69
|
filter.predicates = filter.predicates.map(expandPredicate_1.expandPredicate);
|
|
59
70
|
return filter;
|
|
60
71
|
});
|
|
61
|
-
return
|
|
72
|
+
return clonedQuery;
|
|
62
73
|
}
|
|
63
|
-
exports.
|
|
74
|
+
exports.expandPredicates = expandPredicates;
|
|
64
75
|
/**
|
|
65
76
|
* Common preprocessing for search options and the query
|
|
66
77
|
* @param options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":";;;AAAA,iEAA8E;AAE9E,wEAAqE;AAErE,mDAA8D;AAC9D,6CAA2D;AAC3D,uCAAqD;AACrD,qEAAgF;AAChF,iDAAmE;AAYnE,oCAA2E;AAC3E,2DAAgE;AAChE,uDAAoD;AACpD,6CAAsC;AACtC,iDAAiE;AACjE,qCAAyC;AACzC,0DAA6D;AAC7D,2CAAwC;AAExC;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,OAA0B;IAE1B,MAAM,0BAA0B,GAAG,sCAA8B,CAAC,KAAK,CAAC,CAAC;IACzE,MAAM,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;IACpE,OAAO,6BAA6B,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AAPD,8CAOC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CACtC,KAAa,EACb,OAA0B;IAE1B,MAAM,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAND,4DAMC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,KAAa;IACvC,IAAI,YAAY,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;IAC1D,iCAAiC;IACjC,kEAAkE;IAClE,YAAY,GAAG,4BAA4B,CAAC,YAAY,CAAC,CAAC;IAC1D,kDAAkD;IAClD,YAAY,CAAC,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"portalSearchItems.js","sourceRoot":"","sources":["../../../../src/search/_internal/portalSearchItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAddContentConfig = void 0;
|
|
4
|
+
const checkPermission_1 = require("../permissions/checkPermission");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const negateGroupPredicates_1 = require("./_internal/negateGroupPredicates");
|
|
7
|
+
const getPredicateValues_1 = require("./getPredicateValues");
|
|
8
|
+
const getWorkflowForType_1 = require("./_internal/getWorkflowForType");
|
|
9
|
+
const get_prop_1 = require("../objects/get-prop");
|
|
10
|
+
const getUserGroupsFromQuery_1 = require("./_internal/getUserGroupsFromQuery");
|
|
11
|
+
const _internal_1 = require("./_internal");
|
|
12
|
+
const EmptyAddContentWorkflowConfig = {
|
|
13
|
+
create: null,
|
|
14
|
+
upload: null,
|
|
15
|
+
existing: null,
|
|
16
|
+
state: "disabled",
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Get the add content configuration, given nothing, or a catalog or query.
|
|
20
|
+
* Delegates to the appropriate function based on the type of the input.
|
|
21
|
+
* @param context
|
|
22
|
+
* @param catalogOrQuery
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
function getAddContentConfig(context, catalogOrQuery) {
|
|
26
|
+
if (catalogOrQuery) {
|
|
27
|
+
if (get_prop_1.getProp(catalogOrQuery, "targetEntity")) {
|
|
28
|
+
return getAddContentConfigForQuery(catalogOrQuery, context);
|
|
29
|
+
}
|
|
30
|
+
else if (get_prop_1.getProp(catalogOrQuery, "schemaVersion")) {
|
|
31
|
+
return getAddContentConfigForCatalog(catalogOrQuery, context);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// Some other type of object was passed in, so just return an empty config
|
|
35
|
+
const result = util_1.cloneObject(EmptyAddContentWorkflowConfig);
|
|
36
|
+
result.reason = "invalid-object";
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// nothing was passed in, so return the default config
|
|
42
|
+
return getDefaultAddContentConfig(context);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.getAddContentConfig = getAddContentConfig;
|
|
46
|
+
/**
|
|
47
|
+
* Return the default add content config for the user
|
|
48
|
+
* This will just have "create" entries for the types the user can create
|
|
49
|
+
* @param context
|
|
50
|
+
* @returns
|
|
51
|
+
*/
|
|
52
|
+
function getDefaultAddContentConfig(context) {
|
|
53
|
+
var _a;
|
|
54
|
+
const response = util_1.cloneObject(EmptyAddContentWorkflowConfig);
|
|
55
|
+
// get the types the user can create
|
|
56
|
+
const types = getWorkflowForType_1.getDefaultCreateableTypes(context);
|
|
57
|
+
const workflowTypes = types.map((type) => {
|
|
58
|
+
return getWorkflowForType_1.getWorkflowForType(type, context);
|
|
59
|
+
});
|
|
60
|
+
workflowTypes.forEach((wft) => {
|
|
61
|
+
// Looked at DRYing this up but typescript complained so I left it
|
|
62
|
+
if (wft.workflows.includes("create")) {
|
|
63
|
+
if (!response.create) {
|
|
64
|
+
response.create = {
|
|
65
|
+
targetEntity: wft.targetEntity,
|
|
66
|
+
workflow: "create",
|
|
67
|
+
types: [],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
response.create.types.push(wft.type);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
response.state = ((_a = response.create) === null || _a === void 0 ? void 0 : _a.types.length) ? "enabled" : "disabled";
|
|
74
|
+
if (response.state === "disabled") {
|
|
75
|
+
response.reason = "no-permission";
|
|
76
|
+
}
|
|
77
|
+
return response;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Given a catalog, collect all the groups in all the predicates
|
|
81
|
+
* which the user is an owner, admin, or member of; and return
|
|
82
|
+
* the default createable types for the user.
|
|
83
|
+
* @param catalog
|
|
84
|
+
* @param context
|
|
85
|
+
* @returns
|
|
86
|
+
*/
|
|
87
|
+
function getAddContentConfigForCatalog(catalog, context) {
|
|
88
|
+
let response = util_1.cloneObject(EmptyAddContentWorkflowConfig);
|
|
89
|
+
const userGroups = _internal_1.getCatalogGroups(catalog, context);
|
|
90
|
+
if (!userGroups.owner.length &&
|
|
91
|
+
!userGroups.admin.length &&
|
|
92
|
+
!userGroups.member.length) {
|
|
93
|
+
response.state = "disabled";
|
|
94
|
+
response.reason = "not-in-groups";
|
|
95
|
+
return response;
|
|
96
|
+
}
|
|
97
|
+
// We don't try to get the types from the catalog
|
|
98
|
+
// we just use the default createable types
|
|
99
|
+
response = getDefaultAddContentConfig(context);
|
|
100
|
+
if (response.create) {
|
|
101
|
+
response.create.groups = userGroups;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
response.state = "disabled";
|
|
105
|
+
response.reason = "no-permission";
|
|
106
|
+
}
|
|
107
|
+
return response;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get the config for a specific IQuery
|
|
111
|
+
* Delegates based on targetEntity
|
|
112
|
+
* @param query
|
|
113
|
+
* @param context
|
|
114
|
+
* @returns
|
|
115
|
+
*/
|
|
116
|
+
function getAddContentConfigForQuery(query, context) {
|
|
117
|
+
if (query.targetEntity === "item") {
|
|
118
|
+
return getAddContentConfigForItemQuery(query, context);
|
|
119
|
+
}
|
|
120
|
+
else if (query.targetEntity === "event") {
|
|
121
|
+
return getAddContentConfigForEventQuery(query, context);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const response = util_1.cloneObject(EmptyAddContentWorkflowConfig);
|
|
125
|
+
response.state = "disabled";
|
|
126
|
+
response.reason = "unsupported-target-entity";
|
|
127
|
+
return response;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Specific logic for targetEntity="event"
|
|
132
|
+
* @param query
|
|
133
|
+
* @param userGroups
|
|
134
|
+
* @param response
|
|
135
|
+
* @param context
|
|
136
|
+
* @returns
|
|
137
|
+
*/
|
|
138
|
+
function getAddContentConfigForEventQuery(query, context) {
|
|
139
|
+
const response = util_1.cloneObject(EmptyAddContentWorkflowConfig);
|
|
140
|
+
const userGroups = getUserGroupsFromQuery_1.getUserGroupsFromQuery(query, context.currentUser);
|
|
141
|
+
if (!userGroups.owner.length &&
|
|
142
|
+
!userGroups.admin.length &&
|
|
143
|
+
!userGroups.member.length) {
|
|
144
|
+
response.state = "disabled";
|
|
145
|
+
response.reason = "not-in-groups";
|
|
146
|
+
return response;
|
|
147
|
+
}
|
|
148
|
+
// events can be created or added but the user needs permission
|
|
149
|
+
if (checkPermission_1.checkPermission("hub:event:create", context).access) {
|
|
150
|
+
response.create = {
|
|
151
|
+
targetEntity: "event",
|
|
152
|
+
workflow: "create",
|
|
153
|
+
types: ["Event"],
|
|
154
|
+
groups: userGroups,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
// Anyone can add an event (no permission check)
|
|
158
|
+
response.existing = {
|
|
159
|
+
targetEntity: "event",
|
|
160
|
+
workflow: "existing",
|
|
161
|
+
types: ["Event"],
|
|
162
|
+
query: negateGroupPredicates_1.negateGroupPredicates(query),
|
|
163
|
+
groups: userGroups,
|
|
164
|
+
};
|
|
165
|
+
response.state = "enabled";
|
|
166
|
+
return response;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Specific logic for targetEntity="item"
|
|
170
|
+
* @param query
|
|
171
|
+
* @param userGroups
|
|
172
|
+
* @param response
|
|
173
|
+
* @param context
|
|
174
|
+
* @returns
|
|
175
|
+
*/
|
|
176
|
+
function getAddContentConfigForItemQuery(query, context) {
|
|
177
|
+
const response = util_1.cloneObject(EmptyAddContentWorkflowConfig);
|
|
178
|
+
const userGroups = getUserGroupsFromQuery_1.getUserGroupsFromQuery(query, context.currentUser);
|
|
179
|
+
if (!userGroups.owner.length &&
|
|
180
|
+
!userGroups.admin.length &&
|
|
181
|
+
!userGroups.member.length) {
|
|
182
|
+
response.state = "disabled";
|
|
183
|
+
response.reason = "not-in-groups";
|
|
184
|
+
return response;
|
|
185
|
+
}
|
|
186
|
+
// Get all the types from all the the predicates in all of the filters
|
|
187
|
+
let queryTypes = getPredicateValues_1.getPredicateValues("type", query);
|
|
188
|
+
// If there are no types we need to use the default creatable types
|
|
189
|
+
if (!queryTypes.length) {
|
|
190
|
+
queryTypes = getWorkflowForType_1.getDefaultCreateableTypes(context, [query.targetEntity]);
|
|
191
|
+
}
|
|
192
|
+
const workflowTypes = queryTypes.map((type) => {
|
|
193
|
+
return getWorkflowForType_1.getWorkflowForType(type, context);
|
|
194
|
+
});
|
|
195
|
+
//
|
|
196
|
+
const negatedGroupQuery = negateGroupPredicates_1.negateGroupPredicates(query);
|
|
197
|
+
// now map over the workflowTypes and create the response object
|
|
198
|
+
workflowTypes.forEach((wft) => {
|
|
199
|
+
// Looked at DRYing this up but typescript complained so I left it
|
|
200
|
+
if (wft.workflows.includes("create")) {
|
|
201
|
+
if (!response.create) {
|
|
202
|
+
response.create = {
|
|
203
|
+
targetEntity: wft.targetEntity,
|
|
204
|
+
workflow: "create",
|
|
205
|
+
types: [],
|
|
206
|
+
groups: userGroups,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
response.create.types.push(wft.type);
|
|
210
|
+
}
|
|
211
|
+
if (wft.workflows.includes("existing")) {
|
|
212
|
+
if (!response.existing) {
|
|
213
|
+
response.existing = {
|
|
214
|
+
targetEntity: wft.targetEntity,
|
|
215
|
+
workflow: "existing",
|
|
216
|
+
types: [],
|
|
217
|
+
groups: userGroups,
|
|
218
|
+
query: negatedGroupQuery,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
response.existing.types.push(wft.type);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
// Did we get any workflows the user can do?
|
|
225
|
+
if (response.create || response.existing) {
|
|
226
|
+
response.state = "enabled";
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
response.state = "disabled";
|
|
230
|
+
response.reason = "no-permission";
|
|
231
|
+
}
|
|
232
|
+
return response;
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=getAddContentConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAddContentConfig.js","sourceRoot":"","sources":["../../../src/search/getAddContentConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPredicateValues = void 0;
|
|
4
|
+
const objects_1 = require("../objects");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const _internal_1 = require("./_internal");
|
|
7
|
+
/**
|
|
8
|
+
* Get all the values for a predicate in a query
|
|
9
|
+
* @param predicateProp The predicate property to get the values for
|
|
10
|
+
* @param query The query to get the values from
|
|
11
|
+
* @returns An array of all the values for the predicate
|
|
12
|
+
*/
|
|
13
|
+
function getPredicateValues(predicateProp, query, props = ["any", "all"]) {
|
|
14
|
+
// ensure the query is expanded (meaning that the predicates are IMatchOptions)
|
|
15
|
+
const expanded = _internal_1.expandPredicates(query);
|
|
16
|
+
return (
|
|
17
|
+
// iterate over the filters
|
|
18
|
+
expanded.filters
|
|
19
|
+
// get all the predicates from all the filters and flatten...
|
|
20
|
+
.reduce((acc, filter) => [...acc, ...filter.predicates], [])
|
|
21
|
+
// get the `.any` and `.all` values for the prop
|
|
22
|
+
.reduce((acc, predicate) => {
|
|
23
|
+
// iterate the props and add them to the accumulator
|
|
24
|
+
props.forEach((prop) => {
|
|
25
|
+
acc = [
|
|
26
|
+
...acc,
|
|
27
|
+
...objects_1.getWithDefault(predicate, `${predicateProp}.${prop}`, []),
|
|
28
|
+
];
|
|
29
|
+
});
|
|
30
|
+
return acc;
|
|
31
|
+
}, [])
|
|
32
|
+
// drop dupes
|
|
33
|
+
.filter(util_1.unique));
|
|
34
|
+
}
|
|
35
|
+
exports.getPredicateValues = getPredicateValues;
|
|
36
|
+
//# sourceMappingURL=getPredicateValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPredicateValues.js","sourceRoot":"","sources":["../../../src/search/getPredicateValues.ts"],"names":[],"mappings":";;;AACA,wCAA4C;AAC5C,kCAAiC;AACjC,2CAA+C;AAE/C;;;;;GAKG;AAEH,SAAgB,kBAAkB,CAChC,aAAqB,EACrB,KAAa,EACb,QAAkB,CAAC,KAAK,EAAE,KAAK,CAAC;IAEhC,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,4BAAgB,CAAC,KAAK,CAAC,CAAC;IAEzC,OAAO;IACL,2BAA2B;IAC3B,QAAQ,CAAC,OAAO;QACd,6DAA6D;SAC5D,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QAC5D,gDAAgD;SAC/C,MAAM,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACzB,oDAAoD;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,GAAG,GAAG;gBACJ,GAAG,GAAG;gBACN,GAAG,wBAAc,CAAC,SAAS,EAAE,GAAG,aAAa,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC;QACN,aAAa;SACZ,MAAM,CAAC,aAAM,CAAC,CAClB,CAAC;AACJ,CAAC;AA5BD,gDA4BC"}
|