@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.
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 };