@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,205 @@
|
|
|
1
|
+
// Note - we separate these imports so we can cleanly spy on things in tests
|
|
2
|
+
import { createModel, fetchModelFromItem, getModel, updateModel, } from "../models";
|
|
3
|
+
import { constructSlug, getItemBySlug, getUniqueSlug, setSlugKeyword, } from "../items/slugs";
|
|
4
|
+
import { isGuid, cloneObject, getItemThumbnailUrl, unique, mapBy, getProp, getFamily, getItemHomeUrl, } from "../index";
|
|
5
|
+
import { removeItem, getItem, } from "@esri/arcgis-rest-portal";
|
|
6
|
+
import { PropertyMapper } from "../core/_internal/PropertyMapper";
|
|
7
|
+
import { parseInclude } from "../search/_internal/parseInclude";
|
|
8
|
+
import { fetchItemEnrichments } from "../items/_enrichments";
|
|
9
|
+
import { getHubRelativeUrl } from "../content/_internal";
|
|
10
|
+
import { DEFAULT_INITIATIVE, DEFAULT_INITIATIVE_MODEL } from "./defaults";
|
|
11
|
+
import { getBasePropertyMap } from "../core/_internal/getBasePropertyMap";
|
|
12
|
+
/**
|
|
13
|
+
* Returns an Array of IPropertyMap objects
|
|
14
|
+
* that define the projection of properties from a IModel to an IHubInitiative
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
function getPropertyMap() {
|
|
18
|
+
const map = getBasePropertyMap();
|
|
19
|
+
// Type specific mappings
|
|
20
|
+
map.push({ objectKey: "catalog", modelKey: "data.catalog" });
|
|
21
|
+
map.push({ objectKey: "permissions", modelKey: "data.permissions" });
|
|
22
|
+
return map;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @private
|
|
26
|
+
* Create a new Hub Initiative item
|
|
27
|
+
*
|
|
28
|
+
* Minimal properties are name and orgUrlKey
|
|
29
|
+
*
|
|
30
|
+
* @param partialInitiative
|
|
31
|
+
* @param requestOptions
|
|
32
|
+
*/
|
|
33
|
+
export async function createInitiative(partialInitiative, requestOptions) {
|
|
34
|
+
// merge incoming with the default
|
|
35
|
+
// this expansion solves the typing somehow
|
|
36
|
+
const initiative = Object.assign(Object.assign({}, DEFAULT_INITIATIVE), partialInitiative);
|
|
37
|
+
// Create a slug from the title if one is not passed in
|
|
38
|
+
if (!initiative.slug) {
|
|
39
|
+
initiative.slug = constructSlug(initiative.name, initiative.orgUrlKey);
|
|
40
|
+
}
|
|
41
|
+
// Ensure slug is unique
|
|
42
|
+
initiative.slug = await getUniqueSlug({ slug: initiative.slug }, requestOptions);
|
|
43
|
+
// add slug to keywords
|
|
44
|
+
initiative.typeKeywords = setSlugKeyword(initiative.typeKeywords, initiative.slug);
|
|
45
|
+
// Map initiative object onto a default initiative Model
|
|
46
|
+
const mapper = new PropertyMapper(getPropertyMap());
|
|
47
|
+
// create model from object, using the default model as a starting point
|
|
48
|
+
let model = mapper.objectToModel(initiative, cloneObject(DEFAULT_INITIATIVE_MODEL));
|
|
49
|
+
// create the item
|
|
50
|
+
model = await createModel(model, requestOptions);
|
|
51
|
+
// map the model back into a IHubInitiative
|
|
52
|
+
let newInitiative = mapper.modelToObject(model, {});
|
|
53
|
+
newInitiative = computeProps(model, newInitiative, requestOptions);
|
|
54
|
+
// and return it
|
|
55
|
+
return newInitiative;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* @private
|
|
59
|
+
* Update a Hub Initiative
|
|
60
|
+
* @param initiative
|
|
61
|
+
* @param requestOptions
|
|
62
|
+
*/
|
|
63
|
+
export async function updateInitiative(initiative, requestOptions) {
|
|
64
|
+
// verify that the slug is unique, excluding the current initiative
|
|
65
|
+
initiative.slug = await getUniqueSlug({ slug: initiative.slug, existingId: initiative.id }, requestOptions);
|
|
66
|
+
// get the backing item & data
|
|
67
|
+
const model = await getModel(initiative.id, requestOptions);
|
|
68
|
+
// create the PropertyMapper
|
|
69
|
+
const mapper = new PropertyMapper(getPropertyMap());
|
|
70
|
+
// Note: Although we are fetching the model, and applying changes onto it,
|
|
71
|
+
// we are not attempting to handle "concurrent edit" conflict resolution
|
|
72
|
+
// but this is where we would apply that sort of logic
|
|
73
|
+
const modelToUpdate = mapper.objectToModel(initiative, model);
|
|
74
|
+
// update the backing item
|
|
75
|
+
const updatedModel = await updateModel(modelToUpdate, requestOptions);
|
|
76
|
+
// now map back into an initiative and return that
|
|
77
|
+
let updatedInitiative = mapper.modelToObject(updatedModel, initiative);
|
|
78
|
+
updatedInitiative = computeProps(model, updatedInitiative, requestOptions);
|
|
79
|
+
// the casting is needed because modelToObject returns a `Partial<T>`
|
|
80
|
+
// where as this function returns a `T`
|
|
81
|
+
return updatedInitiative;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* @private
|
|
85
|
+
* Get a Hub Initiative by id or slug
|
|
86
|
+
* @param identifier item id or slug
|
|
87
|
+
* @param requestOptions
|
|
88
|
+
*/
|
|
89
|
+
export function fetchInitiative(identifier, requestOptions) {
|
|
90
|
+
let getPrms;
|
|
91
|
+
if (isGuid(identifier)) {
|
|
92
|
+
// get item by id
|
|
93
|
+
getPrms = getItem(identifier, requestOptions);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
getPrms = getItemBySlug(identifier, requestOptions);
|
|
97
|
+
}
|
|
98
|
+
return getPrms.then((item) => {
|
|
99
|
+
if (!item)
|
|
100
|
+
return null;
|
|
101
|
+
return convertItemToInitiative(item, requestOptions);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @private
|
|
106
|
+
* Remove a Hub Initiative
|
|
107
|
+
* @param id
|
|
108
|
+
* @param requestOptions
|
|
109
|
+
*/
|
|
110
|
+
export async function deleteInitiative(id, requestOptions) {
|
|
111
|
+
const ro = Object.assign(Object.assign({}, requestOptions), { id });
|
|
112
|
+
await removeItem(ro);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* @private
|
|
117
|
+
* Convert an Hub Initiative Item into a Hub Initiative, fetching any additional
|
|
118
|
+
* information that may be required
|
|
119
|
+
* @param item
|
|
120
|
+
* @param auth
|
|
121
|
+
* @returns
|
|
122
|
+
*/
|
|
123
|
+
export async function convertItemToInitiative(item, requestOptions) {
|
|
124
|
+
const model = await fetchModelFromItem(item, requestOptions);
|
|
125
|
+
const mapper = new PropertyMapper(getPropertyMap());
|
|
126
|
+
const prj = mapper.modelToObject(model, {});
|
|
127
|
+
return computeProps(model, prj, requestOptions);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Given a model and an initiative, set various computed properties that can't be directly mapped
|
|
131
|
+
* @param model
|
|
132
|
+
* @param initiative
|
|
133
|
+
* @param requestOptions
|
|
134
|
+
* @returns
|
|
135
|
+
*/
|
|
136
|
+
function computeProps(model, initiative, requestOptions) {
|
|
137
|
+
let token;
|
|
138
|
+
if (requestOptions.authentication) {
|
|
139
|
+
const session = requestOptions.authentication;
|
|
140
|
+
token = session.token;
|
|
141
|
+
}
|
|
142
|
+
// thumbnail url
|
|
143
|
+
initiative.thumbnailUrl = getItemThumbnailUrl(model.item, requestOptions, token);
|
|
144
|
+
// Handle Dates
|
|
145
|
+
initiative.createdDate = new Date(model.item.created);
|
|
146
|
+
initiative.createdDateSource = "item.created";
|
|
147
|
+
initiative.updatedDate = new Date(model.item.modified);
|
|
148
|
+
initiative.updatedDateSource = "item.modified";
|
|
149
|
+
// cast b/c this takes a partial but returns a full initiative
|
|
150
|
+
return initiative;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* @private
|
|
154
|
+
* Fetch Initiative specific enrichments
|
|
155
|
+
* @param item
|
|
156
|
+
* @param include
|
|
157
|
+
* @param requestOptions
|
|
158
|
+
* @returns
|
|
159
|
+
*/
|
|
160
|
+
export async function enrichInitiativeSearchResult(item, include, requestOptions) {
|
|
161
|
+
// Create the basic structure
|
|
162
|
+
const result = {
|
|
163
|
+
access: item.access,
|
|
164
|
+
id: item.id,
|
|
165
|
+
type: item.type,
|
|
166
|
+
name: item.title,
|
|
167
|
+
owner: item.owner,
|
|
168
|
+
summary: item.snippet || item.description,
|
|
169
|
+
createdDate: new Date(item.created),
|
|
170
|
+
createdDateSource: "item.created",
|
|
171
|
+
updatedDate: new Date(item.modified),
|
|
172
|
+
updatedDateSource: "item.modified",
|
|
173
|
+
family: getFamily(item.type),
|
|
174
|
+
links: {
|
|
175
|
+
self: "not-implemented",
|
|
176
|
+
siteRelative: "not-implemented",
|
|
177
|
+
thumbnail: "not-implemented",
|
|
178
|
+
},
|
|
179
|
+
};
|
|
180
|
+
// default includes
|
|
181
|
+
const DEFAULTS = [];
|
|
182
|
+
// merge includes
|
|
183
|
+
include = [...DEFAULTS, ...include].filter(unique);
|
|
184
|
+
// Parse the includes into a valid set of enrichments
|
|
185
|
+
const specs = include.map(parseInclude);
|
|
186
|
+
// Extract out the low-level enrichments needed
|
|
187
|
+
const enrichments = mapBy("enrichment", specs).filter(unique);
|
|
188
|
+
// fetch the enrichments
|
|
189
|
+
let enriched = {};
|
|
190
|
+
if (enrichments.length) {
|
|
191
|
+
// TODO: Look into caching for the requests in fetchItemEnrichments
|
|
192
|
+
enriched = await fetchItemEnrichments(item, enrichments, requestOptions);
|
|
193
|
+
}
|
|
194
|
+
// map the enriched props onto the result
|
|
195
|
+
specs.forEach((spec) => {
|
|
196
|
+
result[spec.prop] = getProp(enriched, spec.path);
|
|
197
|
+
});
|
|
198
|
+
// Handle links
|
|
199
|
+
// TODO: Link handling should be an enrichment
|
|
200
|
+
result.links.thumbnail = getItemThumbnailUrl(item, requestOptions);
|
|
201
|
+
result.links.self = getItemHomeUrl(result.id, requestOptions);
|
|
202
|
+
result.links.siteRelative = getHubRelativeUrl(result.type, result.id, item.typeKeywords);
|
|
203
|
+
return result;
|
|
204
|
+
}
|
|
205
|
+
//# 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,31 @@
|
|
|
1
|
+
export const HUB_INITIATIVE_ITEM_TYPE = "Hub Initiative";
|
|
2
|
+
/**
|
|
3
|
+
* Default values of a IHubInitiative
|
|
4
|
+
*/
|
|
5
|
+
export const DEFAULT_INITIATIVE = {
|
|
6
|
+
name: "No title provided",
|
|
7
|
+
tags: [],
|
|
8
|
+
typeKeywords: ["Hub Initiative"],
|
|
9
|
+
catalog: { schemaVersion: 0 },
|
|
10
|
+
permissions: [],
|
|
11
|
+
schemaVersion: 3,
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Default values for a new HubInitiative Model
|
|
15
|
+
*/
|
|
16
|
+
export const DEFAULT_INITIATIVE_MODEL = {
|
|
17
|
+
item: {
|
|
18
|
+
type: HUB_INITIATIVE_ITEM_TYPE,
|
|
19
|
+
title: "No Title Provided",
|
|
20
|
+
description: "No Description Provided",
|
|
21
|
+
snippet: "",
|
|
22
|
+
tags: [],
|
|
23
|
+
typeKeywords: ["Hub Initiative"],
|
|
24
|
+
properties: {
|
|
25
|
+
slug: "",
|
|
26
|
+
schemaVersion: 3,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
data: {},
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/initiatives/defaults.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,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;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAW;IAC9C,IAAI,EAAE;QACJ,IAAI,EAAE,wBAAwB;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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/initiatives/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setItemThumbnail.js","sourceRoot":"","sources":["../../../src/items/setItemThumbnail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B;;;;;;GAMG;AACH,MAAM,CAAC,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,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B;;;;;;GAMG;AACH,MAAM,CAAC,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,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACrB,MAAM,IAAI,QAAQ,CAChB,uBAAuB,EACvB,kCAAkC,CACnC,CAAC;SACH;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,KAAK,EAAE;YACxB,MAAM,IAAI,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SAC/D;aAAM;YACL,MAAM,IAAI,QAAQ,CAChB,uBAAuB,EACvB,kCAAkC,CACnC,CAAC;SACH;KACF;AACH,CAAC"}
|
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
import { DEFAULT_PROJECT } from "./defaults";
|
|
2
2
|
import { PermissionManager, } from "../core";
|
|
3
|
-
import { cloneObject } from "../util";
|
|
4
3
|
import { createProject, deleteProject, fetchProject, updateProject, } from "./HubProjects";
|
|
5
4
|
import { Catalog } from "../search/Catalog";
|
|
6
|
-
import {
|
|
7
|
-
import { sharedWith } from "../core/_internal/sharedWith";
|
|
5
|
+
import { HubItemEntity } from "../core/HubItemEntity";
|
|
8
6
|
/**
|
|
9
7
|
* Hub Project Class
|
|
10
8
|
*/
|
|
11
|
-
export class HubProject {
|
|
9
|
+
export class HubProject extends HubItemEntity {
|
|
12
10
|
/**
|
|
13
11
|
* Private constructor so we don't have `new` all over the place. Allows for
|
|
14
12
|
* more flexibility in how we create the HubProjectManager over time.
|
|
15
13
|
* @param context
|
|
16
14
|
*/
|
|
17
15
|
constructor(project, context) {
|
|
18
|
-
|
|
19
|
-
this.context = context;
|
|
20
|
-
this.entity = project;
|
|
16
|
+
super(project, context);
|
|
21
17
|
this._catalog = Catalog.fromJson(project.catalog, this.context);
|
|
22
18
|
this._permissionManager = PermissionManager.fromJson(project.permissions, this.context);
|
|
23
19
|
}
|
|
24
20
|
/**
|
|
25
|
-
*
|
|
21
|
+
* Catalog instance for this project. Note: Do not hold direct references to this object; always access it from the project.
|
|
22
|
+
* @returns
|
|
26
23
|
*/
|
|
27
24
|
get catalog() {
|
|
28
25
|
return this._catalog;
|
|
29
26
|
}
|
|
30
27
|
/**
|
|
31
|
-
*
|
|
28
|
+
* PermissionManager instance for this project. Note: Do not hold direct references to this object; always access it from the project.
|
|
29
|
+
* @returns
|
|
32
30
|
*/
|
|
33
31
|
get permissions() {
|
|
34
32
|
return this._permissionManager;
|
|
@@ -92,16 +90,6 @@ export class HubProject {
|
|
|
92
90
|
const pojo = Object.assign(Object.assign({}, DEFAULT_PROJECT), partialProject);
|
|
93
91
|
return pojo;
|
|
94
92
|
}
|
|
95
|
-
/**
|
|
96
|
-
* Get the current state of the IHubProject from the instance
|
|
97
|
-
* @returns IHubProject POJO
|
|
98
|
-
*/
|
|
99
|
-
toJson() {
|
|
100
|
-
if (this.isDestroyed) {
|
|
101
|
-
throw new Error("HubProject is already destroyed.");
|
|
102
|
-
}
|
|
103
|
-
return cloneObject(this.entity);
|
|
104
|
-
}
|
|
105
93
|
/**
|
|
106
94
|
* Apply a new state to the instance
|
|
107
95
|
* @param changes
|
|
@@ -139,6 +127,8 @@ export class HubProject {
|
|
|
139
127
|
// create it
|
|
140
128
|
this.entity = await createProject(this.entity, this.context.userRequestOptions);
|
|
141
129
|
}
|
|
130
|
+
// call the after save hook on superclass
|
|
131
|
+
await super.afterSave();
|
|
142
132
|
return;
|
|
143
133
|
}
|
|
144
134
|
/**
|
|
@@ -154,51 +144,5 @@ export class HubProject {
|
|
|
154
144
|
// Delegate to module fn
|
|
155
145
|
await deleteProject(this.entity.id, this.context.userRequestOptions);
|
|
156
146
|
}
|
|
157
|
-
//#region IWithSharingBehavior
|
|
158
|
-
/**
|
|
159
|
-
* Share the Project with the specified group id
|
|
160
|
-
* @param groupId
|
|
161
|
-
*/
|
|
162
|
-
async shareWithGroup(groupId) {
|
|
163
|
-
await shareItemWithGroup({
|
|
164
|
-
id: this.entity.id,
|
|
165
|
-
groupId,
|
|
166
|
-
owner: this.entity.owner,
|
|
167
|
-
authentication: this.context.session,
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Unshare the Project with the specified group id
|
|
172
|
-
* @param groupId
|
|
173
|
-
*/
|
|
174
|
-
async unshareWithGroup(groupId) {
|
|
175
|
-
await unshareItemWithGroup({
|
|
176
|
-
id: this.entity.id,
|
|
177
|
-
groupId,
|
|
178
|
-
owner: this.entity.owner,
|
|
179
|
-
authentication: this.context.session,
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Set the access level of the backing item
|
|
184
|
-
* @param access
|
|
185
|
-
*/
|
|
186
|
-
async setAccess(access) {
|
|
187
|
-
await setItemAccess({
|
|
188
|
-
id: this.entity.id,
|
|
189
|
-
access,
|
|
190
|
-
authentication: this.context.session,
|
|
191
|
-
});
|
|
192
|
-
// if this succeeded, update the entity
|
|
193
|
-
this.entity.access = access;
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Return a list of groups the Project is shared to.
|
|
197
|
-
* @returns
|
|
198
|
-
*/
|
|
199
|
-
async sharedWith() {
|
|
200
|
-
// delegate to a util that merges the three arrays returned from the api, into a single array
|
|
201
|
-
return sharedWith(this.entity.id, this.context.requestOptions);
|
|
202
|
-
}
|
|
203
147
|
}
|
|
204
148
|
//# sourceMappingURL=HubProject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubProject.js","sourceRoot":"","sources":["../../../src/projects/HubProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAIL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"HubProject.js","sourceRoot":"","sources":["../../../src/projects/HubProject.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,61 +8,19 @@ import { parseInclude } from "../search/_internal/parseInclude";
|
|
|
8
8
|
import { fetchItemEnrichments } from "../items/_enrichments";
|
|
9
9
|
import { getHubRelativeUrl } from "../content/_internal";
|
|
10
10
|
import { DEFAULT_PROJECT, DEFAULT_PROJECT_MODEL } from "./defaults";
|
|
11
|
+
import { getBasePropertyMap } from "../core/_internal/getBasePropertyMap";
|
|
11
12
|
/**
|
|
12
13
|
* Returns an Array of IPropertyMap objects
|
|
13
|
-
*
|
|
14
|
-
* properties of IHubProject map directly to properties
|
|
15
|
-
* on item or data, it's slightly less verbose to
|
|
16
|
-
* generate the structure.
|
|
14
|
+
* that define the projection of properties from a IModel to an IHubProject
|
|
17
15
|
* @returns
|
|
18
16
|
*/
|
|
19
|
-
function
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"modified",
|
|
27
|
-
"owner",
|
|
28
|
-
"snippet",
|
|
29
|
-
"tags",
|
|
30
|
-
"typeKeywords",
|
|
31
|
-
"url",
|
|
32
|
-
"type",
|
|
33
|
-
"access",
|
|
34
|
-
];
|
|
35
|
-
const dataProps = [
|
|
36
|
-
"contacts",
|
|
37
|
-
"catalog",
|
|
38
|
-
"display",
|
|
39
|
-
"geometry",
|
|
40
|
-
"headerImage",
|
|
41
|
-
"layout",
|
|
42
|
-
"location",
|
|
43
|
-
"status",
|
|
44
|
-
"permissions",
|
|
45
|
-
];
|
|
46
|
-
const map = [];
|
|
47
|
-
itemProps.forEach((entry) => {
|
|
48
|
-
map.push({ objectKey: entry, modelKey: `item.${entry}` });
|
|
49
|
-
});
|
|
50
|
-
dataProps.forEach((entry) => {
|
|
51
|
-
map.push({ objectKey: entry, modelKey: `data.${entry}` });
|
|
52
|
-
});
|
|
53
|
-
// Deeper mappings
|
|
54
|
-
map.push({
|
|
55
|
-
objectKey: "slug",
|
|
56
|
-
modelKey: "item.properties.slug",
|
|
57
|
-
});
|
|
58
|
-
map.push({
|
|
59
|
-
objectKey: "orgUrlKey",
|
|
60
|
-
modelKey: "item.properties.orgUrlKey",
|
|
61
|
-
});
|
|
62
|
-
map.push({
|
|
63
|
-
objectKey: "name",
|
|
64
|
-
modelKey: "item.title",
|
|
65
|
-
});
|
|
17
|
+
function getPropertyMap() {
|
|
18
|
+
const map = getBasePropertyMap();
|
|
19
|
+
// Type specific mappings
|
|
20
|
+
map.push({ objectKey: "status", modelKey: "data.status" });
|
|
21
|
+
map.push({ objectKey: "catalog", modelKey: "data.catalog" });
|
|
22
|
+
map.push({ objectKey: "permissions", modelKey: "data.permissions" });
|
|
23
|
+
map.push({ objectKey: "contacts", modelKey: "data.contacts" });
|
|
66
24
|
return map;
|
|
67
25
|
}
|
|
68
26
|
/**
|
|
@@ -87,7 +45,7 @@ export async function createProject(partialProject, requestOptions) {
|
|
|
87
45
|
// add slug to keywords
|
|
88
46
|
project.typeKeywords = setSlugKeyword(project.typeKeywords, project.slug);
|
|
89
47
|
// Map project object onto a default project Model
|
|
90
|
-
const mapper = new PropertyMapper(
|
|
48
|
+
const mapper = new PropertyMapper(getPropertyMap());
|
|
91
49
|
// create model from object, using the default model as a starting point
|
|
92
50
|
let model = mapper.objectToModel(project, cloneObject(DEFAULT_PROJECT_MODEL));
|
|
93
51
|
// create the item
|
|
@@ -110,7 +68,7 @@ export async function updateProject(project, requestOptions) {
|
|
|
110
68
|
// get the backing item & data
|
|
111
69
|
const model = await getModel(project.id, requestOptions);
|
|
112
70
|
// create the PropertyMapper
|
|
113
|
-
const mapper = new PropertyMapper(
|
|
71
|
+
const mapper = new PropertyMapper(getPropertyMap());
|
|
114
72
|
// Note: Although we are fetching the model, and applying changes onto it,
|
|
115
73
|
// we are not attempting to handle "concurrent edit" conflict resolution
|
|
116
74
|
// but this is where we would apply that sort of logic
|
|
@@ -166,7 +124,8 @@ export async function deleteProject(id, requestOptions) {
|
|
|
166
124
|
*/
|
|
167
125
|
export async function convertItemToProject(item, requestOptions) {
|
|
168
126
|
const model = await fetchModelFromItem(item, requestOptions);
|
|
169
|
-
|
|
127
|
+
// TODO: In the future we will handle the boundary fetching from resource
|
|
128
|
+
const mapper = new PropertyMapper(getPropertyMap());
|
|
170
129
|
const prj = mapper.modelToObject(model, {});
|
|
171
130
|
return computeProps(model, prj, requestOptions);
|
|
172
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubProjects.js","sourceRoot":"","sources":["../../../src/projects/HubProjects.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,MAAM,EACN,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,KAAK,EACL,OAAO,EACP,SAAS,EAET,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAGL,UAAU,EACV,OAAO,GACR,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAgB,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"HubProjects.js","sourceRoot":"","sources":["../../../src/projects/HubProjects.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export const DEFAULT_PROJECT = {
|
|
|
9
9
|
status: "inactive",
|
|
10
10
|
catalog: { schemaVersion: 0 },
|
|
11
11
|
permissions: [],
|
|
12
|
+
schemaVersion: 1,
|
|
12
13
|
};
|
|
13
14
|
/**
|
|
14
15
|
* Default values for a new HubProject Model
|
|
@@ -23,6 +24,7 @@ export const DEFAULT_PROJECT_MODEL = {
|
|
|
23
24
|
typeKeywords: ["Hub Project"],
|
|
24
25
|
properties: {
|
|
25
26
|
slug: "",
|
|
27
|
+
schemaVersion: 1,
|
|
26
28
|
},
|
|
27
29
|
},
|
|
28
30
|
data: {
|
|
@@ -30,7 +32,6 @@ export const DEFAULT_PROJECT_MODEL = {
|
|
|
30
32
|
timeline: {},
|
|
31
33
|
status: "inactive",
|
|
32
34
|
contacts: [],
|
|
33
|
-
schemaVersion: 1,
|
|
34
35
|
},
|
|
35
36
|
};
|
|
36
37
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/projects/defaults.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,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,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,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;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAW;IAC3C,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAqB;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,25 @@
|
|
|
1
|
+
import { __rest } from "tslib";
|
|
2
|
+
import { getPortalUrl } from "./get-portal-url";
|
|
3
|
+
import { btoa } from "abab";
|
|
4
|
+
import { _getHubUrlFromPortalHostname } from "./_get-hub-url-from-portal-hostname";
|
|
5
|
+
/**
|
|
6
|
+
* Builds a Hub "campaign" URL used as a single entry-point into
|
|
7
|
+
* Hub from external links, i.e. push notifications, emails, sms, etc,
|
|
8
|
+
* from which we can capture campaign-related telemetry before redirecting
|
|
9
|
+
* the user off to a provided destination.
|
|
10
|
+
* @param options.portal A string IPortal IHubRequestOptions or IRequestOptions object
|
|
11
|
+
* @param options.uri A URI that provides additional context for how to parse the provide meta
|
|
12
|
+
* @param options.meta An object of metadata for the campaign URL
|
|
13
|
+
* @param options.redirectURL A redirect URL
|
|
14
|
+
* @returns string A campaign URL
|
|
15
|
+
*/
|
|
16
|
+
export function getCampaignUrl(options) {
|
|
17
|
+
const { portal } = options, data = __rest(options, ["portal"]);
|
|
18
|
+
const portalUrl = getPortalUrl(portal);
|
|
19
|
+
const hubURL = _getHubUrlFromPortalHostname(portalUrl);
|
|
20
|
+
const url = new URL(`${hubURL}/c`);
|
|
21
|
+
const b64Data = btoa(JSON.stringify(data));
|
|
22
|
+
url.searchParams.set("d", b64Data);
|
|
23
|
+
return url.toString();
|
|
24
|
+
}
|
|
25
|
+
//# 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,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AASnF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,OAA6B;IAC1D,MAAM,EAAE,MAAM,KAAc,OAAO,EAAhB,IAAI,UAAK,OAAO,EAA7B,UAAmB,CAAU,CAAC;IACpC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,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"}
|
package/dist/esm/urls/index.js
CHANGED
|
@@ -18,6 +18,7 @@ export * from "./getHubApiFromPortalUrl";
|
|
|
18
18
|
export * from "./getPortalBaseFromOrgUrl";
|
|
19
19
|
export * from "./getGroupHomeUrl";
|
|
20
20
|
export * from "./getUserHomeUrl";
|
|
21
|
+
export * from "./get-campaign-url";
|
|
21
22
|
const MAP_OR_FEATURE_SERVER_URL_REGEX = /\/(map|feature)server/i;
|
|
22
23
|
/**
|
|
23
24
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/urls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/urls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAE,EAAE;IACrD,OAAO,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,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,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC;AAC/D,CAAC,CAAC"}
|