@spectrum-web-components/tooltip
Advanced tools
Comparing version 0.42.2 to 0.42.3
@@ -272,3 +272,3 @@ { | ||
"type": { | ||
"text": "HTMLElement" | ||
"text": "HTMLElement | null" | ||
}, | ||
@@ -275,0 +275,0 @@ "privacy": "private", |
{ | ||
"name": "@spectrum-web-components/tooltip", | ||
"version": "0.42.2", | ||
"version": "0.42.3", | ||
"publishConfig": { | ||
@@ -64,6 +64,6 @@ "access": "public" | ||
"dependencies": { | ||
"@spectrum-web-components/base": "^0.42.2", | ||
"@spectrum-web-components/overlay": "^0.42.2", | ||
"@spectrum-web-components/reactive-controllers": "^0.42.2", | ||
"@spectrum-web-components/shared": "^0.42.2" | ||
"@spectrum-web-components/base": "^0.42.3", | ||
"@spectrum-web-components/overlay": "^0.42.3", | ||
"@spectrum-web-components/reactive-controllers": "^0.42.3", | ||
"@spectrum-web-components/shared": "^0.42.3" | ||
}, | ||
@@ -79,3 +79,3 @@ "devDependencies": { | ||
], | ||
"gitHead": "e19af30387032608baaa88c6a17c2ee50103a7c5" | ||
"gitHead": "a03edce4f21f232f1705d8eb222e6e5436cad4c3" | ||
} |
@@ -143,4 +143,4 @@ "use strict"; | ||
let root = start.getRootNode(); | ||
if (true) { | ||
if (root === document) { | ||
if (root === document) { | ||
if (true) { | ||
window.__swc.warn( | ||
@@ -154,4 +154,4 @@ this, | ||
); | ||
return root; | ||
} | ||
return null; | ||
} | ||
@@ -163,4 +163,4 @@ let triggerElement = start.parentElement || root.host || /* c8 ignore next 1 */ | ||
root = start.getRootNode(); | ||
if (true) { | ||
if (root === document) { | ||
if (root === document) { | ||
if (true) { | ||
window.__swc.warn( | ||
@@ -174,4 +174,4 @@ this, | ||
); | ||
return root; | ||
} | ||
return null; | ||
} | ||
@@ -178,0 +178,0 @@ triggerElement = start.parentElement || root.host || /* c8 ignore next 1 */ |
@@ -1,2 +0,2 @@ | ||
"use strict";var c=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var o=(r,s,e,n)=>{for(var t=n>1?void 0:n?m(s,e):s,i=r.length-1,l;i>=0;i--)(l=r[i])&&(t=(n?l(s,e,t):l(t))||t);return n&&t&&c(s,e,t),t};import{html as p,SpectrumElement as h}from"@spectrum-web-components/base";import{property as a,query as d}from"@spectrum-web-components/base/src/decorators.js";import{ifDefined as u}from"@spectrum-web-components/base/src/directives.js";import v from"./tooltip.css.js";import{focusableSelector as b}from"@spectrum-web-components/shared/src/focusable-selectors.js";import{DependencyManagerController as f}from"@spectrum-web-components/reactive-controllers/src/DependencyManger.js";class g extends HTMLElement{constructor(){super();this._open=!1;this._placement="top";this.addEventListener("sp-opened",this.redispatchEvent),this.addEventListener("sp-closed",this.redispatchEvent)}redispatchEvent(e){e.stopPropagation(),this.tooltip.dispatchEvent(new CustomEvent(e.type,{bubbles:e.bubbles,composed:e.composed,detail:e.detail}))}get tooltip(){return this.getRootNode().host}static get observedAttributes(){return["open","placement"]}attributeChangedCallback(e,n,t){switch(e){case"open":this.open=t!==null;break;case"placement":this.placement=t;break}}set open(e){this._open=e;const{tooltip:n}=this;n&&(n.open=e)}get open(){return this._open}set placement(e){this._placement=e;const{tooltip:n}=this;n&&(n.placement=e)}get placement(){return this._placement}get tipElement(){return this.tooltip.tipElement}}customElements.get("sp-tooltip-openable")||customElements.define("sp-tooltip-openable",g);export class Tooltip extends h{constructor(){super(...arguments);this.delayed=!1;this.dependencyManager=new f(this);this.disabled=!1;this.selfManaged=!1;this.offset=0;this.open=!1;this._variant="";this.handleOpenOverlay=()=>{this.open=!0};this.handleCloseOverlay=()=>{this.open=!1}}static get styles(){return[v]}get variant(){return this._variant}set variant(e){if(e!==this.variant){if(["info","positive","negative"].includes(e)){this.setAttribute("variant",e),this._variant=e;return}this.removeAttribute("variant"),this._variant=""}}forwardTransitionEvent(e){this.dispatchEvent(new TransitionEvent(e.type,{bubbles:!0,composed:!0,propertyName:e.propertyName}))}get triggerElement(){var i;let e=this.assignedSlot||this,n=e.getRootNode(),t=e.parentElement||n.host||n;for(;!((i=t==null?void 0:t.matches)!=null&&i.call(t,b));)e=t.assignedSlot||t,n=e.getRootNode(),t=e.parentElement||n.host||n;return t}render(){const e=p` | ||
"use strict";var c=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var o=(r,s,e,t)=>{for(var n=t>1?void 0:t?m(s,e):s,i=r.length-1,l;i>=0;i--)(l=r[i])&&(n=(t?l(s,e,n):l(n))||n);return t&&n&&c(s,e,n),n};import{html as p,SpectrumElement as h}from"@spectrum-web-components/base";import{property as a,query as d}from"@spectrum-web-components/base/src/decorators.js";import{ifDefined as u}from"@spectrum-web-components/base/src/directives.js";import v from"./tooltip.css.js";import{focusableSelector as b}from"@spectrum-web-components/shared/src/focusable-selectors.js";import{DependencyManagerController as f}from"@spectrum-web-components/reactive-controllers/src/DependencyManger.js";class g extends HTMLElement{constructor(){super();this._open=!1;this._placement="top";this.addEventListener("sp-opened",this.redispatchEvent),this.addEventListener("sp-closed",this.redispatchEvent)}redispatchEvent(e){e.stopPropagation(),this.tooltip.dispatchEvent(new CustomEvent(e.type,{bubbles:e.bubbles,composed:e.composed,detail:e.detail}))}get tooltip(){return this.getRootNode().host}static get observedAttributes(){return["open","placement"]}attributeChangedCallback(e,t,n){switch(e){case"open":this.open=n!==null;break;case"placement":this.placement=n;break}}set open(e){this._open=e;const{tooltip:t}=this;t&&(t.open=e)}get open(){return this._open}set placement(e){this._placement=e;const{tooltip:t}=this;t&&(t.placement=e)}get placement(){return this._placement}get tipElement(){return this.tooltip.tipElement}}customElements.get("sp-tooltip-openable")||customElements.define("sp-tooltip-openable",g);export class Tooltip extends h{constructor(){super(...arguments);this.delayed=!1;this.dependencyManager=new f(this);this.disabled=!1;this.selfManaged=!1;this.offset=0;this.open=!1;this._variant="";this.handleOpenOverlay=()=>{this.open=!0};this.handleCloseOverlay=()=>{this.open=!1}}static get styles(){return[v]}get variant(){return this._variant}set variant(e){if(e!==this.variant){if(["info","positive","negative"].includes(e)){this.setAttribute("variant",e),this._variant=e;return}this.removeAttribute("variant"),this._variant=""}}forwardTransitionEvent(e){this.dispatchEvent(new TransitionEvent(e.type,{bubbles:!0,composed:!0,propertyName:e.propertyName}))}get triggerElement(){var i;let e=this.assignedSlot||this,t=e.getRootNode();if(t===document)return null;let n=e.parentElement||t.host||t;for(;!((i=n==null?void 0:n.matches)!=null&&i.call(n,b));){if(e=n.assignedSlot||n,t=e.getRootNode(),t===document)return null;n=e.parentElement||t.host||t}return n}render(){const e=p` | ||
<sp-tooltip-openable | ||
@@ -28,3 +28,3 @@ id="tooltip" | ||
</sp-overlay> | ||
`):e}connectedCallback(){super.connectedCallback(),this.updateComplete.then(()=>{if(!this.selfManaged)return;const e=this.overlayElement;if(e){const n=this.triggerElement;e.triggerElement=n}})}}o([a({type:Boolean})],Tooltip.prototype,"delayed",2),o([a({type:Boolean})],Tooltip.prototype,"disabled",2),o([a({type:Boolean,attribute:"self-managed"})],Tooltip.prototype,"selfManaged",2),o([a({type:Number})],Tooltip.prototype,"offset",2),o([a({type:Boolean,reflect:!0})],Tooltip.prototype,"open",2),o([d("sp-overlay")],Tooltip.prototype,"overlayElement",2),o([a({reflect:!0})],Tooltip.prototype,"placement",2),o([d("#tip")],Tooltip.prototype,"tipElement",2),o([a({type:Number})],Tooltip.prototype,"tipPadding",2),o([a({type:String})],Tooltip.prototype,"variant",1); | ||
`):e}connectedCallback(){super.connectedCallback(),this.updateComplete.then(()=>{if(!this.selfManaged)return;const e=this.overlayElement;if(e){const t=this.triggerElement;e.triggerElement=t}})}}o([a({type:Boolean})],Tooltip.prototype,"delayed",2),o([a({type:Boolean})],Tooltip.prototype,"disabled",2),o([a({type:Boolean,attribute:"self-managed"})],Tooltip.prototype,"selfManaged",2),o([a({type:Number})],Tooltip.prototype,"offset",2),o([a({type:Boolean,reflect:!0})],Tooltip.prototype,"open",2),o([d("sp-overlay")],Tooltip.prototype,"overlayElement",2),o([a({reflect:!0})],Tooltip.prototype,"placement",2),o([d("#tip")],Tooltip.prototype,"tipElement",2),o([a({type:Number})],Tooltip.prototype,"tipPadding",2),o([a({type:String})],Tooltip.prototype,"variant",1); | ||
//# sourceMappingURL=Tooltip.js.map |
@@ -12,3 +12,3 @@ "use strict"; | ||
import "@spectrum-web-components/button/sp-button.js"; | ||
import { stub } from "sinon"; | ||
import { spy, stub } from "sinon"; | ||
import { testForLitDevWarnings } from "../../../test/testing-helpers.js"; | ||
@@ -161,2 +161,30 @@ import { sendMouse } from "../../../test/plugins/browser.js"; | ||
}); | ||
describe("self-managed", () => { | ||
let documentEventsSpy; | ||
before(() => { | ||
documentEventsSpy = spy(document, "addEventListener"); | ||
}); | ||
afterEach(() => { | ||
documentEventsSpy.resetHistory(); | ||
}); | ||
after(() => { | ||
documentEventsSpy.restore(); | ||
}); | ||
it("does not attach event listeners if no trigger was found", async function() { | ||
var _a; | ||
const el = await fixture( | ||
html` | ||
<sp-tooltip self-managed>Help text.</sp-tooltip> | ||
` | ||
); | ||
await elementUpdated(el); | ||
let calls = documentEventsSpy.callCount; | ||
while (calls) { | ||
calls -= 1; | ||
const call = documentEventsSpy.getCall(calls); | ||
expect(call.args[0]).to.not.equal("pointerenter"); | ||
} | ||
expect((_a = el.overlayElement) == null ? void 0 : _a.triggerElement).to.be.null; | ||
}); | ||
}); | ||
describe("dev mode", () => { | ||
@@ -163,0 +191,0 @@ let consoleWarnStub; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
309289
57
2155