@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.
Files changed (60) hide show
  1. package/dist/assets/t9n/crowdsource-reporter/resources.json +7 -5
  2. package/dist/assets/t9n/crowdsource-reporter/resources_en.json +7 -5
  3. package/dist/assets/t9n/feature-list/resources.json +1 -1
  4. package/dist/assets/t9n/feature-list/resources_en.json +1 -1
  5. package/dist/assets/t9n/layer-list/resources.json +1 -1
  6. package/dist/assets/t9n/layer-list/resources_en.json +1 -1
  7. package/dist/cjs/{calcite-flow_4.cjs.entry.js → calcite-flow_5.cjs.entry.js} +235 -19
  8. package/dist/cjs/card-manager_3.cjs.entry.js +1 -1
  9. package/dist/cjs/crowdsource-reporter.cjs.entry.js +221 -32
  10. package/dist/cjs/{downloadUtils-83c6d3c3.js → downloadUtils-10e0de31.js} +2 -2
  11. package/dist/cjs/{index.es-bd1a93b2.js → index.es-72dc7ab9.js} +1 -1
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/map-select-tools_3.cjs.entry.js +1 -1
  14. package/dist/cjs/public-notification.cjs.entry.js +1 -1
  15. package/dist/cjs/solutions-components.cjs.js +1 -1
  16. package/dist/collection/collection-manifest.json +1 -0
  17. package/dist/collection/components/create-feature/create-feature.css +23 -0
  18. package/dist/collection/components/create-feature/create-feature.js +361 -0
  19. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.css +10 -1
  20. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +260 -33
  21. package/dist/collection/components/feature-list/feature-list.js +1 -0
  22. package/dist/collection/components/layer-list/layer-list.js +60 -16
  23. package/dist/collection/demos/crowdsource-reporter.html +26 -11
  24. package/dist/collection/utils/downloadUtils.js +1 -1
  25. package/dist/collection/utils/downloadUtils.ts +1 -1
  26. package/dist/components/create-feature.d.ts +11 -0
  27. package/dist/components/create-feature.js +11 -0
  28. package/dist/components/create-feature2.js +226 -0
  29. package/dist/components/crowdsource-reporter.js +297 -90
  30. package/dist/components/downloadUtils.js +1 -1
  31. package/dist/components/feature-list2.js +1 -0
  32. package/dist/components/layer-list2.js +38 -17
  33. package/dist/esm/{calcite-flow_4.entry.js → calcite-flow_5.entry.js} +235 -20
  34. package/dist/esm/card-manager_3.entry.js +1 -1
  35. package/dist/esm/crowdsource-reporter.entry.js +222 -33
  36. package/dist/esm/{downloadUtils-d070a467.js → downloadUtils-d297078f.js} +2 -2
  37. package/dist/esm/{index.es-d48535a2.js → index.es-3b4fa9d0.js} +1 -1
  38. package/dist/esm/loader.js +1 -1
  39. package/dist/esm/map-select-tools_3.entry.js +1 -1
  40. package/dist/esm/public-notification.entry.js +1 -1
  41. package/dist/esm/solutions-components.js +1 -1
  42. package/dist/solutions-components/demos/crowdsource-reporter.html +26 -11
  43. package/dist/solutions-components/{p-f120ff40.entry.js → p-09ec8c8f.entry.js} +1 -1
  44. package/dist/solutions-components/{p-55b835a1.js → p-103c5318.js} +2 -2
  45. package/dist/solutions-components/{p-309cdea1.entry.js → p-57d49d15.entry.js} +1 -1
  46. package/dist/solutions-components/{p-b913a4fd.js → p-8ec25bf4.js} +1 -1
  47. package/dist/solutions-components/{p-f22ff57e.entry.js → p-921f21d5.entry.js} +1 -1
  48. package/dist/solutions-components/p-b4e2cac4.entry.js +17 -0
  49. package/dist/solutions-components/p-bb6562ab.entry.js +6 -0
  50. package/dist/solutions-components/solutions-components.esm.js +1 -1
  51. package/dist/solutions-components/utils/downloadUtils.ts +1 -1
  52. package/dist/types/components/create-feature/create-feature.d.ts +107 -0
  53. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +132 -12
  54. package/dist/types/components/feature-list/feature-list.d.ts +1 -0
  55. package/dist/types/components/layer-list/layer-list.d.ts +6 -0
  56. package/dist/types/components.d.ts +89 -0
  57. package/dist/types/preact.d.ts +6 -0
  58. package/package.json +1 -1
  59. package/dist/solutions-components/p-2f162664.entry.js +0 -6
  60. 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 };