@esri/hub-common 12.29.0 → 12.30.1
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/behaviors/IWithMetricsBehavior.js +1 -0
- package/dist/esm/core/behaviors/IWithMetricsBehavior.js.map +1 -0
- package/dist/esm/core/traits/IWithMetrics.js +1 -0
- package/dist/esm/core/traits/IWithMetrics.js.map +1 -0
- package/dist/esm/core/types/IHubProject.js.map +1 -1
- package/dist/esm/core/types/IReference.js +5 -0
- package/dist/esm/core/types/IReference.js.map +1 -0
- package/dist/esm/core/types/Metrics.js +1 -0
- package/dist/esm/core/types/Metrics.js.map +1 -0
- package/dist/esm/core/types/index.js +2 -0
- package/dist/esm/core/types/index.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/initiatives/HubInitiative.js +18 -0
- package/dist/esm/initiatives/HubInitiative.js.map +1 -1
- package/dist/esm/initiatives/_internal/getPropertyMap.js +1 -0
- package/dist/esm/initiatives/_internal/getPropertyMap.js.map +1 -1
- package/dist/esm/metrics/aggregateMetrics.js +43 -0
- package/dist/esm/metrics/aggregateMetrics.js.map +1 -0
- package/dist/esm/metrics/getEntityMetrics.js +38 -0
- package/dist/esm/metrics/getEntityMetrics.js.map +1 -0
- package/dist/esm/metrics/index.js +4 -0
- package/dist/esm/metrics/index.js.map +1 -0
- package/dist/esm/metrics/resolveMetric.js +167 -0
- package/dist/esm/metrics/resolveMetric.js.map +1 -0
- package/dist/esm/projects/HubProject.js +18 -0
- package/dist/esm/projects/HubProject.js.map +1 -1
- package/dist/esm/projects/_internal/getPropertyMap.js +1 -0
- package/dist/esm/projects/_internal/getPropertyMap.js.map +1 -1
- package/dist/esm/utils/memoize.js +14 -4
- package/dist/esm/utils/memoize.js.map +1 -1
- package/dist/esm/versioning/updateVersionMetadata.js +1 -1
- package/dist/esm/versioning/updateVersionMetadata.js.map +1 -1
- package/dist/node/core/behaviors/IWithMetricsBehavior.js +3 -0
- package/dist/node/core/behaviors/IWithMetricsBehavior.js.map +1 -0
- package/dist/node/core/traits/IWithMetrics.js +3 -0
- package/dist/node/core/traits/IWithMetrics.js.map +1 -0
- package/dist/node/core/types/IHubProject.js.map +1 -1
- package/dist/node/core/types/IReference.js +7 -0
- package/dist/node/core/types/IReference.js.map +1 -0
- package/dist/node/core/types/Metrics.js +3 -0
- package/dist/node/core/types/Metrics.js.map +1 -0
- package/dist/node/core/types/index.js +2 -0
- package/dist/node/core/types/index.js.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/initiatives/HubInitiative.js +18 -0
- package/dist/node/initiatives/HubInitiative.js.map +1 -1
- package/dist/node/initiatives/_internal/getPropertyMap.js +1 -0
- package/dist/node/initiatives/_internal/getPropertyMap.js.map +1 -1
- package/dist/node/metrics/aggregateMetrics.js +47 -0
- package/dist/node/metrics/aggregateMetrics.js.map +1 -0
- package/dist/node/metrics/getEntityMetrics.js +42 -0
- package/dist/node/metrics/getEntityMetrics.js.map +1 -0
- package/dist/node/metrics/index.js +7 -0
- package/dist/node/metrics/index.js.map +1 -0
- package/dist/node/metrics/resolveMetric.js +171 -0
- package/dist/node/metrics/resolveMetric.js.map +1 -0
- package/dist/node/projects/HubProject.js +18 -0
- package/dist/node/projects/HubProject.js.map +1 -1
- package/dist/node/projects/_internal/getPropertyMap.js +1 -0
- package/dist/node/projects/_internal/getPropertyMap.js.map +1 -1
- package/dist/node/utils/memoize.js +14 -4
- package/dist/node/utils/memoize.js.map +1 -1
- package/dist/node/versioning/updateVersionMetadata.js +1 -1
- package/dist/node/versioning/updateVersionMetadata.js.map +1 -1
- package/dist/types/core/behaviors/IWithMetricsBehavior.d.ts +10 -0
- package/dist/types/core/traits/IWithMetrics.d.ts +10 -0
- package/dist/types/core/types/DynamicValues.d.ts +1 -7
- package/dist/types/core/types/IHubInitiative.d.ts +2 -1
- package/dist/types/core/types/IHubProject.d.ts +2 -1
- package/dist/types/core/types/IReference.d.ts +7 -0
- package/dist/types/core/types/Metrics.d.ts +159 -0
- package/dist/types/core/types/index.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/initiatives/HubInitiative.d.ts +9 -2
- package/dist/types/metrics/aggregateMetrics.d.ts +10 -0
- package/dist/types/metrics/getEntityMetrics.d.ts +10 -0
- package/dist/types/metrics/index.d.ts +3 -0
- package/dist/types/metrics/resolveMetric.d.ts +11 -0
- package/dist/types/projects/HubProject.d.ts +9 -2
- package/dist/types/utils/memoize.d.ts +3 -1
- package/package.json +1 -1
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,mDAAyB;AACzB,gDAAsB;AACtB,0DAAgC;AAChC,iEAAuC;AACvC,iDAAuB;AACvB,uDAA6B;AAC7B,oDAA0B;AAC1B,iDAAuB;AACvB,yDAA+B;AAC/B,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,0DAA0D;AAC1D,qDAAqD;AACrD,iEAAuC;AAEvC,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,mDAAyB;AACzB,gDAAsB;AACtB,0DAAgC;AAChC,iEAAuC;AACvC,iDAAuB;AACvB,uDAA6B;AAC7B,oDAA0B;AAC1B,iDAAuB;AACvB,yDAA+B;AAC/B,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;AAEvC,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"}
|
|
@@ -6,6 +6,8 @@ const getEntityEditorSchemas_1 = require("../core/schemas/getEntityEditorSchemas
|
|
|
6
6
|
const HubInitiatives_1 = require("./HubInitiatives");
|
|
7
7
|
const search_1 = require("../search");
|
|
8
8
|
const HubItemEntity_1 = require("../core/HubItemEntity");
|
|
9
|
+
const getEntityMetrics_1 = require("../metrics/getEntityMetrics");
|
|
10
|
+
const resolveMetric_1 = require("../metrics/resolveMetric");
|
|
9
11
|
/**
|
|
10
12
|
* Hub Initiative Class
|
|
11
13
|
*/
|
|
@@ -149,6 +151,22 @@ class HubInitiative extends HubItemEntity_1.HubItemEntity {
|
|
|
149
151
|
// Delegate to module fn
|
|
150
152
|
await HubInitiatives_1.deleteInitiative(this.entity.id, this.context.userRequestOptions);
|
|
151
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Resolve a single metric for this metric
|
|
156
|
+
* @param metricId
|
|
157
|
+
* @returns
|
|
158
|
+
*/
|
|
159
|
+
resolveMetric(metricId) {
|
|
160
|
+
const metrics = getEntityMetrics_1.getEntityMetrics(this.entity);
|
|
161
|
+
const metric = metrics.find((m) => m.id === metricId);
|
|
162
|
+
// TODO: Add caching
|
|
163
|
+
if (metric) {
|
|
164
|
+
return resolveMetric_1.resolveMetric(metric, this.context);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
throw new Error(`Metric ${metricId} not found.`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
152
170
|
}
|
|
153
171
|
exports.HubInitiative = HubInitiative;
|
|
154
172
|
//# sourceMappingURL=HubInitiative.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubInitiative.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiative.ts"],"names":[],"mappings":";;;AAAA,yCAAgD;
|
|
1
|
+
{"version":3,"file":"HubInitiative.js","sourceRoot":"","sources":["../../../src/initiatives/HubInitiative.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ function getPropertyMap() {
|
|
|
20
20
|
});
|
|
21
21
|
map.push({ objectKey: "contacts", modelKey: "data.contacts" });
|
|
22
22
|
map.push({ objectKey: "timeline", modelKey: "data.timeline" });
|
|
23
|
+
map.push({ objectKey: "metrics", modelKey: "item.properties.metrics" });
|
|
23
24
|
return map;
|
|
24
25
|
}
|
|
25
26
|
exports.getPropertyMap = getPropertyMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC,yBAAyB;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/initiatives/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC,yBAAyB;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAExE,OAAO,GAAG,CAAC;AACb,CAAC;AAhBD,wCAgBC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.aggregateMetrics = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Given an array of metrics, aggregate them using the specified aggregation
|
|
6
|
+
* Consumer must be aware of the type of the metrics and pass an appropriate aggregation
|
|
7
|
+
* @param metrics
|
|
8
|
+
* @param aggregation
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
function aggregateMetrics(metrics, field, aggregation) {
|
|
12
|
+
// Get the values from the metrics, we use any so
|
|
13
|
+
// we can keep the rest of the code simpler
|
|
14
|
+
const values = metrics.map((m) => m.attributes[field]);
|
|
15
|
+
let aggregate = null;
|
|
16
|
+
switch (aggregation) {
|
|
17
|
+
case "sum":
|
|
18
|
+
aggregate = values.reduce((acc, v) => acc + v, 0);
|
|
19
|
+
break;
|
|
20
|
+
case "count":
|
|
21
|
+
aggregate = values.length;
|
|
22
|
+
break;
|
|
23
|
+
case "avg":
|
|
24
|
+
aggregate = values.reduce((acc, v) => acc + v, 0) / values.length;
|
|
25
|
+
break;
|
|
26
|
+
case "min":
|
|
27
|
+
aggregate = values.reduce((acc, v) => Math.min(acc, v), Number.MAX_VALUE);
|
|
28
|
+
break;
|
|
29
|
+
case "max":
|
|
30
|
+
aggregate = values.reduce((acc, v) => Math.max(acc, v), Number.MIN_VALUE);
|
|
31
|
+
break;
|
|
32
|
+
case "countByValue": // count for each value as a hash {value: string, count: number}
|
|
33
|
+
aggregate = values.reduce((acc, v) => {
|
|
34
|
+
if (acc[v]) {
|
|
35
|
+
acc[v] += 1;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
acc[v] = 1;
|
|
39
|
+
}
|
|
40
|
+
return acc;
|
|
41
|
+
}, {});
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
return aggregate;
|
|
45
|
+
}
|
|
46
|
+
exports.aggregateMetrics = aggregateMetrics;
|
|
47
|
+
//# sourceMappingURL=aggregateMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregateMetrics.js","sourceRoot":"","sources":["../../../src/metrics/aggregateMetrics.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,OAAyB,EACzB,KAAa,EACb,WAA+B;IAE/B,iDAAiD;IACjD,2CAA2C;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAQ,CAAC,CAAC;IAE9D,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,QAAQ,WAAW,EAAE;QACnB,KAAK,KAAK;YACR,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,OAAO;YACV,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;YAC1B,MAAM;QACR,KAAK,KAAK;YACR,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAClE,MAAM;QACR,KAAK,KAAK;YACR,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1E,MAAM;QAER,KAAK,KAAK;YACR,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1E,MAAM;QACR,KAAK,cAAc,EAAE,gEAAgE;YACnF,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;oBACV,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACb;qBAAM;oBACL,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBACZ;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;YACP,MAAM;KACT;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAzCD,4CAyCC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEntityMetrics = void 0;
|
|
4
|
+
const get_prop_1 = require("../objects/get-prop");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
/**
|
|
7
|
+
* Get the metrics from an entity applying some pre-processing
|
|
8
|
+
* and adding source info.
|
|
9
|
+
* @param entity
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
function getEntityMetrics(entity) {
|
|
13
|
+
// Create the source info that will attach into each metric
|
|
14
|
+
const sourceInfo = {
|
|
15
|
+
id: entity.id,
|
|
16
|
+
name: entity.name,
|
|
17
|
+
type: entity.type,
|
|
18
|
+
};
|
|
19
|
+
const entityMetrics = entity.metrics || [];
|
|
20
|
+
const metrics = entityMetrics.map((metric) => {
|
|
21
|
+
// assign the source info to the metric
|
|
22
|
+
metric.entityInfo = Object.assign({}, sourceInfo);
|
|
23
|
+
// at this point the source references should have been resolved
|
|
24
|
+
// so we can cast the source to a MetricSource
|
|
25
|
+
const source = metric.source;
|
|
26
|
+
// If the metric is an item query and the catalog key is defined
|
|
27
|
+
// get the scope from the specified collection in the catalog.
|
|
28
|
+
if (source.type === "item-query" && source.collectionKey) {
|
|
29
|
+
const key = source.collectionKey;
|
|
30
|
+
const query = get_prop_1.getProp(entity.catalog, `collections[findBy(key,'${key}')].scope`);
|
|
31
|
+
if (query) {
|
|
32
|
+
source.scope = util_1.cloneObject(query);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// reassign the source with updates
|
|
36
|
+
metric.source = source;
|
|
37
|
+
return metric;
|
|
38
|
+
});
|
|
39
|
+
return metrics;
|
|
40
|
+
}
|
|
41
|
+
exports.getEntityMetrics = getEntityMetrics;
|
|
42
|
+
//# sourceMappingURL=getEntityMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEntityMetrics.js","sourceRoot":"","sources":["../../../src/metrics/getEntityMetrics.ts"],"names":[],"mappings":";;;AAGA,kDAA8C;AAC9C,kCAAsC;AAEtC;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC9B,MAAoC;IAEpC,2DAA2D;IAC3D,MAAM,UAAU,GAAgB;QAC9B,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAE3C,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3C,uCAAuC;QACvC,MAAM,CAAC,UAAU,qBAAQ,UAAU,CAAE,CAAC;QAEtC,gEAAgE;QAChE,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAsB,CAAC;QAC7C,gEAAgE;QAChE,8DAA8D;QAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE;YACxD,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC;YACjC,MAAM,KAAK,GAAG,kBAAO,CACnB,MAAM,CAAC,OAAO,EACd,2BAA2B,GAAG,WAAW,CAC1C,CAAC;YAEF,IAAI,KAAK,EAAE;gBACT,MAAM,CAAC,KAAK,GAAG,kBAAW,CAAC,KAAK,CAAC,CAAC;aACnC;SACF;QACD,mCAAmC;QACnC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAtCD,4CAsCC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./getEntityMetrics"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./resolveMetric"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./aggregateMetrics"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,0DAAgC;AAChC,6DAAmC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveMetric = void 0;
|
|
4
|
+
const arcgis_rest_feature_layer_1 = require("@esri/arcgis-rest-feature-layer");
|
|
5
|
+
const get_prop_1 = require("../objects/get-prop");
|
|
6
|
+
const combineQueries_1 = require("../search/_internal/combineQueries");
|
|
7
|
+
const memoize_1 = require("../utils/memoize");
|
|
8
|
+
const portalSearchItems_1 = require("../search/_internal/portalSearchItems");
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a Metric into an array of `IMetricFeature` objects.
|
|
11
|
+
* This implementation is similar to DynamicValues, but is just different
|
|
12
|
+
* enough to warrant a separate implementation.
|
|
13
|
+
* @param metric
|
|
14
|
+
* @param context
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
async function resolveMetric(metric, context) {
|
|
18
|
+
// At this point the source references should have been resolved
|
|
19
|
+
// so we can force case to a MetricSource and switch on the type
|
|
20
|
+
const source = metric.source;
|
|
21
|
+
// call the appropriate resolver
|
|
22
|
+
switch (source.type) {
|
|
23
|
+
case "static-value":
|
|
24
|
+
return resolveStaticValueMetric(metric, context);
|
|
25
|
+
case "service-query":
|
|
26
|
+
return resolveServiceQueryMetric(metric, context);
|
|
27
|
+
case "item-query":
|
|
28
|
+
return resolveItemQueryMetric(metric, context);
|
|
29
|
+
default:
|
|
30
|
+
throw new Error(`Unknown metric type passed in.`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.resolveMetric = resolveMetric;
|
|
34
|
+
/**
|
|
35
|
+
* Resolve a static value metric
|
|
36
|
+
* @param metric
|
|
37
|
+
* @param context
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
function resolveStaticValueMetric(metric, context) {
|
|
41
|
+
const source = metric.source;
|
|
42
|
+
// cut off the parent identifier from the metric id and use that
|
|
43
|
+
// as the output field name
|
|
44
|
+
const fieldName = metric.id.split("_")[0];
|
|
45
|
+
const result = {
|
|
46
|
+
attributes: {
|
|
47
|
+
id: metric.entityInfo.id,
|
|
48
|
+
name: metric.entityInfo.name,
|
|
49
|
+
type: metric.entityInfo.type,
|
|
50
|
+
[fieldName]: source.value,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
return Promise.resolve([result]);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Exequte a query against a service and return the aggregate value
|
|
57
|
+
* in an `IMetricFeature`
|
|
58
|
+
* @param metric
|
|
59
|
+
* @param context
|
|
60
|
+
* @returns
|
|
61
|
+
*/
|
|
62
|
+
async function resolveServiceQueryMetric(metric, context) {
|
|
63
|
+
const source = metric.source;
|
|
64
|
+
// cut off the parent identifier from the metric id and use that
|
|
65
|
+
// as the output field name
|
|
66
|
+
const fieldName = metric.id.split("_")[0];
|
|
67
|
+
// If no where is provided, default to "1=1"
|
|
68
|
+
source.where = source.where || "1=1";
|
|
69
|
+
// Construct the stats definition
|
|
70
|
+
const statsDef = {
|
|
71
|
+
onStatisticField: source.field,
|
|
72
|
+
statisticType: source.statistic,
|
|
73
|
+
outStatisticFieldName: source.field,
|
|
74
|
+
};
|
|
75
|
+
// construct the url by appending the layer id if provided
|
|
76
|
+
const serviceUrl = source.serviceUrl + `/${source.layerId}`;
|
|
77
|
+
// Execute the query
|
|
78
|
+
const response = await arcgis_rest_feature_layer_1.queryFeatures({
|
|
79
|
+
url: serviceUrl,
|
|
80
|
+
where: source.where,
|
|
81
|
+
f: "json",
|
|
82
|
+
outStatistics: [statsDef],
|
|
83
|
+
authentication: context.requestOptions.authentication,
|
|
84
|
+
});
|
|
85
|
+
// TODO: If we enable more stats, we will need to update
|
|
86
|
+
// how we fetch the values out of the response
|
|
87
|
+
const aggregate = get_prop_1.getProp(response, `features[0].attributes.${source.field}`);
|
|
88
|
+
const result = {
|
|
89
|
+
attributes: {
|
|
90
|
+
id: metric.entityInfo.id,
|
|
91
|
+
name: metric.entityInfo.name,
|
|
92
|
+
type: metric.entityInfo.type,
|
|
93
|
+
[fieldName]: aggregate,
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
return [result];
|
|
97
|
+
}
|
|
98
|
+
async function resolveItemQueryMetric(metric, context) {
|
|
99
|
+
const source = metric.source;
|
|
100
|
+
// cut off the parent identifier from the metric id and use that
|
|
101
|
+
// as the output field name
|
|
102
|
+
const fieldName = metric.id.split("_")[0];
|
|
103
|
+
// create the query from the source properties
|
|
104
|
+
const predicate = {
|
|
105
|
+
typekeywords: source.keywords,
|
|
106
|
+
};
|
|
107
|
+
if (source.itemTypes) {
|
|
108
|
+
predicate.type = source.itemTypes;
|
|
109
|
+
}
|
|
110
|
+
const baseQuery = {
|
|
111
|
+
targetEntity: "item",
|
|
112
|
+
filters: [
|
|
113
|
+
{
|
|
114
|
+
operation: "AND",
|
|
115
|
+
predicates: [predicate],
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
};
|
|
119
|
+
const scope = source.scope || {
|
|
120
|
+
targetEntity: "item",
|
|
121
|
+
filters: [],
|
|
122
|
+
};
|
|
123
|
+
const combined = combineQueries_1.combineQueries([baseQuery, scope]);
|
|
124
|
+
const opts = {
|
|
125
|
+
requestOptions: context.hubRequestOptions,
|
|
126
|
+
num: 100,
|
|
127
|
+
};
|
|
128
|
+
// create/get memoized version of portalSearchItemsAsItems
|
|
129
|
+
const memoizedPortalSearch = memoize_1.memoize(portalSearchItems_1.portalSearchItemsAsItems);
|
|
130
|
+
// Execute the query
|
|
131
|
+
const response = await memoizedPortalSearch(combined, opts);
|
|
132
|
+
// This next section is all promise based so that a dynamic value
|
|
133
|
+
// can itself be a dynamic value definition, which then needs to be
|
|
134
|
+
// resolved.
|
|
135
|
+
const promises = await response.results.reduce(async (valsPromise, item) => {
|
|
136
|
+
const vals = await valsPromise;
|
|
137
|
+
const valueFromItem = get_prop_1.getProp(item, source.propertyPath);
|
|
138
|
+
const result = {
|
|
139
|
+
attributes: {
|
|
140
|
+
id: item.id,
|
|
141
|
+
name: item.title,
|
|
142
|
+
type: item.type,
|
|
143
|
+
[fieldName]: null,
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
// Handle case where value is not found...
|
|
147
|
+
// e.g. the project exists but the metric is not defined yet
|
|
148
|
+
if (valueFromItem) {
|
|
149
|
+
// This block is needed if we are just plucking a value from the item
|
|
150
|
+
// e.g. item.views or item.access
|
|
151
|
+
if (typeof valueFromItem === "string" ||
|
|
152
|
+
typeof valueFromItem === "number") {
|
|
153
|
+
result.attributes[fieldName] = valueFromItem;
|
|
154
|
+
vals.push(Promise.resolve(result));
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// valueFromItem is itself a metric so we call resolveDynamicValues again
|
|
158
|
+
// attach in the entity info, so it's present for the next level of recursion
|
|
159
|
+
valueFromItem.entityInfo = result.attributes;
|
|
160
|
+
const vResult = await resolveMetric(valueFromItem, context);
|
|
161
|
+
vals.push(...vResult);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return vals;
|
|
165
|
+
}, Promise.resolve([]));
|
|
166
|
+
// let everything resolve
|
|
167
|
+
const outputs = (await Promise.all(promises));
|
|
168
|
+
// return the results
|
|
169
|
+
return outputs;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=resolveMetric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveMetric.js","sourceRoot":"","sources":["../../../src/metrics/resolveMetric.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ const search_1 = require("../search");
|
|
|
7
7
|
const HubItemEntity_1 = require("../core/HubItemEntity");
|
|
8
8
|
// NOTE: this could be lazy-loaded just like the CUD functions
|
|
9
9
|
const fetch_1 = require("./fetch");
|
|
10
|
+
const getEntityMetrics_1 = require("../metrics/getEntityMetrics");
|
|
11
|
+
const resolveMetric_1 = require("../metrics/resolveMetric");
|
|
10
12
|
/**
|
|
11
13
|
* Hub Project Class
|
|
12
14
|
*/
|
|
@@ -151,6 +153,22 @@ class HubProject extends HubItemEntity_1.HubItemEntity {
|
|
|
151
153
|
// Delegate to module fn
|
|
152
154
|
await deleteProject(this.entity.id, this.context.userRequestOptions);
|
|
153
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Resolve a single metric for this metric
|
|
158
|
+
* @param metricId
|
|
159
|
+
* @returns
|
|
160
|
+
*/
|
|
161
|
+
resolveMetric(metricId) {
|
|
162
|
+
const metrics = getEntityMetrics_1.getEntityMetrics(this.entity);
|
|
163
|
+
const metric = metrics.find((m) => m.id === metricId);
|
|
164
|
+
// TODO: add caching
|
|
165
|
+
if (metric) {
|
|
166
|
+
return resolveMetric_1.resolveMetric(metric, this.context);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
throw new Error(`Metric ${metricId} not found.`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
154
172
|
}
|
|
155
173
|
exports.HubProject = HubProject;
|
|
156
174
|
//# sourceMappingURL=HubProject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubProject.js","sourceRoot":"","sources":["../../../src/projects/HubProject.ts"],"names":[],"mappings":";;;AAAA,yCAA6C;
|
|
1
|
+
{"version":3,"file":"HubProject.js","sourceRoot":"","sources":["../../../src/projects/HubProject.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/projects/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC;;;;OAIG;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,0BAA0B;KACrC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"getPropertyMap.js","sourceRoot":"","sources":["../../../../src/projects/_internal/getPropertyMap.ts"],"names":[],"mappings":";;;AACA,gFAA6E;AAE7E;;;;;GAKG;AAEH,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,uCAAkB,EAAE,CAAC;IAEjC;;;;OAIG;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,0BAA0B;KACrC,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAExE,OAAO,GAAG,CAAC;AACb,CAAC;AAtBD,wCAsBC"}
|
|
@@ -16,7 +16,7 @@ const memoizedFnCache = {};
|
|
|
16
16
|
* @returns
|
|
17
17
|
*/
|
|
18
18
|
exports.memoize = (fn) => {
|
|
19
|
-
if (!memoizedFnCache[fn.name]) {
|
|
19
|
+
if (!memoizedFnCache[`_${fn.name}`]) {
|
|
20
20
|
const cache = {};
|
|
21
21
|
const memoizedFn = (...args) => {
|
|
22
22
|
const cacheKey = createCacheKeyFromArgs(args);
|
|
@@ -27,15 +27,25 @@ exports.memoize = (fn) => {
|
|
|
27
27
|
cache[cacheKey] = asyncFn;
|
|
28
28
|
return asyncFn;
|
|
29
29
|
};
|
|
30
|
-
memoizedFnCache[fn.name] = memoizedFn;
|
|
30
|
+
memoizedFnCache[`_${fn.name}`] = memoizedFn;
|
|
31
31
|
}
|
|
32
|
-
return memoizedFnCache[fn.name];
|
|
32
|
+
return memoizedFnCache[`_${fn.name}`];
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
35
|
* Clear the cache of a memoized function
|
|
36
|
+
* If no function name is provided, the entire cache is cleared
|
|
37
|
+
* This is useful for testing, but should not be used in production
|
|
36
38
|
* @param fn
|
|
37
39
|
*/
|
|
38
40
|
exports.clearMemoizedCache = (fnName) => {
|
|
39
|
-
|
|
41
|
+
if (!fnName) {
|
|
42
|
+
Object.keys(memoizedFnCache).forEach((key) => {
|
|
43
|
+
delete memoizedFnCache[key];
|
|
44
|
+
});
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
delete memoizedFnCache[`_${fnName}`];
|
|
49
|
+
}
|
|
40
50
|
};
|
|
41
51
|
//# sourceMappingURL=memoize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../../src/utils/memoize.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,IAAW,EAAE,EAAE,CAC7C,IAAI,CAAC,MAAM,CACT,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAChB,CAAC,QAAQ,IAAI,IACX,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EACzD,GAAG,CAAC,EACN,EAAE,CACH,CAAC;AAEJ,MAAM,eAAe,GAAwB,EAAE,CAAC;AAChD;;;;;;GAMG;AACU,QAAA,OAAO,GAAG,CACrB,EAA0B,EAC1B,EAAE;IACF,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../../src/utils/memoize.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,IAAW,EAAE,EAAE,CAC7C,IAAI,CAAC,MAAM,CACT,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAChB,CAAC,QAAQ,IAAI,IACX,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EACzD,GAAG,CAAC,EACN,EAAE,CACH,CAAC;AAEJ,MAAM,eAAe,GAAwB,EAAE,CAAC;AAChD;;;;;;GAMG;AACU,QAAA,OAAO,GAAG,CACrB,EAA0B,EAC1B,EAAE;IACF,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;QACnC,MAAM,KAAK,GAAwB,EAAE,CAAC;QAEtC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAU,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACnB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;aACxB;YAED,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;YAC5C,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QACF,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC;KAC7C;IACD,OAAO,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG,CAAC,MAAe,EAAE,EAAE;IACpD,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO;KACR;SAAM;QACL,OAAO,eAAe,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;KACtC;AACH,CAAC,CAAC"}
|
|
@@ -15,7 +15,7 @@ const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
|
|
|
15
15
|
async function updateVersionMetadata(id, version, requestOptions) {
|
|
16
16
|
const prefix = getPrefix_1.getPrefix(version.id);
|
|
17
17
|
const properties = merge_objects_1.mergeObjects(version, {}, constants_1.VERSION_RESOURCE_PROPERTIES);
|
|
18
|
-
await arcgis_rest_portal_1.updateItemResource(Object.assign(Object.assign({}, requestOptions), { id, name: constants_1.VERSION_RESOURCE_NAME, params: { properties }, prefix }));
|
|
18
|
+
await arcgis_rest_portal_1.updateItemResource(Object.assign(Object.assign({}, requestOptions), { id, name: constants_1.VERSION_RESOURCE_NAME, owner: properties.creator, params: { properties }, prefix }));
|
|
19
19
|
return version;
|
|
20
20
|
}
|
|
21
21
|
exports.updateVersionMetadata = updateVersionMetadata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateVersionMetadata.js","sourceRoot":"","sources":["../../../src/versioning/updateVersionMetadata.ts"],"names":[],"mappings":";;;AACA,4DAAwD;AAExD,qDAAkD;AAClD,qDAG+B;AAC/B,iEAA8D;AAE9D;;;;;;GAMG;AACI,KAAK,UAAU,qBAAqB,CACzC,EAAU,EACV,OAAyB,EACzB,cAAsC;IAEtC,MAAM,MAAM,GAAG,qBAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,4BAAY,CAAC,OAAO,EAAE,EAAE,EAAE,uCAA2B,CAAC,CAAC;IAE1E,MAAM,uCAAkB,iCACnB,cAAc,KACjB,EAAE,EACF,IAAI,EAAE,iCAAqB,EAC3B,MAAM,EAAE,EAAE,UAAU,EAAE,EACtB,MAAM,IACN,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"updateVersionMetadata.js","sourceRoot":"","sources":["../../../src/versioning/updateVersionMetadata.ts"],"names":[],"mappings":";;;AACA,4DAAwD;AAExD,qDAAkD;AAClD,qDAG+B;AAC/B,iEAA8D;AAE9D;;;;;;GAMG;AACI,KAAK,UAAU,qBAAqB,CACzC,EAAU,EACV,OAAyB,EACzB,cAAsC;IAEtC,MAAM,MAAM,GAAG,qBAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,4BAAY,CAAC,OAAO,EAAE,EAAE,EAAE,uCAA2B,CAAC,CAAC;IAE1E,MAAM,uCAAkB,iCACnB,cAAc,KACjB,EAAE,EACF,IAAI,EAAE,iCAAqB,EAC3B,KAAK,EAAE,UAAU,CAAC,OAAO,EACzB,MAAM,EAAE,EAAE,UAAU,EAAE,EACtB,MAAM,IACN,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAlBD,sDAkBC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IQuery } from "../../search/types/IHubCatalog";
|
|
2
2
|
import { IConfigurationSchema } from "../schemas";
|
|
3
|
+
import { IReference } from "./IReference";
|
|
3
4
|
/**
|
|
4
5
|
* The source for a dynamic value. Used to determine how to resolve the value
|
|
5
6
|
*/
|
|
@@ -69,13 +70,6 @@ export interface IDynamicPortalSelfDefinition extends IBaseValueDefinition {
|
|
|
69
70
|
*/
|
|
70
71
|
sourcePath: string;
|
|
71
72
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Interface for a reference to another value in the same object graph.
|
|
74
|
-
* Can be used with `getProp(obj, ref.$use)` to get the value of the referenced property
|
|
75
|
-
*/
|
|
76
|
-
export interface IReference {
|
|
77
|
-
$use: string;
|
|
78
|
-
}
|
|
79
73
|
/**
|
|
80
74
|
* Definition for a dynamic value that is resolved from an item query to the portal
|
|
81
75
|
*/
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { IWithSlug, IWithPermissions, IWithCatalog } from "../traits";
|
|
2
|
+
import { IWithMetrics } from "../traits/IWithMetrics";
|
|
2
3
|
import { IHubItemEntity } from "./IHubItemEntity";
|
|
3
4
|
/**
|
|
4
5
|
* DRAFT: Under development and more properties will likely be added
|
|
5
6
|
* @internal
|
|
6
7
|
*/
|
|
7
|
-
export interface IHubInitiative extends IHubItemEntity, IWithSlug, IWithCatalog, IWithPermissions {
|
|
8
|
+
export interface IHubInitiative extends IHubItemEntity, IWithSlug, IWithCatalog, IWithMetrics, IWithPermissions {
|
|
8
9
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { IWithMetrics } from "../traits/IWithMetrics";
|
|
1
2
|
import { IWithLayout, IWithPermissions, IWithSlug, IWithCatalog } from "../traits/index";
|
|
2
3
|
import { IHubItemEntity } from "./IHubItemEntity";
|
|
3
4
|
/**
|
|
4
5
|
* Defines the properties of a Hub Project object
|
|
5
6
|
*/
|
|
6
|
-
export interface IHubProject extends IHubItemEntity, IWithSlug, IWithCatalog, IWithLayout, IWithPermissions {
|
|
7
|
+
export interface IHubProject extends IHubItemEntity, IWithSlug, IWithCatalog, IWithLayout, IWithMetrics, IWithPermissions {
|
|
7
8
|
status: PROJECT_STATUSES;
|
|
8
9
|
}
|
|
9
10
|
export declare enum PROJECT_STATUSES {
|