label-50132b90.js 3.0 KB

123456
  1. /*!
  2. * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
  4. * v1.0.0-beta.82
  5. */
  6. import{q as queryElementRoots,c as closestElementCrossShadowBoundary}from"./dom-da697a3f.js";var labelClickEvent="calciteInternalLabelClick";var labelConnectedEvent="calciteInternalLabelConnected";var labelDisconnectedEvent="calciteInternaLabelDisconnected";var labelTagName="calcite-label";var onLabelClickMap=new WeakMap;var onLabelConnectedMap=new WeakMap;var onLabelDisconnectedMap=new WeakMap;var unlabeledComponents=new Set;var findLabelForComponent=function(e){var n=e.id;var t=n&&queryElementRoots(e,{selector:"".concat(labelTagName,'[for="').concat(n,'"]')});if(t){return t}var a=closestElementCrossShadowBoundary(e,labelTagName);if(!a||hasAncestorCustomElements(a,e)){return null}return a};function hasAncestorCustomElements(e,n){var t;var a="custom-element-ancestor-check";var l=function(a){a.stopImmediatePropagation();var l=a.composedPath();t=l.slice(l.indexOf(n),l.indexOf(e))};e.addEventListener(a,l,{once:true});n.dispatchEvent(new CustomEvent(a,{composed:true,bubbles:true}));e.removeEventListener(a,l);var o=t.filter((function(t){return t!==n&&t!==e})).filter((function(e){var n;return(n=e.tagName)===null||n===void 0?void 0:n.includes("-")}));return o.length>0}function connectLabel(e){var n=findLabelForComponent(e.el);if(onLabelClickMap.has(n)||!n&&unlabeledComponents.has(e)){return}var t=onLabelDisconnected.bind(e);if(n){e.labelEl=n;var a=onLabelClick.bind(e);onLabelClickMap.set(e.labelEl,a);e.labelEl.addEventListener(labelClickEvent,a);unlabeledComponents.delete(e);document.removeEventListener(labelConnectedEvent,onLabelConnectedMap.get(e));onLabelDisconnectedMap.set(e,t);document.addEventListener(labelDisconnectedEvent,t)}else if(!unlabeledComponents.has(e)){t();document.removeEventListener(labelDisconnectedEvent,onLabelDisconnectedMap.get(e))}}function disconnectLabel(e){unlabeledComponents.delete(e);document.removeEventListener(labelConnectedEvent,onLabelConnectedMap.get(e));document.removeEventListener(labelDisconnectedEvent,onLabelDisconnectedMap.get(e));onLabelConnectedMap.delete(e);onLabelDisconnectedMap.delete(e);if(!e.labelEl){return}var n=onLabelClickMap.get(e.labelEl);e.labelEl.removeEventListener(labelClickEvent,n);onLabelClickMap.delete(e.labelEl)}function getLabelText(e){var n,t;return e.label||((t=(n=e.labelEl)===null||n===void 0?void 0:n.textContent)===null||t===void 0?void 0:t.trim())||""}function onLabelClick(e){if(this.disabled){return}var n=this.el.contains(e.detail.sourceEvent.target);if(n){return}this.onLabelClick(e)}function onLabelConnected(){if(unlabeledComponents.has(this)){connectLabel(this)}}function onLabelDisconnected(){unlabeledComponents.add(this);var e=onLabelConnectedMap.get(this)||onLabelConnected.bind(this);onLabelConnectedMap.set(this,e);document.addEventListener(labelConnectedEvent,e)}export{labelDisconnectedEvent as a,connectLabel as c,disconnectLabel as d,getLabelText as g,labelConnectedEvent as l};