Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit abc7263

Browse files
committed
demo snippet steps
1 parent 8bf1763 commit abc7263

File tree

3 files changed

+99
-7
lines changed

3 files changed

+99
-7
lines changed

‎coordinate-calcite-js/calcite-coordinate.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
import CoordinateVM from "https://js.arcgis.com/4.29/@arcgis/core/widgets/CoordinateConversion/CoordinateConversionViewModel.js";
1+
import CoordinateConversionViewModel from "https://js.arcgis.com/4.29/@arcgis/core/widgets/CoordinateConversion/CoordinateConversionViewModel.js";
22
import Conversion from "https://js.arcgis.com/4.29/@arcgis/core/widgets/CoordinateConversion/support/Conversion.js";
33
import { watch } from "https://js.arcgis.com/4.29/@arcgis/core/core/reactiveUtils.js";
44

55
export function createCustomCoordinateConversion(view) {
6-
const vm = new CoordinateVM({ view, multipleConversions: false });
6+
const vm = new CoordinateConversionViewModel({
7+
view,
8+
multipleConversions: false,
9+
});
710

811
const customWidget = document.createElement("div");
912
customWidget.innerHTML = `

‎coordinate-calcite-js/index.html

Lines changed: 93 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,100 @@
5454
<div slot="header">Widget Code Snippets</div>
5555
<div slot="content">
5656
<calcite-accordion selection-mode="single" scale="l">
57-
<calcite-accordion-item expanded heading="1. TODO" description="TODO" icon-start="group-layout-elements">
58-
<esri-devsummit-code source="TODO"></esri-devsummit-code>
57+
<calcite-accordion-item heading="1. Create Calcite HTML" description="Set up the DOM using calcite-components"
58+
icon-start="code">
59+
<esri-devsummit-code source="export function createCustomCoordinateConversion(view) {
60+
const vm = new CoordinateConversionViewModel({
61+
view,
62+
multipleConversions: false,
63+
});
64+
65+
const customWidget = document.createElement(&quot;div&quot;);
66+
customWidget.innerHTML = `
67+
&lt;div class=&quot;custom-coordinate-conversion&quot;&gt;
68+
69+
&lt;calcite-segmented-control id=&quot;custom-coordinate-mode&quot;&gt;
70+
&lt;calcite-segmented-control-item icon-start=&quot;cursor&quot; value=&quot;live&quot; checked&gt;Live&lt;/calcite-segmented-control-item&gt;
71+
&lt;calcite-segmented-control-item icon-start=&quot;pin&quot; value=&quot;capture&quot;&gt;Capture&lt;/calcite-segmented-control-item&gt;
72+
&lt;/calcite-segmented-control&gt;
73+
74+
&lt;calcite-select id=&quot;custom-coordinate-select&quot;&gt;&lt;/calcite-select&gt;
75+
76+
&lt;calcite-inline-editable id=&quot;custom-coordinate-editable&quot; controls&gt;
77+
&lt;calcite-input id=&quot;custom-coordinate-input&quot; placeholder=&quot;Enter coordinates&quot;&gt;&lt;/calcite-input&gt;
78+
&lt;/calcite-inline-editable&gt;
79+
80+
&lt;/div&gt;
81+
`;
82+
// ...
83+
}"></esri-devsummit-code>
84+
</calcite-accordion-item>
85+
<calcite-accordion-item heading="2. Watch the ViewModel for changes and react to them"
86+
description="Watching VM properties to update the DOM" icon-start="recurrence">
87+
<esri-devsummit-code source="watch(
88+
() =&gt; vm.conversions.getItemAt(0)?.format,
89+
(format) =&gt; updateFormats(format),
90+
{ initial: true }
91+
);
92+
watch(
93+
() =&gt; vm.conversions.getItemAt(0)?.displayCoordinate,
94+
(displayCoordinate) =&gt; updateCoordinates(displayCoordinate ?? &quot;&quot;),
95+
{ initial: true }
96+
);
97+
98+
function updateFormats(currentFormat) {
99+
// ... Create the calcite-options
100+
coordinateSelect.innerHTML = options;
101+
}
102+
103+
function updateCoordinates(activeDisplayCoordinate) {
104+
coordinateInput.value = activeDisplayCoordinate;
105+
coordinateInput.status = &quot;valid&quot;;
106+
}"></esri-devsummit-code>
107+
</calcite-accordion-item>
108+
<calcite-accordion-item heading="3. Listening to calcite components for changes"
109+
description="Add event listeners for calcite components to update the ViewModel" icon-start="recurrence">
110+
<esri-devsummit-code source="coordinateSelect.addEventListener(&quot;calciteSelectChange&quot;, (event) =&gt; {
111+
const value = event.target.value;
112+
const format = vm.formats.find((format) =&gt; format.name === value);
113+
const newConversion = new Conversion({ format });
114+
vm.conversions.removeAt(0);
115+
vm.conversions.add(newConversion, 0);
116+
});
117+
118+
coordinateMode.addEventListener(&quot;calciteSegmentedControlChange&quot;, (event) =&gt; {
119+
vm.mode = event.target.value;
120+
});"></esri-devsummit-code>
121+
</calcite-accordion-item>
122+
<calcite-accordion-item heading="4. Capturing a point"
123+
description="Calling a ViewModel method and navigating to the returned point" icon-start="pin">
124+
<esri-devsummit-code source=" async function reverseConvert() {
125+
coordinateEditable.editingEnabled = false;
126+
const value = coordinateInput.value;
127+
try {
128+
const point = await vm.reverseConvert(value, activeFormat);
129+
vm.view.goTo(point);
130+
} catch (e) {
131+
coordinateInput.status = &quot;invalid&quot;;
132+
}
133+
}
134+
135+
coordinateEditable.addEventListener(
136+
&quot;calciteInlineEditableEditConfirm&quot;,
137+
() =&gt; {
138+
reverseConvert();
139+
}
140+
);"></esri-devsummit-code>
59141
</calcite-accordion-item>
60-
<calcite-accordion-item heading="2. TODO" description="TODO" icon-start="list">
61-
<esri-devsummit-code source="TODO"></esri-devsummit-code>
142+
<calcite-accordion-item heading="5. Applying some CSS" description="A small bit of CSS" icon-start="palette">
143+
<esri-devsummit-code source=".custom-coordinate-conversion {
144+
display: flex;
145+
flex-direction: column;
146+
padding: 10px;
147+
gap: 10px;
148+
background-color: white;
149+
min-width: 350px;
150+
}"></esri-devsummit-code>
62151
</calcite-accordion-item>
63152
</calcite-accordion>
64153
</div>

‎coordinate-fluent-react-js/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<body>
3131
<calcite-shell class="calcite-mode-light">
3232
<calcite-navigation slot="header" id="nav">
33-
<calcite-navigation-logo href="" icon="footprint" alt="Application logo" slot="logo"
33+
<calcite-navigation-logo icon="footprint" alt="Application logo" slot="logo"
3434
heading="CoordinateConversion Component with React and Fluent 2"
3535
description="Esri Developer Summit 2024"></calcite-navigation-logo>
3636
<calcite-action-pad layout="horizontal" expand-disabled slot="content-end">

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /