@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
5 lines • 2.06 kB
JavaScript
/*!
* All material copyright ESRI, All Rights Reserved, unless otherwise specified.
* See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
*/
System.register(["./p-ec9bab33.system.js"],(function(e){"use strict";var t,n;return{setters:[function(e){t=e.q;n=e.c}],execute:function(){e({c:s,d:d,g:f});var r="calciteInternalLabelClick";var i=e("l","calciteInternalLabelConnected");var a=e("a","calciteInternaLabelDisconnected");var l="calcite-label";var c=new WeakMap;var o=new Set;var v=function(e){var r=e.id;var i=r&&t(e,{selector:"".concat(l,'[for="').concat(r,'"]')});if(i){return i}var a=n(e,l);if(!a||u(a,e)){return null}return a};function u(e,t){var n;var r="custom-element-ancestor-check";var i=function(r){r.stopImmediatePropagation();var i=r.composedPath();n=i.slice(i.indexOf(t),i.indexOf(e))};e.addEventListener(r,i,{once:true});t.dispatchEvent(new CustomEvent(r,{composed:true,bubbles:true}));e.removeEventListener(r,i);var a=n.filter((function(n){return n!==t&&n!==e})).filter((function(e){var t;return(t=e.tagName)===null||t===void 0?void 0:t.includes("-")}));return a.length>0}function s(e){var t=v(e.el);if(c.has(t)){return}var n=m.bind(e);var l=E.bind(e);if(t){var u=function(){e.labelEl=t;var n=b.bind(e);c.set(e.labelEl,n);e.labelEl.addEventListener(r,n)};u();o.delete(e);document.removeEventListener(i,n);document.addEventListener(a,l)}else if(!t&&!o.has(e)){l();document.removeEventListener(a,l)}}function d(e){var t=m.bind(e);var n=E.bind(e);o.delete(e);document.removeEventListener(i,t);document.removeEventListener(a,n);if(!e.labelEl){return}var l=c.get(e.labelEl);e.labelEl.removeEventListener(r,l);c.delete(e.labelEl)}function f(e){var t,n;return e.label||((n=(t=e.labelEl)===null||t===void 0?void 0:t.textContent)===null||n===void 0?void 0:n.trim())||""}function b(e){if(this.disabled){return}var t=this.el.contains(e.detail.sourceEvent.target);if(t){return}this.onLabelClick(e)}function m(){if(o.has(this)){s(this)}}function E(){o.add(this);var e=m.bind(this);document.addEventListener(i,e)}}}}));