@vocalstack/player 0.1.0-alpha.27 → 0.1.0-alpha.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1040 -1040
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2,14 +2,14 @@ var da = Object.defineProperty;
|
|
|
2
2
|
var ha = (t, e, n) => e in t ? da(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
3
|
var Me = (t, e, n) => ha(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
4
|
import { jsx as i, jsxs as h, Fragment as xe } from "react/jsx-runtime";
|
|
5
|
-
import { useState as z, useRef as
|
|
5
|
+
import { useState as z, useRef as k, useEffect as U, useLayoutEffect as Bt, createContext as ni, useMemo as Ie, useContext as Ma, useCallback as Ke, Fragment as ga, forwardRef as fa, useImperativeHandle as pa } from "react";
|
|
6
6
|
import { createPortal as Na } from "react-dom";
|
|
7
7
|
import { VocalStackError as ri, VocalStack as si } from "@vocalstack/js-sdk";
|
|
8
8
|
const ii = "https://vocalstack.com", ma = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ya = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Ta = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", wa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
9
9
|
function La({ size: t = 16, sw: e = 1.5, children: n, style: r, ...s }) {
|
|
10
10
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "none", stroke: "currentColor", strokeWidth: e, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", style: { flex: "none", ...r }, ...s, children: n });
|
|
11
11
|
}
|
|
12
|
-
const
|
|
12
|
+
const ee = {
|
|
13
13
|
plus: "M12 4.5v15m7.5-7.5h-15",
|
|
14
14
|
check: "M4.5 12.75l6 6 9-13.5",
|
|
15
15
|
downloaded: "M12 21a9 9 0 100-18 9 9 0 000 18zM12 6.75v10.5m0 0l3.75-3.75M12 17.25l-3.75-3.75",
|
|
@@ -100,20 +100,20 @@ function Nt({ 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 hr({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill: a }) {
|
|
103
|
-
const o =
|
|
103
|
+
const o = k(null), [l, c] = z(null), u = Math.max(0, n.findIndex((d) => d.value === t));
|
|
104
104
|
return Bt(() => {
|
|
105
105
|
const d = o.current;
|
|
106
106
|
if (!d) return;
|
|
107
|
-
const
|
|
108
|
-
|
|
107
|
+
const g = d.querySelectorAll(".vs-switch__opt")[u];
|
|
108
|
+
g && c({ left: g.offsetLeft, width: g.offsetWidth });
|
|
109
109
|
}, [u, n.length]), U(() => {
|
|
110
110
|
const d = o.current;
|
|
111
111
|
if (!d || typeof ResizeObserver > "u") return;
|
|
112
|
-
const
|
|
113
|
-
const
|
|
114
|
-
|
|
112
|
+
const g = new ResizeObserver(() => {
|
|
113
|
+
const M = d.querySelectorAll(".vs-switch__opt")[u];
|
|
114
|
+
M && c({ left: M.offsetLeft, width: M.offsetWidth });
|
|
115
115
|
});
|
|
116
|
-
return
|
|
116
|
+
return g.observe(d), () => g.disconnect();
|
|
117
117
|
}, [u]), /* @__PURE__ */ h("div", { ref: o, role: "tablist", className: `vs-switch${r === "sm" ? " vs-switch--sm" : ""}${s ? "" : " vs-switch--borderless"}${a ? " vs-switch--fill" : ""}`, children: [
|
|
118
118
|
l && /* @__PURE__ */ i("span", { className: "vs-switch__thumb", style: { left: l.left, width: l.width }, "aria-hidden": "true" }),
|
|
119
119
|
n.map((d) => /* @__PURE__ */ h("button", { type: "button", role: "tab", "aria-selected": d.value === t, className: "vs-switch__opt", onClick: () => e(d.value), children: [
|
|
@@ -132,7 +132,7 @@ function zn({ flag: t, code: e, label: n, onClick: r, variant: s, block: a, bord
|
|
|
132
132
|
return /* @__PURE__ */ h("button", { type: "button", className: `vs-lang-chip${s ? ` vs-lang-chip--${s}` : ""}${a ? " vs-lang-chip--block" : ""}${a && !d ? " vs-lang-chip--bare" : ""}${o ? "" : " vs-lang-chip--borderless"}${l === "sm" ? " vs-lang-chip--sm" : ""}`, onClick: r, "aria-label": n ? e ? `${n} (${e})` : n : e, style: c, children: [
|
|
133
133
|
t ? /* @__PURE__ */ i("span", { className: "vs-lang-chip__flag", children: t }) : null,
|
|
134
134
|
d ? /* @__PURE__ */ i("span", { className: "vs-lang-chip__name", children: n ?? e }) : a ? null : /* @__PURE__ */ i("span", { className: "vs-lang-chip__code", children: e }),
|
|
135
|
-
/* @__PURE__ */ i(oe, { d:
|
|
135
|
+
/* @__PURE__ */ i(oe, { d: ee.chevronDown, size: 13, className: "vs-lang-chip__chevron", style: { color: s === "primary" ? "currentColor" : "var(--vs-text-muted)" } })
|
|
136
136
|
] });
|
|
137
137
|
}
|
|
138
138
|
function za({ value: t, label: e = "Copy", onCopied: n }) {
|
|
@@ -155,7 +155,7 @@ function za({ value: t, label: e = "Copy", onCopied: n }) {
|
|
|
155
155
|
},
|
|
156
156
|
children: [
|
|
157
157
|
/* @__PURE__ */ i("span", { className: "vs-sr", "aria-live": "polite", children: r ? `Copied${e.replace(/^Copy\b/, "")}` : "" }),
|
|
158
|
-
r ? /* @__PURE__ */ i(oe, { d:
|
|
158
|
+
r ? /* @__PURE__ */ i(oe, { d: ee.check, size: 13, sw: 2.2 }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: "13", height: "13", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ i("path", { d: "M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75" }) })
|
|
159
159
|
]
|
|
160
160
|
}
|
|
161
161
|
);
|
|
@@ -178,34 +178,34 @@ function Ia(t, e) {
|
|
|
178
178
|
}, [t, e]);
|
|
179
179
|
}
|
|
180
180
|
function Mr({ children: t, ms: e = 220 }) {
|
|
181
|
-
const n =
|
|
181
|
+
const n = k(null), r = k(null), [s, a] = z(null);
|
|
182
182
|
return Bt(() => {
|
|
183
183
|
const o = r.current, l = n.current;
|
|
184
184
|
if (!o || !l) return;
|
|
185
185
|
let c;
|
|
186
186
|
const u = () => {
|
|
187
|
-
const
|
|
188
|
-
return !
|
|
187
|
+
const M = l.closest(".vs-sheet"), N = M ? parseFloat(getComputedStyle(M).maxHeight) : NaN;
|
|
188
|
+
return !M || !Number.isFinite(N) ? 1 / 0 : Math.max(0, N - (M.offsetHeight - l.offsetHeight));
|
|
189
189
|
}, d = () => {
|
|
190
|
-
const
|
|
191
|
-
clearTimeout(c), a(Math.min(
|
|
190
|
+
const M = o.offsetHeight;
|
|
191
|
+
clearTimeout(c), a(Math.min(M, u())), M > u() && (c = setTimeout(() => a(M), e));
|
|
192
192
|
};
|
|
193
193
|
if (d(), typeof ResizeObserver > "u") return () => clearTimeout(c);
|
|
194
|
-
const
|
|
195
|
-
return
|
|
196
|
-
|
|
194
|
+
const g = new ResizeObserver(d);
|
|
195
|
+
return g.observe(o), () => {
|
|
196
|
+
g.disconnect(), clearTimeout(c);
|
|
197
197
|
};
|
|
198
198
|
}, [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 }) });
|
|
199
199
|
}
|
|
200
200
|
function Vt({ 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 }) {
|
|
201
|
-
const
|
|
202
|
-
return Ia(
|
|
201
|
+
const g = k(null);
|
|
202
|
+
return Ia(g, t), U(() => {
|
|
203
203
|
if (!t) return;
|
|
204
|
-
const
|
|
204
|
+
const M = (N) => {
|
|
205
205
|
N.key === "Escape" && e();
|
|
206
206
|
};
|
|
207
|
-
return window.addEventListener("keydown",
|
|
208
|
-
}, [t, e]), t ? /* @__PURE__ */ i("div", { ref:
|
|
207
|
+
return window.addEventListener("keydown", M), () => window.removeEventListener("keydown", M);
|
|
208
|
+
}, [t, e]), t ? /* @__PURE__ */ i("div", { ref: g, className: `vs-sheet-scrim${l ? " drawer" : ""}${d ? " vs-sheet-scrim--sticky" : ""}`, onClick: d ? void 0 : e, children: /* @__PURE__ */ h("div", { className: `vs-sheet${u ? ` vs-sheet--${u}` : ""}`, role: "dialog", "aria-modal": "true", "aria-label": n, onClick: (M) => M.stopPropagation(), children: [
|
|
209
209
|
/* @__PURE__ */ i("div", { className: "vs-sheet__grip" }),
|
|
210
210
|
/* @__PURE__ */ h("div", { className: "vs-sheet__head", children: [
|
|
211
211
|
r ?? /* @__PURE__ */ i("span", { className: "vs-sheet__title", children: n }),
|
|
@@ -697,16 +697,16 @@ const nt = class nt {
|
|
|
697
697
|
let o = 0;
|
|
698
698
|
if (a)
|
|
699
699
|
if (this.within = null, r.total > 1) {
|
|
700
|
-
const c = Array.from({ length: r.total }, (d,
|
|
701
|
-
var
|
|
702
|
-
return ((
|
|
703
|
-
}), u = c.reduce((d,
|
|
700
|
+
const c = Array.from({ length: r.total }, (d, g) => {
|
|
701
|
+
var M;
|
|
702
|
+
return ((M = r.got.get(g)) == null ? void 0 : M.durationS) ?? 0;
|
|
703
|
+
}), u = c.reduce((d, g) => d + g, 0);
|
|
704
704
|
if (u > 0 && c.every((d) => d > 0)) {
|
|
705
705
|
const d = a.frac * u;
|
|
706
|
-
let
|
|
707
|
-
for (;
|
|
708
|
-
if (o = -(d -
|
|
709
|
-
this.partBase =
|
|
706
|
+
let g = 0, M = 0;
|
|
707
|
+
for (; g < c.length - 1 && M + c[g] <= d; ) M += c[g++];
|
|
708
|
+
if (o = -(d - M), g !== n) {
|
|
709
|
+
this.partBase = M, this.startPartAt(e, g, d - M);
|
|
710
710
|
return;
|
|
711
711
|
}
|
|
712
712
|
}
|
|
@@ -739,9 +739,9 @@ const nt = class nt {
|
|
|
739
739
|
if (this.rank(c) <= l || !this.speakable(c)) continue;
|
|
740
740
|
const u = this.clips.get(c);
|
|
741
741
|
if (u)
|
|
742
|
-
for (const d of [...u.got.keys()].sort((
|
|
743
|
-
const
|
|
744
|
-
r.push(
|
|
742
|
+
for (const d of [...u.got.keys()].sort((g, M) => g - M)) {
|
|
743
|
+
const g = u.got.get(d);
|
|
744
|
+
r.push(g), s += g.durationS || 0;
|
|
745
745
|
}
|
|
746
746
|
}
|
|
747
747
|
return r;
|
|
@@ -881,19 +881,19 @@ function Ya(t, e, n, r = {}, s) {
|
|
|
881
881
|
if (!(a != null && a.length)) return [];
|
|
882
882
|
const o = Oa(r), l = o ? `&${o}` : "", c = t.voiceKey ? `&voice=${encodeURIComponent(t.voiceKey)}` : "";
|
|
883
883
|
return a.flatMap((u) => {
|
|
884
|
-
var
|
|
885
|
-
const d = (
|
|
886
|
-
return Array.from({ length:
|
|
884
|
+
var M, N;
|
|
885
|
+
const d = (M = t.clipRev) == null ? void 0 : M[String(u)], g = Math.max(1, ((N = t.clipParts) == null ? void 0 : N[String(u)]) ?? 1);
|
|
886
|
+
return Array.from({ length: g }, (p, y) => {
|
|
887
887
|
var L;
|
|
888
888
|
return {
|
|
889
889
|
sentenceId: u,
|
|
890
890
|
lang: t.lang,
|
|
891
891
|
src: `${n}/v1/recordings/${e}/voice/${u}?lang=${encodeURIComponent(t.lang)}${c}&format=${xn()}${y > 0 ? `&part=${y}` : ""}${d ? `&v=${encodeURIComponent(d)}` : ""}${l}`,
|
|
892
|
-
durationS:
|
|
892
|
+
durationS: g === 1 ? ((L = t.clipDur) == null ? void 0 : L[String(u)]) ?? 0 : 0,
|
|
893
893
|
voice: t.voice ?? null,
|
|
894
894
|
cloned: !1,
|
|
895
895
|
part: y,
|
|
896
|
-
parts:
|
|
896
|
+
parts: g
|
|
897
897
|
};
|
|
898
898
|
});
|
|
899
899
|
});
|
|
@@ -967,86 +967,86 @@ function Qa(t) {
|
|
|
967
967
|
const [e, n] = Ir(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
|
|
968
968
|
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : Pa, n];
|
|
969
969
|
}
|
|
970
|
-
function Or({ 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:
|
|
971
|
-
const [
|
|
970
|
+
function Or({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPlaceholder: a = "Search languages", none: o, pinned: l = [], recent: c = [], requireVoice: u, keepOpen: d, busy: g }) {
|
|
971
|
+
const [M, N] = z(""), [p, y] = z(!1), [L, m] = z(null);
|
|
972
972
|
U(() => {
|
|
973
973
|
t && (N(""), y(!1), m(null));
|
|
974
974
|
}, [t]);
|
|
975
975
|
const f = Ie(() => {
|
|
976
|
-
const
|
|
977
|
-
return [...
|
|
978
|
-
const
|
|
979
|
-
return
|
|
976
|
+
const S = M.trim().toLowerCase();
|
|
977
|
+
return [...S ? s.filter((O) => O.label.toLowerCase().includes(S) || O.native.toLowerCase().includes(S) || O.code.toLowerCase().includes(S)) : s].sort((O, te) => {
|
|
978
|
+
const K = l.indexOf(O.code), v = l.indexOf(te.code);
|
|
979
|
+
return K !== -1 || v !== -1 ? (K === -1 ? 999 : K) - (v === -1 ? 999 : v) : O.label.localeCompare(te.label);
|
|
980
980
|
});
|
|
981
|
-
}, [s,
|
|
982
|
-
() =>
|
|
983
|
-
[c, f,
|
|
984
|
-
), C = Ie(() => I.length ? f.filter((
|
|
985
|
-
const
|
|
981
|
+
}, [s, M, l]), I = Ie(
|
|
982
|
+
() => M ? [] : c.map((S) => f.find((T) => T.code === S)).filter((S) => !!S).sort((S, T) => S.label.localeCompare(T.label)),
|
|
983
|
+
[c, f, M]
|
|
984
|
+
), C = Ie(() => I.length ? f.filter((S) => !I.some((T) => T.code === S.code)) : f, [f, I]), D = p || M ? C.length : 12, B = C, _ = C.length - Math.min(D, C.length), X = (S, T = !1, E = !1) => {
|
|
985
|
+
const O = !!u && !S.voice;
|
|
986
986
|
return /* @__PURE__ */ h(
|
|
987
987
|
"button",
|
|
988
988
|
{
|
|
989
989
|
type: "button",
|
|
990
|
-
className: `vs-picker__row${
|
|
991
|
-
"aria-selected": n ===
|
|
990
|
+
className: `vs-picker__row${O ? " vs-picker__row--off" : ""}${E ? " vs-picker__row--extra" : ""}`,
|
|
991
|
+
"aria-selected": n === S.code,
|
|
992
992
|
onClick: () => {
|
|
993
|
-
if (
|
|
994
|
-
m(
|
|
993
|
+
if (O) {
|
|
994
|
+
m(S.code);
|
|
995
995
|
return;
|
|
996
996
|
}
|
|
997
|
-
r(
|
|
997
|
+
r(S.code), d || e();
|
|
998
998
|
},
|
|
999
999
|
children: [
|
|
1000
|
-
/* @__PURE__ */ i("span", { className: "vs-picker__flag", children:
|
|
1000
|
+
/* @__PURE__ */ i("span", { className: "vs-picker__flag", children: S.flag }),
|
|
1001
1001
|
/* @__PURE__ */ h("span", { style: { flex: 1, minWidth: 0 }, children: [
|
|
1002
|
-
/* @__PURE__ */ i("div", { className: "vs-picker__label", children:
|
|
1003
|
-
/* @__PURE__ */ i("div", { className: "vs-picker__native", children:
|
|
1002
|
+
/* @__PURE__ */ i("div", { className: "vs-picker__label", children: S.label }),
|
|
1003
|
+
/* @__PURE__ */ i("div", { className: "vs-picker__native", children: S.native })
|
|
1004
1004
|
] }),
|
|
1005
|
-
/* @__PURE__ */ i("span", { className: "vs-picker__slot", children:
|
|
1006
|
-
|
|
1007
|
-
}, onKeyDown: (
|
|
1008
|
-
(
|
|
1009
|
-
}, children: /* @__PURE__ */ i(oe, { d:
|
|
1010
|
-
/* @__PURE__ */ i("span", { className: `vs-picker__slot${
|
|
1011
|
-
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n ===
|
|
1005
|
+
/* @__PURE__ */ i("span", { className: "vs-picker__slot", children: T && /* @__PURE__ */ i("span", { className: "vs-picker__forget", role: "button", tabIndex: 0, title: `Remove ${S.label} from recent`, "aria-label": `Remove ${S.label} from recent`, onClick: (te) => {
|
|
1006
|
+
te.stopPropagation(), Ys(S.code);
|
|
1007
|
+
}, onKeyDown: (te) => {
|
|
1008
|
+
(te.key === "Enter" || te.key === " ") && (te.preventDefault(), te.stopPropagation(), Ys(S.code));
|
|
1009
|
+
}, children: /* @__PURE__ */ i(oe, { d: ee.close, size: 16 }) }) }),
|
|
1010
|
+
/* @__PURE__ */ i("span", { className: `vs-picker__slot${O ? " vs-picker__slot--wide" : ""}`, title: S.voice ? "Voice available" : O ? "No voice speaks this language yet" : void 0, children: O ? L === S.code && /* @__PURE__ */ i("span", { className: "vs-picker__off", children: "UNAVAILABLE" }) : S.voice && /* @__PURE__ */ i(oe, { d: ee.headphones, size: 16 }) }),
|
|
1011
|
+
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === S.code && (g === S.code ? /* @__PURE__ */ i(at, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ i(oe, { d: ee.check, size: 16, sw: 2.2 })) })
|
|
1012
1012
|
]
|
|
1013
1013
|
},
|
|
1014
|
-
|
|
1014
|
+
S.code
|
|
1015
1015
|
);
|
|
1016
|
-
},
|
|
1017
|
-
/* @__PURE__ */ i(oe, { d:
|
|
1018
|
-
/* @__PURE__ */ i("input", { value:
|
|
1019
|
-
] }),
|
|
1020
|
-
o && !
|
|
1016
|
+
}, j = /* @__PURE__ */ h("div", { className: "vs-picker__search", children: [
|
|
1017
|
+
/* @__PURE__ */ i(oe, { d: ee.search, size: 16, sw: 1.7, style: { color: "var(--vs-text-muted)" } }),
|
|
1018
|
+
/* @__PURE__ */ i("input", { value: M, onChange: (S) => N(S.target.value), placeholder: a, "aria-label": a })
|
|
1019
|
+
] }), F = /* @__PURE__ */ h("div", { className: "vs-picker__list", children: [
|
|
1020
|
+
o && !M && /* @__PURE__ */ h("button", { type: "button", className: "vs-picker__row", "data-vs-original": "", "aria-selected": n === null, onClick: () => {
|
|
1021
1021
|
r(null), d || e();
|
|
1022
1022
|
}, children: [
|
|
1023
|
-
/* @__PURE__ */ i("span", { className: "vs-picker__flag", children: /* @__PURE__ */ i(oe, { d:
|
|
1023
|
+
/* @__PURE__ */ i("span", { className: "vs-picker__flag", children: /* @__PURE__ */ i(oe, { d: ee.mic, size: 19, sw: 1.6, style: { color: "var(--vs-text-muted)" } }) }),
|
|
1024
1024
|
/* @__PURE__ */ h("span", { style: { flex: 1, minWidth: 0 }, children: [
|
|
1025
1025
|
/* @__PURE__ */ i("div", { className: "vs-picker__label", children: o }),
|
|
1026
1026
|
/* @__PURE__ */ i("div", { className: "vs-picker__native", children: "As spoken · no translation" })
|
|
1027
1027
|
] }),
|
|
1028
1028
|
/* @__PURE__ */ i("span", { className: "vs-picker__slot" }),
|
|
1029
1029
|
/* @__PURE__ */ i("span", { className: "vs-picker__slot" }),
|
|
1030
|
-
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === null && /* @__PURE__ */ i(oe, { d:
|
|
1030
|
+
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === null && /* @__PURE__ */ i(oe, { d: ee.check, size: 16, sw: 2.2 }) })
|
|
1031
1031
|
] }),
|
|
1032
1032
|
I.length > 0 && /* @__PURE__ */ h(xe, { children: [
|
|
1033
1033
|
/* @__PURE__ */ i("div", { className: "vs-picker__head", children: "RECENT" }),
|
|
1034
|
-
I.map((
|
|
1034
|
+
I.map((S) => X(S, !0)),
|
|
1035
1035
|
/* @__PURE__ */ i("div", { className: "vs-picker__rule" })
|
|
1036
1036
|
] }),
|
|
1037
|
-
|
|
1038
|
-
|
|
1037
|
+
B.map((S, T) => X(S, !1, T >= D)),
|
|
1038
|
+
_ > 0 && /* @__PURE__ */ h("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: [
|
|
1039
1039
|
"+ ",
|
|
1040
|
-
|
|
1040
|
+
_,
|
|
1041
1041
|
" MORE LANGUAGES"
|
|
1042
1042
|
] }),
|
|
1043
1043
|
f.length === 0 && /* @__PURE__ */ h("div", { className: "vs-picker__more", children: [
|
|
1044
1044
|
"No match for “",
|
|
1045
|
-
|
|
1045
|
+
M,
|
|
1046
1046
|
"”"
|
|
1047
1047
|
] })
|
|
1048
1048
|
] });
|
|
1049
|
-
return { search:
|
|
1049
|
+
return { search: j, list: F };
|
|
1050
1050
|
}
|
|
1051
1051
|
function $a({ open: t, onClose: e, title: n, note: r, sticky: s, ...a }) {
|
|
1052
1052
|
const { search: o, list: l } = Or({ ...a, open: t, onClose: e });
|
|
@@ -1119,22 +1119,22 @@ function rr(t) {
|
|
|
1119
1119
|
t && (t.pause(), t.removeAttribute("src"), t.load());
|
|
1120
1120
|
}
|
|
1121
1121
|
function pi(t, e) {
|
|
1122
|
-
const [n, r] = z("off"), [s, a] = z([]), [o, l] = z(!1), c =
|
|
1122
|
+
const [n, r] = z("off"), [s, a] = z([]), [o, l] = z(!1), c = k(null), u = k([null, null]), d = k([NaN, NaN]), g = k(0);
|
|
1123
1123
|
return U(() => {
|
|
1124
1124
|
if (a([]), l(!1), !t) {
|
|
1125
1125
|
r("off");
|
|
1126
1126
|
return;
|
|
1127
1127
|
}
|
|
1128
|
-
let
|
|
1128
|
+
let M = !1, N;
|
|
1129
1129
|
r("making");
|
|
1130
1130
|
const p = () => {
|
|
1131
1131
|
to(t).then((y) => {
|
|
1132
|
-
if (!
|
|
1132
|
+
if (!M) {
|
|
1133
1133
|
if (y.ready) {
|
|
1134
1134
|
const L = new Audio();
|
|
1135
1135
|
L.preload = "auto";
|
|
1136
1136
|
const m = () => {
|
|
1137
|
-
!
|
|
1137
|
+
!M && c.current === L && r("ready");
|
|
1138
1138
|
};
|
|
1139
1139
|
L.addEventListener("canplay", m, { once: !0 }), L.addEventListener("error", m, { once: !0 }), L.src = t, c.current = L;
|
|
1140
1140
|
return;
|
|
@@ -1146,31 +1146,31 @@ function pi(t, e) {
|
|
|
1146
1146
|
a((L) => L.length === y.parts.length && L.every((m, f) => m.startS === y.parts[f].startS) ? L : y.parts), N = setTimeout(p, y.retryS * 1e3);
|
|
1147
1147
|
}
|
|
1148
1148
|
}).catch(() => {
|
|
1149
|
-
|
|
1149
|
+
M || (N = setTimeout(p, 5e3));
|
|
1150
1150
|
});
|
|
1151
1151
|
};
|
|
1152
1152
|
return p(), () => {
|
|
1153
|
-
|
|
1153
|
+
M = !0, N && clearTimeout(N), rr(c.current), c.current = null, rr(u.current[0]), rr(u.current[1]), u.current = [null, null], d.current = [NaN, NaN];
|
|
1154
1154
|
};
|
|
1155
1155
|
}, [t]), U(() => {
|
|
1156
|
-
const
|
|
1156
|
+
const M = () => {
|
|
1157
1157
|
for (const m of u.current) m && !m.paused && m.pause();
|
|
1158
1158
|
};
|
|
1159
1159
|
if (n === "ready" && c.current) {
|
|
1160
|
-
|
|
1160
|
+
M(), Us(c.current, e), l(!0);
|
|
1161
1161
|
return;
|
|
1162
1162
|
}
|
|
1163
1163
|
const N = n === "making" ? Xa(s, e.t) : -1;
|
|
1164
1164
|
if (N < 0) {
|
|
1165
|
-
|
|
1165
|
+
M(), l(!1);
|
|
1166
1166
|
return;
|
|
1167
1167
|
}
|
|
1168
|
-
const p = eo(s, N, d.current,
|
|
1168
|
+
const p = eo(s, N, d.current, g.current);
|
|
1169
1169
|
for (const [m, f] of p.load) {
|
|
1170
1170
|
let I = u.current[m];
|
|
1171
1171
|
I || (I = new Audio(), I.preload = "auto", u.current[m] = I), I.pause(), I.src = s[f].url, d.current[m] = s[f].startS;
|
|
1172
1172
|
}
|
|
1173
|
-
|
|
1173
|
+
g.current = p.play;
|
|
1174
1174
|
const y = u.current[p.play], L = u.current[1 - p.play];
|
|
1175
1175
|
L && !L.paused && L.pause(), Us(y, { ...e, t: e.t - s[N].startS }), l(!e.playing || y.readyState >= 3);
|
|
1176
1176
|
}, [n, s, e.t, e.playing, e.muted]), { state: n, on: o, untilS: n === "ready" ? 1 / 0 : s.length ? s[s.length - 1].endS : 0 };
|
|
@@ -1194,7 +1194,7 @@ function io(t, e, n) {
|
|
|
1194
1194
|
const o = Math.max(1, ...a.map((c) => c.parts));
|
|
1195
1195
|
let l = Math.max(0, n - s.start);
|
|
1196
1196
|
for (let c = 0; c < o; c++) {
|
|
1197
|
-
const u = a.find((
|
|
1197
|
+
const u = a.find((g) => g.part === c);
|
|
1198
1198
|
if (!u) return { kind: "missing", sid: s.sid };
|
|
1199
1199
|
const d = u.durationS && u.durationS > 0 ? u.durationS : 1 / 0;
|
|
1200
1200
|
if (l < d) return { kind: "play", sid: s.sid, src: u.src, offset: l };
|
|
@@ -1222,7 +1222,7 @@ function lo(t) {
|
|
|
1222
1222
|
const c = /* @__PURE__ */ new Map();
|
|
1223
1223
|
for (const u of t.clips) c.set(u.sentenceId, [...c.get(u.sentenceId) ?? [], u]);
|
|
1224
1224
|
return c;
|
|
1225
|
-
}, [t.clips]), n =
|
|
1225
|
+
}, [t.clips]), n = k(/* @__PURE__ */ new Map()), r = k(null), [s, a] = z({ missing: null, sid: null }), o = (c) => {
|
|
1226
1226
|
let u = n.current.get(c);
|
|
1227
1227
|
return u || (u = new Audio(), u.preload = "auto", u.src = c, n.current.set(c, u)), u;
|
|
1228
1228
|
}, l = () => {
|
|
@@ -1240,31 +1240,31 @@ function lo(t) {
|
|
|
1240
1240
|
}
|
|
1241
1241
|
const c = io(t.lines, e, t.t), u = c.kind === "missing" ? c.sid : null, d = c.kind === "none" ? null : c.sid;
|
|
1242
1242
|
a((p) => p.missing === u && p.sid === d ? p : { missing: u, sid: d });
|
|
1243
|
-
const
|
|
1244
|
-
for (const p of
|
|
1245
|
-
const
|
|
1246
|
-
|
|
1247
|
-
for (const [p, y] of n.current) !
|
|
1243
|
+
const g = new Set(oo(t.lines, e, t.t));
|
|
1244
|
+
for (const p of g) o(p);
|
|
1245
|
+
const M = r.current;
|
|
1246
|
+
M && g.add(M.src);
|
|
1247
|
+
for (const [p, y] of n.current) !g.has(p) && (!M || M.el !== y) && (y.pause(), n.current.delete(p));
|
|
1248
1248
|
if (!t.playing) {
|
|
1249
|
-
|
|
1249
|
+
M == null || M.el.pause();
|
|
1250
1250
|
return;
|
|
1251
1251
|
}
|
|
1252
1252
|
if (c.kind !== "play") {
|
|
1253
|
-
if (
|
|
1254
|
-
|
|
1253
|
+
if (M && !M.el.paused && !M.el.ended && ao(t.lines, t.t, M.sid)) return;
|
|
1254
|
+
M && M.el.pause(), r.current = null;
|
|
1255
1255
|
return;
|
|
1256
1256
|
}
|
|
1257
|
-
if (
|
|
1258
|
-
if (
|
|
1257
|
+
if (M && M.src === c.src) {
|
|
1258
|
+
if (M.el.muted = t.muted, !M.el.ended && Math.abs(M.el.currentTime - c.offset) > ro)
|
|
1259
1259
|
try {
|
|
1260
|
-
|
|
1260
|
+
M.el.currentTime = c.offset;
|
|
1261
1261
|
} catch {
|
|
1262
1262
|
}
|
|
1263
|
-
|
|
1263
|
+
M.el.paused && !M.el.ended && M.el.play().catch(() => {
|
|
1264
1264
|
});
|
|
1265
1265
|
return;
|
|
1266
1266
|
}
|
|
1267
|
-
|
|
1267
|
+
M == null || M.el.pause();
|
|
1268
1268
|
const N = o(c.src);
|
|
1269
1269
|
N.muted = t.muted;
|
|
1270
1270
|
try {
|
|
@@ -1310,7 +1310,7 @@ function uo(t, e) {
|
|
|
1310
1310
|
};
|
|
1311
1311
|
}
|
|
1312
1312
|
function ho(t, e) {
|
|
1313
|
-
const n =
|
|
1313
|
+
const n = k(t);
|
|
1314
1314
|
n.current = t;
|
|
1315
1315
|
const r = !!t;
|
|
1316
1316
|
U(() => {
|
|
@@ -1497,7 +1497,7 @@ function fo(t, e) {
|
|
|
1497
1497
|
if ((n = e.scriptWords) != null && n.length) {
|
|
1498
1498
|
const a = (c) => c.toLowerCase().replace(/[^\p{L}\p{N}]/gu, ""), o = (e.fixes ?? []).filter((c) => String(c.kind ?? "").endsWith("script") && String(c.orig ?? "").trim()), l = (c) => {
|
|
1499
1499
|
var u, d;
|
|
1500
|
-
return c.recognized ?? ((d = (u = o.find((
|
|
1500
|
+
return c.recognized ?? ((d = (u = o.find((g) => String(g.repl ?? "").split(/\s+/).map(a).includes(a(c.text)))) == null ? void 0 : u.orig) == null ? void 0 : d.trim());
|
|
1501
1501
|
};
|
|
1502
1502
|
r.words = r.words.map((c, u) => {
|
|
1503
1503
|
if (!e.scriptWords.includes(u)) return c;
|
|
@@ -1744,7 +1744,7 @@ function xo(t) {
|
|
|
1744
1744
|
return bo.test(t);
|
|
1745
1745
|
}
|
|
1746
1746
|
function wi(t) {
|
|
1747
|
-
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || xo(t.id)), s = (t.baseUrl ?? Ti).replace(/\/$/, ""), a =
|
|
1747
|
+
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || xo(t.id)), s = (t.baseUrl ?? Ti).replace(/\/$/, ""), a = k(t.token);
|
|
1748
1748
|
a.current = t.token;
|
|
1749
1749
|
const o = !!t.token, l = Ie(() => async () => {
|
|
1750
1750
|
const d = a.current;
|
|
@@ -1789,12 +1789,12 @@ function Ao(t, e) {
|
|
|
1789
1789
|
const [n, r] = z(null), [s, a] = z(!1), [o, l] = z(null), [c, u] = z(0);
|
|
1790
1790
|
return U(() => {
|
|
1791
1791
|
let d = !0;
|
|
1792
|
-
return So(t, e).then((
|
|
1793
|
-
d && (r(
|
|
1794
|
-
}).catch((
|
|
1792
|
+
return So(t, e).then((g) => {
|
|
1793
|
+
d && (r(g), a(!1), l(null));
|
|
1794
|
+
}).catch((g) => {
|
|
1795
1795
|
if (!d) return;
|
|
1796
|
-
const
|
|
1797
|
-
|
|
1796
|
+
const M = Tt(g);
|
|
1797
|
+
M.code === "not_found" || M.status === 404 ? a(!0) : l(M);
|
|
1798
1798
|
}), () => {
|
|
1799
1799
|
d = !1;
|
|
1800
1800
|
};
|
|
@@ -1854,107 +1854,107 @@ function vi(t, e) {
|
|
|
1854
1854
|
}
|
|
1855
1855
|
const _o = (t) => new Promise((e) => setTimeout(e, t)), Yo = 2500, Uo = 72;
|
|
1856
1856
|
function Ro(t, e) {
|
|
1857
|
-
const n = Et(), r =
|
|
1857
|
+
const n = Et(), r = k(n);
|
|
1858
1858
|
r.current = n;
|
|
1859
|
-
const [s, a] = z($t), o =
|
|
1860
|
-
const
|
|
1861
|
-
a({ ...
|
|
1862
|
-
}, []), L =
|
|
1859
|
+
const [s, a] = z($t), o = k($t()), l = k(null), c = k(e.lang ?? null), [u, d] = z(!1), [g, M] = z(null), [N, p] = z(!1), y = Ke(() => {
|
|
1860
|
+
const S = o.current;
|
|
1861
|
+
a({ ...S });
|
|
1862
|
+
}, []), L = k(e);
|
|
1863
1863
|
L.current = e, U(() => {
|
|
1864
1864
|
if (!t) return;
|
|
1865
|
-
let
|
|
1865
|
+
let S = !0, T = 0;
|
|
1866
1866
|
o.current = $t(), a($t()), p(!1);
|
|
1867
|
-
const
|
|
1868
|
-
let
|
|
1869
|
-
const
|
|
1870
|
-
var
|
|
1867
|
+
const E = n.client;
|
|
1868
|
+
let O = o.current.state;
|
|
1869
|
+
const te = () => {
|
|
1870
|
+
var v, ae;
|
|
1871
1871
|
const K = o.current.state;
|
|
1872
|
-
K !==
|
|
1872
|
+
K !== O && (O = K, (ae = (v = L.current).onState) == null || ae.call(v, K));
|
|
1873
1873
|
};
|
|
1874
1874
|
return (async () => {
|
|
1875
|
-
var K,
|
|
1876
|
-
for (;
|
|
1875
|
+
var K, v, ae, ne;
|
|
1876
|
+
for (; S; ) {
|
|
1877
1877
|
let G = null;
|
|
1878
1878
|
try {
|
|
1879
1879
|
const pe = c.current;
|
|
1880
|
-
if (G = await
|
|
1880
|
+
if (G = await E.recordings.subscribe(t, { lang: pe ?? void 0, ...n.readAs, asOwner: n.owner, voice: e.voice ?? void 0 }), !S) {
|
|
1881
1881
|
G.close();
|
|
1882
1882
|
return;
|
|
1883
1883
|
}
|
|
1884
|
-
T = 0, l.current = G, c.current !== pe && G.setLanguage(c.current), d(!0),
|
|
1884
|
+
T = 0, l.current = G, c.current !== pe && G.setLanguage(c.current), d(!0), M(null), o.current = sr(G.snapshot, o.current), y(), te();
|
|
1885
1885
|
for await (const le of G) {
|
|
1886
|
-
if (!
|
|
1886
|
+
if (!S) break;
|
|
1887
1887
|
if (le.type === "snapshot")
|
|
1888
|
-
o.current = sr(le.snapshot, le.reason === "gap" ? o.current : $t()), y(),
|
|
1888
|
+
o.current = sr(le.snapshot, le.reason === "gap" ? o.current : $t()), y(), te();
|
|
1889
1889
|
else if (le.type === "frame") {
|
|
1890
1890
|
fo(o.current, le.frame);
|
|
1891
1891
|
const Te = le.frame;
|
|
1892
|
-
Te.type === "recording.state" && (
|
|
1892
|
+
Te.type === "recording.state" && (O = o.current.state, (v = (K = L.current).onState) == null || v.call(K, Te.state, Te.reason)), (ne = (ae = L.current).onFrame) == null || ne.call(ae, Te), y();
|
|
1893
1893
|
} else le.type === "closed" && d(!1);
|
|
1894
1894
|
}
|
|
1895
1895
|
} catch (pe) {
|
|
1896
|
-
if (!
|
|
1896
|
+
if (!S) return;
|
|
1897
1897
|
const le = Tt(pe);
|
|
1898
1898
|
if (le.code === "not_found" || le.status === 404) {
|
|
1899
|
-
p(!0),
|
|
1899
|
+
p(!0), M(le);
|
|
1900
1900
|
return;
|
|
1901
1901
|
}
|
|
1902
1902
|
try {
|
|
1903
|
-
await
|
|
1903
|
+
await E.recordings.get(t, n.readAs);
|
|
1904
1904
|
} catch (Te) {
|
|
1905
1905
|
const je = Tt(Te);
|
|
1906
1906
|
if (je.code === "not_found" || je.status === 404) {
|
|
1907
|
-
p(!0),
|
|
1907
|
+
p(!0), M(je);
|
|
1908
1908
|
return;
|
|
1909
1909
|
}
|
|
1910
1910
|
if (je.code === "forbidden" || je.code === "invalid_token" || je.code === "password_required" || je.status === 401 || je.status === 403) {
|
|
1911
|
-
|
|
1911
|
+
M(je);
|
|
1912
1912
|
return;
|
|
1913
1913
|
}
|
|
1914
1914
|
}
|
|
1915
1915
|
if (le.code === "forbidden" || le.code === "invalid_token" || le.code === "password_required" || le.status === 401 || le.status === 403) {
|
|
1916
|
-
|
|
1916
|
+
M(le);
|
|
1917
1917
|
return;
|
|
1918
1918
|
}
|
|
1919
|
-
|
|
1919
|
+
M(le);
|
|
1920
1920
|
} finally {
|
|
1921
1921
|
l.current === G && (l.current = null), d(!1);
|
|
1922
1922
|
}
|
|
1923
1923
|
const J = o.current.state;
|
|
1924
|
-
if (!
|
|
1924
|
+
if (!S || J === "ended" || J === "finalized" || J === "processing") return;
|
|
1925
1925
|
T += 1, await _o(Math.min(15e3, 1e3 * 2 ** Math.min(T, 4)));
|
|
1926
1926
|
}
|
|
1927
1927
|
})(), () => {
|
|
1928
1928
|
var K;
|
|
1929
|
-
|
|
1929
|
+
S = !1, (K = l.current) == null || K.close(), l.current = null, d(!1);
|
|
1930
1930
|
};
|
|
1931
1931
|
}, [t, n, e.voice]);
|
|
1932
|
-
const [m, f] = z(!1), [I, C] = z(null), D =
|
|
1933
|
-
var
|
|
1934
|
-
if (c.current =
|
|
1935
|
-
const T = r.current.client,
|
|
1932
|
+
const [m, f] = z(!1), [I, C] = z(null), D = k(0), [B, _] = z(null), X = Ke((S) => {
|
|
1933
|
+
var te;
|
|
1934
|
+
if (c.current = S, (te = l.current) == null || te.setLanguage(S), !t) return;
|
|
1935
|
+
const T = r.current.client, E = ++D.current;
|
|
1936
1936
|
f(!0), C(null);
|
|
1937
|
-
const
|
|
1938
|
-
|
|
1939
|
-
|
|
1937
|
+
const O = (K) => T.recordings.transcript(t, { lang: S ?? void 0, ...r.current.readAs, asListener: !r.current.owner }).then((v) => {
|
|
1938
|
+
E === D.current && (o.current = sr(v, o.current), _(S), y(), v.translationPending && K > 0 && window.setTimeout(() => {
|
|
1939
|
+
E === D.current && O(K - 1).catch(() => {
|
|
1940
1940
|
});
|
|
1941
1941
|
}, Yo));
|
|
1942
1942
|
});
|
|
1943
|
-
|
|
1944
|
-
|
|
1943
|
+
O(Uo).catch(() => {
|
|
1944
|
+
E === D.current && S && C(S);
|
|
1945
1945
|
}).finally(() => {
|
|
1946
|
-
|
|
1946
|
+
E === D.current && f(!1);
|
|
1947
1947
|
});
|
|
1948
|
-
}, [y, t]), j = Ke((
|
|
1949
|
-
const
|
|
1950
|
-
let
|
|
1951
|
-
for (const [
|
|
1952
|
-
const
|
|
1953
|
-
|
|
1948
|
+
}, [y, t]), j = Ke((S, T) => {
|
|
1949
|
+
const E = o.current;
|
|
1950
|
+
let O = !1;
|
|
1951
|
+
for (const [te, K] of Object.entries(T)) {
|
|
1952
|
+
const v = E.sentences.get(Number(te));
|
|
1953
|
+
v && (v.translations = { ...v.translations, [S]: K }, O = !0);
|
|
1954
1954
|
}
|
|
1955
|
-
|
|
1956
|
-
}, [y]),
|
|
1957
|
-
return { model: s, connected: u, error:
|
|
1955
|
+
O && y();
|
|
1956
|
+
}, [y]), F = Ke(() => M(null), []);
|
|
1957
|
+
return { model: s, connected: u, error: g, notFound: N, clearError: F, setLanguage: X, mergeTranslations: j, translating: m, translateFailed: I, shownLang: B };
|
|
1958
1958
|
}
|
|
1959
1959
|
const Vs = {
|
|
1960
1960
|
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" },
|
|
@@ -2020,14 +2020,14 @@ async function Bo(t) {
|
|
|
2020
2020
|
Sr(t);
|
|
2021
2021
|
}
|
|
2022
2022
|
async function Vo(t, e, n, r = {}) {
|
|
2023
|
-
var
|
|
2023
|
+
var M, N;
|
|
2024
2024
|
const s = await t.client.recordings.export(e, n, { lang: r.lang ?? void 0, ...t.readAs });
|
|
2025
2025
|
if (!s.ok) throw await ji(s);
|
|
2026
|
-
const a = await s.blob(), o = s.headers.get("content-disposition") ?? "", l = (
|
|
2027
|
-
|
|
2026
|
+
const a = await s.blob(), o = s.headers.get("content-disposition") ?? "", l = (M = /filename\*=UTF-8''([^;]+)/i.exec(o)) == null ? void 0 : M[1], c = (N = /filename="([^"]+)"/i.exec(o)) == null ? void 0 : N[1], u = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, d = URL.createObjectURL(a), g = document.createElement("a");
|
|
2027
|
+
g.href = d, g.download = u, g.style.display = "none", document.body.appendChild(g), g.click(), g.remove(), window.setTimeout(() => URL.revokeObjectURL(d), 6e4);
|
|
2028
2028
|
}
|
|
2029
2029
|
async function Ho(t, e) {
|
|
2030
|
-
const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((
|
|
2030
|
+
const { recordingId: n, lang: r, voiceKey: s, cred: a } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((g) => g.lang === r), l = (d) => di(d, s);
|
|
2031
2031
|
let c = l(await o());
|
|
2032
2032
|
(!c || c.state === "clips" || c.state === "failed") && await e.request();
|
|
2033
2033
|
const u = Date.now() + (e.timeoutMs ?? 10 * 6e4);
|
|
@@ -2070,7 +2070,7 @@ function lr(t) {
|
|
|
2070
2070
|
};
|
|
2071
2071
|
}
|
|
2072
2072
|
function qo(t, e, n = 0) {
|
|
2073
|
-
const r =
|
|
2073
|
+
const r = k(() => {
|
|
2074
2074
|
});
|
|
2075
2075
|
U(() => {
|
|
2076
2076
|
r.current();
|
|
@@ -2079,25 +2079,25 @@ function qo(t, e, n = 0) {
|
|
|
2079
2079
|
if (!s || !a) return;
|
|
2080
2080
|
const o = () => {
|
|
2081
2081
|
let _ = s.parentElement;
|
|
2082
|
-
for (let
|
|
2082
|
+
for (let X = 0; X < 4 && _; X++) {
|
|
2083
2083
|
const j = _.querySelector("[data-transport]");
|
|
2084
2084
|
if (j) return j;
|
|
2085
2085
|
_ = _.parentElement;
|
|
2086
2086
|
}
|
|
2087
2087
|
return null;
|
|
2088
2088
|
}, l = () => {
|
|
2089
|
-
const _ = o(),
|
|
2090
|
-
return { vis: j, max:
|
|
2089
|
+
const _ = o(), X = _ ? _.offsetHeight : 0, j = s.clientHeight - X - 36, F = s.scrollHeight - s.clientHeight, S = j > 0 ? Math.max(30, Math.round(j * (s.clientHeight - X) / s.scrollHeight)) : 0;
|
|
2090
|
+
return { vis: j, max: F, size: S };
|
|
2091
2091
|
};
|
|
2092
|
-
let c = -1, u = null, d = !1,
|
|
2092
|
+
let c = -1, u = null, d = !1, g = 0, M = 0;
|
|
2093
2093
|
const N = () => {
|
|
2094
2094
|
const _ = o();
|
|
2095
2095
|
if (!_) return;
|
|
2096
|
-
const
|
|
2096
|
+
const X = parseFloat(s.dataset.glassExtra || "0") || 0, j = _.offsetHeight + 14 + X;
|
|
2097
2097
|
if (j === c) return;
|
|
2098
2098
|
c = j;
|
|
2099
|
-
const
|
|
2100
|
-
s.style.paddingBottom = j + "px",
|
|
2099
|
+
const F = s.scrollHeight - s.scrollTop - s.clientHeight < 40;
|
|
2100
|
+
s.style.paddingBottom = j + "px", F && (s.scrollTop = s.scrollHeight);
|
|
2101
2101
|
}, p = () => {
|
|
2102
2102
|
a.style.opacity = "1", clearTimeout(u), u = setTimeout(() => {
|
|
2103
2103
|
d || (a.style.opacity = "0");
|
|
@@ -2106,8 +2106,8 @@ function qo(t, e, n = 0) {
|
|
|
2106
2106
|
let y = null, L = null;
|
|
2107
2107
|
const m = (_) => {
|
|
2108
2108
|
N();
|
|
2109
|
-
const
|
|
2110
|
-
|
|
2109
|
+
const X = o();
|
|
2110
|
+
X && X !== L && y && (L = X, y.observe(X));
|
|
2111
2111
|
const j = l();
|
|
2112
2112
|
if (j.vis < 60 || j.max < 6) {
|
|
2113
2113
|
a.style.opacity = "0", a.style.pointerEvents = "none";
|
|
@@ -2117,18 +2117,18 @@ function qo(t, e, n = 0) {
|
|
|
2117
2117
|
}, f = parseFloat(getComputedStyle(s).paddingRight) || 0;
|
|
2118
2118
|
a.style.right = (f >= 12 ? -(f - 6) : 2) + "px";
|
|
2119
2119
|
const I = () => m(!0), C = (_) => {
|
|
2120
|
-
const
|
|
2121
|
-
|
|
2120
|
+
const X = l();
|
|
2121
|
+
X.vis - X.size <= 0 || (_.preventDefault(), _.stopPropagation(), a.setPointerCapture(_.pointerId), d = !0, g = _.clientY, M = s.scrollTop, a.style.cursor = "grabbing", p());
|
|
2122
2122
|
}, D = (_) => {
|
|
2123
2123
|
if (!d) return;
|
|
2124
|
-
const
|
|
2125
|
-
s.scrollTop =
|
|
2126
|
-
},
|
|
2124
|
+
const X = l();
|
|
2125
|
+
s.scrollTop = M + (_.clientY - g) / (X.vis - X.size) * X.max, p();
|
|
2126
|
+
}, B = () => {
|
|
2127
2127
|
d && (d = !1, a.style.cursor = "grab", p());
|
|
2128
2128
|
};
|
|
2129
|
-
return s.addEventListener("scroll", I, { passive: !0 }), a.addEventListener("pointerdown", C), a.addEventListener("pointermove", D), a.addEventListener("pointerup",
|
|
2129
|
+
return s.addEventListener("scroll", I, { passive: !0 }), a.addEventListener("pointerdown", C), a.addEventListener("pointermove", D), a.addEventListener("pointerup", B), a.addEventListener("pointercancel", B), typeof ResizeObserver < "u" && (y = new ResizeObserver(() => m()), y.observe(s)), r.current = () => m(), m(), () => {
|
|
2130
2130
|
r.current = () => {
|
|
2131
|
-
}, s.removeEventListener("scroll", I), a.removeEventListener("pointerdown", C), a.removeEventListener("pointermove", D), a.removeEventListener("pointerup",
|
|
2131
|
+
}, s.removeEventListener("scroll", I), a.removeEventListener("pointerdown", C), a.removeEventListener("pointermove", D), a.removeEventListener("pointerup", B), a.removeEventListener("pointercancel", B), y == null || y.disconnect(), clearTimeout(u);
|
|
2132
2132
|
};
|
|
2133
2133
|
}, []);
|
|
2134
2134
|
}
|
|
@@ -2136,7 +2136,7 @@ function Ko({ thumbRef: t }) {
|
|
|
2136
2136
|
return /* @__PURE__ */ i("div", { className: "feedbar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", { ref: t, className: "feedbar__thumb" }) });
|
|
2137
2137
|
}
|
|
2138
2138
|
function Jo({ error: t, onClose: e }) {
|
|
2139
|
-
const n =
|
|
2139
|
+
const n = k(e);
|
|
2140
2140
|
if (n.current = e, U(() => {
|
|
2141
2141
|
if (!t) return;
|
|
2142
2142
|
const s = setTimeout(() => n.current(), 8e3);
|
|
@@ -2144,7 +2144,7 @@ function Jo({ error: t, onClose: e }) {
|
|
|
2144
2144
|
}, [t]), !t) return null;
|
|
2145
2145
|
const r = t.code === "insufficient_credit" || t.code === "quota_exceeded" || t.status === 402;
|
|
2146
2146
|
return /* @__PURE__ */ h("div", { className: "toast", role: "alert", children: [
|
|
2147
|
-
/* @__PURE__ */ i(oe, { d:
|
|
2147
|
+
/* @__PURE__ */ i(oe, { d: ee.warn, size: 16, style: { color: "var(--conf-low)", flex: "none" } }),
|
|
2148
2148
|
/* @__PURE__ */ h("span", { style: { flex: 1 }, children: [
|
|
2149
2149
|
t.message,
|
|
2150
2150
|
r && /* @__PURE__ */ h(xe, { children: [
|
|
@@ -2152,11 +2152,11 @@ function Jo({ error: t, onClose: e }) {
|
|
|
2152
2152
|
/* @__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" })
|
|
2153
2153
|
] })
|
|
2154
2154
|
] }),
|
|
2155
|
-
/* @__PURE__ */ i("button", { type: "button", onClick: e, "aria-label": "Dismiss", children: /* @__PURE__ */ i(oe, { d:
|
|
2155
|
+
/* @__PURE__ */ i("button", { type: "button", onClick: e, "aria-label": "Dismiss", children: /* @__PURE__ */ i(oe, { d: ee.close, size: 14 }) })
|
|
2156
2156
|
] });
|
|
2157
2157
|
}
|
|
2158
2158
|
function Oi({ color: t }) {
|
|
2159
|
-
return /* @__PURE__ */ i("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ i(oe, { d:
|
|
2159
|
+
return /* @__PURE__ */ i("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ i(oe, { d: ee.voiceClone, size: 13, sw: 1.7, stroke: t }) });
|
|
2160
2160
|
}
|
|
2161
2161
|
function Zc({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, next: l }) {
|
|
2162
2162
|
return /* @__PURE__ */ h("div", { className: "vs-tt", children: [
|
|
@@ -2176,32 +2176,32 @@ function Zc({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: a, play: o, n
|
|
|
2176
2176
|
] });
|
|
2177
2177
|
}
|
|
2178
2178
|
function Xo({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: a, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
|
|
2179
|
-
const
|
|
2179
|
+
const g = k(null), M = k(!1), [N, p] = z(null), y = Math.max(1, e), L = N ?? u, m = L != null ? Math.min(100, Math.max(0, L * 100)) : t / Math.max(1, y - 1) * 100, f = u != null && d > 0 && N == null ? `width ${d}ms linear, left ${d}ms linear` : "none", I = (D) => {
|
|
2180
2180
|
var j;
|
|
2181
|
-
const
|
|
2182
|
-
if (!
|
|
2183
|
-
const _ = Math.min(1, Math.max(0, (D.clientX -
|
|
2181
|
+
const B = (j = g.current) == null ? void 0 : j.getBoundingClientRect();
|
|
2182
|
+
if (!B) return;
|
|
2183
|
+
const _ = Math.min(1, Math.max(0, (D.clientX - B.left) / Math.max(1, B.width)));
|
|
2184
2184
|
if (o) {
|
|
2185
2185
|
p(_), o(_);
|
|
2186
2186
|
return;
|
|
2187
2187
|
}
|
|
2188
|
-
const
|
|
2189
|
-
|
|
2188
|
+
const X = Math.round(_ * (y - 1));
|
|
2189
|
+
X !== t && a(X);
|
|
2190
2190
|
}, C = () => {
|
|
2191
|
-
|
|
2191
|
+
M.current && (M.current = !1, p(null), c == null || c());
|
|
2192
2192
|
};
|
|
2193
2193
|
return /* @__PURE__ */ h("div", { className: "rscrub", children: [
|
|
2194
2194
|
/* @__PURE__ */ h(
|
|
2195
2195
|
"div",
|
|
2196
2196
|
{
|
|
2197
|
-
ref:
|
|
2197
|
+
ref: g,
|
|
2198
2198
|
className: "rscrub__track",
|
|
2199
2199
|
onPointerDown: (D) => {
|
|
2200
|
-
var
|
|
2201
|
-
|
|
2200
|
+
var B;
|
|
2201
|
+
M.current = !0, (B = g.current) == null || B.setPointerCapture(D.pointerId), l == null || l(), I(D), D.preventDefault();
|
|
2202
2202
|
},
|
|
2203
2203
|
onPointerMove: (D) => {
|
|
2204
|
-
|
|
2204
|
+
M.current && I(D);
|
|
2205
2205
|
},
|
|
2206
2206
|
onPointerUp: C,
|
|
2207
2207
|
onPointerCancel: C,
|
|
@@ -2231,7 +2231,7 @@ function tl({ f: t, desk: e, onOpen: n }) {
|
|
|
2231
2231
|
const r = (s, a, o) => /* @__PURE__ */ h("span", { role: "button", title: "Open this line in Fix", className: "badge badge--fix", style: { marginLeft: o ? "auto" : 0 }, onClick: (l) => {
|
|
2232
2232
|
l.stopPropagation(), n == null || n();
|
|
2233
2233
|
}, children: [
|
|
2234
|
-
/* @__PURE__ */ i(oe, { d:
|
|
2234
|
+
/* @__PURE__ */ i(oe, { d: ee.pencilFix, size: e ? 10 : 9, sw: 2 }),
|
|
2235
2235
|
s,
|
|
2236
2236
|
a > 0 && /* @__PURE__ */ i("span", { className: "badge__n", children: a })
|
|
2237
2237
|
] }, s);
|
|
@@ -2245,20 +2245,20 @@ function nl({ onOpen: t, alone: e }) {
|
|
|
2245
2245
|
return /* @__PURE__ */ h("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) => {
|
|
2246
2246
|
s.stopPropagation(), t();
|
|
2247
2247
|
}, children: [
|
|
2248
|
-
/* @__PURE__ */ i(oe, { d:
|
|
2248
|
+
/* @__PURE__ */ i(oe, { d: ee.pencilFix, size: 11, sw: 2 }),
|
|
2249
2249
|
n && "FIX"
|
|
2250
2250
|
] });
|
|
2251
2251
|
}
|
|
2252
2252
|
function rl(t, e, n, r) {
|
|
2253
|
-
const s = Et(), [a, o] = z([]), [l, c] = z(0), u =
|
|
2253
|
+
const s = Et(), [a, o] = z([]), [l, c] = z(0), u = k(/* @__PURE__ */ new Set()), d = k(!1), g = Ie(() => new Map(n.filter((N) => N.sentenceId != null).map((N) => [N.sentenceId, N])), [n]);
|
|
2254
2254
|
U(() => {
|
|
2255
2255
|
u.current = /* @__PURE__ */ new Set();
|
|
2256
2256
|
}, [t, e]);
|
|
2257
|
-
const
|
|
2257
|
+
const M = Ke((N) => o(N), []);
|
|
2258
2258
|
return U(() => {
|
|
2259
2259
|
if (!t || !e || !a.length || d.current) return;
|
|
2260
2260
|
const N = a.filter((p) => {
|
|
2261
|
-
const y =
|
|
2261
|
+
const y = g.get(p);
|
|
2262
2262
|
return !y || !y.text.trim() || !y.settled || y.translations[e] || y.language && y.language.slice(0, 2).toLowerCase() === e.slice(0, 2).toLowerCase() ? !1 : !u.current.has(`${e}:${p}`);
|
|
2263
2263
|
}).slice(0, 40);
|
|
2264
2264
|
if (N.length) {
|
|
@@ -2274,7 +2274,7 @@ function rl(t, e, n, r) {
|
|
|
2274
2274
|
d.current = !1, c((p) => p + 1);
|
|
2275
2275
|
});
|
|
2276
2276
|
}
|
|
2277
|
-
}, [t, e, a, l,
|
|
2277
|
+
}, [t, e, a, l, g, r]), M;
|
|
2278
2278
|
}
|
|
2279
2279
|
function sl(t) {
|
|
2280
2280
|
return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
|
|
@@ -2333,28 +2333,28 @@ function Fs(t) {
|
|
|
2333
2333
|
function Gs(t, e, n = !0) {
|
|
2334
2334
|
const r = e.filter((o) => !o.cloned), s = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
|
|
2335
2335
|
for (const o of t) {
|
|
2336
|
-
const c = (o.voiceId ? e.find((
|
|
2336
|
+
const c = (o.voiceId ? e.find((M) => M.cloned && !M.auto && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (n ? (o.voiceId ? e.find((M) => M.cloned && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (o.key >= 0 ? e.find((M) => M.cloned && M.auto && M.consent !== "pending" && M.speaker === o.key) : void 0) : void 0);
|
|
2337
2337
|
if (c) {
|
|
2338
2338
|
a.set(o.key, c.id), s.add(c.id);
|
|
2339
2339
|
continue;
|
|
2340
2340
|
}
|
|
2341
|
-
const u = r.filter((
|
|
2342
|
-
|
|
2341
|
+
const u = r.filter((M) => !s.has(M.id)), g = (o.sex ? u.filter((M) => M.gender === o.sex) : [])[0] ?? u[0] ?? r[0];
|
|
2342
|
+
g && (a.set(o.key, g.id), s.add(g.id));
|
|
2343
2343
|
}
|
|
2344
2344
|
return a;
|
|
2345
2345
|
}
|
|
2346
2346
|
function ol({ roster: t, selected: e, onSelect: n, noClone: r, building: s, short: a, warn: o, sexOf: l, t: c }) {
|
|
2347
2347
|
const u = t.find((d) => d.key === e) ?? t[0] ?? null;
|
|
2348
2348
|
return u ? /* @__PURE__ */ i("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, padding: "0 2px 9px", margin: "0 -2px" }, children: t.map((d) => {
|
|
2349
|
-
const
|
|
2349
|
+
const g = d.key === u.key, M = d.key >= 0 ? (o == null ? void 0 : o(d)) ?? null : null, N = d.key >= 0 && !M && !!(s != null && s(d)), p = d.key >= 0 && !M && !N && r(d), y = d.key >= 0 && !M && !N && !p && !d.hasVoice && !!(a != null && a(d));
|
|
2350
2350
|
return /* @__PURE__ */ h(
|
|
2351
2351
|
"button",
|
|
2352
2352
|
{
|
|
2353
2353
|
type: "button",
|
|
2354
|
-
"aria-selected":
|
|
2354
|
+
"aria-selected": g,
|
|
2355
2355
|
onClick: () => n(d.key),
|
|
2356
2356
|
title: d.name,
|
|
2357
|
-
style: { flex: "none", boxSizing: "border-box", display: "flex", alignItems: "center", gap: 7, minHeight: 34, padding: "5px 11px", borderRadius: 9, font: "inherit", background:
|
|
2357
|
+
style: { flex: "none", boxSizing: "border-box", display: "flex", alignItems: "center", gap: 7, minHeight: 34, padding: "5px 11px", borderRadius: 9, font: "inherit", background: g ? "var(--brand-tint)" : "var(--fill-05)", border: `1px solid ${g ? "var(--brand-line)" : "transparent"}`, cursor: "pointer" },
|
|
2358
2358
|
children: [
|
|
2359
2359
|
/* @__PURE__ */ i(
|
|
2360
2360
|
"span",
|
|
@@ -2364,10 +2364,10 @@ function ol({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
|
|
|
2364
2364
|
children: d.initial
|
|
2365
2365
|
}
|
|
2366
2366
|
),
|
|
2367
|
-
/* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color:
|
|
2368
|
-
d.hasVoice && !
|
|
2369
|
-
|
|
2370
|
-
y && /* @__PURE__ */ i("span", { title: "Not enough audio to clone", "aria-label": "Not enough audio to clone", style: { flex: "none", display: "flex", marginRight: -2, color:
|
|
2367
|
+
/* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color: g ? "var(--ink-96)" : "var(--ink-62)", whiteSpace: "nowrap" }, children: d.name }),
|
|
2368
|
+
d.hasVoice && !M && /* @__PURE__ */ i(Oi, { color: d.fg ?? (g ? "var(--ink-62)" : "var(--ink-45)") }),
|
|
2369
|
+
M && /* @__PURE__ */ i("span", { title: M, "aria-label": M, style: { flex: "none", width: 15, height: 15, marginRight: -2, borderRadius: "50%", background: "#c27c00", color: "#fff", font: "900 10.5px/1 system-ui, sans-serif", display: "flex", alignItems: "center", justifyContent: "center" }, children: "!" }),
|
|
2370
|
+
y && /* @__PURE__ */ i("span", { title: "Not enough audio to clone", "aria-label": "Not enough audio to clone", style: { flex: "none", display: "flex", marginRight: -2, color: g ? "var(--ink-45)" : "var(--ink-35)" }, children: /* @__PURE__ */ i(oe, { d: ee.micOff, size: 13, sw: 1.7 }) }),
|
|
2371
2371
|
(p || N) && /* @__PURE__ */ i("span", { title: N ? "Cloning this voice…" : "No voice clone yet", "aria-label": N ? "Cloning this voice" : "No voice clone yet", style: { flex: "none", width: 10, height: 10, marginRight: -2, display: "flex", alignItems: "center", justifyContent: "center" }, children: N ? /* @__PURE__ */ i(at, { size: 10, color: "var(--brand)", track: "var(--fill-10)", sw: 1.6 }) : /* @__PURE__ */ i("span", { style: { width: 7, height: 7, borderRadius: "50%", background: "var(--brand)" } }) })
|
|
2372
2372
|
]
|
|
2373
2373
|
},
|
|
@@ -2375,21 +2375,21 @@ function ol({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
|
|
|
2375
2375
|
);
|
|
2376
2376
|
}) }) : null;
|
|
2377
2377
|
}
|
|
2378
|
-
function ll({ 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:
|
|
2378
|
+
function ll({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s = null, dlId: a = null, onPick: o, onAdd: l, onUse: c, usedBy: u, foldKey: d, foldFor: g = null, problem: M, noClone: N = null, t: p }) {
|
|
2379
2379
|
const y = Ie(() => il(e, p), [e, p]), [L, m] = z({});
|
|
2380
2380
|
U(() => {
|
|
2381
2381
|
m({});
|
|
2382
|
-
}, [d,
|
|
2382
|
+
}, [d, g]);
|
|
2383
2383
|
const f = (D) => D === p.vcMale.toUpperCase() || D === p.vcFemale.toUpperCase(), I = (D) => {
|
|
2384
2384
|
if (D === p.vcSheet) return !0;
|
|
2385
|
-
const
|
|
2386
|
-
return
|
|
2385
|
+
const B = L[D];
|
|
2386
|
+
return B != null ? !B : !g || !f(D) ? !0 : D === (g === "female" ? p.vcFemale : p.vcMale).toUpperCase();
|
|
2387
2387
|
}, C = !!r && r !== n;
|
|
2388
2388
|
return /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
2389
|
-
|
|
2390
|
-
/* @__PURE__ */ i(oe, { d:
|
|
2391
|
-
/* @__PURE__ */ i("span", { style: { flex: 1, minWidth: 0, fontSize: 12.5, fontWeight: 300, lineHeight: 1.45, color: "var(--ink-80)", textWrap: "pretty" }, children:
|
|
2392
|
-
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(za, { value:
|
|
2389
|
+
M && /* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "flex-start", gap: 9, padding: "10px 11px", marginBottom: 10, borderRadius: 11, background: "var(--conf-low-soft)" }, children: [
|
|
2390
|
+
/* @__PURE__ */ i(oe, { d: ee.warnTri, size: 15, sw: 1.7, style: { flex: "none", marginTop: 1, color: "var(--conf-low)" } }),
|
|
2391
|
+
/* @__PURE__ */ i("span", { style: { flex: 1, minWidth: 0, fontSize: 12.5, fontWeight: 300, lineHeight: 1.45, color: "var(--ink-80)", textWrap: "pretty" }, children: M }),
|
|
2392
|
+
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(za, { value: M, label: "Copy this error" }) })
|
|
2393
2393
|
] }),
|
|
2394
2394
|
t,
|
|
2395
2395
|
N && /* @__PURE__ */ h(xe, { children: [
|
|
@@ -2397,31 +2397,31 @@ function ll({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2397
2397
|
/* @__PURE__ */ h("div", { role: N.action ? "button" : "status", tabIndex: N.action ? 0 : void 0, title: N.tip, onClick: N.action, onKeyDown: N.action ? (D) => {
|
|
2398
2398
|
(D.key === "Enter" || D.key === " ") && (D.preventDefault(), N.action());
|
|
2399
2399
|
} : void 0, style: { display: "flex", alignItems: "center", gap: 11, padding: "11px 8px", margin: "0 -6px", borderRadius: 10, cursor: N.action ? "pointer" : "default" }, children: [
|
|
2400
|
-
/* @__PURE__ */ i("span", { style: { flex: "none", width: 32, height: 32, boxSizing: "border-box", borderRadius: "50%", border: N.busy ? 0 : N.action ? "1.5px solid var(--brand)" : "1.5px dashed var(--fill-20)", display: "flex", alignItems: "center", justifyContent: "center" }, children: N.busy ? /* @__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" } }) : /* @__PURE__ */ i(oe, { d: N.action ?
|
|
2400
|
+
/* @__PURE__ */ i("span", { style: { flex: "none", width: 32, height: 32, boxSizing: "border-box", borderRadius: "50%", border: N.busy ? 0 : N.action ? "1.5px solid var(--brand)" : "1.5px dashed var(--fill-20)", display: "flex", alignItems: "center", justifyContent: "center" }, children: N.busy ? /* @__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" } }) : /* @__PURE__ */ i(oe, { d: N.action ? ee.plus : ee.mic, size: 15, sw: N.action ? 2 : 1.6, style: { color: N.action ? "var(--brand)" : "var(--ink-45)" } }) }),
|
|
2401
2401
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
2402
2402
|
/* @__PURE__ */ i("div", { style: { fontSize: 14.5, fontWeight: N.action ? 500 : 400, color: N.action ? "var(--brand)" : "var(--ink-62)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: N.title }),
|
|
2403
2403
|
/* @__PURE__ */ i("div", { style: { fontSize: 12, fontWeight: 300, color: "var(--ink-62)", marginTop: 2, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: N.sub })
|
|
2404
2404
|
] })
|
|
2405
2405
|
] })
|
|
2406
2406
|
] }),
|
|
2407
|
-
y.map(({ v: D, headOn:
|
|
2408
|
-
const
|
|
2407
|
+
y.map(({ v: D, headOn: B, head: _, headCount: X, rule: j }, F) => {
|
|
2408
|
+
const S = sl(D), T = a === D.id, E = I(_), O = (u == null ? void 0 : u(D)) ?? null;
|
|
2409
2409
|
return /* @__PURE__ */ h(ga, { children: [
|
|
2410
|
-
|
|
2411
|
-
|
|
2410
|
+
B && _ === p.vcSheet && /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", padding: "14px 2px 6px", borderTop: F === 0 && !N ? "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: _ }) }),
|
|
2411
|
+
B && _ !== p.vcSheet && /* @__PURE__ */ h(
|
|
2412
2412
|
"button",
|
|
2413
2413
|
{
|
|
2414
2414
|
type: "button",
|
|
2415
|
-
onClick: (
|
|
2416
|
-
|
|
2415
|
+
onClick: (te) => {
|
|
2416
|
+
te.stopPropagation(), m((K) => ({ ...K, [_]: I(_) }));
|
|
2417
2417
|
},
|
|
2418
|
-
title: `${
|
|
2419
|
-
"aria-expanded":
|
|
2420
|
-
style: { width: "100%", textAlign: "left", font: "inherit", display: "flex", alignItems: "center", gap: 7, padding:
|
|
2418
|
+
title: `${E ? "Hide " : "Show "}${_.toLowerCase()} voices`,
|
|
2419
|
+
"aria-expanded": E,
|
|
2420
|
+
style: { width: "100%", textAlign: "left", font: "inherit", display: "flex", alignItems: "center", gap: 7, padding: E ? "14px 2px 6px" : "14px 2px 14px", border: 0, borderTop: F === 0 && !N ? "0" : "1px solid var(--hair)", background: "transparent", cursor: "pointer", userSelect: "none" },
|
|
2421
2421
|
children: [
|
|
2422
|
-
/* @__PURE__ */ i(oe, { d:
|
|
2422
|
+
/* @__PURE__ */ i(oe, { d: ee.chevronDown, size: 12, sw: 2.4, style: { flex: "none", color: "var(--ink-45)", transform: `rotate(${E ? "0deg" : "-90deg"})`, transition: "transform .18s ease" } }),
|
|
2423
2423
|
/* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: _ }),
|
|
2424
|
-
/* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", color: "var(--ink-62)" }, children:
|
|
2424
|
+
/* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", color: "var(--ink-62)" }, children: X })
|
|
2425
2425
|
]
|
|
2426
2426
|
}
|
|
2427
2427
|
),
|
|
@@ -2430,31 +2430,31 @@ function ll({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
|
|
|
2430
2430
|
{
|
|
2431
2431
|
type: "button",
|
|
2432
2432
|
"aria-selected": D.id === n,
|
|
2433
|
-
"aria-hidden": !
|
|
2434
|
-
tabIndex:
|
|
2433
|
+
"aria-hidden": !E,
|
|
2434
|
+
tabIndex: E ? void 0 : -1,
|
|
2435
2435
|
onClick: () => o(D),
|
|
2436
|
-
style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop:
|
|
2436
|
+
style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: E ? j : "0", display: "flex", alignItems: "center", gap: 11, padding: E ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: r === D.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: E ? 1 : 0, maxHeight: E ? 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" },
|
|
2437
2437
|
children: [
|
|
2438
2438
|
/* @__PURE__ */ i("span", { title: T ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: T ? "transparent" : D.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: T ? /* @__PURE__ */ i("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : s === D.id ? /* @__PURE__ */ h("span", { className: "vcplay", children: [
|
|
2439
2439
|
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(cl, { height: 13, width: 2.5 }) }),
|
|
2440
2440
|
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(va, { size: 11 }) })
|
|
2441
|
-
] }) : /* @__PURE__ */ i(oe, { d: D.cloned ?
|
|
2441
|
+
] }) : /* @__PURE__ */ i(oe, { d: D.cloned ? ee.voiceClone : D.gender === "female" ? ee.venus : D.gender === "male" ? ee.mars : ee.mic, size: 15, sw: 1.6, style: { color: D.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
|
|
2442
2442
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
2443
2443
|
/* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, minWidth: 0 }, children: /* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 14.5, fontWeight: D.id === n ? 600 : 400, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: D.name }) }),
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
/* @__PURE__ */ i(oe, { d:
|
|
2447
|
-
/* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 11, fontWeight: 300, color: "var(--conf-mid)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: `${p.vcShared} ${
|
|
2448
|
-
] }) : /* @__PURE__ */ i("div", { style: { marginTop: 2, minWidth: 0, fontSize: 12, fontWeight: 300, color: "var(--ink-50)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: `${p.vcUsedBy} ${
|
|
2444
|
+
S && /* @__PURE__ */ i("div", { style: { fontSize: 12, fontWeight: 300, color: "var(--ink-62)", marginTop: 2, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: S }),
|
|
2445
|
+
O && (D.id === n ? /* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "center", gap: 5, marginTop: 3, minWidth: 0 }, children: [
|
|
2446
|
+
/* @__PURE__ */ i(oe, { d: ee.notice, size: 12, sw: 1.7, style: { flex: "none", color: "var(--conf-mid)" } }),
|
|
2447
|
+
/* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 11, fontWeight: 300, color: "var(--conf-mid)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: `${p.vcShared} ${O}` })
|
|
2448
|
+
] }) : /* @__PURE__ */ i("div", { style: { marginTop: 2, minWidth: 0, fontSize: 12, fontWeight: 300, color: "var(--ink-50)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: `${p.vcUsedBy} ${O}` }))
|
|
2449
2449
|
] }),
|
|
2450
2450
|
/* @__PURE__ */ h("div", { style: { flex: "none", width: D.live ? D.id === n ? 18 : 0 : 42, overflow: "hidden", display: "flex", alignItems: "center", justifyContent: "flex-end", gap: 6 }, children: [
|
|
2451
2451
|
/* @__PURE__ */ i("span", { style: { flex: "none", width: 18, height: 18 } }),
|
|
2452
|
-
/* @__PURE__ */ i("span", { style: { flex: "none", width: 18, height: 18, display: "flex", alignItems: "center", justifyContent: "center" }, children: D.id === n && /* @__PURE__ */ i(oe, { d:
|
|
2452
|
+
/* @__PURE__ */ i("span", { style: { flex: "none", width: 18, height: 18, display: "flex", alignItems: "center", justifyContent: "center" }, children: D.id === n && /* @__PURE__ */ i(oe, { d: ee.check, size: 17, sw: 2.2, style: { flex: "none", color: "var(--brand)" } }) })
|
|
2453
2453
|
] }),
|
|
2454
|
-
(D.live || D.cloned && D.library === !1 && !D.auto && !!l) && /* @__PURE__ */ h("span", { className: "gvadd", role: "button", title: D.live ? `Save ${D.name}’s voice from this session` : `Add ${D.name} to My voices`, onClick: l ? (
|
|
2455
|
-
|
|
2454
|
+
(D.live || D.cloned && D.library === !1 && !D.auto && !!l) && /* @__PURE__ */ h("span", { className: "gvadd", role: "button", title: D.live ? `Save ${D.name}’s voice from this session` : `Add ${D.name} to My voices`, onClick: l ? (te) => {
|
|
2455
|
+
te.stopPropagation(), l(D);
|
|
2456
2456
|
} : void 0, children: [
|
|
2457
|
-
/* @__PURE__ */ i(oe, { d:
|
|
2457
|
+
/* @__PURE__ */ i(oe, { d: ee.plus, size: 14, sw: 2 }),
|
|
2458
2458
|
"Add"
|
|
2459
2459
|
] })
|
|
2460
2460
|
]
|
|
@@ -2474,8 +2474,8 @@ function cl({ height: t, width: e = 2 }) {
|
|
|
2474
2474
|
] });
|
|
2475
2475
|
}
|
|
2476
2476
|
const ul = /* @__PURE__ */ h("span", { style: { display: "inline-flex", alignItems: "center", gap: 3 }, children: [
|
|
2477
|
-
/* @__PURE__ */ i(oe, { d:
|
|
2478
|
-
/* @__PURE__ */ i(oe, { d:
|
|
2477
|
+
/* @__PURE__ */ i(oe, { d: ee.langAuto, size: 19, sw: 1.7, style: { color: "var(--ink-62)", display: "block" } }),
|
|
2478
|
+
/* @__PURE__ */ i(oe, { d: ee.globe, size: 18, sw: 1.6, style: { color: "var(--ink-62)", display: "block" } })
|
|
2479
2479
|
] });
|
|
2480
2480
|
function wr(t, e) {
|
|
2481
2481
|
const n = e ? t == null ? void 0 : t.languages.find((r) => r.code === e) : null;
|
|
@@ -2499,13 +2499,13 @@ function Ml({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2499
2499
|
const o = Et(), { data: l, reload: c } = vi(async () => {
|
|
2500
2500
|
if (!t || !e) return null;
|
|
2501
2501
|
const K = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
|
|
2502
|
-
return { recordingId: t, lang: e, rows: K.filter((
|
|
2502
|
+
return { recordingId: t, lang: e, rows: K.filter((v) => v.lang === e) };
|
|
2503
2503
|
}, [t, e, o, n]), u = Ie(
|
|
2504
2504
|
() => l && l.lang === e && l.recordingId === t ? l.rows : [],
|
|
2505
2505
|
[l, e, t]
|
|
2506
|
-
), d = Ie(() => di(u, s), [u, s]),
|
|
2506
|
+
), d = Ie(() => di(u, s), [u, s]), g = d ? d.voiceKey || null : s, [M, N] = z(null), [p, y] = z(null), L = k(/* @__PURE__ */ new Set()), m = `${t ?? ""}|${e ?? ""}|${g ?? ""}`, f = Ke(async (K, v) => {
|
|
2507
2507
|
if (!t || !e || !n) return;
|
|
2508
|
-
const ae =
|
|
2508
|
+
const ae = v != null && v.size ? null : Fs(K), ne = v != null && v.size ? v : ae, G = ne && ne.size ? Object.fromEntries([...ne].map(([Te, je]) => [String(Te), je])) : null, J = `${t}|${e}|${G ? JSON.stringify(G) : K ?? ""}`;
|
|
2509
2509
|
if (L.current.has(J)) return;
|
|
2510
2510
|
L.current.add(J), N(J), y(null);
|
|
2511
2511
|
const pe = { langs: [e] };
|
|
@@ -2520,42 +2520,42 @@ function Ml({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
|
|
|
2520
2520
|
c();
|
|
2521
2521
|
}, [t, e, n, o, c]), I = Ke(() => {
|
|
2522
2522
|
const K = `${t ?? ""}|${e ?? ""}|`;
|
|
2523
|
-
for (const
|
|
2523
|
+
for (const v of [...L.current]) v.startsWith(K) && L.current.delete(v);
|
|
2524
2524
|
y(null);
|
|
2525
|
-
}, [t, e]), C = !!d && (d.state === "queued" || d.state === "running") ||
|
|
2525
|
+
}, [t, e]), C = !!d && (d.state === "queued" || d.state === "running") || M === m, D = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : p, B = (a == null ? void 0 : a.join(",")) ?? "", [_, X] = z(null), j = Ie(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), F = Ie(() => n && B ? B.split(",").map(Number).filter((K) => !j.has(K)) : [], [n, B, j]), S = k(null);
|
|
2526
2526
|
U(() => {
|
|
2527
|
-
if (!n || !t || !e || !
|
|
2528
|
-
const K = _ ??
|
|
2529
|
-
if (
|
|
2530
|
-
|
|
2531
|
-
const G = Fs(
|
|
2532
|
-
G && G.size ? J.voiceBySpeaker = Object.fromEntries([...G].map(([pe, le]) => [String(pe), le])) :
|
|
2533
|
-
pe.ok || (
|
|
2527
|
+
if (!n || !t || !e || !F.length) return;
|
|
2528
|
+
const K = _ ?? F[0], v = F.find((pe) => pe >= K) ?? F[0], ae = `${t}|${e}|${g ?? ""}`, ne = S.current;
|
|
2529
|
+
if (ne && ne.key === ae && Math.abs(ne.near - v) < 12 && Date.now() - ne.at < 6e4) return;
|
|
2530
|
+
S.current = { key: ae, near: v, at: Date.now() };
|
|
2531
|
+
const G = Fs(g), J = { langs: [e], near: v };
|
|
2532
|
+
G && G.size ? J.voiceBySpeaker = Object.fromEntries([...G].map(([pe, le]) => [String(pe), le])) : g && (J.voice = g), Bs(o, `/v1/recordings/${t}/voice`, { method: "POST", body: J }).then((pe) => {
|
|
2533
|
+
pe.ok || (S.current = null);
|
|
2534
2534
|
}).catch(() => {
|
|
2535
|
-
|
|
2535
|
+
S.current = null;
|
|
2536
2536
|
});
|
|
2537
|
-
}, [n, t, e,
|
|
2538
|
-
const T =
|
|
2537
|
+
}, [n, t, e, g, _, F, o]);
|
|
2538
|
+
const T = F.length > 0, E = k({ n: -1, at: 0 });
|
|
2539
2539
|
U(() => {
|
|
2540
2540
|
if (!T) return;
|
|
2541
2541
|
const K = setInterval(() => {
|
|
2542
|
-
const
|
|
2543
|
-
|
|
2542
|
+
const v = j.size;
|
|
2543
|
+
v !== E.current.n && (E.current = { n: v, at: Date.now() }), !(Date.now() - E.current.at > 10 * 6e4) && c();
|
|
2544
2544
|
}, 3e3);
|
|
2545
2545
|
return () => clearInterval(K);
|
|
2546
2546
|
}, [T, c, j]);
|
|
2547
|
-
const
|
|
2547
|
+
const O = Ie(() => {
|
|
2548
2548
|
if (!t) return [];
|
|
2549
|
-
const K =
|
|
2550
|
-
return Ya(
|
|
2551
|
-
}, [d, t, o, r,
|
|
2552
|
-
return { listed: l, rows: u, track: d, renderVoiceId:
|
|
2549
|
+
const K = B ? B.split(",").map(Number).filter((ae) => !n || j.has(ae)) : void 0, v = d ?? (K != null && K.length && e ? { lang: e, voiceKey: s ?? "", clips: [], voice: null } : null);
|
|
2550
|
+
return Ya(v, t, o.origin, r, K);
|
|
2551
|
+
}, [d, t, o, r, B, e, s, n, j]), te = Ie(() => new Set(F), [F]);
|
|
2552
|
+
return { listed: l, rows: u, track: d, renderVoiceId: g, rendering: C, failed: D, clips: O, requestRender: f, forget: I, reload: c, setNear: X, missing: F.length, coming: te };
|
|
2553
2553
|
}
|
|
2554
|
-
const gl = { share:
|
|
2554
|
+
const gl = { share: ee.share, delay: ee.tabGauge, video: ee.video, source: ee.tabSources, script: ee.tabScript, fix: ee.tabFix, ending: ee.tabEnding, summary: ee.tabSummary, export: ee.tabExport, settings: ee.tabSettings, sources: ee.tabSources, recs: ee.mic };
|
|
2555
2555
|
function Ci({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s }) {
|
|
2556
|
-
const o = s && t.length <= 3, l = t.some((L) => L.key === e), [c, u] = z(null), d =
|
|
2556
|
+
const o = s && t.length <= 3, l = t.some((L) => L.key === e), [c, u] = z(null), d = k(null), [g, M] = z(0);
|
|
2557
2557
|
U(() => {
|
|
2558
|
-
d.current &&
|
|
2558
|
+
d.current && M(d.current.offsetWidth);
|
|
2559
2559
|
}, [c == null ? void 0 : c.k]);
|
|
2560
2560
|
const N = (L, m) => {
|
|
2561
2561
|
const f = L.currentTarget.querySelector(".tabbar__label");
|
|
@@ -2569,7 +2569,7 @@ function Ci({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
2569
2569
|
}, p = () => u(null);
|
|
2570
2570
|
let y = null;
|
|
2571
2571
|
if (c) {
|
|
2572
|
-
const L = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, m =
|
|
2572
|
+
const L = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, m = g || 80, f = Math.max(L.l + 8, Math.min(L.r - m - 8, c.x - m / 2));
|
|
2573
2573
|
y = Na(
|
|
2574
2574
|
/* @__PURE__ */ i("div", { className: "vsp vsp-portal", "data-theme": "dark", children: /* @__PURE__ */ h("div", { ref: d, "data-theme": "dark", className: "vs-tip__bubble vs-tip__bubble--top tabtip", style: { position: "fixed", left: f, top: c.y - 8, bottom: "auto", width: "auto", whiteSpace: "nowrap", transform: "translateY(-100%)", zIndex: 2147483e3, pointerEvents: "none" }, children: [
|
|
2575
2575
|
/* @__PURE__ */ i("span", { className: "vs-tip__row", children: /* @__PURE__ */ i("span", { className: "vs-tip__copy", children: c.label }) }),
|
|
@@ -2586,7 +2586,7 @@ function Ci({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
2586
2586
|
return s ? /* @__PURE__ */ h("button", { type: "button", role: "tab", "aria-selected": m, title: L.label, className: `tabbar__tab${m ? " is-on" : ""}`, style: { flex: I }, onClick: D, children: [
|
|
2587
2587
|
C && /* @__PURE__ */ i(oe, { d: C, size: 15, sw: L.sw ?? 2, style: { flex: "none" } }),
|
|
2588
2588
|
f && /* @__PURE__ */ i("span", { className: "tabbar__label", children: L.label })
|
|
2589
|
-
] }, L.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex: I }, onMouseEnter: (
|
|
2589
|
+
] }, L.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex: I }, onMouseEnter: (B) => N(B, L), onMouseMove: (B) => N(B, L), onClick: D, children: /* @__PURE__ */ h("button", { type: "button", role: "tab", "aria-selected": m, "aria-label": L.label, className: `tabbar__tab${m ? " is-on" : ""}${(c == null ? void 0 : c.k) === L.key ? " is-tip" : ""}`, children: [
|
|
2590
2590
|
C && /* @__PURE__ */ i(oe, { d: C, size: 15, sw: L.sw ?? 2, className: "tabbar__icon", style: { flex: "none", transform: m && !o ? "scale(1.12)" : "none" } }),
|
|
2591
2591
|
/* @__PURE__ */ i("span", { className: "tabbar__grow", "data-tab-lw": "", style: { gridTemplateColumns: f ? "1fr" : "0fr", marginLeft: f && C ? 6 : 0 }, children: /* @__PURE__ */ i("span", { className: "tabbar__label", "data-tab-l": "", style: { opacity: f ? 1 : 0, transform: f ? "none" : "translateX(-6px)" }, children: L.label }) })
|
|
2592
2592
|
] }) }, L.key);
|
|
@@ -2596,20 +2596,20 @@ function Ci({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: a = !s
|
|
|
2596
2596
|
}
|
|
2597
2597
|
const fl = "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", pl = "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";
|
|
2598
2598
|
function Nl({ audio: t, video: e, formats: n, onExport: r }) {
|
|
2599
|
-
const [s, a] = z(null), [o, l] = z(null), c =
|
|
2599
|
+
const [s, a] = z(null), [o, l] = z(null), c = k(void 0), u = k(!0);
|
|
2600
2600
|
U(() => (u.current = !0, () => {
|
|
2601
2601
|
u.current = !1, window.clearTimeout(c.current);
|
|
2602
2602
|
}), []);
|
|
2603
2603
|
const d = (p) => {
|
|
2604
2604
|
window.clearTimeout(c.current), a(p), c.current = window.setTimeout(() => a(null), 1600);
|
|
2605
|
-
},
|
|
2605
|
+
}, g = (p) => {
|
|
2606
2606
|
o || (l(p), Promise.resolve().then(() => r(p)).then(() => {
|
|
2607
2607
|
u.current && d(p);
|
|
2608
2608
|
}).catch(() => {
|
|
2609
2609
|
}).finally(() => {
|
|
2610
2610
|
u.current && l(null);
|
|
2611
2611
|
}));
|
|
2612
|
-
},
|
|
2612
|
+
}, M = (p, y) => {
|
|
2613
2613
|
o || (l(p), Promise.resolve().then(() => y.onClick()).then(() => {
|
|
2614
2614
|
u.current && d(p);
|
|
2615
2615
|
}).catch(() => {
|
|
@@ -2618,22 +2618,22 @@ function Nl({ audio: t, video: e, formats: n, onExport: r }) {
|
|
|
2618
2618
|
}));
|
|
2619
2619
|
}, N = (p, y, L, m) => /* @__PURE__ */ h(xe, { children: [
|
|
2620
2620
|
/* @__PURE__ */ i(gr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: m }),
|
|
2621
|
-
/* @__PURE__ */ h("button", { type: "button", className: "dlrow", disabled: o != null, "aria-busy": o === p || void 0, onClick: () =>
|
|
2621
|
+
/* @__PURE__ */ h("button", { type: "button", className: "dlrow", disabled: o != null, "aria-busy": o === p || void 0, onClick: () => M(p, y), style: o && o !== p ? { opacity: 0.45 } : void 0, children: [
|
|
2622
2622
|
o === p ? /* @__PURE__ */ i(at, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: L, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
|
|
2623
2623
|
/* @__PURE__ */ h("span", { style: { flex: 1, minWidth: 0, display: "flex", flexDirection: "column", gap: 1, textAlign: "left" }, children: [
|
|
2624
2624
|
/* @__PURE__ */ i("span", { style: { fontSize: 13, fontWeight: 500, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: y.name }),
|
|
2625
2625
|
/* @__PURE__ */ i("span", { style: { font: "500 9.5px var(--vs-font-mono)", color: "var(--ink-40)", letterSpacing: ".04em" }, children: y.meta })
|
|
2626
2626
|
] }),
|
|
2627
|
-
/* @__PURE__ */ i(oe, { d: s === p ?
|
|
2627
|
+
/* @__PURE__ */ i(oe, { d: s === p ? ee.check : fl, size: 17, sw: 1.6, style: { flex: "none", color: s === p ? "var(--brand)" : "var(--ink-62)" } })
|
|
2628
2628
|
] })
|
|
2629
2629
|
] });
|
|
2630
2630
|
return /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
|
|
2631
2631
|
t && N("audio", t, pl, "DOWNLOAD AUDIO"),
|
|
2632
|
-
e && N("video", e,
|
|
2632
|
+
e && N("video", e, ee.video, "DOWNLOAD VIDEO"),
|
|
2633
2633
|
n !== !1 && /* @__PURE__ */ h(xe, { children: [
|
|
2634
2634
|
/* @__PURE__ */ i(gr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
|
|
2635
|
-
/* @__PURE__ */ i("div", { className: "fmtgrid", children: Tr.map((p) => /* @__PURE__ */ h("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: () =>
|
|
2636
|
-
o === p.key ? /* @__PURE__ */ i(at, { size: 16, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: s === p.key ?
|
|
2635
|
+
/* @__PURE__ */ i("div", { className: "fmtgrid", children: Tr.map((p) => /* @__PURE__ */ h("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: () => g(p.key), style: o && o !== p.key ? { opacity: 0.45 } : void 0, children: [
|
|
2636
|
+
o === p.key ? /* @__PURE__ */ i(at, { size: 16, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: s === p.key ? ee.check : p.icon, size: 16, sw: 1.6, style: { color: s === p.key ? "var(--brand)" : "var(--ink-62)" } }),
|
|
2637
2637
|
/* @__PURE__ */ i("span", { children: p.name })
|
|
2638
2638
|
] }, p.key)) })
|
|
2639
2639
|
] })
|
|
@@ -2676,7 +2676,7 @@ function yl(t) {
|
|
|
2676
2676
|
} };
|
|
2677
2677
|
}
|
|
2678
2678
|
function Tl({ s: t }) {
|
|
2679
|
-
const [e, n] = z(!1), r =
|
|
2679
|
+
const [e, n] = z(!1), r = k(void 0);
|
|
2680
2680
|
U(() => () => window.clearTimeout(r.current), []);
|
|
2681
2681
|
const s = t.title ?? "", a = t.summary ?? "", o = () => {
|
|
2682
2682
|
var c;
|
|
@@ -2692,7 +2692,7 @@ ${a}`).catch(() => {
|
|
|
2692
2692
|
/* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 8, minHeight: 24 }, children: [
|
|
2693
2693
|
/* @__PURE__ */ i(gr, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "SUMMARY" }),
|
|
2694
2694
|
t.state === "ready" && /* @__PURE__ */ h("button", { type: "button", className: "sumcopy", title: "Copy title and summary", style: { color: e ? "var(--brand)" : "var(--ink-70)" }, onClick: o, children: [
|
|
2695
|
-
/* @__PURE__ */ i(oe, { d: e ?
|
|
2695
|
+
/* @__PURE__ */ i(oe, { d: e ? ee.check : vl, size: 13, sw: 1.6 }),
|
|
2696
2696
|
e ? "Copied" : "Copy"
|
|
2697
2697
|
] })
|
|
2698
2698
|
] }),
|
|
@@ -2714,18 +2714,18 @@ function wl({ ytId: t, title: e, timeLabel: n, radius: r, style: s, large: a, ch
|
|
|
2714
2714
|
] });
|
|
2715
2715
|
}
|
|
2716
2716
|
function Ll(t = !0, e) {
|
|
2717
|
-
const n =
|
|
2717
|
+
const n = k(null), r = e ?? n;
|
|
2718
2718
|
return U(() => {
|
|
2719
2719
|
const s = r.current;
|
|
2720
2720
|
if (!s || !t) return;
|
|
2721
2721
|
let a = 0, o = 0, l = !1;
|
|
2722
|
-
const c = (
|
|
2723
|
-
|
|
2724
|
-
}, u = (
|
|
2722
|
+
const c = (g) => {
|
|
2723
|
+
g.button !== 0 || g.target.closest("button,a,input,textarea,select") || (l = !0, a = g.clientY, o = s.scrollTop, s.classList.add("is-dragging"));
|
|
2724
|
+
}, u = (g) => {
|
|
2725
2725
|
var N;
|
|
2726
2726
|
if (!l) return;
|
|
2727
|
-
const
|
|
2728
|
-
Math.abs(
|
|
2727
|
+
const M = g.clientY - a;
|
|
2728
|
+
Math.abs(M) > 2 && ((N = s.setPointerCapture) == null || N.call(s, g.pointerId)), s.scrollTop = o - M;
|
|
2729
2729
|
}, d = () => {
|
|
2730
2730
|
l = !1, s.classList.remove("is-dragging");
|
|
2731
2731
|
};
|
|
@@ -2745,13 +2745,13 @@ function kl(t, e) {
|
|
|
2745
2745
|
(e.forcePin ?? []).forEach((f) => {
|
|
2746
2746
|
l = l.filter((I) => I !== `!${f}`), s.includes(f) && !l.includes(f) && (l = [f, ...l]);
|
|
2747
2747
|
});
|
|
2748
|
-
const u = (f) => (e.forcePin ?? []).includes(f) && !c.includes(f), d = a ? l.filter((f) => s.includes(f) && o.includes(f)) : [],
|
|
2749
|
-
const I =
|
|
2750
|
-
return I[
|
|
2748
|
+
const u = (f) => (e.forcePin ?? []).includes(f) && !c.includes(f), d = a ? l.filter((f) => s.includes(f) && o.includes(f)) : [], g = s.filter((f) => !d.includes(f)), M = e.cur && e.cur !== "none" && g.includes(e.cur) ? e.cur : e.pref && g.includes(e.pref) ? e.pref : g[0] ?? null, N = (f) => {
|
|
2749
|
+
const I = g.filter((C) => C !== f);
|
|
2750
|
+
return I[g.indexOf(f)] ?? I[I.length - 1] ?? null;
|
|
2751
2751
|
}, p = (f, I) => {
|
|
2752
2752
|
if (!o.includes(f)) return;
|
|
2753
2753
|
const C = d.filter((D) => D !== f);
|
|
2754
|
-
if (C.splice(I ?? C.length, 0, f),
|
|
2754
|
+
if (C.splice(I ?? C.length, 0, f), M === f) {
|
|
2755
2755
|
const D = N(f);
|
|
2756
2756
|
D && e.onPick(D);
|
|
2757
2757
|
}
|
|
@@ -2764,15 +2764,15 @@ function kl(t, e) {
|
|
|
2764
2764
|
}, m = (f) => {
|
|
2765
2765
|
const I = d.includes(f), C = s.includes(f);
|
|
2766
2766
|
return {
|
|
2767
|
-
show: C && (!a || I ||
|
|
2767
|
+
show: C && (!a || I || M === f),
|
|
2768
2768
|
pinned: I,
|
|
2769
2769
|
order: I ? d.indexOf(f) + 1 : 1e3,
|
|
2770
|
-
pill: a && C && o.includes(f) &&
|
|
2770
|
+
pill: a && C && o.includes(f) && g.length > 0 && (I || g.length > 1),
|
|
2771
2771
|
title: I ? `Unpin — return ${L(f)} to the tabs` : `Pin ${L(f)} open above the tabs`,
|
|
2772
2772
|
toggle: () => I ? y(f) : p(f)
|
|
2773
2773
|
};
|
|
2774
2774
|
};
|
|
2775
|
-
return { id: t, tabbed: a &&
|
|
2775
|
+
return { id: t, tabbed: a && g.length > 1, cur: M, seq: d, pinnable: o, tabKeys: g, stripTabs: e.tabs.filter((f) => g.includes(f.key)), panel: m, pin: p, unpin: y };
|
|
2776
2776
|
}
|
|
2777
2777
|
function jl({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
2778
2778
|
return zl(t), /* @__PURE__ */ h(xe, { children: [
|
|
@@ -2782,7 +2782,7 @@ function jl({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
|
2782
2782
|
const c = n(o);
|
|
2783
2783
|
return c ? /* @__PURE__ */ h("div", { "data-panel-key": o, "data-pinned": l.pinned ? "true" : "false", className: `pinwrap sidepanel ${(a == null ? void 0 : a(o, l.pinned)) ?? ""}`, style: { order: l.order, "--grip-h": `${(r == null ? void 0 : r[o]) ?? 30}px` }, children: [
|
|
2784
2784
|
c,
|
|
2785
|
-
l.pill && /* @__PURE__ */ i("button", { type: "button", "data-pin-pill": "", className: `pinpill${l.pinned ? " is-on" : ""}`, title: l.title, "aria-label": l.title, "aria-pressed": l.pinned, onClick: l.toggle, children: /* @__PURE__ */ i(oe, { d:
|
|
2785
|
+
l.pill && /* @__PURE__ */ i("button", { type: "button", "data-pin-pill": "", className: `pinpill${l.pinned ? " is-on" : ""}`, title: l.title, "aria-label": l.title, "aria-pressed": l.pinned, onClick: l.toggle, children: /* @__PURE__ */ i(oe, { d: ee.pin, size: 12, sw: 2 }) })
|
|
2786
2786
|
] }, o) : null;
|
|
2787
2787
|
}),
|
|
2788
2788
|
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(Ci, { tabs: t.stripTabs, current: t.cur, onPick: (o) => {
|
|
@@ -2792,7 +2792,7 @@ function jl({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: a }) {
|
|
|
2792
2792
|
] });
|
|
2793
2793
|
}
|
|
2794
2794
|
function zl(t) {
|
|
2795
|
-
const e =
|
|
2795
|
+
const e = k(t);
|
|
2796
2796
|
e.current = t;
|
|
2797
2797
|
const n = t.id;
|
|
2798
2798
|
U(() => {
|
|
@@ -2800,49 +2800,49 @@ function zl(t) {
|
|
|
2800
2800
|
const a = (m) => {
|
|
2801
2801
|
r !== m && (r && r.removeAttribute("data-grip-hot"), r = m, m && m.setAttribute("data-grip-hot", ""));
|
|
2802
2802
|
}, o = (m) => m.col.querySelector("[data-desk-tabs]"), l = (m) => {
|
|
2803
|
-
var
|
|
2803
|
+
var X;
|
|
2804
2804
|
const f = m.el.getBoundingClientRect(), I = m.el.cloneNode(!0);
|
|
2805
2805
|
I.querySelectorAll("*").forEach((j) => {
|
|
2806
2806
|
j.style.animation = "none", j.style.transition = "none";
|
|
2807
2807
|
}), I.querySelectorAll("iframe,video").forEach((j) => {
|
|
2808
|
-
const
|
|
2809
|
-
|
|
2808
|
+
const F = document.createElement("div");
|
|
2809
|
+
F.style.cssText = "width:100%;height:100%;background:#000", j.replaceWith(F);
|
|
2810
2810
|
}), I.removeAttribute("data-panel-key"), I.querySelectorAll("[data-panel-key],[data-pin-pill]").forEach((j) => j.hasAttribute("data-pin-pill") ? j.remove() : j.removeAttribute("data-panel-key")), Object.assign(I.style, { position: "fixed", left: `${f.left}px`, top: `${f.top}px`, width: `${f.width}px`, height: `${f.height}px`, margin: "0", zIndex: "1000", pointerEvents: "none", opacity: ".95", borderRadius: "14px", boxShadow: "0 14px 36px rgba(0,0,0,.3)", animation: "none", transition: "none", cursor: "move", willChange: "transform", contain: "layout paint", overflow: "hidden" });
|
|
2811
2811
|
const C = getComputedStyle(m.el);
|
|
2812
2812
|
for (let j = 0; j < C.length; j++) {
|
|
2813
|
-
const
|
|
2814
|
-
|
|
2813
|
+
const F = C[j];
|
|
2814
|
+
F.startsWith("--") && I.style.setProperty(F, C.getPropertyValue(F));
|
|
2815
2815
|
}
|
|
2816
2816
|
I.style.fontFamily = C.fontFamily, I.style.color = C.color;
|
|
2817
|
-
let D = m.el.parentElement,
|
|
2818
|
-
for (; D && !
|
|
2817
|
+
let D = m.el.parentElement, B = "";
|
|
2818
|
+
for (; D && !B; ) {
|
|
2819
2819
|
const j = getComputedStyle(D).backgroundColor;
|
|
2820
|
-
j && !/rgba?\(0, 0, 0, 0\)|transparent/.test(j) && !/\/ 0\.|, 0\.\d+\)$/.test(j) && (
|
|
2820
|
+
j && !/rgba?\(0, 0, 0, 0\)|transparent/.test(j) && !/\/ 0\.|, 0\.\d+\)$/.test(j) && (B = j), D = D.parentElement;
|
|
2821
2821
|
}
|
|
2822
|
-
I.style.background =
|
|
2822
|
+
I.style.background = B || getComputedStyle(document.body).backgroundColor, document.body.appendChild(I), m.orig = [...m.col.querySelectorAll("[data-panel-key]")].map((j) => [j, j.style.order]), m.snap = {}, m.orig.forEach(([j]) => {
|
|
2823
2823
|
m.snap[j.getAttribute("data-panel-key")] = j.getBoundingClientRect();
|
|
2824
|
-
}), m.tabsSnap = ((
|
|
2824
|
+
}), m.tabsSnap = ((X = o(m)) == null ? void 0 : X.getBoundingClientRect()) ?? null;
|
|
2825
2825
|
const _ = m.col.querySelector("[data-panel-grid]");
|
|
2826
2826
|
m.grid = !!_ && getComputedStyle(_).display === "grid", m.el.classList.add("is-dragging"), document.documentElement.style.cursor = "move", document.body.style.userSelect = "none", document.body.style.webkitUserSelect = "none", Object.assign(m, { on: !0, clone: I }), a(null);
|
|
2827
2827
|
}, c = () => {
|
|
2828
2828
|
const m = s;
|
|
2829
2829
|
if (!m || !m.on || m.px == null || m.py == null) return;
|
|
2830
2830
|
m.raf = 0, m.clone.style.transform = `translate3d(${m.px - m.x0}px,${m.py - m.y0}px,0)`;
|
|
2831
|
-
const f = e.current, I = m.key, C = o(m), D = f.seq.includes(I),
|
|
2831
|
+
const f = e.current, I = m.key, C = o(m), D = f.seq.includes(I), B = D || f.tabKeys.length > 1, _ = C && m.tabsSnap, X = !_ || m.py < _.top + _.height / 2 ? B ? "pin" : null : "tabs";
|
|
2832
2832
|
let j = null;
|
|
2833
|
-
if (
|
|
2834
|
-
const
|
|
2835
|
-
D && f.seq.indexOf(I) === T || (j = { zone:
|
|
2836
|
-
} else
|
|
2837
|
-
const
|
|
2838
|
-
if (
|
|
2839
|
-
if (m.sig =
|
|
2840
|
-
|
|
2833
|
+
if (X === "pin") {
|
|
2834
|
+
const S = f.seq.filter((E) => E !== I).map((E) => m.snap[E]).filter(Boolean), T = m.grid ? S.filter((E) => E.bottom < m.py || E.top <= m.py && E.left + E.width / 2 < m.px).length : S.filter((E) => E.top + E.height / 2 < m.py).length;
|
|
2835
|
+
D && f.seq.indexOf(I) === T || (j = { zone: X, idx: T });
|
|
2836
|
+
} else X === "tabs" && D && (j = { zone: X });
|
|
2837
|
+
const F = j ? j.zone + (j.idx ?? "") : "";
|
|
2838
|
+
if (F !== m.sig) {
|
|
2839
|
+
if (m.sig = F, m.target = j, m.orig.forEach(([S, T]) => {
|
|
2840
|
+
S.style.order = T;
|
|
2841
2841
|
}), (j == null ? void 0 : j.zone) === "pin") {
|
|
2842
|
-
const
|
|
2843
|
-
|
|
2844
|
-
const
|
|
2845
|
-
|
|
2842
|
+
const S = f.seq.filter((T) => T !== I);
|
|
2843
|
+
S.splice(j.idx, 0, I), S.forEach((T, E) => {
|
|
2844
|
+
const O = m.col.querySelector(`[data-panel-key="${T}"]`);
|
|
2845
|
+
O && (O.style.order = String(E + 1));
|
|
2846
2846
|
});
|
|
2847
2847
|
} else (j == null ? void 0 : j.zone) === "tabs" && (m.el.style.order = "998");
|
|
2848
2848
|
C && ((j == null ? void 0 : j.zone) === "tabs" ? C.setAttribute("data-drop-hot", "") : C.removeAttribute("data-drop-hot"));
|
|
@@ -2859,7 +2859,7 @@ function zl(t) {
|
|
|
2859
2859
|
}, d = (m) => {
|
|
2860
2860
|
const f = m instanceof Element ? m.closest("[data-tab-col]") : null;
|
|
2861
2861
|
return f && f.getAttribute("data-tab-col") === n ? f : null;
|
|
2862
|
-
},
|
|
2862
|
+
}, g = (m) => {
|
|
2863
2863
|
var _;
|
|
2864
2864
|
if (s) {
|
|
2865
2865
|
if (!s.on) {
|
|
@@ -2876,9 +2876,9 @@ function zl(t) {
|
|
|
2876
2876
|
}
|
|
2877
2877
|
const I = f.closest("[data-panel-key]"), C = I == null ? void 0 : I.firstElementChild;
|
|
2878
2878
|
if (!I || !C || !e.current.tabbed || !e.current.pinnable.includes(I.getAttribute("data-panel-key")) || f.closest("[role=button],[role=tab],button,a,input,textarea,select,iframe,[data-pin-pill],[contenteditable=true]")) return a(null);
|
|
2879
|
-
const D = C.getBoundingClientRect(),
|
|
2880
|
-
a(m.clientY >= D.top && m.clientY <= D.top +
|
|
2881
|
-
},
|
|
2879
|
+
const D = C.getBoundingClientRect(), B = parseFloat(getComputedStyle(I).getPropertyValue("--grip-h")) || 30;
|
|
2880
|
+
a(m.clientY >= D.top && m.clientY <= D.top + B ? I : null);
|
|
2881
|
+
}, M = (m) => {
|
|
2882
2882
|
if (!r || m.button !== 0) return;
|
|
2883
2883
|
const f = d(r);
|
|
2884
2884
|
f && (m.preventDefault(), m.stopImmediatePropagation(), s = { el: r, col: f, key: r.getAttribute("data-panel-key"), x0: m.clientX, y0: m.clientY, on: !1 });
|
|
@@ -2887,35 +2887,35 @@ function zl(t) {
|
|
|
2887
2887
|
}, L = () => {
|
|
2888
2888
|
s || a(null);
|
|
2889
2889
|
};
|
|
2890
|
-
return document.addEventListener("pointermove",
|
|
2891
|
-
u(!1), a(null), document.removeEventListener("pointermove",
|
|
2890
|
+
return document.addEventListener("pointermove", g, !0), document.addEventListener("pointerdown", M, !0), window.addEventListener("pointerup", N), window.addEventListener("pointercancel", p), window.addEventListener("keydown", y, !0), document.addEventListener("pointerleave", L), () => {
|
|
2891
|
+
u(!1), a(null), document.removeEventListener("pointermove", g, !0), document.removeEventListener("pointerdown", M, !0), window.removeEventListener("pointerup", N), window.removeEventListener("pointercancel", p), window.removeEventListener("keydown", y, !0), document.removeEventListener("pointerleave", L);
|
|
2892
2892
|
};
|
|
2893
2893
|
}, [n]);
|
|
2894
2894
|
}
|
|
2895
2895
|
function Il({ id: t, className: e, gap: n, hidden: r, plain: s, children: a }) {
|
|
2896
|
-
const [o, l] = Qa(t), c =
|
|
2896
|
+
const [o, l] = Qa(t), c = k(null), u = k(null);
|
|
2897
2897
|
Ol(u), U(() => {
|
|
2898
2898
|
document.documentElement.style.setProperty("--colw", `${o}px`);
|
|
2899
2899
|
}, [o]);
|
|
2900
|
-
const d = (
|
|
2900
|
+
const d = (M) => {
|
|
2901
2901
|
const N = c.current, p = N == null ? void 0 : N.parentElement;
|
|
2902
|
-
if (
|
|
2903
|
-
|
|
2904
|
-
const y =
|
|
2905
|
-
let _ =
|
|
2902
|
+
if (M.button !== 0 || !N || !p) return;
|
|
2903
|
+
M.preventDefault();
|
|
2904
|
+
const y = M.currentTarget, L = getComputedStyle(p), m = p.clientWidth - parseFloat(L.paddingLeft) - parseFloat(L.paddingRight) - (parseFloat(L.columnGap) || 0), f = 320, I = 320, C = Math.max(f, m - I), D = M.clientX, B = N.getBoundingClientRect().width;
|
|
2905
|
+
let _ = B;
|
|
2906
2906
|
y.classList.add("is-on");
|
|
2907
|
-
const
|
|
2907
|
+
const X = { cur: document.body.style.cursor, sel: document.body.style.userSelect };
|
|
2908
2908
|
document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
|
|
2909
|
-
const j = (
|
|
2910
|
-
_ = Math.round(Math.min(C, Math.max(f,
|
|
2911
|
-
},
|
|
2912
|
-
window.removeEventListener("pointermove", j), window.removeEventListener("pointerup",
|
|
2909
|
+
const j = (S) => {
|
|
2910
|
+
_ = Math.round(Math.min(C, Math.max(f, B + (D - S.clientX)))), N.style.flexBasis = `${_}px`, document.documentElement.style.setProperty("--colw", `${_}px`);
|
|
2911
|
+
}, F = () => {
|
|
2912
|
+
window.removeEventListener("pointermove", j), window.removeEventListener("pointerup", F), window.removeEventListener("pointercancel", F), document.body.style.cursor = X.cur, document.body.style.userSelect = X.sel, y.classList.remove("is-on"), l(_);
|
|
2913
2913
|
};
|
|
2914
|
-
window.addEventListener("pointermove", j), window.addEventListener("pointerup",
|
|
2915
|
-
},
|
|
2914
|
+
window.addEventListener("pointermove", j), window.addEventListener("pointerup", F), window.addEventListener("pointercancel", F);
|
|
2915
|
+
}, g = r ? { display: "none" } : void 0;
|
|
2916
2916
|
return /* @__PURE__ */ h(xe, { children: [
|
|
2917
|
-
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "colgrip", style: { marginRight: -n, ...
|
|
2918
|
-
/* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...
|
|
2917
|
+
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "colgrip", style: { marginRight: -n, ...g }, 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) }) }),
|
|
2918
|
+
/* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...g }, children: s ? a : /* @__PURE__ */ i("div", { ref: u, "data-panel-grid": "", className: "panelgrid", children: a }) })
|
|
2919
2919
|
] });
|
|
2920
2920
|
}
|
|
2921
2921
|
function Ol(t) {
|
|
@@ -2928,13 +2928,13 @@ function Ol(t) {
|
|
|
2928
2928
|
r = 0;
|
|
2929
2929
|
const u = getComputedStyle(e).display === "grid";
|
|
2930
2930
|
[...e.children].forEach((d) => {
|
|
2931
|
-
const
|
|
2931
|
+
const g = d;
|
|
2932
2932
|
if (!u) {
|
|
2933
|
-
|
|
2933
|
+
g.style.gridRowEnd && (g.style.gridRowEnd = "");
|
|
2934
2934
|
return;
|
|
2935
2935
|
}
|
|
2936
|
-
const
|
|
2937
|
-
|
|
2936
|
+
const M = g.getBoundingClientRect().height, N = M > 0 ? `span ${Math.ceil(M + n)}` : "span 1";
|
|
2937
|
+
g.style.gridRowEnd !== N && (g.style.gridRowEnd = N);
|
|
2938
2938
|
});
|
|
2939
2939
|
}, a = () => {
|
|
2940
2940
|
r || (r = requestAnimationFrame(s));
|
|
@@ -2951,8 +2951,8 @@ function Cl(t) {
|
|
|
2951
2951
|
}
|
|
2952
2952
|
const bl = 1500, xl = 3e5;
|
|
2953
2953
|
function Dl(t) {
|
|
2954
|
-
const e = Et(), [n, r] = z(null), [s, a] = z(null), [o, l] = z(null), [c, u] = z(null), d =
|
|
2955
|
-
|
|
2954
|
+
const e = Et(), [n, r] = z(null), [s, a] = z(null), [o, l] = z(null), [c, u] = z(null), d = k(null), g = k(null), M = k(null), N = k(0), p = Ke(() => {
|
|
2955
|
+
M.current && (clearTimeout(M.current), M.current = null), d.current && (d.current.pause(), d.current.removeAttribute("src"), d.current.load(), d.current = null), g.current && (URL.revokeObjectURL(g.current), g.current = null);
|
|
2956
2956
|
}, []), y = Ke(() => {
|
|
2957
2957
|
N.current += 1, p(), a(null), l(null);
|
|
2958
2958
|
}, [p]), L = Ke(() => {
|
|
@@ -2969,15 +2969,15 @@ function Dl(t) {
|
|
|
2969
2969
|
xn() === "caf" && (C += `${C.includes("?") ? "&" : "?"}format=caf`);
|
|
2970
2970
|
const D = Date.now();
|
|
2971
2971
|
e.shareCode && C.includes("recording=") && (C += `&shareCode=${encodeURIComponent(e.shareCode)}`);
|
|
2972
|
-
const
|
|
2972
|
+
const B = async () => {
|
|
2973
2973
|
if (N.current !== I) return;
|
|
2974
2974
|
let _;
|
|
2975
2975
|
try {
|
|
2976
|
-
const
|
|
2977
|
-
_ = await fetch(C, { headers:
|
|
2978
|
-
} catch (
|
|
2976
|
+
const S = e.owner ? await e.bearer() : void 0;
|
|
2977
|
+
_ = await fetch(C, { headers: S ? { Authorization: `Bearer ${S}` } : {} });
|
|
2978
|
+
} catch (S) {
|
|
2979
2979
|
if (N.current !== I) return;
|
|
2980
|
-
l(null), u(Tt(
|
|
2980
|
+
l(null), u(Tt(S));
|
|
2981
2981
|
return;
|
|
2982
2982
|
}
|
|
2983
2983
|
if (N.current !== I) return;
|
|
@@ -2986,30 +2986,30 @@ function Dl(t) {
|
|
|
2986
2986
|
l(null), u({ message: "This voice is still being fetched. Try it again in a moment." });
|
|
2987
2987
|
return;
|
|
2988
2988
|
}
|
|
2989
|
-
l(f.id),
|
|
2990
|
-
|
|
2989
|
+
l(f.id), M.current = setTimeout(() => {
|
|
2990
|
+
B();
|
|
2991
2991
|
}, bl);
|
|
2992
2992
|
return;
|
|
2993
2993
|
}
|
|
2994
2994
|
if (!_.ok) {
|
|
2995
2995
|
l(null);
|
|
2996
|
-
const
|
|
2997
|
-
u((
|
|
2996
|
+
const S = await _.json().catch(() => null);
|
|
2997
|
+
u((S == null ? void 0 : S.code) === "language_unavailable" ? { message: "No voice can speak this language yet.", status: _.status } : { message: `This voice could not be previewed (${_.status}).`, status: _.status });
|
|
2998
2998
|
return;
|
|
2999
2999
|
}
|
|
3000
|
-
const
|
|
3000
|
+
const X = await _.blob();
|
|
3001
3001
|
if (N.current !== I) return;
|
|
3002
|
-
l(null),
|
|
3003
|
-
const j = new Audio(
|
|
3002
|
+
l(null), g.current = URL.createObjectURL(X);
|
|
3003
|
+
const j = new Audio(g.current);
|
|
3004
3004
|
j.playsInline = !0;
|
|
3005
|
-
const
|
|
3005
|
+
const F = () => {
|
|
3006
3006
|
N.current === I && (p(), a(null));
|
|
3007
3007
|
};
|
|
3008
|
-
j.onended =
|
|
3008
|
+
j.onended = F, j.onerror = F, d.current = j, j.play().then(() => {
|
|
3009
3009
|
N.current === I && a(f.id);
|
|
3010
|
-
}).catch(
|
|
3010
|
+
}).catch(F);
|
|
3011
3011
|
};
|
|
3012
|
-
|
|
3012
|
+
B();
|
|
3013
3013
|
}, [t, p, e]);
|
|
3014
3014
|
return { armId: n, sampleId: s, dlId: o, error: c, clearError: () => u(null), arm: m, stop: y, reset: L };
|
|
3015
3015
|
}
|
|
@@ -3063,75 +3063,75 @@ function At(t, e, n) {
|
|
|
3063
3063
|
const r = (s = t == null ? void 0 : t.words[t.words.length - 1]) == null ? void 0 : s.end;
|
|
3064
3064
|
return r != null && r > e ? r : (t == null ? void 0 : t.end) != null && t.end > e ? t.end : n > e ? n : e + 4;
|
|
3065
3065
|
}
|
|
3066
|
-
function Al({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: u, lead: d, onTime:
|
|
3067
|
-
const N =
|
|
3066
|
+
function Al({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: u, lead: d, onTime: g, waiting: M = !1 }) {
|
|
3067
|
+
const N = k(null), [p, y] = z(!1);
|
|
3068
3068
|
U(() => {
|
|
3069
|
-
if (!
|
|
3069
|
+
if (!M) {
|
|
3070
3070
|
y(!1);
|
|
3071
3071
|
return;
|
|
3072
3072
|
}
|
|
3073
|
-
const
|
|
3074
|
-
return () => clearTimeout(
|
|
3075
|
-
}, [
|
|
3076
|
-
const L = r && !p, m =
|
|
3073
|
+
const W = setTimeout(() => y(!0), 300);
|
|
3074
|
+
return () => clearTimeout(W);
|
|
3075
|
+
}, [M]);
|
|
3076
|
+
const L = r && !p, m = k(!1), [f, I] = z(!1), C = (W, me = []) => {
|
|
3077
3077
|
var Z, ve;
|
|
3078
|
-
if (!(m.current && (
|
|
3078
|
+
if (!(m.current && (W === "pauseVideo" || W === "seekTo" || W === "setPlaybackRate")))
|
|
3079
3079
|
try {
|
|
3080
|
-
(ve = (Z = N.current) == null ? void 0 : Z.contentWindow) == null || ve.postMessage(JSON.stringify({ event: "command", func:
|
|
3080
|
+
(ve = (Z = N.current) == null ? void 0 : Z.contentWindow) == null || ve.postMessage(JSON.stringify({ event: "command", func: W, args: me }), "*");
|
|
3081
3081
|
} catch {
|
|
3082
3082
|
}
|
|
3083
|
-
}, D =
|
|
3083
|
+
}, D = k(null), B = k(!1), _ = k(!1), X = k(!1), j = k(a);
|
|
3084
3084
|
j.current = a;
|
|
3085
|
-
const
|
|
3086
|
-
|
|
3087
|
-
const
|
|
3088
|
-
|
|
3089
|
-
const T =
|
|
3085
|
+
const F = k(d);
|
|
3086
|
+
F.current = d;
|
|
3087
|
+
const S = k(o);
|
|
3088
|
+
S.current = o;
|
|
3089
|
+
const T = k(!1), E = () => {
|
|
3090
3090
|
var me, Z;
|
|
3091
|
-
const
|
|
3092
|
-
if (
|
|
3093
|
-
if (m.current =
|
|
3094
|
-
if (C("playVideo"),
|
|
3091
|
+
const W = _.current || X.current;
|
|
3092
|
+
if (W !== m.current)
|
|
3093
|
+
if (m.current = W, I(W), (me = S.current) == null || me.call(S, W), W) {
|
|
3094
|
+
if (C("playVideo"), F.current) return;
|
|
3095
3095
|
we.current && j.current && (T.current = !0, j.current());
|
|
3096
|
-
} else T.current && !
|
|
3097
|
-
},
|
|
3098
|
-
|
|
3099
|
-
const
|
|
3100
|
-
|
|
3101
|
-
const K =
|
|
3096
|
+
} else T.current && !F.current && (T.current = !1, we.current || (Z = j.current) == null || Z.call(j));
|
|
3097
|
+
}, O = k(n);
|
|
3098
|
+
O.current = n;
|
|
3099
|
+
const te = k(g);
|
|
3100
|
+
te.current = g;
|
|
3101
|
+
const K = k(null), v = k(null), [ae, ne] = z(!0), [G, J] = z(!1), pe = () => {
|
|
3102
3102
|
C("unloadModule", ["captions"]), C("unloadModule", ["cc"]);
|
|
3103
|
-
}, le =
|
|
3104
|
-
pe(), le.current.forEach(clearTimeout), le.current = [400, 1200, 2500, 5e3].map((
|
|
3103
|
+
}, le = k([]), Te = () => {
|
|
3104
|
+
pe(), le.current.forEach(clearTimeout), le.current = [400, 1200, 2500, 5e3].map((W) => window.setTimeout(pe, W));
|
|
3105
3105
|
};
|
|
3106
3106
|
U(() => () => le.current.forEach(clearTimeout), []);
|
|
3107
3107
|
const je = () => {
|
|
3108
|
-
var
|
|
3108
|
+
var W, me;
|
|
3109
3109
|
try {
|
|
3110
|
-
(me = (
|
|
3110
|
+
(me = (W = N.current) == null ? void 0 : W.contentWindow) == null || me.postMessage(JSON.stringify({ event: "listening", id: "reader" }), "*");
|
|
3111
3111
|
} catch {
|
|
3112
3112
|
}
|
|
3113
|
-
(!
|
|
3113
|
+
(!F.current || F.current.muted) && C("mute"), J(!0);
|
|
3114
3114
|
};
|
|
3115
3115
|
U(() => (d == null || d.bind(C), () => d == null ? void 0 : d.bind(null)), [!!d]), U(() => {
|
|
3116
3116
|
!d && G && C("mute");
|
|
3117
3117
|
}, [!!d]);
|
|
3118
|
-
const Ee =
|
|
3118
|
+
const Ee = k(null), Le = k(l);
|
|
3119
3119
|
Le.current = l;
|
|
3120
|
-
const we =
|
|
3120
|
+
const we = k(L);
|
|
3121
3121
|
we.current = L;
|
|
3122
|
-
const _e =
|
|
3122
|
+
const _e = k(!1), Pe = k(c);
|
|
3123
3123
|
Pe.current = c;
|
|
3124
|
-
const Se =
|
|
3124
|
+
const Se = k(u);
|
|
3125
3125
|
Se.current = u;
|
|
3126
|
-
const
|
|
3126
|
+
const $ = k(!1), [H, A] = z(!1), b = (W) => {
|
|
3127
3127
|
const me = Ee.current;
|
|
3128
|
-
return !!me && (
|
|
3129
|
-
},
|
|
3130
|
-
b(
|
|
3128
|
+
return !!me && (W < me.start - 1 || W > me.end + 5);
|
|
3129
|
+
}, V = () => {
|
|
3130
|
+
b(O.current) || C("seekTo", [O.current, !0]);
|
|
3131
3131
|
}, ce = () => K.current;
|
|
3132
3132
|
return U(() => {
|
|
3133
|
-
const
|
|
3134
|
-
var Ge, Ae, ge, Ye, Ve,
|
|
3133
|
+
const W = (me) => {
|
|
3134
|
+
var Ge, Ae, ge, Ye, Ve, Q, he, ue, ie, fe, Ue, Y, R, q, re, de;
|
|
3135
3135
|
if (me.source !== ((Ge = N.current) == null ? void 0 : Ge.contentWindow) || typeof me.data != "string") return;
|
|
3136
3136
|
let Z = null;
|
|
3137
3137
|
try {
|
|
@@ -3139,53 +3139,53 @@ function Al({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: a, onAd:
|
|
|
3139
3139
|
} catch {
|
|
3140
3140
|
return;
|
|
3141
3141
|
}
|
|
3142
|
-
(ge = (Ae = Z == null ? void 0 : Z.info) == null ? void 0 : Ae.videoData) != null && ge.isLive && (
|
|
3142
|
+
(ge = (Ae = Z == null ? void 0 : Z.info) == null ? void 0 : Ae.videoData) != null && ge.isLive && (B.current = !0);
|
|
3143
3143
|
const ve = (Ye = Z == null ? void 0 : Z.info) == null ? void 0 : Ye.duration;
|
|
3144
|
-
typeof ve == "number" && ve > 0 && !
|
|
3144
|
+
typeof ve == "number" && ve > 0 && !B.current && (D.current == null ? D.current = ve : (_.current = Math.abs(ve - D.current) > 1.5, E())), (Z == null ? void 0 : Z.event) === "onReady" && ((!F.current || F.current.muted) && C("mute"), Te(), (Ve = F.current) == null || Ve.onInfo({ ready: !0 })), typeof ((Q = Z == null ? void 0 : Z.info) == null ? void 0 : Q.playerState) == "number" && (Z.info.playerState !== v.current && (Z.info.playerState === 1 || Z.info.playerState === 2) && Te(), v.current = Z.info.playerState, ne(Z.info.playerState !== 1 && Z.info.playerState !== 3), (he = F.current) == null || he.onInfo({ state: Z.info.playerState }));
|
|
3145
3145
|
const ze = (ue = Z == null ? void 0 : Z.info) == null ? void 0 : ue.progressState;
|
|
3146
3146
|
if (ze && typeof ze.seekableStart == "number" && typeof ze.seekableEnd == "number" && ze.seekableEnd > ze.seekableStart) {
|
|
3147
3147
|
const Oe = Ee.current == null;
|
|
3148
|
-
if (Ee.current = { start: ze.seekableStart, end: ze.seekableEnd }, Oe && !we.current && (C("pauseVideo"), b(
|
|
3149
|
-
|
|
3148
|
+
if (Ee.current = { start: ze.seekableStart, end: ze.seekableEnd }, Oe && !we.current && (C("pauseVideo"), b(O.current) || C("seekTo", [O.current, !0])), !$.current && Le.current != null) {
|
|
3149
|
+
$.current = !0;
|
|
3150
3150
|
const ye = Le.current < ze.seekableStart - 1;
|
|
3151
3151
|
(ie = Se.current) == null || ie.call(Se, ye), ye && ((fe = Pe.current) == null || fe.call(Pe));
|
|
3152
3152
|
}
|
|
3153
3153
|
}
|
|
3154
|
-
typeof ((Ue = Z == null ? void 0 : Z.info) == null ? void 0 : Ue.currentTime) == "number" && (K.current = Z.info.currentTime, (Y =
|
|
3154
|
+
typeof ((Ue = Z == null ? void 0 : Z.info) == null ? void 0 : Ue.currentTime) == "number" && (K.current = Z.info.currentTime, (Y = F.current) == null || Y.onInfo({ t: Z.info.currentTime }), !m.current && v.current === 1 && ((R = te.current) == null || R.call(te, Z.info.currentTime))), ((q = Z == null ? void 0 : Z.info) == null ? void 0 : q.muted) === !1 && !F.current && C("mute"), typeof ((re = Z == null ? void 0 : Z.info) == null ? void 0 : re.muted) == "boolean" && ((de = F.current) == null || de.onInfo({ muted: Z.info.muted }));
|
|
3155
3155
|
};
|
|
3156
|
-
return window.addEventListener("message",
|
|
3156
|
+
return window.addEventListener("message", W), () => window.removeEventListener("message", W);
|
|
3157
3157
|
}, []), U(() => {
|
|
3158
3158
|
if (d) return;
|
|
3159
|
-
const
|
|
3160
|
-
|
|
3159
|
+
const W = b(n);
|
|
3160
|
+
W !== H && (A(W), W ? C("pauseVideo") : G && (C("seekTo", [n, !0]), L && C("playVideo")));
|
|
3161
3161
|
}), U(() => {
|
|
3162
|
-
if (!G ||
|
|
3162
|
+
if (!G || H || d) return;
|
|
3163
3163
|
if (!L && Ee.current == null && !_e.current) {
|
|
3164
|
-
_e.current = !0, C("seekTo", [
|
|
3164
|
+
_e.current = !0, C("seekTo", [O.current, !0]), C("playVideo");
|
|
3165
3165
|
return;
|
|
3166
3166
|
}
|
|
3167
|
-
const
|
|
3168
|
-
L && (
|
|
3169
|
-
}, [L, G,
|
|
3170
|
-
if (!G || s === 0 ||
|
|
3171
|
-
const
|
|
3172
|
-
(
|
|
3167
|
+
const W = ce();
|
|
3168
|
+
L && (W == null || Math.abs(W - O.current) > 1.5) && V(), C(L ? "playVideo" : "pauseVideo");
|
|
3169
|
+
}, [L, G, H]), U(() => {
|
|
3170
|
+
if (!G || s === 0 || H || d) return;
|
|
3171
|
+
const W = ce();
|
|
3172
|
+
(W == null || Math.abs(W - O.current) > 0.5) && V(), L || C("pauseVideo");
|
|
3173
3173
|
}, [s, G]), U(() => {
|
|
3174
3174
|
if (!G) return;
|
|
3175
|
-
let
|
|
3175
|
+
let W = null, me = 0;
|
|
3176
3176
|
const Z = setInterval(() => {
|
|
3177
3177
|
const ve = K.current;
|
|
3178
|
-
me =
|
|
3178
|
+
me = v.current === 1 && ve != null && W != null && Math.abs(ve - W) < 0.05 ? me + 1 : 0, W = ve;
|
|
3179
3179
|
const ze = me >= 3;
|
|
3180
|
-
ze !==
|
|
3180
|
+
ze !== X.current && (X.current = ze, E());
|
|
3181
3181
|
}, 1e3);
|
|
3182
3182
|
return () => clearInterval(Z);
|
|
3183
3183
|
}, [G]), /* @__PURE__ */ h("div", { className: `txyt${f ? " txyt--ad" : ""}`, children: [
|
|
3184
3184
|
/* @__PURE__ */ i("iframe", { ref: N, 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" }),
|
|
3185
3185
|
!f && /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: a, style: { cursor: a ? "pointer" : "default" } }),
|
|
3186
|
-
/* @__PURE__ */ i("div", { className: `txyt__paused${ae && !f && !
|
|
3186
|
+
/* @__PURE__ */ i("div", { className: `txyt__paused${ae && !f && !H ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(jr, { size: 44 }) }) }),
|
|
3187
3187
|
f && /* @__PURE__ */ i("div", { className: "txyt__ad", "aria-live": "polite", children: "Ad on YouTube · the transcript carries on after it" }),
|
|
3188
|
-
|
|
3188
|
+
H && /* @__PURE__ */ h("div", { className: "txyt__gone", children: [
|
|
3189
3189
|
/* @__PURE__ */ i("span", { children: "YouTube no longer has this part of the broadcast" }),
|
|
3190
3190
|
/* @__PURE__ */ i("small", { children: "A live stream can be rewound only 12 hours" })
|
|
3191
3191
|
] })
|
|
@@ -3197,25 +3197,25 @@ const El = /* @__PURE__ */ h(xe, { children: [
|
|
|
3197
3197
|
] }), _l = /* @__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" });
|
|
3198
3198
|
function Yl({ player: t, size: e }) {
|
|
3199
3199
|
const n = t.muted ? "Unmute" : "Mute";
|
|
3200
|
-
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 ?
|
|
3200
|
+
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 ? ee.volumeOff : ee.volume, size: 17, sw: 1.6, style: { color: t.muted ? "var(--ink-38)" : "var(--ink-70)" } }) });
|
|
3201
3201
|
}
|
|
3202
3202
|
function Ul() {
|
|
3203
|
-
const [t, e] = z(""), n =
|
|
3203
|
+
const [t, e] = z(""), n = k(null), r = Ke((s) => {
|
|
3204
3204
|
clearTimeout(n.current), e(s), n.current = setTimeout(() => e(""), 3e3);
|
|
3205
3205
|
}, []);
|
|
3206
3206
|
return U(() => () => clearTimeout(n.current), []), [t, r];
|
|
3207
3207
|
}
|
|
3208
3208
|
const Rl = 0.2, Pl = 140, Ql = 320;
|
|
3209
3209
|
function $l(t, e) {
|
|
3210
|
-
const n =
|
|
3210
|
+
const n = k(t);
|
|
3211
3211
|
n.current = t;
|
|
3212
|
-
const r =
|
|
3212
|
+
const r = k(0), s = k(1), a = Ke((o, l) => {
|
|
3213
3213
|
cancelAnimationFrame(r.current);
|
|
3214
3214
|
const c = s.current, u = performance.now(), d = () => {
|
|
3215
|
-
const
|
|
3216
|
-
s.current = c + (o - c) *
|
|
3217
|
-
for (const
|
|
3218
|
-
|
|
3215
|
+
const g = l > 0 ? Math.min(1, (performance.now() - u) / l) : 1;
|
|
3216
|
+
s.current = c + (o - c) * g;
|
|
3217
|
+
for (const M of n.current) M.setVolume(s.current);
|
|
3218
|
+
g < 1 && (r.current = requestAnimationFrame(d));
|
|
3219
3219
|
};
|
|
3220
3220
|
d();
|
|
3221
3221
|
}, []);
|
|
@@ -3228,60 +3228,60 @@ function $l(t, e) {
|
|
|
3228
3228
|
}
|
|
3229
3229
|
function Bl(t, e, n, r) {
|
|
3230
3230
|
var Se;
|
|
3231
|
-
const s =
|
|
3231
|
+
const s = k(null), a = k(!1), o = k(!1), [l, c] = z(null), [u, d] = z(!0), g = k(!0), M = k(!1), [N, p] = z(0), y = k(0);
|
|
3232
3232
|
y.current = N;
|
|
3233
|
-
const L =
|
|
3233
|
+
const L = k({ t: 0, at: 0 }), m = k(n);
|
|
3234
3234
|
m.current = n;
|
|
3235
|
-
const f =
|
|
3235
|
+
const f = k(r);
|
|
3236
3236
|
f.current = r;
|
|
3237
|
-
const [I, C] = z(!1), D =
|
|
3238
|
-
D.current =
|
|
3239
|
-
}, _ = (
|
|
3237
|
+
const [I, C] = z(!1), D = k(!1), B = ($) => {
|
|
3238
|
+
D.current = $, C($);
|
|
3239
|
+
}, _ = ($, H) => {
|
|
3240
3240
|
var A;
|
|
3241
|
-
return (A = s.current) == null ? void 0 : A.call(s,
|
|
3242
|
-
},
|
|
3241
|
+
return (A = s.current) == null ? void 0 : A.call(s, $, H);
|
|
3242
|
+
}, X = l === 1 || l === 3, j = k(null), F = k(null), S = Ie(() => ({
|
|
3243
3243
|
muted: !0,
|
|
3244
|
-
bind: (
|
|
3245
|
-
s.current =
|
|
3244
|
+
bind: ($) => {
|
|
3245
|
+
s.current = $, $ || (a.current = !1);
|
|
3246
3246
|
},
|
|
3247
|
-
onInfo: (
|
|
3248
|
-
if (
|
|
3249
|
-
const
|
|
3250
|
-
L.current = { t:
|
|
3247
|
+
onInfo: ($) => {
|
|
3248
|
+
if ($.ready && !a.current && (a.current = !0, o.current && (o.current = !1, _("playVideo"))), typeof $.state == "number" && (j.current = $.state, c($.state)), typeof $.muted == "boolean" && (F.current = $.muted), typeof $.t == "number") {
|
|
3249
|
+
const H = $.t - m.current;
|
|
3250
|
+
L.current = { t: H, at: performance.now() }, H < y.current && y.current - H < 0.35 || p(Math.max(0, H));
|
|
3251
3251
|
}
|
|
3252
3252
|
}
|
|
3253
3253
|
}), []);
|
|
3254
|
-
|
|
3254
|
+
S.muted = g.current || M.current, U(() => {
|
|
3255
3255
|
if (l !== 1) return;
|
|
3256
|
-
let
|
|
3257
|
-
const
|
|
3256
|
+
let $ = 0;
|
|
3257
|
+
const H = () => {
|
|
3258
3258
|
const A = L.current, b = A.t + Math.min(1.2, (performance.now() - A.at) / 1e3);
|
|
3259
3259
|
if (f.current != null && b >= f.current) {
|
|
3260
|
-
|
|
3260
|
+
B(!0), _("pauseVideo"), p(b);
|
|
3261
3261
|
return;
|
|
3262
3262
|
}
|
|
3263
|
-
b > y.current && p(b),
|
|
3263
|
+
b > y.current && p(b), $ = requestAnimationFrame(H);
|
|
3264
3264
|
};
|
|
3265
|
-
return
|
|
3265
|
+
return $ = requestAnimationFrame(H), () => cancelAnimationFrame($);
|
|
3266
3266
|
}, [l]), U(() => {
|
|
3267
|
-
!I || r == null || r < N + 1.5 || (
|
|
3267
|
+
!I || r == null || r < N + 1.5 || (B(!1), _("playVideo"));
|
|
3268
3268
|
}, [I, r, N]), U(() => {
|
|
3269
|
-
r == null && D.current && (
|
|
3269
|
+
r == null && D.current && (B(!1), _("playVideo"));
|
|
3270
3270
|
}, [r]);
|
|
3271
|
-
const T = t.length ? ((Se = t[t.length - 1].words[t[t.length - 1].words.length - 1]) == null ? void 0 : Se.end) ?? t[t.length - 1].start + 4 : 0,
|
|
3271
|
+
const T = t.length ? ((Se = t[t.length - 1].words[t[t.length - 1].words.length - 1]) == null ? void 0 : Se.end) ?? t[t.length - 1].start + 4 : 0, E = e || T || 1, O = Ie(() => {
|
|
3272
3272
|
if (!t.length) return 0;
|
|
3273
|
-
let
|
|
3274
|
-
for (let
|
|
3275
|
-
return
|
|
3276
|
-
}, [t, N]), [
|
|
3277
|
-
const
|
|
3278
|
-
_("seekTo", [
|
|
3279
|
-
}, ae =
|
|
3280
|
-
window.clearTimeout(
|
|
3281
|
-
!ae.current ||
|
|
3273
|
+
let $ = 0;
|
|
3274
|
+
for (let H = 0; H < t.length; H++) t[H].start <= N + 0.05 && ($ = H);
|
|
3275
|
+
return $;
|
|
3276
|
+
}, [t, N]), [te, K] = z(0), v = ($) => {
|
|
3277
|
+
const H = Math.max(0, f.current != null ? Math.min($, Math.max(0, f.current - 0.5)) : $);
|
|
3278
|
+
_("seekTo", [H + m.current, !0]), L.current = { t: H, at: performance.now() }, p(H), K((A) => A + 1);
|
|
3279
|
+
}, ae = k(!1), ne = k(void 0), G = ($) => {
|
|
3280
|
+
window.clearTimeout(ne.current), ne.current = window.setTimeout(() => {
|
|
3281
|
+
!ae.current || $ <= 0 || j.current === 1 || j.current === 3 || (_("playVideo"), G($ - 1));
|
|
3282
3282
|
}, 1200);
|
|
3283
3283
|
};
|
|
3284
|
-
U(() => () => window.clearTimeout(
|
|
3284
|
+
U(() => () => window.clearTimeout(ne.current), []);
|
|
3285
3285
|
const J = () => {
|
|
3286
3286
|
if (ae.current = !0, !a.current) {
|
|
3287
3287
|
o.current = !0;
|
|
@@ -3289,72 +3289,72 @@ function Bl(t, e, n, r) {
|
|
|
3289
3289
|
}
|
|
3290
3290
|
_("playVideo"), G(3);
|
|
3291
3291
|
}, pe = () => {
|
|
3292
|
-
ae.current = !1, window.clearTimeout(
|
|
3292
|
+
ae.current = !1, window.clearTimeout(ne.current), o.current = !1, B(!1), _("pauseVideo");
|
|
3293
3293
|
}, le = () => {
|
|
3294
3294
|
if (!a.current) {
|
|
3295
3295
|
o.current = !0;
|
|
3296
3296
|
return;
|
|
3297
3297
|
}
|
|
3298
|
-
if (
|
|
3298
|
+
if (X) {
|
|
3299
3299
|
pe();
|
|
3300
3300
|
return;
|
|
3301
3301
|
}
|
|
3302
3302
|
if (D.current) {
|
|
3303
|
-
|
|
3303
|
+
B(!1);
|
|
3304
3304
|
return;
|
|
3305
3305
|
}
|
|
3306
|
-
N >=
|
|
3307
|
-
}, Te = (
|
|
3308
|
-
const
|
|
3309
|
-
|
|
3310
|
-
}, je =
|
|
3311
|
-
const
|
|
3312
|
-
|
|
3313
|
-
}, Le = (
|
|
3314
|
-
|
|
3315
|
-
}, we = (
|
|
3316
|
-
|
|
3306
|
+
N >= E - 0.25 && v(0), J();
|
|
3307
|
+
}, Te = ($) => {
|
|
3308
|
+
const H = t[Math.max(0, Math.min(t.length - 1, $))];
|
|
3309
|
+
H && v(H.start);
|
|
3310
|
+
}, je = k(!1), Ee = () => {
|
|
3311
|
+
const $ = g.current || M.current;
|
|
3312
|
+
S.muted = $, _($ ? "mute" : "unMute");
|
|
3313
|
+
}, Le = ($) => {
|
|
3314
|
+
g.current = $, d($), Ee();
|
|
3315
|
+
}, we = ($) => {
|
|
3316
|
+
M.current !== !$ && (M.current = !$, Ee());
|
|
3317
3317
|
};
|
|
3318
3318
|
return { player: {
|
|
3319
3319
|
autoplay: async () => {
|
|
3320
|
-
const
|
|
3321
|
-
for (let
|
|
3320
|
+
const $ = (A) => new Promise((b) => setTimeout(b, A)), H = async (A, b) => {
|
|
3321
|
+
for (let V = 0; V < b / 250 && !A(); V++) await $(250);
|
|
3322
3322
|
return A();
|
|
3323
3323
|
};
|
|
3324
|
-
if (!await
|
|
3324
|
+
if (!await H(() => a.current, 1e4)) return null;
|
|
3325
3325
|
Le(!0);
|
|
3326
3326
|
for (let A = 0; A < 5 && j.current !== 1; A++)
|
|
3327
|
-
_("playVideo"), await
|
|
3328
|
-
return j.current !== 1 ? null :
|
|
3327
|
+
_("playVideo"), await H(() => j.current === 1, 1500);
|
|
3328
|
+
return j.current !== 1 ? null : M.current ? (Le(!0), !1) : (Le(!1), await $(1200), j.current === 1 && F.current === !1 ? !0 : (Le(!0), _("playVideo"), !1));
|
|
3329
3329
|
},
|
|
3330
|
-
playing:
|
|
3330
|
+
playing: X,
|
|
3331
3331
|
ended: l === 0,
|
|
3332
3332
|
t: N,
|
|
3333
|
-
idx:
|
|
3334
|
-
dur:
|
|
3333
|
+
idx: O,
|
|
3334
|
+
dur: E,
|
|
3335
3335
|
muted: u,
|
|
3336
|
-
seekN:
|
|
3336
|
+
seekN: te,
|
|
3337
3337
|
toggle: le,
|
|
3338
3338
|
seekRow: Te,
|
|
3339
3339
|
toggleMute: () => {
|
|
3340
|
-
const
|
|
3341
|
-
Le(
|
|
3342
|
-
j.current === 2 && !
|
|
3340
|
+
const $ = !g.current;
|
|
3341
|
+
Le($), !$ && !M.current && j.current === 1 && setTimeout(() => {
|
|
3342
|
+
j.current === 2 && !g.current && (Le(!0), _("playVideo"));
|
|
3343
3343
|
}, 900);
|
|
3344
3344
|
},
|
|
3345
|
-
seekFrac: (
|
|
3346
|
-
seekWord: (
|
|
3347
|
-
playRow: (
|
|
3348
|
-
Te(
|
|
3345
|
+
seekFrac: ($) => v(Math.max(0, Math.min(1, $)) * E),
|
|
3346
|
+
seekWord: ($) => v($.start),
|
|
3347
|
+
playRow: ($) => {
|
|
3348
|
+
Te($), X || J();
|
|
3349
3349
|
},
|
|
3350
3350
|
stop: () => {
|
|
3351
|
-
pe(),
|
|
3351
|
+
pe(), v(0);
|
|
3352
3352
|
},
|
|
3353
|
-
engaged:
|
|
3354
|
-
prev: () => Te(
|
|
3355
|
-
next: () => Te(
|
|
3353
|
+
engaged: X || N > 0,
|
|
3354
|
+
prev: () => Te(O - 1),
|
|
3355
|
+
next: () => Te(O + 1),
|
|
3356
3356
|
hold: () => {
|
|
3357
|
-
|
|
3357
|
+
X && (_("pauseVideo"), je.current = !0);
|
|
3358
3358
|
},
|
|
3359
3359
|
release: () => {
|
|
3360
3360
|
je.current && (je.current = !1, J());
|
|
@@ -3366,16 +3366,16 @@ function Bl(t, e, n, r) {
|
|
|
3366
3366
|
edgeWait: I,
|
|
3367
3367
|
wordSync: !0,
|
|
3368
3368
|
pause: pe,
|
|
3369
|
-
setVolume: (
|
|
3370
|
-
}, lead:
|
|
3369
|
+
setVolume: ($) => _("setVolume", [Math.round($ * 100)])
|
|
3370
|
+
}, lead: S, setVideoSound: we };
|
|
3371
3371
|
}
|
|
3372
3372
|
function Vl(t, e, n, r, s = 0, a = null) {
|
|
3373
3373
|
var A;
|
|
3374
|
-
const o =
|
|
3375
|
-
N.current =
|
|
3376
|
-
const p =
|
|
3374
|
+
const o = k(null), [l, c] = z(!1), [u, d] = z(0), [g, M] = z(!1), N = k(g);
|
|
3375
|
+
N.current = g;
|
|
3376
|
+
const p = k(!1), [y, L] = z(null), [m, f] = z(!1), I = k(s);
|
|
3377
3377
|
I.current = s;
|
|
3378
|
-
const C =
|
|
3378
|
+
const C = k(null), [D, B] = z(0);
|
|
3379
3379
|
U(() => {
|
|
3380
3380
|
f(!1);
|
|
3381
3381
|
const b = C.current;
|
|
@@ -3383,100 +3383,100 @@ function Vl(t, e, n, r, s = 0, a = null) {
|
|
|
3383
3383
|
c(!1), o.current = null;
|
|
3384
3384
|
return;
|
|
3385
3385
|
}
|
|
3386
|
-
const
|
|
3387
|
-
return
|
|
3388
|
-
f(!0),
|
|
3389
|
-
b.asked && (
|
|
3386
|
+
const V = ci(t), ce = I.current;
|
|
3387
|
+
return V.preload = "metadata", V.muted = N.current || p.current, V.onplay = () => c(!0), V.onpause = () => c(!1), V.onended = () => c(!1), V.onloadedmetadata = () => {
|
|
3388
|
+
f(!0), V.currentTime = ((b == null ? void 0 : b.t) ?? 0) + ce, b != null && b.playing && V.play().catch((W) => {
|
|
3389
|
+
b.asked && (W == null ? void 0 : W.name) === "NotAllowedError" || L(Tt(W));
|
|
3390
3390
|
});
|
|
3391
|
-
},
|
|
3391
|
+
}, V.onerror = () => {
|
|
3392
3392
|
c(!1);
|
|
3393
|
-
const
|
|
3393
|
+
const W = V.error, me = Sa(W, !1);
|
|
3394
3394
|
Ca(t).then((Z) => {
|
|
3395
|
-
Cl(Z == null ? void 0 : Z.message) || oi(
|
|
3395
|
+
Cl(Z == null ? void 0 : Z.message) || oi(W), o.current === V && (L({ message: (Z == null ? void 0 : Z.message) ?? me }), Z != null && Z.permanent || (o.current = null));
|
|
3396
3396
|
});
|
|
3397
|
-
}, o.current =
|
|
3398
|
-
C.current = { t: Math.max(0,
|
|
3397
|
+
}, o.current = V, () => {
|
|
3398
|
+
C.current = { t: Math.max(0, V.currentTime - ce), playing: !V.paused && !V.ended }, V.pause(), V.onplay = V.onpause = V.onended = V.onloadedmetadata = V.onerror = null, o.current = null;
|
|
3399
3399
|
};
|
|
3400
3400
|
}, [t, D]), U(() => () => {
|
|
3401
3401
|
C.current = null;
|
|
3402
3402
|
}, []);
|
|
3403
|
-
const _ = n.length ? ((A = n[n.length - 1].words[n[n.length - 1].words.length - 1]) == null ? void 0 : A.end) ?? n[n.length - 1].start + 4 : 0,
|
|
3404
|
-
|
|
3405
|
-
const
|
|
3406
|
-
|
|
3407
|
-
const T =
|
|
3403
|
+
const _ = n.length ? ((A = n[n.length - 1].words[n[n.length - 1].words.length - 1]) == null ? void 0 : A.end) ?? n[n.length - 1].start + 4 : 0, X = s > 0 || r != null && m && o.current != null && Number.isFinite(o.current.duration) && o.current.duration > r + 1, j = !X && m && o.current && Number.isFinite(o.current.duration) && o.current.duration || r || _ || 1, F = k(j);
|
|
3404
|
+
F.current = j;
|
|
3405
|
+
const S = k(X);
|
|
3406
|
+
S.current = X;
|
|
3407
|
+
const T = k(a);
|
|
3408
3408
|
T.current = a;
|
|
3409
|
-
const [
|
|
3410
|
-
|
|
3409
|
+
const [E, O] = z(!1), te = k(!1), K = (b) => {
|
|
3410
|
+
te.current = b, O(b);
|
|
3411
3411
|
};
|
|
3412
3412
|
U(() => {
|
|
3413
3413
|
var b;
|
|
3414
|
-
a == null &&
|
|
3414
|
+
a == null && te.current && (K(!1), (b = o.current) == null || b.play().catch(() => {
|
|
3415
3415
|
}));
|
|
3416
3416
|
}, [a]), U(() => {
|
|
3417
3417
|
var b;
|
|
3418
|
-
!
|
|
3418
|
+
!E || a == null || a < u + 1.5 || (K(!1), (b = o.current) == null || b.play().catch(() => {
|
|
3419
3419
|
}));
|
|
3420
|
-
}, [
|
|
3420
|
+
}, [E, a, u]), U(() => {
|
|
3421
3421
|
if (!l) return;
|
|
3422
3422
|
let b = 0;
|
|
3423
|
-
const
|
|
3423
|
+
const V = () => {
|
|
3424
3424
|
const ce = o.current;
|
|
3425
3425
|
if (ce) {
|
|
3426
|
-
const
|
|
3427
|
-
if (
|
|
3428
|
-
ce.pause(), d(
|
|
3426
|
+
const W = ce.currentTime - I.current;
|
|
3427
|
+
if (S.current && W >= F.current) {
|
|
3428
|
+
ce.pause(), d(F.current);
|
|
3429
3429
|
return;
|
|
3430
3430
|
}
|
|
3431
|
-
if (T.current != null &&
|
|
3432
|
-
K(!0), ce.pause(), d(
|
|
3431
|
+
if (T.current != null && W >= T.current) {
|
|
3432
|
+
K(!0), ce.pause(), d(W);
|
|
3433
3433
|
return;
|
|
3434
3434
|
}
|
|
3435
|
-
d(
|
|
3435
|
+
d(W);
|
|
3436
3436
|
}
|
|
3437
|
-
b = requestAnimationFrame(
|
|
3437
|
+
b = requestAnimationFrame(V);
|
|
3438
3438
|
};
|
|
3439
|
-
return b = requestAnimationFrame(
|
|
3439
|
+
return b = requestAnimationFrame(V), () => cancelAnimationFrame(b);
|
|
3440
3440
|
}, [l]);
|
|
3441
|
-
const
|
|
3441
|
+
const v = Ie(() => {
|
|
3442
3442
|
if (!n.length) return 0;
|
|
3443
3443
|
let b = 0;
|
|
3444
|
-
for (let
|
|
3444
|
+
for (let V = 0; V < n.length; V++) n[V].start <= u + 0.05 && (b = V);
|
|
3445
3445
|
return b;
|
|
3446
|
-
}, [n, u]), [ae,
|
|
3447
|
-
const
|
|
3448
|
-
d(
|
|
3446
|
+
}, [n, u]), [ae, ne] = z(0), G = (b) => {
|
|
3447
|
+
const V = T.current != null ? Math.min(b, Math.max(0, T.current - 0.5)) : b, ce = o.current;
|
|
3448
|
+
d(V), ce && (ce.currentTime = V + I.current), ne((W) => W + 1);
|
|
3449
3449
|
}, J = (b) => {
|
|
3450
3450
|
(b == null ? void 0 : b.name) !== "AbortError" && L(Tt(b));
|
|
3451
3451
|
}, pe = () => {
|
|
3452
|
-
var
|
|
3452
|
+
var V;
|
|
3453
3453
|
const b = o.current;
|
|
3454
3454
|
if (!b) {
|
|
3455
3455
|
if (!t && e) {
|
|
3456
|
-
C.current = (
|
|
3456
|
+
C.current = (V = C.current) != null && V.asked ? null : { t: u, playing: !0, asked: !0 };
|
|
3457
3457
|
return;
|
|
3458
3458
|
}
|
|
3459
|
-
t &&
|
|
3459
|
+
t && B((ce) => ce + 1), L({ message: e ? "The audio player is not ready yet — try again in a moment." : "There is no audio for this transcription." });
|
|
3460
3460
|
return;
|
|
3461
3461
|
}
|
|
3462
3462
|
if (l) {
|
|
3463
3463
|
b.pause();
|
|
3464
3464
|
return;
|
|
3465
3465
|
}
|
|
3466
|
-
if (
|
|
3466
|
+
if (te.current) {
|
|
3467
3467
|
K(!1);
|
|
3468
3468
|
return;
|
|
3469
3469
|
}
|
|
3470
3470
|
b.currentTime < I.current && (b.currentTime = I.current), u >= j - 0.25 && G(0), b.play().catch(J);
|
|
3471
3471
|
}, le = (b) => {
|
|
3472
|
-
const
|
|
3473
|
-
|
|
3472
|
+
const V = n[Math.max(0, Math.min(n.length - 1, b))];
|
|
3473
|
+
V && G(V.start);
|
|
3474
3474
|
}, Te = (b) => G(Math.max(0, Math.min(1, b)) * j), je = (b) => {
|
|
3475
|
-
const
|
|
3476
|
-
G(
|
|
3475
|
+
const V = Ln(b, n, j);
|
|
3476
|
+
G(V.t);
|
|
3477
3477
|
const ce = o.current;
|
|
3478
3478
|
if (ce) {
|
|
3479
|
-
if (!
|
|
3479
|
+
if (!V.playing) {
|
|
3480
3480
|
ce.pause();
|
|
3481
3481
|
return;
|
|
3482
3482
|
}
|
|
@@ -3484,9 +3484,9 @@ function Vl(t, e, n, r, s = 0, a = null) {
|
|
|
3484
3484
|
}
|
|
3485
3485
|
}, Ee = (b) => G(b.start), Le = (b) => {
|
|
3486
3486
|
le(b);
|
|
3487
|
-
const
|
|
3488
|
-
|
|
3489
|
-
}, we =
|
|
3487
|
+
const V = o.current;
|
|
3488
|
+
V && V.paused && V.play().catch(J);
|
|
3489
|
+
}, we = k(!1), _e = k(0), Pe = () => {
|
|
3490
3490
|
var b;
|
|
3491
3491
|
l && ((b = o.current) == null || b.pause(), we.current = !0);
|
|
3492
3492
|
}, Se = () => {
|
|
@@ -3498,29 +3498,29 @@ function Vl(t, e, n, r, s = 0, a = null) {
|
|
|
3498
3498
|
const b = o.current;
|
|
3499
3499
|
if (!b) return null;
|
|
3500
3500
|
b.currentTime < I.current && (b.currentTime = I.current);
|
|
3501
|
-
const
|
|
3502
|
-
N.current = ce, b.muted = ce || p.current,
|
|
3501
|
+
const V = (ce) => {
|
|
3502
|
+
N.current = ce, b.muted = ce || p.current, M(ce);
|
|
3503
3503
|
};
|
|
3504
3504
|
try {
|
|
3505
|
-
return
|
|
3505
|
+
return V(!1), await b.play(), !0;
|
|
3506
3506
|
} catch (ce) {
|
|
3507
3507
|
if ((ce == null ? void 0 : ce.name) !== "NotAllowedError")
|
|
3508
|
-
return
|
|
3508
|
+
return V(!0), null;
|
|
3509
3509
|
}
|
|
3510
3510
|
try {
|
|
3511
|
-
return
|
|
3511
|
+
return V(!0), await b.play(), !1;
|
|
3512
3512
|
} catch {
|
|
3513
3513
|
return null;
|
|
3514
3514
|
}
|
|
3515
3515
|
},
|
|
3516
3516
|
playing: l,
|
|
3517
3517
|
t: u,
|
|
3518
|
-
idx:
|
|
3518
|
+
idx: v,
|
|
3519
3519
|
dur: j,
|
|
3520
|
-
muted:
|
|
3520
|
+
muted: g,
|
|
3521
3521
|
toggleMute: () => {
|
|
3522
3522
|
const b = !N.current;
|
|
3523
|
-
N.current = b, o.current && (o.current.muted = b || p.current),
|
|
3523
|
+
N.current = b, o.current && (o.current.muted = b || p.current), M(b);
|
|
3524
3524
|
},
|
|
3525
3525
|
toggle: pe,
|
|
3526
3526
|
seekRow: le,
|
|
@@ -3534,20 +3534,20 @@ function Vl(t, e, n, r, s = 0, a = null) {
|
|
|
3534
3534
|
b && (b.pause(), b.currentTime = I.current), d(0);
|
|
3535
3535
|
},
|
|
3536
3536
|
videoAt: (b) => {
|
|
3537
|
-
const
|
|
3538
|
-
if (!
|
|
3537
|
+
const V = o.current;
|
|
3538
|
+
if (!V || V.paused || V.ended || we.current || Date.now() - _e.current < 3e3) return;
|
|
3539
3539
|
const ce = b + I.current;
|
|
3540
|
-
Math.abs(
|
|
3540
|
+
Math.abs(V.currentTime - ce) <= 0.2 || (_e.current = Date.now(), V.currentTime = ce);
|
|
3541
3541
|
},
|
|
3542
3542
|
engaged: l || u > 0,
|
|
3543
|
-
prev: () => le(
|
|
3544
|
-
next: () => le(
|
|
3543
|
+
prev: () => le(v - 1),
|
|
3544
|
+
next: () => le(v + 1),
|
|
3545
3545
|
hold: Pe,
|
|
3546
3546
|
release: Se,
|
|
3547
3547
|
error: y,
|
|
3548
3548
|
clearError: () => L(null),
|
|
3549
3549
|
has: e,
|
|
3550
|
-
edgeWait:
|
|
3550
|
+
edgeWait: E,
|
|
3551
3551
|
wordSync: !0,
|
|
3552
3552
|
pause: () => {
|
|
3553
3553
|
var b;
|
|
@@ -3562,66 +3562,66 @@ function Vl(t, e, n, r, s = 0, a = null) {
|
|
|
3562
3562
|
};
|
|
3563
3563
|
}
|
|
3564
3564
|
function Hl(t, e, n, r, s, a, o = !1, l) {
|
|
3565
|
-
const c =
|
|
3565
|
+
const c = k(/* @__PURE__ */ new Set());
|
|
3566
3566
|
c.current = l ?? c.current;
|
|
3567
|
-
const u =
|
|
3567
|
+
const u = k(null), [d, g] = z(!1), [M, N] = z(0), [p, y] = z(0), [L, m] = z(!1), f = k(L);
|
|
3568
3568
|
f.current = L;
|
|
3569
|
-
const [I, C] = z(null), [D,
|
|
3570
|
-
|
|
3571
|
-
const [T,
|
|
3569
|
+
const [I, C] = z(null), [D, B] = z(null), [_, X] = z(null), [j, F] = z(null), S = k(j);
|
|
3570
|
+
S.current = j;
|
|
3571
|
+
const [T, E] = z(null), [O, te] = z(null), [K, v] = z(null), [ae, ne] = z(!1), G = k(e);
|
|
3572
3572
|
G.current = e;
|
|
3573
|
-
const J =
|
|
3573
|
+
const J = k(o), pe = k([]);
|
|
3574
3574
|
J.current = o, u.current && (u.current.flow = o);
|
|
3575
|
-
const le =
|
|
3575
|
+
const le = k(null), Te = k(s);
|
|
3576
3576
|
Te.current = s;
|
|
3577
|
-
const je =
|
|
3577
|
+
const je = k(a);
|
|
3578
3578
|
je.current = a;
|
|
3579
3579
|
const Ee = Ke((Y) => {
|
|
3580
|
-
Y.finite = !0, Y.coming = (R) => c.current.has(R), Y.readAhead = 6, Y.readAheadS = 45, Y.onWaiting = (R) =>
|
|
3581
|
-
if (
|
|
3582
|
-
const q = G.current.findIndex((
|
|
3580
|
+
Y.finite = !0, Y.coming = (R) => c.current.has(R), Y.readAhead = 6, Y.readAheadS = 45, Y.onWaiting = (R) => B(R), Y.onStarting = (R) => X(R), Y.onSentence = (R) => {
|
|
3581
|
+
if (g(Y.playing), R == null) return;
|
|
3582
|
+
const q = G.current.findIndex((re) => re.sentenceId === R);
|
|
3583
3583
|
q >= 0 && N(q);
|
|
3584
3584
|
}, Y.onError = (R) => {
|
|
3585
|
-
|
|
3585
|
+
g(Y.playing), C(R instanceof ui ? { 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." });
|
|
3586
3586
|
}, Y.gapBefore = (R, q) => {
|
|
3587
3587
|
if (!J.current) return 0;
|
|
3588
|
-
const
|
|
3588
|
+
const re = G.current, de = re.find((Ce) => Ce.sentenceId === R), Oe = re.find((Ce) => Ce.sentenceId === q);
|
|
3589
3589
|
if (!Oe) return 0;
|
|
3590
|
-
const ye =
|
|
3590
|
+
const ye = S.current;
|
|
3591
3591
|
if (R == null) return ye && ye.sid === q ? Math.max(0, Oe.start - ye.t) : 0;
|
|
3592
3592
|
const ke = le.current;
|
|
3593
3593
|
return ke && Date.now() - ke.at < 2e3 ? Math.max(0, Oe.start - (ke.t + (Date.now() - ke.at) / 1e3 * Y.rate)) : !de || Oe.start <= de.start ? 0 : Math.max(0, Oe.start - At(de, de.start, de.start + 4));
|
|
3594
3594
|
}, Y.flow = J.current, Y.silentSpan = (R) => {
|
|
3595
3595
|
var $e;
|
|
3596
|
-
const q = G.current,
|
|
3596
|
+
const q = G.current, re = q.findIndex((ot) => ot.sentenceId === R), de = q[re];
|
|
3597
3597
|
if (!de) return null;
|
|
3598
|
-
const Oe = (($e = q[
|
|
3598
|
+
const Oe = (($e = q[re + 1]) == null ? void 0 : $e.start) ?? At(de, de.start, de.start + 4), ye = Math.max(0, Oe - de.start), ke = le.current, Ce = ke && Date.now() - ke.at < 2e3 ? ke.t + (Date.now() - ke.at) / 1e3 * (Y.rate || 1) : de.start, Ze = Math.max(0, Math.min(ye, Ce - de.start));
|
|
3599
3599
|
return { fromS: Ze, ms: (ye - Ze) * 1e3 / (Y.rate || 1) };
|
|
3600
3600
|
}, Y.speakable = (R) => {
|
|
3601
3601
|
const q = Te.current;
|
|
3602
3602
|
if (!q || !q.size) return !0;
|
|
3603
|
-
const
|
|
3604
|
-
return !
|
|
3603
|
+
const re = G.current.find((de) => de.sentenceId === R);
|
|
3604
|
+
return !re || !q.has(re.speaker);
|
|
3605
3605
|
};
|
|
3606
|
-
}, []), Le =
|
|
3607
|
-
}),
|
|
3606
|
+
}, []), Le = k(null), we = k(null), _e = k(null), [Pe, Se] = z(!1), $ = k(() => {
|
|
3607
|
+
}), H = (Y) => {
|
|
3608
3608
|
if (_e.current = Y, Se(!!(Y != null && Y.playing)), !Y) return;
|
|
3609
3609
|
const R = Ln(Y, G.current, ze).index;
|
|
3610
3610
|
N(R), Ae.current = R;
|
|
3611
3611
|
}, A = () => {
|
|
3612
|
-
_e.current &&
|
|
3612
|
+
_e.current && H(null);
|
|
3613
3613
|
};
|
|
3614
3614
|
U(() => {
|
|
3615
3615
|
var q;
|
|
3616
3616
|
if (Le.current !== r) {
|
|
3617
|
-
const
|
|
3618
|
-
Le.current = r, (q = u.current) == null || q.stop(), u.current = new fr(), Ee(u.current), u.current.setSequence(pe.current),
|
|
3617
|
+
const re = Le.current != null ? we.current : null;
|
|
3618
|
+
Le.current = r, (q = u.current) == null || q.stop(), u.current = new fr(), Ee(u.current), u.current.setSequence(pe.current), g(!1), N(0), C(null), X(null), F(null), H(re && (re.playing || re.t > 0) ? re : null);
|
|
3619
3619
|
}
|
|
3620
3620
|
const Y = u.current;
|
|
3621
3621
|
Y.setMuted(f.current);
|
|
3622
|
-
for (const
|
|
3622
|
+
for (const re of t) Y.add(re);
|
|
3623
3623
|
const R = _e.current;
|
|
3624
|
-
R && (J.current || t.some((
|
|
3624
|
+
R && (J.current || t.some((re) => re.sentenceId >= (R.sentenceId ?? 0))) && (H(null), $.current(R));
|
|
3625
3625
|
}, [r, t]);
|
|
3626
3626
|
const b = Ie(() => o ? e.map((Y) => Y.sentenceId).filter((Y) => Y != null) : [], [e, o]);
|
|
3627
3627
|
pe.current = b, U(() => {
|
|
@@ -3631,49 +3631,49 @@ function Hl(t, e, n, r, s, a, o = !1, l) {
|
|
|
3631
3631
|
var Y;
|
|
3632
3632
|
(Y = u.current) == null || Y.stop(), u.current = null, Le.current = null;
|
|
3633
3633
|
}, []);
|
|
3634
|
-
const
|
|
3634
|
+
const V = T != null || O != null;
|
|
3635
3635
|
U(() => {
|
|
3636
|
-
if (!d && !
|
|
3637
|
-
|
|
3636
|
+
if (!d && !V) {
|
|
3637
|
+
E(null), te(null);
|
|
3638
3638
|
return;
|
|
3639
3639
|
}
|
|
3640
3640
|
const Y = () => {
|
|
3641
3641
|
var ye, ke;
|
|
3642
3642
|
const q = ((ye = u.current) == null ? void 0 : ye.resting()) ?? null;
|
|
3643
|
-
|
|
3644
|
-
const
|
|
3645
|
-
q == null ?
|
|
3643
|
+
ne(!!(q != null && q.silent)), q != null && q.silent && S.current && (S.current = null, F(null)), te((Ce) => q == null ? null : Ce != null && Math.abs(Ce - q.s) < 0.05 ? Ce : q.s);
|
|
3644
|
+
const re = S.current;
|
|
3645
|
+
q == null ? v(null) : re && re.sid === q.sentenceId && (v(re.t), S.current = null, F(null));
|
|
3646
3646
|
const de = ((ke = u.current) == null ? void 0 : ke.position()) ?? null, Oe = de && je.current ? je.current[String(de.sentenceId)] ?? null : null;
|
|
3647
|
-
|
|
3647
|
+
re && de && de.sentenceId === re.sid && de.t > 0.1 && F(null), E((Ce) => de ? Ce && Math.abs(Ce.t - de.t) < 0.05 && Ce.dur === de.dur && Ce.words === Oe ? Ce : { t: de.t, dur: de.dur, words: Oe } : Ce == null ? Ce : null);
|
|
3648
3648
|
};
|
|
3649
3649
|
Y();
|
|
3650
3650
|
const R = setInterval(Y, 100);
|
|
3651
3651
|
return () => clearInterval(R);
|
|
3652
|
-
}, [d,
|
|
3653
|
-
const ce = Ie(() => new Set(t.map((Y) => Y.sentenceId)), [t]),
|
|
3652
|
+
}, [d, V]);
|
|
3653
|
+
const ce = Ie(() => new Set(t.map((Y) => Y.sentenceId)), [t]), W = (Y) => {
|
|
3654
3654
|
var q;
|
|
3655
3655
|
const R = (q = e[Y]) == null ? void 0 : q.sentenceId;
|
|
3656
3656
|
return R != null && ce.has(R);
|
|
3657
3657
|
}, me = (Y, R) => {
|
|
3658
|
-
for (let q = Y; q >= 0 && q < e.length; q += R) if (
|
|
3658
|
+
for (let q = Y; q >= 0 && q < e.length; q += R) if (W(q)) return q;
|
|
3659
3659
|
return null;
|
|
3660
|
-
}, Z = Math.max(0, Math.min(
|
|
3661
|
-
Ae.current =
|
|
3660
|
+
}, Z = Math.max(0, Math.min(M, Math.max(0, e.length - 1))), ve = e.length ? e[e.length - 1].start + 4 : 0, ze = n || ve || 1, Ge = k(!1), Ae = k(M);
|
|
3661
|
+
Ae.current = M;
|
|
3662
3662
|
const ge = (Y) => {
|
|
3663
|
-
var R, q,
|
|
3664
|
-
(q = u.current) == null || q.play(((R = e[Y]) == null ? void 0 : R.sentenceId) ?? null),
|
|
3663
|
+
var R, q, re;
|
|
3664
|
+
(q = u.current) == null || q.play(((R = e[Y]) == null ? void 0 : R.sentenceId) ?? null), g(!!((re = u.current) != null && re.playing));
|
|
3665
3665
|
}, Ye = (Y) => {
|
|
3666
|
-
var q,
|
|
3666
|
+
var q, re, de;
|
|
3667
3667
|
const R = Math.max(0, Math.min(Math.max(0, e.length - 1), Y));
|
|
3668
|
-
N(R), Ae.current = R, y((Oe) => Oe + 1), (
|
|
3668
|
+
N(R), Ae.current = R, y((Oe) => Oe + 1), (re = u.current) == null || re.seek(((q = e[R]) == null ? void 0 : q.sentenceId) ?? null), g(!!((de = u.current) != null && de.playing));
|
|
3669
3669
|
}, Ve = (Y) => {
|
|
3670
3670
|
var R;
|
|
3671
|
-
A(),
|
|
3672
|
-
},
|
|
3671
|
+
A(), F(null), (R = u.current) == null || R.startWithin(-1, 0), Ye(Y);
|
|
3672
|
+
}, Q = (Y) => {
|
|
3673
3673
|
var de;
|
|
3674
|
-
const R = e[Y], q = (R == null ? void 0 : R.start) ?? 0,
|
|
3675
|
-
return { from: q, span: Math.max(0,
|
|
3676
|
-
}, he =
|
|
3674
|
+
const R = e[Y], q = (R == null ? void 0 : R.start) ?? 0, re = ((de = e[Y + 1]) == null ? void 0 : de.start) ?? At(R, q, ze);
|
|
3675
|
+
return { from: q, span: Math.max(0, re - q) };
|
|
3676
|
+
}, he = Q(Z), ue = Math.max(0, Math.min(he.span, At(e[Z], he.from, he.from + 4) - he.from)), ie = j ? j.t : o ? O != null && ae ? he.from + Math.min(he.span, O) : O != null ? K != null ? Math.min(he.from, K + O) : he.from + Math.min(he.span, ue + O) : T && T.dur > 0 ? he.from + Math.min(ue, T.t / T.dur * ue) : he.from : T && T.dur > 0 ? he.from + Math.min(he.span, T.t / T.dur * he.span) : he.from;
|
|
3677
3677
|
U(() => {
|
|
3678
3678
|
we.current = _e.current ?? Sl(e, ie, d, ze);
|
|
3679
3679
|
});
|
|
@@ -3702,34 +3702,34 @@ function Hl(t, e, n, r, s, a, o = !1, l) {
|
|
|
3702
3702
|
f.current = Y, (R = u.current) == null || R.setMuted(Y), m(Y);
|
|
3703
3703
|
},
|
|
3704
3704
|
toggle: () => {
|
|
3705
|
-
var R, q,
|
|
3705
|
+
var R, q, re;
|
|
3706
3706
|
if (Pe) {
|
|
3707
3707
|
A();
|
|
3708
3708
|
return;
|
|
3709
3709
|
}
|
|
3710
3710
|
if (A(), d) {
|
|
3711
|
-
(R = u.current) == null || R.pause(),
|
|
3711
|
+
(R = u.current) == null || R.pause(), g(!1);
|
|
3712
3712
|
return;
|
|
3713
3713
|
}
|
|
3714
3714
|
C(null);
|
|
3715
3715
|
const Y = Ae.current;
|
|
3716
|
-
if (!
|
|
3717
|
-
|
|
3716
|
+
if (!S.current && ((re = u.current) != null && re.resume(((q = e[Y]) == null ? void 0 : q.sentenceId) ?? null))) {
|
|
3717
|
+
g(!0);
|
|
3718
3718
|
return;
|
|
3719
3719
|
}
|
|
3720
3720
|
ge(Y);
|
|
3721
3721
|
},
|
|
3722
3722
|
pause: () => {
|
|
3723
3723
|
var Y;
|
|
3724
|
-
A(), (Y = u.current) == null || Y.pause(),
|
|
3724
|
+
A(), (Y = u.current) == null || Y.pause(), g(!1);
|
|
3725
3725
|
},
|
|
3726
3726
|
stop: () => {
|
|
3727
3727
|
var Y, R, q;
|
|
3728
|
-
A(), (Y = u.current) == null || Y.pause(),
|
|
3728
|
+
A(), (Y = u.current) == null || Y.pause(), g(!1), N(0), E(null), (q = u.current) == null || q.seek(((R = e[0]) == null ? void 0 : R.sentenceId) ?? null);
|
|
3729
3729
|
},
|
|
3730
3730
|
seekRow: Ve,
|
|
3731
3731
|
resumeAt: (Y) => {
|
|
3732
|
-
|
|
3732
|
+
H(Y), t.some((R) => R.sentenceId >= (Y.sentenceId ?? 0)) && (H(null), $.current(Y));
|
|
3733
3733
|
},
|
|
3734
3734
|
seekFrac: (Y) => {
|
|
3735
3735
|
var ot, rt, gt;
|
|
@@ -3737,37 +3737,37 @@ function Hl(t, e, n, r, s, a, o = !1, l) {
|
|
|
3737
3737
|
const R = Math.max(0, Math.min(1, Y)) * ze;
|
|
3738
3738
|
let q = 0;
|
|
3739
3739
|
for (let be = 0; be < e.length; be++) e[be].start <= R && (q = be);
|
|
3740
|
-
const
|
|
3741
|
-
if (o &&
|
|
3740
|
+
const re = e[q], de = o && re && R < re.start - 0.05;
|
|
3741
|
+
if (o && re && (de || e[q + 1] && R >= At(re, re.start, re.start + 4))) {
|
|
3742
3742
|
const be = de ? q : q + 1, st = e[be];
|
|
3743
3743
|
(ot = u.current) == null || ot.startWithin(-1, 0);
|
|
3744
3744
|
const He = { t: R, sid: st.sentenceId ?? null };
|
|
3745
|
-
|
|
3745
|
+
S.current = He, F(He), Ye(be);
|
|
3746
3746
|
return;
|
|
3747
3747
|
}
|
|
3748
|
-
const Oe = (
|
|
3748
|
+
const Oe = (re == null ? void 0 : re.sentenceId) ?? null, { from: ye, span: ke } = Q(q);
|
|
3749
3749
|
let Ce = ke > 0 ? Math.max(0, Math.min(1, (R - ye) / ke)) : 0;
|
|
3750
3750
|
const Ze = Oe != null ? (rt = je.current) == null ? void 0 : rt[String(Oe)] : void 0, $e = Ze != null && Ze.length ? Ze[Ze.length - 1][1] : 0;
|
|
3751
|
-
if (
|
|
3751
|
+
if (re && Ze && Ze.length === re.words.length && $e > 0) {
|
|
3752
3752
|
let be = 0;
|
|
3753
|
-
for (let it = 0; it <
|
|
3754
|
-
const st =
|
|
3753
|
+
for (let it = 0; it < re.words.length; it++) re.words[it].start <= R && (be = it);
|
|
3754
|
+
const st = re.words[be], He = st.end > st.start ? Math.max(0, Math.min(1, (R - st.start) / (st.end - st.start))) : 0;
|
|
3755
3755
|
Ce = Math.min(1, (Ze[be][0] + He * (Ze[be][1] - Ze[be][0])) / $e);
|
|
3756
3756
|
}
|
|
3757
|
-
Oe != null && ((gt = u.current) == null || gt.startWithin(Oe, Ce)),
|
|
3757
|
+
Oe != null && ((gt = u.current) == null || gt.startWithin(Oe, Ce)), F(Ce > 0.01 ? { t: R, sid: Oe } : null), Ye(q);
|
|
3758
3758
|
},
|
|
3759
3759
|
seekWord: a ? (Y) => {
|
|
3760
3760
|
var de, Oe, ye, ke;
|
|
3761
3761
|
const R = e[Z];
|
|
3762
3762
|
if (!R || R.sentenceId == null) return;
|
|
3763
|
-
const q = R.words.findIndex((Ce) => Ce.seq === Y.seq && Ce.idx === Y.idx),
|
|
3764
|
-
|
|
3763
|
+
const q = R.words.findIndex((Ce) => Ce.seq === Y.seq && Ce.idx === Y.idx), re = q >= 0 ? (ye = (Oe = (de = je.current) == null ? void 0 : de[String(R.sentenceId)]) == null ? void 0 : Oe[q]) == null ? void 0 : ye[0] : void 0;
|
|
3764
|
+
re != null && ((ke = u.current) == null || ke.seekWithin(re));
|
|
3765
3765
|
} : void 0,
|
|
3766
3766
|
playRow: (Y) => {
|
|
3767
3767
|
var q;
|
|
3768
3768
|
A();
|
|
3769
3769
|
const R = Math.max(0, Math.min(Math.max(0, e.length - 1), Y));
|
|
3770
|
-
|
|
3770
|
+
F(null), (q = u.current) == null || q.startWithin(-1, 0), N(R), Ae.current = R, y((re) => re + 1), ge(R);
|
|
3771
3771
|
},
|
|
3772
3772
|
prev: () => {
|
|
3773
3773
|
const Y = me(Z - 1, -1);
|
|
@@ -3791,16 +3791,16 @@ function Hl(t, e, n, r, s, a, o = !1, l) {
|
|
|
3791
3791
|
}
|
|
3792
3792
|
};
|
|
3793
3793
|
function Ue(Y) {
|
|
3794
|
-
var
|
|
3795
|
-
const R = (
|
|
3794
|
+
var re, de, Oe, ye;
|
|
3795
|
+
const R = (re = e[Y]) == null ? void 0 : re.sentenceId;
|
|
3796
3796
|
if (R == null) return;
|
|
3797
|
-
N(Y), Ae.current = Y,
|
|
3797
|
+
N(Y), Ae.current = Y, F(null), S.current = null, (de = u.current) == null || de.joinSilently(R);
|
|
3798
3798
|
const q = ((Oe = u.current) == null ? void 0 : Oe.resting()) ?? null;
|
|
3799
|
-
|
|
3799
|
+
te((q == null ? void 0 : q.s) ?? null), ne(!!(q != null && q.silent)), g(!!((ye = u.current) != null && ye.playing));
|
|
3800
3800
|
}
|
|
3801
3801
|
return fe.joinAt = o ? (Y) => {
|
|
3802
3802
|
A(), Ue(Ln({ t: Y, playing: !0, sentenceId: null, offset: 0, ended: !1 }, e, ze).index);
|
|
3803
|
-
} : void 0,
|
|
3803
|
+
} : void 0, $.current = (Y) => {
|
|
3804
3804
|
var q;
|
|
3805
3805
|
const R = Ln(Y, e, ze);
|
|
3806
3806
|
if (J.current) {
|
|
@@ -3812,29 +3812,29 @@ function Hl(t, e, n, r, s, a, o = !1, l) {
|
|
|
3812
3812
|
}
|
|
3813
3813
|
const Wl = () => {
|
|
3814
3814
|
}, Fl = "The language this recording is read aloud in.", Gl = { title: "READ IN", note: "The transcript and its voice switch to this language." };
|
|
3815
|
-
function Zl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side:
|
|
3815
|
+
function Zl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: g, hearOriginal: M = !1, timed: N = !1, stockVoices: p = !1, stickyPicker: y = !1, pickerBusy: L = null, voiceSheet: m, forcedVoice: f = null }) {
|
|
3816
3816
|
var on, Gt, Zt, qt;
|
|
3817
|
-
const { onAddVoice: I, onPickVoice: C, onSelectSpeaker: D, noCloneFor:
|
|
3817
|
+
const { onAddVoice: I, onPickVoice: C, onSelectSpeaker: D, noCloneFor: B, castNoClone: _, castShort: X, castBuilding: j, castWarn: F, badge: S, titleNode: T } = m ?? {}, E = !!m, O = !!(m != null && m.pendingClones), [te, K] = gi(), [v, ae] = z(null), [ne, G] = z(!1), [J, pe] = z(!1), [le, Te] = z(!1), [je, Ee] = z(!1), Le = u ?? l, we = u === null, _e = u != null || v != null, Se = ((P) => !!P && !!(o != null && o.voice.includes(P)))(we ? l : Le) ? we ? l : Le : "en", $ = Dl(Se), H = (m == null ? void 0 : m.cloneOn) ?? !0, [A, b] = z(0), V = k(H);
|
|
3818
3818
|
U(() => {
|
|
3819
|
-
|
|
3820
|
-
}, [
|
|
3821
|
-
const ce = dl(Se, _e || s || J, hl(e) * 1e3 + A, { id: t ?? null, shareCode: a.shareCode ?? null }),
|
|
3822
|
-
const P = Gs(
|
|
3819
|
+
V.current !== H && (V.current = H, b((P) => P + 1));
|
|
3820
|
+
}, [H]);
|
|
3821
|
+
const ce = dl(Se, _e || s || J, hl(e) * 1e3 + A, { id: t ?? null, shareCode: a.shareCode ?? null }), W = Ie(() => ((ce == null ? void 0 : ce.voices) ?? []).filter((P) => E || !P.cloned || P.speaker != null), [ce, E]), me = W.length > 1, Z = wr(o, Le), ve = ki(), ze = Ie(() => fi(o, "translation"), [o]), [Ge, Ae] = z(null), [ge] = z(() => /* @__PURE__ */ new Set()), [Ye, Ve] = z({}), Q = Ie(() => al(n, e, ve.vcUnknownSpk), [n, e, ve]), he = me && Q.filter((P) => P.key >= 0).length > 1, ue = Ge != null && Q.some((P) => P.key === Ge) ? Ge : ((on = Q[0]) == null ? void 0 : on.key) ?? null, ie = Ie(() => {
|
|
3822
|
+
const P = Gs(Q, W, H);
|
|
3823
3823
|
for (const [De, Be] of Object.entries(Ye[Se ?? ""] ?? {})) P.set(Number(De), Be);
|
|
3824
3824
|
return P;
|
|
3825
|
-
}, [
|
|
3825
|
+
}, [Q, W, Ye, Se, H]), fe = he && Object.keys(Ye[Se ?? ""] ?? {}).length > 0, Ue = Ie(() => p && !fe ? Gs(Q, W, !1) : null, [p, fe, Q, W]), Y = Ie(() => fe ? Ws(ie) || null : Ue && Ws(Ue) || null, [fe, ie, Ue]), R = fe ? ie : Ue, q = W.some((P) => P.cloned && P.consent !== "pending"), re = !!Le && !!(o != null && o.voice.includes(Le)), de = re && !M, Oe = Ie(
|
|
3826
3826
|
() => n.filter((P) => !P.suppressed && !P.unclear).map((P) => P.sentenceId).filter((P) => P != null),
|
|
3827
3827
|
[n]
|
|
3828
|
-
), ye = Ml({ recordingId: t, lang: Le, ended: s, cred: a, pickedVoice: f || (Y ??
|
|
3828
|
+
), ye = Ml({ recordingId: t, lang: Le, ended: s, cred: a, pickedVoice: f || (Y ?? v), sentenceIds: s && de ? Oe : void 0 }), ke = W.find((P) => P.id === v) ?? W.find((P) => {
|
|
3829
3829
|
var De;
|
|
3830
3830
|
return P.id === ((De = ye.track) == null ? void 0 : De.voice);
|
|
3831
|
-
}) ??
|
|
3831
|
+
}) ?? W.find((P) => P.default) ?? W[0] ?? null, Ce = (ke == null ? void 0 : ke.id) ?? null;
|
|
3832
3832
|
U(() => {
|
|
3833
3833
|
if (!ye.rendering) return;
|
|
3834
3834
|
const P = setInterval(ye.reload, 4e3);
|
|
3835
3835
|
return () => clearInterval(P);
|
|
3836
3836
|
}, [ye.rendering, ye.reload]);
|
|
3837
|
-
const Ze = `${t ?? ""}|${Le ?? ""}|${f || (Y ??
|
|
3837
|
+
const Ze = `${t ?? ""}|${Le ?? ""}|${f || (Y ?? v ?? ((Gt = ye.track) == null ? void 0 : Gt.voiceKey) ?? "default")}`, $e = Hl(ye.clips, n, r, Ze, ge, (Zt = ye.track) == null ? void 0 : Zt.wordTimes, N, ye.coming);
|
|
3838
3838
|
U(() => {
|
|
3839
3839
|
var De;
|
|
3840
3840
|
const P = (De = n[$e.idx]) == null ? void 0 : De.sentenceId;
|
|
@@ -3855,50 +3855,50 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
3855
3855
|
}, it = () => G(!0), lt = () => {
|
|
3856
3856
|
G(!1), pe(le), Te(!1);
|
|
3857
3857
|
}, Ht = (P) => {
|
|
3858
|
-
if (d(P), K(P), !((
|
|
3858
|
+
if (d(P), K(P), !((g || y) && !le)) {
|
|
3859
3859
|
if (P != null) {
|
|
3860
3860
|
lt();
|
|
3861
3861
|
return;
|
|
3862
3862
|
}
|
|
3863
|
-
|
|
3863
|
+
$.reset(), G(!1), pe(!1), Te(!1);
|
|
3864
3864
|
}
|
|
3865
3865
|
}, se = () => {
|
|
3866
|
-
|
|
3866
|
+
$.reset(), pe(!0);
|
|
3867
3867
|
}, Wt = () => {
|
|
3868
|
-
|
|
3869
|
-
}, x =
|
|
3868
|
+
$.reset(), pe(!1);
|
|
3869
|
+
}, x = ne && !le, wt = J || ne && le, Lt = () => {
|
|
3870
3870
|
if (x) {
|
|
3871
3871
|
G(!1);
|
|
3872
3872
|
return;
|
|
3873
3873
|
}
|
|
3874
|
-
|
|
3874
|
+
$.reset(), pe(!1), Te(!1), G(!0);
|
|
3875
3875
|
}, Ot = () => {
|
|
3876
|
-
if (
|
|
3876
|
+
if ($.reset(), wt) {
|
|
3877
3877
|
pe(!1), G(!1), Te(!1);
|
|
3878
3878
|
return;
|
|
3879
3879
|
}
|
|
3880
3880
|
G(!1), Te(!1), pe(!0);
|
|
3881
3881
|
}, Ct = (P) => {
|
|
3882
|
-
if (
|
|
3882
|
+
if ($.reset(), pe(he), (Le !== Se || we) && d(Se), ye.forget(), Ee(!0), he && ue != null && Se) {
|
|
3883
3883
|
const De = new Map(ie);
|
|
3884
3884
|
De.set(ue, P), Ve((Be) => ({ ...Be, [Se]: Object.fromEntries(De) })), ae(null);
|
|
3885
3885
|
return;
|
|
3886
3886
|
}
|
|
3887
3887
|
ae(P);
|
|
3888
|
-
}, ct = we ? { ...wr(o, null), flag: /* @__PURE__ */ i(oe, { d:
|
|
3889
|
-
const P =
|
|
3888
|
+
}, ct = we ? { ...wr(o, null), flag: /* @__PURE__ */ i(oe, { d: ee.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : Z, nn = c ? g ? /* @__PURE__ */ i("span", { className: "barchip", style: x ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(zn, { flag: ct.flag, code: ct.code, bordered: !1, onClick: Lt, flagOnly: !0, label: ct.label }) }) : /* @__PURE__ */ i(zn, { flag: ct.flag, code: ct.code, bordered: !1, onClick: it, flagOnly: !0, label: ct.label }) : null, Je = ee.voiceClone, ut = _e && (!!ye.track || ot), Ft = rt ? "var(--conf-low)" : ut || g && wt ? "var(--brand)" : "var(--ink-55)", dt = ot || !!$e.preparing && _e, vt = $e.preparing ? `Speaking this line in ${(ke == null ? void 0 : ke.name) ?? "this voice"}…` : ot ? `Preparing this recording in ${(ke == null ? void 0 : ke.name) ?? "this voice"} — it will play as soon as it is ready` : rt ? `This voice could not be prepared: ${rt}` : re ? me ? "Choose a voice" : ke ? ke.name : ve.vcNoVoice + Z.label : `${ve.vcNoVoice}${Z.label}`, rn = /* @__PURE__ */ i($a, { open: ne, onClose: lt, keepOpen: (!!g || y) && !le, value: we ? null : Le, onSelect: Ht, languages: ze, title: (g == null ? void 0 : g.title) ?? "SPOKEN LANGUAGE", note: (g == null ? void 0 : g.note) ?? Fl, searchPlaceholder: ve.search, none: "Original", pinned: (we ? l : Le) ? [we ? l : Le] : [], recent: te, requireVoice: le, sticky: y, busy: L }), bt = Ie(() => W.filter((P) => P.cloned && !P.auto), [W]), _t = (P) => P.voiceId ? bt.find((De) => De.id === `clone:${P.voiceId}`) ?? null : null, ht = Ie(() => Q.filter((P) => P.key >= 0), [Q]), Yt = Ie(() => {
|
|
3889
|
+
const P = W.filter((Be) => !Be.cloned);
|
|
3890
3890
|
if (!he) return [...P, ...s && ht.length === 1 ? bt.filter((Be) => Be.id === `clone:${ht[0].voiceId}`) : []];
|
|
3891
3891
|
const De = [];
|
|
3892
3892
|
for (const Be of ht) {
|
|
3893
3893
|
if (_t(Be)) continue;
|
|
3894
|
-
const zt =
|
|
3895
|
-
!zt || zt.ready === !1 || zt.consent === "pending" && !
|
|
3894
|
+
const zt = W.find((Kt) => Kt.cloned && Kt.auto && Kt.speaker === Be.key);
|
|
3895
|
+
!zt || zt.ready === !1 || zt.consent === "pending" && !O || De.push({ id: zt.id, name: Be.name, cloned: !0, default: !1, live: !0, auto: !0, gender: Be.sex ?? zt.gender ?? null, speaker: Be.key, consent: zt.consent ?? null });
|
|
3896
3896
|
}
|
|
3897
3897
|
return [...P, ...bt, ...De];
|
|
3898
|
-
}, [
|
|
3898
|
+
}, [W, bt, he, ht, O, s]), Xe = he ? ht.find((P) => P.key === ue) ?? null : null, qe = (P) => {
|
|
3899
3899
|
var De;
|
|
3900
|
-
return P ? ((De =
|
|
3901
|
-
}, Ut = Xe ? Xe.sex ?? qe(ie.get(Xe.key)) : null, sn = Ie(() => Xe ? Yt.filter((P) => P.cloned ? P.live ? P.speaker === Xe.key : P.id === `clone:${Xe.voiceId}` : !0) : Yt, [Yt, Xe, Ut, ht]), Rt = (P) =>
|
|
3900
|
+
return P ? ((De = W.find((Be) => Be.id === P)) == null ? void 0 : De.gender) ?? null : null;
|
|
3901
|
+
}, Ut = Xe ? Xe.sex ?? qe(ie.get(Xe.key)) : null, sn = Ie(() => Xe ? Yt.filter((P) => P.cloned ? P.live ? P.speaker === Xe.key : P.id === `clone:${Xe.voiceId}` : !0) : Yt, [Yt, Xe, Ut, ht]), Rt = (P) => W.find((De) => De.cloned && De.auto && De.speaker === P) ?? null, We = { people: ht, gvList: W, autoOf: Rt, savedFor: _t }, xt = (S == null ? void 0 : S(We)) ?? 0, kt = F ? ht.map((P) => F(P, We)).filter((P) => !!P) : [], Dn = /* @__PURE__ */ h("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": g ? wt : void 0, title: dt || rt ? vt : void 0, style: { cursor: "pointer", background: ut || dt || g && wt ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: g && wt ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: g ? Ot : se, children: [
|
|
3902
3902
|
dt ? /* @__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" } }) : /* @__PURE__ */ i(oe, { d: Je, size: 17, sw: 1.6, style: { color: Ft } }),
|
|
3903
3903
|
kt.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: kt.join(" · "), children: "!" }) : !!xt && /* @__PURE__ */ i("span", { className: "txvoice__n", title: `${xt} speaker${xt === 1 ? "" : "s"} can get a cloned voice`, children: xt })
|
|
3904
3904
|
] }), an = /* @__PURE__ */ i(Vt, { open: J, onClose: Wt, title: ve.vcSheet, titleNode: T, doneLabel: ve.done, children: /* @__PURE__ */ i(
|
|
@@ -3909,53 +3909,53 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
3909
3909
|
ol,
|
|
3910
3910
|
{
|
|
3911
3911
|
t: ve,
|
|
3912
|
-
roster:
|
|
3912
|
+
roster: Q,
|
|
3913
3913
|
selected: ue,
|
|
3914
3914
|
onSelect: (P) => {
|
|
3915
|
-
|
|
3915
|
+
$.reset(), Ae(P), D == null || D(P);
|
|
3916
3916
|
},
|
|
3917
3917
|
noClone: (P) => !!(_ != null && _(P, We)),
|
|
3918
|
-
short: (P) => !!(
|
|
3919
|
-
warn: (P) => (
|
|
3920
|
-
building: (P) => !_t(P) && (
|
|
3918
|
+
short: (P) => !!(X != null && X(P, We)),
|
|
3919
|
+
warn: (P) => (F == null ? void 0 : F(P, We)) ?? null,
|
|
3920
|
+
building: (P) => !_t(P) && (W.some((De) => De.cloned && De.speaker === P.key && De.ready === !1) || !!(j != null && j(P, We))),
|
|
3921
3921
|
sexOf: (P) => P.sex ?? qe(ie.get(P.key))
|
|
3922
3922
|
}
|
|
3923
3923
|
),
|
|
3924
3924
|
voices: sn,
|
|
3925
3925
|
onAdd: (P) => {
|
|
3926
|
-
|
|
3926
|
+
$.reset(), I == null || I(P);
|
|
3927
3927
|
},
|
|
3928
|
-
noClone: Xe && !sn.some((P) => P.cloned) ? (
|
|
3928
|
+
noClone: Xe && !sn.some((P) => P.cloned) ? (B == null ? void 0 : B(Xe, Rt(Xe.key), We)) ?? null : null,
|
|
3929
3929
|
usedBy: he && ue != null ? (P) => {
|
|
3930
|
-
const De =
|
|
3930
|
+
const De = Q.filter((Be) => Be.key !== ue && ie.get(Be.key) === P.id);
|
|
3931
3931
|
return De.length ? De.map((Be) => Be.name).join(", ") : null;
|
|
3932
3932
|
} : void 0,
|
|
3933
3933
|
foldKey: ue,
|
|
3934
3934
|
foldFor: Ut,
|
|
3935
3935
|
currentId: he && ue != null ? ie.get(ue) ?? null : Ce,
|
|
3936
|
-
armedId:
|
|
3937
|
-
sampleId:
|
|
3938
|
-
dlId:
|
|
3936
|
+
armedId: $.armId,
|
|
3937
|
+
sampleId: $.sampleId,
|
|
3938
|
+
dlId: $.dlId,
|
|
3939
3939
|
onPick: (P) => {
|
|
3940
|
-
if (
|
|
3941
|
-
|
|
3940
|
+
if ($.sampleId === P.id || $.dlId === P.id) {
|
|
3941
|
+
$.stop();
|
|
3942
3942
|
return;
|
|
3943
3943
|
}
|
|
3944
3944
|
if ((C == null ? void 0 : C(P)) === !1) {
|
|
3945
|
-
|
|
3945
|
+
$.reset();
|
|
3946
3946
|
return;
|
|
3947
3947
|
}
|
|
3948
|
-
|
|
3948
|
+
$.arm(P);
|
|
3949
3949
|
},
|
|
3950
3950
|
onUse: Ct
|
|
3951
3951
|
}
|
|
3952
|
-
) }), jt =
|
|
3952
|
+
) }), jt = g ? null : /* @__PURE__ */ h(xe, { children: [
|
|
3953
3953
|
rn,
|
|
3954
3954
|
an
|
|
3955
|
-
] }), Sn =
|
|
3955
|
+
] }), Sn = g && (ne || J) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ne ? rn : an }) : null, An = be && rt ? `This voice could not be prepared: ${rt}` : null, En = gt;
|
|
3956
3956
|
return {
|
|
3957
|
-
barChip: { flag: ct.flag, code: ct.code, label: ct.label, onClick:
|
|
3958
|
-
sheetsOpen:
|
|
3957
|
+
barChip: { flag: ct.flag, code: ct.code, label: ct.label, onClick: g || y ? Lt : it, active: !!((g || y) && x), can: c },
|
|
3958
|
+
sheetsOpen: ne || J,
|
|
3959
3959
|
on: be,
|
|
3960
3960
|
player: He,
|
|
3961
3961
|
chip: nn,
|
|
@@ -3964,89 +3964,89 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: a, lan
|
|
|
3964
3964
|
sidePanel: Sn,
|
|
3965
3965
|
voicesMine: wt,
|
|
3966
3966
|
toggleVoices: Ot,
|
|
3967
|
-
cloningOn:
|
|
3967
|
+
cloningOn: H,
|
|
3968
3968
|
playTitle: An,
|
|
3969
3969
|
noVoice: gt,
|
|
3970
3970
|
noVoiceNote: En,
|
|
3971
3971
|
relang: st,
|
|
3972
|
-
sampling:
|
|
3973
|
-
error:
|
|
3974
|
-
clearError: () =>
|
|
3972
|
+
sampling: $.sampleId != null,
|
|
3973
|
+
error: $.error,
|
|
3974
|
+
clearError: () => $.clearError(),
|
|
3975
3975
|
openVoices: se,
|
|
3976
3976
|
openPicker: it,
|
|
3977
3977
|
original: we,
|
|
3978
3978
|
reloadVoices: () => b((P) => P + 1),
|
|
3979
3979
|
voicesVer: A,
|
|
3980
3980
|
people: ht,
|
|
3981
|
-
gvList:
|
|
3981
|
+
gvList: W,
|
|
3982
3982
|
autoOf: Rt,
|
|
3983
3983
|
savedFor: _t,
|
|
3984
3984
|
closeVoices: Wt,
|
|
3985
3985
|
setSheet: pe,
|
|
3986
3986
|
selectedSpeaker: Xe,
|
|
3987
|
-
armVoice:
|
|
3988
|
-
resetPreview:
|
|
3989
|
-
armedId:
|
|
3987
|
+
armVoice: $.arm,
|
|
3988
|
+
resetPreview: $.reset,
|
|
3989
|
+
armedId: $.armId,
|
|
3990
3990
|
resetCast: () => Ve((P) => ({ ...P, [Se ?? ""]: {} })),
|
|
3991
3991
|
readLang: typeof u == "string" && u !== l ? u : null,
|
|
3992
|
-
readVoiceKey: f || (Y ??
|
|
3993
|
-
pickedVoiceKey: Y ??
|
|
3992
|
+
readVoiceKey: f || (Y ?? v ?? ((qt = ye.track) == null ? void 0 : qt.voiceKey) ?? ""),
|
|
3993
|
+
pickedVoiceKey: Y ?? v ?? null,
|
|
3994
3994
|
readVoiceName: (ke == null ? void 0 : ke.name) ?? null,
|
|
3995
|
-
canSpeak:
|
|
3996
|
-
requestTrack: () => ye.requestRender(Y ??
|
|
3995
|
+
canSpeak: re,
|
|
3996
|
+
requestTrack: () => ye.requestRender(Y ?? v, Y ? R : null),
|
|
3997
3997
|
hasClone: q,
|
|
3998
3998
|
clips: ye.clips,
|
|
3999
3999
|
setNear: ye.setNear,
|
|
4000
4000
|
closePicker: () => {
|
|
4001
4001
|
x && lt();
|
|
4002
4002
|
},
|
|
4003
|
-
langList: { value: we ? null : Le, onSelect: Ht, languages: ze, searchPlaceholder: ve.search, none: "Original", pinned: (we ? l : Le) ? [we ? l : Le] : [], recent:
|
|
4003
|
+
langList: { value: we ? null : Le, onSelect: Ht, languages: ze, searchPlaceholder: ve.search, none: "Original", pinned: (we ? l : Le) ? [we ? l : Le] : [], recent: te }
|
|
4004
4004
|
};
|
|
4005
4005
|
}
|
|
4006
|
-
function ql({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges:
|
|
4007
|
-
const { playing: j, engaged:
|
|
4006
|
+
function ql({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: g = !0, tail: M, tailFg: N, running: p, desk: y, feedRef: L, listener: m, showLabels: f, find: I, findOpen: C, lang: D, warm: B, onVisible: _, wordHl: X = !0 }) {
|
|
4007
|
+
const { playing: j, engaged: F, t: S, idx: T, seekN: E, wordSync: O, clipPos: te } = n;
|
|
4008
4008
|
Ll(!0, L);
|
|
4009
|
-
const K =
|
|
4009
|
+
const K = k(null);
|
|
4010
4010
|
qo(L, K);
|
|
4011
|
-
const [
|
|
4011
|
+
const [v, ae] = z(null), ne = (I ?? "").trim().toLowerCase(), [G, J] = z(0), pe = k(0), le = k(null), Te = k(T), je = (H) => {
|
|
4012
4012
|
var A;
|
|
4013
|
-
return ((A = L.current) == null ? void 0 : A.querySelector(`[data-tx-row="${
|
|
4014
|
-
}, Ee =
|
|
4013
|
+
return ((A = L.current) == null ? void 0 : A.querySelector(`[data-tx-row="${H}"]`)) ?? null;
|
|
4014
|
+
}, Ee = k("");
|
|
4015
4015
|
U(() => {
|
|
4016
|
-
const
|
|
4017
|
-
if (!
|
|
4016
|
+
const H = L.current;
|
|
4017
|
+
if (!H || !_) return;
|
|
4018
4018
|
const A = () => {
|
|
4019
|
-
const
|
|
4020
|
-
for (const ve of Array.from(
|
|
4019
|
+
const W = H.getBoundingClientRect(), me = [];
|
|
4020
|
+
for (const ve of Array.from(H.querySelectorAll("[data-sentence]"))) {
|
|
4021
4021
|
const ze = ve.getBoundingClientRect();
|
|
4022
|
-
ze.bottom >
|
|
4022
|
+
ze.bottom > W.top && ze.top < W.bottom && me.push(Number(ve.dataset.sentence));
|
|
4023
4023
|
}
|
|
4024
4024
|
const Z = me.join(",");
|
|
4025
4025
|
Z !== Ee.current && (Ee.current = Z, _(me));
|
|
4026
4026
|
}, b = window.setTimeout(A, 120);
|
|
4027
|
-
let
|
|
4027
|
+
let V;
|
|
4028
4028
|
const ce = () => {
|
|
4029
|
-
window.clearTimeout(
|
|
4029
|
+
window.clearTimeout(V), V = window.setTimeout(A, 120);
|
|
4030
4030
|
};
|
|
4031
|
-
return
|
|
4032
|
-
window.clearTimeout(b), window.clearTimeout(
|
|
4031
|
+
return H.addEventListener("scroll", ce, { passive: !0 }), () => {
|
|
4032
|
+
window.clearTimeout(b), window.clearTimeout(V), H.removeEventListener("scroll", ce);
|
|
4033
4033
|
};
|
|
4034
4034
|
}, [e, _, L]);
|
|
4035
|
-
const Le = (
|
|
4036
|
-
const A = L.current, b = je(
|
|
4035
|
+
const Le = (H) => {
|
|
4036
|
+
const A = L.current, b = je(H);
|
|
4037
4037
|
if (!A || !b) return;
|
|
4038
|
-
const
|
|
4039
|
-
A.scrollTop = Math.max(0, Math.min(ce,
|
|
4040
|
-
}, we = (
|
|
4041
|
-
const A = L.current, b = je(
|
|
4038
|
+
const V = b.getBoundingClientRect().top - A.getBoundingClientRect().top + A.scrollTop, ce = A.scrollHeight - A.clientHeight, W = lr(A), me = Math.max(80, A.clientHeight - W.top - W.bottom), Z = b.offsetHeight > me ? 8 : (me - b.offsetHeight) / 2;
|
|
4039
|
+
A.scrollTop = Math.max(0, Math.min(ce, V - W.top - Z));
|
|
4040
|
+
}, we = (H) => {
|
|
4041
|
+
const A = L.current, b = je(H);
|
|
4042
4042
|
if (!A || !A.clientHeight || !A.offsetParent || !b) return 0;
|
|
4043
|
-
const
|
|
4044
|
-
return
|
|
4045
|
-
}, _e = (
|
|
4043
|
+
const V = b.getBoundingClientRect(), ce = A.getBoundingClientRect(), W = lr(A), me = ce.top + W.top, Z = ce.bottom - W.bottom;
|
|
4044
|
+
return V.height > Z - me ? V.top < me - 4 ? -1 : V.top > Z - 60 ? 1 : 0 : V.bottom < me + 10 ? -1 : V.bottom > Z - 4 ? 1 : 0;
|
|
4045
|
+
}, _e = (H) => {
|
|
4046
4046
|
pe.current = performance.now() + 420;
|
|
4047
|
-
const A = L.current, b = je(
|
|
4047
|
+
const A = L.current, b = je(H);
|
|
4048
4048
|
if (!A || !A.clientHeight || !b) return;
|
|
4049
|
-
const
|
|
4049
|
+
const V = b.getBoundingClientRect(), ce = A.getBoundingClientRect(), W = A.scrollHeight - A.clientHeight, me = A.scrollTop, Z = lr(A), ve = Math.max(80, A.clientHeight - Z.top - Z.bottom), ze = V.height > ve ? 8 : (ve - V.height) / 2, Ge = Math.max(0, Math.min(W, me + (V.top - ce.top) - Z.top - ze));
|
|
4050
4050
|
if (le.current && cancelAnimationFrame(le.current), Math.abs(Ge - me) < 2) {
|
|
4051
4051
|
A.scrollTop = Ge, le.current = null;
|
|
4052
4052
|
return;
|
|
@@ -4060,52 +4060,52 @@ function ql({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4060
4060
|
U(() => () => {
|
|
4061
4061
|
le.current && cancelAnimationFrame(le.current);
|
|
4062
4062
|
}, []);
|
|
4063
|
-
const Pe =
|
|
4063
|
+
const Pe = k(0);
|
|
4064
4064
|
U(() => {
|
|
4065
4065
|
if (!j) {
|
|
4066
4066
|
Te.current = T, Pe.current = 0, J(0);
|
|
4067
4067
|
return;
|
|
4068
4068
|
}
|
|
4069
|
-
const
|
|
4069
|
+
const H = () => {
|
|
4070
4070
|
const b = T !== Te.current;
|
|
4071
4071
|
Te.current = T;
|
|
4072
|
-
let
|
|
4073
|
-
b &&
|
|
4072
|
+
let V = performance.now() < pe.current ? 0 : we(T);
|
|
4073
|
+
b && V && !Pe.current && (Le(T), V = 0), Pe.current = V, J(V);
|
|
4074
4074
|
};
|
|
4075
|
-
|
|
4076
|
-
const A = setInterval(
|
|
4075
|
+
H();
|
|
4076
|
+
const A = setInterval(H, 200);
|
|
4077
4077
|
return () => clearInterval(A);
|
|
4078
4078
|
}, [T, j]), U(() => {
|
|
4079
|
-
|
|
4080
|
-
}, [
|
|
4079
|
+
E && _e(T);
|
|
4080
|
+
}, [E]);
|
|
4081
4081
|
const Se = () => {
|
|
4082
4082
|
_e(T), Pe.current = 0, J(0);
|
|
4083
|
-
},
|
|
4084
|
-
/* @__PURE__ */ i(oe, { d:
|
|
4083
|
+
}, $ = (H) => /* @__PURE__ */ i("div", { className: `txfollow txfollow--${H}`, children: /* @__PURE__ */ h("button", { type: "button", className: "txfollow__pill", title: "Jump to the line playing now", onClick: Se, children: [
|
|
4084
|
+
/* @__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 }),
|
|
4085
4085
|
"Now playing"
|
|
4086
4086
|
] }) });
|
|
4087
4087
|
return /* @__PURE__ */ h("div", { ref: L, "data-tx-feed": "1", className: `txfeed${y ? " txfeed--desk" : ""}${C && !p ? " is-find" : ""}`, children: [
|
|
4088
4088
|
/* @__PURE__ */ i(Ko, { thumbRef: K }),
|
|
4089
|
-
j && G === -1 &&
|
|
4090
|
-
e.map((
|
|
4089
|
+
j && G === -1 && $("up"),
|
|
4090
|
+
e.map((H, A) => {
|
|
4091
4091
|
var he;
|
|
4092
|
-
const b = j && A === T,
|
|
4093
|
-
j && !b && n.seekRow(A), l(
|
|
4094
|
-
} : j && b ? void 0 : () => n.playRow(A), Z = m ? null : el(
|
|
4095
|
-
return /* @__PURE__ */ h("div", { "data-tx-row": A, "data-sentence":
|
|
4092
|
+
const b = j && A === T, V = F && A === T, ce = !!u && u === H.id, W = ne && !H.text.toLowerCase().includes(ne) && !(D && ((he = H.translations[D]) != null && he.toLowerCase().includes(ne))) ? 0.22 : !F || A <= T || ce ? 1 : 0.38, me = m ? () => n.playRow(A) : c && l ? () => {
|
|
4093
|
+
j && !b && n.seekRow(A), l(H);
|
|
4094
|
+
} : j && b ? void 0 : () => n.playRow(A), Z = m ? null : el(H, s, r), ve = !!Z && (Z.script > 0 || Z.manual), ze = y && !!a && v === H.id && !!Z && !ve, Ge = br(t, H.speaker), Ae = xr(t, H.speaker), ge = Ae.lane, Ye = D && H.translations[D] && H.language !== D ? H.translations[D] : null, Ve = xi(e, A, D), Q = V && !O && te ? hi(Ve.map((ue) => ({ t: ue.text, sp: " " })), te) : null;
|
|
4095
|
+
return /* @__PURE__ */ h("div", { "data-tx-row": A, "data-sentence": H.sentenceId, className: `txline${B ? " txline--warm" : ""}${ce ? " txline--fixing" : ""}`, "aria-current": ce || void 0, style: { opacity: W }, onClick: me, onMouseEnter: y && a ? () => ae(H.id) : void 0, onMouseLeave: y && a ? () => ae(null) : void 0, children: [
|
|
4096
4096
|
/* @__PURE__ */ h("div", { className: "txline__meta", children: [
|
|
4097
|
-
/* @__PURE__ */ i("span", { className: "txline__at", children: yt(
|
|
4098
|
-
f &&
|
|
4099
|
-
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${ge}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: mi(t,
|
|
4097
|
+
/* @__PURE__ */ i("span", { className: "txline__at", children: yt(H.start) }),
|
|
4098
|
+
f && H.speaker >= 0 && /* @__PURE__ */ h(xe, { children: [
|
|
4099
|
+
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${ge}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: mi(t, H.speaker) }),
|
|
4100
4100
|
/* @__PURE__ */ i("span", { className: `txline__who lane-${ge}`, style: Ae.fg ? { color: Ae.fg } : void 0, children: Ge }),
|
|
4101
4101
|
Ae.hasVoice && /* @__PURE__ */ i(Oi, { color: Ae.fg ?? `var(--lane-${ge})` })
|
|
4102
4102
|
] }),
|
|
4103
|
-
b && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(oe, { d:
|
|
4104
|
-
Z &&
|
|
4105
|
-
ze && /* @__PURE__ */ i(nl, { alone: !0, onOpen: () => a == null ? void 0 : a(
|
|
4103
|
+
b && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(oe, { d: ee.headphones, size: y ? 15 : 14, sw: 1.6, stroke: f && H.speaker >= 0 ? Ae.fg ?? `var(--lane-${ge})` : "var(--ink-45)" }) }),
|
|
4104
|
+
Z && g && /* @__PURE__ */ i(tl, { f: Z, desk: y, onOpen: a ? () => a(H, !0) : void 0 }),
|
|
4105
|
+
ze && /* @__PURE__ */ i(nl, { alone: !0, onOpen: () => a == null ? void 0 : a(H, !1) })
|
|
4106
4106
|
] }),
|
|
4107
4107
|
/* @__PURE__ */ i("div", { className: "txline__text", children: Ve.map((ue, ie) => {
|
|
4108
|
-
const fe = `${ue.seq}:${ue.idx}`, Ue = wo(ue.prob), Y =
|
|
4108
|
+
const fe = `${ue.seq}:${ue.idx}`, Ue = wo(ue.prob), Y = V && X, R = Y && (O ? S >= ue.start && (S < ue.end || ie === Ve.length - 1 || S < Ve[ie + 1].start) : ie === Q), q = Y && !R && (O ? ue.start > S : Q != null && ie > Q), re = !Ye && !m && (!!(r != null && r.has(fe)) || !!ue.script), de = !Ye && !m && d && !!Ue && !re, Oe = de ? Ue === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, ye = re ? "var(--brand)" : q ? "var(--ink-40)" : Oe ?? "var(--ink-96)";
|
|
4109
4109
|
return /* @__PURE__ */ h("span", { children: [
|
|
4110
4110
|
/* @__PURE__ */ i(
|
|
4111
4111
|
"span",
|
|
@@ -4115,7 +4115,7 @@ function ql({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4115
4115
|
onClick: o && !Ye ? (ke) => {
|
|
4116
4116
|
var Ce;
|
|
4117
4117
|
if (ke.stopPropagation(), c) {
|
|
4118
|
-
o(
|
|
4118
|
+
o(H, ue);
|
|
4119
4119
|
return;
|
|
4120
4120
|
}
|
|
4121
4121
|
if (j && b) {
|
|
@@ -4124,26 +4124,26 @@ function ql({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: a,
|
|
|
4124
4124
|
}
|
|
4125
4125
|
n.playRow(A);
|
|
4126
4126
|
} : void 0,
|
|
4127
|
-
style: { color: ye, opacity: q ? 0.45 : 1, fontWeight: 300, cursor: o && !Ye ? c || !b || !j || n.seekWord ? "pointer" : "default" : b ? "default" : "pointer", textShadow: R ? "0 0 2px currentColor, 0 0 4px currentColor" : "none", textDecorationLine: de ||
|
|
4127
|
+
style: { color: ye, opacity: q ? 0.45 : 1, fontWeight: 300, cursor: o && !Ye ? c || !b || !j || n.seekWord ? "pointer" : "default" : b ? "default" : "pointer", textShadow: R ? "0 0 2px currentColor, 0 0 4px currentColor" : "none", textDecorationLine: de || re ? "underline" : "none", textDecorationStyle: re ? "solid" : "dotted", textDecorationColor: re ? "var(--brand)" : Oe ?? "currentColor", textDecorationThickness: de || re ? "1.5px" : void 0, textUnderlineOffset: de || re ? "3px" : void 0 },
|
|
4128
4128
|
children: ue.text
|
|
4129
4129
|
}
|
|
4130
4130
|
),
|
|
4131
4131
|
/* @__PURE__ */ i("span", { style: { whiteSpace: "pre-wrap" }, children: " " })
|
|
4132
4132
|
] }, fe + ie);
|
|
4133
4133
|
}) })
|
|
4134
|
-
] },
|
|
4134
|
+
] }, H.id);
|
|
4135
4135
|
}),
|
|
4136
4136
|
p ? /* @__PURE__ */ i("div", { className: "txtail txtail--wave", title: "Still transcribing", children: /* @__PURE__ */ h("span", { className: "eq3", "aria-hidden": "true", children: [
|
|
4137
4137
|
/* @__PURE__ */ i("span", {}),
|
|
4138
4138
|
/* @__PURE__ */ i("span", {}),
|
|
4139
4139
|
/* @__PURE__ */ i("span", {})
|
|
4140
|
-
] }) }) : /* @__PURE__ */ i("div", { className: "txtail", style: { color: N }, children:
|
|
4141
|
-
j && G === 1 &&
|
|
4140
|
+
] }) }) : /* @__PURE__ */ i("div", { className: "txtail", style: { color: N }, children: M }),
|
|
4141
|
+
j && G === 1 && $("down")
|
|
4142
4142
|
] });
|
|
4143
4143
|
}
|
|
4144
4144
|
function Kl({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, flash: l }) {
|
|
4145
4145
|
return /* @__PURE__ */ i("div", { className: o ? "searchbar searchbar--inline" : `searchbar searchbar--float${a ? " searchbar--desk" : ""}${t ? "" : " is-hidden"}`, children: /* @__PURE__ */ h("div", { children: [
|
|
4146
|
-
/* @__PURE__ */ i(oe, { d:
|
|
4146
|
+
/* @__PURE__ */ i(oe, { d: ee.search, size: 16, sw: 1.7, style: { color: "var(--ink-45)", flex: "none" } }),
|
|
4147
4147
|
/* @__PURE__ */ i("input", { value: e, onChange: (c) => n(c.target.value), onKeyDown: (c) => {
|
|
4148
4148
|
c.key === "Escape" && (c.stopPropagation(), e ? n("") : r());
|
|
4149
4149
|
}, placeholder: "Search this transcript" }),
|
|
@@ -4152,13 +4152,13 @@ function Kl({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: a, inline: o, fl
|
|
|
4152
4152
|
s,
|
|
4153
4153
|
" found"
|
|
4154
4154
|
] }),
|
|
4155
|
-
e.trim() && /* @__PURE__ */ i("button", { type: "button", className: "searchbar__x", onClick: () => n(""), "aria-label": "Clear", title: "Clear", children: /* @__PURE__ */ i(oe, { d:
|
|
4155
|
+
e.trim() && /* @__PURE__ */ i("button", { type: "button", className: "searchbar__x", onClick: () => n(""), "aria-label": "Clear", title: "Clear", children: /* @__PURE__ */ i(oe, { d: ee.close, size: 15, sw: 1.7 }) })
|
|
4156
4156
|
] }) });
|
|
4157
4157
|
}
|
|
4158
4158
|
function Jl(t, e, n, r, s) {
|
|
4159
|
-
const a =
|
|
4159
|
+
const a = k(n);
|
|
4160
4160
|
a.current = n;
|
|
4161
|
-
const o =
|
|
4161
|
+
const o = k(r);
|
|
4162
4162
|
o.current = r;
|
|
4163
4163
|
const [l, c] = z(0), u = r.trim().toLowerCase();
|
|
4164
4164
|
return U(() => {
|
|
@@ -4166,18 +4166,18 @@ function Jl(t, e, n, r, s) {
|
|
|
4166
4166
|
}, [e, u]), U(() => {
|
|
4167
4167
|
const d = t.current;
|
|
4168
4168
|
if (!d) return;
|
|
4169
|
-
let
|
|
4169
|
+
let g = d.scrollTop, M = 0, N = 0;
|
|
4170
4170
|
const p = () => {
|
|
4171
4171
|
N = Date.now() + 1500;
|
|
4172
4172
|
}, y = (m) => {
|
|
4173
4173
|
m.buttons && p();
|
|
4174
4174
|
}, L = () => {
|
|
4175
|
-
const m = d.scrollTop, f = m -
|
|
4176
|
-
if (
|
|
4177
|
-
|
|
4175
|
+
const m = d.scrollTop, f = m - g;
|
|
4176
|
+
if (g = m, Date.now() > N) {
|
|
4177
|
+
M = 0;
|
|
4178
4178
|
return;
|
|
4179
4179
|
}
|
|
4180
|
-
|
|
4180
|
+
M = f < 0 == M < 0 ? M + f : f, M < -14 && !a.current ? (M = 0, s(!0)) : M > 56 && a.current && !o.current.trim() && (M = 0, s(!1));
|
|
4181
4181
|
};
|
|
4182
4182
|
return d.addEventListener("wheel", p, { passive: !0 }), d.addEventListener("touchmove", p, { passive: !0 }), d.addEventListener("pointermove", y), d.addEventListener("scroll", L, { passive: !0 }), () => {
|
|
4183
4183
|
d.removeEventListener("wheel", p), d.removeEventListener("touchmove", p), d.removeEventListener("pointermove", y), d.removeEventListener("scroll", L);
|
|
@@ -4232,124 +4232,124 @@ function nc(t) {
|
|
|
4232
4232
|
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= qs(n) * 8); n++)
|
|
4233
4233
|
;
|
|
4234
4234
|
if (n > 40) throw new Error("Text too long for a QR code");
|
|
4235
|
-
const r = n * 4 + 17, s = qs(n) * 8, a = [], o = (T,
|
|
4236
|
-
for (let
|
|
4235
|
+
const r = n * 4 + 17, s = qs(n) * 8, a = [], o = (T, E) => {
|
|
4236
|
+
for (let O = E - 1; O >= 0; O--) a.push(T >>> O & 1);
|
|
4237
4237
|
};
|
|
4238
4238
|
o(4, 4), o(e.length, n <= 9 ? 8 : 16);
|
|
4239
4239
|
for (const T of e) o(T, 8);
|
|
4240
4240
|
for (o(0, Math.min(4, s - a.length)); a.length % 8; ) a.push(0);
|
|
4241
4241
|
for (let T = 236; a.length < s; T ^= 253) o(T, 8);
|
|
4242
4242
|
const l = [];
|
|
4243
|
-
for (let T = 0; T < a.length; T += 8) l.push(a.slice(T, T + 8).reduce((
|
|
4244
|
-
const c = tn.blocks[n], u = tn.perBlock[n], d = Math.floor(Di(n) / 8),
|
|
4245
|
-
for (let T = 0,
|
|
4246
|
-
const
|
|
4247
|
-
|
|
4248
|
-
const
|
|
4249
|
-
T <
|
|
4243
|
+
for (let T = 0; T < a.length; T += 8) l.push(a.slice(T, T + 8).reduce((E, O) => E << 1 | O, 0));
|
|
4244
|
+
const c = tn.blocks[n], u = tn.perBlock[n], d = Math.floor(Di(n) / 8), g = c - d % c, M = Math.floor(d / c), N = [], p = Xl(u);
|
|
4245
|
+
for (let T = 0, E = 0; T < c; T++) {
|
|
4246
|
+
const O = l.slice(E, E + M - u + (T < g ? 0 : 1));
|
|
4247
|
+
E += O.length;
|
|
4248
|
+
const te = ec(O, p);
|
|
4249
|
+
T < g && O.push(0), N.push(O.concat(te));
|
|
4250
4250
|
}
|
|
4251
4251
|
const y = [];
|
|
4252
|
-
for (let T = 0; T < N[0].length; T++) N.forEach((
|
|
4253
|
-
(T !==
|
|
4252
|
+
for (let T = 0; T < N[0].length; T++) N.forEach((E, O) => {
|
|
4253
|
+
(T !== M - u || O >= g) && y.push(E[T]);
|
|
4254
4254
|
});
|
|
4255
|
-
const L = Array.from({ length: r }, () => new Array(r).fill(!1)), m = Array.from({ length: r }, () => new Array(r).fill(!1)), f = (T,
|
|
4256
|
-
L[
|
|
4255
|
+
const L = Array.from({ length: r }, () => new Array(r).fill(!1)), m = Array.from({ length: r }, () => new Array(r).fill(!1)), f = (T, E, O) => {
|
|
4256
|
+
L[E][T] = O, m[E][T] = !0;
|
|
4257
4257
|
};
|
|
4258
4258
|
for (let T = 0; T < r; T++)
|
|
4259
4259
|
f(6, T, T % 2 === 0), f(T, 6, T % 2 === 0);
|
|
4260
|
-
const I = (T,
|
|
4261
|
-
for (let
|
|
4262
|
-
const K = Math.max(Math.abs(
|
|
4263
|
-
|
|
4260
|
+
const I = (T, E) => {
|
|
4261
|
+
for (let O = -4; O <= 4; O++) for (let te = -4; te <= 4; te++) {
|
|
4262
|
+
const K = Math.max(Math.abs(te), Math.abs(O)), v = T + te, ae = E + O;
|
|
4263
|
+
v >= 0 && v < r && ae >= 0 && ae < r && f(v, ae, K !== 2 && K !== 4);
|
|
4264
4264
|
}
|
|
4265
4265
|
};
|
|
4266
4266
|
I(3, 3), I(r - 4, 3), I(3, r - 4);
|
|
4267
4267
|
const C = tc(n);
|
|
4268
|
-
for (let T = 0; T < C.length; T++) for (let
|
|
4269
|
-
if (!(T === 0 &&
|
|
4270
|
-
for (let
|
|
4268
|
+
for (let T = 0; T < C.length; T++) for (let E = 0; E < C.length; E++)
|
|
4269
|
+
if (!(T === 0 && E === 0 || T === 0 && E === C.length - 1 || T === C.length - 1 && E === 0))
|
|
4270
|
+
for (let O = -2; O <= 2; O++) for (let te = -2; te <= 2; te++) f(C[T] + te, C[E] + O, Math.max(Math.abs(te), Math.abs(O)) !== 1);
|
|
4271
4271
|
const D = (T) => {
|
|
4272
|
-
const
|
|
4273
|
-
let
|
|
4274
|
-
for (let
|
|
4275
|
-
const
|
|
4276
|
-
for (let
|
|
4272
|
+
const E = tn.formatBits << 3 | T;
|
|
4273
|
+
let O = E;
|
|
4274
|
+
for (let v = 0; v < 10; v++) O = O << 1 ^ (O >>> 9) * 1335;
|
|
4275
|
+
const te = (E << 10 | O) ^ 21522, K = (v) => (te >>> v & 1) !== 0;
|
|
4276
|
+
for (let v = 0; v <= 5; v++) f(8, v, K(v));
|
|
4277
4277
|
f(8, 7, K(6)), f(8, 8, K(7)), f(7, 8, K(8));
|
|
4278
|
-
for (let
|
|
4279
|
-
for (let
|
|
4280
|
-
for (let
|
|
4278
|
+
for (let v = 9; v < 15; v++) f(14 - v, 8, K(v));
|
|
4279
|
+
for (let v = 0; v < 8; v++) f(r - 1 - v, 8, K(v));
|
|
4280
|
+
for (let v = 8; v < 15; v++) f(8, r - 15 + v, K(v));
|
|
4281
4281
|
f(8, r - 8, !0);
|
|
4282
4282
|
};
|
|
4283
4283
|
if (D(0), n >= 7) {
|
|
4284
4284
|
let T = n;
|
|
4285
|
-
for (let
|
|
4286
|
-
const
|
|
4287
|
-
for (let
|
|
4288
|
-
const
|
|
4289
|
-
f(K,
|
|
4285
|
+
for (let O = 0; O < 12; O++) T = T << 1 ^ (T >>> 11) * 7973;
|
|
4286
|
+
const E = n << 12 | T;
|
|
4287
|
+
for (let O = 0; O < 18; O++) {
|
|
4288
|
+
const te = (E >>> O & 1) !== 0, K = r - 11 + O % 3, v = Math.floor(O / 3);
|
|
4289
|
+
f(K, v, te), f(v, K, te);
|
|
4290
4290
|
}
|
|
4291
4291
|
}
|
|
4292
|
-
let
|
|
4292
|
+
let B = 0;
|
|
4293
4293
|
for (let T = r - 1; T >= 1; T -= 2) {
|
|
4294
4294
|
T === 6 && (T = 5);
|
|
4295
|
-
for (let
|
|
4296
|
-
const
|
|
4297
|
-
!m[K][
|
|
4295
|
+
for (let E = 0; E < r; E++) for (let O = 0; O < 2; O++) {
|
|
4296
|
+
const te = T - O, K = T + 1 & 2 ? E : r - 1 - E;
|
|
4297
|
+
!m[K][te] && B < y.length * 8 && (L[K][te] = (y[B >>> 3] >>> 7 - (B & 7) & 1) !== 0, B++);
|
|
4298
4298
|
}
|
|
4299
4299
|
}
|
|
4300
|
-
const _ = (T,
|
|
4300
|
+
const _ = (T, E, O) => {
|
|
4301
4301
|
switch (T) {
|
|
4302
4302
|
case 0:
|
|
4303
|
-
return (
|
|
4303
|
+
return (E + O) % 2 === 0;
|
|
4304
4304
|
case 1:
|
|
4305
|
-
return
|
|
4305
|
+
return O % 2 === 0;
|
|
4306
4306
|
case 2:
|
|
4307
|
-
return
|
|
4307
|
+
return E % 3 === 0;
|
|
4308
4308
|
case 3:
|
|
4309
|
-
return (
|
|
4309
|
+
return (E + O) % 3 === 0;
|
|
4310
4310
|
case 4:
|
|
4311
|
-
return (Math.floor(
|
|
4311
|
+
return (Math.floor(E / 3) + Math.floor(O / 2)) % 2 === 0;
|
|
4312
4312
|
case 5:
|
|
4313
|
-
return
|
|
4313
|
+
return E * O % 2 + E * O % 3 === 0;
|
|
4314
4314
|
case 6:
|
|
4315
|
-
return (
|
|
4315
|
+
return (E * O % 2 + E * O % 3) % 2 === 0;
|
|
4316
4316
|
default:
|
|
4317
|
-
return ((
|
|
4317
|
+
return ((E + O) % 2 + E * O % 3) % 2 === 0;
|
|
4318
4318
|
}
|
|
4319
|
-
},
|
|
4320
|
-
for (let
|
|
4319
|
+
}, X = (T) => {
|
|
4320
|
+
for (let E = 0; E < r; E++) for (let O = 0; O < r; O++) !m[E][O] && _(T, O, E) && (L[E][O] = !L[E][O]);
|
|
4321
4321
|
}, j = () => {
|
|
4322
4322
|
let T = 0;
|
|
4323
|
-
const
|
|
4324
|
-
const G =
|
|
4325
|
-
return (J &&
|
|
4326
|
-
},
|
|
4327
|
-
|
|
4328
|
-
},
|
|
4323
|
+
const E = (ne) => {
|
|
4324
|
+
const G = ne[1], J = G > 0 && ne[2] === G && ne[3] === G * 3 && ne[4] === G && ne[5] === G;
|
|
4325
|
+
return (J && ne[0] >= G * 4 && ne[6] >= G ? 1 : 0) + (J && ne[6] >= G * 4 && ne[0] >= G ? 1 : 0);
|
|
4326
|
+
}, O = (ne, G) => {
|
|
4327
|
+
ne[0] === 0 && (G += r), ne.pop(), ne.unshift(G);
|
|
4328
|
+
}, te = (ne, G, J) => (G && (O(ne, J), J = 0), O(ne, J + r), E(ne)), K = (ne) => {
|
|
4329
4329
|
let G = !1, J = 0;
|
|
4330
4330
|
const pe = [0, 0, 0, 0, 0, 0, 0];
|
|
4331
4331
|
for (let le = 0; le < r; le++)
|
|
4332
|
-
|
|
4333
|
-
T +=
|
|
4332
|
+
ne(le) === G ? (J++, J === 5 ? T += 3 : J > 5 && T++) : (O(pe, J), G || (T += E(pe) * 40), G = ne(le), J = 1);
|
|
4333
|
+
T += te(pe, G, J) * 40;
|
|
4334
4334
|
};
|
|
4335
|
-
for (let
|
|
4336
|
-
for (let
|
|
4337
|
-
for (let
|
|
4338
|
-
const J = L[
|
|
4339
|
-
J === L[
|
|
4335
|
+
for (let ne = 0; ne < r; ne++) K((G) => L[ne][G]);
|
|
4336
|
+
for (let ne = 0; ne < r; ne++) K((G) => L[G][ne]);
|
|
4337
|
+
for (let ne = 0; ne < r - 1; ne++) for (let G = 0; G < r - 1; G++) {
|
|
4338
|
+
const J = L[ne][G];
|
|
4339
|
+
J === L[ne][G + 1] && J === L[ne + 1][G] && J === L[ne + 1][G + 1] && (T += 3);
|
|
4340
4340
|
}
|
|
4341
|
-
let
|
|
4342
|
-
for (const
|
|
4341
|
+
let v = 0;
|
|
4342
|
+
for (const ne of L) for (const G of ne) G && v++;
|
|
4343
4343
|
const ae = r * r;
|
|
4344
|
-
return T += (Math.ceil(Math.abs(
|
|
4344
|
+
return T += (Math.ceil(Math.abs(v * 20 - ae * 10) / ae) - 1) * 10, T;
|
|
4345
4345
|
};
|
|
4346
|
-
let
|
|
4346
|
+
let F = 0, S = 1 / 0;
|
|
4347
4347
|
for (let T = 0; T < 8; T++) {
|
|
4348
|
-
|
|
4349
|
-
const
|
|
4350
|
-
|
|
4348
|
+
X(T), D(T);
|
|
4349
|
+
const E = j();
|
|
4350
|
+
E < S && (S = E, F = T), X(T);
|
|
4351
4351
|
}
|
|
4352
|
-
return
|
|
4352
|
+
return X(F), D(F), L;
|
|
4353
4353
|
}
|
|
4354
4354
|
function rc(t) {
|
|
4355
4355
|
const e = nc(t), n = e.length, r = 2;
|
|
@@ -4487,7 +4487,7 @@ function qc({ pos: t }) {
|
|
|
4487
4487
|
}
|
|
4488
4488
|
function jn({ t, mini: e }) {
|
|
4489
4489
|
return /* @__PURE__ */ h("div", { className: "gfull__transport", children: [
|
|
4490
|
-
/* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Previous line", title: "Previous line", style: { opacity: t.prevOn ? 1 : 0.3 }, onClick: t.onPrev, children: /* @__PURE__ */ i(oe, { d:
|
|
4490
|
+
/* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Previous line", title: "Previous line", style: { opacity: t.prevOn ? 1 : 0.3 }, onClick: t.onPrev, children: /* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) }),
|
|
4491
4491
|
/* @__PURE__ */ i(
|
|
4492
4492
|
"button",
|
|
4493
4493
|
{
|
|
@@ -4501,7 +4501,7 @@ function jn({ t, mini: e }) {
|
|
|
4501
4501
|
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(ka, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(jr, { size: e ? 15 : 19 })
|
|
4502
4502
|
}
|
|
4503
4503
|
),
|
|
4504
|
-
/* @__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:
|
|
4504
|
+
/* @__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: ee.chevronRight, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) })
|
|
4505
4505
|
] });
|
|
4506
4506
|
}
|
|
4507
4507
|
function kr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
@@ -4515,7 +4515,7 @@ function kr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
|
|
|
4515
4515
|
] });
|
|
4516
4516
|
}
|
|
4517
4517
|
function Ai({ v: t, size: e }) {
|
|
4518
|
-
return /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Voices", title: t.title, disabled: !t.on, style: { opacity: t.on ? 1 : 0.45, cursor: t.on ? "pointer" : "default" }, onClick: t.on ? t.onClick : void 0, children: /* @__PURE__ */ i(oe, { d:
|
|
4518
|
+
return /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Voices", title: t.title, disabled: !t.on, style: { opacity: t.on ? 1 : 0.45, cursor: t.on ? "pointer" : "default" }, onClick: t.on ? t.onClick : void 0, children: /* @__PURE__ */ i(oe, { d: ee.headphones, size: e, sw: 1.6 }) });
|
|
4519
4519
|
}
|
|
4520
4520
|
function oc({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, copied: o }) {
|
|
4521
4521
|
return /* @__PURE__ */ h("div", { className: "gmini", "data-theme": "dark", children: [
|
|
@@ -4530,7 +4530,7 @@ function oc({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, c
|
|
|
4530
4530
|
/* @__PURE__ */ i(Ai, { v: r, size: 14 }),
|
|
4531
4531
|
s && /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Share", title: "Share", onClick: (l) => {
|
|
4532
4532
|
l.stopPropagation(), s();
|
|
4533
|
-
}, children: /* @__PURE__ */ i(oe, { d:
|
|
4533
|
+
}, children: /* @__PURE__ */ i(oe, { d: ee.share, size: 13, sw: 1.8 }) }),
|
|
4534
4534
|
/* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d: Si, size: 14, sw: 1.8 }) })
|
|
4535
4535
|
] })
|
|
4536
4536
|
] }),
|
|
@@ -4538,40 +4538,40 @@ function oc({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: a, c
|
|
|
4538
4538
|
] });
|
|
4539
4539
|
}
|
|
4540
4540
|
const lc = { color: "rgba(255,255,255,.4)" };
|
|
4541
|
-
function Ei({ 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:
|
|
4542
|
-
const [
|
|
4541
|
+
function Ei({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title: s, desk: a, pos: o, sub: l, wait: c, pct: u, mute: d, cc: g, ad: M, chip: N, transport: p, picker: y, sheet: L, voices: m, voicesBtn: f, sheetOpen: I, onShare: C, onSettings: D, paused: B, copied: _, onTouch: X, onClose: j }) {
|
|
4542
|
+
const [F, S] = z(() => !!ur());
|
|
4543
4543
|
U(() => {
|
|
4544
|
-
const
|
|
4545
|
-
return document.addEventListener("fullscreenchange",
|
|
4546
|
-
document.removeEventListener("fullscreenchange",
|
|
4544
|
+
const Q = () => S(!!ur());
|
|
4545
|
+
return document.addEventListener("fullscreenchange", Q), document.addEventListener("webkitfullscreenchange", Q), () => {
|
|
4546
|
+
document.removeEventListener("fullscreenchange", Q), document.removeEventListener("webkitfullscreenchange", Q);
|
|
4547
4547
|
};
|
|
4548
4548
|
}, []);
|
|
4549
|
-
const T =
|
|
4549
|
+
const T = k(j);
|
|
4550
4550
|
T.current = j;
|
|
4551
|
-
const
|
|
4552
|
-
|
|
4553
|
-
const [
|
|
4551
|
+
const E = k(p.playable ? p.onPlay : void 0);
|
|
4552
|
+
E.current = p.playable ? p.onPlay : void 0;
|
|
4553
|
+
const [O, te] = z(!1), [K, v] = z(0), ae = k(!1);
|
|
4554
4554
|
U(() => () => vn(!1), []), U(() => {
|
|
4555
4555
|
if (!n) return;
|
|
4556
|
-
const
|
|
4557
|
-
|
|
4556
|
+
const Q = [document.documentElement, document.body], he = Q.map((fe) => fe.style.background);
|
|
4557
|
+
Q.forEach((fe) => {
|
|
4558
4558
|
fe.style.background = "#050507";
|
|
4559
4559
|
});
|
|
4560
4560
|
const ue = document.querySelector('meta[name="theme-color"]'), ie = ue == null ? void 0 : ue.content;
|
|
4561
4561
|
return ue && (ue.content = "#050507"), () => {
|
|
4562
|
-
|
|
4562
|
+
Q.forEach((fe, Ue) => {
|
|
4563
4563
|
fe.style.background = he[Ue];
|
|
4564
4564
|
}), ue && ie && (ue.content = ie);
|
|
4565
4565
|
};
|
|
4566
4566
|
}, []);
|
|
4567
|
-
const
|
|
4567
|
+
const ne = Ie(() => n && ic(), [n]), [G, J] = z(ne);
|
|
4568
4568
|
U(() => {
|
|
4569
4569
|
if (!n) return;
|
|
4570
|
-
const
|
|
4571
|
-
if (!
|
|
4572
|
-
return
|
|
4570
|
+
const Q = [document.documentElement, document.body], he = Q.map((fe) => [fe.style.overflow, fe.style.overscrollBehavior]);
|
|
4571
|
+
if (!ne)
|
|
4572
|
+
return Q.forEach((fe) => {
|
|
4573
4573
|
fe.style.overflow = "hidden", fe.style.overscrollBehavior = "none";
|
|
4574
|
-
}), () =>
|
|
4574
|
+
}), () => Q.forEach((fe, Ue) => {
|
|
4575
4575
|
fe.style.overflow = he[Ue][0], fe.style.overscrollBehavior = he[Ue][1];
|
|
4576
4576
|
});
|
|
4577
4577
|
const ue = document.createElement("div");
|
|
@@ -4582,120 +4582,120 @@ function Ei({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
4582
4582
|
return window.addEventListener("scroll", ie, { passive: !0 }), () => {
|
|
4583
4583
|
window.removeEventListener("scroll", ie), ue.remove(), document.documentElement.style.overscrollBehavior = he[0][1], window.scrollTo(0, 0);
|
|
4584
4584
|
};
|
|
4585
|
-
}, [
|
|
4586
|
-
const pe =
|
|
4585
|
+
}, [ne, n]);
|
|
4586
|
+
const pe = k(I);
|
|
4587
4587
|
pe.current = I, U(() => {
|
|
4588
|
-
const
|
|
4588
|
+
const Q = (ie) => ie instanceof HTMLElement && (ie.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ie.tagName)), he = (ie) => {
|
|
4589
4589
|
var fe;
|
|
4590
|
-
ie.key === "Escape" && !pe.current && T.current && (ie.stopPropagation(), T.current()), ie.key === " " && !pe.current &&
|
|
4590
|
+
ie.key === "Escape" && !pe.current && T.current && (ie.stopPropagation(), T.current()), ie.key === " " && !pe.current && !Q(ie.target) && (ie.preventDefault(), ie.stopPropagation(), ie.repeat || (fe = E.current) == null || fe.call(E)), (ie.key === "f" || ie.key === "F") && !ie.metaKey && !ie.ctrlKey && !ie.altKey && !pe.current && !Q(ie.target) && Js() && (ie.preventDefault(), ie.repeat || vn(!ur()));
|
|
4591
4591
|
}, ue = (ie) => {
|
|
4592
|
-
ie.key === " " && !pe.current &&
|
|
4592
|
+
ie.key === " " && !pe.current && !Q(ie.target) && ie.preventDefault();
|
|
4593
4593
|
};
|
|
4594
4594
|
return window.addEventListener("keydown", he, !0), window.addEventListener("keyup", ue, !0), () => {
|
|
4595
4595
|
window.removeEventListener("keydown", he, !0), window.removeEventListener("keyup", ue, !0);
|
|
4596
4596
|
};
|
|
4597
4597
|
}, []);
|
|
4598
|
-
const le = ac("(orientation: landscape) and (max-height: 540px)"), Te =
|
|
4598
|
+
const le = ac("(orientation: landscape) and (max-height: 540px)"), Te = k(null), [je, Ee] = z(null);
|
|
4599
4599
|
Bt(() => {
|
|
4600
|
-
const
|
|
4601
|
-
if (
|
|
4600
|
+
const Q = Te.current;
|
|
4601
|
+
if (!Q || (Ee(Q.getBoundingClientRect().width), typeof ResizeObserver > "u")) return;
|
|
4602
4602
|
const he = new ResizeObserver(([ue]) => Ee(ue.contentRect.width));
|
|
4603
|
-
return he.observe(
|
|
4603
|
+
return he.observe(Q), () => he.disconnect();
|
|
4604
4604
|
}, []);
|
|
4605
|
-
const Le = t && !
|
|
4605
|
+
const Le = t && !F, we = !Le && a && !le && (je == null || je >= 880), _e = !we;
|
|
4606
4606
|
U(() => {
|
|
4607
|
-
if (
|
|
4608
|
-
const
|
|
4609
|
-
return () => clearTimeout(
|
|
4607
|
+
if (te(!1), !p.playing || I) return;
|
|
4608
|
+
const Q = setTimeout(() => te(!0), 3e3);
|
|
4609
|
+
return () => clearTimeout(Q);
|
|
4610
4610
|
}, [p.playing, I, K]);
|
|
4611
|
-
const Pe =
|
|
4612
|
-
Pe.current =
|
|
4613
|
-
const Se =
|
|
4614
|
-
if (
|
|
4611
|
+
const Pe = k(O);
|
|
4612
|
+
Pe.current = O;
|
|
4613
|
+
const Se = k(0), $ = (Q) => {
|
|
4614
|
+
if (Q.pointerType !== "mouse") return;
|
|
4615
4615
|
const he = Date.now();
|
|
4616
|
-
!Pe.current && he - Se.current < 1e3 || (Se.current = he,
|
|
4617
|
-
},
|
|
4616
|
+
!Pe.current && he - Se.current < 1e3 || (Se.current = he, v((ue) => ue + 1));
|
|
4617
|
+
}, H = !we && le, A = k(null), b = l ? l.words.map((Q) => Q.dim ? 0 : 1).join("") + l.words.length + ":" + (l.cursor ?? "") : "";
|
|
4618
4618
|
Bt(() => {
|
|
4619
|
-
const
|
|
4620
|
-
if (
|
|
4621
|
-
const he = !!(l != null && l.words.some((de) => de.dim)) || (l == null ? void 0 : l.cursor) != null, ue =
|
|
4619
|
+
const Q = A.current;
|
|
4620
|
+
if (!Q) return;
|
|
4621
|
+
const he = !!(l != null && l.words.some((de) => de.dim)) || (l == null ? void 0 : l.cursor) != null, ue = Q.querySelectorAll((l == null ? void 0 : l.cursor) != null && !l.words.some((de) => de.dim) ? "[data-at]" : "[data-said]"), ie = parseFloat(getComputedStyle(Q).lineHeight) || 24, fe = Math.round(Q.scrollHeight / ie) - Math.round(Q.clientHeight / ie), Ue = Math.max(0, fe) * ie;
|
|
4622
4622
|
if (Ue <= 0) {
|
|
4623
|
-
|
|
4623
|
+
Q.scrollTop && Q.scrollTo({ top: 0 });
|
|
4624
4624
|
return;
|
|
4625
4625
|
}
|
|
4626
|
-
const Y = (de) => Math.round((de.getBoundingClientRect().top -
|
|
4627
|
-
Math.abs(
|
|
4628
|
-
}, [b,
|
|
4629
|
-
const [
|
|
4626
|
+
const Y = (de) => Math.round((de.getBoundingClientRect().top - Q.getBoundingClientRect().top + Q.scrollTop) / ie), R = Math.max(1, Math.round(Q.clientHeight / ie)), q = he ? ue.length ? Math.floor(Y(ue[ue.length - 1]) / R) * R * ie : 0 : Ue, re = Math.max(0, Math.min(Ue, q));
|
|
4627
|
+
Math.abs(re - Q.scrollTop) > 1 && (Q.scrollTop = re);
|
|
4628
|
+
}, [b, H]);
|
|
4629
|
+
const [V, ce] = z(!0), [W, me] = z(!1), Z = k(void 0);
|
|
4630
4630
|
U(() => () => window.clearTimeout(Z.current), []);
|
|
4631
|
-
const ve =
|
|
4632
|
-
var
|
|
4633
|
-
(
|
|
4631
|
+
const ve = B != null && B.share ? B.share.url(V && B.share.at >= 1 ? Math.floor(B.share.at) : null) : "", ze = Ie(() => we && ve && !p.playing ? rc(ve) : "", [we, ve, p.playing]), Ge = () => {
|
|
4632
|
+
var Q;
|
|
4633
|
+
(Q = navigator.clipboard) == null || Q.writeText(ve).then(() => {
|
|
4634
4634
|
me(!0), window.clearTimeout(Z.current), Z.current = window.setTimeout(() => me(!1), 1800);
|
|
4635
4635
|
}, () => {
|
|
4636
4636
|
});
|
|
4637
|
-
}, Ae = we && (
|
|
4637
|
+
}, Ae = we && (B == null ? void 0 : B.share) && /* @__PURE__ */ h("div", { className: "gfull__sharecard", onPointerDown: (Q) => Q.stopPropagation(), onClick: (Q) => Q.stopPropagation(), children: [
|
|
4638
4638
|
ze && /* @__PURE__ */ i("div", { className: "gfull__shareqr", role: "img", "aria-label": "QR code for this link", style: { backgroundImage: `url("${ze}")` } }),
|
|
4639
4639
|
/* @__PURE__ */ h("div", { className: "gfull__sharebody", children: [
|
|
4640
4640
|
/* @__PURE__ */ i("div", { className: "gfull__shareeyebrow", children: "SHARE THIS MOMENT" }),
|
|
4641
4641
|
/* @__PURE__ */ h("label", { className: "gfull__shareat", children: [
|
|
4642
|
-
/* @__PURE__ */ i("input", { type: "checkbox", checked:
|
|
4642
|
+
/* @__PURE__ */ i("input", { type: "checkbox", checked: V, onChange: (Q) => ce(Q.target.checked), disabled: B.share.at < 1 }),
|
|
4643
4643
|
"Start at ",
|
|
4644
|
-
yt(Math.floor(
|
|
4644
|
+
yt(Math.floor(B.share.at))
|
|
4645
4645
|
] }),
|
|
4646
4646
|
/* @__PURE__ */ i("div", { className: "gfull__shareurl", children: /* @__PURE__ */ i("span", { children: ve.replace(/^https?:\/\//, "") }) }),
|
|
4647
4647
|
/* @__PURE__ */ h("div", { className: "gfull__shareacts", children: [
|
|
4648
4648
|
/* @__PURE__ */ h("button", { type: "button", className: "gfull__sharebtn gfull__sharebtn--main", onClick: Ge, children: [
|
|
4649
|
-
/* @__PURE__ */ i(oe, { d:
|
|
4650
|
-
|
|
4649
|
+
/* @__PURE__ */ i(oe, { d: W ? ee.check : ee.copy, size: 14, sw: 1.8 }),
|
|
4650
|
+
W ? "Copied" : "Copy link"
|
|
4651
4651
|
] }),
|
|
4652
4652
|
/* @__PURE__ */ h("button", { type: "button", className: "gfull__sharebtn", onClick: () => Ar(ve, s), children: [
|
|
4653
|
-
/* @__PURE__ */ i(oe, { d:
|
|
4653
|
+
/* @__PURE__ */ i(oe, { d: ee.share, size: 14, sw: 1.6 }),
|
|
4654
4654
|
"Share"
|
|
4655
4655
|
] })
|
|
4656
4656
|
] })
|
|
4657
4657
|
] })
|
|
4658
|
-
] }), ge = (
|
|
4658
|
+
] }), ge = (Q, he, ue, ie, fe, Ue = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: Q, "aria-label": Q, onClick: ie, children: /* @__PURE__ */ i(oe, { d: he, size: (we ? 20 : _e ? 15 : 18) + Ue, sw: ue, style: fe }) }), Ye = /* @__PURE__ */ h("div", { className: "gfull__acts", children: [
|
|
4659
4659
|
f && /* @__PURE__ */ i(Ai, { v: f, size: we ? 20 : _e ? 15 : 18 }),
|
|
4660
|
-
C && ge("Share",
|
|
4661
|
-
Js() && !e && ge(
|
|
4662
|
-
j && ge("Close player",
|
|
4663
|
-
] }), Ve = (d ||
|
|
4664
|
-
d && ge(d.muted ? "Unmute" : "Mute", d.muted ?
|
|
4665
|
-
|
|
4666
|
-
D && ge("Settings",
|
|
4660
|
+
C && ge("Share", ee.share, 1.6, C),
|
|
4661
|
+
Js() && !e && ge(F ? "Exit full screen" : "Full screen", F ? sc : Si, 1.7, () => vn(!F)),
|
|
4662
|
+
j && ge("Close player", ee.close, 1.7, j)
|
|
4663
|
+
] }), Ve = (d || g || D) && /* @__PURE__ */ h("div", { className: "gfull__top", children: [
|
|
4664
|
+
d && ge(d.muted ? "Unmute" : "Mute", d.muted ? ee.volumeOff : ee.volume, 1.6, d.onToggle),
|
|
4665
|
+
g && ge(g.on ? "Hide subtitles" : "Show subtitles", g.on ? ee.cc : ee.ccOff, 1.7, g.onToggle, void 0, 4),
|
|
4666
|
+
D && ge("Settings", ee.cog, 1.6, D)
|
|
4667
4667
|
] });
|
|
4668
4668
|
return /* @__PURE__ */ h(
|
|
4669
4669
|
"div",
|
|
4670
4670
|
{
|
|
4671
4671
|
ref: Te,
|
|
4672
|
-
className: `gfull${we ? " gfull--desk" : ""}${_e ? " gfull--mini" : ""}${Le ? " gfull--small" : ""}${
|
|
4672
|
+
className: `gfull${we ? " gfull--desk" : ""}${_e ? " gfull--mini" : ""}${Le ? " gfull--small" : ""}${ne ? " gfull--swipe" : ""}${M ? " gfull--ad" : ""}${O ? " gfull--calm" : ""}`,
|
|
4673
4673
|
"data-theme": "dark",
|
|
4674
4674
|
role: "dialog",
|
|
4675
4675
|
"aria-label": s,
|
|
4676
|
-
onPointerMove:
|
|
4677
|
-
onPointerDownCapture: (
|
|
4676
|
+
onPointerMove: $,
|
|
4677
|
+
onPointerDownCapture: (Q) => {
|
|
4678
4678
|
var he, ue;
|
|
4679
|
-
|
|
4679
|
+
O && (ae.current = !0), v((ie) => ie + 1), (ue = (he = Q.target).closest) != null && ue.call(he, '[aria-label="Exit full screen"], [aria-label="Full screen"], [aria-label="Close player"]') || X();
|
|
4680
4680
|
},
|
|
4681
|
-
onClickCapture: (
|
|
4682
|
-
ae.current && (ae.current = !1,
|
|
4681
|
+
onClickCapture: (Q) => {
|
|
4682
|
+
ae.current && (ae.current = !1, Q.stopPropagation(), Q.preventDefault());
|
|
4683
4683
|
},
|
|
4684
4684
|
children: [
|
|
4685
|
-
|
|
4685
|
+
ne && G && /* @__PURE__ */ h("div", { className: "gfull__swipe", "aria-live": "polite", children: [
|
|
4686
4686
|
/* @__PURE__ */ i(oe, { d: "m4.5 15.75 7.5-7.5 7.5 7.5", size: 14, sw: 2 }),
|
|
4687
4687
|
"Swipe up for full screen"
|
|
4688
4688
|
] }),
|
|
4689
|
-
/* @__PURE__ */ h("div", { className: `gfull__frame${
|
|
4689
|
+
/* @__PURE__ */ h("div", { className: `gfull__frame${H ? " gfull__frame--land" : ""}`, children: [
|
|
4690
4690
|
r,
|
|
4691
4691
|
/* @__PURE__ */ i("div", { className: "gfull__shade", "aria-hidden": "true" }),
|
|
4692
|
-
|
|
4692
|
+
B && !M && /* @__PURE__ */ h("div", { className: `gfull__pausedinfo${p.playing ? "" : " gfull__pausedinfo--on"}`, "aria-hidden": p.playing, children: [
|
|
4693
4693
|
/* @__PURE__ */ h("div", { className: "gfull__pausedtext", children: [
|
|
4694
4694
|
/* @__PURE__ */ h("div", { className: "gfull__pausedhead", children: [
|
|
4695
4695
|
(_e || Le) && /* @__PURE__ */ i("span", { className: "gfull__pausedmark", "aria-hidden": "true", children: /* @__PURE__ */ i(zr, { dark: !0, size: 20 }) }),
|
|
4696
|
-
/* @__PURE__ */ i("div", { className: "gfull__pausedtitle", children:
|
|
4696
|
+
/* @__PURE__ */ i("div", { className: "gfull__pausedtitle", children: B.title })
|
|
4697
4697
|
] }),
|
|
4698
|
-
|
|
4698
|
+
B.summary && /* @__PURE__ */ i("div", { className: "gfull__pausedsum", children: B.summary })
|
|
4699
4699
|
] }),
|
|
4700
4700
|
Ae
|
|
4701
4701
|
] }),
|
|
@@ -4713,7 +4713,7 @@ function Ei({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
4713
4713
|
] }),
|
|
4714
4714
|
" "
|
|
4715
4715
|
] }),
|
|
4716
|
-
l.words.map((
|
|
4716
|
+
l.words.map((Q) => Q.t + Q.sp).join("")
|
|
4717
4717
|
] }) }),
|
|
4718
4718
|
/* @__PURE__ */ h("span", { children: [
|
|
4719
4719
|
l.who && /* @__PURE__ */ h(xe, { children: [
|
|
@@ -4723,9 +4723,9 @@ function Ei({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
4723
4723
|
] }),
|
|
4724
4724
|
" "
|
|
4725
4725
|
] }),
|
|
4726
|
-
l.words.map((
|
|
4727
|
-
|
|
4728
|
-
|
|
4726
|
+
l.words.map((Q, he) => /* @__PURE__ */ h("span", { "data-said": Q.dim ? void 0 : "", "data-at": l.cursor != null && he <= l.cursor ? "" : void 0, style: Q.dim ? lc : void 0, children: [
|
|
4727
|
+
Q.t,
|
|
4728
|
+
Q.sp
|
|
4729
4729
|
] }, he))
|
|
4730
4730
|
] })
|
|
4731
4731
|
] }) }),
|
|
@@ -4762,7 +4762,7 @@ function Ei({ compact: t = !1, noFull: e = !1, page: n = !0, picture: r, title:
|
|
|
4762
4762
|
}
|
|
4763
4763
|
function cc({ dark: t, back: e, home: n, live: r, title: s, badge: a, subline: o, onOptions: l, optionsActive: c }) {
|
|
4764
4764
|
return /* @__PURE__ */ h("div", { className: "ghead", children: [
|
|
4765
|
-
e && /* @__PURE__ */ i("button", { type: "button", className: "ghead__back", "aria-label": "Back", title: "Back", onClick: e, children: /* @__PURE__ */ i(oe, { d:
|
|
4765
|
+
e && /* @__PURE__ */ i("button", { type: "button", className: "ghead__back", "aria-label": "Back", title: "Back", onClick: e, children: /* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: 19, sw: 1.7 }) }),
|
|
4766
4766
|
r && /* @__PURE__ */ i("span", { className: "mark", children: /* @__PURE__ */ i(zr, { dark: t, size: 30 }) }),
|
|
4767
4767
|
/* @__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__ */ h("div", { className: "ghead__title", onClick: e, title: e ? "Back" : void 0, style: { cursor: e ? "pointer" : "default" }, children: [
|
|
4768
4768
|
/* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
@@ -4778,7 +4778,7 @@ function cc({ dark: t, back: e, home: n, live: r, title: s, badge: a, subline: o
|
|
|
4778
4778
|
] }) })
|
|
4779
4779
|
] });
|
|
4780
4780
|
}
|
|
4781
|
-
const uc = "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", dc = (t, e = !1) => [{ value: "read", label: t.read, icon: /* @__PURE__ */ i(oe, { d:
|
|
4781
|
+
const uc = "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", dc = (t, e = !1) => [{ value: "read", label: t.read, icon: /* @__PURE__ */ i(oe, { d: ee.book, size: 17 }) }, { value: "listen", label: /* @__PURE__ */ i("span", { style: { display: "inline-block", minWidth: 52, textAlign: "center" }, children: e ? t.watch : t.listen }), icon: /* @__PURE__ */ i(oe, { d: e ? uc : ee.headphones, size: 19, sw: 1.5 }) }];
|
|
4782
4782
|
function hc(t) {
|
|
4783
4783
|
if (!t.lang) return null;
|
|
4784
4784
|
const e = t.langName;
|
|
@@ -4829,7 +4829,7 @@ function fc({ state: t, line: e, onRetry: n, onOriginal: r }) {
|
|
|
4829
4829
|
onPointerDown: (d) => d.stopPropagation(),
|
|
4830
4830
|
children: [
|
|
4831
4831
|
/* @__PURE__ */ h("div", { className: "pwait__head", children: [
|
|
4832
|
-
l ? /* @__PURE__ */ i("div", { className: "pwait__mark", "aria-hidden": "true", children: /* @__PURE__ */ i(oe, { d:
|
|
4832
|
+
l ? /* @__PURE__ */ i("div", { className: "pwait__mark", "aria-hidden": "true", children: /* @__PURE__ */ i(oe, { d: ee.warnCircle, size: 18, sw: 1.8 }) }) : /* @__PURE__ */ i("div", { className: "pwait__spin", "aria-hidden": "true" }),
|
|
4833
4833
|
/* @__PURE__ */ i("div", { className: "pwait__t", children: c }),
|
|
4834
4834
|
!l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: gc(o) })
|
|
4835
4835
|
] }),
|
|
@@ -4853,7 +4853,7 @@ function _i(t, e, n) {
|
|
|
4853
4853
|
const r = new URL(t ?? _r), s = Nc(), a = new URL(pc, r);
|
|
4854
4854
|
e.url && a.searchParams.set("url", e.url), e.transcription && a.searchParams.set("transcription", e.transcription), e.ask && a.searchParams.set("ask", "1"), e.connect && a.searchParams.set("connect", "1"), a.searchParams.set("origin", window.location.origin), a.searchParams.set("nonce", s);
|
|
4855
4855
|
const o = 480, l = 640, c = Math.max(0, (window.screenX ?? 0) + ((window.outerWidth ?? o) - o) / 2), u = Math.max(0, (window.screenY ?? 0) + ((window.outerHeight ?? l) - l) / 2), d = window.open(a.toString(), "vocalstack-connect", `popup=yes,width=${o},height=${l},left=${Math.round(c)},top=${Math.round(u)}`);
|
|
4856
|
-
return d ? new Promise((
|
|
4856
|
+
return d ? new Promise((g, M) => {
|
|
4857
4857
|
let N = !1;
|
|
4858
4858
|
const p = (m) => {
|
|
4859
4859
|
N || (N = !0, window.removeEventListener("message", y), clearInterval(L), m());
|
|
@@ -4870,23 +4870,23 @@ function _i(t, e, n) {
|
|
|
4870
4870
|
return;
|
|
4871
4871
|
}
|
|
4872
4872
|
if (f.type === "vocalstack:started" || f.type === "vocalstack:token" || f.type === "vocalstack:found") {
|
|
4873
|
-
p(() =>
|
|
4873
|
+
p(() => g({ transcriptionId: String(f.transcriptionId), recordingId: String(f.recordingId), token: String(f.token), expiresAt: f.expiresAt ?? null }));
|
|
4874
4874
|
return;
|
|
4875
4875
|
}
|
|
4876
4876
|
if (f.type === "vocalstack:connected") {
|
|
4877
|
-
p(() =>
|
|
4877
|
+
p(() => g("connected"));
|
|
4878
4878
|
return;
|
|
4879
4879
|
}
|
|
4880
4880
|
if (f.type === "vocalstack:declined") {
|
|
4881
|
-
p(() =>
|
|
4881
|
+
p(() => g(null));
|
|
4882
4882
|
return;
|
|
4883
4883
|
}
|
|
4884
|
-
f.type === "vocalstack:error" && p(() =>
|
|
4884
|
+
f.type === "vocalstack:error" && p(() => M(new Error(typeof f.message == "string" && f.message ? f.message : "VocalStack could not start this transcription.")));
|
|
4885
4885
|
}
|
|
4886
4886
|
};
|
|
4887
4887
|
window.addEventListener("message", y);
|
|
4888
4888
|
const L = setInterval(() => {
|
|
4889
|
-
d.closed && p(() =>
|
|
4889
|
+
d.closed && p(() => g(null));
|
|
4890
4890
|
}, 500);
|
|
4891
4891
|
}) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
|
|
4892
4892
|
}
|
|
@@ -4917,30 +4917,30 @@ const wc = {
|
|
|
4917
4917
|
starting: "Starting the transcription…"
|
|
4918
4918
|
}, Lc = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
4919
4919
|
function vc({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
4920
|
-
const [s, a] = z(""), [o, l] = z(!1), [c, u] = z(null), [d,
|
|
4920
|
+
const [s, a] = z(""), [o, l] = z(!1), [c, u] = z(null), [d, g] = z(null);
|
|
4921
4921
|
U(() => {
|
|
4922
4922
|
const y = (L) => {
|
|
4923
4923
|
L.key === "Escape" && r();
|
|
4924
4924
|
};
|
|
4925
4925
|
return window.addEventListener("keydown", y), () => window.removeEventListener("keydown", y);
|
|
4926
4926
|
}, [r]);
|
|
4927
|
-
const
|
|
4927
|
+
const M = s.trim(), N = Lc.test(M), p = async () => {
|
|
4928
4928
|
if (!(!N || o)) {
|
|
4929
4929
|
l(!0), u(null);
|
|
4930
4930
|
try {
|
|
4931
|
-
const y = await mc(t.appUrl, /^https?:\/\//i.test(
|
|
4931
|
+
const y = await mc(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, g);
|
|
4932
4932
|
y && e(y);
|
|
4933
4933
|
} catch (y) {
|
|
4934
4934
|
u(y instanceof Error ? y.message : "Something went wrong. Please try again.");
|
|
4935
4935
|
} finally {
|
|
4936
|
-
l(!1),
|
|
4936
|
+
l(!1), g(null);
|
|
4937
4937
|
}
|
|
4938
4938
|
}
|
|
4939
4939
|
};
|
|
4940
4940
|
return /* @__PURE__ */ i("div", { className: "vsp-end", role: "dialog", "aria-label": "Transcribe another video", onPointerDown: (y) => y.stopPropagation(), onClick: (y) => {
|
|
4941
4941
|
y.stopPropagation(), y.target === y.currentTarget && r();
|
|
4942
4942
|
}, children: /* @__PURE__ */ h("div", { className: "vsp-end__card", children: [
|
|
4943
|
-
/* @__PURE__ */ i("button", { type: "button", className: "vsp-end__close", "aria-label": "Close", title: "Close", onClick: r, children: /* @__PURE__ */ i(oe, { d:
|
|
4943
|
+
/* @__PURE__ */ i("button", { type: "button", className: "vsp-end__close", "aria-label": "Close", title: "Close", onClick: r, children: /* @__PURE__ */ i(oe, { d: ee.close, size: 16, sw: 1.8 }) }),
|
|
4944
4944
|
/* @__PURE__ */ i("div", { className: "vsp-end__brand", children: /* @__PURE__ */ i(bn, { dark: !0, link: !1, height: 16 }) }),
|
|
4945
4945
|
/* @__PURE__ */ i("div", { className: "vsp-end__title", children: t.title ?? "Transcribe and translate any video" }),
|
|
4946
4946
|
/* @__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." }),
|
|
@@ -4957,7 +4957,7 @@ function vc({ options: t, onStarted: e, onReplay: n, onClose: r }) {
|
|
|
4957
4957
|
/* @__PURE__ */ h("div", { className: "vsp-end__foot", children: [
|
|
4958
4958
|
/* @__PURE__ */ i("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }),
|
|
4959
4959
|
/* @__PURE__ */ h("button", { type: "button", className: "vsp-end__replay", onClick: n, children: [
|
|
4960
|
-
/* @__PURE__ */ i(oe, { d:
|
|
4960
|
+
/* @__PURE__ */ i(oe, { d: ee.uturn, size: 14, sw: 1.8 }),
|
|
4961
4961
|
"Replay"
|
|
4962
4962
|
] })
|
|
4963
4963
|
] })
|
|
@@ -4973,27 +4973,27 @@ function Ui(t) {
|
|
|
4973
4973
|
}
|
|
4974
4974
|
const kc = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
|
|
4975
4975
|
function jc(t, e) {
|
|
4976
|
-
const n = Li(), [r, s] = gi(), [a, o] = z(null), [l, c] = z("main"), u = wr(n, t.lang), d = Ie(() => fi(n, "translation"), [n]),
|
|
4976
|
+
const n = Li(), [r, s] = gi(), [a, o] = z(null), [l, c] = z("main"), u = wr(n, t.lang), d = Ie(() => fi(n, "translation"), [n]), g = (_) => {
|
|
4977
4977
|
e({ lang: _ }), s(_);
|
|
4978
|
-
},
|
|
4978
|
+
}, M = Or({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect: g, languages: d, none: "As spoken", pinned: t.lang ? [t.lang] : [], recent: r, keepOpen: !0 }), N = () => {
|
|
4979
4979
|
o(null), c("main");
|
|
4980
|
-
}, p = t.lang ? /* @__PURE__ */ i("span", { style: { fontSize: 19, lineHeight: 1 }, children: u.flag }) : /* @__PURE__ */ i(oe, { d:
|
|
4981
|
-
_.stopPropagation(), c("main"), o((
|
|
4982
|
-
}, children: p }), L = /* @__PURE__ */ i(oe, { d:
|
|
4980
|
+
}, p = t.lang ? /* @__PURE__ */ i("span", { style: { fontSize: 19, lineHeight: 1 }, children: u.flag }) : /* @__PURE__ */ i(oe, { d: ee.langAuto, size: 19, sw: 1.7 }), y = /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": `Language: ${t.lang ? u.label : "As spoken"}`, title: t.lang ? u.label : "As spoken", onClick: (_) => {
|
|
4981
|
+
_.stopPropagation(), c("main"), o((X) => X === "lang" ? null : "lang");
|
|
4982
|
+
}, children: p }), L = /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), m = /* @__PURE__ */ h("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
4983
4983
|
" ",
|
|
4984
4984
|
/* @__PURE__ */ h("button", { type: "button", onClick: () => c("main"), "aria-label": "Back", className: "vsp-idlesheet__back", children: [
|
|
4985
|
-
/* @__PURE__ */ i(oe, { d:
|
|
4985
|
+
/* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: 18, sw: 1.8 }),
|
|
4986
4986
|
"Back"
|
|
4987
4987
|
] })
|
|
4988
|
-
] }), f = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, I = (_,
|
|
4988
|
+
] }), f = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, I = (_, X, j) => /* @__PURE__ */ h("div", { className: "srow", children: [
|
|
4989
4989
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
4990
4990
|
/* @__PURE__ */ i("div", { className: "srow__t", children: _ }),
|
|
4991
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
4991
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: X })
|
|
4992
4992
|
] }),
|
|
4993
4993
|
j
|
|
4994
4994
|
] }), C = /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
4995
|
-
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children:
|
|
4996
|
-
|
|
4995
|
+
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: M.search }),
|
|
4996
|
+
M.list
|
|
4997
4997
|
] }), D = l === "lang" ? C : l === "subs" ? /* @__PURE__ */ h("div", { style: f, children: [
|
|
4998
4998
|
I("Show subtitles", "Captions over the video", /* @__PURE__ */ i(Nt, { checked: t.subtitles, onChange: (_) => e({ subtitles: _ }), label: "Show subtitles" })),
|
|
4999
4999
|
I("Show speaker labels", "Who is speaking, before each line", /* @__PURE__ */ i(Nt, { checked: t.speakerLabels, onChange: (_) => e({ speakerLabels: _ }), label: "Show speaker labels" })),
|
|
@@ -5027,13 +5027,13 @@ function jc(t, e) {
|
|
|
5027
5027
|
] }),
|
|
5028
5028
|
L
|
|
5029
5029
|
] })
|
|
5030
|
-
] }),
|
|
5031
|
-
/* @__PURE__ */ i(Vt, { open: a === "lang", onClose: N, title: "LANGUAGE", kind: "picker", sticky: !0, children: /* @__PURE__ */ i(Mr, { children:
|
|
5030
|
+
] }), B = /* @__PURE__ */ h(xe, { children: [
|
|
5031
|
+
/* @__PURE__ */ i(Vt, { open: a === "lang", onClose: N, title: "LANGUAGE", kind: "picker", header: M.search, sticky: !0, children: /* @__PURE__ */ i(Mr, { children: M.list }) }),
|
|
5032
5032
|
/* @__PURE__ */ i(Vt, { open: a === "settings", onClose: N, title: { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO" }[l], titleNode: l === "main" ? void 0 : m, kind: l === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(Mr, { children: D }) })
|
|
5033
5033
|
] });
|
|
5034
5034
|
return {
|
|
5035
5035
|
chip: y,
|
|
5036
|
-
sheets:
|
|
5036
|
+
sheets: B,
|
|
5037
5037
|
sheetOpen: a != null,
|
|
5038
5038
|
openSettings: () => {
|
|
5039
5039
|
c("main"), o((_) => _ === "settings" ? null : "settings");
|
|
@@ -5103,7 +5103,7 @@ function Cc({ t }) {
|
|
|
5103
5103
|
] });
|
|
5104
5104
|
}
|
|
5105
5105
|
function bc() {
|
|
5106
|
-
const t =
|
|
5106
|
+
const t = k(null), [e, n] = z(!0), [r, s] = z(() => typeof document > "u" || !document.hidden);
|
|
5107
5107
|
return U(() => {
|
|
5108
5108
|
const a = () => s(!document.hidden);
|
|
5109
5109
|
document.addEventListener("visibilitychange", a);
|
|
@@ -5114,7 +5114,7 @@ function bc() {
|
|
|
5114
5114
|
};
|
|
5115
5115
|
}, []), /* @__PURE__ */ i("div", { ref: t, className: `vsp-prov${e && r ? "" : " vsp-prov--still"}`, "aria-hidden": "true", children: /* @__PURE__ */ i("div", { className: "vsp-prov__plane", children: Array.from({ length: zc }, (a, o) => {
|
|
5116
5116
|
const l = Oc(o);
|
|
5117
|
-
return /* @__PURE__ */ i("div", { className: `vsp-prov__row${o % 2 ? " vsp-prov__row--rev" : ""}`, style: { animationDuration: `${80 + o * 11}s`, animationDelay: `-${o * 17}s` }, children: Array.from({ length: Ic }, (c, u) => l.map((d,
|
|
5117
|
+
return /* @__PURE__ */ i("div", { className: `vsp-prov__row${o % 2 ? " vsp-prov__row--rev" : ""}`, style: { animationDuration: `${80 + o * 11}s`, animationDelay: `-${o * 17}s` }, children: Array.from({ length: Ic }, (c, u) => l.map((d, g) => /* @__PURE__ */ i(Cc, { t: d }, `${u}-${g}`))) }, o);
|
|
5118
5118
|
}) }) });
|
|
5119
5119
|
}
|
|
5120
5120
|
const Ri = {
|
|
@@ -5147,8 +5147,8 @@ function xc(t, e) {
|
|
|
5147
5147
|
}).catch((y) => l(y instanceof Error ? y.message : "Something went wrong. Please try again.")).finally(() => {
|
|
5148
5148
|
r(!1), a(null);
|
|
5149
5149
|
});
|
|
5150
|
-
}, [t, n, e]),
|
|
5151
|
-
return { busy: n, status: s, err: o, connected: c, connect:
|
|
5150
|
+
}, [t, n, e]), g = Ke(() => d({ connect: !0 }), [d]), M = Ke((N, p) => d({ url: N, ask: p }), [d]);
|
|
5151
|
+
return { busy: n, status: s, err: o, connected: c, connect: g, start: M };
|
|
5152
5152
|
}
|
|
5153
5153
|
function Dc(t) {
|
|
5154
5154
|
return /\.(mp4|webm|mov|m4v|ogv|mkv)(\?|#|$)/i.test(t);
|
|
@@ -5163,21 +5163,21 @@ function Sc({ poster: t, src: e }) {
|
|
|
5163
5163
|
const Ac = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
|
|
5164
5164
|
} };
|
|
5165
5165
|
function Cn({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children: o }) {
|
|
5166
|
-
const l = jc(t.prefs, t.set), c = Ui(), u =
|
|
5166
|
+
const l = jc(t.prefs, t.set), c = Ui(), u = k(null), [d, g] = z(!1);
|
|
5167
5167
|
Bt(() => {
|
|
5168
5168
|
var L;
|
|
5169
5169
|
const N = (L = u.current) == null ? void 0 : L.parentElement;
|
|
5170
5170
|
if (!N) return;
|
|
5171
|
-
const p = () =>
|
|
5171
|
+
const p = () => g(N.getBoundingClientRect().width < 560);
|
|
5172
5172
|
if (p(), typeof ResizeObserver > "u") return;
|
|
5173
5173
|
const y = new ResizeObserver(p);
|
|
5174
5174
|
return y.observe(N), () => y.disconnect();
|
|
5175
5175
|
}, []);
|
|
5176
|
-
const
|
|
5176
|
+
const M = { prevOn: !1, nextOn: !1, onPrev: () => {
|
|
5177
5177
|
}, onNext: () => {
|
|
5178
5178
|
}, playing: !1, playable: !0, playTitle: "Connect to play", onPlay: a };
|
|
5179
5179
|
return /* @__PURE__ */ h("div", { ref: u, className: `vsp-idleroot${d ? " vsp-idleroot--small" : ""}`, children: [
|
|
5180
|
-
/* @__PURE__ */ i(Ei, { page: s, picture: /* @__PURE__ */ i(Sc, { poster: e, src: n }), title: r, desk: c, pos: Ac, sub: null, mute: { muted: t.prefs.muted, onToggle: () => t.set({ muted: !t.prefs.muted }) }, cc: { on: t.prefs.subtitles, onToggle: () => t.set({ subtitles: !t.prefs.subtitles }) }, chip: l.chip, transport:
|
|
5180
|
+
/* @__PURE__ */ i(Ei, { page: s, picture: /* @__PURE__ */ i(Sc, { poster: e, src: n }), title: r, desk: c, pos: Ac, sub: null, mute: { muted: t.prefs.muted, onToggle: () => t.set({ muted: !t.prefs.muted }) }, cc: { on: t.prefs.subtitles, onToggle: () => t.set({ subtitles: !t.prefs.subtitles }) }, chip: l.chip, transport: M, picker: l.sheets, sheet: null, voices: null, voicesBtn: null, sheetOpen: l.sheetOpen, onSettings: l.openSettings, onShare: () => Ar(t.shareUrl ?? window.location.href, r), copied: null, onTouch: () => {
|
|
5181
5181
|
} }),
|
|
5182
5182
|
!l.sheetOpen && /* @__PURE__ */ i("div", { className: "vsp-idle", "data-theme": "dark", children: /* @__PURE__ */ i("div", { className: "vsp-idle__box", children: o }) })
|
|
5183
5183
|
] });
|
|
@@ -5185,7 +5185,7 @@ function Cn({ idle: t, poster: e, src: n, title: r, page: s, onAct: a, children:
|
|
|
5185
5185
|
function Pi({ connect: t, onClick: e, label: n }) {
|
|
5186
5186
|
return /* @__PURE__ */ h(xe, { children: [
|
|
5187
5187
|
/* @__PURE__ */ h("button", { type: "button", className: "vsp-idle__connect", onClick: e, disabled: t.busy, children: [
|
|
5188
|
-
t.busy ? /* @__PURE__ */ i(at, { size: 18, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ i(oe, { d:
|
|
5188
|
+
t.busy ? /* @__PURE__ */ i(at, { size: 18, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ i(oe, { d: ee.link, size: 18, sw: 1.8 }),
|
|
5189
5189
|
/* @__PURE__ */ i("span", { children: t.busy ? "Waiting for VocalStack…" : n })
|
|
5190
5190
|
] }),
|
|
5191
5191
|
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: Ri[t.status ?? "checking"] }),
|
|
@@ -5201,7 +5201,7 @@ function Ec({ idle: t, src: e, ask: n, connect: r, page: s, poster: a = null, on
|
|
|
5201
5201
|
] });
|
|
5202
5202
|
}
|
|
5203
5203
|
function _c({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
5204
|
-
const [a, o] = z(""), l =
|
|
5204
|
+
const [a, o] = z(""), l = k(null), c = k(null), u = a.trim(), d = ei.test(u), g = () => {
|
|
5205
5205
|
if (!d || e.busy) return;
|
|
5206
5206
|
const p = /^https?:\/\//i.test(u) ? u : `https://${u}`;
|
|
5207
5207
|
s(p), e.start(p, !1);
|
|
@@ -5211,9 +5211,9 @@ function _c({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
|
5211
5211
|
/* @__PURE__ */ i(Pi, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
|
|
5212
5212
|
!e.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "Connect your VocalStack account to watch any video with subtitles and spoken translations." })
|
|
5213
5213
|
] });
|
|
5214
|
-
const
|
|
5214
|
+
const M = () => {
|
|
5215
5215
|
var p;
|
|
5216
|
-
d ?
|
|
5216
|
+
d ? g() : (p = l.current) == null || p.focus();
|
|
5217
5217
|
}, N = (p) => {
|
|
5218
5218
|
const y = p.trim();
|
|
5219
5219
|
if (!ei.test(y) || e.busy || y === c.current) return;
|
|
@@ -5221,11 +5221,11 @@ function _c({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
|
5221
5221
|
const L = /^https?:\/\//i.test(y) ? y : `https://${y}`;
|
|
5222
5222
|
s(L), e.start(L, !1);
|
|
5223
5223
|
};
|
|
5224
|
-
return /* @__PURE__ */ h(Cn, { idle: t, poster: r, src: null, title: "VocalStack", page: n, onAct:
|
|
5224
|
+
return /* @__PURE__ */ h(Cn, { idle: t, poster: r, src: null, title: "VocalStack", page: n, onAct: M, children: [
|
|
5225
5225
|
/* @__PURE__ */ i("form", { className: "vsp-idle__form", onSubmit: (p) => {
|
|
5226
|
-
p.preventDefault(),
|
|
5226
|
+
p.preventDefault(), g();
|
|
5227
5227
|
}, children: /* @__PURE__ */ h("span", { className: "vsp-idle__field", children: [
|
|
5228
|
-
/* @__PURE__ */ i(oe, { d:
|
|
5228
|
+
/* @__PURE__ */ i(oe, { d: ee.link, size: 16, sw: 1.8 }),
|
|
5229
5229
|
/* @__PURE__ */ i("input", { ref: l, className: "vsp-idle__input", type: "url", inputMode: "url", enterKeyHint: "go", autoComplete: "off", spellCheck: !1, placeholder: "Paste a video link", value: a, onChange: (p) => o(p.target.value), onPaste: (p) => {
|
|
5230
5230
|
const y = p.clipboardData.getData("text");
|
|
5231
5231
|
y && (o(y.trim()), N(y), p.preventDefault());
|
|
@@ -5239,11 +5239,11 @@ function _c({ idle: t, connect: e, page: n, poster: r = null, onPick: s }) {
|
|
|
5239
5239
|
function Yc({ idle: t, message: e, onRetry: n, page: r }) {
|
|
5240
5240
|
return /* @__PURE__ */ h(Cn, { idle: t, poster: null, src: null, title: "VocalStack", page: r, onAct: n, children: [
|
|
5241
5241
|
/* @__PURE__ */ h("div", { className: "vsp-idle__err", role: "alert", children: [
|
|
5242
|
-
/* @__PURE__ */ i(oe, { d:
|
|
5242
|
+
/* @__PURE__ */ i(oe, { d: ee.warn, size: 16, sw: 1.8 }),
|
|
5243
5243
|
e
|
|
5244
5244
|
] }),
|
|
5245
5245
|
/* @__PURE__ */ h("button", { type: "button", className: "vsp-idle__connect", onClick: n, children: [
|
|
5246
|
-
/* @__PURE__ */ i(oe, { d:
|
|
5246
|
+
/* @__PURE__ */ i(oe, { d: ee.uturn, size: 18, sw: 1.8 }),
|
|
5247
5247
|
/* @__PURE__ */ i("span", { children: "Try again" })
|
|
5248
5248
|
] })
|
|
5249
5249
|
] });
|
|
@@ -5291,27 +5291,27 @@ function Pc(t) {
|
|
|
5291
5291
|
}
|
|
5292
5292
|
const Kc = fa(function(e, n) {
|
|
5293
5293
|
var K;
|
|
5294
|
-
const r =
|
|
5294
|
+
const r = k(null);
|
|
5295
5295
|
pa(n, () => ({
|
|
5296
|
-
seek: (
|
|
5296
|
+
seek: (v) => {
|
|
5297
5297
|
var ae;
|
|
5298
|
-
return (ae = r.current) == null ? void 0 : ae.seek(
|
|
5298
|
+
return (ae = r.current) == null ? void 0 : ae.seek(v);
|
|
5299
5299
|
},
|
|
5300
5300
|
play: () => {
|
|
5301
|
-
var
|
|
5302
|
-
return (
|
|
5301
|
+
var v;
|
|
5302
|
+
return (v = r.current) == null ? void 0 : v.play();
|
|
5303
5303
|
},
|
|
5304
5304
|
toggleMute: () => {
|
|
5305
|
-
var
|
|
5306
|
-
return (
|
|
5305
|
+
var v;
|
|
5306
|
+
return (v = r.current) == null ? void 0 : v.toggleMute();
|
|
5307
5307
|
},
|
|
5308
5308
|
pause: () => {
|
|
5309
|
-
var
|
|
5310
|
-
return (
|
|
5309
|
+
var v;
|
|
5310
|
+
return (v = r.current) == null ? void 0 : v.pause();
|
|
5311
5311
|
},
|
|
5312
5312
|
toggle: () => {
|
|
5313
|
-
var
|
|
5314
|
-
return (
|
|
5313
|
+
var v;
|
|
5314
|
+
return (v = r.current) == null ? void 0 : v.toggle();
|
|
5315
5315
|
}
|
|
5316
5316
|
}), []);
|
|
5317
5317
|
const [s, a] = z({ id: e.id ?? "", token: e.token });
|
|
@@ -5322,37 +5322,37 @@ const Kc = fa(function(e, n) {
|
|
|
5322
5322
|
U(() => {
|
|
5323
5323
|
o != null && o.id && a({ id: o.id, token: e.token });
|
|
5324
5324
|
}, [o == null ? void 0 : o.id]);
|
|
5325
|
-
const [l, c] = z(null), [u, d] = z(() => ({ ...kc, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([,
|
|
5326
|
-
d((ae) => ({ ...ae, ...
|
|
5327
|
-
}, shareUrl: (K = e.shareUrl) == null ? void 0 : K.call(e, null) }, { muted: p, ...y } =
|
|
5325
|
+
const [l, c] = z(null), [u, d] = z(() => ({ ...kc, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([, v]) => v !== void 0)) })), [g, M] = z({}), N = { prefs: u, set: (v) => {
|
|
5326
|
+
d((ae) => ({ ...ae, ...v })), M((ae) => ({ ...ae, ...v }));
|
|
5327
|
+
}, shareUrl: (K = e.shareUrl) == null ? void 0 : K.call(e, null) }, { muted: p, ...y } = g;
|
|
5328
5328
|
U(() => {
|
|
5329
5329
|
c(null);
|
|
5330
5330
|
}, [e.id, e.src]);
|
|
5331
|
-
const L = e.src ?? l, m = !s.id && !!L && (l != null || o !== void 0), f = !s.id && !e.src && !l, I = wi({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: C, gone: D, error:
|
|
5331
|
+
const L = e.src ?? l, m = !s.id && !!L && (l != null || o !== void 0), f = !s.id && !e.src && !l, I = wi({ id: s.id, token: s.token, baseUrl: e.baseUrl, listen: s.listen }), { source: C, gone: D, error: B, reload: _ } = Ao(I, s.id), X = Eo(I, (C == null ? void 0 : C.recording.id) ?? null), j = Ie(() => Do(I, X), [I, X]);
|
|
5332
5332
|
U(() => {
|
|
5333
|
-
var
|
|
5334
|
-
C && ((
|
|
5333
|
+
var v;
|
|
5334
|
+
C && ((v = e.onSource) == null || v.call(e, C));
|
|
5335
5335
|
}, [C]), U(() => {
|
|
5336
|
-
var
|
|
5337
|
-
|
|
5338
|
-
}, [
|
|
5339
|
-
const
|
|
5340
|
-
return U(() => (Ks(
|
|
5336
|
+
var v;
|
|
5337
|
+
B && ((v = e.onError) == null || v.call(e, B));
|
|
5338
|
+
}, [B]);
|
|
5339
|
+
const F = Ui(e.desk), S = (e.layout ?? "embed") === "embed", T = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), E = Ke((v) => a({ id: v.transcriptionId, token: null, listen: { transcriptionId: v.transcriptionId, recordingId: v.recordingId, token: v.token } }), []), O = xc(T, E), te = k(null);
|
|
5340
|
+
return U(() => (Ks(S ? te.current : null), () => Ks(null)), [S]), /* @__PURE__ */ i(Oo, { value: j, children: /* @__PURE__ */ i("div", { ref: te, className: `vsp${S ? " 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: f ? /* @__PURE__ */ i(_c, { idle: N, connect: O, page: !S, poster: e.poster ?? null, onPick: c }) : m ? /* @__PURE__ */ i(Ec, { idle: N, src: L, ask: !l, connect: O, page: !S, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : s.id ? B && !C ? /* @__PURE__ */ i(Yc, { idle: N, message: B.message, onRetry: _, page: !S }) : /* @__PURE__ */ i(Qc, { ...e, initial: { ...e.initial ?? {}, ...y }, startMuted: p === !0, handle: r, id: s.id, api: j, shared: C, gone: D, loadError: B, reread: _, desk: F, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (v) => a({ id: v.transcriptionId, token: null, listen: { transcriptionId: v.transcriptionId, recordingId: v.recordingId, token: v.token } }) }, s.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
|
|
5341
5341
|
});
|
|
5342
5342
|
function Qc(t) {
|
|
5343
5343
|
var Ms, gs, fs, ps, Ns, ms, ys, Ts, ws, Ls, vs, ks, js, zs, Is, Os, Cs, bs, xs, Ds, Ss, As;
|
|
5344
|
-
const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = Ie(() => Pc(t), []), u = (t.mode ?? "video") === "video", [d,
|
|
5344
|
+
const { api: e, shared: n, gone: r, desk: s, dark: a } = t, o = t.id ?? "", l = Ie(() => Pc(t), []), u = (t.mode ?? "video") === "video", [d, g] = z(t.loadError);
|
|
5345
5345
|
U(() => {
|
|
5346
|
-
t.loadError &&
|
|
5346
|
+
t.loadError && g(t.loadError);
|
|
5347
5347
|
}, [t.loadError]);
|
|
5348
|
-
const [
|
|
5348
|
+
const [M, N] = z("none"), [p, y] = z(!1), [L, m] = z(""), [f, I] = Ul(), [C, D] = z(null), [B, _] = z(u ? "listen" : "read"), [X, j] = z(!1), F = k(null), S = k(/* @__PURE__ */ new Map()), [T, E] = z("main"), O = (w) => {
|
|
5349
5349
|
const Ne = document.querySelector(".vs-sheet--settings"), Qe = Ne == null ? void 0 : Ne.parentElement;
|
|
5350
|
-
Ne && Qe && T === "main" && w !== "main" && Qe.style.setProperty("--vs-sheet-top", `${Math.round(Ne.getBoundingClientRect().top - Qe.getBoundingClientRect().top)}px`),
|
|
5350
|
+
Ne && Qe && T === "main" && w !== "main" && Qe.style.setProperty("--vs-sheet-top", `${Math.round(Ne.getBoundingClientRect().top - Qe.getBoundingClientRect().top)}px`), E(w);
|
|
5351
5351
|
};
|
|
5352
5352
|
U(() => {
|
|
5353
|
-
|
|
5354
|
-
}, [
|
|
5355
|
-
const [
|
|
5353
|
+
X || O("main");
|
|
5354
|
+
}, [X]);
|
|
5355
|
+
const [te, K] = z(u), v = (n == null ? void 0 : n.recording) ?? null, ae = (v == null ? void 0 : v.id) ?? null, [ne, G] = z(l.lang), J = typeof ne == "string" ? ne : null, [pe, le] = z(l.labels), [Te, je] = z(l.words), [Ee, Le] = z(l.cc), [we, _e] = z(l.translateAudio), [Pe, Se] = z(l.clonedVoices), [$, H] = z(l.removeBackground), A = t.settings;
|
|
5356
5356
|
U(() => {
|
|
5357
5357
|
(A == null ? void 0 : A.lang) !== void 0 && G(A.lang);
|
|
5358
5358
|
}, [A == null ? void 0 : A.lang]), U(() => {
|
|
@@ -5366,26 +5366,26 @@ function Qc(t) {
|
|
|
5366
5366
|
}, [A == null ? void 0 : A.translateAudio]), U(() => {
|
|
5367
5367
|
(A == null ? void 0 : A.voices) !== void 0 && Se(A.voices === "cloned");
|
|
5368
5368
|
}, [A == null ? void 0 : A.voices]), U(() => {
|
|
5369
|
-
(A == null ? void 0 : A.removeBackground) !== void 0 &&
|
|
5369
|
+
(A == null ? void 0 : A.removeBackground) !== void 0 && H(A.removeBackground);
|
|
5370
5370
|
}, [A == null ? void 0 : A.removeBackground]);
|
|
5371
|
-
const b = { language: !0, subtitles: !0, audio: !0, export: !0, share: !0, fullscreen: !0, settings: !0, ...t.controls ?? {} },
|
|
5371
|
+
const b = { language: !0, subtitles: !0, audio: !0, export: !0, share: !0, fullscreen: !0, settings: !0, ...t.controls ?? {} }, V = u && !we;
|
|
5372
5372
|
U(() => {
|
|
5373
5373
|
if (!t.syncUrl) return;
|
|
5374
5374
|
const w = new URL(window.location.href);
|
|
5375
|
-
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"), Ee ? w.searchParams.delete("cc") : w.searchParams.set("cc", "off"), we ? w.searchParams.delete("audio") : w.searchParams.set("audio", "original"), Pe ? w.searchParams.delete("voices") : w.searchParams.set("voices", "stock"), Za(w,
|
|
5376
|
-
}, [J, pe, Te, Ee, we, Pe,
|
|
5375
|
+
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"), Ee ? w.searchParams.delete("cc") : w.searchParams.set("cc", "off"), we ? w.searchParams.delete("audio") : w.searchParams.set("audio", "original"), Pe ? w.searchParams.delete("voices") : w.searchParams.set("voices", "stock"), Za(w, $), w.href !== window.location.href && window.history.replaceState(window.history.state, "", w);
|
|
5376
|
+
}, [J, pe, Te, Ee, we, Pe, $]), U(() => {
|
|
5377
5377
|
n && !n.allowTranslate && J && G(null);
|
|
5378
5378
|
}, [n, J]);
|
|
5379
|
-
const { model: ce, error:
|
|
5379
|
+
const { model: ce, error: W, clearError: me, setLanguage: Z, mergeTranslations: ve, translating: ze, translateFailed: Ge, shownLang: Ae } = Ro(ae, {
|
|
5380
5380
|
lang: null,
|
|
5381
5381
|
onFrame: (w) => {
|
|
5382
5382
|
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 });
|
|
5383
5383
|
}
|
|
5384
|
-
}), ge = Ie(() => po(ce).filter((w) => !w.suppressed), [ce]), Ye = Po((n == null ? void 0 : n.job) ?? null), Ve = ["done", "failed", "stopped"].includes(or((Ye == null ? void 0 : Ye.state) ?? ((Ms = n == null ? void 0 : n.job) == null ? void 0 : Ms.state))),
|
|
5384
|
+
}), ge = Ie(() => po(ce).filter((w) => !w.suppressed), [ce]), Ye = Po((n == null ? void 0 : n.job) ?? null), Ve = ["done", "failed", "stopped"].includes(or((Ye == null ? void 0 : Ye.state) ?? ((Ms = n == null ? void 0 : n.job) == null ? void 0 : Ms.state))), Q = Ve ? Ye : C ?? Ye, he = !!C && !["done", "failed", "stopped"].includes(or(C.state)), ue = k(0);
|
|
5385
5385
|
U(() => {
|
|
5386
5386
|
!Ve || !he || Date.now() - ue.current < 1e4 || (ue.current = Date.now(), t.reread());
|
|
5387
5387
|
}, [Ve, he, C == null ? void 0 : C.state, C == null ? void 0 : C.processedS, o]);
|
|
5388
|
-
const ie = or((
|
|
5388
|
+
const ie = or((Q == null ? void 0 : Q.state) ?? ((gs = n == null ? void 0 : n.job) == null ? void 0 : gs.state)), fe = !!ae && (ie === "transcribing" || ie === "queued"), Ue = u && !r && (!n || (fe || ie === "cropping") && ge.length === 0), Y = fe ? (Q == null ? void 0 : Q.pct) ?? 0 : 100, R = $o(n == null ? void 0 : n.job, Q) ?? (v == null ? void 0 : v.mediaDurationS) ?? null, q = ((fs = ce.segments.values().next().value) == null ? void 0 : fs.language) ?? (v == null ? void 0 : v.spokenLanguage) ?? null, re = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", de = ((ms = (Ns = (ps = n == null ? void 0 : n.job) == null ? void 0 : ps.source) == null ? void 0 : Ns.name) == null ? void 0 : ms.trim()) || null, Oe = n ? ((ys = n.name) == null ? void 0 : ys.trim()) || de : null, ye = !!((Ts = n == null ? void 0 : n.job) != null && Ts.hasAudio), ke = (ws = n == null ? void 0 : n.job) == null ? void 0 : ws.source, Ce = !ye && !!ke && (ke.kind !== "url" || ke.bytes != null) && (ie === "transcribing" || ie === "queued" || ie === "done"), Ze = ae && (n != null && n.allowDownload) && ye ? ba(e.origin, ae, e.cred) : ae && (n != null && n.allowDownload) && Ce ? nr(e.origin, ae, "source", e.cred) : null, $e = ge[ge.length - 1], ot = $e ? ((Ls = $e.words[$e.words.length - 1]) == null ? void 0 : Ls.end) ?? $e.start : 0, rt = u && fe ? Math.max(ot, (Q == null ? void 0 : Q.processedS) ?? 0) : null, gt = Vl(Ze, (ye || Ce) && !!(n != null && n.allowDownload), ge, R, Ce ? ((ks = (vs = n == null ? void 0 : n.job) == null ? void 0 : vs.crop) == null ? void 0 : ks.startS) ?? 0 : 0, rt), be = ((zs = (js = n == null ? void 0 : n.job) == null ? void 0 : js.source) == null ? void 0 : zs.kind) === "url" ? zi(n.job.source.url) : null, st = Bl(ge, R, ((Os = (Is = n == null ? void 0 : n.job) == null ? void 0 : Is.crop) == null ? void 0 : Os.startS) ?? 0, rt), He = !!be, it = He ? st.player : gt, lt = Li(), Ht = k(null), se = Zl({ forcedVoice: t.voice ?? null, recordingId: ae, model: ce, rows: ge, lenS: R, ended: !!ae && !fe, cred: e.cred, langs: lt, srcLang: q, canTranslate: !!(n != null && n.allowTranslate), pickedLang: ne, setPickedLang: G, side: s && !te ? Gl : void 0, hearOriginal: V, timed: !!be, stockVoices: u && !Pe, stickyPicker: u, pickerBusy: Ht.current }), Wt = k(null);
|
|
5389
5389
|
U(() => {
|
|
5390
5390
|
!ae || Wt.current === J || (Wt.current = J, Z(J));
|
|
5391
5391
|
}, [J, ae]);
|
|
@@ -5404,7 +5404,7 @@ function Qc(t) {
|
|
|
5404
5404
|
Ht.current = Ot ? J : null, U(() => {
|
|
5405
5405
|
He && se.on && Lt.sid != null && se.setNear(Lt.sid);
|
|
5406
5406
|
}, [Lt.sid, He, se.on]), $l([it, se.player], se.sampling);
|
|
5407
|
-
const Ct =
|
|
5407
|
+
const Ct = k(null);
|
|
5408
5408
|
U(() => {
|
|
5409
5409
|
fe && !x.playing && Ct.current && (Ct.current.scrollTop = Ct.current.scrollHeight);
|
|
5410
5410
|
}, [fe, ge.length]);
|
|
@@ -5421,17 +5421,17 @@ function Qc(t) {
|
|
|
5421
5421
|
}
|
|
5422
5422
|
Sr(nr(e.origin, ae, "source", e.cred)), I(`Downloading ${Je} — the full audio, since the transcript is still being written.`);
|
|
5423
5423
|
} catch (w) {
|
|
5424
|
-
throw
|
|
5424
|
+
throw g(Tt(w)), w;
|
|
5425
5425
|
}
|
|
5426
5426
|
}, bt = (w) => {
|
|
5427
5427
|
if (!ae) return;
|
|
5428
5428
|
const Ne = Tr.find((Fe) => Fe.key === w).name, Qe = vt ? ` in ${vt}` : "";
|
|
5429
5429
|
return Vo(e, ae, w, { lang: dt }).then(() => I(fe ? `${Ne} exported${Qe} for the first ${ge.length} segments — the rest is still transcribing.` : `${Ne} exported${Qe}.`)).catch((Fe) => {
|
|
5430
|
-
throw
|
|
5430
|
+
throw g(Tt(Fe)), Fe;
|
|
5431
5431
|
});
|
|
5432
|
-
}, _t = fe ? "MORE TO COME…" : "END OF TRANSCRIPT", ht = fe ? "var(--brand)" : "var(--ink-28)", Yt = Qo(
|
|
5432
|
+
}, _t = fe ? "MORE TO COME…" : "END OF TRANSCRIPT", ht = fe ? "var(--brand)" : "var(--ink-28)", Yt = Qo(Q, ge.length), Xe = x.has && (!se.relang || !!be), qe = k(x);
|
|
5433
5433
|
qe.current = x;
|
|
5434
|
-
const Ut = `${J ?? ""}|${se.on ? "voice" : "source"}`, sn =
|
|
5434
|
+
const Ut = `${J ?? ""}|${se.on ? "voice" : "source"}`, sn = k({ key: Ut, idx: 0, t: 0, playing: !1, until: 0 });
|
|
5435
5435
|
U(() => {
|
|
5436
5436
|
const w = sn.current;
|
|
5437
5437
|
if (w.key !== Ut && (w.key = Ut, w.until = Date.now() + 15e3), !He) {
|
|
@@ -5446,11 +5446,11 @@ function Qc(t) {
|
|
|
5446
5446
|
!x.has || se.relang || (w.until = 0, Math.abs(x.t - w.t) > 0.5 && (x.seekFrac && x.dur > 0 ? x.seekFrac(w.t / x.dur) : x.seekRow(w.idx)), w.playing && !x.playing && (We.current = !0, x.toggle()));
|
|
5447
5447
|
}
|
|
5448
5448
|
});
|
|
5449
|
-
const Rt =
|
|
5449
|
+
const Rt = k(!1), We = k(!1);
|
|
5450
5450
|
u && (li.video = !0);
|
|
5451
5451
|
const [xt, kt] = z(!1), [Dn, an] = z(!1);
|
|
5452
5452
|
U(() => {
|
|
5453
|
-
if (!u || Rt.current || !Xe || !
|
|
5453
|
+
if (!u || Rt.current || !Xe || !te || Ue || t.autoplay === !1) return;
|
|
5454
5454
|
Rt.current = !0;
|
|
5455
5455
|
const w = (Fe) => {
|
|
5456
5456
|
qe.current.playing || We.current || (qe.current.toggle(), Fe > 0 && setTimeout(() => w(Fe - 1), 1500));
|
|
@@ -5464,8 +5464,8 @@ function Qc(t) {
|
|
|
5464
5464
|
Qe.autoplay().then((Fe) => {
|
|
5465
5465
|
Fe === !1 ? kt(!0) : Fe == null && !We.current && Ne();
|
|
5466
5466
|
});
|
|
5467
|
-
}, [u, Xe,
|
|
5468
|
-
const jt =
|
|
5467
|
+
}, [u, Xe, te, Ue]);
|
|
5468
|
+
const jt = k(!1), Sn = () => {
|
|
5469
5469
|
xt && (kt(!1), jt.current = !0, setTimeout(() => {
|
|
5470
5470
|
jt.current = !1;
|
|
5471
5471
|
}, 500), qe.current.muted && qe.current.toggleMute());
|
|
@@ -5490,9 +5490,9 @@ function Qc(t) {
|
|
|
5490
5490
|
const w = setTimeout(() => qt(!0), 180);
|
|
5491
5491
|
return () => clearTimeout(w);
|
|
5492
5492
|
}, [ze]);
|
|
5493
|
-
const P = Zt ? Ae : J, De = rl(ae, J, ge, ve), Be = ml(yl(
|
|
5494
|
-
it.pause(), se.player.pause(), _(w), w === "read" &&
|
|
5495
|
-
}, Re = se.barChip, Pt = ki(Re.label), Yr = /* @__PURE__ */ i(hr, { value:
|
|
5493
|
+
const P = Zt ? Ae : J, De = rl(ae, J, ge, ve), Be = ml(yl(v), ae, se.readLang), zt = ut || Ft, Kt = (((xs = (bs = n == null ? void 0 : n.job) == null ? void 0 : bs.crop) == null ? void 0 : xs.startS) ?? 0) + cr(x, ge), _n = B === "listen", Dt = _n && (!!be || u), Qi = (w) => {
|
|
5494
|
+
it.pause(), se.player.pause(), _(w), w === "read" && te && (Xt(!1), K(!1));
|
|
5495
|
+
}, Re = se.barChip, Pt = ki(Re.label), Yr = /* @__PURE__ */ i(hr, { value: B, onChange: Qi, bordered: !1, options: dc(Pt, !!be) }), Qt = [...Gt ? [{ key: "summary", label: "Summary" }] : [], ...zt ? [{ key: "export", label: "Export" }] : []], Ur = (w) => /* @__PURE__ */ h(xe, { children: [
|
|
5496
5496
|
w === "summary" && Gt && /* @__PURE__ */ i(Tl, { s: Be }),
|
|
5497
5497
|
w === "export" && /* @__PURE__ */ i(Nl, { audio: ut ? { name: Je, meta: dt && se.canSpeak || ye ? `MP3${R ? ` · ${yt(R)}` : ""}` : "ORIGINAL AUDIO", onClick: rn } : null, formats: Ft, onExport: bt })
|
|
5498
5498
|
] }), $i = (w) => /* @__PURE__ */ i(Xo, { index: x.idx, total: Math.max(1, ge.length), frac: x.dur > 0 ? Math.min(1, x.t / x.dur) : 0, glideMs: x.wordSync ? 0 : 220, atLabel: yt(x.t), durLabel: yt(x.dur), stepLabel: w ? `${x.idx + 1} / ${ge.length}` : "", onSeek: se.relang ? Wl : x.seekRow, onSeekFrac: se.relang ? void 0 : x.seekFrac, onScrubStart: x.hold, onScrubEnd: x.release }), Rr = {
|
|
@@ -5508,12 +5508,12 @@ function Qc(t) {
|
|
|
5508
5508
|
var Ne;
|
|
5509
5509
|
se.relang || (Ne = x.seekFrac) == null || Ne.call(x, w);
|
|
5510
5510
|
}
|
|
5511
|
-
}, [Bi, Vi] = Mc(se.on && !!x.preparing && x.playing, 1500), Yn = se.on && ((Ds = x.error) == null ? void 0 : Ds.code) === "voice_not_started", Un = se.canSpeak && !se.error && !Yn, ln = J ? ((Ss = lt == null ? void 0 : lt.languages.find((w) => w.code === J)) == null ? void 0 : Ss.name) ?? Re.label : "", tt =
|
|
5511
|
+
}, [Bi, Vi] = Mc(se.on && !!x.preparing && x.playing, 1500), Yn = se.on && ((Ds = x.error) == null ? void 0 : Ds.code) === "voice_not_started", Un = se.canSpeak && !se.error && !Yn, ln = J ? ((Ss = lt == null ? void 0 : lt.languages.find((w) => w.code === J)) == null ? void 0 : Ss.name) ?? Re.label : "", tt = te ? hc({ lang: J, langName: ln, translating: ze && !!J, translateFailed: Ge, voiceFailed: Yn, relang: se.relang, starting: se.on ? x.starting : null, slowLine: Bi, lineSince: Vi }) : null, Rn = !!be && !!tt && (tt.kind === "translating" || tt.kind === "voice" && se.relang), Pr = !Rn || !tt ? null : tt.kind === "translating" ? `Translating into ${ln || "the new language"}…` : `Preparing the ${ln || "translated"} voice…`, cn = !Rn && ((tt == null ? void 0 : tt.kind) === "voice" || (tt == null ? void 0 : tt.kind) === "starting"), Qr = Or({ ...se.langList, keepOpen: !0, open: T === "lang", onClose: () => O("main") }), $r = Fa($, se.on), Hi = u && $r.bed && ut && ae && (!fe || Ze) ? _s(e.origin, ae, e.cred) : null, Br = no(Hi, { t: cr(x, ge), playing: x.playing && !cn && !(x.timed && x.preparing), muted: x.muted }), Wi = u && $r.speech && ut && ae && (!fe || Ze) ? _s(e.origin, ae, e.cred, "speech") : null, Pn = pi(Wi, { t: cr(x, ge), playing: !se.on && x.playing, muted: x.muted }), Qn = !se.on && Pn.on;
|
|
5512
5512
|
U(() => {
|
|
5513
5513
|
var w;
|
|
5514
5514
|
st.setVideoSound(!(He && (se.on || Qn))), (w = gt.silence) == null || w.call(gt, !He && Qn);
|
|
5515
5515
|
}, [He, se.on, Qn, Ze]);
|
|
5516
|
-
const $n = ut ? se.on ? Br : Pn.state : "unavailable", Bn = we && Un && !!J, Fi = Bn ? [`Translated${se.hasClone ? Pe ? ", cloned voices" : ", synthetic voices" : ""}`,
|
|
5516
|
+
const $n = ut ? se.on ? Br : Pn.state : "unavailable", Bn = we && Un && !!J, Fi = Bn ? [`Translated${se.hasClone ? Pe ? ", cloned voices" : ", synthetic voices" : ""}`, !$ && ut && Br !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : $ && $n !== "unavailable" ? "Original speech, background removed" : "Original sound", Gi = () => {
|
|
5517
5517
|
if ((tt == null ? void 0 : tt.kind) === "translateFailed") {
|
|
5518
5518
|
Z(J);
|
|
5519
5519
|
return;
|
|
@@ -5547,26 +5547,26 @@ function Qc(t) {
|
|
|
5547
5547
|
/* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${be}/hqdefault.jpg)` } }),
|
|
5548
5548
|
/* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(jr, { size: 44 }) })
|
|
5549
5549
|
] })
|
|
5550
|
-
] }) : u ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }) : null, Fr = Dt && be && !
|
|
5550
|
+
] }) : u ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" }) : null, Fr = Dt && be && !te ? /* @__PURE__ */ i(wl, { ytId: be, title: Je, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: Wr, children: /* @__PURE__ */ i(oc, { pos: Rr, transport: Vr, chip: Hn({ ...Vn, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: Hr, onFull: () => {
|
|
5551
5551
|
Xt(!0), K(!0);
|
|
5552
5552
|
}, copied: null }) }) : null, et = x.wordSync ? Go(ge, x.idx, x.t) ? ge[x.idx] : void 0 : ge[x.idx];
|
|
5553
|
-
for (const w of ge) for (const [Ne, Qe] of Object.entries(w.translations)) Qe &&
|
|
5554
|
-
const Gr = (w, Ne) => w.translations[Ne] ||
|
|
5555
|
-
et && Wn(et, mt) && (
|
|
5556
|
-
const Zr = et && mt && et.language !== mt ? Gr(et, mt) : null, Ji = et && Zr && mt && !et.translations[mt] ? Object.assign([...ge], { [x.idx]: { ...et, translations: { ...et.translations, [mt]: Zr } } }) : ge, un = et ? xi(Ji, x.idx, mt) : [], dn = Te ? Te === "on" : !u || se.on || !P || P === q, qr = dn ? Zs(x, x.idx, un) : null, Kr = un.map((w, Ne) => ({ t: w.text, sp: Ne < un.length - 1 ? " " : "", dim: qr != null && Ne > qr })), hn = pe ? pe === "on" : u ? !1 : zo(ce, ge,
|
|
5553
|
+
for (const w of ge) for (const [Ne, Qe] of Object.entries(w.translations)) Qe && S.current.set(`${w.sentenceId ?? w.start}|${Ne}`, Qe);
|
|
5554
|
+
const Gr = (w, Ne) => w.translations[Ne] || S.current.get(`${w.sentenceId ?? w.start}|${Ne}`) || null, Wn = (w, Ne) => !w || !Ne || w.language === Ne || !!Gr(w, Ne), mt = Wn(et, J) ? J : Wn(et, F.current) ? F.current : J;
|
|
5555
|
+
et && Wn(et, mt) && (F.current = mt);
|
|
5556
|
+
const Zr = et && mt && et.language !== mt ? Gr(et, mt) : null, Ji = et && Zr && mt && !et.translations[mt] ? Object.assign([...ge], { [x.idx]: { ...et, translations: { ...et.translations, [mt]: Zr } } }) : ge, un = et ? xi(Ji, x.idx, mt) : [], dn = Te ? Te === "on" : !u || se.on || !P || P === q, qr = dn ? Zs(x, x.idx, un) : null, Kr = un.map((w, Ne) => ({ t: w.text, sp: Ne < un.length - 1 ? " " : "", dim: qr != null && Ne > qr })), hn = pe ? pe === "on" : u ? !1 : zo(ce, ge, v == null ? void 0 : v.settings), Jr = { lang: J, subtitles: Ee, speakerLabels: hn, wordHighlight: dn, translateAudio: we, voices: Pe ? "cloned" : "synthetic", removeBackground: $ }, Xi = JSON.stringify(Jr), Mn = k(t.onSettingsChange);
|
|
5557
5557
|
Mn.current = t.onSettingsChange, U(() => {
|
|
5558
5558
|
var w;
|
|
5559
5559
|
(w = Mn.current) == null || w.call(Mn, Jr);
|
|
5560
5560
|
}, [Xi]);
|
|
5561
|
-
const gn = et && et.speaker >= 0 && hn ? xr(ce, et.speaker) : null, [ea, Xr] = z(!1), [Fn, es] = z(null), [ta, ts] = z(null), Gn =
|
|
5561
|
+
const gn = et && et.speaker >= 0 && hn ? xr(ce, et.speaker) : null, [ea, Xr] = z(!1), [Fn, es] = z(null), [ta, ts] = z(null), Gn = k(void 0);
|
|
5562
5562
|
U(() => () => window.clearTimeout(Gn.current), []);
|
|
5563
|
-
const Zn =
|
|
5563
|
+
const Zn = k(void 0);
|
|
5564
5564
|
U(() => () => window.clearTimeout(Zn.current), []);
|
|
5565
5565
|
const ns = (w) => {
|
|
5566
5566
|
if (t.shareUrl) return t.shareUrl(w);
|
|
5567
5567
|
const Ne = new URL(window.location.href);
|
|
5568
5568
|
return w != null && w > 0 ? Ne.searchParams.set("t", String(w)) : Ne.searchParams.delete("t"), Ne.href;
|
|
5569
|
-
}, fn =
|
|
5569
|
+
}, fn = k(l.startAt), qn = (w) => {
|
|
5570
5570
|
if (x.seekFrac && x.dur > 0) {
|
|
5571
5571
|
x.seekFrac(Math.min(1, w / x.dur));
|
|
5572
5572
|
return;
|
|
@@ -5574,7 +5574,7 @@ function Qc(t) {
|
|
|
5574
5574
|
let Ne = 0;
|
|
5575
5575
|
for (let Qe = 0; Qe < ge.length; Qe++) ge[Qe].start <= w && (Ne = Qe);
|
|
5576
5576
|
x.seekRow(Ne);
|
|
5577
|
-
}, rs =
|
|
5577
|
+
}, rs = k(!1);
|
|
5578
5578
|
U(() => {
|
|
5579
5579
|
const w = fn.current;
|
|
5580
5580
|
w == null || rs.current || !x.has || ge.length === 0 || (rs.current = !0, qn(w));
|
|
@@ -5602,9 +5602,9 @@ function Qc(t) {
|
|
|
5602
5602
|
}, U(() => () => {
|
|
5603
5603
|
t.handle.current = null;
|
|
5604
5604
|
}, []);
|
|
5605
|
-
const ss =
|
|
5605
|
+
const ss = k(t.onPlayback);
|
|
5606
5606
|
ss.current = t.onPlayback;
|
|
5607
|
-
const is =
|
|
5607
|
+
const is = k(J);
|
|
5608
5608
|
is.current = J, U(() => {
|
|
5609
5609
|
let w = "";
|
|
5610
5610
|
const Ne = () => {
|
|
@@ -5632,15 +5632,15 @@ function Qc(t) {
|
|
|
5632
5632
|
/* @__PURE__ */ i("div", { className: "srow__t", children: Ne }),
|
|
5633
5633
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Qe })
|
|
5634
5634
|
] }),
|
|
5635
|
-
/* @__PURE__ */ i(oe, { d: Mt ?
|
|
5635
|
+
/* @__PURE__ */ i(oe, { d: Mt ? ee.check : ee.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: Mt ? "var(--brand)" : "var(--ink-62)" } })
|
|
5636
5636
|
] });
|
|
5637
5637
|
}, sa = /* @__PURE__ */ h("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
5638
5638
|
" ",
|
|
5639
|
-
/* @__PURE__ */ h("button", { type: "button", onClick: () =>
|
|
5640
|
-
/* @__PURE__ */ i(oe, { d:
|
|
5639
|
+
/* @__PURE__ */ h("button", { type: "button", onClick: () => O("main"), "aria-label": "Back", style: { position: "absolute", left: -6, top: "50%", transform: "translateY(-50%)", display: "inline-flex", alignItems: "center", gap: 2, padding: "4px 6px 4px 0", border: 0, background: "none", color: "var(--ink-96)", fontFamily: "var(--vs-font-sans)", fontSize: 15, fontWeight: 600, letterSpacing: 0, lineHeight: 1, whiteSpace: "nowrap", cursor: "pointer" }, children: [
|
|
5640
|
+
/* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: 18, sw: 1.8 }),
|
|
5641
5641
|
"Back"
|
|
5642
5642
|
] })
|
|
5643
|
-
] }), pn = /* @__PURE__ */ i(oe, { d:
|
|
5643
|
+
] }), pn = /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), ia = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[T], Nn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, Kn = u ? /* @__PURE__ */ i(Vt, { open: X, onClose: () => j(!1), title: ia, titleNode: T === "main" ? void 0 : sa, doneLabel: Pt.done, kind: T === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(Mr, { children: T === "lang" ? /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
5644
5644
|
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: Qr.search }),
|
|
5645
5645
|
Qr.list
|
|
5646
5646
|
] }) : T === "subs" ? /* @__PURE__ */ h("div", { style: Nn, children: [
|
|
@@ -5683,15 +5683,15 @@ function Qc(t) {
|
|
|
5683
5683
|
/* @__PURE__ */ h("div", { className: "srow", children: [
|
|
5684
5684
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5685
5685
|
/* @__PURE__ */ i("div", { className: "srow__t", children: In }),
|
|
5686
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children: Wa(
|
|
5686
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: Wa($, $n, "video", se.on ? 0 : Pn.untilS) })
|
|
5687
5687
|
] }),
|
|
5688
|
-
/* @__PURE__ */ i(Nt, { checked:
|
|
5688
|
+
/* @__PURE__ */ i(Nt, { checked: $ && ut, onChange: H, label: In, disabled: !ut || $n === "unavailable" && !$ })
|
|
5689
5689
|
] })
|
|
5690
5690
|
] }) : T === "export" ? /* @__PURE__ */ h("div", { style: Nn, children: [
|
|
5691
5691
|
as("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
|
|
5692
5692
|
as("pdf", "PDF", "Formatted transcript in paragraphs, with timestamps and speaker labels")
|
|
5693
5693
|
] }) : /* @__PURE__ */ i("div", { style: Nn, children: [
|
|
5694
|
-
Re.can && b.language && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () =>
|
|
5694
|
+
Re.can && b.language && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => O("lang"), children: [
|
|
5695
5695
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5696
5696
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Language" }),
|
|
5697
5697
|
/* @__PURE__ */ i("div", { className: "srow__s", children: J ? `Translated to ${Re.label ?? J.toUpperCase()}` : "Original language" })
|
|
@@ -5699,21 +5699,21 @@ function Qc(t) {
|
|
|
5699
5699
|
/* @__PURE__ */ i("span", { style: { fontSize: 18, lineHeight: 1 }, children: Re.flag }),
|
|
5700
5700
|
pn
|
|
5701
5701
|
] }, "lang"),
|
|
5702
|
-
b.subtitles && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () =>
|
|
5702
|
+
b.subtitles && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => O("subs"), children: [
|
|
5703
5703
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5704
5704
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Subtitles" }),
|
|
5705
5705
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Ee ? "On · speaker labels and word highlighting" : "Off" })
|
|
5706
5706
|
] }),
|
|
5707
5707
|
pn
|
|
5708
5708
|
] }, "subs"),
|
|
5709
|
-
b.audio && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () =>
|
|
5709
|
+
b.audio && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => O("audio"), children: [
|
|
5710
5710
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5711
5711
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Audio" }),
|
|
5712
5712
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Fi })
|
|
5713
5713
|
] }),
|
|
5714
5714
|
pn
|
|
5715
5715
|
] }, "audio"),
|
|
5716
|
-
b.export && Ft && !!ae && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () =>
|
|
5716
|
+
b.export && Ft && !!ae && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => O("export"), children: [
|
|
5717
5717
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5718
5718
|
/* @__PURE__ */ h("div", { className: "srow__t", children: [
|
|
5719
5719
|
"Export",
|
|
@@ -5723,7 +5723,7 @@ function Qc(t) {
|
|
|
5723
5723
|
] }),
|
|
5724
5724
|
pn
|
|
5725
5725
|
] }, "export")
|
|
5726
|
-
].filter(Boolean).flatMap((w, Ne) => Ne ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${Ne}`), w] : [w]) }) }) }) : /* @__PURE__ */ i(Vt, { open:
|
|
5726
|
+
].filter(Boolean).flatMap((w, Ne) => Ne ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${Ne}`), w] : [w]) }) }) }) : /* @__PURE__ */ i(Vt, { open: X, onClose: () => j(!1), title: Pt.settings, doneLabel: Pt.done, drawer: s, children: /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
5727
5727
|
Re.can && /* @__PURE__ */ h(xe, { children: [
|
|
5728
5728
|
/* @__PURE__ */ h("div", { className: "srow srow--tap", onClick: () => {
|
|
5729
5729
|
j(!1), Re.onClick();
|
|
@@ -5734,12 +5734,12 @@ function Qc(t) {
|
|
|
5734
5734
|
] }),
|
|
5735
5735
|
/* @__PURE__ */ i("span", { style: { fontSize: 18, lineHeight: 1 }, children: Re.flag }),
|
|
5736
5736
|
se.original ? null : /* @__PURE__ */ i("span", { style: { fontSize: 14, fontWeight: 600, color: "var(--ink-96)" }, children: Re.label }),
|
|
5737
|
-
/* @__PURE__ */ i(oe, { d:
|
|
5737
|
+
/* @__PURE__ */ i(oe, { d: ee.chevronRight, size: 15, style: { color: "var(--ink-45)" } })
|
|
5738
5738
|
] }),
|
|
5739
5739
|
/* @__PURE__ */ i("div", { className: "sdiv" })
|
|
5740
5740
|
] }),
|
|
5741
5741
|
t.settingsExtra
|
|
5742
|
-
] }) }), It =
|
|
5742
|
+
] }) }), It = te && Dt && (!!be || u) && /* @__PURE__ */ i(
|
|
5743
5743
|
Ei,
|
|
5744
5744
|
{
|
|
5745
5745
|
page: (t.layout ?? "embed") === "page",
|
|
@@ -5760,7 +5760,7 @@ function Qc(t) {
|
|
|
5760
5760
|
sheet: u ? Kn : null,
|
|
5761
5761
|
voices: null,
|
|
5762
5762
|
voicesBtn: u ? null : Hr,
|
|
5763
|
-
sheetOpen: se.sheetsOpen ||
|
|
5763
|
+
sheetOpen: se.sheetsOpen || X,
|
|
5764
5764
|
onShare: u && b.share ? ra : void 0,
|
|
5765
5765
|
onSettings: u && b.settings ? () => {
|
|
5766
5766
|
se.closePicker(), j((w) => !w);
|
|
@@ -5768,10 +5768,10 @@ function Qc(t) {
|
|
|
5768
5768
|
compact: !!t.compact,
|
|
5769
5769
|
paused: { title: Je, summary: Be.state === "ready" ? Be.summary ?? null : null, share: b.share && (t.shareUrl || !t.onShare) ? { url: ns, at: x.t } : null },
|
|
5770
5770
|
copied: ea ? /* @__PURE__ */ h("div", { className: "gfull__toast", "aria-live": "polite", children: [
|
|
5771
|
-
/* @__PURE__ */ i(oe, { d:
|
|
5771
|
+
/* @__PURE__ */ i(oe, { d: ee.check, size: 13, sw: 2 }),
|
|
5772
5772
|
"Link copied"
|
|
5773
5773
|
] }) : xt ? /* @__PURE__ */ h("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
|
|
5774
|
-
/* @__PURE__ */ i(oe, { d:
|
|
5774
|
+
/* @__PURE__ */ i(oe, { d: ee.volumeOff, size: 14, sw: 1.8 }),
|
|
5775
5775
|
"Tap for sound"
|
|
5776
5776
|
] }) : Pr ? /* @__PURE__ */ h("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5777
5777
|
/* @__PURE__ */ i(at, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
@@ -5789,8 +5789,8 @@ function Qc(t) {
|
|
|
5789
5789
|
}
|
|
5790
5790
|
);
|
|
5791
5791
|
U(() => {
|
|
5792
|
-
!u &&
|
|
5793
|
-
}, [u,
|
|
5792
|
+
!u && te && !Dt && (Xt(!1), K(!1));
|
|
5793
|
+
}, [u, te, Dt]);
|
|
5794
5794
|
const os = fe && /* @__PURE__ */ h("div", { className: `pubprog${s ? " pubprog--desk" : ""}${p ? " pubprog--find" : ""}`, children: [
|
|
5795
5795
|
/* @__PURE__ */ h("div", { className: "pubprog__row", children: [
|
|
5796
5796
|
/* @__PURE__ */ i("span", { className: "l", children: `TRANSCRIBING ${Y}%` }),
|
|
@@ -5799,20 +5799,20 @@ function Qc(t) {
|
|
|
5799
5799
|
/* @__PURE__ */ i("span", { className: "s", children: Yt })
|
|
5800
5800
|
] }),
|
|
5801
5801
|
!s && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ i("div", { style: { width: `${Y}%` } }) })
|
|
5802
|
-
] }), Jn = 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." }), ls = /* @__PURE__ */ i(ql, { model: ce, rows: ge, player: x, tail: _t, tailFg: ht, running: fe, desk: s, feedRef: Ct, listener: !0, showLabels: hn, find: L, findOpen: !s && p, lang: P, warm: Zt, onVisible: De, wordHl: dn }), Xn = /* @__PURE__ */ i(Jo, { error: d ??
|
|
5803
|
-
|
|
5804
|
-
} }), cs = [R ? yt(R) : null, q ? q.toUpperCase() : null,
|
|
5802
|
+
] }), Jn = 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." }), ls = /* @__PURE__ */ i(ql, { model: ce, rows: ge, player: x, tail: _t, tailFg: ht, running: fe, desk: s, feedRef: Ct, listener: !0, showLabels: hn, find: L, findOpen: !s && p, lang: P, warm: Zt, onVisible: De, wordHl: dn }), Xn = /* @__PURE__ */ i(Jo, { error: d ?? W ?? (Yn && te ? null : x.error) ?? se.error, onClose: () => {
|
|
5803
|
+
g(null), me(), x.clearError(), se.clearError();
|
|
5804
|
+
} }), cs = [R ? yt(R) : null, q ? q.toUpperCase() : null, re || "Read-only copy"].filter(Boolean).join(" · "), us = (w) => /* @__PURE__ */ i("div", { className: "ctrans", children: se.noVoice ? se.noVoiceNote : /* @__PURE__ */ h(xe, { children: [
|
|
5805
5805
|
/* @__PURE__ */ h("div", { className: "ctrans__row", children: [
|
|
5806
5806
|
/* @__PURE__ */ i("span", { className: "ctrans__sp", "aria-hidden": "true" }),
|
|
5807
5807
|
/* @__PURE__ */ h("div", { className: "ctrans__mid", children: [
|
|
5808
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: x.idx <= 0 ? 0.3 : 1 }, onClick: x.prev, children: /* @__PURE__ */ i(oe, { d:
|
|
5808
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: x.idx <= 0 ? 0.3 : 1 }, onClick: x.prev, children: /* @__PURE__ */ i(oe, { d: ee.chevronLeft, size: 16, sw: 1.8 }) }),
|
|
5809
5809
|
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": se.relang ? "Preparing audio" : x.playing ? "Pause" : "Play", title: se.relang ? "Preparing audio…" : se.playTitle ?? (x.playing ? "Pause" : "Play"), disabled: !Xe, onClick: x.toggle, children: se.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: x.playing ? void 0 : { marginLeft: 2 }, children: x.playing ? El : _l }) }),
|
|
5810
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: x.idx >= ge.length - 1 ? 0.3 : 1 }, onClick: x.next, children: /* @__PURE__ */ i(oe, { d:
|
|
5810
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: x.idx >= ge.length - 1 ? 0.3 : 1 }, onClick: x.next, children: /* @__PURE__ */ i(oe, { d: ee.chevronRight, size: 16, sw: 1.8 }) })
|
|
5811
5811
|
] }),
|
|
5812
5812
|
/* @__PURE__ */ i("span", { className: "ctrans__mute", children: on(36) })
|
|
5813
5813
|
] }),
|
|
5814
5814
|
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children: $i(w) })
|
|
5815
|
-
] }) }), aa = kl("ga", { tabs: Qt, cur:
|
|
5815
|
+
] }) }), aa = kl("ga", { tabs: Qt, cur: M, pref: (As = Qt[0]) == null ? void 0 : As.key, onPick: N }), ds = Math.max(0, Math.min(100, Math.round(Y))), oa = Ue && /* @__PURE__ */ h("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
|
|
5816
5816
|
be && /* @__PURE__ */ i("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${be}/hqdefault.jpg)` } }),
|
|
5817
5817
|
/* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ h(xe, { children: [
|
|
5818
5818
|
Je && /* @__PURE__ */ i("div", { className: "gfull__holdt", children: Je }),
|
|
@@ -5820,11 +5820,11 @@ function Qc(t) {
|
|
|
5820
5820
|
/* @__PURE__ */ i("div", { className: "gfull__holdbar", children: /* @__PURE__ */ i("div", { style: { width: `${ie === "transcribing" ? ds : 0}%` } }) }),
|
|
5821
5821
|
/* @__PURE__ */ h("div", { className: "gfull__holds", children: [
|
|
5822
5822
|
ie === "transcribing" ? "Transcribing" : ie === "cropping" ? "Preparing the video" : "Waiting to start",
|
|
5823
|
-
ie === "transcribing" && (
|
|
5823
|
+
ie === "transcribing" && (Q != null && Q.segmentsDone) ? ` · ${Yt.toLowerCase()}` : ""
|
|
5824
5824
|
] }),
|
|
5825
5825
|
/* @__PURE__ */ i("div", { className: "gfull__holdn", children: "The video starts as soon as the first lines are transcribed." })
|
|
5826
5826
|
] }) : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
|
|
5827
|
-
] }), hs = u && n && (fe || ie === "cropping") ? Math.max(0, Math.min(100, Math.round(Y))) : null, mn =
|
|
5827
|
+
] }), hs = u && n && (fe || ie === "cropping") ? Math.max(0, Math.min(100, Math.round(Y))) : null, mn = k(t.onProgress);
|
|
5828
5828
|
mn.current = t.onProgress, U(() => {
|
|
5829
5829
|
var w;
|
|
5830
5830
|
(w = mn.current) == null || w.call(mn, hs);
|
|
@@ -5880,11 +5880,11 @@ function Qc(t) {
|
|
|
5880
5880
|
] });
|
|
5881
5881
|
}
|
|
5882
5882
|
const ua = Qt.length > 0 && !p && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ h(Es, { panel: !0, children: [
|
|
5883
|
-
/* @__PURE__ */ i(Ci, { tabs: Qt, current:
|
|
5884
|
-
|
|
5883
|
+
/* @__PURE__ */ i(Ci, { tabs: Qt, current: M, onPick: N, gap: M !== "none" }),
|
|
5884
|
+
M !== "none" && Ur(M)
|
|
5885
5885
|
] }) });
|
|
5886
5886
|
return /* @__PURE__ */ h(xe, { children: [
|
|
5887
|
-
/* @__PURE__ */ i(cc, { dark: a, title: n ? Je : "", subline: n ? cs : "", onOptions: () => j(!0), optionsActive:
|
|
5887
|
+
/* @__PURE__ */ i(cc, { dark: a, title: n ? Je : "", subline: n ? cs : "", onOptions: () => j(!0), optionsActive: X }),
|
|
5888
5888
|
Jn,
|
|
5889
5889
|
os,
|
|
5890
5890
|
!r && ua,
|