From f4260f7de61a7a6a602deeabd5fd205be74eb2bd Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Mon, 20 Jul 2026 16:36:18 +0800 Subject: [PATCH 1/2] chore: bump version 1.8.0 --- src/components/BootstrapBlazor.DriverJs/wwwroot/driver.css | 3 +-- src/components/BootstrapBlazor.DriverJs/wwwroot/driver.js.mjs | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/BootstrapBlazor.DriverJs/wwwroot/driver.css b/src/components/BootstrapBlazor.DriverJs/wwwroot/driver.css index afad5a2c..861e406e 100644 --- a/src/components/BootstrapBlazor.DriverJs/wwwroot/driver.css +++ b/src/components/BootstrapBlazor.DriverJs/wwwroot/driver.css @@ -1,2 +1 @@ -.driver-active .driver-overlay{pointer-events:none}.driver-active.driver-no-scroll{overflow:hidden}.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in var(--driver-animation-duration,.4s) ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in var(--driver-animation-duration,.4s)}.driver-popover{all:unset;font-family:var(--driver-popover-font-family,"Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", Helvetica, Arial, sans-serif);box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover-title{zoom:1;margin:0;font-size:19px;font-weight:700;line-height:1.5;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{zoom:1;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.5}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer-btn{all:unset;box-sizing:border-box;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font-size:12px;line-height:1.3;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}.driver-active-element-parent-no-scroll{overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center,.driver-popover-arrow-none{display:none} -/*$vite$:1*/ \ No newline at end of file +.driver-popover{all:unset;font-family:var(--driver-popover-font-family,"Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", Helvetica, Arial, sans-serif);box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover-title{zoom:1;margin:0;font-size:19px;font-weight:700;line-height:1.5;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{zoom:1;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.5}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer-btn{all:unset;box-sizing:border-box;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font-size:12px;line-height:1.3;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center,.driver-popover-arrow-none{display:none}.driver-active .driver-overlay{pointer-events:none}.driver-active.driver-no-scroll{overflow:hidden}.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in var(--driver-animation-duration,.4s) ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in var(--driver-animation-duration,.4s)}.driver-active-element-parent-no-scroll{overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important} diff --git a/src/components/BootstrapBlazor.DriverJs/wwwroot/driver.js.mjs b/src/components/BootstrapBlazor.DriverJs/wwwroot/driver.js.mjs index d8f5e21e..59898399 100644 --- a/src/components/BootstrapBlazor.DriverJs/wwwroot/driver.js.mjs +++ b/src/components/BootstrapBlazor.DriverJs/wwwroot/driver.js.mjs @@ -1 +1,2 @@ -function e(e){return"function"==typeof e?e():"string"==typeof e?document.querySelector(e):e}function t(e,t,o,i){return(e/=i/2)<1?o/2*e*e+t:-o/2*(--e*(e-2)-1)+t}function o(e){let t='a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])';return e.flatMap(e=>{let o=e.matches(t),i=Array.from(e.querySelectorAll(t));return[...o?[e]:[],...i]}).filter(e=>"none"!==getComputedStyle(e).pointerEvents&&function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}(e))}function i(e,t){if(!t||function(e){let t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}(t))return;let o=e.getConfig("smoothScroll"),i=t.offsetHeight>window.innerHeight;t.scrollIntoView({behavior:!o||n(t)?"auto":"smooth",inline:"center",block:i?"start":"center"})}function n(e){if(!e||!e.parentElement)return;let t=e.parentElement;return t.scrollHeight>t.clientHeight}function r(e,o,i,n,r){let s=e.getState("__activeStagePosition"),l=s||n.getBoundingClientRect(),d=r.getBoundingClientRect();s={x:t(o,l.x,d.x-l.x,i),y:t(o,l.y,d.y-l.y,i),width:t(o,l.width,d.width-l.width,i),height:t(o,l.height,d.height-l.height,i)},a(e,s),e.setState("__activeStagePosition",s)}function s(e,t){if(!t)return;let o=t.getBoundingClientRect(),i={x:o.x,y:o.y,width:o.width,height:o.height};e.setState("__activeStagePosition",i),a(e,i)}function l(e,t){let o=function(e,t){let o=window.innerWidth,i=window.innerHeight,n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.classList.add("driver-overlay","driver-overlay-animated"),n.setAttribute("viewBox",`0 0 ${o} ${i}`),n.setAttribute("xmlSpace","preserve"),n.setAttribute("xmlnsXlink","http://www.w3.org/1999/xlink"),n.setAttribute("version","1.1"),n.setAttribute("preserveAspectRatio","xMinYMin slice"),n.style.fillRule="evenodd",n.style.clipRule="evenodd",n.style.strokeLinejoin="round",n.style.strokeMiterlimit="2",n.style.zIndex="10000",n.style.position="fixed",n.style.top="0",n.style.left="0",n.style.width="100%",n.style.height="100%";let r=document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",d(e,t)),r.style.fill=e.getConfig("overlayColor")||"rgb(0,0,0)",r.style.opacity=`${e.getConfig("overlayOpacity")}`,r.style.pointerEvents="auto",r.style.cursor="auto",n.appendChild(r),n}(e,t);document.body.appendChild(o),_(o,t=>{"path"===t.target.tagName&&e.emit("overlayClick")}),e.setState("__overlaySvg",o)}function a(e,t){let o=e.getState("__overlaySvg");if(!o)return void l(e,t);let i=o.firstElementChild;if("path"!==i?.tagName)throw Error("no path element found in stage svg");i.setAttribute("d",d(e,t))}function d(e,t){let o=window.innerWidth,i=window.innerHeight,n=e.getConfig("stagePadding")||0,r=e.getConfig("stageRadius")||0,s=t.width+2*n,l=t.height+2*n,a=Math.min(r,s/2,l/2),d=Math.floor(Math.max(a,0)),p=s-2*d,g=l-2*d;return`M${o},0L0,0L0,${i}L${o},${i}L${o},0Z\n M${t.x-n+d},${t.y-n} h${p} a${d},${d} 0 0 1 ${d},${d} v${g} a${d},${d} 0 0 1 -${d},${d} h-${p} a${d},${d} 0 0 1 -${d},-${d} v-${g} a${d},${d} 0 0 1 ${d},-${d} z`}function p(e,t){let{elementDimensions:o,popoverDimensions:i,popoverPadding:n,popoverArrowDimensions:r}=t;return"start"===e?Math.max(Math.min(o.top-n,window.innerHeight-i.realHeight-r.width),r.width):"end"===e?Math.max(Math.min(o.top-i?.realHeight+o.height+n,window.innerHeight-i?.realHeight-r.width),r.width):"center"===e?Math.max(Math.min(o.top+o.height/2-i?.realHeight/2,window.innerHeight-i?.realHeight-r.width),r.width):0}function g(e,t){let{elementDimensions:o,popoverDimensions:i,popoverPadding:n,popoverArrowDimensions:r}=t;return"start"===e?Math.max(Math.min(o.left-n,window.innerWidth-i.realWidth-r.width),r.width):"end"===e?Math.max(Math.min(o.left-i?.realWidth+o.width+n,window.innerWidth-i?.realWidth-r.width),r.width):"center"===e?Math.max(Math.min(o.left+o.width/2-i?.realWidth/2,window.innerWidth-i?.realWidth-r.width),r.width):0}function v(e,t,o){let i=e.getState("popover");if(!i)return;let{align:n="start",side:r="bottom"}=o?.popover||{},s=n,l="driver-dummy-element"===t.id?"over":r,a=e.getConfig("stagePadding")||0,d=function(e){let t=e.getState("popover");if(!t?.wrapper)return;let o=t.wrapper.getBoundingClientRect(),i=e.getConfig("stagePadding")||0,n=e.getConfig("popoverOffset")||0;return{width:o.width+i+n,height:o.height+i+n,realWidth:o.width,realHeight:o.height}}(e),v=i.arrow.getBoundingClientRect(),c=t.getBoundingClientRect(),u=c.top-d.height,f=u>=0,m=window.innerHeight-(c.bottom+d.height),w=m>=0,y=c.left-d.width,C=y>=0,S=window.innerWidth-(c.right+d.width),x=S>=0,b=!(f||w||C||x),k=l;if("top"===l&&f?x=C=w=!1:"bottom"===l&&w?x=C=f=!1:"left"===l&&C?x=f=w=!1:"right"===l&&x&&(C=f=w=!1),"over"===l){let e=window.innerWidth/2-d.realWidth/2,t=window.innerHeight/2-d.realHeight/2;i.wrapper.style.left=`${e}px`,i.wrapper.style.right="auto",i.wrapper.style.top=`${t}px`,i.wrapper.style.bottom="auto"}else if(b){let e=window.innerWidth/2-d?.realWidth/2;i.wrapper.style.left=`${e}px`,i.wrapper.style.right="auto",i.wrapper.style.bottom="10px",i.wrapper.style.top="auto"}else if(C){let e=Math.min(y,window.innerWidth-d?.realWidth-v.width),t=p(s,{elementDimensions:c,popoverDimensions:d,popoverPadding:a,popoverArrowDimensions:v});i.wrapper.style.left=`${e}px`,i.wrapper.style.top=`${t}px`,i.wrapper.style.bottom="auto",i.wrapper.style.right="auto",k="left"}else if(x){let e=Math.min(S,window.innerWidth-d?.realWidth-v.width),t=p(s,{elementDimensions:c,popoverDimensions:d,popoverPadding:a,popoverArrowDimensions:v});i.wrapper.style.right=`${e}px`,i.wrapper.style.top=`${t}px`,i.wrapper.style.bottom="auto",i.wrapper.style.left="auto",k="right"}else if(f){let e=Math.min(u,window.innerHeight-d.realHeight-v.width),t=g(s,{elementDimensions:c,popoverDimensions:d,popoverPadding:a,popoverArrowDimensions:v});i.wrapper.style.top=`${e}px`,i.wrapper.style.left=`${t}px`,i.wrapper.style.bottom="auto",i.wrapper.style.right="auto",k="top"}else if(w){let e=Math.min(m,window.innerHeight-d?.realHeight-v.width),t=g(s,{elementDimensions:c,popoverDimensions:d,popoverPadding:a,popoverArrowDimensions:v});i.wrapper.style.left=`${t}px`,i.wrapper.style.bottom=`${e}px`,i.wrapper.style.top="auto",i.wrapper.style.right="auto",k="bottom"}h(e,b?"over":k,s,t),[...i.wrapper.classList].filter(e=>e.startsWith("driver-popover-side-")||e.startsWith("driver-popover-align-")).forEach(e=>i.wrapper.classList.remove(e)),i.wrapper.classList.add(`driver-popover-side-${k}`),i.wrapper.classList.add(`driver-popover-align-${s}`)}var c=10,u=15;function f(e,t,o,i,n){let r=i-o;return e<=o&&t>=i?"start"===n?20:"end"===n?r-u-c/2:r/2:(Math.min(Math.max(e,o),i)+Math.min(Math.max(t,o),i))/2-o}function m(e,t){let o=u,i=t-u-c;if(io.top&&t.topo.left&&t.left{if(e.getState("__transitionCallback")!==C)return;let i=Date.now()-l,p=n-i<=n/2;o.popover&&p&&!y&&w&&(L(e,t,o),y=!0),e.getConfig("animate")&&i{e.classList.remove("driver-active-element-parent","driver-active-element-parent-no-scroll")}),d.classList.remove("driver-active-element","driver-no-interaction"),d.removeAttribute("aria-haspopup"),d.removeAttribute("aria-expanded"),d.removeAttribute("aria-controls"),(o.disableActiveInteraction??e.getConfig("disableActiveInteraction"))&&t.classList.add("driver-no-interaction");let S=t.parentElement;S&&S!==document.body&&(S.classList.add("driver-active-element-parent"),function(e){let t=window.getComputedStyle(e);return[t.overflow,t.overflowX,t.overflowY].some(e=>"auto"===e||"scroll"===e)}(S)&&S.classList.add("driver-active-element-parent-no-scroll")),t.classList.add("driver-active-element"),t.setAttribute("aria-haspopup","dialog"),t.setAttribute("aria-expanded","true"),t.setAttribute("aria-controls","driver-popover-content")}function S(e){let t=e.getState("__resizeTimeout");t&&window.cancelAnimationFrame(t),e.setState("__resizeTimeout",window.requestAnimationFrame(()=>y(e)))}function x(e,t){if(!e.getState("isInitialized")||"Tab"!==t.key&&9!==t.keyCode)return;let i=e.getState("__activeElement"),n=e.getState("popover")?.wrapper,r=o([...n?[n]:[],...i?[i]:[]]),s=r[0],l=r[r.length-1];t.preventDefault(),t.shiftKey?(r[r.indexOf(document.activeElement)-1]||l)?.focus():(r[r.indexOf(document.activeElement)+1]||s)?.focus()}var b=["pointerdown","mousedown","pointerup","mouseup","click"],k=new WeakMap;function _(e,t,o){E(e);let i=i=>{let n=i.target;e.contains(n)&&((!o||o(n))&&(i.preventDefault(),i.stopPropagation(),i.stopImmediatePropagation()),"click"===i.type&&t?.(i))};for(let e of b)document.addEventListener(e,i,!0);k.set(e,i)}function E(e){let t=k.get(e);if(t){for(let e of b)document.removeEventListener(e,t,!0);k.delete(e)}}function L(e,t,n){let r=e.getState("popover");r&&(E(r.wrapper),r.wrapper.remove()),r=function(){let e=document.createElement("div");e.classList.add("driver-popover");let t=document.createElement("div");t.classList.add("driver-popover-arrow");let o=document.createElement("header");o.id="driver-popover-title",o.classList.add("driver-popover-title"),o.style.display="none",o.innerText="Popover Title";let i=document.createElement("div");i.id="driver-popover-description",i.classList.add("driver-popover-description"),i.style.display="none",i.innerText="Popover description is here";let n=document.createElement("button");n.type="button",n.classList.add("driver-popover-close-btn"),n.setAttribute("aria-label","Close"),n.innerHTML="×";let r=document.createElement("footer");r.classList.add("driver-popover-footer");let s=document.createElement("span");s.classList.add("driver-popover-progress-text"),s.innerText="";let l=document.createElement("span");l.classList.add("driver-popover-navigation-btns");let a=document.createElement("button");a.type="button",a.classList.add("driver-popover-prev-btn","driver-popover-footer-btn"),a.innerHTML="Previous";let d=document.createElement("button");return d.type="button",d.classList.add("driver-popover-next-btn","driver-popover-footer-btn"),d.innerHTML="Next",l.appendChild(a),l.appendChild(d),r.appendChild(s),r.appendChild(l),e.appendChild(n),e.appendChild(t),e.appendChild(o),e.appendChild(i),e.appendChild(r),{wrapper:e,arrow:t,title:o,description:i,footer:r,previousButton:a,nextButton:d,closeButton:n,footerButtons:l,progress:s}}(),document.body.appendChild(r.wrapper);let{title:s,description:l,showButtons:a,disableButtons:d,showProgress:p,nextBtnText:g=e.getConfig("nextBtnText")||"Next",prevBtnText:c=e.getConfig("prevBtnText")||"Previous",progressText:u=e.getConfig("progressText")||"{current} of {total}"}=n.popover||{};r.nextButton.innerHTML=g,r.previousButton.innerHTML=c,r.progress.innerHTML=u;let f=e.getConfig("steps")||[],m=e.getState("activeIndex"),h=void 0!==m&&m===f.length-1;h&&r.nextButton.classList.add("driver-popover-done-btn"),s?(r.title.innerHTML=s,r.title.style.display="block"):r.title.style.display="none",l?(r.description.innerHTML=l,r.description.style.display="block"):r.description.style.display="none";let w=a||e.getConfig("showButtons"),y=p||e.getConfig("showProgress")||!1,C=w?.includes("next")||w?.includes("previous")||y;r.closeButton.style.display=w.includes("close")?"block":"none",C?(r.footer.style.display="flex",r.progress.style.display=y?"block":"none",r.nextButton.style.display=w.includes("next")?"block":"none",r.previousButton.style.display=w.includes("previous")?"block":"none"):r.footer.style.display="none";let S=d||e.getConfig("disableButtons")||[];S?.includes("next")&&(r.nextButton.disabled=!0,r.nextButton.classList.add("driver-popover-btn-disabled")),S?.includes("previous")&&(r.previousButton.disabled=!0,r.previousButton.classList.add("driver-popover-btn-disabled")),S?.includes("close")&&(r.closeButton.disabled=!0,r.closeButton.classList.add("driver-popover-btn-disabled"));let x=r.wrapper;x.style.display="block",x.style.left="",x.style.top="",x.style.bottom="",x.style.right="",x.id="driver-popover-content",x.setAttribute("role","dialog"),x.setAttribute("aria-labelledby","driver-popover-title"),x.setAttribute("aria-describedby","driver-popover-description"),r.arrow.className="driver-popover-arrow",x.className=`driver-popover ${n.popover?.popoverClass||e.getConfig("popoverClass")||""}`.trim(),_(r.wrapper,o=>{let i=o.target,r=n.popover?.onNextClick||e.getConfig("onNextClick"),s=n.popover?.onPrevClick||e.getConfig("onPrevClick"),l=n.popover?.onCloseClick||e.getConfig("onCloseClick"),a=n.popover?.onDoneClick||e.getConfig("onDoneClick");return i.closest(".driver-popover-next-btn")?h&&a?a(t,n,e.getHookOpts()):r?r(t,n,e.getHookOpts()):e.emit("nextClick"):i.closest(".driver-popover-prev-btn")?s?s(t,n,e.getHookOpts()):e.emit("prevClick"):i.closest(".driver-popover-close-btn")?l?l(t,n,e.getHookOpts()):e.emit("closeClick"):void 0},e=>!r?.description.contains(e)&&!r?.title.contains(e)&&!!e.closest(".driver-popover-prev-btn, .driver-popover-next-btn, .driver-popover-close-btn")),e.setState("popover",r);let b=n.popover?.onPopoverRender||e.getConfig("onPopoverRender");b&&b(r,e.getHookOpts()),v(e,t,n),function(e,t,o,i){t.wrapper.querySelectorAll("img").forEach(t=>{if(t.complete)return;let n=()=>v(e,o,i);t.addEventListener("load",n,{once:!0}),t.addEventListener("error",n,{once:!0})})}(e,r,t,n),i(e,x);let k=o([x,...t.classList.contains("driver-dummy-element")?[]:[t]]);k.length>0&&k[0].focus()}function H(t={}){let o=function(e={}){let t=function(){let e={};function t(t={}){e={animate:!0,duration:400,allowClose:!0,allowScroll:!0,overlayClickBehavior:"close",overlayOpacity:.7,smoothScroll:!1,disableActiveInteraction:!1,skipMissingElement:!1,showProgress:!1,stagePadding:10,stageRadius:5,popoverOffset:10,showButtons:["next","previous","close"],disableButtons:[],overlayColor:"#000",...t}}return t(),{getConfig:t=>t?e[t]:e,configure:t}}();t.configure(e);let o,i=function(){let e={};return{getState:t=>t?e[t]:e,setState:(t,o)=>{e[t]=o},resetState:function(){e={}}}}(),n=function(){let e={};return{listen:function(t,o){e[t]=o},emit:function(t){e[t]?.()},reset:function(){e={}}}}();return{getConfig:t.getConfig,setConfig:t.configure,getState:i.getState,setState:i.setState,resetState:i.resetState,listen:n.listen,emit:n.emit,resetEmitter:n.reset,getDriver:()=>o,setDriver:e=>{o=e},getHookOpts:e=>{let n=e||i.getState();return{config:t.getConfig(),state:n,driver:o,index:n.activeIndex}}}}(t);function i(){o.getConfig("allowClose")&&v()}function n(){let e=o.getConfig("overlayClickBehavior");if(o.getConfig("allowClose")&&"close"===e)v();else{if("function"==typeof e){let t=o.getState("__activeStep");return void e(o.getState("__activeElement"),t,o.getHookOpts())}if("nextStep"===e){let e=o.getState("activeStep"),t=o.getState("activeElement"),i=o.getConfig("steps")||[],n=o.getState("activeIndex")===i.length-1,s=e?.popover?.onDoneClick||o.getConfig("onDoneClick");if(n&&s)return void s(t,e,o.getHookOpts());let l=e?.popover?.onNextClick||o.getConfig("onNextClick");if(l)return void l(t,e,o.getHookOpts());r()}}}function r(){let e=o.getState("activeIndex"),t=o.getConfig("steps")||[];if(void 0===e)return;let i=e+1;t[i]?g(i):v()}function s(){let e=o.getState("activeIndex"),t=o.getConfig("steps")||[];if(void 0===e)return;let i=e-1;t[i]?g(i):v()}function l(){if(o.getState("__transitionCallback"))return;let e=o.getState("activeIndex"),t=o.getState("__activeStep"),i=o.getState("__activeElement");if(void 0===e||void 0===t||!(o.getConfig("steps")||[])[e-1])return;let n=t.popover?.onPrevClick||o.getConfig("onPrevClick");if(n)return n(i,t,o.getHookOpts());s()}function a(){if(o.getState("__transitionCallback"))return;let e=o.getState("activeIndex"),t=o.getState("__activeStep"),i=o.getState("__activeElement");if(void 0===e||void 0===t)return;let n=e===(o.getConfig("steps")||[]).length-1,s=t.popover?.onDoneClick||o.getConfig("onDoneClick");if(n&&s)return s(i,t,o.getHookOpts());let l=t.popover?.onNextClick||o.getConfig("onNextClick");if(l)return l(i,t,o.getHookOpts());r()}function d(){o.getState("isInitialized")||(o.setState("isInitialized",!0),document.body.classList.add("driver-active",o.getConfig("animate")?"driver-fade":"driver-simple"),o.getConfig("allowScroll")||document.body.classList.add("driver-no-scroll"),document.body.style.setProperty("--driver-animation-duration",`${o.getConfig("duration")||400}ms`),function(e){let t=t=>function(e,t){(e.getConfig("allowKeyboardControl")??1)&&("Escape"===t.key?e.emit("escapePress"):"ArrowRight"===t.key?e.emit("arrowRightPress"):"ArrowLeft"===t.key&&e.emit("arrowLeftPress"))}(e,t),o=t=>x(e,t),i=()=>S(e),n=()=>S(e);e.setState("__events",{onKeyup:t,onKeydown:o,onResize:i,onScroll:n}),window.addEventListener("keyup",t,!1),window.addEventListener("keydown",o,!1),window.addEventListener("resize",i),window.addEventListener("scroll",n)}(o),o.listen("overlayClick",n),o.listen("escapePress",i),o.listen("closeClick",i),o.listen("arrowLeftPress",l),o.listen("arrowRightPress",a))}function p(t){return!(!(t.skipMissingElement??o.getConfig("skipMissingElement"))||!t.element)&&!e(t.element)}function g(e=0){let t=o.getConfig("steps");if(!t)return console.error("No steps to drive through"),void v();if(!t[e])return void v();let i=t[e];if(p(i)){let i=o.getState("activeIndex"),n="number"==typeof i&&e!c?.length||c.includes(e)),f=i.popover?.onNextClick||o.getConfig("onNextClick"),m=i.popover?.onPrevClick||o.getConfig("onPrevClick"),h=i.popover?.onCloseClick||o.getConfig("onCloseClick");w(o,{...i,popover:{showButtons:u,nextBtnText:n?void 0:s,disableButtons:[...r?[]:["previous"]],showProgress:a,onNextClick:f||(()=>{n?g(e+1):v()}),onPrevClick:m||(()=>{g(e-1)}),onCloseClick:h||(()=>{v()}),...i?.popover||{},progressText:d}})}function v(e=!0){let t=o.getState("__activeElement"),i=o.getState("__activeStep"),n=o.getState("__activeOnDestroyed"),r=o.getConfig("onDestroyStarted");if(e&&r)return void r(t&&"driver-dummy-element"!==t?.id?t:void 0,i,o.getHookOpts());let s=i?.onDeselected||o.getConfig("onDeselected"),l=o.getConfig("onDestroyed");document.body.classList.remove("driver-active","driver-fade","driver-simple","driver-no-scroll"),document.body.style.removeProperty("--driver-animation-duration"),function(e){let t=e.getState("__events");t&&(window.removeEventListener("keyup",t.onKeyup),window.removeEventListener("keydown",t.onKeydown),window.removeEventListener("resize",t.onResize),window.removeEventListener("scroll",t.onScroll))}(o),function(e){let t=e.getState("popover");t&&(E(t.wrapper),t.wrapper.parentElement?.removeChild(t.wrapper))}(o),document.getElementById("driver-dummy-element")?.remove(),document.querySelectorAll(".driver-active-element").forEach(e=>{let t=e.parentElement;t&&t!==document.body&&t.classList.remove("driver-active-element-parent","driver-active-element-parent-no-scroll"),e.classList.remove("driver-active-element","driver-no-interaction"),e.removeAttribute("aria-haspopup"),e.removeAttribute("aria-expanded"),e.removeAttribute("aria-controls")}),function(e){let t=e.getState("__overlaySvg");t&&(E(t),t.remove())}(o),o.resetEmitter();let a=o.getState();if(o.resetState(),t&&i){let e="driver-dummy-element"===t.id;s&&s(e?void 0:t,i,o.getHookOpts(a)),l&&l(e?void 0:t,i,o.getHookOpts(a))}n&&n.focus()}let c={isActive:()=>o.getState("isInitialized")||!1,refresh:()=>S(o),drive:(e=0)=>{d(),g(e)},setConfig:o.setConfig,setSteps:e=>{o.resetState(),o.setConfig({...o.getConfig(),steps:e})},getConfig:o.getConfig,getState:o.getState,getActiveIndex:()=>o.getState("activeIndex"),isFirstStep:()=>0===o.getState("activeIndex"),isLastStep:()=>{let e=o.getConfig("steps")||[],t=o.getState("activeIndex");return void 0!==t&&t===e.length-1},getActiveStep:()=>o.getState("activeStep"),getActiveElement:()=>o.getState("activeElement"),getPreviousElement:()=>o.getState("previousElement"),getPreviousStep:()=>o.getState("previousStep"),getNextStep:()=>{let e=o.getConfig("steps")||[],t=o.getState("activeIndex");return void 0===t?void 0:e[t+1]},moveNext:r,movePrevious:s,moveTo:function(e){(o.getConfig("steps")||[])[e]?g(e):v()},hasNextStep:()=>{let e=o.getConfig("steps")||[],t=o.getState("activeIndex");return void 0!==t&&!!e[t+1]},hasPreviousStep:()=>{let e=o.getConfig("steps")||[],t=o.getState("activeIndex");return void 0!==t&&!!e[t-1]},highlight:e=>{d(),w(o,{...e,popover:e.popover?{showButtons:[],showProgress:!1,progressText:"",...e.popover}:void 0})},destroy:()=>{v(!1)}};return o.setDriver(c),c}export{H as driver}; \ No newline at end of file +const e=[`pointerdown`,`mousedown`,`pointerup`,`mouseup`,`click`],t=new WeakMap;function n(n,i,a){r(n);let o=e=>{let t=e.target;n.contains(t)&&((!a||a(t))&&(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()),e.type===`click`&&i?.(e))};for(let t of e)document.addEventListener(t,o,!0);t.set(n,o)}function r(n){let r=t.get(n);if(r){for(let t of e)document.removeEventListener(t,r,!0);t.delete(n)}}function i(e,t){let n=e.wrapper.getBoundingClientRect();return{width:n.width+t,height:n.height+t,realWidth:n.width,realHeight:n.height}}function a(e,t){let{elementDimensions:n,popoverDimensions:r,popoverPadding:i,popoverArrowDimensions:a}=t;return e===`start`?Math.max(Math.min(n.top-i,window.innerHeight-r.realHeight-a.width),a.width):e===`end`?Math.max(Math.min(n.top-r?.realHeight+n.height+i,window.innerHeight-r?.realHeight-a.width),a.width):e===`center`?Math.max(Math.min(n.top+n.height/2-r?.realHeight/2,window.innerHeight-r?.realHeight-a.width),a.width):0}function o(e,t){let{elementDimensions:n,popoverDimensions:r,popoverPadding:i,popoverArrowDimensions:a}=t;return e===`start`?Math.max(Math.min(n.left-i,window.innerWidth-r.realWidth-a.width),a.width):e===`end`?Math.max(Math.min(n.left-r?.realWidth+n.width+i,window.innerWidth-r?.realWidth-a.width),a.width):e===`center`?Math.max(Math.min(n.left+n.width/2-r?.realWidth/2,window.innerWidth-r?.realWidth-a.width),a.width):0}function s(e,t,n){let{align:r,side:s}=n,c=n.centered?`over`:s,l=n.padding,u=i(e,n.offset),f=e.arrow.getBoundingClientRect(),p=t.getBoundingClientRect(),m=p.top-u.height,h=m>=0,g=window.innerHeight-(p.bottom+u.height),_=g>=0,v=p.left-u.width,y=v>=0,b=window.innerWidth-(p.right+u.width),x=b>=0,S=!h&&!_&&!y&&!x,C=c;if(c===`top`&&h?x=y=_=!1:c===`bottom`&&_?x=y=h=!1:c===`left`&&y?x=h=_=!1:c===`right`&&x&&(y=h=_=!1),c===`over`){let t=window.innerWidth/2-u.realWidth/2,n=window.innerHeight/2-u.realHeight/2;e.wrapper.style.left=`${t}px`,e.wrapper.style.right=`auto`,e.wrapper.style.top=`${n}px`,e.wrapper.style.bottom=`auto`}else if(S){let t=window.innerWidth/2-u?.realWidth/2;e.wrapper.style.left=`${t}px`,e.wrapper.style.right=`auto`,e.wrapper.style.bottom=`10px`,e.wrapper.style.top=`auto`}else if(y){let t=Math.min(v,window.innerWidth-u?.realWidth-f.width),n=a(r,{elementDimensions:p,popoverDimensions:u,popoverPadding:l,popoverArrowDimensions:f});e.wrapper.style.left=`${t}px`,e.wrapper.style.top=`${n}px`,e.wrapper.style.bottom=`auto`,e.wrapper.style.right=`auto`,C=`left`}else if(x){let t=Math.min(b,window.innerWidth-u?.realWidth-f.width),n=a(r,{elementDimensions:p,popoverDimensions:u,popoverPadding:l,popoverArrowDimensions:f});e.wrapper.style.right=`${t}px`,e.wrapper.style.top=`${n}px`,e.wrapper.style.bottom=`auto`,e.wrapper.style.left=`auto`,C=`right`}else if(h){let t=Math.min(m,window.innerHeight-u.realHeight-f.width),n=o(r,{elementDimensions:p,popoverDimensions:u,popoverPadding:l,popoverArrowDimensions:f});e.wrapper.style.top=`${t}px`,e.wrapper.style.left=`${n}px`,e.wrapper.style.bottom=`auto`,e.wrapper.style.right=`auto`,C=`top`}else if(_){let t=Math.min(g,window.innerHeight-u?.realHeight-f.width),n=o(r,{elementDimensions:p,popoverDimensions:u,popoverPadding:l,popoverArrowDimensions:f});e.wrapper.style.left=`${n}px`,e.wrapper.style.bottom=`${t}px`,e.wrapper.style.top=`auto`,e.wrapper.style.right=`auto`,C=`bottom`}d(e,S?`over`:C,r,t),[...e.wrapper.classList].filter(e=>e.startsWith(`driver-popover-side-`)||e.startsWith(`driver-popover-align-`)).forEach(t=>e.wrapper.classList.remove(t)),e.wrapper.classList.add(`driver-popover-side-${C}`),e.wrapper.classList.add(`driver-popover-align-${r}`)}function c(e,t,n,r,i,a=10){let o=r-n;return e<=n&&t>=r?i===`start`?15+a/2:i===`end`?o-15-a/2:o/2:(Math.min(Math.max(e,n),r)+Math.min(Math.max(t,n),r))/2-n}function l(e,t,n=10){let r=t-15-n;if(r<15)return Math.max(0,(t-n)/2);let i=e-n/2;return Math.min(Math.max(i,15),r)}function u(e,t,n){return e===`left`||e===`right`?t.bottom>n.top&&t.topn.left&&t.lefte===`auto`||e===`scroll`)}function m(e,t,n,r){return(e/=r/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function h(e){let t=`a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])`;return e.flatMap(e=>{let n=e.matches(t),r=Array.from(e.querySelectorAll(t));return[...n?[e]:[],...r]}).filter(e=>getComputedStyle(e).pointerEvents!==`none`&&y(e))}function g(e,t){if(!e||v(e))return;let n=e.offsetHeight>window.innerHeight;e.scrollIntoView({behavior:!t||_(e)?`auto`:`smooth`,inline:`center`,block:n?`start`:`center`})}function _(e){if(!e||!e.parentElement)return;let t=e.parentElement;return t.scrollHeight>t.clientHeight}function v(e){let t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function y(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}function b(e){e&&(e.wrapper.style.display=`none`)}function x(e,t){let r=C();document.body.appendChild(r.wrapper);let{title:i,description:a,showButtons:o,disableButtons:c,showProgress:l,nextBtnText:u,prevBtnText:d,progressText:f}=t;r.nextButton.innerHTML=u,r.previousButton.innerHTML=d,r.progress.innerHTML=f,t.doneButton&&r.nextButton.classList.add(`driver-popover-done-btn`),i?(r.title.innerHTML=i,r.title.style.display=`block`):r.title.style.display=`none`,a?(r.description.innerHTML=a,r.description.style.display=`block`):r.description.style.display=`none`;let p=o.includes(`next`)||o.includes(`previous`)||l;r.closeButton.style.display=o.includes(`close`)?`block`:`none`,p?(r.footer.style.display=`flex`,r.progress.style.display=l?`block`:`none`,r.nextButton.style.display=o.includes(`next`)?`block`:`none`,r.previousButton.style.display=o.includes(`previous`)?`block`:`none`):r.footer.style.display=`none`,c.includes(`next`)&&(r.nextButton.disabled=!0,r.nextButton.classList.add(`driver-popover-btn-disabled`)),c.includes(`previous`)&&(r.previousButton.disabled=!0,r.previousButton.classList.add(`driver-popover-btn-disabled`)),c.includes(`close`)&&(r.closeButton.disabled=!0,r.closeButton.classList.add(`driver-popover-btn-disabled`));let m=r.wrapper;m.style.display=`block`,m.style.left=``,m.style.top=``,m.style.bottom=``,m.style.right=``,m.id=`driver-popover-content`,m.setAttribute(`role`,`dialog`),m.setAttribute(`aria-labelledby`,`driver-popover-title`),m.setAttribute(`aria-describedby`,`driver-popover-description`);let _=r.arrow;_.className=`driver-popover-arrow`,m.className=`driver-popover ${t.popoverClass||``}`.trim(),n(r.wrapper,e=>{let n=e.target;if(n.closest(`.driver-popover-next-btn`))return t.onNextClick?.();if(n.closest(`.driver-popover-prev-btn`))return t.onPrevClick?.();if(n.closest(`.driver-popover-close-btn`))return t.onCloseClick?.()},e=>r.description.contains(e)||r.title.contains(e)?!1:!!e.closest(`.driver-popover-prev-btn, .driver-popover-next-btn, .driver-popover-close-btn`)),t.onRender?.(r),s(r,e,t.position),S(r,e,t.position),g(m,t.smoothScroll);let v=h([m,e]);return v.length>0&&v[0].focus(),r}function S(e,t,n){e.wrapper.querySelectorAll(`img`).forEach(r=>{if(r.complete)return;let i=()=>s(e,t,n);r.addEventListener(`load`,i,{once:!0}),r.addEventListener(`error`,i,{once:!0})})}function C(){let e=document.createElement(`div`);e.classList.add(`driver-popover`);let t=document.createElement(`div`);t.classList.add(`driver-popover-arrow`);let n=document.createElement(`header`);n.id=`driver-popover-title`,n.classList.add(`driver-popover-title`),n.style.display=`none`,n.innerText=`Popover Title`;let r=document.createElement(`div`);r.id=`driver-popover-description`,r.classList.add(`driver-popover-description`),r.style.display=`none`,r.innerText=`Popover description is here`;let i=document.createElement(`button`);i.type=`button`,i.classList.add(`driver-popover-close-btn`),i.setAttribute(`aria-label`,`Close`),i.innerHTML=`×`;let a=document.createElement(`footer`);a.classList.add(`driver-popover-footer`);let o=document.createElement(`span`);o.classList.add(`driver-popover-progress-text`),o.innerText=``;let s=document.createElement(`span`);s.classList.add(`driver-popover-navigation-btns`);let c=document.createElement(`button`);c.type=`button`,c.classList.add(`driver-popover-prev-btn`,`driver-popover-footer-btn`),c.innerHTML=`Previous`;let l=document.createElement(`button`);return l.type=`button`,l.classList.add(`driver-popover-next-btn`,`driver-popover-footer-btn`),l.innerHTML=`Next`,s.appendChild(c),s.appendChild(l),a.appendChild(o),a.appendChild(s),e.appendChild(i),e.appendChild(t),e.appendChild(n),e.appendChild(r),e.appendChild(a),{wrapper:e,arrow:t,title:n,description:r,footer:a,previousButton:c,nextButton:l,closeButton:i,footerButtons:s,progress:o}}function w(e){e&&(r(e.wrapper),e.wrapper.parentElement?.removeChild(e.wrapper))}function T(e,t){let n=window.innerWidth,r=window.innerHeight,i=t.padding,a=t.radius,o=e.width+i*2,s=e.height+i*2,c=Math.min(a,o/2,s/2),l=Math.floor(Math.max(c,0)),u=e.x-i+l,d=e.y-i,f=o-l*2,p=s-l*2;return`M${n},0L0,0L0,${r}L${n},${r}L${n},0Z + M${u},${d} h${f} a${l},${l} 0 0 1 ${l},${l} v${p} a${l},${l} 0 0 1 -${l},${l} h-${f} a${l},${l} 0 0 1 -${l},-${l} v-${p} a${l},${l} 0 0 1 ${l},-${l} z`}function E(e,t,n,r,i){let a=e.getState(`__activeStagePosition`),o=a||r.getBoundingClientRect(),s=i.getBoundingClientRect();a={x:m(t,o.x,s.x-o.x,n),y:m(t,o.y,s.y-o.y,n),width:m(t,o.width,s.width-o.width,n),height:m(t,o.height,s.height-o.height,n)},A(e,a),e.setState(`__activeStagePosition`,a)}function D(e,t){if(!t)return;let n=t.getBoundingClientRect(),r={x:n.x,y:n.y,width:n.width,height:n.height};e.setState(`__activeStagePosition`,r),A(e,r)}function O(e){let t=e.getState(`__activeStagePosition`),n=e.getState(`__overlaySvg`);if(!t)return;if(!n){console.warn(`No stage svg found.`);return}let r=window.innerWidth,i=window.innerHeight;n.setAttribute(`viewBox`,`0 0 ${r} ${i}`)}function k(e,t){let r=M(e,t);document.body.appendChild(r),n(r,t=>{t.target.tagName===`path`&&e.emit(`overlayClick`)}),e.setState(`__overlaySvg`,r)}function A(e,t){let n=e.getState(`__overlaySvg`);if(!n){k(e,t);return}let r=n.firstElementChild;if(r?.tagName!==`path`)throw Error(`no path element found in stage svg`);r.setAttribute(`d`,T(t,j(e)))}function j(e){return{padding:e.getConfig(`stagePadding`)||0,radius:e.getConfig(`stageRadius`)||0}}function M(e,t){let n=window.innerWidth,r=window.innerHeight,i=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);i.classList.add(`driver-overlay`,`driver-overlay-animated`),i.setAttribute(`viewBox`,`0 0 ${n} ${r}`),i.setAttribute(`xmlSpace`,`preserve`),i.setAttribute(`xmlnsXlink`,`http://www.w3.org/1999/xlink`),i.setAttribute(`version`,`1.1`),i.setAttribute(`preserveAspectRatio`,`xMinYMin slice`),i.style.fillRule=`evenodd`,i.style.clipRule=`evenodd`,i.style.strokeLinejoin=`round`,i.style.strokeMiterlimit=`2`,i.style.zIndex=`10000`,i.style.position=`fixed`,i.style.top=`0`,i.style.left=`0`,i.style.width=`100%`,i.style.height=`100%`;let a=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return a.setAttribute(`d`,T(t,j(e))),a.style.fill=e.getConfig(`overlayColor`)||`rgb(0,0,0)`,a.style.opacity=`${e.getConfig(`overlayOpacity`)}`,a.style.pointerEvents=`auto`,a.style.cursor=`auto`,i.appendChild(a),i}function N(e){let t=e.getState(`__overlaySvg`);t&&(r(t),t.remove())}const P=`{{current}} of {{total}}`;function F(e,t){return!(t.skipMissingElement??e.getConfig(`skipMissingElement`))||!t.element?!1:!f(t.element)}function I(e,t,n){let r=e.getConfig(`steps`)||[];for(let i=t;i>=0&&i!f?.length||f.includes(e)),m=a.onNextClick||e.getConfig(`onNextClick`),h=a.onPrevClick||e.getConfig(`onPrevClick`),g=a.onCloseClick||e.getConfig(`onCloseClick`);return{...i,popover:{showButtons:p,nextBtnText:o?void 0:c,disableButtons:[...s?[]:[`previous`]],showProgress:u,onNextClick:m||n.onNextClick,onPrevClick:h||n.onPrevClick,onCloseClick:g||n.onCloseClick,...a,progressText:d}}}function V(e,t,n){let r=e.getConfig(`stagePadding`)||0;return{side:n.popover?.side||`bottom`,align:n.popover?.align||`start`,offset:r+(e.getConfig(`popoverOffset`)||0),padding:r,centered:t.id===`driver-dummy-element`}}function H(e,t,n){let r=n.popover||{},i=e.getState(`activeIndex`),a=i!==void 0&&I(e,i+1,1)===void 0;return{title:r.title,description:r.description,showButtons:r.showButtons||e.getConfig(`showButtons`),disableButtons:r.disableButtons||e.getConfig(`disableButtons`)||[],showProgress:r.showProgress||e.getConfig(`showProgress`)||!1,progressText:r.progressText??(e.getConfig(`progressText`)||P),nextBtnText:r.nextBtnText??(e.getConfig(`nextBtnText`)||`Next`),prevBtnText:r.prevBtnText??(e.getConfig(`prevBtnText`)||`Previous`),doneButton:a,popoverClass:r.popoverClass||e.getConfig(`popoverClass`)||``,smoothScroll:e.getConfig(`smoothScroll`),onNextClick:()=>{let r=L(e,n);return r?r(t,n,e.getHookOpts()):e.emit(`nextClick`)},onPrevClick:()=>{let r=R(e,n);return r?r(t,n,e.getHookOpts()):e.emit(`prevClick`)},onCloseClick:()=>{let r=z(e,n);return r?r(t,n,e.getHookOpts()):e.emit(`closeClick`)},onRender:t=>{e.setState(`popover`,t),(r.onPopoverRender||e.getConfig(`onPopoverRender`))?.(t,e.getHookOpts())},position:V(e,t,n)}}function U(e,t,n){w(e.getState(`popover`)),x(t,H(e,t,n))}function W(e,t,n){let r=e.getState(`popover`);r&&s(r,t,V(e,t,n))}function G(){let e=document.getElementById(`driver-dummy-element`);if(e)return e;let t=document.createElement(`div`);return t.id=`driver-dummy-element`,t.style.width=`0`,t.style.height=`0`,t.style.pointerEvents=`none`,t.style.opacity=`0`,t.style.position=`fixed`,t.style.top=`50%`,t.style.left=`50%`,document.body.appendChild(t),t}function K(e,t){let n=f(t.element);n||(n=G()),J(e,n,t)}function q(e){let t=e.getState(`__activeElement`),n=e.getState(`__activeStep`);t&&(D(e,t),O(e),W(e,t,n))}function J(e,t,n){let r=e.getConfig(`duration`)||400,i=Date.now(),a=e.getState(`__activeStep`),o=e.getState(`__activeElement`)||t,s=!o||o===t,c=t.id===`driver-dummy-element`,l=o.id===`driver-dummy-element`,u=e.getConfig(`animate`),d=n.onHighlightStarted||e.getConfig(`onHighlightStarted`),f=n?.onHighlighted||e.getConfig(`onHighlighted`),m=a?.onDeselected||e.getConfig(`onDeselected`),h=e.getHookOpts();!s&&m&&m(l?void 0:o,a,h),d&&d(c?void 0:t,n,h);let _=!s&&u,v=!1;b(e.getState(`popover`)),e.setState(`previousStep`,a),e.setState(`previousElement`,o),e.setState(`activeStep`,n),e.setState(`activeElement`,t);let y=()=>{if(e.getState(`__transitionCallback`)!==y)return;let s=Date.now()-i,l=r-s<=r/2;n.popover&&l&&!v&&_&&(U(e,t,n),v=!0),e.getConfig(`animate`)&&s{e.classList.remove(`driver-active-element-parent`,`driver-active-element-parent-no-scroll`)}),o.classList.remove(`driver-active-element`,`driver-no-interaction`),o.removeAttribute(`aria-haspopup`),o.removeAttribute(`aria-expanded`),o.removeAttribute(`aria-controls`),(n.disableActiveInteraction??e.getConfig(`disableActiveInteraction`))&&t.classList.add(`driver-no-interaction`);let x=t.parentElement;x&&x!==document.body&&(x.classList.add(`driver-active-element-parent`),p(x)&&x.classList.add(`driver-active-element-parent-no-scroll`)),t.classList.add(`driver-active-element`),t.setAttribute(`aria-haspopup`,`dialog`),t.setAttribute(`aria-expanded`,`true`),t.setAttribute(`aria-controls`,`driver-popover-content`)}function Y(){document.getElementById(`driver-dummy-element`)?.remove(),document.querySelectorAll(`.driver-active-element`).forEach(e=>{let t=e.parentElement;t&&t!==document.body&&t.classList.remove(`driver-active-element-parent`,`driver-active-element-parent-no-scroll`),e.classList.remove(`driver-active-element`,`driver-no-interaction`),e.removeAttribute(`aria-haspopup`),e.removeAttribute(`aria-expanded`),e.removeAttribute(`aria-controls`)})}function X(e){let t=e.getState(`__resizeTimeout`);t&&window.cancelAnimationFrame(t),e.setState(`__resizeTimeout`,window.requestAnimationFrame(()=>q(e)))}function Z(e,t){if(!e.getState(`isInitialized`)||!(t.key===`Tab`||t.keyCode===9))return;let n=e.getState(`__activeElement`),r=e.getState(`popover`)?.wrapper,i=h([...r?[r]:[],...n?[n]:[]]),a=i[0],o=i[i.length-1];t.preventDefault(),t.shiftKey?(i[i.indexOf(document.activeElement)-1]||o)?.focus():(i[i.indexOf(document.activeElement)+1]||a)?.focus()}function Q(e,t){(e.getConfig(`allowKeyboardControl`)??!0)&&(t.key===`Escape`?e.emit(`escapePress`):t.key===`ArrowRight`?e.emit(`arrowRightPress`):t.key===`ArrowLeft`&&e.emit(`arrowLeftPress`))}function $(e,t){let n=e.getState(`__activeElement`),r=t.target;!n||!r||!n.contains(r)||e.emit(`activeElementClick`)}function ee(e){let t=t=>Q(e,t),n=t=>Z(e,t),r=()=>X(e),i=()=>X(e),a=t=>$(e,t);e.setState(`__events`,{onKeyup:t,onKeydown:n,onResize:r,onScroll:i,onClick:a}),window.addEventListener(`keyup`,t,!1),window.addEventListener(`keydown`,n,!1),window.addEventListener(`resize`,r),window.addEventListener(`scroll`,i),document.addEventListener(`click`,a,!1)}function te(e){let t=e.getState(`__events`);t&&(window.removeEventListener(`keyup`,t.onKeyup),window.removeEventListener(`keydown`,t.onKeydown),window.removeEventListener(`resize`,t.onResize),window.removeEventListener(`scroll`,t.onScroll),document.removeEventListener(`click`,t.onClick,!1))}function ne(){let e={};function t(t={}){e={animate:!0,duration:400,allowClose:!0,allowScroll:!0,overlayClickBehavior:`close`,overlayOpacity:.7,smoothScroll:!1,disableActiveInteraction:!1,advanceOnClick:!1,skipMissingElement:!1,waitForElement:0,showProgress:!1,stagePadding:10,stageRadius:5,popoverOffset:10,showButtons:[`next`,`previous`,`close`],disableButtons:[],overlayColor:`#000`,...t}}return t(),{getConfig:(t=>t?e[t]:e),configure:t}}function re(){let e={},t=(t=>t?e[t]:e),n=(t,n)=>{e[t]=n};function r(){e={}}return{getState:t,setState:n,resetState:r}}function ie(){let e={};function t(t,n){e[t]=n}function n(t){e[t]?.()}function r(){e={}}return{listen:t,emit:n,reset:r}}function ae(e={}){let t=ne();t.configure(e);let n=re(),r=ie(),i;return{getConfig:t.getConfig,setConfig:t.configure,getState:n.getState,setState:n.setState,resetState:n.resetState,listen:r.listen,emit:r.emit,resetEmitter:r.reset,getDriver:()=>i,setDriver:e=>{i=e},getHookOpts:e=>{let r=e||n.getState();return{config:t.getConfig(),state:r,driver:i,index:r.activeIndex}}}}function oe(e={}){let t=ae(e);function n(){t.getConfig(`allowClose`)&&h()}function r(){let e=t.getConfig(`overlayClickBehavior`);if(t.getConfig(`allowClose`)&&e===`close`){h();return}if(typeof e==`function`){let n=t.getState(`__activeStep`);e(t.getState(`__activeElement`),n,t.getHookOpts());return}if(e===`nextStep`){let e=t.getState(`activeStep`),n=t.getState(`activeElement`),r=L(t,e);if(r){r(n,e,t.getHookOpts());return}i()}}function i(){let e=t.getState(`activeIndex`),n=t.getConfig(`steps`)||[];if(e===void 0)return;let r=e+1;n[r]?m(r):h()}function a(){let e=t.getState(`activeIndex`),n=t.getConfig(`steps`)||[];if(e===void 0)return;let r=e-1;n[r]?m(r):h()}function o(e){(t.getConfig(`steps`)||[])[e]?m(e):h()}function s(){if(t.getState(`__transitionCallback`))return;let e=t.getState(`__activeStep`);if(!e||!(e.advanceOnClick??t.getConfig(`advanceOnClick`)))return;let n=t.getState(`__activeElement`),r=L(t,e);if(r){r(n,e,t.getHookOpts());return}i()}function c(){if(t.getState(`__transitionCallback`))return;let e=t.getState(`activeIndex`),n=t.getState(`__activeStep`),r=t.getState(`__activeElement`);if(e===void 0||n===void 0||!(t.getConfig(`steps`)||[])[e-1])return;let i=R(t,n);if(i)return i(r,n,t.getHookOpts());a()}function l(){if(t.getState(`__transitionCallback`))return;let e=t.getState(`activeIndex`),n=t.getState(`__activeStep`),r=t.getState(`__activeElement`);if(e===void 0||n===void 0)return;let a=L(t,n);if(a)return a(r,n,t.getHookOpts());i()}function u(){t.getState(`isInitialized`)||(t.setState(`isInitialized`,!0),document.body.classList.add(`driver-active`,t.getConfig(`animate`)?`driver-fade`:`driver-simple`),t.getConfig(`allowScroll`)||document.body.classList.add(`driver-no-scroll`),document.body.style.setProperty(`--driver-animation-duration`,`${t.getConfig(`duration`)||400}ms`),ee(t),t.listen(`overlayClick`,r),t.listen(`activeElementClick`,s),t.listen(`escapePress`,n),t.listen(`closeClick`,n),t.listen(`arrowLeftPress`,c),t.listen(`arrowRightPress`,l))}function d(){let e=t.getState(`__pendingWaitCancel`);e&&(t.setState(`__pendingWaitCancel`,void 0),e())}function p(e,n,r){let i=()=>{a.disconnect(),window.clearTimeout(o),t.setState(`__pendingWaitCancel`,void 0),r()},a=new MutationObserver(()=>{f(e.element)&&i()}),o=window.setTimeout(i,n);t.setState(`__pendingWaitCancel`,()=>{a.disconnect(),window.clearTimeout(o)}),a.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0})}function m(e=0,n=!1){d();let r=t.getConfig(`steps`);if(!r){console.error(`No steps to drive through`),h();return}if(!r[e]){h();return}let i=r[e],a=i.waitForElement??t.getConfig(`waitForElement`)??0;if(!n&&a>0&&i.element&&!f(i.element)){p(i,a,()=>m(e,!0));return}if(F(t,i)){let n=t.getState(`activeIndex`),i=typeof n==`number`&&e{o?m(e+1):h()},onPrevClick:()=>{m(e-1)},onCloseClick:()=>{h()}}))}function h(e=!0){let n=t.getState(`__activeElement`),r=t.getState(`__activeStep`),i=t.getState(`__activeOnDestroyed`),a=t.getConfig(`onDestroyStarted`);if(e&&a){a(!n||n?.id===`driver-dummy-element`?void 0:n,r,t.getHookOpts());return}let o=r?.onDeselected||t.getConfig(`onDeselected`),s=t.getConfig(`onDestroyed`);document.body.classList.remove(`driver-active`,`driver-fade`,`driver-simple`,`driver-no-scroll`),document.body.style.removeProperty(`--driver-animation-duration`),d(),te(t),w(t.getState(`popover`)),Y(),N(t),t.resetEmitter();let c=t.getState();if(t.resetState(),n&&r){let e=n.id===`driver-dummy-element`;o&&o(e?void 0:n,r,t.getHookOpts(c)),s&&s(e?void 0:n,r,t.getHookOpts(c))}i&&i.focus()}let g={isActive:()=>t.getState(`isInitialized`)||!1,refresh:()=>X(t),drive:(e=0)=>{u(),m(e)},setConfig:t.setConfig,setSteps:e=>{d(),t.resetState(),t.setConfig({...t.getConfig(),steps:e})},getConfig:t.getConfig,getState:t.getState,getActiveIndex:()=>t.getState(`activeIndex`),isFirstStep:()=>{let e=t.getState(`activeIndex`);return e!==void 0&&I(t,e-1,-1)===void 0},isLastStep:()=>{let e=t.getState(`activeIndex`);return e!==void 0&&I(t,e+1,1)===void 0},getActiveStep:()=>t.getState(`activeStep`),getActiveElement:()=>t.getState(`activeElement`),getPreviousElement:()=>t.getState(`previousElement`),getPreviousStep:()=>t.getState(`previousStep`),getNextStep:()=>{let e=t.getConfig(`steps`)||[],n=t.getState(`activeIndex`);if(n===void 0)return;let r=I(t,n+1,1);return r===void 0?void 0:e[r]},moveNext:i,movePrevious:a,moveTo:o,hasNextStep:()=>{let e=t.getState(`activeIndex`);return e!==void 0&&I(t,e+1,1)!==void 0},hasPreviousStep:()=>{let e=t.getState(`activeIndex`);return e!==void 0&&I(t,e-1,-1)!==void 0},highlight:e=>{u(),K(t,{...e,popover:e.popover?{showButtons:[],showProgress:!1,progressText:``,...e.popover}:void 0})},destroy:()=>{h(!1)}};return t.setDriver(g),g}export{oe as driver}; \ No newline at end of file From 3e10395241fe4c7c9f63ef6b58bd8ebffb208982 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Mon, 20 Jul 2026 17:56:22 +0800 Subject: [PATCH 2/2] chore: bump version 10.0.3 --- .../BootstrapBlazor.DriverJs/BootstrapBlazor.DriverJs.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/BootstrapBlazor.DriverJs/BootstrapBlazor.DriverJs.csproj b/src/components/BootstrapBlazor.DriverJs/BootstrapBlazor.DriverJs.csproj index ad14cf46..5fe91ff9 100644 --- a/src/components/BootstrapBlazor.DriverJs/BootstrapBlazor.DriverJs.csproj +++ b/src/components/BootstrapBlazor.DriverJs/BootstrapBlazor.DriverJs.csproj @@ -1,7 +1,7 @@ - 10.0.2 + 10.0.3