@vocalstack/player 0.1.0-alpha.43 → 0.1.0-alpha.44
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/dist/index.js +658 -657
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var Me = (t, e, n) =>
|
|
1
|
+
var Qa = Object.defineProperty;
|
|
2
|
+
var Ba = (t, e, n) => e in t ? Qa(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
|
+
var Me = (t, e, n) => Ba(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
4
|
import { jsx as i, jsxs as M, Fragment as Ce } from "react/jsx-runtime";
|
|
5
|
-
import { useState as L, useRef as k, useEffect as D, useLayoutEffect as Kt, createContext as
|
|
6
|
-
import { createPortal as
|
|
7
|
-
import { VocalStackError as
|
|
8
|
-
const ji = "https://vocalstack.com", Fa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Za = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Ga = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", qa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
9
|
-
function
|
|
5
|
+
import { useState as L, useRef as k, useEffect as D, useLayoutEffect as Kt, createContext as ki, useMemo as ze, useContext as Va, useCallback as Ke, Fragment as Ha, forwardRef as Wa, useImperativeHandle as Fa } from "react";
|
|
6
|
+
import { createPortal as Za } from "react-dom";
|
|
7
|
+
import { VocalStackError as ji, VocalStack as zi } from "@vocalstack/js-sdk";
|
|
8
|
+
const Ii = "https://vocalstack.com", Ga = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", qa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Ka = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", Ja = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
9
|
+
function Xa({ size: t = 16, sw: e = 1.5, children: n, style: r, ...s }) {
|
|
10
10
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "none", stroke: "currentColor", strokeWidth: e, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", style: { flex: "none", ...r }, ...s, children: n });
|
|
11
11
|
}
|
|
12
12
|
const X = {
|
|
@@ -53,9 +53,9 @@ const X = {
|
|
|
53
53
|
video: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"
|
|
54
54
|
};
|
|
55
55
|
function oe({ d: t, ...e }) {
|
|
56
|
-
return /* @__PURE__ */ i(
|
|
56
|
+
return /* @__PURE__ */ i(Xa, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ i("path", { d: n }, n)) });
|
|
57
57
|
}
|
|
58
|
-
function
|
|
58
|
+
function eo({ size: t = 15 }) {
|
|
59
59
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ i("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2.5" }) });
|
|
60
60
|
}
|
|
61
61
|
function dn({ size: t = 13 }) {
|
|
@@ -80,20 +80,20 @@ function ht({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,
|
|
|
80
80
|
}
|
|
81
81
|
);
|
|
82
82
|
}
|
|
83
|
-
function
|
|
83
|
+
function to({ size: t = 12 }) {
|
|
84
84
|
return /* @__PURE__ */ M("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", "aria-hidden": "true", children: [
|
|
85
85
|
/* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
|
|
86
86
|
/* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
87
87
|
] });
|
|
88
88
|
}
|
|
89
89
|
function Qn({ dark: t, height: e = 20, link: n = !0 }) {
|
|
90
|
-
const r = /* @__PURE__ */ i("img", { src: t ?
|
|
91
|
-
return n ? /* @__PURE__ */ i("a", { href:
|
|
90
|
+
const r = /* @__PURE__ */ i("img", { src: t ? Ga : qa, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
|
|
91
|
+
return n ? /* @__PURE__ */ i("a", { href: Ii, style: { display: "block" }, children: r }) : r;
|
|
92
92
|
}
|
|
93
93
|
function Ar({ dark: t, size: e = 30 }) {
|
|
94
|
-
return /* @__PURE__ */ i("img", { src: t ?
|
|
94
|
+
return /* @__PURE__ */ i("img", { src: t ? Ka : Ja, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function ei({ children: t, panel: e, inset: n, className: r = "", style: s }) {
|
|
97
97
|
return /* @__PURE__ */ i("div", { className: `vs-card${e ? " panel" : ""}${n ? " vs-card--inset" : ""} ${r}`, style: s, children: t });
|
|
98
98
|
}
|
|
99
99
|
function Tt({ checked: t, onChange: e, label: n, disabled: r }) {
|
|
@@ -122,7 +122,7 @@ function wr({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill
|
|
|
122
122
|
] }, d.value))
|
|
123
123
|
] });
|
|
124
124
|
}
|
|
125
|
-
function
|
|
125
|
+
function no({ children: t, onClick: e, label: n, size: r, variant: s, bordered: a = !0, active: o, title: l }) {
|
|
126
126
|
return /* @__PURE__ */ i("button", { type: "button", className: `vs-icon-btn${r === "sm" ? " vs-icon-btn--sm" : ""}${s === "primary" ? " vs-icon-btn--primary" : ""}${o ? " vs-icon-btn--primary" : ""}${a ? "" : " vs-icon-btn--borderless"}`, onClick: e, "aria-label": n, title: l ?? n, children: t });
|
|
127
127
|
}
|
|
128
128
|
function Un({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bordered: o = !0, size: l, style: c, flagOnly: u }) {
|
|
@@ -135,7 +135,7 @@ function Un({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bord
|
|
|
135
135
|
/* @__PURE__ */ i(oe, { d: X.chevronDown, size: 13, className: "vs-lang-chip__chevron", style: { color: s === "primary" ? "currentColor" : "var(--vs-text-muted)" } })
|
|
136
136
|
] });
|
|
137
137
|
}
|
|
138
|
-
function
|
|
138
|
+
function ro({ value: t, label: e = "Copy", onCopied: n }) {
|
|
139
139
|
const [r, s] = L(!1), a = async () => {
|
|
140
140
|
try {
|
|
141
141
|
await navigator.clipboard.writeText(t), s(!0), n == null || n(), setTimeout(() => s(!1), 1400);
|
|
@@ -160,7 +160,7 @@ function to({ value: t, label: e = "Copy", onCopied: n }) {
|
|
|
160
160
|
}
|
|
161
161
|
);
|
|
162
162
|
}
|
|
163
|
-
function
|
|
163
|
+
function so(t, e) {
|
|
164
164
|
Kt(() => {
|
|
165
165
|
const n = t.current, r = window.visualViewport;
|
|
166
166
|
if (!e || !n || !r) return;
|
|
@@ -182,9 +182,9 @@ function vr({ children: t, ms: e = 220 }) {
|
|
|
182
182
|
var r;
|
|
183
183
|
return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, "(hover: hover) and (pointer: fine)").matches);
|
|
184
184
|
});
|
|
185
|
-
return n ? /* @__PURE__ */ i(
|
|
185
|
+
return n ? /* @__PURE__ */ i(io, { ms: e, children: t }) : /* @__PURE__ */ i("div", { children: t });
|
|
186
186
|
}
|
|
187
|
-
function
|
|
187
|
+
function io({ children: t, ms: e }) {
|
|
188
188
|
const n = k(null), r = k(null), [s, a] = L(null);
|
|
189
189
|
return Kt(() => {
|
|
190
190
|
const o = r.current, l = n.current;
|
|
@@ -211,7 +211,7 @@ function ro({ children: t, ms: e }) {
|
|
|
211
211
|
}
|
|
212
212
|
function Jt({ open: t, onClose: e, title: n, titleNode: r, note: s, doneLabel: a = "Done", children: o, drawer: l = !1, header: c, kind: u, sticky: d = !1 }) {
|
|
213
213
|
const g = k(null);
|
|
214
|
-
return
|
|
214
|
+
return so(g, t), D(() => {
|
|
215
215
|
if (!t) return;
|
|
216
216
|
const h = (f) => {
|
|
217
217
|
f.key === "Escape" && e();
|
|
@@ -228,15 +228,15 @@ function Jt({ open: t, onClose: e, title: n, titleNode: r, note: s, doneLabel: a
|
|
|
228
228
|
/* @__PURE__ */ i("div", { className: "vs-sheet__body", children: o })
|
|
229
229
|
] }) }) : null;
|
|
230
230
|
}
|
|
231
|
-
|
|
231
|
+
ki(0);
|
|
232
232
|
function Lr({ children: t, style: e, className: n }) {
|
|
233
233
|
return /* @__PURE__ */ i("div", { className: n ? `eyebrow ${n}` : "eyebrow", style: e, children: t });
|
|
234
234
|
}
|
|
235
235
|
let Dn = null;
|
|
236
|
-
function
|
|
236
|
+
function Vu(t) {
|
|
237
237
|
Dn = t;
|
|
238
238
|
}
|
|
239
|
-
function
|
|
239
|
+
function bi(t) {
|
|
240
240
|
Dn == null || Dn(t);
|
|
241
241
|
}
|
|
242
242
|
function Bn() {
|
|
@@ -246,11 +246,11 @@ function Bn() {
|
|
|
246
246
|
return "ogg";
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
|
-
function
|
|
249
|
+
function ao(t = {}) {
|
|
250
250
|
const e = new URLSearchParams();
|
|
251
251
|
return t.media ? e.set("media", t.media) : t.accessToken && e.set("access_token", t.accessToken), t.listenerToken && e.set("listenerToken", t.listenerToken), t.shareCode && e.set("shareCode", t.shareCode), e.toString();
|
|
252
252
|
}
|
|
253
|
-
async function
|
|
253
|
+
async function oo(t) {
|
|
254
254
|
try {
|
|
255
255
|
const e = await fetch(t, { redirect: "manual", headers: { accept: "application/json" } });
|
|
256
256
|
if (e.type === "opaqueredirect" || e.ok || e.status >= 300 && e.status < 400) return null;
|
|
@@ -265,7 +265,7 @@ async function io(t) {
|
|
|
265
265
|
return null;
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
|
-
async function
|
|
268
|
+
async function lo(t) {
|
|
269
269
|
try {
|
|
270
270
|
const e = await fetch(t, { redirect: "manual", headers: { accept: "application/json" } });
|
|
271
271
|
return e.type === "opaqueredirect" || e.status >= 300 && e.status < 400;
|
|
@@ -273,11 +273,11 @@ async function ao(t) {
|
|
|
273
273
|
return !1;
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
|
-
function
|
|
276
|
+
function co(t, e, n = {}) {
|
|
277
277
|
const r = new URLSearchParams({ kind: "delivery", format: Bn() });
|
|
278
278
|
return n.media ? r.set("media", n.media) : n.accessToken && r.set("access_token", n.accessToken), n.listenerToken && r.set("listenerToken", n.listenerToken), n.shareCode && r.set("shareCode", n.shareCode), `${t}/v1/recordings/${e}/audio?${r}`;
|
|
279
279
|
}
|
|
280
|
-
function
|
|
280
|
+
function ti(t, e, n = {}, r = "background") {
|
|
281
281
|
const s = new URLSearchParams({ kind: r, format: Bn() });
|
|
282
282
|
return n.media ? s.set("media", n.media) : n.accessToken && s.set("access_token", n.accessToken), n.listenerToken && s.set("listenerToken", n.listenerToken), n.shareCode && s.set("shareCode", n.shareCode), `${t}/v1/recordings/${e}/audio?${s}`;
|
|
283
283
|
}
|
|
@@ -285,30 +285,30 @@ function xn(t, e, n, r = {}) {
|
|
|
285
285
|
const s = new URLSearchParams({ kind: n });
|
|
286
286
|
return n === "delivery" && s.set("format", "mp3"), r.media ? s.set("media", r.media) : r.accessToken && s.set("access_token", r.accessToken), r.listenerToken && s.set("listenerToken", r.listenerToken), r.shareCode && s.set("shareCode", r.shareCode), `${t}/v1/recordings/${e}/audio?${s}`;
|
|
287
287
|
}
|
|
288
|
-
function
|
|
289
|
-
return
|
|
288
|
+
function uo(t, e, n, r, s = {}) {
|
|
289
|
+
return ho(t, e, n, r, "mp3", s);
|
|
290
290
|
}
|
|
291
|
-
function
|
|
291
|
+
function ho(t, e, n, r, s, a) {
|
|
292
292
|
const o = new URLSearchParams({ kind: "voice", lang: n, format: s });
|
|
293
293
|
return r && o.set("voice", r), a.media ? o.set("media", a.media) : a.accessToken && o.set("access_token", a.accessToken), a.listenerToken && o.set("listenerToken", a.listenerToken), a.shareCode && o.set("shareCode", a.shareCode), `${t}/v1/recordings/${e}/audio?${o}`;
|
|
294
294
|
}
|
|
295
|
-
function
|
|
295
|
+
function go(t, e = !0) {
|
|
296
296
|
const n = (t == null ? void 0 : t.code) ?? 0, r = n === 2 ? "the download failed" : n === 3 ? "this browser could not decode it" : n === 4 ? "the file is not available, or this browser cannot play it" : n === 1 ? "the load was stopped" : "something went wrong";
|
|
297
|
-
return e &&
|
|
297
|
+
return e && Oi(t), `The audio could not be played: ${r}.`;
|
|
298
298
|
}
|
|
299
|
-
function
|
|
299
|
+
function Oi(t) {
|
|
300
300
|
const e = (t == null ? void 0 : t.code) ?? 0;
|
|
301
|
-
e !== 1 &&
|
|
301
|
+
e !== 1 && bi(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
|
|
302
302
|
}
|
|
303
|
-
const
|
|
304
|
-
function
|
|
303
|
+
const Mo = 3e3;
|
|
304
|
+
function fo(t, e, n) {
|
|
305
305
|
if (t !== 503) return null;
|
|
306
306
|
const r = e == null || e.trim() === "" ? NaN : Number(e);
|
|
307
307
|
if (Number.isFinite(r)) return Math.min(15e3, Math.max(1e3, r * 1e3));
|
|
308
308
|
const s = n;
|
|
309
|
-
return s && (s.retryable === !0 || s.code === "engine_unavailable") ?
|
|
309
|
+
return s && (s.retryable === !0 || s.code === "engine_unavailable") ? Mo : null;
|
|
310
310
|
}
|
|
311
|
-
class
|
|
311
|
+
class po {
|
|
312
312
|
constructor(e = {}) {
|
|
313
313
|
Me(this, "entries", /* @__PURE__ */ new Map());
|
|
314
314
|
Me(this, "wanted", []);
|
|
@@ -401,13 +401,13 @@ class Mo {
|
|
|
401
401
|
}).catch(() => r(n.signal.aborted ? null : { state: "failed", at: this.now() }));
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
|
-
const
|
|
405
|
-
function
|
|
406
|
-
if (!
|
|
404
|
+
const Ci = { video: !1 };
|
|
405
|
+
function xi(t) {
|
|
406
|
+
if (!Ci.video) return new Audio(t);
|
|
407
407
|
const e = document.createElement("video");
|
|
408
408
|
return e.playsInline = !0, t && (e.src = t), e;
|
|
409
409
|
}
|
|
410
|
-
class
|
|
410
|
+
class Si extends Error {
|
|
411
411
|
constructor() {
|
|
412
412
|
super("The voice did not start in time."), this.name = "VoiceNotStarted";
|
|
413
413
|
}
|
|
@@ -453,7 +453,7 @@ const nt = class nt {
|
|
|
453
453
|
Me(this, "loading", null);
|
|
454
454
|
Me(this, "readAhead", 0);
|
|
455
455
|
Me(this, "readAheadS", 0);
|
|
456
|
-
Me(this, "prefetch", new
|
|
456
|
+
Me(this, "prefetch", new po());
|
|
457
457
|
Me(this, "warmed", /* @__PURE__ */ new Set());
|
|
458
458
|
Me(this, "startingSince", /* @__PURE__ */ new Map());
|
|
459
459
|
Me(this, "retries", /* @__PURE__ */ new Map());
|
|
@@ -789,7 +789,7 @@ const nt = class nt {
|
|
|
789
789
|
const l = await fetch(n, { method: "GET" });
|
|
790
790
|
s = l.ok, r = l.status === 202 || l.status === 503 || l.status === 429;
|
|
791
791
|
const c = l.status === 503 ? await l.json().catch(() => null) : null;
|
|
792
|
-
a =
|
|
792
|
+
a = fo(l.status, l.headers.get("Retry-After"), c);
|
|
793
793
|
} catch {
|
|
794
794
|
r = !0;
|
|
795
795
|
}
|
|
@@ -810,7 +810,7 @@ const nt = class nt {
|
|
|
810
810
|
}, a);
|
|
811
811
|
return;
|
|
812
812
|
}
|
|
813
|
-
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new
|
|
813
|
+
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new Si()), this.onSentence(e);
|
|
814
814
|
return;
|
|
815
815
|
}
|
|
816
816
|
const o = (this.retries.get(e) ?? 0) + 1;
|
|
@@ -838,7 +838,7 @@ const nt = class nt {
|
|
|
838
838
|
}
|
|
839
839
|
element() {
|
|
840
840
|
if (this.el) return this.el;
|
|
841
|
-
const e =
|
|
841
|
+
const e = xi();
|
|
842
842
|
e.preload = "auto";
|
|
843
843
|
const n = e;
|
|
844
844
|
return n.dataset && (n.dataset.vsVoice = "1"), e.playsInline = !0, e.onplaying = () => {
|
|
@@ -892,14 +892,14 @@ const nt = class nt {
|
|
|
892
892
|
};
|
|
893
893
|
Me(nt, "WAIT_MS", 15e3), Me(nt, "START_WAIT_MS", 4e3), Me(nt, "COMING_MS", 12e4), Me(nt, "SKEW_LINES", 3), Me(nt, "RETRIES", 4), Me(nt, "RETRY_MS", 1200), Me(nt, "STARTING_MS", 3e5);
|
|
894
894
|
let kr = nt;
|
|
895
|
-
function
|
|
895
|
+
function Di(t, e) {
|
|
896
896
|
return e == null ? t.find((n) => !n.voiceKey) ?? null : t.find((n) => n.voiceKey === e) ?? t.find((n) => !n.voiceKey && n.voice === e) ?? null;
|
|
897
897
|
}
|
|
898
|
-
function
|
|
898
|
+
function mo(t, e, n, r = {}, s) {
|
|
899
899
|
if (!t) return [];
|
|
900
900
|
const a = s != null && s.length ? s : t.clips;
|
|
901
901
|
if (!(a != null && a.length)) return [];
|
|
902
|
-
const o =
|
|
902
|
+
const o = ao(r), l = o ? `&${o}` : "", c = t.voiceKey ? `&voice=${encodeURIComponent(t.voiceKey)}` : "";
|
|
903
903
|
return a.flatMap((u) => {
|
|
904
904
|
var h, f;
|
|
905
905
|
const d = (h = t.clipRev) == null ? void 0 : h[String(u)], g = Math.max(1, ((f = t.clipParts) == null ? void 0 : f[String(u)]) ?? 1);
|
|
@@ -918,16 +918,16 @@ function fo(t, e, n, r = {}, s) {
|
|
|
918
918
|
});
|
|
919
919
|
});
|
|
920
920
|
}
|
|
921
|
-
function
|
|
921
|
+
function Ai(t, e) {
|
|
922
922
|
const n = e.words;
|
|
923
923
|
if (n && n.length === t.length && t.length > 0) {
|
|
924
924
|
let r = 0;
|
|
925
925
|
for (let s = 0; s < n.length && e.t >= n[s][0]; s++) r = s;
|
|
926
926
|
return r;
|
|
927
927
|
}
|
|
928
|
-
return e.dur > 0 ?
|
|
928
|
+
return e.dur > 0 ? No(t, e.t, e.dur) : null;
|
|
929
929
|
}
|
|
930
|
-
function
|
|
930
|
+
function No(t, e, n) {
|
|
931
931
|
if (t.length <= 1 || !(n > 0)) return 0;
|
|
932
932
|
const r = t.map((l) => l.t.length + 1.6), s = r.reduce((l, c) => l + c, 0);
|
|
933
933
|
let a = 0;
|
|
@@ -945,7 +945,7 @@ function Ir(t, e) {
|
|
|
945
945
|
return e;
|
|
946
946
|
}
|
|
947
947
|
}
|
|
948
|
-
function
|
|
948
|
+
function Ei(t, e) {
|
|
949
949
|
try {
|
|
950
950
|
e == null ? localStorage.removeItem(t) : localStorage.setItem(t, JSON.stringify(e));
|
|
951
951
|
} catch {
|
|
@@ -960,32 +960,32 @@ function Er(t, e) {
|
|
|
960
960
|
zr.delete(s), window.removeEventListener("storage", s);
|
|
961
961
|
};
|
|
962
962
|
}, [t]), [n, (s) => {
|
|
963
|
-
r(s),
|
|
963
|
+
r(s), Ei(t, s);
|
|
964
964
|
}];
|
|
965
965
|
}
|
|
966
|
-
function
|
|
966
|
+
function ni(t) {
|
|
967
967
|
const e = Ir(jr, []);
|
|
968
|
-
|
|
968
|
+
Ei(jr, Array.isArray(e) ? e.filter((n) => n !== t) : []);
|
|
969
969
|
}
|
|
970
|
-
function
|
|
970
|
+
function _i() {
|
|
971
971
|
const [t, e] = Er(jr, []), n = Array.isArray(t) ? t : [];
|
|
972
972
|
return [n, (r) => {
|
|
973
973
|
r && e([r, ...n.filter((s) => s !== r)].slice(0, 3));
|
|
974
974
|
}];
|
|
975
975
|
}
|
|
976
|
-
function
|
|
976
|
+
function Yi(t, e) {
|
|
977
977
|
if (!t) return [];
|
|
978
978
|
const n = new Set(t[e]);
|
|
979
979
|
return t.languages.filter((r) => n.has(r.code)).map((r) => ({ code: r.code, label: r.name, native: r.native, flag: r.flag ?? "🌐", voice: !!r.voice }));
|
|
980
980
|
}
|
|
981
|
-
function
|
|
981
|
+
function yo(t) {
|
|
982
982
|
const [e, n] = Er(`vs.pins.${t}`, null);
|
|
983
983
|
return [Array.isArray(e) ? e : [], n];
|
|
984
984
|
}
|
|
985
|
-
const
|
|
986
|
-
function
|
|
985
|
+
const To = 352;
|
|
986
|
+
function wo(t) {
|
|
987
987
|
const [e, n] = Er(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
|
|
988
|
-
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 :
|
|
988
|
+
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : To, n];
|
|
989
989
|
}
|
|
990
990
|
function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPlaceholder: a = "Search languages", none: o, pinned: l = [], recent: c = [], requireVoice: u, keepOpen: d, busy: g }) {
|
|
991
991
|
const [h, f] = L(""), [m, y] = L(!1), [j, N] = L(null);
|
|
@@ -1023,9 +1023,9 @@ function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
1023
1023
|
/* @__PURE__ */ i("div", { className: "vs-picker__native", children: A.native })
|
|
1024
1024
|
] }),
|
|
1025
1025
|
/* @__PURE__ */ i("span", { className: "vs-picker__slot", children: T && /* @__PURE__ */ i("span", { className: "vs-picker__forget", role: "button", tabIndex: 0, title: `Remove ${A.label} from recent`, "aria-label": `Remove ${A.label} from recent`, onClick: (te) => {
|
|
1026
|
-
te.stopPropagation(),
|
|
1026
|
+
te.stopPropagation(), ni(A.code);
|
|
1027
1027
|
}, onKeyDown: (te) => {
|
|
1028
|
-
(te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(),
|
|
1028
|
+
(te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(), ni(A.code));
|
|
1029
1029
|
}, children: /* @__PURE__ */ i(oe, { d: X.close, size: 16 }) }) }),
|
|
1030
1030
|
/* @__PURE__ */ i("span", { className: `vs-picker__slot${O ? " vs-picker__slot--wide" : ""}`, title: A.voice ? "Voice available" : O ? "No voice speaks this language yet" : void 0, children: O ? j === A.code && /* @__PURE__ */ i("span", { className: "vs-picker__off", children: "UNAVAILABLE" }) : A.voice && /* @__PURE__ */ i(oe, { d: X.headphones, size: 16 }) }),
|
|
1031
1031
|
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === A.code && (g === A.code ? /* @__PURE__ */ i(ht, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ i(oe, { d: X.check, size: 16, sw: 2.2 })) })
|
|
@@ -1068,11 +1068,11 @@ function _r({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
1068
1068
|
] });
|
|
1069
1069
|
return { search: I, list: F };
|
|
1070
1070
|
}
|
|
1071
|
-
function
|
|
1071
|
+
function vo({ open: t, onClose: e, title: n, note: r, sticky: s, ...a }) {
|
|
1072
1072
|
const { search: o, list: l } = _r({ ...a, open: t, onClose: e });
|
|
1073
1073
|
return /* @__PURE__ */ i(Jt, { open: t, onClose: e, title: n, note: r, drawer: !1, sticky: s, kind: "picker", header: o, children: l });
|
|
1074
1074
|
}
|
|
1075
|
-
function
|
|
1075
|
+
function ri({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOver: o = 0.4 }) {
|
|
1076
1076
|
const l = k(null), [c, u] = L(!1), [d, g] = L(!1), h = k(n);
|
|
1077
1077
|
return h.current = n, D(() => {
|
|
1078
1078
|
u(!1), g(!1);
|
|
@@ -1123,7 +1123,7 @@ function ti({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOve
|
|
|
1123
1123
|
c && /* @__PURE__ */ i("div", { className: `txyt__paused${r ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(dn, { size: 44 }) }) })
|
|
1124
1124
|
] });
|
|
1125
1125
|
}
|
|
1126
|
-
const
|
|
1126
|
+
const Ui = [
|
|
1127
1127
|
{ id: "youtube", name: "YouTube", color: "#ff3b30", hosts: /(^|\.)(youtube\.com|youtu\.be|youtube-nocookie\.com)$/, glyph: "M21.6 7.2a2.7 2.7 0 0 0-1.9-1.9C18 4.8 12 4.8 12 4.8s-6 0-7.7.5a2.7 2.7 0 0 0-1.9 1.9C2 8.9 2 12 2 12s0 3.1.4 4.8a2.7 2.7 0 0 0 1.9 1.9c1.7.5 7.7.5 7.7.5s6 0 7.7-.5a2.7 2.7 0 0 0 1.9-1.9c.4-1.7.4-4.8.4-4.8s0-3.1-.4-4.8ZM10 15.1V8.9l5.3 3.1L10 15.1Z" },
|
|
1128
1128
|
{ id: "loom", name: "Loom", color: "#8f7bff", hosts: /(^|\.)loom\.com$/, glyph: "M21 11h-5.2l4.5-2.6-1-1.7-4.5 2.6 2.6-4.5-1.7-1-2.6 4.5V3h-2v5.3L8.5 3.8l-1.7 1 2.6 4.5-4.5-2.6-1 1.7L8.2 11H3v2h5.2l-4.5 2.6 1 1.7 4.5-2.6-2.6 4.5 1.7 1 2.6-4.5V21h2v-5.2l2.6 4.5 1.7-1-2.6-4.5 4.5 2.6 1-1.7-4.5-2.6H21v-2Zm-9 3.4a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8Z" },
|
|
1129
1129
|
{ id: "vimeo", name: "Vimeo", color: "#1ab7ea", hosts: /(^|\.)vimeo\.com$/, glyph: "M22 7.4c-.1 2-1.5 4.7-4.2 8.1-2.8 3.6-5.1 5.4-7 5.4-1.2 0-2.2-1.1-3-3.3L6.2 11.6C5.6 9.4 5 8.3 4.3 8.3c-.1 0-.6.3-1.4.9L2 8l2.7-2.4C5.9 4.6 6.8 4 7.4 4c1.4-.1 2.3.9 2.6 2.9.4 2.2.6 3.6.8 4.1.4 1.8.9 2.7 1.4 2.7.4 0 1-.6 1.8-1.9.8-1.2 1.2-2.2 1.3-2.8.1-1.1-.3-1.6-1.3-1.6-.5 0-.9.1-1.4.3.9-3 2.7-4.5 5.3-4.4 1.9.1 2.8 1.3 2.7 3.7Z" },
|
|
@@ -1138,11 +1138,11 @@ const _i = [
|
|
|
1138
1138
|
{ id: "mixcloud", name: "Mixcloud", color: "#7f8cff", hosts: /(^|\.)mixcloud\.com$/, audioOnly: !0, glyph: "M17.5 9.5a5.5 5.5 0 0 0-10.6 1.2A3.8 3.8 0 0 0 7.3 18h10.2a4.25 4.25 0 0 0 0-8.5Z" },
|
|
1139
1139
|
{ id: "streamable", name: "Streamable", color: "#0f90fa", hosts: /(^|\.)streamable\.com$/, glyph: "M4 6.5A2.5 2.5 0 0 1 6.5 4h11A2.5 2.5 0 0 1 20 6.5v11a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 4 17.5v-11Zm6 2.3v6.4l5.2-3.2L10 8.8Z" },
|
|
1140
1140
|
{ id: "bandcamp", name: "Bandcamp", color: "#1da0c3", hosts: /(^|\.)bandcamp\.com$/, audioOnly: !0, glyph: "M2 18 8.5 6H22l-6.5 12H2Z" }
|
|
1141
|
-
],
|
|
1142
|
-
function
|
|
1143
|
-
return t ?
|
|
1141
|
+
], Lo = new Map(Ui.map((t) => [t.id, t]));
|
|
1142
|
+
function Hu(t) {
|
|
1143
|
+
return t ? Lo.get(t) ?? null : null;
|
|
1144
1144
|
}
|
|
1145
|
-
function
|
|
1145
|
+
function ko(t) {
|
|
1146
1146
|
const e = t == null ? void 0 : t.trim();
|
|
1147
1147
|
if (!e) return null;
|
|
1148
1148
|
try {
|
|
@@ -1151,9 +1151,9 @@ function vo(t) {
|
|
|
1151
1151
|
return null;
|
|
1152
1152
|
}
|
|
1153
1153
|
}
|
|
1154
|
-
function
|
|
1155
|
-
const e =
|
|
1156
|
-
return e ?
|
|
1154
|
+
function Yr(t) {
|
|
1155
|
+
const e = ko(t);
|
|
1156
|
+
return e ? Ui.find((n) => n.hosts.test(e)) ?? null : null;
|
|
1157
1157
|
}
|
|
1158
1158
|
function jt(t) {
|
|
1159
1159
|
try {
|
|
@@ -1163,12 +1163,12 @@ function jt(t) {
|
|
|
1163
1163
|
}
|
|
1164
1164
|
}
|
|
1165
1165
|
const ln = (t) => Math.max(0, Math.floor(t));
|
|
1166
|
-
function
|
|
1166
|
+
function Ri(t) {
|
|
1167
1167
|
var n;
|
|
1168
1168
|
const e = /\/(?:share|embed)\/(?:[^/?#]*-)?([0-9a-f]{32})(?:[/?#]|$)/i.exec(((n = jt(t)) == null ? void 0 : n.pathname) ?? "");
|
|
1169
1169
|
return e ? e[1].toLowerCase() : null;
|
|
1170
1170
|
}
|
|
1171
|
-
function
|
|
1171
|
+
function jo(t) {
|
|
1172
1172
|
const e = jt(t);
|
|
1173
1173
|
if (!e) return null;
|
|
1174
1174
|
const n = e.pathname.split("/").filter(Boolean), r = n.map((a, o) => /^\d+$/.test(a) ? o : -1).filter((a) => a >= 0).pop();
|
|
@@ -1176,14 +1176,14 @@ function ko(t) {
|
|
|
1176
1176
|
const s = n[r + 1];
|
|
1177
1177
|
return { id: n[r], h: e.searchParams.get("h") ?? (s && /^[0-9a-f]{6,}$/i.test(s) ? s : null) };
|
|
1178
1178
|
}
|
|
1179
|
-
function
|
|
1179
|
+
function zo(t) {
|
|
1180
1180
|
const e = jt(t);
|
|
1181
1181
|
if (!e) return null;
|
|
1182
1182
|
if (/(^|\.)dai\.ly$/i.test(e.hostname)) return e.pathname.split("/").filter(Boolean)[0] ?? null;
|
|
1183
1183
|
const n = /\/video\/([a-z0-9]+)/i.exec(e.pathname);
|
|
1184
1184
|
return n ? n[1] : null;
|
|
1185
1185
|
}
|
|
1186
|
-
function
|
|
1186
|
+
function Io(t) {
|
|
1187
1187
|
const e = jt(t);
|
|
1188
1188
|
if (!e) return null;
|
|
1189
1189
|
const n = e.pathname.split("/").filter(Boolean);
|
|
@@ -1193,40 +1193,40 @@ function zo(t) {
|
|
|
1193
1193
|
const s = n.indexOf("clip");
|
|
1194
1194
|
return s >= 0 && n[s + 1] ? { clip: n[s + 1] } : n[0] ? { channel: n[0] } : null;
|
|
1195
1195
|
}
|
|
1196
|
-
const
|
|
1196
|
+
const bo = (t) => {
|
|
1197
1197
|
const e = ln(t);
|
|
1198
1198
|
return `${Math.floor(e / 3600)}h${Math.floor(e % 3600 / 60)}m${e % 60}s`;
|
|
1199
1199
|
};
|
|
1200
|
-
function
|
|
1200
|
+
function Pi(t, e) {
|
|
1201
1201
|
var s, a, o, l, c;
|
|
1202
|
-
const n =
|
|
1202
|
+
const n = Yr(t);
|
|
1203
1203
|
if (!n) return null;
|
|
1204
1204
|
const r = e.play ? 1 : 0;
|
|
1205
1205
|
switch (n.id) {
|
|
1206
1206
|
case "loom": {
|
|
1207
|
-
const u =
|
|
1207
|
+
const u = Ri(t);
|
|
1208
1208
|
if (!u) return null;
|
|
1209
1209
|
const d = new URLSearchParams({ hide_owner: "true", hide_share: "true", hide_title: "true", hideEmbedTopBar: "true", hide_speed: "true", muted: "true", autoplay: e.play ? "true" : "false", t: String(ln(e.t)) });
|
|
1210
1210
|
return `https://www.loom.com/embed/${u}?${d}`;
|
|
1211
1211
|
}
|
|
1212
1212
|
case "vimeo": {
|
|
1213
|
-
const u =
|
|
1213
|
+
const u = jo(t);
|
|
1214
1214
|
if (!u) return null;
|
|
1215
1215
|
const d = new URLSearchParams({ autoplay: String(r), muted: "1", controls: "0", title: "0", byline: "0", portrait: "0", dnt: "1" });
|
|
1216
1216
|
return u.h && d.set("h", u.h), `https://player.vimeo.com/video/${u.id}?${d}#t=${ln(e.t)}s`;
|
|
1217
1217
|
}
|
|
1218
1218
|
case "dailymotion": {
|
|
1219
|
-
const u =
|
|
1219
|
+
const u = zo(t);
|
|
1220
1220
|
if (!u) return null;
|
|
1221
1221
|
const d = new URLSearchParams({ autoplay: String(r), mute: "1", controls: "0", "queue-enable": "0", "sharing-enable": "0", "ui-start-screen-info": "0", start: String(ln(e.t)) });
|
|
1222
1222
|
return `https://www.dailymotion.com/embed/video/${u}?${d}`;
|
|
1223
1223
|
}
|
|
1224
1224
|
case "twitch": {
|
|
1225
|
-
const u =
|
|
1225
|
+
const u = Io(t);
|
|
1226
1226
|
if (!u || !e.host) return null;
|
|
1227
1227
|
if (u.clip) return `https://clips.twitch.tv/embed?${new URLSearchParams({ clip: u.clip, parent: e.host, autoplay: String(!!e.play), muted: "true" })}`;
|
|
1228
1228
|
const d = new URLSearchParams({ parent: e.host, autoplay: String(!!e.play), muted: "true" });
|
|
1229
|
-
return u.video ? (d.set("video", `v${u.video}`), d.set("time",
|
|
1229
|
+
return u.video ? (d.set("video", `v${u.video}`), d.set("time", bo(e.t))) : u.channel && d.set("channel", u.channel), `https://player.twitch.tv/?${d}`;
|
|
1230
1230
|
}
|
|
1231
1231
|
case "facebook":
|
|
1232
1232
|
return `https://www.facebook.com/plugins/video.php?${new URLSearchParams({ href: t, autoplay: String(!!e.play), mute: "1", show_text: "false" })}`;
|
|
@@ -1254,10 +1254,10 @@ function Ui(t, e) {
|
|
|
1254
1254
|
return null;
|
|
1255
1255
|
}
|
|
1256
1256
|
}
|
|
1257
|
-
function
|
|
1258
|
-
return !!t &&
|
|
1257
|
+
function Oo(t) {
|
|
1258
|
+
return !!t && Pi(t, { t: 0, play: !1, host: "localhost" }) != null;
|
|
1259
1259
|
}
|
|
1260
|
-
function
|
|
1260
|
+
function Co(t, e) {
|
|
1261
1261
|
const n = e == null ? void 0 : e.trim();
|
|
1262
1262
|
if (!t || !n) return null;
|
|
1263
1263
|
switch (t) {
|
|
@@ -1287,13 +1287,13 @@ function Oo(t, e) {
|
|
|
1287
1287
|
return null;
|
|
1288
1288
|
}
|
|
1289
1289
|
}
|
|
1290
|
-
function
|
|
1291
|
-
return !t || t.kind !== "url" ? null :
|
|
1290
|
+
function xo(t) {
|
|
1291
|
+
return !t || t.kind !== "url" ? null : Co(t.site, t.embedId) ?? t.url ?? null;
|
|
1292
1292
|
}
|
|
1293
|
-
function
|
|
1293
|
+
function So({ url: t, t: e, playing: n, seekN: r, title: s }) {
|
|
1294
1294
|
const a = k(e);
|
|
1295
1295
|
a.current = e;
|
|
1296
|
-
const [o, l] = L(!1), c = typeof window < "u" ? window.location.hostname : "localhost", u = ze(() =>
|
|
1296
|
+
const [o, l] = L(!1), c = typeof window < "u" ? window.location.hostname : "localhost", u = ze(() => Pi(t, { t: a.current, play: n, host: c }), [t, n, r, c]);
|
|
1297
1297
|
return u ? /* @__PURE__ */ i(
|
|
1298
1298
|
"iframe",
|
|
1299
1299
|
{
|
|
@@ -1310,7 +1310,7 @@ function xo({ url: t, t: e, playing: n, seekN: r, title: s }) {
|
|
|
1310
1310
|
u
|
|
1311
1311
|
) : null;
|
|
1312
1312
|
}
|
|
1313
|
-
async function
|
|
1313
|
+
async function Do(t) {
|
|
1314
1314
|
try {
|
|
1315
1315
|
const e = await fetch(`https://www.loom.com/api/campaigns/sessions/${t}/raw-url`, { method: "POST" });
|
|
1316
1316
|
if (!e.ok || e.status === 204) return null;
|
|
@@ -1320,17 +1320,17 @@ async function So(t) {
|
|
|
1320
1320
|
return null;
|
|
1321
1321
|
}
|
|
1322
1322
|
}
|
|
1323
|
-
function
|
|
1323
|
+
function Ao(t) {
|
|
1324
1324
|
const e = t.includes("?") ? t.slice(t.indexOf("?") + 1) : "";
|
|
1325
1325
|
return (n, r) => {
|
|
1326
1326
|
e && !r.includes("Signature=") && n.open("GET", r + (r.includes("?") ? "&" : "?") + e, !0);
|
|
1327
1327
|
};
|
|
1328
1328
|
}
|
|
1329
|
-
function
|
|
1329
|
+
function Eo(t) {
|
|
1330
1330
|
return (e, n) => {
|
|
1331
1331
|
let r = !0, s = null;
|
|
1332
1332
|
return (async () => {
|
|
1333
|
-
const a = await
|
|
1333
|
+
const a = await Do(t);
|
|
1334
1334
|
if (!r) return;
|
|
1335
1335
|
if (!a) {
|
|
1336
1336
|
n();
|
|
@@ -1343,7 +1343,7 @@ function Ao(t) {
|
|
|
1343
1343
|
n();
|
|
1344
1344
|
return;
|
|
1345
1345
|
}
|
|
1346
|
-
const c = new l({ xhrSetup:
|
|
1346
|
+
const c = new l({ xhrSetup: Ao(a), capLevelToPlayerSize: !0, startLevel: 0, maxBufferLength: 20 });
|
|
1347
1347
|
c.on(l.Events.ERROR, (u, d) => {
|
|
1348
1348
|
d.fatal && (c.destroy(), n());
|
|
1349
1349
|
}), c.loadSource(a), c.attachMedia(e), s = () => c.destroy();
|
|
@@ -1353,7 +1353,7 @@ function Ao(t) {
|
|
|
1353
1353
|
};
|
|
1354
1354
|
}
|
|
1355
1355
|
const sn = /* @__PURE__ */ new Map();
|
|
1356
|
-
function
|
|
1356
|
+
function _o(t) {
|
|
1357
1357
|
const [e, n] = L(() => t ? sn.get(t) ?? null : null);
|
|
1358
1358
|
return D(() => {
|
|
1359
1359
|
if (!t) {
|
|
@@ -1375,11 +1375,11 @@ function Eo(t) {
|
|
|
1375
1375
|
};
|
|
1376
1376
|
}, [t]), e;
|
|
1377
1377
|
}
|
|
1378
|
-
const
|
|
1379
|
-
function
|
|
1378
|
+
const Yo = /^[0-9a-f]{16,}$/i, si = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
1379
|
+
function Uo(t) {
|
|
1380
1380
|
const e = (r) => {
|
|
1381
1381
|
const s = r == null ? void 0 : r.trim();
|
|
1382
|
-
return s && s !== t.id && !
|
|
1382
|
+
return s && s !== t.id && !si.test(s) && !Yo.test(s) ? s : null;
|
|
1383
1383
|
}, n = (() => {
|
|
1384
1384
|
if (!t.url) return null;
|
|
1385
1385
|
try {
|
|
@@ -1388,39 +1388,39 @@ function Yo(t) {
|
|
|
1388
1388
|
return null;
|
|
1389
1389
|
}
|
|
1390
1390
|
})();
|
|
1391
|
-
return e(t.name) ?? e(t.sourceName) ?? e(t.ytTitle) ?? n ?? (
|
|
1391
|
+
return e(t.name) ?? e(t.sourceName) ?? e(t.ytTitle) ?? n ?? (si.test(t.id) ? "VocalStack" : t.id);
|
|
1392
1392
|
}
|
|
1393
|
-
const
|
|
1394
|
-
function
|
|
1395
|
-
t.muted = e.muted, Math.abs(t.currentTime - e.t) >
|
|
1393
|
+
const Ro = 0.3;
|
|
1394
|
+
function ii(t, e) {
|
|
1395
|
+
t.muted = e.muted, Math.abs(t.currentTime - e.t) > Ro && (t.currentTime = Math.max(0, e.t)), e.playing ? t.paused && Promise.resolve(t.play()).catch(() => {
|
|
1396
1396
|
}) : t.paused || t.pause();
|
|
1397
1397
|
}
|
|
1398
|
-
const Rn = "Remove background sound",
|
|
1399
|
-
function
|
|
1398
|
+
const Rn = "Remove background sound", Po = "Takes out everything that isn't speech: music, ambience and noise.";
|
|
1399
|
+
function $o(t) {
|
|
1400
1400
|
const e = Math.max(0, Math.floor(t)), n = Math.floor(e / 3600), r = Math.floor(e % 3600 / 60), s = String(e % 60).padStart(2, "0");
|
|
1401
1401
|
return n ? `${n}:${String(r).padStart(2, "0")}:${s}` : `${r}:${s}`;
|
|
1402
1402
|
}
|
|
1403
|
-
function
|
|
1404
|
-
return e === "unavailable" ? `Not available for this ${n}` : e === "making" ? r > 0 ? `Separating the speech from the background… ready up to ${
|
|
1403
|
+
function Qo(t, e, n = "transcription", r = 0) {
|
|
1404
|
+
return e === "unavailable" ? `Not available for this ${n}` : e === "making" ? r > 0 ? `Separating the speech from the background… ready up to ${$o(r)}` : "Separating the speech from the background…" : Po;
|
|
1405
1405
|
}
|
|
1406
|
-
function
|
|
1406
|
+
function Bo(t, e) {
|
|
1407
1407
|
return { bed: e && !t, speech: !e && t };
|
|
1408
1408
|
}
|
|
1409
|
-
function
|
|
1409
|
+
function Vo(t) {
|
|
1410
1410
|
const e = t.get("bg");
|
|
1411
1411
|
return e === "off" || e === "remove";
|
|
1412
1412
|
}
|
|
1413
|
-
function
|
|
1413
|
+
function Ho(t, e) {
|
|
1414
1414
|
e ? t.searchParams.set("bg", "remove") : t.searchParams.delete("bg");
|
|
1415
1415
|
}
|
|
1416
|
-
function
|
|
1416
|
+
function Wo(t, e) {
|
|
1417
1417
|
var r, s;
|
|
1418
1418
|
if (t !== 503) return null;
|
|
1419
1419
|
const n = (s = (r = e == null ? void 0 : e.data) == null ? void 0 : r.details) == null ? void 0 : s.retryAfterS;
|
|
1420
1420
|
return typeof n == "number" && n > 0 ? Math.max(2, n) : 3;
|
|
1421
1421
|
}
|
|
1422
|
-
const
|
|
1423
|
-
function
|
|
1422
|
+
const Fo = 0.05;
|
|
1423
|
+
function Zo(t) {
|
|
1424
1424
|
var r, s;
|
|
1425
1425
|
const e = (s = (r = t == null ? void 0 : t.data) == null ? void 0 : r.details) == null ? void 0 : s.parts, n = [];
|
|
1426
1426
|
if (Array.isArray(e))
|
|
@@ -1432,8 +1432,8 @@ function Fo(t) {
|
|
|
1432
1432
|
}
|
|
1433
1433
|
return { untilS: n.length ? n[n.length - 1].endS : 0, parts: n };
|
|
1434
1434
|
}
|
|
1435
|
-
function
|
|
1436
|
-
if (!t.length || e < 0 || e >= t[t.length - 1].endS -
|
|
1435
|
+
function Go(t, e) {
|
|
1436
|
+
if (!t.length || e < 0 || e >= t[t.length - 1].endS - Fo) return -1;
|
|
1437
1437
|
let n = 0, r = t.length - 1;
|
|
1438
1438
|
for (; n < r; ) {
|
|
1439
1439
|
const s = n + r + 1 >> 1;
|
|
@@ -1441,22 +1441,22 @@ function Zo(t, e) {
|
|
|
1441
1441
|
}
|
|
1442
1442
|
return n;
|
|
1443
1443
|
}
|
|
1444
|
-
function
|
|
1444
|
+
function qo(t, e, n, r) {
|
|
1445
1445
|
const s = t[e].startS, a = n[r] === s ? r : n[1 - r] === s ? 1 - r : r, o = [];
|
|
1446
1446
|
n[a] !== s && o.push([a, e]);
|
|
1447
1447
|
const l = 1 - a;
|
|
1448
1448
|
return e + 1 < t.length && n[l] !== t[e + 1].startS && o.push([l, e + 1]), { play: a, load: o };
|
|
1449
1449
|
}
|
|
1450
|
-
async function
|
|
1450
|
+
async function Ko(t) {
|
|
1451
1451
|
const e = await fetch(t, { redirect: "manual", credentials: "omit" });
|
|
1452
1452
|
if (e.type === "opaqueredirect" || e.status >= 300 && e.status < 400 || e.ok) return { ready: !0 };
|
|
1453
1453
|
const n = await e.json().catch(() => null);
|
|
1454
|
-
return { ready: !1, retryS:
|
|
1454
|
+
return { ready: !1, retryS: Wo(e.status, n), ...Zo(n) };
|
|
1455
1455
|
}
|
|
1456
1456
|
function gr(t) {
|
|
1457
1457
|
t && (t.pause(), t.removeAttribute("src"), t.load());
|
|
1458
1458
|
}
|
|
1459
|
-
function
|
|
1459
|
+
function $i(t, e) {
|
|
1460
1460
|
const [n, r] = L("off"), [s, a] = L([]), [o, l] = L(!1), c = k(null), u = k([null, null]), d = k([NaN, NaN]), g = k(0);
|
|
1461
1461
|
return D(() => {
|
|
1462
1462
|
if (a([]), l(!1), !t) {
|
|
@@ -1466,7 +1466,7 @@ function Ri(t, e) {
|
|
|
1466
1466
|
let h = !1, f;
|
|
1467
1467
|
r("making");
|
|
1468
1468
|
const m = () => {
|
|
1469
|
-
|
|
1469
|
+
Ko(t).then((y) => {
|
|
1470
1470
|
if (!h) {
|
|
1471
1471
|
if (y.ready) {
|
|
1472
1472
|
const j = new Audio();
|
|
@@ -1495,35 +1495,35 @@ function Ri(t, e) {
|
|
|
1495
1495
|
for (const N of u.current) N && !N.paused && N.pause();
|
|
1496
1496
|
};
|
|
1497
1497
|
if (n === "ready" && c.current) {
|
|
1498
|
-
h(),
|
|
1498
|
+
h(), ii(c.current, e), l(!0);
|
|
1499
1499
|
return;
|
|
1500
1500
|
}
|
|
1501
|
-
const f = n === "making" ?
|
|
1501
|
+
const f = n === "making" ? Go(s, e.t) : -1;
|
|
1502
1502
|
if (f < 0) {
|
|
1503
1503
|
h(), l(!1);
|
|
1504
1504
|
return;
|
|
1505
1505
|
}
|
|
1506
|
-
const m =
|
|
1506
|
+
const m = qo(s, f, d.current, g.current);
|
|
1507
1507
|
for (const [N, p] of m.load) {
|
|
1508
1508
|
let b = u.current[N];
|
|
1509
1509
|
b || (b = new Audio(), b.preload = "auto", u.current[N] = b), b.pause(), b.src = s[p].url, d.current[N] = s[p].startS;
|
|
1510
1510
|
}
|
|
1511
1511
|
g.current = m.play;
|
|
1512
1512
|
const y = u.current[m.play], j = u.current[1 - m.play];
|
|
1513
|
-
j && !j.paused && j.pause(),
|
|
1513
|
+
j && !j.paused && j.pause(), ii(y, { ...e, t: e.t - s[f].startS }), l(!e.playing || y.readyState >= 3);
|
|
1514
1514
|
}, [n, s, e.t, e.playing, e.muted]), { state: n, on: o, untilS: n === "ready" ? 1 / 0 : s.length ? s[s.length - 1].endS : 0 };
|
|
1515
1515
|
}
|
|
1516
|
-
function
|
|
1517
|
-
return
|
|
1516
|
+
function Jo(t, e) {
|
|
1517
|
+
return $i(t, e).state;
|
|
1518
1518
|
}
|
|
1519
|
-
const
|
|
1520
|
-
function
|
|
1519
|
+
const Xo = 0.5, el = 3;
|
|
1520
|
+
function Ur(t, e) {
|
|
1521
1521
|
let n = -1;
|
|
1522
1522
|
for (let r = 0; r < t.length && t[r].start <= e + 0.02; r++) n = r;
|
|
1523
1523
|
return n;
|
|
1524
1524
|
}
|
|
1525
|
-
function
|
|
1526
|
-
const r =
|
|
1525
|
+
function tl(t, e, n) {
|
|
1526
|
+
const r = Ur(t, n);
|
|
1527
1527
|
if (r < 0) return { kind: "none" };
|
|
1528
1528
|
const s = t[r];
|
|
1529
1529
|
if (n >= s.end) return { kind: "none" };
|
|
@@ -1540,22 +1540,22 @@ function el(t, e, n) {
|
|
|
1540
1540
|
}
|
|
1541
1541
|
return { kind: "done", sid: s.sid };
|
|
1542
1542
|
}
|
|
1543
|
-
function
|
|
1543
|
+
function nl(t, e, n) {
|
|
1544
1544
|
if (n == null) return !1;
|
|
1545
|
-
const r =
|
|
1545
|
+
const r = Ur(t, e);
|
|
1546
1546
|
if (r < 0) return !1;
|
|
1547
1547
|
const s = t[r];
|
|
1548
1548
|
return e >= s.end ? s.sid === n : r > 0 && t[r - 1].sid === n && e - s.start < 1.5;
|
|
1549
1549
|
}
|
|
1550
|
-
function
|
|
1551
|
-
const s = Math.max(0,
|
|
1550
|
+
function rl(t, e, n, r = el) {
|
|
1551
|
+
const s = Math.max(0, Ur(t, n)), a = [];
|
|
1552
1552
|
for (let o = s; o < t.length && o <= s + r; o++) {
|
|
1553
1553
|
const l = (e.get(t[o].sid) ?? []).find((c) => c.part === 0);
|
|
1554
1554
|
l && a.push(l.src);
|
|
1555
1555
|
}
|
|
1556
1556
|
return a;
|
|
1557
1557
|
}
|
|
1558
|
-
function
|
|
1558
|
+
function sl(t) {
|
|
1559
1559
|
const e = ze(() => {
|
|
1560
1560
|
const c = /* @__PURE__ */ new Map();
|
|
1561
1561
|
for (const u of t.clips) c.set(u.sentenceId, [...c.get(u.sentenceId) ?? [], u]);
|
|
@@ -1576,9 +1576,9 @@ function rl(t) {
|
|
|
1576
1576
|
l(), a((m) => m.missing == null && m.sid == null ? m : { missing: null, sid: null });
|
|
1577
1577
|
return;
|
|
1578
1578
|
}
|
|
1579
|
-
const c =
|
|
1579
|
+
const c = tl(t.lines, e, t.t), u = c.kind === "missing" ? c.sid : null, d = c.kind === "none" ? null : c.sid;
|
|
1580
1580
|
a((m) => m.missing === u && m.sid === d ? m : { missing: u, sid: d });
|
|
1581
|
-
const g = new Set(
|
|
1581
|
+
const g = new Set(rl(t.lines, e, t.t));
|
|
1582
1582
|
for (const m of g) o(m);
|
|
1583
1583
|
const h = r.current;
|
|
1584
1584
|
h && g.add(h.src);
|
|
@@ -1588,12 +1588,12 @@ function rl(t) {
|
|
|
1588
1588
|
return;
|
|
1589
1589
|
}
|
|
1590
1590
|
if (c.kind !== "play") {
|
|
1591
|
-
if (h && !h.el.paused && !h.el.ended &&
|
|
1591
|
+
if (h && !h.el.paused && !h.el.ended && nl(t.lines, t.t, h.sid)) return;
|
|
1592
1592
|
h && h.el.pause(), r.current = null;
|
|
1593
1593
|
return;
|
|
1594
1594
|
}
|
|
1595
1595
|
if (h && h.src === c.src) {
|
|
1596
|
-
if (h.el.muted = t.muted, !h.el.ended && Math.abs(h.el.currentTime - c.offset) >
|
|
1596
|
+
if (h.el.muted = t.muted, !h.el.ended && Math.abs(h.el.currentTime - c.offset) > Xo)
|
|
1597
1597
|
try {
|
|
1598
1598
|
h.el.currentTime = c.offset;
|
|
1599
1599
|
} catch {
|
|
@@ -1613,8 +1613,8 @@ function rl(t) {
|
|
|
1613
1613
|
});
|
|
1614
1614
|
}, [t.on, t.t, t.playing, t.muted, t.lines, e]), s;
|
|
1615
1615
|
}
|
|
1616
|
-
const
|
|
1617
|
-
function
|
|
1616
|
+
const ai = ["play", "pause", "stop", "nexttrack", "previoustrack"];
|
|
1617
|
+
function il(t, e) {
|
|
1618
1618
|
var n, r;
|
|
1619
1619
|
if (t === "play") {
|
|
1620
1620
|
e.playing || e.toggle();
|
|
@@ -1630,31 +1630,31 @@ function sl(t, e) {
|
|
|
1630
1630
|
}
|
|
1631
1631
|
(r = e.prev) == null || r.call(e);
|
|
1632
1632
|
}
|
|
1633
|
-
function
|
|
1634
|
-
for (const n of
|
|
1633
|
+
function al(t, e) {
|
|
1634
|
+
for (const n of ai)
|
|
1635
1635
|
try {
|
|
1636
1636
|
t.setActionHandler(n, () => {
|
|
1637
1637
|
const r = e();
|
|
1638
|
-
r &&
|
|
1638
|
+
r && il(n, r);
|
|
1639
1639
|
});
|
|
1640
1640
|
} catch {
|
|
1641
1641
|
}
|
|
1642
1642
|
return () => {
|
|
1643
|
-
for (const n of
|
|
1643
|
+
for (const n of ai)
|
|
1644
1644
|
try {
|
|
1645
1645
|
t.setActionHandler(n, null);
|
|
1646
1646
|
} catch {
|
|
1647
1647
|
}
|
|
1648
1648
|
};
|
|
1649
1649
|
}
|
|
1650
|
-
function
|
|
1650
|
+
function ol(t, e) {
|
|
1651
1651
|
const n = k(t);
|
|
1652
1652
|
n.current = t;
|
|
1653
1653
|
const r = !!t;
|
|
1654
1654
|
D(() => {
|
|
1655
1655
|
const a = typeof navigator < "u" ? navigator.mediaSession : void 0;
|
|
1656
1656
|
if (!(!a || !r))
|
|
1657
|
-
return
|
|
1657
|
+
return al(a, () => n.current);
|
|
1658
1658
|
}, [r]);
|
|
1659
1659
|
const s = !!(t != null && t.playing);
|
|
1660
1660
|
D(() => {
|
|
@@ -1686,7 +1686,7 @@ function qt() {
|
|
|
1686
1686
|
spans: []
|
|
1687
1687
|
};
|
|
1688
1688
|
}
|
|
1689
|
-
function
|
|
1689
|
+
function ll(t, e) {
|
|
1690
1690
|
for (const r of t.spans) {
|
|
1691
1691
|
const s = r.mediaEnd ?? 1 / 0;
|
|
1692
1692
|
if (e < s || r.mediaEnd == null) return r.wallStart + Math.max(0, e - r.mediaStart);
|
|
@@ -1759,11 +1759,11 @@ function Mr(t, e) {
|
|
|
1759
1759
|
])
|
|
1760
1760
|
), n;
|
|
1761
1761
|
}
|
|
1762
|
-
function
|
|
1762
|
+
function oi(t, e) {
|
|
1763
1763
|
const n = e ?? {};
|
|
1764
1764
|
return !t || !Object.keys(t).length ? n : Object.keys(n).length ? { ...t, ...n } : t;
|
|
1765
1765
|
}
|
|
1766
|
-
function
|
|
1766
|
+
function cl(t, e) {
|
|
1767
1767
|
const n = e.tail;
|
|
1768
1768
|
if (!n || !Array.isArray(n.words) || n.replaced !== t.length || n.words.length !== t.length) return !1;
|
|
1769
1769
|
let r = !1;
|
|
@@ -1780,7 +1780,7 @@ function ll(t, e) {
|
|
|
1780
1780
|
}
|
|
1781
1781
|
return r;
|
|
1782
1782
|
}
|
|
1783
|
-
function
|
|
1783
|
+
function ul(t, e) {
|
|
1784
1784
|
var n;
|
|
1785
1785
|
switch (delete t.numbers, e.type) {
|
|
1786
1786
|
case "transcript.committed": {
|
|
@@ -1800,7 +1800,7 @@ function cl(t, e) {
|
|
|
1800
1800
|
confidence: r.confidence ?? (s == null ? void 0 : s.confidence),
|
|
1801
1801
|
latencyS: r.latencyS,
|
|
1802
1802
|
language: r.language,
|
|
1803
|
-
translations:
|
|
1803
|
+
translations: oi(s == null ? void 0 : s.translations, r.translations),
|
|
1804
1804
|
scriptPos: r.scriptPos ?? (s == null ? void 0 : s.scriptPos),
|
|
1805
1805
|
scriptFrom: r.scriptPos != null ? r.scriptFrom ?? void 0 : s == null ? void 0 : s.scriptFrom
|
|
1806
1806
|
}), r.speakerName && (t.speakers[r.speaker] = r.speakerName);
|
|
@@ -1821,7 +1821,7 @@ function cl(t, e) {
|
|
|
1821
1821
|
}
|
|
1822
1822
|
case "transcript.amended": {
|
|
1823
1823
|
const r = t.segments.get(e.seq);
|
|
1824
|
-
if (r && r.corrected &&
|
|
1824
|
+
if (r && r.corrected && cl(r.words, e)) {
|
|
1825
1825
|
r.text = e.text, r.words = cn(e.seq, e.tail.words);
|
|
1826
1826
|
break;
|
|
1827
1827
|
}
|
|
@@ -1869,7 +1869,7 @@ function cl(t, e) {
|
|
|
1869
1869
|
seqs: r.seqs,
|
|
1870
1870
|
speaker: r.speaker,
|
|
1871
1871
|
start: r.start,
|
|
1872
|
-
wallStart:
|
|
1872
|
+
wallStart: ll(t, r.start),
|
|
1873
1873
|
text: a ? s.text : r.text,
|
|
1874
1874
|
status: r.status === "open" ? "open" : "closed",
|
|
1875
1875
|
settled: !!r.settled,
|
|
@@ -1878,7 +1878,7 @@ function cl(t, e) {
|
|
|
1878
1878
|
suppressed: !!r.suppressed,
|
|
1879
1879
|
unclear: !!r.unclear,
|
|
1880
1880
|
language: r.language,
|
|
1881
|
-
translations: a ? s.translations :
|
|
1881
|
+
translations: a ? s.translations : oi(s == null ? void 0 : s.translations, r.translations),
|
|
1882
1882
|
provisional: !!r.provisional,
|
|
1883
1883
|
translationLatencyS: r.translationLatencyS
|
|
1884
1884
|
}), r.speakerName && (t.speakers[r.speaker] = r.speakerName), r.settled) for (const o of r.seqs) {
|
|
@@ -1921,7 +1921,7 @@ function cl(t, e) {
|
|
|
1921
1921
|
}
|
|
1922
1922
|
return typeof e.seq == "number" && (t.lastSeq = Math.max(t.lastSeq, e.seq)), t;
|
|
1923
1923
|
}
|
|
1924
|
-
function
|
|
1924
|
+
function dl(t) {
|
|
1925
1925
|
const e = [], n = [...t.sentences.values()].sort((r, s) => r.start - s.start || (r.sentenceId ?? 0) - (s.sentenceId ?? 0));
|
|
1926
1926
|
for (const r of n) {
|
|
1927
1927
|
const s = r.seqs.map((l) => t.segments.get(l)).filter(Boolean), a = s.length === r.seqs.length || !r.text ? s.flatMap((l) => l.words) : [], o = s[s.length - 1];
|
|
@@ -1934,16 +1934,16 @@ function ul(t) {
|
|
|
1934
1934
|
catchup: s.some((l) => l.catchup),
|
|
1935
1935
|
suppressed: r.suppressed || s.length > 0 && s.every((l) => l.suppressed),
|
|
1936
1936
|
unclear: r.unclear || s.length > 0 && s.every((l) => l.unclear),
|
|
1937
|
-
confidence:
|
|
1937
|
+
confidence: hl(s),
|
|
1938
1938
|
latencyS: o == null ? void 0 : o.latencyS,
|
|
1939
1939
|
settled: r.settled || s.length > 0 && s.every((l) => l.settled),
|
|
1940
|
-
translations: Object.keys(r.translations).length ? r.translations :
|
|
1940
|
+
translations: Object.keys(r.translations).length ? r.translations : gl(s),
|
|
1941
1941
|
speaker: r.speaker >= 0 ? r.speaker : (o == null ? void 0 : o.speaker) ?? -1
|
|
1942
1942
|
});
|
|
1943
1943
|
}
|
|
1944
1944
|
return e.sort((r, s) => r.start - s.start), e;
|
|
1945
1945
|
}
|
|
1946
|
-
function
|
|
1946
|
+
function hl(t) {
|
|
1947
1947
|
let e = 0, n = 0;
|
|
1948
1948
|
for (const r of t) {
|
|
1949
1949
|
if (r.confidence == null) continue;
|
|
@@ -1952,20 +1952,20 @@ function dl(t) {
|
|
|
1952
1952
|
}
|
|
1953
1953
|
return n ? e / n : void 0;
|
|
1954
1954
|
}
|
|
1955
|
-
function
|
|
1955
|
+
function gl(t) {
|
|
1956
1956
|
const e = {};
|
|
1957
1957
|
for (const n of t) for (const [r, s] of Object.entries(n.translations)) e[r] = e[r] ? `${e[r]} ${s}` : s;
|
|
1958
1958
|
return e;
|
|
1959
1959
|
}
|
|
1960
|
-
const
|
|
1961
|
-
function
|
|
1962
|
-
return t == null ? "" : t <
|
|
1960
|
+
const Ml = 0.85, fl = 0.75;
|
|
1961
|
+
function pl(t) {
|
|
1962
|
+
return t == null ? "" : t < fl ? "low" : t < Ml ? "mid" : "";
|
|
1963
1963
|
}
|
|
1964
1964
|
const Sn = ["a", "b", "c", "d", "e", "f", "g", "h"];
|
|
1965
|
-
function
|
|
1965
|
+
function ml(t) {
|
|
1966
1966
|
return Sn[(t % Sn.length + Sn.length) % Sn.length];
|
|
1967
1967
|
}
|
|
1968
|
-
function
|
|
1968
|
+
function Nl(t) {
|
|
1969
1969
|
if (t.numbers) return t.numbers;
|
|
1970
1970
|
const e = /* @__PURE__ */ new Map(), n = (a, o) => {
|
|
1971
1971
|
if (a < 0) return;
|
|
@@ -1981,26 +1981,26 @@ function ml(t) {
|
|
|
1981
1981
|
}
|
|
1982
1982
|
function Pn(t, e) {
|
|
1983
1983
|
if (e < 0) return 0;
|
|
1984
|
-
const n =
|
|
1984
|
+
const n = Nl(t);
|
|
1985
1985
|
return n.get(e) ?? n.size + 1 + e;
|
|
1986
1986
|
}
|
|
1987
|
-
const
|
|
1988
|
-
function
|
|
1989
|
-
return t && t.trim() && !
|
|
1987
|
+
const yl = /^\s*speaker\s+\d+\s*$/i;
|
|
1988
|
+
function li(t) {
|
|
1989
|
+
return t && t.trim() && !yl.test(t) ? t : void 0;
|
|
1990
1990
|
}
|
|
1991
|
-
function
|
|
1991
|
+
function Qi(t, e) {
|
|
1992
1992
|
var n;
|
|
1993
|
-
return
|
|
1993
|
+
return li(t.speakers[e]) ?? li((n = t.speakerIds[e]) == null ? void 0 : n.name);
|
|
1994
1994
|
}
|
|
1995
|
-
function
|
|
1996
|
-
return e < 0 ? "" :
|
|
1995
|
+
function Rr(t, e) {
|
|
1996
|
+
return e < 0 ? "" : Qi(t, e) ?? `Speaker ${Pn(t, e)}`;
|
|
1997
1997
|
}
|
|
1998
|
-
function
|
|
1998
|
+
function Bi(t, e) {
|
|
1999
1999
|
if (e < 0) return "?";
|
|
2000
|
-
const n =
|
|
2000
|
+
const n = Qi(t, e);
|
|
2001
2001
|
return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((s) => s[0]).join("") || `S${Pn(t, e)}`).toUpperCase() : `S${Pn(t, e)}`;
|
|
2002
2002
|
}
|
|
2003
|
-
function
|
|
2003
|
+
function Tl(t) {
|
|
2004
2004
|
if (t) {
|
|
2005
2005
|
if (t.startsWith("#"))
|
|
2006
2006
|
return { fg: t, soft: `color-mix(in srgb, ${t} 16%, transparent)` };
|
|
@@ -2008,11 +2008,11 @@ function yl(t) {
|
|
|
2008
2008
|
return { fg: `var(--vx-${t})`, soft: `var(--vx-${t}-soft)` };
|
|
2009
2009
|
}
|
|
2010
2010
|
}
|
|
2011
|
-
function
|
|
2012
|
-
const n = t.speakerIds[e], r =
|
|
2013
|
-
return { fg: r == null ? void 0 : r.fg, soft: r == null ? void 0 : r.soft, lane:
|
|
2011
|
+
function Pr(t, e) {
|
|
2012
|
+
const n = t.speakerIds[e], r = Tl(n == null ? void 0 : n.color);
|
|
2013
|
+
return { fg: r == null ? void 0 : r.fg, soft: r == null ? void 0 : r.soft, lane: ml(Pn(t, e) - 1), hasVoice: !!n };
|
|
2014
2014
|
}
|
|
2015
|
-
function
|
|
2015
|
+
function wl(t, e, n, r = !1) {
|
|
2016
2016
|
const s = n ? n.speakerLabels ?? "auto" : null, a = (r ? s : null) ?? t.labels ?? s ?? "on";
|
|
2017
2017
|
if (a !== "auto") return a === "on";
|
|
2018
2018
|
const o = /* @__PURE__ */ new Set();
|
|
@@ -2020,7 +2020,7 @@ function Tl(t, e, n, r = !1) {
|
|
|
2020
2020
|
return !0;
|
|
2021
2021
|
return !1;
|
|
2022
2022
|
}
|
|
2023
|
-
const
|
|
2023
|
+
const vl = /* @__PURE__ */ new Set([
|
|
2024
2024
|
"invalid_audio",
|
|
2025
2025
|
"invalid_options",
|
|
2026
2026
|
"invalid_token",
|
|
@@ -2045,14 +2045,14 @@ const wl = /* @__PURE__ */ new Set([
|
|
|
2045
2045
|
"invalid_request",
|
|
2046
2046
|
"aborted",
|
|
2047
2047
|
"unauthorized"
|
|
2048
|
-
]),
|
|
2048
|
+
]), Vi = {
|
|
2049
2049
|
internal: "Something went wrong on our side. Please try again.",
|
|
2050
2050
|
unavailable: "VocalStack is briefly unavailable. Please try again in a moment.",
|
|
2051
2051
|
engine_unavailable: "No transcription engine is available right now. Please try again in a moment.",
|
|
2052
2052
|
engine_lost: "The transcription engine stopped. Please try again.",
|
|
2053
2053
|
capacity_exceeded: "Every transcription engine is busy right now. Please try again in a moment.",
|
|
2054
2054
|
timeout: "That took too long. Please try again."
|
|
2055
|
-
}, br =
|
|
2055
|
+
}, br = Vi.internal, fr = "Can't reach VocalStack. Check your connection.", ci = {
|
|
2056
2056
|
NotAllowedError: "The browser blocked this. Allow it for this site, then try again.",
|
|
2057
2057
|
NotSupportedError: "The audio couldn't be loaded. Try again in a moment.",
|
|
2058
2058
|
AbortError: "It was cancelled."
|
|
@@ -2061,30 +2061,30 @@ function zt(t) {
|
|
|
2061
2061
|
const e = t, n = typeof (e == null ? void 0 : e.code) == "string" ? e.code : void 0, r = typeof (e == null ? void 0 : e.status) == "number" ? e.status : void 0, s = e == null ? void 0 : e.details;
|
|
2062
2062
|
if (n || r && r >= 400) {
|
|
2063
2063
|
const o = typeof (e == null ? void 0 : e.requestId) == "string" && e.requestId ? { requestId: e.requestId } : {};
|
|
2064
|
-
return n &&
|
|
2064
|
+
return n && vl.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: r, details: s, ...o } : n === "unavailable" && r === void 0 ? { message: fr, code: n, details: s, ...o } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : fr, code: n, status: r, details: s, ...o } : { message: n && Vi[n] || br, code: n, status: r, details: s, ...o };
|
|
2065
2065
|
}
|
|
2066
2066
|
const a = (e == null ? void 0 : e.name) ?? "";
|
|
2067
|
-
return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 &&
|
|
2067
|
+
return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && bi(t instanceof Error ? t : new Error(String(t))), { message: fr }) : ci[a] ? { message: ci[a] } : t instanceof Error && a === "Error" && !(t instanceof ji) ? { message: t.message } : { message: br };
|
|
2068
2068
|
}
|
|
2069
|
-
const
|
|
2069
|
+
const Hi = "https://api.vocalstack.com", $r = ki(null);
|
|
2070
2070
|
function Vt() {
|
|
2071
|
-
const t =
|
|
2071
|
+
const t = Va($r);
|
|
2072
2072
|
if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
|
|
2073
2073
|
return t;
|
|
2074
2074
|
}
|
|
2075
|
-
function
|
|
2076
|
-
return t.value ? /* @__PURE__ */ i(
|
|
2075
|
+
function Ll(t) {
|
|
2076
|
+
return t.value ? /* @__PURE__ */ i($r.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ i(kl, { ...t });
|
|
2077
2077
|
}
|
|
2078
|
-
function
|
|
2079
|
-
const n =
|
|
2080
|
-
return /* @__PURE__ */ i(
|
|
2078
|
+
function kl({ children: t, ...e }) {
|
|
2079
|
+
const n = Wi(e);
|
|
2080
|
+
return /* @__PURE__ */ i($r.Provider, { value: n, children: t });
|
|
2081
2081
|
}
|
|
2082
|
-
const
|
|
2083
|
-
function
|
|
2084
|
-
return
|
|
2082
|
+
const jl = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
2083
|
+
function zl(t) {
|
|
2084
|
+
return jl.test(t);
|
|
2085
2085
|
}
|
|
2086
|
-
function
|
|
2087
|
-
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id ||
|
|
2086
|
+
function Wi(t) {
|
|
2087
|
+
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || zl(t.id)), s = (t.baseUrl ?? Hi).replace(/\/$/, ""), a = k(t.token);
|
|
2088
2088
|
a.current = t.token;
|
|
2089
2089
|
const o = !!t.token, l = ze(() => async () => {
|
|
2090
2090
|
const h = a.current;
|
|
@@ -2102,7 +2102,7 @@ function Vi(t) {
|
|
|
2102
2102
|
h = !1;
|
|
2103
2103
|
};
|
|
2104
2104
|
}, [r, l]);
|
|
2105
|
-
const d = t.client ?? null, g = ze(() => d ?? new
|
|
2105
|
+
const d = t.client ?? null, g = ze(() => d ?? new zi({ baseUrl: s, token: o && !e ? l : void 0 }), [d, s, o, l, e]);
|
|
2106
2106
|
return ze(() => {
|
|
2107
2107
|
if (e) return { client: g, origin: s, owner: !1, shareCode: null, listen: e, bearer: l, cred: { listenerToken: e.token }, readAs: { listenerToken: e.token } };
|
|
2108
2108
|
if (n) return { client: g, origin: s, owner: !1, shareCode: null, listen: null, bearer: l, cred: { listenerToken: n }, readAs: { listenerToken: n } };
|
|
@@ -2110,10 +2110,10 @@ function Vi(t) {
|
|
|
2110
2110
|
return { client: g, origin: s, owner: r, shareCode: h, listen: null, bearer: l, cred: r ? { accessToken: c ?? void 0 } : { shareCode: h }, readAs: h ? { shareCode: h } : {} };
|
|
2111
2111
|
}, [g, s, r, t.id, l, e, n, c]);
|
|
2112
2112
|
}
|
|
2113
|
-
function
|
|
2113
|
+
function Il(t, e) {
|
|
2114
2114
|
return e ? { ...t, cred: { ...t.cred, media: e } } : t;
|
|
2115
2115
|
}
|
|
2116
|
-
async function
|
|
2116
|
+
async function bl(t, e) {
|
|
2117
2117
|
if (t.listen) {
|
|
2118
2118
|
const r = await t.client.recordings.get(t.listen.recordingId, t.readAs), s = r;
|
|
2119
2119
|
return { key: e, code: null, transcriptionId: t.listen.transcriptionId, name: s.name ?? s.title ?? "", recording: r, job: s.job ?? (s.source ? { source: s.source } : null), allowDownload: !0, allowExport: !0, allowTranslate: !0, sharedBy: null };
|
|
@@ -2138,11 +2138,11 @@ async function Il(t, e) {
|
|
|
2138
2138
|
sharedBy: n.sharedBy ?? null
|
|
2139
2139
|
};
|
|
2140
2140
|
}
|
|
2141
|
-
function
|
|
2141
|
+
function Ol(t, e) {
|
|
2142
2142
|
const [n, r] = L(null), [s, a] = L(!1), [o, l] = L(null), [c, u] = L(0);
|
|
2143
2143
|
return D(() => {
|
|
2144
2144
|
let d = !0;
|
|
2145
|
-
return
|
|
2145
|
+
return bl(t, e).then((g) => {
|
|
2146
2146
|
d && (r(g), a(!1), l(null));
|
|
2147
2147
|
}).catch((g) => {
|
|
2148
2148
|
if (!d) return;
|
|
@@ -2153,7 +2153,7 @@ function bl(t, e) {
|
|
|
2153
2153
|
};
|
|
2154
2154
|
}, [t, e, c]), { source: n, gone: s, error: o, reload: () => u((d) => d + 1) };
|
|
2155
2155
|
}
|
|
2156
|
-
function
|
|
2156
|
+
function Cl(t, e) {
|
|
2157
2157
|
const [n, r] = L(null);
|
|
2158
2158
|
return D(() => {
|
|
2159
2159
|
if (!t.owner || !e) {
|
|
@@ -2174,7 +2174,7 @@ function Ol(t, e) {
|
|
|
2174
2174
|
};
|
|
2175
2175
|
}, [t, e]), n;
|
|
2176
2176
|
}
|
|
2177
|
-
async function
|
|
2177
|
+
async function ui(t, e, n = {}) {
|
|
2178
2178
|
const r = new URLSearchParams();
|
|
2179
2179
|
for (const [o, l] of Object.entries(n.query ?? {})) l != null && r.set(o, l);
|
|
2180
2180
|
t.shareCode && r.set("shareCode", t.shareCode), t.listen && r.set("listenerToken", t.listen.token);
|
|
@@ -2187,7 +2187,7 @@ async function li(t, e, n = {}) {
|
|
|
2187
2187
|
return fetch(`${t.origin}${e}${a ? `${e.includes("?") ? "&" : "?"}${a}` : ""}`, { method: n.method ?? "GET", headers: s, body: n.body === void 0 ? void 0 : JSON.stringify(n.body) });
|
|
2188
2188
|
}
|
|
2189
2189
|
const pr = /* @__PURE__ */ new Map();
|
|
2190
|
-
function
|
|
2190
|
+
function Fi() {
|
|
2191
2191
|
const t = Vt(), [e, n] = L(pr.get(t.origin) ?? null);
|
|
2192
2192
|
return D(() => {
|
|
2193
2193
|
pr.has(t.origin) || t.client.languages.list().then((r) => {
|
|
@@ -2196,7 +2196,7 @@ function Hi() {
|
|
|
2196
2196
|
});
|
|
2197
2197
|
}, [t]), e;
|
|
2198
2198
|
}
|
|
2199
|
-
function
|
|
2199
|
+
function Zi(t, e) {
|
|
2200
2200
|
const [n, r] = L(null), [s, a] = L(null), [o, l] = L(0);
|
|
2201
2201
|
return D(() => {
|
|
2202
2202
|
let c = !0;
|
|
@@ -2205,8 +2205,8 @@ function Wi(t, e) {
|
|
|
2205
2205
|
};
|
|
2206
2206
|
}, [...e, o]), { data: n, error: s, reload: () => l((c) => c + 1) };
|
|
2207
2207
|
}
|
|
2208
|
-
const
|
|
2209
|
-
function
|
|
2208
|
+
const xl = (t) => new Promise((e) => setTimeout(e, t)), Sl = 2500, Dl = 72;
|
|
2209
|
+
function Al(t, e) {
|
|
2210
2210
|
const n = Vt(), r = k(n);
|
|
2211
2211
|
r.current = n;
|
|
2212
2212
|
const [s, a] = L(qt), o = k(qt()), l = k(null), c = k(e.lang ?? null), [u, d] = L(!1), [g, h] = L(null), [f, m] = L(!1), y = Ke(() => {
|
|
@@ -2240,7 +2240,7 @@ function Dl(t, e) {
|
|
|
2240
2240
|
if (le.type === "snapshot")
|
|
2241
2241
|
o.current = Mr(le.snapshot, le.reason === "gap" ? o.current : qt()), y(), te();
|
|
2242
2242
|
else if (le.type === "frame") {
|
|
2243
|
-
|
|
2243
|
+
ul(o.current, le.frame);
|
|
2244
2244
|
const Te = le.frame;
|
|
2245
2245
|
Te.type === "recording.state" && (O = o.current.state, (v = (K = j.current).onState) == null || v.call(K, Te.state, Te.reason)), (ne = (ie = j.current).onFrame) == null || ne.call(ie, Te), y();
|
|
2246
2246
|
} else le.type === "closed" && d(!1);
|
|
@@ -2275,7 +2275,7 @@ function Dl(t, e) {
|
|
|
2275
2275
|
}
|
|
2276
2276
|
const J = o.current.state;
|
|
2277
2277
|
if (!A || J === "ended" || J === "finalized" || J === "processing") return;
|
|
2278
|
-
T += 1, await
|
|
2278
|
+
T += 1, await xl(Math.min(15e3, 1e3 * 2 ** Math.min(T, 4)));
|
|
2279
2279
|
}
|
|
2280
2280
|
})(), () => {
|
|
2281
2281
|
var K;
|
|
@@ -2291,9 +2291,9 @@ function Dl(t, e) {
|
|
|
2291
2291
|
_ === S.current && (o.current = Mr(v, o.current), Y(A), y(), v.translationPending && K > 0 && window.setTimeout(() => {
|
|
2292
2292
|
_ === S.current && O(K - 1).catch(() => {
|
|
2293
2293
|
});
|
|
2294
|
-
},
|
|
2294
|
+
}, Sl));
|
|
2295
2295
|
});
|
|
2296
|
-
O(
|
|
2296
|
+
O(Dl).catch(() => {
|
|
2297
2297
|
_ === S.current && A && C(A);
|
|
2298
2298
|
}).finally(() => {
|
|
2299
2299
|
_ === S.current && p(!1);
|
|
@@ -2309,7 +2309,7 @@ function Dl(t, e) {
|
|
|
2309
2309
|
}, [y]), F = Ke(() => h(null), []);
|
|
2310
2310
|
return { model: s, connected: u, error: g, notFound: f, clearError: F, setLanguage: ee, mergeTranslations: I, translating: N, translateFailed: b, shownLang: B };
|
|
2311
2311
|
}
|
|
2312
|
-
const
|
|
2312
|
+
const di = {
|
|
2313
2313
|
English: { vcFor: "Voice for", vcMute: "Mute", vcUnmute: "Unmute", vcMuted: "MUTED", vcShared: "Also used by", vcUsedBy: "Used by", vcUnknownSpk: "Unknown", vcUse: "Use this voice", vcGetting: "Downloading…", vcSample: "Here’s how it sounds.", vcPreview: "PREVIEW", vcMale: "Male", vcFemale: "Female", vcSynth: "SYNTHETIC", origAudio: "ORIGINAL AUDIO", vcCloned: "VOICES", vcBadge: "CLONED", vcNone: "TEXT ONLY", vcNoVoice: "No voice for ", vcSheet: "VOICE", vcNeutral: "SYNTHETIC VOICE", vcWarm: "SYNTHETIC VOICE", searchPlaceholder: "Search this broadcast", noise: "Audio unclear", newLines: "new", live: "LIVE", ended: "ENDED", waiting: "WAITING", corrected: "CORRECTED", hostLine: "Hosted by Marcus Reed · 4 speakers", langLabel: "LANGUAGE", langCount: "100+ languages", read: "Read", listen: "Listen", watch: "Watch", waitTitle: "The broadcast hasn’t started yet", waitBody: "The transcript appears here as soon as the host starts speaking.", english: "ENGLISH", playing: "Playing the live audio", ready: "Tap to start audio", readyNote: "Set your volume first", voiceMeta: "ORIGINAL AUDIO", voice: "Voice", sheetTitle: "APP LANGUAGE", done: "Done", search: "Search 100+ languages", sheetNote: "Follow along in your language.", moreLangs: "more", confTitle: "Some words weren't heard clearly", confBody: "The transcript marks words the model is unsure about with a dashed underline. The words keep their colour, so only the underline tells you where to look.", confMid: "Slightly unsure — probably right", confHigh: "Low confidence — may be wrong", settings: "BROADCAST", setOrig: "Show original language", setTheme: "Appearance", light: "Light", dark: "Dark", setConf: "Show uncertain words", setConfHint1: "Colours words the model is unsure about — ", setConfMid: "amber", setConfSep: " or ", setConfLow: "red", setConfHint2: "", behindLive: "TRANSLATION LATENCY", behindNote: "How far the translation trails the speaker right now.", shareLabel: "LIVE TRANSLATION LINK", copy: "Copy", copied: "Copied" },
|
|
2314
2314
|
Spanish: { vcFor: "Voz de", vcMute: "Silenciar", vcUnmute: "Activar", vcMuted: "SILENCIADO", vcShared: "También la usa", vcUsedBy: "La usa", vcUnknownSpk: "Desconocido", vcUse: "Usar esta voz", vcGetting: "Descargando…", vcSample: "Así suena esta voz.", vcPreview: "MUESTRA", vcMale: "Hombre", vcFemale: "Mujer", vcSynth: "SINTÉTICA", origAudio: "AUDIO ORIGINAL", vcCloned: "VOCES", vcBadge: "CLONADA", vcNone: "SOLO TEXTO", vcNoVoice: "Sin voz para ", vcSheet: "VOZ", vcNeutral: "VOZ SINTÉTICA", vcWarm: "VOZ SINTÉTICA", searchPlaceholder: "Buscar en esta emisión", noise: "Audio poco claro", newLines: "nuevas", live: "EN VIVO", ended: "FINALIZADA", waiting: "EN ESPERA", corrected: "CORREGIDO", hostLine: "Presenta Marcus Reed · 4 hablantes", langLabel: "IDIOMA", langCount: "100+ idiomas", read: "Leer", listen: "Escuchar", watch: "Ver", waitTitle: "La emisión aún no ha comenzado", waitBody: "La transcripción aparecerá aquí en cuanto el anfitrión empiece a hablar.", english: "INGLÉS", playing: "Reproduciendo la traducción al español", ready: "Toca para iniciar el audio", readyNote: "Ajusta el volumen primero", voiceMeta: "VOZ NEUTRA", voice: "Voz", sheetTitle: "IDIOMA DE LA APP", done: "Listo", search: "Buscar entre 100+ idiomas", sheetNote: "Sigue la emisión en tu idioma.", moreLangs: "más", confTitle: "Algunas palabras no se oyeron bien", confBody: "La transcripción marca las palabras dudosas con un subrayado discontinuo. Las palabras conservan su color, así que solo el subrayado te indica dónde mirar.", confMid: "Poca duda: probablemente correcta", confHigh: "Baja confianza: puede estar mal", settings: "EMISIÓN", setOrig: "Mostrar idioma original", setTheme: "Apariencia", light: "Claro", dark: "Oscuro", setConf: "Mostrar palabras dudosas", setConfHint1: "Colorea las palabras dudosas: ", setConfMid: "ámbar", setConfSep: " o ", setConfLow: "rojo", setConfHint2: "", behindLive: "LATENCIA DE TRADUCCIÓN", behindNote: "Cuánto se retrasa la traducción respecto a quien habla.", shareLabel: "ENLACE PARA SEGUIR", copy: "Copiar", copied: "Copiado" },
|
|
2315
2315
|
French: { vcFor: "Voix de", vcMute: "Couper", vcUnmute: "Réactiver", vcMuted: "COUPÉ", vcShared: "Aussi utilisée par", vcUsedBy: "Utilisée par", vcUnknownSpk: "Inconnu", vcUse: "Utiliser cette voix", vcGetting: "Téléchargement…", vcSample: "Voici le rendu.", vcPreview: "APERÇU", vcMale: "Homme", vcFemale: "Femme", vcSynth: "SYNTHÉTIQUE", origAudio: "AUDIO ORIGINAL", vcCloned: "VOIX", vcBadge: "CLONÉE", vcNone: "TEXTE SEUL", vcNoVoice: "Aucune voix pour ", vcSheet: "VOIX", vcNeutral: "VOIX SYNTHÉTIQUE", vcWarm: "VOIX SYNTHÉTIQUE", searchPlaceholder: "Rechercher dans la diffusion", noise: "Audio peu clair", newLines: "nouvelles", live: "EN DIRECT", ended: "TERMINÉ", waiting: "EN ATTENTE", corrected: "CORRIGÉ", hostLine: "Animé par Marcus Reed · 4 intervenants", langLabel: "LANGUE", langCount: "100+ langues", read: "Lire", listen: "Écouter", watch: "Regarder", waitTitle: "La diffusion n’a pas encore commencé", waitBody: "La transcription s’affichera ici dès que l’animateur prendra la parole.", english: "ANGLAIS", playing: "Lecture de la traduction française", ready: "Touchez pour lancer l'audio", readyNote: "Réglez le volume d'abord", voiceMeta: "VOIX NEUTRE", voice: "Voix", sheetTitle: "LANGUE DE L'APP", done: "Terminé", search: "Rechercher parmi 100+ langues", sheetNote: "Suivez la diffusion dans votre langue.", moreLangs: "autres", confTitle: "Certains mots n'ont pas été bien entendus", confBody: "La transcription marque les mots incertains d'un soulignement en pointillés. Les mots gardent leur couleur : seul le soulignement attire l'attention.", confMid: "Léger doute — probablement juste", confHigh: "Faible confiance — peut être faux", settings: "DIFFUSION", setOrig: "Afficher la langue d'origine", setTheme: "Apparence", light: "Clair", dark: "Sombre", setConf: "Afficher les mots incertains", setConfHint1: "Colore les mots incertains — ", setConfMid: "ambre", setConfSep: " ou ", setConfLow: "rouge", setConfHint2: "", behindLive: "LATENCE DE TRADUCTION", behindNote: "De combien la traduction suit le locuteur en ce moment.", shareLabel: "LIEN DE SUIVI", copy: "Copier", copied: "Copié" },
|
|
@@ -2317,13 +2317,13 @@ const ci = {
|
|
|
2317
2317
|
Romanian: { vcFor: "Vocea pentru", vcMute: "Oprește", vcUnmute: "Pornește", vcMuted: "OPRIT", vcShared: "Folosită și de", vcUsedBy: "Folosită de", vcUnknownSpk: "Necunoscut", vcUse: "Folosește această voce", vcGetting: "Se descarcă…", vcSample: "Așa sună această voce.", vcPreview: "MOSTRĂ", vcMale: "Bărbat", vcFemale: "Femeie", vcSynth: "SINTETICĂ", origAudio: "AUDIO ORIGINAL", vcCloned: "VOCI", vcBadge: "CLONATĂ", vcNone: "DOAR TEXT", vcNoVoice: "Nicio voce pentru ", vcSheet: "VOCE", vcNeutral: "VOCE SINTETICĂ", vcWarm: "VOCE SINTETICĂ", searchPlaceholder: "Caută în transmisiune", noise: "Sunet neclar", newLines: "noi", live: "ÎN DIRECT", ended: "ÎNCHEIAT", waiting: "ÎN AȘTEPTARE", corrected: "CORECTAT", hostLine: "Prezentat de Marcus Reed · 4 vorbitori", langLabel: "LIMBĂ", langCount: "100+ de limbi", read: "Citește", listen: "Ascultă", watch: "Vizionează", waitTitle: "Transmisiunea nu a început încă", waitBody: "Transcrierea va apărea aici imediat ce gazda începe să vorbească.", english: "ENGLEZĂ", playing: "Se redă traducerea în română", ready: "Atinge pentru a porni audio", readyNote: "Reglează întâi volumul", voiceMeta: "VOCE NEUTRĂ", voice: "Voce", sheetTitle: "LIMBA APLICAȚIEI", done: "Gata", search: "Caută printre 100+ de limbi", sheetNote: "Urmărește transmisiunea în limba ta.", moreLangs: "în plus", confTitle: "Unele cuvinte nu s-au auzit clar", confBody: "Transcrierea marchează cuvintele incerte cu o subliniere întreruptă. Cuvintele își păstrează culoarea, doar sublinierea îți arată unde să te uiți.", confMid: "Ușoară nesiguranță — probabil corect", confHigh: "Încredere scăzută — poate fi greșit", settings: "TRANSMISIUNE", setOrig: "Arată limba originală", setTheme: "Aspect", light: "Luminos", dark: "Întunecat", setConf: "Arată cuvintele incerte", setConfHint1: "Colorează cuvintele incerte — ", setConfMid: "galben", setConfSep: " sau ", setConfLow: "roșu", setConfHint2: "", behindLive: "LATENȚA TRADUCERII", behindNote: "Cu cât urmează traducerea vorbitorul în acest moment.", shareLabel: "LINK DE URMĂRIRE", copy: "Copiază", copied: "Copiat" },
|
|
2318
2318
|
Portuguese: { vcFor: "Voz de", vcMute: "Silenciar", vcUnmute: "Ativar", vcMuted: "SILENCIADO", vcShared: "Também usada por", vcUsedBy: "Usada por", vcUnknownSpk: "Desconhecido", vcUse: "Usar esta voz", vcGetting: "Baixando…", vcSample: "É assim que soa.", vcPreview: "AMOSTRA", vcMale: "Homem", vcFemale: "Mulher", vcSynth: "SINTÉTICA", origAudio: "ÁUDIO ORIGINAL", vcCloned: "VOZES", vcBadge: "CLONADA", vcNone: "SÓ TEXTO", vcNoVoice: "Sem voz para ", vcSheet: "VOZ", vcNeutral: "VOZ SINTÉTICA", vcWarm: "VOZ SINTÉTICA", searchPlaceholder: "Pesquisar nesta transmissão", noise: "Áudio pouco claro", newLines: "novas", live: "AO VIVO", ended: "ENCERRADA", waiting: "AGUARDANDO", corrected: "CORRIGIDO", hostLine: "Apresentado por Marcus Reed · 4 falantes", langLabel: "IDIOMA", langCount: "100+ idiomas", read: "Ler", listen: "Ouvir", watch: "Assistir", waitTitle: "A transmissão ainda não começou", waitBody: "A transcrição aparece aqui assim que o apresentador começar a falar.", english: "INGLÊS", playing: "Reproduzindo a tradução em português", ready: "Toque para iniciar o áudio", readyNote: "Ajuste o volume primeiro", voiceMeta: "VOZ NEUTRA", voice: "Voz", sheetTitle: "IDIOMA DO APP", done: "Concluído", search: "Pesquisar entre 100+ idiomas", sheetNote: "Acompanhe a transmissão no seu idioma.", moreLangs: "mais", confTitle: "Algumas palavras não foram bem ouvidas", confBody: "A transcrição marca as palavras duvidosas com um sublinhado tracejado. As palavras mantêm a sua cor, por isso só o sublinhado indica onde olhar.", confMid: "Pouca dúvida — provavelmente certa", confHigh: "Baixa confiança — pode estar errada", settings: "TRANSMISSÃO", setOrig: "Mostrar idioma original", setTheme: "Aparência", light: "Claro", dark: "Escuro", setConf: "Mostrar palavras duvidosas", setConfHint1: "Colore as palavras duvidosas: ", setConfMid: "âmbar", setConfSep: " ou ", setConfLow: "vermelho", setConfHint2: "", behindLive: "LATÊNCIA DE TRADUÇÃO", behindNote: "Quanto a tradução está atrás de quem fala agora.", shareLabel: "LINK PARA ACOMPANHAR", copy: "Copiar", copied: "Copiado" }
|
|
2319
2319
|
};
|
|
2320
|
-
function
|
|
2321
|
-
return t &&
|
|
2320
|
+
function Gi(t) {
|
|
2321
|
+
return t && di[t] || di.English;
|
|
2322
2322
|
}
|
|
2323
|
-
async function
|
|
2323
|
+
async function qi(t) {
|
|
2324
2324
|
var s, a, o, l, c;
|
|
2325
2325
|
const e = await t.json().catch(() => null), n = ((s = e == null ? void 0 : e.error) == null ? void 0 : s.code) ?? (e == null ? void 0 : e.code), r = ((a = e == null ? void 0 : e.error) == null ? void 0 : a.message) ?? (e == null ? void 0 : e.message);
|
|
2326
|
-
return new
|
|
2326
|
+
return new ji(typeof n == "string" ? n : "internal", typeof r == "string" ? r : br, { status: t.status, details: ((l = (o = e == null ? void 0 : e.error) == null ? void 0 : o.data) == null ? void 0 : l.details) ?? ((c = e == null ? void 0 : e.data) == null ? void 0 : c.details) });
|
|
2327
2327
|
}
|
|
2328
2328
|
function mr(t) {
|
|
2329
2329
|
switch (t) {
|
|
@@ -2341,14 +2341,14 @@ function mr(t) {
|
|
|
2341
2341
|
return "queued";
|
|
2342
2342
|
}
|
|
2343
2343
|
}
|
|
2344
|
-
function
|
|
2344
|
+
function El(t) {
|
|
2345
2345
|
return t ? t.progress ? { state: t.state, processedS: t.progress.processedS, totalS: t.progress.totalS ?? null, segmentsDone: t.progress.segmentsDone, segmentsTotal: t.progress.segmentsTotal ?? null, pct: t.progress.pct, error: t.error ?? null } : t.state ? { state: t.state, processedS: 0, totalS: null, segmentsDone: 0, segmentsTotal: null, pct: 0, error: t.error ?? null } : null : null;
|
|
2346
2346
|
}
|
|
2347
|
-
const
|
|
2347
|
+
const _l = (t, e) => {
|
|
2348
2348
|
const n = (t == null ? void 0 : t.segmentsDone) ?? e, r = Math.max(n, (t == null ? void 0 : t.segmentsTotal) ?? n);
|
|
2349
2349
|
return `${n} / ${r} SEGMENTS`;
|
|
2350
2350
|
};
|
|
2351
|
-
function
|
|
2351
|
+
function Yl(t, e) {
|
|
2352
2352
|
var s;
|
|
2353
2353
|
const n = ((s = t == null ? void 0 : t.source) == null ? void 0 : s.durationS) ?? (e == null ? void 0 : e.totalS) ?? null, r = t == null ? void 0 : t.crop;
|
|
2354
2354
|
if (r && (r.startS != null || r.endS != null)) {
|
|
@@ -2363,24 +2363,24 @@ const Or = [
|
|
|
2363
2363
|
{ key: "srt", name: "Subtitles", ext: "SRT / VTT", note: "Timed caption cues, ready for a video editor or a player.", icon: "M2.25 15.75V8.25A2.25 2.25 0 0 1 4.5 6h15a2.25 2.25 0 0 1 2.25 2.25v7.5A2.25 2.25 0 0 1 19.5 18h-15a2.25 2.25 0 0 1-2.25-2.25Zm4.5-4.5h4.5m-4.5 3h1.5m3 0h6m-3-3h3" },
|
|
2364
2364
|
{ key: "json", name: "JSON", ext: "JSON", note: "Word-level timings, confidence scores and speaker turns.", icon: "M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5" }
|
|
2365
2365
|
];
|
|
2366
|
-
function
|
|
2366
|
+
function Qr(t) {
|
|
2367
2367
|
const e = document.createElement("a");
|
|
2368
2368
|
e.href = t, e.style.display = "none", document.body.appendChild(e), e.click(), e.remove();
|
|
2369
2369
|
}
|
|
2370
|
-
async function
|
|
2370
|
+
async function Ul(t) {
|
|
2371
2371
|
const e = await fetch(t, { redirect: "manual" });
|
|
2372
|
-
if (e.type !== "opaqueredirect" && !e.ok) throw await
|
|
2373
|
-
|
|
2372
|
+
if (e.type !== "opaqueredirect" && !e.ok) throw await qi(e);
|
|
2373
|
+
Qr(t);
|
|
2374
2374
|
}
|
|
2375
|
-
async function
|
|
2375
|
+
async function Rl(t, e, n, r = {}) {
|
|
2376
2376
|
var h, f;
|
|
2377
2377
|
const s = await t.client.recordings.export(e, n, { lang: r.lang ?? void 0, ...t.readAs });
|
|
2378
|
-
if (!s.ok) throw await
|
|
2378
|
+
if (!s.ok) throw await qi(s);
|
|
2379
2379
|
const a = await s.blob(), o = s.headers.get("content-disposition") ?? "", l = (h = /filename\*=UTF-8''([^;]+)/i.exec(o)) == null ? void 0 : h[1], c = (f = /filename="([^"]+)"/i.exec(o)) == null ? void 0 : f[1], u = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, d = URL.createObjectURL(a), g = document.createElement("a");
|
|
2380
2380
|
g.href = d, g.download = u, g.style.display = "none", document.body.appendChild(g), g.click(), g.remove(), window.setTimeout(() => URL.revokeObjectURL(d), 6e4);
|
|
2381
2381
|
}
|
|
2382
|
-
async function
|
|
2383
|
-
const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((g) => g.lang === r), l = (d) =>
|
|
2382
|
+
async function Pl(t, e) {
|
|
2383
|
+
const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((g) => g.lang === r), l = (d) => Di(d, s);
|
|
2384
2384
|
let c = l(await o());
|
|
2385
2385
|
(!c || c.state === "clips" || c.state === "failed") && await e.request();
|
|
2386
2386
|
const u = Date.now() + (e.timeoutMs ?? 10 * 6e4);
|
|
@@ -2389,25 +2389,25 @@ async function Rl(t, e) {
|
|
|
2389
2389
|
if (Date.now() > u) throw new Error("The spoken track is taking too long; try again in a moment.");
|
|
2390
2390
|
await new Promise((d) => setTimeout(d, 4e3)), c = l(await o());
|
|
2391
2391
|
}
|
|
2392
|
-
|
|
2392
|
+
Qr(uo(t.origin, n, r, c.voiceKey, a));
|
|
2393
2393
|
}
|
|
2394
|
-
const
|
|
2394
|
+
const Ki = (t) => {
|
|
2395
2395
|
var e;
|
|
2396
2396
|
return ((e = t == null ? void 0 : t.match(/(?:youtu\.be\/|[?&]v=|\/shorts\/|\/embed\/|\/live\/)([\w-]{11})/)) == null ? void 0 : e[1]) ?? null;
|
|
2397
|
-
},
|
|
2398
|
-
function
|
|
2397
|
+
}, $l = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, hi = 0.3, Ql = 1.5;
|
|
2398
|
+
function Ji(t, e, n) {
|
|
2399
2399
|
var s;
|
|
2400
2400
|
const r = (s = t.words[t.words.length - 1]) == null ? void 0 : s.end;
|
|
2401
2401
|
return r != null && r > t.start ? r : t.end != null && t.end > t.start ? t.end : (e == null ? void 0 : e.start) ?? n;
|
|
2402
2402
|
}
|
|
2403
|
-
function
|
|
2403
|
+
function Bl(t, e, n) {
|
|
2404
2404
|
var c, u;
|
|
2405
2405
|
const r = t[e];
|
|
2406
2406
|
if (!r) return !1;
|
|
2407
|
-
const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) -
|
|
2407
|
+
const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) - hi, a = t[e + 1], o = Ji(r, a, r.start + 4) + Ql, l = a ? Math.min(o, (((u = a.words[0]) == null ? void 0 : u.start) ?? a.start) - hi) : o;
|
|
2408
2408
|
return n >= s && n < Math.max(l, s + 0.5);
|
|
2409
2409
|
}
|
|
2410
|
-
function
|
|
2410
|
+
function Vl(t, e, n) {
|
|
2411
2411
|
const r = Math.max(0, n - e), s = t.map((l) => Math.max(1, [...l.replace(/[^\p{L}\p{N}]/gu, "")].length)), a = s.reduce((l, c) => l + c, 0) || 1;
|
|
2412
2412
|
let o = e;
|
|
2413
2413
|
return t.map((l, c) => {
|
|
@@ -2422,7 +2422,7 @@ function Nr(t) {
|
|
|
2422
2422
|
bottom: Math.min(parseFloat(e.paddingBottom) || 0, n)
|
|
2423
2423
|
};
|
|
2424
2424
|
}
|
|
2425
|
-
function
|
|
2425
|
+
function Hl(t, e, n = 0) {
|
|
2426
2426
|
const r = k(() => {
|
|
2427
2427
|
});
|
|
2428
2428
|
D(() => {
|
|
@@ -2485,10 +2485,10 @@ function Vl(t, e, n = 0) {
|
|
|
2485
2485
|
};
|
|
2486
2486
|
}, []);
|
|
2487
2487
|
}
|
|
2488
|
-
function
|
|
2488
|
+
function Wl({ thumbRef: t }) {
|
|
2489
2489
|
return /* @__PURE__ */ i("div", { className: "feedbar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", { ref: t, className: "feedbar__thumb" }) });
|
|
2490
2490
|
}
|
|
2491
|
-
function
|
|
2491
|
+
function Fl({ error: t, onClose: e }) {
|
|
2492
2492
|
const n = k(e);
|
|
2493
2493
|
n.current = e;
|
|
2494
2494
|
const [r, s] = L(!1), [a, o] = L(!1), l = k();
|
|
@@ -2521,10 +2521,10 @@ Request id: ${t.requestId}` : t.message;
|
|
|
2521
2521
|
/* @__PURE__ */ i("button", { type: "button", onClick: e, "aria-label": "Dismiss", children: /* @__PURE__ */ i(oe, { d: X.close, size: 14 }) })
|
|
2522
2522
|
] });
|
|
2523
2523
|
}
|
|
2524
|
-
function
|
|
2524
|
+
function Xi({ color: t }) {
|
|
2525
2525
|
return /* @__PURE__ */ i("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ i(oe, { d: X.voiceClone, size: 13, sw: 1.7, stroke: t }) });
|
|
2526
2526
|
}
|
|
2527
|
-
function
|
|
2527
|
+
function Wu({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, next: l }) {
|
|
2528
2528
|
return /* @__PURE__ */ M("div", { className: "vs-tt", children: [
|
|
2529
2529
|
/* @__PURE__ */ M("div", { className: "vs-tt__r1", children: [
|
|
2530
2530
|
/* @__PURE__ */ i("div", { className: "vs-tt__chip", children: t }),
|
|
@@ -2541,7 +2541,7 @@ function Hu({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, n
|
|
|
2541
2541
|
] })
|
|
2542
2542
|
] });
|
|
2543
2543
|
}
|
|
2544
|
-
function
|
|
2544
|
+
function Zl({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: a, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
|
|
2545
2545
|
const g = k(null), h = k(!1), [f, m] = L(null), y = Math.max(1, e), j = f ?? u, N = j != null ? Math.min(100, Math.max(0, j * 100)) : t / Math.max(1, y - 1) * 100, p = u != null && d > 0 && f == null ? `width ${d}ms linear, left ${d}ms linear` : "none", b = (S) => {
|
|
2546
2546
|
var I;
|
|
2547
2547
|
const B = (I = g.current) == null ? void 0 : I.getBoundingClientRect();
|
|
@@ -2585,7 +2585,7 @@ function Fl({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek:
|
|
|
2585
2585
|
] })
|
|
2586
2586
|
] });
|
|
2587
2587
|
}
|
|
2588
|
-
function
|
|
2588
|
+
function Gl(t, e, n) {
|
|
2589
2589
|
const r = new Set(t.seqs ?? t.words.map((l) => l.seq)), s = (e ?? []).filter((l) => !l.revertedAt && l.seq != null && r.has(l.seq) && (l.kind === "word" || l.kind === "line")), a = s.some((l) => l.kind === "line"), o = (l) => !!(n != null && n.has(`${l.seq}:${l.idx}`));
|
|
2590
2590
|
return {
|
|
2591
2591
|
script: a ? 0 : t.words.filter((l) => l.script && !o(l)).length,
|
|
@@ -2593,7 +2593,7 @@ function Zl(t, e, n) {
|
|
|
2593
2593
|
manualCount: a ? 0 : s.filter((l) => l.kind === "word").length
|
|
2594
2594
|
};
|
|
2595
2595
|
}
|
|
2596
|
-
function
|
|
2596
|
+
function ql({ f: t, desk: e, onOpen: n }) {
|
|
2597
2597
|
const r = (s, a, o) => /* @__PURE__ */ M("span", { role: "button", title: "Open this line in Fix", className: "badge badge--fix", style: { marginLeft: o ? "auto" : 0 }, onClick: (l) => {
|
|
2598
2598
|
l.stopPropagation(), n == null || n();
|
|
2599
2599
|
}, children: [
|
|
@@ -2606,7 +2606,7 @@ function Gl({ f: t, desk: e, onOpen: n }) {
|
|
|
2606
2606
|
t.manual && r(e ? "MANUAL FIX" : "MANUAL", t.manualCount, t.script === 0)
|
|
2607
2607
|
] });
|
|
2608
2608
|
}
|
|
2609
|
-
function
|
|
2609
|
+
function Kl({ onOpen: t, alone: e }) {
|
|
2610
2610
|
const [n, r] = L(!1);
|
|
2611
2611
|
return /* @__PURE__ */ M("span", { role: "button", title: "Fix this line", className: `badge badge--pen${n ? " is-over" : ""}`, style: { marginLeft: e ? "auto" : 0 }, onMouseEnter: () => r(!0), onMouseLeave: () => r(!1), onClick: (s) => {
|
|
2612
2612
|
s.stopPropagation(), t();
|
|
@@ -2615,7 +2615,7 @@ function ql({ onOpen: t, alone: e }) {
|
|
|
2615
2615
|
n && "FIX"
|
|
2616
2616
|
] });
|
|
2617
2617
|
}
|
|
2618
|
-
function
|
|
2618
|
+
function Jl(t, e, n, r) {
|
|
2619
2619
|
const s = Vt(), [a, o] = L([]), [l, c] = L(0), u = k(/* @__PURE__ */ new Set()), d = k(!1), g = ze(() => new Map(n.filter((f) => f.sentenceId != null).map((f) => [f.sentenceId, f])), [n]);
|
|
2620
2620
|
D(() => {
|
|
2621
2621
|
u.current = /* @__PURE__ */ new Set();
|
|
@@ -2642,13 +2642,13 @@ function Kl(t, e, n, r) {
|
|
|
2642
2642
|
}
|
|
2643
2643
|
}, [t, e, a, l, g, r]), h;
|
|
2644
2644
|
}
|
|
2645
|
-
function
|
|
2645
|
+
function Xl(t) {
|
|
2646
2646
|
return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
|
|
2647
2647
|
}
|
|
2648
2648
|
function an(t, e) {
|
|
2649
2649
|
return t.cloned ? { rank: 0, head: e.vcSheet } : t.gender === "male" ? { rank: 1, head: e.vcMale.toUpperCase() } : t.gender === "female" ? { rank: 2, head: e.vcFemale.toUpperCase() } : { rank: 3, head: e.vcSynth };
|
|
2650
2650
|
}
|
|
2651
|
-
function
|
|
2651
|
+
function ec(t, e) {
|
|
2652
2652
|
const n = t.slice().sort((s, a) => an(s, e).rank - an(a, e).rank || s.name.localeCompare(a.name, void 0, { numeric: !0 })), r = {};
|
|
2653
2653
|
for (const s of n) {
|
|
2654
2654
|
const a = an(s, e).head;
|
|
@@ -2659,18 +2659,18 @@ function Xl(t, e) {
|
|
|
2659
2659
|
return { v: s, headOn: l, head: o, headCount: r[o], rule: l ? "0" : "1px solid var(--hair)" };
|
|
2660
2660
|
});
|
|
2661
2661
|
}
|
|
2662
|
-
function
|
|
2662
|
+
function tc(t, e, n) {
|
|
2663
2663
|
const r = /* @__PURE__ */ new Set();
|
|
2664
2664
|
let s = !1;
|
|
2665
2665
|
for (const o of t)
|
|
2666
2666
|
o.speaker < 0 ? s = !0 : r.add(o.speaker);
|
|
2667
2667
|
const a = [...r].sort((o, l) => o - l).map((o) => {
|
|
2668
2668
|
var c;
|
|
2669
|
-
const l =
|
|
2669
|
+
const l = Pr(e, o);
|
|
2670
2670
|
return {
|
|
2671
2671
|
key: o,
|
|
2672
|
-
name:
|
|
2673
|
-
initial:
|
|
2672
|
+
name: Rr(e, o),
|
|
2673
|
+
initial: Bi(e, o),
|
|
2674
2674
|
lane: l.lane,
|
|
2675
2675
|
sex: e.speakerSex[o] ?? null,
|
|
2676
2676
|
voiceId: ((c = e.speakerIds[o]) == null ? void 0 : c.voiceId) ?? null,
|
|
@@ -2681,11 +2681,11 @@ function ec(t, e, n) {
|
|
|
2681
2681
|
});
|
|
2682
2682
|
return s && a.push({ key: -1, name: n, initial: "?", lane: null, sex: null }), a;
|
|
2683
2683
|
}
|
|
2684
|
-
function
|
|
2684
|
+
function gi(t) {
|
|
2685
2685
|
const e = [...t.entries()].filter(([, n]) => n.trim()).sort((n, r) => n[0] - r[0]).map(([n, r]) => `${n}=${r.trim()}`).join(";");
|
|
2686
2686
|
return e ? `cast:${e}` : "";
|
|
2687
2687
|
}
|
|
2688
|
-
function
|
|
2688
|
+
function Mi(t) {
|
|
2689
2689
|
if (!t || !t.startsWith("cast:")) return null;
|
|
2690
2690
|
const e = /* @__PURE__ */ new Map();
|
|
2691
2691
|
for (const n of t.slice(5).split(";")) {
|
|
@@ -2696,7 +2696,7 @@ function hi(t) {
|
|
|
2696
2696
|
}
|
|
2697
2697
|
return e.size ? e : null;
|
|
2698
2698
|
}
|
|
2699
|
-
function
|
|
2699
|
+
function fi(t, e, n = !0) {
|
|
2700
2700
|
const r = e.filter((o) => !o.cloned), s = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
|
|
2701
2701
|
for (const o of t) {
|
|
2702
2702
|
const c = (o.voiceId ? e.find((h) => h.cloned && !h.auto && h.consent !== "pending" && h.id === `clone:${o.voiceId}`) : void 0) ?? (n ? (o.voiceId ? e.find((h) => h.cloned && h.consent !== "pending" && h.id === `clone:${o.voiceId}`) : void 0) ?? (o.key >= 0 ? e.find((h) => h.cloned && h.auto && h.consent !== "pending" && h.speaker === o.key) : void 0) : void 0);
|
|
@@ -2709,7 +2709,7 @@ function gi(t, e, n = !0) {
|
|
|
2709
2709
|
}
|
|
2710
2710
|
return a;
|
|
2711
2711
|
}
|
|
2712
|
-
function
|
|
2712
|
+
function nc({ roster: t, selected: e, onSelect: n, noClone: r, building: s, short: a, warn: o, sexOf: l, t: c }) {
|
|
2713
2713
|
const u = t.find((d) => d.key === e) ?? t[0] ?? null;
|
|
2714
2714
|
return u ? /* @__PURE__ */ i("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, padding: "0 2px 9px", margin: "0 -2px" }, children: t.map((d) => {
|
|
2715
2715
|
const g = d.key === u.key, h = d.key >= 0 ? (o == null ? void 0 : o(d)) ?? null : null, f = d.key >= 0 && !h && !!(s != null && s(d)), m = d.key >= 0 && !h && !f && r(d), y = d.key >= 0 && !h && !f && !m && !d.hasVoice && !!(a != null && a(d));
|
|
@@ -2731,7 +2731,7 @@ function tc({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
|
|
|
2731
2731
|
}
|
|
2732
2732
|
),
|
|
2733
2733
|
/* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color: g ? "var(--ink-96)" : "var(--ink-62)", whiteSpace: "nowrap" }, children: d.name }),
|
|
2734
|
-
d.hasVoice && !h && /* @__PURE__ */ i(
|
|
2734
|
+
d.hasVoice && !h && /* @__PURE__ */ i(Xi, { color: d.fg ?? (g ? "var(--ink-62)" : "var(--ink-45)") }),
|
|
2735
2735
|
h && /* @__PURE__ */ i("span", { title: h, "aria-label": h, style: { flex: "none", width: 15, height: 15, marginRight: -2, borderRadius: "50%", background: "#c27c00", color: "#fff", font: "900 10.5px/1 system-ui, sans-serif", display: "flex", alignItems: "center", justifyContent: "center" }, children: "!" }),
|
|
2736
2736
|
y && /* @__PURE__ */ i("span", { title: "Not enough audio to clone", "aria-label": "Not enough audio to clone", style: { flex: "none", display: "flex", marginRight: -2, color: g ? "var(--ink-45)" : "var(--ink-35)" }, children: /* @__PURE__ */ i(oe, { d: X.micOff, size: 13, sw: 1.7 }) }),
|
|
2737
2737
|
(m || f) && /* @__PURE__ */ i("span", { title: f ? "Cloning this voice…" : "No voice clone yet", "aria-label": f ? "Cloning this voice" : "No voice clone yet", style: { flex: "none", width: 10, height: 10, marginRight: -2, display: "flex", alignItems: "center", justifyContent: "center" }, children: f ? /* @__PURE__ */ i(ht, { size: 10, color: "var(--brand)", track: "var(--fill-10)", sw: 1.6 }) : /* @__PURE__ */ i("span", { style: { width: 7, height: 7, borderRadius: "50%", background: "var(--brand)" } }) })
|
|
@@ -2741,8 +2741,8 @@ function tc({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
|
|
|
2741
2741
|
);
|
|
2742
2742
|
}) }) : null;
|
|
2743
2743
|
}
|
|
2744
|
-
function
|
|
2745
|
-
const y = ze(() =>
|
|
2744
|
+
function rc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s = null, dlId: a = null, onPick: o, onAdd: l, onUse: c, usedBy: u, foldKey: d, foldFor: g = null, problem: h, noClone: f = null, t: m }) {
|
|
2745
|
+
const y = ze(() => ec(e, m), [e, m]), [j, N] = L({});
|
|
2746
2746
|
D(() => {
|
|
2747
2747
|
N({});
|
|
2748
2748
|
}, [d, g]);
|
|
@@ -2755,7 +2755,7 @@ function nc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2755
2755
|
h && /* @__PURE__ */ M("div", { style: { display: "flex", alignItems: "flex-start", gap: 9, padding: "10px 11px", marginBottom: 10, borderRadius: 11, background: "var(--conf-low-soft)" }, children: [
|
|
2756
2756
|
/* @__PURE__ */ i(oe, { d: X.warnTri, size: 15, sw: 1.7, style: { flex: "none", marginTop: 1, color: "var(--conf-low)" } }),
|
|
2757
2757
|
/* @__PURE__ */ i("span", { style: { flex: 1, minWidth: 0, fontSize: 12.5, fontWeight: 300, lineHeight: 1.45, color: "var(--ink-80)", textWrap: "pretty" }, children: h }),
|
|
2758
|
-
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(
|
|
2758
|
+
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(ro, { value: h, label: "Copy this error" }) })
|
|
2759
2759
|
] }),
|
|
2760
2760
|
t,
|
|
2761
2761
|
f && /* @__PURE__ */ M(Ce, { children: [
|
|
@@ -2771,8 +2771,8 @@ function nc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2771
2771
|
] })
|
|
2772
2772
|
] }),
|
|
2773
2773
|
y.map(({ v: S, headOn: B, head: Y, headCount: ee, rule: I }, F) => {
|
|
2774
|
-
const A =
|
|
2775
|
-
return /* @__PURE__ */ M(
|
|
2774
|
+
const A = Xl(S), T = a === S.id, _ = b(Y), O = (u == null ? void 0 : u(S)) ?? null;
|
|
2775
|
+
return /* @__PURE__ */ M(Ha, { children: [
|
|
2776
2776
|
B && Y === m.vcSheet && /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", padding: "14px 2px 6px", borderTop: F === 0 && !f ? "0" : "1px solid var(--hair)", userSelect: "none" }, children: /* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: Y }) }),
|
|
2777
2777
|
B && Y !== m.vcSheet && /* @__PURE__ */ M(
|
|
2778
2778
|
"button",
|
|
@@ -2802,8 +2802,8 @@ function nc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2802
2802
|
style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: _ ? I : "0", display: "flex", alignItems: "center", gap: 11, padding: _ ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: r === S.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: _ ? 1 : 0, maxHeight: _ ? 120 : 0, overflow: "hidden", transition: "max-height 280ms cubic-bezier(.32,.72,0,1),padding 280ms cubic-bezier(.32,.72,0,1),opacity 200ms ease" },
|
|
2803
2803
|
children: [
|
|
2804
2804
|
/* @__PURE__ */ i("span", { title: T ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: T ? "transparent" : S.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: T ? /* @__PURE__ */ i("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : s === S.id ? /* @__PURE__ */ M("span", { className: "vcplay", children: [
|
|
2805
|
-
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(
|
|
2806
|
-
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(
|
|
2805
|
+
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(sc, { height: 13, width: 2.5 }) }),
|
|
2806
|
+
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(eo, { size: 11 }) })
|
|
2807
2807
|
] }) : /* @__PURE__ */ i(oe, { d: S.cloned ? X.voiceClone : S.gender === "female" ? X.venus : S.gender === "male" ? X.mars : X.mic, size: 15, sw: 1.6, style: { color: S.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
|
|
2808
2808
|
/* @__PURE__ */ M("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
2809
2809
|
/* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, minWidth: 0 }, children: /* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 14.5, fontWeight: S.id === n ? 600 : 400, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: S.name }) }),
|
|
@@ -2831,7 +2831,7 @@ function nc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2831
2831
|
C && /* @__PURE__ */ i("div", { style: { position: "sticky", bottom: 0, zIndex: 3, marginTop: 6, padding: "11px 0 3px", animation: "vs-slide-up .18s ease-out" }, children: /* @__PURE__ */ i("button", { type: "button", className: "vcuse", title: "Apply this voice", onClick: () => r && c(r), children: /* @__PURE__ */ i("span", { children: m.vcUse }) }) })
|
|
2832
2832
|
] });
|
|
2833
2833
|
}
|
|
2834
|
-
function
|
|
2834
|
+
function sc({ height: t, width: e = 2 }) {
|
|
2835
2835
|
const n = { width: e, height: "100%", borderRadius: 1, background: "var(--brand)" };
|
|
2836
2836
|
return /* @__PURE__ */ M("span", { style: { flex: "none", display: "flex", alignItems: "flex-end", gap: 2, height: t }, children: [
|
|
2837
2837
|
/* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out infinite" } }),
|
|
@@ -2839,16 +2839,16 @@ function rc({ height: t, width: e = 2 }) {
|
|
|
2839
2839
|
/* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out .38s infinite" } })
|
|
2840
2840
|
] });
|
|
2841
2841
|
}
|
|
2842
|
-
const
|
|
2842
|
+
const ic = /* @__PURE__ */ M("span", { style: { display: "inline-flex", alignItems: "center", gap: 3 }, children: [
|
|
2843
2843
|
/* @__PURE__ */ i(oe, { d: X.langAuto, size: 19, sw: 1.7, style: { color: "var(--ink-62)", display: "block" } }),
|
|
2844
2844
|
/* @__PURE__ */ i(oe, { d: X.globe, size: 18, sw: 1.6, style: { color: "var(--ink-62)", display: "block" } })
|
|
2845
2845
|
] });
|
|
2846
2846
|
function Cr(t, e) {
|
|
2847
2847
|
const n = e ? t == null ? void 0 : t.languages.find((r) => r.code === e) : null;
|
|
2848
|
-
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" :
|
|
2848
|
+
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : ic, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
|
|
2849
2849
|
}
|
|
2850
|
-
function
|
|
2851
|
-
const s = (r == null ? void 0 : r.id) ?? null, a = (r == null ? void 0 : r.token) ?? null, o = (r == null ? void 0 : r.shareCode) ?? null, l = Vt(), { data: c } =
|
|
2850
|
+
function ac(t, e, n = 0, r) {
|
|
2851
|
+
const s = (r == null ? void 0 : r.id) ?? null, a = (r == null ? void 0 : r.token) ?? null, o = (r == null ? void 0 : r.shareCode) ?? null, l = Vt(), { data: c } = Zi(async () => {
|
|
2852
2852
|
if (!t || !e) return null;
|
|
2853
2853
|
try {
|
|
2854
2854
|
return await l.client.voices.available(t, { recording: s ?? void 0, shareCode: s ? o ?? void 0 : void 0, asOwner: l.owner });
|
|
@@ -2858,25 +2858,25 @@ function ic(t, e, n = 0, r) {
|
|
|
2858
2858
|
}, [t, e, n, s, a, o]);
|
|
2859
2859
|
return c;
|
|
2860
2860
|
}
|
|
2861
|
-
function
|
|
2861
|
+
function oc(t) {
|
|
2862
2862
|
return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
|
|
2863
2863
|
}
|
|
2864
|
-
function
|
|
2865
|
-
const o = Vt(), { data: l, reload: c } =
|
|
2864
|
+
function lc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, sentenceIds: a }) {
|
|
2865
|
+
const o = Vt(), { data: l, reload: c } = Zi(async () => {
|
|
2866
2866
|
if (!t || !e) return null;
|
|
2867
2867
|
const K = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
|
|
2868
2868
|
return { recordingId: t, lang: e, rows: K.filter((v) => v.lang === e) };
|
|
2869
2869
|
}, [t, e, o, n]), u = ze(
|
|
2870
2870
|
() => l && l.lang === e && l.recordingId === t ? l.rows : [],
|
|
2871
2871
|
[l, e, t]
|
|
2872
|
-
), d = ze(() =>
|
|
2872
|
+
), d = ze(() => Di(u, s), [u, s]), g = d ? d.voiceKey || null : s, [h, f] = L(null), [m, y] = L(null), j = k(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${g ?? ""}`, p = Ke(async (K, v) => {
|
|
2873
2873
|
if (!t || !e || !n) return;
|
|
2874
|
-
const ie = v != null && v.size ? null :
|
|
2874
|
+
const ie = v != null && v.size ? null : Mi(K), ne = v != null && v.size ? v : ie, Z = ne && ne.size ? Object.fromEntries([...ne].map(([Te, je]) => [String(Te), je])) : null, J = `${t}|${e}|${Z ? JSON.stringify(Z) : K ?? ""}`;
|
|
2875
2875
|
if (j.current.has(J)) return;
|
|
2876
2876
|
j.current.add(J), f(J), y(null);
|
|
2877
2877
|
const pe = { langs: [e] };
|
|
2878
2878
|
Z ? pe.voiceBySpeaker = Z : K && (pe.voice = K);
|
|
2879
|
-
const le = await
|
|
2879
|
+
const le = await ui(o, `/v1/recordings/${t}/voice`, { method: "POST", body: pe }).catch(() => null);
|
|
2880
2880
|
if (f((Te) => Te === J ? null : Te), !(le != null && le.ok)) {
|
|
2881
2881
|
j.current.delete(J);
|
|
2882
2882
|
const Te = le ? await le.json().catch(() => null) : null;
|
|
@@ -2894,8 +2894,8 @@ function oc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2894
2894
|
const K = Y ?? F[0], v = F.find((pe) => pe >= K) ?? F[0], ie = `${t}|${e}|${g ?? ""}`, ne = A.current;
|
|
2895
2895
|
if (ne && ne.key === ie && Math.abs(ne.near - v) < 12 && Date.now() - ne.at < 6e4) return;
|
|
2896
2896
|
A.current = { key: ie, near: v, at: Date.now() };
|
|
2897
|
-
const Z =
|
|
2898
|
-
Z && Z.size ? J.voiceBySpeaker = Object.fromEntries([...Z].map(([pe, le]) => [String(pe), le])) : g && (J.voice = g),
|
|
2897
|
+
const Z = Mi(g), J = { langs: [e], near: v };
|
|
2898
|
+
Z && Z.size ? J.voiceBySpeaker = Object.fromEntries([...Z].map(([pe, le]) => [String(pe), le])) : g && (J.voice = g), ui(o, `/v1/recordings/${t}/voice`, { method: "POST", body: J }).then((pe) => {
|
|
2899
2899
|
pe.ok || (A.current = null);
|
|
2900
2900
|
}).catch(() => {
|
|
2901
2901
|
A.current = null;
|
|
@@ -2913,12 +2913,12 @@ function oc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2913
2913
|
const O = ze(() => {
|
|
2914
2914
|
if (!t) return [];
|
|
2915
2915
|
const K = B ? B.split(",").map(Number).filter((ie) => !n || I.has(ie)) : void 0, v = d ?? (K != null && K.length && e ? { lang: e, voiceKey: s ?? "", clips: [], voice: null } : null);
|
|
2916
|
-
return
|
|
2916
|
+
return mo(v, t, o.origin, r, K);
|
|
2917
2917
|
}, [d, t, o, r, B, e, s, n, I]), te = ze(() => new Set(F), [F]);
|
|
2918
2918
|
return { listed: l, rows: u, track: d, renderVoiceId: g, rendering: C, failed: S, clips: O, requestRender: p, forget: b, reload: c, setNear: ee, missing: F.length, coming: te };
|
|
2919
2919
|
}
|
|
2920
|
-
const
|
|
2921
|
-
function
|
|
2920
|
+
const cc = { share: X.share, delay: X.tabGauge, video: X.video, source: X.tabSources, script: X.tabScript, fix: X.tabFix, ending: X.tabEnding, summary: X.tabSummary, export: X.tabExport, settings: X.tabSettings, sources: X.tabSources, recs: X.mic };
|
|
2921
|
+
function ea({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s }) {
|
|
2922
2922
|
const o = s && t.length <= 3, l = t.some((j) => j.key === e), [c, u] = L(null), d = k(null), [g, h] = L(0);
|
|
2923
2923
|
D(() => {
|
|
2924
2924
|
d.current && h(d.current.offsetWidth);
|
|
@@ -2936,7 +2936,7 @@ function Ji({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
2936
2936
|
let y = null;
|
|
2937
2937
|
if (c) {
|
|
2938
2938
|
const j = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, N = g || 80, p = Math.max(j.l + 8, Math.min(j.r - N - 8, c.x - N / 2));
|
|
2939
|
-
y =
|
|
2939
|
+
y = Za(
|
|
2940
2940
|
/* @__PURE__ */ i("div", { className: "vsp vsp-portal", "data-theme": "dark", children: /* @__PURE__ */ M("div", { ref: d, "data-theme": "dark", className: "vs-tip__bubble vs-tip__bubble--top tabtip", style: { position: "fixed", left: p, top: c.y - 8, bottom: "auto", width: "auto", whiteSpace: "nowrap", transform: "translateY(-100%)", zIndex: 2147483e3, pointerEvents: "none" }, children: [
|
|
2941
2941
|
/* @__PURE__ */ i("span", { className: "vs-tip__row", children: /* @__PURE__ */ i("span", { className: "vs-tip__copy", children: c.label }) }),
|
|
2942
2942
|
/* @__PURE__ */ i("span", { className: "vs-tip__arrow", style: { left: Math.round(Math.max(8, Math.min(N - 19, c.x - p - 5.5))) } })
|
|
@@ -2946,7 +2946,7 @@ function Ji({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
2946
2946
|
}
|
|
2947
2947
|
return /* @__PURE__ */ M("div", { role: "tablist", className: `tabbar tabbar--icons${s ? "" : " tabbar--desk"}`, "data-desk-tabs": a ? "" : void 0, "data-tab-n": a ? t.length : void 0, style: { marginBottom: r ? 12 : 0 }, onMouseLeave: m, children: [
|
|
2948
2948
|
t.map((j) => {
|
|
2949
|
-
const N = e === j.key, p = o || N, b = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", C = j.icon ??
|
|
2949
|
+
const N = e === j.key, p = o || N, b = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", C = j.icon ?? cc[j.key], S = () => {
|
|
2950
2950
|
m(), n(s && N ? "none" : j.key);
|
|
2951
2951
|
};
|
|
2952
2952
|
return s ? /* @__PURE__ */ M("button", { type: "button", role: "tab", "aria-selected": N, title: j.label, className: `tabbar__tab${N ? " is-on" : ""}`, style: { flex: b }, onClick: S, children: [
|
|
@@ -2960,8 +2960,8 @@ function Ji({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
2960
2960
|
y
|
|
2961
2961
|
] });
|
|
2962
2962
|
}
|
|
2963
|
-
const
|
|
2964
|
-
function
|
|
2963
|
+
const uc = "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3", dc = "m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z";
|
|
2964
|
+
function hc({ audio: t, video: e, formats: n, onExport: r }) {
|
|
2965
2965
|
const [s, a] = L(null), [o, l] = L(null), c = k(void 0), u = k(!0);
|
|
2966
2966
|
D(() => (u.current = !0, () => {
|
|
2967
2967
|
u.current = !1, window.clearTimeout(c.current);
|
|
@@ -2990,11 +2990,11 @@ function dc({ audio: t, video: e, formats: n, onExport: r }) {
|
|
|
2990
2990
|
/* @__PURE__ */ i("span", { style: { fontSize: 13, fontWeight: 500, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: y.name }),
|
|
2991
2991
|
/* @__PURE__ */ i("span", { style: { font: "500 9.5px var(--vs-font-mono)", color: "var(--ink-40)", letterSpacing: ".04em" }, children: y.meta })
|
|
2992
2992
|
] }),
|
|
2993
|
-
/* @__PURE__ */ i(oe, { d: s === m ? X.check :
|
|
2993
|
+
/* @__PURE__ */ i(oe, { d: s === m ? X.check : uc, size: 17, sw: 1.6, style: { flex: "none", color: s === m ? "var(--brand)" : "var(--ink-62)" } })
|
|
2994
2994
|
] })
|
|
2995
2995
|
] });
|
|
2996
2996
|
return /* @__PURE__ */ M("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
|
|
2997
|
-
t && f("audio", t,
|
|
2997
|
+
t && f("audio", t, dc, "DOWNLOAD AUDIO"),
|
|
2998
2998
|
e && f("video", e, X.video, "DOWNLOAD VIDEO"),
|
|
2999
2999
|
n !== !1 && /* @__PURE__ */ M(Ce, { children: [
|
|
3000
3000
|
/* @__PURE__ */ i(Lr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
|
|
@@ -3005,7 +3005,7 @@ function dc({ audio: t, video: e, formats: n, onExport: r }) {
|
|
|
3005
3005
|
] })
|
|
3006
3006
|
] });
|
|
3007
3007
|
}
|
|
3008
|
-
function
|
|
3008
|
+
function Br(t, e, n) {
|
|
3009
3009
|
const r = () => {
|
|
3010
3010
|
var s;
|
|
3011
3011
|
(s = navigator.clipboard) == null || s.writeText(t).then(() => n == null ? void 0 : n(), () => {
|
|
@@ -3019,7 +3019,7 @@ function Qr(t, e, n) {
|
|
|
3019
3019
|
}
|
|
3020
3020
|
r();
|
|
3021
3021
|
}
|
|
3022
|
-
function
|
|
3022
|
+
function gc(t, e, n) {
|
|
3023
3023
|
const [r, s] = L(null), a = t.state === "ready", o = `${e ?? ""}|${n ?? ""}|${a ? `${t.title}
|
|
3024
3024
|
${t.summary}` : ""}`, l = Vt();
|
|
3025
3025
|
return D(() => {
|
|
@@ -3036,12 +3036,12 @@ ${t.summary}` : ""}`, l = Vt();
|
|
|
3036
3036
|
};
|
|
3037
3037
|
}, [o, l]), !n || !a ? t : (r == null ? void 0 : r.key) === o ? r.s : { state: "pending", retry: t.retry };
|
|
3038
3038
|
}
|
|
3039
|
-
function
|
|
3039
|
+
function Mc(t) {
|
|
3040
3040
|
return t != null && t.title && (t != null && t.summary) ? { state: "ready", title: t.title, summary: t.summary, retry: () => {
|
|
3041
3041
|
} } : { state: "unavailable", retry: () => {
|
|
3042
3042
|
} };
|
|
3043
3043
|
}
|
|
3044
|
-
function
|
|
3044
|
+
function fc({ s: t }) {
|
|
3045
3045
|
const [e, n] = L(!1), r = k(void 0);
|
|
3046
3046
|
D(() => () => window.clearTimeout(r.current), []);
|
|
3047
3047
|
const s = t.title ?? "", a = t.summary ?? "", o = () => {
|
|
@@ -3058,7 +3058,7 @@ ${a}`).catch(() => {
|
|
|
3058
3058
|
/* @__PURE__ */ M("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 8, minHeight: 24 }, children: [
|
|
3059
3059
|
/* @__PURE__ */ i(Lr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "SUMMARY" }),
|
|
3060
3060
|
t.state === "ready" && /* @__PURE__ */ M("button", { type: "button", className: "sumcopy", title: "Copy title and summary", style: { color: e ? "var(--brand)" : "var(--ink-70)" }, onClick: o, children: [
|
|
3061
|
-
/* @__PURE__ */ i(oe, { d: e ? X.check :
|
|
3061
|
+
/* @__PURE__ */ i(oe, { d: e ? X.check : Nc, size: 13, sw: 1.6 }),
|
|
3062
3062
|
e ? "Copied" : "Copy"
|
|
3063
3063
|
] })
|
|
3064
3064
|
] }),
|
|
@@ -3071,15 +3071,15 @@ ${a}`).catch(() => {
|
|
|
3071
3071
|
] })
|
|
3072
3072
|
] });
|
|
3073
3073
|
}
|
|
3074
|
-
function
|
|
3074
|
+
function pc({ ytId: t, title: e, timeLabel: n, radius: r, style: s, large: a, children: o, picture: l }) {
|
|
3075
3075
|
return /* @__PURE__ */ M("div", { className: "livevid", style: { ...r != null ? { borderRadius: r } : null, ...s }, children: [
|
|
3076
3076
|
/* @__PURE__ */ i(oe, { d: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", size: a ? 34 : 30, sw: 1.2 }),
|
|
3077
|
-
l ?? /* @__PURE__ */ i("iframe", { src:
|
|
3077
|
+
l ?? /* @__PURE__ */ i("iframe", { src: $l(t), title: e, referrerPolicy: "strict-origin-when-cross-origin", allow: "autoplay; encrypted-media; picture-in-picture" }),
|
|
3078
3078
|
n && /* @__PURE__ */ i("span", { className: "livevid__t", style: a ? { bottom: 10, right: 10 } : void 0, children: n }),
|
|
3079
3079
|
o
|
|
3080
3080
|
] });
|
|
3081
3081
|
}
|
|
3082
|
-
function
|
|
3082
|
+
function mc(t = !0, e) {
|
|
3083
3083
|
const n = k(null), r = e ?? n;
|
|
3084
3084
|
return D(() => {
|
|
3085
3085
|
const s = r.current;
|
|
@@ -3100,9 +3100,9 @@ function pc(t = !0, e) {
|
|
|
3100
3100
|
};
|
|
3101
3101
|
}, [t]), r;
|
|
3102
3102
|
}
|
|
3103
|
-
const
|
|
3104
|
-
function
|
|
3105
|
-
const [n, r] =
|
|
3103
|
+
const Nc = "M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75";
|
|
3104
|
+
function yc(t, e) {
|
|
3105
|
+
const [n, r] = yo(t), s = e.tabs.map((p) => p.key), a = e.tabbed !== !1, o = e.pinnable ?? s;
|
|
3106
3106
|
let l = n;
|
|
3107
3107
|
[...e.autoPin ?? []].reverse().forEach((p) => {
|
|
3108
3108
|
s.includes(p) && !l.includes(p) && !l.includes(`!${p}`) && (l = [p, ...l]);
|
|
@@ -3140,8 +3140,8 @@ function Nc(t, e) {
|
|
|
3140
3140
|
};
|
|
3141
3141
|
return { id: t, tabbed: a && g.length > 1, cur: h, seq: d, pinnable: o, tabKeys: g, stripTabs: e.tabs.filter((p) => g.includes(p.key)), panel: N, pin: m, unpin: y };
|
|
3142
3142
|
}
|
|
3143
|
-
function
|
|
3144
|
-
return
|
|
3143
|
+
function Tc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
3144
|
+
return wc(t), /* @__PURE__ */ M(Ce, { children: [
|
|
3145
3145
|
e.map((o) => {
|
|
3146
3146
|
const l = t.panel(o);
|
|
3147
3147
|
if (!l.show) return null;
|
|
@@ -3151,13 +3151,13 @@ function yc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
|
3151
3151
|
l.pill && /* @__PURE__ */ i("button", { type: "button", "data-pin-pill": "", className: `pinpill${l.pinned ? " is-on" : ""}`, title: l.title, "aria-label": l.title, "aria-pressed": l.pinned, onClick: l.toggle, children: /* @__PURE__ */ i(oe, { d: X.pin, size: 12, sw: 2 }) })
|
|
3152
3152
|
] }, o) : null;
|
|
3153
3153
|
}),
|
|
3154
|
-
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(
|
|
3154
|
+
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(ea, { tabs: t.stripTabs, current: t.cur, onPick: (o) => {
|
|
3155
3155
|
o !== "none" && (s ?? (() => {
|
|
3156
3156
|
}))(o);
|
|
3157
3157
|
}, fold: !1 }) })
|
|
3158
3158
|
] });
|
|
3159
3159
|
}
|
|
3160
|
-
function
|
|
3160
|
+
function wc(t) {
|
|
3161
3161
|
const e = k(t);
|
|
3162
3162
|
e.current = t;
|
|
3163
3163
|
const n = t.id;
|
|
@@ -3258,9 +3258,9 @@ function Tc(t) {
|
|
|
3258
3258
|
};
|
|
3259
3259
|
}, [n]);
|
|
3260
3260
|
}
|
|
3261
|
-
function
|
|
3262
|
-
const [o, l] =
|
|
3263
|
-
|
|
3261
|
+
function vc({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
|
|
3262
|
+
const [o, l] = wo(t), c = k(null), u = k(null);
|
|
3263
|
+
Lc(u), D(() => {
|
|
3264
3264
|
document.documentElement.style.setProperty("--colw", `${o}px`);
|
|
3265
3265
|
}, [o]);
|
|
3266
3266
|
const d = (h) => {
|
|
@@ -3284,7 +3284,7 @@ function wc({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
|
|
|
3284
3284
|
/* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...g }, children: s ? a : /* @__PURE__ */ i("div", { ref: u, "data-panel-grid": "", className: "panelgrid", children: a }) })
|
|
3285
3285
|
] });
|
|
3286
3286
|
}
|
|
3287
|
-
function
|
|
3287
|
+
function Lc(t) {
|
|
3288
3288
|
D(() => {
|
|
3289
3289
|
const e = t.current;
|
|
3290
3290
|
if (!e) return;
|
|
@@ -3312,11 +3312,11 @@ function vc(t) {
|
|
|
3312
3312
|
};
|
|
3313
3313
|
}, [t]);
|
|
3314
3314
|
}
|
|
3315
|
-
function
|
|
3315
|
+
function kc(t) {
|
|
3316
3316
|
return /\bwas not captured\b/i.test(t ?? "");
|
|
3317
3317
|
}
|
|
3318
|
-
const
|
|
3319
|
-
function
|
|
3318
|
+
const jc = 1500, zc = 3e5;
|
|
3319
|
+
function Ic(t) {
|
|
3320
3320
|
const e = Vt(), [n, r] = L(null), [s, a] = L(null), [o, l] = L(null), [c, u] = L(null), d = k(null), g = k(null), h = k(null), f = k(0), m = Ke(() => {
|
|
3321
3321
|
h.current && (clearTimeout(h.current), h.current = null), d.current && (d.current.pause(), d.current.removeAttribute("src"), d.current.load(), d.current = null), g.current && (URL.revokeObjectURL(g.current), g.current = null);
|
|
3322
3322
|
}, []), y = Ke(() => {
|
|
@@ -3348,13 +3348,13 @@ function zc(t) {
|
|
|
3348
3348
|
}
|
|
3349
3349
|
if (f.current !== b) return;
|
|
3350
3350
|
if (Y.status === 202 || Y.status === 503) {
|
|
3351
|
-
if (Date.now() - S >
|
|
3351
|
+
if (Date.now() - S > zc) {
|
|
3352
3352
|
l(null), u({ message: "This voice is still being fetched. Try it again in a moment." });
|
|
3353
3353
|
return;
|
|
3354
3354
|
}
|
|
3355
3355
|
l(p.id), h.current = setTimeout(() => {
|
|
3356
3356
|
B();
|
|
3357
|
-
},
|
|
3357
|
+
}, jc);
|
|
3358
3358
|
return;
|
|
3359
3359
|
}
|
|
3360
3360
|
if (!Y.ok) {
|
|
@@ -3379,13 +3379,13 @@ function zc(t) {
|
|
|
3379
3379
|
}, [t, m, e]);
|
|
3380
3380
|
return { armId: n, sampleId: s, dlId: o, error: c, clearError: () => u(null), arm: N, stop: y, reset: j };
|
|
3381
3381
|
}
|
|
3382
|
-
const xr = 0.05,
|
|
3382
|
+
const xr = 0.05, ta = (t, e) => {
|
|
3383
3383
|
let n = 0;
|
|
3384
3384
|
for (let r = 0; r < t.length; r++) t[r].start <= e + 1e-6 && (n = r);
|
|
3385
3385
|
return n;
|
|
3386
3386
|
};
|
|
3387
|
-
function
|
|
3388
|
-
const s = Math.max(0, e), a = r > 0 && s >= r - xr, o = t.length && t[0].start <= s + 1e-6 ?
|
|
3387
|
+
function bc(t, e, n, r) {
|
|
3388
|
+
const s = Math.max(0, e), a = r > 0 && s >= r - xr, o = t.length && t[0].start <= s + 1e-6 ? ta(t, s) : -1;
|
|
3389
3389
|
return o < 0 ? { t: s, playing: n && !a, sentenceId: null, offset: 0, ended: a } : { t: s, playing: n && !a, sentenceId: t[o].sentenceId ?? null, offset: Math.max(0, s - t[o].start), ended: a };
|
|
3390
3390
|
}
|
|
3391
3391
|
function An(t, e, n) {
|
|
@@ -3400,18 +3400,18 @@ function An(t, e, n) {
|
|
|
3400
3400
|
}
|
|
3401
3401
|
a = Math.max(0, Math.min(r, a));
|
|
3402
3402
|
const o = r > 0 && a >= r - xr && s < 0;
|
|
3403
|
-
return { t: a, playing: t.playing && !o, index: s >= 0 ? s :
|
|
3403
|
+
return { t: a, playing: t.playing && !o, index: s >= 0 ? s : ta(e, a) };
|
|
3404
3404
|
}
|
|
3405
|
-
function
|
|
3405
|
+
function Oc(t) {
|
|
3406
3406
|
return t.on ? t.want || t.relang ? "asked" : t.playing && (t.preparing || t.starting != null) ? "line" : null : null;
|
|
3407
3407
|
}
|
|
3408
|
-
const
|
|
3409
|
-
function
|
|
3408
|
+
const pi = "Preparing the voice…";
|
|
3409
|
+
function Cc(t) {
|
|
3410
3410
|
if (!t.lang) return null;
|
|
3411
3411
|
const e = t.langName;
|
|
3412
3412
|
return t.translateFailed === t.lang ? { kind: "translateFailed", lang: e } : t.voiceFailed ? { kind: "voiceFailed", lang: e } : t.translating ? { kind: "translating", lang: e } : t.starting != null ? { kind: "starting", lang: e, since: t.starting } : t.relang || t.slowLine ? { kind: "voice", lang: e, since: t.lineSince } : null;
|
|
3413
3413
|
}
|
|
3414
|
-
function
|
|
3414
|
+
function na(t, e) {
|
|
3415
3415
|
const [n, r] = L(null), [s, a] = L(!1);
|
|
3416
3416
|
return D(() => {
|
|
3417
3417
|
if (!t) {
|
|
@@ -3424,8 +3424,8 @@ function ea(t, e) {
|
|
|
3424
3424
|
return () => clearTimeout(l);
|
|
3425
3425
|
}, [t, e]), [s, n];
|
|
3426
3426
|
}
|
|
3427
|
-
const
|
|
3428
|
-
function
|
|
3427
|
+
const xc = (t) => `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
3428
|
+
function Sc({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
3429
3429
|
const [s, a] = L(() => Date.now());
|
|
3430
3430
|
D(() => {
|
|
3431
3431
|
if (t.since == null) return;
|
|
@@ -3458,7 +3458,7 @@ function xc({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
|
3458
3458
|
/* @__PURE__ */ M("div", { className: "pwait__head", children: [
|
|
3459
3459
|
l ? /* @__PURE__ */ i("div", { className: "pwait__mark", "aria-hidden": "true", children: /* @__PURE__ */ i(oe, { d: X.warnCircle, size: 18, sw: 1.8 }) }) : /* @__PURE__ */ i("div", { className: "pwait__spin", "aria-hidden": "true" }),
|
|
3460
3460
|
/* @__PURE__ */ i("div", { className: "pwait__t", children: c }),
|
|
3461
|
-
!l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children:
|
|
3461
|
+
!l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: xc(o) })
|
|
3462
3462
|
] }),
|
|
3463
3463
|
/* @__PURE__ */ i("div", { className: "pwait__note", children: u }),
|
|
3464
3464
|
!l && /* @__PURE__ */ i("div", { className: "pwait__bar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", {}) }),
|
|
@@ -3471,16 +3471,16 @@ function xc({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
|
3471
3471
|
}
|
|
3472
3472
|
);
|
|
3473
3473
|
}
|
|
3474
|
-
function
|
|
3474
|
+
function ra(t, e, n) {
|
|
3475
3475
|
var c;
|
|
3476
3476
|
const r = t[e], s = n && r.translations[n] && r.language !== n ? r.translations[n] : null;
|
|
3477
3477
|
if (!s && r.words.length) return r.words;
|
|
3478
|
-
const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l =
|
|
3479
|
-
return
|
|
3478
|
+
const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l = Ji(r, t[e + 1], r.start + Math.max(2, a.length * 0.4));
|
|
3479
|
+
return Vl(a, o, l).map((u, d) => ({ ...u, seq: r.seqs[0] ?? 0, idx: d }));
|
|
3480
3480
|
}
|
|
3481
|
-
function
|
|
3481
|
+
function mi(t, e, n) {
|
|
3482
3482
|
if (!t.engaged || e !== t.idx || !n.length) return null;
|
|
3483
|
-
if (!t.wordSync) return t.clipPos ?
|
|
3483
|
+
if (!t.wordSync) return t.clipPos ? Ai(n.map((a) => ({ t: a.text, sp: " " })), t.clipPos) : null;
|
|
3484
3484
|
const r = t.t;
|
|
3485
3485
|
let s = -1;
|
|
3486
3486
|
for (let a = 0; a < n.length && n[a].start <= r; a++) s = a;
|
|
@@ -3498,7 +3498,7 @@ function Bt(t, e, n) {
|
|
|
3498
3498
|
const r = (s = t == null ? void 0 : t.words[t.words.length - 1]) == null ? void 0 : s.end;
|
|
3499
3499
|
return r != null && r > e ? r : (t == null ? void 0 : t.end) != null && t.end > e ? t.end : n > e ? n : e + 4;
|
|
3500
3500
|
}
|
|
3501
|
-
function
|
|
3501
|
+
function Dc({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: u, lead: d, onTime: g, waiting: h = !1 }) {
|
|
3502
3502
|
const f = k(null), [m, y] = L(!1);
|
|
3503
3503
|
D(() => {
|
|
3504
3504
|
if (!h) {
|
|
@@ -3626,22 +3626,22 @@ function Sc({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3626
3626
|
] })
|
|
3627
3627
|
] });
|
|
3628
3628
|
}
|
|
3629
|
-
const
|
|
3629
|
+
const Ac = /* @__PURE__ */ M(Ce, { children: [
|
|
3630
3630
|
/* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
|
|
3631
3631
|
/* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
3632
|
-
] }),
|
|
3633
|
-
function
|
|
3632
|
+
] }), Ec = /* @__PURE__ */ i("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" });
|
|
3633
|
+
function _c({ player: t, size: e }) {
|
|
3634
3634
|
const n = t.muted ? "Unmute" : "Mute";
|
|
3635
3635
|
return /* @__PURE__ */ i("button", { type: "button", className: `mutebtn${e < 36 ? " mutebtn--sm" : e > 36 ? " mutebtn--lg" : ""}`, "aria-label": n, title: n, "aria-pressed": t.muted, onClick: t.toggleMute, children: /* @__PURE__ */ i(oe, { d: t.muted ? X.volumeOff : X.volume, size: 17, sw: 1.6, style: { color: t.muted ? "var(--ink-38)" : "var(--ink-70)" } }) });
|
|
3636
3636
|
}
|
|
3637
|
-
function
|
|
3637
|
+
function Yc() {
|
|
3638
3638
|
const [t, e] = L(""), n = k(null), r = Ke((s) => {
|
|
3639
3639
|
clearTimeout(n.current), e(s), n.current = setTimeout(() => e(""), 3e3);
|
|
3640
3640
|
}, []);
|
|
3641
3641
|
return D(() => () => clearTimeout(n.current), []), [t, r];
|
|
3642
3642
|
}
|
|
3643
|
-
const
|
|
3644
|
-
function
|
|
3643
|
+
const Uc = 0.2, Rc = 140, Pc = 320;
|
|
3644
|
+
function $c(t, e) {
|
|
3645
3645
|
const n = k(t);
|
|
3646
3646
|
n.current = t;
|
|
3647
3647
|
const r = k(0), s = k(1), a = Ke((o, l) => {
|
|
@@ -3655,13 +3655,13 @@ function Pc(t, e) {
|
|
|
3655
3655
|
d();
|
|
3656
3656
|
}, []);
|
|
3657
3657
|
D(() => {
|
|
3658
|
-
a(e ?
|
|
3658
|
+
a(e ? Uc : 1, e ? Rc : Pc);
|
|
3659
3659
|
}, [e, a]), D(() => () => {
|
|
3660
3660
|
cancelAnimationFrame(r.current), s.current = 1;
|
|
3661
3661
|
for (const o of n.current) o.setVolume(1);
|
|
3662
3662
|
}, []);
|
|
3663
3663
|
}
|
|
3664
|
-
function
|
|
3664
|
+
function Qc(t, e, n, r) {
|
|
3665
3665
|
var De;
|
|
3666
3666
|
const s = k(null), a = k(!1), o = k(!1), [l, c] = L(null), [u, d] = L(!0), g = k(!0), h = k(!1), [f, m] = L(0), y = k(0);
|
|
3667
3667
|
y.current = f;
|
|
@@ -3804,7 +3804,7 @@ function $c(t, e, n, r) {
|
|
|
3804
3804
|
setVolume: (Q) => Y("setVolume", [Math.round(Q * 100)])
|
|
3805
3805
|
}, lead: A, setVideoSound: we };
|
|
3806
3806
|
}
|
|
3807
|
-
function
|
|
3807
|
+
function Bc(t, e, n, r, s = 0, a = null) {
|
|
3808
3808
|
var E;
|
|
3809
3809
|
const o = k(null), [l, c] = L(!1), [u, d] = L(0), [g, h] = L(!1), f = k(g);
|
|
3810
3810
|
f.current = g;
|
|
@@ -3818,16 +3818,16 @@ function Qc(t, e, n, r, s = 0, a = null) {
|
|
|
3818
3818
|
c(!1), o.current = null;
|
|
3819
3819
|
return;
|
|
3820
3820
|
}
|
|
3821
|
-
const V =
|
|
3821
|
+
const V = xi(t), ce = b.current;
|
|
3822
3822
|
return V.preload = "metadata", V.muted = f.current || m.current, V.onplay = () => c(!0), V.onpause = () => c(!1), V.onended = () => c(!1), V.onloadedmetadata = () => {
|
|
3823
3823
|
p(!0), V.currentTime = ((x == null ? void 0 : x.t) ?? 0) + ce, x != null && x.playing && V.play().catch((W) => {
|
|
3824
3824
|
x.asked && (W == null ? void 0 : W.name) === "NotAllowedError" || j(zt(W));
|
|
3825
3825
|
});
|
|
3826
3826
|
}, V.onerror = () => {
|
|
3827
3827
|
c(!1);
|
|
3828
|
-
const W = V.error, ye =
|
|
3829
|
-
|
|
3830
|
-
|
|
3828
|
+
const W = V.error, ye = go(W, !1);
|
|
3829
|
+
oo(t).then((G) => {
|
|
3830
|
+
kc(G == null ? void 0 : G.message) || Oi(W), o.current === V && (j({ message: (G == null ? void 0 : G.message) ?? ye }), G != null && G.permanent || (o.current = null));
|
|
3831
3831
|
});
|
|
3832
3832
|
}, o.current = V, () => {
|
|
3833
3833
|
C.current = { t: Math.max(0, V.currentTime - ce), playing: !V.paused && !V.ended }, V.pause(), V.onplay = V.onpause = V.onended = V.onloadedmetadata = V.onerror = null, o.current = null;
|
|
@@ -3996,7 +3996,7 @@ function Qc(t, e, n, r, s = 0, a = null) {
|
|
|
3996
3996
|
}
|
|
3997
3997
|
};
|
|
3998
3998
|
}
|
|
3999
|
-
function
|
|
3999
|
+
function Vc(t, e, n, r, s, a, o = !1, l) {
|
|
4000
4000
|
const c = k(/* @__PURE__ */ new Set());
|
|
4001
4001
|
c.current = l ?? c.current;
|
|
4002
4002
|
const u = k(null), [d, g] = L(!1), [h, f] = L(0), [m, y] = L(0), [j, N] = L(!1), p = k(j);
|
|
@@ -4017,7 +4017,7 @@ function Bc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4017
4017
|
const q = Z.current.findIndex((se) => se.sentenceId === R);
|
|
4018
4018
|
q >= 0 && f(q);
|
|
4019
4019
|
}, U.onError = (R) => {
|
|
4020
|
-
g(U.playing), C(R instanceof
|
|
4020
|
+
g(U.playing), C(R instanceof Si ? { message: "The voice could not be started. Press Play to try again.", code: "voice_not_started" } : { message: "A line of this reading could not be played." });
|
|
4021
4021
|
}, U.gapBefore = (R, q) => {
|
|
4022
4022
|
if (!J.current) return 0;
|
|
4023
4023
|
const se = Z.current, de = se.find((Oe) => Oe.sentenceId === R), be = se.find((Oe) => Oe.sentenceId === q);
|
|
@@ -4110,7 +4110,7 @@ function Bc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4110
4110
|
return { from: q, span: Math.max(0, se - q) };
|
|
4111
4111
|
}, ge = $(G), ue = Math.max(0, Math.min(ge.span, Bt(e[G], ge.from, ge.from + 4) - ge.from)), ae = I ? I.t : o ? O != null && ie ? ge.from + Math.min(ge.span, O) : O != null ? K != null ? Math.min(ge.from, K + O) : ge.from + Math.min(ge.span, ue + O) : T && T.dur > 0 ? ge.from + Math.min(ue, T.t / T.dur * ue) : ge.from : T && T.dur > 0 ? ge.from + Math.min(ge.span, T.t / T.dur * ge.span) : ge.from;
|
|
4112
4112
|
D(() => {
|
|
4113
|
-
we.current = Ee.current ??
|
|
4113
|
+
we.current = Ee.current ?? bc(e, ae, d, Ie);
|
|
4114
4114
|
});
|
|
4115
4115
|
const fe = {
|
|
4116
4116
|
playing: d || Re,
|
|
@@ -4167,7 +4167,7 @@ function Bc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4167
4167
|
H(U), t.some((R) => R.sentenceId >= (U.sentenceId ?? 0)) && (H(null), Q.current(U));
|
|
4168
4168
|
},
|
|
4169
4169
|
seekFrac: (U) => {
|
|
4170
|
-
var ut,
|
|
4170
|
+
var ut, it, pt;
|
|
4171
4171
|
E();
|
|
4172
4172
|
const R = Math.max(0, Math.min(1, U)) * Ie;
|
|
4173
4173
|
let q = 0;
|
|
@@ -4182,10 +4182,10 @@ function Bc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4182
4182
|
}
|
|
4183
4183
|
const be = (se == null ? void 0 : se.sentenceId) ?? null, { from: Ne, span: Le } = $(q);
|
|
4184
4184
|
let Oe = Le > 0 ? Math.max(0, Math.min(1, (R - Ne) / Le)) : 0;
|
|
4185
|
-
const He = be != null ? (
|
|
4185
|
+
const He = be != null ? (it = je.current) == null ? void 0 : it[String(be)] : void 0, $e = He != null && He.length ? He[He.length - 1][1] : 0;
|
|
4186
4186
|
if (se && He && He.length === se.words.length && $e > 0) {
|
|
4187
4187
|
let Ge = 0;
|
|
4188
|
-
for (let
|
|
4188
|
+
for (let st = 0; st < se.words.length; st++) se.words[st].start <= R && (Ge = st);
|
|
4189
4189
|
const rt = se.words[Ge], gt = rt.end > rt.start ? Math.max(0, Math.min(1, (R - rt.start) / (rt.end - rt.start))) : 0;
|
|
4190
4190
|
Oe = Math.min(1, (He[Ge][0] + gt * (He[Ge][1] - He[Ge][0])) / $e);
|
|
4191
4191
|
}
|
|
@@ -4245,22 +4245,22 @@ function Bc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4245
4245
|
(q = fe.seekFrac) == null || q.call(fe, R.t / Ie), R.playing && he(Ae.current);
|
|
4246
4246
|
}, fe;
|
|
4247
4247
|
}
|
|
4248
|
-
const
|
|
4249
|
-
},
|
|
4250
|
-
function
|
|
4248
|
+
const Hc = () => {
|
|
4249
|
+
}, Wc = "The language this recording is read aloud in.", Fc = { title: "READ IN", note: "The transcript and its voice switch to this language." };
|
|
4250
|
+
function Zc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: g, hearOriginal: h = !1, timed: f = !1, stockVoices: m = !1, stickyPicker: y = !1, pickerBusy: j = null, voiceSheet: N, forcedVoice: p = null }) {
|
|
4251
4251
|
var pn, Rt, mn, rn;
|
|
4252
|
-
const { onAddVoice: b, onPickVoice: C, onSelectSpeaker: S, noCloneFor: B, castNoClone: Y, castShort: ee, castBuilding: I, castWarn: F, badge: A, titleNode: T } = N ?? {}, _ = !!N, O = !!(N != null && N.pendingClones), [te, K] =
|
|
4252
|
+
const { onAddVoice: b, onPickVoice: C, onSelectSpeaker: S, noCloneFor: B, castNoClone: Y, castShort: ee, castBuilding: I, castWarn: F, badge: A, titleNode: T } = N ?? {}, _ = !!N, O = !!(N != null && N.pendingClones), [te, K] = _i(), [v, ie] = L(null), [ne, Z] = L(!1), [J, pe] = L(!1), [le, Te] = L(!1), [je, Se] = L(!1), ve = u ?? l, we = u === null, Ee = u != null || v != null, De = ((P) => !!P && !!(o != null && o.voice.includes(P)))(we ? l : ve) ? we ? l : ve : "en", Q = Ic(De), H = (N == null ? void 0 : N.cloneOn) ?? !0, [E, x] = L(0), V = k(H);
|
|
4253
4253
|
D(() => {
|
|
4254
4254
|
V.current !== H && (V.current = H, x((P) => P + 1));
|
|
4255
4255
|
}, [H]);
|
|
4256
|
-
const ce =
|
|
4257
|
-
const P =
|
|
4256
|
+
const ce = ac(De, Ee || s || J, oc(e) * 1e3 + E, { id: t ?? null, shareCode: a.shareCode ?? null }), W = ze(() => ((ce == null ? void 0 : ce.voices) ?? []).filter((P) => _ || !P.cloned || P.speaker != null), [ce, _]), ye = W.length > 1, G = Cr(o, ve), ke = Gi(), Ie = ze(() => Yi(o, "translation"), [o]), [Fe, Ae] = L(null), [he] = L(() => /* @__PURE__ */ new Set()), [_e, Be] = L({}), $ = ze(() => tc(n, e, ke.vcUnknownSpk), [n, e, ke]), ge = ye && $.filter((P) => P.key >= 0).length > 1, ue = Fe != null && $.some((P) => P.key === Fe) ? Fe : ((pn = $[0]) == null ? void 0 : pn.key) ?? null, ae = ze(() => {
|
|
4257
|
+
const P = fi($, W, H);
|
|
4258
4258
|
for (const [xe, Qe] of Object.entries(_e[De ?? ""] ?? {})) P.set(Number(xe), Qe);
|
|
4259
4259
|
return P;
|
|
4260
|
-
}, [$, W, _e, De, H]), fe = ge && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => m && !fe ?
|
|
4260
|
+
}, [$, W, _e, De, H]), fe = ge && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => m && !fe ? fi($, W, !1) : null, [m, fe, $, W]), U = ze(() => fe ? gi(ae) || null : Ye && gi(Ye) || null, [fe, ae, Ye]), R = fe ? ae : Ye, q = W.some((P) => P.cloned && P.consent !== "pending"), se = !!ve && !!(o != null && o.voice.includes(ve)), de = se && !h, be = ze(
|
|
4261
4261
|
() => n.filter((P) => !P.suppressed && !P.unclear).map((P) => P.sentenceId).filter((P) => P != null),
|
|
4262
4262
|
[n]
|
|
4263
|
-
), Ne =
|
|
4263
|
+
), Ne = lc({ recordingId: t, lang: ve, ended: s, cred: a, pickedVoice: p || (U ?? v), sentenceIds: s && de ? be : void 0 }), Le = W.find((P) => P.id === v) ?? W.find((P) => {
|
|
4264
4264
|
var xe;
|
|
4265
4265
|
return P.id === ((xe = Ne.track) == null ? void 0 : xe.voice);
|
|
4266
4266
|
}) ?? W.find((P) => P.default) ?? W[0] ?? null, Oe = (Le == null ? void 0 : Le.id) ?? null;
|
|
@@ -4269,7 +4269,7 @@ function Fc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4269
4269
|
const P = setInterval(Ne.reload, 4e3);
|
|
4270
4270
|
return () => clearInterval(P);
|
|
4271
4271
|
}, [Ne.rendering, Ne.reload]);
|
|
4272
|
-
const He = `${t ?? ""}|${ve ?? ""}|${p || (U ?? v ?? ((Rt = Ne.track) == null ? void 0 : Rt.voiceKey) ?? "default")}`, $e =
|
|
4272
|
+
const He = `${t ?? ""}|${ve ?? ""}|${p || (U ?? v ?? ((Rt = Ne.track) == null ? void 0 : Rt.voiceKey) ?? "default")}`, $e = Vc(Ne.clips, n, r, He, he, (mn = Ne.track) == null ? void 0 : mn.wordTimes, f, Ne.coming);
|
|
4273
4273
|
D(() => {
|
|
4274
4274
|
var xe;
|
|
4275
4275
|
const P = (xe = n[$e.idx]) == null ? void 0 : xe.sentenceId;
|
|
@@ -4277,7 +4277,7 @@ function Fc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4277
4277
|
}, [$e.idx]), D(() => {
|
|
4278
4278
|
!je || !$e.has || (Se(!1), $e.playing || $e.toggle());
|
|
4279
4279
|
}, [je, $e.has]);
|
|
4280
|
-
const ut = Ne.rendering,
|
|
4280
|
+
const ut = Ne.rendering, it = ut ? null : Ne.failed ?? null, pt = !1, Ge = Ee && de, rt = Ee && !we && de && !(Ne.listed && Ne.listed.lang === ve && Ne.listed.recordingId === t), gt = {
|
|
4281
4281
|
...$e,
|
|
4282
4282
|
has: $e.has || Ge && s,
|
|
4283
4283
|
toggle: () => {
|
|
@@ -4290,7 +4290,7 @@ function Fc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4290
4290
|
pause: () => {
|
|
4291
4291
|
Se(!1), $e.pause();
|
|
4292
4292
|
}
|
|
4293
|
-
},
|
|
4293
|
+
}, st = () => Z(!0), Ve = () => {
|
|
4294
4294
|
Z(!1), pe(le), Te(!1);
|
|
4295
4295
|
}, hn = (P) => {
|
|
4296
4296
|
if (d(P), K(P), !((g || y) && !le)) {
|
|
@@ -4323,7 +4323,7 @@ function Fc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4323
4323
|
return;
|
|
4324
4324
|
}
|
|
4325
4325
|
ie(P);
|
|
4326
|
-
}, z = we ? { ...Cr(o, null), flag: /* @__PURE__ */ i(oe, { d: X.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : G, Vn = c ? g ? /* @__PURE__ */ i("span", { className: "barchip", style: lt ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(Un, { flag: z.flag, code: z.code, bordered: !1, onClick: Xt, flagOnly: !0, label: z.label }) }) : /* @__PURE__ */ i(Un, { flag: z.flag, code: z.code, bordered: !1, onClick:
|
|
4326
|
+
}, z = we ? { ...Cr(o, null), flag: /* @__PURE__ */ i(oe, { d: X.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : G, Vn = c ? g ? /* @__PURE__ */ i("span", { className: "barchip", style: lt ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(Un, { flag: z.flag, code: z.code, bordered: !1, onClick: Xt, flagOnly: !0, label: z.label }) }) : /* @__PURE__ */ i(Un, { flag: z.flag, code: z.code, bordered: !1, onClick: st, flagOnly: !0, label: z.label }) : null, At = X.voiceClone, Et = Ee && (!!Ne.track || ut), _t = it ? "var(--conf-low)" : Et || g && at ? "var(--brand)" : "var(--ink-55)", Ht = Oc({ on: Ee, want: je, relang: rt, playing: $e.playing, preparing: !!$e.preparing, starting: $e.starting }), [Mn] = na(Ht === "line", 400), qe = Ht === "asked" || Ht === "line" && Mn, ot = ut || qe, en = Ht === "asked" ? pi : $e.preparing ? `Speaking this line in ${(Le == null ? void 0 : Le.name) ?? "this voice"}…` : ut ? `Preparing this recording in ${(Le == null ? void 0 : Le.name) ?? "this voice"} — it will play as soon as it is ready` : it ? `This voice could not be prepared: ${it}` : se ? ye ? "Choose a voice" : Le ? Le.name : ke.vcNoVoice + G.label : `${ke.vcNoVoice}${G.label}`, mt = /* @__PURE__ */ i(vo, { open: ne, onClose: Ve, keepOpen: (!!g || y) && !le, value: we ? null : ve, onSelect: hn, languages: Ie, title: (g == null ? void 0 : g.title) ?? "SPOKEN LANGUAGE", note: (g == null ? void 0 : g.note) ?? Wc, searchPlaceholder: ke.search, none: "Original", pinned: (we ? l : ve) ? [we ? l : ve] : [], recent: te, requireVoice: le, sticky: y, busy: j }), Mt = ze(() => W.filter((P) => P.cloned && !P.auto), [W]), Wt = (P) => P.voiceId ? Mt.find((xe) => xe.id === `clone:${P.voiceId}`) ?? null : null, dt = ze(() => $.filter((P) => P.key >= 0), [$]), tn = ze(() => {
|
|
4327
4327
|
const P = W.filter((Qe) => !Qe.cloned);
|
|
4328
4328
|
if (!ge) return [...P, ...s && dt.length === 1 ? Mt.filter((Qe) => Qe.id === `clone:${dt[0].voiceId}`) : []];
|
|
4329
4329
|
const xe = [];
|
|
@@ -4336,16 +4336,16 @@ function Fc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4336
4336
|
}, [W, Mt, ge, dt, O, s]), ct = ge ? dt.find((P) => P.key === ue) ?? null : null, nn = (P) => {
|
|
4337
4337
|
var xe;
|
|
4338
4338
|
return P ? ((xe = W.find((Qe) => Qe.id === P)) == null ? void 0 : xe.gender) ?? null : null;
|
|
4339
|
-
}, It = ct ? ct.sex ?? nn(ae.get(ct.key)) : null, Ze = ze(() => ct ? tn.filter((P) => P.cloned ? P.live ? P.speaker === ct.key : P.id === `clone:${ct.voiceId}` : !0) : tn, [tn, ct, It, dt]), Yt = (P) => W.find((xe) => xe.cloned && xe.auto && xe.speaker === P) ?? null, wt = { people: dt, gvList: W, autoOf: Yt, savedFor: Wt }, Ut = (A == null ? void 0 : A(wt)) ?? 0, et = F ? dt.map((P) => F(P, wt)).filter((P) => !!P) : [], fn = /* @__PURE__ */ M("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": g ? at : void 0, "aria-busy": ot || void 0, title: ot ||
|
|
4339
|
+
}, It = ct ? ct.sex ?? nn(ae.get(ct.key)) : null, Ze = ze(() => ct ? tn.filter((P) => P.cloned ? P.live ? P.speaker === ct.key : P.id === `clone:${ct.voiceId}` : !0) : tn, [tn, ct, It, dt]), Yt = (P) => W.find((xe) => xe.cloned && xe.auto && xe.speaker === P) ?? null, wt = { people: dt, gvList: W, autoOf: Yt, savedFor: Wt }, Ut = (A == null ? void 0 : A(wt)) ?? 0, et = F ? dt.map((P) => F(P, wt)).filter((P) => !!P) : [], fn = /* @__PURE__ */ M("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": g ? at : void 0, "aria-busy": ot || void 0, title: ot || it ? en : void 0, style: { cursor: "pointer", background: Et || ot || g && at ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: g && at ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: g ? re : Dt, children: [
|
|
4340
4340
|
/* @__PURE__ */ i(oe, { d: At, size: 17, sw: 1.6, style: { color: _t } }),
|
|
4341
4341
|
ot && /* @__PURE__ */ i("span", { "aria-hidden": "true", style: { position: "absolute", inset: 0, boxSizing: "border-box", borderRadius: "50%", border: "2px solid var(--fill-12)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite", pointerEvents: "none" } }),
|
|
4342
4342
|
et.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: et.join(" · "), children: "!" }) : !!Ut && /* @__PURE__ */ i("span", { className: "txvoice__n", title: `${Ut} speaker${Ut === 1 ? "" : "s"} can get a cloned voice`, children: Ut })
|
|
4343
4343
|
] }), bt = /* @__PURE__ */ i(Jt, { open: J, onClose: Je, title: ke.vcSheet, titleNode: T, doneLabel: ke.done, children: /* @__PURE__ */ i(
|
|
4344
|
-
|
|
4344
|
+
rc,
|
|
4345
4345
|
{
|
|
4346
4346
|
t: ke,
|
|
4347
4347
|
cast: ge && /* @__PURE__ */ i(
|
|
4348
|
-
|
|
4348
|
+
nc,
|
|
4349
4349
|
{
|
|
4350
4350
|
t: ke,
|
|
4351
4351
|
roster: $,
|
|
@@ -4391,9 +4391,9 @@ function Fc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4391
4391
|
) }), Hn = g ? null : /* @__PURE__ */ M(Ce, { children: [
|
|
4392
4392
|
mt,
|
|
4393
4393
|
bt
|
|
4394
|
-
] }), Wn = g && (ne || J) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? mt : bt }) : null, Ot = Ge ?
|
|
4394
|
+
] }), Wn = g && (ne || J) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? mt : bt }) : null, Ot = Ge ? it ? `This voice could not be prepared: ${it}` : qe && (je || $e.playing) ? pi : null : null, Fn = pt;
|
|
4395
4395
|
return {
|
|
4396
|
-
barChip: { flag: z.flag, code: z.code, label: z.label, onClick: g || y ? Xt :
|
|
4396
|
+
barChip: { flag: z.flag, code: z.code, label: z.label, onClick: g || y ? Xt : st, active: !!((g || y) && lt), can: c },
|
|
4397
4397
|
sheetsOpen: ne || J,
|
|
4398
4398
|
on: Ge,
|
|
4399
4399
|
player: gt,
|
|
@@ -4413,7 +4413,7 @@ function Fc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4413
4413
|
error: Q.error,
|
|
4414
4414
|
clearError: () => Q.clearError(),
|
|
4415
4415
|
openVoices: Dt,
|
|
4416
|
-
openPicker:
|
|
4416
|
+
openPicker: st,
|
|
4417
4417
|
original: we,
|
|
4418
4418
|
reloadVoices: () => x((P) => P + 1),
|
|
4419
4419
|
voicesVer: E,
|
|
@@ -4443,11 +4443,11 @@ function Fc({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4443
4443
|
langList: { value: we ? null : ve, onSelect: hn, languages: Ie, searchPlaceholder: ke.search, none: "Original", pinned: (we ? l : ve) ? [we ? l : ve] : [], recent: te }
|
|
4444
4444
|
};
|
|
4445
4445
|
}
|
|
4446
|
-
function
|
|
4446
|
+
function Gc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: g = !0, tail: h, tailFg: f, running: m, desk: y, feedRef: j, listener: N, showLabels: p, find: b, findOpen: C, lang: S, warm: B, onVisible: Y, wordHl: ee = !0 }) {
|
|
4447
4447
|
const { playing: I, engaged: F, t: A, idx: T, seekN: _, wordSync: O, clipPos: te } = n;
|
|
4448
|
-
|
|
4448
|
+
mc(!0, j);
|
|
4449
4449
|
const K = k(null);
|
|
4450
|
-
|
|
4450
|
+
Hl(j, K);
|
|
4451
4451
|
const [v, ie] = L(null), ne = (b ?? "").trim().toLowerCase(), [Z, J] = L(0), pe = k(0), le = k(null), Te = k(T), je = (H) => {
|
|
4452
4452
|
var E;
|
|
4453
4453
|
return ((E = j.current) == null ? void 0 : E.querySelector(`[data-tx-row="${H}"]`)) ?? null;
|
|
@@ -4525,27 +4525,27 @@ function Zc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4525
4525
|
"Now playing"
|
|
4526
4526
|
] }) });
|
|
4527
4527
|
return /* @__PURE__ */ M("div", { ref: j, "data-tx-feed": "1", className: `txfeed${y ? " txfeed--desk" : ""}${C && !m ? " is-find" : ""}`, children: [
|
|
4528
|
-
/* @__PURE__ */ i(
|
|
4528
|
+
/* @__PURE__ */ i(Wl, { thumbRef: K }),
|
|
4529
4529
|
I && Z === -1 && Q("up"),
|
|
4530
4530
|
e.map((H, E) => {
|
|
4531
4531
|
var ge;
|
|
4532
4532
|
const x = I && E === T, V = F && E === T, ce = !!u && u === H.id, W = ne && !H.text.toLowerCase().includes(ne) && !(S && ((ge = H.translations[S]) != null && ge.toLowerCase().includes(ne))) ? 0.22 : !F || E <= T || ce ? 1 : 0.38, ye = N ? () => n.playRow(E) : c && l ? () => {
|
|
4533
4533
|
I && !x && n.seekRow(E), l(H);
|
|
4534
|
-
} : I && x ? void 0 : () => n.playRow(E), G = N ? null :
|
|
4534
|
+
} : I && x ? void 0 : () => n.playRow(E), G = N ? null : Gl(H, s, r), ke = !!G && (G.script > 0 || G.manual), Ie = y && !!a && v === H.id && !!G && !ke, Fe = Rr(t, H.speaker), Ae = Pr(t, H.speaker), he = Ae.lane, _e = S && H.translations[S] && H.language !== S ? H.translations[S] : null, Be = ra(e, E, S), $ = V && !O && te ? Ai(Be.map((ue) => ({ t: ue.text, sp: " " })), te) : null;
|
|
4535
4535
|
return /* @__PURE__ */ M("div", { "data-tx-row": E, "data-sentence": H.sentenceId, className: `txline${B ? " txline--warm" : ""}${ce ? " txline--fixing" : ""}`, "aria-current": ce || void 0, style: { opacity: W }, onClick: ye, onMouseEnter: y && a ? () => ie(H.id) : void 0, onMouseLeave: y && a ? () => ie(null) : void 0, children: [
|
|
4536
4536
|
/* @__PURE__ */ M("div", { className: "txline__meta", children: [
|
|
4537
4537
|
/* @__PURE__ */ i("span", { className: "txline__at", children: kt(H.start) }),
|
|
4538
4538
|
p && H.speaker >= 0 && /* @__PURE__ */ M(Ce, { children: [
|
|
4539
|
-
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${he}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children:
|
|
4539
|
+
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${he}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: Bi(t, H.speaker) }),
|
|
4540
4540
|
/* @__PURE__ */ i("span", { className: `txline__who lane-${he}`, style: Ae.fg ? { color: Ae.fg } : void 0, children: Fe }),
|
|
4541
|
-
Ae.hasVoice && /* @__PURE__ */ i(
|
|
4541
|
+
Ae.hasVoice && /* @__PURE__ */ i(Xi, { color: Ae.fg ?? `var(--lane-${he})` })
|
|
4542
4542
|
] }),
|
|
4543
4543
|
x && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(oe, { d: X.headphones, size: y ? 15 : 14, sw: 1.6, stroke: p && H.speaker >= 0 ? Ae.fg ?? `var(--lane-${he})` : "var(--ink-45)" }) }),
|
|
4544
|
-
G && g && /* @__PURE__ */ i(
|
|
4545
|
-
Ie && /* @__PURE__ */ i(
|
|
4544
|
+
G && g && /* @__PURE__ */ i(ql, { f: G, desk: y, onOpen: a ? () => a(H, !0) : void 0 }),
|
|
4545
|
+
Ie && /* @__PURE__ */ i(Kl, { alone: !0, onOpen: () => a == null ? void 0 : a(H, !1) })
|
|
4546
4546
|
] }),
|
|
4547
4547
|
/* @__PURE__ */ i("div", { className: "txline__text", children: Be.map((ue, ae) => {
|
|
4548
|
-
const fe = `${ue.seq}:${ue.idx}`, Ye =
|
|
4548
|
+
const fe = `${ue.seq}:${ue.idx}`, Ye = pl(ue.prob), U = V && ee, R = U && (O ? A >= ue.start && (A < ue.end || ae === Be.length - 1 || A < Be[ae + 1].start) : ae === $), q = U && !R && (O ? ue.start > A : $ != null && ae > $), se = !_e && !N && (!!(r != null && r.has(fe)) || !!ue.script), de = !_e && !N && d && !!Ye && !se, be = de ? Ye === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, Ne = se ? "var(--brand)" : q ? "var(--ink-40)" : be ?? "var(--ink-96)";
|
|
4549
4549
|
return /* @__PURE__ */ M("span", { children: [
|
|
4550
4550
|
/* @__PURE__ */ i(
|
|
4551
4551
|
"span",
|
|
@@ -4581,7 +4581,7 @@ function Zc({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4581
4581
|
I && Z === 1 && Q("down")
|
|
4582
4582
|
] });
|
|
4583
4583
|
}
|
|
4584
|
-
function
|
|
4584
|
+
function qc({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, flash: l }) {
|
|
4585
4585
|
return /* @__PURE__ */ i("div", { className: o ? "searchbar searchbar--inline" : `searchbar searchbar--float${a ? " searchbar--desk" : ""}${t ? "" : " is-hidden"}`, children: /* @__PURE__ */ M("div", { children: [
|
|
4586
4586
|
/* @__PURE__ */ i(oe, { d: X.search, size: 16, sw: 1.7, style: { color: "var(--ink-45)", flex: "none" } }),
|
|
4587
4587
|
/* @__PURE__ */ i("input", { value: e, onChange: (c) => n(c.target.value), onKeyDown: (c) => {
|
|
@@ -4595,7 +4595,7 @@ function Gc({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, fl
|
|
|
4595
4595
|
e.trim() && /* @__PURE__ */ i("button", { type: "button", className: "searchbar__x", onClick: () => n(""), "aria-label": "Clear", title: "Clear", children: /* @__PURE__ */ i(oe, { d: X.close, size: 15, sw: 1.7 }) })
|
|
4596
4596
|
] }) });
|
|
4597
4597
|
}
|
|
4598
|
-
function
|
|
4598
|
+
function Kc(t, e, n, r, s) {
|
|
4599
4599
|
const a = k(n);
|
|
4600
4600
|
a.current = n;
|
|
4601
4601
|
const o = k(r);
|
|
@@ -4625,7 +4625,7 @@ function qc(t, e, n, r, s) {
|
|
|
4625
4625
|
}, []), l;
|
|
4626
4626
|
}
|
|
4627
4627
|
const un = { formatBits: 0, perBlock: [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28], blocks: [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49] };
|
|
4628
|
-
function
|
|
4628
|
+
function sa(t) {
|
|
4629
4629
|
let e = (16 * t + 128) * t + 64;
|
|
4630
4630
|
if (t >= 2) {
|
|
4631
4631
|
const n = Math.floor(t / 7) + 2;
|
|
@@ -4633,14 +4633,14 @@ function na(t) {
|
|
|
4633
4633
|
}
|
|
4634
4634
|
return e;
|
|
4635
4635
|
}
|
|
4636
|
-
const
|
|
4636
|
+
const Ni = (t) => Math.floor(sa(t) / 8) - un.perBlock[t] * un.blocks[t];
|
|
4637
4637
|
function Sr(t, e) {
|
|
4638
4638
|
let n = 0;
|
|
4639
4639
|
for (let r = 7; r >= 0; r--)
|
|
4640
4640
|
n = n << 1 ^ (n >>> 7) * 285, n ^= (e >>> r & 1) * t;
|
|
4641
4641
|
return n;
|
|
4642
4642
|
}
|
|
4643
|
-
function
|
|
4643
|
+
function Jc(t) {
|
|
4644
4644
|
const e = new Array(t).fill(0);
|
|
4645
4645
|
e[t - 1] = 1;
|
|
4646
4646
|
let n = 1;
|
|
@@ -4650,7 +4650,7 @@ function Kc(t) {
|
|
|
4650
4650
|
}
|
|
4651
4651
|
return e;
|
|
4652
4652
|
}
|
|
4653
|
-
function
|
|
4653
|
+
function Xc(t, e) {
|
|
4654
4654
|
const n = new Array(e.length).fill(0);
|
|
4655
4655
|
for (const r of t) {
|
|
4656
4656
|
const s = r ^ n.shift();
|
|
@@ -4660,19 +4660,19 @@ function Jc(t, e) {
|
|
|
4660
4660
|
}
|
|
4661
4661
|
return n;
|
|
4662
4662
|
}
|
|
4663
|
-
function
|
|
4663
|
+
function eu(t) {
|
|
4664
4664
|
if (t === 1) return [];
|
|
4665
4665
|
const e = Math.floor(t / 7) + 2, n = t * 4 + 17, r = t === 32 ? 26 : Math.ceil((t * 4 + 4) / (e * 2 - 2)) * 2, s = [6];
|
|
4666
4666
|
for (let a = n - 7; s.length < e; a -= r) s.splice(1, 0, a);
|
|
4667
4667
|
return s;
|
|
4668
4668
|
}
|
|
4669
|
-
function
|
|
4669
|
+
function tu(t) {
|
|
4670
4670
|
const e = Array.from(new TextEncoder().encode(t));
|
|
4671
4671
|
let n = 1;
|
|
4672
|
-
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <=
|
|
4672
|
+
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= Ni(n) * 8); n++)
|
|
4673
4673
|
;
|
|
4674
4674
|
if (n > 40) throw new Error("Text too long for a QR code");
|
|
4675
|
-
const r = n * 4 + 17, s =
|
|
4675
|
+
const r = n * 4 + 17, s = Ni(n) * 8, a = [], o = (T, _) => {
|
|
4676
4676
|
for (let O = _ - 1; O >= 0; O--) a.push(T >>> O & 1);
|
|
4677
4677
|
};
|
|
4678
4678
|
o(4, 4), o(e.length, n <= 9 ? 8 : 16);
|
|
@@ -4681,11 +4681,11 @@ function eu(t) {
|
|
|
4681
4681
|
for (let T = 236; a.length < s; T ^= 253) o(T, 8);
|
|
4682
4682
|
const l = [];
|
|
4683
4683
|
for (let T = 0; T < a.length; T += 8) l.push(a.slice(T, T + 8).reduce((_, O) => _ << 1 | O, 0));
|
|
4684
|
-
const c = un.blocks[n], u = un.perBlock[n], d = Math.floor(
|
|
4684
|
+
const c = un.blocks[n], u = un.perBlock[n], d = Math.floor(sa(n) / 8), g = c - d % c, h = Math.floor(d / c), f = [], m = Jc(u);
|
|
4685
4685
|
for (let T = 0, _ = 0; T < c; T++) {
|
|
4686
4686
|
const O = l.slice(_, _ + h - u + (T < g ? 0 : 1));
|
|
4687
4687
|
_ += O.length;
|
|
4688
|
-
const te =
|
|
4688
|
+
const te = Xc(O, m);
|
|
4689
4689
|
T < g && O.push(0), f.push(O.concat(te));
|
|
4690
4690
|
}
|
|
4691
4691
|
const y = [];
|
|
@@ -4704,7 +4704,7 @@ function eu(t) {
|
|
|
4704
4704
|
}
|
|
4705
4705
|
};
|
|
4706
4706
|
b(3, 3), b(r - 4, 3), b(3, r - 4);
|
|
4707
|
-
const C =
|
|
4707
|
+
const C = eu(n);
|
|
4708
4708
|
for (let T = 0; T < C.length; T++) for (let _ = 0; _ < C.length; _++)
|
|
4709
4709
|
if (!(T === 0 && _ === 0 || T === 0 && _ === C.length - 1 || T === C.length - 1 && _ === 0))
|
|
4710
4710
|
for (let O = -2; O <= 2; O++) for (let te = -2; te <= 2; te++) p(C[T] + te, C[_] + O, Math.max(Math.abs(te), Math.abs(O)) !== 1);
|
|
@@ -4791,30 +4791,30 @@ function eu(t) {
|
|
|
4791
4791
|
}
|
|
4792
4792
|
return ee(F), S(F), j;
|
|
4793
4793
|
}
|
|
4794
|
-
function
|
|
4795
|
-
const e =
|
|
4794
|
+
function nu(t) {
|
|
4795
|
+
const e = tu(t), n = e.length, r = 2;
|
|
4796
4796
|
let s = "";
|
|
4797
4797
|
for (let o = 0; o < n; o++) for (let l = 0; l < n; l++) e[o][l] && (s += `M${l} ${o}h1v1h-1z`);
|
|
4798
4798
|
const a = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${-r} ${-r} ${n + r * 2} ${n + r * 2}" shape-rendering="crispEdges"><rect x="${-r}" y="${-r}" width="${n + r * 2}" height="${n + r * 2}" fill="#fff"/><path fill="#111" d="${s}"/></svg>`;
|
|
4799
4799
|
return `data:image/svg+xml,${encodeURIComponent(a)}`;
|
|
4800
4800
|
}
|
|
4801
|
-
const
|
|
4801
|
+
const ia = "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15", ru = "M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25";
|
|
4802
4802
|
function yr() {
|
|
4803
4803
|
const t = document;
|
|
4804
4804
|
return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
|
|
4805
4805
|
}
|
|
4806
|
-
let
|
|
4807
|
-
function
|
|
4808
|
-
|
|
4806
|
+
let Vr = null;
|
|
4807
|
+
function yi(t) {
|
|
4808
|
+
Vr = t;
|
|
4809
4809
|
}
|
|
4810
|
-
function
|
|
4810
|
+
function Ti() {
|
|
4811
4811
|
const t = document;
|
|
4812
4812
|
return !!(t.fullscreenEnabled || t.webkitFullscreenEnabled);
|
|
4813
4813
|
}
|
|
4814
|
-
function
|
|
4814
|
+
function su() {
|
|
4815
4815
|
var e;
|
|
4816
4816
|
if (typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches)) return !1;
|
|
4817
|
-
const t =
|
|
4817
|
+
const t = Vr ?? document.documentElement;
|
|
4818
4818
|
return !t.requestFullscreen && !t.webkitRequestFullscreen;
|
|
4819
4819
|
}
|
|
4820
4820
|
function on(t) {
|
|
@@ -4824,7 +4824,7 @@ function on(t) {
|
|
|
4824
4824
|
function En(t) {
|
|
4825
4825
|
var s, a, o, l;
|
|
4826
4826
|
if (typeof document > "u") return;
|
|
4827
|
-
const e = document, n =
|
|
4827
|
+
const e = document, n = Vr ?? document.documentElement, r = e.fullscreenElement ?? e.webkitFullscreenElement;
|
|
4828
4828
|
try {
|
|
4829
4829
|
t && !r && ((a = (s = n.requestFullscreen ?? n.webkitRequestFullscreen) == null ? void 0 : s.call(n, { navigationUI: "hide" })) == null || a.catch(() => {
|
|
4830
4830
|
})), !t && r && ((l = (o = e.exitFullscreen ?? e.webkitExitFullscreen) == null ? void 0 : o.call(e)) == null || l.catch(() => {
|
|
@@ -4832,7 +4832,7 @@ function En(t) {
|
|
|
4832
4832
|
} catch {
|
|
4833
4833
|
}
|
|
4834
4834
|
}
|
|
4835
|
-
function
|
|
4835
|
+
function iu(t) {
|
|
4836
4836
|
const [e, n] = L(() => {
|
|
4837
4837
|
var r;
|
|
4838
4838
|
return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, t).matches);
|
|
@@ -4884,7 +4884,7 @@ function _n({ pos: t, interactive: e, axis: n = "x" }) {
|
|
|
4884
4884
|
/* @__PURE__ */ i("span", { className: "gfull__t gfull__end", style: { color: t.live ? "#ec634d" : "rgba(234,236,250,.6)" }, children: t.endLabel })
|
|
4885
4885
|
] });
|
|
4886
4886
|
}
|
|
4887
|
-
function
|
|
4887
|
+
function Fu({ pos: t }) {
|
|
4888
4888
|
const [e, n] = L(null), r = (l) => {
|
|
4889
4889
|
const c = l.currentTarget.getBoundingClientRect();
|
|
4890
4890
|
return Math.min(1, Math.max(0, (l.clientX - c.left) / Math.max(1, c.width)));
|
|
@@ -4938,7 +4938,7 @@ function Yn({ t, mini: e }) {
|
|
|
4938
4938
|
disabled: !t.playable,
|
|
4939
4939
|
style: { background: t.playable ? t.playing ? "rgba(238,240,248,.92)" : "var(--brand)" : "rgba(5,6,21,.42)", color: t.playable ? t.playing ? "#131326" : "var(--brand-ink)" : "rgba(234,236,250,.5)", cursor: t.playable ? "pointer" : "default" },
|
|
4940
4940
|
onClick: t.onPlay,
|
|
4941
|
-
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(
|
|
4941
|
+
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(to, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(dn, { size: e ? 15 : 19 })
|
|
4942
4942
|
}
|
|
4943
4943
|
),
|
|
4944
4944
|
/* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Next line", title: "Next line", style: { opacity: t.nextOn ? 1 : 0.3 }, onClick: t.onNext, children: /* @__PURE__ */ i(oe, { d: X.chevronRight, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) })
|
|
@@ -4946,7 +4946,7 @@ function Yn({ t, mini: e }) {
|
|
|
4946
4946
|
}
|
|
4947
4947
|
function Dr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
4948
4948
|
return /* @__PURE__ */ M("div", { className: `gfull__brand${s ? " gfull__brand--mark" : ""}`, children: [
|
|
4949
|
-
/* @__PURE__ */ i("a", { href:
|
|
4949
|
+
/* @__PURE__ */ i("a", { href: Ii, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ i(Ar, { dark: !0, size: 22 }) : /* @__PURE__ */ i(Qn, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
|
|
4950
4950
|
t && /* @__PURE__ */ M("span", { className: "gfull__live", children: [
|
|
4951
4951
|
/* @__PURE__ */ i("i", {}),
|
|
4952
4952
|
"LIVE"
|
|
@@ -4954,13 +4954,13 @@ function Dr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
|
4954
4954
|
r != null && /* @__PURE__ */ i("span", { className: "gfull__txpct", title: "Still being transcribed: it plays as far as it is written", children: `TRANSCRIBING ${r}%` })
|
|
4955
4955
|
] });
|
|
4956
4956
|
}
|
|
4957
|
-
function
|
|
4957
|
+
function aa({ v: t, size: e }) {
|
|
4958
4958
|
return /* @__PURE__ */ M("button", { type: "button", className: "gfull__btn", "aria-label": "Voices", "aria-busy": t.busy || void 0, title: t.busy ? "Preparing the voice…" : t.title, disabled: !t.on, style: { position: "relative", opacity: t.on || t.busy ? 1 : 0.45, cursor: t.on ? "pointer" : "default" }, onClick: t.on ? t.onClick : void 0, children: [
|
|
4959
4959
|
/* @__PURE__ */ i(oe, { d: X.headphones, size: e, sw: 1.6 }),
|
|
4960
4960
|
t.busy && /* @__PURE__ */ i("span", { "aria-hidden": "true", style: { position: "absolute", inset: 0, boxSizing: "border-box", borderRadius: "50%", border: "2px solid var(--fill-12)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite", pointerEvents: "none" } })
|
|
4961
4961
|
] });
|
|
4962
4962
|
}
|
|
4963
|
-
function
|
|
4963
|
+
function au({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, copied: o }) {
|
|
4964
4964
|
return /* @__PURE__ */ M("div", { className: "gmini", "data-theme": "dark", children: [
|
|
4965
4965
|
/* @__PURE__ */ i("div", { className: "gmini__shade", "aria-hidden": "true" }),
|
|
4966
4966
|
/* @__PURE__ */ i("div", { className: "gmini__top", children: /* @__PURE__ */ i(Dr, { live: t.live, mini: !0 }) }),
|
|
@@ -4970,18 +4970,18 @@ function iu({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, c
|
|
|
4970
4970
|
/* @__PURE__ */ i(Yn, { t: e, mini: !0 }),
|
|
4971
4971
|
/* @__PURE__ */ i("span", { style: { flex: 1 } }),
|
|
4972
4972
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: n }),
|
|
4973
|
-
/* @__PURE__ */ i(
|
|
4973
|
+
/* @__PURE__ */ i(aa, { v: r, size: 14 }),
|
|
4974
4974
|
s && /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Share", title: "Share", onClick: (l) => {
|
|
4975
4975
|
l.stopPropagation(), s();
|
|
4976
4976
|
}, children: /* @__PURE__ */ i(oe, { d: X.share, size: 13, sw: 1.8 }) }),
|
|
4977
|
-
/* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d:
|
|
4977
|
+
/* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d: ia, size: 14, sw: 1.8 }) })
|
|
4978
4978
|
] })
|
|
4979
4979
|
] }),
|
|
4980
4980
|
o
|
|
4981
4981
|
] });
|
|
4982
4982
|
}
|
|
4983
|
-
const
|
|
4984
|
-
function
|
|
4983
|
+
const ou = { color: "rgba(255,255,255,.4)" };
|
|
4984
|
+
function oa({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title: s, desk: a, pos: o, sub: l, wait: c, pct: u, mute: d, cc: g, ad: h, chip: f, transport: m, picker: y, sheet: j, voices: N, voicesBtn: p, sheetOpen: b, onShare: C, onSettings: S, paused: B, copied: Y, onTouch: ee, onClose: I }) {
|
|
4985
4985
|
const [F, A] = L(() => !!yr());
|
|
4986
4986
|
D(() => {
|
|
4987
4987
|
const $ = () => A(!!yr());
|
|
@@ -5007,7 +5007,7 @@ function ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5007
5007
|
}), ue && ae && (ue.content = ae);
|
|
5008
5008
|
};
|
|
5009
5009
|
}, []);
|
|
5010
|
-
const ne = ze(() => n &&
|
|
5010
|
+
const ne = ze(() => n && su(), [n]), [Z, J] = L(ne);
|
|
5011
5011
|
D(() => {
|
|
5012
5012
|
if (!n) return;
|
|
5013
5013
|
const $ = [document.documentElement, document.body], ge = $.map((fe) => [fe.style.overflow, fe.style.overscrollBehavior]);
|
|
@@ -5030,7 +5030,7 @@ function ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5030
5030
|
pe.current = b, D(() => {
|
|
5031
5031
|
const $ = (ae) => ae instanceof HTMLElement && (ae.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ae.tagName)), ge = (ae) => {
|
|
5032
5032
|
var fe;
|
|
5033
|
-
ae.key === "Escape" && !pe.current && T.current && (ae.stopPropagation(), T.current()), ae.key === " " && !pe.current && !$(ae.target) && (ae.preventDefault(), ae.stopPropagation(), ae.repeat || (fe = _.current) == null || fe.call(_)), (ae.key === "f" || ae.key === "F") && !ae.metaKey && !ae.ctrlKey && !ae.altKey && !pe.current && !$(ae.target) &&
|
|
5033
|
+
ae.key === "Escape" && !pe.current && T.current && (ae.stopPropagation(), T.current()), ae.key === " " && !pe.current && !$(ae.target) && (ae.preventDefault(), ae.stopPropagation(), ae.repeat || (fe = _.current) == null || fe.call(_)), (ae.key === "f" || ae.key === "F") && !ae.metaKey && !ae.ctrlKey && !ae.altKey && !pe.current && !$(ae.target) && Ti() && (ae.preventDefault(), ae.repeat || En(!yr()));
|
|
5034
5034
|
}, ue = (ae) => {
|
|
5035
5035
|
ae.key === " " && !pe.current && !$(ae.target) && ae.preventDefault();
|
|
5036
5036
|
};
|
|
@@ -5038,7 +5038,7 @@ function ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5038
5038
|
window.removeEventListener("keydown", ge, !0), window.removeEventListener("keyup", ue, !0);
|
|
5039
5039
|
};
|
|
5040
5040
|
}, []);
|
|
5041
|
-
const le =
|
|
5041
|
+
const le = iu("(orientation: landscape) and (max-height: 540px)"), Te = k(null), [je, Se] = L(null);
|
|
5042
5042
|
Kt(() => {
|
|
5043
5043
|
const $ = Te.current;
|
|
5044
5044
|
if (!$ || (Se($.getBoundingClientRect().width), typeof ResizeObserver > "u")) return;
|
|
@@ -5071,7 +5071,7 @@ function ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5071
5071
|
}, [x, H]);
|
|
5072
5072
|
const [V, ce] = L(!0), [W, ye] = L(!1), G = k(void 0);
|
|
5073
5073
|
D(() => () => window.clearTimeout(G.current), []);
|
|
5074
|
-
const ke = B != null && B.share ? B.share.url(V && B.share.at >= 1 ? Math.floor(B.share.at) : null) : "", Ie = ze(() => we && ke && !m.playing ?
|
|
5074
|
+
const ke = B != null && B.share ? B.share.url(V && B.share.at >= 1 ? Math.floor(B.share.at) : null) : "", Ie = ze(() => we && ke && !m.playing ? nu(ke) : "", [we, ke, m.playing]), Fe = () => {
|
|
5075
5075
|
var $;
|
|
5076
5076
|
($ = navigator.clipboard) == null || $.writeText(ke).then(() => {
|
|
5077
5077
|
ye(!0), window.clearTimeout(G.current), G.current = window.setTimeout(() => ye(!1), 1800);
|
|
@@ -5092,16 +5092,16 @@ function ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5092
5092
|
/* @__PURE__ */ i(oe, { d: W ? X.check : X.copy, size: 14, sw: 1.8 }),
|
|
5093
5093
|
W ? "Copied" : "Copy link"
|
|
5094
5094
|
] }),
|
|
5095
|
-
/* @__PURE__ */ M("button", { type: "button", className: "gfull__sharebtn", onClick: () =>
|
|
5095
|
+
/* @__PURE__ */ M("button", { type: "button", className: "gfull__sharebtn", onClick: () => Br(ke, s), children: [
|
|
5096
5096
|
/* @__PURE__ */ i(oe, { d: X.share, size: 14, sw: 1.6 }),
|
|
5097
5097
|
"Share"
|
|
5098
5098
|
] })
|
|
5099
5099
|
] })
|
|
5100
5100
|
] })
|
|
5101
5101
|
] }), he = ($, ge, ue, ae, fe, Ye = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: $, "aria-label": $, onClick: ae, children: /* @__PURE__ */ i(oe, { d: ge, size: (we ? 20 : Ee ? 15 : 18) + Ye, sw: ue, style: fe }) }), _e = /* @__PURE__ */ M("div", { className: "gfull__acts", children: [
|
|
5102
|
-
p && /* @__PURE__ */ i(
|
|
5102
|
+
p && /* @__PURE__ */ i(aa, { v: p, size: we ? 20 : Ee ? 15 : 18 }),
|
|
5103
5103
|
C && he("Share", X.share, 1.6, C),
|
|
5104
|
-
|
|
5104
|
+
Ti() && !e && he(F ? "Exit full screen" : "Full screen", F ? ru : ia, 1.7, () => En(!F)),
|
|
5105
5105
|
I && he("Close player", X.close, 1.7, I)
|
|
5106
5106
|
] }), Be = (d || g || S) && /* @__PURE__ */ M("div", { className: "gfull__top", children: [
|
|
5107
5107
|
d && he(d.muted ? "Unmute" : "Mute", d.muted ? X.volumeOff : X.volume, 1.6, d.onToggle),
|
|
@@ -5166,7 +5166,7 @@ function ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5166
5166
|
] }),
|
|
5167
5167
|
" "
|
|
5168
5168
|
] }),
|
|
5169
|
-
l.words.map(($, ge) => /* @__PURE__ */ M("span", { "data-said": $.dim ? void 0 : "", "data-at": l.cursor != null && ge <= l.cursor ? "" : void 0, style: $.dim ?
|
|
5169
|
+
l.words.map(($, ge) => /* @__PURE__ */ M("span", { "data-said": $.dim ? void 0 : "", "data-at": l.cursor != null && ge <= l.cursor ? "" : void 0, style: $.dim ? ou : void 0, children: [
|
|
5170
5170
|
$.t,
|
|
5171
5171
|
$.sp
|
|
5172
5172
|
] }, ge))
|
|
@@ -5203,7 +5203,7 @@ function ia({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5203
5203
|
}
|
|
5204
5204
|
);
|
|
5205
5205
|
}
|
|
5206
|
-
function
|
|
5206
|
+
function lu({ dark: t, back: e, home: n, live: r, title: s, badge: a, subline: o, onOptions: l, optionsActive: c }) {
|
|
5207
5207
|
return /* @__PURE__ */ M("div", { className: "ghead", children: [
|
|
5208
5208
|
e && /* @__PURE__ */ i("button", { type: "button", className: "ghead__back", "aria-label": "Back", title: "Back", onClick: e, children: /* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 19, sw: 1.7 }) }),
|
|
5209
5209
|
r && /* @__PURE__ */ i("span", { className: "mark", children: /* @__PURE__ */ i(Ar, { dark: t, size: 30 }) }),
|
|
@@ -5214,20 +5214,20 @@ function ou({ dark: t, back: e, home: n, live: r, title: s, badge: a, subline: o
|
|
|
5214
5214
|
] }),
|
|
5215
5215
|
o && /* @__PURE__ */ i("div", { className: "ghead__sub", children: o })
|
|
5216
5216
|
] }) }),
|
|
5217
|
-
/* @__PURE__ */ i(
|
|
5217
|
+
/* @__PURE__ */ i(no, { size: "sm", bordered: !1, variant: c ? "primary" : void 0, onClick: l, label: "Options", children: /* @__PURE__ */ M("svg", { viewBox: "0 0 24 24", width: "19", height: "19", fill: "currentColor", "aria-hidden": "true", children: [
|
|
5218
5218
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "5.5", r: "1.85" }),
|
|
5219
5219
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "12", r: "1.85" }),
|
|
5220
5220
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "18.5", r: "1.85" })
|
|
5221
5221
|
] }) })
|
|
5222
5222
|
] });
|
|
5223
5223
|
}
|
|
5224
|
-
const
|
|
5225
|
-
function
|
|
5224
|
+
const cu = "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", uu = (t, e = !1) => [{ value: "read", label: t.read, icon: /* @__PURE__ */ i(oe, { d: X.book, size: 17 }) }, { value: "listen", label: /* @__PURE__ */ i("span", { style: { display: "inline-block", minWidth: 52, textAlign: "center" }, children: e ? t.watch : t.listen }), icon: /* @__PURE__ */ i(oe, { d: e ? cu : X.headphones, size: 19, sw: 1.5 }) }], Hr = "https://app.vocalstack.com", du = "/connect/transcribe";
|
|
5225
|
+
function hu() {
|
|
5226
5226
|
const t = new Uint8Array(24);
|
|
5227
5227
|
return crypto.getRandomValues(t), btoa(String.fromCharCode(...t)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
5228
5228
|
}
|
|
5229
|
-
function
|
|
5230
|
-
const r = new URL(t ??
|
|
5229
|
+
function la(t, e, n) {
|
|
5230
|
+
const r = new URL(t ?? Hr), s = hu(), a = new URL(du, r);
|
|
5231
5231
|
e.url && a.searchParams.set("url", e.url), e.transcription && a.searchParams.set("transcription", e.transcription), e.ask && a.searchParams.set("ask", "1"), e.connect && a.searchParams.set("connect", "1"), a.searchParams.set("origin", window.location.origin), a.searchParams.set("nonce", s);
|
|
5232
5232
|
const o = 480, l = 640, c = Math.max(0, (window.screenX ?? 0) + ((window.outerWidth ?? o) - o) / 2), u = Math.max(0, (window.screenY ?? 0) + ((window.outerHeight ?? l) - l) / 2), d = window.open(a.toString(), "vocalstack-connect", `popup=yes,width=${o},height=${l},left=${Math.round(c)},top=${Math.round(u)}`);
|
|
5233
5233
|
return d ? new Promise((g, h) => {
|
|
@@ -5267,33 +5267,33 @@ function aa(t, e, n) {
|
|
|
5267
5267
|
}, 500);
|
|
5268
5268
|
}) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
|
|
5269
5269
|
}
|
|
5270
|
-
async function
|
|
5271
|
-
const r = await
|
|
5270
|
+
async function gu(t, e, n) {
|
|
5271
|
+
const r = await la(t, { url: e }, n);
|
|
5272
5272
|
return r === "connected" ? null : r;
|
|
5273
5273
|
}
|
|
5274
|
-
const
|
|
5275
|
-
function
|
|
5274
|
+
const ca = "vsp.connected";
|
|
5275
|
+
function Mu(t) {
|
|
5276
5276
|
try {
|
|
5277
|
-
return localStorage.getItem(
|
|
5277
|
+
return localStorage.getItem(ca) === new URL(t ?? Hr).origin;
|
|
5278
5278
|
} catch {
|
|
5279
5279
|
return !1;
|
|
5280
5280
|
}
|
|
5281
5281
|
}
|
|
5282
|
-
function
|
|
5282
|
+
function fu(t) {
|
|
5283
5283
|
try {
|
|
5284
|
-
localStorage.setItem(
|
|
5284
|
+
localStorage.setItem(ca, new URL(t ?? Hr).origin);
|
|
5285
5285
|
} catch {
|
|
5286
5286
|
}
|
|
5287
5287
|
}
|
|
5288
|
-
const
|
|
5288
|
+
const pu = {
|
|
5289
5289
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
5290
5290
|
consent: "Confirm in the VocalStack window…",
|
|
5291
5291
|
looking: "Looking for your transcription of this video…",
|
|
5292
5292
|
confirm: "Confirm in the VocalStack window…",
|
|
5293
5293
|
checking: "Checking the link…",
|
|
5294
5294
|
starting: "Starting the transcription…"
|
|
5295
|
-
},
|
|
5296
|
-
function
|
|
5295
|
+
}, mu = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
5296
|
+
function Nu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
5297
5297
|
const [s, a] = L(""), [o, l] = L(!1), [c, u] = L(null), [d, g] = L(null);
|
|
5298
5298
|
D(() => {
|
|
5299
5299
|
const y = (j) => {
|
|
@@ -5301,11 +5301,11 @@ function mu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5301
5301
|
};
|
|
5302
5302
|
return window.addEventListener("keydown", y), () => window.removeEventListener("keydown", y);
|
|
5303
5303
|
}, [r]);
|
|
5304
|
-
const h = s.trim(), f =
|
|
5304
|
+
const h = s.trim(), f = mu.test(h), m = async () => {
|
|
5305
5305
|
if (!(!f || o)) {
|
|
5306
5306
|
l(!0), u(null);
|
|
5307
5307
|
try {
|
|
5308
|
-
const y = await
|
|
5308
|
+
const y = await gu(t.appUrl, /^https?:\/\//i.test(h) ? h : `https://${h}`, g);
|
|
5309
5309
|
y && e(y);
|
|
5310
5310
|
} catch (y) {
|
|
5311
5311
|
u(y instanceof Error ? y.message : "Something went wrong. Please try again.");
|
|
@@ -5329,7 +5329,7 @@ function mu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5329
5329
|
}, "aria-label": "Video link" }),
|
|
5330
5330
|
/* @__PURE__ */ i("button", { type: "submit", className: "vsp-end__go", disabled: !f || o, children: o ? /* @__PURE__ */ i(ht, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : "Transcribe" })
|
|
5331
5331
|
] }),
|
|
5332
|
-
o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children:
|
|
5332
|
+
o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children: pu[d ?? "checking"] }),
|
|
5333
5333
|
c && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: c }),
|
|
5334
5334
|
/* @__PURE__ */ M("div", { className: "vsp-end__foot", children: [
|
|
5335
5335
|
/* @__PURE__ */ i("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }),
|
|
@@ -5340,7 +5340,7 @@ function mu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5340
5340
|
] })
|
|
5341
5341
|
] }) });
|
|
5342
5342
|
}
|
|
5343
|
-
function
|
|
5343
|
+
function ua(t) {
|
|
5344
5344
|
const [e, n] = L(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
|
|
5345
5345
|
return D(() => {
|
|
5346
5346
|
if (t != null) return;
|
|
@@ -5348,9 +5348,9 @@ function la(t) {
|
|
|
5348
5348
|
return window.addEventListener("resize", r), () => window.removeEventListener("resize", r);
|
|
5349
5349
|
}, [t]), t ?? e;
|
|
5350
5350
|
}
|
|
5351
|
-
const
|
|
5352
|
-
function
|
|
5353
|
-
const n =
|
|
5351
|
+
const yu = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
|
|
5352
|
+
function Tu(t, e) {
|
|
5353
|
+
const n = Fi(), [r, s] = _i(), [a, o] = L(null), [l, c] = L("main"), u = Cr(n, t.lang), d = ze(() => Yi(n, "translation"), [n]), g = (Y) => {
|
|
5354
5354
|
e({ lang: Y }), s(Y);
|
|
5355
5355
|
}, h = _r({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect: g, languages: d, none: "As spoken", pinned: t.lang ? [t.lang] : [], recent: r, keepOpen: !0 }), f = () => {
|
|
5356
5356
|
o(null), c("main");
|
|
@@ -5421,7 +5421,7 @@ const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "curren
|
|
|
5421
5421
|
/* @__PURE__ */ i("path", { d: "M6.5 2.75h7.25l4.75 4.75v12.25a1.5 1.5 0 0 1-1.5 1.5H6.5a1.5 1.5 0 0 1-1.5-1.5V4.25a1.5 1.5 0 0 1 1.5-1.5Z", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round" }),
|
|
5422
5422
|
/* @__PURE__ */ i("path", { d: "M13.75 2.75V7.5h4.75", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round" }),
|
|
5423
5423
|
/* @__PURE__ */ i("text", { x: "11.75", y: "17.4", textAnchor: "middle", fontSize: t.length > 3 ? 4.4 : 5.2, fontWeight: "800", fill: "currentColor", fontFamily: "inherit", letterSpacing: ".2", children: t })
|
|
5424
|
-
] }),
|
|
5424
|
+
] }), wi = [
|
|
5425
5425
|
{ name: "YouTube", tint: "#ff3b30", glyph: yt("M21.6 7.2a2.7 2.7 0 0 0-1.9-1.9C18 4.8 12 4.8 12 4.8s-6 0-7.7.5a2.7 2.7 0 0 0-1.9 1.9C2 8.9 2 12 2 12s0 3.1.4 4.8a2.7 2.7 0 0 0 1.9 1.9c1.7.5 7.7.5 7.7.5s6 0 7.7-.5a2.7 2.7 0 0 0 1.9-1.9c.4-1.7.4-4.8.4-4.8s0-3.1-.4-4.8ZM10 15.1V8.9l5.3 3.1L10 15.1Z", "evenodd") },
|
|
5426
5426
|
{ name: "MP3", tint: "#f78472", glyph: Qt("MP3") },
|
|
5427
5427
|
{ name: "Vimeo", tint: "#1ab7ea", glyph: yt("M22 7.4c-.1 2-1.5 4.7-4.2 8.1-2.8 3.6-5.1 5.4-7 5.4-1.2 0-2.2-1.1-3-3.3L6.2 11.6C5.6 9.4 5 8.3 4.3 8.3c-.1 0-.6.3-1.4.9L2 8l2.7-2.4C5.9 4.6 6.8 4 7.4 4c1.4-.1 2.3.9 2.6 2.9.4 2.2.6 3.6.8 4.1.4 1.8.9 2.7 1.4 2.7.4 0 1-.6 1.8-1.9.8-1.2 1.2-2.2 1.3-2.8.1-1.1-.3-1.6-1.3-1.6-.5 0-.9.1-1.4.3.9-3 2.7-4.5 5.3-4.4 1.9.1 2.8 1.3 2.7 3.7Z") },
|
|
@@ -5467,19 +5467,19 @@ const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "curren
|
|
|
5467
5467
|
/* @__PURE__ */ i("circle", { cx: "8", cy: "12", r: "1.6", fill: "currentColor", stroke: "none" }),
|
|
5468
5468
|
/* @__PURE__ */ i("path", { d: "M11.5 10h6M11.5 14h4" })
|
|
5469
5469
|
] }) }
|
|
5470
|
-
],
|
|
5471
|
-
function
|
|
5472
|
-
const e =
|
|
5473
|
-
for (let r = 0; r < 11; r++) n.push(
|
|
5470
|
+
], wu = 14, vu = 4;
|
|
5471
|
+
function Lu(t) {
|
|
5472
|
+
const e = wi.length, n = [];
|
|
5473
|
+
for (let r = 0; r < 11; r++) n.push(wi[(r + t * 7) % e]);
|
|
5474
5474
|
return n;
|
|
5475
5475
|
}
|
|
5476
|
-
function
|
|
5476
|
+
function ku({ t }) {
|
|
5477
5477
|
return /* @__PURE__ */ M("span", { className: "vsp-prov__tile", style: { "--tint": t.tint }, children: [
|
|
5478
5478
|
/* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: "100%", height: "100%", "aria-hidden": "true", children: t.glyph }),
|
|
5479
5479
|
/* @__PURE__ */ i("span", { className: "vsp-prov__name", children: t.name })
|
|
5480
5480
|
] });
|
|
5481
5481
|
}
|
|
5482
|
-
function
|
|
5482
|
+
function ju() {
|
|
5483
5483
|
const t = k(null), [e, n] = L(!0), [r, s] = L(() => typeof document > "u" || !document.hidden);
|
|
5484
5484
|
return D(() => {
|
|
5485
5485
|
const a = () => s(!document.hidden);
|
|
@@ -5489,19 +5489,19 @@ function ku() {
|
|
|
5489
5489
|
return o && typeof IntersectionObserver < "u" && (l = new IntersectionObserver(([c]) => n(c.isIntersecting)), l.observe(o)), () => {
|
|
5490
5490
|
document.removeEventListener("visibilitychange", a), l == null || l.disconnect();
|
|
5491
5491
|
};
|
|
5492
|
-
}, []), /* @__PURE__ */ i("div", { ref: t, className: `vsp-prov${e && r ? "" : " vsp-prov--still"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("div", { className: "vsp-prov__plane", children: Array.from({ length:
|
|
5493
|
-
const l =
|
|
5494
|
-
return /* @__PURE__ */ i("div", { className: `vsp-prov__row${o % 2 ? " vsp-prov__row--rev" : ""}`, style: { animationDuration: `${80 + o * 11}s`, animationDelay: `-${o * 17}s` }, children: Array.from({ length:
|
|
5492
|
+
}, []), /* @__PURE__ */ i("div", { ref: t, className: `vsp-prov${e && r ? "" : " vsp-prov--still"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("div", { className: "vsp-prov__plane", children: Array.from({ length: wu }, (a, o) => {
|
|
5493
|
+
const l = Lu(o);
|
|
5494
|
+
return /* @__PURE__ */ i("div", { className: `vsp-prov__row${o % 2 ? " vsp-prov__row--rev" : ""}`, style: { animationDuration: `${80 + o * 11}s`, animationDelay: `-${o * 17}s` }, children: Array.from({ length: vu }, (c, u) => l.map((d, g) => /* @__PURE__ */ i(ku, { t: d }, `${u}-${g}`))) }, o);
|
|
5495
5495
|
}) }) });
|
|
5496
5496
|
}
|
|
5497
|
-
const
|
|
5497
|
+
const da = {
|
|
5498
5498
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
5499
5499
|
consent: "Confirm in the VocalStack window…",
|
|
5500
5500
|
looking: "Looking for your transcription of this video…",
|
|
5501
5501
|
confirm: "Confirm in the VocalStack window…",
|
|
5502
5502
|
checking: "Checking the link…",
|
|
5503
5503
|
starting: "Starting the transcription…"
|
|
5504
|
-
},
|
|
5504
|
+
}, vi = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
5505
5505
|
function Tr(t) {
|
|
5506
5506
|
try {
|
|
5507
5507
|
return new URL(t).hostname.replace(/^www\./, "");
|
|
@@ -5509,38 +5509,39 @@ function Tr(t) {
|
|
|
5509
5509
|
return t;
|
|
5510
5510
|
}
|
|
5511
5511
|
}
|
|
5512
|
-
function
|
|
5513
|
-
const [n, r] = L(!1), [s, a] = L(null), [o, l] = L(null), [c, u] = L(() =>
|
|
5512
|
+
function zu(t, e) {
|
|
5513
|
+
const [n, r] = L(!1), [s, a] = L(null), [o, l] = L(null), [c, u] = L(() => Mu(t)), d = Ke((f) => {
|
|
5514
5514
|
if (n) return;
|
|
5515
5515
|
r(!0), l(null);
|
|
5516
5516
|
let m;
|
|
5517
5517
|
try {
|
|
5518
|
-
m =
|
|
5518
|
+
m = la(t, f, a);
|
|
5519
5519
|
} catch (y) {
|
|
5520
5520
|
m = Promise.reject(y);
|
|
5521
5521
|
}
|
|
5522
5522
|
m.then((y) => {
|
|
5523
|
-
y && (
|
|
5523
|
+
y && (fu(t), u(!0), y !== "connected" && e(y));
|
|
5524
5524
|
}).catch((y) => l(y instanceof Error ? y.message : "Something went wrong. Please try again.")).finally(() => {
|
|
5525
5525
|
r(!1), a(null);
|
|
5526
5526
|
});
|
|
5527
5527
|
}, [t, n, e]), g = Ke(() => d({ connect: !0 }), [d]), h = Ke((f, m) => d({ url: f, ask: m }), [d]);
|
|
5528
5528
|
return { busy: n, status: s, err: o, connected: c, connect: g, start: h };
|
|
5529
5529
|
}
|
|
5530
|
-
function
|
|
5530
|
+
function Iu(t) {
|
|
5531
5531
|
return /\.(mp4|webm|mov|m4v|ogv|mkv)(\?|#|$)/i.test(t);
|
|
5532
5532
|
}
|
|
5533
|
-
function
|
|
5534
|
-
|
|
5535
|
-
|
|
5533
|
+
function bu({ poster: t, src: e }) {
|
|
5534
|
+
var s;
|
|
5535
|
+
const n = e && ((s = Yr(e)) == null ? void 0 : s.id) === "youtube" ? Ki(e) : null, r = t ?? (n ? `https://i.ytimg.com/vi/${n}/hqdefault.jpg` : null);
|
|
5536
|
+
return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e && Iu(e) ? /* @__PURE__ */ i("video", { className: "vsp-idle__pic vsp-idle__frame", src: `${e}#t=1`, muted: !0, playsInline: !0, preload: "metadata", "aria-hidden": "true" }) : /* @__PURE__ */ M(Ce, { children: [
|
|
5536
5537
|
/* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
|
|
5537
|
-
/* @__PURE__ */ i(
|
|
5538
|
+
/* @__PURE__ */ i(ju, {})
|
|
5538
5539
|
] });
|
|
5539
5540
|
}
|
|
5540
|
-
const
|
|
5541
|
+
const Ou = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
|
|
5541
5542
|
} };
|
|
5542
5543
|
function $n({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children: o }) {
|
|
5543
|
-
const l =
|
|
5544
|
+
const l = Tu(t.prefs, t.set), c = ua(), u = k(null), [d, g] = L(!1);
|
|
5544
5545
|
Kt(() => {
|
|
5545
5546
|
var j;
|
|
5546
5547
|
const f = (j = u.current) == null ? void 0 : j.parentElement;
|
|
@@ -5554,38 +5555,38 @@ function $n({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children:
|
|
|
5554
5555
|
}, onNext: () => {
|
|
5555
5556
|
}, playing: !1, playable: !0, playTitle: "Connect to play", onPlay: a };
|
|
5556
5557
|
return /* @__PURE__ */ M("div", { ref: u, className: `vsp-idleroot${d ? " vsp-idleroot--small" : ""}`, children: [
|
|
5557
|
-
/* @__PURE__ */ i(
|
|
5558
|
+
/* @__PURE__ */ i(oa, { page: s, picture: /* @__PURE__ */ i(bu, { poster: e, src: n }), title: r, desk: c, pos: Ou, sub: null, mute: { muted: t.prefs.muted, onToggle: () => t.set({ muted: !t.prefs.muted }) }, cc: { on: t.prefs.subtitles, onToggle: () => t.set({ subtitles: !t.prefs.subtitles }) }, chip: l.chip, transport: h, picker: l.sheets, sheet: null, voices: null, voicesBtn: null, sheetOpen: l.sheetOpen, onSettings: l.openSettings, onShare: () => Br(t.shareUrl ?? window.location.href, r), copied: null, onTouch: () => {
|
|
5558
5559
|
} }),
|
|
5559
5560
|
!l.sheetOpen && /* @__PURE__ */ i("div", { className: "vsp-idle", "data-theme": "dark", children: /* @__PURE__ */ i("div", { className: "vsp-idle__box", children: o }) })
|
|
5560
5561
|
] });
|
|
5561
5562
|
}
|
|
5562
|
-
function
|
|
5563
|
+
function ha({ connect: t, onClick: e, label: n }) {
|
|
5563
5564
|
return /* @__PURE__ */ M(Ce, { children: [
|
|
5564
5565
|
/* @__PURE__ */ M("button", { type: "button", className: "vsp-idle__connect", onClick: e, disabled: t.busy, children: [
|
|
5565
5566
|
t.busy ? /* @__PURE__ */ i(ht, { size: 18, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ i(oe, { d: X.link, size: 18, sw: 1.8 }),
|
|
5566
5567
|
/* @__PURE__ */ i("span", { children: t.busy ? "Waiting for VocalStack…" : n })
|
|
5567
5568
|
] }),
|
|
5568
|
-
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children:
|
|
5569
|
+
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: da[t.status ?? "checking"] }),
|
|
5569
5570
|
t.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: t.err })
|
|
5570
5571
|
] });
|
|
5571
5572
|
}
|
|
5572
|
-
function
|
|
5573
|
+
function Cu({ idle: t, src: e, ask: n, connect: r, page: s, poster: a = null, onClear: o }) {
|
|
5573
5574
|
const l = () => r.start(e, n);
|
|
5574
5575
|
return /* @__PURE__ */ M($n, { idle: t, poster: a, src: e, title: Tr(e), page: s, onAct: l, children: [
|
|
5575
|
-
/* @__PURE__ */ i(
|
|
5576
|
+
/* @__PURE__ */ i(ha, { connect: r, onClick: l, label: r.connected ? "Play with VocalStack" : "Connect to VocalStack" }),
|
|
5576
5577
|
!r.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: r.connected ? `Plays ${Tr(e)} with subtitles and spoken translations.` : `Connect to play ${Tr(e)} with subtitles and spoken translations.` }),
|
|
5577
5578
|
o && !r.busy && /* @__PURE__ */ i("button", { type: "button", className: "vsp-idle__other", onClick: o, children: "Choose another video" })
|
|
5578
5579
|
] });
|
|
5579
5580
|
}
|
|
5580
|
-
function
|
|
5581
|
-
const [a, o] = L(""), l = k(null), c = k(null), u = a.trim(), d =
|
|
5581
|
+
function xu({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
5582
|
+
const [a, o] = L(""), l = k(null), c = k(null), u = a.trim(), d = vi.test(u), g = () => {
|
|
5582
5583
|
if (!d || e.busy) return;
|
|
5583
5584
|
const m = /^https?:\/\//i.test(u) ? u : `https://${u}`;
|
|
5584
5585
|
s(m), e.start(m, !1);
|
|
5585
5586
|
};
|
|
5586
5587
|
if (!e.connected)
|
|
5587
5588
|
return /* @__PURE__ */ M($n, { idle: t, poster: r, src: null, title: "VocalStack", page: n, onAct: e.connect, children: [
|
|
5588
|
-
/* @__PURE__ */ i(
|
|
5589
|
+
/* @__PURE__ */ i(ha, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
|
|
5589
5590
|
!e.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "Connect your VocalStack account to watch any video with subtitles and spoken translations." })
|
|
5590
5591
|
] });
|
|
5591
5592
|
const h = () => {
|
|
@@ -5593,7 +5594,7 @@ function Cu({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
|
5593
5594
|
d ? g() : (m = l.current) == null || m.focus();
|
|
5594
5595
|
}, f = (m) => {
|
|
5595
5596
|
const y = m.trim();
|
|
5596
|
-
if (!
|
|
5597
|
+
if (!vi.test(y) || e.busy || y === c.current) return;
|
|
5597
5598
|
c.current = y;
|
|
5598
5599
|
const j = /^https?:\/\//i.test(y) ? y : `https://${y}`;
|
|
5599
5600
|
s(j), e.start(j, !1);
|
|
@@ -5609,11 +5610,11 @@ function Cu({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
|
5609
5610
|
}, "aria-label": "Video link", autoFocus: !0 }),
|
|
5610
5611
|
e.busy && /* @__PURE__ */ i(ht, { size: 15, color: "#eef0f8", track: "rgba(255,255,255,.2)" })
|
|
5611
5612
|
] }) }),
|
|
5612
|
-
e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children:
|
|
5613
|
+
e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: da[e.status ?? "checking"] }) : /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "YouTube, Vimeo, an mp3 or any video link. Press Enter or ▶ to play it here with subtitles and spoken translations." }),
|
|
5613
5614
|
e.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: e.err })
|
|
5614
5615
|
] });
|
|
5615
5616
|
}
|
|
5616
|
-
function
|
|
5617
|
+
function Su({ idle: t, message: e, onRetry: n, page: r }) {
|
|
5617
5618
|
return /* @__PURE__ */ M($n, { idle: t, poster: null, src: null, title: "VocalStack", page: r, onAct: n, children: [
|
|
5618
5619
|
/* @__PURE__ */ M("div", { className: "vsp-idle__err", role: "alert", children: [
|
|
5619
5620
|
/* @__PURE__ */ i(oe, { d: X.warn, size: 16, sw: 1.8 }),
|
|
@@ -5625,7 +5626,7 @@ function xu({ idle: t, message: e, onRetry: n, page: r }) {
|
|
|
5625
5626
|
] })
|
|
5626
5627
|
] });
|
|
5627
5628
|
}
|
|
5628
|
-
function
|
|
5629
|
+
function Du(t, e, n) {
|
|
5629
5630
|
const [r, s] = L(t && e ? void 0 : null);
|
|
5630
5631
|
return D(() => {
|
|
5631
5632
|
if (!t) {
|
|
@@ -5638,7 +5639,7 @@ function Su(t, e, n) {
|
|
|
5638
5639
|
}
|
|
5639
5640
|
let a = !0;
|
|
5640
5641
|
s(void 0);
|
|
5641
|
-
const o = new
|
|
5642
|
+
const o = new zi({ baseUrl: (n ?? Hi).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
|
|
5642
5643
|
if (!l) {
|
|
5643
5644
|
s(null);
|
|
5644
5645
|
return;
|
|
@@ -5652,24 +5653,24 @@ function Su(t, e, n) {
|
|
|
5652
5653
|
};
|
|
5653
5654
|
}, [t, e, n]), r;
|
|
5654
5655
|
}
|
|
5655
|
-
const
|
|
5656
|
-
function
|
|
5656
|
+
const Au = 100, Li = (t) => t == null ? null : t ? "on" : "off";
|
|
5657
|
+
function Eu(t) {
|
|
5657
5658
|
const e = t.syncUrl && typeof window < "u" ? new URLSearchParams(window.location.search) : null, n = { ...t.initial ?? {}, ...t.settings ?? {} }, r = (a) => a === "on" || a === "off" ? a : null, s = Number(e == null ? void 0 : e.get("t"));
|
|
5658
5659
|
return {
|
|
5659
5660
|
lang: (e == null ? void 0 : e.get("lang")) || n.lang || null,
|
|
5660
|
-
labels: r(e == null ? void 0 : e.get("labels")) ??
|
|
5661
|
-
words: r(e == null ? void 0 : e.get("words")) ??
|
|
5661
|
+
labels: r(e == null ? void 0 : e.get("labels")) ?? Li(n.speakerLabels),
|
|
5662
|
+
words: r(e == null ? void 0 : e.get("words")) ?? Li(n.wordHighlight),
|
|
5662
5663
|
cc: e != null && e.get("cc") ? e.get("cc") !== "off" : n.subtitles ?? !0,
|
|
5663
5664
|
translateAudio: e != null && e.get("audio") ? e.get("audio") !== "original" : n.translateAudio ?? !0,
|
|
5664
5665
|
clonedVoices: e != null && e.get("voices") ? e.get("voices") !== "stock" : (n.voices ?? "cloned") === "cloned",
|
|
5665
|
-
removeBackground: e && e.get("bg") ?
|
|
5666
|
+
removeBackground: e && e.get("bg") ? Vo(e) : n.removeBackground ?? !1,
|
|
5666
5667
|
startAt: Number.isFinite(s) && s > 0 ? s : t.startAt ?? null
|
|
5667
5668
|
};
|
|
5668
5669
|
}
|
|
5669
|
-
const
|
|
5670
|
+
const Zu = Wa(function(e, n) {
|
|
5670
5671
|
var K;
|
|
5671
5672
|
const r = k(null);
|
|
5672
|
-
|
|
5673
|
+
Fa(n, () => ({
|
|
5673
5674
|
seek: (v) => {
|
|
5674
5675
|
var ie;
|
|
5675
5676
|
return (ie = r.current) == null ? void 0 : ie.seek(v);
|
|
@@ -5695,17 +5696,17 @@ const Fu = Va(function(e, n) {
|
|
|
5695
5696
|
D(() => {
|
|
5696
5697
|
a({ id: e.id ?? "", token: e.token });
|
|
5697
5698
|
}, [e.id, e.token, e.src]);
|
|
5698
|
-
const o =
|
|
5699
|
+
const o = Du(e.src ?? null, e.token ?? null, e.baseUrl ?? null);
|
|
5699
5700
|
D(() => {
|
|
5700
5701
|
o != null && o.id && a({ id: o.id, token: e.token });
|
|
5701
5702
|
}, [o == null ? void 0 : o.id]);
|
|
5702
|
-
const [l, c] = L(null), [u, d] = L(() => ({ ...
|
|
5703
|
+
const [l, c] = L(null), [u, d] = L(() => ({ ...yu, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([, v]) => v !== void 0)) })), [g, h] = L({}), f = { prefs: u, set: (v) => {
|
|
5703
5704
|
d((ie) => ({ ...ie, ...v })), h((ie) => ({ ...ie, ...v }));
|
|
5704
5705
|
}, shareUrl: (K = e.shareUrl) == null ? void 0 : K.call(e, null) }, { muted: m, ...y } = g;
|
|
5705
5706
|
D(() => {
|
|
5706
5707
|
c(null);
|
|
5707
5708
|
}, [e.id, e.src]);
|
|
5708
|
-
const j = e.src ?? l, N = !s.id && !!j && (l != null || o !== void 0), p = !s.id && !e.src && !l, b =
|
|
5709
|
+
const j = e.src ?? l, N = !s.id && !!j && (l != null || o !== void 0), p = !s.id && !e.src && !l, b = Wi({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: C, gone: S, error: B, reload: Y } = Ol(b, s.id), ee = Cl(b, (C == null ? void 0 : C.recording.id) ?? null), I = ze(() => Il(b, ee), [b, ee]);
|
|
5709
5710
|
D(() => {
|
|
5710
5711
|
var v;
|
|
5711
5712
|
C && ((v = e.onSource) == null || v.call(e, C));
|
|
@@ -5713,16 +5714,16 @@ const Fu = Va(function(e, n) {
|
|
|
5713
5714
|
var v;
|
|
5714
5715
|
B && ((v = e.onError) == null || v.call(e, B));
|
|
5715
5716
|
}, [B]);
|
|
5716
|
-
const F =
|
|
5717
|
-
return D(() => (
|
|
5717
|
+
const F = ua(e.desk), A = (e.layout ?? "embed") === "embed", T = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), _ = Ke((v) => a({ id: v.transcriptionId, token: null, listen: { transcriptionId: v.transcriptionId, recordingId: v.recordingId, token: v.token } }), []), O = zu(T, _), te = k(null);
|
|
5718
|
+
return D(() => (yi(A ? te.current : null), () => yi(null)), [A]), /* @__PURE__ */ i(Ll, { value: I, children: /* @__PURE__ */ i("div", { ref: te, className: `vsp${A ? " vsp--embed" : ""}${e.className ? ` ${e.className}` : ""}`, "data-theme": (e.mode ?? "video") === "video" || e.dark ? "dark" : "light", "data-mode": (e.mode ?? "video") === "video" ? "video" : "transcript", children: p ? /* @__PURE__ */ i(xu, { idle: f, connect: O, page: !A, poster: e.poster ?? null, onPick: c }) : N ? /* @__PURE__ */ i(Cu, { idle: f, src: j, ask: !l, connect: O, page: !A, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : s.id ? B && !C ? /* @__PURE__ */ i(Su, { idle: f, message: B.message, onRetry: Y, page: !A }) : /* @__PURE__ */ i(_u, { ...e, initial: { ...e.initial ?? {}, ...y }, startMuted: m === !0, handle: r, id: s.id, api: I, shared: C, gone: S, loadError: B, reread: Y, desk: F, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (v) => a({ id: v.transcriptionId, token: null, listen: { transcriptionId: v.transcriptionId, recordingId: v.recordingId, token: v.token } }) }, s.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
|
|
5718
5719
|
});
|
|
5719
|
-
function
|
|
5720
|
-
var
|
|
5721
|
-
const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = ze(() =>
|
|
5720
|
+
function _u(t) {
|
|
5721
|
+
var Ls, ks, js, zs, Is, bs, Os, Cs, xs, Ss, Ds, As, Es, _s, Ys, Us, Rs, Ps, $s, Qs, Bs, Vs, Hs, Ws, Fs, Zs, Gs, qs, Ks, Js, Xs;
|
|
5722
|
+
const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = ze(() => Eu(t), []), u = (t.mode ?? "video") === "video", [d, g] = L(t.loadError);
|
|
5722
5723
|
D(() => {
|
|
5723
5724
|
t.loadError && g(t.loadError);
|
|
5724
5725
|
}, [t.loadError]);
|
|
5725
|
-
const [h, f] = L("none"), [m, y] = L(!1), [j, N] = L(""), [p, b] =
|
|
5726
|
+
const [h, f] = L("none"), [m, y] = L(!1), [j, N] = L(""), [p, b] = Yc(), [C, S] = L(null), [B, Y] = L(u ? "listen" : "read"), [ee, I] = L(!1), F = k(null), A = k(/* @__PURE__ */ new Map()), [T, _] = L("main"), O = (w) => {
|
|
5726
5727
|
const me = document.querySelector(".vs-sheet--settings"), Pe = me == null ? void 0 : me.parentElement;
|
|
5727
5728
|
me && Pe && T === "main" && w !== "main" && Pe.style.setProperty("--vs-sheet-top", `${Math.round(me.getBoundingClientRect().top - Pe.getBoundingClientRect().top)}px`), _(w);
|
|
5728
5729
|
};
|
|
@@ -5749,20 +5750,20 @@ function Eu(t) {
|
|
|
5749
5750
|
D(() => {
|
|
5750
5751
|
if (!t.syncUrl) return;
|
|
5751
5752
|
const w = new URL(window.location.href);
|
|
5752
|
-
J ? w.searchParams.set("lang", J) : w.searchParams.delete("lang"), pe ? w.searchParams.set("labels", pe) : w.searchParams.delete("labels"), Te ? w.searchParams.set("words", Te) : w.searchParams.delete("words"), Se ? w.searchParams.delete("cc") : w.searchParams.set("cc", "off"), we ? w.searchParams.delete("audio") : w.searchParams.set("audio", "original"), Re ? w.searchParams.delete("voices") : w.searchParams.set("voices", "stock"),
|
|
5753
|
+
J ? w.searchParams.set("lang", J) : w.searchParams.delete("lang"), pe ? w.searchParams.set("labels", pe) : w.searchParams.delete("labels"), Te ? w.searchParams.set("words", Te) : w.searchParams.delete("words"), Se ? w.searchParams.delete("cc") : w.searchParams.set("cc", "off"), we ? w.searchParams.delete("audio") : w.searchParams.set("audio", "original"), Re ? w.searchParams.delete("voices") : w.searchParams.set("voices", "stock"), Ho(w, Q), w.href !== window.location.href && window.history.replaceState(window.history.state, "", w);
|
|
5753
5754
|
}, [J, pe, Te, Se, we, Re, Q]), D(() => {
|
|
5754
5755
|
n && !n.allowTranslate && J && Z(null);
|
|
5755
5756
|
}, [n, J]);
|
|
5756
|
-
const { model: ce, error: W, clearError: ye, setLanguage: G, mergeTranslations: ke, translating: Ie, translateFailed: Fe, shownLang: Ae } =
|
|
5757
|
+
const { model: ce, error: W, clearError: ye, setLanguage: G, mergeTranslations: ke, translating: Ie, translateFailed: Fe, shownLang: Ae } = Al(ie, {
|
|
5757
5758
|
lang: null,
|
|
5758
5759
|
onFrame: (w) => {
|
|
5759
5760
|
w.type === "job.progress" && S({ state: w.state, processedS: w.processedS ?? 0, totalS: w.totalS ?? null, segmentsDone: w.segmentsDone ?? 0, segmentsTotal: w.segmentsTotal ?? null, pct: w.pct ?? 0, error: w.error ?? null });
|
|
5760
5761
|
}
|
|
5761
|
-
}), he = ze(() =>
|
|
5762
|
+
}), he = ze(() => dl(ce).filter((w) => !w.suppressed), [ce]), _e = El((n == null ? void 0 : n.job) ?? null), Be = ["done", "failed", "stopped"].includes(mr((_e == null ? void 0 : _e.state) ?? ((Ls = n == null ? void 0 : n.job) == null ? void 0 : Ls.state))), $ = Be ? _e : C ?? _e, ge = !!C && !["done", "failed", "stopped"].includes(mr(C.state)), ue = k(0);
|
|
5762
5763
|
D(() => {
|
|
5763
5764
|
!Be || !ge || Date.now() - ue.current < 1e4 || (ue.current = Date.now(), t.reread());
|
|
5764
5765
|
}, [Be, ge, C == null ? void 0 : C.state, C == null ? void 0 : C.processedS, o]);
|
|
5765
|
-
const ae = mr(($ == null ? void 0 : $.state) ?? ((
|
|
5766
|
+
const ae = mr(($ == null ? void 0 : $.state) ?? ((ks = n == null ? void 0 : n.job) == null ? void 0 : ks.state) ?? (e.listen ? (v == null ? void 0 : v.state) === "finalized" ? "done" : v != null && v.state ? "transcribing" : void 0 : void 0)), fe = !!ie && (ae === "transcribing" || ae === "queued"), Ye = u && !r && (!n || (fe || ae === "cropping") && he.length === 0), U = fe ? ($ == null ? void 0 : $.pct) ?? 0 : 100, R = Yl(n == null ? void 0 : n.job, $) ?? (v == null ? void 0 : v.mediaDurationS) ?? null, q = ((js = ce.segments.values().next().value) == null ? void 0 : js.language) ?? (v == null ? void 0 : v.spokenLanguage) ?? null, se = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", de = ((bs = (Is = (zs = n == null ? void 0 : n.job) == null ? void 0 : zs.source) == null ? void 0 : Is.name) == null ? void 0 : bs.trim()) || null, be = n ? ((Os = n.name) == null ? void 0 : Os.trim()) || de : null, Ne = !!((Cs = n == null ? void 0 : n.job) != null && Cs.hasAudio), Le = (xs = n == null ? void 0 : n.job) == null ? void 0 : xs.source, Oe = !Ne && !!Le && (Le.kind !== "url" || Le.bytes != null) && (ae === "transcribing" || ae === "queued" || ae === "done"), He = ie && (n != null && n.allowDownload) && Ne ? co(e.origin, ie, e.cred) : null, $e = !!Le && (Le.kind !== "url" || Le.bytes != null), ut = Yu(He && $e ? He : null), it = He && (!$e || ut === "yes") ? He : He && ut === "unknown" ? null : ie && (n != null && n.allowDownload) && (Oe || Ne && $e) ? xn(e.origin, ie, "source", e.cred) : null, pt = he[he.length - 1], Ge = pt ? ((Ss = pt.words[pt.words.length - 1]) == null ? void 0 : Ss.end) ?? pt.start : 0, rt = u && fe ? Math.max(Ge, ($ == null ? void 0 : $.processedS) ?? 0) : null, gt = Bc(it, (Ne || Oe) && !!(n != null && n.allowDownload), he, R, Oe ? ((As = (Ds = n == null ? void 0 : n.job) == null ? void 0 : Ds.crop) == null ? void 0 : As.startS) ?? 0 : 0, rt), st = xo((Es = n == null ? void 0 : n.job) == null ? void 0 : Es.source), Ve = st && ((_s = Yr(st)) == null ? void 0 : _s.id) === "youtube" ? Ki(st) : null, hn = _o(Ve), Dt = Qc(he, R, ((Us = (Ys = n == null ? void 0 : n.job) == null ? void 0 : Ys.crop) == null ? void 0 : Us.startS) ?? 0, rt), Je = !!Ve, lt = Je ? Dt.player : gt, at = Fi(), Xt = k(null), re = Zc({ forcedVoice: t.voice ?? null, recordingId: ie, model: ce, rows: he, lenS: R, ended: !!ie && !fe, cred: e.cred, langs: at, srcLang: q, canTranslate: !!(n != null && n.allowTranslate), pickedLang: ne, setPickedLang: Z, side: s && !te ? Fc : void 0, hearOriginal: V, timed: !!Ve, stockVoices: u && !Re, stickyPicker: u, pickerBusy: Xt.current }), gn = k(null);
|
|
5766
5767
|
D(() => {
|
|
5767
5768
|
!ie || gn.current === J || (gn.current = J, G(J));
|
|
5768
5769
|
}, [J, ie]);
|
|
@@ -5777,36 +5778,36 @@ function Eu(t) {
|
|
|
5777
5778
|
const Vn = ze(() => he.filter((w) => w.sentenceId != null).map((w, me, Pe) => {
|
|
5778
5779
|
var We;
|
|
5779
5780
|
return { sid: w.sentenceId, start: w.start, end: ((We = Pe[me + 1]) == null ? void 0 : We.start) ?? Bt(w, w.start, w.start + 4) };
|
|
5780
|
-
}), [he]), At =
|
|
5781
|
+
}), [he]), At = sl({ on: Je && re.on, lines: Vn, clips: re.clips, t: z.t, playing: z.playing, muted: z.muted }), Et = !!J && (Ie || re.relang || re.on && At.missing != null);
|
|
5781
5782
|
Xt.current = Et ? J : null, D(() => {
|
|
5782
5783
|
Je && re.on && At.sid != null && re.setNear(At.sid);
|
|
5783
|
-
}, [At.sid, Je, re.on]),
|
|
5784
|
+
}, [At.sid, Je, re.on]), $c([lt, re.player], re.sampling);
|
|
5784
5785
|
const _t = k(null);
|
|
5785
5786
|
D(() => {
|
|
5786
5787
|
fe && !z.playing && _t.current && (_t.current.scrollTop = _t.current.scrollHeight);
|
|
5787
5788
|
}, [fe, he.length]);
|
|
5788
|
-
const Ht =
|
|
5789
|
+
const Ht = Kc(_t, he, m, j, y), Mn = /* @__PURE__ */ i(qc, { open: m, q: j, onQ: N, onClose: () => y(!1), hits: Ht, desk: s, inline: s }), qe = Uo({ name: n == null ? void 0 : n.name, sourceName: (Ps = (Rs = n == null ? void 0 : n.job) == null ? void 0 : Rs.source) == null ? void 0 : Ps.name, ytTitle: hn, url: ((Qs = ($s = n == null ? void 0 : n.job) == null ? void 0 : $s.source) == null ? void 0 : Qs.kind) === "url" ? n.job.source.url : t.src ?? null, id: o }), ot = !!(n != null && n.allowDownload), en = !!(n != null && n.allowExport), mt = re.readLang, Mt = mt ? ((Bs = at == null ? void 0 : at.languages.find((w) => w.code === mt)) == null ? void 0 : Bs.name) ?? mt.toUpperCase() : null, Wt = async () => {
|
|
5789
5790
|
if (ie)
|
|
5790
5791
|
try {
|
|
5791
5792
|
if (mt && re.canSpeak) {
|
|
5792
|
-
b(`Preparing ${qe} in ${Mt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await
|
|
5793
|
+
b(`Preparing ${qe} in ${Mt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await Pl(e, { recordingId: ie, lang: mt, voiceKey: re.readVoiceKey, cred: e.cred, request: re.requestTrack }), b(`Downloading ${qe} in ${Mt}.`);
|
|
5793
5794
|
return;
|
|
5794
5795
|
}
|
|
5795
5796
|
if (Ne) {
|
|
5796
|
-
b(`Preparing ${qe} as MP3 — the download starts when it is ready.`), await
|
|
5797
|
+
b(`Preparing ${qe} as MP3 — the download starts when it is ready.`), await Ul(xn(e.origin, ie, "delivery", e.cred)), b(`Downloading ${qe}.`);
|
|
5797
5798
|
return;
|
|
5798
5799
|
}
|
|
5799
|
-
|
|
5800
|
+
Qr(xn(e.origin, ie, "source", e.cred)), b(`Downloading ${qe} — the full audio, since the transcript is still being written.`);
|
|
5800
5801
|
} catch (w) {
|
|
5801
5802
|
throw g(zt(w)), w;
|
|
5802
5803
|
}
|
|
5803
5804
|
}, dt = (w) => {
|
|
5804
5805
|
if (!ie) return;
|
|
5805
5806
|
const me = Or.find((We) => We.key === w).name, Pe = Mt ? ` in ${Mt}` : "";
|
|
5806
|
-
return
|
|
5807
|
+
return Rl(e, ie, w, { lang: mt }).then(() => b(fe ? `${me} exported${Pe} for the first ${he.length} segments — the rest is still transcribing.` : `${me} exported${Pe}.`)).catch((We) => {
|
|
5807
5808
|
throw g(zt(We)), We;
|
|
5808
5809
|
});
|
|
5809
|
-
}, tn = fe ? "MORE TO COME…" : "END OF TRANSCRIPT", ct = fe ? "var(--brand)" : "var(--ink-28)", nn =
|
|
5810
|
+
}, tn = fe ? "MORE TO COME…" : "END OF TRANSCRIPT", ct = fe ? "var(--brand)" : "var(--ink-28)", nn = _l($, he.length), It = z.has && (!re.relang || !!Ve), Ze = k(z);
|
|
5810
5811
|
Ze.current = z;
|
|
5811
5812
|
const Yt = `${J ?? ""}|${re.on ? "voice" : "source"}`, wt = k({ key: Yt, idx: 0, t: 0, playing: !1, until: 0 });
|
|
5812
5813
|
D(() => {
|
|
@@ -5824,7 +5825,7 @@ function Eu(t) {
|
|
|
5824
5825
|
}
|
|
5825
5826
|
});
|
|
5826
5827
|
const Ut = k(!1), et = k(!1);
|
|
5827
|
-
u && (
|
|
5828
|
+
u && (Ci.video = !0);
|
|
5828
5829
|
const [fn, bt] = L(!1), [Hn, Wn] = L(!1);
|
|
5829
5830
|
D(() => {
|
|
5830
5831
|
if (!u || Ut.current || !It || !te || Ye || t.autoplay === !1) return;
|
|
@@ -5858,7 +5859,7 @@ function Eu(t) {
|
|
|
5858
5859
|
return;
|
|
5859
5860
|
}
|
|
5860
5861
|
et.current = !0, Ze.current.toggle();
|
|
5861
|
-
}, mn = (w) => /* @__PURE__ */ i(
|
|
5862
|
+
}, mn = (w) => /* @__PURE__ */ i(_c, { player: z, size: w }), rn = !!ie && !fe, [P, xe] = L(!1);
|
|
5862
5863
|
D(() => {
|
|
5863
5864
|
if (!Ie) {
|
|
5864
5865
|
xe(!1);
|
|
@@ -5867,16 +5868,16 @@ function Eu(t) {
|
|
|
5867
5868
|
const w = setTimeout(() => xe(!0), 180);
|
|
5868
5869
|
return () => clearTimeout(w);
|
|
5869
5870
|
}, [Ie]);
|
|
5870
|
-
const Qe = P ? Ae : J, Ct =
|
|
5871
|
+
const Qe = P ? Ae : J, Ct = Jl(ie, J, he, ke), Pt = gc(Mc(v), ie, re.readLang), ga = ot || en, Ma = (((Hs = (Vs = n == null ? void 0 : n.job) == null ? void 0 : Vs.crop) == null ? void 0 : Hs.startS) ?? 0) + Gt(z, he), vt = B === "listen", $t = vt && (!!Ve || u), fa = (w) => {
|
|
5871
5872
|
lt.pause(), re.player.pause(), Y(w), w === "read" && te && (on(!1), K(!1));
|
|
5872
5873
|
};
|
|
5873
5874
|
D(() => {
|
|
5874
5875
|
vt || (lt.playing && lt.pause(), re.player.playing && re.player.pause());
|
|
5875
5876
|
}, [vt, lt.playing, re.player.playing]);
|
|
5876
|
-
const Ue = re.barChip, Ft =
|
|
5877
|
-
w === "summary" && rn && /* @__PURE__ */ i(
|
|
5878
|
-
w === "export" && /* @__PURE__ */ i(
|
|
5879
|
-
] }),
|
|
5877
|
+
const Ue = re.barChip, Ft = Gi(Ue.label), Wr = /* @__PURE__ */ i(wr, { value: B, onChange: fa, bordered: !1, options: uu(Ft, !!Ve) }), Zt = [...rn ? [{ key: "summary", label: "Summary" }] : [], ...ga ? [{ key: "export", label: "Export" }] : []], Fr = (w) => /* @__PURE__ */ M(Ce, { children: [
|
|
5878
|
+
w === "summary" && rn && /* @__PURE__ */ i(fc, { s: Pt }),
|
|
5879
|
+
w === "export" && /* @__PURE__ */ i(hc, { audio: ot ? { name: qe, meta: mt && re.canSpeak || Ne ? `MP3${R ? ` · ${kt(R)}` : ""}` : "ORIGINAL AUDIO", onClick: Wt } : null, formats: en, onExport: dt })
|
|
5880
|
+
] }), pa = (w) => /* @__PURE__ */ i(Zl, { index: z.idx, total: Math.max(1, he.length), frac: z.dur > 0 ? Math.min(1, z.t / z.dur) : 0, glideMs: z.wordSync ? 0 : 220, atLabel: kt(z.t), durLabel: kt(z.dur), stepLabel: w ? `${z.idx + 1} / ${he.length}` : "", onSeek: re.relang ? Hc : z.seekRow, onSeekFrac: re.relang ? void 0 : z.seekFrac, onScrubStart: z.hold, onScrubEnd: z.release }), Zr = {
|
|
5880
5881
|
live: !1,
|
|
5881
5882
|
atEdge: !1,
|
|
5882
5883
|
edgeFrac: null,
|
|
@@ -5889,24 +5890,24 @@ function Eu(t) {
|
|
|
5889
5890
|
var me;
|
|
5890
5891
|
re.relang || (me = z.seekFrac) == null || me.call(z, w);
|
|
5891
5892
|
}
|
|
5892
|
-
}, [
|
|
5893
|
+
}, [ma, Na] = na(re.on && !!z.preparing && z.playing, 1500), Zn = re.on && ((Ws = z.error) == null ? void 0 : Ws.code) === "voice_not_started", Gn = re.canSpeak && !re.error && !Zn, Nn = J ? ((Fs = at == null ? void 0 : at.languages.find((w) => w.code === J)) == null ? void 0 : Fs.name) ?? Ue.label : "", tt = te ? Cc({ lang: J, langName: Nn, translating: Ie && !!J, translateFailed: Fe, voiceFailed: Zn, relang: re.relang, starting: re.on ? z.starting : null, slowLine: ma, lineSince: Na }) : null, qn = !!Ve && !!tt && (tt.kind === "translating" || tt.kind === "voice" && re.relang), Gr = !qn || !tt ? null : tt.kind === "translating" ? `Translating into ${Nn || "the new language"}…` : `Preparing the ${Nn || "translated"} voice…`, xt = !qn && ((tt == null ? void 0 : tt.kind) === "voice" || (tt == null ? void 0 : tt.kind) === "starting"), qr = _r({ ...re.langList, keepOpen: !0, open: T === "lang", onClose: () => O("main") }), Kr = Bo(Q, re.on), ya = u && Kr.bed && ot && ie && (!fe || it) ? ti(e.origin, ie, e.cred) : null, Jr = Jo(ya, { t: Gt(z, he), playing: z.playing && !xt && !(z.timed && z.preparing), muted: z.muted }), Ta = u && Kr.speech && ot && ie && (!fe || it) ? ti(e.origin, ie, e.cred, "speech") : null, Kn = $i(Ta, { t: Gt(z, he), playing: !re.on && z.playing, muted: z.muted }), Jn = !re.on && Kn.on;
|
|
5893
5894
|
D(() => {
|
|
5894
5895
|
var w;
|
|
5895
5896
|
Dt.setVideoSound(!(Je && (re.on || Jn))), (w = gt.silence) == null || w.call(gt, !Je && Jn);
|
|
5896
|
-
}, [Je, re.on, Jn,
|
|
5897
|
-
const Xn = ot ? re.on ?
|
|
5897
|
+
}, [Je, re.on, Jn, it]);
|
|
5898
|
+
const Xn = ot ? re.on ? Jr : Kn.state : "unavailable", er = we && Gn && !!J, wa = er ? [`Translated${re.hasClone ? Re ? ", cloned voices" : ", synthetic voices" : ""}`, !Q && ot && Jr !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : Q && Xn !== "unavailable" ? "Original speech, background removed" : "Original sound", va = () => {
|
|
5898
5899
|
if ((tt == null ? void 0 : tt.kind) === "translateFailed") {
|
|
5899
5900
|
G(J);
|
|
5900
5901
|
return;
|
|
5901
5902
|
}
|
|
5902
5903
|
et.current = !0, z.toggle();
|
|
5903
|
-
},
|
|
5904
|
+
}, La = () => {
|
|
5904
5905
|
const w = z.idx;
|
|
5905
5906
|
z.pause(), Z(null), et.current = !0, lt.playRow(w);
|
|
5906
|
-
},
|
|
5907
|
+
}, Xr = { prevOn: z.idx > 0, nextOn: z.idx < he.length - 1, onPrev: z.prev, onNext: z.next, playing: z.playing, playable: It, playTitle: re.playTitle ?? (z.playing ? "Pause" : "Play"), onPlay: () => {
|
|
5907
5908
|
et.current = !0, z.toggle();
|
|
5908
5909
|
}, busy: re.relang && !Ve || xt };
|
|
5909
|
-
|
|
5910
|
+
ol(It && vt ? { playing: z.playing, toggle: () => {
|
|
5910
5911
|
et.current = !0, z.toggle();
|
|
5911
5912
|
}, next: z.next, prev: z.prev } : null, be);
|
|
5912
5913
|
const tr = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, nr = (w, me) => !Ue.can || !x.language ? null : u ? /* @__PURE__ */ M("button", { type: "button", className: "gfull__btn", title: Et ? `${Ue.label ?? Ue.code}: still being prepared` : Ue.label ?? Ue.code, "aria-label": `Language: ${Ue.label ?? Ue.code}`, "aria-busy": Et || void 0, onClick: () => {
|
|
@@ -5914,44 +5915,44 @@ function Eu(t) {
|
|
|
5914
5915
|
}, style: { position: "relative" }, children: [
|
|
5915
5916
|
/* @__PURE__ */ i("span", { style: { fontSize: me === "sm" ? 17 : 21, lineHeight: 1 }, children: Ue.flag }),
|
|
5916
5917
|
Et && /* @__PURE__ */ i("span", { style: { position: "absolute", right: 2, bottom: 2, display: "flex", borderRadius: 999, background: "rgba(5,6,21,.7)", padding: 1 }, children: /* @__PURE__ */ i(ht, { size: 11, color: "#eef0f8", track: "rgba(255,255,255,.25)" }) })
|
|
5917
|
-
] }) : /* @__PURE__ */ i(Un, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, size: me, onClick: Ue.onClick, style: w }),
|
|
5918
|
-
}, busy: re.voiceWaiting || xt }, [
|
|
5918
|
+
] }) : /* @__PURE__ */ i(Un, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, size: me, onClick: Ue.onClick, style: w }), es = { on: !1, title: "Voices", onClick: () => {
|
|
5919
|
+
}, busy: re.voiceWaiting || xt }, [ka, ja] = L(!1);
|
|
5919
5920
|
D(() => {
|
|
5920
|
-
z.t > 0.3 &&
|
|
5921
|
+
z.t > 0.3 && ja(!0);
|
|
5921
5922
|
}, [z.t]);
|
|
5922
|
-
const
|
|
5923
|
+
const za = !Ve && u && ie && (n != null && n.allowDownload) && !fe && ((Zs = n == null ? void 0 : n.job) == null ? void 0 : Zs.hasVideo) !== !1 ? /* @__PURE__ */ i(ri, { src: xn(e.origin, ie, "video", e.cred), t: Gt(z, he), playing: z.playing && !xt, seekN: z.seekN, onToggle: z.has ? Rt : void 0 }, ie) : null, yn = !Ve && u && st && Oo(st) ? st : null, Tn = yn ? Ri(yn) : null, ts = ze(() => Tn ? Eo(Tn) : void 0, [Tn]), Ia = ts ? /* @__PURE__ */ i(ri, { setup: ts, seekOver: 1, t: Gt(z, he) + (((qs = (Gs = n == null ? void 0 : n.job) == null ? void 0 : Gs.crop) == null ? void 0 : qs.startS) ?? 0), playing: z.playing && !xt, seekN: z.seekN, onToggle: z.has ? Rt : void 0 }, Tn) : yn ? /* @__PURE__ */ i(So, { url: yn, t: Gt(z, he) + (((Js = (Ks = n == null ? void 0 : n.job) == null ? void 0 : Ks.crop) == null ? void 0 : Js.startS) ?? 0), playing: z.playing && !xt, seekN: z.seekN, title: qe }) : null, ba = z.has ? /* @__PURE__ */ M("div", { className: "txyt vsp-follow", children: [
|
|
5923
5924
|
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: Rt, style: { cursor: "pointer" } }),
|
|
5924
5925
|
/* @__PURE__ */ i("div", { className: `txyt__paused${z.playing ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(dn, { size: 44 }) }) })
|
|
5925
|
-
] }) : null,
|
|
5926
|
-
/* @__PURE__ */ i(
|
|
5926
|
+
] }) : null, ns = Ve ? /* @__PURE__ */ M(Ce, { children: [
|
|
5927
|
+
/* @__PURE__ */ i(Dc, { ytId: Ve, title: qe, t: Ma, playing: z.playing && !xt, waiting: re.on && !!z.timed && !!z.preparing, seekN: z.seekN, onTime: (w) => {
|
|
5927
5928
|
var me, Pe, We;
|
|
5928
5929
|
return (We = z.videoAt) == null ? void 0 : We.call(z, w - (((Pe = (me = n == null ? void 0 : n.job) == null ? void 0 : me.crop) == null ? void 0 : Pe.startS) ?? 0));
|
|
5929
5930
|
}, onToggle: z.has ? Rt : void 0, onAd: Wn, lead: Je ? Dt.lead : void 0 }),
|
|
5930
|
-
/* @__PURE__ */ M("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity:
|
|
5931
|
+
/* @__PURE__ */ M("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity: ka ? 0 : 1 }, children: [
|
|
5931
5932
|
/* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Ve}/hqdefault.jpg)` } }),
|
|
5932
5933
|
/* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(dn, { size: 44 }) })
|
|
5933
5934
|
] })
|
|
5934
5935
|
] }) : u ? /* @__PURE__ */ M(Ce, { children: [
|
|
5935
5936
|
/* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
|
|
5936
|
-
|
|
5937
|
-
|
|
5938
|
-
|
|
5939
|
-
] }) : null,
|
|
5937
|
+
ba,
|
|
5938
|
+
Ia,
|
|
5939
|
+
za
|
|
5940
|
+
] }) : null, rs = $t && Ve && !te ? /* @__PURE__ */ i(pc, { ytId: Ve, title: qe, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: ns, children: /* @__PURE__ */ i(au, { pos: Zr, transport: Xr, chip: nr({ ...tr, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: es, onFull: () => {
|
|
5940
5941
|
on(!0), K(!0);
|
|
5941
|
-
}, copied: null }) }) : null, Xe = z.wordSync ?
|
|
5942
|
+
}, copied: null }) }) : null, Xe = z.wordSync ? Bl(he, z.idx, z.t) ? he[z.idx] : void 0 : he[z.idx];
|
|
5942
5943
|
for (const w of he) for (const [me, Pe] of Object.entries(w.translations)) Pe && A.current.set(`${w.sentenceId ?? w.start}|${me}`, Pe);
|
|
5943
|
-
const
|
|
5944
|
+
const ss = (w, me) => w.translations[me] || A.current.get(`${w.sentenceId ?? w.start}|${me}`) || null, rr = (w, me) => !w || !me || w.language === me || !!ss(w, me), Lt = rr(Xe, J) ? J : rr(Xe, F.current) ? F.current : J;
|
|
5944
5945
|
Xe && rr(Xe, Lt) && (F.current = Lt);
|
|
5945
|
-
const
|
|
5946
|
+
const is = Xe && Lt && Xe.language !== Lt ? ss(Xe, Lt) : null, Oa = Xe && is && Lt && !Xe.translations[Lt] ? Object.assign([...he], { [z.idx]: { ...Xe, translations: { ...Xe.translations, [Lt]: is } } }) : he, wn = Xe ? ra(Oa, z.idx, Lt) : [], vn = Te ? Te === "on" : !u || re.on || !Qe || Qe === q, as = vn ? mi(z, z.idx, wn) : null, os = wn.map((w, me) => ({ t: w.text, sp: me < wn.length - 1 ? " " : "", dim: as != null && me > as })), Ln = pe ? pe === "on" : u ? !1 : wl(ce, he, v == null ? void 0 : v.settings), ls = { lang: J, subtitles: Se, speakerLabels: Ln, wordHighlight: vn, translateAudio: we, voices: Re ? "cloned" : "synthetic", removeBackground: Q }, Ca = JSON.stringify(ls), kn = k(t.onSettingsChange);
|
|
5946
5947
|
kn.current = t.onSettingsChange, D(() => {
|
|
5947
5948
|
var w;
|
|
5948
|
-
(w = kn.current) == null || w.call(kn,
|
|
5949
|
-
}, [
|
|
5950
|
-
const jn = Xe && Xe.speaker >= 0 && Ln ?
|
|
5949
|
+
(w = kn.current) == null || w.call(kn, ls);
|
|
5950
|
+
}, [Ca]);
|
|
5951
|
+
const jn = Xe && Xe.speaker >= 0 && Ln ? Pr(ce, Xe.speaker) : null, [xa, cs] = L(!1), [sr, us] = L(null), [Sa, ds] = L(null), ir = k(void 0);
|
|
5951
5952
|
D(() => () => window.clearTimeout(ir.current), []);
|
|
5952
5953
|
const ar = k(void 0);
|
|
5953
5954
|
D(() => () => window.clearTimeout(ar.current), []);
|
|
5954
|
-
const
|
|
5955
|
+
const hs = (w) => {
|
|
5955
5956
|
if (t.shareUrl) return t.shareUrl(w);
|
|
5956
5957
|
const me = new URL(window.location.href);
|
|
5957
5958
|
return w != null && w > 0 ? me.searchParams.set("t", String(w)) : me.searchParams.delete("t"), me.href;
|
|
@@ -5963,19 +5964,19 @@ function Eu(t) {
|
|
|
5963
5964
|
let me = 0;
|
|
5964
5965
|
for (let Pe = 0; Pe < he.length; Pe++) he[Pe].start <= w && (me = Pe);
|
|
5965
5966
|
z.seekRow(me);
|
|
5966
|
-
},
|
|
5967
|
+
}, gs = k(!1);
|
|
5967
5968
|
D(() => {
|
|
5968
5969
|
const w = zn.current;
|
|
5969
|
-
w == null ||
|
|
5970
|
+
w == null || gs.current || !z.has || he.length === 0 || (gs.current = !0, or(w));
|
|
5970
5971
|
}, [z.has, he.length]), D(() => {
|
|
5971
5972
|
const w = zn.current;
|
|
5972
5973
|
w == null || !z.playing || (zn.current = null, Math.abs(z.t - w) > 2 && or(w));
|
|
5973
5974
|
}, [z.playing]);
|
|
5974
|
-
const
|
|
5975
|
+
const Da = (w) => {
|
|
5975
5976
|
et.current = !0, zn.current = null, or(Math.max(0, w));
|
|
5976
5977
|
};
|
|
5977
5978
|
t.handle.current = {
|
|
5978
|
-
seek: (w) =>
|
|
5979
|
+
seek: (w) => Da(w),
|
|
5979
5980
|
play: () => {
|
|
5980
5981
|
et.current = !0, vt && !Ze.current.playing && Ze.current.toggle();
|
|
5981
5982
|
},
|
|
@@ -5991,30 +5992,30 @@ function Eu(t) {
|
|
|
5991
5992
|
}, D(() => () => {
|
|
5992
5993
|
t.handle.current = null;
|
|
5993
5994
|
}, []);
|
|
5994
|
-
const
|
|
5995
|
-
|
|
5996
|
-
const
|
|
5997
|
-
|
|
5995
|
+
const Ms = k(t.onPlayback);
|
|
5996
|
+
Ms.current = t.onPlayback;
|
|
5997
|
+
const fs = k(J);
|
|
5998
|
+
fs.current = J, D(() => {
|
|
5998
5999
|
let w = "";
|
|
5999
6000
|
const me = () => {
|
|
6000
|
-
const We =
|
|
6001
|
+
const We = Ms.current;
|
|
6001
6002
|
if (!We) return;
|
|
6002
|
-
const Nt = Ze.current, ft = { t: Nt.t, dur: Nt.dur, playing: Nt.playing, idx: Nt.idx, seekN: Nt.seekN, lang:
|
|
6003
|
+
const Nt = Ze.current, ft = { t: Nt.t, dur: Nt.dur, playing: Nt.playing, idx: Nt.idx, seekN: Nt.seekN, lang: fs.current, muted: Nt.muted }, Cn = `${ft.t.toFixed(2)}|${ft.dur}|${ft.playing}|${ft.idx}|${ft.seekN}|${ft.lang}|${ft.muted}`;
|
|
6003
6004
|
Cn !== w && (w = Cn, We(ft));
|
|
6004
6005
|
};
|
|
6005
6006
|
me();
|
|
6006
|
-
const Pe = window.setInterval(me,
|
|
6007
|
+
const Pe = window.setInterval(me, Au);
|
|
6007
6008
|
return () => window.clearInterval(Pe);
|
|
6008
6009
|
}, []);
|
|
6009
|
-
const
|
|
6010
|
-
window.clearTimeout(ar.current),
|
|
6011
|
-
}),
|
|
6012
|
-
const We = Or.find((Cn) => Cn.key === w), Nt = sr === w, ft =
|
|
6010
|
+
const Aa = () => t.onShare ? t.onShare() : Br(hs(null), qe, () => {
|
|
6011
|
+
window.clearTimeout(ar.current), cs(!0), ar.current = window.setTimeout(() => cs(!1), 2200);
|
|
6012
|
+
}), ps = (w, me, Pe) => {
|
|
6013
|
+
const We = Or.find((Cn) => Cn.key === w), Nt = sr === w, ft = Sa === w;
|
|
6013
6014
|
return /* @__PURE__ */ M("div", { className: "srow srow--tap", role: "button", "aria-busy": Nt || void 0, style: sr && !Nt ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
|
|
6014
|
-
sr || (
|
|
6015
|
-
|
|
6015
|
+
sr || (us(w), Promise.resolve().then(() => dt(w)).then(() => {
|
|
6016
|
+
ds(w), window.clearTimeout(ir.current), ir.current = window.setTimeout(() => ds(null), 1600);
|
|
6016
6017
|
}).catch(() => {
|
|
6017
|
-
}).finally(() =>
|
|
6018
|
+
}).finally(() => us(null)));
|
|
6018
6019
|
}, children: [
|
|
6019
6020
|
Nt ? /* @__PURE__ */ i(ht, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: We.icon, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
|
|
6020
6021
|
/* @__PURE__ */ M("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -6023,15 +6024,15 @@ function Eu(t) {
|
|
|
6023
6024
|
] }),
|
|
6024
6025
|
/* @__PURE__ */ i(oe, { d: ft ? X.check : X.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: ft ? "var(--brand)" : "var(--ink-62)" } })
|
|
6025
6026
|
] });
|
|
6026
|
-
},
|
|
6027
|
+
}, Ea = /* @__PURE__ */ M("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
6027
6028
|
" ",
|
|
6028
6029
|
/* @__PURE__ */ M("button", { type: "button", onClick: () => O("main"), "aria-label": "Back", style: { position: "absolute", left: -6, top: "50%", transform: "translateY(-50%)", display: "inline-flex", alignItems: "center", gap: 2, padding: "4px 6px 4px 0", border: 0, background: "none", color: "var(--ink-96)", fontFamily: "var(--vs-font-sans)", fontSize: 15, fontWeight: 600, letterSpacing: 0, lineHeight: 1, whiteSpace: "nowrap", cursor: "pointer" }, children: [
|
|
6029
6030
|
/* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 18, sw: 1.8 }),
|
|
6030
6031
|
"Back"
|
|
6031
6032
|
] })
|
|
6032
|
-
] }), In = /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }),
|
|
6033
|
-
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children:
|
|
6034
|
-
|
|
6033
|
+
] }), In = /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), _a = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[T], bn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, lr = u ? /* @__PURE__ */ i(Jt, { open: ee, onClose: () => I(!1), title: _a, titleNode: T === "main" ? void 0 : Ea, doneLabel: Ft.done, kind: T === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(vr, { children: T === "lang" ? /* @__PURE__ */ M("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
6034
|
+
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: qr.search }),
|
|
6035
|
+
qr.list
|
|
6035
6036
|
] }) : T === "subs" ? /* @__PURE__ */ M("div", { style: bn, children: [
|
|
6036
6037
|
/* @__PURE__ */ M("div", { className: "srow", children: [
|
|
6037
6038
|
/* @__PURE__ */ M("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -6072,13 +6073,13 @@ function Eu(t) {
|
|
|
6072
6073
|
/* @__PURE__ */ M("div", { className: "srow", children: [
|
|
6073
6074
|
/* @__PURE__ */ M("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6074
6075
|
/* @__PURE__ */ i("div", { className: "srow__t", children: Rn }),
|
|
6075
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
6076
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: Qo(Q, Xn, "video", re.on ? 0 : Kn.untilS) })
|
|
6076
6077
|
] }),
|
|
6077
6078
|
/* @__PURE__ */ i(Tt, { checked: Q && ot, onChange: H, label: Rn, disabled: !ot || Xn === "unavailable" && !Q })
|
|
6078
6079
|
] })
|
|
6079
6080
|
] }) : T === "export" ? /* @__PURE__ */ M("div", { style: bn, children: [
|
|
6080
|
-
|
|
6081
|
-
|
|
6081
|
+
ps("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
|
|
6082
|
+
ps("pdf", "PDF", "Formatted transcript in paragraphs, with timestamps and speaker labels")
|
|
6082
6083
|
] }) : /* @__PURE__ */ i("div", { style: bn, children: [
|
|
6083
6084
|
Ue.can && x.language && /* @__PURE__ */ M("div", { className: "srow srow--tap", role: "button", onClick: () => O("lang"), children: [
|
|
6084
6085
|
/* @__PURE__ */ M("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -6098,7 +6099,7 @@ function Eu(t) {
|
|
|
6098
6099
|
x.audio && /* @__PURE__ */ M("div", { className: "srow srow--tap", role: "button", onClick: () => O("audio"), children: [
|
|
6099
6100
|
/* @__PURE__ */ M("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6100
6101
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Audio" }),
|
|
6101
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
6102
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: wa })
|
|
6102
6103
|
] }),
|
|
6103
6104
|
In
|
|
6104
6105
|
] }, "audio"),
|
|
@@ -6129,42 +6130,42 @@ function Eu(t) {
|
|
|
6129
6130
|
] }),
|
|
6130
6131
|
t.settingsExtra
|
|
6131
6132
|
] }) }), St = te && $t && (!!Ve || u) && /* @__PURE__ */ i(
|
|
6132
|
-
|
|
6133
|
+
oa,
|
|
6133
6134
|
{
|
|
6134
6135
|
page: (t.layout ?? "embed") === "page",
|
|
6135
|
-
picture:
|
|
6136
|
+
picture: ns,
|
|
6136
6137
|
title: qe,
|
|
6137
6138
|
desk: s,
|
|
6138
|
-
pos:
|
|
6139
|
+
pos: Zr,
|
|
6139
6140
|
mute: { muted: z.muted, onToggle: pn },
|
|
6140
6141
|
cc: x.subtitles ? { on: Se, onToggle: () => ve((w) => !w) } : void 0,
|
|
6141
6142
|
noFull: !x.fullscreen,
|
|
6142
6143
|
ad: Hn,
|
|
6143
|
-
wait: tt && !qn ? /* @__PURE__ */ i(
|
|
6144
|
+
wait: tt && !qn ? /* @__PURE__ */ i(Sc, { state: tt, line: xt ? os.map((w) => w.t + w.sp).join("") : null, onRetry: va, onOriginal: La }) : z.edgeWait ? `Transcribing ${Math.round(U)}% — it plays on as more is written` : null,
|
|
6144
6145
|
pct: fe ? Math.round(U) : null,
|
|
6145
|
-
sub: Se && Xe ? { who: jn ?
|
|
6146
|
+
sub: Se && Xe ? { who: jn ? Rr(ce, Xe.speaker) : null, color: jn ? jn.fg ?? `var(--lane-${jn.lane})` : "#fff", words: os, cursor: mi(z, z.idx, wn) } : null,
|
|
6146
6147
|
chip: nr(s ? tr : { ...tr, width: 64, padding: "0 6px" }, s ? void 0 : "sm"),
|
|
6147
|
-
transport:
|
|
6148
|
+
transport: Xr,
|
|
6148
6149
|
picker: re.sheets,
|
|
6149
6150
|
sheet: u ? lr : null,
|
|
6150
6151
|
voices: null,
|
|
6151
|
-
voicesBtn: u ? null :
|
|
6152
|
+
voicesBtn: u ? null : es,
|
|
6152
6153
|
sheetOpen: re.sheetsOpen || ee,
|
|
6153
|
-
onShare: u && x.share ?
|
|
6154
|
+
onShare: u && x.share ? Aa : void 0,
|
|
6154
6155
|
onSettings: u && x.settings ? () => {
|
|
6155
6156
|
re.closePicker(), I((w) => !w);
|
|
6156
6157
|
} : void 0,
|
|
6157
6158
|
compact: !!t.compact,
|
|
6158
|
-
paused: { title: qe, summary: Pt.state === "ready" ? Pt.summary ?? null : null, share: x.share && (t.shareUrl || !t.onShare) ? { url:
|
|
6159
|
-
copied:
|
|
6159
|
+
paused: { title: qe, summary: Pt.state === "ready" ? Pt.summary ?? null : null, share: x.share && (t.shareUrl || !t.onShare) ? { url: hs, at: z.t } : null },
|
|
6160
|
+
copied: xa ? /* @__PURE__ */ M("div", { className: "gfull__toast", "aria-live": "polite", children: [
|
|
6160
6161
|
/* @__PURE__ */ i(oe, { d: X.check, size: 13, sw: 2 }),
|
|
6161
6162
|
"Link copied"
|
|
6162
6163
|
] }) : fn ? /* @__PURE__ */ M("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
|
|
6163
6164
|
/* @__PURE__ */ i(oe, { d: X.volumeOff, size: 14, sw: 1.8 }),
|
|
6164
6165
|
"Tap for sound"
|
|
6165
|
-
] }) :
|
|
6166
|
+
] }) : Gr ? /* @__PURE__ */ M("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
6166
6167
|
/* @__PURE__ */ i(ht, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
6167
|
-
|
|
6168
|
+
Gr
|
|
6168
6169
|
] }) : re.on && (Je ? At.missing != null : z.silent) ? /* @__PURE__ */ M("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
6169
6170
|
/* @__PURE__ */ i(ht, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
6170
6171
|
`${Nn || "Translated"} voice is still being prepared · playing with subtitles`
|
|
@@ -6180,7 +6181,7 @@ function Eu(t) {
|
|
|
6180
6181
|
D(() => {
|
|
6181
6182
|
!u && te && !$t && (on(!1), K(!1));
|
|
6182
6183
|
}, [u, te, $t]);
|
|
6183
|
-
const
|
|
6184
|
+
const ms = fe && /* @__PURE__ */ M("div", { className: `pubprog${s ? " pubprog--desk" : ""}${m ? " pubprog--find" : ""}`, children: [
|
|
6184
6185
|
/* @__PURE__ */ M("div", { className: "pubprog__row", children: [
|
|
6185
6186
|
/* @__PURE__ */ i("span", { className: "l", children: `TRANSCRIBING ${U}%` }),
|
|
6186
6187
|
!s && /* @__PURE__ */ i("div", { style: { flex: 1 } }),
|
|
@@ -6188,57 +6189,57 @@ function Eu(t) {
|
|
|
6188
6189
|
/* @__PURE__ */ i("span", { className: "s", children: nn })
|
|
6189
6190
|
] }),
|
|
6190
6191
|
!s && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) })
|
|
6191
|
-
] }), cr = r && /* @__PURE__ */ i("div", { className: "hint", style: { padding: "30px 20px", textAlign: "center", fontSize: 13 }, children: "This link is no longer shared. Ask the person who sent it for a new one." }),
|
|
6192
|
+
] }), cr = r && /* @__PURE__ */ i("div", { className: "hint", style: { padding: "30px 20px", textAlign: "center", fontSize: 13 }, children: "This link is no longer shared. Ask the person who sent it for a new one." }), Ns = /* @__PURE__ */ i(Gc, { model: ce, rows: he, player: vt ? z : { ...z, playRow: z.seekRow }, tail: tn, tailFg: ct, running: fe, desk: s, feedRef: _t, listener: !0, showLabels: Ln, find: j, findOpen: !s && m, lang: Qe, warm: P, onVisible: Ct, wordHl: vn }), ur = /* @__PURE__ */ i(Fl, { error: d ?? W ?? (Zn && te ? null : z.error) ?? re.error, onClose: () => {
|
|
6192
6193
|
g(null), ye(), z.clearError(), re.clearError();
|
|
6193
|
-
} }),
|
|
6194
|
+
} }), ys = [R ? kt(R) : null, q ? q.toUpperCase() : null, se || "Read-only copy"].filter(Boolean).join(" · "), Ts = (w) => /* @__PURE__ */ i("div", { className: "ctrans", children: re.noVoice ? re.noVoiceNote : /* @__PURE__ */ M(Ce, { children: [
|
|
6194
6195
|
/* @__PURE__ */ M("div", { className: "ctrans__row", children: [
|
|
6195
6196
|
/* @__PURE__ */ i("span", { className: "ctrans__sp", "aria-hidden": "true" }),
|
|
6196
6197
|
/* @__PURE__ */ M("div", { className: "ctrans__mid", children: [
|
|
6197
6198
|
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: z.idx <= 0 ? 0.3 : 1 }, onClick: z.prev, children: /* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 16, sw: 1.8 }) }),
|
|
6198
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : z.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (z.playing ? "Pause" : "Play"), disabled: !It, onClick: z.toggle, children: re.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: z.playing ? void 0 : { marginLeft: 2 }, children: z.playing ?
|
|
6199
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : z.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (z.playing ? "Pause" : "Play"), disabled: !It, onClick: z.toggle, children: re.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: z.playing ? void 0 : { marginLeft: 2 }, children: z.playing ? Ac : Ec }) }),
|
|
6199
6200
|
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: z.idx >= he.length - 1 ? 0.3 : 1 }, onClick: z.next, children: /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 16, sw: 1.8 }) })
|
|
6200
6201
|
] }),
|
|
6201
6202
|
/* @__PURE__ */ i("span", { className: "ctrans__mute", children: mn(36) })
|
|
6202
6203
|
] }),
|
|
6203
|
-
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children:
|
|
6204
|
-
] }) }),
|
|
6204
|
+
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children: pa(w) })
|
|
6205
|
+
] }) }), Ya = yc("ga", { tabs: Zt, cur: h, pref: (Xs = Zt[0]) == null ? void 0 : Xs.key, onPick: f }), ws = Math.max(0, Math.min(100, Math.round(U))), Ua = Ye && /* @__PURE__ */ M("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
|
|
6205
6206
|
Ve && /* @__PURE__ */ i("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Ve}/hqdefault.jpg)` } }),
|
|
6206
6207
|
/* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ M(Ce, { children: [
|
|
6207
6208
|
qe && /* @__PURE__ */ i("div", { className: "gfull__holdt", children: qe }),
|
|
6208
|
-
/* @__PURE__ */ i("div", { className: "gfull__holdpct", children: ae === "transcribing" ? `${
|
|
6209
|
-
/* @__PURE__ */ i("div", { className: "gfull__holdbar", children: /* @__PURE__ */ i("div", { style: { width: `${ae === "transcribing" ?
|
|
6209
|
+
/* @__PURE__ */ i("div", { className: "gfull__holdpct", children: ae === "transcribing" ? `${ws}%` : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin" }) }),
|
|
6210
|
+
/* @__PURE__ */ i("div", { className: "gfull__holdbar", children: /* @__PURE__ */ i("div", { style: { width: `${ae === "transcribing" ? ws : 0}%` } }) }),
|
|
6210
6211
|
/* @__PURE__ */ M("div", { className: "gfull__holds", children: [
|
|
6211
6212
|
ae === "transcribing" ? "Transcribing" : ae === "cropping" ? "Preparing the video" : "Waiting to start",
|
|
6212
6213
|
ae === "transcribing" && ($ != null && $.segmentsDone) ? ` · ${nn.toLowerCase()}` : ""
|
|
6213
6214
|
] }),
|
|
6214
6215
|
/* @__PURE__ */ i("div", { className: "gfull__holdn", children: "The video starts as soon as the first lines are transcribed." })
|
|
6215
6216
|
] }) : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
|
|
6216
|
-
] }),
|
|
6217
|
+
] }), vs = u && n && (fe || ae === "cropping") ? Math.max(0, Math.min(100, Math.round(U))) : null, On = k(t.onProgress);
|
|
6217
6218
|
On.current = t.onProgress, D(() => {
|
|
6218
6219
|
var w;
|
|
6219
|
-
(w = On.current) == null || w.call(On,
|
|
6220
|
-
}, [
|
|
6221
|
-
const [
|
|
6220
|
+
(w = On.current) == null || w.call(On, vs);
|
|
6221
|
+
}, [vs]);
|
|
6222
|
+
const [Ra, dr] = L(!1), hr = !!St && !Ye && (Je ? !!z.ended : !z.playing && z.dur > 0 && z.t >= z.dur - 0.5);
|
|
6222
6223
|
D(() => {
|
|
6223
6224
|
hr || dr(!1);
|
|
6224
6225
|
}, [hr]);
|
|
6225
|
-
const
|
|
6226
|
+
const Pa = t.endCard !== !1 && hr && !Ra && /* @__PURE__ */ i(Nu, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => dr(!0), onReplay: () => {
|
|
6226
6227
|
dr(!0), et.current = !0, z.seekFrac ? z.seekFrac(0) : z.seekRow(0), z.playing || z.toggle();
|
|
6227
6228
|
} });
|
|
6228
6229
|
if (u) return /* @__PURE__ */ M(Ce, { children: [
|
|
6229
|
-
r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: cr }) :
|
|
6230
|
-
|
|
6230
|
+
r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: cr }) : Ua || St || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
|
|
6231
|
+
Pa,
|
|
6231
6232
|
ur
|
|
6232
6233
|
] });
|
|
6233
6234
|
if (s) {
|
|
6234
|
-
const w = vt && !$t && !r && /* @__PURE__ */ i("div", { className: "pubdeskctl", children:
|
|
6235
|
+
const w = vt && !$t && !r && /* @__PURE__ */ i("div", { className: "pubdeskctl", children: Ts(!0) }), me = !r && (Zt.length > 0 || $t || !!re.sidePanel || !!w);
|
|
6235
6236
|
return /* @__PURE__ */ M(Ce, { children: [
|
|
6236
6237
|
/* @__PURE__ */ i("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ M("div", { className: "gcolhead", children: [
|
|
6237
6238
|
/* @__PURE__ */ i("div", { className: "gcolhead__main", children: /* @__PURE__ */ M("div", { className: "gcolhead__col", children: [
|
|
6238
6239
|
/* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i(Qn, { dark: a, height: 20.38 }) }),
|
|
6239
6240
|
!r && /* @__PURE__ */ M("div", { className: "dhead__session", children: [
|
|
6240
6241
|
/* @__PURE__ */ i("span", { className: "t", children: n ? qe : "" }),
|
|
6241
|
-
/* @__PURE__ */ i("span", { className: "s", children: n ?
|
|
6242
|
+
/* @__PURE__ */ i("span", { className: "s", children: n ? ys : "" })
|
|
6242
6243
|
] })
|
|
6243
6244
|
] }) }),
|
|
6244
6245
|
me && /* @__PURE__ */ i("div", { className: "gcolhead__side" })
|
|
@@ -6247,18 +6248,18 @@ function Eu(t) {
|
|
|
6247
6248
|
/* @__PURE__ */ M("div", { className: "listenerlive__main", children: [
|
|
6248
6249
|
cr,
|
|
6249
6250
|
!r && Mn,
|
|
6250
|
-
|
|
6251
|
+
ms,
|
|
6251
6252
|
p && /* @__PURE__ */ i("div", { className: "pubflash", children: p }),
|
|
6252
|
-
!r && /* @__PURE__ */ i("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children:
|
|
6253
|
+
!r && /* @__PURE__ */ i("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children: Ns }),
|
|
6253
6254
|
!r && /* @__PURE__ */ M("div", { className: "listenerlive__inner gdeskbar", "data-transport": "1", children: [
|
|
6254
6255
|
Ue.can && /* @__PURE__ */ i("span", { className: "barchip", style: Ue.active ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)", borderRadius: 12 } : void 0, children: /* @__PURE__ */ i(Un, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, onClick: Ue.onClick }) }),
|
|
6255
|
-
|
|
6256
|
+
Wr
|
|
6256
6257
|
] })
|
|
6257
6258
|
] }),
|
|
6258
|
-
me && /* @__PURE__ */ M(
|
|
6259
|
+
me && /* @__PURE__ */ M(vc, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
|
|
6259
6260
|
!re.sidePanel && w,
|
|
6260
|
-
!re.sidePanel &&
|
|
6261
|
-
!re.sidePanel && Zt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(
|
|
6261
|
+
!re.sidePanel && rs,
|
|
6262
|
+
!re.sidePanel && Zt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(Tc, { col: Ya, order: ["summary", "export"], onPick: f, grip: { summary: 40, export: 28 }, render: (Pe) => /* @__PURE__ */ i(ei, { panel: !0, children: Fr(Pe) }) }) }),
|
|
6262
6263
|
re.sidePanel
|
|
6263
6264
|
] })
|
|
6264
6265
|
] }),
|
|
@@ -6268,26 +6269,26 @@ function Eu(t) {
|
|
|
6268
6269
|
ur
|
|
6269
6270
|
] });
|
|
6270
6271
|
}
|
|
6271
|
-
const
|
|
6272
|
-
/* @__PURE__ */ i(
|
|
6273
|
-
h !== "none" &&
|
|
6272
|
+
const $a = Zt.length > 0 && !m && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ M(ei, { panel: !0, children: [
|
|
6273
|
+
/* @__PURE__ */ i(ea, { tabs: Zt, current: h, onPick: f, gap: h !== "none" }),
|
|
6274
|
+
h !== "none" && Fr(h)
|
|
6274
6275
|
] }) });
|
|
6275
6276
|
return /* @__PURE__ */ M(Ce, { children: [
|
|
6276
|
-
/* @__PURE__ */ i(
|
|
6277
|
+
/* @__PURE__ */ i(lu, { dark: a, title: n ? qe : "", subline: n ? ys : "", onOptions: () => I(!0), optionsActive: ee }),
|
|
6277
6278
|
cr,
|
|
6278
|
-
|
|
6279
|
-
!r &&
|
|
6280
|
-
!r &&
|
|
6279
|
+
ms,
|
|
6280
|
+
!r && $a,
|
|
6281
|
+
!r && rs,
|
|
6281
6282
|
!r && /* @__PURE__ */ M("div", { style: { position: "relative", flex: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
|
|
6282
6283
|
Mn,
|
|
6283
|
-
|
|
6284
|
+
Ns,
|
|
6284
6285
|
p && /* @__PURE__ */ i("div", { className: "txflash", children: p })
|
|
6285
6286
|
] }),
|
|
6286
6287
|
!r && /* @__PURE__ */ M("div", { className: "gbottom", "data-transport": "1", children: [
|
|
6287
|
-
vt && !$t && /* @__PURE__ */ i("div", { className: "pubctl", children:
|
|
6288
|
+
vt && !$t && /* @__PURE__ */ i("div", { className: "pubctl", children: Ts(!1) }),
|
|
6288
6289
|
/* @__PURE__ */ M("div", { className: "gbottom__bar", children: [
|
|
6289
6290
|
Ue.can && /* @__PURE__ */ i("div", { style: { flex: "none" }, children: nr({ width: 87 }, void 0) }),
|
|
6290
|
-
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children:
|
|
6291
|
+
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children: Wr })
|
|
6291
6292
|
] })
|
|
6292
6293
|
] }),
|
|
6293
6294
|
!St && re.sheets,
|
|
@@ -6296,13 +6297,13 @@ function Eu(t) {
|
|
|
6296
6297
|
ur
|
|
6297
6298
|
] });
|
|
6298
6299
|
}
|
|
6299
|
-
function
|
|
6300
|
+
function Yu(t) {
|
|
6300
6301
|
const [e, n] = L(null);
|
|
6301
6302
|
return D(() => {
|
|
6302
6303
|
if (!t || (e == null ? void 0 : e.url) === t && e.ok) return;
|
|
6303
6304
|
let r = !0, s;
|
|
6304
6305
|
const a = () => {
|
|
6305
|
-
|
|
6306
|
+
lo(t).then((o) => {
|
|
6306
6307
|
r && (n({ url: t, ok: o }), o || (s = setTimeout(a, 3e3)));
|
|
6307
6308
|
});
|
|
6308
6309
|
};
|
|
@@ -6311,62 +6312,62 @@ function _u(t) {
|
|
|
6311
6312
|
};
|
|
6312
6313
|
}, [t, (e == null ? void 0 : e.url) === t && (e == null ? void 0 : e.ok)]), !t || (e == null ? void 0 : e.url) !== t ? "unknown" : e.ok ? "yes" : "no";
|
|
6313
6314
|
}
|
|
6314
|
-
function
|
|
6315
|
+
function Gu({ site: t, size: e = 16, tinted: n = !1, style: r, className: s }) {
|
|
6315
6316
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: e, height: e, "aria-hidden": "true", className: s, style: { flex: "none", display: "block", color: n ? t.color : void 0, ...r }, children: /* @__PURE__ */ i("path", { d: t.glyph, fill: "currentColor", fillRule: "evenodd" }) });
|
|
6316
6317
|
}
|
|
6317
6318
|
export {
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
|
|
6323
|
-
|
|
6324
|
-
|
|
6325
|
-
|
|
6326
|
-
|
|
6327
|
-
|
|
6319
|
+
hc as ExportPanel,
|
|
6320
|
+
oa as FullVideo,
|
|
6321
|
+
au as MiniPlayer,
|
|
6322
|
+
_c as MuteButton,
|
|
6323
|
+
Hc as NO_SEEK,
|
|
6324
|
+
Ac as PAUSE_D,
|
|
6325
|
+
Ec as PLAY_D,
|
|
6326
|
+
Fc as PUB_SIDE,
|
|
6327
|
+
Fu as PanelSeek,
|
|
6328
|
+
Ll as PlayerApiProvider,
|
|
6328
6329
|
Rn as REMOVE_BG_LABEL,
|
|
6329
|
-
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
|
|
6333
|
-
|
|
6334
|
-
|
|
6335
|
-
|
|
6336
|
-
|
|
6337
|
-
|
|
6338
|
-
|
|
6339
|
-
|
|
6340
|
-
|
|
6341
|
-
|
|
6330
|
+
Po as REMOVE_BG_NOTE,
|
|
6331
|
+
Zl as ReplayScrub,
|
|
6332
|
+
Ui as SITES,
|
|
6333
|
+
Gu as SiteIcon,
|
|
6334
|
+
nc as SpeakerCast,
|
|
6335
|
+
fc as SummaryPanel,
|
|
6336
|
+
Wu as Transport,
|
|
6337
|
+
qc as TxFind,
|
|
6338
|
+
Gc as TxLines,
|
|
6339
|
+
Zu as VocalStackPlayer,
|
|
6340
|
+
rc as VoiceSheetBody,
|
|
6341
|
+
Dc as YtFollow,
|
|
6342
|
+
Qo as bedNote,
|
|
6342
6343
|
on as browserFull,
|
|
6343
|
-
|
|
6344
|
+
ko as hostOfUrl,
|
|
6344
6345
|
Bt as lineEnd,
|
|
6345
|
-
|
|
6346
|
+
ra as lineWords,
|
|
6346
6347
|
Gt as pictureT,
|
|
6347
6348
|
An as placePosition,
|
|
6348
6349
|
En as realFull,
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6353
|
-
|
|
6354
|
-
|
|
6355
|
-
|
|
6356
|
-
|
|
6357
|
-
|
|
6358
|
-
|
|
6359
|
-
|
|
6360
|
-
|
|
6361
|
-
|
|
6350
|
+
Vu as setErrorReporter,
|
|
6351
|
+
yi as setFullTarget,
|
|
6352
|
+
Hu as siteById,
|
|
6353
|
+
Yr as siteOf,
|
|
6354
|
+
bc as snapPosition,
|
|
6355
|
+
mi as spokenWordOf,
|
|
6356
|
+
Bo as trackPlan,
|
|
6357
|
+
Wi as useApi,
|
|
6358
|
+
lc as useArchiveVoice,
|
|
6359
|
+
Jo as useBackgroundBed,
|
|
6360
|
+
$c as useDuck,
|
|
6361
|
+
Kc as useFindPull,
|
|
6362
|
+
Yc as useFlash,
|
|
6362
6363
|
Vt as usePlayerApi,
|
|
6363
|
-
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
|
|
6367
|
-
|
|
6368
|
-
|
|
6369
|
-
|
|
6370
|
-
|
|
6364
|
+
$i as useSeparatedTrack,
|
|
6365
|
+
gc as useSummaryIn,
|
|
6366
|
+
Al as useTranscript,
|
|
6367
|
+
Bc as useTxPlayer,
|
|
6368
|
+
Zc as useTxVoice,
|
|
6369
|
+
Jl as useViewportTranslation,
|
|
6370
|
+
ac as useVoiceCatalogue,
|
|
6371
|
+
Qc as useYtLead
|
|
6371
6372
|
};
|
|
6372
6373
|
//# sourceMappingURL=index.js.map
|