@esri/solutions-components 0.7.30 → 0.7.31
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/assets/t9n/crowdsource-reporter/resources.json +7 -5
- package/dist/assets/t9n/crowdsource-reporter/resources_en.json +7 -5
- package/dist/assets/t9n/feature-list/resources.json +1 -1
- package/dist/assets/t9n/feature-list/resources_en.json +1 -1
- package/dist/assets/t9n/layer-list/resources.json +1 -1
- package/dist/assets/t9n/layer-list/resources_en.json +1 -1
- package/dist/cjs/{calcite-flow_4.cjs.entry.js → calcite-flow_5.cjs.entry.js} +235 -19
- package/dist/cjs/card-manager_3.cjs.entry.js +1 -1
- package/dist/cjs/crowdsource-reporter.cjs.entry.js +221 -32
- package/dist/cjs/{downloadUtils-83c6d3c3.js → downloadUtils-10e0de31.js} +2 -2
- package/dist/cjs/{index.es-bd1a93b2.js → index.es-72dc7ab9.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/map-select-tools_3.cjs.entry.js +1 -1
- package/dist/cjs/public-notification.cjs.entry.js +1 -1
- package/dist/cjs/solutions-components.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/create-feature/create-feature.css +23 -0
- package/dist/collection/components/create-feature/create-feature.js +361 -0
- package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +10 -1
- package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +260 -33
- package/dist/collection/components/feature-list/feature-list.js +1 -0
- package/dist/collection/components/layer-list/layer-list.js +60 -16
- package/dist/collection/demos/crowdsource-reporter.html +26 -11
- package/dist/collection/utils/downloadUtils.js +1 -1
- package/dist/collection/utils/downloadUtils.ts +1 -1
- package/dist/components/create-feature.d.ts +11 -0
- package/dist/components/create-feature.js +11 -0
- package/dist/components/create-feature2.js +226 -0
- package/dist/components/crowdsource-reporter.js +297 -90
- package/dist/components/downloadUtils.js +1 -1
- package/dist/components/feature-list2.js +1 -0
- package/dist/components/layer-list2.js +38 -17
- package/dist/esm/{calcite-flow_4.entry.js → calcite-flow_5.entry.js} +235 -20
- package/dist/esm/card-manager_3.entry.js +1 -1
- package/dist/esm/crowdsource-reporter.entry.js +222 -33
- package/dist/esm/{downloadUtils-d070a467.js → downloadUtils-d297078f.js} +2 -2
- package/dist/esm/{index.es-d48535a2.js → index.es-3b4fa9d0.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/map-select-tools_3.entry.js +1 -1
- package/dist/esm/public-notification.entry.js +1 -1
- package/dist/esm/solutions-components.js +1 -1
- package/dist/solutions-components/demos/crowdsource-reporter.html +26 -11
- package/dist/solutions-components/{p-f120ff40.entry.js → p-09ec8c8f.entry.js} +1 -1
- package/dist/solutions-components/{p-55b835a1.js → p-103c5318.js} +2 -2
- package/dist/solutions-components/{p-309cdea1.entry.js → p-57d49d15.entry.js} +1 -1
- package/dist/solutions-components/{p-b913a4fd.js → p-8ec25bf4.js} +1 -1
- package/dist/solutions-components/{p-f22ff57e.entry.js → p-921f21d5.entry.js} +1 -1
- package/dist/solutions-components/p-b4e2cac4.entry.js +17 -0
- package/dist/solutions-components/p-bb6562ab.entry.js +6 -0
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/solutions-components/utils/downloadUtils.ts +1 -1
- package/dist/types/components/create-feature/create-feature.d.ts +107 -0
- package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +132 -12
- package/dist/types/components/feature-list/feature-list.d.ts +1 -0
- package/dist/types/components/layer-list/layer-list.d.ts +6 -0
- package/dist/types/components.d.ts +89 -0
- package/dist/types/preact.d.ts +6 -0
- package/package.json +1 -1
- package/dist/solutions-components/p-2f162664.entry.js +0 -6
- package/dist/solutions-components/p-94ee3ef7.entry.js +0 -17
@@ -0,0 +1,107 @@
|
|
1
|
+
/** @license
|
2
|
+
* Copyright 2022 Esri
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
/// <reference types="arcgis-js-api" />
|
17
|
+
import { EventEmitter } from "../../stencil-public-runtime";
|
18
|
+
export declare class CreateFeature {
|
19
|
+
el: HTMLCreateFeatureElement;
|
20
|
+
/**
|
21
|
+
* esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
|
22
|
+
*/
|
23
|
+
mapView: __esri.MapView;
|
24
|
+
/**
|
25
|
+
* string: Layer id of the feature layer in which the new feature is to be created
|
26
|
+
*/
|
27
|
+
selectedLayerId: string;
|
28
|
+
/**
|
29
|
+
* esri/widgets/Editor: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html
|
30
|
+
* The Editor constructor
|
31
|
+
*/
|
32
|
+
protected Editor: typeof import("esri/widgets/Editor");
|
33
|
+
/**
|
34
|
+
* esri/widgets/Editor: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html
|
35
|
+
* The Editor instance
|
36
|
+
*/
|
37
|
+
protected _editor: __esri.Editor;
|
38
|
+
/**
|
39
|
+
* HTMLDivElement: https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement
|
40
|
+
*/
|
41
|
+
protected _editContainer: HTMLDivElement;
|
42
|
+
/**
|
43
|
+
* Called each time the mapView prop is changed.
|
44
|
+
*/
|
45
|
+
mapViewWatchHandler(): Promise<void>;
|
46
|
+
/**
|
47
|
+
* Destroy the Editor widget instance
|
48
|
+
* @returns Promise that resolves when the operation is complete
|
49
|
+
*/
|
50
|
+
close(): Promise<void>;
|
51
|
+
/**
|
52
|
+
* Submit the created feature
|
53
|
+
* @returns Promise that resolves when the operation is complete
|
54
|
+
*/
|
55
|
+
submit(): Promise<void>;
|
56
|
+
/**
|
57
|
+
* Emitted on demand when the feature is created successfully
|
58
|
+
*/
|
59
|
+
success: EventEmitter<void>;
|
60
|
+
/**
|
61
|
+
* Emitted on demand when the feature creation is failed
|
62
|
+
*/
|
63
|
+
fail: EventEmitter<Error>;
|
64
|
+
/**
|
65
|
+
* Emitted on demand when drawing is completed
|
66
|
+
*/
|
67
|
+
drawComplete: EventEmitter<void>;
|
68
|
+
/**
|
69
|
+
* StencilJS: Called once just after the component is first connected to the DOM.
|
70
|
+
* @returns Promise when complete
|
71
|
+
*/
|
72
|
+
componentWillLoad(): Promise<void>;
|
73
|
+
/**
|
74
|
+
* StencilJS: Called once just after the component is fully loaded and the first render() occurs.
|
75
|
+
*/
|
76
|
+
componentDidLoad(): Promise<void>;
|
77
|
+
/**
|
78
|
+
* Renders the component.
|
79
|
+
*/
|
80
|
+
render(): any;
|
81
|
+
/**
|
82
|
+
* Init Editor widget and starts the create workflow
|
83
|
+
*/
|
84
|
+
protected init(): Promise<void>;
|
85
|
+
/**
|
86
|
+
* Load esri javascript api modules
|
87
|
+
* @returns Promise resolving when function is done
|
88
|
+
* @protected
|
89
|
+
*/
|
90
|
+
protected initModules(): Promise<void>;
|
91
|
+
/**
|
92
|
+
* Display editor widget to create the new feature
|
93
|
+
* @protected
|
94
|
+
*/
|
95
|
+
protected createEditorWidget(): Promise<void>;
|
96
|
+
/**
|
97
|
+
* Start creating the feature
|
98
|
+
* @protected
|
99
|
+
*/
|
100
|
+
protected startCreate(): Promise<void>;
|
101
|
+
/**
|
102
|
+
* On creation of feature emit the event that the feature is created
|
103
|
+
* @param evt feature submit event
|
104
|
+
* @protected
|
105
|
+
*/
|
106
|
+
protected submitted(evt: any): Promise<void>;
|
107
|
+
}
|
@@ -15,7 +15,7 @@
|
|
15
15
|
*/
|
16
16
|
/// <reference types="arcgis-js-api" />
|
17
17
|
import { VNode, EventEmitter } from "../../stencil-public-runtime";
|
18
|
-
import { IMapChange, IMapInfo, ISearchConfiguration, theme } from "../../utils/interfaces";
|
18
|
+
import { IMapChange, IMapClick, IMapInfo, ISearchConfiguration, theme } from "../../utils/interfaces";
|
19
19
|
import CrowdsourceReporter_T9n from "../../assets/t9n/crowdsource-reporter/resources.json";
|
20
20
|
export declare class CrowdsourceReporter {
|
21
21
|
el: HTMLCrowdsourceReporterElement;
|
@@ -59,6 +59,14 @@ export declare class CrowdsourceReporter {
|
|
59
59
|
* esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
|
60
60
|
*/
|
61
61
|
mapView: __esri.MapView;
|
62
|
+
/**
|
63
|
+
* string: Layer id of the feature from URL params
|
64
|
+
*/
|
65
|
+
layerId: string;
|
66
|
+
/**
|
67
|
+
* string: Object id of the feature from URL params
|
68
|
+
*/
|
69
|
+
objectId: string;
|
62
70
|
/**
|
63
71
|
* string: The word(s) to display in the reports submit button
|
64
72
|
*/
|
@@ -125,9 +133,21 @@ export declare class CrowdsourceReporter {
|
|
125
133
|
*/
|
126
134
|
_hasValidLayers: boolean;
|
127
135
|
/**
|
128
|
-
|
129
|
-
|
136
|
+
* string: The selected feature layer's name from the layer's list
|
137
|
+
*/
|
130
138
|
_selectedLayerName: string;
|
139
|
+
/**
|
140
|
+
* boolean: When true show the success message in the panel
|
141
|
+
*/
|
142
|
+
_reportSubmitted: boolean;
|
143
|
+
/**
|
144
|
+
* boolean: When true show the submit and cancel button
|
145
|
+
*/
|
146
|
+
_showSubmitCancelButton: boolean;
|
147
|
+
/**
|
148
|
+
* string: Error message when feature creation fails
|
149
|
+
*/
|
150
|
+
_featureCreationFailedErrorMsg: string;
|
131
151
|
/**
|
132
152
|
* IMapChange: The current map change details
|
133
153
|
*/
|
@@ -140,6 +160,10 @@ export declare class CrowdsourceReporter {
|
|
140
160
|
* number: zoom level the map should go to
|
141
161
|
*/
|
142
162
|
protected _defaultLevel: number;
|
163
|
+
/**
|
164
|
+
* __esri.FeatureLayer[]: Valid layers from the current map
|
165
|
+
*/
|
166
|
+
protected _validLayers: __esri.FeatureLayer[];
|
143
167
|
/**
|
144
168
|
* string: The selected feature layer's id from the layer's list
|
145
169
|
*/
|
@@ -156,6 +180,22 @@ export declare class CrowdsourceReporter {
|
|
156
180
|
* IHandle: The map click handle
|
157
181
|
*/
|
158
182
|
protected _mapClickHandle: IHandle;
|
183
|
+
/**
|
184
|
+
* HTMLCreateFeatureElement: Create Feature component instance
|
185
|
+
*/
|
186
|
+
protected _createFeature: HTMLCreateFeatureElement;
|
187
|
+
/**
|
188
|
+
* HTMLLayerListElement: Create Layer list component instance
|
189
|
+
*/
|
190
|
+
protected _layerList: HTMLLayerListElement;
|
191
|
+
/**
|
192
|
+
* HTMLInstantAppsSocialShareElement: Share element
|
193
|
+
*/
|
194
|
+
protected _shareNode: HTMLInstantAppsSocialShareElement;
|
195
|
+
/**
|
196
|
+
* ObjectId of the feature currently shown in the details
|
197
|
+
*/
|
198
|
+
protected _currentFeatureId: string;
|
159
199
|
/**
|
160
200
|
* Called each time the mapView prop is changed.
|
161
201
|
*/
|
@@ -186,6 +226,12 @@ export declare class CrowdsourceReporter {
|
|
186
226
|
* @protected
|
187
227
|
*/
|
188
228
|
protected _initModules(): Promise<void>;
|
229
|
+
/**
|
230
|
+
* Set the selected layer id and layer name
|
231
|
+
* @param layerId string layerId of the selected layer
|
232
|
+
* @param layerName string layerName of the selected layer
|
233
|
+
*/
|
234
|
+
protected setSelectedLayer(layerId: string, layerName: string): void;
|
189
235
|
/**
|
190
236
|
* Get the reporter app functionality
|
191
237
|
* @protected
|
@@ -197,22 +243,76 @@ export declare class CrowdsourceReporter {
|
|
197
243
|
* @protected
|
198
244
|
*/
|
199
245
|
protected getLayerListFlowItem(): Node;
|
246
|
+
/**
|
247
|
+
* Get the layer list for creating a report
|
248
|
+
* @returns Choose category flow item
|
249
|
+
* @protected
|
250
|
+
*/
|
251
|
+
protected getChooseCategoryFlowItem(): Node;
|
252
|
+
/**
|
253
|
+
* Get Feature create form of the selected feature layer
|
254
|
+
* @returns feature create form
|
255
|
+
* @protected
|
256
|
+
*/
|
257
|
+
protected getFeatureCreateFlowItem(): Node;
|
258
|
+
/**
|
259
|
+
* When drawing of incident location completed on map show the submit and cancel button
|
260
|
+
* @protected
|
261
|
+
*/
|
262
|
+
protected showSubmitCancelButton(): void;
|
263
|
+
/**
|
264
|
+
* On back from create feature, call submit editor to destroy the Editor widget instance
|
265
|
+
* @protected
|
266
|
+
*/
|
267
|
+
protected onSubmitButtonClick(): void;
|
268
|
+
/**
|
269
|
+
* On back from create feature, call close editor to destroy the Editor widget instance
|
270
|
+
* @protected
|
271
|
+
*/
|
272
|
+
protected backFromCreateFeaturePanel(): void;
|
273
|
+
/**
|
274
|
+
* On creating the feature is failed, show the error message
|
275
|
+
* @param evt Event which has feature failed message
|
276
|
+
* @protected
|
277
|
+
*/
|
278
|
+
protected createFeatureFailed(evt: CustomEvent): void;
|
279
|
+
/**
|
280
|
+
* On submit report navigate to the layer list home page and refresh the layer list
|
281
|
+
* @protected
|
282
|
+
*/
|
283
|
+
protected navigateHomePage(): void;
|
284
|
+
/**
|
285
|
+
* Update the selected layer id and name
|
286
|
+
* @param evt Event which has details of selected layerId and layerName
|
287
|
+
* @protected
|
288
|
+
*/
|
289
|
+
protected highlightSelectedLayer(evt: CustomEvent): void;
|
290
|
+
/**
|
291
|
+
* On next button click open the feature create flow item
|
292
|
+
* @protected
|
293
|
+
*/
|
294
|
+
protected navigateToCreateFeature(): Promise<void>;
|
295
|
+
/**
|
296
|
+
* On report an incident button click open the create a report panel with the layer list
|
297
|
+
* @protected
|
298
|
+
*/
|
299
|
+
protected navigateToChooseCategory(): void;
|
200
300
|
/**
|
201
301
|
* When layer list is loaded, we will receive the list of layers, if its means we don't have any valid layer to be listed
|
202
302
|
* @param evt Event which has list of layers
|
203
303
|
* @protected
|
204
304
|
*/
|
205
|
-
protected layerListLoaded(evt: CustomEvent): void
|
305
|
+
protected layerListLoaded(evt: CustomEvent): Promise<void>;
|
206
306
|
/**On click of layer list item show feature list
|
207
307
|
* @param evt Event which has details of selected layerId and layerName
|
208
308
|
* @protected
|
209
309
|
*/
|
210
310
|
protected displayFeaturesList(evt: CustomEvent): void;
|
211
311
|
/**
|
212
|
-
* On back from
|
312
|
+
* On back from selected panel navigate to the previous panel
|
213
313
|
* @protected
|
214
314
|
*/
|
215
|
-
protected
|
315
|
+
protected backFromSelectedPanel(): void;
|
216
316
|
/**
|
217
317
|
* Toggle side panel in case of mobile mode
|
218
318
|
* @protected
|
@@ -236,13 +336,24 @@ export declare class CrowdsourceReporter {
|
|
236
336
|
* @returns Node
|
237
337
|
*/
|
238
338
|
protected getFeatureDetailsFlowItem(): Node;
|
339
|
+
/**
|
340
|
+
* Sets the selected features and updates the first feature as the current selected feature
|
341
|
+
* @param features Graphics array of the features selected
|
342
|
+
*/
|
343
|
+
protected setSelectedFeatures(features: __esri.Graphic[]): void;
|
344
|
+
/**
|
345
|
+
* Set the object id of the current selected feature, and also updates the current selected layer details
|
346
|
+
* @param selectedFeature Graphic currently shown in feature details
|
347
|
+
*/
|
348
|
+
protected setCurrentFeature(selectedFeature?: __esri.Graphic): void;
|
239
349
|
/**
|
240
350
|
* On Feature details change update the Layer title and the current selected layer id
|
241
351
|
* @param evt Event hold the details of current feature graphic in the info-card
|
242
352
|
*/
|
243
|
-
protected featureDetailsChanged(evt:
|
353
|
+
protected featureDetailsChanged(evt: CustomEvent): void;
|
244
354
|
/**
|
245
355
|
* Returns the action button to Expand/Collapse side panel in mobile mode
|
356
|
+
* @protected
|
246
357
|
*/
|
247
358
|
protected getActionToExpandCollapsePanel(): Node;
|
248
359
|
/**
|
@@ -254,21 +365,30 @@ export declare class CrowdsourceReporter {
|
|
254
365
|
* Handle map click event
|
255
366
|
* @param layers Array of layerIds
|
256
367
|
*
|
257
|
-
*
|
368
|
+
* @protected
|
258
369
|
*/
|
259
|
-
protected handleMapClick(
|
370
|
+
protected handleMapClick(): void;
|
260
371
|
/**
|
261
372
|
* On map click do hitTest and get the clicked graphics of valid layers and show feature details
|
262
|
-
* @param event
|
263
|
-
* @param layers
|
373
|
+
* @param event IMapClick map click event details
|
264
374
|
*
|
265
375
|
* @protected
|
266
376
|
*/
|
267
|
-
protected onMapClick(event:
|
377
|
+
protected onMapClick(event: IMapClick): Promise<void>;
|
268
378
|
/**
|
269
379
|
* Fetches the component's translations
|
270
380
|
* @returns Promise when complete
|
271
381
|
* @protected
|
272
382
|
*/
|
273
383
|
protected _getTranslations(): Promise<void>;
|
384
|
+
/**
|
385
|
+
* Updates the share url for current selected feature
|
386
|
+
* @returns
|
387
|
+
* @protected
|
388
|
+
*/
|
389
|
+
protected _updateShareURL(): string;
|
390
|
+
/**
|
391
|
+
* Navigates to selected features detail based on the URL params
|
392
|
+
*/
|
393
|
+
protected loadFeatureFromURLParams(): Promise<void>;
|
274
394
|
}
|
@@ -23,6 +23,7 @@ interface ILayerDetailsHash {
|
|
23
23
|
name: string;
|
24
24
|
formattedFeatureCount: string;
|
25
25
|
supportsUpdate: boolean;
|
26
|
+
supportsAdd: boolean;
|
26
27
|
}
|
27
28
|
export declare class LayerList {
|
28
29
|
el: HTMLLayerListElement;
|
@@ -66,6 +67,11 @@ export declare class LayerList {
|
|
66
67
|
* ILayerItemHash: id/name lookup
|
67
68
|
*/
|
68
69
|
protected _layerItemsHash: ILayerItemsHash;
|
70
|
+
/**
|
71
|
+
* Refresh the layer list which will fetch the latest layer count and update the list
|
72
|
+
* @returns Promise that resolves when the operation is complete
|
73
|
+
*/
|
74
|
+
refresh(): Promise<void>;
|
69
75
|
/**
|
70
76
|
* Emitted on demand when feature layer clicked with details layerId and layerName
|
71
77
|
*/
|
@@ -86,6 +86,26 @@ export namespace Components {
|
|
86
86
|
*/
|
87
87
|
"zoomAndScrollToSelected": boolean;
|
88
88
|
}
|
89
|
+
interface CreateFeature {
|
90
|
+
/**
|
91
|
+
* Destroy the Editor widget instance
|
92
|
+
* @returns Promise that resolves when the operation is complete
|
93
|
+
*/
|
94
|
+
"close": () => Promise<void>;
|
95
|
+
/**
|
96
|
+
* esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
|
97
|
+
*/
|
98
|
+
"mapView": __esri.MapView;
|
99
|
+
/**
|
100
|
+
* string: Layer id of the feature layer in which the new feature is to be created
|
101
|
+
*/
|
102
|
+
"selectedLayerId": string;
|
103
|
+
/**
|
104
|
+
* Submit the created feature
|
105
|
+
* @returns Promise that resolves when the operation is complete
|
106
|
+
*/
|
107
|
+
"submit": () => Promise<void>;
|
108
|
+
}
|
89
109
|
interface CrowdsourceManager {
|
90
110
|
/**
|
91
111
|
* IBasemapConfig: List of any basemaps to filter out from the basemap widget
|
@@ -245,6 +265,10 @@ export namespace Components {
|
|
245
265
|
* boolean: When true the application will be in mobile mode, controls the mobile or desktop view
|
246
266
|
*/
|
247
267
|
"isMobile": boolean;
|
268
|
+
/**
|
269
|
+
* string: Layer id of the feature from URL params
|
270
|
+
*/
|
271
|
+
"layerId": string;
|
248
272
|
/**
|
249
273
|
* string[]: list of layer ids
|
250
274
|
*/
|
@@ -261,6 +285,10 @@ export namespace Components {
|
|
261
285
|
* esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
|
262
286
|
*/
|
263
287
|
"mapView": __esri.MapView;
|
288
|
+
/**
|
289
|
+
* string: Object id of the feature from URL params
|
290
|
+
*/
|
291
|
+
"objectId": string;
|
264
292
|
/**
|
265
293
|
* string: The word(s) to display in the reports submit button
|
266
294
|
*/
|
@@ -452,6 +480,11 @@ export namespace Components {
|
|
452
480
|
* string: Error message to be displayed when no layers found
|
453
481
|
*/
|
454
482
|
"noLayerErrorMsg"?: string;
|
483
|
+
/**
|
484
|
+
* Refresh the layer list which will fetch the latest layer count and update the list
|
485
|
+
* @returns Promise that resolves when the operation is complete
|
486
|
+
*/
|
487
|
+
"refresh": () => Promise<void>;
|
455
488
|
/**
|
456
489
|
* boolean: if true display's feature count for each layer
|
457
490
|
*/
|
@@ -1268,6 +1301,10 @@ export interface BufferToolsCustomEvent<T> extends CustomEvent<T> {
|
|
1268
1301
|
detail: T;
|
1269
1302
|
target: HTMLBufferToolsElement;
|
1270
1303
|
}
|
1304
|
+
export interface CreateFeatureCustomEvent<T> extends CustomEvent<T> {
|
1305
|
+
detail: T;
|
1306
|
+
target: HTMLCreateFeatureElement;
|
1307
|
+
}
|
1271
1308
|
export interface CrowdsourceReporterCustomEvent<T> extends CustomEvent<T> {
|
1272
1309
|
detail: T;
|
1273
1310
|
target: HTMLCrowdsourceReporterElement;
|
@@ -1402,6 +1439,25 @@ declare global {
|
|
1402
1439
|
prototype: HTMLCardManagerElement;
|
1403
1440
|
new (): HTMLCardManagerElement;
|
1404
1441
|
};
|
1442
|
+
interface HTMLCreateFeatureElementEventMap {
|
1443
|
+
"success": void;
|
1444
|
+
"fail": Error;
|
1445
|
+
"drawComplete": void;
|
1446
|
+
}
|
1447
|
+
interface HTMLCreateFeatureElement extends Components.CreateFeature, HTMLStencilElement {
|
1448
|
+
addEventListener<K extends keyof HTMLCreateFeatureElementEventMap>(type: K, listener: (this: HTMLCreateFeatureElement, ev: CreateFeatureCustomEvent<HTMLCreateFeatureElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
1449
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
1450
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
1451
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
1452
|
+
removeEventListener<K extends keyof HTMLCreateFeatureElementEventMap>(type: K, listener: (this: HTMLCreateFeatureElement, ev: CreateFeatureCustomEvent<HTMLCreateFeatureElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
1453
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
1454
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
1455
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
1456
|
+
}
|
1457
|
+
var HTMLCreateFeatureElement: {
|
1458
|
+
prototype: HTMLCreateFeatureElement;
|
1459
|
+
new (): HTMLCreateFeatureElement;
|
1460
|
+
};
|
1405
1461
|
interface HTMLCrowdsourceManagerElement extends Components.CrowdsourceManager, HTMLStencilElement {
|
1406
1462
|
}
|
1407
1463
|
var HTMLCrowdsourceManagerElement: {
|
@@ -1953,6 +2009,7 @@ declare global {
|
|
1953
2009
|
"basemap-gallery": HTMLBasemapGalleryElement;
|
1954
2010
|
"buffer-tools": HTMLBufferToolsElement;
|
1955
2011
|
"card-manager": HTMLCardManagerElement;
|
2012
|
+
"create-feature": HTMLCreateFeatureElement;
|
1956
2013
|
"crowdsource-manager": HTMLCrowdsourceManagerElement;
|
1957
2014
|
"crowdsource-reporter": HTMLCrowdsourceReporterElement;
|
1958
2015
|
"deduct-calculator": HTMLDeductCalculatorElement;
|
@@ -2082,6 +2139,28 @@ declare namespace LocalJSX {
|
|
2082
2139
|
*/
|
2083
2140
|
"zoomAndScrollToSelected"?: boolean;
|
2084
2141
|
}
|
2142
|
+
interface CreateFeature {
|
2143
|
+
/**
|
2144
|
+
* esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
|
2145
|
+
*/
|
2146
|
+
"mapView"?: __esri.MapView;
|
2147
|
+
/**
|
2148
|
+
* Emitted on demand when drawing is completed
|
2149
|
+
*/
|
2150
|
+
"onDrawComplete"?: (event: CreateFeatureCustomEvent<void>) => void;
|
2151
|
+
/**
|
2152
|
+
* Emitted on demand when the feature creation is failed
|
2153
|
+
*/
|
2154
|
+
"onFail"?: (event: CreateFeatureCustomEvent<Error>) => void;
|
2155
|
+
/**
|
2156
|
+
* Emitted on demand when the feature is created successfully
|
2157
|
+
*/
|
2158
|
+
"onSuccess"?: (event: CreateFeatureCustomEvent<void>) => void;
|
2159
|
+
/**
|
2160
|
+
* string: Layer id of the feature layer in which the new feature is to be created
|
2161
|
+
*/
|
2162
|
+
"selectedLayerId"?: string;
|
2163
|
+
}
|
2085
2164
|
interface CrowdsourceManager {
|
2086
2165
|
/**
|
2087
2166
|
* IBasemapConfig: List of any basemaps to filter out from the basemap widget
|
@@ -2241,6 +2320,10 @@ declare namespace LocalJSX {
|
|
2241
2320
|
* boolean: When true the application will be in mobile mode, controls the mobile or desktop view
|
2242
2321
|
*/
|
2243
2322
|
"isMobile"?: boolean;
|
2323
|
+
/**
|
2324
|
+
* string: Layer id of the feature from URL params
|
2325
|
+
*/
|
2326
|
+
"layerId"?: string;
|
2244
2327
|
/**
|
2245
2328
|
* string[]: list of layer ids
|
2246
2329
|
*/
|
@@ -2257,6 +2340,10 @@ declare namespace LocalJSX {
|
|
2257
2340
|
* esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
|
2258
2341
|
*/
|
2259
2342
|
"mapView"?: __esri.MapView;
|
2343
|
+
/**
|
2344
|
+
* string: Object id of the feature from URL params
|
2345
|
+
*/
|
2346
|
+
"objectId"?: string;
|
2260
2347
|
/**
|
2261
2348
|
* Emitted when toggle panel button is clicked in reporter
|
2262
2349
|
*/
|
@@ -3302,6 +3389,7 @@ declare namespace LocalJSX {
|
|
3302
3389
|
"basemap-gallery": BasemapGallery;
|
3303
3390
|
"buffer-tools": BufferTools;
|
3304
3391
|
"card-manager": CardManager;
|
3392
|
+
"create-feature": CreateFeature;
|
3305
3393
|
"crowdsource-manager": CrowdsourceManager;
|
3306
3394
|
"crowdsource-reporter": CrowdsourceReporter;
|
3307
3395
|
"deduct-calculator": DeductCalculator;
|
@@ -3357,6 +3445,7 @@ declare module "@stencil/core" {
|
|
3357
3445
|
"basemap-gallery": LocalJSX.BasemapGallery & JSXBase.HTMLAttributes<HTMLBasemapGalleryElement>;
|
3358
3446
|
"buffer-tools": LocalJSX.BufferTools & JSXBase.HTMLAttributes<HTMLBufferToolsElement>;
|
3359
3447
|
"card-manager": LocalJSX.CardManager & JSXBase.HTMLAttributes<HTMLCardManagerElement>;
|
3448
|
+
"create-feature": LocalJSX.CreateFeature & JSXBase.HTMLAttributes<HTMLCreateFeatureElement>;
|
3360
3449
|
"crowdsource-manager": LocalJSX.CrowdsourceManager & JSXBase.HTMLAttributes<HTMLCrowdsourceManagerElement>;
|
3361
3450
|
"crowdsource-reporter": LocalJSX.CrowdsourceReporter & JSXBase.HTMLAttributes<HTMLCrowdsourceReporterElement>;
|
3362
3451
|
"deduct-calculator": LocalJSX.DeductCalculator & JSXBase.HTMLAttributes<HTMLDeductCalculatorElement>;
|
package/dist/types/preact.d.ts
CHANGED
@@ -502,6 +502,12 @@ declare module "preact/src/jsx" {
|
|
502
502
|
|
503
503
|
"card-manager": JSX.SolutionsCardManager & JSXInternal.HTMLAttributes<HTMLSolutionsCardManagerElement>
|
504
504
|
|
505
|
+
"create-feature": Omit<JSX.SolutionsCreateFeature, "onSuccess" | "onFail" | "onDrawComplete"> & JSXInternal.HTMLAttributes<HTMLSolutionsCreateFeatureElement> & {
|
506
|
+
"onsuccess"?: (event: CustomEvent<any>) => void;
|
507
|
+
"onfail"?: (event: CustomEvent<any>) => void;
|
508
|
+
"ondrawComplete"?: (event: CustomEvent<any>) => void;
|
509
|
+
}
|
510
|
+
|
505
511
|
"crowdsource-manager": JSX.SolutionsCrowdsourceManager & JSXInternal.HTMLAttributes<HTMLSolutionsCrowdsourceManagerElement>
|
506
512
|
|
507
513
|
"crowdsource-reporter": Omit<JSX.SolutionsCrowdsourceReporter, "onTogglePanel"> & JSXInternal.HTMLAttributes<HTMLSolutionsCrowdsourceReporterElement> & {
|
package/package.json
CHANGED
@@ -1,6 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Copyright 2022 Esri
|
3
|
-
* Licensed under the Apache License, Version 2.0
|
4
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
5
|
-
*/
|
6
|
-
import{r as t,c as i,h as s,H as e,g as h}from"./p-78780f63.js";import{l as a,g as o}from"./p-e902ba19.js";import{a as l}from"./p-2c382841.js";import"./p-d918ec36.js";import"./p-e1a4994d.js";import"./p-c1cf3ebc.js";const c=class{constructor(s){t(this,s),this.togglePanel=i(this,"togglePanel",7),this.description=void 0,this.isMobile=void 0,this.enableAnonymousAccess=void 0,this.enableAnonymousComments=void 0,this.enableComments=void 0,this.enableLogin=void 0,this.enableNewReports=void 0,this.layers=void 0,this.loginTitle=void 0,this.mapView=void 0,this.reportButtonText=void 0,this.reportsHeader=void 0,this.reportSubmittedMessage=void 0,this.searchConfiguration=void 0,this.showComments=void 0,this.defaultWebmap="",this.enableSearch=!0,this.enableHome=!0,this.mapInfos=[],this.theme="light",this.enableZoom=!0,this._mapInfo=void 0,this._flowItems=["layer-list"],this._sidePanelCollapsed=!1,this._translations=void 0,this._hasValidLayers=!1,this._selectedLayerName=void 0}async isMobileWatchHandler(){this._sidePanelCollapsed=!1}async mapViewWatchHandler(){await this.mapView.when((async()=>{await this.setMapView()}))}async componentWillLoad(){await this._initModules(),await this._getTranslations()}render(){return s(e,null,s("div",null,s("calcite-shell",{"content-behind":!0},this._getReporter())))}async _initModules(){const[t]=await a(["esri/core/reactiveUtils"]);this.reactiveUtils=t}_getReporter(){const t=[];return this._flowItems.forEach((i=>{switch(i){case"layer-list":t.push(this.getLayerListFlowItem());break;case"feature-list":t.push(this.getFeatureListFlowItem(this._selectedLayerId,this._selectedLayerName));break;case"feature-details":t.push(this.getFeatureDetailsFlowItem())}})),s("calcite-panel",{class:"width-full "+("dark"===this.theme?"calcite-mode-dark":"calcite-mode-light")},this.mapView?s("calcite-flow",null,(null==t?void 0:t.length)>0&&t):s("calcite-loader",{scale:"m"}))}getLayerListFlowItem(){return s("calcite-flow-item",{collapsed:this.isMobile&&this._sidePanelCollapsed,heading:this.reportsHeader},this._hasValidLayers&&s("calcite-action",{icon:"sort-ascending-arrow",slot:this.isMobile?"header-menu-actions":"header-actions-end",text:this._translations.sort,"text-enabled":this.isMobile}),this._hasValidLayers&&s("calcite-action",{icon:"filter",slot:this.isMobile?"header-menu-actions":"header-actions-end",text:this._translations.filter,"text-enabled":this.isMobile}),this.isMobile&&this.getActionToExpandCollapsePanel(),this._hasValidLayers&&this.enableNewReports&&s("calcite-button",{appearance:"secondary",slot:"footer",width:"full"},this.reportButtonText),s("calcite-panel",{"full-height":!0,"full-width":!0},s("layer-list",{class:"height-full",layers:this.layers,mapView:this.mapView,noLayerErrorMsg:this._translations.noLayerToDisplayErrorMsg,onLayerSelect:this.displayFeaturesList.bind(this),onLayersListLoaded:this.layerListLoaded.bind(this),showFeatureCount:!0,showNextIcon:!0})))}layerListLoaded(t){const i=t.detail;this.handleMapClick(i),this._hasValidLayers=i.length>0}displayFeaturesList(t){this._selectedLayerId=t.detail.layerId,this._selectedLayerName=t.detail.layerName,this._flowItems=[...this._flowItems,"feature-list"]}backFromFeatureList(){const t=[...this._flowItems];t.pop(),this._flowItems=[...t]}toggleSidePanel(){this._sidePanelCollapsed=!this._sidePanelCollapsed,this.togglePanel.emit(this._sidePanelCollapsed)}async onFeatureSelectFromList(t){this._selectedFeature=[t.detail],this._flowItems=[...this._flowItems,"feature-details"]}getFeatureListFlowItem(t,i){return s("calcite-flow-item",{collapsed:this.isMobile&&this._sidePanelCollapsed,heading:i,onCalciteFlowItemBack:this.backFromFeatureList.bind(this)},s("calcite-action",{icon:"sort-ascending-arrow",slot:this.isMobile?"header-menu-actions":"header-actions-end",text:this._translations.sort,"text-enabled":this.isMobile}),s("calcite-action",{icon:"filter",slot:this.isMobile?"header-menu-actions":"header-actions-end",text:this._translations.filter,"text-enabled":this.isMobile}),this.isMobile&&this.getActionToExpandCollapsePanel(),this.enableNewReports&&s("calcite-button",{appearance:"secondary",slot:"footer",width:"full"},this.reportButtonText),s("calcite-panel",{"full-height":!0},s("feature-list",{class:"height-full",highlightOnMap:!0,mapView:this.mapView,noFeaturesFoundMsg:this._translations.featureErrorMsg,onFeatureSelect:this.onFeatureSelectFromList.bind(this),pageSize:30,selectedLayerId:t})))}getFeatureDetailsFlowItem(){return s("calcite-flow-item",{collapsed:this.isMobile&&this._sidePanelCollapsed,heading:this._selectedLayerName,onCalciteFlowItemBack:this.backFromFeatureList.bind(this)},this.isMobile&&this.getActionToExpandCollapsePanel(),s("calcite-action",{icon:"share",slot:"header-actions-end",text:this._translations.share}),s("calcite-panel",{"full-height":!0},s("info-card",{allowEditing:!1,graphics:this._selectedFeature,isLoading:!1,isMobile:!1,mapView:this.mapView,onSelectionChanged:this.featureDetailsChanged.bind(this),zoomAndScrollToSelected:!0})))}featureDetailsChanged(t){this._selectedLayerId=t.detail[0].layer.id,this._selectedLayerName=t.detail[0].layer.title}getActionToExpandCollapsePanel(){return s("calcite-action",{icon:this._sidePanelCollapsed?"chevrons-up":"chevrons-down",onClick:this.toggleSidePanel.bind(this),slot:"header-actions-end",text:this._sidePanelCollapsed?this._translations.expand:this._translations.collapse})}async setMapView(){this.mapView.popupEnabled=!1,this._defaultCenter&&this._defaultLevel&&(await this.mapView.goTo({center:this._defaultCenter,zoom:this._defaultLevel}),this._defaultCenter=void 0,this._defaultLevel=void 0)}handleMapClick(t){this._mapClickHandle&&this._mapClickHandle.remove(),this._mapClickHandle=this.reactiveUtils.on((()=>this.mapView),"click",(i=>{this.onMapClick(i,t)}))}async onMapClick(t,i){this.mapView.popupEnabled=!1;const s=await l(this.mapView),e=[];s.forEach((t=>{i.includes(t.id)&&e.push(t)}));const h={include:e},a=await this.mapView.hitTest(t,h);if(a.results.length>0){const t=[];a.results.forEach((function(i){"graphic"===i.type&&t.push(i.graphic)})),this._selectedFeature=t,this._flowItems=this._flowItems.length&&"feature-details"!==this._flowItems[this._flowItems.length-1]?[...this._flowItems,"feature-details"]:[...this._flowItems]}}async _getTranslations(){const t=await o(this.el);this._translations=t[0]}get el(){return h(this)}static get watchers(){return{isMobile:["isMobileWatchHandler"],mapView:["mapViewWatchHandler"]}}};c.style=":host{display:block;--calcite-label-margin-bottom:0px;--solutions-theme-foreground-color:var(--calcite-color-foreground-1)}.width-full{width:100% !important}.width-0{width:0}.height-full{height:100% !important}.height-0{height:0}.overflow-hidden{overflow:hidden}.border{border:1px solid var(--calcite-color-border-3)}.error-msg{padding:10px}";export{c as crowdsource_reporter}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Copyright 2022 Esri
|
3
|
-
* Licensed under the Apache License, Version 2.0
|
4
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
5
|
-
*/
|
6
|
-
import{r as t,h as i,g as s,c as e,H as a,F as o}from"./p-78780f63.js";import{c as n}from"./p-5b566d55.js";import{c as l,s as c,a as r}from"./p-f10944e6.js";import{a as h}from"./p-83fd31d5.js";import{c as d,u as p,d as m}from"./p-0c97de08.js";import{c as u,d as f}from"./p-de281b08.js";import{c as g,s as v,d as b,u as y}from"./p-981e9549.js";import{S as w}from"./p-35c58364.js";import{P as x}from"./p-515a319e.js";import{g as k,c as L,h as C,d as j,a as I}from"./p-2c382841.js";import{g as z,f as D}from"./p-e902ba19.js";import"./p-fcefdfff.js";import"./p-29d68474.js";import"./p-c92fff33.js";import"./p-1e2ffee3.js";import"./p-c1cf3ebc.js";import"./p-d918ec36.js";import"./p-e1a4994d.js";
|
7
|
-
/*!
|
8
|
-
* All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
9
|
-
* See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details.
|
10
|
-
* v2.0.0
|
11
|
-
*/const F=class{constructor(i){t(this,i),this.itemMutationObserver=n("mutation",(()=>this.updateFlowProps())),this.getFlowDirection=(t,i)=>t&&i>1||t>1?i<t?"retreating":"advancing":null,this.updateFlowProps=()=>{const{customItemSelectors:t,el:i,items:s}=this,e=Array.from(i.querySelectorAll("calcite-flow-item"+(t?`,${t}`:""))).filter((t=>t.closest("calcite-flow")===i)),a=s.length,o=e.length,n=e[o-1],l=e[o-2];if(o&&n&&e.forEach((t=>{t.showBackButton=t===n&&o>1,t.hidden=t!==n})),l&&(l.menuOpen=!1),this.items=e,a!==o){const t=this.getFlowDirection(a,o);this.itemCount=o,this.flowDirection=t}},this.customItemSelectors=void 0,this.flowDirection=null,this.itemCount=0,this.items=[]}async back(){const{items:t}=this,i=t[t.length-1];if(!i)return;const s=i.beforeBack?i.beforeBack:()=>Promise.resolve();try{await s.call(i)}catch(t){return}return i.remove(),i}async setFocus(){await l(this);const{items:t}=this,i=t[t.length-1];return null==i?void 0:i.setFocus()}connectedCallback(){var t;null===(t=this.itemMutationObserver)||void 0===t||t.observe(this.el,{childList:!0,subtree:!0}),this.updateFlowProps()}async componentWillLoad(){c(this)}componentDidLoad(){r(this)}disconnectedCallback(){var t;null===(t=this.itemMutationObserver)||void 0===t||t.disconnect()}async handleItemBackClick(t){if(!t.defaultPrevented)return await this.back(),this.setFocus()}render(){const{flowDirection:t}=this;return i("div",{class:{frame:!0,"frame--advancing":"advancing"===t,"frame--retreating":"retreating"===t}},i("slot",null))}get el(){return s(this)}};F.style=":host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host{position:relative;display:flex;inline-size:100%;flex:1 1 auto;align-items:stretch;overflow:hidden;background-color:transparent}:host .frame{position:relative;margin:0px;display:flex;inline-size:100%;flex:1 1 auto;flex-direction:column;align-items:stretch;padding:0px}:host ::slotted(calcite-flow-item),:host ::slotted(calcite-panel){block-size:100%}:host ::slotted(.calcite-match-height:last-child){display:flex;flex:1 1 auto;overflow:hidden}:host .frame--advancing{animation:calcite-frame-advance var(--calcite-animation-timing)}:host .frame--retreating{animation:calcite-frame-retreat var(--calcite-animation-timing)}@keyframes calcite-frame-advance{0%{--tw-bg-opacity:0.5;transform:translate3d(50px, 0, 0)}100%{--tw-bg-opacity:1;transform:translate3d(0, 0, 0)}}@keyframes calcite-frame-retreat{0%{--tw-bg-opacity:0.5;transform:translate3d(-50px, 0, 0)}100%{--tw-bg-opacity:1;transform:translate3d(0, 0, 0)}}:host([hidden]){display:none}[hidden]{display:none}";
|
12
|
-
/*!
|
13
|
-
* All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
14
|
-
* See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details.
|
15
|
-
* v2.0.0
|
16
|
-
*/
|
17
|
-
const S=class{constructor(i){t(this,i),this.calciteFlowItemBack=e(this,"calciteFlowItemBack",7),this.calciteFlowItemScroll=e(this,"calciteFlowItemScroll",6),this.calciteFlowItemClose=e(this,"calciteFlowItemClose",6),this.calciteFlowItemToggle=e(this,"calciteFlowItemToggle",6),this.handlePanelScroll=t=>{t.stopPropagation(),this.calciteFlowItemScroll.emit()},this.handlePanelClose=t=>{t.stopPropagation(),this.calciteFlowItemClose.emit()},this.handlePanelToggle=t=>{t.stopPropagation(),this.collapsed=t.target.collapsed,this.calciteFlowItemToggle.emit()},this.backButtonClick=()=>{this.calciteFlowItemBack.emit()},this.setBackRef=t=>{this.backButtonEl=t},this.setContainerRef=t=>{this.containerEl=t},this.closable=!1,this.closed=!1,this.collapsed=!1,this.collapseDirection="down",this.collapsible=!1,this.beforeBack=void 0,this.description=void 0,this.disabled=!1,this.heading=void 0,this.headingLevel=void 0,this.loading=!1,this.menuOpen=!1,this.messageOverrides=void 0,this.messages=void 0,this.showBackButton=!1,this.defaultMessages=void 0,this.effectiveLocale=""}onMessagesChange(){}connectedCallback(){d(this),u(this),g(this)}async componentWillLoad(){await v(this),c(this)}componentDidRender(){p(this)}disconnectedCallback(){m(this),f(this),b(this)}componentDidLoad(){r(this)}effectiveLocaleChange(){y(this,this.effectiveLocale)}async setFocus(){await l(this);const{backButtonEl:t,containerEl:i}=this;return t?t.setFocus():i?i.setFocus():void 0}async scrollContentTo(t){var i;await(null===(i=this.containerEl)||void 0===i?void 0:i.scrollContentTo(t))}renderBackButton(){const{el:t}=this,s="rtl"===h(t),{showBackButton:e,backButtonClick:a,messages:o}=this,n=o.back;return e?i("calcite-action",{"aria-label":n,class:"back-button",icon:s?"chevron-right":"chevron-left",key:"flow-back-button",onClick:a,scale:"s",slot:"header-actions-start",text:n,title:n,ref:this.setBackRef}):null}render(){const{collapsed:t,collapseDirection:s,collapsible:e,closable:o,closed:n,description:l,disabled:c,heading:r,headingLevel:h,loading:d,menuOpen:p,messages:m}=this;return i(a,null,i("calcite-panel",{closable:o,closed:n,collapseDirection:s,collapsed:t,collapsible:e,description:l,disabled:c,heading:r,headingLevel:h,loading:d,menuOpen:p,messageOverrides:m,onCalcitePanelClose:this.handlePanelClose,onCalcitePanelScroll:this.handlePanelScroll,onCalcitePanelToggle:this.handlePanelToggle,ref:this.setContainerRef},this.renderBackButton(),i("slot",{name:"action-bar",slot:w.actionBar}),i("slot",{name:"header-actions-start",slot:w.headerActionsStart}),i("slot",{name:"header-actions-end",slot:w.headerActionsEnd}),i("slot",{name:"header-content",slot:w.headerContent}),i("slot",{name:"header-menu-actions",slot:w.headerMenuActions}),i("slot",{name:"fab",slot:w.fab}),i("slot",{name:"footer-actions",slot:w.footerActions}),i("slot",{name:"footer",slot:w.footer}),i("slot",null)))}static get assetsDirs(){return["assets"]}get el(){return s(this)}static get watchers(){return{messageOverrides:["onMessagesChange"],effectiveLocale:["effectiveLocaleChange"]}}};S.style=":host{box-sizing:border-box;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--1)}:host *{box-sizing:border-box}:host([disabled]){cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--calcite-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{position:relative;display:flex;inline-size:100%;flex:1 1 auto}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.back-button{border-width:0px;border-style:solid;border-color:var(--calcite-color-border-3);border-inline-end-width:1px}calcite-panel{--calcite-panel-footer-padding:var(--calcite-flow-item-footer-padding);--calcite-panel-header-border-block-end:var(--calcite-flow-item-header-border-block-end)}:host([hidden]){display:none}[hidden]{display:none}";const P=class{constructor(i){t(this,i),this.featureSelect=e(this,"featureSelect",7),this.selectedLayerId=void 0,this.mapView=void 0,this.noFeaturesFoundMsg=void 0,this.pageSize=100,this.highlightOnMap=!1,this._featureItems=[],this._featuresCount=0,this._isLoading=!1,this._translations=void 0}async selectedLayerWatchHandler(){this._selectedLayer=await k(this.mapView,this.selectedLayerId),await this.initializeFeatureItems()}async componentWillLoad(){await this._getTranslations(),this._isLoading=!0,this._popupUtils=new x,this.mapView&&this.selectedLayerId&&(this._selectedLayer=await k(this.mapView,this.selectedLayerId))}async componentDidLoad(){await this.initializeFeatureItems()}render(){return i("calcite-panel",{"full-height":!0,"full-width":!0},this._isLoading&&i("calcite-loader",{scale:"m"}),0===this._featureItems.length&&!this._isLoading&&i("calcite-notice",{class:"error-msg",icon:"feature-details",kind:"info",open:!0},i("div",{slot:"message"},this.noFeaturesFoundMsg?this.noFeaturesFoundMsg:this._translations.featureErrorMsg)),i("calcite-list",{"selection-appearance":"border","selection-mode":"single"},!this._isLoading&&this._featureItems.length>0&&this._featureItems),this._featuresCount>this.pageSize&&i("div",{class:"width-full",slot:"footer"},i("calcite-pagination",{class:"pagination","full-width":!0,onCalcitePaginationChange:this.pageChanged.bind(this),"page-size":this.pageSize,"start-item":"1","total-items":this._featuresCount})))}async initializeFeatureItems(){this._selectedLayer&&(this._isLoading=!0,this._featureItems=await this.queryPage(0),this._featuresCount=await this._selectedLayer.queryFeatureCount(),this._isLoading=!1)}async pageChanged(t){this._isLoading=!0,this._highlightHandle&&(this._highlightHandle.remove(),this._highlightHandle=null);const i=t.target.startItem-1;this._featureItems=await this.queryPage(i),this._isLoading=!1}async featureClicked(t,i){if(this.highlightOnMap&&this._highlightHandle&&(this._highlightHandle.remove(),this._highlightHandle=null),t.target.selected){if(this.highlightOnMap){const i=Number(t.target.value),s=await L(this.mapView,this.selectedLayerId);this._highlightHandle=await C([i],s,this.mapView,!0)}this.featureSelect.emit(i)}}async queryPage(t){const i=this._selectedLayer,s=i.objectIdField,e={start:t,num:this.pageSize,outFields:["*"],returnGeometry:!0,where:i.definitionExpression,outSpatialReference:this.mapView.spatialReference.toJSON()};s&&(e.orderByFields=[s.toString()+" DESC"]);const a=await i.queryFeatures(e);return await this.createFeatureItem(a)}async createFeatureItem(t){const i=(null==t?void 0:t.features).map((async t=>{const i=await this._popupUtils.getPopupTitle(t,this.mapView.map);return this.getFeatureItem(t,i)}));return Promise.all(i)}getFeatureItem(t,s){const e=t.attributes[this._selectedLayer.objectIdField].toString();return i("calcite-list-item",{onCalciteListItemSelect:i=>{this.featureClicked(i,t)},value:e},i("div",{class:"popup-title",slot:"content-start"},s=null!=s?s:e),i("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"}))}async _getTranslations(){const t=await z(this.el);this._translations=t[0]}get el(){return s(this)}static get watchers(){return{selectedLayerId:["selectedLayerWatchHandler"]}}};P.style=":host{display:block}.width-full{width:100%}.pagination{display:flex;justify-content:center}.error-msg{padding:10px;width:calc(100% - 20px)}.popup-title{font-weight:500;padding:10px 12px}";const B=class{constructor(i){t(this,i),this.layerSelect=e(this,"layerSelect",7),this.layersListLoaded=e(this,"layersListLoaded",7),this.mapView=void 0,this.layers=void 0,this.noLayerErrorMsg=void 0,this.showFeatureCount=!0,this.showNextIcon=!1,this._noLayersToDisplay=!1,this._mapLayerIds=[],this._isLoading=!1,this._translations=void 0}async componentWillLoad(){await this._getTranslations(),this._isLoading=!0}async componentDidLoad(){await this.setLayers(),this._isLoading=!1}render(){return i(o,null,this._isLoading&&i("calcite-loader",{scale:"m"}),!this._isLoading&&this.mapView&&this._noLayersToDisplay&&i("calcite-notice",{class:"error-msg",icon:"layers-reference",kind:"danger",open:!0},i("div",{slot:"title"},this._translations.error),i("div",{slot:"message"},this.noLayerErrorMsg?this.noLayerErrorMsg:this._translations.noLayerToDisplayErrorMsg)),!this._isLoading&&this.mapView&&i("calcite-list",{"selection-appearance":"border","selection-mode":this.showNextIcon?"none":"single"},this.renderLayerList()))}async setLayers(){this.mapView&&await this.initLayerHash()}async initLayerHash(){const t=[];this._layerItemsHash=await j(this.mapView,!0);const i=await I(this.mapView);this.showFeatureCount&&i.forEach((async i=>{var s,e;if("feature"===(null==i?void 0:i.type)&&(null==i?void 0:i.editingEnabled)&&(null===(e=null===(s=null==i?void 0:i.capabilities)||void 0===s?void 0:s.operations)||void 0===e?void 0:e.supportsUpdate)){const s=i.createQuery(),e=i.queryFeatureCount(s);t.push(e),e.then((async t=>{const s=isNaN(t)?"":await D(t,{places:0,api:4,type:"decimal"});this._layerItemsHash[i.id].formattedFeatureCount=s}))}})),await Promise.all(t).then((()=>{const t=this.getEditableIds(this._layerItemsHash);this._mapLayerIds=t.reverse(),this.handleNoLayersToDisplay()}),(()=>{this._mapLayerIds=[],this.handleNoLayersToDisplay()}))}handleNoLayersToDisplay(){this._noLayersToDisplay=!(this._mapLayerIds.length>0),this.layersListLoaded.emit(this._mapLayerIds)}getEditableIds(t){var i;const s=(null===(i=this.layers)||void 0===i?void 0:i.length)>0?this.layers:[];return Object.keys(t).reduce(((i,e)=>{let a=t[e].supportsUpdate;return(null==s?void 0:s.length)>0&&(a=s.indexOf(e)>-1&&t[e].supportsUpdate),a&&i.push(e),i}),[])}renderLayerList(){return this._mapLayerIds.length>0&&this._mapLayerIds.reduce(((t,i)=>(this._layerItemsHash[i]&&t.push(this.getLayerListItem(i)),t)),[])}getLayerListItem(t){const s=this._layerItemsHash[t].formattedFeatureCount;return i("calcite-list-item",{onCalciteListItemSelect:()=>{this.onLayerItemSelected(t)}},i("div",{class:"layer-name",slot:"content-start"},this._layerItemsHash[t].name),this.showFeatureCount&&void 0!==s&&""!==s&&i("div",{class:this.showNextIcon?"":"feature-count",slot:"content-end"},"("+s+")"),this.showNextIcon&&i("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"}))}onLayerItemSelected(t){this.layerSelect.emit({layerId:t,layerName:this._layerItemsHash[t].name})}async _getTranslations(){const t=await z(this.el);this._translations=t[0]}get el(){return s(this)}};B.style=":host{display:block}.error-msg{padding:10px}.layer-name{font-weight:500;padding:10px 12px}.feature-count{padding-right:12px}";export{F as calcite_flow,S as calcite_flow_item,P as feature_list,B as layer_list}
|