@qaiddev/thumbs-embed 1.6.2 → 1.8.0
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.
- package/README.md +32 -21
- package/dist/bootstrap.d.ts +6 -0
- package/dist/chunks/{annotate-NeITyYNe.js → annotate-D-o8xCV9.js} +24 -17
- package/dist/chunks/annotate-D-o8xCV9.js.map +1 -0
- package/dist/chunks/dom-DvdtcUS8.js +17 -0
- package/dist/chunks/dom-DvdtcUS8.js.map +1 -0
- package/dist/chunks/{loader-DnJ3MHkt.js → loader-DHtXHt1z.js} +187 -163
- package/dist/chunks/loader-DHtXHt1z.js.map +1 -0
- package/dist/chunks/modal-CTbqN-h9.js +213 -0
- package/dist/chunks/modal-CTbqN-h9.js.map +1 -0
- package/dist/chunks/{recording-DhRZ6-tW.js → recording-Dx8AX-BC.js} +104 -98
- package/dist/chunks/recording-Dx8AX-BC.js.map +1 -0
- package/dist/chunks/{screenshot-BkOCLuS2.js → screenshot-DYOKg2bS.js} +2 -2
- package/dist/chunks/{screenshot-BkOCLuS2.js.map → screenshot-DYOKg2bS.js.map} +1 -1
- package/dist/chunks/{targeting-BEQU2Ogo.js → targeting-Dz6z1BYl.js} +3 -2
- package/dist/chunks/{targeting-BEQU2Ogo.js.map → targeting-Dz6z1BYl.js.map} +1 -1
- package/dist/chunks/{video-BOYqf2Im.js → video-Bd_29-rK.js} +76 -71
- package/dist/chunks/video-Bd_29-rK.js.map +1 -0
- package/dist/embed.d.ts +11 -0
- package/dist/icons.d.ts +2 -0
- package/dist/index.js +597 -451
- package/dist/index.js.map +1 -1
- package/dist/loader.js +1 -1
- package/dist/modal.d.ts +19 -1
- package/dist/qaid.umd.cjs +14 -31
- package/dist/qaid.umd.cjs.map +1 -1
- package/dist/recording.d.ts +6 -0
- package/dist/screenshot.d.ts +1 -1
- package/dist/types.d.ts +33 -2
- package/dist/video-capture.d.ts +6 -0
- package/package.json +1 -1
- package/dist/chunks/annotate-NeITyYNe.js.map +0 -1
- package/dist/chunks/loader-DnJ3MHkt.js.map +0 -1
- package/dist/chunks/modal-C8Ca7E5j.js +0 -119
- package/dist/chunks/modal-C8Ca7E5j.js.map +0 -1
- package/dist/chunks/recording-DhRZ6-tW.js.map +0 -1
- package/dist/chunks/video-BOYqf2Im.js.map +0 -1
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
const ft = "button{cursor:pointer}.qaid-buttons{display:flex;gap:.5rem}.qaid-buttons.qaid-vertical{flex-direction:column}.qaid-buttons.qaid-auto-container{position:fixed;z-index:50}.qaid-buttons.qaid-auto-container.qaid-bottom-right{bottom:1rem;right:1rem}.qaid-buttons.qaid-auto-container.qaid-bottom-left{bottom:1rem;left:1rem}.qaid-buttons.qaid-auto-container.qaid-top-right{top:1rem;right:1rem}.qaid-buttons.qaid-auto-container.qaid-top-left{top:1rem;left:1rem}.qaid-buttons.qaid-incognito{opacity:0;transition:opacity .2s ease-in-out}.qaid-buttons.qaid-incognito:hover{opacity:1}.qaid-buttons.qaid-dismissed{display:none!important}.qaid-dismiss-btn{width:20px;height:20px;padding:0;border:none;border-radius:50%;background:#0006;color:#fff;display:flex;align-items:center;justify-content:center;align-self:center;opacity:0;transition:opacity .15s,background .15s;cursor:pointer;pointer-events:auto;-webkit-appearance:none;appearance:none}.qaid-dismiss-btn:hover{background:#0009}.qaid-buttons:hover .qaid-dismiss-btn{opacity:1}button.qaid-btn-structural{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;-webkit-appearance:none;appearance:none}.qaid-icon{width:24px;height:24px}.qaid-btn-structural:not(:has(svg)),.qaid-btn:not(:has(svg)){font-size:var(--qaid-icon-size, 24px);line-height:1}.qaid-emoji-icon{font-size:var(--qaid-icon-size, 24px);line-height:1}.qaid-buttons,.qaid-buttons *,.qaid-modal-container,.qaid-modal-container *{cursor:pointer!important}.qaid-tooltip-wrapper{position:relative}.qaid-tooltip-text{position:fixed;padding:.5rem .75rem;background:#1f2937;color:#fff;font-size:1rem;font-weight:600;border-radius:.5rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:99999}.qaid-tooltip-text.qaid-tooltip-visible{opacity:1}.qaid-targeting-overlay{position:fixed;inset:0;z-index:40;pointer-events:none}.qaid-capture-layer{position:fixed;inset:0;pointer-events:none;z-index:9999}@keyframes qaid-slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.qaid-vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 30%,rgba(0,0,0,.3) 70%,rgba(0,0,0,.6) 100%);z-index:41}.qaid-crosshair-h,.qaid-crosshair-v{position:fixed;pointer-events:none;z-index:42}.qaid-crosshair-h{left:0;right:0;height:1px;background:color-mix(in srgb,var(--qaid-negative) 60%,transparent)}.qaid-crosshair-v{top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--qaid-negative) 60%,transparent)}.qaid-type-up .qaid-crosshair-h,.qaid-type-up .qaid-crosshair-v{background:color-mix(in srgb,var(--qaid-positive) 60%,transparent)}.qaid-highlight-box{position:fixed;top:0;left:0;pointer-events:none;z-index:41;display:none;border:3px solid color-mix(in srgb,var(--qaid-negative) 80%,transparent);border-radius:2px;background:color-mix(in srgb,var(--qaid-negative) 8%,transparent);will-change:transform,width,height}.qaid-type-up .qaid-highlight-box{border-color:color-mix(in srgb,var(--qaid-positive) 80%,transparent);background:color-mix(in srgb,var(--qaid-positive) 8%,transparent)}.qaid-scope{position:fixed;width:80px;height:80px;pointer-events:none;z-index:43;transform:translate(-50%,-50%)}.qaid-scope-ring{position:absolute;inset:10px;border:2px solid color-mix(in srgb,var(--qaid-negative) 80%,transparent);border-radius:50%}.qaid-type-up .qaid-scope-ring{border-color:color-mix(in srgb,var(--qaid-positive) 80%,transparent)}.qaid-scope-ring-inner{position:absolute;inset:20px;border:1px solid color-mix(in srgb,var(--qaid-negative) 50%,transparent);border-radius:50%}.qaid-type-up .qaid-scope-ring-inner{border-color:color-mix(in srgb,var(--qaid-positive) 50%,transparent)}.qaid-scope-dot{position:absolute;top:50%;left:50%;width:4px;height:4px;background:var(--qaid-negative);border-radius:50%;transform:translate(-50%,-50%)}.qaid-type-up .qaid-scope-dot{background:var(--qaid-positive)}.qaid-selected-marker{position:fixed;border:3px solid var(--qaid-marker, #6366f1);border-radius:50%;pointer-events:none;z-index:44;animation:qaid-markerPulse 1.5s ease-in-out infinite}@keyframes qaid-markerPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.qaid-backdrop{position:fixed;inset:0;z-index:45;background:#0000004d}.qaid-modal-container{position:fixed;z-index:50;display:flex;flex-direction:column;align-items:flex-start;max-height:calc(100vh - 32px);font-family:var(--qaid-font-family, system-ui, -apple-system, sans-serif);font-size:var(--qaid-font-size, 16px)}.qaid-modal-container.qaid-above{flex-direction:column-reverse}.qaid-modal-arrow{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;position:relative;align-self:flex-start}.qaid-modal-container.qaid-below .qaid-modal-arrow{border-bottom:12px solid light-dark(#ffffff,#1f2937)}.qaid-modal-container.qaid-above .qaid-modal-arrow{border-top:12px solid light-dark(#ffffff,#1f2937)}.qaid-modal-box{color-scheme:inherit;background:light-dark(#ffffff,#1f2937);border-radius:1rem;padding:1.5rem;box-shadow:0 25px 50px -12px light-dark(rgba(0,0,0,.25),rgba(0,0,0,.5));width:var(--qaid-modal-width, 400px);max-width:calc(100vw - 32px);max-height:calc(100vh - 60px);overflow-y:auto}.qaid-modal-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem}button.qaid-type-toggle{border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;-webkit-appearance:none;appearance:none}button.qaid-type-toggle:hover{transform:scale(1.1)}button.qaid-type-toggle:not(.qaid-type-toggle-custom){width:2.5rem;height:2.5rem;border-radius:50%}button.qaid-type-toggle:not(.qaid-type-toggle-custom) svg{width:1.25rem;height:1.25rem}button.qaid-type-toggle.qaid-type-up{background:var(--qaid-positive);color:#fff}button.qaid-type-toggle.qaid-type-down{background:var(--qaid-negative);color:#fff}.qaid-type-static{width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--qaid-marker, #6366f1);color:var(--qaid-marker-text, white)}.qaid-type-static svg{width:1.25rem;height:1.25rem}.qaid-modal-header-text{flex:1;min-width:0}.qaid-modal-title{font-size:1.125rem;font-weight:700;margin:0 0 .25rem;color:light-dark(#1f2937,#f9fafb)}.qaid-modal-subtitle{color:light-dark(#6b7280,#9ca3af);margin:0;font-size:.875rem}.qaid-textarea{width:100%;height:6rem;padding:.75rem;border:1px solid light-dark(#d1d5db,#374151);border-radius:.5rem;font-family:inherit;font-size:1rem;resize:vertical;margin-bottom:1rem;box-sizing:border-box;background:light-dark(#ffffff,#111827);color:light-dark(#1f2937,#f9fafb)}.qaid-textarea:focus{outline:none;border-color:var(--qaid-marker);box-shadow:0 0 0 3px color-mix(in srgb,var(--qaid-marker) 20%,transparent)}.qaid-btn-row{display:flex;gap:.5rem;justify-content:flex-end}button.qaid-btn-submit{padding:.5rem 1rem;background:var(--qaid-marker);color:var(--qaid-marker-text, white);border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s,filter .2s;-webkit-appearance:none;appearance:none}button.qaid-btn-submit:hover{filter:brightness(.85)}button.qaid-btn-submit:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--qaid-marker) 30%,transparent)}.qaid-bottom-sheet{position:fixed;bottom:0;left:0;right:0;z-index:50;animation:qaid-slideUpSheet .3s ease-out;font-family:var(--qaid-font-family, system-ui, -apple-system, sans-serif);font-size:var(--qaid-font-size, 16px)}.qaid-bottom-sheet-content{background:light-dark(#ffffff,#1f2937);border-radius:1rem 1rem 0 0;padding:1.5rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}.qaid-bottom-sheet-handle{width:36px;height:4px;background:light-dark(rgba(0,0,0,.2),rgba(255,255,255,.2));border-radius:2px;margin:0 auto 1rem}@keyframes qaid-slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}button.qaid-btn-record:hover{background:#dc2626;color:#fff}.qaid-recording-indicator{position:fixed;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:light-dark(#1f2937,#374151);color:#fff;border-radius:9999px;font-family:var(--qaid-font-family, system-ui, -apple-system, sans-serif);font-size:.875rem;font-weight:500;box-shadow:0 4px 12px #0000004d;z-index:99999;animation:qaid-slideDown .2s ease-out}.qaid-recording-dot{width:10px;height:10px;background:#dc2626;border-radius:50%;animation:qaid-dotPulse 1.5s ease-in-out infinite}@keyframes qaid-dotPulse{0%,to{opacity:1}50%{opacity:.3}}.qaid-recording-time{font-variant-numeric:tabular-nums;min-width:2.5rem;text-align:center}button.qaid-recording-stop{padding:.25rem .75rem;background:#dc2626;color:#fff;border:none;border-radius:9999px;font-size:.75rem;font-weight:600;cursor:pointer;transition:background-color .2s;-webkit-appearance:none;appearance:none}button.qaid-recording-stop:hover{background:#b91c1c}.qaid-video-preview{position:fixed;inset:0 0 auto;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));box-sizing:border-box;background:#0009;z-index:99998;animation:qaid-fadeIn .2s ease-out}@keyframes qaid-fadeIn{0%{opacity:0}to{opacity:1}}.qaid-video-preview-box{color-scheme:inherit;background:light-dark(#ffffff,#1f2937);border-radius:1rem;padding:1.5rem;box-shadow:0 25px 50px -12px #00000080;width:560px;max-width:100%;max-height:100%;overflow-y:auto;font-family:var(--qaid-font-family, system-ui, -apple-system, sans-serif);font-size:var(--qaid-font-size, 16px)}.qaid-video-preview-box h3{font-size:1.125rem;font-weight:700;margin:0 0 1rem;color:light-dark(#1f2937,#f9fafb)}.qaid-video-preview-box video{width:100%;max-height:50vh;max-height:50dvh;object-fit:contain;border-radius:.5rem;background:#000;margin-bottom:1rem}.qaid-video-preview-box textarea{width:100%;height:4rem;padding:.75rem;border:1px solid light-dark(#d1d5db,#374151);border-radius:.5rem;font-family:inherit;font-size:.875rem;resize:vertical;margin-bottom:1rem;box-sizing:border-box;background:light-dark(#ffffff,#111827);color:light-dark(#1f2937,#f9fafb)}.qaid-video-preview-box textarea:focus{outline:none;border-color:var(--qaid-marker);box-shadow:0 0 0 3px color-mix(in srgb,var(--qaid-marker) 20%,transparent)}.qaid-video-preview-actions{display:flex;gap:.5rem;justify-content:flex-end}button.qaid-video-btn{padding:.5rem 1rem;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s,filter .2s;-webkit-appearance:none;appearance:none}button.qaid-video-btn-cancel{background:light-dark(#f3f4f6,#374151);color:light-dark(#374151,#d1d5db)}button.qaid-video-btn-cancel:hover{background:light-dark(#e5e7eb,#4b5563)}button.qaid-video-btn-rerecord{background:light-dark(#fef3c7,#78350f);color:light-dark(#92400e,#fde68a)}button.qaid-video-btn-rerecord:hover{filter:brightness(.9)}button.qaid-video-btn-send{background:var(--qaid-marker);color:var(--qaid-marker-text, white)}button.qaid-video-btn-send:hover{filter:brightness(.85)}button.qaid-video-btn-send:disabled{opacity:.5;cursor:not-allowed}.qaid-video-sending{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:light-dark(#6b7280,#9ca3af)}.qaid-annotate{position:fixed;inset:0;z-index:2147483000;display:flex;flex-direction:column;gap:.75rem;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));box-sizing:border-box;background:#000000d9;font-family:var(--qaid-font-family, system-ui, -apple-system, sans-serif);font-size:var(--qaid-font-size, 16px);animation:qaid-fadeIn .2s ease-out}.qaid-annotate-title{margin:0;font-size:1rem;font-weight:700;text-align:center;color:#f9fafb}.qaid-annotate-desc{margin:0;font-size:.8125rem;line-height:1.4;text-align:center;color:#f9fafbbf}.qaid-annotate-stage{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;overflow:auto}.qaid-annotate-canvas{max-width:100%;max-height:100%;object-fit:contain;background:light-dark(#ffffff,#111827);border-radius:.5rem;box-shadow:0 10px 30px #00000080;touch-action:none;cursor:crosshair}.qaid-annotate-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:center;padding:.5rem .75rem;background:light-dark(#ffffff,#1f2937);border-radius:.75rem;box-shadow:0 10px 30px light-dark(rgba(0,0,0,.25),rgba(0,0,0,.5))}.qaid-annotate-tools,.qaid-annotate-actions{display:flex;gap:.375rem;align-items:center}button.qaid-annotate-tool,button.qaid-annotate-action{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-width:44px;min-height:44px;padding:0 .75rem;border:1px solid light-dark(#d1d5db,#374151);border-radius:.5rem;background:light-dark(#f9fafb,#111827);color:light-dark(#1f2937,#f9fafb);font-family:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;-webkit-appearance:none;appearance:none;transition:background-color .15s,color .15s,border-color .15s,filter .15s}button.qaid-annotate-tool svg,button.qaid-annotate-action svg{width:20px;height:20px}.qaid-annotate-colors{display:flex;gap:.25rem;align-items:center}button.qaid-annotate-swatch{width:28px;height:28px;min-width:28px;padding:0;border-radius:9999px;border:2px solid light-dark(#d1d5db,#4b5563);background:var(--qaid-swatch, #000);cursor:pointer;-webkit-appearance:none;appearance:none;transition:transform .1s,box-shadow .15s,border-color .15s}button.qaid-annotate-swatch:hover{transform:scale(1.12)}button.qaid-annotate-swatch[aria-pressed=true]{border-color:light-dark(#111827,#f9fafb);box-shadow:0 0 0 2px var(--qaid-swatch)}@media(forced-colors:active){button.qaid-annotate-swatch[aria-pressed=true]{outline:2px solid Highlight;outline-offset:1px}}button.qaid-annotate-tool:hover,button.qaid-annotate-action:hover{background:light-dark(#eef2ff,#312e81)}button.qaid-annotate-tool[aria-pressed=true],button.qaid-annotate-done{background:var(--qaid-marker, #6366f1);color:var(--qaid-marker-text, #fff);border-color:var(--qaid-marker, #6366f1)}button.qaid-annotate-done:hover{filter:brightness(.9);background:var(--qaid-marker, #6366f1)}button.qaid-annotate-action:disabled{opacity:.45;cursor:not-allowed}@media(forced-colors:active){button.qaid-annotate-tool[aria-pressed=true],button.qaid-annotate-done{border:2px solid Highlight}.qaid-annotate-canvas{border:1px solid CanvasText}}button:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible{outline:2px solid var(--qaid-marker, #6366f1);outline-offset:2px}.qaid-textarea:focus-visible,button.qaid-btn-submit:focus-visible,.qaid-video-preview-box textarea:focus-visible{outline:2px solid var(--qaid-marker, #6366f1);outline-offset:2px}.qaid-buttons.qaid-incognito:focus-within{opacity:1}.qaid-buttons:focus-within .qaid-dismiss-btn,.qaid-dismiss-btn:focus-visible{opacity:1}.qaid-dismiss-btn{min-width:24px;min-height:24px}button.qaid-recording-stop{min-height:24px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(forced-colors:active){button:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible,.qaid-textarea:focus,button.qaid-btn-submit:focus,.qaid-video-preview-box textarea:focus{outline:2px solid CanvasText;outline-offset:2px}.qaid-selected-marker,.qaid-highlight-box{border-color:Highlight}}", mt = "body.qaid-targeting,body.qaid-targeting *{cursor:none!important}";
|
|
3
|
-
let
|
|
4
|
-
const
|
|
1
|
+
import { i as gt, F as vt, T as yt, a as qt, R as xt } from "./annotate-D-o8xCV9.js";
|
|
2
|
+
const wt = "button{cursor:pointer}.qaid-buttons{display:flex;gap:.5rem}.qaid-buttons.qaid-vertical{flex-direction:column}.qaid-buttons.qaid-auto-container{position:fixed;z-index:50}.qaid-buttons.qaid-auto-container.qaid-bottom-right{bottom:1rem;right:1rem}.qaid-buttons.qaid-auto-container.qaid-bottom-left{bottom:1rem;left:1rem}.qaid-buttons.qaid-auto-container.qaid-top-right{top:1rem;right:1rem}.qaid-buttons.qaid-auto-container.qaid-top-left{top:1rem;left:1rem}.qaid-buttons.qaid-incognito{opacity:0;transition:opacity .2s ease-in-out}.qaid-buttons.qaid-incognito:hover{opacity:1}.qaid-buttons.qaid-dismissed{display:none!important}.qaid-dismiss-btn{width:20px;height:20px;padding:0;border:none;border-radius:50%;background:#0006;color:#fff;display:flex;align-items:center;justify-content:center;align-self:center;opacity:0;transition:opacity .15s,background .15s;cursor:pointer;pointer-events:auto;-webkit-appearance:none;appearance:none}.qaid-dismiss-btn:hover{background:#0009}.qaid-buttons:hover .qaid-dismiss-btn{opacity:1}button.qaid-btn-structural{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;-webkit-appearance:none;appearance:none}.qaid-icon{width:24px;height:24px}:where(button.qaid-btn-structural)>svg:where(:not(.qaid-icon):not([width])){width:var(--qaid-icon-size, 24px);height:var(--qaid-icon-size, 24px)}.qaid-btn-structural:not(:has(svg)),.qaid-btn:not(:has(svg)){font-size:var(--qaid-icon-size, 24px);line-height:1}.qaid-emoji-icon{font-size:var(--qaid-icon-size, 24px);line-height:1}.qaid-buttons,.qaid-buttons *,.qaid-modal-container,.qaid-modal-container *{cursor:pointer!important}.qaid-tooltip-wrapper{position:relative}.qaid-tooltip-text{position:fixed;padding:.5rem .75rem;background:#1f2937;color:#fff;font-size:var(--qaid-font-size, 16px);font-weight:600;border-radius:.5rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:99999}.qaid-tooltip-text.qaid-tooltip-visible{opacity:1}.qaid-targeting-overlay{position:fixed;inset:0;z-index:40;pointer-events:none}.qaid-capture-layer{position:fixed;inset:0;pointer-events:none;z-index:9999}@keyframes qaid-slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.qaid-vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 30%,rgba(0,0,0,.3) 70%,rgba(0,0,0,.6) 100%);z-index:41}.qaid-crosshair-h,.qaid-crosshair-v{position:fixed;pointer-events:none;z-index:42}.qaid-crosshair-h{left:0;right:0;height:1px;background:color-mix(in srgb,var(--qaid-negative) 60%,transparent)}.qaid-crosshair-v{top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--qaid-negative) 60%,transparent)}.qaid-type-up .qaid-crosshair-h,.qaid-type-up .qaid-crosshair-v{background:color-mix(in srgb,var(--qaid-positive) 60%,transparent)}.qaid-highlight-box{position:fixed;top:0;left:0;pointer-events:none;z-index:41;display:none;border:3px solid color-mix(in srgb,var(--qaid-negative) 80%,transparent);border-radius:2px;background:color-mix(in srgb,var(--qaid-negative) 8%,transparent);will-change:transform,width,height}.qaid-type-up .qaid-highlight-box{border-color:color-mix(in srgb,var(--qaid-positive) 80%,transparent);background:color-mix(in srgb,var(--qaid-positive) 8%,transparent)}.qaid-scope{position:fixed;width:80px;height:80px;pointer-events:none;z-index:43;transform:translate(-50%,-50%)}.qaid-scope-ring{position:absolute;inset:10px;border:2px solid color-mix(in srgb,var(--qaid-negative) 80%,transparent);border-radius:50%}.qaid-type-up .qaid-scope-ring{border-color:color-mix(in srgb,var(--qaid-positive) 80%,transparent)}.qaid-scope-ring-inner{position:absolute;inset:20px;border:1px solid color-mix(in srgb,var(--qaid-negative) 50%,transparent);border-radius:50%}.qaid-type-up .qaid-scope-ring-inner{border-color:color-mix(in srgb,var(--qaid-positive) 50%,transparent)}.qaid-scope-dot{position:absolute;top:50%;left:50%;width:4px;height:4px;background:var(--qaid-negative);border-radius:50%;transform:translate(-50%,-50%)}.qaid-type-up .qaid-scope-dot{background:var(--qaid-positive)}.qaid-selected-marker{position:fixed;border:3px solid var(--qaid-marker, #6365f1);border-radius:50%;pointer-events:none;z-index:44;animation:qaid-markerPulse 1.5s ease-in-out infinite}@keyframes qaid-markerPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.qaid-backdrop{position:fixed;inset:0;z-index:45;background:#0000004d}.qaid-modal-container{position:fixed;z-index:50;display:flex;flex-direction:column;align-items:flex-start;max-height:calc(100vh - 32px);font-family:var(--qaid-font-family, system-ui, -apple-system, sans-serif);font-size:var(--qaid-font-size, 16px)}.qaid-modal-container.qaid-above{flex-direction:column-reverse}.qaid-modal-arrow{width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;position:relative;align-self:flex-start}.qaid-modal-container.qaid-below .qaid-modal-arrow{border-bottom:12px solid light-dark(#ffffff,#1f2937)}.qaid-modal-container.qaid-above .qaid-modal-arrow{border-top:12px solid light-dark(#ffffff,#1f2937)}.qaid-modal-box{color-scheme:inherit;background:light-dark(#ffffff,#1f2937);border-radius:1rem;padding:1.5rem;box-shadow:0 25px 50px -12px light-dark(rgba(0,0,0,.25),rgba(0,0,0,.5));width:var(--qaid-modal-width, 400px);max-width:calc(100vw - 32px);max-height:calc(100vh - 60px);overflow-y:auto}.qaid-modal-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem}button.qaid-type-toggle{border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;-webkit-appearance:none;appearance:none}button.qaid-type-toggle:hover{transform:scale(1.1)}button.qaid-type-toggle:not(.qaid-type-toggle-custom){width:2.5rem;height:2.5rem;border-radius:50%}button.qaid-type-toggle:not(.qaid-type-toggle-custom) svg{width:1.25rem;height:1.25rem}button.qaid-type-toggle.qaid-type-up{background:var(--qaid-positive);color:#fff}button.qaid-type-toggle.qaid-type-down{background:var(--qaid-negative);color:#fff}.qaid-type-static{width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--qaid-marker, #6365f1);color:var(--qaid-marker-text, white)}.qaid-type-static svg{width:1.25rem;height:1.25rem}.qaid-modal-header-text{flex:1;min-width:0}.qaid-modal-title{font-size:calc(var(--qaid-font-size, 16px) * 1.125);font-weight:700;margin:0 0 .25rem;color:light-dark(#1f2937,#f9fafb)}.qaid-modal-subtitle{color:light-dark(#6b7280,#9ca3af);margin:0;font-size:calc(var(--qaid-font-size, 16px) * .875)}.qaid-textarea{width:100%;height:6rem;padding:.75rem;border:1px solid light-dark(#d1d5db,#374151);border-radius:.5rem;font-family:inherit;font-size:var(--qaid-font-size, 16px);resize:vertical;margin-bottom:1rem;box-sizing:border-box;background:light-dark(#ffffff,#111827);color:light-dark(#1f2937,#f9fafb)}.qaid-textarea:focus{outline:none;border-color:var(--qaid-marker);box-shadow:0 0 0 3px color-mix(in srgb,var(--qaid-marker) 20%,transparent)}.qaid-btn-row{display:flex;gap:.5rem;justify-content:flex-end}button.qaid-btn-submit{padding:.5rem 1rem;background:var(--qaid-marker);color:var(--qaid-marker-text, white);border:none;border-radius:.5rem;font-size:calc(var(--qaid-font-size, 16px) * .875);font-weight:500;cursor:pointer;transition:background-color .2s,filter .2s;-webkit-appearance:none;appearance:none}button.qaid-btn-submit:hover{filter:brightness(.85)}button.qaid-btn-submit:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--qaid-marker) 30%,transparent)}.qaid-bottom-sheet{position:fixed;bottom:0;left:0;right:0;z-index:50;animation:qaid-slideUpSheet .3s ease-out;font-family:var(--qaid-font-family, system-ui, -apple-system, sans-serif);font-size:var(--qaid-font-size, 16px)}.qaid-bottom-sheet-content{background:light-dark(#ffffff,#1f2937);border-radius:1rem 1rem 0 0;padding:1.5rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}.qaid-bottom-sheet-handle{width:36px;height:4px;background:light-dark(rgba(0,0,0,.2),rgba(255,255,255,.2));border-radius:2px;margin:0 auto 1rem}@keyframes qaid-slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}button.qaid-btn-record:hover{background:#dc2626;color:#fff}.qaid-recording-indicator{position:fixed;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:light-dark(#1f2937,#374151);color:#fff;border-radius:9999px;font-family:var(--qaid-font-family, system-ui, -apple-system, sans-serif);font-size:calc(var(--qaid-font-size, 16px) * .875);font-weight:500;box-shadow:0 4px 12px #0000004d;z-index:99999;animation:qaid-slideDown .2s ease-out}.qaid-recording-dot{width:10px;height:10px;background:#dc2626;border-radius:50%;animation:qaid-dotPulse 1.5s ease-in-out infinite}@keyframes qaid-dotPulse{0%,to{opacity:1}50%{opacity:.3}}.qaid-recording-time{font-variant-numeric:tabular-nums;min-width:2.5rem;text-align:center}button.qaid-recording-stop{padding:.25rem .75rem;background:#dc2626;color:#fff;border:none;border-radius:9999px;font-size:calc(var(--qaid-font-size, 16px) * .75);font-weight:600;cursor:pointer;transition:background-color .2s;-webkit-appearance:none;appearance:none}button.qaid-recording-stop:hover{background:#b91c1c}.qaid-video-preview{position:fixed;inset:0 0 auto;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));box-sizing:border-box;background:#0009;z-index:99998;animation:qaid-fadeIn .2s ease-out}@keyframes qaid-fadeIn{0%{opacity:0}to{opacity:1}}.qaid-video-preview-box{color-scheme:inherit;background:light-dark(#ffffff,#1f2937);border-radius:1rem;padding:1.5rem;box-shadow:0 25px 50px -12px #00000080;width:560px;max-width:100%;max-height:100%;overflow-y:auto;font-family:var(--qaid-font-family, system-ui, -apple-system, sans-serif);font-size:var(--qaid-font-size, 16px)}.qaid-video-preview-box h3{font-size:calc(var(--qaid-font-size, 16px) * 1.125);font-weight:700;margin:0 0 1rem;color:light-dark(#1f2937,#f9fafb)}.qaid-video-preview-box video{width:100%;max-height:50vh;max-height:50dvh;object-fit:contain;border-radius:.5rem;background:#000;margin-bottom:1rem}.qaid-video-preview-box textarea{width:100%;height:4rem;padding:.75rem;border:1px solid light-dark(#d1d5db,#374151);border-radius:.5rem;font-family:inherit;font-size:calc(var(--qaid-font-size, 16px) * .875);resize:vertical;margin-bottom:1rem;box-sizing:border-box;background:light-dark(#ffffff,#111827);color:light-dark(#1f2937,#f9fafb)}.qaid-video-preview-box textarea:focus{outline:none;border-color:var(--qaid-marker);box-shadow:0 0 0 3px color-mix(in srgb,var(--qaid-marker) 20%,transparent)}.qaid-video-error{margin:0 0 .75rem;font-size:calc(var(--qaid-font-size, 16px) * .875);font-weight:500;color:light-dark(#b91c1c,#fca5a5)}.qaid-video-preview-actions{display:flex;gap:.5rem;justify-content:flex-end}button.qaid-video-btn{padding:.5rem 1rem;border:none;border-radius:.5rem;font-size:calc(var(--qaid-font-size, 16px) * .875);font-weight:500;cursor:pointer;transition:background-color .2s,filter .2s;-webkit-appearance:none;appearance:none}button.qaid-video-btn-cancel{background:light-dark(#f3f4f6,#374151);color:light-dark(#374151,#d1d5db)}button.qaid-video-btn-cancel:hover{background:light-dark(#e5e7eb,#4b5563)}button.qaid-video-btn-rerecord{background:light-dark(#fef3c7,#78350f);color:light-dark(#92400e,#fde68a)}button.qaid-video-btn-rerecord:hover{filter:brightness(.9)}button.qaid-video-btn-send{background:var(--qaid-marker);color:var(--qaid-marker-text, white)}button.qaid-video-btn-send:hover{filter:brightness(.85)}button.qaid-video-btn-send:disabled{opacity:.5;cursor:not-allowed}.qaid-video-sending{display:flex;align-items:center;gap:.5rem;font-size:calc(var(--qaid-font-size, 16px) * .875);color:light-dark(#6b7280,#9ca3af)}.qaid-annotate{position:fixed;inset:0;z-index:2147483000;display:flex;flex-direction:column;gap:.75rem;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));box-sizing:border-box;background:#000000d9;font-family:var(--qaid-font-family, system-ui, -apple-system, sans-serif);font-size:var(--qaid-font-size, 16px);animation:qaid-fadeIn .2s ease-out}.qaid-annotate-title{margin:0;font-size:var(--qaid-font-size, 16px);font-weight:700;text-align:center;color:#f9fafb}.qaid-annotate-desc{margin:0;font-size:calc(var(--qaid-font-size, 16px) * .8125);line-height:1.4;text-align:center;color:#f9fafbbf}.qaid-annotate-stage{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;overflow:auto}.qaid-annotate-canvas{max-width:100%;max-height:100%;object-fit:contain;background:light-dark(#ffffff,#111827);border-radius:.5rem;box-shadow:0 10px 30px #00000080;touch-action:none;cursor:crosshair}.qaid-annotate-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:center;padding:.5rem .75rem;background:light-dark(#ffffff,#1f2937);border-radius:.75rem;box-shadow:0 10px 30px light-dark(rgba(0,0,0,.25),rgba(0,0,0,.5))}.qaid-annotate-tools,.qaid-annotate-actions{display:flex;gap:.375rem;align-items:center}button.qaid-annotate-tool,button.qaid-annotate-action{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-width:44px;min-height:44px;padding:0 .75rem;border:1px solid light-dark(#d1d5db,#374151);border-radius:.5rem;background:light-dark(#f9fafb,#111827);color:light-dark(#1f2937,#f9fafb);font-family:inherit;font-size:calc(var(--qaid-font-size, 16px) * .8125);font-weight:600;cursor:pointer;-webkit-appearance:none;appearance:none;transition:background-color .15s,color .15s,border-color .15s,filter .15s}button.qaid-annotate-tool svg,button.qaid-annotate-action svg{width:20px;height:20px}.qaid-annotate-colors{display:flex;gap:.25rem;align-items:center}button.qaid-annotate-swatch{width:28px;height:28px;min-width:28px;padding:0;border-radius:9999px;border:2px solid light-dark(#d1d5db,#4b5563);background:var(--qaid-swatch, #000);cursor:pointer;-webkit-appearance:none;appearance:none;transition:transform .1s,box-shadow .15s,border-color .15s}button.qaid-annotate-swatch:hover{transform:scale(1.12)}button.qaid-annotate-swatch[aria-pressed=true]{border-color:light-dark(#111827,#f9fafb);box-shadow:0 0 0 2px var(--qaid-swatch)}@media(forced-colors:active){button.qaid-annotate-swatch[aria-pressed=true]{outline:2px solid Highlight;outline-offset:1px}}button.qaid-annotate-tool:hover,button.qaid-annotate-action:hover{background:light-dark(#eef2ff,#312e81)}button.qaid-annotate-tool[aria-pressed=true],button.qaid-annotate-done{background:var(--qaid-marker, #6365f1);color:var(--qaid-marker-text, #fff);border-color:var(--qaid-marker, #6365f1)}button.qaid-annotate-done:hover{filter:brightness(.9);background:var(--qaid-marker, #6365f1)}button.qaid-annotate-action:disabled{opacity:.45;cursor:not-allowed}@media(forced-colors:active){button.qaid-annotate-tool[aria-pressed=true],button.qaid-annotate-done{border:2px solid Highlight}.qaid-annotate-canvas{border:1px solid CanvasText}}button:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible{outline:2px solid var(--qaid-marker, #6365f1);outline-offset:2px}.qaid-textarea:focus-visible,button.qaid-btn-submit:focus-visible,.qaid-video-preview-box textarea:focus-visible{outline:2px solid var(--qaid-marker, #6365f1);outline-offset:2px}.qaid-buttons.qaid-incognito:focus-within{opacity:1}.qaid-buttons:focus-within .qaid-dismiss-btn,.qaid-dismiss-btn:focus-visible{opacity:1}.qaid-dismiss-btn{min-width:24px;min-height:24px}button.qaid-recording-stop{min-height:24px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(forced-colors:active){button:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible,.qaid-textarea:focus,button.qaid-btn-submit:focus,.qaid-video-preview-box textarea:focus{outline:2px solid CanvasText;outline-offset:2px}.qaid-selected-marker,.qaid-highlight-box{border-color:Highlight}}.qaid-confirm{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:.5rem 0}.qaid-confirm-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:9999px;color:#fff;background:var(--qaid-success, #22c55e);margin-bottom:.25rem;animation:qaid-confirm-pop .28s cubic-bezier(.34,1.56,.64,1)}.qaid-confirm-icon .qaid-icon{width:24px;height:24px}.qaid-confirm-error .qaid-confirm-icon{background:var(--qaid-error, #dc2626)}.qaid-confirm-title{margin:0;font-size:var(--qaid-font-size, 16px);font-weight:600;color:var(--qaid-text, light-dark(#111827, #f9fafb))}.qaid-confirm-title:focus-visible{outline:2px solid var(--qaid-primary, #6365f1);outline-offset:3px;border-radius:4px}.qaid-confirm-message{margin:0;font-size:calc(var(--qaid-font-size, 16px) * .875);color:var(--qaid-text-muted, light-dark(#6b7280, #9ca3af))}.qaid-confirm .qaid-confirm-close{margin-top:.5rem;min-width:96px}@keyframes qaid-confirm-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.qaid-confirm-icon{animation:none}}", kt = "body.qaid-targeting,body.qaid-targeting *{cursor:none!important}";
|
|
3
|
+
let b = 0;
|
|
4
|
+
const Ct = "button.qaid-btn{width:var(--qaid-btn-size);height:var(--qaid-btn-size);border-radius:50%;border:none;background:#f3f4f6;color:#374151;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);transition:background-color .2s,color .2s,transform .2s;-webkit-appearance:none;appearance:none;--qaid-hover-up-bg:var(--qaid-positive);--qaid-hover-up-color:#fff;--qaid-hover-down-bg:var(--qaid-negative);--qaid-hover-down-color:#fff}button.qaid-btn:hover{transform:scale(1.05)}button.qaid-btn-up:hover{background:var(--qaid-hover-up-bg);color:var(--qaid-hover-up-color)}button.qaid-btn-down:hover{background:var(--qaid-hover-down-bg);color:var(--qaid-hover-down-color)}button.qaid-btn-feedback:hover{background:var(--qaid-marker,#6365f1);color:var(--qaid-marker-text,#fff)}button.qaid-btn svg{width:var(--qaid-icon-size);height:var(--qaid-icon-size)}", St = {
|
|
5
5
|
small: 36,
|
|
6
6
|
medium: 48,
|
|
7
7
|
large: 64
|
|
8
|
-
},
|
|
8
|
+
}, At = {
|
|
9
9
|
small: 18,
|
|
10
10
|
medium: 24,
|
|
11
11
|
large: 32
|
|
12
12
|
};
|
|
13
|
-
function
|
|
13
|
+
function Tt(e, t, i) {
|
|
14
14
|
const [o, r, n] = [e, t, i].map((a) => (a = a / 255, a <= 0.03928 ? a / 12.92 : Math.pow((a + 0.055) / 1.055, 2.4)));
|
|
15
15
|
return 0.2126 * o + 0.7152 * r + 0.0722 * n;
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function Et(e) {
|
|
18
18
|
if (e.startsWith("#")) {
|
|
19
19
|
const i = e.slice(1), o = i.length === 3 ? i.split("").map((n) => n + n).join("") : i, r = parseInt(o, 16);
|
|
20
20
|
return {
|
|
@@ -30,21 +30,21 @@ function qt(e) {
|
|
|
30
30
|
b: parseInt(t[3])
|
|
31
31
|
} : null;
|
|
32
32
|
}
|
|
33
|
-
function
|
|
34
|
-
const t =
|
|
35
|
-
return t &&
|
|
33
|
+
function It(e) {
|
|
34
|
+
const t = Et(e);
|
|
35
|
+
return t && Tt(t.r, t.g, t.b) > 0.4 ? "black" : "white";
|
|
36
36
|
}
|
|
37
|
-
function
|
|
37
|
+
function zt(e = {}) {
|
|
38
38
|
const {
|
|
39
39
|
positiveColor: t = "rgb(0, 200, 83)",
|
|
40
40
|
negativeColor: i = "rgb(255, 0, 0)",
|
|
41
|
-
markerColor: o = "#
|
|
41
|
+
markerColor: o = "#6365f1",
|
|
42
42
|
buttonSize: r = "medium",
|
|
43
43
|
modalWidth: n = 400,
|
|
44
44
|
backdropOpacity: a = 0.3,
|
|
45
45
|
fontFamily: l = "system-ui, -apple-system, sans-serif",
|
|
46
46
|
fontSize: c = 16
|
|
47
|
-
} = e, d =
|
|
47
|
+
} = e, d = St[r], s = At[r], u = It(o);
|
|
48
48
|
return {
|
|
49
49
|
"--qaid-positive": t,
|
|
50
50
|
"--qaid-negative": i,
|
|
@@ -58,22 +58,22 @@ function kt(e = {}) {
|
|
|
58
58
|
"--qaid-font-size": `${c}px`
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
-
function
|
|
61
|
+
function Dt(e, t) {
|
|
62
62
|
for (const [i, o] of Object.entries(t))
|
|
63
63
|
e.style.setProperty(i, o);
|
|
64
64
|
}
|
|
65
|
-
function
|
|
66
|
-
return
|
|
65
|
+
function _() {
|
|
66
|
+
return wt + Ct;
|
|
67
67
|
}
|
|
68
|
-
function
|
|
69
|
-
if (
|
|
68
|
+
function Ht() {
|
|
69
|
+
if (b++, b > 1) return;
|
|
70
70
|
const e = document.createElement("style");
|
|
71
|
-
e.id = "qaid-styles", e.textContent =
|
|
71
|
+
e.id = "qaid-styles", e.textContent = kt, document.head.appendChild(e);
|
|
72
72
|
}
|
|
73
|
-
function
|
|
74
|
-
|
|
73
|
+
function Lt() {
|
|
74
|
+
b <= 0 || (b--, b === 0 && document.getElementById("qaid-styles")?.remove());
|
|
75
75
|
}
|
|
76
|
-
const
|
|
76
|
+
const K = "data-qaid-a11y-live", Mt = "position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;", Bt = [
|
|
77
77
|
"a[href]",
|
|
78
78
|
"button",
|
|
79
79
|
"input",
|
|
@@ -81,25 +81,25 @@ const P = "data-qaid-a11y-live", Tt = "position:absolute;width:1px;height:1px;ma
|
|
|
81
81
|
"select",
|
|
82
82
|
"[tabindex]"
|
|
83
83
|
].join(",");
|
|
84
|
-
function
|
|
84
|
+
function Ot(e) {
|
|
85
85
|
return e.ownerDocument || document;
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function Rt(e, t) {
|
|
88
88
|
const i = t ? "assertive" : "polite", o = e.querySelector(
|
|
89
|
-
`[${
|
|
89
|
+
`[${K}="${i}"]`
|
|
90
90
|
);
|
|
91
91
|
if (o) return o;
|
|
92
|
-
const n =
|
|
93
|
-
return n.setAttribute(
|
|
92
|
+
const n = Ot(e).createElement("div");
|
|
93
|
+
return n.setAttribute(K, i), n.setAttribute("role", t ? "alert" : "status"), n.setAttribute("aria-live", t ? "assertive" : "polite"), n.setAttribute("aria-atomic", "true"), n.style.cssText = Mt, e.appendChild(n), n;
|
|
94
94
|
}
|
|
95
|
-
function
|
|
96
|
-
const o =
|
|
95
|
+
function Pt(e, t, i = {}) {
|
|
96
|
+
const o = Rt(e, !!i.assertive);
|
|
97
97
|
o.textContent = "", o.textContent = t;
|
|
98
98
|
}
|
|
99
|
-
function
|
|
99
|
+
function Ft(e) {
|
|
100
100
|
return e.hasAttribute("disabled") ? !0 : e.disabled === !0;
|
|
101
101
|
}
|
|
102
|
-
function
|
|
102
|
+
function Ut(e) {
|
|
103
103
|
let t = e;
|
|
104
104
|
for (; t; ) {
|
|
105
105
|
if (t.hasAttribute("hidden")) return !0;
|
|
@@ -110,52 +110,52 @@ function Lt(e) {
|
|
|
110
110
|
}
|
|
111
111
|
return !1;
|
|
112
112
|
}
|
|
113
|
-
function
|
|
113
|
+
function $(e) {
|
|
114
114
|
return Array.from(
|
|
115
|
-
e.querySelectorAll(
|
|
116
|
-
).filter((i) => !(i.getAttribute("tabindex") === "-1" || i instanceof HTMLInputElement && i.type === "hidden" || i instanceof HTMLAnchorElement && !i.getAttribute("href") ||
|
|
115
|
+
e.querySelectorAll(Bt)
|
|
116
|
+
).filter((i) => !(i.getAttribute("tabindex") === "-1" || i instanceof HTMLInputElement && i.type === "hidden" || i instanceof HTMLAnchorElement && !i.getAttribute("href") || Ft(i) || Ut(i)));
|
|
117
117
|
}
|
|
118
|
-
function
|
|
118
|
+
function Y(e) {
|
|
119
119
|
let t = e.activeElement;
|
|
120
120
|
for (; t && t.shadowRoot && t.shadowRoot.activeElement; )
|
|
121
121
|
t = t.shadowRoot.activeElement;
|
|
122
122
|
return t instanceof HTMLElement ? t : null;
|
|
123
123
|
}
|
|
124
|
-
function
|
|
124
|
+
function Vt(e) {
|
|
125
125
|
const t = e.ownerDocument || document;
|
|
126
126
|
let i = !1;
|
|
127
127
|
const o = (n) => {
|
|
128
128
|
if (n.key !== "Tab") return;
|
|
129
|
-
const a =
|
|
129
|
+
const a = $(e);
|
|
130
130
|
if (a.length === 0) {
|
|
131
131
|
n.preventDefault(), e.focus();
|
|
132
132
|
return;
|
|
133
133
|
}
|
|
134
|
-
const l = a[0], c = a[a.length - 1], d =
|
|
134
|
+
const l = a[0], c = a[a.length - 1], d = Y(t), s = d ? a.indexOf(d) !== -1 : !1;
|
|
135
135
|
n.shiftKey ? (!s || d === l) && (n.preventDefault(), c.focus()) : (!s || d === c) && (n.preventDefault(), l.focus());
|
|
136
136
|
};
|
|
137
137
|
e.addEventListener("keydown", o);
|
|
138
|
-
const r =
|
|
138
|
+
const r = $(e);
|
|
139
139
|
return r.length > 0 ? r[0].focus() : (e.hasAttribute("tabindex") || (e.setAttribute("tabindex", "-1"), i = !0), e.focus()), {
|
|
140
140
|
release() {
|
|
141
141
|
e.removeEventListener("keydown", o), i && (e.removeAttribute("tabindex"), i = !1);
|
|
142
142
|
}
|
|
143
143
|
};
|
|
144
144
|
}
|
|
145
|
-
function
|
|
146
|
-
return
|
|
145
|
+
function _t() {
|
|
146
|
+
return Y(document);
|
|
147
147
|
}
|
|
148
|
-
function
|
|
148
|
+
function Kt(e) {
|
|
149
149
|
if (!(!e || typeof e.focus != "function"))
|
|
150
150
|
try {
|
|
151
151
|
e.focus();
|
|
152
152
|
} catch {
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
|
-
function
|
|
155
|
+
function $t(e, t = {}) {
|
|
156
156
|
e.setAttribute("role", "dialog"), e.setAttribute("aria-modal", "true"), t.labelledbyId && e.setAttribute("aria-labelledby", t.labelledbyId), t.describedbyId && e.setAttribute("aria-describedby", t.describedbyId), t.label && e.setAttribute("aria-label", t.label);
|
|
157
157
|
}
|
|
158
|
-
function
|
|
158
|
+
function Nt(e, t) {
|
|
159
159
|
let i = e;
|
|
160
160
|
for (; i && i !== t; ) {
|
|
161
161
|
const o = i.parentNode;
|
|
@@ -169,11 +169,11 @@ function Pt(e, t) {
|
|
|
169
169
|
}
|
|
170
170
|
return null;
|
|
171
171
|
}
|
|
172
|
-
function
|
|
172
|
+
function jt(e) {
|
|
173
173
|
const i = (e.ownerDocument || document).body;
|
|
174
174
|
if (!i) return () => {
|
|
175
175
|
};
|
|
176
|
-
const o =
|
|
176
|
+
const o = Nt(e, i), r = [];
|
|
177
177
|
return Array.from(i.children).forEach((n) => {
|
|
178
178
|
if (!(n instanceof HTMLElement) || o && n === o) return;
|
|
179
179
|
const a = n.inert === !0, l = n.getAttribute("aria-hidden");
|
|
@@ -185,14 +185,14 @@ function Ft(e) {
|
|
|
185
185
|
}
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
|
-
const
|
|
188
|
+
const X = {
|
|
189
189
|
width: 400,
|
|
190
190
|
height: 280,
|
|
191
191
|
arrowHeight: 12,
|
|
192
192
|
gap: 8,
|
|
193
193
|
viewportPadding: 16
|
|
194
194
|
};
|
|
195
|
-
function
|
|
195
|
+
function Qt(e, t, i, o, r) {
|
|
196
196
|
const n = e.y, a = t - (e.y + e.height);
|
|
197
197
|
if (a >= i + o)
|
|
198
198
|
return {
|
|
@@ -211,22 +211,22 @@ function Ut(e, t, i, o, r) {
|
|
|
211
211
|
t - i - r
|
|
212
212
|
) : c = Math.max(r, e.y - i - o), { top: c, position: l };
|
|
213
213
|
}
|
|
214
|
-
function
|
|
214
|
+
function Wt(e, t, i, o) {
|
|
215
215
|
let n = e.x + e.width / 2 - i / 2;
|
|
216
216
|
return n = Math.max(o, Math.min(n, t - i - o)), n;
|
|
217
217
|
}
|
|
218
|
-
function
|
|
218
|
+
function Yt(e, t, i, o = 24, r = 24) {
|
|
219
219
|
const a = e.clickX - t - r / 2;
|
|
220
220
|
return Math.max(o, Math.min(a, i - o - r / 2));
|
|
221
221
|
}
|
|
222
|
-
function
|
|
223
|
-
const r = o.height + o.arrowHeight, n =
|
|
222
|
+
function Xt(e, t, i, o = X) {
|
|
223
|
+
const r = o.height + o.arrowHeight, n = Qt(
|
|
224
224
|
e,
|
|
225
225
|
i,
|
|
226
226
|
r,
|
|
227
227
|
o.gap,
|
|
228
228
|
o.viewportPadding
|
|
229
|
-
), a =
|
|
229
|
+
), a = Wt(
|
|
230
230
|
e,
|
|
231
231
|
t,
|
|
232
232
|
o.width,
|
|
@@ -238,15 +238,15 @@ function Kt(e, t, i, o = N) {
|
|
|
238
238
|
position: n.position
|
|
239
239
|
};
|
|
240
240
|
}
|
|
241
|
-
function
|
|
241
|
+
function Gt(e, t, i, o = {}) {
|
|
242
242
|
const r = o.gap ?? 8;
|
|
243
243
|
let n = e.bottom + r;
|
|
244
244
|
n + t.height > i.height - r && (n = e.top - t.height - r);
|
|
245
245
|
let a = e.left;
|
|
246
246
|
return a < r ? a = r : a + t.width > i.width - r && (a = i.width - t.width - r), n < r ? n = r : n + t.height > i.height - r && (n = i.height - t.height - r), { top: n, left: a };
|
|
247
247
|
}
|
|
248
|
-
function
|
|
249
|
-
const r =
|
|
248
|
+
function pe(e, t, i, o = X) {
|
|
249
|
+
const r = Xt(e, t, i, o), n = Yt(
|
|
250
250
|
e,
|
|
251
251
|
r.left,
|
|
252
252
|
o.width
|
|
@@ -256,15 +256,15 @@ function se(e, t, i, o = N) {
|
|
|
256
256
|
arrow: { left: n }
|
|
257
257
|
};
|
|
258
258
|
}
|
|
259
|
-
const
|
|
260
|
-
function
|
|
259
|
+
const Jt = 20;
|
|
260
|
+
function Zt(e) {
|
|
261
261
|
const t = [], i = console.error, o = console.warn, r = console.log, n = (a, l) => {
|
|
262
262
|
const c = {
|
|
263
263
|
message: l.map((d) => String(d)).join(" "),
|
|
264
264
|
timestamp: Date.now(),
|
|
265
265
|
level: a
|
|
266
266
|
};
|
|
267
|
-
t.length >=
|
|
267
|
+
t.length >= Jt && t.shift(), t.push(c), e && e(c);
|
|
268
268
|
};
|
|
269
269
|
return console.error = function(...a) {
|
|
270
270
|
n("error", a), i.apply(console, a);
|
|
@@ -279,7 +279,7 @@ function jt(e) {
|
|
|
279
279
|
}
|
|
280
280
|
};
|
|
281
281
|
}
|
|
282
|
-
const
|
|
282
|
+
const te = "https://unpkg.com/@qaiddev/quests-embed@1/dist/qaid-quests.js", ee = (e) => (
|
|
283
283
|
// The URL is a runtime value, not a static specifier — keep Vite from
|
|
284
284
|
// trying to analyze/bundle it.
|
|
285
285
|
import(
|
|
@@ -287,19 +287,19 @@ const Qt = "https://unpkg.com/@qaiddev/quests-embed@1/dist/qaid-quests.js", Wt =
|
|
|
287
287
|
e
|
|
288
288
|
)
|
|
289
289
|
);
|
|
290
|
-
let
|
|
291
|
-
function
|
|
292
|
-
return
|
|
290
|
+
let ie = ee, p = null, w = null;
|
|
291
|
+
function oe(e) {
|
|
292
|
+
return p && w === e || (w = e, p = Promise.resolve(ie(e)).then((t) => {
|
|
293
293
|
const i = t;
|
|
294
294
|
if (!i || typeof i.QaidQuests != "function")
|
|
295
295
|
throw new Error("quests module has no QaidQuests export");
|
|
296
296
|
return i;
|
|
297
297
|
}).catch((t) => {
|
|
298
|
-
throw
|
|
299
|
-
})),
|
|
298
|
+
throw p = null, w = null, t;
|
|
299
|
+
})), p;
|
|
300
300
|
}
|
|
301
|
-
async function
|
|
302
|
-
const t = await
|
|
301
|
+
async function ae(e) {
|
|
302
|
+
const t = await oe(e.moduleUrl), i = e.base.replace(/\/+$/, ""), o = e.feedbackId != null ? { feedbackId: e.feedbackId } : void 0;
|
|
303
303
|
return new t.QaidQuests({
|
|
304
304
|
endpoint: `${i}/responses`,
|
|
305
305
|
configUrl: `${i}/${encodeURIComponent(e.questId)}/definition`,
|
|
@@ -308,7 +308,7 @@ async function Gt(e) {
|
|
|
308
308
|
onClose: e.onClose
|
|
309
309
|
});
|
|
310
310
|
}
|
|
311
|
-
const
|
|
311
|
+
const N = "qaid_visitor_id", j = "qaid_hide_feedback", ne = [
|
|
312
312
|
"#ef4444",
|
|
313
313
|
"#f59e0b",
|
|
314
314
|
"#22c55e",
|
|
@@ -316,34 +316,46 @@ const U = "qaid_visitor_id", V = "qaid_hide_feedback", Jt = [
|
|
|
316
316
|
"#111827",
|
|
317
317
|
"#ffffff"
|
|
318
318
|
];
|
|
319
|
-
function
|
|
319
|
+
function re() {
|
|
320
320
|
return typeof window.matchMedia == "function" && window.matchMedia("(pointer: coarse)").matches;
|
|
321
321
|
}
|
|
322
322
|
function k(e) {
|
|
323
|
-
return e ? `${
|
|
323
|
+
return e ? `${j}_${e}` : j;
|
|
324
324
|
}
|
|
325
|
-
function
|
|
325
|
+
function se(e) {
|
|
326
326
|
try {
|
|
327
327
|
return localStorage.getItem(k(e)) === "1";
|
|
328
328
|
} catch {
|
|
329
329
|
return !1;
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
|
-
function
|
|
332
|
+
function Q(e, t = !0) {
|
|
333
333
|
try {
|
|
334
334
|
t ? localStorage.setItem(k(e), "1") : localStorage.removeItem(k(e));
|
|
335
335
|
} catch {
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
|
-
function
|
|
338
|
+
function W() {
|
|
339
|
+
const e = typeof crypto < "u" ? crypto : void 0;
|
|
340
|
+
if (e && typeof e.randomUUID == "function") return e.randomUUID();
|
|
341
|
+
const t = new Uint8Array(16);
|
|
342
|
+
if (e && typeof e.getRandomValues == "function")
|
|
343
|
+
e.getRandomValues(t);
|
|
344
|
+
else
|
|
345
|
+
for (let o = 0; o < t.length; o++) t[o] = Math.floor(Math.random() * 256);
|
|
346
|
+
t[6] = t[6] & 15 | 64, t[8] = t[8] & 63 | 128;
|
|
347
|
+
const i = Array.from(t, (o) => o.toString(16).padStart(2, "0")).join("");
|
|
348
|
+
return `${i.slice(0, 8)}-${i.slice(8, 12)}-${i.slice(12, 16)}-${i.slice(16, 20)}-${i.slice(20)}`;
|
|
349
|
+
}
|
|
350
|
+
function de() {
|
|
339
351
|
try {
|
|
340
|
-
let e = localStorage.getItem(
|
|
341
|
-
return e || (e =
|
|
352
|
+
let e = localStorage.getItem(N);
|
|
353
|
+
return e || (e = W(), localStorage.setItem(N, e)), e;
|
|
342
354
|
} catch {
|
|
343
|
-
return
|
|
355
|
+
return W();
|
|
344
356
|
}
|
|
345
357
|
}
|
|
346
|
-
class
|
|
358
|
+
class le {
|
|
347
359
|
config;
|
|
348
360
|
state = "IDLE";
|
|
349
361
|
feedbackData = {
|
|
@@ -432,7 +444,7 @@ class ie {
|
|
|
432
444
|
colors: {
|
|
433
445
|
positive: t.colors?.positive ?? "rgb(0, 200, 83)",
|
|
434
446
|
negative: t.colors?.negative ?? "rgb(255, 0, 0)",
|
|
435
|
-
marker: t.colors?.marker ?? "#
|
|
447
|
+
marker: t.colors?.marker ?? "#6365f1"
|
|
436
448
|
},
|
|
437
449
|
buttonSize: t.buttonSize ?? "medium",
|
|
438
450
|
text: {
|
|
@@ -446,16 +458,22 @@ class ie {
|
|
|
446
458
|
negativeLabel: t.text?.negativeLabel ?? "Send negative feedback",
|
|
447
459
|
recordLabel: t.text?.recordLabel ?? "Record a screen recording",
|
|
448
460
|
dismissLabel: t.text?.dismissLabel ?? "Hide Feedback",
|
|
449
|
-
feedbackLabel: t.text?.feedbackLabel ?? "Send feedback"
|
|
461
|
+
feedbackLabel: t.text?.feedbackLabel ?? "Send feedback",
|
|
462
|
+
confirmationTitle: t.text?.confirmationTitle ?? "Thank you!",
|
|
463
|
+
confirmationMessage: t.text?.confirmationMessage ?? "Your feedback has been received.",
|
|
464
|
+
confirmationClose: t.text?.confirmationClose ?? "Close",
|
|
465
|
+
errorTitle: t.text?.errorTitle ?? "Message not sent",
|
|
466
|
+
errorMessage: t.text?.errorMessage ?? "Something went wrong, so we did not get your message. Please try again later."
|
|
450
467
|
},
|
|
468
|
+
hideConfirmation: t.hideConfirmation ?? !1,
|
|
451
469
|
modalWidth: t.modalWidth ?? 400,
|
|
452
470
|
backdropOpacity: t.backdropOpacity ?? 0.3,
|
|
453
471
|
fontFamily: t.fontFamily ?? "system-ui, -apple-system, sans-serif",
|
|
454
472
|
fontSize: t.fontSize ?? 16,
|
|
455
473
|
captureScreenshot: t.captureScreenshot ?? !1,
|
|
456
474
|
annotate: t.annotate ?? !0,
|
|
457
|
-
annotationColor: t.annotationColor ?? t.colors?.marker ?? "#
|
|
458
|
-
annotationPalette: t.annotationPalette ??
|
|
475
|
+
annotationColor: t.annotationColor ?? t.colors?.marker ?? "#6365f1",
|
|
476
|
+
annotationPalette: t.annotationPalette ?? ne,
|
|
459
477
|
screenshotMethod: t.screenshotMethod ?? "permission",
|
|
460
478
|
screenshotOptions: {
|
|
461
479
|
quality: t.screenshotOptions?.quality ?? 0.8,
|
|
@@ -482,12 +500,12 @@ class ie {
|
|
|
482
500
|
video: t.quests?.video ?? "",
|
|
483
501
|
// Quest service reuses the feedback API key unless overridden.
|
|
484
502
|
apiKey: t.quests?.apiKey ?? t.apiKey ?? "",
|
|
485
|
-
moduleUrl: t.quests?.moduleUrl ??
|
|
503
|
+
moduleUrl: t.quests?.moduleUrl ?? te
|
|
486
504
|
}
|
|
487
|
-
}, this.boundKeyDown = this.handleKeyDown.bind(this), this.boundResize = this.handleResize.bind(this), this.visitorId =
|
|
505
|
+
}, this.boundKeyDown = this.handleKeyDown.bind(this), this.boundResize = this.handleResize.bind(this), this.visitorId = de(), this.init();
|
|
488
506
|
}
|
|
489
507
|
applyVars(t) {
|
|
490
|
-
|
|
508
|
+
Dt(t, this.cssVars);
|
|
491
509
|
}
|
|
492
510
|
/**
|
|
493
511
|
* Announce a message via the shared visually-hidden live regions.
|
|
@@ -497,7 +515,7 @@ class ie {
|
|
|
497
515
|
*/
|
|
498
516
|
announceMsg(t, i = !1) {
|
|
499
517
|
const o = this.overlayShadowRoot ?? this.shadowRoot;
|
|
500
|
-
o &&
|
|
518
|
+
o && Pt(o, t, { assertive: i });
|
|
501
519
|
}
|
|
502
520
|
/**
|
|
503
521
|
* Turn a transient surface into an accessible modal dialog: save the
|
|
@@ -505,16 +523,16 @@ class ie {
|
|
|
505
523
|
* background. Paired with closeDialogA11y() on every close path.
|
|
506
524
|
*/
|
|
507
525
|
openDialogA11y(t, i) {
|
|
508
|
-
this.dialogTrigger =
|
|
526
|
+
this.dialogTrigger = _t(), $t(t, i), this.dialogTrap = Vt(t), this.dialogRestoreInert = jt(t);
|
|
509
527
|
}
|
|
510
528
|
closeDialogA11y() {
|
|
511
|
-
this.dialogTrap?.release(), this.dialogTrap = null, this.dialogRestoreInert && (this.dialogRestoreInert(), this.dialogRestoreInert = null),
|
|
529
|
+
this.dialogTrap?.release(), this.dialogTrap = null, this.dialogRestoreInert && (this.dialogRestoreInert(), this.dialogRestoreInert = null), Kt(this.dialogTrigger), this.dialogTrigger = null;
|
|
512
530
|
}
|
|
513
531
|
clearActiveThumb() {
|
|
514
532
|
this.activeThumbBtn && (this.activeThumbBtn.setAttribute("aria-pressed", "false"), this.activeThumbBtn = null);
|
|
515
533
|
}
|
|
516
534
|
init() {
|
|
517
|
-
|
|
535
|
+
Ht(), this.cssVars = zt({
|
|
518
536
|
positiveColor: this.config.colors.positive,
|
|
519
537
|
negativeColor: this.config.colors.negative,
|
|
520
538
|
markerColor: this.config.colors.marker,
|
|
@@ -523,7 +541,7 @@ class ie {
|
|
|
523
541
|
backdropOpacity: this.config.backdropOpacity,
|
|
524
542
|
fontFamily: this.config.fontFamily,
|
|
525
543
|
fontSize: this.config.fontSize
|
|
526
|
-
}), !this.config.hideDismiss &&
|
|
544
|
+
}), !this.config.hideDismiss && se(this.config.apiKey) && (this._startDismissed = !0), this.checkMobile(), window.addEventListener("resize", this.boundResize), this.createEmbed(), this.consoleCapture = Zt((t) => {
|
|
527
545
|
this.feedbackData.consoleErrors = this.consoleCapture?.errors ?? [];
|
|
528
546
|
}), this.feedbackData.consoleErrors = this.consoleCapture.errors, this.observeDom(), (this.config.captureVideo && this.videoSupported() || this.config.captureScreenshot) && this.schedulePrewarm(() => {
|
|
529
547
|
this.config.captureVideo && this.videoSupported() && this.prewarmVideo(), this.config.captureScreenshot && this.prewarmScreenshot();
|
|
@@ -536,13 +554,13 @@ class ie {
|
|
|
536
554
|
* swallowed — a failed preload just falls back to an on-demand load.
|
|
537
555
|
*/
|
|
538
556
|
prewarmVideo() {
|
|
539
|
-
this.videoPrewarmed || (this.videoPrewarmed = !0, import("./recording-
|
|
540
|
-
}), import("./video-
|
|
557
|
+
this.videoPrewarmed || (this.videoPrewarmed = !0, import("./recording-Dx8AX-BC.js").catch(() => {
|
|
558
|
+
}), import("./video-Bd_29-rK.js").catch(() => {
|
|
541
559
|
}));
|
|
542
560
|
}
|
|
543
561
|
prewarmScreenshot() {
|
|
544
|
-
this.screenshotPrewarmed || (this.screenshotPrewarmed = !0, (this.shouldCaptureViaDom() ? import("./screenshot-dom-CME7tYRE.js") : import("./screenshot-
|
|
545
|
-
}), this.config.annotate && import("./annotate-
|
|
562
|
+
this.screenshotPrewarmed || (this.screenshotPrewarmed = !0, (this.shouldCaptureViaDom() ? import("./screenshot-dom-CME7tYRE.js") : import("./screenshot-DYOKg2bS.js")).catch(() => {
|
|
563
|
+
}), this.config.annotate && import("./annotate-D-o8xCV9.js").then((t) => t.d).catch(() => {
|
|
546
564
|
}));
|
|
547
565
|
}
|
|
548
566
|
/** Run fn when the main thread is idle; cancelled by destroy(). */
|
|
@@ -571,7 +589,7 @@ class ie {
|
|
|
571
589
|
}), this.domObserver.observe(document.body, { childList: !0 });
|
|
572
590
|
}
|
|
573
591
|
checkMobile() {
|
|
574
|
-
this.isMobile =
|
|
592
|
+
this.isMobile = gt();
|
|
575
593
|
}
|
|
576
594
|
handleResize() {
|
|
577
595
|
this.checkMobile();
|
|
@@ -581,7 +599,7 @@ class ie {
|
|
|
581
599
|
let t = null;
|
|
582
600
|
this.config.container && (t = document.querySelector(this.config.container)), t ? (t.appendChild(this.shadowHost), this.isUserProvidedContainer = !0, this.config.hideDismiss = !0) : (this.shadowHost.style.position = "fixed", this.shadowHost.style.display = "block", this.shadowHost.style.inset = "0", this.shadowHost.style.pointerEvents = "none", this.shadowHost.style.zIndex = String(this.config.zIndex), document.body.appendChild(this.shadowHost)), this.shadowRoot = this.shadowHost.attachShadow({ mode: "open" });
|
|
583
601
|
const i = document.createElement("style");
|
|
584
|
-
if (i.textContent =
|
|
602
|
+
if (i.textContent = _(), this.shadowRoot.appendChild(i), this.config.css) {
|
|
585
603
|
const d = document.createElement("style");
|
|
586
604
|
d.textContent = this.config.css, this.shadowRoot.appendChild(d);
|
|
587
605
|
}
|
|
@@ -605,20 +623,20 @@ class ie {
|
|
|
605
623
|
const d = document.createElement("div");
|
|
606
624
|
d.className = "qaid-tooltip-wrapper";
|
|
607
625
|
const s = document.createElement("button");
|
|
608
|
-
s.type = "button", s.className = r ? `${n} qaid-btn-feedback` : "qaid-btn qaid-btn-feedback", s.setAttribute("aria-label", this.config.text.feedbackLabel), s.innerHTML = this.config.feedbackIcon ||
|
|
626
|
+
s.type = "button", s.className = r ? `${n} qaid-btn-feedback` : "qaid-btn qaid-btn-feedback", s.setAttribute("aria-label", this.config.text.feedbackLabel), s.innerHTML = this.config.feedbackIcon || vt, s.addEventListener("click", (u) => this.handleThumbClick("neutral", u.currentTarget, u)), s.addEventListener("mouseenter", () => {
|
|
609
627
|
this.prewarmTargeting(), this.showTooltip(s);
|
|
610
628
|
}), s.addEventListener("mouseleave", () => this.hideTooltip()), d.appendChild(s), this.buttonsContainer.appendChild(d);
|
|
611
629
|
} else if (!this.config.hideThumbs) {
|
|
612
630
|
const d = document.createElement("div");
|
|
613
631
|
d.className = "qaid-tooltip-wrapper";
|
|
614
632
|
const s = document.createElement("button");
|
|
615
|
-
s.type = "button", s.className = r ? `${n} qaid-btn-up` : "qaid-btn qaid-btn-up", s.setAttribute("aria-label", this.config.text.positiveLabel), s.innerHTML = this.config.positiveIcon ||
|
|
633
|
+
s.type = "button", s.className = r ? `${n} qaid-btn-up` : "qaid-btn qaid-btn-up", s.setAttribute("aria-label", this.config.text.positiveLabel), s.innerHTML = this.config.positiveIcon || yt, s.addEventListener("click", (f) => this.handleThumbClick("up", f.currentTarget, f)), s.addEventListener("mouseenter", () => {
|
|
616
634
|
this.prewarmTargeting(), this.showTooltip(s);
|
|
617
635
|
}), s.addEventListener("mouseleave", () => this.hideTooltip()), d.appendChild(s);
|
|
618
636
|
const u = document.createElement("div");
|
|
619
637
|
u.className = "qaid-tooltip-wrapper";
|
|
620
638
|
const h = document.createElement("button");
|
|
621
|
-
h.type = "button", h.className = r ? `${n} qaid-btn-down` : "qaid-btn qaid-btn-down", h.setAttribute("aria-label", this.config.text.negativeLabel), h.innerHTML = this.config.negativeIcon ||
|
|
639
|
+
h.type = "button", h.className = r ? `${n} qaid-btn-down` : "qaid-btn qaid-btn-down", h.setAttribute("aria-label", this.config.text.negativeLabel), h.innerHTML = this.config.negativeIcon || qt, h.addEventListener("click", (f) => this.handleThumbClick("down", f.currentTarget, f)), h.addEventListener("mouseenter", () => {
|
|
622
640
|
this.prewarmTargeting(), this.showTooltip(h);
|
|
623
641
|
}), h.addEventListener("mouseleave", () => this.hideTooltip()), u.appendChild(h), this.buttonsContainer.appendChild(d), this.buttonsContainer.appendChild(u);
|
|
624
642
|
}
|
|
@@ -626,7 +644,7 @@ class ie {
|
|
|
626
644
|
const d = document.createElement("div");
|
|
627
645
|
d.className = "qaid-tooltip-wrapper";
|
|
628
646
|
const s = document.createElement("button");
|
|
629
|
-
s.type = "button", s.className = r ? `${n} qaid-btn-record` : "qaid-btn qaid-btn-record", s.setAttribute("aria-label", this.config.text.recordLabel), s.innerHTML = this.config.recordIcon ||
|
|
647
|
+
s.type = "button", s.className = r ? `${n} qaid-btn-record` : "qaid-btn qaid-btn-record", s.setAttribute("aria-label", this.config.text.recordLabel), s.innerHTML = this.config.recordIcon || xt, s.addEventListener("click", () => {
|
|
630
648
|
this.ensureRecording().then(
|
|
631
649
|
(h) => this.config.videoOptions.redaction ? h.startPicking() : h.startRecording()
|
|
632
650
|
);
|
|
@@ -650,7 +668,7 @@ class ie {
|
|
|
650
668
|
if (this.overlayShadowRoot) return this.overlayShadowRoot;
|
|
651
669
|
this.overlayShadowHost = document.createElement("div"), this.overlayShadowHost.setAttribute("data-qaid-embed-overlay", ""), this.overlayShadowHost.style.position = "fixed", this.overlayShadowHost.style.inset = "0", this.overlayShadowHost.style.pointerEvents = "none", this.overlayShadowHost.style.zIndex = String(this.config.zIndex), document.body.appendChild(this.overlayShadowHost), this.overlayShadowRoot = this.overlayShadowHost.attachShadow({ mode: "open" });
|
|
652
670
|
const t = document.createElement("style");
|
|
653
|
-
if (t.textContent =
|
|
671
|
+
if (t.textContent = _(), this.overlayShadowRoot.appendChild(t), this.config.css) {
|
|
654
672
|
const i = document.createElement("style");
|
|
655
673
|
i.textContent = this.config.css, this.overlayShadowRoot.appendChild(i);
|
|
656
674
|
}
|
|
@@ -660,7 +678,7 @@ class ie {
|
|
|
660
678
|
showTooltip(t) {
|
|
661
679
|
const i = this.tooltipElement;
|
|
662
680
|
i.style.visibility = "hidden", i.classList.add("qaid-tooltip-visible");
|
|
663
|
-
const o = t.getBoundingClientRect(), r = i.getBoundingClientRect(), { top: n, left: a } =
|
|
681
|
+
const o = t.getBoundingClientRect(), r = i.getBoundingClientRect(), { top: n, left: a } = Gt(
|
|
664
682
|
o,
|
|
665
683
|
r,
|
|
666
684
|
{ width: window.innerWidth, height: window.innerHeight }
|
|
@@ -671,10 +689,10 @@ class ie {
|
|
|
671
689
|
this.tooltipElement.classList.remove("qaid-tooltip-visible");
|
|
672
690
|
}
|
|
673
691
|
handleDismiss() {
|
|
674
|
-
this.buttonsContainer.classList.add("qaid-dismissed"),
|
|
692
|
+
this.buttonsContainer.classList.add("qaid-dismissed"), Q(this.config.apiKey, !0);
|
|
675
693
|
}
|
|
676
694
|
handleThumbClick(t, i, o) {
|
|
677
|
-
if (this.buttonsContainer?.classList.contains("qaid-incognito") && (this.buttonsContainer.classList.remove("qaid-incognito"),
|
|
695
|
+
if (this.buttonsContainer?.classList.contains("qaid-incognito") && (this.buttonsContainer.classList.remove("qaid-incognito"), Q(this.config.apiKey, !1)), this.prewarmModal(), this.config.skipTargeting || this.config.feedbackMode === "annotate")
|
|
678
696
|
this.submitDirectFeedback(t, i);
|
|
679
697
|
else {
|
|
680
698
|
this.activeThumbBtn = i, i.setAttribute("aria-pressed", "true");
|
|
@@ -707,7 +725,7 @@ class ie {
|
|
|
707
725
|
* instead of the permission-based Screen Capture API. Explicit "dom" wins;
|
|
708
726
|
* otherwise DOM is used on touch devices to avoid the getDisplayMedia prompt. */
|
|
709
727
|
shouldCaptureViaDom() {
|
|
710
|
-
return this.config.screenshotMethod === "dom" ||
|
|
728
|
+
return this.config.screenshotMethod === "dom" || re();
|
|
711
729
|
}
|
|
712
730
|
/**
|
|
713
731
|
* Open the full-screen annotation editor over the captured screenshot,
|
|
@@ -720,7 +738,7 @@ class ie {
|
|
|
720
738
|
const i = this.ensureOverlayHost(), o = this.overlayShadowHost, r = o.style.pointerEvents;
|
|
721
739
|
o.style.pointerEvents = "auto";
|
|
722
740
|
try {
|
|
723
|
-
const { openAnnotationEditor: n } = await import("./annotate-
|
|
741
|
+
const { openAnnotationEditor: n } = await import("./annotate-D-o8xCV9.js").then((a) => a.d);
|
|
724
742
|
return await n({
|
|
725
743
|
dataUrl: t,
|
|
726
744
|
root: i,
|
|
@@ -746,7 +764,7 @@ class ie {
|
|
|
746
764
|
const { captureDomScreenshot: a } = await import("./screenshot-dom-CME7tYRE.js");
|
|
747
765
|
t = await a(this.config.screenshotOptions);
|
|
748
766
|
} else {
|
|
749
|
-
const { captureScreenshot: a } = await import("./screenshot-
|
|
767
|
+
const { captureScreenshot: a } = await import("./screenshot-DYOKg2bS.js");
|
|
750
768
|
t = await a(this.config.screenshotOptions);
|
|
751
769
|
}
|
|
752
770
|
t && this.announceMsg("Screenshot captured");
|
|
@@ -824,7 +842,7 @@ class ie {
|
|
|
824
842
|
const o = this.questIdFor(t);
|
|
825
843
|
if (!o) return !1;
|
|
826
844
|
try {
|
|
827
|
-
return this.activeQuest?.destroy(), this.activeQuest = await
|
|
845
|
+
return this.activeQuest?.destroy(), this.activeQuest = await ae({
|
|
828
846
|
questId: o,
|
|
829
847
|
base: this.config.quests.base,
|
|
830
848
|
apiKey: this.config.quests.apiKey || void 0,
|
|
@@ -853,7 +871,7 @@ class ie {
|
|
|
853
871
|
*/
|
|
854
872
|
async ensureModal() {
|
|
855
873
|
if (!this.modal) {
|
|
856
|
-
const { ModalController: t } = await import("./modal-
|
|
874
|
+
const { ModalController: t } = await import("./modal-CTbqN-h9.js");
|
|
857
875
|
this.modal = new t(this.makeModalHost());
|
|
858
876
|
}
|
|
859
877
|
return this.modal;
|
|
@@ -899,7 +917,7 @@ class ie {
|
|
|
899
917
|
}
|
|
900
918
|
/** Warm the modal chunk while the user is targeting, so it opens instantly. */
|
|
901
919
|
prewarmModal() {
|
|
902
|
-
this.modalPrewarmed || (this.modalPrewarmed = !0, import("./modal-
|
|
920
|
+
this.modalPrewarmed || (this.modalPrewarmed = !0, import("./modal-CTbqN-h9.js").catch(() => {
|
|
903
921
|
}));
|
|
904
922
|
}
|
|
905
923
|
/**
|
|
@@ -909,7 +927,7 @@ class ie {
|
|
|
909
927
|
*/
|
|
910
928
|
async ensureTargeting() {
|
|
911
929
|
if (!this.targeting) {
|
|
912
|
-
const { TargetingController: t } = await import("./targeting-
|
|
930
|
+
const { TargetingController: t } = await import("./targeting-Dz6z1BYl.js");
|
|
913
931
|
this.targeting = new t(this.makeTargetingHost());
|
|
914
932
|
}
|
|
915
933
|
return this.targeting;
|
|
@@ -954,7 +972,7 @@ class ie {
|
|
|
954
972
|
}
|
|
955
973
|
/** Warm the targeting chunk on thumb-button hover, before the click. */
|
|
956
974
|
prewarmTargeting() {
|
|
957
|
-
this.targetingPrewarmed || this.config.skipTargeting || (this.targetingPrewarmed = !0, import("./targeting-
|
|
975
|
+
this.targetingPrewarmed || this.config.skipTargeting || (this.targetingPrewarmed = !0, import("./targeting-Dz6z1BYl.js").catch(() => {
|
|
958
976
|
}));
|
|
959
977
|
}
|
|
960
978
|
// ==================== Video Recording ====================
|
|
@@ -973,7 +991,7 @@ class ie {
|
|
|
973
991
|
*/
|
|
974
992
|
async ensureRecording() {
|
|
975
993
|
if (!this.recording) {
|
|
976
|
-
const { RecordingController: t } = await import("./recording-
|
|
994
|
+
const { RecordingController: t } = await import("./recording-Dx8AX-BC.js");
|
|
977
995
|
this.recording = new t(this.makeRecordingHost());
|
|
978
996
|
}
|
|
979
997
|
return this.recording;
|
|
@@ -1029,13 +1047,13 @@ class ie {
|
|
|
1029
1047
|
const t = window;
|
|
1030
1048
|
this.prewarmIsTimeout ? clearTimeout(this.prewarmHandle) : t.cancelIdleCallback?.(this.prewarmHandle), this.prewarmHandle = null;
|
|
1031
1049
|
}
|
|
1032
|
-
this.recording?.destroy(), this.recording = null, this.modal?.destroy(), this.modal = null, this.activeQuest?.destroy(), this.activeQuest = null, this.consoleCapture && (this.consoleCapture.restore(), this.consoleCapture = null), window.removeEventListener("resize", this.boundResize), document.removeEventListener("keydown", this.boundKeyDown), document.body.classList.remove("qaid-targeting", "qaid-type-up"), document.body.style.removeProperty("--qaid-positive"), document.body.style.removeProperty("--qaid-negative"), this.shadowHost && (this.shadowHost.remove(), this.shadowHost = null, this.shadowRoot = null), this.overlayShadowHost && (this.overlayShadowHost.remove(), this.overlayShadowHost = null, this.overlayShadowRoot = null), this.buttonsContainer = null, this.dismissBtn = null, this.tooltipElement = null,
|
|
1050
|
+
this.recording?.destroy(), this.recording = null, this.modal?.destroy(), this.modal = null, this.activeQuest?.destroy(), this.activeQuest = null, this.consoleCapture && (this.consoleCapture.restore(), this.consoleCapture = null), window.removeEventListener("resize", this.boundResize), document.removeEventListener("keydown", this.boundKeyDown), document.body.classList.remove("qaid-targeting", "qaid-type-up"), document.body.style.removeProperty("--qaid-positive"), document.body.style.removeProperty("--qaid-negative"), this.shadowHost && (this.shadowHost.remove(), this.shadowHost = null, this.shadowRoot = null), this.overlayShadowHost && (this.overlayShadowHost.remove(), this.overlayShadowHost = null, this.overlayShadowRoot = null), this.buttonsContainer = null, this.dismissBtn = null, this.tooltipElement = null, Lt();
|
|
1033
1051
|
}
|
|
1034
1052
|
}
|
|
1035
|
-
function
|
|
1053
|
+
function G(e) {
|
|
1036
1054
|
return document.querySelector(e)?.textContent?.trim() ?? "";
|
|
1037
1055
|
}
|
|
1038
|
-
function
|
|
1056
|
+
function ce() {
|
|
1039
1057
|
const e = document.querySelector(
|
|
1040
1058
|
'script[type="application/json"][data-feedback-config]'
|
|
1041
1059
|
);
|
|
@@ -1044,92 +1062,98 @@ function oe() {
|
|
|
1044
1062
|
if (!t) return null;
|
|
1045
1063
|
try {
|
|
1046
1064
|
const i = JSON.parse(t);
|
|
1047
|
-
return i.cssSelector && !i.css && (i.css =
|
|
1065
|
+
return i.cssSelector && !i.css && (i.css = G(i.cssSelector), delete i.cssSelector), i;
|
|
1048
1066
|
} catch {
|
|
1049
1067
|
return null;
|
|
1050
1068
|
}
|
|
1051
1069
|
}
|
|
1052
|
-
function
|
|
1070
|
+
function ue(e) {
|
|
1053
1071
|
const t = e.getAttribute("data-endpoint");
|
|
1054
1072
|
if (!t) return null;
|
|
1055
|
-
const i = e.getAttribute("data-position"), o = e.getAttribute("data-zindex"), r = e.getAttribute("data-positive-color"), n = e.getAttribute("data-negative-color"), a = e.getAttribute("data-marker-color"), l = e.getAttribute("data-container"), c = e.getAttribute("data-button-class"), d = e.getAttribute("data-skip-targeting"), s = e.getAttribute("data-single-button"),
|
|
1073
|
+
const i = e.getAttribute("data-position"), o = e.getAttribute("data-zindex"), r = e.getAttribute("data-positive-color"), n = e.getAttribute("data-negative-color"), a = e.getAttribute("data-marker-color"), l = e.getAttribute("data-container"), c = e.getAttribute("data-button-class"), d = e.getAttribute("data-skip-targeting"), s = e.getAttribute("data-hide-confirmation"), u = e.getAttribute("data-single-button"), h = e.getAttribute("data-feedback-mode"), f = e.getAttribute("data-incognito"), J = e.getAttribute("data-button-size"), m = e.getAttribute("data-offset-x"), g = e.getAttribute("data-offset-y"), C = e.getAttribute("data-modal-width"), S = e.getAttribute("data-backdrop-opacity"), Z = e.getAttribute("data-font-family"), A = e.getAttribute("data-font-size"), T = e.getAttribute("data-tooltip"), E = e.getAttribute("data-modal-title"), I = e.getAttribute("data-confirmation-title"), z = e.getAttribute("data-confirmation-message"), D = e.getAttribute("data-confirmation-close"), H = e.getAttribute("data-error-title"), L = e.getAttribute("data-error-message"), M = e.getAttribute("data-modal-subtitle"), B = e.getAttribute("data-placeholder"), O = e.getAttribute("data-submit-button"), R = e.getAttribute("data-skip-button"), tt = e.getAttribute("data-positive-icon"), et = e.getAttribute("data-negative-icon"), it = e.getAttribute("data-feedback-icon"), P = e.getAttribute("data-feedback-label"), ot = e.getAttribute("data-api-key"), at = e.getAttribute("data-capture-screenshot"), nt = e.getAttribute("data-annotate"), rt = e.getAttribute("data-annotation-color"), v = e.getAttribute("data-screenshot-quality"), y = e.getAttribute("data-screenshot-max-width"), q = e.getAttribute("data-screenshot-max-height"), st = e.getAttribute("data-capture-video"), F = e.getAttribute("data-video-redaction"), dt = e.getAttribute("data-hide-thumbs"), lt = e.getAttribute("data-hide-dismiss"), x = e.getAttribute("data-video-max-duration"), ct = e.getAttribute("data-screenshot-method"), ut = e.getAttribute("data-direction"), U = e.getAttribute("data-css-selector"), V = e.getAttribute("data-quest-base"), ht = e.getAttribute("data-quest-up"), ft = e.getAttribute("data-quest-down"), pt = e.getAttribute("data-quest-video"), bt = e.getAttribute("data-quest-api-key"), mt = e.getAttribute("data-quest-module-url");
|
|
1056
1074
|
return {
|
|
1057
1075
|
endpoint: t,
|
|
1058
|
-
css:
|
|
1059
|
-
apiKey:
|
|
1060
|
-
captureScreenshot:
|
|
1076
|
+
css: U ? G(U) : void 0,
|
|
1077
|
+
apiKey: ot ?? void 0,
|
|
1078
|
+
captureScreenshot: at === "true" ? !0 : void 0,
|
|
1061
1079
|
// Annotation is on by default; only an explicit "false" disables it.
|
|
1062
|
-
annotate:
|
|
1063
|
-
annotationColor:
|
|
1064
|
-
screenshotOptions: v || y ||
|
|
1080
|
+
annotate: nt === "false" ? !1 : void 0,
|
|
1081
|
+
annotationColor: rt ?? void 0,
|
|
1082
|
+
screenshotOptions: v || y || q ? {
|
|
1065
1083
|
quality: v ? parseFloat(v) : void 0,
|
|
1066
1084
|
maxWidth: y ? parseInt(y, 10) : void 0,
|
|
1067
|
-
maxHeight:
|
|
1085
|
+
maxHeight: q ? parseInt(q, 10) : void 0
|
|
1068
1086
|
} : void 0,
|
|
1069
1087
|
container: l ?? void 0,
|
|
1070
1088
|
buttonClass: c ?? void 0,
|
|
1071
|
-
direction:
|
|
1089
|
+
direction: ut ?? void 0,
|
|
1072
1090
|
position: i ?? void 0,
|
|
1073
1091
|
zIndex: o ? parseInt(o, 10) : void 0,
|
|
1074
1092
|
skipTargeting: d === "true" ? !0 : void 0,
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1093
|
+
hideConfirmation: s === "true" ? !0 : void 0,
|
|
1094
|
+
singleButton: u === "true" ? !0 : void 0,
|
|
1095
|
+
feedbackMode: h ?? void 0,
|
|
1096
|
+
incognito: f === "true" ? !0 : void 0,
|
|
1097
|
+
buttonSize: J ?? void 0,
|
|
1079
1098
|
offset: m || g ? {
|
|
1080
1099
|
x: m ? parseInt(m, 10) : void 0,
|
|
1081
1100
|
y: g ? parseInt(g, 10) : void 0
|
|
1082
1101
|
} : void 0,
|
|
1083
|
-
modalWidth:
|
|
1084
|
-
backdropOpacity:
|
|
1085
|
-
fontFamily:
|
|
1102
|
+
modalWidth: C ? parseInt(C, 10) : void 0,
|
|
1103
|
+
backdropOpacity: S ? parseFloat(S) : void 0,
|
|
1104
|
+
fontFamily: Z ?? void 0,
|
|
1086
1105
|
fontSize: A ? parseInt(A, 10) : void 0,
|
|
1087
1106
|
colors: {
|
|
1088
1107
|
positive: r ?? void 0,
|
|
1089
1108
|
negative: n ?? void 0,
|
|
1090
1109
|
marker: a ?? void 0
|
|
1091
1110
|
},
|
|
1092
|
-
text: T || E ||
|
|
1111
|
+
text: T || E || M || B || O || R || P || I || z || D || H || L ? {
|
|
1093
1112
|
tooltip: T ?? void 0,
|
|
1094
1113
|
modalTitle: E ?? void 0,
|
|
1095
|
-
modalSubtitle:
|
|
1096
|
-
placeholder:
|
|
1097
|
-
submitButton:
|
|
1098
|
-
skipButton:
|
|
1099
|
-
feedbackLabel:
|
|
1114
|
+
modalSubtitle: M ?? void 0,
|
|
1115
|
+
placeholder: B ?? void 0,
|
|
1116
|
+
submitButton: O ?? void 0,
|
|
1117
|
+
skipButton: R ?? void 0,
|
|
1118
|
+
feedbackLabel: P ?? void 0,
|
|
1119
|
+
confirmationTitle: I ?? void 0,
|
|
1120
|
+
confirmationMessage: z ?? void 0,
|
|
1121
|
+
confirmationClose: D ?? void 0,
|
|
1122
|
+
errorTitle: H ?? void 0,
|
|
1123
|
+
errorMessage: L ?? void 0
|
|
1100
1124
|
} : void 0,
|
|
1101
|
-
positiveIcon:
|
|
1102
|
-
negativeIcon:
|
|
1103
|
-
feedbackIcon:
|
|
1104
|
-
screenshotMethod:
|
|
1105
|
-
captureVideo:
|
|
1106
|
-
hideThumbs:
|
|
1107
|
-
hideDismiss:
|
|
1108
|
-
videoOptions:
|
|
1109
|
-
maxDuration:
|
|
1110
|
-
redaction:
|
|
1125
|
+
positiveIcon: tt ?? void 0,
|
|
1126
|
+
negativeIcon: et ?? void 0,
|
|
1127
|
+
feedbackIcon: it ?? void 0,
|
|
1128
|
+
screenshotMethod: ct ?? void 0,
|
|
1129
|
+
captureVideo: st === "true" ? !0 : void 0,
|
|
1130
|
+
hideThumbs: dt === "true" ? !0 : void 0,
|
|
1131
|
+
hideDismiss: lt === "true" ? !0 : void 0,
|
|
1132
|
+
videoOptions: x || F ? {
|
|
1133
|
+
maxDuration: x ? parseInt(x, 10) : void 0,
|
|
1134
|
+
redaction: F === "true" ? !0 : void 0
|
|
1111
1135
|
} : void 0,
|
|
1112
|
-
quests:
|
|
1113
|
-
base:
|
|
1114
|
-
up:
|
|
1115
|
-
down:
|
|
1116
|
-
video:
|
|
1117
|
-
apiKey:
|
|
1118
|
-
moduleUrl:
|
|
1136
|
+
quests: V ? {
|
|
1137
|
+
base: V,
|
|
1138
|
+
up: ht ?? void 0,
|
|
1139
|
+
down: ft ?? void 0,
|
|
1140
|
+
video: pt ?? void 0,
|
|
1141
|
+
apiKey: bt ?? void 0,
|
|
1142
|
+
moduleUrl: mt ?? void 0
|
|
1119
1143
|
} : void 0
|
|
1120
1144
|
};
|
|
1121
1145
|
}
|
|
1122
|
-
function
|
|
1146
|
+
function he() {
|
|
1123
1147
|
if (typeof document > "u") return;
|
|
1124
1148
|
const e = () => {
|
|
1125
|
-
const t = document.currentScript ?? document.querySelector("script[data-endpoint]"), i =
|
|
1126
|
-
r?.endpoint && new
|
|
1149
|
+
const t = document.currentScript ?? document.querySelector("script[data-endpoint]"), i = ce(), o = t ? ue(t) : null, r = i ?? o;
|
|
1150
|
+
r?.endpoint && new le(r);
|
|
1127
1151
|
};
|
|
1128
1152
|
document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", e) : e();
|
|
1129
1153
|
}
|
|
1130
|
-
|
|
1154
|
+
he();
|
|
1131
1155
|
export {
|
|
1132
|
-
|
|
1133
|
-
|
|
1156
|
+
le as Q,
|
|
1157
|
+
pe as c
|
|
1134
1158
|
};
|
|
1135
|
-
//# sourceMappingURL=loader-
|
|
1159
|
+
//# sourceMappingURL=loader-DHtXHt1z.js.map
|