@esri/solutions-components 0.7.30 → 0.7.31
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} +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,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface CreateFeature extends Components.CreateFeature, HTMLElement {}
|
|
4
|
+
export const CreateFeature: {
|
|
5
|
+
prototype: CreateFeature;
|
|
6
|
+
new (): CreateFeature;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
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 { C as CreateFeature$1, d as defineCustomElement$1 } from './create-feature2.js';
|
|
7
|
+
|
|
8
|
+
const CreateFeature = CreateFeature$1;
|
|
9
|
+
const defineCustomElement = defineCustomElement$1;
|
|
10
|
+
|
|
11
|
+
export { CreateFeature, defineCustomElement };
|
|
@@ -0,0 +1,226 @@
|
|
|
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 { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
7
|
+
import { l as loadModules } from './loadModules.js';
|
|
8
|
+
import { g as getLayerOrTable } from './mapViewUtils.js';
|
|
9
|
+
|
|
10
|
+
const createFeatureCss = ":host{display:block}.esri-editor__panel-toolbar{display:none !important}";
|
|
11
|
+
|
|
12
|
+
const CreateFeature = /*@__PURE__*/ proxyCustomElement(class CreateFeature extends HTMLElement {
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
this.__registerHost();
|
|
16
|
+
this.success = createEvent(this, "success", 7);
|
|
17
|
+
this.fail = createEvent(this, "fail", 7);
|
|
18
|
+
this.drawComplete = createEvent(this, "drawComplete", 7);
|
|
19
|
+
this.mapView = undefined;
|
|
20
|
+
this.selectedLayerId = undefined;
|
|
21
|
+
}
|
|
22
|
+
//--------------------------------------------------------------------------
|
|
23
|
+
//
|
|
24
|
+
// Watch handlers
|
|
25
|
+
//
|
|
26
|
+
//--------------------------------------------------------------------------
|
|
27
|
+
/**
|
|
28
|
+
* Called each time the mapView prop is changed.
|
|
29
|
+
*/
|
|
30
|
+
async mapViewWatchHandler() {
|
|
31
|
+
await this.mapView.when(async () => {
|
|
32
|
+
await this.init();
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//--------------------------------------------------------------------------
|
|
36
|
+
//
|
|
37
|
+
// Methods (public)
|
|
38
|
+
//
|
|
39
|
+
//--------------------------------------------------------------------------
|
|
40
|
+
/**
|
|
41
|
+
* Destroy the Editor widget instance
|
|
42
|
+
* @returns Promise that resolves when the operation is complete
|
|
43
|
+
*/
|
|
44
|
+
async close() {
|
|
45
|
+
if (this._editor) {
|
|
46
|
+
this._editor.destroy();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Submit the created feature
|
|
51
|
+
* @returns Promise that resolves when the operation is complete
|
|
52
|
+
*/
|
|
53
|
+
async submit() {
|
|
54
|
+
if (this._editor) {
|
|
55
|
+
this._editor.viewModel.featureFormViewModel.submit();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//--------------------------------------------------------------------------
|
|
59
|
+
//
|
|
60
|
+
// Functions (lifecycle)
|
|
61
|
+
//
|
|
62
|
+
//--------------------------------------------------------------------------
|
|
63
|
+
/**
|
|
64
|
+
* StencilJS: Called once just after the component is first connected to the DOM.
|
|
65
|
+
* @returns Promise when complete
|
|
66
|
+
*/
|
|
67
|
+
async componentWillLoad() {
|
|
68
|
+
await this.initModules();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* StencilJS: Called once just after the component is fully loaded and the first render() occurs.
|
|
72
|
+
*/
|
|
73
|
+
async componentDidLoad() {
|
|
74
|
+
await this.init();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Renders the component.
|
|
78
|
+
*/
|
|
79
|
+
render() {
|
|
80
|
+
return (h(Host, { id: "feature-form" }));
|
|
81
|
+
}
|
|
82
|
+
//--------------------------------------------------------------------------
|
|
83
|
+
//
|
|
84
|
+
// Functions (protected)
|
|
85
|
+
//
|
|
86
|
+
//--------------------------------------------------------------------------
|
|
87
|
+
/**
|
|
88
|
+
* Init Editor widget and starts the create workflow
|
|
89
|
+
*/
|
|
90
|
+
async init() {
|
|
91
|
+
if (this.mapView) {
|
|
92
|
+
if (this.mapView && this.selectedLayerId) {
|
|
93
|
+
await getLayerOrTable(this.mapView, this.selectedLayerId);
|
|
94
|
+
await this.createEditorWidget();
|
|
95
|
+
await this.startCreate();
|
|
96
|
+
this._editor.viewModel.featureFormViewModel.on('submit', this.submitted.bind(this));
|
|
97
|
+
setTimeout(() => {
|
|
98
|
+
var _a, _b;
|
|
99
|
+
this.el.querySelector('.esri-editor').querySelectorAll('calcite-flow-item')[1].shadowRoot.querySelector('calcite-panel').shadowRoot.querySelector('article').querySelector('header').setAttribute('style', 'display: none');
|
|
100
|
+
(_b = (_a = this.el.querySelector('.esri-editor').querySelectorAll('calcite-flow-item')[1].shadowRoot.querySelector('calcite-panel').shadowRoot.querySelector('article')) === null || _a === void 0 ? void 0 : _a.querySelector('footer')) === null || _b === void 0 ? void 0 : _b.setAttribute('style', 'display: none');
|
|
101
|
+
}, 700);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Load esri javascript api modules
|
|
107
|
+
* @returns Promise resolving when function is done
|
|
108
|
+
* @protected
|
|
109
|
+
*/
|
|
110
|
+
async initModules() {
|
|
111
|
+
const [Editor] = await loadModules([
|
|
112
|
+
"esri/widgets/Editor"
|
|
113
|
+
]);
|
|
114
|
+
this.Editor = Editor;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Display editor widget to create the new feature
|
|
118
|
+
* @protected
|
|
119
|
+
*/
|
|
120
|
+
async createEditorWidget() {
|
|
121
|
+
if (this._editor) {
|
|
122
|
+
this._editor.destroy();
|
|
123
|
+
}
|
|
124
|
+
const container = document.createElement("div");
|
|
125
|
+
const layer = await getLayerOrTable(this.mapView, this.selectedLayerId);
|
|
126
|
+
const selectedLayer = {
|
|
127
|
+
layer: layer
|
|
128
|
+
};
|
|
129
|
+
this._editor = new this.Editor({
|
|
130
|
+
allowedWorkflows: "create-features",
|
|
131
|
+
view: this.mapView,
|
|
132
|
+
layerInfos: [selectedLayer],
|
|
133
|
+
visibleElements: {
|
|
134
|
+
snappingControls: false,
|
|
135
|
+
snappingControlsElements: {
|
|
136
|
+
featureEnabledToggle: false,
|
|
137
|
+
layerList: false,
|
|
138
|
+
enabledToggle: false
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
container,
|
|
142
|
+
});
|
|
143
|
+
this.el.appendChild(container);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Start creating the feature
|
|
147
|
+
* @protected
|
|
148
|
+
*/
|
|
149
|
+
async startCreate() {
|
|
150
|
+
var _a, _b;
|
|
151
|
+
const layer = await getLayerOrTable(this.mapView, this.selectedLayerId);
|
|
152
|
+
if (layer) {
|
|
153
|
+
let template = layer.templates && layer.templates.length ? layer.templates[0] : {};
|
|
154
|
+
if (((_a = layer.sourceJSON) === null || _a === void 0 ? void 0 : _a.types.length) && ((_b = layer.sourceJSON.types[0].templates) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
155
|
+
template = layer.sourceJSON.types[0].templates[0];
|
|
156
|
+
}
|
|
157
|
+
const creationInfo = {
|
|
158
|
+
layer: layer,
|
|
159
|
+
template: template
|
|
160
|
+
};
|
|
161
|
+
await this._editor.startCreateFeaturesWorkflowAtFeatureCreation(creationInfo);
|
|
162
|
+
this._editor.viewModel.sketchViewModel.on("create", (evt) => {
|
|
163
|
+
if (evt.state === "complete") {
|
|
164
|
+
this.drawComplete.emit();
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* On creation of feature emit the event that the feature is created
|
|
171
|
+
* @param evt feature submit event
|
|
172
|
+
* @protected
|
|
173
|
+
*/
|
|
174
|
+
async submitted(evt) {
|
|
175
|
+
var _a;
|
|
176
|
+
if (evt.invalid.length) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (evt.valid.length) {
|
|
180
|
+
try {
|
|
181
|
+
await this._editor.activeWorkflow.commit();
|
|
182
|
+
//throw errors if any failures
|
|
183
|
+
if ((_a = this._editor.viewModel.failures) === null || _a === void 0 ? void 0 : _a.length) {
|
|
184
|
+
this._editor.viewModel.failures.some((failure) => {
|
|
185
|
+
if (failure.error) {
|
|
186
|
+
throw (failure.error);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch (e) {
|
|
192
|
+
this.fail.emit(e);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
this.success.emit();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
get el() { return this; }
|
|
199
|
+
static get watchers() { return {
|
|
200
|
+
"mapView": ["mapViewWatchHandler"]
|
|
201
|
+
}; }
|
|
202
|
+
static get style() { return createFeatureCss; }
|
|
203
|
+
}, [0, "create-feature", {
|
|
204
|
+
"mapView": [16],
|
|
205
|
+
"selectedLayerId": [1, "selected-layer-id"],
|
|
206
|
+
"close": [64],
|
|
207
|
+
"submit": [64]
|
|
208
|
+
}, undefined, {
|
|
209
|
+
"mapView": ["mapViewWatchHandler"]
|
|
210
|
+
}]);
|
|
211
|
+
function defineCustomElement() {
|
|
212
|
+
if (typeof customElements === "undefined") {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const components = ["create-feature"];
|
|
216
|
+
components.forEach(tagName => { switch (tagName) {
|
|
217
|
+
case "create-feature":
|
|
218
|
+
if (!customElements.get(tagName)) {
|
|
219
|
+
customElements.define(tagName, CreateFeature);
|
|
220
|
+
}
|
|
221
|
+
break;
|
|
222
|
+
} });
|
|
223
|
+
}
|
|
224
|
+
defineCustomElement();
|
|
225
|
+
|
|
226
|
+
export { CreateFeature as C, defineCustomElement as d };
|