|
POST
|
Hi, @Noah-Sager . For me personally I stopped using the Search component completely since you switched to prefix only. Pretty much makes the component useless for my purposes. Idea posted here. In the newer version, if I am looking for 'Driscoll' and in my table there is a 'MatthewDriscoll', the new search component will never find it.
... View more
Thursday
|
2
|
1
|
258
|
|
POST
|
Sorry, not many have moved onto components yet. Try this. <arcgis-search
id="search"
popup-disabled
></arcgis-search> My guess is the title is now behind the shadow dom. So you might need to wait until the component is ready. const search = document.getElementById("search");
search.addEventListener("arcgisReady", () => {
// access internal input inside shadow DOM
const input = search.shadowRoot?.querySelector("input");
// remove browser tooltip
input?.removeAttribute("title");
});
... View more
Wednesday
|
0
|
1
|
308
|
|
POST
|
I believe the tool tip comes from the title. const search = new Search({
view: view
});
view.ui.add(search, "top-right");
search.when(() => {
const input = search.container.querySelector("input");
if (input) {
input.removeAttribute("title");
}
})
... View more
Wednesday
|
0
|
3
|
349
|
|
POST
|
Try this based off of @JeffreyThompson2 suggestion and what we have learned from @ReneRubalcava . setInterval(() => {
const numSelected = globalThis.highlightHandles?._groups?.size || 0;
selectedCount.innerText = numSelected;
console.log("Num selected is " + numSelected);
if (numSelected) {
selectedCount.style.color = 'black';
moreActionsButton.disabled = false;
} else {
selectedCount.style.color = '#c9c9c9';
moreActionsButton.disabled = true;
}
}, 250);
... View more
a week ago
|
1
|
0
|
342
|
|
POST
|
Try creating the variable like this instead. Also _groups would make it private, so the API might not see it as observable. reactiveUtils.when(
() => globalThis.highlightHandles != null,
() => {
reactiveUtils.watch(
() => globalThis.highlightHandles._groups.size,
(numSelected) => {...
... View more
a week ago
|
0
|
0
|
357
|
|
POST
|
Try using a when before the watch. Might want to use a {once: true} for the when. reactiveUtils.when(
() => globalThis.highlightHandles != null,
() => {
reactiveUtils.watch(
() => globalThis.highlightHandles._groups.size,
... View more
a week ago
|
0
|
2
|
385
|
|
POST
|
I ran into that too. If I remember correctly, it is a compositing behavior in the ArcGIS renderer by design for highlights. The only solution I came up with was creating a Graphics Layer so I can have full control over it. Probably a good one to put in the Ideas section.
... View more
a week ago
|
1
|
0
|
82
|
|
POST
|
Glad to help. I also tried that and didn't get the results I expected. No worries, these exercises help me keep up with things outside my normal day to day stuff.
... View more
04-20-2026
01:26 PM
|
0
|
0
|
366
|
|
POST
|
I got a chance to play around with this and saw what you are talking about. It looks like you are using a popup in AGOL, and using that SAME layer for your search in the SDK. The SDK will assign the popupEnable globally to that layer. You created a bit of a mess mixing the two on the same layer. The only way I could figure out is to disable all popups, then recreating the popup all over again. I have a feeling it will buggy, AGOL settings might keep trying to re-enter the chat. view.map.add(muni);
const search = document.querySelector("arcgis-search");
await search.componentOnReady();
search.sources = [{
layer: muni,
searchFields: ["NAME"],
displayField: "NAME",
exactMatch: false,
outFields: ["NAME"],
name: "Town",
placeholder: "search by town",
popupEnabled: false
}];
// Stop ALL popups.
view.popup.autoOpenEnabled = false;
// Track when search is happening
let fromSearch = false;
search.addEventListener("arcgisSearchSelectResult", async (event) => {
fromSearch = true;
const result = event.detail.result;
await view.goTo(result.extent || result.feature.geometry);
});
// Kill popup AFTER it appears
reactiveUtils.when(
() => view.popup?.visible === true,
() => {
if (fromSearch) {
view.popup.visible = false;
fromSearch = false;
}
}
);
// restore popup
view.on("click", async (event) => {
const hit = await view.hitTest(event);
const result = hit.results.find(r => r.graphic.layer === muni);
if (result) {
view.popup.open({
features: [result.graphic],
location: event.mapPoint
});
}
});
... View more
04-20-2026
07:44 AM
|
0
|
0
|
383
|
|
POST
|
'popupEnabled: false' should work fine. You place it in the individual search component, the other layers should not be affected. search.sources = [
{
layer: muni,
searchFields: ["NAME"],
displayField: "NAME",
exactMatch: false,
outFields: ["NAME"],
name: "Town",
placeholder: "search by town",
popupEnabled: false // ******
},
{
name: "ArcGIS World Geocoding Service",
placeholder: "example: Nuuk, GRL",
singleLineFieldName: "SingleLine",
apiKey: "YOUR_ACCESS_TOKEN",
url: "https://geocode-api.arcgis.com/arcgis/rest/services/World/GeocodeServer",
popupEnabled: false
}
];
... View more
04-17-2026
01:08 PM
|
1
|
0
|
437
|
|
POST
|
In my opinion it is not expected behavior. Worth reporting.
... View more
03-23-2026
11:03 AM
|
0
|
0
|
421
|
|
POST
|
The LOD level is 22 at 141 scale so the effective max scale will not go past 141. If the requested maxScale is finer then the LOD then replace it with the lowest possible without going out of bounds. It also seemed to want to fight the inputs as they changed, I think it is because you are setting the constraints separately, so I set them at the same time instead. let finestAvailableScale = 0;
const applyScaleInputs = () => {
if (!view) return;
const requestedMax =
toNumber(maxScaleInput.value);
const safeMax =
(finestAvailableScale > 0 &&
requestedMax > 0 &&
requestedMax < finestAvailableScale)
? finestAvailableScale
: requestedMax;
view.constraints = {
...view.constraints,
minScale: toNumber(minScaleInput.value),
maxScale: safeMax,
};
renderOutputs();
};
mapElement.addEventListener(
"arcgisViewReadyChange", () => {
view = mapElement.view;
const initLODs =
view.constraints.effectiveLODs;
if (initLODs?.length) {
finestAvailableScale =
Math.min(...initLODs.map(
l => l.scale));
}
minScaleInput.value = String(
view.constraints.minScale ?? 0);
maxScaleInput.value = String(
view.constraints.maxScale ?? 0);
view.watch(...);
renderOutputs();
});
... View more
03-23-2026
08:11 AM
|
1
|
2
|
437
|
|
POST
|
I see. If you change it from a scene to a map it works fine. Must be a bug. You could try like the example as a work around perhaps? Might need to add an event listener like sketchViewModel.cancel() after each point creation if it acts the same there too.
... View more
03-23-2026
07:55 AM
|
1
|
0
|
616
|
|
POST
|
You will need a graphics layer to store them in. See this example.
... View more
03-23-2026
06:50 AM
|
0
|
2
|
631
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 02-23-2026 09:28 AM | |
| 2 | Thursday | |
| 1 | a week ago | |
| 1 | a week ago | |
| 1 | 04-17-2026 01:08 PM |
| Online Status |
Offline
|
| Date Last Visited |
11 hours ago
|