@esri/solutions-components 0.7.30 → 0.7.32
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/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} +286 -19
- package/dist/cjs/card-manager_3.cjs.entry.js +1 -1
- package/dist/cjs/crowdsource-reporter.cjs.entry.js +248 -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 +50 -0
- package/dist/collection/components/create-feature/create-feature.js +444 -0
- package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +10 -1
- package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +287 -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/create-feature.html +90 -0
- 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 +278 -0
- package/dist/components/crowdsource-reporter.js +324 -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} +286 -20
- package/dist/esm/card-manager_3.entry.js +1 -1
- package/dist/esm/crowdsource-reporter.entry.js +249 -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/create-feature.html +90 -0
- 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-d5263cb9.entry.js +17 -0
- package/dist/solutions-components/p-ea17cefb.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 +125 -0
- package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +146 -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 +102 -0
- package/dist/types/preact.d.ts +7 -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,125 @@
|
|
|
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
|
+
* boolean: Set this to true when have a custom submit button in the app.
|
|
30
|
+
* This will hide the header and footer elements of the editor and user needs to execute the submit method manually.
|
|
31
|
+
*/
|
|
32
|
+
customizeSubmit?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* esri/widgets/Editor: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html
|
|
35
|
+
* The Editor constructor
|
|
36
|
+
*/
|
|
37
|
+
protected Editor: typeof import("esri/widgets/Editor");
|
|
38
|
+
/**
|
|
39
|
+
* esri/widgets/Editor: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html
|
|
40
|
+
* The Editor instance
|
|
41
|
+
*/
|
|
42
|
+
protected _editor: __esri.Editor;
|
|
43
|
+
/**
|
|
44
|
+
* esri/core/reactiveUtils: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-reactiveUtils.html
|
|
45
|
+
*/
|
|
46
|
+
protected reactiveUtils: typeof import("esri/core/reactiveUtils");
|
|
47
|
+
/**
|
|
48
|
+
* boolean: Flag to maintain the add attachment
|
|
49
|
+
*/
|
|
50
|
+
protected _addingAttachment: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Called each time the mapView prop is changed.
|
|
53
|
+
*/
|
|
54
|
+
mapViewWatchHandler(): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Destroy the Editor widget instance
|
|
57
|
+
* @returns Promise that resolves when the operation is complete
|
|
58
|
+
*/
|
|
59
|
+
close(): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Submit the created feature
|
|
62
|
+
* @returns Promise that resolves when the operation is complete
|
|
63
|
+
*/
|
|
64
|
+
submit(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Emitted on demand when the feature is created successfully
|
|
67
|
+
*/
|
|
68
|
+
success: EventEmitter<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Emitted on demand when the feature creation is failed
|
|
71
|
+
*/
|
|
72
|
+
fail: EventEmitter<Error>;
|
|
73
|
+
/**
|
|
74
|
+
* Emitted on demand when drawing is completed
|
|
75
|
+
*/
|
|
76
|
+
drawComplete: EventEmitter<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Emitted on demand when editing attachments
|
|
79
|
+
*/
|
|
80
|
+
editingAttachment: EventEmitter<boolean>;
|
|
81
|
+
/**
|
|
82
|
+
* StencilJS: Called once just after the component is first connected to the DOM.
|
|
83
|
+
* @returns Promise when complete
|
|
84
|
+
*/
|
|
85
|
+
componentWillLoad(): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* StencilJS: Called once just after the component is fully loaded and the first render() occurs.
|
|
88
|
+
*/
|
|
89
|
+
componentDidLoad(): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Renders the component.
|
|
92
|
+
*/
|
|
93
|
+
render(): any;
|
|
94
|
+
/**
|
|
95
|
+
* Init Editor widget and starts the create workflow
|
|
96
|
+
*/
|
|
97
|
+
protected init(): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Load esri javascript api modules
|
|
100
|
+
* @returns Promise resolving when function is done
|
|
101
|
+
* @protected
|
|
102
|
+
*/
|
|
103
|
+
protected initModules(): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Display editor widget to create the new feature
|
|
106
|
+
* @protected
|
|
107
|
+
*/
|
|
108
|
+
protected createEditorWidget(): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Start creating the feature
|
|
111
|
+
* @protected
|
|
112
|
+
*/
|
|
113
|
+
protected startCreate(): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Hides the elements of editor widget
|
|
116
|
+
* @protected
|
|
117
|
+
*/
|
|
118
|
+
protected hideEditorsElements(): void;
|
|
119
|
+
/**
|
|
120
|
+
* On creation of feature emit the event that the feature is created
|
|
121
|
+
* @param evt feature submit event
|
|
122
|
+
* @protected
|
|
123
|
+
*/
|
|
124
|
+
protected submitted(evt: any): Promise<void>;
|
|
125
|
+
}
|
|
@@ -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,26 @@ 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;
|
|
199
|
+
/**
|
|
200
|
+
* boolean: Maintains a flag to know if urls params are loaded or not
|
|
201
|
+
*/
|
|
202
|
+
protected _urlParamsLoaded: boolean;
|
|
159
203
|
/**
|
|
160
204
|
* Called each time the mapView prop is changed.
|
|
161
205
|
*/
|
|
@@ -186,6 +230,12 @@ export declare class CrowdsourceReporter {
|
|
|
186
230
|
* @protected
|
|
187
231
|
*/
|
|
188
232
|
protected _initModules(): Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* Set the selected layer id and layer name
|
|
235
|
+
* @param layerId string layerId of the selected layer
|
|
236
|
+
* @param layerName string layerName of the selected layer
|
|
237
|
+
*/
|
|
238
|
+
protected setSelectedLayer(layerId: string, layerName: string): void;
|
|
189
239
|
/**
|
|
190
240
|
* Get the reporter app functionality
|
|
191
241
|
* @protected
|
|
@@ -197,22 +247,86 @@ export declare class CrowdsourceReporter {
|
|
|
197
247
|
* @protected
|
|
198
248
|
*/
|
|
199
249
|
protected getLayerListFlowItem(): Node;
|
|
250
|
+
/**
|
|
251
|
+
* Get the layer list for creating a report
|
|
252
|
+
* @returns Choose category flow item
|
|
253
|
+
* @protected
|
|
254
|
+
*/
|
|
255
|
+
protected getChooseCategoryFlowItem(): Node;
|
|
256
|
+
/**
|
|
257
|
+
* Get Feature create form of the selected feature layer
|
|
258
|
+
* @returns feature create form
|
|
259
|
+
* @protected
|
|
260
|
+
*/
|
|
261
|
+
protected getFeatureCreateFlowItem(): Node;
|
|
262
|
+
/**
|
|
263
|
+
* When drawing of incident location completed on map show the submit and cancel button
|
|
264
|
+
* @protected
|
|
265
|
+
*/
|
|
266
|
+
protected onDrawComplete(): void;
|
|
267
|
+
/**
|
|
268
|
+
* When Add attachment panel is enabled hide the submit and cancel button
|
|
269
|
+
* @protected
|
|
270
|
+
*/
|
|
271
|
+
protected showSubmitCancelButton(evt: CustomEvent): void;
|
|
272
|
+
/**
|
|
273
|
+
* On back from create feature, call submit editor to destroy the Editor widget instance
|
|
274
|
+
* @protected
|
|
275
|
+
*/
|
|
276
|
+
protected onSubmitButtonClick(): void;
|
|
277
|
+
/**
|
|
278
|
+
* On back from create feature, call close editor to destroy the Editor widget instance
|
|
279
|
+
* @protected
|
|
280
|
+
*/
|
|
281
|
+
protected backFromCreateFeaturePanel(): void;
|
|
282
|
+
/**
|
|
283
|
+
* On creating the feature is failed, show the error message
|
|
284
|
+
* @param evt Event which has feature failed message
|
|
285
|
+
* @protected
|
|
286
|
+
*/
|
|
287
|
+
protected createFeatureFailed(evt: CustomEvent): void;
|
|
288
|
+
/**
|
|
289
|
+
* On submit report navigate to the layer list home page and refresh the layer list
|
|
290
|
+
* @protected
|
|
291
|
+
*/
|
|
292
|
+
protected onReportSubmitted(): void;
|
|
293
|
+
/**
|
|
294
|
+
* Navigates to layer-list
|
|
295
|
+
* @protected
|
|
296
|
+
*/
|
|
297
|
+
protected navigateToHomePage(): void;
|
|
298
|
+
/**
|
|
299
|
+
* Update the selected layer id and name
|
|
300
|
+
* @param evt Event which has details of selected layerId and layerName
|
|
301
|
+
* @protected
|
|
302
|
+
*/
|
|
303
|
+
protected highlightSelectedLayer(evt: CustomEvent): void;
|
|
304
|
+
/**
|
|
305
|
+
* On next button click open the feature create flow item
|
|
306
|
+
* @protected
|
|
307
|
+
*/
|
|
308
|
+
protected navigateToCreateFeature(): Promise<void>;
|
|
309
|
+
/**
|
|
310
|
+
* On report an incident button click open the create a report panel with the layer list
|
|
311
|
+
* @protected
|
|
312
|
+
*/
|
|
313
|
+
protected navigateToChooseCategory(): void;
|
|
200
314
|
/**
|
|
201
315
|
* 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
316
|
* @param evt Event which has list of layers
|
|
203
317
|
* @protected
|
|
204
318
|
*/
|
|
205
|
-
protected layerListLoaded(evt: CustomEvent): void
|
|
319
|
+
protected layerListLoaded(evt: CustomEvent): Promise<void>;
|
|
206
320
|
/**On click of layer list item show feature list
|
|
207
321
|
* @param evt Event which has details of selected layerId and layerName
|
|
208
322
|
* @protected
|
|
209
323
|
*/
|
|
210
324
|
protected displayFeaturesList(evt: CustomEvent): void;
|
|
211
325
|
/**
|
|
212
|
-
* On back from
|
|
326
|
+
* On back from selected panel navigate to the previous panel
|
|
213
327
|
* @protected
|
|
214
328
|
*/
|
|
215
|
-
protected
|
|
329
|
+
protected backFromSelectedPanel(): void;
|
|
216
330
|
/**
|
|
217
331
|
* Toggle side panel in case of mobile mode
|
|
218
332
|
* @protected
|
|
@@ -236,13 +350,24 @@ export declare class CrowdsourceReporter {
|
|
|
236
350
|
* @returns Node
|
|
237
351
|
*/
|
|
238
352
|
protected getFeatureDetailsFlowItem(): Node;
|
|
353
|
+
/**
|
|
354
|
+
* Sets the selected features and updates the first feature as the current selected feature
|
|
355
|
+
* @param features Graphics array of the features selected
|
|
356
|
+
*/
|
|
357
|
+
protected setSelectedFeatures(features: __esri.Graphic[]): void;
|
|
358
|
+
/**
|
|
359
|
+
* Set the object id of the current selected feature, and also updates the current selected layer details
|
|
360
|
+
* @param selectedFeature Graphic currently shown in feature details
|
|
361
|
+
*/
|
|
362
|
+
protected setCurrentFeature(selectedFeature?: __esri.Graphic): void;
|
|
239
363
|
/**
|
|
240
364
|
* On Feature details change update the Layer title and the current selected layer id
|
|
241
365
|
* @param evt Event hold the details of current feature graphic in the info-card
|
|
242
366
|
*/
|
|
243
|
-
protected featureDetailsChanged(evt:
|
|
367
|
+
protected featureDetailsChanged(evt: CustomEvent): void;
|
|
244
368
|
/**
|
|
245
369
|
* Returns the action button to Expand/Collapse side panel in mobile mode
|
|
370
|
+
* @protected
|
|
246
371
|
*/
|
|
247
372
|
protected getActionToExpandCollapsePanel(): Node;
|
|
248
373
|
/**
|
|
@@ -254,21 +379,30 @@ export declare class CrowdsourceReporter {
|
|
|
254
379
|
* Handle map click event
|
|
255
380
|
* @param layers Array of layerIds
|
|
256
381
|
*
|
|
257
|
-
*
|
|
382
|
+
* @protected
|
|
258
383
|
*/
|
|
259
|
-
protected handleMapClick(
|
|
384
|
+
protected handleMapClick(): void;
|
|
260
385
|
/**
|
|
261
386
|
* On map click do hitTest and get the clicked graphics of valid layers and show feature details
|
|
262
|
-
* @param event
|
|
263
|
-
* @param layers
|
|
387
|
+
* @param event IMapClick map click event details
|
|
264
388
|
*
|
|
265
389
|
* @protected
|
|
266
390
|
*/
|
|
267
|
-
protected onMapClick(event:
|
|
391
|
+
protected onMapClick(event: IMapClick): Promise<void>;
|
|
268
392
|
/**
|
|
269
393
|
* Fetches the component's translations
|
|
270
394
|
* @returns Promise when complete
|
|
271
395
|
* @protected
|
|
272
396
|
*/
|
|
273
397
|
protected _getTranslations(): Promise<void>;
|
|
398
|
+
/**
|
|
399
|
+
* Updates the share url for current selected feature
|
|
400
|
+
* @protected
|
|
401
|
+
*/
|
|
402
|
+
protected _updateShareURL(): void;
|
|
403
|
+
/**
|
|
404
|
+
* Navigates to selected features detail based on the URL params
|
|
405
|
+
* @protected
|
|
406
|
+
*/
|
|
407
|
+
protected loadFeatureFromURLParams(): Promise<void>;
|
|
274
408
|
}
|
|
@@ -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,30 @@ 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
|
+
* boolean: Set this to true when have a custom submit button in the app. This will hide the header and footer elements of the editor and user needs to execute the submit method manually.
|
|
97
|
+
*/
|
|
98
|
+
"customizeSubmit"?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
|
|
101
|
+
*/
|
|
102
|
+
"mapView": __esri.MapView;
|
|
103
|
+
/**
|
|
104
|
+
* string: Layer id of the feature layer in which the new feature is to be created
|
|
105
|
+
*/
|
|
106
|
+
"selectedLayerId": string;
|
|
107
|
+
/**
|
|
108
|
+
* Submit the created feature
|
|
109
|
+
* @returns Promise that resolves when the operation is complete
|
|
110
|
+
*/
|
|
111
|
+
"submit": () => Promise<void>;
|
|
112
|
+
}
|
|
89
113
|
interface CrowdsourceManager {
|
|
90
114
|
/**
|
|
91
115
|
* IBasemapConfig: List of any basemaps to filter out from the basemap widget
|
|
@@ -245,6 +269,10 @@ export namespace Components {
|
|
|
245
269
|
* boolean: When true the application will be in mobile mode, controls the mobile or desktop view
|
|
246
270
|
*/
|
|
247
271
|
"isMobile": boolean;
|
|
272
|
+
/**
|
|
273
|
+
* string: Layer id of the feature from URL params
|
|
274
|
+
*/
|
|
275
|
+
"layerId": string;
|
|
248
276
|
/**
|
|
249
277
|
* string[]: list of layer ids
|
|
250
278
|
*/
|
|
@@ -261,6 +289,10 @@ export namespace Components {
|
|
|
261
289
|
* esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
|
|
262
290
|
*/
|
|
263
291
|
"mapView": __esri.MapView;
|
|
292
|
+
/**
|
|
293
|
+
* string: Object id of the feature from URL params
|
|
294
|
+
*/
|
|
295
|
+
"objectId": string;
|
|
264
296
|
/**
|
|
265
297
|
* string: The word(s) to display in the reports submit button
|
|
266
298
|
*/
|
|
@@ -452,6 +484,11 @@ export namespace Components {
|
|
|
452
484
|
* string: Error message to be displayed when no layers found
|
|
453
485
|
*/
|
|
454
486
|
"noLayerErrorMsg"?: string;
|
|
487
|
+
/**
|
|
488
|
+
* Refresh the layer list which will fetch the latest layer count and update the list
|
|
489
|
+
* @returns Promise that resolves when the operation is complete
|
|
490
|
+
*/
|
|
491
|
+
"refresh": () => Promise<void>;
|
|
455
492
|
/**
|
|
456
493
|
* boolean: if true display's feature count for each layer
|
|
457
494
|
*/
|
|
@@ -1268,6 +1305,10 @@ export interface BufferToolsCustomEvent<T> extends CustomEvent<T> {
|
|
|
1268
1305
|
detail: T;
|
|
1269
1306
|
target: HTMLBufferToolsElement;
|
|
1270
1307
|
}
|
|
1308
|
+
export interface CreateFeatureCustomEvent<T> extends CustomEvent<T> {
|
|
1309
|
+
detail: T;
|
|
1310
|
+
target: HTMLCreateFeatureElement;
|
|
1311
|
+
}
|
|
1271
1312
|
export interface CrowdsourceReporterCustomEvent<T> extends CustomEvent<T> {
|
|
1272
1313
|
detail: T;
|
|
1273
1314
|
target: HTMLCrowdsourceReporterElement;
|
|
@@ -1402,6 +1443,26 @@ declare global {
|
|
|
1402
1443
|
prototype: HTMLCardManagerElement;
|
|
1403
1444
|
new (): HTMLCardManagerElement;
|
|
1404
1445
|
};
|
|
1446
|
+
interface HTMLCreateFeatureElementEventMap {
|
|
1447
|
+
"success": void;
|
|
1448
|
+
"fail": Error;
|
|
1449
|
+
"drawComplete": void;
|
|
1450
|
+
"editingAttachment": boolean;
|
|
1451
|
+
}
|
|
1452
|
+
interface HTMLCreateFeatureElement extends Components.CreateFeature, HTMLStencilElement {
|
|
1453
|
+
addEventListener<K extends keyof HTMLCreateFeatureElementEventMap>(type: K, listener: (this: HTMLCreateFeatureElement, ev: CreateFeatureCustomEvent<HTMLCreateFeatureElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1454
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1455
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1456
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1457
|
+
removeEventListener<K extends keyof HTMLCreateFeatureElementEventMap>(type: K, listener: (this: HTMLCreateFeatureElement, ev: CreateFeatureCustomEvent<HTMLCreateFeatureElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1458
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1459
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1460
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1461
|
+
}
|
|
1462
|
+
var HTMLCreateFeatureElement: {
|
|
1463
|
+
prototype: HTMLCreateFeatureElement;
|
|
1464
|
+
new (): HTMLCreateFeatureElement;
|
|
1465
|
+
};
|
|
1405
1466
|
interface HTMLCrowdsourceManagerElement extends Components.CrowdsourceManager, HTMLStencilElement {
|
|
1406
1467
|
}
|
|
1407
1468
|
var HTMLCrowdsourceManagerElement: {
|
|
@@ -1953,6 +2014,7 @@ declare global {
|
|
|
1953
2014
|
"basemap-gallery": HTMLBasemapGalleryElement;
|
|
1954
2015
|
"buffer-tools": HTMLBufferToolsElement;
|
|
1955
2016
|
"card-manager": HTMLCardManagerElement;
|
|
2017
|
+
"create-feature": HTMLCreateFeatureElement;
|
|
1956
2018
|
"crowdsource-manager": HTMLCrowdsourceManagerElement;
|
|
1957
2019
|
"crowdsource-reporter": HTMLCrowdsourceReporterElement;
|
|
1958
2020
|
"deduct-calculator": HTMLDeductCalculatorElement;
|
|
@@ -2082,6 +2144,36 @@ declare namespace LocalJSX {
|
|
|
2082
2144
|
*/
|
|
2083
2145
|
"zoomAndScrollToSelected"?: boolean;
|
|
2084
2146
|
}
|
|
2147
|
+
interface CreateFeature {
|
|
2148
|
+
/**
|
|
2149
|
+
* boolean: Set this to true when have a custom submit button in the app. This will hide the header and footer elements of the editor and user needs to execute the submit method manually.
|
|
2150
|
+
*/
|
|
2151
|
+
"customizeSubmit"?: boolean;
|
|
2152
|
+
/**
|
|
2153
|
+
* esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
|
|
2154
|
+
*/
|
|
2155
|
+
"mapView"?: __esri.MapView;
|
|
2156
|
+
/**
|
|
2157
|
+
* Emitted on demand when drawing is completed
|
|
2158
|
+
*/
|
|
2159
|
+
"onDrawComplete"?: (event: CreateFeatureCustomEvent<void>) => void;
|
|
2160
|
+
/**
|
|
2161
|
+
* Emitted on demand when editing attachments
|
|
2162
|
+
*/
|
|
2163
|
+
"onEditingAttachment"?: (event: CreateFeatureCustomEvent<boolean>) => void;
|
|
2164
|
+
/**
|
|
2165
|
+
* Emitted on demand when the feature creation is failed
|
|
2166
|
+
*/
|
|
2167
|
+
"onFail"?: (event: CreateFeatureCustomEvent<Error>) => void;
|
|
2168
|
+
/**
|
|
2169
|
+
* Emitted on demand when the feature is created successfully
|
|
2170
|
+
*/
|
|
2171
|
+
"onSuccess"?: (event: CreateFeatureCustomEvent<void>) => void;
|
|
2172
|
+
/**
|
|
2173
|
+
* string: Layer id of the feature layer in which the new feature is to be created
|
|
2174
|
+
*/
|
|
2175
|
+
"selectedLayerId"?: string;
|
|
2176
|
+
}
|
|
2085
2177
|
interface CrowdsourceManager {
|
|
2086
2178
|
/**
|
|
2087
2179
|
* IBasemapConfig: List of any basemaps to filter out from the basemap widget
|
|
@@ -2241,6 +2333,10 @@ declare namespace LocalJSX {
|
|
|
2241
2333
|
* boolean: When true the application will be in mobile mode, controls the mobile or desktop view
|
|
2242
2334
|
*/
|
|
2243
2335
|
"isMobile"?: boolean;
|
|
2336
|
+
/**
|
|
2337
|
+
* string: Layer id of the feature from URL params
|
|
2338
|
+
*/
|
|
2339
|
+
"layerId"?: string;
|
|
2244
2340
|
/**
|
|
2245
2341
|
* string[]: list of layer ids
|
|
2246
2342
|
*/
|
|
@@ -2257,6 +2353,10 @@ declare namespace LocalJSX {
|
|
|
2257
2353
|
* esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
|
|
2258
2354
|
*/
|
|
2259
2355
|
"mapView"?: __esri.MapView;
|
|
2356
|
+
/**
|
|
2357
|
+
* string: Object id of the feature from URL params
|
|
2358
|
+
*/
|
|
2359
|
+
"objectId"?: string;
|
|
2260
2360
|
/**
|
|
2261
2361
|
* Emitted when toggle panel button is clicked in reporter
|
|
2262
2362
|
*/
|
|
@@ -3302,6 +3402,7 @@ declare namespace LocalJSX {
|
|
|
3302
3402
|
"basemap-gallery": BasemapGallery;
|
|
3303
3403
|
"buffer-tools": BufferTools;
|
|
3304
3404
|
"card-manager": CardManager;
|
|
3405
|
+
"create-feature": CreateFeature;
|
|
3305
3406
|
"crowdsource-manager": CrowdsourceManager;
|
|
3306
3407
|
"crowdsource-reporter": CrowdsourceReporter;
|
|
3307
3408
|
"deduct-calculator": DeductCalculator;
|
|
@@ -3357,6 +3458,7 @@ declare module "@stencil/core" {
|
|
|
3357
3458
|
"basemap-gallery": LocalJSX.BasemapGallery & JSXBase.HTMLAttributes<HTMLBasemapGalleryElement>;
|
|
3358
3459
|
"buffer-tools": LocalJSX.BufferTools & JSXBase.HTMLAttributes<HTMLBufferToolsElement>;
|
|
3359
3460
|
"card-manager": LocalJSX.CardManager & JSXBase.HTMLAttributes<HTMLCardManagerElement>;
|
|
3461
|
+
"create-feature": LocalJSX.CreateFeature & JSXBase.HTMLAttributes<HTMLCreateFeatureElement>;
|
|
3360
3462
|
"crowdsource-manager": LocalJSX.CrowdsourceManager & JSXBase.HTMLAttributes<HTMLCrowdsourceManagerElement>;
|
|
3361
3463
|
"crowdsource-reporter": LocalJSX.CrowdsourceReporter & JSXBase.HTMLAttributes<HTMLCrowdsourceReporterElement>;
|
|
3362
3464
|
"deduct-calculator": LocalJSX.DeductCalculator & JSXBase.HTMLAttributes<HTMLDeductCalculatorElement>;
|
package/dist/types/preact.d.ts
CHANGED
|
@@ -502,6 +502,13 @@ 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" | "onEditingAttachment"> & JSXInternal.HTMLAttributes<HTMLSolutionsCreateFeatureElement> & {
|
|
506
|
+
"onsuccess"?: (event: CustomEvent<any>) => void;
|
|
507
|
+
"onfail"?: (event: CustomEvent<any>) => void;
|
|
508
|
+
"ondrawComplete"?: (event: CustomEvent<any>) => void;
|
|
509
|
+
"oneditingAttachment"?: (event: CustomEvent<any>) => void;
|
|
510
|
+
}
|
|
511
|
+
|
|
505
512
|
"crowdsource-manager": JSX.SolutionsCrowdsourceManager & JSXInternal.HTMLAttributes<HTMLSolutionsCrowdsourceManagerElement>
|
|
506
513
|
|
|
507
514
|
"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}
|