@arcgis/toolkit 5.1.0-next.60 → 5.1.0-next.61

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.
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const log_index = require("../log/index.cjs");
3
4
  function slotChangeHasContent(event) {
4
5
  return slotChangeHasAssignedElement(event) || slotChangeHasTextContent(event);
5
6
  }
@@ -29,6 +30,33 @@ function getSlotAssignedElements(slot, selector) {
29
30
  });
30
31
  return selector ? assignedElements.filter((element) => element.matches(selector)) : assignedElements;
31
32
  }
33
+ const allowedTags = ["arcgis-map", "arcgis-scene", "arcgis-link-chart"];
34
+ function resolveReferenceElement(component, referenceElementString) {
35
+ const referenceElement = referenceElementString ?? component.referenceElement;
36
+ if (typeof referenceElement !== "string") {
37
+ return referenceElement ?? void 0;
38
+ }
39
+ const isComplexSelector = referenceElement.includes("#") || referenceElement.includes(".") || referenceElement.includes("[");
40
+ const rootNode = component.el.getRootNode();
41
+ const resolved = (isComplexSelector ? void 0 : rootNode.querySelector(`#${referenceElement}`)) ?? rootNode.querySelector(referenceElement) ?? (isComplexSelector ? void 0 : getClosestElement(component.el, `#${referenceElement}`)) ?? getClosestElement(component.el, referenceElement);
42
+ if (resolved == null) {
43
+ log_index.log(
44
+ "error",
45
+ component,
46
+ `Expected property \`referenceElement\` to resolve to an <arcgis-map>, <arcgis-scene>, or <arcgis-link-chart> element, but no element matched \`${referenceElement}\`.`
47
+ );
48
+ return void 0;
49
+ }
50
+ if (!allowedTags.includes(resolved.localName)) {
51
+ log_index.log(
52
+ "error",
53
+ component,
54
+ `Expected property \`referenceElement\` to point to an <arcgis-map>, <arcgis-scene>, or <arcgis-link-chart> element, but instead found <${resolved?.localName}>.`,
55
+ { detail: { referenceElement, resolved } }
56
+ );
57
+ }
58
+ return resolved ?? void 0;
59
+ }
32
60
  const classes = (...classes2) => {
33
61
  const effectiveClasses = [];
34
62
  for (let i = 0; i < classes2.length; ++i) {
@@ -186,6 +214,7 @@ exports.getClosestElement = getClosestElement;
186
214
  exports.getElementAttribute = getElementAttribute;
187
215
  exports.getSlotAssignedElements = getSlotAssignedElements;
188
216
  exports.observeAncestorsMutation = observeAncestorsMutation;
217
+ exports.resolveReferenceElement = resolveReferenceElement;
189
218
  exports.setFocusOnElement = setFocusOnElement;
190
219
  exports.slotChangeGetAssignedElements = slotChangeGetAssignedElements;
191
220
  exports.slotChangeGetAssignedNodes = slotChangeGetAssignedNodes;
@@ -1,5 +1,6 @@
1
1
  import { nil } from '../type/index.ts';
2
2
  export * from './slots.ts';
3
+ export * from './reference-element.ts';
3
4
  /**
4
5
  * Combine multiple class names into a single string.
5
6
  *
@@ -1,5 +1,6 @@
1
1
  import { nil } from '../type/index.ts';
2
2
  export * from './slots.ts';
3
+ export * from './reference-element.ts';
3
4
  /**
4
5
  * Combine multiple class names into a single string.
5
6
  *
package/dist/dom/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { log } from "../log/index.js";
1
2
  function slotChangeHasContent(event) {
2
3
  return slotChangeHasAssignedElement(event) || slotChangeHasTextContent(event);
3
4
  }
@@ -27,6 +28,33 @@ function getSlotAssignedElements(slot, selector) {
27
28
  });
28
29
  return selector ? assignedElements.filter((element) => element.matches(selector)) : assignedElements;
29
30
  }
31
+ const allowedTags = ["arcgis-map", "arcgis-scene", "arcgis-link-chart"];
32
+ function resolveReferenceElement(component, referenceElementString) {
33
+ const referenceElement = referenceElementString ?? component.referenceElement;
34
+ if (typeof referenceElement !== "string") {
35
+ return referenceElement ?? void 0;
36
+ }
37
+ const isComplexSelector = referenceElement.includes("#") || referenceElement.includes(".") || referenceElement.includes("[");
38
+ const rootNode = component.el.getRootNode();
39
+ const resolved = (isComplexSelector ? void 0 : rootNode.querySelector(`#${referenceElement}`)) ?? rootNode.querySelector(referenceElement) ?? (isComplexSelector ? void 0 : getClosestElement(component.el, `#${referenceElement}`)) ?? getClosestElement(component.el, referenceElement);
40
+ if (resolved == null) {
41
+ log(
42
+ "error",
43
+ component,
44
+ `Expected property \`referenceElement\` to resolve to an <arcgis-map>, <arcgis-scene>, or <arcgis-link-chart> element, but no element matched \`${referenceElement}\`.`
45
+ );
46
+ return void 0;
47
+ }
48
+ if (!allowedTags.includes(resolved.localName)) {
49
+ log(
50
+ "error",
51
+ component,
52
+ `Expected property \`referenceElement\` to point to an <arcgis-map>, <arcgis-scene>, or <arcgis-link-chart> element, but instead found <${resolved?.localName}>.`,
53
+ { detail: { referenceElement, resolved } }
54
+ );
55
+ }
56
+ return resolved ?? void 0;
57
+ }
30
58
  const classes = (...classes2) => {
31
59
  const effectiveClasses = [];
32
60
  for (let i = 0; i < classes2.length; ++i) {
@@ -185,6 +213,7 @@ export {
185
213
  getElementAttribute,
186
214
  getSlotAssignedElements,
187
215
  observeAncestorsMutation,
216
+ resolveReferenceElement,
188
217
  setFocusOnElement,
189
218
  slotChangeGetAssignedElements,
190
219
  slotChangeGetAssignedNodes,
@@ -0,0 +1,6 @@
1
+ type ArcgisComponentBase<T> = {
2
+ el: HTMLElement;
3
+ referenceElement?: T | string | null | undefined;
4
+ };
5
+ export declare function resolveReferenceElement<T extends Element>(component: ArcgisComponentBase<T>, referenceElementString?: ArcgisComponentBase<T>["referenceElement"] | string): T | undefined;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ type ArcgisComponentBase<T> = {
2
+ el: HTMLElement;
3
+ referenceElement?: T | string | null | undefined;
4
+ };
5
+ export declare function resolveReferenceElement<T extends Element>(component: ArcgisComponentBase<T>, referenceElementString?: ArcgisComponentBase<T>["referenceElement"] | string): T | undefined;
6
+ export {};
@@ -2,7 +2,7 @@ declare const supportedLocalesArray: ["ar", "bg", "bs", "ca", "cs", "da", "de",
2
2
  /**
3
3
  * The list of supported locales for ArcGIS Maps SDK for JavaScript components.
4
4
  */
5
- export declare const supportedLocales: Set<"hr" | "th" | "tr" | "el" | "ar" | "bg" | "bs" | "ca" | "cs" | "da" | "de" | "en" | "es" | "et" | "fi" | "fr" | "he" | "hu" | "id" | "it" | "ja" | "ko" | "lt" | "lv" | "nl" | "nb" | "no" | "pl" | "pt-BR" | "pt-PT" | "ro" | "ru" | "sk" | "sl" | "sr" | "sv" | "uk" | "vi" | "zh-CN" | "zh-HK" | "zh-TW">;
5
+ export declare const supportedLocales: Set<"el" | "hr" | "th" | "tr" | "ar" | "bg" | "bs" | "ca" | "cs" | "da" | "de" | "en" | "es" | "et" | "fi" | "fr" | "he" | "hu" | "id" | "it" | "ja" | "ko" | "lt" | "lv" | "nl" | "nb" | "no" | "pl" | "pt-BR" | "pt-PT" | "ro" | "ru" | "sk" | "sl" | "sr" | "sv" | "uk" | "vi" | "zh-CN" | "zh-HK" | "zh-TW">;
6
6
  /**
7
7
  * TypeScript union type for each locale supported by WebGIS SDK
8
8
  */
@@ -2,7 +2,7 @@ declare const supportedLocalesArray: ["ar", "bg", "bs", "ca", "cs", "da", "de",
2
2
  /**
3
3
  * The list of supported locales for ArcGIS Maps SDK for JavaScript components.
4
4
  */
5
- export declare const supportedLocales: Set<"hr" | "th" | "tr" | "el" | "ar" | "bg" | "bs" | "ca" | "cs" | "da" | "de" | "en" | "es" | "et" | "fi" | "fr" | "he" | "hu" | "id" | "it" | "ja" | "ko" | "lt" | "lv" | "nl" | "nb" | "no" | "pl" | "pt-BR" | "pt-PT" | "ro" | "ru" | "sk" | "sl" | "sr" | "sv" | "uk" | "vi" | "zh-CN" | "zh-HK" | "zh-TW">;
5
+ export declare const supportedLocales: Set<"el" | "hr" | "th" | "tr" | "ar" | "bg" | "bs" | "ca" | "cs" | "da" | "de" | "en" | "es" | "et" | "fi" | "fr" | "he" | "hu" | "id" | "it" | "ja" | "ko" | "lt" | "lv" | "nl" | "nb" | "no" | "pl" | "pt-BR" | "pt-PT" | "ro" | "ru" | "sk" | "sl" | "sr" | "sv" | "uk" | "vi" | "zh-CN" | "zh-HK" | "zh-TW">;
6
6
  /**
7
7
  * TypeScript union type for each locale supported by WebGIS SDK
8
8
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/toolkit",
3
- "version": "5.1.0-next.60",
3
+ "version": "5.1.0-next.61",
4
4
  "description": "Collection of common internal patterns and utilities for ArcGIS Maps SDK for JavaScript components.",
5
5
  "homepage": "https://developers.arcgis.com/javascript/latest/",
6
6
  "sideEffects": false,