@vocalstack/player 0.1.0-alpha.46 → 0.1.0-alpha.48
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/core/sites.d.ts +1 -1
- package/dist/index.js +751 -732
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/ui/EmbedFollow.d.ts +2 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var Fa = Object.defineProperty;
|
|
2
2
|
var Za = (t, e, n) => e in t ? Fa(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
3
|
var ge = (t, e, n) => Za(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
|
-
import { jsx as i, jsxs as g, Fragment as
|
|
5
|
-
import { useState as
|
|
4
|
+
import { jsx as i, jsxs as g, Fragment as Ce } from "react/jsx-runtime";
|
|
5
|
+
import { useState as j, useRef as z, useEffect as S, useLayoutEffect as Xt, createContext as Oi, useMemo as ze, useContext as Ga, useCallback as Ke, Fragment as qa, forwardRef as Ka, useImperativeHandle as Ja } from "react";
|
|
6
6
|
import { createPortal as Xa } from "react-dom";
|
|
7
7
|
import { VocalStackError as Ci, VocalStack as xi } from "@vocalstack/js-sdk";
|
|
8
8
|
const Si = "https://vocalstack.com", eo = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", to = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", no = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", ro = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
@@ -58,7 +58,7 @@ function oe({ d: t, ...e }) {
|
|
|
58
58
|
function io({ 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
|
-
function
|
|
61
|
+
function Wt({ size: t = 13 }) {
|
|
62
62
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", style: { marginLeft: 2 }, "aria-hidden": "true", children: /* @__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" }) });
|
|
63
63
|
}
|
|
64
64
|
function ht({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,127,.35)", sw: r }) {
|
|
@@ -86,7 +86,7 @@ function ao({ size: t = 12 }) {
|
|
|
86
86
|
/* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
87
87
|
] });
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function Bn({ dark: t, height: e = 20, link: n = !0 }) {
|
|
90
90
|
const r = /* @__PURE__ */ i("img", { src: t ? eo : to, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
|
|
91
91
|
return n ? /* @__PURE__ */ i("a", { href: Si, style: { display: "block" }, children: r }) : r;
|
|
92
92
|
}
|
|
@@ -100,8 +100,8 @@ function Tt({ checked: t, onChange: e, label: n, disabled: r }) {
|
|
|
100
100
|
return /* @__PURE__ */ i("button", { type: "button", role: "switch", "aria-checked": t, "aria-label": n, className: "vs-toggle", disabled: r, onClick: () => e(!t), children: /* @__PURE__ */ i("span", { className: "vs-toggle__knob" }) });
|
|
101
101
|
}
|
|
102
102
|
function kr({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill: a }) {
|
|
103
|
-
const o =
|
|
104
|
-
return
|
|
103
|
+
const o = z(null), [l, c] = j(null), u = Math.max(0, n.findIndex((d) => d.value === t));
|
|
104
|
+
return Xt(() => {
|
|
105
105
|
const d = o.current;
|
|
106
106
|
if (!d) return;
|
|
107
107
|
const M = d.querySelectorAll(".vs-switch__opt")[u];
|
|
@@ -136,7 +136,7 @@ function Rn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bord
|
|
|
136
136
|
] });
|
|
137
137
|
}
|
|
138
138
|
function lo({ value: t, label: e = "Copy", onCopied: n }) {
|
|
139
|
-
const [r, s] =
|
|
139
|
+
const [r, s] = j(!1), a = async () => {
|
|
140
140
|
try {
|
|
141
141
|
await navigator.clipboard.writeText(t), s(!0), n == null || n(), setTimeout(() => s(!1), 1400);
|
|
142
142
|
} catch {
|
|
@@ -161,7 +161,7 @@ function lo({ value: t, label: e = "Copy", onCopied: n }) {
|
|
|
161
161
|
);
|
|
162
162
|
}
|
|
163
163
|
function co(t, e) {
|
|
164
|
-
|
|
164
|
+
Xt(() => {
|
|
165
165
|
const n = t.current, r = window.visualViewport;
|
|
166
166
|
if (!e || !n || !r) return;
|
|
167
167
|
let s = 0;
|
|
@@ -178,15 +178,15 @@ function co(t, e) {
|
|
|
178
178
|
}, [t, e]);
|
|
179
179
|
}
|
|
180
180
|
function jr({ children: t, ms: e = 220 }) {
|
|
181
|
-
const [n] =
|
|
181
|
+
const [n] = j(() => {
|
|
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
185
|
return n ? /* @__PURE__ */ i(uo, { ms: e, children: t }) : /* @__PURE__ */ i("div", { children: t });
|
|
186
186
|
}
|
|
187
187
|
function uo({ children: t, ms: e }) {
|
|
188
|
-
const n =
|
|
189
|
-
return
|
|
188
|
+
const n = z(null), r = z(null), [s, a] = j(null);
|
|
189
|
+
return Xt(() => {
|
|
190
190
|
const o = r.current, l = n.current;
|
|
191
191
|
if (!o || !l) return;
|
|
192
192
|
let c;
|
|
@@ -210,7 +210,7 @@ function uo({ children: t, ms: e }) {
|
|
|
210
210
|
}, [e]), /* @__PURE__ */ i("div", { ref: n, style: { height: s ?? void 0, overflow: "clip", transition: s == null ? void 0 : `height ${e}ms cubic-bezier(.32,.72,0,1)` }, children: /* @__PURE__ */ i("div", { ref: r, children: t }) });
|
|
211
211
|
}
|
|
212
212
|
function en({ 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
|
-
const M =
|
|
213
|
+
const M = z(null);
|
|
214
214
|
return co(M, t), S(() => {
|
|
215
215
|
if (!t) return;
|
|
216
216
|
const h = (f) => {
|
|
@@ -308,7 +308,7 @@ function To(t, e, n) {
|
|
|
308
308
|
const s = n;
|
|
309
309
|
return s && (s.retryable === !0 || s.code === "engine_unavailable") ? yo : null;
|
|
310
310
|
}
|
|
311
|
-
class
|
|
311
|
+
class vo {
|
|
312
312
|
constructor(e = {}) {
|
|
313
313
|
ge(this, "entries", /* @__PURE__ */ new Map());
|
|
314
314
|
ge(this, "wanted", []);
|
|
@@ -453,7 +453,7 @@ const nt = class nt {
|
|
|
453
453
|
ge(this, "loading", null);
|
|
454
454
|
ge(this, "readAhead", 0);
|
|
455
455
|
ge(this, "readAheadS", 0);
|
|
456
|
-
ge(this, "prefetch", new
|
|
456
|
+
ge(this, "prefetch", new vo());
|
|
457
457
|
ge(this, "warmed", /* @__PURE__ */ new Set());
|
|
458
458
|
ge(this, "startingSince", /* @__PURE__ */ new Map());
|
|
459
459
|
ge(this, "retries", /* @__PURE__ */ new Map());
|
|
@@ -895,7 +895,7 @@ let Ir = nt;
|
|
|
895
895
|
function Ui(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 wo(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 [];
|
|
@@ -953,7 +953,7 @@ function Pi(t, e) {
|
|
|
953
953
|
for (const n of Or) n();
|
|
954
954
|
}
|
|
955
955
|
function Ur(t, e) {
|
|
956
|
-
const [n, r] =
|
|
956
|
+
const [n, r] = j(() => Cr(t, e));
|
|
957
957
|
return S(() => {
|
|
958
958
|
const s = () => r(Cr(t, e));
|
|
959
959
|
return Or.add(s), window.addEventListener("storage", s), () => {
|
|
@@ -988,7 +988,7 @@ function zo(t) {
|
|
|
988
988
|
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : jo, n];
|
|
989
989
|
}
|
|
990
990
|
function Rr({ 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: M }) {
|
|
991
|
-
const [h, f] =
|
|
991
|
+
const [h, f] = j(""), [p, y] = j(!1), [T, N] = j(null);
|
|
992
992
|
S(() => {
|
|
993
993
|
t && (f(""), y(!1), N(null));
|
|
994
994
|
}, [t]);
|
|
@@ -999,9 +999,9 @@ function Rr({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
999
999
|
return K !== -1 || L !== -1 ? (K === -1 ? 999 : K) - (L === -1 ? 999 : L) : O.label.localeCompare(te.label);
|
|
1000
1000
|
});
|
|
1001
1001
|
}, [s, h, l]), b = ze(
|
|
1002
|
-
() => h ? [] : c.map((A) => m.find((
|
|
1002
|
+
() => h ? [] : c.map((A) => m.find((v) => v.code === A)).filter((A) => !!A).sort((A, v) => A.label.localeCompare(v.label)),
|
|
1003
1003
|
[c, m, h]
|
|
1004
|
-
), C = ze(() => b.length ? m.filter((A) => !b.some((
|
|
1004
|
+
), C = ze(() => b.length ? m.filter((A) => !b.some((v) => v.code === A.code)) : m, [m, b]), D = p || h ? C.length : 12, V = C, Y = C.length - Math.min(D, C.length), ee = (A, v = !1, _ = !1) => {
|
|
1005
1005
|
const O = !!u && !A.voice;
|
|
1006
1006
|
return /* @__PURE__ */ g(
|
|
1007
1007
|
"button",
|
|
@@ -1022,7 +1022,7 @@ function Rr({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
1022
1022
|
/* @__PURE__ */ i("div", { className: "vs-picker__label", children: A.label }),
|
|
1023
1023
|
/* @__PURE__ */ i("div", { className: "vs-picker__native", children: A.native })
|
|
1024
1024
|
] }),
|
|
1025
|
-
/* @__PURE__ */ i("span", { className: "vs-picker__slot", children:
|
|
1025
|
+
/* @__PURE__ */ i("span", { className: "vs-picker__slot", children: v && /* @__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
1026
|
te.stopPropagation(), oi(A.code);
|
|
1027
1027
|
}, onKeyDown: (te) => {
|
|
1028
1028
|
(te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(), oi(A.code));
|
|
@@ -1049,12 +1049,12 @@ function Rr({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
|
|
|
1049
1049
|
/* @__PURE__ */ i("span", { className: "vs-picker__slot" }),
|
|
1050
1050
|
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === null && /* @__PURE__ */ i(oe, { d: X.check, size: 16, sw: 2.2 }) })
|
|
1051
1051
|
] }),
|
|
1052
|
-
b.length > 0 && /* @__PURE__ */ g(
|
|
1052
|
+
b.length > 0 && /* @__PURE__ */ g(Ce, { children: [
|
|
1053
1053
|
/* @__PURE__ */ i("div", { className: "vs-picker__head", children: "RECENT" }),
|
|
1054
1054
|
b.map((A) => ee(A, !0)),
|
|
1055
1055
|
/* @__PURE__ */ i("div", { className: "vs-picker__rule" })
|
|
1056
1056
|
] }),
|
|
1057
|
-
|
|
1057
|
+
V.map((A, v) => ee(A, !1, v >= D)),
|
|
1058
1058
|
Y > 0 && /* @__PURE__ */ g("button", { type: "button", className: "vs-picker__more vs-picker__more--btn", style: { background: "none", border: 0, cursor: "pointer", width: "100%", textAlign: "left" }, onClick: () => y(!0), children: [
|
|
1059
1059
|
"+ ",
|
|
1060
1060
|
Y,
|
|
@@ -1073,7 +1073,7 @@ function Io({ open: t, onClose: e, title: n, note: r, sticky: s, ...a }) {
|
|
|
1073
1073
|
return /* @__PURE__ */ i(en, { open: t, onClose: e, title: n, note: r, drawer: !1, sticky: s, kind: "picker", header: o, children: l });
|
|
1074
1074
|
}
|
|
1075
1075
|
function li({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOver: o = 0.4 }) {
|
|
1076
|
-
const l =
|
|
1076
|
+
const l = z(null), [c, u] = j(!1), [d, M] = j(!1), h = z(n);
|
|
1077
1077
|
return h.current = n, S(() => {
|
|
1078
1078
|
u(!1), M(!1);
|
|
1079
1079
|
}, [t, e]), S(() => {
|
|
@@ -1120,10 +1120,10 @@ function li({ src: t, setup: e, t: n, playing: r, seekN: s, onToggle: a, seekOve
|
|
|
1120
1120
|
}
|
|
1121
1121
|
),
|
|
1122
1122
|
c && /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: a, style: { cursor: a ? "pointer" : "default" } }),
|
|
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(
|
|
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(Wt, { size: 44 }) }) })
|
|
1124
1124
|
] });
|
|
1125
1125
|
}
|
|
1126
|
-
const
|
|
1126
|
+
const Vi = [
|
|
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" },
|
|
@@ -1137,8 +1137,26 @@ const Bi = [
|
|
|
1137
1137
|
{ id: "kick", name: "Kick", color: "#53fc18", hosts: /(^|\.)kick\.com$/, glyph: "M4 3h5.5v5H11V6h2V3h5.5v6.5h-2V11h-2v2h2v1.5h2V21H13v-3h-2v-2H9.5v5H4V3Z" },
|
|
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
|
-
{ id: "bandcamp", name: "Bandcamp", color: "#1da0c3", hosts: /(^|\.)bandcamp\.com$/, audioOnly: !0, glyph: "M2 18 8.5 6H22l-6.5 12H2Z" }
|
|
1141
|
-
|
|
1140
|
+
{ id: "bandcamp", name: "Bandcamp", color: "#1da0c3", hosts: /(^|\.)bandcamp\.com$/, audioOnly: !0, glyph: "M2 18 8.5 6H22l-6.5 12H2Z" },
|
|
1141
|
+
{ id: "ted", name: "TED", color: "#e62b1e", hosts: /(^|\.)ted\.com$/, glyph: "M2 6h6.5v2.3H6.4V18H4V8.3H2V6Zm7.5 0h5.3v2.3h-2.9v2.6h2.6v2.3h-2.6v2.5h2.9V18H9.5V6Zm6.4 0h2.3A3.8 3.8 0 0 1 22 9.8v4.4a3.8 3.8 0 0 1-3.8 3.8h-2.3V6Zm2.4 2.3v7.4c.9 0 1.4-.7 1.4-1.6v-4.2c0-.9-.5-1.6-1.4-1.6Z" },
|
|
1142
|
+
{ id: "linkedin", name: "LinkedIn", color: "#0a66c2", hosts: /(^|\.)linkedin\.com$/, glyph: "M5 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5ZM3 9.5h4V21H3V9.5Zm6.5 0h3.8v1.6h.1c.5-1 1.8-2 3.8-2 4 0 4.8 2.6 4.8 6V21h-4v-5.2c0-1.2 0-2.8-1.7-2.8s-2 1.3-2 2.7V21h-4V9.5Z" },
|
|
1143
|
+
{ id: "archive", name: "Internet Archive", color: "#c8c8c8", hosts: /(^|\.)archive\.org$/, glyph: "M3 19h18v2H3v-2Zm1-2h16v1.2H4V17Zm1.5-9h2v8h-2V8Zm5.5 0h2v8h-2V8Zm5.5 0h2v8h-2V8ZM3 5.5 12 3l9 2.5V7H3V5.5Z" },
|
|
1144
|
+
{ id: "odysee", name: "Odysee", color: "#ef1970", hosts: /(^|\.)(odysee\.com|lbry\.tv)$/, glyph: "M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm0 4a5 5 0 1 0 0 10 5 5 0 0 0 0-10Z" },
|
|
1145
|
+
{ id: "niconico", name: "Niconico", color: "#e6e6e6", hosts: /(^|\.)(nicovideo\.jp|nico\.ms)$/, glyph: "M4 8h16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2Zm3.5-5L11 7H9.3L6.5 4.2 7.5 3Zm9 0 1 1.2L14.7 7H13l3.5-4Z" },
|
|
1146
|
+
{ id: "vk", name: "VK", color: "#0077ff", hosts: /(^|\.)(vk\.com|vkvideo\.ru)$/, glyph: "M12.8 17.5c-5.5 0-8.6-3.8-8.8-10h2.8c.1 4.6 2.1 6.5 3.7 6.9V7.5h2.6v3.9c1.6-.2 3.3-2 3.8-3.9h2.6c-.4 2.4-2.2 4.2-3.4 4.9 1.3.6 3.3 2.1 4.1 5.1h-2.9c-.6-1.9-2.2-3.4-4.2-3.6v3.6h-.3Z" },
|
|
1147
|
+
{ id: "bitchute", name: "BitChute", color: "#ef4137", hosts: /(^|\.)bitchute\.com$/, glyph: "M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm-2 5.5v7l6-3.5-6-3.5Z" },
|
|
1148
|
+
{ id: "wistia", name: "Wistia", color: "#54bbff", hosts: /(^|\.)(wistia\.com|wistia\.net|wi\.st)$/, glyph: "M3 7h13l-2.5 4H3V7Zm0 6h15.5L21 9v4.5L18.5 17H3v-4Z" },
|
|
1149
|
+
{ id: "vidyard", name: "Vidyard", color: "#38c172", hosts: /(^|\.)vidyard\.com$/, glyph: "M3 5h4l5 9 5-9h4l-9 15L3 5Z" },
|
|
1150
|
+
{ id: "kaltura", name: "Kaltura", color: "#00a8e1", hosts: /(^|\.)kaltura\.com$/, glyph: "M5 4h3v7l6-7h4l-6.5 7.3L18.5 20h-4l-5-6.4L8 15.3V20H5V4Z" },
|
|
1151
|
+
{ id: "jwplayer", name: "JW Player", color: "#ff0046", hosts: /(^|\.)(jwplayer\.com|jwplatform\.com)$/, glyph: "M6 5h3v9.5a4 4 0 0 1-4 4H4v-2.8h1c.6 0 1-.5 1-1.2V5Zm5 0h3l1.5 7L17 5h3l-3 13h-3l-1.5-6.5L11.9 18H9.5L11 5Z" },
|
|
1152
|
+
{ id: "pinterest", name: "Pinterest", color: "#e60023", hosts: /(^|\.)(pinterest\.[a-z.]+|pin\.it)$/, glyph: "M12 2.5a9.5 9.5 0 0 0-3.5 18.3c-.1-.8-.2-2 0-2.9l1.3-5.4s-.3-.7-.3-1.6c0-1.5.9-2.7 2-2.7.9 0 1.4.7 1.4 1.6 0 1-.6 2.4-.9 3.7-.3 1.1.6 2 1.7 2 2 0 3.5-2.1 3.5-5.2 0-2.7-2-4.6-4.8-4.6-3.3 0-5.2 2.5-5.2 5 0 1 .4 2.1.9 2.7l.1.4-.3 1.3c0 .2-.2.3-.4.2-1.4-.7-2.3-2.7-2.3-4.4 0-3.6 2.6-6.9 7.5-6.9 3.9 0 7 2.8 7 6.6 0 3.9-2.5 7.1-5.9 7.1-1.2 0-2.2-.6-2.6-1.3l-.7 2.7c-.3 1-.9 2.2-1.4 2.9A9.5 9.5 0 1 0 12 2.5Z" },
|
|
1153
|
+
{ id: "bluesky", name: "Bluesky", color: "#1185fe", hosts: /(^|\.)bsky\.app$/, glyph: "M6.3 4.4c2.3 1.7 4.7 5.2 5.7 7 1-1.8 3.4-5.3 5.7-7 1.6-1.2 4.3-2.2 4.3.9 0 .6-.4 5.2-.6 5.9-.7 2.6-3.3 3.2-5.6 2.8 4 .7 5 2.9 2.8 5.2-4.2 4.3-6-1.1-6.5-2.5l-.1-.4-.1.4c-.5 1.4-2.3 6.8-6.5 2.5-2.2-2.3-1.2-4.5 2.8-5.2-2.3.4-4.9-.2-5.6-2.8C2.4 10.5 2 5.9 2 5.3c0-3.1 2.7-2.1 4.3-.9Z" },
|
|
1154
|
+
{ id: "gdrive", name: "Google Drive", color: "#34a853", hosts: /^drive\.google\.com$/, glyph: "M8.2 3h7.6l6.2 10.8-3.8 6.6H5.8L2 13.8 8.2 3Zm1.2 2L5 12.6h4.4L13.8 5H9.4Zm6.4 1.2-2.2 3.8 4 6.8 2.2-3.8-4-6.8ZM4.4 14.6l2.2 3.8h8.8l2.2-3.8H4.4Z" },
|
|
1155
|
+
{ id: "spreaker", name: "Spreaker", color: "#f5c300", hosts: /(^|\.)spreaker\.com$/, audioOnly: !0, glyph: "M12 9a3 3 0 1 1 0 6 3 3 0 0 1 0-6ZM6.3 6.3l1.4 1.4a6 6 0 0 0 0 8.6l-1.4 1.4a8 8 0 0 1 0-11.4Zm11.4 0a8 8 0 0 1 0 11.4l-1.4-1.4a6 6 0 0 0 0-8.6l1.4-1.4Z" },
|
|
1156
|
+
{ id: "iheart", name: "iHeartRadio", color: "#c6002b", hosts: /(^|\.)iheart\.com$/, audioOnly: !0, glyph: "M12 21s-7.5-4.6-9.4-9.4C1.2 8 3.4 4 7.3 4c2 0 3.6 1.1 4.7 2.6C13.1 5.1 14.7 4 16.7 4c3.9 0 6.1 4 4.7 7.6C19.5 16.4 12 21 12 21Z" },
|
|
1157
|
+
{ id: "audioboom", name: "Audioboom", color: "#1ea2e0", hosts: /(^|\.)audioboom\.com$/, audioOnly: !0, glyph: "M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm-4 6v6h2V9H8Zm3-2v10h2V7h-2Zm3 3v4h2v-4h-2Z" },
|
|
1158
|
+
{ id: "cnn", name: "CNN", color: "#cc0000", hosts: /(^|\.)cnn\.com$/, glyph: "M2 7h20v10H2V7Zm3.5 2.2a2.8 2.8 0 1 0 0 5.6h1.4v-1.6H5.6a1.2 1.2 0 1 1 0-2.4h1.3V9.2H5.5Zm3 0v5.6h1.6v-3.3l2.4 3.3H14V9.2h-1.6v3.3L10 9.2H8.5Zm6.2 0v5.6h1.6v-3.3l2.4 3.3h1.5V9.2h-1.6v3.3l-2.4-3.3h-1.5Z" }
|
|
1159
|
+
], bo = new Map(Vi.map((t) => [t.id, t]));
|
|
1142
1160
|
function Xu(t) {
|
|
1143
1161
|
return t ? bo.get(t) ?? null : null;
|
|
1144
1162
|
}
|
|
@@ -1153,9 +1171,9 @@ function Oo(t) {
|
|
|
1153
1171
|
}
|
|
1154
1172
|
function Pn(t) {
|
|
1155
1173
|
const e = Oo(t);
|
|
1156
|
-
return e ?
|
|
1174
|
+
return e ? Vi.find((n) => n.hosts.test(e)) ?? null : null;
|
|
1157
1175
|
}
|
|
1158
|
-
function
|
|
1176
|
+
function It(t) {
|
|
1159
1177
|
try {
|
|
1160
1178
|
return new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(t) ? t : `https://${t}`);
|
|
1161
1179
|
} catch {
|
|
@@ -1163,13 +1181,13 @@ function zt(t) {
|
|
|
1163
1181
|
}
|
|
1164
1182
|
}
|
|
1165
1183
|
const un = (t) => Math.max(0, Math.floor(t));
|
|
1166
|
-
function
|
|
1184
|
+
function Bi(t) {
|
|
1167
1185
|
var n;
|
|
1168
|
-
const e = /\/(?:share|embed)\/(?:[^/?#]*-)?([0-9a-f]{32})(?:[/?#]|$)/i.exec(((n =
|
|
1186
|
+
const e = /\/(?:share|embed)\/(?:[^/?#]*-)?([0-9a-f]{32})(?:[/?#]|$)/i.exec(((n = It(t)) == null ? void 0 : n.pathname) ?? "");
|
|
1169
1187
|
return e ? e[1].toLowerCase() : null;
|
|
1170
1188
|
}
|
|
1171
1189
|
function Co(t) {
|
|
1172
|
-
const e =
|
|
1190
|
+
const e = It(t);
|
|
1173
1191
|
if (!e) return null;
|
|
1174
1192
|
const n = e.pathname.split("/").filter(Boolean), r = n.map((a, o) => /^\d+$/.test(a) ? o : -1).filter((a) => a >= 0).pop();
|
|
1175
1193
|
if (r == null) return null;
|
|
@@ -1177,14 +1195,14 @@ function Co(t) {
|
|
|
1177
1195
|
return { id: n[r], h: e.searchParams.get("h") ?? (s && /^[0-9a-f]{6,}$/i.test(s) ? s : null) };
|
|
1178
1196
|
}
|
|
1179
1197
|
function xo(t) {
|
|
1180
|
-
const e =
|
|
1198
|
+
const e = It(t);
|
|
1181
1199
|
if (!e) return null;
|
|
1182
1200
|
if (/(^|\.)dai\.ly$/i.test(e.hostname)) return e.pathname.split("/").filter(Boolean)[0] ?? null;
|
|
1183
1201
|
const n = /\/video\/([a-z0-9]+)/i.exec(e.pathname);
|
|
1184
1202
|
return n ? n[1] : null;
|
|
1185
1203
|
}
|
|
1186
1204
|
function So(t) {
|
|
1187
|
-
const e =
|
|
1205
|
+
const e = It(t);
|
|
1188
1206
|
if (!e) return null;
|
|
1189
1207
|
const n = e.pathname.split("/").filter(Boolean);
|
|
1190
1208
|
if (/^clips\.twitch\.tv$/i.test(e.hostname)) return n[0] ? { clip: n[0] } : null;
|
|
@@ -1204,7 +1222,7 @@ function Hi(t, e) {
|
|
|
1204
1222
|
const r = e.play ? 1 : 0;
|
|
1205
1223
|
switch (n.id) {
|
|
1206
1224
|
case "loom": {
|
|
1207
|
-
const u =
|
|
1225
|
+
const u = Bi(t);
|
|
1208
1226
|
if (!u) return null;
|
|
1209
1227
|
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(un(e.t)) });
|
|
1210
1228
|
return `https://www.loom.com/embed/${u}?${d}`;
|
|
@@ -1231,23 +1249,23 @@ function Hi(t, e) {
|
|
|
1231
1249
|
case "facebook":
|
|
1232
1250
|
return `https://www.facebook.com/plugins/video.php?${new URLSearchParams({ href: t, autoplay: String(!!e.play), mute: "1", show_text: "false", show_captions: "false" })}`;
|
|
1233
1251
|
case "tiktok": {
|
|
1234
|
-
const u = /\/video\/(\d+)/.exec(((s =
|
|
1252
|
+
const u = /\/video\/(\d+)/.exec(((s = It(t)) == null ? void 0 : s.pathname) ?? "");
|
|
1235
1253
|
return u ? `https://www.tiktok.com/embed/v2/${u[1]}?${new URLSearchParams({ autoplay: String(r), muted: "1", controls: "0" })}` : null;
|
|
1236
1254
|
}
|
|
1237
1255
|
case "x": {
|
|
1238
|
-
const u = /\/status(?:es)?\/(\d+)/.exec(((a =
|
|
1256
|
+
const u = /\/status(?:es)?\/(\d+)/.exec(((a = It(t)) == null ? void 0 : a.pathname) ?? "");
|
|
1239
1257
|
return u ? `https://platform.twitter.com/embed/Tweet.html?${new URLSearchParams({ id: u[1], theme: "dark", dnt: "true" })}` : null;
|
|
1240
1258
|
}
|
|
1241
1259
|
case "instagram": {
|
|
1242
|
-
const u = /\/(?:p|reel|reels|tv)\/([\w-]+)/.exec(((o =
|
|
1260
|
+
const u = /\/(?:p|reel|reels|tv)\/([\w-]+)/.exec(((o = It(t)) == null ? void 0 : o.pathname) ?? "");
|
|
1243
1261
|
return u ? `https://www.instagram.com/p/${u[1]}/embed` : null;
|
|
1244
1262
|
}
|
|
1245
1263
|
case "kick": {
|
|
1246
|
-
const u = (l =
|
|
1264
|
+
const u = (l = It(t)) == null ? void 0 : l.pathname.split("/").filter(Boolean)[0];
|
|
1247
1265
|
return u ? `https://player.kick.com/${encodeURIComponent(u.toLowerCase())}?${new URLSearchParams({ autoplay: String(!!e.play), muted: "true" })}` : null;
|
|
1248
1266
|
}
|
|
1249
1267
|
case "streamable": {
|
|
1250
|
-
const u = (c =
|
|
1268
|
+
const u = (c = It(t)) == null ? void 0 : c.pathname.split("/").filter(Boolean).pop();
|
|
1251
1269
|
return u ? `https://streamable.com/e/${u}?${new URLSearchParams({ autoplay: String(r), muted: "1", nocontrols: "1" })}${e.t ? `#t=${un(e.t)}` : ""}` : null;
|
|
1252
1270
|
}
|
|
1253
1271
|
default:
|
|
@@ -1290,27 +1308,28 @@ function Eo(t, e) {
|
|
|
1290
1308
|
function _o(t) {
|
|
1291
1309
|
return !t || t.kind !== "url" ? null : Eo(t.site, t.embedId) ?? t.url ?? null;
|
|
1292
1310
|
}
|
|
1293
|
-
function Yo({ url: t, t: e, playing: n, seekN: r, title: s }) {
|
|
1294
|
-
const
|
|
1295
|
-
|
|
1296
|
-
const [
|
|
1297
|
-
return
|
|
1298
|
-
o && /* @__PURE__ */ i("div", { className: "vsp-embed__bg", "aria-hidden": "true" }),
|
|
1311
|
+
function Yo({ url: t, t: e, playing: n, seekN: r, title: s, onToggle: a }) {
|
|
1312
|
+
const o = z(e);
|
|
1313
|
+
o.current = e;
|
|
1314
|
+
const [l, c] = j(!1), u = typeof window < "u" ? window.location.hostname : "localhost", d = ze(() => Hi(t, { t: o.current, play: n, host: u }), [t, n, r, u]);
|
|
1315
|
+
return d ? /* @__PURE__ */ g("div", { className: "txyt vsp-follow", style: l ? { background: "#000" } : void 0, children: [
|
|
1299
1316
|
/* @__PURE__ */ i(
|
|
1300
1317
|
"iframe",
|
|
1301
1318
|
{
|
|
1302
1319
|
className: "vsp-embed",
|
|
1303
|
-
src:
|
|
1320
|
+
src: d,
|
|
1304
1321
|
title: s,
|
|
1305
|
-
style: { opacity:
|
|
1306
|
-
onLoad: () =>
|
|
1322
|
+
style: { opacity: l ? 1 : 0 },
|
|
1323
|
+
onLoad: () => c(!0),
|
|
1307
1324
|
allow: "autoplay; encrypted-media; picture-in-picture; fullscreen",
|
|
1308
1325
|
referrerPolicy: "strict-origin-when-cross-origin",
|
|
1309
1326
|
tabIndex: -1,
|
|
1310
1327
|
"aria-hidden": "true"
|
|
1311
1328
|
},
|
|
1312
|
-
|
|
1313
|
-
)
|
|
1329
|
+
d
|
|
1330
|
+
),
|
|
1331
|
+
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: a, style: { cursor: a ? "pointer" : "default" } }),
|
|
1332
|
+
l && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(Wt, { size: 44 }) }) })
|
|
1314
1333
|
] }) : null;
|
|
1315
1334
|
}
|
|
1316
1335
|
let Sn = null;
|
|
@@ -1332,9 +1351,9 @@ function Uo() {
|
|
|
1332
1351
|
}
|
|
1333
1352
|
let Ro = 0;
|
|
1334
1353
|
function Po({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
1335
|
-
const a =
|
|
1354
|
+
const a = z(null), o = z(null), l = z(e);
|
|
1336
1355
|
l.current = e;
|
|
1337
|
-
const [c, u] =
|
|
1356
|
+
const [c, u] = j(!1), [d] = j(() => `vsp-fb-${++Ro}`);
|
|
1338
1357
|
return S(() => {
|
|
1339
1358
|
let M = !0;
|
|
1340
1359
|
const h = a.current;
|
|
@@ -1347,7 +1366,7 @@ function Po({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
|
1347
1366
|
if (!(!M || T.type !== "video" || T.id !== d)) {
|
|
1348
1367
|
o.current = T.instance;
|
|
1349
1368
|
try {
|
|
1350
|
-
T.instance.
|
|
1369
|
+
T.instance.setVolume(0), T.instance.unmute(), T.instance.setVolume(0), T.instance.seek(Math.max(0, l.current));
|
|
1351
1370
|
} catch {
|
|
1352
1371
|
}
|
|
1353
1372
|
u(!0);
|
|
@@ -1367,7 +1386,7 @@ function Po({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
|
1367
1386
|
const M = o.current;
|
|
1368
1387
|
if (!(!M || !c))
|
|
1369
1388
|
try {
|
|
1370
|
-
n ? M.play() : M.pause();
|
|
1389
|
+
n ? (M.setVolume(0), M.play()) : M.pause();
|
|
1371
1390
|
} catch {
|
|
1372
1391
|
}
|
|
1373
1392
|
}, [n, c]), S(() => {
|
|
@@ -1390,7 +1409,7 @@ function Po({ url: t, t: e, playing: n, seekN: r, onToggle: s }) {
|
|
|
1390
1409
|
}, [c, n]), /* @__PURE__ */ g("div", { className: "txyt vsp-follow vsp-fb", style: c ? { background: "#000" } : void 0, children: [
|
|
1391
1410
|
/* @__PURE__ */ i("div", { ref: a, className: "vsp-fb__box", style: { opacity: c ? 1 : 0 } }),
|
|
1392
1411
|
c && /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: s, style: { cursor: s ? "pointer" : "default" } }),
|
|
1393
|
-
c && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(
|
|
1412
|
+
c && /* @__PURE__ */ i("div", { className: `txyt__paused${n ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(Wt, { size: 44 }) }) })
|
|
1394
1413
|
] });
|
|
1395
1414
|
}
|
|
1396
1415
|
async function $o(t) {
|
|
@@ -1409,7 +1428,7 @@ function Qo(t) {
|
|
|
1409
1428
|
e && !r.includes("Signature=") && n.open("GET", r + (r.includes("?") ? "&" : "?") + e, !0);
|
|
1410
1429
|
};
|
|
1411
1430
|
}
|
|
1412
|
-
function
|
|
1431
|
+
function Vo(t) {
|
|
1413
1432
|
return (e, n) => {
|
|
1414
1433
|
let r = !0, s = null;
|
|
1415
1434
|
return (async () => {
|
|
@@ -1436,8 +1455,8 @@ function Bo(t) {
|
|
|
1436
1455
|
};
|
|
1437
1456
|
}
|
|
1438
1457
|
const on = /* @__PURE__ */ new Map();
|
|
1439
|
-
function
|
|
1440
|
-
const [e, n] =
|
|
1458
|
+
function Bo(t) {
|
|
1459
|
+
const [e, n] = j(() => t ? on.get(t) ?? null : null);
|
|
1441
1460
|
return S(() => {
|
|
1442
1461
|
if (!t) {
|
|
1443
1462
|
n(null);
|
|
@@ -1540,7 +1559,7 @@ function pr(t) {
|
|
|
1540
1559
|
t && (t.pause(), t.removeAttribute("src"), t.load());
|
|
1541
1560
|
}
|
|
1542
1561
|
function Wi(t, e) {
|
|
1543
|
-
const [n, r] =
|
|
1562
|
+
const [n, r] = j("off"), [s, a] = j([]), [o, l] = j(!1), c = z(null), u = z([null, null]), d = z([NaN, NaN]), M = z(0);
|
|
1544
1563
|
return S(() => {
|
|
1545
1564
|
if (a([]), l(!1), !t) {
|
|
1546
1565
|
r("off");
|
|
@@ -1643,7 +1662,7 @@ function hl(t) {
|
|
|
1643
1662
|
const c = /* @__PURE__ */ new Map();
|
|
1644
1663
|
for (const u of t.clips) c.set(u.sentenceId, [...c.get(u.sentenceId) ?? [], u]);
|
|
1645
1664
|
return c;
|
|
1646
|
-
}, [t.clips]), n =
|
|
1665
|
+
}, [t.clips]), n = z(/* @__PURE__ */ new Map()), r = z(null), [s, a] = j({ missing: null, sid: null }), o = (c) => {
|
|
1647
1666
|
let u = n.current.get(c);
|
|
1648
1667
|
return u || (u = new Audio(), u.preload = "auto", u.src = c, n.current.set(c, u)), u;
|
|
1649
1668
|
}, l = () => {
|
|
@@ -1731,7 +1750,7 @@ function gl(t, e) {
|
|
|
1731
1750
|
};
|
|
1732
1751
|
}
|
|
1733
1752
|
function fl(t, e) {
|
|
1734
|
-
const n =
|
|
1753
|
+
const n = z(t);
|
|
1735
1754
|
n.current = t;
|
|
1736
1755
|
const r = !!t;
|
|
1737
1756
|
S(() => {
|
|
@@ -1752,11 +1771,11 @@ function fl(t, e) {
|
|
|
1752
1771
|
}
|
|
1753
1772
|
}, [r, e]);
|
|
1754
1773
|
}
|
|
1755
|
-
function
|
|
1774
|
+
function zt(t) {
|
|
1756
1775
|
const e = Math.max(0, Math.floor(t)), n = Math.floor(e / 3600), r = Math.floor(e % 3600 / 60), s = e % 60, a = String(r).padStart(2, "0"), o = String(s).padStart(2, "0");
|
|
1757
1776
|
return n > 0 ? `${n}:${a}:${o}` : `${a}:${o}`;
|
|
1758
1777
|
}
|
|
1759
|
-
function
|
|
1778
|
+
function Jt() {
|
|
1760
1779
|
return {
|
|
1761
1780
|
segments: /* @__PURE__ */ new Map(),
|
|
1762
1781
|
sentences: /* @__PURE__ */ new Map(),
|
|
@@ -1781,7 +1800,7 @@ function dn(t, e) {
|
|
|
1781
1800
|
return (e ?? []).map((n, r) => ({ text: String(n.text ?? ""), prob: n.prob ?? null, start: n.start ?? 0, end: n.end ?? 0, alts: n.alts, ...n.script === !0 ? { script: !0 } : {}, ...n.script === !0 && typeof n.recognized == "string" ? { recognized: n.recognized } : {}, seq: t, idx: r }));
|
|
1782
1801
|
}
|
|
1783
1802
|
function mr(t, e) {
|
|
1784
|
-
const n = e ??
|
|
1803
|
+
const n = e ?? Jt();
|
|
1785
1804
|
delete n.numbers, n.state = t.state, t.speakerLabels && (n.labels = t.speakerLabels), n.lastSeq = Math.max(n.lastSeq, t.lastSeq), n.spans = t.spans.map((r) => ({ wallStart: r.wallStart, wallEnd: r.wallEnd ?? null, mediaStart: r.mediaStart, mediaEnd: r.mediaEnd ?? null }));
|
|
1786
1805
|
for (const r of t.segments) {
|
|
1787
1806
|
const s = r.scriptPos;
|
|
@@ -2020,7 +2039,7 @@ function yl(t) {
|
|
|
2020
2039
|
confidence: Tl(s),
|
|
2021
2040
|
latencyS: o == null ? void 0 : o.latencyS,
|
|
2022
2041
|
settled: r.settled || s.length > 0 && s.every((l) => l.settled),
|
|
2023
|
-
translations: Object.keys(r.translations).length ? r.translations :
|
|
2042
|
+
translations: Object.keys(r.translations).length ? r.translations : vl(s),
|
|
2024
2043
|
speaker: r.speaker >= 0 ? r.speaker : (o == null ? void 0 : o.speaker) ?? -1
|
|
2025
2044
|
});
|
|
2026
2045
|
}
|
|
@@ -2035,14 +2054,14 @@ function Tl(t) {
|
|
|
2035
2054
|
}
|
|
2036
2055
|
return n ? e / n : void 0;
|
|
2037
2056
|
}
|
|
2038
|
-
function
|
|
2057
|
+
function vl(t) {
|
|
2039
2058
|
const e = {};
|
|
2040
2059
|
for (const n of t) for (const [r, s] of Object.entries(n.translations)) e[r] = e[r] ? `${e[r]} ${s}` : s;
|
|
2041
2060
|
return e;
|
|
2042
2061
|
}
|
|
2043
|
-
const
|
|
2062
|
+
const wl = 0.85, Ll = 0.75;
|
|
2044
2063
|
function kl(t) {
|
|
2045
|
-
return t == null ? "" : t < Ll ? "low" : t <
|
|
2064
|
+
return t == null ? "" : t < Ll ? "low" : t < wl ? "mid" : "";
|
|
2046
2065
|
}
|
|
2047
2066
|
const Dn = ["a", "b", "c", "d", "e", "f", "g", "h"];
|
|
2048
2067
|
function jl(t) {
|
|
@@ -2140,7 +2159,7 @@ const Cl = /* @__PURE__ */ new Set([
|
|
|
2140
2159
|
NotSupportedError: "The audio couldn't be loaded. Try again in a moment.",
|
|
2141
2160
|
AbortError: "It was cancelled."
|
|
2142
2161
|
};
|
|
2143
|
-
function
|
|
2162
|
+
function bt(t) {
|
|
2144
2163
|
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;
|
|
2145
2164
|
if (n || r && r >= 400) {
|
|
2146
2165
|
const o = typeof (e == null ? void 0 : e.requestId) == "string" && e.requestId ? { requestId: e.requestId } : {};
|
|
@@ -2149,30 +2168,30 @@ function It(t) {
|
|
|
2149
2168
|
const a = (e == null ? void 0 : e.name) ?? "";
|
|
2150
2169
|
return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && Di(t instanceof Error ? t : new Error(String(t))), { message: Nr }) : gi[a] ? { message: gi[a] } : t instanceof Error && a === "Error" && !(t instanceof Ci) ? { message: t.message } : { message: xr };
|
|
2151
2170
|
}
|
|
2152
|
-
const qi = "https://api.vocalstack.com",
|
|
2153
|
-
function
|
|
2154
|
-
const t = Ga(
|
|
2171
|
+
const qi = "https://api.vocalstack.com", Vr = Oi(null);
|
|
2172
|
+
function Ft() {
|
|
2173
|
+
const t = Ga(Vr);
|
|
2155
2174
|
if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
|
|
2156
2175
|
return t;
|
|
2157
2176
|
}
|
|
2158
2177
|
function xl(t) {
|
|
2159
|
-
return t.value ? /* @__PURE__ */ i(
|
|
2178
|
+
return t.value ? /* @__PURE__ */ i(Vr.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ i(Sl, { ...t });
|
|
2160
2179
|
}
|
|
2161
2180
|
function Sl({ children: t, ...e }) {
|
|
2162
2181
|
const n = Ki(e);
|
|
2163
|
-
return /* @__PURE__ */ i(
|
|
2182
|
+
return /* @__PURE__ */ i(Vr.Provider, { value: n, children: t });
|
|
2164
2183
|
}
|
|
2165
2184
|
const Dl = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
2166
2185
|
function Al(t) {
|
|
2167
2186
|
return Dl.test(t);
|
|
2168
2187
|
}
|
|
2169
2188
|
function Ki(t) {
|
|
2170
|
-
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || Al(t.id)), s = (t.baseUrl ?? qi).replace(/\/$/, ""), a =
|
|
2189
|
+
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || Al(t.id)), s = (t.baseUrl ?? qi).replace(/\/$/, ""), a = z(t.token);
|
|
2171
2190
|
a.current = t.token;
|
|
2172
2191
|
const o = !!t.token, l = ze(() => async () => {
|
|
2173
2192
|
const h = a.current;
|
|
2174
2193
|
return (typeof h == "function" ? await h() : h) || void 0;
|
|
2175
|
-
}, []), [c, u] =
|
|
2194
|
+
}, []), [c, u] = j(() => {
|
|
2176
2195
|
const h = t.token, f = typeof h == "function" ? h() : h;
|
|
2177
2196
|
return typeof f == "string" && f ? f : null;
|
|
2178
2197
|
});
|
|
@@ -2222,14 +2241,14 @@ async function _l(t, e) {
|
|
|
2222
2241
|
};
|
|
2223
2242
|
}
|
|
2224
2243
|
function Yl(t, e) {
|
|
2225
|
-
const [n, r] =
|
|
2244
|
+
const [n, r] = j(null), [s, a] = j(!1), [o, l] = j(null), [c, u] = j(0);
|
|
2226
2245
|
return S(() => {
|
|
2227
2246
|
let d = !0;
|
|
2228
2247
|
return _l(t, e).then((M) => {
|
|
2229
2248
|
d && (r(M), a(!1), l(null));
|
|
2230
2249
|
}).catch((M) => {
|
|
2231
2250
|
if (!d) return;
|
|
2232
|
-
const h =
|
|
2251
|
+
const h = bt(M);
|
|
2233
2252
|
h.code === "not_found" || h.status === 404 ? a(!0) : l(h);
|
|
2234
2253
|
}), () => {
|
|
2235
2254
|
d = !1;
|
|
@@ -2237,7 +2256,7 @@ function Yl(t, e) {
|
|
|
2237
2256
|
}, [t, e, c]), { source: n, gone: s, error: o, reload: () => u((d) => d + 1) };
|
|
2238
2257
|
}
|
|
2239
2258
|
function Ul(t, e) {
|
|
2240
|
-
const [n, r] =
|
|
2259
|
+
const [n, r] = j(null);
|
|
2241
2260
|
return S(() => {
|
|
2242
2261
|
if (!t.owner || !e) {
|
|
2243
2262
|
r(null);
|
|
@@ -2271,7 +2290,7 @@ async function fi(t, e, n = {}) {
|
|
|
2271
2290
|
}
|
|
2272
2291
|
const yr = /* @__PURE__ */ new Map();
|
|
2273
2292
|
function Ji() {
|
|
2274
|
-
const t =
|
|
2293
|
+
const t = Ft(), [e, n] = j(yr.get(t.origin) ?? null);
|
|
2275
2294
|
return S(() => {
|
|
2276
2295
|
yr.has(t.origin) || t.client.languages.list().then((r) => {
|
|
2277
2296
|
yr.set(t.origin, r), n(r);
|
|
@@ -2280,26 +2299,26 @@ function Ji() {
|
|
|
2280
2299
|
}, [t]), e;
|
|
2281
2300
|
}
|
|
2282
2301
|
function Xi(t, e) {
|
|
2283
|
-
const [n, r] =
|
|
2302
|
+
const [n, r] = j(null), [s, a] = j(null), [o, l] = j(0);
|
|
2284
2303
|
return S(() => {
|
|
2285
2304
|
let c = !0;
|
|
2286
|
-
return t().then((u) => c && r(u)).catch((u) => c && a(
|
|
2305
|
+
return t().then((u) => c && r(u)).catch((u) => c && a(bt(u))), () => {
|
|
2287
2306
|
c = !1;
|
|
2288
2307
|
};
|
|
2289
2308
|
}, [...e, o]), { data: n, error: s, reload: () => l((c) => c + 1) };
|
|
2290
2309
|
}
|
|
2291
2310
|
const Rl = (t) => new Promise((e) => setTimeout(e, t)), Pl = 2500, $l = 72;
|
|
2292
2311
|
function Ql(t, e) {
|
|
2293
|
-
const n =
|
|
2312
|
+
const n = Ft(), r = z(n);
|
|
2294
2313
|
r.current = n;
|
|
2295
|
-
const [s, a] =
|
|
2314
|
+
const [s, a] = j(Jt), o = z(Jt()), l = z(null), c = z(e.lang ?? null), [u, d] = j(!1), [M, h] = j(null), [f, p] = j(!1), y = Ke(() => {
|
|
2296
2315
|
const A = o.current;
|
|
2297
2316
|
a({ ...A });
|
|
2298
|
-
}, []), T =
|
|
2317
|
+
}, []), T = z(e);
|
|
2299
2318
|
T.current = e, S(() => {
|
|
2300
2319
|
if (!t) return;
|
|
2301
|
-
let A = !0,
|
|
2302
|
-
o.current =
|
|
2320
|
+
let A = !0, v = 0;
|
|
2321
|
+
o.current = Jt(), a(Jt()), p(!1);
|
|
2303
2322
|
const _ = n.client;
|
|
2304
2323
|
let O = o.current.state;
|
|
2305
2324
|
const te = () => {
|
|
@@ -2317,11 +2336,11 @@ function Ql(t, e) {
|
|
|
2317
2336
|
Z.close();
|
|
2318
2337
|
return;
|
|
2319
2338
|
}
|
|
2320
|
-
|
|
2339
|
+
v = 0, l.current = Z, c.current !== pe && Z.setLanguage(c.current), d(!0), h(null), o.current = mr(Z.snapshot, o.current), y(), te();
|
|
2321
2340
|
for await (const le of Z) {
|
|
2322
2341
|
if (!A) break;
|
|
2323
2342
|
if (le.type === "snapshot")
|
|
2324
|
-
o.current = mr(le.snapshot, le.reason === "gap" ? o.current :
|
|
2343
|
+
o.current = mr(le.snapshot, le.reason === "gap" ? o.current : Jt()), y(), te();
|
|
2325
2344
|
else if (le.type === "frame") {
|
|
2326
2345
|
Nl(o.current, le.frame);
|
|
2327
2346
|
const Te = le.frame;
|
|
@@ -2330,7 +2349,7 @@ function Ql(t, e) {
|
|
|
2330
2349
|
}
|
|
2331
2350
|
} catch (pe) {
|
|
2332
2351
|
if (!A) return;
|
|
2333
|
-
const le =
|
|
2352
|
+
const le = bt(pe);
|
|
2334
2353
|
if (le.code === "not_found" || le.status === 404) {
|
|
2335
2354
|
p(!0), h(le);
|
|
2336
2355
|
return;
|
|
@@ -2338,7 +2357,7 @@ function Ql(t, e) {
|
|
|
2338
2357
|
try {
|
|
2339
2358
|
await _.recordings.get(t, n.readAs);
|
|
2340
2359
|
} catch (Te) {
|
|
2341
|
-
const je =
|
|
2360
|
+
const je = bt(Te);
|
|
2342
2361
|
if (je.code === "not_found" || je.status === 404) {
|
|
2343
2362
|
p(!0), h(je);
|
|
2344
2363
|
return;
|
|
@@ -2358,19 +2377,19 @@ function Ql(t, e) {
|
|
|
2358
2377
|
}
|
|
2359
2378
|
const J = o.current.state;
|
|
2360
2379
|
if (!A || J === "ended" || J === "finalized" || J === "processing") return;
|
|
2361
|
-
|
|
2380
|
+
v += 1, await Rl(Math.min(15e3, 1e3 * 2 ** Math.min(v, 4)));
|
|
2362
2381
|
}
|
|
2363
2382
|
})(), () => {
|
|
2364
2383
|
var K;
|
|
2365
2384
|
A = !1, (K = l.current) == null || K.close(), l.current = null, d(!1);
|
|
2366
2385
|
};
|
|
2367
2386
|
}, [t, n, e.voice]);
|
|
2368
|
-
const [N, m] =
|
|
2387
|
+
const [N, m] = j(!1), [b, C] = j(null), D = z(0), [V, Y] = j(null), ee = Ke((A) => {
|
|
2369
2388
|
var te;
|
|
2370
2389
|
if (c.current = A, (te = l.current) == null || te.setLanguage(A), !t) return;
|
|
2371
|
-
const
|
|
2390
|
+
const v = r.current.client, _ = ++D.current;
|
|
2372
2391
|
m(!0), C(null);
|
|
2373
|
-
const O = (K) =>
|
|
2392
|
+
const O = (K) => v.recordings.transcript(t, { lang: A ?? void 0, ...r.current.readAs, asListener: !r.current.owner }).then((L) => {
|
|
2374
2393
|
_ === D.current && (o.current = mr(L, o.current), Y(A), y(), L.translationPending && K > 0 && window.setTimeout(() => {
|
|
2375
2394
|
_ === D.current && O(K - 1).catch(() => {
|
|
2376
2395
|
});
|
|
@@ -2381,16 +2400,16 @@ function Ql(t, e) {
|
|
|
2381
2400
|
}).finally(() => {
|
|
2382
2401
|
_ === D.current && m(!1);
|
|
2383
2402
|
});
|
|
2384
|
-
}, [y, t]), I = Ke((A,
|
|
2403
|
+
}, [y, t]), I = Ke((A, v) => {
|
|
2385
2404
|
const _ = o.current;
|
|
2386
2405
|
let O = !1;
|
|
2387
|
-
for (const [te, K] of Object.entries(
|
|
2406
|
+
for (const [te, K] of Object.entries(v)) {
|
|
2388
2407
|
const L = _.sentences.get(Number(te));
|
|
2389
2408
|
L && (L.translations = { ...L.translations, [A]: K }, O = !0);
|
|
2390
2409
|
}
|
|
2391
2410
|
O && y();
|
|
2392
2411
|
}, [y]), F = Ke(() => h(null), []);
|
|
2393
|
-
return { model: s, connected: u, error: M, notFound: f, clearError: F, setLanguage: ee, mergeTranslations: I, translating: N, translateFailed: b, shownLang:
|
|
2412
|
+
return { model: s, connected: u, error: M, notFound: f, clearError: F, setLanguage: ee, mergeTranslations: I, translating: N, translateFailed: b, shownLang: V };
|
|
2394
2413
|
}
|
|
2395
2414
|
const pi = {
|
|
2396
2415
|
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" },
|
|
@@ -2424,10 +2443,10 @@ function Tr(t) {
|
|
|
2424
2443
|
return "queued";
|
|
2425
2444
|
}
|
|
2426
2445
|
}
|
|
2427
|
-
function
|
|
2446
|
+
function Vl(t) {
|
|
2428
2447
|
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;
|
|
2429
2448
|
}
|
|
2430
|
-
const
|
|
2449
|
+
const Bl = (t, e) => {
|
|
2431
2450
|
const n = (t == null ? void 0 : t.segmentsDone) ?? e, r = Math.max(n, (t == null ? void 0 : t.segmentsTotal) ?? n);
|
|
2432
2451
|
return `${n} / ${r} SEGMENTS`;
|
|
2433
2452
|
};
|
|
@@ -2446,14 +2465,14 @@ const Sr = [
|
|
|
2446
2465
|
{ 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" },
|
|
2447
2466
|
{ 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" }
|
|
2448
2467
|
];
|
|
2449
|
-
function
|
|
2468
|
+
function Br(t) {
|
|
2450
2469
|
const e = document.createElement("a");
|
|
2451
2470
|
e.href = t, e.style.display = "none", document.body.appendChild(e), e.click(), e.remove();
|
|
2452
2471
|
}
|
|
2453
2472
|
async function Wl(t) {
|
|
2454
2473
|
const e = await fetch(t, { redirect: "manual" });
|
|
2455
2474
|
if (e.type !== "opaqueredirect" && !e.ok) throw await ta(e);
|
|
2456
|
-
|
|
2475
|
+
Br(t);
|
|
2457
2476
|
}
|
|
2458
2477
|
async function Fl(t, e, n, r = {}) {
|
|
2459
2478
|
var h, f;
|
|
@@ -2472,7 +2491,7 @@ async function Zl(t, e) {
|
|
|
2472
2491
|
if (Date.now() > u) throw new Error("The spoken track is taking too long; try again in a moment.");
|
|
2473
2492
|
await new Promise((d) => setTimeout(d, 4e3)), c = l(await o());
|
|
2474
2493
|
}
|
|
2475
|
-
|
|
2494
|
+
Br(po(t.origin, n, r, c.voiceKey, a));
|
|
2476
2495
|
}
|
|
2477
2496
|
const na = (t) => {
|
|
2478
2497
|
var e;
|
|
@@ -2498,7 +2517,7 @@ function Jl(t, e, n) {
|
|
|
2498
2517
|
return o += r * s[c] / a, { text: l, start: u, end: o };
|
|
2499
2518
|
});
|
|
2500
2519
|
}
|
|
2501
|
-
function
|
|
2520
|
+
function vr(t) {
|
|
2502
2521
|
const e = getComputedStyle(t), n = t.clientHeight * 0.45;
|
|
2503
2522
|
return {
|
|
2504
2523
|
top: Math.min(parseFloat(e.paddingTop) || 0, n),
|
|
@@ -2506,7 +2525,7 @@ function wr(t) {
|
|
|
2506
2525
|
};
|
|
2507
2526
|
}
|
|
2508
2527
|
function Xl(t, e, n = 0) {
|
|
2509
|
-
const r =
|
|
2528
|
+
const r = z(() => {
|
|
2510
2529
|
});
|
|
2511
2530
|
S(() => {
|
|
2512
2531
|
r.current();
|
|
@@ -2559,12 +2578,12 @@ function Xl(t, e, n = 0) {
|
|
|
2559
2578
|
if (!d) return;
|
|
2560
2579
|
const ee = l();
|
|
2561
2580
|
s.scrollTop = h + (Y.clientY - M) / (ee.vis - ee.size) * ee.max, p();
|
|
2562
|
-
},
|
|
2581
|
+
}, V = () => {
|
|
2563
2582
|
d && (d = !1, a.style.cursor = "grab", p());
|
|
2564
2583
|
};
|
|
2565
|
-
return s.addEventListener("scroll", b, { passive: !0 }), a.addEventListener("pointerdown", C), a.addEventListener("pointermove", D), a.addEventListener("pointerup",
|
|
2584
|
+
return s.addEventListener("scroll", b, { passive: !0 }), a.addEventListener("pointerdown", C), a.addEventListener("pointermove", D), a.addEventListener("pointerup", V), a.addEventListener("pointercancel", V), typeof ResizeObserver < "u" && (y = new ResizeObserver(() => N()), y.observe(s)), r.current = () => N(), N(), () => {
|
|
2566
2585
|
r.current = () => {
|
|
2567
|
-
}, s.removeEventListener("scroll", b), a.removeEventListener("pointerdown", C), a.removeEventListener("pointermove", D), a.removeEventListener("pointerup",
|
|
2586
|
+
}, s.removeEventListener("scroll", b), a.removeEventListener("pointerdown", C), a.removeEventListener("pointermove", D), a.removeEventListener("pointerup", V), a.removeEventListener("pointercancel", V), y == null || y.disconnect(), clearTimeout(u);
|
|
2568
2587
|
};
|
|
2569
2588
|
}, []);
|
|
2570
2589
|
}
|
|
@@ -2572,9 +2591,9 @@ function ec({ thumbRef: t }) {
|
|
|
2572
2591
|
return /* @__PURE__ */ i("div", { className: "feedbar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", { ref: t, className: "feedbar__thumb" }) });
|
|
2573
2592
|
}
|
|
2574
2593
|
function tc({ error: t, onClose: e }) {
|
|
2575
|
-
const n =
|
|
2594
|
+
const n = z(e);
|
|
2576
2595
|
n.current = e;
|
|
2577
|
-
const [r, s] =
|
|
2596
|
+
const [r, s] = j(!1), [a, o] = j(!1), l = z();
|
|
2578
2597
|
if (S(() => {
|
|
2579
2598
|
o(!1), s(!1), window.clearTimeout(l.current);
|
|
2580
2599
|
}, [t]), S(() => () => window.clearTimeout(l.current), []), S(() => {
|
|
@@ -2595,7 +2614,7 @@ Request id: ${t.requestId}` : t.message;
|
|
|
2595
2614
|
/* @__PURE__ */ i(oe, { d: X.warn, size: 16, style: { color: "var(--conf-low)", flex: "none" } }),
|
|
2596
2615
|
/* @__PURE__ */ g("span", { style: { flex: 1 }, children: [
|
|
2597
2616
|
t.message,
|
|
2598
|
-
u && /* @__PURE__ */ g(
|
|
2617
|
+
u && /* @__PURE__ */ g(Ce, { children: [
|
|
2599
2618
|
" ",
|
|
2600
2619
|
/* @__PURE__ */ i("a", { href: "https://app.vocalstack.com/billing", target: "_blank", rel: "noopener", className: "dev-link", style: { fontSize: "inherit", fontWeight: 600, whiteSpace: "nowrap" }, children: "Add credit" })
|
|
2601
2620
|
] })
|
|
@@ -2611,7 +2630,7 @@ function ed({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, n
|
|
|
2611
2630
|
return /* @__PURE__ */ g("div", { className: "vs-tt", children: [
|
|
2612
2631
|
/* @__PURE__ */ g("div", { className: "vs-tt__r1", children: [
|
|
2613
2632
|
/* @__PURE__ */ i("div", { className: "vs-tt__chip", children: t }),
|
|
2614
|
-
e ? /* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: e }) : /* @__PURE__ */ g(
|
|
2633
|
+
e ? /* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: e }) : /* @__PURE__ */ g(Ce, { children: [
|
|
2615
2634
|
/* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: n }),
|
|
2616
2635
|
/* @__PURE__ */ i("div", { className: "vs-tt__spk", children: r }),
|
|
2617
2636
|
/* @__PURE__ */ i("div", { className: "vs-tt__voice", children: s })
|
|
@@ -2625,11 +2644,11 @@ function ed({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, n
|
|
|
2625
2644
|
] });
|
|
2626
2645
|
}
|
|
2627
2646
|
function nc({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: a, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
|
|
2628
|
-
const M =
|
|
2647
|
+
const M = z(null), h = z(!1), [f, p] = j(null), y = Math.max(1, e), T = f ?? u, N = T != null ? Math.min(100, Math.max(0, T * 100)) : t / Math.max(1, y - 1) * 100, m = u != null && d > 0 && f == null ? `width ${d}ms linear, left ${d}ms linear` : "none", b = (D) => {
|
|
2629
2648
|
var I;
|
|
2630
|
-
const
|
|
2631
|
-
if (!
|
|
2632
|
-
const Y = Math.min(1, Math.max(0, (D.clientX -
|
|
2649
|
+
const V = (I = M.current) == null ? void 0 : I.getBoundingClientRect();
|
|
2650
|
+
if (!V) return;
|
|
2651
|
+
const Y = Math.min(1, Math.max(0, (D.clientX - V.left) / Math.max(1, V.width)));
|
|
2633
2652
|
if (o) {
|
|
2634
2653
|
p(Y), o(Y);
|
|
2635
2654
|
return;
|
|
@@ -2646,8 +2665,8 @@ function nc({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek:
|
|
|
2646
2665
|
ref: M,
|
|
2647
2666
|
className: "rscrub__track",
|
|
2648
2667
|
onPointerDown: (D) => {
|
|
2649
|
-
var
|
|
2650
|
-
h.current = !0, (
|
|
2668
|
+
var V;
|
|
2669
|
+
h.current = !0, (V = M.current) == null || V.setPointerCapture(D.pointerId), l == null || l(), b(D), D.preventDefault();
|
|
2651
2670
|
},
|
|
2652
2671
|
onPointerMove: (D) => {
|
|
2653
2672
|
h.current && b(D);
|
|
@@ -2684,13 +2703,13 @@ function sc({ f: t, desk: e, onOpen: n }) {
|
|
|
2684
2703
|
s,
|
|
2685
2704
|
a > 0 && /* @__PURE__ */ i("span", { className: "badge__n", children: a })
|
|
2686
2705
|
] }, s);
|
|
2687
|
-
return /* @__PURE__ */ g(
|
|
2706
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
2688
2707
|
t.script > 0 && r(e ? "SCRIPT FIX" : "SCRIPT", t.script, !0),
|
|
2689
2708
|
t.manual && r(e ? "MANUAL FIX" : "MANUAL", t.manualCount, t.script === 0)
|
|
2690
2709
|
] });
|
|
2691
2710
|
}
|
|
2692
2711
|
function ic({ onOpen: t, alone: e }) {
|
|
2693
|
-
const [n, r] =
|
|
2712
|
+
const [n, r] = j(!1);
|
|
2694
2713
|
return /* @__PURE__ */ g("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) => {
|
|
2695
2714
|
s.stopPropagation(), t();
|
|
2696
2715
|
}, children: [
|
|
@@ -2699,7 +2718,7 @@ function ic({ onOpen: t, alone: e }) {
|
|
|
2699
2718
|
] });
|
|
2700
2719
|
}
|
|
2701
2720
|
function ac(t, e, n, r) {
|
|
2702
|
-
const s =
|
|
2721
|
+
const s = Ft(), [a, o] = j([]), [l, c] = j(0), u = z(/* @__PURE__ */ new Set()), d = z(!1), M = ze(() => new Map(n.filter((f) => f.sentenceId != null).map((f) => [f.sentenceId, f])), [n]);
|
|
2703
2722
|
S(() => {
|
|
2704
2723
|
u.current = /* @__PURE__ */ new Set();
|
|
2705
2724
|
}, [t, e]);
|
|
@@ -2825,14 +2844,14 @@ function uc({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
|
|
|
2825
2844
|
}) }) : null;
|
|
2826
2845
|
}
|
|
2827
2846
|
function dc({ 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: M = null, problem: h, noClone: f = null, t: p }) {
|
|
2828
|
-
const y = ze(() => lc(e, p), [e, p]), [T, N] =
|
|
2847
|
+
const y = ze(() => lc(e, p), [e, p]), [T, N] = j({});
|
|
2829
2848
|
S(() => {
|
|
2830
2849
|
N({});
|
|
2831
2850
|
}, [d, M]);
|
|
2832
2851
|
const m = (D) => D === p.vcMale.toUpperCase() || D === p.vcFemale.toUpperCase(), b = (D) => {
|
|
2833
2852
|
if (D === p.vcSheet) return !0;
|
|
2834
|
-
const
|
|
2835
|
-
return
|
|
2853
|
+
const V = T[D];
|
|
2854
|
+
return V != null ? !V : !M || !m(D) ? !0 : D === (M === "female" ? p.vcFemale : p.vcMale).toUpperCase();
|
|
2836
2855
|
}, C = !!r && r !== n;
|
|
2837
2856
|
return /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
2838
2857
|
h && /* @__PURE__ */ g("div", { style: { display: "flex", alignItems: "flex-start", gap: 9, padding: "10px 11px", marginBottom: 10, borderRadius: 11, background: "var(--conf-low-soft)" }, children: [
|
|
@@ -2841,7 +2860,7 @@ function dc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2841
2860
|
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(lo, { value: h, label: "Copy this error" }) })
|
|
2842
2861
|
] }),
|
|
2843
2862
|
t,
|
|
2844
|
-
f && /* @__PURE__ */ g(
|
|
2863
|
+
f && /* @__PURE__ */ g(Ce, { children: [
|
|
2845
2864
|
/* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, padding: "14px 2px 6px", userSelect: "none" }, children: /* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: p.vcSheet }) }),
|
|
2846
2865
|
/* @__PURE__ */ g("div", { role: f.action ? "button" : "status", tabIndex: f.action ? 0 : void 0, title: f.tip, onClick: f.action, onKeyDown: f.action ? (D) => {
|
|
2847
2866
|
(D.key === "Enter" || D.key === " ") && (D.preventDefault(), f.action());
|
|
@@ -2853,11 +2872,11 @@ function dc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2853
2872
|
] })
|
|
2854
2873
|
] })
|
|
2855
2874
|
] }),
|
|
2856
|
-
y.map(({ v: D, headOn:
|
|
2857
|
-
const A = oc(D),
|
|
2875
|
+
y.map(({ v: D, headOn: V, head: Y, headCount: ee, rule: I }, F) => {
|
|
2876
|
+
const A = oc(D), v = a === D.id, _ = b(Y), O = (u == null ? void 0 : u(D)) ?? null;
|
|
2858
2877
|
return /* @__PURE__ */ g(qa, { children: [
|
|
2859
|
-
|
|
2860
|
-
|
|
2878
|
+
V && Y === p.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 }) }),
|
|
2879
|
+
V && Y !== p.vcSheet && /* @__PURE__ */ g(
|
|
2861
2880
|
"button",
|
|
2862
2881
|
{
|
|
2863
2882
|
type: "button",
|
|
@@ -2884,7 +2903,7 @@ function dc({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2884
2903
|
onClick: () => o(D),
|
|
2885
2904
|
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 === D.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" },
|
|
2886
2905
|
children: [
|
|
2887
|
-
/* @__PURE__ */ i("span", { title:
|
|
2906
|
+
/* @__PURE__ */ i("span", { title: v ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: v ? "transparent" : D.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: v ? /* @__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 === D.id ? /* @__PURE__ */ g("span", { className: "vcplay", children: [
|
|
2888
2907
|
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(hc, { height: 13, width: 2.5 }) }),
|
|
2889
2908
|
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(io, { size: 11 }) })
|
|
2890
2909
|
] }) : /* @__PURE__ */ i(oe, { d: D.cloned ? X.voiceClone : D.gender === "female" ? X.venus : D.gender === "male" ? X.mars : X.mic, size: 15, sw: 1.6, style: { color: D.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
|
|
@@ -2931,7 +2950,7 @@ function Dr(t, e) {
|
|
|
2931
2950
|
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : Mc, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
|
|
2932
2951
|
}
|
|
2933
2952
|
function gc(t, e, n = 0, r) {
|
|
2934
|
-
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 =
|
|
2953
|
+
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 = Ft(), { data: c } = Xi(async () => {
|
|
2935
2954
|
if (!t || !e) return null;
|
|
2936
2955
|
try {
|
|
2937
2956
|
return await l.client.voices.available(t, { recording: s ?? void 0, shareCode: s ? o ?? void 0 : void 0, asOwner: l.owner });
|
|
@@ -2945,14 +2964,14 @@ function fc(t) {
|
|
|
2945
2964
|
return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
|
|
2946
2965
|
}
|
|
2947
2966
|
function pc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, sentenceIds: a }) {
|
|
2948
|
-
const o =
|
|
2967
|
+
const o = Ft(), { data: l, reload: c } = Xi(async () => {
|
|
2949
2968
|
if (!t || !e) return null;
|
|
2950
2969
|
const K = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
|
|
2951
2970
|
return { recordingId: t, lang: e, rows: K.filter((L) => L.lang === e) };
|
|
2952
2971
|
}, [t, e, o, n]), u = ze(
|
|
2953
2972
|
() => l && l.lang === e && l.recordingId === t ? l.rows : [],
|
|
2954
2973
|
[l, e, t]
|
|
2955
|
-
), d = ze(() => Ui(u, s), [u, s]), M = d ? d.voiceKey || null : s, [h, f] =
|
|
2974
|
+
), d = ze(() => Ui(u, s), [u, s]), M = d ? d.voiceKey || null : s, [h, f] = j(null), [p, y] = j(null), T = z(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${M ?? ""}`, m = Ke(async (K, L) => {
|
|
2956
2975
|
if (!t || !e || !n) return;
|
|
2957
2976
|
const ie = L != null && L.size ? null : yi(K), ne = L != null && L.size ? L : ie, Z = ne && ne.size ? Object.fromEntries([...ne].map(([Te, je]) => [String(Te), je])) : null, J = `${t}|${e}|${Z ? JSON.stringify(Z) : K ?? ""}`;
|
|
2958
2977
|
if (T.current.has(J)) return;
|
|
@@ -2971,7 +2990,7 @@ function pc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2971
2990
|
const K = `${t ?? ""}|${e ?? ""}|`;
|
|
2972
2991
|
for (const L of [...T.current]) L.startsWith(K) && T.current.delete(L);
|
|
2973
2992
|
y(null);
|
|
2974
|
-
}, [t, e]), C = !!d && (d.state === "queued" || d.state === "running") || h === N, D = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : p,
|
|
2993
|
+
}, [t, e]), C = !!d && (d.state === "queued" || d.state === "running") || h === N, D = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : p, V = (a == null ? void 0 : a.join(",")) ?? "", [Y, ee] = j(null), I = ze(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), F = ze(() => n && V ? V.split(",").map(Number).filter((K) => !I.has(K)) : [], [n, V, I]), A = z(null);
|
|
2975
2994
|
S(() => {
|
|
2976
2995
|
if (!n || !t || !e || !F.length) return;
|
|
2977
2996
|
const K = Y ?? F[0], L = F.find((pe) => pe >= K) ?? F[0], ie = `${t}|${e}|${M ?? ""}`, ne = A.current;
|
|
@@ -2984,25 +3003,25 @@ function pc({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2984
3003
|
A.current = null;
|
|
2985
3004
|
});
|
|
2986
3005
|
}, [n, t, e, M, Y, F, o]);
|
|
2987
|
-
const
|
|
3006
|
+
const v = F.length > 0, _ = z({ n: -1, at: 0 });
|
|
2988
3007
|
S(() => {
|
|
2989
|
-
if (!
|
|
3008
|
+
if (!v) return;
|
|
2990
3009
|
const K = setInterval(() => {
|
|
2991
3010
|
const L = I.size;
|
|
2992
3011
|
L !== _.current.n && (_.current = { n: L, at: Date.now() }), !(Date.now() - _.current.at > 10 * 6e4) && c();
|
|
2993
3012
|
}, 3e3);
|
|
2994
3013
|
return () => clearInterval(K);
|
|
2995
|
-
}, [
|
|
3014
|
+
}, [v, c, I]);
|
|
2996
3015
|
const O = ze(() => {
|
|
2997
3016
|
if (!t) return [];
|
|
2998
|
-
const K =
|
|
2999
|
-
return
|
|
3000
|
-
}, [d, t, o, r,
|
|
3017
|
+
const K = V ? V.split(",").map(Number).filter((ie) => !n || I.has(ie)) : void 0, L = d ?? (K != null && K.length && e ? { lang: e, voiceKey: s ?? "", clips: [], voice: null } : null);
|
|
3018
|
+
return wo(L, t, o.origin, r, K);
|
|
3019
|
+
}, [d, t, o, r, V, e, s, n, I]), te = ze(() => new Set(F), [F]);
|
|
3001
3020
|
return { listed: l, rows: u, track: d, renderVoiceId: M, rendering: C, failed: D, clips: O, requestRender: m, forget: b, reload: c, setNear: ee, missing: F.length, coming: te };
|
|
3002
3021
|
}
|
|
3003
3022
|
const mc = { 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 };
|
|
3004
3023
|
function ia({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s }) {
|
|
3005
|
-
const o = s && t.length <= 3, l = t.some((T) => T.key === e), [c, u] =
|
|
3024
|
+
const o = s && t.length <= 3, l = t.some((T) => T.key === e), [c, u] = j(null), d = z(null), [M, h] = j(0);
|
|
3006
3025
|
S(() => {
|
|
3007
3026
|
d.current && h(d.current.offsetWidth);
|
|
3008
3027
|
}, [c == null ? void 0 : c.k]);
|
|
@@ -3035,7 +3054,7 @@ function ia({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
3035
3054
|
return s ? /* @__PURE__ */ g("button", { type: "button", role: "tab", "aria-selected": N, title: T.label, className: `tabbar__tab${N ? " is-on" : ""}`, style: { flex: b }, onClick: D, children: [
|
|
3036
3055
|
C && /* @__PURE__ */ i(oe, { d: C, size: 15, sw: T.sw ?? 2, style: { flex: "none" } }),
|
|
3037
3056
|
m && /* @__PURE__ */ i("span", { className: "tabbar__label", children: T.label })
|
|
3038
|
-
] }, T.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex: b }, onMouseEnter: (
|
|
3057
|
+
] }, T.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex: b }, onMouseEnter: (V) => f(V, T), onMouseMove: (V) => f(V, T), onClick: D, children: /* @__PURE__ */ g("button", { type: "button", role: "tab", "aria-selected": N, "aria-label": T.label, className: `tabbar__tab${N ? " is-on" : ""}${(c == null ? void 0 : c.k) === T.key ? " is-tip" : ""}`, children: [
|
|
3039
3058
|
C && /* @__PURE__ */ i(oe, { d: C, size: 15, sw: T.sw ?? 2, className: "tabbar__icon", style: { flex: "none", transform: N && !o ? "scale(1.12)" : "none" } }),
|
|
3040
3059
|
/* @__PURE__ */ i("span", { className: "tabbar__grow", "data-tab-lw": "", style: { gridTemplateColumns: m ? "1fr" : "0fr", marginLeft: m && C ? 6 : 0 }, children: /* @__PURE__ */ i("span", { className: "tabbar__label", "data-tab-l": "", style: { opacity: m ? 1 : 0, transform: m ? "none" : "translateX(-6px)" }, children: T.label }) })
|
|
3041
3060
|
] }) }, T.key);
|
|
@@ -3045,7 +3064,7 @@ function ia({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
3045
3064
|
}
|
|
3046
3065
|
const Nc = "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", yc = "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";
|
|
3047
3066
|
function Tc({ audio: t, video: e, formats: n, onExport: r }) {
|
|
3048
|
-
const [s, a] =
|
|
3067
|
+
const [s, a] = j(null), [o, l] = j(null), c = z(void 0), u = z(!0);
|
|
3049
3068
|
S(() => (u.current = !0, () => {
|
|
3050
3069
|
u.current = !1, window.clearTimeout(c.current);
|
|
3051
3070
|
}), []);
|
|
@@ -3065,7 +3084,7 @@ function Tc({ audio: t, video: e, formats: n, onExport: r }) {
|
|
|
3065
3084
|
}).finally(() => {
|
|
3066
3085
|
u.current && l(null);
|
|
3067
3086
|
}));
|
|
3068
|
-
}, f = (p, y, T, N) => /* @__PURE__ */ g(
|
|
3087
|
+
}, f = (p, y, T, N) => /* @__PURE__ */ g(Ce, { children: [
|
|
3069
3088
|
/* @__PURE__ */ i(zr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: N }),
|
|
3070
3089
|
/* @__PURE__ */ g("button", { type: "button", className: "dlrow", disabled: o != null, "aria-busy": o === p || void 0, onClick: () => h(p, y), style: o && o !== p ? { opacity: 0.45 } : void 0, children: [
|
|
3071
3090
|
o === p ? /* @__PURE__ */ i(ht, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: T, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
|
|
@@ -3079,7 +3098,7 @@ function Tc({ audio: t, video: e, formats: n, onExport: r }) {
|
|
|
3079
3098
|
return /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
|
|
3080
3099
|
t && f("audio", t, yc, "DOWNLOAD AUDIO"),
|
|
3081
3100
|
e && f("video", e, X.video, "DOWNLOAD VIDEO"),
|
|
3082
|
-
n !== !1 && /* @__PURE__ */ g(
|
|
3101
|
+
n !== !1 && /* @__PURE__ */ g(Ce, { children: [
|
|
3083
3102
|
/* @__PURE__ */ i(zr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
|
|
3084
3103
|
/* @__PURE__ */ i("div", { className: "fmtgrid", children: Sr.map((p) => /* @__PURE__ */ g("button", { type: "button", className: "fmtgrid__cell", title: o === p.key ? `Building the ${p.name}…` : p.note, disabled: o != null, "aria-busy": o === p.key || void 0, onClick: () => M(p.key), style: o && o !== p.key ? { opacity: 0.45 } : void 0, children: [
|
|
3085
3104
|
o === p.key ? /* @__PURE__ */ i(ht, { size: 16, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: s === p.key ? X.check : p.icon, size: 16, sw: 1.6, style: { color: s === p.key ? "var(--brand)" : "var(--ink-62)" } }),
|
|
@@ -3102,9 +3121,9 @@ function Hr(t, e, n) {
|
|
|
3102
3121
|
}
|
|
3103
3122
|
r();
|
|
3104
3123
|
}
|
|
3105
|
-
function
|
|
3106
|
-
const [r, s] =
|
|
3107
|
-
${t.summary}` : ""}`, l =
|
|
3124
|
+
function vc(t, e, n) {
|
|
3125
|
+
const [r, s] = j(null), a = t.state === "ready", o = `${e ?? ""}|${n ?? ""}|${a ? `${t.title}
|
|
3126
|
+
${t.summary}` : ""}`, l = Ft();
|
|
3108
3127
|
return S(() => {
|
|
3109
3128
|
if (!e || !n || !a) return;
|
|
3110
3129
|
let c = !0;
|
|
@@ -3119,13 +3138,13 @@ ${t.summary}` : ""}`, l = Wt();
|
|
|
3119
3138
|
};
|
|
3120
3139
|
}, [o, l]), !n || !a ? t : (r == null ? void 0 : r.key) === o ? r.s : { state: "pending", retry: t.retry };
|
|
3121
3140
|
}
|
|
3122
|
-
function
|
|
3141
|
+
function wc(t) {
|
|
3123
3142
|
return t != null && t.title && (t != null && t.summary) ? { state: "ready", title: t.title, summary: t.summary, retry: () => {
|
|
3124
3143
|
} } : { state: "unavailable", retry: () => {
|
|
3125
3144
|
} };
|
|
3126
3145
|
}
|
|
3127
3146
|
function Lc({ s: t }) {
|
|
3128
|
-
const [e, n] =
|
|
3147
|
+
const [e, n] = j(!1), r = z(void 0);
|
|
3129
3148
|
S(() => () => window.clearTimeout(r.current), []);
|
|
3130
3149
|
const s = t.title ?? "", a = t.summary ?? "", o = () => {
|
|
3131
3150
|
var c;
|
|
@@ -3145,7 +3164,7 @@ ${a}`).catch(() => {
|
|
|
3145
3164
|
e ? "Copied" : "Copy"
|
|
3146
3165
|
] })
|
|
3147
3166
|
] }),
|
|
3148
|
-
t.state === "ready" ? /* @__PURE__ */ g(
|
|
3167
|
+
t.state === "ready" ? /* @__PURE__ */ g(Ce, { children: [
|
|
3149
3168
|
/* @__PURE__ */ i("div", { style: { fontSize: 15, fontWeight: 600, lineHeight: 1.3, letterSpacing: "-.15px", color: "var(--ink-96)", textWrap: "pretty" }, children: s }),
|
|
3150
3169
|
/* @__PURE__ */ i("div", { style: { fontSize: 13, fontWeight: 300, lineHeight: 1.55, color: "var(--ink-80)", textWrap: "pretty", whiteSpace: "pre-line" }, children: a })
|
|
3151
3170
|
] }) : t.state === "unavailable" ? l("No summary for this recording.") : t.state === "not_requested" ? t.request ? l("This recording was made without a summary.", { label: "Summarize", onClick: t.request }) : l("Recordings under a minute and files of a batch are not summarised.") : /* @__PURE__ */ g("div", { style: { display: "flex", alignItems: "center", gap: 10, fontSize: 13, fontWeight: 300, color: "var(--ink-45)" }, children: [
|
|
@@ -3163,7 +3182,7 @@ function kc({ ytId: t, title: e, timeLabel: n, radius: r, style: s, large: a, ch
|
|
|
3163
3182
|
] });
|
|
3164
3183
|
}
|
|
3165
3184
|
function jc(t = !0, e) {
|
|
3166
|
-
const n =
|
|
3185
|
+
const n = z(null), r = e ?? n;
|
|
3167
3186
|
return S(() => {
|
|
3168
3187
|
const s = r.current;
|
|
3169
3188
|
if (!s || !t) return;
|
|
@@ -3224,7 +3243,7 @@ function Ic(t, e) {
|
|
|
3224
3243
|
return { id: t, tabbed: a && M.length > 1, cur: h, seq: d, pinnable: o, tabKeys: M, stripTabs: e.tabs.filter((m) => M.includes(m.key)), panel: N, pin: p, unpin: y };
|
|
3225
3244
|
}
|
|
3226
3245
|
function bc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
3227
|
-
return Oc(t), /* @__PURE__ */ g(
|
|
3246
|
+
return Oc(t), /* @__PURE__ */ g(Ce, { children: [
|
|
3228
3247
|
e.map((o) => {
|
|
3229
3248
|
const l = t.panel(o);
|
|
3230
3249
|
if (!l.show) return null;
|
|
@@ -3241,7 +3260,7 @@ function bc({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
|
3241
3260
|
] });
|
|
3242
3261
|
}
|
|
3243
3262
|
function Oc(t) {
|
|
3244
|
-
const e =
|
|
3263
|
+
const e = z(t);
|
|
3245
3264
|
e.current = t;
|
|
3246
3265
|
const n = t.id;
|
|
3247
3266
|
S(() => {
|
|
@@ -3263,12 +3282,12 @@ function Oc(t) {
|
|
|
3263
3282
|
F.startsWith("--") && b.style.setProperty(F, C.getPropertyValue(F));
|
|
3264
3283
|
}
|
|
3265
3284
|
b.style.fontFamily = C.fontFamily, b.style.color = C.color;
|
|
3266
|
-
let D = N.el.parentElement,
|
|
3267
|
-
for (; D && !
|
|
3285
|
+
let D = N.el.parentElement, V = "";
|
|
3286
|
+
for (; D && !V; ) {
|
|
3268
3287
|
const I = getComputedStyle(D).backgroundColor;
|
|
3269
|
-
I && !/rgba?\(0, 0, 0, 0\)|transparent/.test(I) && !/\/ 0\.|, 0\.\d+\)$/.test(I) && (
|
|
3288
|
+
I && !/rgba?\(0, 0, 0, 0\)|transparent/.test(I) && !/\/ 0\.|, 0\.\d+\)$/.test(I) && (V = I), D = D.parentElement;
|
|
3270
3289
|
}
|
|
3271
|
-
b.style.background =
|
|
3290
|
+
b.style.background = V || getComputedStyle(document.body).backgroundColor, document.body.appendChild(b), N.orig = [...N.col.querySelectorAll("[data-panel-key]")].map((I) => [I, I.style.order]), N.snap = {}, N.orig.forEach(([I]) => {
|
|
3272
3291
|
N.snap[I.getAttribute("data-panel-key")] = I.getBoundingClientRect();
|
|
3273
3292
|
}), N.tabsSnap = ((ee = o(N)) == null ? void 0 : ee.getBoundingClientRect()) ?? null;
|
|
3274
3293
|
const Y = N.col.querySelector("[data-panel-grid]");
|
|
@@ -3277,20 +3296,20 @@ function Oc(t) {
|
|
|
3277
3296
|
const N = s;
|
|
3278
3297
|
if (!N || !N.on || N.px == null || N.py == null) return;
|
|
3279
3298
|
N.raf = 0, N.clone.style.transform = `translate3d(${N.px - N.x0}px,${N.py - N.y0}px,0)`;
|
|
3280
|
-
const m = e.current, b = N.key, C = o(N), D = m.seq.includes(b),
|
|
3299
|
+
const m = e.current, b = N.key, C = o(N), D = m.seq.includes(b), V = D || m.tabKeys.length > 1, Y = C && N.tabsSnap, ee = !Y || N.py < Y.top + Y.height / 2 ? V ? "pin" : null : "tabs";
|
|
3281
3300
|
let I = null;
|
|
3282
3301
|
if (ee === "pin") {
|
|
3283
|
-
const A = m.seq.filter((_) => _ !== b).map((_) => N.snap[_]).filter(Boolean),
|
|
3284
|
-
D && m.seq.indexOf(b) ===
|
|
3302
|
+
const A = m.seq.filter((_) => _ !== b).map((_) => N.snap[_]).filter(Boolean), v = N.grid ? A.filter((_) => _.bottom < N.py || _.top <= N.py && _.left + _.width / 2 < N.px).length : A.filter((_) => _.top + _.height / 2 < N.py).length;
|
|
3303
|
+
D && m.seq.indexOf(b) === v || (I = { zone: ee, idx: v });
|
|
3285
3304
|
} else ee === "tabs" && D && (I = { zone: ee });
|
|
3286
3305
|
const F = I ? I.zone + (I.idx ?? "") : "";
|
|
3287
3306
|
if (F !== N.sig) {
|
|
3288
|
-
if (N.sig = F, N.target = I, N.orig.forEach(([A,
|
|
3289
|
-
A.style.order =
|
|
3307
|
+
if (N.sig = F, N.target = I, N.orig.forEach(([A, v]) => {
|
|
3308
|
+
A.style.order = v;
|
|
3290
3309
|
}), (I == null ? void 0 : I.zone) === "pin") {
|
|
3291
|
-
const A = m.seq.filter((
|
|
3292
|
-
A.splice(I.idx, 0, b), A.forEach((
|
|
3293
|
-
const O = N.col.querySelector(`[data-panel-key="${
|
|
3310
|
+
const A = m.seq.filter((v) => v !== b);
|
|
3311
|
+
A.splice(I.idx, 0, b), A.forEach((v, _) => {
|
|
3312
|
+
const O = N.col.querySelector(`[data-panel-key="${v}"]`);
|
|
3294
3313
|
O && (O.style.order = String(_ + 1));
|
|
3295
3314
|
});
|
|
3296
3315
|
} else (I == null ? void 0 : I.zone) === "tabs" && (N.el.style.order = "998");
|
|
@@ -3325,8 +3344,8 @@ function Oc(t) {
|
|
|
3325
3344
|
}
|
|
3326
3345
|
const b = m.closest("[data-panel-key]"), C = b == null ? void 0 : b.firstElementChild;
|
|
3327
3346
|
if (!b || !C || !e.current.tabbed || !e.current.pinnable.includes(b.getAttribute("data-panel-key")) || m.closest("[role=button],[role=tab],button,a,input,textarea,select,iframe,[data-pin-pill],[contenteditable=true]")) return a(null);
|
|
3328
|
-
const D = C.getBoundingClientRect(),
|
|
3329
|
-
a(N.clientY >= D.top && N.clientY <= D.top +
|
|
3347
|
+
const D = C.getBoundingClientRect(), V = parseFloat(getComputedStyle(b).getPropertyValue("--grip-h")) || 30;
|
|
3348
|
+
a(N.clientY >= D.top && N.clientY <= D.top + V ? b : null);
|
|
3330
3349
|
}, h = (N) => {
|
|
3331
3350
|
if (!r || N.button !== 0) return;
|
|
3332
3351
|
const m = d(r);
|
|
@@ -3342,7 +3361,7 @@ function Oc(t) {
|
|
|
3342
3361
|
}, [n]);
|
|
3343
3362
|
}
|
|
3344
3363
|
function Cc({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
|
|
3345
|
-
const [o, l] = zo(t), c =
|
|
3364
|
+
const [o, l] = zo(t), c = z(null), u = z(null);
|
|
3346
3365
|
xc(u), S(() => {
|
|
3347
3366
|
document.documentElement.style.setProperty("--colw", `${o}px`);
|
|
3348
3367
|
}, [o]);
|
|
@@ -3350,19 +3369,19 @@ function Cc({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
|
|
|
3350
3369
|
const f = c.current, p = f == null ? void 0 : f.parentElement;
|
|
3351
3370
|
if (h.button !== 0 || !f || !p) return;
|
|
3352
3371
|
h.preventDefault();
|
|
3353
|
-
const y = h.currentTarget, T = getComputedStyle(p), N = p.clientWidth - parseFloat(T.paddingLeft) - parseFloat(T.paddingRight) - (parseFloat(T.columnGap) || 0), m = 320, b = 320, C = Math.max(m, N - b), D = h.clientX,
|
|
3354
|
-
let Y =
|
|
3372
|
+
const y = h.currentTarget, T = getComputedStyle(p), N = p.clientWidth - parseFloat(T.paddingLeft) - parseFloat(T.paddingRight) - (parseFloat(T.columnGap) || 0), m = 320, b = 320, C = Math.max(m, N - b), D = h.clientX, V = f.getBoundingClientRect().width;
|
|
3373
|
+
let Y = V;
|
|
3355
3374
|
y.classList.add("is-on");
|
|
3356
3375
|
const ee = { cur: document.body.style.cursor, sel: document.body.style.userSelect };
|
|
3357
3376
|
document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
|
|
3358
3377
|
const I = (A) => {
|
|
3359
|
-
Y = Math.round(Math.min(C, Math.max(m,
|
|
3378
|
+
Y = Math.round(Math.min(C, Math.max(m, V + (D - A.clientX)))), f.style.flexBasis = `${Y}px`, document.documentElement.style.setProperty("--colw", `${Y}px`);
|
|
3360
3379
|
}, F = () => {
|
|
3361
3380
|
window.removeEventListener("pointermove", I), window.removeEventListener("pointerup", F), window.removeEventListener("pointercancel", F), document.body.style.cursor = ee.cur, document.body.style.userSelect = ee.sel, y.classList.remove("is-on"), l(Y);
|
|
3362
3381
|
};
|
|
3363
3382
|
window.addEventListener("pointermove", I), window.addEventListener("pointerup", F), window.addEventListener("pointercancel", F);
|
|
3364
3383
|
}, M = r ? { display: "none" } : void 0;
|
|
3365
|
-
return /* @__PURE__ */ g(
|
|
3384
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
3366
3385
|
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "colgrip", style: { marginRight: -n, ...M }, children: /* @__PURE__ */ i("div", { className: "colgrip__bar", style: { left: -(n / 2 + 6) }, title: "Drag to resize · double-click to reset", onPointerDown: d, onDoubleClick: () => l(null) }) }),
|
|
3367
3386
|
/* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...M }, children: s ? a : /* @__PURE__ */ i("div", { ref: u, "data-panel-grid": "", className: "panelgrid", children: a }) })
|
|
3368
3387
|
] });
|
|
@@ -3400,7 +3419,7 @@ function Sc(t) {
|
|
|
3400
3419
|
}
|
|
3401
3420
|
const Dc = 1500, Ac = 3e5;
|
|
3402
3421
|
function Ec(t) {
|
|
3403
|
-
const e =
|
|
3422
|
+
const e = Ft(), [n, r] = j(null), [s, a] = j(null), [o, l] = j(null), [c, u] = j(null), d = z(null), M = z(null), h = z(null), f = z(0), p = Ke(() => {
|
|
3404
3423
|
h.current && (clearTimeout(h.current), h.current = null), d.current && (d.current.pause(), d.current.removeAttribute("src"), d.current.load(), d.current = null), M.current && (URL.revokeObjectURL(M.current), M.current = null);
|
|
3405
3424
|
}, []), y = Ke(() => {
|
|
3406
3425
|
f.current += 1, p(), a(null), l(null);
|
|
@@ -3418,7 +3437,7 @@ function Ec(t) {
|
|
|
3418
3437
|
Hn() === "caf" && (C += `${C.includes("?") ? "&" : "?"}format=caf`);
|
|
3419
3438
|
const D = Date.now();
|
|
3420
3439
|
e.shareCode && C.includes("recording=") && (C += `&shareCode=${encodeURIComponent(e.shareCode)}`);
|
|
3421
|
-
const
|
|
3440
|
+
const V = async () => {
|
|
3422
3441
|
if (f.current !== b) return;
|
|
3423
3442
|
let Y;
|
|
3424
3443
|
try {
|
|
@@ -3426,7 +3445,7 @@ function Ec(t) {
|
|
|
3426
3445
|
Y = await fetch(C, { headers: A ? { Authorization: `Bearer ${A}` } : {} });
|
|
3427
3446
|
} catch (A) {
|
|
3428
3447
|
if (f.current !== b) return;
|
|
3429
|
-
l(null), u(
|
|
3448
|
+
l(null), u(bt(A));
|
|
3430
3449
|
return;
|
|
3431
3450
|
}
|
|
3432
3451
|
if (f.current !== b) return;
|
|
@@ -3436,7 +3455,7 @@ function Ec(t) {
|
|
|
3436
3455
|
return;
|
|
3437
3456
|
}
|
|
3438
3457
|
l(m.id), h.current = setTimeout(() => {
|
|
3439
|
-
|
|
3458
|
+
V();
|
|
3440
3459
|
}, Dc);
|
|
3441
3460
|
return;
|
|
3442
3461
|
}
|
|
@@ -3458,7 +3477,7 @@ function Ec(t) {
|
|
|
3458
3477
|
f.current === b && a(m.id);
|
|
3459
3478
|
}).catch(F);
|
|
3460
3479
|
};
|
|
3461
|
-
|
|
3480
|
+
V();
|
|
3462
3481
|
}, [t, p, e]);
|
|
3463
3482
|
return { armId: n, sampleId: s, dlId: o, error: c, clearError: () => u(null), arm: N, stop: y, reset: T };
|
|
3464
3483
|
}
|
|
@@ -3488,14 +3507,14 @@ function En(t, e, n) {
|
|
|
3488
3507
|
function Yc(t) {
|
|
3489
3508
|
return t.on ? t.want || t.relang ? "asked" : t.playing && (t.preparing || t.starting != null) ? "line" : null : null;
|
|
3490
3509
|
}
|
|
3491
|
-
const
|
|
3510
|
+
const vi = "Preparing the voice…";
|
|
3492
3511
|
function Uc(t) {
|
|
3493
3512
|
if (!t.lang) return null;
|
|
3494
3513
|
const e = t.langName;
|
|
3495
3514
|
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;
|
|
3496
3515
|
}
|
|
3497
3516
|
function oa(t, e) {
|
|
3498
|
-
const [n, r] =
|
|
3517
|
+
const [n, r] = j(null), [s, a] = j(!1);
|
|
3499
3518
|
return S(() => {
|
|
3500
3519
|
if (!t) {
|
|
3501
3520
|
r(null), a(!1);
|
|
@@ -3509,7 +3528,7 @@ function oa(t, e) {
|
|
|
3509
3528
|
}
|
|
3510
3529
|
const Rc = (t) => `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
3511
3530
|
function Pc({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
3512
|
-
const [s, a] =
|
|
3531
|
+
const [s, a] = j(() => Date.now());
|
|
3513
3532
|
S(() => {
|
|
3514
3533
|
if (t.since == null) return;
|
|
3515
3534
|
const d = setInterval(() => a(Date.now()), 1e3);
|
|
@@ -3561,7 +3580,7 @@ function la(t, e, n) {
|
|
|
3561
3580
|
const a = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l = ra(r, t[e + 1], r.start + Math.max(2, a.length * 0.4));
|
|
3562
3581
|
return Jl(a, o, l).map((u, d) => ({ ...u, seq: r.seqs[0] ?? 0, idx: d }));
|
|
3563
3582
|
}
|
|
3564
|
-
function
|
|
3583
|
+
function wi(t, e, n) {
|
|
3565
3584
|
if (!t.engaged || e !== t.idx || !n.length) return null;
|
|
3566
3585
|
if (!t.wordSync) return t.clipPos ? Ri(n.map((a) => ({ t: a.text, sp: " " })), t.clipPos) : null;
|
|
3567
3586
|
const r = t.t;
|
|
@@ -3569,7 +3588,7 @@ function vi(t, e, n) {
|
|
|
3569
3588
|
for (let a = 0; a < n.length && n[a].start <= r; a++) s = a;
|
|
3570
3589
|
return s;
|
|
3571
3590
|
}
|
|
3572
|
-
function
|
|
3591
|
+
function Vt(t, e) {
|
|
3573
3592
|
var l;
|
|
3574
3593
|
const n = t.clipPos;
|
|
3575
3594
|
if (t.wordSync || t.timed || !n || !(n.dur > 0)) return t.t;
|
|
@@ -3582,7 +3601,7 @@ function Ht(t, e, n) {
|
|
|
3582
3601
|
return r != null && r > e ? r : (t == null ? void 0 : t.end) != null && t.end > e ? t.end : n > e ? n : e + 4;
|
|
3583
3602
|
}
|
|
3584
3603
|
function $c({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: u, lead: d, onTime: M, waiting: h = !1 }) {
|
|
3585
|
-
const f =
|
|
3604
|
+
const f = z(null), [p, y] = j(!1);
|
|
3586
3605
|
S(() => {
|
|
3587
3606
|
if (!h) {
|
|
3588
3607
|
y(!1);
|
|
@@ -3591,34 +3610,34 @@ function $c({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3591
3610
|
const W = setTimeout(() => y(!0), 300);
|
|
3592
3611
|
return () => clearTimeout(W);
|
|
3593
3612
|
}, [h]);
|
|
3594
|
-
const T = r && !p, N =
|
|
3613
|
+
const T = r && !p, N = z(!1), [m, b] = j(!1), C = (W, ye = []) => {
|
|
3595
3614
|
var G, ke;
|
|
3596
3615
|
if (!(N.current && (W === "pauseVideo" || W === "seekTo" || W === "setPlaybackRate")))
|
|
3597
3616
|
try {
|
|
3598
3617
|
(ke = (G = f.current) == null ? void 0 : G.contentWindow) == null || ke.postMessage(JSON.stringify({ event: "command", func: W, args: ye }), "*");
|
|
3599
3618
|
} catch {
|
|
3600
3619
|
}
|
|
3601
|
-
}, D =
|
|
3620
|
+
}, D = z(null), V = z(!1), Y = z(!1), ee = z(!1), I = z(a);
|
|
3602
3621
|
I.current = a;
|
|
3603
|
-
const F =
|
|
3622
|
+
const F = z(d);
|
|
3604
3623
|
F.current = d;
|
|
3605
|
-
const A =
|
|
3624
|
+
const A = z(o);
|
|
3606
3625
|
A.current = o;
|
|
3607
|
-
const
|
|
3626
|
+
const v = z(!1), _ = () => {
|
|
3608
3627
|
var ye, G;
|
|
3609
3628
|
const W = Y.current || ee.current;
|
|
3610
3629
|
if (W !== N.current)
|
|
3611
3630
|
if (N.current = W, b(W), (ye = A.current) == null || ye.call(A, W), W) {
|
|
3612
3631
|
if (C("playVideo"), F.current) return;
|
|
3613
|
-
|
|
3614
|
-
} else
|
|
3615
|
-
}, O =
|
|
3632
|
+
ve.current && I.current && (v.current = !0, I.current());
|
|
3633
|
+
} else v.current && !F.current && (v.current = !1, ve.current || (G = I.current) == null || G.call(I));
|
|
3634
|
+
}, O = z(n);
|
|
3616
3635
|
O.current = n;
|
|
3617
|
-
const te =
|
|
3636
|
+
const te = z(M);
|
|
3618
3637
|
te.current = M;
|
|
3619
|
-
const K =
|
|
3638
|
+
const K = z(null), L = z(null), [ie, ne] = j(!0), [Z, J] = j(!1), pe = () => {
|
|
3620
3639
|
C("unloadModule", ["captions"]), C("unloadModule", ["cc"]);
|
|
3621
|
-
}, le =
|
|
3640
|
+
}, le = z([]), Te = () => {
|
|
3622
3641
|
pe(), le.current.forEach(clearTimeout), le.current = [400, 1200, 2500, 5e3].map((W) => window.setTimeout(pe, W));
|
|
3623
3642
|
};
|
|
3624
3643
|
S(() => () => le.current.forEach(clearTimeout), []);
|
|
@@ -3633,23 +3652,23 @@ function $c({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3633
3652
|
S(() => (d == null || d.bind(C), () => d == null ? void 0 : d.bind(null)), [!!d]), S(() => {
|
|
3634
3653
|
!d && Z && C("mute");
|
|
3635
3654
|
}, [!!d]);
|
|
3636
|
-
const Se =
|
|
3637
|
-
|
|
3638
|
-
const
|
|
3639
|
-
|
|
3640
|
-
const Ee =
|
|
3655
|
+
const Se = z(null), we = z(l);
|
|
3656
|
+
we.current = l;
|
|
3657
|
+
const ve = z(T);
|
|
3658
|
+
ve.current = T;
|
|
3659
|
+
const Ee = z(!1), Re = z(c);
|
|
3641
3660
|
Re.current = c;
|
|
3642
|
-
const De =
|
|
3661
|
+
const De = z(u);
|
|
3643
3662
|
De.current = u;
|
|
3644
|
-
const Q =
|
|
3663
|
+
const Q = z(!1), [H, E] = j(!1), x = (W) => {
|
|
3645
3664
|
const ye = Se.current;
|
|
3646
3665
|
return !!ye && (W < ye.start - 1 || W > ye.end + 5);
|
|
3647
|
-
},
|
|
3666
|
+
}, B = () => {
|
|
3648
3667
|
x(O.current) || C("seekTo", [O.current, !0]);
|
|
3649
3668
|
}, ce = () => K.current;
|
|
3650
3669
|
return S(() => {
|
|
3651
3670
|
const W = (ye) => {
|
|
3652
|
-
var Fe, Ae, he, _e,
|
|
3671
|
+
var Fe, Ae, he, _e, Ve, $, Me, ue, ae, fe, Ye, U, R, q, se, de;
|
|
3653
3672
|
if (ye.source !== ((Fe = f.current) == null ? void 0 : Fe.contentWindow) || typeof ye.data != "string") return;
|
|
3654
3673
|
let G = null;
|
|
3655
3674
|
try {
|
|
@@ -3657,15 +3676,15 @@ function $c({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3657
3676
|
} catch {
|
|
3658
3677
|
return;
|
|
3659
3678
|
}
|
|
3660
|
-
(he = (Ae = G == null ? void 0 : G.info) == null ? void 0 : Ae.videoData) != null && he.isLive && (
|
|
3679
|
+
(he = (Ae = G == null ? void 0 : G.info) == null ? void 0 : Ae.videoData) != null && he.isLive && (V.current = !0);
|
|
3661
3680
|
const ke = (_e = G == null ? void 0 : G.info) == null ? void 0 : _e.duration;
|
|
3662
|
-
typeof ke == "number" && ke > 0 && !
|
|
3681
|
+
typeof ke == "number" && ke > 0 && !V.current && (D.current == null ? D.current = ke : (Y.current = Math.abs(ke - D.current) > 1.5, _())), (G == null ? void 0 : G.event) === "onReady" && ((!F.current || F.current.muted) && C("mute"), Te(), (Ve = F.current) == null || Ve.onInfo({ ready: !0 })), typeof (($ = G == null ? void 0 : G.info) == null ? void 0 : $.playerState) == "number" && (G.info.playerState !== L.current && (G.info.playerState === 1 || G.info.playerState === 2) && Te(), L.current = G.info.playerState, ne(G.info.playerState !== 1 && G.info.playerState !== 3), (Me = F.current) == null || Me.onInfo({ state: G.info.playerState }));
|
|
3663
3682
|
const Ie = (ue = G == null ? void 0 : G.info) == null ? void 0 : ue.progressState;
|
|
3664
3683
|
if (Ie && typeof Ie.seekableStart == "number" && typeof Ie.seekableEnd == "number" && Ie.seekableEnd > Ie.seekableStart) {
|
|
3665
|
-
const
|
|
3666
|
-
if (Se.current = { start: Ie.seekableStart, end: Ie.seekableEnd },
|
|
3684
|
+
const be = Se.current == null;
|
|
3685
|
+
if (Se.current = { start: Ie.seekableStart, end: Ie.seekableEnd }, be && !ve.current && (C("pauseVideo"), x(O.current) || C("seekTo", [O.current, !0])), !Q.current && we.current != null) {
|
|
3667
3686
|
Q.current = !0;
|
|
3668
|
-
const Ne =
|
|
3687
|
+
const Ne = we.current < Ie.seekableStart - 1;
|
|
3669
3688
|
(ae = De.current) == null || ae.call(De, Ne), Ne && ((fe = Re.current) == null || fe.call(Re));
|
|
3670
3689
|
}
|
|
3671
3690
|
}
|
|
@@ -3683,11 +3702,11 @@ function $c({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3683
3702
|
return;
|
|
3684
3703
|
}
|
|
3685
3704
|
const W = ce();
|
|
3686
|
-
T && (W == null || Math.abs(W - O.current) > 1.5) &&
|
|
3705
|
+
T && (W == null || Math.abs(W - O.current) > 1.5) && B(), C(T ? "playVideo" : "pauseVideo");
|
|
3687
3706
|
}, [T, Z, H]), S(() => {
|
|
3688
3707
|
if (!Z || s === 0 || H || d) return;
|
|
3689
3708
|
const W = ce();
|
|
3690
|
-
(W == null || Math.abs(W - O.current) > 0.5) &&
|
|
3709
|
+
(W == null || Math.abs(W - O.current) > 0.5) && B(), T || C("pauseVideo");
|
|
3691
3710
|
}, [s, Z]), S(() => {
|
|
3692
3711
|
if (!Z) return;
|
|
3693
3712
|
let W = null, ye = 0;
|
|
@@ -3701,7 +3720,7 @@ function $c({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3701
3720
|
}, [Z]), /* @__PURE__ */ g("div", { className: `txyt${m ? " txyt--ad" : ""}`, children: [
|
|
3702
3721
|
/* @__PURE__ */ i("iframe", { ref: f, onLoad: je, referrerPolicy: "strict-origin-when-cross-origin", src: `https://www.youtube-nocookie.com/embed/${t}?enablejsapi=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, title: e, allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" }),
|
|
3703
3722
|
!m && /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: a, style: { cursor: a ? "pointer" : "default" } }),
|
|
3704
|
-
/* @__PURE__ */ i("div", { className: `txyt__paused${ie && !m && !H ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(
|
|
3723
|
+
/* @__PURE__ */ i("div", { className: `txyt__paused${ie && !m && !H ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(Wt, { size: 44 }) }) }),
|
|
3705
3724
|
m && /* @__PURE__ */ i("div", { className: "txyt__ad", "aria-live": "polite", children: "Ad on YouTube · the transcript carries on after it" }),
|
|
3706
3725
|
H && /* @__PURE__ */ g("div", { className: "txyt__gone", children: [
|
|
3707
3726
|
/* @__PURE__ */ i("span", { children: "YouTube no longer has this part of the broadcast" }),
|
|
@@ -3709,25 +3728,25 @@ function $c({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3709
3728
|
] })
|
|
3710
3729
|
] });
|
|
3711
3730
|
}
|
|
3712
|
-
const Qc = /* @__PURE__ */ g(
|
|
3731
|
+
const Qc = /* @__PURE__ */ g(Ce, { children: [
|
|
3713
3732
|
/* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
|
|
3714
3733
|
/* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
3715
|
-
] }),
|
|
3716
|
-
function
|
|
3734
|
+
] }), Vc = /* @__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" });
|
|
3735
|
+
function Bc({ player: t, size: e }) {
|
|
3717
3736
|
const n = t.muted ? "Unmute" : "Mute";
|
|
3718
3737
|
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)" } }) });
|
|
3719
3738
|
}
|
|
3720
3739
|
function Hc() {
|
|
3721
|
-
const [t, e] =
|
|
3740
|
+
const [t, e] = j(""), n = z(null), r = Ke((s) => {
|
|
3722
3741
|
clearTimeout(n.current), e(s), n.current = setTimeout(() => e(""), 3e3);
|
|
3723
3742
|
}, []);
|
|
3724
3743
|
return S(() => () => clearTimeout(n.current), []), [t, r];
|
|
3725
3744
|
}
|
|
3726
3745
|
const Wc = 0.2, Fc = 140, Zc = 320;
|
|
3727
3746
|
function Gc(t, e) {
|
|
3728
|
-
const n =
|
|
3747
|
+
const n = z(t);
|
|
3729
3748
|
n.current = t;
|
|
3730
|
-
const r =
|
|
3749
|
+
const r = z(0), s = z(1), a = Ke((o, l) => {
|
|
3731
3750
|
cancelAnimationFrame(r.current);
|
|
3732
3751
|
const c = s.current, u = performance.now(), d = () => {
|
|
3733
3752
|
const M = l > 0 ? Math.min(1, (performance.now() - u) / l) : 1;
|
|
@@ -3746,18 +3765,18 @@ function Gc(t, e) {
|
|
|
3746
3765
|
}
|
|
3747
3766
|
function qc(t, e, n, r) {
|
|
3748
3767
|
var De;
|
|
3749
|
-
const s =
|
|
3768
|
+
const s = z(null), a = z(!1), o = z(!1), [l, c] = j(null), [u, d] = j(!0), M = z(!0), h = z(!1), [f, p] = j(0), y = z(0);
|
|
3750
3769
|
y.current = f;
|
|
3751
|
-
const T =
|
|
3770
|
+
const T = z({ t: 0, at: 0 }), N = z(n);
|
|
3752
3771
|
N.current = n;
|
|
3753
|
-
const m =
|
|
3772
|
+
const m = z(r);
|
|
3754
3773
|
m.current = r;
|
|
3755
|
-
const [b, C] =
|
|
3774
|
+
const [b, C] = j(!1), D = z(!1), V = (Q) => {
|
|
3756
3775
|
D.current = Q, C(Q);
|
|
3757
3776
|
}, Y = (Q, H) => {
|
|
3758
3777
|
var E;
|
|
3759
3778
|
return (E = s.current) == null ? void 0 : E.call(s, Q, H);
|
|
3760
|
-
}, ee = l === 1 || l === 3, I =
|
|
3779
|
+
}, ee = l === 1 || l === 3, I = z(null), F = z(null), A = ze(() => ({
|
|
3761
3780
|
muted: !0,
|
|
3762
3781
|
bind: (Q) => {
|
|
3763
3782
|
s.current = Q, Q || (a.current = !1);
|
|
@@ -3775,26 +3794,26 @@ function qc(t, e, n, r) {
|
|
|
3775
3794
|
const H = () => {
|
|
3776
3795
|
const E = T.current, x = E.t + Math.min(1.2, (performance.now() - E.at) / 1e3);
|
|
3777
3796
|
if (m.current != null && x >= m.current) {
|
|
3778
|
-
|
|
3797
|
+
V(!0), Y("pauseVideo"), p(x);
|
|
3779
3798
|
return;
|
|
3780
3799
|
}
|
|
3781
3800
|
x > y.current && p(x), Q = requestAnimationFrame(H);
|
|
3782
3801
|
};
|
|
3783
3802
|
return Q = requestAnimationFrame(H), () => cancelAnimationFrame(Q);
|
|
3784
3803
|
}, [l]), S(() => {
|
|
3785
|
-
!b || r == null || r < f + 1.5 || (
|
|
3804
|
+
!b || r == null || r < f + 1.5 || (V(!1), Y("playVideo"));
|
|
3786
3805
|
}, [b, r, f]), S(() => {
|
|
3787
|
-
r == null && D.current && (
|
|
3806
|
+
r == null && D.current && (V(!1), Y("playVideo"));
|
|
3788
3807
|
}, [r]);
|
|
3789
|
-
const
|
|
3808
|
+
const v = t.length ? ((De = t[t.length - 1].words[t[t.length - 1].words.length - 1]) == null ? void 0 : De.end) ?? t[t.length - 1].start + 4 : 0, _ = e || v || 1, O = ze(() => {
|
|
3790
3809
|
if (!t.length) return 0;
|
|
3791
3810
|
let Q = 0;
|
|
3792
3811
|
for (let H = 0; H < t.length; H++) t[H].start <= f + 0.05 && (Q = H);
|
|
3793
3812
|
return Q;
|
|
3794
|
-
}, [t, f]), [te, K] =
|
|
3813
|
+
}, [t, f]), [te, K] = j(0), L = (Q) => {
|
|
3795
3814
|
const H = Math.max(0, m.current != null ? Math.min(Q, Math.max(0, m.current - 0.5)) : Q);
|
|
3796
3815
|
Y("seekTo", [H + N.current, !0]), T.current = { t: H, at: performance.now() }, p(H), K((E) => E + 1);
|
|
3797
|
-
}, ie =
|
|
3816
|
+
}, ie = z(!1), ne = z(void 0), Z = (Q) => {
|
|
3798
3817
|
window.clearTimeout(ne.current), ne.current = window.setTimeout(() => {
|
|
3799
3818
|
!ie.current || Q <= 0 || I.current === 1 || I.current === 3 || (Y("playVideo"), Z(Q - 1));
|
|
3800
3819
|
}, 1200);
|
|
@@ -3807,7 +3826,7 @@ function qc(t, e, n, r) {
|
|
|
3807
3826
|
}
|
|
3808
3827
|
Y("playVideo"), Z(3);
|
|
3809
3828
|
}, pe = () => {
|
|
3810
|
-
ie.current = !1, window.clearTimeout(ne.current), o.current = !1,
|
|
3829
|
+
ie.current = !1, window.clearTimeout(ne.current), o.current = !1, V(!1), Y("pauseVideo");
|
|
3811
3830
|
}, le = () => {
|
|
3812
3831
|
if (!a.current) {
|
|
3813
3832
|
o.current = !0;
|
|
@@ -3818,32 +3837,32 @@ function qc(t, e, n, r) {
|
|
|
3818
3837
|
return;
|
|
3819
3838
|
}
|
|
3820
3839
|
if (D.current) {
|
|
3821
|
-
|
|
3840
|
+
V(!1);
|
|
3822
3841
|
return;
|
|
3823
3842
|
}
|
|
3824
3843
|
f >= _ - 0.25 && L(0), J();
|
|
3825
3844
|
}, Te = (Q) => {
|
|
3826
3845
|
const H = t[Math.max(0, Math.min(t.length - 1, Q))];
|
|
3827
3846
|
H && L(H.start);
|
|
3828
|
-
}, je =
|
|
3847
|
+
}, je = z(!1), Se = () => {
|
|
3829
3848
|
const Q = M.current || h.current;
|
|
3830
3849
|
A.muted = Q, Y(Q ? "mute" : "unMute");
|
|
3831
|
-
}, ve = (Q) => {
|
|
3832
|
-
M.current = Q, d(Q), Se();
|
|
3833
3850
|
}, we = (Q) => {
|
|
3851
|
+
M.current = Q, d(Q), Se();
|
|
3852
|
+
}, ve = (Q) => {
|
|
3834
3853
|
h.current !== !Q && (h.current = !Q, Se());
|
|
3835
3854
|
};
|
|
3836
3855
|
return { player: {
|
|
3837
3856
|
autoplay: async () => {
|
|
3838
3857
|
const Q = (E) => new Promise((x) => setTimeout(x, E)), H = async (E, x) => {
|
|
3839
|
-
for (let
|
|
3858
|
+
for (let B = 0; B < x / 250 && !E(); B++) await Q(250);
|
|
3840
3859
|
return E();
|
|
3841
3860
|
};
|
|
3842
3861
|
if (!await H(() => a.current, 1e4)) return null;
|
|
3843
|
-
|
|
3862
|
+
we(!0);
|
|
3844
3863
|
for (let E = 0; E < 5 && I.current !== 1; E++)
|
|
3845
3864
|
Y("playVideo"), await H(() => I.current === 1, 1500);
|
|
3846
|
-
return I.current !== 1 ? null : h.current ? (
|
|
3865
|
+
return I.current !== 1 ? null : h.current ? (we(!0), !1) : (we(!1), await Q(1200), I.current === 1 && F.current === !1 ? !0 : (we(!0), Y("playVideo"), !1));
|
|
3847
3866
|
},
|
|
3848
3867
|
playing: ee,
|
|
3849
3868
|
ended: l === 0,
|
|
@@ -3856,8 +3875,8 @@ function qc(t, e, n, r) {
|
|
|
3856
3875
|
seekRow: Te,
|
|
3857
3876
|
toggleMute: () => {
|
|
3858
3877
|
const Q = !M.current;
|
|
3859
|
-
|
|
3860
|
-
I.current === 2 && !M.current && (
|
|
3878
|
+
we(Q), !Q && !h.current && I.current === 1 && setTimeout(() => {
|
|
3879
|
+
I.current === 2 && !M.current && (we(!0), Y("playVideo"));
|
|
3861
3880
|
}, 900);
|
|
3862
3881
|
},
|
|
3863
3882
|
seekFrac: (Q) => L(Math.max(0, Math.min(1, Q)) * _),
|
|
@@ -3885,15 +3904,15 @@ function qc(t, e, n, r) {
|
|
|
3885
3904
|
wordSync: !0,
|
|
3886
3905
|
pause: pe,
|
|
3887
3906
|
setVolume: (Q) => Y("setVolume", [Math.round(Q * 100)])
|
|
3888
|
-
}, lead: A, setVideoSound:
|
|
3907
|
+
}, lead: A, setVideoSound: ve };
|
|
3889
3908
|
}
|
|
3890
3909
|
function Kc(t, e, n, r, s = 0, a = null) {
|
|
3891
3910
|
var E;
|
|
3892
|
-
const o =
|
|
3911
|
+
const o = z(null), [l, c] = j(!1), [u, d] = j(0), [M, h] = j(!1), f = z(M);
|
|
3893
3912
|
f.current = M;
|
|
3894
|
-
const p =
|
|
3913
|
+
const p = z(!1), [y, T] = j(null), [N, m] = j(!1), b = z(s);
|
|
3895
3914
|
b.current = s;
|
|
3896
|
-
const C =
|
|
3915
|
+
const C = z(null), [D, V] = j(0);
|
|
3897
3916
|
S(() => {
|
|
3898
3917
|
m(!1);
|
|
3899
3918
|
const x = C.current;
|
|
@@ -3901,30 +3920,30 @@ function Kc(t, e, n, r, s = 0, a = null) {
|
|
|
3901
3920
|
c(!1), o.current = null;
|
|
3902
3921
|
return;
|
|
3903
3922
|
}
|
|
3904
|
-
const
|
|
3905
|
-
return
|
|
3906
|
-
m(!0),
|
|
3907
|
-
x.asked && (W == null ? void 0 : W.name) === "NotAllowedError" || T(
|
|
3923
|
+
const B = _i(t), ce = b.current;
|
|
3924
|
+
return B.preload = "metadata", B.muted = f.current || p.current, B.onplay = () => c(!0), B.onpause = () => c(!1), B.onended = () => c(!1), B.onloadedmetadata = () => {
|
|
3925
|
+
m(!0), B.currentTime = ((x == null ? void 0 : x.t) ?? 0) + ce, x != null && x.playing && B.play().catch((W) => {
|
|
3926
|
+
x.asked && (W == null ? void 0 : W.name) === "NotAllowedError" || T(bt(W));
|
|
3908
3927
|
});
|
|
3909
|
-
},
|
|
3928
|
+
}, B.onerror = () => {
|
|
3910
3929
|
c(!1);
|
|
3911
|
-
const W =
|
|
3930
|
+
const W = B.error, ye = No(W, !1);
|
|
3912
3931
|
Mo(t).then((G) => {
|
|
3913
|
-
Sc(G == null ? void 0 : G.message) || Ai(W), o.current ===
|
|
3932
|
+
Sc(G == null ? void 0 : G.message) || Ai(W), o.current === B && (T({ message: (G == null ? void 0 : G.message) ?? ye }), G != null && G.permanent || (o.current = null));
|
|
3914
3933
|
});
|
|
3915
|
-
}, o.current =
|
|
3916
|
-
C.current = { t: Math.max(0,
|
|
3934
|
+
}, o.current = B, () => {
|
|
3935
|
+
C.current = { t: Math.max(0, B.currentTime - ce), playing: !B.paused && !B.ended }, B.pause(), B.onplay = B.onpause = B.onended = B.onloadedmetadata = B.onerror = null, o.current = null;
|
|
3917
3936
|
};
|
|
3918
3937
|
}, [t, D]), S(() => () => {
|
|
3919
3938
|
C.current = null;
|
|
3920
3939
|
}, []);
|
|
3921
|
-
const Y = n.length ? ((E = n[n.length - 1].words[n[n.length - 1].words.length - 1]) == null ? void 0 : E.end) ?? n[n.length - 1].start + 4 : 0, ee = s > 0 || r != null && N && o.current != null && Number.isFinite(o.current.duration) && o.current.duration > r + 1, I = !ee && N && o.current && Number.isFinite(o.current.duration) && o.current.duration || r || Y || 1, F =
|
|
3940
|
+
const Y = n.length ? ((E = n[n.length - 1].words[n[n.length - 1].words.length - 1]) == null ? void 0 : E.end) ?? n[n.length - 1].start + 4 : 0, ee = s > 0 || r != null && N && o.current != null && Number.isFinite(o.current.duration) && o.current.duration > r + 1, I = !ee && N && o.current && Number.isFinite(o.current.duration) && o.current.duration || r || Y || 1, F = z(I);
|
|
3922
3941
|
F.current = I;
|
|
3923
|
-
const A =
|
|
3942
|
+
const A = z(ee);
|
|
3924
3943
|
A.current = ee;
|
|
3925
|
-
const
|
|
3926
|
-
|
|
3927
|
-
const [_, O] =
|
|
3944
|
+
const v = z(a);
|
|
3945
|
+
v.current = a;
|
|
3946
|
+
const [_, O] = j(!1), te = z(!1), K = (x) => {
|
|
3928
3947
|
te.current = x, O(x);
|
|
3929
3948
|
};
|
|
3930
3949
|
S(() => {
|
|
@@ -3938,7 +3957,7 @@ function Kc(t, e, n, r, s = 0, a = null) {
|
|
|
3938
3957
|
}, [_, a, u]), S(() => {
|
|
3939
3958
|
if (!l) return;
|
|
3940
3959
|
let x = 0;
|
|
3941
|
-
const
|
|
3960
|
+
const B = () => {
|
|
3942
3961
|
const ce = o.current;
|
|
3943
3962
|
if (ce) {
|
|
3944
3963
|
const W = ce.currentTime - b.current;
|
|
@@ -3946,35 +3965,35 @@ function Kc(t, e, n, r, s = 0, a = null) {
|
|
|
3946
3965
|
ce.pause(), d(F.current);
|
|
3947
3966
|
return;
|
|
3948
3967
|
}
|
|
3949
|
-
if (
|
|
3968
|
+
if (v.current != null && W >= v.current) {
|
|
3950
3969
|
K(!0), ce.pause(), d(W);
|
|
3951
3970
|
return;
|
|
3952
3971
|
}
|
|
3953
3972
|
d(W);
|
|
3954
3973
|
}
|
|
3955
|
-
x = requestAnimationFrame(
|
|
3974
|
+
x = requestAnimationFrame(B);
|
|
3956
3975
|
};
|
|
3957
|
-
return x = requestAnimationFrame(
|
|
3976
|
+
return x = requestAnimationFrame(B), () => cancelAnimationFrame(x);
|
|
3958
3977
|
}, [l]);
|
|
3959
3978
|
const L = ze(() => {
|
|
3960
3979
|
if (!n.length) return 0;
|
|
3961
3980
|
let x = 0;
|
|
3962
|
-
for (let
|
|
3981
|
+
for (let B = 0; B < n.length; B++) n[B].start <= u + 0.05 && (x = B);
|
|
3963
3982
|
return x;
|
|
3964
|
-
}, [n, u]), [ie, ne] =
|
|
3965
|
-
const
|
|
3966
|
-
d(
|
|
3983
|
+
}, [n, u]), [ie, ne] = j(0), Z = (x) => {
|
|
3984
|
+
const B = v.current != null ? Math.min(x, Math.max(0, v.current - 0.5)) : x, ce = o.current;
|
|
3985
|
+
d(B), ce && (ce.currentTime = B + b.current), ne((W) => W + 1);
|
|
3967
3986
|
}, J = (x) => {
|
|
3968
|
-
(x == null ? void 0 : x.name) !== "AbortError" && T(
|
|
3987
|
+
(x == null ? void 0 : x.name) !== "AbortError" && T(bt(x));
|
|
3969
3988
|
}, pe = () => {
|
|
3970
|
-
var
|
|
3989
|
+
var B;
|
|
3971
3990
|
const x = o.current;
|
|
3972
3991
|
if (!x) {
|
|
3973
3992
|
if (!t && e) {
|
|
3974
|
-
C.current = (
|
|
3993
|
+
C.current = (B = C.current) != null && B.asked ? null : { t: u, playing: !0, asked: !0 };
|
|
3975
3994
|
return;
|
|
3976
3995
|
}
|
|
3977
|
-
t &&
|
|
3996
|
+
t && V((ce) => ce + 1), T({ message: e ? "The audio player is not ready yet — try again in a moment." : "There is no audio for this transcription." });
|
|
3978
3997
|
return;
|
|
3979
3998
|
}
|
|
3980
3999
|
if (l) {
|
|
@@ -3987,46 +4006,46 @@ function Kc(t, e, n, r, s = 0, a = null) {
|
|
|
3987
4006
|
}
|
|
3988
4007
|
x.currentTime < b.current && (x.currentTime = b.current), u >= I - 0.25 && Z(0), x.play().catch(J);
|
|
3989
4008
|
}, le = (x) => {
|
|
3990
|
-
const
|
|
3991
|
-
|
|
4009
|
+
const B = n[Math.max(0, Math.min(n.length - 1, x))];
|
|
4010
|
+
B && Z(B.start);
|
|
3992
4011
|
}, Te = (x) => Z(Math.max(0, Math.min(1, x)) * I), je = (x) => {
|
|
3993
|
-
const
|
|
3994
|
-
Z(
|
|
4012
|
+
const B = En(x, n, I);
|
|
4013
|
+
Z(B.t);
|
|
3995
4014
|
const ce = o.current;
|
|
3996
4015
|
if (ce) {
|
|
3997
|
-
if (!
|
|
4016
|
+
if (!B.playing) {
|
|
3998
4017
|
ce.pause();
|
|
3999
4018
|
return;
|
|
4000
4019
|
}
|
|
4001
4020
|
K(!1), ce.play().catch(J);
|
|
4002
4021
|
}
|
|
4003
|
-
}, Se = (x) => Z(x.start),
|
|
4022
|
+
}, Se = (x) => Z(x.start), we = (x) => {
|
|
4004
4023
|
le(x);
|
|
4005
|
-
const
|
|
4006
|
-
|
|
4007
|
-
},
|
|
4024
|
+
const B = o.current;
|
|
4025
|
+
B && B.paused && B.play().catch(J);
|
|
4026
|
+
}, ve = z(!1), Ee = z(0), Re = () => {
|
|
4008
4027
|
var x;
|
|
4009
|
-
l && ((x = o.current) == null || x.pause(),
|
|
4028
|
+
l && ((x = o.current) == null || x.pause(), ve.current = !0);
|
|
4010
4029
|
}, De = () => {
|
|
4011
4030
|
var x;
|
|
4012
|
-
|
|
4031
|
+
ve.current && (ve.current = !1, (x = o.current) == null || x.play().catch(J));
|
|
4013
4032
|
};
|
|
4014
4033
|
return {
|
|
4015
4034
|
autoplay: async () => {
|
|
4016
4035
|
const x = o.current;
|
|
4017
4036
|
if (!x) return null;
|
|
4018
4037
|
x.currentTime < b.current && (x.currentTime = b.current);
|
|
4019
|
-
const
|
|
4038
|
+
const B = (ce) => {
|
|
4020
4039
|
f.current = ce, x.muted = ce || p.current, h(ce);
|
|
4021
4040
|
};
|
|
4022
4041
|
try {
|
|
4023
|
-
return
|
|
4042
|
+
return B(!1), await x.play(), !0;
|
|
4024
4043
|
} catch (ce) {
|
|
4025
4044
|
if ((ce == null ? void 0 : ce.name) !== "NotAllowedError")
|
|
4026
|
-
return
|
|
4045
|
+
return B(!0), null;
|
|
4027
4046
|
}
|
|
4028
4047
|
try {
|
|
4029
|
-
return
|
|
4048
|
+
return B(!0), await x.play(), !1;
|
|
4030
4049
|
} catch {
|
|
4031
4050
|
return null;
|
|
4032
4051
|
}
|
|
@@ -4045,17 +4064,17 @@ function Kc(t, e, n, r, s = 0, a = null) {
|
|
|
4045
4064
|
seekFrac: Te,
|
|
4046
4065
|
resumeAt: je,
|
|
4047
4066
|
seekWord: Se,
|
|
4048
|
-
playRow:
|
|
4067
|
+
playRow: we,
|
|
4049
4068
|
seekN: ie,
|
|
4050
4069
|
stop: () => {
|
|
4051
4070
|
const x = o.current;
|
|
4052
4071
|
x && (x.pause(), x.currentTime = b.current), d(0);
|
|
4053
4072
|
},
|
|
4054
4073
|
videoAt: (x) => {
|
|
4055
|
-
const
|
|
4056
|
-
if (!
|
|
4074
|
+
const B = o.current;
|
|
4075
|
+
if (!B || B.paused || B.ended || ve.current || Date.now() - Ee.current < 3e3) return;
|
|
4057
4076
|
const ce = x + b.current;
|
|
4058
|
-
Math.abs(
|
|
4077
|
+
Math.abs(B.currentTime - ce) <= 0.2 || (Ee.current = Date.now(), B.currentTime = ce);
|
|
4059
4078
|
},
|
|
4060
4079
|
engaged: l || u > 0,
|
|
4061
4080
|
prev: () => le(L - 1),
|
|
@@ -4068,8 +4087,8 @@ function Kc(t, e, n, r, s = 0, a = null) {
|
|
|
4068
4087
|
edgeWait: _,
|
|
4069
4088
|
wordSync: !0,
|
|
4070
4089
|
pause: () => {
|
|
4071
|
-
var x,
|
|
4072
|
-
K(!1), (x = C.current) != null && x.asked && (C.current = null), (
|
|
4090
|
+
var x, B;
|
|
4091
|
+
K(!1), (x = C.current) != null && x.asked && (C.current = null), (B = o.current) == null || B.pause();
|
|
4073
4092
|
},
|
|
4074
4093
|
setVolume: (x) => {
|
|
4075
4094
|
o.current && (o.current.volume = x);
|
|
@@ -4080,22 +4099,22 @@ function Kc(t, e, n, r, s = 0, a = null) {
|
|
|
4080
4099
|
};
|
|
4081
4100
|
}
|
|
4082
4101
|
function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
4083
|
-
const c =
|
|
4102
|
+
const c = z(/* @__PURE__ */ new Set());
|
|
4084
4103
|
c.current = l ?? c.current;
|
|
4085
|
-
const u =
|
|
4104
|
+
const u = z(null), [d, M] = j(!1), [h, f] = j(0), [p, y] = j(0), [T, N] = j(!1), m = z(T);
|
|
4086
4105
|
m.current = T;
|
|
4087
|
-
const [b, C] =
|
|
4106
|
+
const [b, C] = j(null), [D, V] = j(null), [Y, ee] = j(null), [I, F] = j(null), A = z(I);
|
|
4088
4107
|
A.current = I;
|
|
4089
|
-
const [
|
|
4108
|
+
const [v, _] = j(null), [O, te] = j(null), [K, L] = j(null), [ie, ne] = j(!1), Z = z(e);
|
|
4090
4109
|
Z.current = e;
|
|
4091
|
-
const J =
|
|
4110
|
+
const J = z(o), pe = z([]);
|
|
4092
4111
|
J.current = o, u.current && (u.current.flow = o);
|
|
4093
|
-
const le =
|
|
4112
|
+
const le = z(null), Te = z(s);
|
|
4094
4113
|
Te.current = s;
|
|
4095
|
-
const je =
|
|
4114
|
+
const je = z(a);
|
|
4096
4115
|
je.current = a;
|
|
4097
4116
|
const Se = Ke((U) => {
|
|
4098
|
-
U.finite = !0, U.coming = (R) => c.current.has(R), U.readAhead = 6, U.readAheadS = 45, U.onWaiting = (R) =>
|
|
4117
|
+
U.finite = !0, U.coming = (R) => c.current.has(R), U.readAhead = 6, U.readAheadS = 45, U.onWaiting = (R) => V(R), U.onStarting = (R) => ee(R), U.onSentence = (R) => {
|
|
4099
4118
|
if (M(U.playing), R == null) return;
|
|
4100
4119
|
const q = Z.current.findIndex((se) => se.sentenceId === R);
|
|
4101
4120
|
q >= 0 && f(q);
|
|
@@ -4103,17 +4122,17 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4103
4122
|
M(U.playing), C(R instanceof Yi ? { 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." });
|
|
4104
4123
|
}, U.gapBefore = (R, q) => {
|
|
4105
4124
|
if (!J.current) return 0;
|
|
4106
|
-
const se = Z.current, de = se.find((
|
|
4107
|
-
if (!
|
|
4125
|
+
const se = Z.current, de = se.find((Oe) => Oe.sentenceId === R), be = se.find((Oe) => Oe.sentenceId === q);
|
|
4126
|
+
if (!be) return 0;
|
|
4108
4127
|
const Ne = A.current;
|
|
4109
|
-
if (R == null) return Ne && Ne.sid === q ? Math.max(0,
|
|
4128
|
+
if (R == null) return Ne && Ne.sid === q ? Math.max(0, be.start - Ne.t) : 0;
|
|
4110
4129
|
const Le = le.current;
|
|
4111
|
-
return Le && Date.now() - Le.at < 2e3 ? Math.max(0,
|
|
4130
|
+
return Le && Date.now() - Le.at < 2e3 ? Math.max(0, be.start - (Le.t + (Date.now() - Le.at) / 1e3 * U.rate)) : !de || be.start <= de.start ? 0 : Math.max(0, be.start - Ht(de, de.start, de.start + 4));
|
|
4112
4131
|
}, U.flow = J.current, U.silentSpan = (R) => {
|
|
4113
4132
|
var $e;
|
|
4114
4133
|
const q = Z.current, se = q.findIndex((ut) => ut.sentenceId === R), de = q[se];
|
|
4115
4134
|
if (!de) return null;
|
|
4116
|
-
const
|
|
4135
|
+
const be = (($e = q[se + 1]) == null ? void 0 : $e.start) ?? Ht(de, de.start, de.start + 4), Ne = Math.max(0, be - de.start), Le = le.current, Oe = Le && Date.now() - Le.at < 2e3 ? Le.t + (Date.now() - Le.at) / 1e3 * (U.rate || 1) : de.start, He = Math.max(0, Math.min(Ne, Oe - de.start));
|
|
4117
4136
|
return { fromS: He, ms: (Ne - He) * 1e3 / (U.rate || 1) };
|
|
4118
4137
|
}, U.speakable = (R) => {
|
|
4119
4138
|
const q = Te.current;
|
|
@@ -4121,7 +4140,7 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4121
4140
|
const se = Z.current.find((de) => de.sentenceId === R);
|
|
4122
4141
|
return !se || !q.has(se.speaker);
|
|
4123
4142
|
};
|
|
4124
|
-
}, []),
|
|
4143
|
+
}, []), we = z(null), ve = z(null), Ee = z(null), [Re, De] = j(!1), Q = z(() => {
|
|
4125
4144
|
}), H = (U) => {
|
|
4126
4145
|
if (Ee.current = U, De(!!(U != null && U.playing)), !U) return;
|
|
4127
4146
|
const R = En(U, Z.current, Ie).index;
|
|
@@ -4131,9 +4150,9 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4131
4150
|
};
|
|
4132
4151
|
S(() => {
|
|
4133
4152
|
var q;
|
|
4134
|
-
if (
|
|
4135
|
-
const se =
|
|
4136
|
-
|
|
4153
|
+
if (we.current !== r) {
|
|
4154
|
+
const se = we.current != null ? ve.current : null;
|
|
4155
|
+
we.current = r, (q = u.current) == null || q.stop(), u.current = new Ir(), Se(u.current), u.current.setSequence(pe.current), M(!1), f(0), C(null), ee(null), F(null), H(se && (se.playing || se.t > 0) ? se : null);
|
|
4137
4156
|
}
|
|
4138
4157
|
const U = u.current;
|
|
4139
4158
|
U.setMuted(m.current);
|
|
@@ -4147,27 +4166,27 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4147
4166
|
(U = u.current) == null || U.setSequence(x);
|
|
4148
4167
|
}, [x, r]), S(() => () => {
|
|
4149
4168
|
var U;
|
|
4150
|
-
(U = u.current) == null || U.stop(), u.current = null,
|
|
4169
|
+
(U = u.current) == null || U.stop(), u.current = null, we.current = null;
|
|
4151
4170
|
}, []);
|
|
4152
|
-
const
|
|
4171
|
+
const B = v != null || O != null;
|
|
4153
4172
|
S(() => {
|
|
4154
|
-
if (!d && !
|
|
4173
|
+
if (!d && !B) {
|
|
4155
4174
|
_(null), te(null);
|
|
4156
4175
|
return;
|
|
4157
4176
|
}
|
|
4158
4177
|
const U = () => {
|
|
4159
4178
|
var Ne, Le;
|
|
4160
4179
|
const q = ((Ne = u.current) == null ? void 0 : Ne.resting()) ?? null;
|
|
4161
|
-
ne(!!(q != null && q.silent)), q != null && q.silent && A.current && (A.current = null, F(null)), te((
|
|
4180
|
+
ne(!!(q != null && q.silent)), q != null && q.silent && A.current && (A.current = null, F(null)), te((Oe) => q == null ? null : Oe != null && Math.abs(Oe - q.s) < 0.05 ? Oe : q.s);
|
|
4162
4181
|
const se = A.current;
|
|
4163
4182
|
q == null ? L(null) : se && se.sid === q.sentenceId && (L(se.t), A.current = null, F(null));
|
|
4164
|
-
const de = ((Le = u.current) == null ? void 0 : Le.position()) ?? null,
|
|
4165
|
-
se && de && de.sentenceId === se.sid && de.t > 0.1 && F(null), _((
|
|
4183
|
+
const de = ((Le = u.current) == null ? void 0 : Le.position()) ?? null, be = de && je.current ? je.current[String(de.sentenceId)] ?? null : null;
|
|
4184
|
+
se && de && de.sentenceId === se.sid && de.t > 0.1 && F(null), _((Oe) => de ? Oe && Math.abs(Oe.t - de.t) < 0.05 && Oe.dur === de.dur && Oe.words === be ? Oe : { t: de.t, dur: de.dur, words: be } : Oe == null ? Oe : null);
|
|
4166
4185
|
};
|
|
4167
4186
|
U();
|
|
4168
4187
|
const R = setInterval(U, 100);
|
|
4169
4188
|
return () => clearInterval(R);
|
|
4170
|
-
}, [d,
|
|
4189
|
+
}, [d, B]);
|
|
4171
4190
|
const ce = ze(() => new Set(t.map((U) => U.sentenceId)), [t]), W = (U) => {
|
|
4172
4191
|
var q;
|
|
4173
4192
|
const R = (q = e[U]) == null ? void 0 : q.sentenceId;
|
|
@@ -4175,7 +4194,7 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4175
4194
|
}, ye = (U, R) => {
|
|
4176
4195
|
for (let q = U; q >= 0 && q < e.length; q += R) if (W(q)) return q;
|
|
4177
4196
|
return null;
|
|
4178
|
-
}, G = Math.max(0, Math.min(h, Math.max(0, e.length - 1))), ke = e.length ? e[e.length - 1].start + 4 : 0, Ie = n || ke || 1, Fe =
|
|
4197
|
+
}, G = Math.max(0, Math.min(h, Math.max(0, e.length - 1))), ke = e.length ? e[e.length - 1].start + 4 : 0, Ie = n || ke || 1, Fe = z(!1), Ae = z(h);
|
|
4179
4198
|
Ae.current = h;
|
|
4180
4199
|
const he = (U) => {
|
|
4181
4200
|
var R, q, se;
|
|
@@ -4183,17 +4202,17 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4183
4202
|
}, _e = (U) => {
|
|
4184
4203
|
var q, se, de;
|
|
4185
4204
|
const R = Math.max(0, Math.min(Math.max(0, e.length - 1), U));
|
|
4186
|
-
f(R), Ae.current = R, y((
|
|
4187
|
-
},
|
|
4205
|
+
f(R), Ae.current = R, y((be) => be + 1), (se = u.current) == null || se.seek(((q = e[R]) == null ? void 0 : q.sentenceId) ?? null), M(!!((de = u.current) != null && de.playing));
|
|
4206
|
+
}, Ve = (U) => {
|
|
4188
4207
|
var R;
|
|
4189
4208
|
E(), F(null), (R = u.current) == null || R.startWithin(-1, 0), _e(U);
|
|
4190
4209
|
}, $ = (U) => {
|
|
4191
4210
|
var de;
|
|
4192
4211
|
const R = e[U], q = (R == null ? void 0 : R.start) ?? 0, se = ((de = e[U + 1]) == null ? void 0 : de.start) ?? Ht(R, q, Ie);
|
|
4193
4212
|
return { from: q, span: Math.max(0, se - q) };
|
|
4194
|
-
}, Me = $(G), ue = Math.max(0, Math.min(Me.span, Ht(e[G], Me.from, Me.from + 4) - Me.from)), ae = I ? I.t : o ? O != null && ie ? Me.from + Math.min(Me.span, O) : O != null ? K != null ? Math.min(Me.from, K + O) : Me.from + Math.min(Me.span, ue + O) :
|
|
4213
|
+
}, Me = $(G), ue = Math.max(0, Math.min(Me.span, Ht(e[G], Me.from, Me.from + 4) - Me.from)), ae = I ? I.t : o ? O != null && ie ? Me.from + Math.min(Me.span, O) : O != null ? K != null ? Math.min(Me.from, K + O) : Me.from + Math.min(Me.span, ue + O) : v && v.dur > 0 ? Me.from + Math.min(ue, v.t / v.dur * ue) : Me.from : v && v.dur > 0 ? Me.from + Math.min(Me.span, v.t / v.dur * Me.span) : Me.from;
|
|
4195
4214
|
S(() => {
|
|
4196
|
-
|
|
4215
|
+
ve.current = Ee.current ?? _c(e, ae, d, Ie);
|
|
4197
4216
|
});
|
|
4198
4217
|
const fe = {
|
|
4199
4218
|
playing: d || Re,
|
|
@@ -4203,11 +4222,11 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4203
4222
|
muted: T,
|
|
4204
4223
|
wordSync: !1,
|
|
4205
4224
|
timed: o,
|
|
4206
|
-
clipPos: I ? null :
|
|
4225
|
+
clipPos: I ? null : v,
|
|
4207
4226
|
videoAt: (U) => {
|
|
4208
4227
|
le.current = { t: U, at: Date.now() };
|
|
4209
4228
|
},
|
|
4210
|
-
engaged: d ||
|
|
4229
|
+
engaged: d || v != null,
|
|
4211
4230
|
has: t.length > 0,
|
|
4212
4231
|
preparing: D != null || Re,
|
|
4213
4232
|
silent: d && ie,
|
|
@@ -4245,7 +4264,7 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4245
4264
|
var U, R, q;
|
|
4246
4265
|
E(), (U = u.current) == null || U.pause(), M(!1), f(0), _(null), (q = u.current) == null || q.seek(((R = e[0]) == null ? void 0 : R.sentenceId) ?? null);
|
|
4247
4266
|
},
|
|
4248
|
-
seekRow:
|
|
4267
|
+
seekRow: Ve,
|
|
4249
4268
|
resumeAt: (U) => {
|
|
4250
4269
|
H(U), t.some((R) => R.sentenceId >= (U.sentenceId ?? 0)) && (H(null), Q.current(U));
|
|
4251
4270
|
},
|
|
@@ -4263,22 +4282,22 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4263
4282
|
A.current = Mt, F(Mt), _e(Ge);
|
|
4264
4283
|
return;
|
|
4265
4284
|
}
|
|
4266
|
-
const
|
|
4267
|
-
let
|
|
4268
|
-
const He =
|
|
4285
|
+
const be = (se == null ? void 0 : se.sentenceId) ?? null, { from: Ne, span: Le } = $(q);
|
|
4286
|
+
let Oe = Le > 0 ? Math.max(0, Math.min(1, (R - Ne) / Le)) : 0;
|
|
4287
|
+
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;
|
|
4269
4288
|
if (se && He && He.length === se.words.length && $e > 0) {
|
|
4270
4289
|
let Ge = 0;
|
|
4271
4290
|
for (let st = 0; st < se.words.length; st++) se.words[st].start <= R && (Ge = st);
|
|
4272
4291
|
const rt = se.words[Ge], Mt = rt.end > rt.start ? Math.max(0, Math.min(1, (R - rt.start) / (rt.end - rt.start))) : 0;
|
|
4273
|
-
|
|
4292
|
+
Oe = Math.min(1, (He[Ge][0] + Mt * (He[Ge][1] - He[Ge][0])) / $e);
|
|
4274
4293
|
}
|
|
4275
|
-
|
|
4294
|
+
be != null && ((pt = u.current) == null || pt.startWithin(be, Oe)), F(Oe > 0.01 ? { t: R, sid: be } : null), _e(q);
|
|
4276
4295
|
},
|
|
4277
4296
|
seekWord: a ? (U) => {
|
|
4278
|
-
var de,
|
|
4297
|
+
var de, be, Ne, Le;
|
|
4279
4298
|
const R = e[G];
|
|
4280
4299
|
if (!R || R.sentenceId == null) return;
|
|
4281
|
-
const q = R.words.findIndex((
|
|
4300
|
+
const q = R.words.findIndex((Oe) => Oe.seq === U.seq && Oe.idx === U.idx), se = q >= 0 ? (Ne = (be = (de = je.current) == null ? void 0 : de[String(R.sentenceId)]) == null ? void 0 : be[q]) == null ? void 0 : Ne[0] : void 0;
|
|
4282
4301
|
se != null && ((Le = u.current) == null || Le.seekWithin(se));
|
|
4283
4302
|
} : void 0,
|
|
4284
4303
|
playRow: (U) => {
|
|
@@ -4289,11 +4308,11 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4289
4308
|
},
|
|
4290
4309
|
prev: () => {
|
|
4291
4310
|
const U = ye(G - 1, -1);
|
|
4292
|
-
U != null &&
|
|
4311
|
+
U != null && Ve(U);
|
|
4293
4312
|
},
|
|
4294
4313
|
next: () => {
|
|
4295
4314
|
const U = ye(G + 1, 1);
|
|
4296
|
-
U != null &&
|
|
4315
|
+
U != null && Ve(U);
|
|
4297
4316
|
},
|
|
4298
4317
|
hold: () => {
|
|
4299
4318
|
var U;
|
|
@@ -4309,11 +4328,11 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4309
4328
|
}
|
|
4310
4329
|
};
|
|
4311
4330
|
function Ye(U) {
|
|
4312
|
-
var se, de,
|
|
4331
|
+
var se, de, be, Ne;
|
|
4313
4332
|
const R = (se = e[U]) == null ? void 0 : se.sentenceId;
|
|
4314
4333
|
if (R == null) return;
|
|
4315
4334
|
f(U), Ae.current = U, F(null), A.current = null, (de = u.current) == null || de.joinSilently(R);
|
|
4316
|
-
const q = ((
|
|
4335
|
+
const q = ((be = u.current) == null ? void 0 : be.resting()) ?? null;
|
|
4317
4336
|
te((q == null ? void 0 : q.s) ?? null), ne(!!(q != null && q.silent)), M(!!((Ne = u.current) != null && Ne.playing));
|
|
4318
4337
|
}
|
|
4319
4338
|
return fe.joinAt = o ? (U) => {
|
|
@@ -4331,28 +4350,28 @@ function Jc(t, e, n, r, s, a, o = !1, l) {
|
|
|
4331
4350
|
const Xc = () => {
|
|
4332
4351
|
}, eu = "The language this recording is read aloud in.", tu = { title: "READ IN", note: "The transcript and its voice switch to this language." };
|
|
4333
4352
|
function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: M, hearOriginal: h = !1, timed: f = !1, stockVoices: p = !1, stickyPicker: y = !1, pickerBusy: T = null, voiceSheet: N, forcedVoice: m = null }) {
|
|
4334
|
-
var mn,
|
|
4335
|
-
const { onAddVoice: b, onPickVoice: C, onSelectSpeaker: D, noCloneFor:
|
|
4353
|
+
var mn, wt, Nn, an;
|
|
4354
|
+
const { onAddVoice: b, onPickVoice: C, onSelectSpeaker: D, noCloneFor: V, castNoClone: Y, castShort: ee, castBuilding: I, castWarn: F, badge: A, titleNode: v } = N ?? {}, _ = !!N, O = !!(N != null && N.pendingClones), [te, K] = $i(), [L, ie] = j(null), [ne, Z] = j(!1), [J, pe] = j(!1), [le, Te] = j(!1), [je, Se] = j(!1), we = u ?? l, ve = u === null, Ee = u != null || L != null, De = ((P) => !!P && !!(o != null && o.voice.includes(P)))(ve ? l : we) ? ve ? l : we : "en", Q = Ec(De), H = (N == null ? void 0 : N.cloneOn) ?? !0, [E, x] = j(0), B = z(H);
|
|
4336
4355
|
S(() => {
|
|
4337
|
-
|
|
4356
|
+
B.current !== H && (B.current = H, x((P) => P + 1));
|
|
4338
4357
|
}, [H]);
|
|
4339
|
-
const ce = gc(De, Ee || s || J, fc(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 = Dr(o,
|
|
4358
|
+
const ce = gc(De, Ee || s || J, fc(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 = Dr(o, we), ke = ea(), Ie = ze(() => Qi(o, "translation"), [o]), [Fe, Ae] = j(null), [he] = j(() => /* @__PURE__ */ new Set()), [_e, Ve] = j({}), $ = ze(() => cc(n, e, ke.vcUnknownSpk), [n, e, ke]), Me = ye && $.filter((P) => P.key >= 0).length > 1, ue = Fe != null && $.some((P) => P.key === Fe) ? Fe : ((mn = $[0]) == null ? void 0 : mn.key) ?? null, ae = ze(() => {
|
|
4340
4359
|
const P = Ti($, W, H);
|
|
4341
4360
|
for (const [xe, Qe] of Object.entries(_e[De ?? ""] ?? {})) P.set(Number(xe), Qe);
|
|
4342
4361
|
return P;
|
|
4343
|
-
}, [$, W, _e, De, H]), fe = Me && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => p && !fe ? Ti($, W, !1) : null, [p, fe, $, W]), U = ze(() => fe ? Ni(ae) || null : Ye && Ni(Ye) || null, [fe, ae, Ye]), R = fe ? ae : Ye, q = W.some((P) => P.cloned && P.consent !== "pending"), se = !!
|
|
4362
|
+
}, [$, W, _e, De, H]), fe = Me && Object.keys(_e[De ?? ""] ?? {}).length > 0, Ye = ze(() => p && !fe ? Ti($, W, !1) : null, [p, fe, $, W]), U = ze(() => fe ? Ni(ae) || null : Ye && Ni(Ye) || null, [fe, ae, Ye]), R = fe ? ae : Ye, q = W.some((P) => P.cloned && P.consent !== "pending"), se = !!we && !!(o != null && o.voice.includes(we)), de = se && !h, be = ze(
|
|
4344
4363
|
() => n.filter((P) => !P.suppressed && !P.unclear).map((P) => P.sentenceId).filter((P) => P != null),
|
|
4345
4364
|
[n]
|
|
4346
|
-
), Ne = pc({ recordingId: t, lang:
|
|
4365
|
+
), Ne = pc({ recordingId: t, lang: we, ended: s, cred: a, pickedVoice: m || (U ?? L), sentenceIds: s && de ? be : void 0 }), Le = W.find((P) => P.id === L) ?? W.find((P) => {
|
|
4347
4366
|
var xe;
|
|
4348
4367
|
return P.id === ((xe = Ne.track) == null ? void 0 : xe.voice);
|
|
4349
|
-
}) ?? W.find((P) => P.default) ?? W[0] ?? null,
|
|
4368
|
+
}) ?? W.find((P) => P.default) ?? W[0] ?? null, Oe = (Le == null ? void 0 : Le.id) ?? null;
|
|
4350
4369
|
S(() => {
|
|
4351
4370
|
if (!Ne.rendering) return;
|
|
4352
4371
|
const P = setInterval(Ne.reload, 4e3);
|
|
4353
4372
|
return () => clearInterval(P);
|
|
4354
4373
|
}, [Ne.rendering, Ne.reload]);
|
|
4355
|
-
const He = `${t ?? ""}|${
|
|
4374
|
+
const He = `${t ?? ""}|${we ?? ""}|${m || (U ?? L ?? ((wt = Ne.track) == null ? void 0 : wt.voiceKey) ?? "default")}`, $e = Jc(Ne.clips, n, r, He, he, (Nn = Ne.track) == null ? void 0 : Nn.wordTimes, f, Ne.coming);
|
|
4356
4375
|
S(() => {
|
|
4357
4376
|
var xe;
|
|
4358
4377
|
const P = (xe = n[$e.idx]) == null ? void 0 : xe.sentenceId;
|
|
@@ -4360,7 +4379,7 @@ function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4360
4379
|
}, [$e.idx]), S(() => {
|
|
4361
4380
|
!je || !$e.has || (Se(!1), $e.playing || $e.toggle());
|
|
4362
4381
|
}, [je, $e.has]);
|
|
4363
|
-
const ut = Ne.rendering, it = ut ? null : Ne.failed ?? null, pt = !1, Ge = Ee && de, rt = Ee && !
|
|
4382
|
+
const ut = Ne.rendering, it = ut ? null : Ne.failed ?? null, pt = !1, Ge = Ee && de, rt = Ee && !ve && de && !(Ne.listed && Ne.listed.lang === we && Ne.listed.recordingId === t), Mt = {
|
|
4364
4383
|
...$e,
|
|
4365
4384
|
has: $e.has || Ge && s,
|
|
4366
4385
|
toggle: () => {
|
|
@@ -4373,12 +4392,12 @@ function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4373
4392
|
pause: () => {
|
|
4374
4393
|
Se(!1), $e.pause();
|
|
4375
4394
|
}
|
|
4376
|
-
}, st = () => Z(!0),
|
|
4395
|
+
}, st = () => Z(!0), Be = () => {
|
|
4377
4396
|
Z(!1), pe(le), Te(!1);
|
|
4378
4397
|
}, Mn = (P) => {
|
|
4379
4398
|
if (d(P), K(P), !((M || y) && !le)) {
|
|
4380
4399
|
if (P != null) {
|
|
4381
|
-
|
|
4400
|
+
Be();
|
|
4382
4401
|
return;
|
|
4383
4402
|
}
|
|
4384
4403
|
Q.reset(), Z(!1), pe(!1), Te(!1);
|
|
@@ -4400,18 +4419,18 @@ function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4400
4419
|
}
|
|
4401
4420
|
Z(!1), Te(!1), pe(!0);
|
|
4402
4421
|
}, gn = (P) => {
|
|
4403
|
-
if (Q.reset(), pe(Me), (
|
|
4422
|
+
if (Q.reset(), pe(Me), (we !== De || ve) && d(De), Ne.forget(), Se(!0), Me && ue != null && De) {
|
|
4404
4423
|
const xe = new Map(ae);
|
|
4405
|
-
xe.set(ue, P),
|
|
4424
|
+
xe.set(ue, P), Ve((Qe) => ({ ...Qe, [De]: Object.fromEntries(xe) })), ie(null);
|
|
4406
4425
|
return;
|
|
4407
4426
|
}
|
|
4408
4427
|
ie(P);
|
|
4409
|
-
},
|
|
4428
|
+
}, k = ve ? { ...Dr(o, null), flag: /* @__PURE__ */ i(oe, { d: X.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : G, Wn = c ? M ? /* @__PURE__ */ i("span", { className: "barchip", style: lt ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(Rn, { flag: k.flag, code: k.code, bordered: !1, onClick: tn, flagOnly: !0, label: k.label }) }) : /* @__PURE__ */ i(Rn, { flag: k.flag, code: k.code, bordered: !1, onClick: st, flagOnly: !0, label: k.label }) : null, Et = X.voiceClone, _t = Ee && (!!Ne.track || ut), Yt = it ? "var(--conf-low)" : _t || M && at ? "var(--brand)" : "var(--ink-55)", Zt = Yc({ on: Ee, want: je, relang: rt, playing: $e.playing, preparing: !!$e.preparing, starting: $e.starting }), [fn] = oa(Zt === "line", 400), qe = Zt === "asked" || Zt === "line" && fn, ot = ut || qe, nn = Zt === "asked" ? vi : $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(Io, { open: ne, onClose: Be, keepOpen: (!!M || y) && !le, value: ve ? null : we, onSelect: Mn, languages: Ie, title: (M == null ? void 0 : M.title) ?? "SPOKEN LANGUAGE", note: (M == null ? void 0 : M.note) ?? eu, searchPlaceholder: ke.search, none: "Original", pinned: (ve ? l : we) ? [ve ? l : we] : [], recent: te, requireVoice: le, sticky: y, busy: T }), gt = ze(() => W.filter((P) => P.cloned && !P.auto), [W]), Gt = (P) => P.voiceId ? gt.find((xe) => xe.id === `clone:${P.voiceId}`) ?? null : null, dt = ze(() => $.filter((P) => P.key >= 0), [$]), rn = ze(() => {
|
|
4410
4429
|
const P = W.filter((Qe) => !Qe.cloned);
|
|
4411
4430
|
if (!Me) return [...P, ...s && dt.length === 1 ? gt.filter((Qe) => Qe.id === `clone:${dt[0].voiceId}`) : []];
|
|
4412
4431
|
const xe = [];
|
|
4413
4432
|
for (const Qe of dt) {
|
|
4414
|
-
if (
|
|
4433
|
+
if (Gt(Qe)) continue;
|
|
4415
4434
|
const St = W.find((Pt) => Pt.cloned && Pt.auto && Pt.speaker === Qe.key);
|
|
4416
4435
|
!St || St.ready === !1 || St.consent === "pending" && !O || xe.push({ id: St.id, name: Qe.name, cloned: !0, default: !1, live: !0, auto: !0, gender: Qe.sex ?? St.gender ?? null, speaker: Qe.key, consent: St.consent ?? null });
|
|
4417
4436
|
}
|
|
@@ -4419,11 +4438,11 @@ function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4419
4438
|
}, [W, gt, Me, dt, O, s]), ct = Me ? dt.find((P) => P.key === ue) ?? null : null, sn = (P) => {
|
|
4420
4439
|
var xe;
|
|
4421
4440
|
return P ? ((xe = W.find((Qe) => Qe.id === P)) == null ? void 0 : xe.gender) ?? null : null;
|
|
4422
|
-
},
|
|
4441
|
+
}, Ot = ct ? ct.sex ?? sn(ae.get(ct.key)) : null, Ze = ze(() => ct ? rn.filter((P) => P.cloned ? P.live ? P.speaker === ct.key : P.id === `clone:${ct.voiceId}` : !0) : rn, [rn, ct, Ot, dt]), Ut = (P) => W.find((xe) => xe.cloned && xe.auto && xe.speaker === P) ?? null, vt = { people: dt, gvList: W, autoOf: Ut, savedFor: Gt }, Rt = (A == null ? void 0 : A(vt)) ?? 0, et = F ? dt.map((P) => F(P, vt)).filter((P) => !!P) : [], pn = /* @__PURE__ */ g("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": M ? at : void 0, "aria-busy": ot || void 0, title: ot || it ? nn : void 0, style: { cursor: "pointer", background: _t || ot || M && at ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: M && at ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: M ? re : At, children: [
|
|
4423
4442
|
/* @__PURE__ */ i(oe, { d: Et, size: 17, sw: 1.6, style: { color: Yt } }),
|
|
4424
4443
|
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" } }),
|
|
4425
4444
|
et.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: et.join(" · "), children: "!" }) : !!Rt && /* @__PURE__ */ i("span", { className: "txvoice__n", title: `${Rt} speaker${Rt === 1 ? "" : "s"} can get a cloned voice`, children: Rt })
|
|
4426
|
-
] }),
|
|
4445
|
+
] }), Ct = /* @__PURE__ */ i(en, { open: J, onClose: Je, title: ke.vcSheet, titleNode: v, doneLabel: ke.done, children: /* @__PURE__ */ i(
|
|
4427
4446
|
dc,
|
|
4428
4447
|
{
|
|
4429
4448
|
t: ke,
|
|
@@ -4436,10 +4455,10 @@ function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4436
4455
|
onSelect: (P) => {
|
|
4437
4456
|
Q.reset(), Ae(P), D == null || D(P);
|
|
4438
4457
|
},
|
|
4439
|
-
noClone: (P) => !!(Y != null && Y(P,
|
|
4440
|
-
short: (P) => !!(ee != null && ee(P,
|
|
4441
|
-
warn: (P) => (F == null ? void 0 : F(P,
|
|
4442
|
-
building: (P) => !
|
|
4458
|
+
noClone: (P) => !!(Y != null && Y(P, vt)),
|
|
4459
|
+
short: (P) => !!(ee != null && ee(P, vt)),
|
|
4460
|
+
warn: (P) => (F == null ? void 0 : F(P, vt)) ?? null,
|
|
4461
|
+
building: (P) => !Gt(P) && (W.some((xe) => xe.cloned && xe.speaker === P.key && xe.ready === !1) || !!(I != null && I(P, vt))),
|
|
4443
4462
|
sexOf: (P) => P.sex ?? sn(ae.get(P.key))
|
|
4444
4463
|
}
|
|
4445
4464
|
),
|
|
@@ -4447,14 +4466,14 @@ function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4447
4466
|
onAdd: (P) => {
|
|
4448
4467
|
Q.reset(), b == null || b(P);
|
|
4449
4468
|
},
|
|
4450
|
-
noClone: ct && !Ze.some((P) => P.cloned) ? (
|
|
4469
|
+
noClone: ct && !Ze.some((P) => P.cloned) ? (V == null ? void 0 : V(ct, Ut(ct.key), vt)) ?? null : null,
|
|
4451
4470
|
usedBy: Me && ue != null ? (P) => {
|
|
4452
4471
|
const xe = $.filter((Qe) => Qe.key !== ue && ae.get(Qe.key) === P.id);
|
|
4453
4472
|
return xe.length ? xe.map((Qe) => Qe.name).join(", ") : null;
|
|
4454
4473
|
} : void 0,
|
|
4455
4474
|
foldKey: ue,
|
|
4456
|
-
foldFor:
|
|
4457
|
-
currentId: Me && ue != null ? ae.get(ue) ?? null :
|
|
4475
|
+
foldFor: Ot,
|
|
4476
|
+
currentId: Me && ue != null ? ae.get(ue) ?? null : Oe,
|
|
4458
4477
|
armedId: Q.armId,
|
|
4459
4478
|
sampleId: Q.sampleId,
|
|
4460
4479
|
dlId: Q.dlId,
|
|
@@ -4471,12 +4490,12 @@ function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4471
4490
|
},
|
|
4472
4491
|
onUse: gn
|
|
4473
4492
|
}
|
|
4474
|
-
) }), Fn = M ? null : /* @__PURE__ */ g(
|
|
4493
|
+
) }), Fn = M ? null : /* @__PURE__ */ g(Ce, { children: [
|
|
4475
4494
|
mt,
|
|
4476
|
-
|
|
4477
|
-
] }), Zn = M && (ne || J) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? mt :
|
|
4495
|
+
Ct
|
|
4496
|
+
] }), Zn = M && (ne || J) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? mt : Ct }) : null, xt = Ge ? it ? `This voice could not be prepared: ${it}` : qe && (je || $e.playing) ? vi : null : null, Gn = pt;
|
|
4478
4497
|
return {
|
|
4479
|
-
barChip: { flag:
|
|
4498
|
+
barChip: { flag: k.flag, code: k.code, label: k.label, onClick: M || y ? tn : st, active: !!((M || y) && lt), can: c },
|
|
4480
4499
|
sheetsOpen: ne || J,
|
|
4481
4500
|
on: Ge,
|
|
4482
4501
|
player: Mt,
|
|
@@ -4488,7 +4507,7 @@ function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4488
4507
|
voicesMine: at,
|
|
4489
4508
|
toggleVoices: re,
|
|
4490
4509
|
cloningOn: H,
|
|
4491
|
-
playTitle:
|
|
4510
|
+
playTitle: xt,
|
|
4492
4511
|
noVoice: pt,
|
|
4493
4512
|
noVoiceNote: Gn,
|
|
4494
4513
|
relang: rt,
|
|
@@ -4497,20 +4516,20 @@ function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4497
4516
|
clearError: () => Q.clearError(),
|
|
4498
4517
|
openVoices: At,
|
|
4499
4518
|
openPicker: st,
|
|
4500
|
-
original:
|
|
4519
|
+
original: ve,
|
|
4501
4520
|
reloadVoices: () => x((P) => P + 1),
|
|
4502
4521
|
voicesVer: E,
|
|
4503
4522
|
people: dt,
|
|
4504
4523
|
gvList: W,
|
|
4505
4524
|
autoOf: Ut,
|
|
4506
|
-
savedFor:
|
|
4525
|
+
savedFor: Gt,
|
|
4507
4526
|
closeVoices: Je,
|
|
4508
4527
|
setSheet: pe,
|
|
4509
4528
|
selectedSpeaker: ct,
|
|
4510
4529
|
armVoice: Q.arm,
|
|
4511
4530
|
resetPreview: Q.reset,
|
|
4512
4531
|
armedId: Q.armId,
|
|
4513
|
-
resetCast: () =>
|
|
4532
|
+
resetCast: () => Ve((P) => ({ ...P, [De ?? ""]: {} })),
|
|
4514
4533
|
readLang: typeof u == "string" && u !== l ? u : null,
|
|
4515
4534
|
readVoiceKey: m || (U ?? L ?? ((an = Ne.track) == null ? void 0 : an.voiceKey) ?? ""),
|
|
4516
4535
|
pickedVoiceKey: U ?? L ?? null,
|
|
@@ -4521,20 +4540,20 @@ function nu({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
4521
4540
|
clips: Ne.clips,
|
|
4522
4541
|
setNear: Ne.setNear,
|
|
4523
4542
|
closePicker: () => {
|
|
4524
|
-
lt &&
|
|
4543
|
+
lt && Be();
|
|
4525
4544
|
},
|
|
4526
|
-
langList: { value:
|
|
4545
|
+
langList: { value: ve ? null : we, onSelect: Mn, languages: Ie, searchPlaceholder: ke.search, none: "Original", pinned: (ve ? l : we) ? [ve ? l : we] : [], recent: te }
|
|
4527
4546
|
};
|
|
4528
4547
|
}
|
|
4529
|
-
function ru({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: M = !0, tail: h, tailFg: f, running: p, desk: y, feedRef: T, listener: N, showLabels: m, find: b, findOpen: C, lang: D, warm:
|
|
4530
|
-
const { playing: I, engaged: F, t: A, idx:
|
|
4548
|
+
function ru({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: M = !0, tail: h, tailFg: f, running: p, desk: y, feedRef: T, listener: N, showLabels: m, find: b, findOpen: C, lang: D, warm: V, onVisible: Y, wordHl: ee = !0 }) {
|
|
4549
|
+
const { playing: I, engaged: F, t: A, idx: v, seekN: _, wordSync: O, clipPos: te } = n;
|
|
4531
4550
|
jc(!0, T);
|
|
4532
|
-
const K =
|
|
4551
|
+
const K = z(null);
|
|
4533
4552
|
Xl(T, K);
|
|
4534
|
-
const [L, ie] =
|
|
4553
|
+
const [L, ie] = j(null), ne = (b ?? "").trim().toLowerCase(), [Z, J] = j(0), pe = z(0), le = z(null), Te = z(v), je = (H) => {
|
|
4535
4554
|
var E;
|
|
4536
4555
|
return ((E = T.current) == null ? void 0 : E.querySelector(`[data-tx-row="${H}"]`)) ?? null;
|
|
4537
|
-
}, Se =
|
|
4556
|
+
}, Se = z("");
|
|
4538
4557
|
S(() => {
|
|
4539
4558
|
const H = T.current;
|
|
4540
4559
|
if (!H || !Y) return;
|
|
@@ -4547,62 +4566,62 @@ function ru({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4547
4566
|
const G = ye.join(",");
|
|
4548
4567
|
G !== Se.current && (Se.current = G, Y(ye));
|
|
4549
4568
|
}, x = window.setTimeout(E, 120);
|
|
4550
|
-
let
|
|
4569
|
+
let B;
|
|
4551
4570
|
const ce = () => {
|
|
4552
|
-
window.clearTimeout(
|
|
4571
|
+
window.clearTimeout(B), B = window.setTimeout(E, 120);
|
|
4553
4572
|
};
|
|
4554
4573
|
return H.addEventListener("scroll", ce, { passive: !0 }), () => {
|
|
4555
|
-
window.clearTimeout(x), window.clearTimeout(
|
|
4574
|
+
window.clearTimeout(x), window.clearTimeout(B), H.removeEventListener("scroll", ce);
|
|
4556
4575
|
};
|
|
4557
4576
|
}, [e, Y, T]);
|
|
4558
|
-
const
|
|
4577
|
+
const we = (H) => {
|
|
4559
4578
|
const E = T.current, x = je(H);
|
|
4560
4579
|
if (!E || !x) return;
|
|
4561
|
-
const
|
|
4562
|
-
E.scrollTop = Math.max(0, Math.min(ce,
|
|
4563
|
-
},
|
|
4580
|
+
const B = x.getBoundingClientRect().top - E.getBoundingClientRect().top + E.scrollTop, ce = E.scrollHeight - E.clientHeight, W = vr(E), ye = Math.max(80, E.clientHeight - W.top - W.bottom), G = x.offsetHeight > ye ? 8 : (ye - x.offsetHeight) / 2;
|
|
4581
|
+
E.scrollTop = Math.max(0, Math.min(ce, B - W.top - G));
|
|
4582
|
+
}, ve = (H) => {
|
|
4564
4583
|
const E = T.current, x = je(H);
|
|
4565
4584
|
if (!E || !E.clientHeight || !E.offsetParent || !x) return 0;
|
|
4566
|
-
const
|
|
4567
|
-
return
|
|
4585
|
+
const B = x.getBoundingClientRect(), ce = E.getBoundingClientRect(), W = vr(E), ye = ce.top + W.top, G = ce.bottom - W.bottom;
|
|
4586
|
+
return B.height > G - ye ? B.top < ye - 4 ? -1 : B.top > G - 60 ? 1 : 0 : B.bottom < ye + 10 ? -1 : B.bottom > G - 4 ? 1 : 0;
|
|
4568
4587
|
}, Ee = (H) => {
|
|
4569
4588
|
pe.current = performance.now() + 420;
|
|
4570
4589
|
const E = T.current, x = je(H);
|
|
4571
4590
|
if (!E || !E.clientHeight || !x) return;
|
|
4572
|
-
const
|
|
4591
|
+
const B = x.getBoundingClientRect(), ce = E.getBoundingClientRect(), W = E.scrollHeight - E.clientHeight, ye = E.scrollTop, G = vr(E), ke = Math.max(80, E.clientHeight - G.top - G.bottom), Ie = B.height > ke ? 8 : (ke - B.height) / 2, Fe = Math.max(0, Math.min(W, ye + (B.top - ce.top) - G.top - Ie));
|
|
4573
4592
|
if (le.current && cancelAnimationFrame(le.current), Math.abs(Fe - ye) < 2) {
|
|
4574
4593
|
E.scrollTop = Fe, le.current = null;
|
|
4575
4594
|
return;
|
|
4576
4595
|
}
|
|
4577
4596
|
const Ae = performance.now(), he = 360, _e = () => {
|
|
4578
|
-
const
|
|
4579
|
-
E.scrollTop = ye + (Fe - ye) * (1 - Math.pow(1 -
|
|
4597
|
+
const Ve = Math.min(1, (performance.now() - Ae) / he);
|
|
4598
|
+
E.scrollTop = ye + (Fe - ye) * (1 - Math.pow(1 - Ve, 3)), le.current = Ve < 1 ? requestAnimationFrame(_e) : null;
|
|
4580
4599
|
};
|
|
4581
4600
|
le.current = requestAnimationFrame(_e);
|
|
4582
4601
|
};
|
|
4583
4602
|
S(() => () => {
|
|
4584
4603
|
le.current && cancelAnimationFrame(le.current);
|
|
4585
4604
|
}, []);
|
|
4586
|
-
const Re =
|
|
4605
|
+
const Re = z(0);
|
|
4587
4606
|
S(() => {
|
|
4588
4607
|
if (!I) {
|
|
4589
|
-
Te.current =
|
|
4608
|
+
Te.current = v, Re.current = 0, J(0);
|
|
4590
4609
|
return;
|
|
4591
4610
|
}
|
|
4592
4611
|
const H = () => {
|
|
4593
|
-
const x =
|
|
4594
|
-
Te.current =
|
|
4595
|
-
let
|
|
4596
|
-
x &&
|
|
4612
|
+
const x = v !== Te.current;
|
|
4613
|
+
Te.current = v;
|
|
4614
|
+
let B = performance.now() < pe.current ? 0 : ve(v);
|
|
4615
|
+
x && B && !Re.current && (we(v), B = 0), Re.current = B, J(B);
|
|
4597
4616
|
};
|
|
4598
4617
|
H();
|
|
4599
4618
|
const E = setInterval(H, 200);
|
|
4600
4619
|
return () => clearInterval(E);
|
|
4601
|
-
}, [
|
|
4602
|
-
_ && Ee(
|
|
4620
|
+
}, [v, I]), S(() => {
|
|
4621
|
+
_ && Ee(v);
|
|
4603
4622
|
}, [_]);
|
|
4604
4623
|
const De = () => {
|
|
4605
|
-
Ee(
|
|
4624
|
+
Ee(v), Re.current = 0, J(0);
|
|
4606
4625
|
}, Q = (H) => /* @__PURE__ */ i("div", { className: `txfollow txfollow--${H}`, children: /* @__PURE__ */ g("button", { type: "button", className: "txfollow__pill", title: "Jump to the line playing now", onClick: De, children: [
|
|
4607
4626
|
/* @__PURE__ */ i(oe, { d: H === "up" ? "m4.5 15.75 7.5-7.5 7.5 7.5" : "m19.5 8.25-7.5 7.5-7.5-7.5", size: 15, sw: 2 }),
|
|
4608
4627
|
"Now playing"
|
|
@@ -4612,13 +4631,13 @@ function ru({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4612
4631
|
I && Z === -1 && Q("up"),
|
|
4613
4632
|
e.map((H, E) => {
|
|
4614
4633
|
var Me;
|
|
4615
|
-
const x = I && E ===
|
|
4634
|
+
const x = I && E === v, B = F && E === v, ce = !!u && u === H.id, W = ne && !H.text.toLowerCase().includes(ne) && !(D && ((Me = H.translations[D]) != null && Me.toLowerCase().includes(ne))) ? 0.22 : !F || E <= v || ce ? 1 : 0.38, ye = N ? () => n.playRow(E) : c && l ? () => {
|
|
4616
4635
|
I && !x && n.seekRow(E), l(H);
|
|
4617
|
-
} : I && x ? void 0 : () => n.playRow(E), G = N ? null : rc(H, s, r), ke = !!G && (G.script > 0 || G.manual), Ie = y && !!a && L === H.id && !!G && !ke, Fe = $r(t, H.speaker), Ae = Qr(t, H.speaker), he = Ae.lane, _e = D && H.translations[D] && H.language !== D ? H.translations[D] : null,
|
|
4618
|
-
return /* @__PURE__ */ g("div", { "data-tx-row": E, "data-sentence": H.sentenceId, className: `txline${
|
|
4636
|
+
} : I && x ? void 0 : () => n.playRow(E), G = N ? null : rc(H, s, r), ke = !!G && (G.script > 0 || G.manual), Ie = y && !!a && L === H.id && !!G && !ke, Fe = $r(t, H.speaker), Ae = Qr(t, H.speaker), he = Ae.lane, _e = D && H.translations[D] && H.language !== D ? H.translations[D] : null, Ve = la(e, E, D), $ = B && !O && te ? Ri(Ve.map((ue) => ({ t: ue.text, sp: " " })), te) : null;
|
|
4637
|
+
return /* @__PURE__ */ g("div", { "data-tx-row": E, "data-sentence": H.sentenceId, className: `txline${V ? " 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: [
|
|
4619
4638
|
/* @__PURE__ */ g("div", { className: "txline__meta", children: [
|
|
4620
|
-
/* @__PURE__ */ i("span", { className: "txline__at", children:
|
|
4621
|
-
m && H.speaker >= 0 && /* @__PURE__ */ g(
|
|
4639
|
+
/* @__PURE__ */ i("span", { className: "txline__at", children: zt(H.start) }),
|
|
4640
|
+
m && H.speaker >= 0 && /* @__PURE__ */ g(Ce, { children: [
|
|
4622
4641
|
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${he}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: Zi(t, H.speaker) }),
|
|
4623
4642
|
/* @__PURE__ */ i("span", { className: `txline__who lane-${he}`, style: Ae.fg ? { color: Ae.fg } : void 0, children: Fe }),
|
|
4624
4643
|
Ae.hasVoice && /* @__PURE__ */ i(sa, { color: Ae.fg ?? `var(--lane-${he})` })
|
|
@@ -4627,8 +4646,8 @@ function ru({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4627
4646
|
G && M && /* @__PURE__ */ i(sc, { f: G, desk: y, onOpen: a ? () => a(H, !0) : void 0 }),
|
|
4628
4647
|
Ie && /* @__PURE__ */ i(ic, { alone: !0, onOpen: () => a == null ? void 0 : a(H, !1) })
|
|
4629
4648
|
] }),
|
|
4630
|
-
/* @__PURE__ */ i("div", { className: "txline__text", children:
|
|
4631
|
-
const fe = `${ue.seq}:${ue.idx}`, Ye = kl(ue.prob), U =
|
|
4649
|
+
/* @__PURE__ */ i("div", { className: "txline__text", children: Ve.map((ue, ae) => {
|
|
4650
|
+
const fe = `${ue.seq}:${ue.idx}`, Ye = kl(ue.prob), U = B && ee, R = U && (O ? A >= ue.start && (A < ue.end || ae === Ve.length - 1 || A < Ve[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)";
|
|
4632
4651
|
return /* @__PURE__ */ g("span", { children: [
|
|
4633
4652
|
/* @__PURE__ */ i(
|
|
4634
4653
|
"span",
|
|
@@ -4636,18 +4655,18 @@ function ru({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4636
4655
|
className: "txw",
|
|
4637
4656
|
title: o && !_e ? c ? "Correct this word" : x && I && n.seekWord ? "Play from this word" : "Play from this line" : x ? "" : "Play from this line",
|
|
4638
4657
|
onClick: o && !_e ? (Le) => {
|
|
4639
|
-
var
|
|
4658
|
+
var Oe;
|
|
4640
4659
|
if (Le.stopPropagation(), c) {
|
|
4641
4660
|
o(H, ue);
|
|
4642
4661
|
return;
|
|
4643
4662
|
}
|
|
4644
4663
|
if (I && x) {
|
|
4645
|
-
(
|
|
4664
|
+
(Oe = n.seekWord) == null || Oe.call(n, ue);
|
|
4646
4665
|
return;
|
|
4647
4666
|
}
|
|
4648
4667
|
n.playRow(E);
|
|
4649
4668
|
} : void 0,
|
|
4650
|
-
style: { color: Ne, opacity: q ? 0.45 : 1, fontWeight: 300, cursor: o && !_e ? c || !x || !I || n.seekWord ? "pointer" : "default" : x ? "default" : "pointer", textShadow: R ? "0 0 2px currentColor, 0 0 4px currentColor" : "none", textDecorationLine: de || se ? "underline" : "none", textDecorationStyle: se ? "solid" : "dotted", textDecorationColor: se ? "var(--brand)" :
|
|
4669
|
+
style: { color: Ne, opacity: q ? 0.45 : 1, fontWeight: 300, cursor: o && !_e ? c || !x || !I || n.seekWord ? "pointer" : "default" : x ? "default" : "pointer", textShadow: R ? "0 0 2px currentColor, 0 0 4px currentColor" : "none", textDecorationLine: de || se ? "underline" : "none", textDecorationStyle: se ? "solid" : "dotted", textDecorationColor: se ? "var(--brand)" : be ?? "currentColor", textDecorationThickness: de || se ? "1.5px" : void 0, textUnderlineOffset: de || se ? "3px" : void 0 },
|
|
4651
4670
|
children: ue.text
|
|
4652
4671
|
}
|
|
4653
4672
|
),
|
|
@@ -4679,11 +4698,11 @@ function su({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, fl
|
|
|
4679
4698
|
] }) });
|
|
4680
4699
|
}
|
|
4681
4700
|
function iu(t, e, n, r, s) {
|
|
4682
|
-
const a =
|
|
4701
|
+
const a = z(n);
|
|
4683
4702
|
a.current = n;
|
|
4684
|
-
const o =
|
|
4703
|
+
const o = z(r);
|
|
4685
4704
|
o.current = r;
|
|
4686
|
-
const [l, c] =
|
|
4705
|
+
const [l, c] = j(0), u = r.trim().toLowerCase();
|
|
4687
4706
|
return S(() => {
|
|
4688
4707
|
c(u ? e.filter((d) => d.text.toLowerCase().includes(u)).length : 0);
|
|
4689
4708
|
}, [e, u]), S(() => {
|
|
@@ -4755,44 +4774,44 @@ function cu(t) {
|
|
|
4755
4774
|
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= Li(n) * 8); n++)
|
|
4756
4775
|
;
|
|
4757
4776
|
if (n > 40) throw new Error("Text too long for a QR code");
|
|
4758
|
-
const r = n * 4 + 17, s = Li(n) * 8, a = [], o = (
|
|
4759
|
-
for (let O = _ - 1; O >= 0; O--) a.push(
|
|
4777
|
+
const r = n * 4 + 17, s = Li(n) * 8, a = [], o = (v, _) => {
|
|
4778
|
+
for (let O = _ - 1; O >= 0; O--) a.push(v >>> O & 1);
|
|
4760
4779
|
};
|
|
4761
4780
|
o(4, 4), o(e.length, n <= 9 ? 8 : 16);
|
|
4762
|
-
for (const
|
|
4781
|
+
for (const v of e) o(v, 8);
|
|
4763
4782
|
for (o(0, Math.min(4, s - a.length)); a.length % 8; ) a.push(0);
|
|
4764
|
-
for (let
|
|
4783
|
+
for (let v = 236; a.length < s; v ^= 253) o(v, 8);
|
|
4765
4784
|
const l = [];
|
|
4766
|
-
for (let
|
|
4785
|
+
for (let v = 0; v < a.length; v += 8) l.push(a.slice(v, v + 8).reduce((_, O) => _ << 1 | O, 0));
|
|
4767
4786
|
const c = hn.blocks[n], u = hn.perBlock[n], d = Math.floor(ca(n) / 8), M = c - d % c, h = Math.floor(d / c), f = [], p = au(u);
|
|
4768
|
-
for (let
|
|
4769
|
-
const O = l.slice(_, _ + h - u + (
|
|
4787
|
+
for (let v = 0, _ = 0; v < c; v++) {
|
|
4788
|
+
const O = l.slice(_, _ + h - u + (v < M ? 0 : 1));
|
|
4770
4789
|
_ += O.length;
|
|
4771
4790
|
const te = ou(O, p);
|
|
4772
|
-
|
|
4791
|
+
v < M && O.push(0), f.push(O.concat(te));
|
|
4773
4792
|
}
|
|
4774
4793
|
const y = [];
|
|
4775
|
-
for (let
|
|
4776
|
-
(
|
|
4794
|
+
for (let v = 0; v < f[0].length; v++) f.forEach((_, O) => {
|
|
4795
|
+
(v !== h - u || O >= M) && y.push(_[v]);
|
|
4777
4796
|
});
|
|
4778
|
-
const T = Array.from({ length: r }, () => new Array(r).fill(!1)), N = Array.from({ length: r }, () => new Array(r).fill(!1)), m = (
|
|
4779
|
-
T[_][
|
|
4797
|
+
const T = Array.from({ length: r }, () => new Array(r).fill(!1)), N = Array.from({ length: r }, () => new Array(r).fill(!1)), m = (v, _, O) => {
|
|
4798
|
+
T[_][v] = O, N[_][v] = !0;
|
|
4780
4799
|
};
|
|
4781
|
-
for (let
|
|
4782
|
-
m(6,
|
|
4783
|
-
const b = (
|
|
4800
|
+
for (let v = 0; v < r; v++)
|
|
4801
|
+
m(6, v, v % 2 === 0), m(v, 6, v % 2 === 0);
|
|
4802
|
+
const b = (v, _) => {
|
|
4784
4803
|
for (let O = -4; O <= 4; O++) for (let te = -4; te <= 4; te++) {
|
|
4785
|
-
const K = Math.max(Math.abs(te), Math.abs(O)), L =
|
|
4804
|
+
const K = Math.max(Math.abs(te), Math.abs(O)), L = v + te, ie = _ + O;
|
|
4786
4805
|
L >= 0 && L < r && ie >= 0 && ie < r && m(L, ie, K !== 2 && K !== 4);
|
|
4787
4806
|
}
|
|
4788
4807
|
};
|
|
4789
4808
|
b(3, 3), b(r - 4, 3), b(3, r - 4);
|
|
4790
4809
|
const C = lu(n);
|
|
4791
|
-
for (let
|
|
4792
|
-
if (!(
|
|
4793
|
-
for (let O = -2; O <= 2; O++) for (let te = -2; te <= 2; te++) m(C[
|
|
4794
|
-
const D = (
|
|
4795
|
-
const _ = hn.formatBits << 3 |
|
|
4810
|
+
for (let v = 0; v < C.length; v++) for (let _ = 0; _ < C.length; _++)
|
|
4811
|
+
if (!(v === 0 && _ === 0 || v === 0 && _ === C.length - 1 || v === C.length - 1 && _ === 0))
|
|
4812
|
+
for (let O = -2; O <= 2; O++) for (let te = -2; te <= 2; te++) m(C[v] + te, C[_] + O, Math.max(Math.abs(te), Math.abs(O)) !== 1);
|
|
4813
|
+
const D = (v) => {
|
|
4814
|
+
const _ = hn.formatBits << 3 | v;
|
|
4796
4815
|
let O = _;
|
|
4797
4816
|
for (let L = 0; L < 10; L++) O = O << 1 ^ (O >>> 9) * 1335;
|
|
4798
4817
|
const te = (_ << 10 | O) ^ 21522, K = (L) => (te >>> L & 1) !== 0;
|
|
@@ -4804,24 +4823,24 @@ function cu(t) {
|
|
|
4804
4823
|
m(8, r - 8, !0);
|
|
4805
4824
|
};
|
|
4806
4825
|
if (D(0), n >= 7) {
|
|
4807
|
-
let
|
|
4808
|
-
for (let O = 0; O < 12; O++)
|
|
4809
|
-
const _ = n << 12 |
|
|
4826
|
+
let v = n;
|
|
4827
|
+
for (let O = 0; O < 12; O++) v = v << 1 ^ (v >>> 11) * 7973;
|
|
4828
|
+
const _ = n << 12 | v;
|
|
4810
4829
|
for (let O = 0; O < 18; O++) {
|
|
4811
4830
|
const te = (_ >>> O & 1) !== 0, K = r - 11 + O % 3, L = Math.floor(O / 3);
|
|
4812
4831
|
m(K, L, te), m(L, K, te);
|
|
4813
4832
|
}
|
|
4814
4833
|
}
|
|
4815
|
-
let
|
|
4816
|
-
for (let
|
|
4817
|
-
|
|
4834
|
+
let V = 0;
|
|
4835
|
+
for (let v = r - 1; v >= 1; v -= 2) {
|
|
4836
|
+
v === 6 && (v = 5);
|
|
4818
4837
|
for (let _ = 0; _ < r; _++) for (let O = 0; O < 2; O++) {
|
|
4819
|
-
const te =
|
|
4820
|
-
!N[K][te] &&
|
|
4838
|
+
const te = v - O, K = v + 1 & 2 ? _ : r - 1 - _;
|
|
4839
|
+
!N[K][te] && V < y.length * 8 && (T[K][te] = (y[V >>> 3] >>> 7 - (V & 7) & 1) !== 0, V++);
|
|
4821
4840
|
}
|
|
4822
4841
|
}
|
|
4823
|
-
const Y = (
|
|
4824
|
-
switch (
|
|
4842
|
+
const Y = (v, _, O) => {
|
|
4843
|
+
switch (v) {
|
|
4825
4844
|
case 0:
|
|
4826
4845
|
return (_ + O) % 2 === 0;
|
|
4827
4846
|
case 1:
|
|
@@ -4839,10 +4858,10 @@ function cu(t) {
|
|
|
4839
4858
|
default:
|
|
4840
4859
|
return ((_ + O) % 2 + _ * O % 3) % 2 === 0;
|
|
4841
4860
|
}
|
|
4842
|
-
}, ee = (
|
|
4843
|
-
for (let _ = 0; _ < r; _++) for (let O = 0; O < r; O++) !N[_][O] && Y(
|
|
4861
|
+
}, ee = (v) => {
|
|
4862
|
+
for (let _ = 0; _ < r; _++) for (let O = 0; O < r; O++) !N[_][O] && Y(v, O, _) && (T[_][O] = !T[_][O]);
|
|
4844
4863
|
}, I = () => {
|
|
4845
|
-
let
|
|
4864
|
+
let v = 0;
|
|
4846
4865
|
const _ = (ne) => {
|
|
4847
4866
|
const Z = ne[1], J = Z > 0 && ne[2] === Z && ne[3] === Z * 3 && ne[4] === Z && ne[5] === Z;
|
|
4848
4867
|
return (J && ne[0] >= Z * 4 && ne[6] >= Z ? 1 : 0) + (J && ne[6] >= Z * 4 && ne[0] >= Z ? 1 : 0);
|
|
@@ -4852,25 +4871,25 @@ function cu(t) {
|
|
|
4852
4871
|
let Z = !1, J = 0;
|
|
4853
4872
|
const pe = [0, 0, 0, 0, 0, 0, 0];
|
|
4854
4873
|
for (let le = 0; le < r; le++)
|
|
4855
|
-
ne(le) === Z ? (J++, J === 5 ?
|
|
4856
|
-
|
|
4874
|
+
ne(le) === Z ? (J++, J === 5 ? v += 3 : J > 5 && v++) : (O(pe, J), Z || (v += _(pe) * 40), Z = ne(le), J = 1);
|
|
4875
|
+
v += te(pe, Z, J) * 40;
|
|
4857
4876
|
};
|
|
4858
4877
|
for (let ne = 0; ne < r; ne++) K((Z) => T[ne][Z]);
|
|
4859
4878
|
for (let ne = 0; ne < r; ne++) K((Z) => T[Z][ne]);
|
|
4860
4879
|
for (let ne = 0; ne < r - 1; ne++) for (let Z = 0; Z < r - 1; Z++) {
|
|
4861
4880
|
const J = T[ne][Z];
|
|
4862
|
-
J === T[ne][Z + 1] && J === T[ne + 1][Z] && J === T[ne + 1][Z + 1] && (
|
|
4881
|
+
J === T[ne][Z + 1] && J === T[ne + 1][Z] && J === T[ne + 1][Z + 1] && (v += 3);
|
|
4863
4882
|
}
|
|
4864
4883
|
let L = 0;
|
|
4865
4884
|
for (const ne of T) for (const Z of ne) Z && L++;
|
|
4866
4885
|
const ie = r * r;
|
|
4867
|
-
return
|
|
4886
|
+
return v += (Math.ceil(Math.abs(L * 20 - ie * 10) / ie) - 1) * 10, v;
|
|
4868
4887
|
};
|
|
4869
4888
|
let F = 0, A = 1 / 0;
|
|
4870
|
-
for (let
|
|
4871
|
-
ee(
|
|
4889
|
+
for (let v = 0; v < 8; v++) {
|
|
4890
|
+
ee(v), D(v);
|
|
4872
4891
|
const _ = I();
|
|
4873
|
-
_ < A && (A = _, F =
|
|
4892
|
+
_ < A && (A = _, F = v), ee(v);
|
|
4874
4893
|
}
|
|
4875
4894
|
return ee(F), D(F), T;
|
|
4876
4895
|
}
|
|
@@ -4882,7 +4901,7 @@ function uu(t) {
|
|
|
4882
4901
|
return `data:image/svg+xml,${encodeURIComponent(a)}`;
|
|
4883
4902
|
}
|
|
4884
4903
|
const ua = "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", du = "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";
|
|
4885
|
-
function
|
|
4904
|
+
function wr() {
|
|
4886
4905
|
const t = document;
|
|
4887
4906
|
return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
|
|
4888
4907
|
}
|
|
@@ -4916,7 +4935,7 @@ function _n(t) {
|
|
|
4916
4935
|
}
|
|
4917
4936
|
}
|
|
4918
4937
|
function Mu(t) {
|
|
4919
|
-
const [e, n] =
|
|
4938
|
+
const [e, n] = j(() => {
|
|
4920
4939
|
var r;
|
|
4921
4940
|
return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, t).matches);
|
|
4922
4941
|
});
|
|
@@ -4929,7 +4948,7 @@ function Mu(t) {
|
|
|
4929
4948
|
}, [t]), e;
|
|
4930
4949
|
}
|
|
4931
4950
|
function Yn({ pos: t, interactive: e, axis: n = "x" }) {
|
|
4932
|
-
const [r, s] =
|
|
4951
|
+
const [r, s] = j(null), a = (c) => {
|
|
4933
4952
|
const u = c.currentTarget.getBoundingClientRect(), d = n === "y" ? (c.clientY - u.top) / Math.max(1, u.height) : (c.clientX - u.left) / Math.max(1, u.width);
|
|
4934
4953
|
return Math.min(1, Math.max(0, d));
|
|
4935
4954
|
}, o = (c) => {
|
|
@@ -4937,7 +4956,7 @@ function Yn({ pos: t, interactive: e, axis: n = "x" }) {
|
|
|
4937
4956
|
const u = a(c);
|
|
4938
4957
|
s(null), t.onSeek(u);
|
|
4939
4958
|
}, l = r != null ? r * 100 : t.pct;
|
|
4940
|
-
return /* @__PURE__ */ g(
|
|
4959
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
4941
4960
|
/* @__PURE__ */ i("span", { className: `gfull__t${e ? " gfull__t--at" : ""}`, children: r != null ? t.labelAt(r) : t.atLabel }),
|
|
4942
4961
|
/* @__PURE__ */ i(
|
|
4943
4962
|
"div",
|
|
@@ -4968,7 +4987,7 @@ function Yn({ pos: t, interactive: e, axis: n = "x" }) {
|
|
|
4968
4987
|
] });
|
|
4969
4988
|
}
|
|
4970
4989
|
function td({ pos: t }) {
|
|
4971
|
-
const [e, n] =
|
|
4990
|
+
const [e, n] = j(null), r = (l) => {
|
|
4972
4991
|
const c = l.currentTarget.getBoundingClientRect();
|
|
4973
4992
|
return Math.min(1, Math.max(0, (l.clientX - c.left) / Math.max(1, c.width)));
|
|
4974
4993
|
}, s = (l) => {
|
|
@@ -5021,7 +5040,7 @@ function Un({ t, mini: e }) {
|
|
|
5021
5040
|
disabled: !t.playable,
|
|
5022
5041
|
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" },
|
|
5023
5042
|
onClick: t.onPlay,
|
|
5024
|
-
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(ao, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(
|
|
5043
|
+
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(ao, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(Wt, { size: e ? 15 : 19 })
|
|
5025
5044
|
}
|
|
5026
5045
|
),
|
|
5027
5046
|
/* @__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 }) })
|
|
@@ -5029,7 +5048,7 @@ function Un({ t, mini: e }) {
|
|
|
5029
5048
|
}
|
|
5030
5049
|
function _r({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
5031
5050
|
return /* @__PURE__ */ g("div", { className: `gfull__brand${s ? " gfull__brand--mark" : ""}`, children: [
|
|
5032
|
-
/* @__PURE__ */ i("a", { href: Si, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ i(Yr, { dark: !0, size: 22 }) : /* @__PURE__ */ i(
|
|
5051
|
+
/* @__PURE__ */ i("a", { href: Si, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ i(Yr, { dark: !0, size: 22 }) : /* @__PURE__ */ i(Bn, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
|
|
5033
5052
|
t && /* @__PURE__ */ g("span", { className: "gfull__live", children: [
|
|
5034
5053
|
/* @__PURE__ */ i("i", {}),
|
|
5035
5054
|
"LIVE"
|
|
@@ -5064,19 +5083,19 @@ function gu({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, c
|
|
|
5064
5083
|
] });
|
|
5065
5084
|
}
|
|
5066
5085
|
const fu = { color: "rgba(255,255,255,.4)" };
|
|
5067
|
-
function ha({ 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: M, ad: h, chip: f, transport: p, picker: y, sheet: T, voices: N, voicesBtn: m, sheetOpen: b, onShare: C, onSettings: D, paused:
|
|
5068
|
-
const [F, A] =
|
|
5086
|
+
function ha({ 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: M, ad: h, chip: f, transport: p, picker: y, sheet: T, voices: N, voicesBtn: m, sheetOpen: b, onShare: C, onSettings: D, paused: V, copied: Y, onTouch: ee, onClose: I }) {
|
|
5087
|
+
const [F, A] = j(() => !!wr());
|
|
5069
5088
|
S(() => {
|
|
5070
|
-
const $ = () => A(!!
|
|
5089
|
+
const $ = () => A(!!wr());
|
|
5071
5090
|
return document.addEventListener("fullscreenchange", $), document.addEventListener("webkitfullscreenchange", $), () => {
|
|
5072
5091
|
document.removeEventListener("fullscreenchange", $), document.removeEventListener("webkitfullscreenchange", $);
|
|
5073
5092
|
};
|
|
5074
5093
|
}, []);
|
|
5075
|
-
const
|
|
5076
|
-
|
|
5077
|
-
const _ =
|
|
5094
|
+
const v = z(I);
|
|
5095
|
+
v.current = I;
|
|
5096
|
+
const _ = z(p.playable ? p.onPlay : void 0);
|
|
5078
5097
|
_.current = p.playable ? p.onPlay : void 0;
|
|
5079
|
-
const [O, te] =
|
|
5098
|
+
const [O, te] = j(!1), [K, L] = j(0), ie = z(!1);
|
|
5080
5099
|
S(() => () => _n(!1), []), S(() => {
|
|
5081
5100
|
if (!n) return;
|
|
5082
5101
|
const $ = [document.documentElement, document.body], Me = $.map((fe) => fe.style.background);
|
|
@@ -5090,7 +5109,7 @@ function ha({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5090
5109
|
}), ue && ae && (ue.content = ae);
|
|
5091
5110
|
};
|
|
5092
5111
|
}, []);
|
|
5093
|
-
const ne = ze(() => n && hu(), [n]), [Z, J] =
|
|
5112
|
+
const ne = ze(() => n && hu(), [n]), [Z, J] = j(ne);
|
|
5094
5113
|
S(() => {
|
|
5095
5114
|
if (!n) return;
|
|
5096
5115
|
const $ = [document.documentElement, document.body], Me = $.map((fe) => [fe.style.overflow, fe.style.overscrollBehavior]);
|
|
@@ -5109,11 +5128,11 @@ function ha({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5109
5128
|
window.removeEventListener("scroll", ae), ue.remove(), document.documentElement.style.overscrollBehavior = Me[0][1], window.scrollTo(0, 0);
|
|
5110
5129
|
};
|
|
5111
5130
|
}, [ne, n]);
|
|
5112
|
-
const pe =
|
|
5131
|
+
const pe = z(b);
|
|
5113
5132
|
pe.current = b, S(() => {
|
|
5114
5133
|
const $ = (ae) => ae instanceof HTMLElement && (ae.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ae.tagName)), Me = (ae) => {
|
|
5115
5134
|
var fe;
|
|
5116
|
-
ae.key === "Escape" && !pe.current &&
|
|
5135
|
+
ae.key === "Escape" && !pe.current && v.current && (ae.stopPropagation(), v.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) && ji() && (ae.preventDefault(), ae.repeat || _n(!wr()));
|
|
5117
5136
|
}, ue = (ae) => {
|
|
5118
5137
|
ae.key === " " && !pe.current && !$(ae.target) && ae.preventDefault();
|
|
5119
5138
|
};
|
|
@@ -5121,27 +5140,27 @@ function ha({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5121
5140
|
window.removeEventListener("keydown", Me, !0), window.removeEventListener("keyup", ue, !0);
|
|
5122
5141
|
};
|
|
5123
5142
|
}, []);
|
|
5124
|
-
const le = Mu("(orientation: landscape) and (max-height: 540px)"), Te =
|
|
5125
|
-
|
|
5143
|
+
const le = Mu("(orientation: landscape) and (max-height: 540px)"), Te = z(null), [je, Se] = j(null);
|
|
5144
|
+
Xt(() => {
|
|
5126
5145
|
const $ = Te.current;
|
|
5127
5146
|
if (!$ || (Se($.getBoundingClientRect().width), typeof ResizeObserver > "u")) return;
|
|
5128
5147
|
const Me = new ResizeObserver(([ue]) => Se(ue.contentRect.width));
|
|
5129
5148
|
return Me.observe($), () => Me.disconnect();
|
|
5130
5149
|
}, []);
|
|
5131
|
-
const
|
|
5150
|
+
const we = t && !F, ve = !we && a && !le && (je == null || je >= 880), Ee = !ve;
|
|
5132
5151
|
S(() => {
|
|
5133
5152
|
if (te(!1), !p.playing || b) return;
|
|
5134
5153
|
const $ = setTimeout(() => te(!0), 3e3);
|
|
5135
5154
|
return () => clearTimeout($);
|
|
5136
5155
|
}, [p.playing, b, K]);
|
|
5137
|
-
const Re =
|
|
5156
|
+
const Re = z(O);
|
|
5138
5157
|
Re.current = O;
|
|
5139
|
-
const De =
|
|
5158
|
+
const De = z(0), Q = ($) => {
|
|
5140
5159
|
if ($.pointerType !== "mouse") return;
|
|
5141
5160
|
const Me = Date.now();
|
|
5142
5161
|
!Re.current && Me - De.current < 1e3 || (De.current = Me, L((ue) => ue + 1));
|
|
5143
|
-
}, H = !
|
|
5144
|
-
|
|
5162
|
+
}, H = !ve && le, E = z(null), x = l ? l.words.map(($) => $.dim ? 0 : 1).join("") + l.words.length + ":" + (l.cursor ?? "") : "";
|
|
5163
|
+
Xt(() => {
|
|
5145
5164
|
const $ = E.current;
|
|
5146
5165
|
if (!$) return;
|
|
5147
5166
|
const Me = !!(l != null && l.words.some((de) => de.dim)) || (l == null ? void 0 : l.cursor) != null, ue = $.querySelectorAll((l == null ? void 0 : l.cursor) != null && !l.words.some((de) => de.dim) ? "[data-at]" : "[data-said]"), ae = parseFloat(getComputedStyle($).lineHeight) || 24, fe = Math.round($.scrollHeight / ae) - Math.round($.clientHeight / ae), Ye = Math.max(0, fe) * ae;
|
|
@@ -5152,22 +5171,22 @@ function ha({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5152
5171
|
const U = (de) => Math.round((de.getBoundingClientRect().top - $.getBoundingClientRect().top + $.scrollTop) / ae), R = Math.max(1, Math.round($.clientHeight / ae)), q = Me ? ue.length ? Math.floor(U(ue[ue.length - 1]) / R) * R * ae : 0 : Ye, se = Math.max(0, Math.min(Ye, q));
|
|
5153
5172
|
Math.abs(se - $.scrollTop) > 1 && ($.scrollTop = se);
|
|
5154
5173
|
}, [x, H]);
|
|
5155
|
-
const [
|
|
5174
|
+
const [B, ce] = j(!0), [W, ye] = j(!1), G = z(void 0);
|
|
5156
5175
|
S(() => () => window.clearTimeout(G.current), []);
|
|
5157
|
-
const ke =
|
|
5176
|
+
const ke = V != null && V.share ? V.share.url(B && V.share.at >= 1 ? Math.floor(V.share.at) : null) : "", Ie = ze(() => ve && ke && !p.playing ? uu(ke) : "", [ve, ke, p.playing]), Fe = () => {
|
|
5158
5177
|
var $;
|
|
5159
5178
|
($ = navigator.clipboard) == null || $.writeText(ke).then(() => {
|
|
5160
5179
|
ye(!0), window.clearTimeout(G.current), G.current = window.setTimeout(() => ye(!1), 1800);
|
|
5161
5180
|
}, () => {
|
|
5162
5181
|
});
|
|
5163
|
-
}, Ae =
|
|
5182
|
+
}, Ae = ve && (V == null ? void 0 : V.share) && /* @__PURE__ */ g("div", { className: "gfull__sharecard", onPointerDown: ($) => $.stopPropagation(), onClick: ($) => $.stopPropagation(), children: [
|
|
5164
5183
|
Ie && /* @__PURE__ */ i("div", { className: "gfull__shareqr", role: "img", "aria-label": "QR code for this link", style: { backgroundImage: `url("${Ie}")` } }),
|
|
5165
5184
|
/* @__PURE__ */ g("div", { className: "gfull__sharebody", children: [
|
|
5166
5185
|
/* @__PURE__ */ i("div", { className: "gfull__shareeyebrow", children: "SHARE THIS MOMENT" }),
|
|
5167
5186
|
/* @__PURE__ */ g("label", { className: "gfull__shareat", children: [
|
|
5168
|
-
/* @__PURE__ */ i("input", { type: "checkbox", checked:
|
|
5187
|
+
/* @__PURE__ */ i("input", { type: "checkbox", checked: B, onChange: ($) => ce($.target.checked), disabled: V.share.at < 1 }),
|
|
5169
5188
|
"Start at ",
|
|
5170
|
-
|
|
5189
|
+
zt(Math.floor(V.share.at))
|
|
5171
5190
|
] }),
|
|
5172
5191
|
/* @__PURE__ */ i("div", { className: "gfull__shareurl", children: /* @__PURE__ */ i("span", { children: ke.replace(/^https?:\/\//, "") }) }),
|
|
5173
5192
|
/* @__PURE__ */ g("div", { className: "gfull__shareacts", children: [
|
|
@@ -5181,12 +5200,12 @@ function ha({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5181
5200
|
] })
|
|
5182
5201
|
] })
|
|
5183
5202
|
] })
|
|
5184
|
-
] }), he = ($, Me, ue, ae, fe, Ye = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: $, "aria-label": $, onClick: ae, children: /* @__PURE__ */ i(oe, { d: Me, size: (
|
|
5185
|
-
m && /* @__PURE__ */ i(da, { v: m, size:
|
|
5203
|
+
] }), he = ($, Me, ue, ae, fe, Ye = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: $, "aria-label": $, onClick: ae, children: /* @__PURE__ */ i(oe, { d: Me, size: (ve ? 20 : Ee ? 15 : 18) + Ye, sw: ue, style: fe }) }), _e = /* @__PURE__ */ g("div", { className: "gfull__acts", children: [
|
|
5204
|
+
m && /* @__PURE__ */ i(da, { v: m, size: ve ? 20 : Ee ? 15 : 18 }),
|
|
5186
5205
|
C && he("Share", X.share, 1.6, C),
|
|
5187
5206
|
ji() && !e && he(F ? "Exit full screen" : "Full screen", F ? du : ua, 1.7, () => _n(!F)),
|
|
5188
5207
|
I && he("Close player", X.close, 1.7, I)
|
|
5189
|
-
] }),
|
|
5208
|
+
] }), Ve = (d || M || D) && /* @__PURE__ */ g("div", { className: "gfull__top", children: [
|
|
5190
5209
|
d && he(d.muted ? "Unmute" : "Mute", d.muted ? X.volumeOff : X.volume, 1.6, d.onToggle),
|
|
5191
5210
|
M && he(M.on ? "Hide subtitles" : "Show subtitles", M.on ? X.cc : X.ccOff, 1.7, M.onToggle, void 0, 4),
|
|
5192
5211
|
D && he("Settings", X.cog, 1.6, D)
|
|
@@ -5195,7 +5214,7 @@ function ha({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5195
5214
|
"div",
|
|
5196
5215
|
{
|
|
5197
5216
|
ref: Te,
|
|
5198
|
-
className: `gfull${
|
|
5217
|
+
className: `gfull${ve ? " gfull--desk" : ""}${Ee ? " gfull--mini" : ""}${we ? " gfull--small" : ""}${ne ? " gfull--swipe" : ""}${h ? " gfull--ad" : ""}${O ? " gfull--calm" : ""}`,
|
|
5199
5218
|
"data-theme": "dark",
|
|
5200
5219
|
role: "dialog",
|
|
5201
5220
|
"aria-label": s,
|
|
@@ -5215,24 +5234,24 @@ function ha({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5215
5234
|
/* @__PURE__ */ g("div", { className: `gfull__frame${H ? " gfull__frame--land" : ""}`, children: [
|
|
5216
5235
|
r,
|
|
5217
5236
|
/* @__PURE__ */ i("div", { className: "gfull__shade", "aria-hidden": "true" }),
|
|
5218
|
-
|
|
5237
|
+
V && !h && /* @__PURE__ */ g("div", { className: `gfull__pausedinfo${p.playing ? "" : " gfull__pausedinfo--on"}`, "aria-hidden": p.playing, children: [
|
|
5219
5238
|
/* @__PURE__ */ g("div", { className: "gfull__pausedtext", children: [
|
|
5220
5239
|
/* @__PURE__ */ g("div", { className: "gfull__pausedhead", children: [
|
|
5221
|
-
(Ee ||
|
|
5222
|
-
/* @__PURE__ */ i("div", { className: "gfull__pausedtitle", children:
|
|
5240
|
+
(Ee || we) && /* @__PURE__ */ i("span", { className: "gfull__pausedmark", "aria-hidden": "true", children: /* @__PURE__ */ i(Yr, { dark: !0, size: 20 }) }),
|
|
5241
|
+
/* @__PURE__ */ i("div", { className: "gfull__pausedtitle", children: V.title })
|
|
5223
5242
|
] }),
|
|
5224
|
-
|
|
5243
|
+
V.summary && /* @__PURE__ */ i("div", { className: "gfull__pausedsum", children: V.summary })
|
|
5225
5244
|
] }),
|
|
5226
5245
|
Ae
|
|
5227
5246
|
] }),
|
|
5228
|
-
|
|
5247
|
+
Ve,
|
|
5229
5248
|
Y,
|
|
5230
5249
|
c ? typeof c == "string" ? /* @__PURE__ */ i("div", { className: "gfull__sub", "aria-live": "polite", children: /* @__PURE__ */ g("div", { className: "gfull__wait", children: [
|
|
5231
5250
|
/* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }),
|
|
5232
5251
|
c
|
|
5233
5252
|
] }) }) : /* @__PURE__ */ i("div", { className: "gfull__sub", children: c }) : l && /* @__PURE__ */ i("div", { className: "gfull__sub", children: /* @__PURE__ */ g("div", { ref: E, children: [
|
|
5234
5253
|
/* @__PURE__ */ i("div", { className: "gfull__subback", "aria-hidden": "true", children: /* @__PURE__ */ g("span", { children: [
|
|
5235
|
-
l.who && /* @__PURE__ */ g(
|
|
5254
|
+
l.who && /* @__PURE__ */ g(Ce, { children: [
|
|
5236
5255
|
/* @__PURE__ */ g("b", { children: [
|
|
5237
5256
|
l.who,
|
|
5238
5257
|
":"
|
|
@@ -5242,7 +5261,7 @@ function ha({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5242
5261
|
l.words.map(($) => $.t + $.sp).join("")
|
|
5243
5262
|
] }) }),
|
|
5244
5263
|
/* @__PURE__ */ g("span", { children: [
|
|
5245
|
-
l.who && /* @__PURE__ */ g(
|
|
5264
|
+
l.who && /* @__PURE__ */ g(Ce, { children: [
|
|
5246
5265
|
/* @__PURE__ */ g("b", { style: { color: l.color }, children: [
|
|
5247
5266
|
l.who,
|
|
5248
5267
|
":"
|
|
@@ -5255,7 +5274,7 @@ function ha({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5255
5274
|
] }, Me))
|
|
5256
5275
|
] })
|
|
5257
5276
|
] }) }),
|
|
5258
|
-
/* @__PURE__ */ i("div", { className: `gfull__prog${
|
|
5277
|
+
/* @__PURE__ */ i("div", { className: `gfull__prog${ve ? "" : " gfull__prog--two"}`, children: ve ? /* @__PURE__ */ g(Ce, { children: [
|
|
5259
5278
|
/* @__PURE__ */ i(_r, { live: o.live, desk: !0, pct: u }),
|
|
5260
5279
|
/* @__PURE__ */ i(Un, { t: p }),
|
|
5261
5280
|
/* @__PURE__ */ i(Yn, { pos: o, interactive: !0 }),
|
|
@@ -5266,7 +5285,7 @@ function ha({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
5266
5285
|
/* @__PURE__ */ i(Yn, { pos: o, interactive: !0 }),
|
|
5267
5286
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: f }),
|
|
5268
5287
|
_e
|
|
5269
|
-
] }) : /* @__PURE__ */ g(
|
|
5288
|
+
] }) : /* @__PURE__ */ g(Ce, { children: [
|
|
5270
5289
|
/* @__PURE__ */ g("div", { className: "gfull__row", children: [
|
|
5271
5290
|
/* @__PURE__ */ i(_r, { live: o.live, pct: u, mark: !0 }),
|
|
5272
5291
|
/* @__PURE__ */ i(Yn, { pos: o, interactive: !0 })
|
|
@@ -5290,7 +5309,7 @@ function pu({ dark: t, back: e, home: n, live: r, title: s, badge: a, subline: o
|
|
|
5290
5309
|
return /* @__PURE__ */ g("div", { className: "ghead", children: [
|
|
5291
5310
|
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 }) }),
|
|
5292
5311
|
r && /* @__PURE__ */ i("span", { className: "mark", children: /* @__PURE__ */ i(Yr, { dark: t, size: 30 }) }),
|
|
5293
|
-
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ i("div", { className: "ghead__logo", children: /* @__PURE__ */ i(
|
|
5312
|
+
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ i("div", { className: "ghead__logo", children: /* @__PURE__ */ i(Bn, { dark: t, height: 22 }) }) : /* @__PURE__ */ g("div", { className: "ghead__title", onClick: e, title: e ? "Back" : void 0, style: { cursor: e ? "pointer" : "default" }, children: [
|
|
5294
5313
|
/* @__PURE__ */ g("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
5295
5314
|
/* @__PURE__ */ i("span", { className: "ghead__name", children: s }),
|
|
5296
5315
|
a
|
|
@@ -5350,12 +5369,12 @@ function Ma(t, e, n) {
|
|
|
5350
5369
|
}, 500);
|
|
5351
5370
|
}) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
|
|
5352
5371
|
}
|
|
5353
|
-
async function
|
|
5372
|
+
async function vu(t, e, n) {
|
|
5354
5373
|
const r = await Ma(t, { url: e }, n);
|
|
5355
5374
|
return r === "connected" ? null : r;
|
|
5356
5375
|
}
|
|
5357
5376
|
const ga = "vsp.connected";
|
|
5358
|
-
function
|
|
5377
|
+
function wu(t) {
|
|
5359
5378
|
try {
|
|
5360
5379
|
return localStorage.getItem(ga) === new URL(t ?? Fr).origin;
|
|
5361
5380
|
} catch {
|
|
@@ -5377,7 +5396,7 @@ const ku = {
|
|
|
5377
5396
|
starting: "Starting the transcription…"
|
|
5378
5397
|
}, ju = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
5379
5398
|
function zu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
5380
|
-
const [s, a] =
|
|
5399
|
+
const [s, a] = j(""), [o, l] = j(!1), [c, u] = j(null), [d, M] = j(null);
|
|
5381
5400
|
S(() => {
|
|
5382
5401
|
const y = (T) => {
|
|
5383
5402
|
T.key === "Escape" && r();
|
|
@@ -5388,7 +5407,7 @@ function zu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5388
5407
|
if (!(!f || o)) {
|
|
5389
5408
|
l(!0), u(null);
|
|
5390
5409
|
try {
|
|
5391
|
-
const y = await
|
|
5410
|
+
const y = await vu(t.appUrl, /^https?:\/\//i.test(h) ? h : `https://${h}`, M);
|
|
5392
5411
|
y && e(y);
|
|
5393
5412
|
} catch (y) {
|
|
5394
5413
|
u(y instanceof Error ? y.message : "Something went wrong. Please try again.");
|
|
@@ -5401,7 +5420,7 @@ function zu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5401
5420
|
y.stopPropagation(), y.target === y.currentTarget && r();
|
|
5402
5421
|
}, children: /* @__PURE__ */ g("div", { className: "vsp-end__card", children: [
|
|
5403
5422
|
/* @__PURE__ */ i("button", { type: "button", className: "vsp-end__close", "aria-label": "Close", title: "Close", onClick: r, children: /* @__PURE__ */ i(oe, { d: X.close, size: 16, sw: 1.8 }) }),
|
|
5404
|
-
/* @__PURE__ */ i("div", { className: "vsp-end__brand", children: /* @__PURE__ */ i(
|
|
5423
|
+
/* @__PURE__ */ i("div", { className: "vsp-end__brand", children: /* @__PURE__ */ i(Bn, { dark: !0, link: !1, height: 16 }) }),
|
|
5405
5424
|
/* @__PURE__ */ i("div", { className: "vsp-end__title", children: t.title ?? "Transcribe and translate any video" }),
|
|
5406
5425
|
/* @__PURE__ */ i("div", { className: "vsp-end__note", children: t.note ?? "Paste a link from YouTube, Vimeo or any page with a video. It plays right here with subtitles and spoken translations." }),
|
|
5407
5426
|
/* @__PURE__ */ g("form", { className: "vsp-end__row", onSubmit: (y) => {
|
|
@@ -5424,7 +5443,7 @@ function zu({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
5424
5443
|
] }) });
|
|
5425
5444
|
}
|
|
5426
5445
|
function fa(t) {
|
|
5427
|
-
const [e, n] =
|
|
5446
|
+
const [e, n] = j(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
|
|
5428
5447
|
return S(() => {
|
|
5429
5448
|
if (t != null) return;
|
|
5430
5449
|
const r = () => n(window.innerWidth >= 880);
|
|
@@ -5433,7 +5452,7 @@ function fa(t) {
|
|
|
5433
5452
|
}
|
|
5434
5453
|
const Iu = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
|
|
5435
5454
|
function bu(t, e) {
|
|
5436
|
-
const n = Ji(), [r, s] = $i(), [a, o] =
|
|
5455
|
+
const n = Ji(), [r, s] = $i(), [a, o] = j(null), [l, c] = j("main"), u = Dr(n, t.lang), d = ze(() => Qi(n, "translation"), [n]), M = (Y) => {
|
|
5437
5456
|
e({ lang: Y }), s(Y);
|
|
5438
5457
|
}, h = Rr({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect: M, languages: d, none: "As spoken", pinned: t.lang ? [t.lang] : [], recent: r, keepOpen: !0 }), f = () => {
|
|
5439
5458
|
o(null), c("main");
|
|
@@ -5487,45 +5506,45 @@ function bu(t, e) {
|
|
|
5487
5506
|
] }),
|
|
5488
5507
|
T
|
|
5489
5508
|
] })
|
|
5490
|
-
] }),
|
|
5509
|
+
] }), V = /* @__PURE__ */ g(Ce, { children: [
|
|
5491
5510
|
/* @__PURE__ */ i(en, { open: a === "lang", onClose: f, title: "LANGUAGE", kind: "picker", header: h.search, sticky: !0, children: /* @__PURE__ */ i(jr, { children: h.list }) }),
|
|
5492
5511
|
/* @__PURE__ */ i(en, { open: a === "settings", onClose: f, title: { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO" }[l], titleNode: l === "main" ? void 0 : N, kind: l === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(jr, { children: D }) })
|
|
5493
5512
|
] });
|
|
5494
5513
|
return {
|
|
5495
5514
|
chip: y,
|
|
5496
|
-
sheets:
|
|
5515
|
+
sheets: V,
|
|
5497
5516
|
sheetOpen: a != null,
|
|
5498
5517
|
openSettings: () => {
|
|
5499
5518
|
c("main"), o((Y) => Y === "settings" ? null : "settings");
|
|
5500
5519
|
}
|
|
5501
5520
|
};
|
|
5502
5521
|
}
|
|
5503
|
-
const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "currentColor", fillRule: e }),
|
|
5522
|
+
const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "currentColor", fillRule: e }), Bt = (t) => /* @__PURE__ */ g(Ce, { children: [
|
|
5504
5523
|
/* @__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" }),
|
|
5505
5524
|
/* @__PURE__ */ i("path", { d: "M13.75 2.75V7.5h4.75", fill: "none", stroke: "currentColor", strokeWidth: "1.4", strokeLinejoin: "round" }),
|
|
5506
5525
|
/* @__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 })
|
|
5507
5526
|
] }), zi = [
|
|
5508
5527
|
{ 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") },
|
|
5509
|
-
{ name: "MP3", tint: "#f78472", glyph:
|
|
5528
|
+
{ name: "MP3", tint: "#f78472", glyph: Bt("MP3") },
|
|
5510
5529
|
{ 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") },
|
|
5511
|
-
{ name: "Video", tint: "#55abe5", glyph: /* @__PURE__ */ g(
|
|
5530
|
+
{ name: "Video", tint: "#55abe5", glyph: /* @__PURE__ */ g(Ce, { children: [
|
|
5512
5531
|
/* @__PURE__ */ i("rect", { x: "3", y: "5.5", width: "13", height: "13", rx: "2.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
5513
5532
|
yt("M16 10.2 21 7v10l-5-3.2v-3.6Z")
|
|
5514
5533
|
] }) },
|
|
5515
5534
|
{ name: "Twitch", tint: "#a970ff", glyph: yt("M5 2.5 3 6.5v13h4.5V22H10l2.5-2.5h3.8L21 14.8V2.5H5Zm14 11.4-2.9 2.9h-4.3L9.4 19.2v-2.4H6V4.5h13v9.4ZM15.2 7.4h1.9v5.2h-1.9V7.4Zm-5 0h1.9v5.2h-1.9V7.4Z", "evenodd") },
|
|
5516
|
-
{ name: "WAV", tint: "#7ee0b4", glyph:
|
|
5517
|
-
{ name: "SoundCloud", tint: "#ff7a1a", glyph: /* @__PURE__ */ g(
|
|
5535
|
+
{ name: "WAV", tint: "#7ee0b4", glyph: Bt("WAV") },
|
|
5536
|
+
{ name: "SoundCloud", tint: "#ff7a1a", glyph: /* @__PURE__ */ g(Ce, { children: [
|
|
5518
5537
|
yt("M11 8.6a5 5 0 0 1 7.8 3.1 3 3 0 0 1-.3 6H11V8.6Z"),
|
|
5519
5538
|
/* @__PURE__ */ i("rect", { x: "8.6", y: "9.4", width: "1.3", height: "8.3", rx: ".65", fill: "currentColor" }),
|
|
5520
5539
|
/* @__PURE__ */ i("rect", { x: "6.2", y: "10.6", width: "1.3", height: "7.1", rx: ".65", fill: "currentColor" }),
|
|
5521
5540
|
/* @__PURE__ */ i("rect", { x: "3.8", y: "12.2", width: "1.3", height: "5.5", rx: ".65", fill: "currentColor" }),
|
|
5522
5541
|
/* @__PURE__ */ i("rect", { x: "1.4", y: "13.8", width: "1.3", height: "3.9", rx: ".65", fill: "currentColor" })
|
|
5523
5542
|
] }) },
|
|
5524
|
-
{ name: "MP4", tint: "#5b63d7", glyph:
|
|
5543
|
+
{ name: "MP4", tint: "#5b63d7", glyph: Bt("MP4") },
|
|
5525
5544
|
{ name: "TikTok", tint: "#25f4ee", glyph: yt("M16.6 2.5c.3 2.3 1.7 3.8 3.9 4v2.7a6.8 6.8 0 0 1-3.9-1.3v6.5a5.7 5.7 0 1 1-5.7-5.7l.9.1v2.8a2.9 2.9 0 1 0 2 2.8V2.5h2.8Z") },
|
|
5526
5545
|
{ name: "Audio", tint: "#f7c948", glyph: /* @__PURE__ */ i("g", { fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", children: /* @__PURE__ */ i("path", { d: "M3 10.5v3M6.5 7.5v9M10 4.5v15M13.5 8v8M17 6v12M20.5 10v4" }) }) },
|
|
5527
5546
|
{ name: "X", tint: "#e8eaf2", glyph: yt("M17.8 3h3.1l-6.7 7.7L22 21h-6.2l-4.8-6.3L5.5 21H2.4l7.2-8.2L2.1 3h6.3l4.4 5.8L17.8 3Zm-1.1 16.2h1.7L7.4 4.7H5.6l11.1 14.5Z") },
|
|
5528
|
-
{ name: "MOV", tint: "#55abe5", glyph:
|
|
5547
|
+
{ name: "MOV", tint: "#55abe5", glyph: Bt("MOV") },
|
|
5529
5548
|
{ name: "Facebook", tint: "#3b82f6", glyph: yt("M13.9 21.5v-8h2.7l.4-3.1h-3.1V8.4c0-.9.3-1.5 1.6-1.5H17V4.1c-.3 0-1.3-.1-2.4-.1-2.4 0-4 1.4-4 4.1v2.3H7.9v3.1h2.7v8h3.3Z") },
|
|
5530
5549
|
{ name: "Podcast", tint: "#c46bff", glyph: /* @__PURE__ */ g("g", { fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", children: [
|
|
5531
5550
|
/* @__PURE__ */ i("rect", { x: "9", y: "3", width: "6", height: "10.5", rx: "3" }),
|
|
@@ -5536,15 +5555,15 @@ const yt = (t, e = "nonzero") => /* @__PURE__ */ i("path", { d: t, fill: "curren
|
|
|
5536
5555
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "12", r: "4" }),
|
|
5537
5556
|
/* @__PURE__ */ i("circle", { cx: "17.2", cy: "6.8", r: ".9", fill: "currentColor", stroke: "none" })
|
|
5538
5557
|
] }) },
|
|
5539
|
-
{ name: "M4A", tint: "#f78472", glyph:
|
|
5558
|
+
{ name: "M4A", tint: "#f78472", glyph: Bt("M4A") },
|
|
5540
5559
|
{ name: "Dailymotion", tint: "#4aa3ff", glyph: yt("M14.6 3.5h3.2V20h-3v-1.2a5.4 5.4 0 0 1-3.6 1.4c-3.3 0-5.9-2.7-5.9-6.1S7.9 8 11.2 8c1.3 0 2.5.4 3.4 1.2V3.5Zm-3.1 7.4a3.2 3.2 0 1 0 0 6.4 3.2 3.2 0 0 0 0-6.4Z", "evenodd") },
|
|
5541
5560
|
{ name: "Radio", tint: "#7ee0b4", glyph: /* @__PURE__ */ g("g", { fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", children: [
|
|
5542
5561
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "12", r: "1.8", fill: "currentColor", stroke: "none" }),
|
|
5543
5562
|
/* @__PURE__ */ i("path", { d: "M8.5 15.5a5 5 0 0 1 0-7M15.5 8.5a5 5 0 0 1 0 7M5.6 18.4a9 9 0 0 1 0-12.8M18.4 5.6a9 9 0 0 1 0 12.8" })
|
|
5544
5563
|
] }) },
|
|
5545
|
-
{ name: "WEBM", tint: "#5b63d7", glyph:
|
|
5564
|
+
{ name: "WEBM", tint: "#5b63d7", glyph: Bt("WEBM") },
|
|
5546
5565
|
{ name: "Loom", tint: "#8f7bff", glyph: yt("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", "evenodd") },
|
|
5547
|
-
{ name: "FLAC", tint: "#f7c948", glyph:
|
|
5566
|
+
{ name: "FLAC", tint: "#f7c948", glyph: Bt("FLAC") },
|
|
5548
5567
|
{ name: "Live", tint: "#ff5a5a", glyph: /* @__PURE__ */ g("g", { fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", children: [
|
|
5549
5568
|
/* @__PURE__ */ i("rect", { x: "3", y: "6", width: "18", height: "12", rx: "3" }),
|
|
5550
5569
|
/* @__PURE__ */ i("circle", { cx: "8", cy: "12", r: "1.6", fill: "currentColor", stroke: "none" }),
|
|
@@ -5563,7 +5582,7 @@ function Su({ t }) {
|
|
|
5563
5582
|
] });
|
|
5564
5583
|
}
|
|
5565
5584
|
function Du() {
|
|
5566
|
-
const t =
|
|
5585
|
+
const t = z(null), [e, n] = j(!0), [r, s] = j(() => typeof document > "u" || !document.hidden);
|
|
5567
5586
|
return S(() => {
|
|
5568
5587
|
const a = () => s(!document.hidden);
|
|
5569
5588
|
document.addEventListener("visibilitychange", a);
|
|
@@ -5593,7 +5612,7 @@ function Lr(t) {
|
|
|
5593
5612
|
}
|
|
5594
5613
|
}
|
|
5595
5614
|
function Au(t, e) {
|
|
5596
|
-
const [n, r] =
|
|
5615
|
+
const [n, r] = j(!1), [s, a] = j(null), [o, l] = j(null), [c, u] = j(() => wu(t)), d = Ke((f) => {
|
|
5597
5616
|
if (n) return;
|
|
5598
5617
|
r(!0), l(null);
|
|
5599
5618
|
let p;
|
|
@@ -5616,16 +5635,16 @@ function Eu(t) {
|
|
|
5616
5635
|
function _u({ poster: t, src: e }) {
|
|
5617
5636
|
var s;
|
|
5618
5637
|
const n = e && ((s = Pn(e)) == null ? void 0 : s.id) === "youtube" ? na(e) : null, r = t ?? (n ? `https://i.ytimg.com/vi/${n}/hqdefault.jpg` : null);
|
|
5619
|
-
return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e && Eu(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__ */ g(
|
|
5638
|
+
return r ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${r})` } }) : e && Eu(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__ */ g(Ce, { children: [
|
|
5620
5639
|
/* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
|
|
5621
5640
|
/* @__PURE__ */ i(Du, {})
|
|
5622
5641
|
] });
|
|
5623
5642
|
}
|
|
5624
5643
|
const Yu = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
|
|
5625
5644
|
} };
|
|
5626
|
-
function
|
|
5627
|
-
const l = bu(t.prefs, t.set), c = fa(), u =
|
|
5628
|
-
|
|
5645
|
+
function Vn({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children: o }) {
|
|
5646
|
+
const l = bu(t.prefs, t.set), c = fa(), u = z(null), [d, M] = j(!1);
|
|
5647
|
+
Xt(() => {
|
|
5629
5648
|
var T;
|
|
5630
5649
|
const f = (T = u.current) == null ? void 0 : T.parentElement;
|
|
5631
5650
|
if (!f) return;
|
|
@@ -5644,7 +5663,7 @@ function Bn({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children:
|
|
|
5644
5663
|
] });
|
|
5645
5664
|
}
|
|
5646
5665
|
function ma({ connect: t, onClick: e, label: n }) {
|
|
5647
|
-
return /* @__PURE__ */ g(
|
|
5666
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
5648
5667
|
/* @__PURE__ */ g("button", { type: "button", className: "vsp-idle__connect", onClick: e, disabled: t.busy, children: [
|
|
5649
5668
|
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 }),
|
|
5650
5669
|
/* @__PURE__ */ i("span", { children: t.busy ? "Waiting for VocalStack…" : n })
|
|
@@ -5655,20 +5674,20 @@ function ma({ connect: t, onClick: e, label: n }) {
|
|
|
5655
5674
|
}
|
|
5656
5675
|
function Uu({ idle: t, src: e, ask: n, connect: r, page: s, poster: a = null, onClear: o }) {
|
|
5657
5676
|
const l = () => r.start(e, n);
|
|
5658
|
-
return /* @__PURE__ */ g(
|
|
5677
|
+
return /* @__PURE__ */ g(Vn, { idle: t, poster: a, src: e, title: Lr(e), page: s, onAct: l, children: [
|
|
5659
5678
|
/* @__PURE__ */ i(ma, { connect: r, onClick: l, label: r.connected ? "Play with VocalStack" : "Connect to VocalStack" }),
|
|
5660
5679
|
!r.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: r.connected ? `Plays ${Lr(e)} with subtitles and spoken translations.` : `Connect to play ${Lr(e)} with subtitles and spoken translations.` }),
|
|
5661
5680
|
o && !r.busy && /* @__PURE__ */ i("button", { type: "button", className: "vsp-idle__other", onClick: o, children: "Choose another video" })
|
|
5662
5681
|
] });
|
|
5663
5682
|
}
|
|
5664
5683
|
function Ru({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
5665
|
-
const [a, o] =
|
|
5684
|
+
const [a, o] = j(""), l = z(null), c = z(null), u = a.trim(), d = Ii.test(u), M = () => {
|
|
5666
5685
|
if (!d || e.busy) return;
|
|
5667
5686
|
const p = /^https?:\/\//i.test(u) ? u : `https://${u}`;
|
|
5668
5687
|
s(p), e.start(p, !1);
|
|
5669
5688
|
};
|
|
5670
5689
|
if (!e.connected)
|
|
5671
|
-
return /* @__PURE__ */ g(
|
|
5690
|
+
return /* @__PURE__ */ g(Vn, { idle: t, poster: r, src: null, title: "VocalStack", page: n, onAct: e.connect, children: [
|
|
5672
5691
|
/* @__PURE__ */ i(ma, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
|
|
5673
5692
|
!e.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "Connect your VocalStack account to watch any video with subtitles and spoken translations." })
|
|
5674
5693
|
] });
|
|
@@ -5682,7 +5701,7 @@ function Ru({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
|
5682
5701
|
const T = /^https?:\/\//i.test(y) ? y : `https://${y}`;
|
|
5683
5702
|
s(T), e.start(T, !1);
|
|
5684
5703
|
};
|
|
5685
|
-
return /* @__PURE__ */ g(
|
|
5704
|
+
return /* @__PURE__ */ g(Vn, { idle: t, poster: r, src: null, title: "VocalStack", page: n, onAct: h, children: [
|
|
5686
5705
|
/* @__PURE__ */ i("form", { className: "vsp-idle__form", onSubmit: (p) => {
|
|
5687
5706
|
p.preventDefault(), M();
|
|
5688
5707
|
}, children: /* @__PURE__ */ g("span", { className: "vsp-idle__field", children: [
|
|
@@ -5698,7 +5717,7 @@ function Ru({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
|
5698
5717
|
] });
|
|
5699
5718
|
}
|
|
5700
5719
|
function Pu({ idle: t, message: e, onRetry: n, page: r }) {
|
|
5701
|
-
return /* @__PURE__ */ g(
|
|
5720
|
+
return /* @__PURE__ */ g(Vn, { idle: t, poster: null, src: null, title: "VocalStack", page: r, onAct: n, children: [
|
|
5702
5721
|
/* @__PURE__ */ g("div", { className: "vsp-idle__err", role: "alert", children: [
|
|
5703
5722
|
/* @__PURE__ */ i(oe, { d: X.warn, size: 16, sw: 1.8 }),
|
|
5704
5723
|
e
|
|
@@ -5710,7 +5729,7 @@ function Pu({ idle: t, message: e, onRetry: n, page: r }) {
|
|
|
5710
5729
|
] });
|
|
5711
5730
|
}
|
|
5712
5731
|
function $u(t, e, n) {
|
|
5713
|
-
const [r, s] =
|
|
5732
|
+
const [r, s] = j(t && e ? void 0 : null);
|
|
5714
5733
|
return S(() => {
|
|
5715
5734
|
if (!t) {
|
|
5716
5735
|
s(null);
|
|
@@ -5737,7 +5756,7 @@ function $u(t, e, n) {
|
|
|
5737
5756
|
}, [t, e, n]), r;
|
|
5738
5757
|
}
|
|
5739
5758
|
const Qu = 100, bi = (t) => t == null ? null : t ? "on" : "off";
|
|
5740
|
-
function
|
|
5759
|
+
function Vu(t) {
|
|
5741
5760
|
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"));
|
|
5742
5761
|
return {
|
|
5743
5762
|
lang: (e == null ? void 0 : e.get("lang")) || n.lang || null,
|
|
@@ -5752,7 +5771,7 @@ function Bu(t) {
|
|
|
5752
5771
|
}
|
|
5753
5772
|
const nd = Ka(function(e, n) {
|
|
5754
5773
|
var K;
|
|
5755
|
-
const r =
|
|
5774
|
+
const r = z(null);
|
|
5756
5775
|
Ja(n, () => ({
|
|
5757
5776
|
seek: (L) => {
|
|
5758
5777
|
var ie;
|
|
@@ -5775,7 +5794,7 @@ const nd = Ka(function(e, n) {
|
|
|
5775
5794
|
return (L = r.current) == null ? void 0 : L.toggle();
|
|
5776
5795
|
}
|
|
5777
5796
|
}), []);
|
|
5778
|
-
const [s, a] =
|
|
5797
|
+
const [s, a] = j({ id: e.id ?? "", token: e.token });
|
|
5779
5798
|
S(() => {
|
|
5780
5799
|
a({ id: e.id ?? "", token: e.token });
|
|
5781
5800
|
}, [e.id, e.token, e.src]);
|
|
@@ -5783,37 +5802,37 @@ const nd = Ka(function(e, n) {
|
|
|
5783
5802
|
S(() => {
|
|
5784
5803
|
o != null && o.id && a({ id: o.id, token: e.token });
|
|
5785
5804
|
}, [o == null ? void 0 : o.id]);
|
|
5786
|
-
const [l, c] =
|
|
5805
|
+
const [l, c] = j(null), [u, d] = j(() => ({ ...Iu, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([, L]) => L !== void 0)) })), [M, h] = j({}), f = { prefs: u, set: (L) => {
|
|
5787
5806
|
d((ie) => ({ ...ie, ...L })), h((ie) => ({ ...ie, ...L }));
|
|
5788
5807
|
}, shareUrl: (K = e.shareUrl) == null ? void 0 : K.call(e, null) }, { muted: p, ...y } = M;
|
|
5789
5808
|
S(() => {
|
|
5790
5809
|
c(null);
|
|
5791
5810
|
}, [e.id, e.src]);
|
|
5792
|
-
const T = e.src ?? l, N = !s.id && !!T && (l != null || o !== void 0), m = !s.id && !e.src && !l, b = Ki({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: C, gone: D, error:
|
|
5811
|
+
const T = e.src ?? l, N = !s.id && !!T && (l != null || o !== void 0), m = !s.id && !e.src && !l, b = Ki({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: C, gone: D, error: V, reload: Y } = Yl(b, s.id), ee = Ul(b, (C == null ? void 0 : C.recording.id) ?? null), I = ze(() => El(b, ee), [b, ee]);
|
|
5793
5812
|
S(() => {
|
|
5794
5813
|
var L;
|
|
5795
5814
|
C && ((L = e.onSource) == null || L.call(e, C));
|
|
5796
5815
|
}, [C]), S(() => {
|
|
5797
5816
|
var L;
|
|
5798
|
-
|
|
5799
|
-
}, [
|
|
5800
|
-
const F = fa(e.desk), A = (e.layout ?? "embed") === "embed",
|
|
5801
|
-
return S(() => (ki(A ? te.current : null), () => ki(null)), [A]), /* @__PURE__ */ i(xl, { 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: m ? /* @__PURE__ */ i(Ru, { idle: f, connect: O, page: !A, poster: e.poster ?? null, onPick: c }) : N ? /* @__PURE__ */ i(Uu, { idle: f, src: T, ask: !l, connect: O, page: !A, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : s.id ?
|
|
5817
|
+
V && ((L = e.onError) == null || L.call(e, V));
|
|
5818
|
+
}, [V]);
|
|
5819
|
+
const F = fa(e.desk), A = (e.layout ?? "embed") === "embed", v = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), _ = Ke((L) => a({ id: L.transcriptionId, token: null, listen: { transcriptionId: L.transcriptionId, recordingId: L.recordingId, token: L.token } }), []), O = Au(v, _), te = z(null);
|
|
5820
|
+
return S(() => (ki(A ? te.current : null), () => ki(null)), [A]), /* @__PURE__ */ i(xl, { 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: m ? /* @__PURE__ */ i(Ru, { idle: f, connect: O, page: !A, poster: e.poster ?? null, onPick: c }) : N ? /* @__PURE__ */ i(Uu, { idle: f, src: T, ask: !l, connect: O, page: !A, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : s.id ? V && !C ? /* @__PURE__ */ i(Pu, { idle: f, message: V.message, onRetry: Y, page: !A }) : /* @__PURE__ */ i(Bu, { ...e, initial: { ...e.initial ?? {}, ...y }, startMuted: p === !0, handle: r, id: s.id, api: I, shared: C, gone: D, loadError: V, reread: Y, desk: F, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (L) => a({ id: L.transcriptionId, token: null, listen: { transcriptionId: L.transcriptionId, recordingId: L.recordingId, token: L.token } }) }, s.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
|
|
5802
5821
|
});
|
|
5803
|
-
function
|
|
5804
|
-
var js, zs, Is, bs, Os, Cs, xs, Ss, Ds, As, Es, _s, Ys, Us, Rs, Ps, $s, Qs,
|
|
5805
|
-
const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = ze(() =>
|
|
5822
|
+
function Bu(t) {
|
|
5823
|
+
var js, zs, Is, bs, Os, Cs, xs, Ss, Ds, As, Es, _s, Ys, Us, Rs, Ps, $s, Qs, Vs, Bs, Hs, Ws, Fs, Zs, Gs, qs, Ks, Js, Xs, ei, ti, ni, ri, si;
|
|
5824
|
+
const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = ze(() => Vu(t), []), u = (t.mode ?? "video") === "video", [d, M] = j(t.loadError);
|
|
5806
5825
|
S(() => {
|
|
5807
5826
|
t.loadError && M(t.loadError);
|
|
5808
5827
|
}, [t.loadError]);
|
|
5809
|
-
const [h, f] =
|
|
5828
|
+
const [h, f] = j("none"), [p, y] = j(!1), [T, N] = j(""), [m, b] = Hc(), [C, D] = j(null), [V, Y] = j(u ? "listen" : "read"), [ee, I] = j(!1), F = z(null), A = z(/* @__PURE__ */ new Map()), [v, _] = j("main"), O = (w) => {
|
|
5810
5829
|
const me = document.querySelector(".vs-sheet--settings"), Pe = me == null ? void 0 : me.parentElement;
|
|
5811
|
-
me && Pe &&
|
|
5830
|
+
me && Pe && v === "main" && w !== "main" && Pe.style.setProperty("--vs-sheet-top", `${Math.round(me.getBoundingClientRect().top - Pe.getBoundingClientRect().top)}px`), _(w);
|
|
5812
5831
|
};
|
|
5813
5832
|
S(() => {
|
|
5814
5833
|
ee || O("main");
|
|
5815
5834
|
}, [ee]);
|
|
5816
|
-
const [te, K] =
|
|
5835
|
+
const [te, K] = j(u), L = (n == null ? void 0 : n.recording) ?? null, ie = (L == null ? void 0 : L.id) ?? null, [ne, Z] = j(l.lang), J = typeof ne == "string" ? ne : null, [pe, le] = j(l.labels), [Te, je] = j(l.words), [Se, we] = j(l.cc), [ve, Ee] = j(l.translateAudio), [Re, De] = j(l.clonedVoices), [Q, H] = j(l.removeBackground), E = t.settings;
|
|
5817
5836
|
S(() => {
|
|
5818
5837
|
(E == null ? void 0 : E.lang) !== void 0 && Z(E.lang);
|
|
5819
5838
|
}, [E == null ? void 0 : E.lang]), S(() => {
|
|
@@ -5821,7 +5840,7 @@ function Vu(t) {
|
|
|
5821
5840
|
}, [E == null ? void 0 : E.speakerLabels]), S(() => {
|
|
5822
5841
|
(E == null ? void 0 : E.wordHighlight) !== void 0 && je(E.wordHighlight ? "on" : "off");
|
|
5823
5842
|
}, [E == null ? void 0 : E.wordHighlight]), S(() => {
|
|
5824
|
-
(E == null ? void 0 : E.subtitles) !== void 0 &&
|
|
5843
|
+
(E == null ? void 0 : E.subtitles) !== void 0 && we(E.subtitles);
|
|
5825
5844
|
}, [E == null ? void 0 : E.subtitles]), S(() => {
|
|
5826
5845
|
(E == null ? void 0 : E.translateAudio) !== void 0 && Ee(E.translateAudio);
|
|
5827
5846
|
}, [E == null ? void 0 : E.translateAudio]), S(() => {
|
|
@@ -5829,28 +5848,28 @@ function Vu(t) {
|
|
|
5829
5848
|
}, [E == null ? void 0 : E.voices]), S(() => {
|
|
5830
5849
|
(E == null ? void 0 : E.removeBackground) !== void 0 && H(E.removeBackground);
|
|
5831
5850
|
}, [E == null ? void 0 : E.removeBackground]);
|
|
5832
|
-
const x = { language: !0, subtitles: !0, audio: !0, export: !0, share: !0, fullscreen: !0, settings: !0, ...t.controls ?? {} },
|
|
5851
|
+
const x = { language: !0, subtitles: !0, audio: !0, export: !0, share: !0, fullscreen: !0, settings: !0, ...t.controls ?? {} }, B = u && !ve;
|
|
5833
5852
|
S(() => {
|
|
5834
5853
|
if (!t.syncUrl) return;
|
|
5835
|
-
const
|
|
5836
|
-
J ?
|
|
5837
|
-
}, [J, pe, Te, Se,
|
|
5854
|
+
const w = new URL(window.location.href);
|
|
5855
|
+
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"), ve ? w.searchParams.delete("audio") : w.searchParams.set("audio", "original"), Re ? w.searchParams.delete("voices") : w.searchParams.set("voices", "stock"), Xo(w, Q), w.href !== window.location.href && window.history.replaceState(window.history.state, "", w);
|
|
5856
|
+
}, [J, pe, Te, Se, ve, Re, Q]), S(() => {
|
|
5838
5857
|
n && !n.allowTranslate && J && Z(null);
|
|
5839
5858
|
}, [n, J]);
|
|
5840
5859
|
const { model: ce, error: W, clearError: ye, setLanguage: G, mergeTranslations: ke, translating: Ie, translateFailed: Fe, shownLang: Ae } = Ql(ie, {
|
|
5841
5860
|
lang: null,
|
|
5842
|
-
onFrame: (
|
|
5843
|
-
|
|
5861
|
+
onFrame: (w) => {
|
|
5862
|
+
w.type === "job.progress" && D({ 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 });
|
|
5844
5863
|
}
|
|
5845
|
-
}), he = ze(() => yl(ce).filter((
|
|
5864
|
+
}), he = ze(() => yl(ce).filter((w) => !w.suppressed), [ce]), _e = Vl((n == null ? void 0 : n.job) ?? null), Ve = ["done", "failed", "stopped"].includes(Tr((_e == null ? void 0 : _e.state) ?? ((js = n == null ? void 0 : n.job) == null ? void 0 : js.state))), $ = Ve ? _e : C ?? _e, Me = !!C && !["done", "failed", "stopped"].includes(Tr(C.state)), ue = z(0);
|
|
5846
5865
|
S(() => {
|
|
5847
|
-
!
|
|
5848
|
-
}, [
|
|
5849
|
-
const ae = Tr(($ == null ? void 0 : $.state) ?? ((zs = n == null ? void 0 : n.job) == null ? void 0 : zs.state) ?? (e.listen ? (L == null ? void 0 : L.state) === "finalized" ? "done" : L != null && L.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 = Hl(n == null ? void 0 : n.job, $) ?? (L == null ? void 0 : L.mediaDurationS) ?? null, q = ((Is = ce.segments.values().next().value) == null ? void 0 : Is.language) ?? (L == null ? void 0 : L.spokenLanguage) ?? null, se = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", de = ((Cs = (Os = (bs = n == null ? void 0 : n.job) == null ? void 0 : bs.source) == null ? void 0 : Os.name) == null ? void 0 : Cs.trim()) || null,
|
|
5866
|
+
!Ve || !Me || Date.now() - ue.current < 1e4 || (ue.current = Date.now(), t.reread());
|
|
5867
|
+
}, [Ve, Me, C == null ? void 0 : C.state, C == null ? void 0 : C.processedS, o]);
|
|
5868
|
+
const ae = Tr(($ == null ? void 0 : $.state) ?? ((zs = n == null ? void 0 : n.job) == null ? void 0 : zs.state) ?? (e.listen ? (L == null ? void 0 : L.state) === "finalized" ? "done" : L != null && L.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 = Hl(n == null ? void 0 : n.job, $) ?? (L == null ? void 0 : L.mediaDurationS) ?? null, q = ((Is = ce.segments.values().next().value) == null ? void 0 : Is.language) ?? (L == null ? void 0 : L.spokenLanguage) ?? null, se = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", de = ((Cs = (Os = (bs = n == null ? void 0 : n.job) == null ? void 0 : bs.source) == null ? void 0 : Os.name) == null ? void 0 : Cs.trim()) || null, be = n ? ((xs = n.name) == null ? void 0 : xs.trim()) || de : null, Ne = !!((Ss = n == null ? void 0 : n.job) != null && Ss.hasAudio), Le = (Ds = n == null ? void 0 : n.job) == null ? void 0 : Ds.source, Oe = !Ne && !!Le && (Le.kind !== "url" || Le.bytes != null) && (ae === "transcribing" || ae === "queued" || ae === "done"), He = ie && (n != null && n.allowDownload) && Ne ? fo(e.origin, ie, e.cred) : null, $e = !!Le && (Le.kind !== "url" || Le.bytes != null), ut = Hu(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 ? ((As = pt.words[pt.words.length - 1]) == null ? void 0 : As.end) ?? pt.start : 0, rt = u && fe ? Math.max(Ge, ($ == null ? void 0 : $.processedS) ?? 0) : null, Mt = Kc(it, (Ne || Oe) && !!(n != null && n.allowDownload), he, R, Oe ? ((_s = (Es = n == null ? void 0 : n.job) == null ? void 0 : Es.crop) == null ? void 0 : _s.startS) ?? 0 : 0, rt), st = _o((Ys = n == null ? void 0 : n.job) == null ? void 0 : Ys.source), Be = st && ((Us = Pn(st)) == null ? void 0 : Us.id) === "youtube" ? na(st) : null, Mn = Bo(Be), At = qc(he, R, ((Ps = (Rs = n == null ? void 0 : n.job) == null ? void 0 : Rs.crop) == null ? void 0 : Ps.startS) ?? 0, rt), Je = !!Be, lt = Je ? At.player : Mt, at = Ji(), tn = z(null), re = nu({ 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 ? tu : void 0, hearOriginal: B, timed: !!Be, stockVoices: u && !Re, stickyPicker: u, pickerBusy: tn.current }), gn = z(null);
|
|
5850
5869
|
S(() => {
|
|
5851
5870
|
!ie || gn.current === J || (gn.current = J, G(J));
|
|
5852
5871
|
}, [J, ie]);
|
|
5853
|
-
const
|
|
5872
|
+
const k = Je ? At.player : re.on ? re.player : lt;
|
|
5854
5873
|
S(() => {
|
|
5855
5874
|
if (Je) {
|
|
5856
5875
|
re.player.pause();
|
|
@@ -5858,18 +5877,18 @@ function Vu(t) {
|
|
|
5858
5877
|
}
|
|
5859
5878
|
(re.on ? lt : re.player).pause();
|
|
5860
5879
|
}, [re.on, Je]);
|
|
5861
|
-
const Wn = ze(() => he.filter((
|
|
5880
|
+
const Wn = ze(() => he.filter((w) => w.sentenceId != null).map((w, me, Pe) => {
|
|
5862
5881
|
var We;
|
|
5863
|
-
return { sid:
|
|
5864
|
-
}), [he]), Et = hl({ on: Je && re.on, lines: Wn, clips: re.clips, t:
|
|
5882
|
+
return { sid: w.sentenceId, start: w.start, end: ((We = Pe[me + 1]) == null ? void 0 : We.start) ?? Ht(w, w.start, w.start + 4) };
|
|
5883
|
+
}), [he]), Et = hl({ on: Je && re.on, lines: Wn, clips: re.clips, t: k.t, playing: k.playing, muted: k.muted }), _t = !!J && (Ie || re.relang || re.on && Et.missing != null);
|
|
5865
5884
|
tn.current = _t ? J : null, S(() => {
|
|
5866
5885
|
Je && re.on && Et.sid != null && re.setNear(Et.sid);
|
|
5867
5886
|
}, [Et.sid, Je, re.on]), Gc([lt, re.player], re.sampling);
|
|
5868
|
-
const Yt =
|
|
5887
|
+
const Yt = z(null);
|
|
5869
5888
|
S(() => {
|
|
5870
|
-
fe && !
|
|
5889
|
+
fe && !k.playing && Yt.current && (Yt.current.scrollTop = Yt.current.scrollHeight);
|
|
5871
5890
|
}, [fe, he.length]);
|
|
5872
|
-
const
|
|
5891
|
+
const Zt = iu(Yt, he, p, T, y), fn = /* @__PURE__ */ i(su, { open: p, q: T, onQ: N, onClose: () => y(!1), hits: Zt, desk: s, inline: s }), qe = Wo({ name: n == null ? void 0 : n.name, sourceName: (Qs = ($s = n == null ? void 0 : n.job) == null ? void 0 : $s.source) == null ? void 0 : Qs.name, ytTitle: Mn, url: ((Bs = (Vs = n == null ? void 0 : n.job) == null ? void 0 : Vs.source) == null ? void 0 : Bs.kind) === "url" ? n.job.source.url : t.src ?? null, id: o }), ot = !!(n != null && n.allowDownload), nn = !!(n != null && n.allowExport), mt = re.readLang, gt = mt ? ((Hs = at == null ? void 0 : at.languages.find((w) => w.code === mt)) == null ? void 0 : Hs.name) ?? mt.toUpperCase() : null, Gt = async () => {
|
|
5873
5892
|
if (ie)
|
|
5874
5893
|
try {
|
|
5875
5894
|
if (mt && re.canSpeak) {
|
|
@@ -5880,211 +5899,211 @@ function Vu(t) {
|
|
|
5880
5899
|
b(`Preparing ${qe} as MP3 — the download starts when it is ready.`), await Wl(xn(e.origin, ie, "delivery", e.cred)), b(`Downloading ${qe}.`);
|
|
5881
5900
|
return;
|
|
5882
5901
|
}
|
|
5883
|
-
|
|
5884
|
-
} catch (
|
|
5885
|
-
throw M(
|
|
5902
|
+
Br(xn(e.origin, ie, "source", e.cred)), b(`Downloading ${qe} — the full audio, since the transcript is still being written.`);
|
|
5903
|
+
} catch (w) {
|
|
5904
|
+
throw M(bt(w)), w;
|
|
5886
5905
|
}
|
|
5887
|
-
}, dt = (
|
|
5906
|
+
}, dt = (w) => {
|
|
5888
5907
|
if (!ie) return;
|
|
5889
|
-
const me = Sr.find((We) => We.key ===
|
|
5890
|
-
return Fl(e, ie,
|
|
5891
|
-
throw M(
|
|
5908
|
+
const me = Sr.find((We) => We.key === w).name, Pe = gt ? ` in ${gt}` : "";
|
|
5909
|
+
return Fl(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) => {
|
|
5910
|
+
throw M(bt(We)), We;
|
|
5892
5911
|
});
|
|
5893
|
-
}, rn = fe ? "MORE TO COME…" : "END OF TRANSCRIPT", ct = fe ? "var(--brand)" : "var(--ink-28)", sn =
|
|
5894
|
-
Ze.current =
|
|
5895
|
-
const Ut = `${J ?? ""}|${re.on ? "voice" : "source"}`,
|
|
5912
|
+
}, rn = fe ? "MORE TO COME…" : "END OF TRANSCRIPT", ct = fe ? "var(--brand)" : "var(--ink-28)", sn = Bl($, he.length), Ot = k.has && (!re.relang || !!Be), Ze = z(k);
|
|
5913
|
+
Ze.current = k;
|
|
5914
|
+
const Ut = `${J ?? ""}|${re.on ? "voice" : "source"}`, vt = z({ key: Ut, idx: 0, t: 0, playing: !1, until: 0 });
|
|
5896
5915
|
S(() => {
|
|
5897
|
-
const
|
|
5898
|
-
if (
|
|
5899
|
-
if (!
|
|
5900
|
-
|
|
5916
|
+
const w = vt.current;
|
|
5917
|
+
if (w.key !== Ut && (w.key = Ut, w.until = Date.now() + 15e3), !Je) {
|
|
5918
|
+
if (!w.until) {
|
|
5919
|
+
w.idx = k.idx, w.t = k.t, w.playing = k.playing;
|
|
5901
5920
|
return;
|
|
5902
5921
|
}
|
|
5903
|
-
if (Date.now() >
|
|
5904
|
-
|
|
5922
|
+
if (Date.now() > w.until) {
|
|
5923
|
+
w.until = 0;
|
|
5905
5924
|
return;
|
|
5906
5925
|
}
|
|
5907
|
-
!
|
|
5926
|
+
!k.has || re.relang || (w.until = 0, Math.abs(k.t - w.t) > 0.5 && (k.seekFrac && k.dur > 0 ? k.seekFrac(w.t / k.dur) : k.seekRow(w.idx)), w.playing && !k.playing && V === "listen" && (et.current = !0, k.toggle()));
|
|
5908
5927
|
}
|
|
5909
5928
|
});
|
|
5910
|
-
const Rt =
|
|
5929
|
+
const Rt = z(!1), et = z(!1);
|
|
5911
5930
|
u && (Ei.video = !0);
|
|
5912
|
-
const [pn,
|
|
5931
|
+
const [pn, Ct] = j(!1), [Fn, Zn] = j(!1);
|
|
5913
5932
|
S(() => {
|
|
5914
|
-
if (!u || Rt.current || !
|
|
5933
|
+
if (!u || Rt.current || !Ot || !te || Ye || t.autoplay === !1) return;
|
|
5915
5934
|
Rt.current = !0;
|
|
5916
|
-
const
|
|
5917
|
-
Ze.current.playing || et.current || (Ze.current.toggle(), We > 0 && setTimeout(() =>
|
|
5935
|
+
const w = (We) => {
|
|
5936
|
+
Ze.current.playing || et.current || (Ze.current.toggle(), We > 0 && setTimeout(() => w(We - 1), 1500));
|
|
5918
5937
|
}, me = () => {
|
|
5919
|
-
Ze.current.muted || Ze.current.toggleMute(),
|
|
5938
|
+
Ze.current.muted || Ze.current.toggleMute(), Ct(!0), w(3);
|
|
5920
5939
|
}, Pe = Ze.current;
|
|
5921
5940
|
if (!Pe.autoplay || t.startMuted) {
|
|
5922
5941
|
me();
|
|
5923
5942
|
return;
|
|
5924
5943
|
}
|
|
5925
5944
|
Pe.autoplay().then((We) => {
|
|
5926
|
-
We === !1 ?
|
|
5945
|
+
We === !1 ? Ct(!0) : We == null && !et.current && me();
|
|
5927
5946
|
});
|
|
5928
|
-
}, [u,
|
|
5929
|
-
const
|
|
5930
|
-
pn && (
|
|
5931
|
-
|
|
5947
|
+
}, [u, Ot, te, Ye]);
|
|
5948
|
+
const xt = z(!1), Gn = () => {
|
|
5949
|
+
pn && (Ct(!1), xt.current = !0, setTimeout(() => {
|
|
5950
|
+
xt.current = !1;
|
|
5932
5951
|
}, 500), Ze.current.muted && Ze.current.toggleMute());
|
|
5933
5952
|
}, mn = () => {
|
|
5934
|
-
if (
|
|
5935
|
-
|
|
5953
|
+
if (xt.current) {
|
|
5954
|
+
xt.current = !1;
|
|
5936
5955
|
return;
|
|
5937
5956
|
}
|
|
5938
|
-
|
|
5939
|
-
},
|
|
5940
|
-
if (
|
|
5941
|
-
|
|
5957
|
+
Ct(!1), Ze.current.toggleMute();
|
|
5958
|
+
}, wt = () => {
|
|
5959
|
+
if (xt.current) {
|
|
5960
|
+
xt.current = !1;
|
|
5942
5961
|
return;
|
|
5943
5962
|
}
|
|
5944
5963
|
et.current = !0, Ze.current.toggle();
|
|
5945
|
-
}, Nn = (
|
|
5964
|
+
}, Nn = (w) => /* @__PURE__ */ i(Bc, { player: k, size: w }), an = !!ie && !fe, [P, xe] = j(!1);
|
|
5946
5965
|
S(() => {
|
|
5947
5966
|
if (!Ie) {
|
|
5948
5967
|
xe(!1);
|
|
5949
5968
|
return;
|
|
5950
5969
|
}
|
|
5951
|
-
const
|
|
5952
|
-
return () => clearTimeout(
|
|
5970
|
+
const w = setTimeout(() => xe(!0), 180);
|
|
5971
|
+
return () => clearTimeout(w);
|
|
5953
5972
|
}, [Ie]);
|
|
5954
|
-
const Qe = P ? Ae : J, St = ac(ie, J, he, ke), Pt = wc(
|
|
5955
|
-
lt.pause(), re.player.pause(), Y(
|
|
5973
|
+
const Qe = P ? Ae : J, St = ac(ie, J, he, ke), Pt = vc(wc(L), ie, re.readLang), Na = ot || nn, ya = (((Fs = (Ws = n == null ? void 0 : n.job) == null ? void 0 : Ws.crop) == null ? void 0 : Fs.startS) ?? 0) + Vt(k, he), Lt = V === "listen", $t = Lt && (!!Be || u), Ta = (w) => {
|
|
5974
|
+
lt.pause(), re.player.pause(), Y(w), w === "read" && te && (cn(!1), K(!1));
|
|
5956
5975
|
};
|
|
5957
5976
|
S(() => {
|
|
5958
|
-
|
|
5959
|
-
}, [
|
|
5960
|
-
const Ue = re.barChip,
|
|
5961
|
-
|
|
5962
|
-
|
|
5963
|
-
] }),
|
|
5977
|
+
Lt || (lt.playing && lt.pause(), re.player.playing && re.player.pause());
|
|
5978
|
+
}, [Lt, lt.playing, re.player.playing]);
|
|
5979
|
+
const Ue = re.barChip, qt = ea(Ue.label), Zr = /* @__PURE__ */ i(kr, { value: V, onChange: Ta, bordered: !1, options: Nu(qt, !!Be) }), Kt = [...an ? [{ key: "summary", label: "Summary" }] : [], ...Na ? [{ key: "export", label: "Export" }] : []], Gr = (w) => /* @__PURE__ */ g(Ce, { children: [
|
|
5980
|
+
w === "summary" && an && /* @__PURE__ */ i(Lc, { s: Pt }),
|
|
5981
|
+
w === "export" && /* @__PURE__ */ i(Tc, { audio: ot ? { name: qe, meta: mt && re.canSpeak || Ne ? `MP3${R ? ` · ${zt(R)}` : ""}` : "ORIGINAL AUDIO", onClick: Gt } : null, formats: nn, onExport: dt })
|
|
5982
|
+
] }), va = (w) => /* @__PURE__ */ i(nc, { index: k.idx, total: Math.max(1, he.length), frac: k.dur > 0 ? Math.min(1, k.t / k.dur) : 0, glideMs: k.wordSync ? 0 : 220, atLabel: zt(k.t), durLabel: zt(k.dur), stepLabel: w ? `${k.idx + 1} / ${he.length}` : "", onSeek: re.relang ? Xc : k.seekRow, onSeekFrac: re.relang ? void 0 : k.seekFrac, onScrubStart: k.hold, onScrubEnd: k.release }), qr = {
|
|
5964
5983
|
live: !1,
|
|
5965
5984
|
atEdge: !1,
|
|
5966
5985
|
edgeFrac: null,
|
|
5967
|
-
readyFrac: rt != null &&
|
|
5968
|
-
pct:
|
|
5969
|
-
atLabel:
|
|
5970
|
-
labelAt: (
|
|
5971
|
-
endLabel:
|
|
5972
|
-
onSeek: (
|
|
5986
|
+
readyFrac: rt != null && k.dur > 0 ? Math.min(1, rt / k.dur) : null,
|
|
5987
|
+
pct: k.dur > 0 ? Math.min(100, Math.round(k.t / k.dur * 1e3) / 10) : 0,
|
|
5988
|
+
atLabel: zt(k.t),
|
|
5989
|
+
labelAt: (w) => zt(w * k.dur),
|
|
5990
|
+
endLabel: zt(k.dur),
|
|
5991
|
+
onSeek: (w) => {
|
|
5973
5992
|
var me;
|
|
5974
|
-
re.relang || (me =
|
|
5993
|
+
re.relang || (me = k.seekFrac) == null || me.call(k, w);
|
|
5975
5994
|
}
|
|
5976
|
-
}, [
|
|
5995
|
+
}, [wa, La] = oa(re.on && !!k.preparing && k.playing, 1500), qn = re.on && ((Zs = k.error) == null ? void 0 : Zs.code) === "voice_not_started", Kn = re.canSpeak && !re.error && !qn, yn = J ? ((Gs = at == null ? void 0 : at.languages.find((w) => w.code === J)) == null ? void 0 : Gs.name) ?? Ue.label : "", tt = te ? Uc({ lang: J, langName: yn, translating: Ie && !!J, translateFailed: Fe, voiceFailed: qn, relang: re.relang, starting: re.on ? k.starting : null, slowLine: wa, lineSince: La }) : null, Jn = !!Be && !!tt && (tt.kind === "translating" || tt.kind === "voice" && re.relang), Kr = !Jn || !tt ? null : tt.kind === "translating" ? `Translating into ${yn || "the new language"}…` : `Preparing the ${yn || "translated"} voice…`, kt = !Jn && ((tt == null ? void 0 : tt.kind) === "voice" || (tt == null ? void 0 : tt.kind) === "starting"), Jr = Rr({ ...re.langList, keepOpen: !0, open: v === "lang", onClose: () => O("main") }), Xr = Ko(Q, re.on), ka = u && Xr.bed && ot && ie && (!fe || it) ? ai(e.origin, ie, e.cred) : null, es = al(ka, { t: Vt(k, he), playing: k.playing && !kt && !(k.timed && k.preparing), muted: k.muted }), ja = u && Xr.speech && ot && ie && (!fe || it) ? ai(e.origin, ie, e.cred, "speech") : null, Xn = Wi(ja, { t: Vt(k, he), playing: !re.on && k.playing, muted: k.muted }), er = !re.on && Xn.on;
|
|
5977
5996
|
S(() => {
|
|
5978
|
-
var
|
|
5979
|
-
At.setVideoSound(!(Je && (re.on || er))), (
|
|
5997
|
+
var w;
|
|
5998
|
+
At.setVideoSound(!(Je && (re.on || er))), (w = Mt.silence) == null || w.call(Mt, !Je && er);
|
|
5980
5999
|
}, [Je, re.on, er, it]);
|
|
5981
|
-
const tr = ot ? re.on ? es : Xn.state : "unavailable", nr =
|
|
6000
|
+
const tr = ot ? re.on ? es : Xn.state : "unavailable", nr = ve && Kn && !!J, za = nr ? [`Translated${re.hasClone ? Re ? ", cloned voices" : ", synthetic voices" : ""}`, !Q && ot && es !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : Q && tr !== "unavailable" ? "Original speech, background removed" : "Original sound", Ia = () => {
|
|
5982
6001
|
if ((tt == null ? void 0 : tt.kind) === "translateFailed") {
|
|
5983
6002
|
G(J);
|
|
5984
6003
|
return;
|
|
5985
6004
|
}
|
|
5986
|
-
et.current = !0,
|
|
6005
|
+
et.current = !0, k.toggle();
|
|
5987
6006
|
}, ba = () => {
|
|
5988
|
-
const
|
|
5989
|
-
|
|
5990
|
-
}, ts = { prevOn:
|
|
5991
|
-
et.current = !0,
|
|
5992
|
-
}, busy: re.relang && !
|
|
5993
|
-
fl(
|
|
5994
|
-
et.current = !0,
|
|
5995
|
-
}, next:
|
|
5996
|
-
const rr = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, sr = (
|
|
6007
|
+
const w = k.idx;
|
|
6008
|
+
k.pause(), Z(null), et.current = !0, lt.playRow(w);
|
|
6009
|
+
}, ts = { prevOn: k.idx > 0, nextOn: k.idx < he.length - 1, onPrev: k.prev, onNext: k.next, playing: k.playing, playable: Ot, playTitle: re.playTitle ?? (k.playing ? "Pause" : "Play"), onPlay: () => {
|
|
6010
|
+
et.current = !0, k.toggle();
|
|
6011
|
+
}, busy: re.relang && !Be || kt };
|
|
6012
|
+
fl(Ot && Lt ? { playing: k.playing, toggle: () => {
|
|
6013
|
+
et.current = !0, k.toggle();
|
|
6014
|
+
}, next: k.next, prev: k.prev } : null, be);
|
|
6015
|
+
const rr = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, sr = (w, me) => !Ue.can || !x.language ? null : u ? /* @__PURE__ */ g("button", { type: "button", className: "gfull__btn", title: _t ? `${Ue.label ?? Ue.code}: still being prepared` : Ue.label ?? Ue.code, "aria-label": `Language: ${Ue.label ?? Ue.code}`, "aria-busy": _t || void 0, onClick: () => {
|
|
5997
6016
|
I(!1), Ue.onClick();
|
|
5998
6017
|
}, style: { position: "relative" }, children: [
|
|
5999
6018
|
/* @__PURE__ */ i("span", { style: { fontSize: me === "sm" ? 17 : 21, lineHeight: 1 }, children: Ue.flag }),
|
|
6000
6019
|
_t && /* @__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)" }) })
|
|
6001
|
-
] }) : /* @__PURE__ */ i(Rn, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, size: me, onClick: Ue.onClick, style:
|
|
6002
|
-
}, busy: re.voiceWaiting ||
|
|
6020
|
+
] }) : /* @__PURE__ */ i(Rn, { flag: Ue.flag, code: Ue.code, label: Ue.label, bordered: !1, size: me, onClick: Ue.onClick, style: w }), ns = { on: !1, title: "Voices", onClick: () => {
|
|
6021
|
+
}, busy: re.voiceWaiting || kt }, [Oa, Ca] = j(!1);
|
|
6003
6022
|
S(() => {
|
|
6004
|
-
|
|
6005
|
-
}, [
|
|
6006
|
-
const xa = !
|
|
6007
|
-
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick:
|
|
6008
|
-
/* @__PURE__ */ i("div", { className: `txyt__paused${
|
|
6009
|
-
] }) : null, ss =
|
|
6010
|
-
/* @__PURE__ */ i($c, { ytId:
|
|
6023
|
+
k.t > 0.3 && Ca(!0);
|
|
6024
|
+
}, [k.t]);
|
|
6025
|
+
const xa = !Be && u && ie && (n != null && n.allowDownload) && !fe && ((qs = n == null ? void 0 : n.job) == null ? void 0 : qs.hasVideo) !== !1 ? /* @__PURE__ */ i(li, { src: xn(e.origin, ie, "video", e.cred), t: Vt(k, he), playing: k.playing && !kt, seekN: k.seekN, onToggle: k.has ? wt : void 0 }, ie) : null, Qt = !Be && u && st && Ao(st) ? st : null, Tn = Qt ? Bi(Qt) : null, rs = ze(() => Tn ? Vo(Tn) : void 0, [Tn]), ir = Qt && ((Ks = Pn(Qt)) == null ? void 0 : Ks.id) === "facebook" ? Qt : null, Sa = ir ? /* @__PURE__ */ i(Po, { url: ir, t: Vt(k, he) + (((Xs = (Js = n == null ? void 0 : n.job) == null ? void 0 : Js.crop) == null ? void 0 : Xs.startS) ?? 0), playing: k.playing && !kt, seekN: k.seekN, onToggle: k.has ? wt : void 0 }, ir) : rs ? /* @__PURE__ */ i(li, { setup: rs, seekOver: 1, t: Vt(k, he) + (((ti = (ei = n == null ? void 0 : n.job) == null ? void 0 : ei.crop) == null ? void 0 : ti.startS) ?? 0), playing: k.playing && !kt, seekN: k.seekN, onToggle: k.has ? wt : void 0 }, Tn) : Qt ? /* @__PURE__ */ i(Yo, { url: Qt, t: Vt(k, he) + (((ri = (ni = n == null ? void 0 : n.job) == null ? void 0 : ni.crop) == null ? void 0 : ri.startS) ?? 0), playing: k.playing && !kt, seekN: k.seekN, title: qe, onToggle: k.has ? wt : void 0 }) : null, Da = k.has ? /* @__PURE__ */ g("div", { className: "txyt vsp-follow", children: [
|
|
6026
|
+
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: wt, style: { cursor: "pointer" } }),
|
|
6027
|
+
/* @__PURE__ */ i("div", { className: `txyt__paused${k.playing ? "" : " txyt__paused--on"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(Wt, { size: 44 }) }) })
|
|
6028
|
+
] }) : null, ss = Be ? /* @__PURE__ */ g(Ce, { children: [
|
|
6029
|
+
/* @__PURE__ */ i($c, { ytId: Be, title: qe, t: ya, playing: k.playing && !kt, waiting: re.on && !!k.timed && !!k.preparing, seekN: k.seekN, onTime: (w) => {
|
|
6011
6030
|
var me, Pe, We;
|
|
6012
|
-
return (We =
|
|
6013
|
-
}, onToggle:
|
|
6031
|
+
return (We = k.videoAt) == null ? void 0 : We.call(k, w - (((Pe = (me = n == null ? void 0 : n.job) == null ? void 0 : me.crop) == null ? void 0 : Pe.startS) ?? 0));
|
|
6032
|
+
}, onToggle: k.has ? wt : void 0, onAd: Zn, lead: Je ? At.lead : void 0 }),
|
|
6014
6033
|
/* @__PURE__ */ g("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity: Oa ? 0 : 1 }, children: [
|
|
6015
|
-
/* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${
|
|
6016
|
-
/* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(
|
|
6034
|
+
/* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Be}/hqdefault.jpg)` } }),
|
|
6035
|
+
/* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(Wt, { size: 44 }) })
|
|
6017
6036
|
] })
|
|
6018
|
-
] }) : u ? /* @__PURE__ */ g(
|
|
6037
|
+
] }) : u ? /* @__PURE__ */ g(Ce, { children: [
|
|
6019
6038
|
/* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }),
|
|
6020
6039
|
Da,
|
|
6021
6040
|
Sa,
|
|
6022
6041
|
xa
|
|
6023
|
-
] }) : null, is = $t &&
|
|
6042
|
+
] }) : null, is = $t && Be && !te ? /* @__PURE__ */ i(kc, { ytId: Be, title: qe, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: ss, children: /* @__PURE__ */ i(gu, { pos: qr, transport: ts, chip: sr({ ...rr, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: ns, onFull: () => {
|
|
6024
6043
|
cn(!0), K(!0);
|
|
6025
|
-
}, copied: null }) }) : null, Xe =
|
|
6026
|
-
for (const
|
|
6027
|
-
const as = (
|
|
6028
|
-
Xe && ar(Xe,
|
|
6029
|
-
const os = Xe &&
|
|
6044
|
+
}, copied: null }) }) : null, Xe = k.wordSync ? Kl(he, k.idx, k.t) ? he[k.idx] : void 0 : he[k.idx];
|
|
6045
|
+
for (const w of he) for (const [me, Pe] of Object.entries(w.translations)) Pe && A.current.set(`${w.sentenceId ?? w.start}|${me}`, Pe);
|
|
6046
|
+
const as = (w, me) => w.translations[me] || A.current.get(`${w.sentenceId ?? w.start}|${me}`) || null, ar = (w, me) => !w || !me || w.language === me || !!as(w, me), jt = ar(Xe, J) ? J : ar(Xe, F.current) ? F.current : J;
|
|
6047
|
+
Xe && ar(Xe, jt) && (F.current = jt);
|
|
6048
|
+
const os = Xe && jt && Xe.language !== jt ? as(Xe, jt) : null, Aa = Xe && os && jt && !Xe.translations[jt] ? Object.assign([...he], { [k.idx]: { ...Xe, translations: { ...Xe.translations, [jt]: os } } }) : he, vn = Xe ? la(Aa, k.idx, jt) : [], wn = Te ? Te === "on" : !u || re.on || !Qe || Qe === q, ls = wn ? wi(k, k.idx, vn) : null, cs = vn.map((w, me) => ({ t: w.text, sp: me < vn.length - 1 ? " " : "", dim: ls != null && me > ls })), Ln = pe ? pe === "on" : u ? !1 : Ol(ce, he, L == null ? void 0 : L.settings), us = { lang: J, subtitles: Se, speakerLabels: Ln, wordHighlight: wn, translateAudio: ve, voices: Re ? "cloned" : "synthetic", removeBackground: Q }, Ea = JSON.stringify(us), kn = z(t.onSettingsChange);
|
|
6030
6049
|
kn.current = t.onSettingsChange, S(() => {
|
|
6031
|
-
var
|
|
6032
|
-
(
|
|
6050
|
+
var w;
|
|
6051
|
+
(w = kn.current) == null || w.call(kn, us);
|
|
6033
6052
|
}, [Ea]);
|
|
6034
|
-
const jn = Xe && Xe.speaker >= 0 && Ln ? Qr(ce, Xe.speaker) : null, [_a, ds] =
|
|
6053
|
+
const jn = Xe && Xe.speaker >= 0 && Ln ? Qr(ce, Xe.speaker) : null, [_a, ds] = j(!1), [or, hs] = j(null), [Ya, Ms] = j(null), lr = z(void 0);
|
|
6035
6054
|
S(() => () => window.clearTimeout(lr.current), []);
|
|
6036
|
-
const cr =
|
|
6055
|
+
const cr = z(void 0);
|
|
6037
6056
|
S(() => () => window.clearTimeout(cr.current), []);
|
|
6038
|
-
const gs = (
|
|
6039
|
-
if (t.shareUrl) return t.shareUrl(
|
|
6057
|
+
const gs = (w) => {
|
|
6058
|
+
if (t.shareUrl) return t.shareUrl(w);
|
|
6040
6059
|
const me = new URL(window.location.href);
|
|
6041
|
-
return
|
|
6042
|
-
}, zn =
|
|
6043
|
-
if (
|
|
6044
|
-
|
|
6060
|
+
return w != null && w > 0 ? me.searchParams.set("t", String(w)) : me.searchParams.delete("t"), me.href;
|
|
6061
|
+
}, zn = z(l.startAt), ur = (w) => {
|
|
6062
|
+
if (k.seekFrac && k.dur > 0) {
|
|
6063
|
+
k.seekFrac(Math.min(1, w / k.dur));
|
|
6045
6064
|
return;
|
|
6046
6065
|
}
|
|
6047
6066
|
let me = 0;
|
|
6048
|
-
for (let Pe = 0; Pe < he.length; Pe++) he[Pe].start <=
|
|
6049
|
-
|
|
6050
|
-
}, fs =
|
|
6067
|
+
for (let Pe = 0; Pe < he.length; Pe++) he[Pe].start <= w && (me = Pe);
|
|
6068
|
+
k.seekRow(me);
|
|
6069
|
+
}, fs = z(!1);
|
|
6051
6070
|
S(() => {
|
|
6052
|
-
const
|
|
6053
|
-
|
|
6054
|
-
}, [
|
|
6055
|
-
const
|
|
6056
|
-
|
|
6057
|
-
}, [
|
|
6058
|
-
const Ua = (
|
|
6059
|
-
et.current = !0, zn.current = null, ur(Math.max(0,
|
|
6071
|
+
const w = zn.current;
|
|
6072
|
+
w == null || fs.current || !k.has || he.length === 0 || (fs.current = !0, ur(w));
|
|
6073
|
+
}, [k.has, he.length]), S(() => {
|
|
6074
|
+
const w = zn.current;
|
|
6075
|
+
w == null || !k.playing || (zn.current = null, Math.abs(k.t - w) > 2 && ur(w));
|
|
6076
|
+
}, [k.playing]);
|
|
6077
|
+
const Ua = (w) => {
|
|
6078
|
+
et.current = !0, zn.current = null, ur(Math.max(0, w));
|
|
6060
6079
|
};
|
|
6061
6080
|
t.handle.current = {
|
|
6062
|
-
seek: (
|
|
6081
|
+
seek: (w) => Ua(w),
|
|
6063
6082
|
play: () => {
|
|
6064
|
-
et.current = !0,
|
|
6083
|
+
et.current = !0, Lt && !Ze.current.playing && Ze.current.toggle();
|
|
6065
6084
|
},
|
|
6066
6085
|
pause: () => {
|
|
6067
6086
|
et.current = !0, Ze.current.pause();
|
|
6068
6087
|
},
|
|
6069
6088
|
toggle: () => {
|
|
6070
|
-
et.current = !0, (
|
|
6089
|
+
et.current = !0, (Lt || Ze.current.playing) && Ze.current.toggle();
|
|
6071
6090
|
},
|
|
6072
6091
|
toggleMute: () => {
|
|
6073
|
-
|
|
6092
|
+
Ct(!1), Ze.current.toggleMute();
|
|
6074
6093
|
}
|
|
6075
6094
|
}, S(() => () => {
|
|
6076
6095
|
t.handle.current = null;
|
|
6077
6096
|
}, []);
|
|
6078
|
-
const ps =
|
|
6097
|
+
const ps = z(t.onPlayback);
|
|
6079
6098
|
ps.current = t.onPlayback;
|
|
6080
|
-
const ms =
|
|
6099
|
+
const ms = z(J);
|
|
6081
6100
|
ms.current = J, S(() => {
|
|
6082
|
-
let
|
|
6101
|
+
let w = "";
|
|
6083
6102
|
const me = () => {
|
|
6084
6103
|
const We = ps.current;
|
|
6085
6104
|
if (!We) return;
|
|
6086
6105
|
const Nt = Ze.current, ft = { t: Nt.t, dur: Nt.dur, playing: Nt.playing, idx: Nt.idx, seekN: Nt.seekN, lang: ms.current, muted: Nt.muted }, Cn = `${ft.t.toFixed(2)}|${ft.dur}|${ft.playing}|${ft.idx}|${ft.seekN}|${ft.lang}|${ft.muted}`;
|
|
6087
|
-
Cn !==
|
|
6106
|
+
Cn !== w && (w = Cn, We(ft));
|
|
6088
6107
|
};
|
|
6089
6108
|
me();
|
|
6090
6109
|
const Pe = window.setInterval(me, Qu);
|
|
@@ -6092,11 +6111,11 @@ function Vu(t) {
|
|
|
6092
6111
|
}, []);
|
|
6093
6112
|
const Ra = () => t.onShare ? t.onShare() : Hr(gs(null), qe, () => {
|
|
6094
6113
|
window.clearTimeout(cr.current), ds(!0), cr.current = window.setTimeout(() => ds(!1), 2200);
|
|
6095
|
-
}), Ns = (
|
|
6096
|
-
const We = Sr.find((Cn) => Cn.key ===
|
|
6114
|
+
}), Ns = (w, me, Pe) => {
|
|
6115
|
+
const We = Sr.find((Cn) => Cn.key === w), Nt = or === w, ft = Ya === w;
|
|
6097
6116
|
return /* @__PURE__ */ g("div", { className: "srow srow--tap", role: "button", "aria-busy": Nt || void 0, style: or && !Nt ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
|
|
6098
|
-
or || (hs(
|
|
6099
|
-
Ms(
|
|
6117
|
+
or || (hs(w), Promise.resolve().then(() => dt(w)).then(() => {
|
|
6118
|
+
Ms(w), window.clearTimeout(lr.current), lr.current = window.setTimeout(() => Ms(null), 1600);
|
|
6100
6119
|
}).catch(() => {
|
|
6101
6120
|
}).finally(() => hs(null)));
|
|
6102
6121
|
}, children: [
|
|
@@ -6113,32 +6132,32 @@ function Vu(t) {
|
|
|
6113
6132
|
/* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 18, sw: 1.8 }),
|
|
6114
6133
|
"Back"
|
|
6115
6134
|
] })
|
|
6116
|
-
] }), 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" }[
|
|
6135
|
+
] }), 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" }[v], bn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, dr = u ? /* @__PURE__ */ i(en, { open: ee, onClose: () => I(!1), title: $a, titleNode: v === "main" ? void 0 : Pa, doneLabel: qt.done, kind: v === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(jr, { children: v === "lang" ? /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
6117
6136
|
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: Jr.search }),
|
|
6118
6137
|
Jr.list
|
|
6119
|
-
] }) :
|
|
6138
|
+
] }) : v === "subs" ? /* @__PURE__ */ g("div", { style: bn, children: [
|
|
6120
6139
|
/* @__PURE__ */ g("div", { className: "srow", children: [
|
|
6121
6140
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6122
6141
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Show subtitles" }),
|
|
6123
6142
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Captions over the video" })
|
|
6124
6143
|
] }),
|
|
6125
|
-
/* @__PURE__ */ i(Tt, { checked: Se, onChange:
|
|
6144
|
+
/* @__PURE__ */ i(Tt, { checked: Se, onChange: we, label: "Show subtitles" })
|
|
6126
6145
|
] }),
|
|
6127
6146
|
/* @__PURE__ */ g("div", { className: "srow", children: [
|
|
6128
6147
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6129
6148
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Show speaker labels" }),
|
|
6130
6149
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Who is speaking, before each line" })
|
|
6131
6150
|
] }),
|
|
6132
|
-
/* @__PURE__ */ i(Tt, { checked: Ln, onChange: (
|
|
6151
|
+
/* @__PURE__ */ i(Tt, { checked: Ln, onChange: (w) => le(w ? "on" : "off"), label: "Show speaker labels" })
|
|
6133
6152
|
] }),
|
|
6134
6153
|
/* @__PURE__ */ g("div", { className: "srow", children: [
|
|
6135
6154
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6136
6155
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Highlight words" }),
|
|
6137
6156
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Follow each word as it is spoken" })
|
|
6138
6157
|
] }),
|
|
6139
|
-
/* @__PURE__ */ i(Tt, { checked:
|
|
6158
|
+
/* @__PURE__ */ i(Tt, { checked: wn, onChange: (w) => je(w ? "on" : "off"), label: "Highlight words" })
|
|
6140
6159
|
] })
|
|
6141
|
-
] }) :
|
|
6160
|
+
] }) : v === "audio" ? /* @__PURE__ */ g("div", { style: bn, children: [
|
|
6142
6161
|
/* @__PURE__ */ g("div", { className: "srow", children: [
|
|
6143
6162
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6144
6163
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Translate audio" }),
|
|
@@ -6151,7 +6170,7 @@ function Vu(t) {
|
|
|
6151
6170
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Voices" }),
|
|
6152
6171
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Re ? "Each speaker in their own cloned voice" : "Synthetic voices matched to each speaker" })
|
|
6153
6172
|
] }),
|
|
6154
|
-
/* @__PURE__ */ i(kr, { value: Re ? "clone" : "stock", onChange: (
|
|
6173
|
+
/* @__PURE__ */ i(kr, { value: Re ? "clone" : "stock", onChange: (w) => De(w === "clone"), size: "sm", options: [{ value: "stock", label: "Synthetic" }, { value: "clone", label: "Cloned" }] })
|
|
6155
6174
|
] }),
|
|
6156
6175
|
/* @__PURE__ */ g("div", { className: "srow", children: [
|
|
6157
6176
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -6160,7 +6179,7 @@ function Vu(t) {
|
|
|
6160
6179
|
] }),
|
|
6161
6180
|
/* @__PURE__ */ i(Tt, { checked: Q && ot, onChange: H, label: $n, disabled: !ot || tr === "unavailable" && !Q })
|
|
6162
6181
|
] })
|
|
6163
|
-
] }) :
|
|
6182
|
+
] }) : v === "export" ? /* @__PURE__ */ g("div", { style: bn, children: [
|
|
6164
6183
|
Ns("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
|
|
6165
6184
|
Ns("pdf", "PDF", "Formatted transcript in paragraphs, with timestamps and speaker labels")
|
|
6166
6185
|
] }) : /* @__PURE__ */ i("div", { style: bn, children: [
|
|
@@ -6196,14 +6215,14 @@ function Vu(t) {
|
|
|
6196
6215
|
] }),
|
|
6197
6216
|
In
|
|
6198
6217
|
] }, "export")
|
|
6199
|
-
].filter(Boolean).flatMap((
|
|
6200
|
-
Ue.can && /* @__PURE__ */ g(
|
|
6218
|
+
].filter(Boolean).flatMap((w, me) => me ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${me}`), w] : [w]) }) }) }) : /* @__PURE__ */ i(en, { open: ee, onClose: () => I(!1), title: qt.settings, doneLabel: qt.done, drawer: s, children: /* @__PURE__ */ g("div", { style: { display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
6219
|
+
Ue.can && /* @__PURE__ */ g(Ce, { children: [
|
|
6201
6220
|
/* @__PURE__ */ g("div", { className: "srow srow--tap", onClick: () => {
|
|
6202
6221
|
I(!1), Ue.onClick();
|
|
6203
6222
|
}, children: [
|
|
6204
6223
|
/* @__PURE__ */ g("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
6205
|
-
/* @__PURE__ */ i("div", { className: "srow__t", children:
|
|
6206
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
6224
|
+
/* @__PURE__ */ i("div", { className: "srow__t", children: qt.langLabel }),
|
|
6225
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: qt.langCount })
|
|
6207
6226
|
] }),
|
|
6208
6227
|
/* @__PURE__ */ i("span", { style: { fontSize: 18, lineHeight: 1 }, children: Ue.flag }),
|
|
6209
6228
|
re.original ? null : /* @__PURE__ */ i("span", { style: { fontSize: 14, fontWeight: 600, color: "var(--ink-96)" }, children: Ue.label }),
|
|
@@ -6212,7 +6231,7 @@ function Vu(t) {
|
|
|
6212
6231
|
/* @__PURE__ */ i("div", { className: "sdiv" })
|
|
6213
6232
|
] }),
|
|
6214
6233
|
t.settingsExtra
|
|
6215
|
-
] }) }), Dt = te && $t && (!!
|
|
6234
|
+
] }) }), Dt = te && $t && (!!Be || u) && /* @__PURE__ */ i(
|
|
6216
6235
|
ha,
|
|
6217
6236
|
{
|
|
6218
6237
|
page: (t.layout ?? "embed") === "page",
|
|
@@ -6220,13 +6239,13 @@ function Vu(t) {
|
|
|
6220
6239
|
title: qe,
|
|
6221
6240
|
desk: s,
|
|
6222
6241
|
pos: qr,
|
|
6223
|
-
mute: { muted:
|
|
6224
|
-
cc: x.subtitles ? { on: Se, onToggle: () =>
|
|
6242
|
+
mute: { muted: k.muted, onToggle: mn },
|
|
6243
|
+
cc: x.subtitles ? { on: Se, onToggle: () => we((w) => !w) } : void 0,
|
|
6225
6244
|
noFull: !x.fullscreen,
|
|
6226
6245
|
ad: Fn,
|
|
6227
|
-
wait: tt && !Jn ? /* @__PURE__ */ i(Pc, { state: tt, line:
|
|
6246
|
+
wait: tt && !Jn ? /* @__PURE__ */ i(Pc, { state: tt, line: kt ? cs.map((w) => w.t + w.sp).join("") : null, onRetry: Ia, onOriginal: ba }) : k.edgeWait ? `Transcribing ${Math.round(U)}% — it plays on as more is written` : null,
|
|
6228
6247
|
pct: fe ? Math.round(U) : null,
|
|
6229
|
-
sub: Se && Xe ? { who: jn ? $r(ce, Xe.speaker) : null, color: jn ? jn.fg ?? `var(--lane-${jn.lane})` : "#fff", words: cs, cursor:
|
|
6248
|
+
sub: Se && Xe ? { who: jn ? $r(ce, Xe.speaker) : null, color: jn ? jn.fg ?? `var(--lane-${jn.lane})` : "#fff", words: cs, cursor: wi(k, k.idx, vn) } : null,
|
|
6230
6249
|
chip: sr(s ? rr : { ...rr, width: 64, padding: "0 6px" }, s ? void 0 : "sm"),
|
|
6231
6250
|
transport: ts,
|
|
6232
6251
|
picker: re.sheets,
|
|
@@ -6236,10 +6255,10 @@ function Vu(t) {
|
|
|
6236
6255
|
sheetOpen: re.sheetsOpen || ee,
|
|
6237
6256
|
onShare: u && x.share ? Ra : void 0,
|
|
6238
6257
|
onSettings: u && x.settings ? () => {
|
|
6239
|
-
re.closePicker(), I((
|
|
6258
|
+
re.closePicker(), I((w) => !w);
|
|
6240
6259
|
} : void 0,
|
|
6241
6260
|
compact: !!t.compact,
|
|
6242
|
-
paused: { title: qe, summary: Pt.state === "ready" ? Pt.summary ?? null : null, share: x.share && (t.shareUrl || !t.onShare) ? { url: gs, at:
|
|
6261
|
+
paused: { title: qe, summary: Pt.state === "ready" ? Pt.summary ?? null : null, share: x.share && (t.shareUrl || !t.onShare) ? { url: gs, at: k.t } : null },
|
|
6243
6262
|
copied: _a ? /* @__PURE__ */ g("div", { className: "gfull__toast", "aria-live": "polite", children: [
|
|
6244
6263
|
/* @__PURE__ */ i(oe, { d: X.check, size: 13, sw: 2 }),
|
|
6245
6264
|
"Link copied"
|
|
@@ -6249,7 +6268,7 @@ function Vu(t) {
|
|
|
6249
6268
|
] }) : Kr ? /* @__PURE__ */ g("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
6250
6269
|
/* @__PURE__ */ i(ht, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
6251
6270
|
Kr
|
|
6252
|
-
] }) : re.on && (Je ? Et.missing != null :
|
|
6271
|
+
] }) : re.on && (Je ? Et.missing != null : k.silent) ? /* @__PURE__ */ g("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
6253
6272
|
/* @__PURE__ */ i(ht, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
6254
6273
|
`${yn || "Translated"} voice is still being prepared · playing with subtitles`
|
|
6255
6274
|
] }) : null,
|
|
@@ -6272,22 +6291,22 @@ function Vu(t) {
|
|
|
6272
6291
|
/* @__PURE__ */ i("span", { className: "s", children: sn })
|
|
6273
6292
|
] }),
|
|
6274
6293
|
!s && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) })
|
|
6275
|
-
] }), hr = 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." }), Ts = /* @__PURE__ */ i(ru, { model: ce, rows: he, player:
|
|
6276
|
-
M(null), ye(),
|
|
6277
|
-
} }),
|
|
6294
|
+
] }), hr = 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." }), Ts = /* @__PURE__ */ i(ru, { model: ce, rows: he, player: Lt ? k : { ...k, playRow: k.seekRow }, tail: rn, tailFg: ct, running: fe, desk: s, feedRef: Yt, listener: !0, showLabels: Ln, find: T, findOpen: !s && p, lang: Qe, warm: P, onVisible: St, wordHl: wn }), Mr = /* @__PURE__ */ i(tc, { error: d ?? W ?? (qn && te ? null : k.error) ?? re.error, onClose: () => {
|
|
6295
|
+
M(null), ye(), k.clearError(), re.clearError();
|
|
6296
|
+
} }), vs = [R ? zt(R) : null, q ? q.toUpperCase() : null, se || "Read-only copy"].filter(Boolean).join(" · "), ws = (w) => /* @__PURE__ */ i("div", { className: "ctrans", children: re.noVoice ? re.noVoiceNote : /* @__PURE__ */ g(Ce, { children: [
|
|
6278
6297
|
/* @__PURE__ */ g("div", { className: "ctrans__row", children: [
|
|
6279
6298
|
/* @__PURE__ */ i("span", { className: "ctrans__sp", "aria-hidden": "true" }),
|
|
6280
6299
|
/* @__PURE__ */ g("div", { className: "ctrans__mid", children: [
|
|
6281
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity:
|
|
6282
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" :
|
|
6283
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity:
|
|
6300
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: k.idx <= 0 ? 0.3 : 1 }, onClick: k.prev, children: /* @__PURE__ */ i(oe, { d: X.chevronLeft, size: 16, sw: 1.8 }) }),
|
|
6301
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : k.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (k.playing ? "Pause" : "Play"), disabled: !Ot, onClick: k.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: k.playing ? void 0 : { marginLeft: 2 }, children: k.playing ? Qc : Vc }) }),
|
|
6302
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: k.idx >= he.length - 1 ? 0.3 : 1 }, onClick: k.next, children: /* @__PURE__ */ i(oe, { d: X.chevronRight, size: 16, sw: 1.8 }) })
|
|
6284
6303
|
] }),
|
|
6285
6304
|
/* @__PURE__ */ i("span", { className: "ctrans__mute", children: Nn(36) })
|
|
6286
6305
|
] }),
|
|
6287
|
-
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children:
|
|
6288
|
-
] }) }), Qa = Ic("ga", { tabs:
|
|
6289
|
-
|
|
6290
|
-
/* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ g(
|
|
6306
|
+
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children: va(w) })
|
|
6307
|
+
] }) }), Qa = Ic("ga", { tabs: Kt, cur: h, pref: (si = Kt[0]) == null ? void 0 : si.key, onPick: f }), Ls = Math.max(0, Math.min(100, Math.round(U))), Va = Ye && /* @__PURE__ */ g("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
|
|
6308
|
+
Be && /* @__PURE__ */ i("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Be}/hqdefault.jpg)` } }),
|
|
6309
|
+
/* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ g(Ce, { children: [
|
|
6291
6310
|
qe && /* @__PURE__ */ i("div", { className: "gfull__holdt", children: qe }),
|
|
6292
6311
|
/* @__PURE__ */ i("div", { className: "gfull__holdpct", children: ae === "transcribing" ? `${Ls}%` : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin" }) }),
|
|
6293
6312
|
/* @__PURE__ */ i("div", { className: "gfull__holdbar", children: /* @__PURE__ */ i("div", { style: { width: `${ae === "transcribing" ? Ls : 0}%` } }) }),
|
|
@@ -6297,32 +6316,32 @@ function Vu(t) {
|
|
|
6297
6316
|
] }),
|
|
6298
6317
|
/* @__PURE__ */ i("div", { className: "gfull__holdn", children: "The video starts as soon as the first lines are transcribed." })
|
|
6299
6318
|
] }) : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
|
|
6300
|
-
] }), ks = u && n && (fe || ae === "cropping") ? Math.max(0, Math.min(100, Math.round(U))) : null, On =
|
|
6319
|
+
] }), ks = u && n && (fe || ae === "cropping") ? Math.max(0, Math.min(100, Math.round(U))) : null, On = z(t.onProgress);
|
|
6301
6320
|
On.current = t.onProgress, S(() => {
|
|
6302
|
-
var
|
|
6303
|
-
(
|
|
6321
|
+
var w;
|
|
6322
|
+
(w = On.current) == null || w.call(On, ks);
|
|
6304
6323
|
}, [ks]);
|
|
6305
|
-
const [
|
|
6324
|
+
const [Ba, gr] = j(!1), fr = !!Dt && !Ye && (Je ? !!k.ended : !k.playing && k.dur > 0 && k.t >= k.dur - 0.5);
|
|
6306
6325
|
S(() => {
|
|
6307
6326
|
fr || gr(!1);
|
|
6308
6327
|
}, [fr]);
|
|
6309
|
-
const Ha = t.endCard !== !1 && fr && !
|
|
6310
|
-
gr(!0), et.current = !0,
|
|
6328
|
+
const Ha = t.endCard !== !1 && fr && !Ba && /* @__PURE__ */ i(zu, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => gr(!0), onReplay: () => {
|
|
6329
|
+
gr(!0), et.current = !0, k.seekFrac ? k.seekFrac(0) : k.seekRow(0), k.playing || k.toggle();
|
|
6311
6330
|
} });
|
|
6312
|
-
if (u) return /* @__PURE__ */ g(
|
|
6313
|
-
r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: hr }) :
|
|
6331
|
+
if (u) return /* @__PURE__ */ g(Ce, { children: [
|
|
6332
|
+
r ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: hr }) : Va || Dt || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
|
|
6314
6333
|
Ha,
|
|
6315
6334
|
Mr
|
|
6316
6335
|
] });
|
|
6317
6336
|
if (s) {
|
|
6318
|
-
const
|
|
6319
|
-
return /* @__PURE__ */ g(
|
|
6337
|
+
const w = Lt && !$t && !r && /* @__PURE__ */ i("div", { className: "pubdeskctl", children: ws(!0) }), me = !r && (Kt.length > 0 || $t || !!re.sidePanel || !!w);
|
|
6338
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
6320
6339
|
/* @__PURE__ */ i("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ g("div", { className: "gcolhead", children: [
|
|
6321
6340
|
/* @__PURE__ */ i("div", { className: "gcolhead__main", children: /* @__PURE__ */ g("div", { className: "gcolhead__col", children: [
|
|
6322
|
-
/* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i(
|
|
6341
|
+
/* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i(Bn, { dark: a, height: 20.38 }) }),
|
|
6323
6342
|
!r && /* @__PURE__ */ g("div", { className: "dhead__session", children: [
|
|
6324
6343
|
/* @__PURE__ */ i("span", { className: "t", children: n ? qe : "" }),
|
|
6325
|
-
/* @__PURE__ */ i("span", { className: "s", children: n ?
|
|
6344
|
+
/* @__PURE__ */ i("span", { className: "s", children: n ? vs : "" })
|
|
6326
6345
|
] })
|
|
6327
6346
|
] }) }),
|
|
6328
6347
|
me && /* @__PURE__ */ i("div", { className: "gcolhead__side" })
|
|
@@ -6340,9 +6359,9 @@ function Vu(t) {
|
|
|
6340
6359
|
] })
|
|
6341
6360
|
] }),
|
|
6342
6361
|
me && /* @__PURE__ */ g(Cc, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
|
|
6343
|
-
!re.sidePanel &&
|
|
6362
|
+
!re.sidePanel && w,
|
|
6344
6363
|
!re.sidePanel && is,
|
|
6345
|
-
!re.sidePanel &&
|
|
6364
|
+
!re.sidePanel && Kt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(bc, { col: Qa, order: ["summary", "export"], onPick: f, grip: { summary: 40, export: 28 }, render: (Pe) => /* @__PURE__ */ i(ii, { panel: !0, children: Gr(Pe) }) }) }),
|
|
6346
6365
|
re.sidePanel
|
|
6347
6366
|
] })
|
|
6348
6367
|
] }),
|
|
@@ -6352,12 +6371,12 @@ function Vu(t) {
|
|
|
6352
6371
|
Mr
|
|
6353
6372
|
] });
|
|
6354
6373
|
}
|
|
6355
|
-
const Wa =
|
|
6356
|
-
/* @__PURE__ */ i(ia, { tabs:
|
|
6374
|
+
const Wa = Kt.length > 0 && !p && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ g(ii, { panel: !0, children: [
|
|
6375
|
+
/* @__PURE__ */ i(ia, { tabs: Kt, current: h, onPick: f, gap: h !== "none" }),
|
|
6357
6376
|
h !== "none" && Gr(h)
|
|
6358
6377
|
] }) });
|
|
6359
|
-
return /* @__PURE__ */ g(
|
|
6360
|
-
/* @__PURE__ */ i(pu, { dark: a, title: n ? qe : "", subline: n ?
|
|
6378
|
+
return /* @__PURE__ */ g(Ce, { children: [
|
|
6379
|
+
/* @__PURE__ */ i(pu, { dark: a, title: n ? qe : "", subline: n ? vs : "", onOptions: () => I(!0), optionsActive: ee }),
|
|
6361
6380
|
hr,
|
|
6362
6381
|
ys,
|
|
6363
6382
|
!r && Wa,
|
|
@@ -6368,7 +6387,7 @@ function Vu(t) {
|
|
|
6368
6387
|
m && /* @__PURE__ */ i("div", { className: "txflash", children: m })
|
|
6369
6388
|
] }),
|
|
6370
6389
|
!r && /* @__PURE__ */ g("div", { className: "gbottom", "data-transport": "1", children: [
|
|
6371
|
-
|
|
6390
|
+
Lt && !$t && /* @__PURE__ */ i("div", { className: "pubctl", children: ws(!1) }),
|
|
6372
6391
|
/* @__PURE__ */ g("div", { className: "gbottom__bar", children: [
|
|
6373
6392
|
Ue.can && /* @__PURE__ */ i("div", { style: { flex: "none" }, children: sr({ width: 87 }, void 0) }),
|
|
6374
6393
|
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children: Zr })
|
|
@@ -6381,7 +6400,7 @@ function Vu(t) {
|
|
|
6381
6400
|
] });
|
|
6382
6401
|
}
|
|
6383
6402
|
function Hu(t) {
|
|
6384
|
-
const [e, n] =
|
|
6403
|
+
const [e, n] = j(null);
|
|
6385
6404
|
return S(() => {
|
|
6386
6405
|
if (!t || (e == null ? void 0 : e.url) === t && e.ok) return;
|
|
6387
6406
|
let r = !0, s;
|
|
@@ -6402,17 +6421,17 @@ export {
|
|
|
6402
6421
|
Tc as ExportPanel,
|
|
6403
6422
|
ha as FullVideo,
|
|
6404
6423
|
gu as MiniPlayer,
|
|
6405
|
-
|
|
6424
|
+
Bc as MuteButton,
|
|
6406
6425
|
Xc as NO_SEEK,
|
|
6407
6426
|
Qc as PAUSE_D,
|
|
6408
|
-
|
|
6427
|
+
Vc as PLAY_D,
|
|
6409
6428
|
tu as PUB_SIDE,
|
|
6410
6429
|
td as PanelSeek,
|
|
6411
6430
|
xl as PlayerApiProvider,
|
|
6412
6431
|
$n as REMOVE_BG_LABEL,
|
|
6413
6432
|
Zo as REMOVE_BG_NOTE,
|
|
6414
6433
|
nc as ReplayScrub,
|
|
6415
|
-
|
|
6434
|
+
Vi as SITES,
|
|
6416
6435
|
rd as SiteIcon,
|
|
6417
6436
|
uc as SpeakerCast,
|
|
6418
6437
|
Lc as SummaryPanel,
|
|
@@ -6427,7 +6446,7 @@ export {
|
|
|
6427
6446
|
Oo as hostOfUrl,
|
|
6428
6447
|
Ht as lineEnd,
|
|
6429
6448
|
la as lineWords,
|
|
6430
|
-
|
|
6449
|
+
Vt as pictureT,
|
|
6431
6450
|
En as placePosition,
|
|
6432
6451
|
_n as realFull,
|
|
6433
6452
|
Ju as setErrorReporter,
|
|
@@ -6435,7 +6454,7 @@ export {
|
|
|
6435
6454
|
Xu as siteById,
|
|
6436
6455
|
Pn as siteOf,
|
|
6437
6456
|
_c as snapPosition,
|
|
6438
|
-
|
|
6457
|
+
wi as spokenWordOf,
|
|
6439
6458
|
Ko as trackPlan,
|
|
6440
6459
|
Ki as useApi,
|
|
6441
6460
|
pc as useArchiveVoice,
|
|
@@ -6443,9 +6462,9 @@ export {
|
|
|
6443
6462
|
Gc as useDuck,
|
|
6444
6463
|
iu as useFindPull,
|
|
6445
6464
|
Hc as useFlash,
|
|
6446
|
-
|
|
6465
|
+
Ft as usePlayerApi,
|
|
6447
6466
|
Wi as useSeparatedTrack,
|
|
6448
|
-
|
|
6467
|
+
vc as useSummaryIn,
|
|
6449
6468
|
Ql as useTranscript,
|
|
6450
6469
|
Kc as useTxPlayer,
|
|
6451
6470
|
nu as useTxVoice,
|