@esri/hub-common 11.0.0 → 11.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/core/HubItemEntity.js +202 -0
- package/dist/esm/core/HubItemEntity.js.map +1 -0
- package/dist/esm/core/_internal/getBasePropertyMap.js +57 -0
- package/dist/esm/core/_internal/getBasePropertyMap.js.map +1 -0
- package/dist/esm/core/behaviors/IWithThumbnailBehavior.js +1 -0
- package/dist/esm/core/behaviors/IWithThumbnailBehavior.js.map +1 -0
- package/dist/esm/core/traits/IWithCatalog.js +1 -0
- package/dist/esm/core/traits/IWithCatalog.js.map +1 -0
- package/dist/esm/core/traits/index.js +1 -0
- package/dist/esm/core/traits/index.js.map +1 -1
- package/dist/esm/core/types/IEntityResource.js +1 -0
- package/dist/esm/core/types/IEntityResource.js.map +1 -0
- package/dist/esm/core/types/IItemResource.js +1 -0
- package/dist/esm/core/types/IItemResource.js.map +1 -0
- package/dist/esm/core/types/index.js +0 -2
- package/dist/esm/core/types/index.js.map +1 -1
- package/dist/esm/index.js +1 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/initiatives/HubInitiative.js +149 -0
- package/dist/esm/initiatives/HubInitiative.js.map +1 -0
- package/dist/esm/initiatives/HubInitiatives.js +205 -0
- package/dist/esm/initiatives/HubInitiatives.js.map +1 -0
- package/dist/esm/initiatives/defaults.js +31 -0
- package/dist/esm/initiatives/defaults.js.map +1 -0
- package/dist/esm/initiatives/index.js +3 -0
- package/dist/esm/initiatives/index.js.map +1 -0
- package/dist/esm/items/setItemThumbnail.js +1 -0
- package/dist/esm/items/setItemThumbnail.js.map +1 -1
- package/dist/esm/projects/HubProject.js +9 -65
- package/dist/esm/projects/HubProject.js.map +1 -1
- package/dist/esm/projects/HubProjects.js +13 -54
- package/dist/esm/projects/HubProjects.js.map +1 -1
- package/dist/esm/projects/defaults.js +2 -1
- package/dist/esm/projects/defaults.js.map +1 -1
- package/dist/esm/urls/get-campaign-url.js +25 -0
- package/dist/esm/urls/get-campaign-url.js.map +1 -0
- package/dist/esm/urls/index.js +1 -0
- package/dist/esm/urls/index.js.map +1 -1
- package/dist/node/core/HubItemEntity.js +206 -0
- package/dist/node/core/HubItemEntity.js.map +1 -0
- package/dist/node/core/_internal/getBasePropertyMap.js +61 -0
- package/dist/node/core/_internal/getBasePropertyMap.js.map +1 -0
- package/dist/node/core/{traits/IWithCatalogDefinition.js → behaviors/IWithThumbnailBehavior.js} +1 -1
- package/dist/node/core/behaviors/IWithThumbnailBehavior.js.map +1 -0
- package/dist/node/core/{types/IHubEntityManager.js → traits/IWithCatalog.js} +1 -1
- package/dist/node/core/traits/IWithCatalog.js.map +1 -0
- package/dist/node/core/traits/index.js +1 -0
- package/dist/node/core/traits/index.js.map +1 -1
- package/dist/node/core/types/{IHubItemEntityManager.js → IEntityResource.js} +1 -1
- package/dist/node/core/types/IEntityResource.js.map +1 -0
- package/dist/node/core/types/IItemResource.js +3 -0
- package/dist/node/core/types/IItemResource.js.map +1 -0
- package/dist/node/core/types/index.js +0 -2
- package/dist/node/core/types/index.js.map +1 -1
- package/dist/node/index.js +1 -2
- package/dist/node/index.js.map +1 -1
- package/dist/node/initiatives/HubInitiative.js +153 -0
- package/dist/node/initiatives/HubInitiative.js.map +1 -0
- package/dist/node/initiatives/HubInitiatives.js +214 -0
- package/dist/node/initiatives/HubInitiatives.js.map +1 -0
- package/dist/node/initiatives/defaults.js +34 -0
- package/dist/node/initiatives/defaults.js.map +1 -0
- package/dist/node/initiatives/index.js +6 -0
- package/dist/node/initiatives/index.js.map +1 -0
- package/dist/node/items/setItemThumbnail.js +1 -0
- package/dist/node/items/setItemThumbnail.js.map +1 -1
- package/dist/node/projects/HubProject.js +9 -65
- package/dist/node/projects/HubProject.js.map +1 -1
- package/dist/node/projects/HubProjects.js +13 -54
- package/dist/node/projects/HubProjects.js.map +1 -1
- package/dist/node/projects/defaults.js +2 -1
- package/dist/node/projects/defaults.js.map +1 -1
- package/dist/node/urls/get-campaign-url.js +29 -0
- package/dist/node/urls/get-campaign-url.js.map +1 -0
- package/dist/node/urls/index.js +1 -0
- package/dist/node/urls/index.js.map +1 -1
- package/dist/types/content/_internal.d.ts +9 -8
- package/dist/types/core/HubItemEntity.d.ts +83 -0
- package/dist/types/core/_internal/getBasePropertyMap.d.ts +7 -0
- package/dist/types/core/behaviors/IWithStoreBehavior.d.ts +10 -0
- package/dist/types/core/behaviors/IWithThumbnailBehavior.d.ts +21 -0
- package/dist/types/core/traits/{IWithCatalogDefinition.d.ts → IWithCatalog.d.ts} +0 -0
- package/dist/types/core/traits/IWithPermissions.d.ts +1 -1
- package/dist/types/core/traits/index.d.ts +1 -0
- package/dist/types/core/types/IEntityResource.d.ts +21 -0
- package/dist/types/core/types/IHubContent.d.ts +1 -1
- package/dist/types/core/types/IHubInitiative.d.ts +2 -2
- package/dist/types/core/types/IHubItemEntity.d.ts +29 -16
- package/dist/types/core/types/IHubProject.d.ts +3 -3
- package/dist/types/core/types/IItemResource.d.ts +9 -0
- package/dist/types/core/types/index.d.ts +0 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/initiatives/HubInitiative.d.ts +67 -0
- package/dist/types/initiatives/HubInitiatives.d.ts +55 -0
- package/dist/types/initiatives/defaults.d.ts +11 -0
- package/dist/types/initiatives/index.d.ts +2 -0
- package/dist/types/projects/HubProject.d.ts +7 -33
- package/dist/types/urls/get-campaign-url.d.ts +22 -0
- package/dist/types/urls/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/esm/core/traits/IWithCatalogDefinition.js +0 -1
- package/dist/esm/core/traits/IWithCatalogDefinition.js.map +0 -1
- package/dist/esm/core/types/IHubEntityManager.js +0 -1
- package/dist/esm/core/types/IHubEntityManager.js.map +0 -1
- package/dist/esm/core/types/IHubItemEntityManager.js +0 -1
- package/dist/esm/core/types/IHubItemEntityManager.js.map +0 -1
- package/dist/node/core/traits/IWithCatalogDefinition.js.map +0 -1
- package/dist/node/core/types/IHubEntityManager.js.map +0 -1
- package/dist/node/core/types/IHubItemEntityManager.js.map +0 -1
- package/dist/types/core/types/IHubEntityManager.d.ts +0 -46
- package/dist/types/core/types/IHubItemEntityManager.d.ts +0 -25
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enrichInitiativeSearchResult = exports.convertItemToInitiative = exports.deleteInitiative = exports.fetchInitiative = exports.updateInitiative = exports.createInitiative = 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 index_1 = require("../index");
|
|
8
|
+
const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
9
|
+
const PropertyMapper_1 = require("../core/_internal/PropertyMapper");
|
|
10
|
+
const parseInclude_1 = require("../search/_internal/parseInclude");
|
|
11
|
+
const _enrichments_1 = require("../items/_enrichments");
|
|
12
|
+
const _internal_1 = require("../content/_internal");
|
|
13
|
+
const defaults_1 = require("./defaults");
|
|
14
|
+
const getBasePropertyMap_1 = require("../core/_internal/getBasePropertyMap");
|
|
15
|
+
/**
|
|
16
|
+
* Returns an Array of IPropertyMap objects
|
|
17
|
+
* that define the projection of properties from a IModel to an IHubInitiative
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
function getPropertyMap() {
|
|
21
|
+
const map = getBasePropertyMap_1.getBasePropertyMap();
|
|
22
|
+
// Type specific mappings
|
|
23
|
+
map.push({ objectKey: "catalog", modelKey: "data.catalog" });
|
|
24
|
+
map.push({ objectKey: "permissions", modelKey: "data.permissions" });
|
|
25
|
+
return map;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @private
|
|
29
|
+
* Create a new Hub Initiative item
|
|
30
|
+
*
|
|
31
|
+
* Minimal properties are name and orgUrlKey
|
|
32
|
+
*
|
|
33
|
+
* @param partialInitiative
|
|
34
|
+
* @param requestOptions
|
|
35
|
+
*/
|
|
36
|
+
async function createInitiative(partialInitiative, requestOptions) {
|
|
37
|
+
// merge incoming with the default
|
|
38
|
+
// this expansion solves the typing somehow
|
|
39
|
+
const initiative = Object.assign(Object.assign({}, defaults_1.DEFAULT_INITIATIVE), partialInitiative);
|
|
40
|
+
// Create a slug from the title if one is not passed in
|
|
41
|
+
if (!initiative.slug) {
|
|
42
|
+
initiative.slug = slugs_1.constructSlug(initiative.name, initiative.orgUrlKey);
|
|
43
|
+
}
|
|
44
|
+
// Ensure slug is unique
|
|
45
|
+
initiative.slug = await slugs_1.getUniqueSlug({ slug: initiative.slug }, requestOptions);
|
|
46
|
+
// add slug to keywords
|
|
47
|
+
initiative.typeKeywords = slugs_1.setSlugKeyword(initiative.typeKeywords, initiative.slug);
|
|
48
|
+
// Map initiative object onto a default initiative Model
|
|
49
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap());
|
|
50
|
+
// create model from object, using the default model as a starting point
|
|
51
|
+
let model = mapper.objectToModel(initiative, index_1.cloneObject(defaults_1.DEFAULT_INITIATIVE_MODEL));
|
|
52
|
+
// create the item
|
|
53
|
+
model = await models_1.createModel(model, requestOptions);
|
|
54
|
+
// map the model back into a IHubInitiative
|
|
55
|
+
let newInitiative = mapper.modelToObject(model, {});
|
|
56
|
+
newInitiative = computeProps(model, newInitiative, requestOptions);
|
|
57
|
+
// and return it
|
|
58
|
+
return newInitiative;
|
|
59
|
+
}
|
|
60
|
+
exports.createInitiative = createInitiative;
|
|
61
|
+
/**
|
|
62
|
+
* @private
|
|
63
|
+
* Update a Hub Initiative
|
|
64
|
+
* @param initiative
|
|
65
|
+
* @param requestOptions
|
|
66
|
+
*/
|
|
67
|
+
async function updateInitiative(initiative, requestOptions) {
|
|
68
|
+
// verify that the slug is unique, excluding the current initiative
|
|
69
|
+
initiative.slug = await slugs_1.getUniqueSlug({ slug: initiative.slug, existingId: initiative.id }, requestOptions);
|
|
70
|
+
// get the backing item & data
|
|
71
|
+
const model = await models_1.getModel(initiative.id, requestOptions);
|
|
72
|
+
// create the PropertyMapper
|
|
73
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap());
|
|
74
|
+
// Note: Although we are fetching the model, and applying changes onto it,
|
|
75
|
+
// we are not attempting to handle "concurrent edit" conflict resolution
|
|
76
|
+
// but this is where we would apply that sort of logic
|
|
77
|
+
const modelToUpdate = mapper.objectToModel(initiative, model);
|
|
78
|
+
// update the backing item
|
|
79
|
+
const updatedModel = await models_1.updateModel(modelToUpdate, requestOptions);
|
|
80
|
+
// now map back into an initiative and return that
|
|
81
|
+
let updatedInitiative = mapper.modelToObject(updatedModel, initiative);
|
|
82
|
+
updatedInitiative = computeProps(model, updatedInitiative, requestOptions);
|
|
83
|
+
// the casting is needed because modelToObject returns a `Partial<T>`
|
|
84
|
+
// where as this function returns a `T`
|
|
85
|
+
return updatedInitiative;
|
|
86
|
+
}
|
|
87
|
+
exports.updateInitiative = updateInitiative;
|
|
88
|
+
/**
|
|
89
|
+
* @private
|
|
90
|
+
* Get a Hub Initiative by id or slug
|
|
91
|
+
* @param identifier item id or slug
|
|
92
|
+
* @param requestOptions
|
|
93
|
+
*/
|
|
94
|
+
function fetchInitiative(identifier, requestOptions) {
|
|
95
|
+
let getPrms;
|
|
96
|
+
if (index_1.isGuid(identifier)) {
|
|
97
|
+
// get item by id
|
|
98
|
+
getPrms = arcgis_rest_portal_1.getItem(identifier, requestOptions);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
getPrms = slugs_1.getItemBySlug(identifier, requestOptions);
|
|
102
|
+
}
|
|
103
|
+
return getPrms.then((item) => {
|
|
104
|
+
if (!item)
|
|
105
|
+
return null;
|
|
106
|
+
return convertItemToInitiative(item, requestOptions);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
exports.fetchInitiative = fetchInitiative;
|
|
110
|
+
/**
|
|
111
|
+
* @private
|
|
112
|
+
* Remove a Hub Initiative
|
|
113
|
+
* @param id
|
|
114
|
+
* @param requestOptions
|
|
115
|
+
*/
|
|
116
|
+
async function deleteInitiative(id, requestOptions) {
|
|
117
|
+
const ro = Object.assign(Object.assign({}, requestOptions), { id });
|
|
118
|
+
await arcgis_rest_portal_1.removeItem(ro);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
exports.deleteInitiative = deleteInitiative;
|
|
122
|
+
/**
|
|
123
|
+
* @private
|
|
124
|
+
* Convert an Hub Initiative Item into a Hub Initiative, fetching any additional
|
|
125
|
+
* information that may be required
|
|
126
|
+
* @param item
|
|
127
|
+
* @param auth
|
|
128
|
+
* @returns
|
|
129
|
+
*/
|
|
130
|
+
async function convertItemToInitiative(item, requestOptions) {
|
|
131
|
+
const model = await models_1.fetchModelFromItem(item, requestOptions);
|
|
132
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap());
|
|
133
|
+
const prj = mapper.modelToObject(model, {});
|
|
134
|
+
return computeProps(model, prj, requestOptions);
|
|
135
|
+
}
|
|
136
|
+
exports.convertItemToInitiative = convertItemToInitiative;
|
|
137
|
+
/**
|
|
138
|
+
* Given a model and an initiative, set various computed properties that can't be directly mapped
|
|
139
|
+
* @param model
|
|
140
|
+
* @param initiative
|
|
141
|
+
* @param requestOptions
|
|
142
|
+
* @returns
|
|
143
|
+
*/
|
|
144
|
+
function computeProps(model, initiative, requestOptions) {
|
|
145
|
+
let token;
|
|
146
|
+
if (requestOptions.authentication) {
|
|
147
|
+
const session = requestOptions.authentication;
|
|
148
|
+
token = session.token;
|
|
149
|
+
}
|
|
150
|
+
// thumbnail url
|
|
151
|
+
initiative.thumbnailUrl = index_1.getItemThumbnailUrl(model.item, requestOptions, token);
|
|
152
|
+
// Handle Dates
|
|
153
|
+
initiative.createdDate = new Date(model.item.created);
|
|
154
|
+
initiative.createdDateSource = "item.created";
|
|
155
|
+
initiative.updatedDate = new Date(model.item.modified);
|
|
156
|
+
initiative.updatedDateSource = "item.modified";
|
|
157
|
+
// cast b/c this takes a partial but returns a full initiative
|
|
158
|
+
return initiative;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* @private
|
|
162
|
+
* Fetch Initiative specific enrichments
|
|
163
|
+
* @param item
|
|
164
|
+
* @param include
|
|
165
|
+
* @param requestOptions
|
|
166
|
+
* @returns
|
|
167
|
+
*/
|
|
168
|
+
async function enrichInitiativeSearchResult(item, include, requestOptions) {
|
|
169
|
+
// Create the basic structure
|
|
170
|
+
const result = {
|
|
171
|
+
access: item.access,
|
|
172
|
+
id: item.id,
|
|
173
|
+
type: item.type,
|
|
174
|
+
name: item.title,
|
|
175
|
+
owner: item.owner,
|
|
176
|
+
summary: item.snippet || item.description,
|
|
177
|
+
createdDate: new Date(item.created),
|
|
178
|
+
createdDateSource: "item.created",
|
|
179
|
+
updatedDate: new Date(item.modified),
|
|
180
|
+
updatedDateSource: "item.modified",
|
|
181
|
+
family: index_1.getFamily(item.type),
|
|
182
|
+
links: {
|
|
183
|
+
self: "not-implemented",
|
|
184
|
+
siteRelative: "not-implemented",
|
|
185
|
+
thumbnail: "not-implemented",
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
// default includes
|
|
189
|
+
const DEFAULTS = [];
|
|
190
|
+
// merge includes
|
|
191
|
+
include = [...DEFAULTS, ...include].filter(index_1.unique);
|
|
192
|
+
// Parse the includes into a valid set of enrichments
|
|
193
|
+
const specs = include.map(parseInclude_1.parseInclude);
|
|
194
|
+
// Extract out the low-level enrichments needed
|
|
195
|
+
const enrichments = index_1.mapBy("enrichment", specs).filter(index_1.unique);
|
|
196
|
+
// fetch the enrichments
|
|
197
|
+
let enriched = {};
|
|
198
|
+
if (enrichments.length) {
|
|
199
|
+
// TODO: Look into caching for the requests in fetchItemEnrichments
|
|
200
|
+
enriched = await _enrichments_1.fetchItemEnrichments(item, enrichments, requestOptions);
|
|
201
|
+
}
|
|
202
|
+
// map the enriched props onto the result
|
|
203
|
+
specs.forEach((spec) => {
|
|
204
|
+
result[spec.prop] = index_1.getProp(enriched, spec.path);
|
|
205
|
+
});
|
|
206
|
+
// Handle links
|
|
207
|
+
// TODO: Link handling should be an enrichment
|
|
208
|
+
result.links.thumbnail = index_1.getItemThumbnailUrl(item, requestOptions);
|
|
209
|
+
result.links.self = index_1.getItemHomeUrl(result.id, requestOptions);
|
|
210
|
+
result.links.siteRelative = _internal_1.getHubRelativeUrl(result.type, result.id, item.typeKeywords);
|
|
211
|
+
return result;
|
|
212
|
+
}
|
|
213
|
+
exports.enrichInitiativeSearchResult = enrichInitiativeSearchResult;
|
|
214
|
+
//# sourceMappingURL=HubInitiatives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HubInitiatives.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiatives.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_INITIATIVE_MODEL = exports.DEFAULT_INITIATIVE = exports.HUB_INITIATIVE_ITEM_TYPE = void 0;
|
|
4
|
+
exports.HUB_INITIATIVE_ITEM_TYPE = "Hub Initiative";
|
|
5
|
+
/**
|
|
6
|
+
* Default values of a IHubInitiative
|
|
7
|
+
*/
|
|
8
|
+
exports.DEFAULT_INITIATIVE = {
|
|
9
|
+
name: "No title provided",
|
|
10
|
+
tags: [],
|
|
11
|
+
typeKeywords: ["Hub Initiative"],
|
|
12
|
+
catalog: { schemaVersion: 0 },
|
|
13
|
+
permissions: [],
|
|
14
|
+
schemaVersion: 3,
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Default values for a new HubInitiative Model
|
|
18
|
+
*/
|
|
19
|
+
exports.DEFAULT_INITIATIVE_MODEL = {
|
|
20
|
+
item: {
|
|
21
|
+
type: exports.HUB_INITIATIVE_ITEM_TYPE,
|
|
22
|
+
title: "No Title Provided",
|
|
23
|
+
description: "No Description Provided",
|
|
24
|
+
snippet: "",
|
|
25
|
+
tags: [],
|
|
26
|
+
typeKeywords: ["Hub Initiative"],
|
|
27
|
+
properties: {
|
|
28
|
+
slug: "",
|
|
29
|
+
schemaVersion: 3,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
data: {},
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/initiatives/defaults.ts"],"names":[],"mappings":";;;AAGa,QAAA,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD;;GAEG;AACU,QAAA,kBAAkB,GAA4B;IACzD,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;IAChC,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7B,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACU,QAAA,wBAAwB,GAAW;IAC9C,IAAI,EAAE;QACJ,IAAI,EAAE,gCAAwB;QAC9B,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;QAChC,UAAU,EAAE;YACV,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,CAAC;SACjB;KACF;IACD,IAAI,EAAE,EAAE;CACY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./HubInitiatives"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./HubInitiative"), exports);
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/initiatives/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,0DAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setItemThumbnail.js","sourceRoot":"","sources":["../../../src/items/setItemThumbnail.ts"],"names":[],"mappings":";;;AACA,iEAAsD;AACtD,0BAA8B;AAE9B;;;;;;GAMG;AACI,KAAK,UAAU,gBAAgB,CACpC,EAAU,EACV,IAAS,EACT,QAAgB,EAChB,cAAmC;IAEnC,MAAM,IAAI,mBACR,IAAI,EAAE;YACJ,EAAE;SACH,EACD,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"setItemThumbnail.js","sourceRoot":"","sources":["../../../src/items/setItemThumbnail.ts"],"names":[],"mappings":";;;AACA,iEAAsD;AACtD,0BAA8B;AAE9B;;;;;;GAMG;AACI,KAAK,UAAU,gBAAgB,CACpC,EAAU,EACV,IAAS,EACT,QAAgB,EAChB,cAAmC;IAEnC,MAAM,IAAI,mBACR,IAAI,EAAE;YACJ,EAAE;SACH,EACD,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,QAAQ;SACnB,EACD,QAAQ,IACL,cAAc,CAClB,CAAC;IACF,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,+BAAU,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACrB,MAAM,IAAI,YAAQ,CAChB,uBAAuB,EACvB,kCAAkC,CACnC,CAAC;SACH;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,KAAK,EAAE;YACxB,MAAM,IAAI,YAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SAC/D;aAAM;YACL,MAAM,IAAI,YAAQ,CAChB,uBAAuB,EACvB,kCAAkC,CACnC,CAAC;SACH;KACF;AACH,CAAC;AAnCD,4CAmCC"}
|
|
@@ -3,35 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HubProject = void 0;
|
|
4
4
|
const defaults_1 = require("./defaults");
|
|
5
5
|
const core_1 = require("../core");
|
|
6
|
-
const util_1 = require("../util");
|
|
7
6
|
const HubProjects_1 = require("./HubProjects");
|
|
8
7
|
const Catalog_1 = require("../search/Catalog");
|
|
9
|
-
const
|
|
10
|
-
const sharedWith_1 = require("../core/_internal/sharedWith");
|
|
8
|
+
const HubItemEntity_1 = require("../core/HubItemEntity");
|
|
11
9
|
/**
|
|
12
10
|
* Hub Project Class
|
|
13
11
|
*/
|
|
14
|
-
class HubProject {
|
|
12
|
+
class HubProject extends HubItemEntity_1.HubItemEntity {
|
|
15
13
|
/**
|
|
16
14
|
* Private constructor so we don't have `new` all over the place. Allows for
|
|
17
15
|
* more flexibility in how we create the HubProjectManager over time.
|
|
18
16
|
* @param context
|
|
19
17
|
*/
|
|
20
18
|
constructor(project, context) {
|
|
21
|
-
|
|
22
|
-
this.context = context;
|
|
23
|
-
this.entity = project;
|
|
19
|
+
super(project, context);
|
|
24
20
|
this._catalog = Catalog_1.Catalog.fromJson(project.catalog, this.context);
|
|
25
21
|
this._permissionManager = core_1.PermissionManager.fromJson(project.permissions, this.context);
|
|
26
22
|
}
|
|
27
23
|
/**
|
|
28
|
-
*
|
|
24
|
+
* Catalog instance for this project. Note: Do not hold direct references to this object; always access it from the project.
|
|
25
|
+
* @returns
|
|
29
26
|
*/
|
|
30
27
|
get catalog() {
|
|
31
28
|
return this._catalog;
|
|
32
29
|
}
|
|
33
30
|
/**
|
|
34
|
-
*
|
|
31
|
+
* PermissionManager instance for this project. Note: Do not hold direct references to this object; always access it from the project.
|
|
32
|
+
* @returns
|
|
35
33
|
*/
|
|
36
34
|
get permissions() {
|
|
37
35
|
return this._permissionManager;
|
|
@@ -95,16 +93,6 @@ class HubProject {
|
|
|
95
93
|
const pojo = Object.assign(Object.assign({}, defaults_1.DEFAULT_PROJECT), partialProject);
|
|
96
94
|
return pojo;
|
|
97
95
|
}
|
|
98
|
-
/**
|
|
99
|
-
* Get the current state of the IHubProject from the instance
|
|
100
|
-
* @returns IHubProject POJO
|
|
101
|
-
*/
|
|
102
|
-
toJson() {
|
|
103
|
-
if (this.isDestroyed) {
|
|
104
|
-
throw new Error("HubProject is already destroyed.");
|
|
105
|
-
}
|
|
106
|
-
return util_1.cloneObject(this.entity);
|
|
107
|
-
}
|
|
108
96
|
/**
|
|
109
97
|
* Apply a new state to the instance
|
|
110
98
|
* @param changes
|
|
@@ -142,6 +130,8 @@ class HubProject {
|
|
|
142
130
|
// create it
|
|
143
131
|
this.entity = await HubProjects_1.createProject(this.entity, this.context.userRequestOptions);
|
|
144
132
|
}
|
|
133
|
+
// call the after save hook on superclass
|
|
134
|
+
await super.afterSave();
|
|
145
135
|
return;
|
|
146
136
|
}
|
|
147
137
|
/**
|
|
@@ -157,52 +147,6 @@ class HubProject {
|
|
|
157
147
|
// Delegate to module fn
|
|
158
148
|
await HubProjects_1.deleteProject(this.entity.id, this.context.userRequestOptions);
|
|
159
149
|
}
|
|
160
|
-
//#region IWithSharingBehavior
|
|
161
|
-
/**
|
|
162
|
-
* Share the Project with the specified group id
|
|
163
|
-
* @param groupId
|
|
164
|
-
*/
|
|
165
|
-
async shareWithGroup(groupId) {
|
|
166
|
-
await arcgis_rest_portal_1.shareItemWithGroup({
|
|
167
|
-
id: this.entity.id,
|
|
168
|
-
groupId,
|
|
169
|
-
owner: this.entity.owner,
|
|
170
|
-
authentication: this.context.session,
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Unshare the Project with the specified group id
|
|
175
|
-
* @param groupId
|
|
176
|
-
*/
|
|
177
|
-
async unshareWithGroup(groupId) {
|
|
178
|
-
await arcgis_rest_portal_1.unshareItemWithGroup({
|
|
179
|
-
id: this.entity.id,
|
|
180
|
-
groupId,
|
|
181
|
-
owner: this.entity.owner,
|
|
182
|
-
authentication: this.context.session,
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Set the access level of the backing item
|
|
187
|
-
* @param access
|
|
188
|
-
*/
|
|
189
|
-
async setAccess(access) {
|
|
190
|
-
await arcgis_rest_portal_1.setItemAccess({
|
|
191
|
-
id: this.entity.id,
|
|
192
|
-
access,
|
|
193
|
-
authentication: this.context.session,
|
|
194
|
-
});
|
|
195
|
-
// if this succeeded, update the entity
|
|
196
|
-
this.entity.access = access;
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Return a list of groups the Project is shared to.
|
|
200
|
-
* @returns
|
|
201
|
-
*/
|
|
202
|
-
async sharedWith() {
|
|
203
|
-
// delegate to a util that merges the three arrays returned from the api, into a single array
|
|
204
|
-
return sharedWith_1.sharedWith(this.entity.id, this.context.requestOptions);
|
|
205
|
-
}
|
|
206
150
|
}
|
|
207
151
|
exports.HubProject = HubProject;
|
|
208
152
|
//# sourceMappingURL=HubProject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubProject.js","sourceRoot":"","sources":["../../../src/projects/HubProject.ts"],"names":[],"mappings":";;;AAAA,yCAA6C;AAE7C,
|
|
1
|
+
{"version":3,"file":"HubProject.js","sourceRoot":"","sources":["../../../src/projects/HubProject.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,61 +11,19 @@ const parseInclude_1 = require("../search/_internal/parseInclude");
|
|
|
11
11
|
const _enrichments_1 = require("../items/_enrichments");
|
|
12
12
|
const _internal_1 = require("../content/_internal");
|
|
13
13
|
const defaults_1 = require("./defaults");
|
|
14
|
+
const getBasePropertyMap_1 = require("../core/_internal/getBasePropertyMap");
|
|
14
15
|
/**
|
|
15
16
|
* Returns an Array of IPropertyMap objects
|
|
16
|
-
*
|
|
17
|
-
* properties of IHubProject map directly to properties
|
|
18
|
-
* on item or data, it's slightly less verbose to
|
|
19
|
-
* generate the structure.
|
|
17
|
+
* that define the projection of properties from a IModel to an IHubProject
|
|
20
18
|
* @returns
|
|
21
19
|
*/
|
|
22
|
-
function
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"modified",
|
|
30
|
-
"owner",
|
|
31
|
-
"snippet",
|
|
32
|
-
"tags",
|
|
33
|
-
"typeKeywords",
|
|
34
|
-
"url",
|
|
35
|
-
"type",
|
|
36
|
-
"access",
|
|
37
|
-
];
|
|
38
|
-
const dataProps = [
|
|
39
|
-
"contacts",
|
|
40
|
-
"catalog",
|
|
41
|
-
"display",
|
|
42
|
-
"geometry",
|
|
43
|
-
"headerImage",
|
|
44
|
-
"layout",
|
|
45
|
-
"location",
|
|
46
|
-
"status",
|
|
47
|
-
"permissions",
|
|
48
|
-
];
|
|
49
|
-
const map = [];
|
|
50
|
-
itemProps.forEach((entry) => {
|
|
51
|
-
map.push({ objectKey: entry, modelKey: `item.${entry}` });
|
|
52
|
-
});
|
|
53
|
-
dataProps.forEach((entry) => {
|
|
54
|
-
map.push({ objectKey: entry, modelKey: `data.${entry}` });
|
|
55
|
-
});
|
|
56
|
-
// Deeper mappings
|
|
57
|
-
map.push({
|
|
58
|
-
objectKey: "slug",
|
|
59
|
-
modelKey: "item.properties.slug",
|
|
60
|
-
});
|
|
61
|
-
map.push({
|
|
62
|
-
objectKey: "orgUrlKey",
|
|
63
|
-
modelKey: "item.properties.orgUrlKey",
|
|
64
|
-
});
|
|
65
|
-
map.push({
|
|
66
|
-
objectKey: "name",
|
|
67
|
-
modelKey: "item.title",
|
|
68
|
-
});
|
|
20
|
+
function getPropertyMap() {
|
|
21
|
+
const map = getBasePropertyMap_1.getBasePropertyMap();
|
|
22
|
+
// Type specific mappings
|
|
23
|
+
map.push({ objectKey: "status", modelKey: "data.status" });
|
|
24
|
+
map.push({ objectKey: "catalog", modelKey: "data.catalog" });
|
|
25
|
+
map.push({ objectKey: "permissions", modelKey: "data.permissions" });
|
|
26
|
+
map.push({ objectKey: "contacts", modelKey: "data.contacts" });
|
|
69
27
|
return map;
|
|
70
28
|
}
|
|
71
29
|
/**
|
|
@@ -90,7 +48,7 @@ async function createProject(partialProject, requestOptions) {
|
|
|
90
48
|
// add slug to keywords
|
|
91
49
|
project.typeKeywords = slugs_1.setSlugKeyword(project.typeKeywords, project.slug);
|
|
92
50
|
// Map project object onto a default project Model
|
|
93
|
-
const mapper = new PropertyMapper_1.PropertyMapper(
|
|
51
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap());
|
|
94
52
|
// create model from object, using the default model as a starting point
|
|
95
53
|
let model = mapper.objectToModel(project, index_1.cloneObject(defaults_1.DEFAULT_PROJECT_MODEL));
|
|
96
54
|
// create the item
|
|
@@ -114,7 +72,7 @@ async function updateProject(project, requestOptions) {
|
|
|
114
72
|
// get the backing item & data
|
|
115
73
|
const model = await models_1.getModel(project.id, requestOptions);
|
|
116
74
|
// create the PropertyMapper
|
|
117
|
-
const mapper = new PropertyMapper_1.PropertyMapper(
|
|
75
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap());
|
|
118
76
|
// Note: Although we are fetching the model, and applying changes onto it,
|
|
119
77
|
// we are not attempting to handle "concurrent edit" conflict resolution
|
|
120
78
|
// but this is where we would apply that sort of logic
|
|
@@ -173,7 +131,8 @@ exports.deleteProject = deleteProject;
|
|
|
173
131
|
*/
|
|
174
132
|
async function convertItemToProject(item, requestOptions) {
|
|
175
133
|
const model = await models_1.fetchModelFromItem(item, requestOptions);
|
|
176
|
-
|
|
134
|
+
// TODO: In the future we will handle the boundary fetching from resource
|
|
135
|
+
const mapper = new PropertyMapper_1.PropertyMapper(getPropertyMap());
|
|
177
136
|
const prj = mapper.modelToObject(model, {});
|
|
178
137
|
return computeProps(model, prj, requestOptions);
|
|
179
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubProjects.js","sourceRoot":"","sources":["../../../src/projects/HubProjects.ts"],"names":[],"mappings":";;;AAEA,4EAA4E;AAC5E,sCAKmB;AACnB,0CAKwB;AACxB,oCAWkB;AAClB,iEAKkC;AAGlC,qEAAgF;AAGhF,mEAAgE;AAChE,wDAA6D;AAC7D,oDAAyD;AACzD,yCAAoE;
|
|
1
|
+
{"version":3,"file":"HubProjects.js","sourceRoot":"","sources":["../../../src/projects/HubProjects.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ exports.DEFAULT_PROJECT = {
|
|
|
12
12
|
status: "inactive",
|
|
13
13
|
catalog: { schemaVersion: 0 },
|
|
14
14
|
permissions: [],
|
|
15
|
+
schemaVersion: 1,
|
|
15
16
|
};
|
|
16
17
|
/**
|
|
17
18
|
* Default values for a new HubProject Model
|
|
@@ -26,6 +27,7 @@ exports.DEFAULT_PROJECT_MODEL = {
|
|
|
26
27
|
typeKeywords: ["Hub Project"],
|
|
27
28
|
properties: {
|
|
28
29
|
slug: "",
|
|
30
|
+
schemaVersion: 1,
|
|
29
31
|
},
|
|
30
32
|
},
|
|
31
33
|
data: {
|
|
@@ -33,7 +35,6 @@ exports.DEFAULT_PROJECT_MODEL = {
|
|
|
33
35
|
timeline: {},
|
|
34
36
|
status: "inactive",
|
|
35
37
|
contacts: [],
|
|
36
|
-
schemaVersion: 1,
|
|
37
38
|
},
|
|
38
39
|
};
|
|
39
40
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/projects/defaults.ts"],"names":[],"mappings":";;;AAGa,QAAA,qBAAqB,GAAG,aAAa,CAAC;AAEnD;;GAEG;AACU,QAAA,eAAe,GAAyB;IACnD,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,CAAC,aAAa,CAAC;IAC7B,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7B,WAAW,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/projects/defaults.ts"],"names":[],"mappings":";;;AAGa,QAAA,qBAAqB,GAAG,aAAa,CAAC;AAEnD;;GAEG;AACU,QAAA,eAAe,GAAyB;IACnD,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,EAAE;IACR,YAAY,EAAE,CAAC,aAAa,CAAC;IAC7B,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IAC7B,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF;;GAEG;AACU,QAAA,qBAAqB,GAAW;IAC3C,IAAI,EAAE;QACJ,IAAI,EAAE,6BAAqB;QAC3B,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,UAAU,EAAE;YACV,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,CAAC;SACjB;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,EAAE;KACb;CACmB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCampaignUrl = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const get_portal_url_1 = require("./get-portal-url");
|
|
6
|
+
const abab_1 = require("abab");
|
|
7
|
+
const _get_hub_url_from_portal_hostname_1 = require("./_get-hub-url-from-portal-hostname");
|
|
8
|
+
/**
|
|
9
|
+
* Builds a Hub "campaign" URL used as a single entry-point into
|
|
10
|
+
* Hub from external links, i.e. push notifications, emails, sms, etc,
|
|
11
|
+
* from which we can capture campaign-related telemetry before redirecting
|
|
12
|
+
* the user off to a provided destination.
|
|
13
|
+
* @param options.portal A string IPortal IHubRequestOptions or IRequestOptions object
|
|
14
|
+
* @param options.uri A URI that provides additional context for how to parse the provide meta
|
|
15
|
+
* @param options.meta An object of metadata for the campaign URL
|
|
16
|
+
* @param options.redirectURL A redirect URL
|
|
17
|
+
* @returns string A campaign URL
|
|
18
|
+
*/
|
|
19
|
+
function getCampaignUrl(options) {
|
|
20
|
+
const { portal } = options, data = tslib_1.__rest(options, ["portal"]);
|
|
21
|
+
const portalUrl = get_portal_url_1.getPortalUrl(portal);
|
|
22
|
+
const hubURL = _get_hub_url_from_portal_hostname_1._getHubUrlFromPortalHostname(portalUrl);
|
|
23
|
+
const url = new URL(`${hubURL}/c`);
|
|
24
|
+
const b64Data = abab_1.btoa(JSON.stringify(data));
|
|
25
|
+
url.searchParams.set("d", b64Data);
|
|
26
|
+
return url.toString();
|
|
27
|
+
}
|
|
28
|
+
exports.getCampaignUrl = getCampaignUrl;
|
|
29
|
+
//# sourceMappingURL=get-campaign-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-campaign-url.js","sourceRoot":"","sources":["../../../src/urls/get-campaign-url.ts"],"names":[],"mappings":";;;;AACA,qDAAgD;AAGhD,+BAA4B;AAC5B,2FAAmF;AASnF;;;;;;;;;;GAUG;AACH,SAAgB,cAAc,CAAC,OAA6B;IAC1D,MAAM,EAAE,MAAM,KAAc,OAAO,EAAhB,IAAI,kBAAK,OAAO,EAA7B,UAAmB,CAAU,CAAC;IACpC,MAAM,SAAS,GAAG,6BAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,gEAA4B,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,WAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AARD,wCAQC"}
|
package/dist/node/urls/index.js
CHANGED
|
@@ -22,6 +22,7 @@ tslib_1.__exportStar(require("./getHubApiFromPortalUrl"), exports);
|
|
|
22
22
|
tslib_1.__exportStar(require("./getPortalBaseFromOrgUrl"), exports);
|
|
23
23
|
tslib_1.__exportStar(require("./getGroupHomeUrl"), exports);
|
|
24
24
|
tslib_1.__exportStar(require("./getUserHomeUrl"), exports);
|
|
25
|
+
tslib_1.__exportStar(require("./get-campaign-url"), exports);
|
|
25
26
|
const MAP_OR_FEATURE_SERVER_URL_REGEX = /\/(map|feature)server/i;
|
|
26
27
|
/**
|
|
27
28
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/urls/index.ts"],"names":[],"mappings":";;;;AAAA,kCAAqC;AACrC,sDAA4B;AAC5B,qEAA2C;AAC3C,+DAAqC;AACrC,2DAAiC;AACjC,2DAAiC;AACjC,6DAAmC;AACnC,2DAAiC;AACjC,qEAA2C;AAC3C,0DAAgC;AAChC,wEAA8C;AAC9C,oEAA0C;AAC1C,8DAAoC;AACpC,6DAAmC;AACnC,8DAAoC;AACpC,wEAA8C;AAC9C,mEAAyC;AACzC,oEAA0C;AAC1C,4DAAkC;AAClC,2DAAiC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/urls/index.ts"],"names":[],"mappings":";;;;AAAA,kCAAqC;AACrC,sDAA4B;AAC5B,qEAA2C;AAC3C,+DAAqC;AACrC,2DAAiC;AACjC,2DAAiC;AACjC,6DAAmC;AACnC,2DAAiC;AACjC,qEAA2C;AAC3C,0DAAgC;AAChC,wEAA8C;AAC9C,oEAA0C;AAC1C,8DAAoC;AACpC,6DAAmC;AACnC,8DAAoC;AACpC,wEAA8C;AAC9C,mEAAyC;AACzC,oEAA0C;AAC1C,4DAAkC;AAClC,2DAAiC;AACjC,6DAAmC;AAEnC,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AAEjE;;;;GAIG;AACU,QAAA,uBAAuB,GAAG,CAAC,GAAW,EAAE,EAAE;IACrD,OAAO,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,CAAC,GAAW,EAAE,EAAE;IACnD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,YAAY,IAAI,GAAG,iBAAU,CAAC,YAAY,CAAC,UAAU,CAAC;AAC/D,CAAC,CAAC"}
|