@esri/hub-common 14.24.0 → 14.25.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/EntityEditor.js +4 -0
- package/dist/esm/core/EntityEditor.js.map +1 -1
- package/dist/esm/core/fetchHubEntity.js +3 -0
- package/dist/esm/core/fetchHubEntity.js.map +1 -1
- package/dist/esm/core/getTypeFromEntity.js +6 -0
- package/dist/esm/core/getTypeFromEntity.js.map +1 -1
- package/dist/esm/core/schemas/internal/getEntityEditorSchemas.js +8 -0
- package/dist/esm/core/schemas/internal/getEntityEditorSchemas.js.map +1 -1
- package/dist/esm/core/schemas/types.js +2 -0
- package/dist/esm/core/schemas/types.js.map +1 -1
- package/dist/esm/core/types/HubEntityType.js +1 -0
- package/dist/esm/core/types/HubEntityType.js.map +1 -1
- package/dist/esm/core/types/IHubInitiativeTemplate.js +1 -0
- package/dist/esm/core/types/IHubInitiativeTemplate.js.map +1 -0
- package/dist/esm/core/types/index.js +1 -0
- package/dist/esm/core/types/index.js.map +1 -1
- package/dist/esm/core/updateHubEntity.js +4 -0
- package/dist/esm/core/updateHubEntity.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/initiative-templates/HubInitiativeTemplate.js +192 -0
- package/dist/esm/initiative-templates/HubInitiativeTemplate.js.map +1 -0
- package/dist/esm/initiative-templates/_internal/InitiativeTemplateBusinessRules.js +72 -0
- package/dist/esm/initiative-templates/_internal/InitiativeTemplateBusinessRules.js.map +1 -0
- package/dist/esm/initiative-templates/_internal/InitiativeTemplateSchema.js +6 -0
- package/dist/esm/initiative-templates/_internal/InitiativeTemplateSchema.js.map +1 -0
- package/dist/esm/initiative-templates/_internal/InitiativeTemplateUiSchemaEdit.js +35 -0
- package/dist/esm/initiative-templates/_internal/InitiativeTemplateUiSchemaEdit.js.map +1 -0
- package/dist/esm/initiative-templates/_internal/computeLinks.js +27 -0
- package/dist/esm/initiative-templates/_internal/computeLinks.js.map +1 -0
- package/dist/esm/initiative-templates/_internal/computeProps.js +39 -0
- package/dist/esm/initiative-templates/_internal/computeProps.js.map +1 -0
- package/dist/esm/initiative-templates/_internal/getPropertyMap.js +18 -0
- package/dist/esm/initiative-templates/_internal/getPropertyMap.js.map +1 -0
- package/dist/esm/initiative-templates/defaults.js +35 -0
- package/dist/esm/initiative-templates/defaults.js.map +1 -0
- package/dist/esm/initiative-templates/edit.js +96 -0
- package/dist/esm/initiative-templates/edit.js.map +1 -0
- package/dist/esm/initiative-templates/fetch.js +68 -0
- package/dist/esm/initiative-templates/fetch.js.map +1 -0
- package/dist/esm/initiative-templates/index.js +5 -0
- package/dist/esm/initiative-templates/index.js.map +1 -0
- package/dist/esm/initiative-templates/view.js +77 -0
- package/dist/esm/initiative-templates/view.js.map +1 -0
- package/dist/esm/permissions/HubPermissionPolicies.js +2 -0
- package/dist/esm/permissions/HubPermissionPolicies.js.map +1 -1
- package/dist/esm/permissions/types/Permission.js +2 -0
- package/dist/esm/permissions/types/Permission.js.map +1 -1
- package/dist/esm/projects/HubProject.js +1 -1
- package/dist/node/core/EntityEditor.js +4 -0
- package/dist/node/core/EntityEditor.js.map +1 -1
- package/dist/node/core/fetchHubEntity.js +3 -0
- package/dist/node/core/fetchHubEntity.js.map +1 -1
- package/dist/node/core/getTypeFromEntity.js +6 -0
- package/dist/node/core/getTypeFromEntity.js.map +1 -1
- package/dist/node/core/schemas/internal/getEntityEditorSchemas.js +8 -0
- package/dist/node/core/schemas/internal/getEntityEditorSchemas.js.map +1 -1
- package/dist/node/core/schemas/types.js +2 -0
- package/dist/node/core/schemas/types.js.map +1 -1
- package/dist/node/core/types/HubEntityType.js +1 -0
- package/dist/node/core/types/HubEntityType.js.map +1 -1
- package/dist/node/core/types/IHubInitiativeTemplate.js +3 -0
- package/dist/node/core/types/IHubInitiativeTemplate.js.map +1 -0
- package/dist/node/core/types/index.js +1 -0
- package/dist/node/core/types/index.js.map +1 -1
- package/dist/node/core/updateHubEntity.js +4 -0
- package/dist/node/core/updateHubEntity.js.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/initiative-templates/HubInitiativeTemplate.js +196 -0
- package/dist/node/initiative-templates/HubInitiativeTemplate.js.map +1 -0
- package/dist/node/initiative-templates/_internal/InitiativeTemplateBusinessRules.js +75 -0
- package/dist/node/initiative-templates/_internal/InitiativeTemplateBusinessRules.js.map +1 -0
- package/dist/node/initiative-templates/_internal/InitiativeTemplateSchema.js +9 -0
- package/dist/node/initiative-templates/_internal/InitiativeTemplateSchema.js.map +1 -0
- package/dist/node/initiative-templates/_internal/InitiativeTemplateUiSchemaEdit.js +38 -0
- package/dist/node/initiative-templates/_internal/InitiativeTemplateUiSchemaEdit.js.map +1 -0
- package/dist/node/initiative-templates/_internal/computeLinks.js +31 -0
- package/dist/node/initiative-templates/_internal/computeLinks.js.map +1 -0
- package/dist/node/initiative-templates/_internal/computeProps.js +43 -0
- package/dist/node/initiative-templates/_internal/computeProps.js.map +1 -0
- package/dist/node/initiative-templates/_internal/getPropertyMap.js +22 -0
- package/dist/node/initiative-templates/_internal/getPropertyMap.js.map +1 -0
- package/dist/node/initiative-templates/defaults.js +38 -0
- package/dist/node/initiative-templates/defaults.js.map +1 -0
- package/dist/node/initiative-templates/edit.js +103 -0
- package/dist/node/initiative-templates/edit.js.map +1 -0
- package/dist/node/initiative-templates/fetch.js +74 -0
- package/dist/node/initiative-templates/fetch.js.map +1 -0
- package/dist/node/initiative-templates/index.js +8 -0
- package/dist/node/initiative-templates/index.js.map +1 -0
- package/dist/node/initiative-templates/view.js +80 -0
- package/dist/node/initiative-templates/view.js.map +1 -0
- package/dist/node/permissions/HubPermissionPolicies.js +2 -0
- package/dist/node/permissions/HubPermissionPolicies.js.map +1 -1
- package/dist/node/permissions/types/Permission.js +2 -0
- package/dist/node/permissions/types/Permission.js.map +1 -1
- package/dist/node/projects/HubProject.js +1 -1
- package/dist/types/core/schemas/types.d.ts +1 -1
- package/dist/types/core/types/HubEntityType.d.ts +1 -1
- package/dist/types/core/types/IHubInitiativeTemplate.d.ts +14 -0
- package/dist/types/core/types/index.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/initiative-templates/HubInitiativeTemplate.d.ts +82 -0
- package/dist/types/initiative-templates/_internal/InitiativeTemplateBusinessRules.d.ts +16 -0
- package/dist/types/initiative-templates/_internal/InitiativeTemplateSchema.d.ts +4 -0
- package/dist/types/initiative-templates/_internal/InitiativeTemplateUiSchemaEdit.d.ts +15 -0
- package/dist/types/initiative-templates/_internal/computeLinks.d.ts +12 -0
- package/dist/types/initiative-templates/_internal/computeProps.d.ts +12 -0
- package/dist/types/initiative-templates/_internal/getPropertyMap.d.ts +7 -0
- package/dist/types/initiative-templates/defaults.d.ts +8 -0
- package/dist/types/initiative-templates/edit.d.ts +32 -0
- package/dist/types/initiative-templates/fetch.d.ts +16 -0
- package/dist/types/initiative-templates/index.d.ts +4 -0
- package/dist/types/initiative-templates/view.d.ts +20 -0
- package/dist/types/permissions/types/Permission.d.ts +2 -1
- package/package.json +1 -1
package/dist/node/index.js
CHANGED
|
@@ -19,6 +19,7 @@ tslib_1.__exportStar(require("./extent"), exports);
|
|
|
19
19
|
tslib_1.__exportStar(require("./groups"), exports);
|
|
20
20
|
tslib_1.__exportStar(require("./i18n"), exports);
|
|
21
21
|
tslib_1.__exportStar(require("./initiatives"), exports);
|
|
22
|
+
tslib_1.__exportStar(require("./initiative-templates"), exports);
|
|
22
23
|
tslib_1.__exportStar(require("./discussions"), exports);
|
|
23
24
|
tslib_1.__exportStar(require("./items"), exports);
|
|
24
25
|
tslib_1.__exportStar(require("./models"), exports);
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;gBACgB;AAChB,0BAA0B;;;;AAE1B,yDAA+B;AAC/B,mDAAyB;AACzB,gDAAsB;AACtB,0DAAgC;AAChC,iEAAuC;AACvC,iDAAuB;AACvB,uDAA6B;AAC7B,oDAA0B;AAC1B,iDAAuB;AACvB,sDAA4B;AAC5B,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,wDAA8B;AAC9B,wDAA8B;AAC9B,kDAAwB;AACxB,mDAAyB;AACzB,oDAA0B;AAC1B,gDAAsB;AACtB,kDAAwB;AACxB,wDAA8B;AAC9B,qDAA2B;AAC3B,oDAA0B;AAC1B,sDAA4B;AAC5B,mDAAyB;AACzB,kDAAwB;AACxB,oDAA0B;AAC1B,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,uDAA6B;AAC7B,oDAA0B;AAC1B,0DAA0D;AAC1D,qDAAqD;AACrD,iEAAuC;AACvC,2DAA2D;AAC3D,yDAAyD;AACzD,iEAAuC;AACvC,8DAAoC;AACpC,6DAA6D;AAC7D,0DAA0D;AAC1D,sEAA4C;AAE5C,qDAA8C;AAKrC,yBALF,wBAAc,CAKE;AAJvB,qDAA8C;AAIrB,yBAJlB,wBAAc,CAIkB;AAHvC,yCAAkC;AAGO,mBAHlC,kBAAQ,CAGkC;AACjD,6BAAkC;AAAzB,4FAAA,IAAI,OAAA;AAAE,4FAAA,IAAI,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;gBACgB;AAChB,0BAA0B;;;;AAE1B,yDAA+B;AAC/B,mDAAyB;AACzB,gDAAsB;AACtB,0DAAgC;AAChC,iEAAuC;AACvC,iDAAuB;AACvB,uDAA6B;AAC7B,oDAA0B;AAC1B,iDAAuB;AACvB,sDAA4B;AAC5B,mDAAyB;AACzB,mDAAyB;AACzB,iDAAuB;AACvB,wDAA8B;AAC9B,iEAAuC;AACvC,wDAA8B;AAC9B,kDAAwB;AACxB,mDAAyB;AACzB,oDAA0B;AAC1B,gDAAsB;AACtB,kDAAwB;AACxB,wDAA8B;AAC9B,qDAA2B;AAC3B,oDAA0B;AAC1B,sDAA4B;AAC5B,mDAAyB;AACzB,kDAAwB;AACxB,oDAA0B;AAC1B,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,iDAAuB;AACvB,kDAAwB;AACxB,uDAA6B;AAC7B,oDAA0B;AAC1B,0DAA0D;AAC1D,qDAAqD;AACrD,iEAAuC;AACvC,2DAA2D;AAC3D,yDAAyD;AACzD,iEAAuC;AACvC,8DAAoC;AACpC,6DAA6D;AAC7D,0DAA0D;AAC1D,sEAA4C;AAE5C,qDAA8C;AAKrC,yBALF,wBAAc,CAKE;AAJvB,qDAA8C;AAIrB,yBAJlB,wBAAc,CAIkB;AAHvC,yCAAkC;AAGO,mBAHlC,kBAAQ,CAGkC;AACjD,6BAAkC;AAAzB,4FAAA,IAAI,OAAA;AAAE,4FAAA,IAAI,OAAA"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HubInitiativeTemplate = void 0;
|
|
4
|
+
const HubItemEntity_1 = require("../core/HubItemEntity");
|
|
5
|
+
const getEditorConfig_1 = require("../core/schemas/getEditorConfig");
|
|
6
|
+
const search_1 = require("../search");
|
|
7
|
+
const defaults_1 = require("./defaults");
|
|
8
|
+
const fetch_1 = require("./fetch");
|
|
9
|
+
const view_1 = require("./view");
|
|
10
|
+
const util_1 = require("../util");
|
|
11
|
+
const edit_1 = require("./edit");
|
|
12
|
+
const enrichEntity_1 = require("../core/enrichEntity");
|
|
13
|
+
/**
|
|
14
|
+
* Hub Initiative Template Class
|
|
15
|
+
*/
|
|
16
|
+
class HubInitiativeTemplate extends HubItemEntity_1.HubItemEntity {
|
|
17
|
+
constructor(initiativeTemplate, context) {
|
|
18
|
+
super(initiativeTemplate, context);
|
|
19
|
+
this._catalog = search_1.Catalog.fromJson(initiativeTemplate.catalog, this.context);
|
|
20
|
+
}
|
|
21
|
+
get catalog() {
|
|
22
|
+
return this._catalog;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create an instance from an IHubInitiativeTemplate object
|
|
26
|
+
* @param json - JSON object to create a HubInitiativeTemplate from
|
|
27
|
+
* @param context - ArcGIS context
|
|
28
|
+
* @returns - instance of HubInitiativeTemplate
|
|
29
|
+
*/
|
|
30
|
+
static fromJson(json, context) {
|
|
31
|
+
// merge what we have with the default values
|
|
32
|
+
const pojo = this.applyDefaults(json, context);
|
|
33
|
+
return new HubInitiativeTemplate(pojo, context);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a new HubInitiativeTemplate, returning a HubInitiativeTemplate instance.
|
|
37
|
+
* Note: This does not persist the HubInitiativeTemplate into the backing store
|
|
38
|
+
* @param partialInitiativeTemplate
|
|
39
|
+
* @param context
|
|
40
|
+
* @param save
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
static async create(partialInitiativeTemplate, context, save = false) {
|
|
44
|
+
const pojo = this.applyDefaults(partialInitiativeTemplate, context);
|
|
45
|
+
// return an instance of HubInitiativeTemplate
|
|
46
|
+
const instance = HubInitiativeTemplate.fromJson(pojo, context);
|
|
47
|
+
if (save) {
|
|
48
|
+
await instance.save();
|
|
49
|
+
}
|
|
50
|
+
return instance;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Fetch a HubInitiativeTemplate from the backing store and return a HubInitiativeTemplate instance.
|
|
54
|
+
* @param identifier - Identifier of the initiative template to load
|
|
55
|
+
* @param context
|
|
56
|
+
*/
|
|
57
|
+
static async fetch(identifier, context) {
|
|
58
|
+
// fetch the initiative template by id or slug
|
|
59
|
+
try {
|
|
60
|
+
const initiativeTemplate = await fetch_1.fetchInitiativeTemplate(identifier, context.requestOptions);
|
|
61
|
+
// create an instance of HubInitiativeTemplate from the initiative template
|
|
62
|
+
return HubInitiativeTemplate.fromJson(initiativeTemplate, context);
|
|
63
|
+
}
|
|
64
|
+
catch (ex) {
|
|
65
|
+
if (ex.message ===
|
|
66
|
+
"CONT_0001: Item does not exist or is inaccessible.") {
|
|
67
|
+
throw new Error(`Initiative Template not found.`);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
throw ex;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Given a partial initiative template, apply defaults to it to ensure that a baseline of properties are set
|
|
76
|
+
* @param partialInitiativeTemplate
|
|
77
|
+
* @param context
|
|
78
|
+
* @returns
|
|
79
|
+
*/
|
|
80
|
+
static applyDefaults(partialInitiativeTemplate, context) {
|
|
81
|
+
// ensure we have the orgUrlKey
|
|
82
|
+
if (!partialInitiativeTemplate.orgUrlKey) {
|
|
83
|
+
partialInitiativeTemplate.orgUrlKey = context.portal.urlKey;
|
|
84
|
+
}
|
|
85
|
+
const pojo = Object.assign(Object.assign({}, defaults_1.DEFAULT_INITIATIVE_TEMPLATE), partialInitiativeTemplate);
|
|
86
|
+
return pojo;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Convert the project entity into a card view model that can
|
|
90
|
+
* be consumed by the suite of hub gallery components
|
|
91
|
+
* @param opts - view model options
|
|
92
|
+
* @returns
|
|
93
|
+
*/
|
|
94
|
+
convertToCardModel(opts) {
|
|
95
|
+
return view_1.initiativeTemplateToCardModel(this.entity, this.context, opts);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get the editor config for the HubInitiativeTemplate entity.
|
|
99
|
+
* @param i18nScope translation scope to be interpolated into the uiSchema
|
|
100
|
+
* @param type editor type -- corresponds to the returned uiSchema
|
|
101
|
+
*/
|
|
102
|
+
async getEditorConfig(i18nScope, type) {
|
|
103
|
+
// delegate to the schema subsystem
|
|
104
|
+
return getEditorConfig_1.getEditorConfig(i18nScope, type, this.entity, this.context);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Return the initiative template as an editor object
|
|
108
|
+
* @param editorContext
|
|
109
|
+
*/
|
|
110
|
+
async toEditor(editorContext = {}, include = []) {
|
|
111
|
+
// cast the entity to its editor
|
|
112
|
+
const editor = include.length
|
|
113
|
+
? (await enrichEntity_1.enrichEntity(util_1.cloneObject(this.entity), include, this.context.hubRequestOptions))
|
|
114
|
+
: util_1.cloneObject(this.entity);
|
|
115
|
+
// for now, just return
|
|
116
|
+
return editor;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Load the initiative template from the editor object
|
|
120
|
+
* @param editor
|
|
121
|
+
*/
|
|
122
|
+
async fromEditor(editor) {
|
|
123
|
+
const isCreate = !editor.id;
|
|
124
|
+
// Setting the thumbnailCache will ensure that the thumbnail is updated on next save
|
|
125
|
+
if (editor._thumbnail) {
|
|
126
|
+
if (editor._thumbnail.blob) {
|
|
127
|
+
this.thumbnailCache = {
|
|
128
|
+
file: editor._thumbnail.blob,
|
|
129
|
+
filename: editor._thumbnail.filename,
|
|
130
|
+
clear: false,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
this.thumbnailCache = {
|
|
135
|
+
clear: true,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
delete editor._thumbnail;
|
|
140
|
+
const entity = edit_1.editorToInitiativeTemplate(editor, this.context.portal);
|
|
141
|
+
// save, which will also create an entity if we don't have an id for it
|
|
142
|
+
this.entity = entity;
|
|
143
|
+
await this.save();
|
|
144
|
+
return this.entity;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Apply a new state to the instance
|
|
148
|
+
* @param changes
|
|
149
|
+
*/
|
|
150
|
+
update(changes) {
|
|
151
|
+
if (this.isDestroyed) {
|
|
152
|
+
throw new Error("HubInitiativeTemplate is already destroyed.");
|
|
153
|
+
}
|
|
154
|
+
// merge partial onto existing entity
|
|
155
|
+
this.entity = Object.assign(Object.assign({}, this.entity), changes);
|
|
156
|
+
// update internal instances
|
|
157
|
+
if (changes.catalog) {
|
|
158
|
+
this._catalog = search_1.Catalog.fromJson(this.entity.catalog, this.context);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Save the HubInitiativeTemplate to the backing store.
|
|
163
|
+
* @returns
|
|
164
|
+
*/
|
|
165
|
+
async save() {
|
|
166
|
+
if (this.isDestroyed) {
|
|
167
|
+
throw new Error("HubInitiativeTemplate is already destroyed.");
|
|
168
|
+
}
|
|
169
|
+
// get the catalog and permission configs
|
|
170
|
+
this.entity.catalog = this._catalog.toJson();
|
|
171
|
+
if (this.entity.id) {
|
|
172
|
+
// update it
|
|
173
|
+
this.entity = await edit_1.updateInitiativeTemplate(this.entity, this.context.userRequestOptions);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// create it
|
|
177
|
+
this.entity = await edit_1.createInitiativeTemplate(this.entity, this.context.userRequestOptions);
|
|
178
|
+
}
|
|
179
|
+
// call the after save hook on superclass
|
|
180
|
+
await super.afterSave();
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Delete the HubInitiativeTemplate from the store
|
|
184
|
+
* set a flag to indicate that it is destroyed
|
|
185
|
+
* @returns
|
|
186
|
+
*/
|
|
187
|
+
async delete() {
|
|
188
|
+
if (this.isDestroyed) {
|
|
189
|
+
throw new Error("HubInitiativeTemplate is already destroyed.");
|
|
190
|
+
}
|
|
191
|
+
this.isDestroyed = true;
|
|
192
|
+
await edit_1.deleteInitiativeTemplate(this.entity.id, this.context.userRequestOptions);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
exports.HubInitiativeTemplate = HubInitiativeTemplate;
|
|
196
|
+
//# sourceMappingURL=HubInitiativeTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HubInitiativeTemplate.js","sourceRoot":"","sources":["../../../src/initiative-templates/HubInitiativeTemplate.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AAgBtD,qEAAkE;AAIlE,sCAAoC;AACpC,yCAAyD;AACzD,mCAAkD;AAClD,iCAAuD;AACvD,kCAAsC;AACtC,iCAKgB;AAChB,uDAAoD;AAEpD;;GAEG;AACH,MAAa,qBACX,SAAQ,6BAAqC;IAK7C,YACE,kBAA0C,EAC1C,OAAuB;QAEvB,KAAK,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,gBAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CACb,IAAqC,EACrC,OAAuB;QAEvB,6CAA6C;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,yBAA0D,EAC1D,OAAuB,EACvB,OAAgB,KAAK;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;QACpE,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,IAAI,EAAE;YACR,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;SACvB;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,UAAkB,EAClB,OAAuB;QAEvB,8CAA8C;QAC9C,IAAI;YACF,MAAM,kBAAkB,GAAG,MAAM,+BAAuB,CACtD,UAAU,EACV,OAAO,CAAC,cAAc,CACvB,CAAC;YACF,2EAA2E;YAC3E,OAAO,qBAAqB,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;SACpE;QAAC,OAAO,EAAE,EAAE;YACX,IACG,EAAY,CAAC,OAAO;gBACrB,oDAAoD,EACpD;gBACA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;aACnD;iBAAM;gBACL,MAAM,EAAE,CAAC;aACV;SACF;IACH,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,aAAa,CAC1B,yBAA0D,EAC1D,OAAuB;QAEvB,+BAA+B;QAC/B,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE;YACxC,yBAAyB,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;SAC7D;QACD,MAAM,IAAI,GAAG,gCACR,sCAA2B,GAC3B,yBAAyB,CACH,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,IAA8B;QAC/C,OAAO,oCAA6B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CACnB,SAAiB,EACjB,IAAgB;QAEhB,mCAAmC;QACnC,OAAO,iCAAe,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,gBAAsC,EAAE,EACxC,UAAoB,EAAE;QAEtB,gCAAgC;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;YAC3B,CAAC,CAAE,CAAC,MAAM,2BAAY,CAClB,kBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EACxB,OAAO,EACP,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC/B,CAAkC;YACrC,CAAC,CAAE,kBAAW,CAAC,IAAI,CAAC,MAAM,CAAkC,CAAC;QAE/D,uBAAuB;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,MAAoC;QACnD,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAE5B,oFAAoF;QACpF,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;gBAC1B,IAAI,CAAC,cAAc,GAAG;oBACpB,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;oBAC5B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;oBACpC,KAAK,EAAE,KAAK;iBACb,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,cAAc,GAAG;oBACpB,KAAK,EAAE,IAAI;iBACZ,CAAC;aACH;SACF;QAED,OAAO,MAAM,CAAC,UAAU,CAAC;QAEzB,MAAM,MAAM,GAAG,iCAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvE,uEAAuE;QACvE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAAwC;QAC7C,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAChE;QACD,qCAAqC;QACrC,IAAI,CAAC,MAAM,mCAAQ,IAAI,CAAC,MAAM,GAAK,OAAO,CAAE,CAAC;QAE7C,4BAA4B;QAC5B,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,gBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACrE;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAChE;QACD,yCAAyC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAE7C,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YAClB,YAAY;YACZ,IAAI,CAAC,MAAM,GAAG,MAAM,+BAAwB,CAC1C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;SACH;aAAM;YACL,YAAY;YACZ,IAAI,CAAC,MAAM,GAAG,MAAM,+BAAwB,CAC1C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;SACH;QACD,yCAAyC;QACzC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAChE;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,+BAAwB,CAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChC,CAAC;IACJ,CAAC;CACF;AAlPD,sDAkPC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InitiativeTemplatePermissionPolicies = exports.InitiativeTemplatePermissions = exports.InitiativeTemplateDefaultFeatures = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default features for an Initiative Template. These are the features that can be enabled / disabled by the entity owner
|
|
6
|
+
*/
|
|
7
|
+
exports.InitiativeTemplateDefaultFeatures = {
|
|
8
|
+
// empty for now
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Initiative Template Permission Policies
|
|
12
|
+
* These define the requirements any user must meet to perform related actions
|
|
13
|
+
* @private
|
|
14
|
+
*/
|
|
15
|
+
exports.InitiativeTemplatePermissions = [
|
|
16
|
+
"hub:initiativeTemplate",
|
|
17
|
+
"hub:initiativeTemplate:create",
|
|
18
|
+
"hub:initiativeTemplate:delete",
|
|
19
|
+
"hub:initiativeTemplate:edit",
|
|
20
|
+
"hub:initiativeTemplate:view",
|
|
21
|
+
"hub:initiativeTemplate:workspace:overview",
|
|
22
|
+
"hub:initiativeTemplate:workspace:details",
|
|
23
|
+
"hub:initiativeTemplate:workspace:collaborators",
|
|
24
|
+
"hub:initiativeTemplate:workspace:settings",
|
|
25
|
+
"hub:initiativeTemplate:manage",
|
|
26
|
+
];
|
|
27
|
+
/**
|
|
28
|
+
* Initiative Template policies
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
31
|
+
exports.InitiativeTemplatePermissionPolicies = [
|
|
32
|
+
{
|
|
33
|
+
permission: "hub:initiativeTemplate",
|
|
34
|
+
availability: ["alpha"],
|
|
35
|
+
services: ["portal"],
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
permission: "hub:initiativeTemplate:create",
|
|
39
|
+
dependencies: ["hub:initiativeTemplate"],
|
|
40
|
+
authenticated: true,
|
|
41
|
+
privileges: ["portal:user:createItem"],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
permission: "hub:initiativeTemplate:view",
|
|
45
|
+
dependencies: ["hub:initiativeTemplate"],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
permission: "hub:initiativeTemplate:edit",
|
|
49
|
+
dependencies: ["hub:initiativeTemplate"],
|
|
50
|
+
authenticated: true,
|
|
51
|
+
entityEdit: true,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
permission: "hub:initiativeTemplate:workspace:overview",
|
|
55
|
+
dependencies: ["hub:initiativeTemplate:view"],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
permission: "hub:initiativeTemplate:workspace:details",
|
|
59
|
+
dependencies: ["hub:initiativeTemplate:edit"],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
permission: "hub:initiativeTemplate:workspace:collaborators",
|
|
63
|
+
dependencies: ["hub:initiativeTemplate:edit"],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
permission: "hub:initiativeTemplate:workspace:settings",
|
|
67
|
+
dependencies: ["hub:initiativeTemplate:edit"],
|
|
68
|
+
entityOwner: true,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
permission: "hub:initiativeTemplate:manage",
|
|
72
|
+
dependencies: ["hub:initiativeTemplate:edit"],
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
//# sourceMappingURL=InitiativeTemplateBusinessRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitiativeTemplateBusinessRules.js","sourceRoot":"","sources":["../../../../src/initiative-templates/_internal/InitiativeTemplateBusinessRules.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,iCAAiC,GAAkB;AAC9D,gBAAgB;CACjB,CAAC;AAEF;;;;GAIG;AACU,QAAA,6BAA6B,GAAG;IAC3C,wBAAwB;IACxB,+BAA+B;IAC/B,+BAA+B;IAC/B,6BAA6B;IAC7B,6BAA6B;IAC7B,2CAA2C;IAC3C,0CAA0C;IAC1C,gDAAgD;IAChD,2CAA2C;IAC3C,+BAA+B;CACvB,CAAC;AAEX;;;GAGG;AACU,QAAA,oCAAoC,GAAwB;IACvE;QACE,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD;QACE,UAAU,EAAE,+BAA+B;QAC3C,YAAY,EAAE,CAAC,wBAAwB,CAAC;QACxC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,CAAC,wBAAwB,CAAC;KACvC;IACD;QACE,UAAU,EAAE,6BAA6B;QACzC,YAAY,EAAE,CAAC,wBAAwB,CAAC;KACzC;IACD;QACE,UAAU,EAAE,6BAA6B;QACzC,YAAY,EAAE,CAAC,wBAAwB,CAAC;QACxC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB;IACD;QACE,UAAU,EAAE,2CAA2C;QACvD,YAAY,EAAE,CAAC,6BAA6B,CAAC;KAC9C;IACD;QACE,UAAU,EAAE,0CAA0C;QACtD,YAAY,EAAE,CAAC,6BAA6B,CAAC;KAC9C;IACD;QACE,UAAU,EAAE,gDAAgD;QAC5D,YAAY,EAAE,CAAC,6BAA6B,CAAC;KAC9C;IACD;QACE,UAAU,EAAE,2CAA2C;QACvD,YAAY,EAAE,CAAC,6BAA6B,CAAC;QAC7C,WAAW,EAAE,IAAI;KAClB;IACD;QACE,UAAU,EAAE,+BAA+B;QAC3C,YAAY,EAAE,CAAC,6BAA6B,CAAC;KAC9C;CACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InitiativeTemplateSchema = exports.InitiativeTemplateEditorTypes = void 0;
|
|
4
|
+
const HubItemEntitySchema_1 = require("../../core/schemas/shared/HubItemEntitySchema");
|
|
5
|
+
exports.InitiativeTemplateEditorTypes = [
|
|
6
|
+
"hub:initiativeTemplate:edit",
|
|
7
|
+
];
|
|
8
|
+
exports.InitiativeTemplateSchema = Object.assign(Object.assign({}, HubItemEntitySchema_1.HubItemEntitySchema), { properties: Object.assign({}, HubItemEntitySchema_1.HubItemEntitySchema.properties) });
|
|
9
|
+
//# sourceMappingURL=InitiativeTemplateSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitiativeTemplateSchema.js","sourceRoot":"","sources":["../../../../src/initiative-templates/_internal/InitiativeTemplateSchema.ts"],"names":[],"mappings":";;;AACA,uFAAoF;AAKvE,QAAA,6BAA6B,GAAG;IAC3C,6BAA6B;CACrB,CAAC;AAEE,QAAA,wBAAwB,GAAyB,gCACzD,yCAAmB,KACtB,UAAU,oBACL,yCAAmB,CAAC,UAAU,IAEZ,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildUiSchema = void 0;
|
|
4
|
+
const types_1 = require("../../core/schemas/types");
|
|
5
|
+
/**
|
|
6
|
+
* @private
|
|
7
|
+
* constructs the complete edit uiSchema for Hub Initiative Templates.
|
|
8
|
+
* This defines how the schema properties should be rendered
|
|
9
|
+
* in the initiative template editing experience.
|
|
10
|
+
*
|
|
11
|
+
* @param i18nScope
|
|
12
|
+
* @param entity
|
|
13
|
+
* @param context
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
exports.buildUiSchema = async (i18nScope, entity, context) => {
|
|
17
|
+
return {
|
|
18
|
+
type: "Layout",
|
|
19
|
+
elements: [
|
|
20
|
+
{
|
|
21
|
+
type: "Control",
|
|
22
|
+
scope: "/properties/name",
|
|
23
|
+
labelKey: `${i18nScope}.fields.name.label`,
|
|
24
|
+
options: {
|
|
25
|
+
messages: [
|
|
26
|
+
{
|
|
27
|
+
type: types_1.UiSchemaMessageTypes.error,
|
|
28
|
+
keyword: "required",
|
|
29
|
+
icon: true,
|
|
30
|
+
labelKey: `${i18nScope}.fields.name.requiredError`,
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=InitiativeTemplateUiSchemaEdit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitiativeTemplateUiSchemaEdit.js","sourceRoot":"","sources":["../../../../src/initiative-templates/_internal/InitiativeTemplateUiSchemaEdit.ts"],"names":[],"mappings":";;;AAEA,oDAA2E;AAE3E;;;;;;;;;;GAUG;AACU,QAAA,aAAa,GAAG,KAAK,EAChC,SAAiB,EACjB,MAA8B,EAC9B,OAAuB,EACH,EAAE;IACtB,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,kBAAkB;gBACzB,QAAQ,EAAE,GAAG,SAAS,oBAAoB;gBAC1C,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,4BAAoB,CAAC,KAAK;4BAChC,OAAO,EAAE,UAAU;4BACnB,IAAI,EAAE,IAAI;4BACV,QAAQ,EAAE,GAAG,SAAS,4BAA4B;yBACnD;qBACF;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeLinks = void 0;
|
|
4
|
+
const internalContentUtils_1 = require("../../content/_internal/internalContentUtils");
|
|
5
|
+
const core_1 = require("../../core");
|
|
6
|
+
const items_1 = require("../../items");
|
|
7
|
+
const resources_1 = require("../../resources");
|
|
8
|
+
const urls_1 = require("../../urls");
|
|
9
|
+
/**
|
|
10
|
+
* Compute the links that get appended to a Hub Initiative Template
|
|
11
|
+
* search result and entity
|
|
12
|
+
*
|
|
13
|
+
* @param item
|
|
14
|
+
* @param requestOptions
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
function computeLinks(item, requestOptions) {
|
|
18
|
+
let token;
|
|
19
|
+
if (requestOptions.authentication) {
|
|
20
|
+
const session = requestOptions.authentication;
|
|
21
|
+
token = session.token;
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
self: urls_1.getItemHomeUrl(item.id, requestOptions),
|
|
25
|
+
siteRelative: internalContentUtils_1.getHubRelativeUrl(item.type, items_1.getItemIdentifier(item)),
|
|
26
|
+
workspaceRelative: core_1.getRelativeWorkspaceUrl(item.type, items_1.getItemIdentifier(item)),
|
|
27
|
+
thumbnail: resources_1.getItemThumbnailUrl(item, requestOptions, token),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.computeLinks = computeLinks;
|
|
31
|
+
//# sourceMappingURL=computeLinks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeLinks.js","sourceRoot":"","sources":["../../../../src/initiative-templates/_internal/computeLinks.ts"],"names":[],"mappings":";;;AAGA,uFAAiF;AACjF,qCAAsE;AACtE,uCAAgD;AAChD,+CAAsD;AACtD,qCAA4C;AAE5C;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,IAAW,EACX,cAA+B;IAE/B,IAAI,KAAa,CAAC;IAClB,IAAI,cAAc,CAAC,cAAc,EAAE;QACjC,MAAM,OAAO,GAAgB,cAAc,CAAC,cAA6B,CAAC;QAC1E,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;KACvB;IAED,OAAO;QACL,IAAI,EAAE,qBAAc,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC;QAC7C,YAAY,EAAE,wCAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,yBAAiB,CAAC,IAAI,CAAC,CAAC;QACnE,iBAAiB,EAAE,8BAAuB,CACxC,IAAI,CAAC,IAAI,EACT,yBAAiB,CAAC,IAAI,CAAC,CACxB;QACD,SAAS,EAAE,+BAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC;KAC5D,CAAC;AACJ,CAAC;AAnBD,oCAmBC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeProps = void 0;
|
|
4
|
+
const discussions_1 = require("../../discussions");
|
|
5
|
+
const processEntityFeatures_1 = require("../../permissions/_internal/processEntityFeatures");
|
|
6
|
+
const resources_1 = require("../../resources");
|
|
7
|
+
const InitiativeTemplateBusinessRules_1 = require("./InitiativeTemplateBusinessRules");
|
|
8
|
+
const computeLinks_1 = require("./computeLinks");
|
|
9
|
+
/**
|
|
10
|
+
* Given a model and an initiative template, set various computed properties that can't be directly mapped
|
|
11
|
+
* @private
|
|
12
|
+
* @param model
|
|
13
|
+
* @param initiativeTemplate
|
|
14
|
+
* @param requestOptions
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
function computeProps(model, initiativeTemplate, requestOptions) {
|
|
18
|
+
var _a;
|
|
19
|
+
let token;
|
|
20
|
+
if (requestOptions.authentication) {
|
|
21
|
+
const session = requestOptions.authentication;
|
|
22
|
+
token = session.token;
|
|
23
|
+
}
|
|
24
|
+
// thumbnail url
|
|
25
|
+
initiativeTemplate.thumbnailUrl = resources_1.getItemThumbnailUrl(model.item, requestOptions, token);
|
|
26
|
+
// Handle dates
|
|
27
|
+
initiativeTemplate.createdDate = new Date(model.item.created);
|
|
28
|
+
initiativeTemplate.createdDateSource = "item.created";
|
|
29
|
+
initiativeTemplate.updatedDate = new Date(model.item.modified);
|
|
30
|
+
initiativeTemplate.updatedDateSource = "item.modified";
|
|
31
|
+
initiativeTemplate.isDiscussable = discussions_1.isDiscussable(initiativeTemplate);
|
|
32
|
+
/**
|
|
33
|
+
* Features that can be disabled by the entity owner
|
|
34
|
+
* We don't have explicit features for initiative templates yet,
|
|
35
|
+
* but the groundwork is there
|
|
36
|
+
*/
|
|
37
|
+
initiativeTemplate.features = processEntityFeatures_1.processEntityFeatures(((_a = model.data.settings) === null || _a === void 0 ? void 0 : _a.features) || {}, InitiativeTemplateBusinessRules_1.InitiativeTemplateDefaultFeatures);
|
|
38
|
+
initiativeTemplate.links = computeLinks_1.computeLinks(model.item, requestOptions);
|
|
39
|
+
// cast b/c this takes a partial but returns a full initiative template
|
|
40
|
+
return initiativeTemplate;
|
|
41
|
+
}
|
|
42
|
+
exports.computeProps = computeProps;
|
|
43
|
+
//# sourceMappingURL=computeProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/initiative-templates/_internal/computeProps.ts"],"names":[],"mappings":";;;AAGA,mDAAkD;AAClD,6FAA0F;AAC1F,+CAAsD;AAEtD,uFAAsF;AACtF,iDAA8C;AAE9C;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,KAAa,EACb,kBAAmD,EACnD,cAA+B;;IAE/B,IAAI,KAAa,CAAC;IAClB,IAAI,cAAc,CAAC,cAAc,EAAE;QACjC,MAAM,OAAO,GAAgB,cAAc,CAAC,cAA6B,CAAC;QAC1E,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;KACvB;IAED,gBAAgB;IAChB,kBAAkB,CAAC,YAAY,GAAG,+BAAmB,CACnD,KAAK,CAAC,IAAI,EACV,cAAc,EACd,KAAK,CACN,CAAC;IAEF,eAAe;IACf,kBAAkB,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,kBAAkB,CAAC,iBAAiB,GAAG,cAAc,CAAC;IACtD,kBAAkB,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,kBAAkB,CAAC,iBAAiB,GAAG,eAAe,CAAC;IACvD,kBAAkB,CAAC,aAAa,GAAG,2BAAa,CAAC,kBAAkB,CAAC,CAAC;IAErE;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,GAAG,6CAAqB,CACjD,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,KAAI,EAAE,EACnC,mEAAiC,CAClC,CAAC;IAEF,kBAAkB,CAAC,KAAK,GAAG,2BAAY,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAEpE,uEAAuE;IACvE,OAAO,kBAA4C,CAAC;AACtD,CAAC;AAvCD,oCAuCC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPropertyMap = void 0;
|
|
4
|
+
const getBasePropertyMap_1 = require("../../core/_internal/getBasePropertyMap");
|
|
5
|
+
/**
|
|
6
|
+
* @private
|
|
7
|
+
* Returns an Array of IPropertyMap objects
|
|
8
|
+
* that define the projection of properties from an IModel to an IHubInitiativeTemplate
|
|
9
|
+
*/
|
|
10
|
+
function getPropertyMap() {
|
|
11
|
+
const map = getBasePropertyMap_1.getBasePropertyMap();
|
|
12
|
+
// Type specific mappings
|
|
13
|
+
map.push({ entityKey: "previewUrl", storeKey: "item.properties.previewUrl" });
|
|
14
|
+
map.push({ entityKey: "siteSolutionId", storeKey: "data.siteSolutionId" });
|
|
15
|
+
map.push({
|
|
16
|
+
entityKey: "recommendedTemplates",
|
|
17
|
+
storeKey: "data.recommendedTemplates",
|
|
18
|
+
});
|
|
19
|
+
return map;
|
|
20
|
+
}
|
|
21
|
+
exports.getPropertyMap = getPropertyMap;
|
|
22
|
+
//# sourceMappingURL=getPropertyMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/initiative-templates/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AAAA,gFAA6E;AAG7E;;;;GAIG;AACH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC,yBAAyB;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,4BAA4B,EAAE,CAAC,CAAC;IAC9E,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC3E,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,sBAAsB;QACjC,QAAQ,EAAE,2BAA2B;KACtC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAZD,wCAYC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_INITIATIVE_TEMPLATE_MODEL = exports.DEFAULT_INITIATIVE_TEMPLATE = exports.HUB_INITIATIVE_TEMPLATE_ITEM_TYPE = void 0;
|
|
4
|
+
const InitiativeTemplateBusinessRules_1 = require("./_internal/InitiativeTemplateBusinessRules");
|
|
5
|
+
exports.HUB_INITIATIVE_TEMPLATE_ITEM_TYPE = "Hub Initiative Template";
|
|
6
|
+
/**
|
|
7
|
+
* Default values of a IHubInitiativeTemplate
|
|
8
|
+
*/
|
|
9
|
+
exports.DEFAULT_INITIATIVE_TEMPLATE = {
|
|
10
|
+
catalog: { schemaVersion: 0 },
|
|
11
|
+
name: "No title provided",
|
|
12
|
+
permissions: [],
|
|
13
|
+
tags: [],
|
|
14
|
+
typeKeywords: [exports.HUB_INITIATIVE_TEMPLATE_ITEM_TYPE],
|
|
15
|
+
schemaVersion: 1,
|
|
16
|
+
features: InitiativeTemplateBusinessRules_1.InitiativeTemplateDefaultFeatures,
|
|
17
|
+
values: {},
|
|
18
|
+
};
|
|
19
|
+
exports.DEFAULT_INITIATIVE_TEMPLATE_MODEL = {
|
|
20
|
+
item: {
|
|
21
|
+
type: exports.HUB_INITIATIVE_TEMPLATE_ITEM_TYPE,
|
|
22
|
+
title: "No Title Provided",
|
|
23
|
+
description: "No Description Provided",
|
|
24
|
+
snippet: "",
|
|
25
|
+
tags: [],
|
|
26
|
+
typeKeywords: [exports.HUB_INITIATIVE_TEMPLATE_ITEM_TYPE],
|
|
27
|
+
properties: {
|
|
28
|
+
slug: "",
|
|
29
|
+
schemaVersion: 1,
|
|
30
|
+
previewUrl: "",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
data: {
|
|
34
|
+
recommendedTemplates: [],
|
|
35
|
+
siteSolutionId: "",
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/initiative-templates/defaults.ts"],"names":[],"mappings":";;;AAEA,iGAAgG;AAEnF,QAAA,iCAAiC,GAAG,yBAAyB,CAAC;AAE3E;;GAEG;AACU,QAAA,2BAA2B,GAAoC;IAC1E,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7B,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,CAAC,yCAAiC,CAAC;IACjD,aAAa,EAAE,CAAC;IAChB,QAAQ,EAAE,mEAAiC;IAC3C,MAAM,EAAE,EAAE;CACX,CAAC;AAEW,QAAA,iCAAiC,GAAW;IACvD,IAAI,EAAE;QACJ,IAAI,EAAE,yCAAiC;QACvC,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,CAAC,yCAAiC,CAAC;QACjD,UAAU,EAAE;YACV,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,EAAE;SACf;KACF;IACD,IAAI,EAAE;QACJ,oBAAoB,EAAE,EAAE;QACxB,cAAc,EAAE,EAAE;KACnB;CACmB,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteInitiativeTemplate = exports.updateInitiativeTemplate = exports.editorToInitiativeTemplate = exports.createInitiativeTemplate = void 0;
|
|
4
|
+
// Note - we separate these imports so we can cleanly spy on things in tests
|
|
5
|
+
const models_1 = require("../models");
|
|
6
|
+
const slugs_1 = require("../items/slugs");
|
|
7
|
+
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
8
|
+
const PropertyMapper_1 = require("../core/_internal/PropertyMapper");
|
|
9
|
+
const defaults_1 = require("./defaults");
|
|
10
|
+
const computeProps_1 = require("./_internal/computeProps");
|
|
11
|
+
const getPropertyMap_1 = require("./_internal/getPropertyMap");
|
|
12
|
+
const util_1 = require("../util");
|
|
13
|
+
const discussions_1 = require("../discussions");
|
|
14
|
+
/**
|
|
15
|
+
* @private
|
|
16
|
+
* Create a new Hub Initiative Template item
|
|
17
|
+
* @param partialInitiativeTemplate
|
|
18
|
+
* @param requestOptions
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
async function createInitiativeTemplate(partialInitiativeTemplate, requestOptions) {
|
|
22
|
+
const initiativeTemplate = Object.assign(Object.assign({}, defaults_1.DEFAULT_INITIATIVE_TEMPLATE), partialInitiativeTemplate);
|
|
23
|
+
// Create slug from the title if one is not passed in
|
|
24
|
+
if (!initiativeTemplate.slug) {
|
|
25
|
+
initiativeTemplate.slug = slugs_1.constructSlug(initiativeTemplate.name, initiativeTemplate.orgUrlKey);
|
|
26
|
+
}
|
|
27
|
+
// Ensure slug is unique
|
|
28
|
+
initiativeTemplate.slug = await slugs_1.getUniqueSlug({ slug: initiativeTemplate.slug }, requestOptions);
|
|
29
|
+
// add slug to keywords
|
|
30
|
+
initiativeTemplate.typeKeywords = slugs_1.setSlugKeyword(initiativeTemplate.typeKeywords, initiativeTemplate.slug);
|
|
31
|
+
initiativeTemplate.typeKeywords = discussions_1.setDiscussableKeyword(initiativeTemplate.typeKeywords, initiativeTemplate.isDiscussable);
|
|
32
|
+
// Map initiative template object onto a default initiative template model
|
|
33
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap_1.getPropertyMap());
|
|
34
|
+
// create model from object, using the default model as a starting point
|
|
35
|
+
let model = mapper.entityToStore(initiativeTemplate, util_1.cloneObject(defaults_1.DEFAULT_INITIATIVE_TEMPLATE_MODEL));
|
|
36
|
+
// create the item
|
|
37
|
+
model = await models_1.createModel(model, requestOptions);
|
|
38
|
+
// map the model back into a IHubInitiativeTemplate
|
|
39
|
+
let newInitiativeTemplate = mapper.storeToEntity(model, {});
|
|
40
|
+
newInitiativeTemplate = computeProps_1.computeProps(model, newInitiativeTemplate, requestOptions);
|
|
41
|
+
// and return it
|
|
42
|
+
return newInitiativeTemplate;
|
|
43
|
+
}
|
|
44
|
+
exports.createInitiativeTemplate = createInitiativeTemplate;
|
|
45
|
+
/**
|
|
46
|
+
* Convert an IHubInitiativeTemplateEditor back to an IHubInitiativeTemplate
|
|
47
|
+
* @param editor
|
|
48
|
+
* @param portal
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
function editorToInitiativeTemplate(editor, portal) {
|
|
52
|
+
// clone into HubInitiativeTemplate
|
|
53
|
+
const initiativeTemplate = util_1.cloneObject(editor);
|
|
54
|
+
// ensure there's an org url key
|
|
55
|
+
initiativeTemplate.orgUrlKey = editor.orgUrlKey
|
|
56
|
+
? editor.orgUrlKey
|
|
57
|
+
: portal.urlKey;
|
|
58
|
+
// return initiatve template
|
|
59
|
+
return initiativeTemplate;
|
|
60
|
+
}
|
|
61
|
+
exports.editorToInitiativeTemplate = editorToInitiativeTemplate;
|
|
62
|
+
/**
|
|
63
|
+
* @private
|
|
64
|
+
* Update a Hub Initiative Template
|
|
65
|
+
* @param initiativeTemplate
|
|
66
|
+
* @param requestOptions
|
|
67
|
+
*/
|
|
68
|
+
async function updateInitiativeTemplate(initiativeTemplate, requestOptions) {
|
|
69
|
+
// verify that the slug is unique, excluding the current initiative template
|
|
70
|
+
initiativeTemplate.slug = await slugs_1.getUniqueSlug({ slug: initiativeTemplate.slug, existingId: initiativeTemplate.id }, requestOptions);
|
|
71
|
+
// set discussable keyword
|
|
72
|
+
initiativeTemplate.typeKeywords = discussions_1.setDiscussableKeyword(initiativeTemplate.typeKeywords, initiativeTemplate.isDiscussable);
|
|
73
|
+
// get the backing item & data
|
|
74
|
+
const model = await models_1.getModel(initiativeTemplate.id, requestOptions);
|
|
75
|
+
// create the PropertyMapper
|
|
76
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap_1.getPropertyMap());
|
|
77
|
+
// Note: Although we are fetching the model, and applying changes onto it,
|
|
78
|
+
// we are not attempting to handle "concurrent edit" conflict resolution
|
|
79
|
+
// but this is where we would apply that sort of logic
|
|
80
|
+
const modelToUpdate = mapper.entityToStore(initiativeTemplate, model);
|
|
81
|
+
// update the backing item
|
|
82
|
+
const updatedModel = await models_1.updateModel(modelToUpdate, requestOptions);
|
|
83
|
+
// now map back into an initiative template and return that
|
|
84
|
+
const updatedInitiativeTemplate = mapper.storeToEntity(updatedModel, initiativeTemplate);
|
|
85
|
+
initiativeTemplate = computeProps_1.computeProps(model, updatedInitiativeTemplate, requestOptions);
|
|
86
|
+
// the casting is needed because modelToObject returns a `Partial<T>`
|
|
87
|
+
// whereas this function returns a `T`
|
|
88
|
+
return updatedInitiativeTemplate;
|
|
89
|
+
}
|
|
90
|
+
exports.updateInitiativeTemplate = updateInitiativeTemplate;
|
|
91
|
+
/**
|
|
92
|
+
* @private
|
|
93
|
+
* Remove a Hub Initiative Template
|
|
94
|
+
* @param id
|
|
95
|
+
* @param requestOptions
|
|
96
|
+
*/
|
|
97
|
+
async function deleteInitiativeTemplate(id, requestOptions) {
|
|
98
|
+
const ro = Object.assign(Object.assign({}, requestOptions), { id });
|
|
99
|
+
await arcgis_rest_portal_1.removeItem(ro);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
exports.deleteInitiativeTemplate = deleteInitiativeTemplate;
|
|
103
|
+
//# sourceMappingURL=edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/initiative-templates/edit.ts"],"names":[],"mappings":"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"}
|