@disy/cadenza.js 10.4.2 → 10.4.4
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/CHANGELOG.md +12 -1
- package/apidoc/assets/search.js +1 -1
- package/apidoc/classes/AbortError.html +3 -3
- package/apidoc/classes/CadenzaClient.html +25 -24
- package/apidoc/classes/CadenzaError.html +5 -5
- package/apidoc/functions/cadenza.html +4 -4
- package/apidoc/index.html +40 -63
- package/apidoc/interfaces/CadenzaClientOptions.html +7 -5
- package/apidoc/interfaces/CadenzaEvent.html +4 -4
- package/apidoc/interfaces/CommonEditGeometryOptions.html +11 -11
- package/apidoc/interfaces/Distance.html +2 -2
- package/apidoc/interfaces/ExternalLinkKey.html +4 -4
- package/apidoc/interfaces/Feature.html +9 -9
- package/apidoc/interfaces/FeatureCollection.html +4 -4
- package/apidoc/interfaces/Geometry.html +4 -4
- package/apidoc/interfaces/GeometryExtentStrategy.html +4 -4
- package/apidoc/interfaces/LayerDataExtentStrategy.html +4 -4
- package/apidoc/interfaces/LayerDefinition.html +4 -4
- package/apidoc/interfaces/LocationFinderExtentStrategy.html +4 -4
- package/apidoc/interfaces/PageSource.html +3 -3
- package/apidoc/interfaces/SnappingOptions.html +3 -3
- package/apidoc/interfaces/SpatialFilterValue.html +4 -4
- package/apidoc/interfaces/StaticExtentStrategy.html +4 -4
- package/apidoc/modules.html +1 -1
- package/apidoc/types/CadenzaActionEvent.html +2 -2
- package/apidoc/types/CadenzaChangeSelectionEvent.html +2 -2
- package/apidoc/types/CadenzaDrillThroughEvent.html +2 -2
- package/apidoc/types/CadenzaEditGeometryCancelEvent.html +2 -2
- package/apidoc/types/CadenzaEditGeometryOkEvent.html +2 -2
- package/apidoc/types/CadenzaEditGeometryUpdateEvent.html +2 -2
- package/apidoc/types/CadenzaErrorEvent.html +2 -2
- package/apidoc/types/CadenzaEventByType.html +1 -1
- package/apidoc/types/CadenzaEventType.html +2 -2
- package/apidoc/types/CadenzaObjectInfoEvent.html +2 -2
- package/apidoc/types/CadenzaReloadEvent.html +2 -2
- package/apidoc/types/CadenzaSelectObjectsCancelEvent.html +2 -2
- package/apidoc/types/CadenzaSelectObjectsOkEvent.html +2 -2
- package/apidoc/types/Coordinate.html +2 -2
- package/apidoc/types/CustomValidityType.html +2 -2
- package/apidoc/types/DataType.html +2 -2
- package/apidoc/types/EmbeddingTargetId.html +2 -2
- package/apidoc/types/Extent.html +2 -2
- package/apidoc/types/ExtentStrategy.html +2 -2
- package/apidoc/types/FilterVariables.html +2 -2
- package/apidoc/types/GeometryType.html +2 -2
- package/apidoc/types/GlobalId.html +2 -2
- package/apidoc/types/Layout.html +2 -2
- package/apidoc/types/LengthUnit.html +1 -1
- package/apidoc/types/OpaqueString.html +2 -2
- package/apidoc/types/OperationMode.html +2 -2
- package/apidoc/types/Polygon.html +1 -1
- package/apidoc/types/SpatialRelation.html +2 -2
- package/apidoc/types/TablePart.html +2 -2
- package/apidoc/types/UiFeature.html +5 -2
- package/apidoc/types/WorkbookLayerPath.html +2 -2
- package/cadenza.d.ts +16 -6
- package/cadenza.js +115 -102
- package/package.json +1 -1
- package/sandbox.html +9 -6
package/cadenza.js
CHANGED
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
* This is required if Cadenza and your application are not running on the same origin.
|
|
10
10
|
* Please ensure that the user has view privilege for that link!
|
|
11
11
|
* @property {boolean} [options.debug] - Whether to enable debug logging
|
|
12
|
+
* @property {boolean} [options.skipGuest] - Whether a configured guest authenticator should be ignored
|
|
12
13
|
*/
|
|
13
14
|
// This placeholder is replaced when Cadenza JS is released,
|
|
14
15
|
// i.e. during development, the version is not available.
|
|
15
|
-
const CADENZAJS_VERSION = '10.4.
|
|
16
|
+
const CADENZAJS_VERSION = '10.4.4';
|
|
16
17
|
/**
|
|
17
18
|
* Creates an instance of the Cadenza JS client.
|
|
18
19
|
*
|
|
@@ -95,12 +96,15 @@ globalThis.cadenza = Object.assign((/** @type Parameters<cadenza> */ ...args) =>
|
|
|
95
96
|
*/
|
|
96
97
|
/** @typedef {'normal'|'simplified'} OperationMode - The mode in which a workbook should be operated */
|
|
97
98
|
/**
|
|
98
|
-
* @typedef {'workbook-design'|'workbook-map-add-layer'|'workbook-view-management'} UiFeature - The name of a Cadenza UI feature
|
|
99
|
+
* @typedef {'workbook-design'|'workbook-map-add-layer'|'workbook-view-management'|'embedded-dialog-footer-buttons'|'embedded-dialog-apply-button'|'embedded-dialog-cancel-button'} UiFeature - The name of a Cadenza UI feature
|
|
99
100
|
*
|
|
100
101
|
* _Note:_ Supported features are:
|
|
101
102
|
* * `"workbook-design"` - The workbook designer
|
|
102
103
|
* * `"workbook-map-add-layer"`- Add layers to the map
|
|
103
104
|
* * `"workbook-view-management"` - Add/Edit/Remove workbook views (Is included in 'workbook-design'.)
|
|
105
|
+
* * `"embedded-dialog-footer-buttons"` - All footer buttons for Create/Edit Geometries and Select Objects dialogs
|
|
106
|
+
* * `"embedded-dialog-apply-button"` - Apply button for Create/Edit Geometries and Select Objects dialogs
|
|
107
|
+
* * `"embedded-dialog-cancel-button"` - Cancel button for Create/Edit Geometries and Select Objects dialogs
|
|
104
108
|
* */
|
|
105
109
|
/**
|
|
106
110
|
* @typedef LayerDefinition
|
|
@@ -250,6 +254,8 @@ export class CadenzaClient {
|
|
|
250
254
|
#iframeElement;
|
|
251
255
|
/** @readonly */
|
|
252
256
|
#debug;
|
|
257
|
+
/** @readonly */
|
|
258
|
+
#skipGuest;
|
|
253
259
|
/** @type {[ CadenzaEventType | string, (event: CadenzaEvent<never>) => void ][]} */
|
|
254
260
|
#subscriptions = [];
|
|
255
261
|
/**
|
|
@@ -257,7 +263,7 @@ export class CadenzaClient {
|
|
|
257
263
|
* @hidden
|
|
258
264
|
* @param {CadenzaClientOptions} [__namedParameters]
|
|
259
265
|
*/
|
|
260
|
-
constructor({ baseUrl, debug = false, iframe, webApplication } = {}) {
|
|
266
|
+
constructor({ baseUrl, debug = false, skipGuest = false, iframe, webApplication, } = {}) {
|
|
261
267
|
if (webApplication) {
|
|
262
268
|
assert(validExternalLinkKey(webApplication), `Invalid webApplication parameter: ${webApplication}`);
|
|
263
269
|
}
|
|
@@ -277,6 +283,7 @@ export class CadenzaClient {
|
|
|
277
283
|
this.#log('Create Cadenza client for parent Cadenza');
|
|
278
284
|
}
|
|
279
285
|
this.#debug = debug;
|
|
286
|
+
this.#skipGuest = skipGuest;
|
|
280
287
|
this.#webApplication = webApplication;
|
|
281
288
|
}
|
|
282
289
|
/** The base URL of the Cadenza server this client is requesting */
|
|
@@ -343,7 +350,7 @@ export class CadenzaClient {
|
|
|
343
350
|
'page' in source &&
|
|
344
351
|
source.page === 'welcome', 'labelSet is only supported on the welcome page');
|
|
345
352
|
}
|
|
346
|
-
const params = createParams({
|
|
353
|
+
const params = this.#createParams({
|
|
347
354
|
dataType,
|
|
348
355
|
disabledUiFeatures,
|
|
349
356
|
expandNavigator,
|
|
@@ -411,7 +418,7 @@ export class CadenzaClient {
|
|
|
411
418
|
extentStrategy,
|
|
412
419
|
geometry,
|
|
413
420
|
});
|
|
414
|
-
const params = createParams({
|
|
421
|
+
const params = this.#createParams({
|
|
415
422
|
disabledUiFeatures,
|
|
416
423
|
expandNavigator,
|
|
417
424
|
filter,
|
|
@@ -579,7 +586,7 @@ export class CadenzaClient {
|
|
|
579
586
|
const validExtentStrategy = sanitizeExtentStrategy({
|
|
580
587
|
extentStrategy,
|
|
581
588
|
});
|
|
582
|
-
const params = createParams({
|
|
589
|
+
const params = this.#createParams({
|
|
583
590
|
action: 'editGeometry',
|
|
584
591
|
disabledUiFeatures,
|
|
585
592
|
filter,
|
|
@@ -619,7 +626,7 @@ export class CadenzaClient {
|
|
|
619
626
|
extentStrategy,
|
|
620
627
|
geometry,
|
|
621
628
|
});
|
|
622
|
-
const params = createParams({
|
|
629
|
+
const params = this.#createParams({
|
|
623
630
|
action: 'editGeometry',
|
|
624
631
|
disabledUiFeatures,
|
|
625
632
|
filter,
|
|
@@ -658,7 +665,7 @@ export class CadenzaClient {
|
|
|
658
665
|
const validExtentStrategy = sanitizeExtentStrategy({
|
|
659
666
|
extentStrategy,
|
|
660
667
|
});
|
|
661
|
-
const params = createParams({
|
|
668
|
+
const params = this.#createParams({
|
|
662
669
|
action: 'editGeometry',
|
|
663
670
|
batchModeEnabled: true,
|
|
664
671
|
disabledUiFeatures,
|
|
@@ -698,7 +705,7 @@ export class CadenzaClient {
|
|
|
698
705
|
extentStrategy,
|
|
699
706
|
geometry: features.features[features.features.length - 1].geometry,
|
|
700
707
|
});
|
|
701
|
-
const params = createParams({
|
|
708
|
+
const params = this.#createParams({
|
|
702
709
|
action: 'editGeometry',
|
|
703
710
|
batchModeEnabled: true,
|
|
704
711
|
disabledUiFeatures,
|
|
@@ -765,6 +772,7 @@ export class CadenzaClient {
|
|
|
765
772
|
*
|
|
766
773
|
* @param {EmbeddingTargetId} backgroundMapView - The workbook map view
|
|
767
774
|
* @param {object} [__namedParameters] - Options
|
|
775
|
+
* @param {UiFeature[]} [__namedParameters.disabledUiFeatures] - Cadenza UI features to disable
|
|
768
776
|
* @param {ExtentStrategy} [__namedParameters.extentStrategy] - Defines the initial map extent; If not given, Cadenza's default logic is used.
|
|
769
777
|
* @param {FilterVariables} [__namedParameters.filter] - Filter variables
|
|
770
778
|
* @param {(WorkbookLayerPath | string)[]} [__namedParameters.layers] - Layers to restrict the selection to
|
|
@@ -781,13 +789,14 @@ export class CadenzaClient {
|
|
|
781
789
|
* - {@link CadenzaSelectObjectsCancelEvent}
|
|
782
790
|
* @embed
|
|
783
791
|
*/
|
|
784
|
-
async selectObjects(backgroundMapView, { extentStrategy, filter, layers, useMapSrs, operationMode, signal } = {}) {
|
|
792
|
+
async selectObjects(backgroundMapView, { disabledUiFeatures, extentStrategy, filter, layers, useMapSrs, operationMode, signal, } = {}) {
|
|
785
793
|
this.#log('CadenzaClient#selectObjects', ...arguments);
|
|
786
794
|
const validExtentStrategy = sanitizeExtentStrategy({
|
|
787
795
|
extentStrategy,
|
|
788
796
|
});
|
|
789
|
-
const params = createParams({
|
|
797
|
+
const params = this.#createParams({
|
|
790
798
|
action: 'selectObjects',
|
|
799
|
+
disabledUiFeatures,
|
|
791
800
|
filter,
|
|
792
801
|
layers: layers?.map(array),
|
|
793
802
|
useMapSrs,
|
|
@@ -1001,7 +1010,7 @@ export class CadenzaClient {
|
|
|
1001
1010
|
fetchData(source, dataType, { filter, parts, signal } = {}) {
|
|
1002
1011
|
this.#log('CadenzaClient#fetchData', ...arguments);
|
|
1003
1012
|
assertSupportedDataType(dataType, ['csv', 'excel', 'json', 'pdf']);
|
|
1004
|
-
const params = createParams({ dataType, filter, parts });
|
|
1013
|
+
const params = this.#createParams({ dataType, filter, parts });
|
|
1005
1014
|
return this.#fetch(resolvePath(source), params, signal);
|
|
1006
1015
|
}
|
|
1007
1016
|
/**
|
|
@@ -1021,7 +1030,7 @@ export class CadenzaClient {
|
|
|
1021
1030
|
*/
|
|
1022
1031
|
fetchObjectInfo(source, layerPath, objectIds, { filter, signal, fullGeometries, useMapSrs } = {}) {
|
|
1023
1032
|
this.#log('CadenzaClient#fetchObjectInfo', ...arguments);
|
|
1024
|
-
const params = createParams({
|
|
1033
|
+
const params = this.#createParams({
|
|
1025
1034
|
filter,
|
|
1026
1035
|
});
|
|
1027
1036
|
return this.#fetch(resolvePath(source) + '/objectinfo', params, signal, JSON.stringify({
|
|
@@ -1047,7 +1056,7 @@ export class CadenzaClient {
|
|
|
1047
1056
|
*/
|
|
1048
1057
|
fetchAreaIntersections(source, layerPath, geometry, { buffer, signal, useMapSrs } = {}) {
|
|
1049
1058
|
this.#log('CadenzaClient#areaIntersections', ...arguments);
|
|
1050
|
-
const params = createParams({});
|
|
1059
|
+
const params = this.#createParams({});
|
|
1051
1060
|
return this.#fetch(resolvePath(source) + '/area-intersections', params, signal, JSON.stringify({
|
|
1052
1061
|
buffer,
|
|
1053
1062
|
layerPath: array(layerPath),
|
|
@@ -1104,7 +1113,7 @@ export class CadenzaClient {
|
|
|
1104
1113
|
downloadData(source, dataType, { fileName, filter, parts } = {}) {
|
|
1105
1114
|
this.#log('CadenzaClient#downloadData', ...arguments);
|
|
1106
1115
|
assertSupportedDataType(dataType, ['csv', 'excel', 'json', 'pdf']);
|
|
1107
|
-
const params = createParams({ dataType, fileName, filter, parts });
|
|
1116
|
+
const params = this.#createParams({ dataType, fileName, filter, parts });
|
|
1108
1117
|
this.#download(resolvePath(source), params);
|
|
1109
1118
|
}
|
|
1110
1119
|
#download(/** @type string */ path, /** @type URLSearchParams */ params) {
|
|
@@ -1128,6 +1137,93 @@ export class CadenzaClient {
|
|
|
1128
1137
|
}
|
|
1129
1138
|
return url;
|
|
1130
1139
|
}
|
|
1140
|
+
/**
|
|
1141
|
+
* @param {object} params
|
|
1142
|
+
* @param {string} [params.action]
|
|
1143
|
+
* @param {boolean} [params.batchModeEnabled]
|
|
1144
|
+
* @param {DataType} [params.dataType]
|
|
1145
|
+
* @param {UiFeature[]} [params.disabledUiFeatures]
|
|
1146
|
+
* @param {boolean} [params.expandNavigator]
|
|
1147
|
+
* @param {string} [params.fileName]
|
|
1148
|
+
* @param {FilterVariables} [params.filter]
|
|
1149
|
+
* @param {GeometryType} [params.geometryType]
|
|
1150
|
+
* @param {boolean} [params.hideMainHeaderAndFooter]
|
|
1151
|
+
* @param {boolean} [params.hideWorkbookToolBar]
|
|
1152
|
+
* @param {GlobalId} [params.highlightGlobalId]
|
|
1153
|
+
* @param {string} [params.labelSet]
|
|
1154
|
+
* @param {WorkbookLayerPath[]} [params.layers]
|
|
1155
|
+
* @param {number} [params.minScale]
|
|
1156
|
+
* @param {OperationMode} [params.operationMode]
|
|
1157
|
+
* @param {TablePart[]} [params.parts]
|
|
1158
|
+
* @param {'MAP'} [params.targetType]
|
|
1159
|
+
* @param {SnappingOptions} [params.snapping]
|
|
1160
|
+
* @param {boolean} [params.useMapSrs]
|
|
1161
|
+
* @param {ExtentStrategy} [params.validExtentStrategy]
|
|
1162
|
+
* @param {Layout} [params.layout]
|
|
1163
|
+
* @return {URLSearchParams}
|
|
1164
|
+
*/
|
|
1165
|
+
#createParams({ action, batchModeEnabled, dataType, disabledUiFeatures, expandNavigator, fileName, filter, geometryType, hideMainHeaderAndFooter, hideWorkbookToolBar, highlightGlobalId, labelSet, layers, minScale, operationMode, parts, targetType, snapping, useMapSrs, validExtentStrategy, layout, }) {
|
|
1166
|
+
if (disabledUiFeatures) {
|
|
1167
|
+
disabledUiFeatures.forEach((feature) => assert(validUiFeature(feature), `Invalid UI feature: ${feature}`));
|
|
1168
|
+
}
|
|
1169
|
+
if (filter) {
|
|
1170
|
+
assertValidFilterVariables(filter);
|
|
1171
|
+
}
|
|
1172
|
+
if (geometryType) {
|
|
1173
|
+
assertValidGeometryType(geometryType);
|
|
1174
|
+
}
|
|
1175
|
+
if (operationMode) {
|
|
1176
|
+
assert(validOperationMode(operationMode), `Invalid operation mode: ${operationMode}`);
|
|
1177
|
+
}
|
|
1178
|
+
if (layout) {
|
|
1179
|
+
assert(validLayout(layout), `Invalid layout: ${layout}`);
|
|
1180
|
+
}
|
|
1181
|
+
if (parts) {
|
|
1182
|
+
parts.forEach((part) => assert(validTablePart(part), `Invalid table part: ${part}`));
|
|
1183
|
+
}
|
|
1184
|
+
let locationFinder;
|
|
1185
|
+
let mapExtent;
|
|
1186
|
+
if (validExtentStrategy) {
|
|
1187
|
+
if (validExtentStrategy.type === 'static') {
|
|
1188
|
+
mapExtent = validExtentStrategy.extent;
|
|
1189
|
+
}
|
|
1190
|
+
else if (validExtentStrategy.type === 'locationFinder') {
|
|
1191
|
+
locationFinder = validExtentStrategy.query;
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1194
|
+
return new URLSearchParams({
|
|
1195
|
+
...(action && { action }),
|
|
1196
|
+
...(batchModeEnabled && { batchModeEnabled: 'true' }),
|
|
1197
|
+
...(dataType && { dataType }),
|
|
1198
|
+
...(disabledUiFeatures && {
|
|
1199
|
+
disabledUiFeatures: disabledUiFeatures.join(),
|
|
1200
|
+
}),
|
|
1201
|
+
...(expandNavigator && { expandNavigator: 'true' }),
|
|
1202
|
+
...(fileName && { fileName }),
|
|
1203
|
+
...(filter &&
|
|
1204
|
+
Object.fromEntries(Object.entries(filter).map(([variable, value]) => [
|
|
1205
|
+
`filter.${variable}`,
|
|
1206
|
+
JSON.stringify(value instanceof Date ? value.toISOString() : value),
|
|
1207
|
+
]))),
|
|
1208
|
+
...(geometryType && { geometryType }),
|
|
1209
|
+
...(hideMainHeaderAndFooter && { hideMainHeaderAndFooter: 'true' }),
|
|
1210
|
+
...(hideWorkbookToolBar && { hideWorkbookToolBar: 'true' }),
|
|
1211
|
+
...(highlightGlobalId && { highlightGlobalId }),
|
|
1212
|
+
...(labelSet && { labelSet }),
|
|
1213
|
+
...(layers?.length && { layers: JSON.stringify(layers) }),
|
|
1214
|
+
...(locationFinder && { locationFinder }),
|
|
1215
|
+
...(mapExtent && { mapExtent: mapExtent.join() }),
|
|
1216
|
+
...(minScale && { minScale: String(minScale) }),
|
|
1217
|
+
...(operationMode && { operationMode }),
|
|
1218
|
+
...(parts && { parts: parts.join() }),
|
|
1219
|
+
...(snapping && { snappingLayer: JSON.stringify(array(snapping.layer)) }),
|
|
1220
|
+
...(snapping?.types?.length && { snappingTypes: snapping.types.join() }),
|
|
1221
|
+
...(targetType && { targetType }),
|
|
1222
|
+
...(useMapSrs && { useMapSrs: 'true' }),
|
|
1223
|
+
...(layout && { layout }),
|
|
1224
|
+
...(this.#skipGuest && { skipGuestAccess: 'true' }),
|
|
1225
|
+
});
|
|
1226
|
+
}
|
|
1131
1227
|
#log(/** @type unknown[] */ ...args) {
|
|
1132
1228
|
if (this.#debug) {
|
|
1133
1229
|
/** @type {unknown[]} */
|
|
@@ -1223,6 +1319,9 @@ function validUiFeature(/** @type string */ value) {
|
|
|
1223
1319
|
'workbook-design',
|
|
1224
1320
|
'workbook-map-add-layer',
|
|
1225
1321
|
'workbook-view-management',
|
|
1322
|
+
'embedded-dialog-footer-buttons',
|
|
1323
|
+
'embedded-dialog-apply-button',
|
|
1324
|
+
'embedded-dialog-cancel-button',
|
|
1226
1325
|
].includes(value);
|
|
1227
1326
|
}
|
|
1228
1327
|
function assertSupportedDataType(
|
|
@@ -1252,92 +1351,6 @@ function assertValidFilterVariables(/** @type {FilterVariables} */ filter) {
|
|
|
1252
1351
|
validSpatialFilterValue(/** @type {SpatialFilterValue} */ ($spatial)), 'Invalid value for spatial filter value under $spatial property');
|
|
1253
1352
|
Object.keys(otherFilter).forEach((varName) => assert(validKebabCaseString(varName), `Invalid filter variable name: ${varName}`));
|
|
1254
1353
|
}
|
|
1255
|
-
/**
|
|
1256
|
-
* @param {object} params
|
|
1257
|
-
* @param {string} [params.action]
|
|
1258
|
-
* @param {boolean} [params.batchModeEnabled]
|
|
1259
|
-
* @param {DataType} [params.dataType]
|
|
1260
|
-
* @param {UiFeature[]} [params.disabledUiFeatures]
|
|
1261
|
-
* @param {boolean} [params.expandNavigator]
|
|
1262
|
-
* @param {string} [params.fileName]
|
|
1263
|
-
* @param {FilterVariables} [params.filter]
|
|
1264
|
-
* @param {GeometryType} [params.geometryType]
|
|
1265
|
-
* @param {boolean} [params.hideMainHeaderAndFooter]
|
|
1266
|
-
* @param {boolean} [params.hideWorkbookToolBar]
|
|
1267
|
-
* @param {GlobalId} [params.highlightGlobalId]
|
|
1268
|
-
* @param {string} [params.labelSet]
|
|
1269
|
-
* @param {WorkbookLayerPath[]} [params.layers]
|
|
1270
|
-
* @param {number} [params.minScale]
|
|
1271
|
-
* @param {OperationMode} [params.operationMode]
|
|
1272
|
-
* @param {TablePart[]} [params.parts]
|
|
1273
|
-
* @param {'MAP'} [params.targetType]
|
|
1274
|
-
* @param {SnappingOptions} [params.snapping]
|
|
1275
|
-
* @param {boolean} [params.useMapSrs]
|
|
1276
|
-
* @param {ExtentStrategy | undefined} [params.validExtentStrategy]
|
|
1277
|
-
* @param {Layout | undefined} [params.layout]
|
|
1278
|
-
* @return {URLSearchParams}
|
|
1279
|
-
*/
|
|
1280
|
-
function createParams({ action, batchModeEnabled, dataType, disabledUiFeatures, expandNavigator, fileName, filter, geometryType, hideMainHeaderAndFooter, hideWorkbookToolBar, highlightGlobalId, labelSet, layers, minScale, operationMode, parts, targetType, snapping, useMapSrs, validExtentStrategy, layout, }) {
|
|
1281
|
-
if (disabledUiFeatures) {
|
|
1282
|
-
disabledUiFeatures.forEach((feature) => assert(validUiFeature(feature), `Invalid UI feature: ${feature}`));
|
|
1283
|
-
}
|
|
1284
|
-
if (filter) {
|
|
1285
|
-
assertValidFilterVariables(filter);
|
|
1286
|
-
}
|
|
1287
|
-
if (geometryType) {
|
|
1288
|
-
assertValidGeometryType(geometryType);
|
|
1289
|
-
}
|
|
1290
|
-
if (operationMode) {
|
|
1291
|
-
assert(validOperationMode(operationMode), `Invalid operation mode: ${operationMode}`);
|
|
1292
|
-
}
|
|
1293
|
-
if (layout) {
|
|
1294
|
-
assert(validLayout(layout), `Invalid layout: ${layout}`);
|
|
1295
|
-
}
|
|
1296
|
-
if (parts) {
|
|
1297
|
-
parts.forEach((part) => assert(validTablePart(part), `Invalid table part: ${part}`));
|
|
1298
|
-
}
|
|
1299
|
-
let locationFinder;
|
|
1300
|
-
let mapExtent;
|
|
1301
|
-
if (validExtentStrategy) {
|
|
1302
|
-
if (validExtentStrategy.type === 'static') {
|
|
1303
|
-
mapExtent = validExtentStrategy.extent;
|
|
1304
|
-
}
|
|
1305
|
-
else if (validExtentStrategy.type === 'locationFinder') {
|
|
1306
|
-
locationFinder = validExtentStrategy.query;
|
|
1307
|
-
}
|
|
1308
|
-
}
|
|
1309
|
-
return new URLSearchParams({
|
|
1310
|
-
...(action && { action }),
|
|
1311
|
-
...(batchModeEnabled && { batchModeEnabled: 'true' }),
|
|
1312
|
-
...(dataType && { dataType }),
|
|
1313
|
-
...(disabledUiFeatures && {
|
|
1314
|
-
disabledUiFeatures: disabledUiFeatures.join(),
|
|
1315
|
-
}),
|
|
1316
|
-
...(expandNavigator && { expandNavigator: 'true' }),
|
|
1317
|
-
...(fileName && { fileName }),
|
|
1318
|
-
...(filter &&
|
|
1319
|
-
Object.fromEntries(Object.entries(filter).map(([variable, value]) => [
|
|
1320
|
-
`filter.${variable}`,
|
|
1321
|
-
JSON.stringify(value instanceof Date ? value.toISOString() : value),
|
|
1322
|
-
]))),
|
|
1323
|
-
...(geometryType && { geometryType }),
|
|
1324
|
-
...(hideMainHeaderAndFooter && { hideMainHeaderAndFooter: 'true' }),
|
|
1325
|
-
...(hideWorkbookToolBar && { hideWorkbookToolBar: 'true' }),
|
|
1326
|
-
...(highlightGlobalId && { highlightGlobalId }),
|
|
1327
|
-
...(labelSet && { labelSet }),
|
|
1328
|
-
...(layers?.length && { layers: JSON.stringify(layers) }),
|
|
1329
|
-
...(locationFinder && { locationFinder }),
|
|
1330
|
-
...(mapExtent && { mapExtent: mapExtent.join() }),
|
|
1331
|
-
...(minScale && { minScale: String(minScale) }),
|
|
1332
|
-
...(operationMode && { operationMode }),
|
|
1333
|
-
...(parts && { parts: parts.join() }),
|
|
1334
|
-
...(snapping && { snappingLayer: JSON.stringify(array(snapping.layer)) }),
|
|
1335
|
-
...(snapping?.types?.length && { snappingTypes: snapping.types.join() }),
|
|
1336
|
-
...(targetType && { targetType }),
|
|
1337
|
-
...(useMapSrs && { useMapSrs: 'true' }),
|
|
1338
|
-
...(layout && { layout }),
|
|
1339
|
-
});
|
|
1340
|
-
}
|
|
1341
1354
|
function array(/** @type unknown */ value) {
|
|
1342
1355
|
return Array.isArray(value) ? value : [value];
|
|
1343
1356
|
}
|
|
@@ -1455,7 +1468,7 @@ function getGeometryTypeFromFeatureCollection(featureCollection) {
|
|
|
1455
1468
|
* See also: <a href="../index.html#md:json-representation-of-cadenza-object-data">JSON Representation of Cadenza Object Data</a>
|
|
1456
1469
|
*/
|
|
1457
1470
|
/** @typedef {CadenzaEvent<'editGeometry:update', FeatureCollection | Feature | undefined>} CadenzaEditGeometryUpdateEvent - When the user changed the geometry. `FeatureCollection` if multiple features are present on the edit layer, but the original defined type is not multi-geometry. This is also the case if the dialog was instantiated from a geometry and the original defined type is inherited. `undefined` if no feature is present on the edit layer. */
|
|
1458
|
-
/** @typedef {CadenzaEvent<'editGeometry:ok', Feature>} CadenzaEditGeometryOkEvent - When the user submitted the geometry. */
|
|
1471
|
+
/** @typedef {CadenzaEvent<'editGeometry:ok', FeatureCollection | Feature>} CadenzaEditGeometryOkEvent - When the user submitted the geometry. `FeatureCollection` if batch editing is enabled. */
|
|
1459
1472
|
/** @typedef {CadenzaEvent<'editGeometry:cancel'>} CadenzaEditGeometryCancelEvent - When the user cancelled the geometry editing. */
|
|
1460
1473
|
/** @typedef {CadenzaEvent<'error', {type: string, message?: string}>} CadenzaErrorEvent - An error event that is mapped to a {@link CadenzaError} */
|
|
1461
1474
|
/** @typedef {CadenzaEvent<'objectInfo', {layer: WorkbookLayerPath, objectInfos: {selectionIndex: number, elements: {attributePrintName: string, formattedValue: string}[]}}>} CadenzaObjectInfoEvent - When the user opened the object info flyout. */
|
package/package.json
CHANGED
package/sandbox.html
CHANGED
|
@@ -304,11 +304,11 @@
|
|
|
304
304
|
<optgroup label="Interact With Shown Content">
|
|
305
305
|
<option value="expandNavigator">Expand Navigator</option>
|
|
306
306
|
<option value="getData">Get Data (Get Map Image)</option>
|
|
307
|
-
<option value="setFilter"
|
|
308
|
-
<option value="setLayerVisibility"
|
|
309
|
-
<option value="setSelection"
|
|
310
|
-
<option value="addSelection"
|
|
311
|
-
<option value="removeSelection"
|
|
307
|
+
<option value="setFilter">Set Filter</option>
|
|
308
|
+
<option value="setLayerVisibility">Set Layer Visibility</option>
|
|
309
|
+
<option value="setSelection">Set Selection</option>
|
|
310
|
+
<option value="addSelection">Add Selection</option>
|
|
311
|
+
<option value="removeSelection">Remove Selection</option>
|
|
312
312
|
<option value="reload">Reload worksheet views</option>
|
|
313
313
|
<option value="closeMe">Close me</option>
|
|
314
314
|
</optgroup>
|
|
@@ -400,6 +400,9 @@
|
|
|
400
400
|
<li>workbook-design</li>
|
|
401
401
|
<li>workbook-map-add-layer</li>
|
|
402
402
|
<li>workbook-view-management</li>
|
|
403
|
+
<li>embedded-dialog-footer-buttons</li>
|
|
404
|
+
<li>embedded-dialog-apply-button</li>
|
|
405
|
+
<li>embedded-dialog-cancel-button</li>
|
|
403
406
|
</ul>
|
|
404
407
|
</small>
|
|
405
408
|
</div>
|
|
@@ -654,7 +657,7 @@
|
|
|
654
657
|
</div>
|
|
655
658
|
</template>
|
|
656
659
|
|
|
657
|
-
<template data-action="selectObjects" data-common="
|
|
660
|
+
<template data-action="selectObjects" data-common="extentStrategy,map,disabledUiFeatures,filter">
|
|
658
661
|
<div>
|
|
659
662
|
<label for="embeddingTargetId">Embedding target ID of the map view *</label>
|
|
660
663
|
<input name="embeddingTargetId" id="embeddingTargetId" required>
|