@vocalstack/player 0.1.0-alpha.11 → 0.1.0-alpha.12
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 +616 -609
- package/dist/index.js.map +1 -1
- package/dist/ui/VocalStackPlayer.d.ts +2 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var Ma = Object.defineProperty;
|
|
2
|
-
var
|
|
3
|
-
var
|
|
2
|
+
var ga = (t, e, n) => e in t ? Ma(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
|
+
var he = (t, e, n) => ga(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
4
|
import { jsx as i, jsxs as f, Fragment as Pe } from "react/jsx-runtime";
|
|
5
|
-
import { useState as O, useRef as z, useEffect as Y, useLayoutEffect as Qt, createContext as ei, useMemo as Ie, useContext as
|
|
5
|
+
import { useState as O, useRef as z, useEffect as Y, useLayoutEffect as Qt, createContext as ei, useMemo as Ie, useContext as ha, useCallback as qe, Fragment as fa, forwardRef as Na, useImperativeHandle as pa } from "react";
|
|
6
6
|
import { createPortal as ma } from "react-dom";
|
|
7
7
|
import { VocalStackError as ti, VocalStack as ni } from "@vocalstack/js-sdk";
|
|
8
8
|
const si = "https://vocalstack.com", ya = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Ta = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", wa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", La = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
@@ -96,7 +96,7 @@ function ii({ dark: t, size: e = 30 }) {
|
|
|
96
96
|
function Sr({ children: t, panel: e, inset: n, className: s = "", style: r }) {
|
|
97
97
|
return /* @__PURE__ */ i("div", { className: `vs-card${e ? " panel" : ""}${n ? " vs-card--inset" : ""} ${s}`, style: r, children: t });
|
|
98
98
|
}
|
|
99
|
-
function
|
|
99
|
+
function Nt({ checked: t, onChange: e, label: n, disabled: s }) {
|
|
100
100
|
return /* @__PURE__ */ i("button", { type: "button", role: "switch", "aria-checked": t, "aria-label": n, className: "vs-toggle", disabled: s, onClick: () => e(!t), children: /* @__PURE__ */ i("span", { className: "vs-toggle__knob" }) });
|
|
101
101
|
}
|
|
102
102
|
function as({ value: t, onChange: e, options: n, size: s, bordered: r = !0, fill: a }) {
|
|
@@ -104,16 +104,16 @@ function as({ value: t, onChange: e, options: n, size: s, bordered: r = !0, fill
|
|
|
104
104
|
return Qt(() => {
|
|
105
105
|
const u = o.current;
|
|
106
106
|
if (!u) return;
|
|
107
|
-
const
|
|
108
|
-
|
|
107
|
+
const h = u.querySelectorAll(".vs-switch__opt")[d];
|
|
108
|
+
h && c({ left: h.offsetLeft, width: h.offsetWidth });
|
|
109
109
|
}, [d, n.length]), Y(() => {
|
|
110
110
|
const u = o.current;
|
|
111
111
|
if (!u || typeof ResizeObserver > "u") return;
|
|
112
|
-
const
|
|
112
|
+
const h = new ResizeObserver(() => {
|
|
113
113
|
const M = u.querySelectorAll(".vs-switch__opt")[d];
|
|
114
114
|
M && c({ left: M.offsetLeft, width: M.offsetWidth });
|
|
115
115
|
});
|
|
116
|
-
return
|
|
116
|
+
return h.observe(u), () => h.disconnect();
|
|
117
117
|
}, [d]), /* @__PURE__ */ f("div", { ref: o, role: "tablist", className: `vs-switch${s === "sm" ? " vs-switch--sm" : ""}${r ? "" : " 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((u) => /* @__PURE__ */ f("button", { type: "button", role: "tab", "aria-selected": u.value === t, className: "vs-switch__opt", onClick: () => e(u.value), children: [
|
|
@@ -189,21 +189,21 @@ function os({ children: t, ms: e = 220 }) {
|
|
|
189
189
|
clearTimeout(c), a(Math.min(M, d())), M > d() && (c = setTimeout(() => a(M), e));
|
|
190
190
|
};
|
|
191
191
|
if (u(), typeof ResizeObserver > "u") return () => clearTimeout(c);
|
|
192
|
-
const
|
|
193
|
-
return
|
|
194
|
-
|
|
192
|
+
const h = new ResizeObserver(u);
|
|
193
|
+
return h.observe(o), () => {
|
|
194
|
+
h.disconnect(), clearTimeout(c);
|
|
195
195
|
};
|
|
196
196
|
}, [e]), /* @__PURE__ */ i("div", { ref: n, style: { height: r ?? void 0, overflow: "clip", transition: r == null ? void 0 : `height ${e}ms cubic-bezier(.32,.72,0,1)` }, children: /* @__PURE__ */ i("div", { ref: s, children: t }) });
|
|
197
197
|
}
|
|
198
198
|
function $t({ open: t, onClose: e, title: n, titleNode: s, note: r, doneLabel: a = "Done", children: o, drawer: l = !1, header: c, kind: d, sticky: u = !1 }) {
|
|
199
|
-
const
|
|
200
|
-
return Oa(
|
|
199
|
+
const h = z(null);
|
|
200
|
+
return Oa(h, t), Y(() => {
|
|
201
201
|
if (!t) return;
|
|
202
202
|
const M = (N) => {
|
|
203
203
|
N.key === "Escape" && e();
|
|
204
204
|
};
|
|
205
205
|
return window.addEventListener("keydown", M), () => window.removeEventListener("keydown", M);
|
|
206
|
-
}, [t, e]), t ? /* @__PURE__ */ i("div", { ref:
|
|
206
|
+
}, [t, e]), t ? /* @__PURE__ */ i("div", { ref: h, className: `vs-sheet-scrim${l ? " drawer" : ""}${u ? " vs-sheet-scrim--sticky" : ""}`, onClick: u ? void 0 : e, children: /* @__PURE__ */ f("div", { className: `vs-sheet${d ? ` vs-sheet--${d}` : ""}`, role: "dialog", "aria-modal": "true", "aria-label": n, onClick: (M) => M.stopPropagation(), children: [
|
|
207
207
|
/* @__PURE__ */ i("div", { className: "vs-sheet__grip" }),
|
|
208
208
|
/* @__PURE__ */ f("div", { className: "vs-sheet__head", children: [
|
|
209
209
|
s ?? /* @__PURE__ */ i("span", { className: "vs-sheet__title", children: n }),
|
|
@@ -288,17 +288,17 @@ function Ya(t, e, n) {
|
|
|
288
288
|
}
|
|
289
289
|
class _a {
|
|
290
290
|
constructor(e = {}) {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
291
|
+
he(this, "entries", /* @__PURE__ */ new Map());
|
|
292
|
+
he(this, "wanted", []);
|
|
293
|
+
he(this, "used", []);
|
|
294
|
+
he(this, "fetcher");
|
|
295
|
+
he(this, "concurrency");
|
|
296
|
+
he(this, "keep");
|
|
297
|
+
he(this, "retryMs");
|
|
298
|
+
he(this, "now");
|
|
299
|
+
he(this, "toUrl");
|
|
300
|
+
he(this, "revoke");
|
|
301
|
+
he(this, "onReady", () => {
|
|
302
302
|
});
|
|
303
303
|
this.fetcher = e.fetcher ?? (typeof fetch == "function" ? (n, s) => fetch(n, { signal: s }) : null), this.concurrency = Math.max(1, e.concurrency ?? 2), this.keep = Math.max(2, e.keep ?? 24), this.retryMs = e.retryMs ?? 4e3, this.now = e.now ?? (() => Date.now()), this.toUrl = e.toUrl ?? ((n) => URL.createObjectURL(n)), this.revoke = e.revoke ?? ((n) => {
|
|
304
304
|
try {
|
|
@@ -392,50 +392,50 @@ class ui extends Error {
|
|
|
392
392
|
}
|
|
393
393
|
const nt = class nt {
|
|
394
394
|
constructor() {
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
395
|
+
he(this, "el", null);
|
|
396
|
+
he(this, "clips", /* @__PURE__ */ new Map());
|
|
397
|
+
he(this, "order", []);
|
|
398
|
+
he(this, "current", null);
|
|
399
|
+
he(this, "currentPart", 0);
|
|
400
|
+
he(this, "partBase", 0);
|
|
401
|
+
he(this, "within", null);
|
|
402
|
+
he(this, "playing", !1);
|
|
403
|
+
he(this, "muted", !1);
|
|
404
|
+
he(this, "rate", 1);
|
|
405
|
+
he(this, "volume", 1);
|
|
406
|
+
he(this, "finite", !1);
|
|
407
|
+
he(this, "onSentence", () => {
|
|
408
408
|
});
|
|
409
|
-
|
|
409
|
+
he(this, "onWaiting", () => {
|
|
410
410
|
});
|
|
411
|
-
|
|
411
|
+
he(this, "onStarting", () => {
|
|
412
412
|
});
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
413
|
+
he(this, "speakable", () => !0);
|
|
414
|
+
he(this, "coming", () => !1);
|
|
415
|
+
he(this, "gapBefore", () => 0);
|
|
416
|
+
he(this, "flow", !1);
|
|
417
|
+
he(this, "silentSpan", () => null);
|
|
418
|
+
he(this, "lastDone", null);
|
|
419
|
+
he(this, "rested", !1);
|
|
420
|
+
he(this, "rest", null);
|
|
421
|
+
he(this, "sequence", []);
|
|
422
|
+
he(this, "seqAt", /* @__PURE__ */ new Map());
|
|
423
|
+
he(this, "spoken", /* @__PURE__ */ new Set());
|
|
424
|
+
he(this, "lastRead", null);
|
|
425
|
+
he(this, "started", !1);
|
|
426
|
+
he(this, "awaiting", null);
|
|
427
|
+
he(this, "waitTimer", null);
|
|
428
|
+
he(this, "onError", () => {
|
|
429
429
|
});
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
430
|
+
he(this, "floor", 0);
|
|
431
|
+
he(this, "loading", null);
|
|
432
|
+
he(this, "readAhead", 0);
|
|
433
|
+
he(this, "readAheadS", 0);
|
|
434
|
+
he(this, "prefetch", new _a());
|
|
435
|
+
he(this, "warmed", /* @__PURE__ */ new Set());
|
|
436
|
+
he(this, "startingSince", /* @__PURE__ */ new Map());
|
|
437
|
+
he(this, "retries", /* @__PURE__ */ new Map());
|
|
438
|
+
he(this, "retryTimer", null);
|
|
439
439
|
}
|
|
440
440
|
setSequence(e) {
|
|
441
441
|
e.length === this.sequence.length && e.every((n, s) => this.sequence[s] === n) || (this.sequence = e, this.seqAt = new Map(e.map((n, s) => [n, s])), this.order.sort((n, s) => this.rank(n) - this.rank(s)));
|
|
@@ -695,16 +695,16 @@ const nt = class nt {
|
|
|
695
695
|
let o = 0;
|
|
696
696
|
if (a)
|
|
697
697
|
if (this.within = null, s.total > 1) {
|
|
698
|
-
const c = Array.from({ length: s.total }, (u,
|
|
698
|
+
const c = Array.from({ length: s.total }, (u, h) => {
|
|
699
699
|
var M;
|
|
700
|
-
return ((M = s.got.get(
|
|
701
|
-
}), d = c.reduce((u,
|
|
700
|
+
return ((M = s.got.get(h)) == null ? void 0 : M.durationS) ?? 0;
|
|
701
|
+
}), d = c.reduce((u, h) => u + h, 0);
|
|
702
702
|
if (d > 0 && c.every((u) => u > 0)) {
|
|
703
703
|
const u = a.frac * d;
|
|
704
|
-
let
|
|
705
|
-
for (;
|
|
706
|
-
if (o = -(u - M),
|
|
707
|
-
this.partBase = M, this.startPartAt(e,
|
|
704
|
+
let h = 0, M = 0;
|
|
705
|
+
for (; h < c.length - 1 && M + c[h] <= u; ) M += c[h++];
|
|
706
|
+
if (o = -(u - M), h !== n) {
|
|
707
|
+
this.partBase = M, this.startPartAt(e, h, u - M);
|
|
708
708
|
return;
|
|
709
709
|
}
|
|
710
710
|
}
|
|
@@ -737,9 +737,9 @@ const nt = class nt {
|
|
|
737
737
|
if (this.rank(c) <= l || !this.speakable(c)) continue;
|
|
738
738
|
const d = this.clips.get(c);
|
|
739
739
|
if (d)
|
|
740
|
-
for (const u of [...d.got.keys()].sort((
|
|
741
|
-
const
|
|
742
|
-
s.push(
|
|
740
|
+
for (const u of [...d.got.keys()].sort((h, M) => h - M)) {
|
|
741
|
+
const h = d.got.get(u);
|
|
742
|
+
s.push(h), r += h.durationS || 0;
|
|
743
743
|
}
|
|
744
744
|
}
|
|
745
745
|
return s;
|
|
@@ -868,7 +868,7 @@ const nt = class nt {
|
|
|
868
868
|
this.onWaiting(null), this.onStarting(null), this.playing = !1, this.current = null, this.currentPart = 0, this.partBase = 0, this.loading = null, this.floor = 0, this.lastRead = null, this.started = !1, this.stopWaiting(), this.spoken.clear(), this.retryTimer && (clearTimeout(this.retryTimer), this.retryTimer = null), this.retries.clear(), this.prefetch.clear(), e && (e.pause(), e.removeAttribute("src"), e.load()), this.el = null;
|
|
869
869
|
}
|
|
870
870
|
};
|
|
871
|
-
|
|
871
|
+
he(nt, "WAIT_MS", 15e3), he(nt, "START_WAIT_MS", 4e3), he(nt, "COMING_MS", 12e4), he(nt, "SKEW_LINES", 3), he(nt, "RETRIES", 4), he(nt, "RETRY_MS", 1200), he(nt, "STARTING_MS", 3e5);
|
|
872
872
|
let cs = nt;
|
|
873
873
|
function di(t, e) {
|
|
874
874
|
return e == null ? t.find((n) => !n.voiceKey) ?? null : t.find((n) => n.voiceKey === e) ?? t.find((n) => !n.voiceKey && n.voice === e) ?? null;
|
|
@@ -880,18 +880,18 @@ function Ua(t, e, n, s = {}, r) {
|
|
|
880
880
|
const o = Ca(s), l = o ? `&${o}` : "", c = t.voiceKey ? `&voice=${encodeURIComponent(t.voiceKey)}` : "";
|
|
881
881
|
return a.flatMap((d) => {
|
|
882
882
|
var M, N;
|
|
883
|
-
const u = (M = t.clipRev) == null ? void 0 : M[String(d)],
|
|
884
|
-
return Array.from({ length:
|
|
883
|
+
const u = (M = t.clipRev) == null ? void 0 : M[String(d)], h = Math.max(1, ((N = t.clipParts) == null ? void 0 : N[String(d)]) ?? 1);
|
|
884
|
+
return Array.from({ length: h }, (m, w) => {
|
|
885
885
|
var v;
|
|
886
886
|
return {
|
|
887
887
|
sentenceId: d,
|
|
888
888
|
lang: t.lang,
|
|
889
889
|
src: `${n}/v1/recordings/${e}/voice/${d}?lang=${encodeURIComponent(t.lang)}${c}&format=${jn()}${w > 0 ? `&part=${w}` : ""}${u ? `&v=${encodeURIComponent(u)}` : ""}${l}`,
|
|
890
|
-
durationS:
|
|
890
|
+
durationS: h === 1 ? ((v = t.clipDur) == null ? void 0 : v[String(d)]) ?? 0 : 0,
|
|
891
891
|
voice: t.voice ?? null,
|
|
892
892
|
cloned: !1,
|
|
893
893
|
part: w,
|
|
894
|
-
parts:
|
|
894
|
+
parts: h
|
|
895
895
|
};
|
|
896
896
|
});
|
|
897
897
|
});
|
|
@@ -923,7 +923,7 @@ function Ms(t, e) {
|
|
|
923
923
|
return e;
|
|
924
924
|
}
|
|
925
925
|
}
|
|
926
|
-
function
|
|
926
|
+
function gi(t, e) {
|
|
927
927
|
try {
|
|
928
928
|
e == null ? localStorage.removeItem(t) : localStorage.setItem(t, JSON.stringify(e));
|
|
929
929
|
} catch {
|
|
@@ -938,14 +938,14 @@ function ks(t, e) {
|
|
|
938
938
|
ds.delete(r), window.removeEventListener("storage", r);
|
|
939
939
|
};
|
|
940
940
|
}, [t]), [n, (r) => {
|
|
941
|
-
s(r),
|
|
941
|
+
s(r), gi(t, r);
|
|
942
942
|
}];
|
|
943
943
|
}
|
|
944
944
|
function Er(t) {
|
|
945
945
|
const e = Ms(us, []);
|
|
946
|
-
|
|
946
|
+
gi(us, Array.isArray(e) ? e.filter((n) => n !== t) : []);
|
|
947
947
|
}
|
|
948
|
-
function
|
|
948
|
+
function hi() {
|
|
949
949
|
const [t, e] = ks(us, []), n = Array.isArray(t) ? t : [];
|
|
950
950
|
return [n, (s) => {
|
|
951
951
|
s && e([s, ...n.filter((r) => r !== s)].slice(0, 3));
|
|
@@ -965,21 +965,21 @@ function $a(t) {
|
|
|
965
965
|
const [e, n] = ks(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
|
|
966
966
|
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : Qa, n];
|
|
967
967
|
}
|
|
968
|
-
function vs({ open: t, onClose: e, value: n, onSelect: s, languages: r, searchPlaceholder: a = "Search languages", none: o, pinned: l = [], recent: c = [], requireVoice: d, keepOpen: u, busy:
|
|
968
|
+
function vs({ open: t, onClose: e, value: n, onSelect: s, languages: r, searchPlaceholder: a = "Search languages", none: o, pinned: l = [], recent: c = [], requireVoice: d, keepOpen: u, busy: h }) {
|
|
969
969
|
const [M, N] = O(""), [m, w] = O(!1), [v, p] = O(null);
|
|
970
970
|
Y(() => {
|
|
971
971
|
t && (N(""), w(!1), p(null));
|
|
972
972
|
}, [t]);
|
|
973
|
-
const
|
|
973
|
+
const g = Ie(() => {
|
|
974
974
|
const S = M.trim().toLowerCase();
|
|
975
975
|
return [...S ? r.filter((I) => I.label.toLowerCase().includes(S) || I.native.toLowerCase().includes(S) || I.code.toLowerCase().includes(S)) : r].sort((I, E) => {
|
|
976
976
|
const oe = l.indexOf(I.code), P = l.indexOf(E.code);
|
|
977
977
|
return oe !== -1 || P !== -1 ? (oe === -1 ? 999 : oe) - (P === -1 ? 999 : P) : I.label.localeCompare(E.label);
|
|
978
978
|
});
|
|
979
979
|
}, [r, M, l]), C = Ie(
|
|
980
|
-
() => M ? [] : c.map((S) =>
|
|
981
|
-
[c,
|
|
982
|
-
),
|
|
980
|
+
() => M ? [] : c.map((S) => g.find(($) => $.code === S)).filter((S) => !!S).sort((S, $) => S.label.localeCompare($.label)),
|
|
981
|
+
[c, g, M]
|
|
982
|
+
), x = Ie(() => C.length ? g.filter((S) => !C.some(($) => $.code === S.code)) : g, [g, C]), k = m || M ? x : x.slice(0, 12), J = x.length - k.length, A = (S, $ = !1) => {
|
|
983
983
|
const L = !!d && !S.voice;
|
|
984
984
|
return /* @__PURE__ */ f(
|
|
985
985
|
"button",
|
|
@@ -1006,7 +1006,7 @@ function vs({ open: t, onClose: e, value: n, onSelect: s, languages: r, searchPl
|
|
|
1006
1006
|
(I.key === "Enter" || I.key === " ") && (I.preventDefault(), I.stopPropagation(), Er(S.code));
|
|
1007
1007
|
}, children: /* @__PURE__ */ i(de, { d: q.close, size: 16 }) }) }),
|
|
1008
1008
|
/* @__PURE__ */ i("span", { className: `vs-picker__slot${L ? " vs-picker__slot--wide" : ""}`, title: S.voice ? "Voice available" : L ? "No voice speaks this language yet" : void 0, children: L ? v === S.code && /* @__PURE__ */ i("span", { className: "vs-picker__off", children: "UNAVAILABLE" }) : S.voice && /* @__PURE__ */ i(de, { d: q.headphones, size: 16 }) }),
|
|
1009
|
-
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === S.code && (
|
|
1009
|
+
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === S.code && (h === S.code ? /* @__PURE__ */ i(ct, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ i(de, { d: q.check, size: 16, sw: 2.2 })) })
|
|
1010
1010
|
]
|
|
1011
1011
|
},
|
|
1012
1012
|
S.code
|
|
@@ -1038,7 +1038,7 @@ function vs({ open: t, onClose: e, value: n, onSelect: s, languages: r, searchPl
|
|
|
1038
1038
|
J,
|
|
1039
1039
|
" MORE LANGUAGES"
|
|
1040
1040
|
] }),
|
|
1041
|
-
|
|
1041
|
+
g.length === 0 && /* @__PURE__ */ f("div", { className: "vs-picker__more", children: [
|
|
1042
1042
|
"No match for “",
|
|
1043
1043
|
M,
|
|
1044
1044
|
"”"
|
|
@@ -1117,7 +1117,7 @@ function Kn(t) {
|
|
|
1117
1117
|
t && (t.pause(), t.removeAttribute("src"), t.load());
|
|
1118
1118
|
}
|
|
1119
1119
|
function Ni(t, e) {
|
|
1120
|
-
const [n, s] = O("off"), [r, a] = O([]), [o, l] = O(!1), c = z(null), d = z([null, null]), u = z([NaN, NaN]),
|
|
1120
|
+
const [n, s] = O("off"), [r, a] = O([]), [o, l] = O(!1), c = z(null), d = z([null, null]), u = z([NaN, NaN]), h = z(0);
|
|
1121
1121
|
return Y(() => {
|
|
1122
1122
|
if (a([]), l(!1), !t) {
|
|
1123
1123
|
s("off");
|
|
@@ -1141,7 +1141,7 @@ function Ni(t, e) {
|
|
|
1141
1141
|
s("unavailable"), a([]);
|
|
1142
1142
|
return;
|
|
1143
1143
|
}
|
|
1144
|
-
a((v) => v.length === w.parts.length && v.every((p,
|
|
1144
|
+
a((v) => v.length === w.parts.length && v.every((p, g) => p.startS === w.parts[g].startS) ? v : w.parts), N = setTimeout(m, w.retryS * 1e3);
|
|
1145
1145
|
}
|
|
1146
1146
|
}).catch(() => {
|
|
1147
1147
|
M || (N = setTimeout(m, 5e3));
|
|
@@ -1163,12 +1163,12 @@ function Ni(t, e) {
|
|
|
1163
1163
|
M(), l(!1);
|
|
1164
1164
|
return;
|
|
1165
1165
|
}
|
|
1166
|
-
const m = to(r, N, u.current,
|
|
1167
|
-
for (const [p,
|
|
1166
|
+
const m = to(r, N, u.current, h.current);
|
|
1167
|
+
for (const [p, g] of m.load) {
|
|
1168
1168
|
let C = d.current[p];
|
|
1169
|
-
C || (C = new Audio(), C.preload = "auto", d.current[p] = C), C.pause(), C.src = r[
|
|
1169
|
+
C || (C = new Audio(), C.preload = "auto", d.current[p] = C), C.pause(), C.src = r[g].url, u.current[p] = r[g].startS;
|
|
1170
1170
|
}
|
|
1171
|
-
|
|
1171
|
+
h.current = m.play;
|
|
1172
1172
|
const w = d.current[m.play], v = d.current[1 - m.play];
|
|
1173
1173
|
v && !v.paused && v.pause(), Yr(w, { ...e, t: e.t - r[N].startS }), l(!e.playing || w.readyState >= 3);
|
|
1174
1174
|
}, [n, r, e.t, e.playing, e.muted]), { state: n, on: o, untilS: n === "ready" ? 1 / 0 : r.length ? r[r.length - 1].endS : 0 };
|
|
@@ -1192,7 +1192,7 @@ function ao(t, e, n) {
|
|
|
1192
1192
|
const o = Math.max(1, ...a.map((c) => c.parts));
|
|
1193
1193
|
let l = Math.max(0, n - r.start);
|
|
1194
1194
|
for (let c = 0; c < o; c++) {
|
|
1195
|
-
const d = a.find((
|
|
1195
|
+
const d = a.find((h) => h.part === c);
|
|
1196
1196
|
if (!d) return { kind: "missing", sid: r.sid };
|
|
1197
1197
|
const u = d.durationS && d.durationS > 0 ? d.durationS : 1 / 0;
|
|
1198
1198
|
if (l < u) return { kind: "play", sid: r.sid, src: d.src, offset: l };
|
|
@@ -1238,11 +1238,11 @@ function co(t) {
|
|
|
1238
1238
|
}
|
|
1239
1239
|
const c = ao(t.lines, e, t.t), d = c.kind === "missing" ? c.sid : null, u = c.kind === "none" ? null : c.sid;
|
|
1240
1240
|
a((m) => m.missing === d && m.sid === u ? m : { missing: d, sid: u });
|
|
1241
|
-
const
|
|
1242
|
-
for (const m of
|
|
1241
|
+
const h = new Set(lo(t.lines, e, t.t));
|
|
1242
|
+
for (const m of h) o(m);
|
|
1243
1243
|
const M = s.current;
|
|
1244
|
-
M &&
|
|
1245
|
-
for (const [m, w] of n.current) !
|
|
1244
|
+
M && h.add(M.src);
|
|
1245
|
+
for (const [m, w] of n.current) !h.has(m) && (!M || M.el !== w) && (w.pause(), n.current.delete(m));
|
|
1246
1246
|
if (!t.playing) {
|
|
1247
1247
|
M == null || M.el.pause();
|
|
1248
1248
|
return;
|
|
@@ -1307,7 +1307,7 @@ function Mo(t, e) {
|
|
|
1307
1307
|
}
|
|
1308
1308
|
};
|
|
1309
1309
|
}
|
|
1310
|
-
function
|
|
1310
|
+
function go(t, e) {
|
|
1311
1311
|
const n = z(t);
|
|
1312
1312
|
n.current = t;
|
|
1313
1313
|
const s = !!t;
|
|
@@ -1346,7 +1346,7 @@ function Pt() {
|
|
|
1346
1346
|
spans: []
|
|
1347
1347
|
};
|
|
1348
1348
|
}
|
|
1349
|
-
function
|
|
1349
|
+
function ho(t, e) {
|
|
1350
1350
|
for (const s of t.spans) {
|
|
1351
1351
|
const r = s.mediaEnd ?? 1 / 0;
|
|
1352
1352
|
if (e < r || s.mediaEnd == null) return s.wallStart + Math.max(0, e - s.mediaStart);
|
|
@@ -1495,7 +1495,7 @@ function No(t, e) {
|
|
|
1495
1495
|
if ((n = e.scriptWords) != null && n.length) {
|
|
1496
1496
|
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) => {
|
|
1497
1497
|
var d, u;
|
|
1498
|
-
return c.recognized ?? ((u = (d = o.find((
|
|
1498
|
+
return c.recognized ?? ((u = (d = o.find((h) => String(h.repl ?? "").split(/\s+/).map(a).includes(a(c.text)))) == null ? void 0 : d.orig) == null ? void 0 : u.trim());
|
|
1499
1499
|
};
|
|
1500
1500
|
s.words = s.words.map((c, d) => {
|
|
1501
1501
|
if (!e.scriptWords.includes(d)) return c;
|
|
@@ -1529,7 +1529,7 @@ function No(t, e) {
|
|
|
1529
1529
|
seqs: s.seqs,
|
|
1530
1530
|
speaker: s.speaker,
|
|
1531
1531
|
start: s.start,
|
|
1532
|
-
wallStart:
|
|
1532
|
+
wallStart: ho(t, s.start),
|
|
1533
1533
|
text: a ? r.text : s.text,
|
|
1534
1534
|
status: s.status === "open" ? "open" : "closed",
|
|
1535
1535
|
settled: !!s.settled,
|
|
@@ -1712,7 +1712,7 @@ const Oo = /* @__PURE__ */ new Set([
|
|
|
1712
1712
|
engine_lost: "The transcription engine stopped. Please try again.",
|
|
1713
1713
|
capacity_exceeded: "Every transcription engine is busy right now. Please try again in a moment.",
|
|
1714
1714
|
timeout: "That took too long. Please try again."
|
|
1715
|
-
},
|
|
1715
|
+
}, gs = yi.internal, Xn = "Can't reach VocalStack. Check your connection.", Pr = {
|
|
1716
1716
|
NotAllowedError: "The browser blocked this. Allow it for this site, then try again.",
|
|
1717
1717
|
NotSupportedError: "This browser cannot play this.",
|
|
1718
1718
|
AbortError: "It was cancelled."
|
|
@@ -1720,13 +1720,13 @@ const Oo = /* @__PURE__ */ new Set([
|
|
|
1720
1720
|
function wt(t) {
|
|
1721
1721
|
const e = t, n = typeof (e == null ? void 0 : e.code) == "string" ? e.code : void 0, s = typeof (e == null ? void 0 : e.status) == "number" ? e.status : void 0, r = e == null ? void 0 : e.details;
|
|
1722
1722
|
if (n || s && s >= 400)
|
|
1723
|
-
return n && Oo.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: s, details: r } : n === "unavailable" && s === void 0 ? { message: Xn, code: n, details: r } : s === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : Xn, code: n, status: s, details: r } : { message: n && yi[n] ||
|
|
1723
|
+
return n && Oo.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: s, details: r } : n === "unavailable" && s === void 0 ? { message: Xn, code: n, details: r } : s === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : Xn, code: n, status: s, details: r } : { message: n && yi[n] || gs, code: n, status: s, details: r };
|
|
1724
1724
|
const a = (e == null ? void 0 : e.name) ?? "";
|
|
1725
|
-
return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && ai(t instanceof Error ? t : new Error(String(t))), { message: Xn }) : Pr[a] ? { message: Pr[a] } : t instanceof Error && a === "Error" && !(t instanceof ti) ? { message: t.message } : { message:
|
|
1725
|
+
return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && ai(t instanceof Error ? t : new Error(String(t))), { message: Xn }) : Pr[a] ? { message: Pr[a] } : t instanceof Error && a === "Error" && !(t instanceof ti) ? { message: t.message } : { message: gs };
|
|
1726
1726
|
}
|
|
1727
1727
|
const Ti = "https://api.vocalstack.com", Os = ei(null);
|
|
1728
1728
|
function Yt() {
|
|
1729
|
-
const t =
|
|
1729
|
+
const t = ha(Os);
|
|
1730
1730
|
if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
|
|
1731
1731
|
return t;
|
|
1732
1732
|
}
|
|
@@ -1787,11 +1787,11 @@ function Eo(t, e) {
|
|
|
1787
1787
|
const [n, s] = O(null), [r, a] = O(!1), [o, l] = O(null), [c, d] = O(0);
|
|
1788
1788
|
return Y(() => {
|
|
1789
1789
|
let u = !0;
|
|
1790
|
-
return Ao(t, e).then((
|
|
1791
|
-
u && (s(
|
|
1792
|
-
}).catch((
|
|
1790
|
+
return Ao(t, e).then((h) => {
|
|
1791
|
+
u && (s(h), a(!1), l(null));
|
|
1792
|
+
}).catch((h) => {
|
|
1793
1793
|
if (!u) return;
|
|
1794
|
-
const M = wt(
|
|
1794
|
+
const M = wt(h);
|
|
1795
1795
|
M.code === "not_found" || M.status === 404 ? a(!0) : l(M);
|
|
1796
1796
|
}), () => {
|
|
1797
1797
|
u = !1;
|
|
@@ -1854,7 +1854,7 @@ const _o = (t) => new Promise((e) => setTimeout(e, t)), Uo = 2500, Ro = 72;
|
|
|
1854
1854
|
function Po(t, e) {
|
|
1855
1855
|
const n = Yt(), s = z(n);
|
|
1856
1856
|
s.current = n;
|
|
1857
|
-
const [r, a] = O(Pt), o = z(Pt()), l = z(null), c = z(e.lang ?? null), [d, u] = O(!1), [
|
|
1857
|
+
const [r, a] = O(Pt), o = z(Pt()), l = z(null), c = z(e.lang ?? null), [d, u] = O(!1), [h, M] = O(null), [N, m] = O(!1), w = qe(() => {
|
|
1858
1858
|
const $ = o.current;
|
|
1859
1859
|
a({ ...$ });
|
|
1860
1860
|
}, []), v = z(e);
|
|
@@ -1865,12 +1865,12 @@ function Po(t, e) {
|
|
|
1865
1865
|
const I = n.client;
|
|
1866
1866
|
let E = o.current.state;
|
|
1867
1867
|
const oe = () => {
|
|
1868
|
-
var
|
|
1868
|
+
var b, ue;
|
|
1869
1869
|
const P = o.current.state;
|
|
1870
|
-
P !== E && (E = P, (ue = (
|
|
1870
|
+
P !== E && (E = P, (ue = (b = v.current).onState) == null || ue.call(b, P));
|
|
1871
1871
|
};
|
|
1872
1872
|
return (async () => {
|
|
1873
|
-
var P,
|
|
1873
|
+
var P, b, ue, B;
|
|
1874
1874
|
for (; $; ) {
|
|
1875
1875
|
let F = null;
|
|
1876
1876
|
try {
|
|
@@ -1887,7 +1887,7 @@ function Po(t, e) {
|
|
|
1887
1887
|
else if (le.type === "frame") {
|
|
1888
1888
|
No(o.current, le.frame);
|
|
1889
1889
|
const ve = le.frame;
|
|
1890
|
-
ve.type === "recording.state" && (E = o.current.state, (
|
|
1890
|
+
ve.type === "recording.state" && (E = o.current.state, (b = (P = v.current).onState) == null || b.call(P, ve.state, ve.reason)), (B = (ue = v.current).onFrame) == null || B.call(ue, ve), w();
|
|
1891
1891
|
} else le.type === "closed" && u(!1);
|
|
1892
1892
|
}
|
|
1893
1893
|
} catch (re) {
|
|
@@ -1927,32 +1927,32 @@ function Po(t, e) {
|
|
|
1927
1927
|
$ = !1, (P = l.current) == null || P.close(), l.current = null, u(!1);
|
|
1928
1928
|
};
|
|
1929
1929
|
}, [t, n, e.voice]);
|
|
1930
|
-
const [p,
|
|
1930
|
+
const [p, g] = O(!1), [C, x] = O(null), k = z(0), [J, A] = O(null), K = qe(($) => {
|
|
1931
1931
|
var oe;
|
|
1932
1932
|
if (c.current = $, (oe = l.current) == null || oe.setLanguage($), !t) return;
|
|
1933
1933
|
const L = s.current.client, I = ++k.current;
|
|
1934
|
-
|
|
1935
|
-
const E = (P) => L.recordings.transcript(t, { lang: $ ?? void 0, ...s.current.readAs, asListener: !s.current.owner }).then((
|
|
1936
|
-
I === k.current && (o.current = Jn(
|
|
1934
|
+
g(!0), x(null);
|
|
1935
|
+
const E = (P) => L.recordings.transcript(t, { lang: $ ?? void 0, ...s.current.readAs, asListener: !s.current.owner }).then((b) => {
|
|
1936
|
+
I === k.current && (o.current = Jn(b, o.current), A($), w(), b.translationPending && P > 0 && window.setTimeout(() => {
|
|
1937
1937
|
I === k.current && E(P - 1).catch(() => {
|
|
1938
1938
|
});
|
|
1939
1939
|
}, Uo));
|
|
1940
1940
|
});
|
|
1941
1941
|
E(Ro).catch(() => {
|
|
1942
|
-
I === k.current && $ &&
|
|
1942
|
+
I === k.current && $ && x($);
|
|
1943
1943
|
}).finally(() => {
|
|
1944
|
-
I === k.current &&
|
|
1944
|
+
I === k.current && g(!1);
|
|
1945
1945
|
});
|
|
1946
1946
|
}, [w, t]), j = qe(($, L) => {
|
|
1947
1947
|
const I = o.current;
|
|
1948
1948
|
let E = !1;
|
|
1949
1949
|
for (const [oe, P] of Object.entries(L)) {
|
|
1950
|
-
const
|
|
1951
|
-
|
|
1950
|
+
const b = I.sentences.get(Number(oe));
|
|
1951
|
+
b && (b.translations = { ...b.translations, [$]: P }, E = !0);
|
|
1952
1952
|
}
|
|
1953
1953
|
E && w();
|
|
1954
1954
|
}, [w]), S = qe(() => M(null), []);
|
|
1955
|
-
return { model: r, connected: d, error:
|
|
1955
|
+
return { model: r, connected: d, error: h, notFound: N, clearError: S, setLanguage: K, mergeTranslations: j, translating: p, translateFailed: C, shownLang: J };
|
|
1956
1956
|
}
|
|
1957
1957
|
const $r = {
|
|
1958
1958
|
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" },
|
|
@@ -1968,7 +1968,7 @@ function vi(t) {
|
|
|
1968
1968
|
async function ji(t) {
|
|
1969
1969
|
var r, a, o, l, c;
|
|
1970
1970
|
const e = await t.json().catch(() => null), n = ((r = e == null ? void 0 : e.error) == null ? void 0 : r.code) ?? (e == null ? void 0 : e.code), s = ((a = e == null ? void 0 : e.error) == null ? void 0 : a.message) ?? (e == null ? void 0 : e.message);
|
|
1971
|
-
return new ti(typeof n == "string" ? n : "internal", typeof s == "string" ? s :
|
|
1971
|
+
return new ti(typeof n == "string" ? n : "internal", typeof s == "string" ? s : gs, { status: t.status, details: ((l = (o = e == null ? void 0 : e.error) == null ? void 0 : o.data) == null ? void 0 : l.details) ?? ((c = e == null ? void 0 : e.data) == null ? void 0 : c.details) });
|
|
1972
1972
|
}
|
|
1973
1973
|
function ts(t) {
|
|
1974
1974
|
switch (t) {
|
|
@@ -2002,7 +2002,7 @@ function Bo(t, e) {
|
|
|
2002
2002
|
}
|
|
2003
2003
|
return n;
|
|
2004
2004
|
}
|
|
2005
|
-
const
|
|
2005
|
+
const hs = [
|
|
2006
2006
|
{ key: "pdf", name: "PDF", ext: "PDF", note: "Formatted transcript in paragraphs, with timestamps and speaker labels.", icon: "M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" },
|
|
2007
2007
|
{ key: "xlsx", name: "Excel", ext: "XLSX", note: "One row per segment: start, end, speaker, text, confidence.", icon: "M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m0 0h-7.5m-9 0h7.5m0 0c.621 0 1.125.504 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m0 0h7.5" },
|
|
2008
2008
|
{ key: "srt", name: "Subtitles", ext: "SRT / VTT", note: "Timed caption cues, ready for a video editor or a player.", icon: "M2.25 15.75V8.25A2.25 2.25 0 0 1 4.5 6h15a2.25 2.25 0 0 1 2.25 2.25v7.5A2.25 2.25 0 0 1 19.5 18h-15a2.25 2.25 0 0 1-2.25-2.25Zm4.5-4.5h4.5m-4.5 3h1.5m3 0h6m-3-3h3" },
|
|
@@ -2021,11 +2021,11 @@ async function Vo(t, e, n, s = {}) {
|
|
|
2021
2021
|
var M, N;
|
|
2022
2022
|
const r = await t.client.recordings.export(e, n, { lang: s.lang ?? void 0, ...t.readAs });
|
|
2023
2023
|
if (!r.ok) throw await ji(r);
|
|
2024
|
-
const a = await r.blob(), o = r.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], d = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, u = URL.createObjectURL(a),
|
|
2025
|
-
|
|
2024
|
+
const a = await r.blob(), o = r.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], d = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, u = URL.createObjectURL(a), h = document.createElement("a");
|
|
2025
|
+
h.href = u, h.download = d, h.style.display = "none", document.body.appendChild(h), h.click(), h.remove(), window.setTimeout(() => URL.revokeObjectURL(u), 6e4);
|
|
2026
2026
|
}
|
|
2027
2027
|
async function Wo(t, e) {
|
|
2028
|
-
const { recordingId: n, lang: s, voiceKey: r, cred: a } = e, o = async () => (await t.client.recordings.voice(n, s, t.readAs)).filter((
|
|
2028
|
+
const { recordingId: n, lang: s, voiceKey: r, cred: a } = e, o = async () => (await t.client.recordings.voice(n, s, t.readAs)).filter((h) => h.lang === s), l = (u) => di(u, r);
|
|
2029
2029
|
let c = l(await o());
|
|
2030
2030
|
(!c || c.state === "clips" || c.state === "failed") && await e.request();
|
|
2031
2031
|
const d = Date.now() + (e.timeoutMs ?? 10 * 6e4);
|
|
@@ -2087,7 +2087,7 @@ function Ko(t, e, n = 0) {
|
|
|
2087
2087
|
const A = o(), K = A ? A.offsetHeight : 0, j = r.clientHeight - K - 36, S = r.scrollHeight - r.clientHeight, $ = j > 0 ? Math.max(30, Math.round(j * (r.clientHeight - K) / r.scrollHeight)) : 0;
|
|
2088
2088
|
return { vis: j, max: S, size: $ };
|
|
2089
2089
|
};
|
|
2090
|
-
let c = -1, d = null, u = !1,
|
|
2090
|
+
let c = -1, d = null, u = !1, h = 0, M = 0;
|
|
2091
2091
|
const N = () => {
|
|
2092
2092
|
const A = o();
|
|
2093
2093
|
if (!A) return;
|
|
@@ -2112,21 +2112,21 @@ function Ko(t, e, n = 0) {
|
|
|
2112
2112
|
return;
|
|
2113
2113
|
}
|
|
2114
2114
|
a.style.pointerEvents = "auto", a.style.height = j.size + "px", a.style.transform = "translateY(" + Math.round(r.scrollTop / j.max * (j.vis - j.size)) + "px)", A && m();
|
|
2115
|
-
},
|
|
2116
|
-
a.style.right = (
|
|
2117
|
-
const C = () => p(!0),
|
|
2115
|
+
}, g = parseFloat(getComputedStyle(r).paddingRight) || 0;
|
|
2116
|
+
a.style.right = (g >= 12 ? -(g - 6) : 2) + "px";
|
|
2117
|
+
const C = () => p(!0), x = (A) => {
|
|
2118
2118
|
const K = l();
|
|
2119
|
-
K.vis - K.size <= 0 || (A.preventDefault(), A.stopPropagation(), a.setPointerCapture(A.pointerId), u = !0,
|
|
2119
|
+
K.vis - K.size <= 0 || (A.preventDefault(), A.stopPropagation(), a.setPointerCapture(A.pointerId), u = !0, h = A.clientY, M = r.scrollTop, a.style.cursor = "grabbing", m());
|
|
2120
2120
|
}, k = (A) => {
|
|
2121
2121
|
if (!u) return;
|
|
2122
2122
|
const K = l();
|
|
2123
|
-
r.scrollTop = M + (A.clientY -
|
|
2123
|
+
r.scrollTop = M + (A.clientY - h) / (K.vis - K.size) * K.max, m();
|
|
2124
2124
|
}, J = () => {
|
|
2125
2125
|
u && (u = !1, a.style.cursor = "grab", m());
|
|
2126
2126
|
};
|
|
2127
|
-
return r.addEventListener("scroll", C, { passive: !0 }), a.addEventListener("pointerdown",
|
|
2127
|
+
return r.addEventListener("scroll", C, { passive: !0 }), a.addEventListener("pointerdown", x), a.addEventListener("pointermove", k), a.addEventListener("pointerup", J), a.addEventListener("pointercancel", J), typeof ResizeObserver < "u" && (w = new ResizeObserver(() => p()), w.observe(r)), s.current = () => p(), p(), () => {
|
|
2128
2128
|
s.current = () => {
|
|
2129
|
-
}, r.removeEventListener("scroll", C), a.removeEventListener("pointerdown",
|
|
2129
|
+
}, r.removeEventListener("scroll", C), a.removeEventListener("pointerdown", x), a.removeEventListener("pointermove", k), a.removeEventListener("pointerup", J), a.removeEventListener("pointercancel", J), w == null || w.disconnect(), clearTimeout(d);
|
|
2130
2130
|
};
|
|
2131
2131
|
}, []);
|
|
2132
2132
|
}
|
|
@@ -2174,9 +2174,9 @@ function Hc({ chip: t, note: e, scrub: n, mute: s, voice: r, prev: a, play: o, n
|
|
|
2174
2174
|
] });
|
|
2175
2175
|
}
|
|
2176
2176
|
function el({ index: t, total: e, atLabel: n, durLabel: s, stepLabel: r, onSeek: a, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: d, glideMs: u = 260 }) {
|
|
2177
|
-
const
|
|
2177
|
+
const h = z(null), M = z(!1), [N, m] = O(null), w = Math.max(1, e), v = N ?? d, p = v != null ? Math.min(100, Math.max(0, v * 100)) : t / Math.max(1, w - 1) * 100, g = d != null && u > 0 && N == null ? `width ${u}ms linear, left ${u}ms linear` : "none", C = (k) => {
|
|
2178
2178
|
var j;
|
|
2179
|
-
const J = (j =
|
|
2179
|
+
const J = (j = h.current) == null ? void 0 : j.getBoundingClientRect();
|
|
2180
2180
|
if (!J) return;
|
|
2181
2181
|
const A = Math.min(1, Math.max(0, (k.clientX - J.left) / Math.max(1, J.width)));
|
|
2182
2182
|
if (o) {
|
|
@@ -2185,28 +2185,28 @@ function el({ index: t, total: e, atLabel: n, durLabel: s, stepLabel: r, onSeek:
|
|
|
2185
2185
|
}
|
|
2186
2186
|
const K = Math.round(A * (w - 1));
|
|
2187
2187
|
K !== t && a(K);
|
|
2188
|
-
},
|
|
2188
|
+
}, x = () => {
|
|
2189
2189
|
M.current && (M.current = !1, m(null), c == null || c());
|
|
2190
2190
|
};
|
|
2191
2191
|
return /* @__PURE__ */ f("div", { className: "rscrub", children: [
|
|
2192
2192
|
/* @__PURE__ */ f(
|
|
2193
2193
|
"div",
|
|
2194
2194
|
{
|
|
2195
|
-
ref:
|
|
2195
|
+
ref: h,
|
|
2196
2196
|
className: "rscrub__track",
|
|
2197
2197
|
onPointerDown: (k) => {
|
|
2198
2198
|
var J;
|
|
2199
|
-
M.current = !0, (J =
|
|
2199
|
+
M.current = !0, (J = h.current) == null || J.setPointerCapture(k.pointerId), l == null || l(), C(k), k.preventDefault();
|
|
2200
2200
|
},
|
|
2201
2201
|
onPointerMove: (k) => {
|
|
2202
2202
|
M.current && C(k);
|
|
2203
2203
|
},
|
|
2204
|
-
onPointerUp:
|
|
2205
|
-
onPointerCancel:
|
|
2204
|
+
onPointerUp: x,
|
|
2205
|
+
onPointerCancel: x,
|
|
2206
2206
|
children: [
|
|
2207
2207
|
/* @__PURE__ */ i("div", { className: "rscrub__rail" }),
|
|
2208
|
-
/* @__PURE__ */ i("div", { className: "rscrub__fill", style: { width: `${p}%`, transition:
|
|
2209
|
-
/* @__PURE__ */ i("div", { className: "rscrub__knob", style: { left: `${p}%`, transition:
|
|
2208
|
+
/* @__PURE__ */ i("div", { className: "rscrub__fill", style: { width: `${p}%`, transition: g } }),
|
|
2209
|
+
/* @__PURE__ */ i("div", { className: "rscrub__knob", style: { left: `${p}%`, transition: g } })
|
|
2210
2210
|
]
|
|
2211
2211
|
}
|
|
2212
2212
|
),
|
|
@@ -2248,7 +2248,7 @@ function sl({ onOpen: t, alone: e }) {
|
|
|
2248
2248
|
] });
|
|
2249
2249
|
}
|
|
2250
2250
|
function rl(t, e, n, s) {
|
|
2251
|
-
const r = Yt(), [a, o] = O([]), [l, c] = O(0), d = z(/* @__PURE__ */ new Set()), u = z(!1),
|
|
2251
|
+
const r = Yt(), [a, o] = O([]), [l, c] = O(0), d = z(/* @__PURE__ */ new Set()), u = z(!1), h = Ie(() => new Map(n.filter((N) => N.sentenceId != null).map((N) => [N.sentenceId, N])), [n]);
|
|
2252
2252
|
Y(() => {
|
|
2253
2253
|
d.current = /* @__PURE__ */ new Set();
|
|
2254
2254
|
}, [t, e]);
|
|
@@ -2256,7 +2256,7 @@ function rl(t, e, n, s) {
|
|
|
2256
2256
|
return Y(() => {
|
|
2257
2257
|
if (!t || !e || !a.length || u.current) return;
|
|
2258
2258
|
const N = a.filter((m) => {
|
|
2259
|
-
const w =
|
|
2259
|
+
const w = h.get(m);
|
|
2260
2260
|
return !w || !w.text.trim() || !w.settled || w.translations[e] || w.language && w.language.slice(0, 2).toLowerCase() === e.slice(0, 2).toLowerCase() ? !1 : !d.current.has(`${e}:${m}`);
|
|
2261
2261
|
}).slice(0, 40);
|
|
2262
2262
|
if (N.length) {
|
|
@@ -2272,7 +2272,7 @@ function rl(t, e, n, s) {
|
|
|
2272
2272
|
u.current = !1, c((m) => m + 1);
|
|
2273
2273
|
});
|
|
2274
2274
|
}
|
|
2275
|
-
}, [t, e, a, l,
|
|
2275
|
+
}, [t, e, a, l, h, s]), M;
|
|
2276
2276
|
}
|
|
2277
2277
|
function il(t) {
|
|
2278
2278
|
return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
|
|
@@ -2336,23 +2336,23 @@ function Wr(t, e, n = !0) {
|
|
|
2336
2336
|
a.set(o.key, c.id), r.add(c.id);
|
|
2337
2337
|
continue;
|
|
2338
2338
|
}
|
|
2339
|
-
const d = s.filter((M) => !r.has(M.id)),
|
|
2340
|
-
|
|
2339
|
+
const d = s.filter((M) => !r.has(M.id)), h = (o.sex ? d.filter((M) => M.gender === o.sex) : [])[0] ?? d[0] ?? s[0];
|
|
2340
|
+
h && (a.set(o.key, h.id), r.add(h.id));
|
|
2341
2341
|
}
|
|
2342
2342
|
return a;
|
|
2343
2343
|
}
|
|
2344
2344
|
function ll({ roster: t, selected: e, onSelect: n, noClone: s, building: r, short: a, warn: o, sexOf: l, t: c }) {
|
|
2345
2345
|
const d = t.find((u) => u.key === e) ?? t[0] ?? null;
|
|
2346
2346
|
return d ? /* @__PURE__ */ i("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, padding: "0 2px 9px", margin: "0 -2px" }, children: t.map((u) => {
|
|
2347
|
-
const
|
|
2347
|
+
const h = u.key === d.key, M = u.key >= 0 ? (o == null ? void 0 : o(u)) ?? null : null, N = u.key >= 0 && !M && !!(r != null && r(u)), m = u.key >= 0 && !M && !N && s(u), w = u.key >= 0 && !M && !N && !m && !u.hasVoice && !!(a != null && a(u));
|
|
2348
2348
|
return /* @__PURE__ */ f(
|
|
2349
2349
|
"button",
|
|
2350
2350
|
{
|
|
2351
2351
|
type: "button",
|
|
2352
|
-
"aria-selected":
|
|
2352
|
+
"aria-selected": h,
|
|
2353
2353
|
onClick: () => n(u.key),
|
|
2354
2354
|
title: u.name,
|
|
2355
|
-
style: { flex: "none", boxSizing: "border-box", display: "flex", alignItems: "center", gap: 7, minHeight: 34, padding: "5px 11px", borderRadius: 9, font: "inherit", background:
|
|
2355
|
+
style: { flex: "none", boxSizing: "border-box", display: "flex", alignItems: "center", gap: 7, minHeight: 34, padding: "5px 11px", borderRadius: 9, font: "inherit", background: h ? "var(--brand-tint)" : "var(--fill-05)", border: `1px solid ${h ? "var(--brand-line)" : "transparent"}`, cursor: "pointer" },
|
|
2356
2356
|
children: [
|
|
2357
2357
|
/* @__PURE__ */ i(
|
|
2358
2358
|
"span",
|
|
@@ -2362,10 +2362,10 @@ function ll({ roster: t, selected: e, onSelect: n, noClone: s, building: r, shor
|
|
|
2362
2362
|
children: u.initial
|
|
2363
2363
|
}
|
|
2364
2364
|
),
|
|
2365
|
-
/* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color:
|
|
2366
|
-
u.hasVoice && !M && /* @__PURE__ */ i(Ii, { color: u.fg ?? (
|
|
2365
|
+
/* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color: h ? "var(--ink-96)" : "var(--ink-62)", whiteSpace: "nowrap" }, children: u.name }),
|
|
2366
|
+
u.hasVoice && !M && /* @__PURE__ */ i(Ii, { color: u.fg ?? (h ? "var(--ink-62)" : "var(--ink-45)") }),
|
|
2367
2367
|
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: "!" }),
|
|
2368
|
-
w && /* @__PURE__ */ i("span", { title: "Not enough audio to clone", "aria-label": "Not enough audio to clone", style: { flex: "none", display: "flex", marginRight: -2, color:
|
|
2368
|
+
w && /* @__PURE__ */ i("span", { title: "Not enough audio to clone", "aria-label": "Not enough audio to clone", style: { flex: "none", display: "flex", marginRight: -2, color: h ? "var(--ink-45)" : "var(--ink-35)" }, children: /* @__PURE__ */ i(de, { d: q.micOff, size: 13, sw: 1.7 }) }),
|
|
2369
2369
|
(m || 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(ct, { 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)" } }) })
|
|
2370
2370
|
]
|
|
2371
2371
|
},
|
|
@@ -2373,16 +2373,16 @@ function ll({ roster: t, selected: e, onSelect: n, noClone: s, building: r, shor
|
|
|
2373
2373
|
);
|
|
2374
2374
|
}) }) : null;
|
|
2375
2375
|
}
|
|
2376
|
-
function cl({ cast: t, voices: e, currentId: n, armedId: s = null, sampleId: r = null, dlId: a = null, onPick: o, onAdd: l, onUse: c, usedBy: d, foldKey: u, foldFor:
|
|
2376
|
+
function cl({ cast: t, voices: e, currentId: n, armedId: s = null, sampleId: r = null, dlId: a = null, onPick: o, onAdd: l, onUse: c, usedBy: d, foldKey: u, foldFor: h = null, problem: M, noClone: N = null, t: m }) {
|
|
2377
2377
|
const w = Ie(() => al(e, m), [e, m]), [v, p] = O({});
|
|
2378
2378
|
Y(() => {
|
|
2379
2379
|
p({});
|
|
2380
|
-
}, [u,
|
|
2381
|
-
const
|
|
2380
|
+
}, [u, h]);
|
|
2381
|
+
const g = (k) => k === m.vcMale.toUpperCase() || k === m.vcFemale.toUpperCase(), C = (k) => {
|
|
2382
2382
|
if (k === m.vcSheet) return !0;
|
|
2383
2383
|
const J = v[k];
|
|
2384
|
-
return J != null ? !J : !
|
|
2385
|
-
},
|
|
2384
|
+
return J != null ? !J : !h || !g(k) ? !0 : k === (h === "female" ? m.vcFemale : m.vcMale).toUpperCase();
|
|
2385
|
+
}, x = !!s && s !== n;
|
|
2386
2386
|
return /* @__PURE__ */ f("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
2387
2387
|
M && /* @__PURE__ */ f("div", { style: { display: "flex", alignItems: "flex-start", gap: 9, padding: "10px 11px", marginBottom: 10, borderRadius: 11, background: "var(--conf-low-soft)" }, children: [
|
|
2388
2388
|
/* @__PURE__ */ i(de, { d: q.warnTri, size: 15, sw: 1.7, style: { flex: "none", marginTop: 1, color: "var(--conf-low)" } }),
|
|
@@ -2460,7 +2460,7 @@ function cl({ cast: t, voices: e, currentId: n, armedId: s = null, sampleId: r =
|
|
|
2460
2460
|
)
|
|
2461
2461
|
] }, k.id);
|
|
2462
2462
|
}),
|
|
2463
|
-
|
|
2463
|
+
x && /* @__PURE__ */ i("div", { style: { position: "sticky", bottom: 0, zIndex: 3, marginTop: 6, padding: "11px 0 3px", animation: "vs-slide-up .18s ease-out" }, children: /* @__PURE__ */ i("button", { type: "button", className: "vcuse", title: "Apply this voice", onClick: () => s && c(s), children: /* @__PURE__ */ i("span", { children: m.vcUse }) }) })
|
|
2464
2464
|
] });
|
|
2465
2465
|
}
|
|
2466
2466
|
function ul({ height: t, width: e = 2 }) {
|
|
@@ -2491,20 +2491,20 @@ function Ml(t, e, n = 0, s) {
|
|
|
2491
2491
|
}, [t, e, n, r, a, o]);
|
|
2492
2492
|
return c;
|
|
2493
2493
|
}
|
|
2494
|
-
function
|
|
2494
|
+
function gl(t) {
|
|
2495
2495
|
return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
|
|
2496
2496
|
}
|
|
2497
|
-
function
|
|
2497
|
+
function hl({ recordingId: t, lang: e, ended: n, cred: s, pickedVoice: r, sentenceIds: a }) {
|
|
2498
2498
|
const o = Yt(), { data: l, reload: c } = ki(async () => {
|
|
2499
2499
|
if (!t || !e) return null;
|
|
2500
2500
|
const P = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
|
|
2501
|
-
return { recordingId: t, lang: e, rows: P.filter((
|
|
2501
|
+
return { recordingId: t, lang: e, rows: P.filter((b) => b.lang === e) };
|
|
2502
2502
|
}, [t, e, o, n]), d = Ie(
|
|
2503
2503
|
() => l && l.lang === e && l.recordingId === t ? l.rows : [],
|
|
2504
2504
|
[l, e, t]
|
|
2505
|
-
), u = Ie(() => di(d, r), [d, r]),
|
|
2505
|
+
), u = Ie(() => di(d, r), [d, r]), h = u ? u.voiceKey || null : r, [M, N] = O(null), [m, w] = O(null), v = z(/* @__PURE__ */ new Set()), p = `${t ?? ""}|${e ?? ""}|${h ?? ""}`, g = qe(async (P, b) => {
|
|
2506
2506
|
if (!t || !e || !n) return;
|
|
2507
|
-
const ue =
|
|
2507
|
+
const ue = b != null && b.size ? null : Vr(P), B = b != null && b.size ? b : ue, F = B && B.size ? Object.fromEntries([...B].map(([ve, Le]) => [String(ve), Le])) : null, ie = `${t}|${e}|${F ? JSON.stringify(F) : P ?? ""}`;
|
|
2508
2508
|
if (v.current.has(ie)) return;
|
|
2509
2509
|
v.current.add(ie), N(ie), w(null);
|
|
2510
2510
|
const re = { langs: [e] };
|
|
@@ -2519,75 +2519,75 @@ function gl({ recordingId: t, lang: e, ended: n, cred: s, pickedVoice: r, senten
|
|
|
2519
2519
|
c();
|
|
2520
2520
|
}, [t, e, n, o, c]), C = qe(() => {
|
|
2521
2521
|
const P = `${t ?? ""}|${e ?? ""}|`;
|
|
2522
|
-
for (const
|
|
2522
|
+
for (const b of [...v.current]) b.startsWith(P) && v.current.delete(b);
|
|
2523
2523
|
w(null);
|
|
2524
|
-
}, [t, e]),
|
|
2524
|
+
}, [t, e]), x = !!u && (u.state === "queued" || u.state === "running") || M === p, k = (u == null ? void 0 : u.state) === "failed" ? u.error || "the render failed" : m, J = (a == null ? void 0 : a.join(",")) ?? "", [A, K] = O(null), j = Ie(() => new Set((u == null ? void 0 : u.clips) ?? []), [u]), S = Ie(() => n && J ? J.split(",").map(Number).filter((P) => !j.has(P)) : [], [n, J, j]), $ = z(null);
|
|
2525
2525
|
Y(() => {
|
|
2526
2526
|
if (!n || !t || !e || !S.length) return;
|
|
2527
|
-
const P = A ?? S[0],
|
|
2528
|
-
if (B && B.key === ue && Math.abs(B.near -
|
|
2529
|
-
$.current = { key: ue, near:
|
|
2530
|
-
const F = Vr(
|
|
2531
|
-
F && F.size ? ie.voiceBySpeaker = Object.fromEntries([...F].map(([re, le]) => [String(re), le])) :
|
|
2527
|
+
const P = A ?? S[0], b = S.find((re) => re >= P) ?? S[0], ue = `${t}|${e}|${h ?? ""}`, B = $.current;
|
|
2528
|
+
if (B && B.key === ue && Math.abs(B.near - b) < 12 && Date.now() - B.at < 6e4) return;
|
|
2529
|
+
$.current = { key: ue, near: b, at: Date.now() };
|
|
2530
|
+
const F = Vr(h), ie = { langs: [e], near: b };
|
|
2531
|
+
F && F.size ? ie.voiceBySpeaker = Object.fromEntries([...F].map(([re, le]) => [String(re), le])) : h && (ie.voice = h), Qr(o, `/v1/recordings/${t}/voice`, { method: "POST", body: ie }).then((re) => {
|
|
2532
2532
|
re.ok || ($.current = null);
|
|
2533
2533
|
}).catch(() => {
|
|
2534
2534
|
$.current = null;
|
|
2535
2535
|
});
|
|
2536
|
-
}, [n, t, e,
|
|
2536
|
+
}, [n, t, e, h, A, S, o]);
|
|
2537
2537
|
const L = S.length > 0, I = z({ n: -1, at: 0 });
|
|
2538
2538
|
Y(() => {
|
|
2539
2539
|
if (!L) return;
|
|
2540
2540
|
const P = setInterval(() => {
|
|
2541
|
-
const
|
|
2542
|
-
|
|
2541
|
+
const b = j.size;
|
|
2542
|
+
b !== I.current.n && (I.current = { n: b, at: Date.now() }), !(Date.now() - I.current.at > 10 * 6e4) && c();
|
|
2543
2543
|
}, 3e3);
|
|
2544
2544
|
return () => clearInterval(P);
|
|
2545
2545
|
}, [L, c, j]);
|
|
2546
2546
|
const E = Ie(() => {
|
|
2547
2547
|
if (!t) return [];
|
|
2548
|
-
const P = J ? J.split(",").map(Number).filter((ue) => !n || j.has(ue)) : void 0,
|
|
2549
|
-
return Ua(
|
|
2548
|
+
const P = J ? J.split(",").map(Number).filter((ue) => !n || j.has(ue)) : void 0, b = u ?? (P != null && P.length && e ? { lang: e, voiceKey: r ?? "", clips: [], voice: null } : null);
|
|
2549
|
+
return Ua(b, t, o.origin, s, P);
|
|
2550
2550
|
}, [u, t, o, s, J, e, r, n, j]), oe = Ie(() => new Set(S), [S]);
|
|
2551
|
-
return { listed: l, rows: d, track: u, renderVoiceId:
|
|
2551
|
+
return { listed: l, rows: d, track: u, renderVoiceId: h, rendering: x, failed: k, clips: E, requestRender: g, forget: C, reload: c, setNear: K, missing: S.length, coming: oe };
|
|
2552
2552
|
}
|
|
2553
2553
|
const fl = { share: q.share, delay: q.tabGauge, video: q.video, source: q.tabSources, script: q.tabScript, fix: q.tabFix, ending: q.tabEnding, summary: q.tabSummary, export: q.tabExport, settings: q.tabSettings, sources: q.tabSources, recs: q.mic };
|
|
2554
2554
|
function Oi({ tabs: t, current: e, onPick: n, gap: s, fold: r = !0, side: a = !r }) {
|
|
2555
|
-
const o = r && t.length <= 3, l = t.some((v) => v.key === e), [c, d] = O(null), u = z(null), [
|
|
2555
|
+
const o = r && t.length <= 3, l = t.some((v) => v.key === e), [c, d] = O(null), u = z(null), [h, M] = O(0);
|
|
2556
2556
|
Y(() => {
|
|
2557
2557
|
u.current && M(u.current.offsetWidth);
|
|
2558
2558
|
}, [c == null ? void 0 : c.k]);
|
|
2559
2559
|
const N = (v, p) => {
|
|
2560
|
-
const
|
|
2561
|
-
if (o || r || p.key === e ||
|
|
2560
|
+
const g = v.currentTarget.querySelector(".tabbar__label");
|
|
2561
|
+
if (o || r || p.key === e || g && getComputedStyle(g).opacity === "1") {
|
|
2562
2562
|
c && d(null);
|
|
2563
2563
|
return;
|
|
2564
2564
|
}
|
|
2565
2565
|
if ((c == null ? void 0 : c.k) === p.key) return;
|
|
2566
|
-
const C = v.currentTarget.getBoundingClientRect(),
|
|
2567
|
-
d({ k: p.key, label: p.label, x: C.left + C.width / 2, y:
|
|
2566
|
+
const C = v.currentTarget.getBoundingClientRect(), x = v.currentTarget.parentElement.getBoundingClientRect();
|
|
2567
|
+
d({ k: p.key, label: p.label, x: C.left + C.width / 2, y: x.top });
|
|
2568
2568
|
}, m = () => d(null);
|
|
2569
2569
|
let w = null;
|
|
2570
2570
|
if (c) {
|
|
2571
|
-
const v = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, p =
|
|
2571
|
+
const v = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, p = h || 80, g = Math.max(v.l + 8, Math.min(v.r - p - 8, c.x - p / 2));
|
|
2572
2572
|
w = ma(
|
|
2573
|
-
/* @__PURE__ */ i("div", { className: "vsp vsp-portal", "data-theme": "dark", children: /* @__PURE__ */ f("div", { ref: u, "data-theme": "dark", className: "vs-tip__bubble vs-tip__bubble--top tabtip", style: { position: "fixed", left:
|
|
2573
|
+
/* @__PURE__ */ i("div", { className: "vsp vsp-portal", "data-theme": "dark", children: /* @__PURE__ */ f("div", { ref: u, "data-theme": "dark", className: "vs-tip__bubble vs-tip__bubble--top tabtip", style: { position: "fixed", left: g, top: c.y - 8, bottom: "auto", width: "auto", whiteSpace: "nowrap", transform: "translateY(-100%)", zIndex: 2147483e3, pointerEvents: "none" }, children: [
|
|
2574
2574
|
/* @__PURE__ */ i("span", { className: "vs-tip__row", children: /* @__PURE__ */ i("span", { className: "vs-tip__copy", children: c.label }) }),
|
|
2575
|
-
/* @__PURE__ */ i("span", { className: "vs-tip__arrow", style: { left: Math.round(Math.max(8, Math.min(p - 19, c.x -
|
|
2575
|
+
/* @__PURE__ */ i("span", { className: "vs-tip__arrow", style: { left: Math.round(Math.max(8, Math.min(p - 19, c.x - g - 5.5))) } })
|
|
2576
2576
|
] }) }),
|
|
2577
2577
|
document.body
|
|
2578
2578
|
);
|
|
2579
2579
|
}
|
|
2580
2580
|
return /* @__PURE__ */ f("div", { role: "tablist", className: `tabbar tabbar--icons${r ? "" : " tabbar--desk"}`, "data-desk-tabs": a ? "" : void 0, "data-tab-n": a ? t.length : void 0, style: { marginBottom: s ? 12 : 0 }, onMouseLeave: m, children: [
|
|
2581
2581
|
t.map((v) => {
|
|
2582
|
-
const p = e === v.key,
|
|
2582
|
+
const p = e === v.key, g = o || p, C = o ? "1 1 0" : p ? "1 1 auto" : r && !l ? "1 1 0" : "0 0 auto", x = v.icon ?? fl[v.key], k = () => {
|
|
2583
2583
|
m(), n(r && p ? "none" : v.key);
|
|
2584
2584
|
};
|
|
2585
2585
|
return r ? /* @__PURE__ */ f("button", { type: "button", role: "tab", "aria-selected": p, title: v.label, className: `tabbar__tab${p ? " is-on" : ""}`, style: { flex: C }, onClick: k, children: [
|
|
2586
|
-
|
|
2587
|
-
|
|
2586
|
+
x && /* @__PURE__ */ i(de, { d: x, size: 15, sw: v.sw ?? 2, style: { flex: "none" } }),
|
|
2587
|
+
g && /* @__PURE__ */ i("span", { className: "tabbar__label", children: v.label })
|
|
2588
2588
|
] }, v.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex: C }, onMouseEnter: (J) => N(J, v), onMouseMove: (J) => N(J, v), onClick: k, children: /* @__PURE__ */ f("button", { type: "button", role: "tab", "aria-selected": p, "aria-label": v.label, className: `tabbar__tab${p ? " is-on" : ""}${(c == null ? void 0 : c.k) === v.key ? " is-tip" : ""}`, children: [
|
|
2589
|
-
|
|
2590
|
-
/* @__PURE__ */ i("span", { className: "tabbar__grow", "data-tab-lw": "", style: { gridTemplateColumns:
|
|
2589
|
+
x && /* @__PURE__ */ i(de, { d: x, size: 15, sw: v.sw ?? 2, className: "tabbar__icon", style: { flex: "none", transform: p && !o ? "scale(1.12)" : "none" } }),
|
|
2590
|
+
/* @__PURE__ */ i("span", { className: "tabbar__grow", "data-tab-lw": "", style: { gridTemplateColumns: g ? "1fr" : "0fr", marginLeft: g && x ? 6 : 0 }, children: /* @__PURE__ */ i("span", { className: "tabbar__label", "data-tab-l": "", style: { opacity: g ? 1 : 0, transform: g ? "none" : "translateX(-6px)" }, children: v.label }) })
|
|
2591
2591
|
] }) }, v.key);
|
|
2592
2592
|
}),
|
|
2593
2593
|
w
|
|
@@ -2601,7 +2601,7 @@ function ml({ audio: t, video: e, formats: n, onExport: s }) {
|
|
|
2601
2601
|
}), []);
|
|
2602
2602
|
const u = (m) => {
|
|
2603
2603
|
window.clearTimeout(c.current), a(m), c.current = window.setTimeout(() => a(null), 1600);
|
|
2604
|
-
},
|
|
2604
|
+
}, h = (m) => {
|
|
2605
2605
|
o || (l(m), Promise.resolve().then(() => s(m)).then(() => {
|
|
2606
2606
|
d.current && u(m);
|
|
2607
2607
|
}).catch(() => {
|
|
@@ -2631,7 +2631,7 @@ function ml({ audio: t, video: e, formats: n, onExport: s }) {
|
|
|
2631
2631
|
e && N("video", e, q.video, "DOWNLOAD VIDEO"),
|
|
2632
2632
|
n !== !1 && /* @__PURE__ */ f(Pe, { children: [
|
|
2633
2633
|
/* @__PURE__ */ i(ls, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
|
|
2634
|
-
/* @__PURE__ */ i("div", { className: "fmtgrid", children:
|
|
2634
|
+
/* @__PURE__ */ i("div", { className: "fmtgrid", children: hs.map((m) => /* @__PURE__ */ f("button", { type: "button", className: "fmtgrid__cell", title: o === m.key ? `Building the ${m.name}…` : m.note, disabled: o != null, "aria-busy": o === m.key || void 0, onClick: () => h(m.key), style: o && o !== m.key ? { opacity: 0.45 } : void 0, children: [
|
|
2635
2635
|
o === m.key ? /* @__PURE__ */ i(ct, { size: 16, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(de, { d: r === m.key ? q.check : m.icon, size: 16, sw: 1.6, style: { color: r === m.key ? "var(--brand)" : "var(--ink-62)" } }),
|
|
2636
2636
|
/* @__PURE__ */ i("span", { children: m.name })
|
|
2637
2637
|
] }, m.key)) })
|
|
@@ -2718,13 +2718,13 @@ function kl(t = !0, e) {
|
|
|
2718
2718
|
const r = s.current;
|
|
2719
2719
|
if (!r || !t) return;
|
|
2720
2720
|
let a = 0, o = 0, l = !1;
|
|
2721
|
-
const c = (
|
|
2722
|
-
|
|
2723
|
-
}, d = (
|
|
2721
|
+
const c = (h) => {
|
|
2722
|
+
h.button !== 0 || h.target.closest("button,a,input,textarea,select") || (l = !0, a = h.clientY, o = r.scrollTop, r.classList.add("is-dragging"));
|
|
2723
|
+
}, d = (h) => {
|
|
2724
2724
|
var N;
|
|
2725
2725
|
if (!l) return;
|
|
2726
|
-
const M =
|
|
2727
|
-
Math.abs(M) > 2 && ((N = r.setPointerCapture) == null || N.call(r,
|
|
2726
|
+
const M = h.clientY - a;
|
|
2727
|
+
Math.abs(M) > 2 && ((N = r.setPointerCapture) == null || N.call(r, h.pointerId)), r.scrollTop = o - M;
|
|
2728
2728
|
}, u = () => {
|
|
2729
2729
|
l = !1, r.classList.remove("is-dragging");
|
|
2730
2730
|
};
|
|
@@ -2735,43 +2735,43 @@ function kl(t = !0, e) {
|
|
|
2735
2735
|
}
|
|
2736
2736
|
const vl = "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";
|
|
2737
2737
|
function jl(t, e) {
|
|
2738
|
-
const [n, s] = Pa(t), r = e.tabs.map((
|
|
2738
|
+
const [n, s] = Pa(t), r = e.tabs.map((g) => g.key), a = e.tabbed !== !1, o = e.pinnable ?? r;
|
|
2739
2739
|
let l = n;
|
|
2740
|
-
[...e.autoPin ?? []].reverse().forEach((
|
|
2741
|
-
r.includes(
|
|
2740
|
+
[...e.autoPin ?? []].reverse().forEach((g) => {
|
|
2741
|
+
r.includes(g) && !l.includes(g) && !l.includes(`!${g}`) && (l = [g, ...l]);
|
|
2742
2742
|
});
|
|
2743
2743
|
const c = l;
|
|
2744
|
-
(e.forcePin ?? []).forEach((
|
|
2745
|
-
l = l.filter((C) => C !== `!${
|
|
2744
|
+
(e.forcePin ?? []).forEach((g) => {
|
|
2745
|
+
l = l.filter((C) => C !== `!${g}`), r.includes(g) && !l.includes(g) && (l = [g, ...l]);
|
|
2746
2746
|
});
|
|
2747
|
-
const d = (
|
|
2748
|
-
const C =
|
|
2749
|
-
return C[
|
|
2750
|
-
}, m = (
|
|
2751
|
-
if (!o.includes(
|
|
2752
|
-
const
|
|
2753
|
-
if (
|
|
2754
|
-
const k = N(
|
|
2747
|
+
const d = (g) => (e.forcePin ?? []).includes(g) && !c.includes(g), u = a ? l.filter((g) => r.includes(g) && o.includes(g)) : [], h = r.filter((g) => !u.includes(g)), M = e.cur && e.cur !== "none" && h.includes(e.cur) ? e.cur : e.pref && h.includes(e.pref) ? e.pref : h[0] ?? null, N = (g) => {
|
|
2748
|
+
const C = h.filter((x) => x !== g);
|
|
2749
|
+
return C[h.indexOf(g)] ?? C[C.length - 1] ?? null;
|
|
2750
|
+
}, m = (g, C) => {
|
|
2751
|
+
if (!o.includes(g)) return;
|
|
2752
|
+
const x = u.filter((k) => k !== g);
|
|
2753
|
+
if (x.splice(C ?? x.length, 0, g), M === g) {
|
|
2754
|
+
const k = N(g);
|
|
2755
2755
|
k && e.onPick(k);
|
|
2756
2756
|
}
|
|
2757
|
-
s([...
|
|
2758
|
-
}, w = (
|
|
2759
|
-
s([...c.filter((C) => C !==
|
|
2760
|
-
}, v = (
|
|
2757
|
+
s([...x.filter((k) => !d(k) || k === g), ...c.filter((k) => !x.includes(k) && k !== `!${g}`)]);
|
|
2758
|
+
}, w = (g) => {
|
|
2759
|
+
s([...c.filter((C) => C !== g && C !== `!${g}`), ...(e.autoPin ?? []).includes(g) ? [`!${g}`] : []]), e.onPick(g);
|
|
2760
|
+
}, v = (g) => {
|
|
2761
2761
|
var C;
|
|
2762
|
-
return ((C = e.tabs.find((
|
|
2763
|
-
}, p = (
|
|
2764
|
-
const C = u.includes(
|
|
2762
|
+
return ((C = e.tabs.find((x) => x.key === g)) == null ? void 0 : C.label) ?? g;
|
|
2763
|
+
}, p = (g) => {
|
|
2764
|
+
const C = u.includes(g), x = r.includes(g);
|
|
2765
2765
|
return {
|
|
2766
|
-
show:
|
|
2766
|
+
show: x && (!a || C || M === g),
|
|
2767
2767
|
pinned: C,
|
|
2768
|
-
order: C ? u.indexOf(
|
|
2769
|
-
pill: a &&
|
|
2770
|
-
title: C ? `Unpin — return ${v(
|
|
2771
|
-
toggle: () => C ? w(
|
|
2768
|
+
order: C ? u.indexOf(g) + 1 : 1e3,
|
|
2769
|
+
pill: a && x && o.includes(g) && h.length > 0 && (C || h.length > 1),
|
|
2770
|
+
title: C ? `Unpin — return ${v(g)} to the tabs` : `Pin ${v(g)} open above the tabs`,
|
|
2771
|
+
toggle: () => C ? w(g) : m(g)
|
|
2772
2772
|
};
|
|
2773
2773
|
};
|
|
2774
|
-
return { id: t, tabbed: a &&
|
|
2774
|
+
return { id: t, tabbed: a && h.length > 1, cur: M, seq: u, pinnable: o, tabKeys: h, stripTabs: e.tabs.filter((g) => h.includes(g.key)), panel: p, pin: m, unpin: w };
|
|
2775
2775
|
}
|
|
2776
2776
|
function zl({ col: t, order: e, render: n, grip: s, onPick: r, wrapClass: a }) {
|
|
2777
2777
|
return Il(t), /* @__PURE__ */ f(Pe, { children: [
|
|
@@ -2800,19 +2800,19 @@ function Il(t) {
|
|
|
2800
2800
|
s !== p && (s && s.removeAttribute("data-grip-hot"), s = p, p && p.setAttribute("data-grip-hot", ""));
|
|
2801
2801
|
}, o = (p) => p.col.querySelector("[data-desk-tabs]"), l = (p) => {
|
|
2802
2802
|
var K;
|
|
2803
|
-
const
|
|
2803
|
+
const g = p.el.getBoundingClientRect(), C = p.el.cloneNode(!0);
|
|
2804
2804
|
C.querySelectorAll("*").forEach((j) => {
|
|
2805
2805
|
j.style.animation = "none", j.style.transition = "none";
|
|
2806
2806
|
}), C.querySelectorAll("iframe,video").forEach((j) => {
|
|
2807
2807
|
const S = document.createElement("div");
|
|
2808
2808
|
S.style.cssText = "width:100%;height:100%;background:#000", j.replaceWith(S);
|
|
2809
|
-
}), C.removeAttribute("data-panel-key"), C.querySelectorAll("[data-panel-key],[data-pin-pill]").forEach((j) => j.hasAttribute("data-pin-pill") ? j.remove() : j.removeAttribute("data-panel-key")), Object.assign(C.style, { position: "fixed", left: `${
|
|
2810
|
-
const
|
|
2811
|
-
for (let j = 0; j <
|
|
2812
|
-
const S =
|
|
2813
|
-
S.startsWith("--") && C.style.setProperty(S,
|
|
2809
|
+
}), C.removeAttribute("data-panel-key"), C.querySelectorAll("[data-panel-key],[data-pin-pill]").forEach((j) => j.hasAttribute("data-pin-pill") ? j.remove() : j.removeAttribute("data-panel-key")), Object.assign(C.style, { position: "fixed", left: `${g.left}px`, top: `${g.top}px`, width: `${g.width}px`, height: `${g.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" });
|
|
2810
|
+
const x = getComputedStyle(p.el);
|
|
2811
|
+
for (let j = 0; j < x.length; j++) {
|
|
2812
|
+
const S = x[j];
|
|
2813
|
+
S.startsWith("--") && C.style.setProperty(S, x.getPropertyValue(S));
|
|
2814
2814
|
}
|
|
2815
|
-
C.style.fontFamily =
|
|
2815
|
+
C.style.fontFamily = x.fontFamily, C.style.color = x.color;
|
|
2816
2816
|
let k = p.el.parentElement, J = "";
|
|
2817
2817
|
for (; k && !J; ) {
|
|
2818
2818
|
const j = getComputedStyle(k).backgroundColor;
|
|
@@ -2827,38 +2827,38 @@ function Il(t) {
|
|
|
2827
2827
|
const p = r;
|
|
2828
2828
|
if (!p || !p.on || p.px == null || p.py == null) return;
|
|
2829
2829
|
p.raf = 0, p.clone.style.transform = `translate3d(${p.px - p.x0}px,${p.py - p.y0}px,0)`;
|
|
2830
|
-
const
|
|
2830
|
+
const g = e.current, C = p.key, x = o(p), k = g.seq.includes(C), J = k || g.tabKeys.length > 1, A = x && p.tabsSnap, K = !A || p.py < A.top + A.height / 2 ? J ? "pin" : null : "tabs";
|
|
2831
2831
|
let j = null;
|
|
2832
2832
|
if (K === "pin") {
|
|
2833
|
-
const $ =
|
|
2834
|
-
k &&
|
|
2833
|
+
const $ = g.seq.filter((I) => I !== C).map((I) => p.snap[I]).filter(Boolean), L = p.grid ? $.filter((I) => I.bottom < p.py || I.top <= p.py && I.left + I.width / 2 < p.px).length : $.filter((I) => I.top + I.height / 2 < p.py).length;
|
|
2834
|
+
k && g.seq.indexOf(C) === L || (j = { zone: K, idx: L });
|
|
2835
2835
|
} else K === "tabs" && k && (j = { zone: K });
|
|
2836
2836
|
const S = j ? j.zone + (j.idx ?? "") : "";
|
|
2837
2837
|
if (S !== p.sig) {
|
|
2838
2838
|
if (p.sig = S, p.target = j, p.orig.forEach(([$, L]) => {
|
|
2839
2839
|
$.style.order = L;
|
|
2840
2840
|
}), (j == null ? void 0 : j.zone) === "pin") {
|
|
2841
|
-
const $ =
|
|
2841
|
+
const $ = g.seq.filter((L) => L !== C);
|
|
2842
2842
|
$.splice(j.idx, 0, C), $.forEach((L, I) => {
|
|
2843
2843
|
const E = p.col.querySelector(`[data-panel-key="${L}"]`);
|
|
2844
2844
|
E && (E.style.order = String(I + 1));
|
|
2845
2845
|
});
|
|
2846
2846
|
} else (j == null ? void 0 : j.zone) === "tabs" && (p.el.style.order = "998");
|
|
2847
|
-
|
|
2847
|
+
x && ((j == null ? void 0 : j.zone) === "tabs" ? x.setAttribute("data-drop-hot", "") : x.removeAttribute("data-drop-hot"));
|
|
2848
2848
|
}
|
|
2849
2849
|
}, d = (p) => {
|
|
2850
2850
|
var C;
|
|
2851
|
-
const
|
|
2852
|
-
if (r = null, !(!
|
|
2853
|
-
|
|
2854
|
-
}),
|
|
2855
|
-
const
|
|
2856
|
-
|
|
2851
|
+
const g = r;
|
|
2852
|
+
if (r = null, !(!g || !g.on) && (g.raf && cancelAnimationFrame(g.raf), g.clone.remove(), g.orig.forEach(([x, k]) => {
|
|
2853
|
+
x.style.order = k;
|
|
2854
|
+
}), g.el.classList.remove("is-dragging"), document.documentElement.style.cursor = "", document.body.style.userSelect = "", document.body.style.webkitUserSelect = "", (C = o(g)) == null || C.removeAttribute("data-drop-hot"), p && g.target)) {
|
|
2855
|
+
const x = e.current;
|
|
2856
|
+
g.target.zone === "tabs" ? x.seq.includes(g.key) && x.unpin(g.key) : x.pin(g.key, g.target.idx);
|
|
2857
2857
|
}
|
|
2858
2858
|
}, u = (p) => {
|
|
2859
|
-
const
|
|
2860
|
-
return
|
|
2861
|
-
},
|
|
2859
|
+
const g = p instanceof Element ? p.closest("[data-tab-col]") : null;
|
|
2860
|
+
return g && g.getAttribute("data-tab-col") === n ? g : null;
|
|
2861
|
+
}, h = (p) => {
|
|
2862
2862
|
var A;
|
|
2863
2863
|
if (r) {
|
|
2864
2864
|
if (!r.on) {
|
|
@@ -2868,26 +2868,26 @@ function Il(t) {
|
|
|
2868
2868
|
r.px = p.clientX, r.py = p.clientY, r.raf || (r.raf = requestAnimationFrame(c));
|
|
2869
2869
|
return;
|
|
2870
2870
|
}
|
|
2871
|
-
const
|
|
2872
|
-
if (!u(
|
|
2871
|
+
const g = p.target;
|
|
2872
|
+
if (!u(g)) {
|
|
2873
2873
|
s && ((A = s.closest("[data-tab-col]")) == null ? void 0 : A.getAttribute("data-tab-col")) === n && a(null);
|
|
2874
2874
|
return;
|
|
2875
2875
|
}
|
|
2876
|
-
const C =
|
|
2877
|
-
if (!C || !
|
|
2878
|
-
const k =
|
|
2876
|
+
const C = g.closest("[data-panel-key]"), x = C == null ? void 0 : C.firstElementChild;
|
|
2877
|
+
if (!C || !x || !e.current.tabbed || !e.current.pinnable.includes(C.getAttribute("data-panel-key")) || g.closest("[role=button],[role=tab],button,a,input,textarea,select,iframe,[data-pin-pill],[contenteditable=true]")) return a(null);
|
|
2878
|
+
const k = x.getBoundingClientRect(), J = parseFloat(getComputedStyle(C).getPropertyValue("--grip-h")) || 30;
|
|
2879
2879
|
a(p.clientY >= k.top && p.clientY <= k.top + J ? C : null);
|
|
2880
2880
|
}, M = (p) => {
|
|
2881
2881
|
if (!s || p.button !== 0) return;
|
|
2882
|
-
const
|
|
2883
|
-
|
|
2882
|
+
const g = u(s);
|
|
2883
|
+
g && (p.preventDefault(), p.stopImmediatePropagation(), r = { el: s, col: g, key: s.getAttribute("data-panel-key"), x0: p.clientX, y0: p.clientY, on: !1 });
|
|
2884
2884
|
}, N = () => d(!0), m = () => d(!1), w = (p) => {
|
|
2885
2885
|
p.key === "Escape" && r && (p.preventDefault(), p.stopImmediatePropagation(), d(!1));
|
|
2886
2886
|
}, v = () => {
|
|
2887
2887
|
r || a(null);
|
|
2888
2888
|
};
|
|
2889
|
-
return document.addEventListener("pointermove",
|
|
2890
|
-
d(!1), a(null), document.removeEventListener("pointermove",
|
|
2889
|
+
return document.addEventListener("pointermove", h, !0), document.addEventListener("pointerdown", M, !0), window.addEventListener("pointerup", N), window.addEventListener("pointercancel", m), window.addEventListener("keydown", w, !0), document.addEventListener("pointerleave", v), () => {
|
|
2890
|
+
d(!1), a(null), document.removeEventListener("pointermove", h, !0), document.removeEventListener("pointerdown", M, !0), window.removeEventListener("pointerup", N), window.removeEventListener("pointercancel", m), window.removeEventListener("keydown", w, !0), document.removeEventListener("pointerleave", v);
|
|
2891
2891
|
};
|
|
2892
2892
|
}, [n]);
|
|
2893
2893
|
}
|
|
@@ -2900,21 +2900,21 @@ function Ol({ id: t, className: e, gap: n, hidden: s, plain: r, children: a }) {
|
|
|
2900
2900
|
const N = c.current, m = N == null ? void 0 : N.parentElement;
|
|
2901
2901
|
if (M.button !== 0 || !N || !m) return;
|
|
2902
2902
|
M.preventDefault();
|
|
2903
|
-
const w = M.currentTarget, v = getComputedStyle(m), p = m.clientWidth - parseFloat(v.paddingLeft) - parseFloat(v.paddingRight) - (parseFloat(v.columnGap) || 0),
|
|
2903
|
+
const w = M.currentTarget, v = getComputedStyle(m), p = m.clientWidth - parseFloat(v.paddingLeft) - parseFloat(v.paddingRight) - (parseFloat(v.columnGap) || 0), g = 320, C = 320, x = Math.max(g, p - C), k = M.clientX, J = N.getBoundingClientRect().width;
|
|
2904
2904
|
let A = J;
|
|
2905
2905
|
w.classList.add("is-on");
|
|
2906
2906
|
const K = { cur: document.body.style.cursor, sel: document.body.style.userSelect };
|
|
2907
2907
|
document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
|
|
2908
2908
|
const j = ($) => {
|
|
2909
|
-
A = Math.round(Math.min(
|
|
2909
|
+
A = Math.round(Math.min(x, Math.max(g, J + (k - $.clientX)))), N.style.flexBasis = `${A}px`, document.documentElement.style.setProperty("--colw", `${A}px`);
|
|
2910
2910
|
}, S = () => {
|
|
2911
2911
|
window.removeEventListener("pointermove", j), window.removeEventListener("pointerup", S), window.removeEventListener("pointercancel", S), document.body.style.cursor = K.cur, document.body.style.userSelect = K.sel, w.classList.remove("is-on"), l(A);
|
|
2912
2912
|
};
|
|
2913
2913
|
window.addEventListener("pointermove", j), window.addEventListener("pointerup", S), window.addEventListener("pointercancel", S);
|
|
2914
|
-
},
|
|
2914
|
+
}, h = s ? { display: "none" } : void 0;
|
|
2915
2915
|
return /* @__PURE__ */ f(Pe, { children: [
|
|
2916
|
-
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "colgrip", style: { marginRight: -n, ...
|
|
2917
|
-
/* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...
|
|
2916
|
+
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "colgrip", style: { marginRight: -n, ...h }, children: /* @__PURE__ */ i("div", { className: "colgrip__bar", style: { left: -(n / 2 + 6) }, title: "Drag to resize · double-click to reset", onPointerDown: u, onDoubleClick: () => l(null) }) }),
|
|
2917
|
+
/* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...h }, children: r ? a : /* @__PURE__ */ i("div", { ref: d, "data-panel-grid": "", className: "panelgrid", children: a }) })
|
|
2918
2918
|
] });
|
|
2919
2919
|
}
|
|
2920
2920
|
function Cl(t) {
|
|
@@ -2927,13 +2927,13 @@ function Cl(t) {
|
|
|
2927
2927
|
s = 0;
|
|
2928
2928
|
const d = getComputedStyle(e).display === "grid";
|
|
2929
2929
|
[...e.children].forEach((u) => {
|
|
2930
|
-
const
|
|
2930
|
+
const h = u;
|
|
2931
2931
|
if (!d) {
|
|
2932
|
-
|
|
2932
|
+
h.style.gridRowEnd && (h.style.gridRowEnd = "");
|
|
2933
2933
|
return;
|
|
2934
2934
|
}
|
|
2935
|
-
const M =
|
|
2936
|
-
|
|
2935
|
+
const M = h.getBoundingClientRect().height, N = M > 0 ? `span ${Math.ceil(M + n)}` : "span 1";
|
|
2936
|
+
h.style.gridRowEnd !== N && (h.style.gridRowEnd = N);
|
|
2937
2937
|
});
|
|
2938
2938
|
}, a = () => {
|
|
2939
2939
|
s || (s = requestAnimationFrame(r));
|
|
@@ -2950,8 +2950,8 @@ function bl(t) {
|
|
|
2950
2950
|
}
|
|
2951
2951
|
const xl = 1500, Dl = 3e5;
|
|
2952
2952
|
function Sl(t) {
|
|
2953
|
-
const e = Yt(), [n, s] = O(null), [r, a] = O(null), [o, l] = O(null), [c, d] = O(null), u = z(null),
|
|
2954
|
-
M.current && (clearTimeout(M.current), M.current = null), u.current && (u.current.pause(), u.current.removeAttribute("src"), u.current.load(), u.current = null),
|
|
2953
|
+
const e = Yt(), [n, s] = O(null), [r, a] = O(null), [o, l] = O(null), [c, d] = O(null), u = z(null), h = z(null), M = z(null), N = z(0), m = qe(() => {
|
|
2954
|
+
M.current && (clearTimeout(M.current), M.current = null), u.current && (u.current.pause(), u.current.removeAttribute("src"), u.current.load(), u.current = null), h.current && (URL.revokeObjectURL(h.current), h.current = null);
|
|
2955
2955
|
}, []), w = qe(() => {
|
|
2956
2956
|
N.current += 1, m(), a(null), l(null);
|
|
2957
2957
|
}, [m]), v = qe(() => {
|
|
@@ -2960,20 +2960,20 @@ function Sl(t) {
|
|
|
2960
2960
|
Y(() => () => {
|
|
2961
2961
|
N.current += 1, m();
|
|
2962
2962
|
}, [m]);
|
|
2963
|
-
const p = qe((
|
|
2963
|
+
const p = qe((g) => {
|
|
2964
2964
|
N.current += 1;
|
|
2965
2965
|
const C = N.current;
|
|
2966
|
-
if (m(), s(
|
|
2967
|
-
let
|
|
2968
|
-
jn() === "caf" && (
|
|
2966
|
+
if (m(), s(g.id), a(null), l(null), d(null), !t) return;
|
|
2967
|
+
let x = g.previewUrl ? `${e.origin}${g.previewUrl}` : `${e.origin}/v1/voices/preview?voice=${encodeURIComponent(g.id)}&lang=${encodeURIComponent(t)}`;
|
|
2968
|
+
jn() === "caf" && (x += `${x.includes("?") ? "&" : "?"}format=caf`);
|
|
2969
2969
|
const k = Date.now();
|
|
2970
|
-
e.shareCode &&
|
|
2970
|
+
e.shareCode && x.includes("recording=") && (x += `&shareCode=${encodeURIComponent(e.shareCode)}`);
|
|
2971
2971
|
const J = async () => {
|
|
2972
2972
|
if (N.current !== C) return;
|
|
2973
2973
|
let A;
|
|
2974
2974
|
try {
|
|
2975
2975
|
const $ = e.owner ? await e.bearer() : void 0;
|
|
2976
|
-
A = await fetch(
|
|
2976
|
+
A = await fetch(x, { headers: $ ? { Authorization: `Bearer ${$}` } : {} });
|
|
2977
2977
|
} catch ($) {
|
|
2978
2978
|
if (N.current !== C) return;
|
|
2979
2979
|
l(null), d(wt($));
|
|
@@ -2985,7 +2985,7 @@ function Sl(t) {
|
|
|
2985
2985
|
l(null), d({ message: "This voice is still being fetched. Try it again in a moment." });
|
|
2986
2986
|
return;
|
|
2987
2987
|
}
|
|
2988
|
-
l(
|
|
2988
|
+
l(g.id), M.current = setTimeout(() => {
|
|
2989
2989
|
J();
|
|
2990
2990
|
}, xl);
|
|
2991
2991
|
return;
|
|
@@ -2998,14 +2998,14 @@ function Sl(t) {
|
|
|
2998
2998
|
}
|
|
2999
2999
|
const K = await A.blob();
|
|
3000
3000
|
if (N.current !== C) return;
|
|
3001
|
-
l(null),
|
|
3002
|
-
const j = new Audio(
|
|
3001
|
+
l(null), h.current = URL.createObjectURL(K);
|
|
3002
|
+
const j = new Audio(h.current);
|
|
3003
3003
|
j.playsInline = !0;
|
|
3004
3004
|
const S = () => {
|
|
3005
3005
|
N.current === C && (m(), a(null));
|
|
3006
3006
|
};
|
|
3007
3007
|
j.onended = S, j.onerror = S, u.current = j, j.play().then(() => {
|
|
3008
|
-
N.current === C && a(
|
|
3008
|
+
N.current === C && a(g.id);
|
|
3009
3009
|
}).catch(S);
|
|
3010
3010
|
};
|
|
3011
3011
|
J();
|
|
@@ -3062,7 +3062,7 @@ function Et(t, e, n) {
|
|
|
3062
3062
|
const s = (r = t == null ? void 0 : t.words[t.words.length - 1]) == null ? void 0 : r.end;
|
|
3063
3063
|
return s != null && s > e ? s : (t == null ? void 0 : t.end) != null && t.end > e ? t.end : n > e ? n : e + 4;
|
|
3064
3064
|
}
|
|
3065
|
-
function El({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: d, lead: u, onTime:
|
|
3065
|
+
function El({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: d, lead: u, onTime: h, waiting: M = !1 }) {
|
|
3066
3066
|
const N = z(null), [m, w] = O(!1);
|
|
3067
3067
|
Y(() => {
|
|
3068
3068
|
if (!M) {
|
|
@@ -3072,7 +3072,7 @@ function El({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd:
|
|
|
3072
3072
|
const G = setTimeout(() => w(!0), 300);
|
|
3073
3073
|
return () => clearTimeout(G);
|
|
3074
3074
|
}, [M]);
|
|
3075
|
-
const v = s && !m, p = z(!1), [
|
|
3075
|
+
const v = s && !m, p = z(!1), [g, C] = O(!1), x = (G, me = []) => {
|
|
3076
3076
|
var V, Ye;
|
|
3077
3077
|
if (!(p.current && (G === "pauseVideo" || G === "seekTo" || G === "setPlaybackRate")))
|
|
3078
3078
|
try {
|
|
@@ -3090,15 +3090,15 @@ function El({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd:
|
|
|
3090
3090
|
const G = A.current || K.current;
|
|
3091
3091
|
if (G !== p.current)
|
|
3092
3092
|
if (p.current = G, C(G), (me = $.current) == null || me.call($, G), G) {
|
|
3093
|
-
if (
|
|
3093
|
+
if (x("playVideo"), S.current) return;
|
|
3094
3094
|
Ee.current && j.current && (L.current = !0, j.current());
|
|
3095
3095
|
} else L.current && !S.current && (L.current = !1, Ee.current || (V = j.current) == null || V.call(j));
|
|
3096
3096
|
}, E = z(n);
|
|
3097
3097
|
E.current = n;
|
|
3098
|
-
const oe = z(
|
|
3099
|
-
oe.current =
|
|
3100
|
-
const P = z(null),
|
|
3101
|
-
|
|
3098
|
+
const oe = z(h);
|
|
3099
|
+
oe.current = h;
|
|
3100
|
+
const P = z(null), b = z(null), [ue, B] = O(!1), [F, ie] = O(!1), re = () => {
|
|
3101
|
+
x("unloadModule", ["captions"]), x("unloadModule", ["cc"]);
|
|
3102
3102
|
}, le = z([]), ve = () => {
|
|
3103
3103
|
re(), le.current.forEach(clearTimeout), le.current = [400, 1200, 2500, 5e3].map((G) => window.setTimeout(re, G));
|
|
3104
3104
|
};
|
|
@@ -3109,10 +3109,10 @@ function El({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd:
|
|
|
3109
3109
|
(me = (G = N.current) == null ? void 0 : G.contentWindow) == null || me.postMessage(JSON.stringify({ event: "listening", id: "reader" }), "*");
|
|
3110
3110
|
} catch {
|
|
3111
3111
|
}
|
|
3112
|
-
(!S.current || S.current.muted) &&
|
|
3112
|
+
(!S.current || S.current.muted) && x("mute"), ie(!0);
|
|
3113
3113
|
};
|
|
3114
|
-
Y(() => (u == null || u.bind(
|
|
3115
|
-
!u && F &&
|
|
3114
|
+
Y(() => (u == null || u.bind(x), () => u == null ? void 0 : u.bind(null)), [!!u]), Y(() => {
|
|
3115
|
+
!u && F && x("mute");
|
|
3116
3116
|
}, [!!u]);
|
|
3117
3117
|
const Te = z(null), we = z(l);
|
|
3118
3118
|
we.current = l;
|
|
@@ -3126,11 +3126,11 @@ function El({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd:
|
|
|
3126
3126
|
const me = Te.current;
|
|
3127
3127
|
return !!me && (G < me.start - 1 || G > me.end + 5);
|
|
3128
3128
|
}, R = () => {
|
|
3129
|
-
y(E.current) ||
|
|
3129
|
+
y(E.current) || x("seekTo", [E.current, !0]);
|
|
3130
3130
|
}, ae = () => P.current;
|
|
3131
3131
|
return Y(() => {
|
|
3132
3132
|
const G = (me) => {
|
|
3133
|
-
var Ve, Ae, Z, se,
|
|
3133
|
+
var Ve, Ae, Z, se, ge, Me, ce, ke, We, xe, Ce, _, U, W, ee, fe;
|
|
3134
3134
|
if (me.source !== ((Ve = N.current) == null ? void 0 : Ve.contentWindow) || typeof me.data != "string") return;
|
|
3135
3135
|
let V = null;
|
|
3136
3136
|
try {
|
|
@@ -3140,50 +3140,50 @@ function El({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd:
|
|
|
3140
3140
|
}
|
|
3141
3141
|
(Z = (Ae = V == null ? void 0 : V.info) == null ? void 0 : Ae.videoData) != null && Z.isLive && (J.current = !0);
|
|
3142
3142
|
const Ye = (se = V == null ? void 0 : V.info) == null ? void 0 : se.duration;
|
|
3143
|
-
typeof Ye == "number" && Ye > 0 && !J.current && (k.current == null ? k.current = Ye : (A.current = Math.abs(Ye - k.current) > 1.5, I())), (V == null ? void 0 : V.event) === "onReady" && ((!S.current || S.current.muted) &&
|
|
3143
|
+
typeof Ye == "number" && Ye > 0 && !J.current && (k.current == null ? k.current = Ye : (A.current = Math.abs(Ye - k.current) > 1.5, I())), (V == null ? void 0 : V.event) === "onReady" && ((!S.current || S.current.muted) && x("mute"), ve(), (ge = S.current) == null || ge.onInfo({ ready: !0 })), typeof ((Me = V == null ? void 0 : V.info) == null ? void 0 : Me.playerState) == "number" && (V.info.playerState !== b.current && (V.info.playerState === 1 || V.info.playerState === 2) && ve(), b.current = V.info.playerState, B(V.info.playerState === 2 || V.info.playerState === 0), (ce = S.current) == null || ce.onInfo({ state: V.info.playerState }));
|
|
3144
3144
|
const je = (ke = V == null ? void 0 : V.info) == null ? void 0 : ke.progressState;
|
|
3145
3145
|
if (je && typeof je.seekableStart == "number" && typeof je.seekableEnd == "number" && je.seekableEnd > je.seekableStart) {
|
|
3146
3146
|
const Ne = Te.current == null;
|
|
3147
|
-
if (Te.current = { start: je.seekableStart, end: je.seekableEnd }, Ne && !Ee.current && (
|
|
3147
|
+
if (Te.current = { start: je.seekableStart, end: je.seekableEnd }, Ne && !Ee.current && (x("pauseVideo"), y(E.current) || x("seekTo", [E.current, !0])), !te.current && we.current != null) {
|
|
3148
3148
|
te.current = !0;
|
|
3149
3149
|
const ze = we.current < je.seekableStart - 1;
|
|
3150
3150
|
(We = ye.current) == null || We.call(ye, ze), ze && ((xe = Oe.current) == null || xe.call(Oe));
|
|
3151
3151
|
}
|
|
3152
3152
|
}
|
|
3153
|
-
typeof ((Ce = V == null ? void 0 : V.info) == null ? void 0 : Ce.currentTime) == "number" && (P.current = V.info.currentTime, (_ = S.current) == null || _.onInfo({ t: V.info.currentTime }), !p.current &&
|
|
3153
|
+
typeof ((Ce = V == null ? void 0 : V.info) == null ? void 0 : Ce.currentTime) == "number" && (P.current = V.info.currentTime, (_ = S.current) == null || _.onInfo({ t: V.info.currentTime }), !p.current && b.current === 1 && ((U = oe.current) == null || U.call(oe, V.info.currentTime))), ((W = V == null ? void 0 : V.info) == null ? void 0 : W.muted) === !1 && !S.current && x("mute"), typeof ((ee = V == null ? void 0 : V.info) == null ? void 0 : ee.muted) == "boolean" && ((fe = S.current) == null || fe.onInfo({ muted: V.info.muted }));
|
|
3154
3154
|
};
|
|
3155
3155
|
return window.addEventListener("message", G), () => window.removeEventListener("message", G);
|
|
3156
3156
|
}, []), Y(() => {
|
|
3157
3157
|
if (u) return;
|
|
3158
3158
|
const G = y(n);
|
|
3159
|
-
G !== H && (X(G), G ?
|
|
3159
|
+
G !== H && (X(G), G ? x("pauseVideo") : F && (x("seekTo", [n, !0]), v && x("playVideo")));
|
|
3160
3160
|
}), Y(() => {
|
|
3161
3161
|
if (!F || H || u) return;
|
|
3162
3162
|
if (!v && Te.current == null && !Be.current) {
|
|
3163
|
-
Be.current = !0,
|
|
3163
|
+
Be.current = !0, x("seekTo", [E.current, !0]), x("playVideo");
|
|
3164
3164
|
return;
|
|
3165
3165
|
}
|
|
3166
3166
|
const G = ae();
|
|
3167
|
-
v && (G == null || Math.abs(G - E.current) > 1.5) && R(),
|
|
3167
|
+
v && (G == null || Math.abs(G - E.current) > 1.5) && R(), x(v ? "playVideo" : "pauseVideo");
|
|
3168
3168
|
}, [v, F, H]), Y(() => {
|
|
3169
3169
|
if (!F || r === 0 || H || u) return;
|
|
3170
3170
|
const G = ae();
|
|
3171
|
-
(G == null || Math.abs(G - E.current) > 0.5) && R(), v ||
|
|
3171
|
+
(G == null || Math.abs(G - E.current) > 0.5) && R(), v || x("pauseVideo");
|
|
3172
3172
|
}, [r, F]), Y(() => {
|
|
3173
3173
|
if (!F) return;
|
|
3174
3174
|
let G = null, me = 0;
|
|
3175
3175
|
const V = setInterval(() => {
|
|
3176
3176
|
const Ye = P.current;
|
|
3177
|
-
me =
|
|
3177
|
+
me = b.current === 1 && Ye != null && G != null && Math.abs(Ye - G) < 0.05 ? me + 1 : 0, G = Ye;
|
|
3178
3178
|
const je = me >= 3;
|
|
3179
3179
|
je !== K.current && (K.current = je, I());
|
|
3180
3180
|
}, 1e3);
|
|
3181
3181
|
return () => clearInterval(V);
|
|
3182
|
-
}, [F]), /* @__PURE__ */ f("div", { className: `txyt${
|
|
3182
|
+
}, [F]), /* @__PURE__ */ f("div", { className: `txyt${g ? " txyt--ad" : ""}`, children: [
|
|
3183
3183
|
/* @__PURE__ */ i("iframe", { ref: N, onLoad: Le, 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" }),
|
|
3184
|
-
!
|
|
3185
|
-
/* @__PURE__ */ i("div", { className: `txyt__paused${ue && !
|
|
3186
|
-
|
|
3184
|
+
!g && /* @__PURE__ */ i("div", { "aria-hidden": "true", className: "txyt__tap", onClick: a, style: { cursor: a ? "pointer" : "default" } }),
|
|
3185
|
+
/* @__PURE__ */ i("div", { className: `txyt__paused${ue && !g && !H ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(ri, { size: 44 }) }) }),
|
|
3186
|
+
g && /* @__PURE__ */ i("div", { className: "txyt__ad", "aria-live": "polite", children: "Ad on YouTube · the transcript carries on after it" }),
|
|
3187
3187
|
H && /* @__PURE__ */ f("div", { className: "txyt__gone", children: [
|
|
3188
3188
|
/* @__PURE__ */ i("span", { children: "YouTube no longer has this part of the broadcast" }),
|
|
3189
3189
|
/* @__PURE__ */ i("small", { children: "A live stream can be rewound only 12 hours" })
|
|
@@ -3211,10 +3211,10 @@ function $l(t, e) {
|
|
|
3211
3211
|
const s = z(0), r = z(1), a = qe((o, l) => {
|
|
3212
3212
|
cancelAnimationFrame(s.current);
|
|
3213
3213
|
const c = r.current, d = performance.now(), u = () => {
|
|
3214
|
-
const
|
|
3215
|
-
r.current = c + (o - c) *
|
|
3214
|
+
const h = l > 0 ? Math.min(1, (performance.now() - d) / l) : 1;
|
|
3215
|
+
r.current = c + (o - c) * h;
|
|
3216
3216
|
for (const M of n.current) M.setVolume(r.current);
|
|
3217
|
-
|
|
3217
|
+
h < 1 && (s.current = requestAnimationFrame(u));
|
|
3218
3218
|
};
|
|
3219
3219
|
u();
|
|
3220
3220
|
}, []);
|
|
@@ -3227,14 +3227,14 @@ function $l(t, e) {
|
|
|
3227
3227
|
}
|
|
3228
3228
|
function Bl(t, e, n, s) {
|
|
3229
3229
|
var ye;
|
|
3230
|
-
const r = z(null), a = z(!1), o = z(!1), [l, c] = O(null), [d, u] = O(!0),
|
|
3230
|
+
const r = z(null), a = z(!1), o = z(!1), [l, c] = O(null), [d, u] = O(!0), h = z(!0), M = z(!1), [N, m] = O(0), w = z(0);
|
|
3231
3231
|
w.current = N;
|
|
3232
3232
|
const v = z({ t: 0, at: 0 }), p = z(n);
|
|
3233
3233
|
p.current = n;
|
|
3234
|
-
const
|
|
3235
|
-
|
|
3236
|
-
const [C,
|
|
3237
|
-
k.current = te,
|
|
3234
|
+
const g = z(s);
|
|
3235
|
+
g.current = s;
|
|
3236
|
+
const [C, x] = O(!1), k = z(!1), J = (te) => {
|
|
3237
|
+
k.current = te, x(te);
|
|
3238
3238
|
}, A = (te, H) => {
|
|
3239
3239
|
var X;
|
|
3240
3240
|
return (X = r.current) == null ? void 0 : X.call(r, te, H);
|
|
@@ -3250,12 +3250,12 @@ function Bl(t, e, n, s) {
|
|
|
3250
3250
|
}
|
|
3251
3251
|
}
|
|
3252
3252
|
}), []);
|
|
3253
|
-
$.muted =
|
|
3253
|
+
$.muted = h.current || M.current, Y(() => {
|
|
3254
3254
|
if (l !== 1) return;
|
|
3255
3255
|
let te = 0;
|
|
3256
3256
|
const H = () => {
|
|
3257
3257
|
const X = v.current, y = X.t + Math.min(1.2, (performance.now() - X.at) / 1e3);
|
|
3258
|
-
if (
|
|
3258
|
+
if (g.current != null && y >= g.current) {
|
|
3259
3259
|
J(!0), A("pauseVideo"), m(y);
|
|
3260
3260
|
return;
|
|
3261
3261
|
}
|
|
@@ -3272,8 +3272,8 @@ function Bl(t, e, n, s) {
|
|
|
3272
3272
|
let te = 0;
|
|
3273
3273
|
for (let H = 0; H < t.length; H++) t[H].start <= N + 0.05 && (te = H);
|
|
3274
3274
|
return te;
|
|
3275
|
-
}, [t, N]), [oe, P] = O(0),
|
|
3276
|
-
const H = Math.max(0,
|
|
3275
|
+
}, [t, N]), [oe, P] = O(0), b = (te) => {
|
|
3276
|
+
const H = Math.max(0, g.current != null ? Math.min(te, Math.max(0, g.current - 0.5)) : te);
|
|
3277
3277
|
A("seekTo", [H + p.current, !0]), v.current = { t: H, at: performance.now() }, m(H), P((X) => X + 1);
|
|
3278
3278
|
}, ue = z(!1), B = z(void 0), F = (te) => {
|
|
3279
3279
|
window.clearTimeout(B.current), B.current = window.setTimeout(() => {
|
|
@@ -3302,15 +3302,15 @@ function Bl(t, e, n, s) {
|
|
|
3302
3302
|
J(!1);
|
|
3303
3303
|
return;
|
|
3304
3304
|
}
|
|
3305
|
-
N >= I - 0.25 &&
|
|
3305
|
+
N >= I - 0.25 && b(0), ie();
|
|
3306
3306
|
}, ve = (te) => {
|
|
3307
3307
|
const H = t[Math.max(0, Math.min(t.length - 1, te))];
|
|
3308
|
-
H &&
|
|
3308
|
+
H && b(H.start);
|
|
3309
3309
|
}, Le = z(!1), Te = () => {
|
|
3310
|
-
const te =
|
|
3310
|
+
const te = h.current || M.current;
|
|
3311
3311
|
$.muted = te, A(te ? "mute" : "unMute");
|
|
3312
3312
|
}, we = (te) => {
|
|
3313
|
-
|
|
3313
|
+
h.current = te, u(te), Te();
|
|
3314
3314
|
}, Ee = (te) => {
|
|
3315
3315
|
M.current !== !te && (M.current = !te, Te());
|
|
3316
3316
|
};
|
|
@@ -3336,18 +3336,18 @@ function Bl(t, e, n, s) {
|
|
|
3336
3336
|
toggle: le,
|
|
3337
3337
|
seekRow: ve,
|
|
3338
3338
|
toggleMute: () => {
|
|
3339
|
-
const te = !
|
|
3339
|
+
const te = !h.current;
|
|
3340
3340
|
we(te), !te && !M.current && j.current === 1 && setTimeout(() => {
|
|
3341
|
-
j.current === 2 && !
|
|
3341
|
+
j.current === 2 && !h.current && (we(!0), A("playVideo"));
|
|
3342
3342
|
}, 900);
|
|
3343
3343
|
},
|
|
3344
|
-
seekFrac: (te) =>
|
|
3345
|
-
seekWord: (te) =>
|
|
3344
|
+
seekFrac: (te) => b(Math.max(0, Math.min(1, te)) * I),
|
|
3345
|
+
seekWord: (te) => b(te.start),
|
|
3346
3346
|
playRow: (te) => {
|
|
3347
3347
|
ve(te), K || ie();
|
|
3348
3348
|
},
|
|
3349
3349
|
stop: () => {
|
|
3350
|
-
re(),
|
|
3350
|
+
re(), b(0);
|
|
3351
3351
|
},
|
|
3352
3352
|
engaged: K || N > 0,
|
|
3353
3353
|
prev: () => ve(E - 1),
|
|
@@ -3370,21 +3370,21 @@ function Bl(t, e, n, s) {
|
|
|
3370
3370
|
}
|
|
3371
3371
|
function Hl(t, e, n, s, r = 0, a = null) {
|
|
3372
3372
|
var X;
|
|
3373
|
-
const o = z(null), [l, c] = O(!1), [d, u] = O(0), [
|
|
3374
|
-
N.current =
|
|
3375
|
-
const m = z(!1), [w, v] = O(null), [p,
|
|
3373
|
+
const o = z(null), [l, c] = O(!1), [d, u] = O(0), [h, M] = O(!1), N = z(h);
|
|
3374
|
+
N.current = h;
|
|
3375
|
+
const m = z(!1), [w, v] = O(null), [p, g] = O(!1), C = z(r);
|
|
3376
3376
|
C.current = r;
|
|
3377
|
-
const
|
|
3377
|
+
const x = z(null), [k, J] = O(0);
|
|
3378
3378
|
Y(() => {
|
|
3379
|
-
|
|
3380
|
-
const y =
|
|
3381
|
-
if (
|
|
3379
|
+
g(!1);
|
|
3380
|
+
const y = x.current;
|
|
3381
|
+
if (x.current = null, y || u(0), !t) {
|
|
3382
3382
|
c(!1), o.current = null;
|
|
3383
3383
|
return;
|
|
3384
3384
|
}
|
|
3385
3385
|
const R = ci(t), ae = C.current;
|
|
3386
3386
|
return R.preload = "metadata", R.muted = N.current || m.current, R.onplay = () => c(!0), R.onpause = () => c(!1), R.onended = () => c(!1), R.onloadedmetadata = () => {
|
|
3387
|
-
|
|
3387
|
+
g(!0), R.currentTime = ((y == null ? void 0 : y.t) ?? 0) + ae, y != null && y.playing && R.play().catch((G) => {
|
|
3388
3388
|
y.asked && (G == null ? void 0 : G.name) === "NotAllowedError" || v(wt(G));
|
|
3389
3389
|
});
|
|
3390
3390
|
}, R.onerror = () => {
|
|
@@ -3394,10 +3394,10 @@ function Hl(t, e, n, s, r = 0, a = null) {
|
|
|
3394
3394
|
bl(V == null ? void 0 : V.message) || oi(G), o.current === R && (v({ message: (V == null ? void 0 : V.message) ?? me }), V != null && V.permanent || (o.current = null));
|
|
3395
3395
|
});
|
|
3396
3396
|
}, o.current = R, () => {
|
|
3397
|
-
|
|
3397
|
+
x.current = { t: Math.max(0, R.currentTime - ae), playing: !R.paused && !R.ended }, R.pause(), R.onplay = R.onpause = R.onended = R.onloadedmetadata = R.onerror = null, o.current = null;
|
|
3398
3398
|
};
|
|
3399
3399
|
}, [t, k]), Y(() => () => {
|
|
3400
|
-
|
|
3400
|
+
x.current = null;
|
|
3401
3401
|
}, []);
|
|
3402
3402
|
const A = n.length ? ((X = n[n.length - 1].words[n[n.length - 1].words.length - 1]) == null ? void 0 : X.end) ?? n[n.length - 1].start + 4 : 0, K = r > 0 || s != null && p && o.current != null && Number.isFinite(o.current.duration) && o.current.duration > s + 1, j = !K && p && o.current && Number.isFinite(o.current.duration) && o.current.duration || s || A || 1, S = z(j);
|
|
3403
3403
|
S.current = j;
|
|
@@ -3437,7 +3437,7 @@ function Hl(t, e, n, s, r = 0, a = null) {
|
|
|
3437
3437
|
};
|
|
3438
3438
|
return y = requestAnimationFrame(R), () => cancelAnimationFrame(y);
|
|
3439
3439
|
}, [l]);
|
|
3440
|
-
const
|
|
3440
|
+
const b = Ie(() => {
|
|
3441
3441
|
if (!n.length) return 0;
|
|
3442
3442
|
let y = 0;
|
|
3443
3443
|
for (let R = 0; R < n.length; R++) n[R].start <= d + 0.05 && (y = R);
|
|
@@ -3452,7 +3452,7 @@ function Hl(t, e, n, s, r = 0, a = null) {
|
|
|
3452
3452
|
const y = o.current;
|
|
3453
3453
|
if (!y) {
|
|
3454
3454
|
if (!t && e) {
|
|
3455
|
-
|
|
3455
|
+
x.current = (R = x.current) != null && R.asked ? null : { t: d, playing: !0, asked: !0 };
|
|
3456
3456
|
return;
|
|
3457
3457
|
}
|
|
3458
3458
|
t && J((ae) => ae + 1), v({ message: e ? "The audio player is not ready yet — try again in a moment." : "There is no audio for this transcription." });
|
|
@@ -3514,9 +3514,9 @@ function Hl(t, e, n, s, r = 0, a = null) {
|
|
|
3514
3514
|
},
|
|
3515
3515
|
playing: l,
|
|
3516
3516
|
t: d,
|
|
3517
|
-
idx:
|
|
3517
|
+
idx: b,
|
|
3518
3518
|
dur: j,
|
|
3519
|
-
muted:
|
|
3519
|
+
muted: h,
|
|
3520
3520
|
toggleMute: () => {
|
|
3521
3521
|
const y = !N.current;
|
|
3522
3522
|
N.current = y, o.current && (o.current.muted = y || m.current), M(y);
|
|
@@ -3539,8 +3539,8 @@ function Hl(t, e, n, s, r = 0, a = null) {
|
|
|
3539
3539
|
Math.abs(R.currentTime - ae) <= 0.2 || (Be.current = Date.now(), R.currentTime = ae);
|
|
3540
3540
|
},
|
|
3541
3541
|
engaged: l || d > 0,
|
|
3542
|
-
prev: () => le(
|
|
3543
|
-
next: () => le(
|
|
3542
|
+
prev: () => le(b - 1),
|
|
3543
|
+
next: () => le(b + 1),
|
|
3544
3544
|
hold: Oe,
|
|
3545
3545
|
release: ye,
|
|
3546
3546
|
error: w,
|
|
@@ -3563,11 +3563,11 @@ function Hl(t, e, n, s, r = 0, a = null) {
|
|
|
3563
3563
|
function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
3564
3564
|
const c = z(/* @__PURE__ */ new Set());
|
|
3565
3565
|
c.current = l ?? c.current;
|
|
3566
|
-
const d = z(null), [u,
|
|
3567
|
-
|
|
3568
|
-
const [C,
|
|
3566
|
+
const d = z(null), [u, h] = O(!1), [M, N] = O(0), [m, w] = O(0), [v, p] = O(!1), g = z(v);
|
|
3567
|
+
g.current = v;
|
|
3568
|
+
const [C, x] = O(null), [k, J] = O(null), [A, K] = O(null), [j, S] = O(null), $ = z(j);
|
|
3569
3569
|
$.current = j;
|
|
3570
|
-
const [L, I] = O(null), [E, oe] = O(null), [P,
|
|
3570
|
+
const [L, I] = O(null), [E, oe] = O(null), [P, b] = O(null), [ue, B] = O(!1), F = z(e);
|
|
3571
3571
|
F.current = e;
|
|
3572
3572
|
const ie = z(o), re = z([]);
|
|
3573
3573
|
ie.current = o, d.current && (d.current.flow = o);
|
|
@@ -3577,11 +3577,11 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3577
3577
|
Le.current = a;
|
|
3578
3578
|
const Te = qe((_) => {
|
|
3579
3579
|
_.finite = !0, _.coming = (U) => c.current.has(U), _.readAhead = 6, _.readAheadS = 45, _.onWaiting = (U) => J(U), _.onStarting = (U) => K(U), _.onSentence = (U) => {
|
|
3580
|
-
if (
|
|
3580
|
+
if (h(_.playing), U == null) return;
|
|
3581
3581
|
const W = F.current.findIndex((ee) => ee.sentenceId === U);
|
|
3582
3582
|
W >= 0 && N(W);
|
|
3583
3583
|
}, _.onError = (U) => {
|
|
3584
|
-
|
|
3584
|
+
h(_.playing), x(U 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." });
|
|
3585
3585
|
}, _.gapBefore = (U, W) => {
|
|
3586
3586
|
if (!ie.current) return 0;
|
|
3587
3587
|
const ee = F.current, fe = ee.find((be) => be.sentenceId === U), Ne = ee.find((be) => be.sentenceId === W);
|
|
@@ -3614,10 +3614,10 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3614
3614
|
var W;
|
|
3615
3615
|
if (we.current !== s) {
|
|
3616
3616
|
const ee = we.current != null ? Ee.current : null;
|
|
3617
|
-
we.current = s, (W = d.current) == null || W.stop(), d.current = new cs(), Te(d.current), d.current.setSequence(re.current),
|
|
3617
|
+
we.current = s, (W = d.current) == null || W.stop(), d.current = new cs(), Te(d.current), d.current.setSequence(re.current), h(!1), N(0), x(null), K(null), S(null), H(ee && (ee.playing || ee.t > 0) ? ee : null);
|
|
3618
3618
|
}
|
|
3619
3619
|
const _ = d.current;
|
|
3620
|
-
_.setMuted(
|
|
3620
|
+
_.setMuted(g.current);
|
|
3621
3621
|
for (const ee of t) _.add(ee);
|
|
3622
3622
|
const U = Be.current;
|
|
3623
3623
|
U && (ie.current || t.some((ee) => ee.sentenceId >= (U.sentenceId ?? 0))) && (H(null), te.current(U));
|
|
@@ -3641,7 +3641,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3641
3641
|
const W = ((ze = d.current) == null ? void 0 : ze.resting()) ?? null;
|
|
3642
3642
|
B(!!(W != null && W.silent)), W != null && W.silent && $.current && ($.current = null, S(null)), oe((be) => W == null ? null : be != null && Math.abs(be - W.s) < 0.05 ? be : W.s);
|
|
3643
3643
|
const ee = $.current;
|
|
3644
|
-
W == null ?
|
|
3644
|
+
W == null ? b(null) : ee && ee.sid === W.sentenceId && (b(ee.t), $.current = null, S(null));
|
|
3645
3645
|
const fe = ((Ue = d.current) == null ? void 0 : Ue.position()) ?? null, Ne = fe && Le.current ? Le.current[String(fe.sentenceId)] ?? null : null;
|
|
3646
3646
|
ee && fe && fe.sentenceId === ee.sid && fe.t > 0.1 && S(null), I((be) => fe ? be && Math.abs(be.t - fe.t) < 0.05 && be.dur === fe.dur && be.words === Ne ? be : { t: fe.t, dur: fe.dur, words: Ne } : be == null ? be : null);
|
|
3647
3647
|
};
|
|
@@ -3660,12 +3660,12 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3660
3660
|
Ae.current = M;
|
|
3661
3661
|
const Z = (_) => {
|
|
3662
3662
|
var U, W, ee;
|
|
3663
|
-
(W = d.current) == null || W.play(((U = e[_]) == null ? void 0 : U.sentenceId) ?? null),
|
|
3663
|
+
(W = d.current) == null || W.play(((U = e[_]) == null ? void 0 : U.sentenceId) ?? null), h(!!((ee = d.current) != null && ee.playing));
|
|
3664
3664
|
}, se = (_) => {
|
|
3665
3665
|
var W, ee, fe;
|
|
3666
3666
|
const U = Math.max(0, Math.min(Math.max(0, e.length - 1), _));
|
|
3667
|
-
N(U), Ae.current = U, w((Ne) => Ne + 1), (ee = d.current) == null || ee.seek(((W = e[U]) == null ? void 0 : W.sentenceId) ?? null),
|
|
3668
|
-
},
|
|
3667
|
+
N(U), Ae.current = U, w((Ne) => Ne + 1), (ee = d.current) == null || ee.seek(((W = e[U]) == null ? void 0 : W.sentenceId) ?? null), h(!!((fe = d.current) != null && fe.playing));
|
|
3668
|
+
}, ge = (_) => {
|
|
3669
3669
|
var U;
|
|
3670
3670
|
X(), S(null), (U = d.current) == null || U.startWithin(-1, 0), se(_);
|
|
3671
3671
|
}, Me = (_) => {
|
|
@@ -3697,8 +3697,8 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3697
3697
|
seekN: m,
|
|
3698
3698
|
toggleMute: () => {
|
|
3699
3699
|
var U;
|
|
3700
|
-
const _ = !
|
|
3701
|
-
|
|
3700
|
+
const _ = !g.current;
|
|
3701
|
+
g.current = _, (U = d.current) == null || U.setMuted(_), p(_);
|
|
3702
3702
|
},
|
|
3703
3703
|
toggle: () => {
|
|
3704
3704
|
var U, W, ee;
|
|
@@ -3707,31 +3707,31 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3707
3707
|
return;
|
|
3708
3708
|
}
|
|
3709
3709
|
if (X(), u) {
|
|
3710
|
-
(U = d.current) == null || U.pause(),
|
|
3710
|
+
(U = d.current) == null || U.pause(), h(!1);
|
|
3711
3711
|
return;
|
|
3712
3712
|
}
|
|
3713
|
-
|
|
3713
|
+
x(null);
|
|
3714
3714
|
const _ = Ae.current;
|
|
3715
3715
|
if (!$.current && ((ee = d.current) != null && ee.resume(((W = e[_]) == null ? void 0 : W.sentenceId) ?? null))) {
|
|
3716
|
-
|
|
3716
|
+
h(!0);
|
|
3717
3717
|
return;
|
|
3718
3718
|
}
|
|
3719
3719
|
Z(_);
|
|
3720
3720
|
},
|
|
3721
3721
|
pause: () => {
|
|
3722
3722
|
var _;
|
|
3723
|
-
X(), (_ = d.current) == null || _.pause(),
|
|
3723
|
+
X(), (_ = d.current) == null || _.pause(), h(!1);
|
|
3724
3724
|
},
|
|
3725
3725
|
stop: () => {
|
|
3726
3726
|
var _, U, W;
|
|
3727
|
-
X(), (_ = d.current) == null || _.pause(),
|
|
3727
|
+
X(), (_ = d.current) == null || _.pause(), h(!1), N(0), I(null), (W = d.current) == null || W.seek(((U = e[0]) == null ? void 0 : U.sentenceId) ?? null);
|
|
3728
3728
|
},
|
|
3729
|
-
seekRow:
|
|
3729
|
+
seekRow: ge,
|
|
3730
3730
|
resumeAt: (_) => {
|
|
3731
3731
|
H(_), t.some((U) => U.sentenceId >= (_.sentenceId ?? 0)) && (H(null), te.current(_));
|
|
3732
3732
|
},
|
|
3733
3733
|
seekFrac: (_) => {
|
|
3734
|
-
var Xe,
|
|
3734
|
+
var Xe, Ot, ut;
|
|
3735
3735
|
X();
|
|
3736
3736
|
const U = Math.max(0, Math.min(1, _)) * je;
|
|
3737
3737
|
let W = 0;
|
|
@@ -3746,7 +3746,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3746
3746
|
}
|
|
3747
3747
|
const Ne = (ee == null ? void 0 : ee.sentenceId) ?? null, { from: ze, span: Ue } = Me(W);
|
|
3748
3748
|
let be = Ue > 0 ? Math.max(0, Math.min(1, (U - ze) / Ue)) : 0;
|
|
3749
|
-
const Se = Ne != null ? (
|
|
3749
|
+
const Se = Ne != null ? (Ot = Le.current) == null ? void 0 : Ot[String(Ne)] : void 0, st = Se != null && Se.length ? Se[Se.length - 1][1] : 0;
|
|
3750
3750
|
if (ee && Se && Se.length === ee.words.length && st > 0) {
|
|
3751
3751
|
let Ge = 0;
|
|
3752
3752
|
for (let He = 0; He < ee.words.length; He++) ee.words[He].start <= U && (Ge = He);
|
|
@@ -3770,11 +3770,11 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3770
3770
|
},
|
|
3771
3771
|
prev: () => {
|
|
3772
3772
|
const _ = me(V - 1, -1);
|
|
3773
|
-
_ != null &&
|
|
3773
|
+
_ != null && ge(_);
|
|
3774
3774
|
},
|
|
3775
3775
|
next: () => {
|
|
3776
3776
|
const _ = me(V + 1, 1);
|
|
3777
|
-
_ != null &&
|
|
3777
|
+
_ != null && ge(_);
|
|
3778
3778
|
},
|
|
3779
3779
|
hold: () => {
|
|
3780
3780
|
var _;
|
|
@@ -3783,7 +3783,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3783
3783
|
release: () => {
|
|
3784
3784
|
Ve.current && (Ve.current = !1, Z(Ae.current));
|
|
3785
3785
|
},
|
|
3786
|
-
clearError: () =>
|
|
3786
|
+
clearError: () => x(null),
|
|
3787
3787
|
setVolume: (_) => {
|
|
3788
3788
|
var U;
|
|
3789
3789
|
return (U = d.current) == null ? void 0 : U.setVolume(_);
|
|
@@ -3795,7 +3795,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3795
3795
|
if (U == null) return;
|
|
3796
3796
|
N(_), Ae.current = _, S(null), $.current = null, (fe = d.current) == null || fe.joinSilently(U);
|
|
3797
3797
|
const W = ((Ne = d.current) == null ? void 0 : Ne.resting()) ?? null;
|
|
3798
|
-
oe((W == null ? void 0 : W.s) ?? null), B(!!(W != null && W.silent)),
|
|
3798
|
+
oe((W == null ? void 0 : W.s) ?? null), B(!!(W != null && W.silent)), h(!!((ze = d.current) != null && ze.playing));
|
|
3799
3799
|
}
|
|
3800
3800
|
return xe.joinAt = o ? (_) => {
|
|
3801
3801
|
X(), Ce(yn({ t: _, playing: !0, sentenceId: null, offset: 0, ended: !1 }, e, je).index);
|
|
@@ -3811,20 +3811,20 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3811
3811
|
}
|
|
3812
3812
|
const Wl = () => {
|
|
3813
3813
|
}, Fl = "The language this recording is read aloud in.", Gl = { title: "READ IN", note: "The transcript and its voice switch to this language." };
|
|
3814
|
-
function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: d, setPickedLang: u, side:
|
|
3814
|
+
function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: d, setPickedLang: u, side: h, hearOriginal: M = !1, timed: N = !1, stockVoices: m = !1, stickyPicker: w = !1, pickerBusy: v = null, voiceSheet: p }) {
|
|
3815
3815
|
var tn, nn, sn, Gt;
|
|
3816
|
-
const { onAddVoice:
|
|
3816
|
+
const { onAddVoice: g, onPickVoice: C, onSelectSpeaker: x, noCloneFor: k, castNoClone: J, castShort: A, castBuilding: K, castWarn: j, badge: S, titleNode: $ } = p ?? {}, L = !!p, I = !!(p != null && p.pendingClones), [E, oe] = hi(), [P, b] = O(null), [ue, B] = O(!1), [F, ie] = O(!1), [re, le] = O(!1), [ve, Le] = O(!1), Te = d ?? l, we = d === null, Ee = d != null || P != null, Oe = ((Q) => !!Q && !!(o != null && o.voice.includes(Q)))(we ? l : Te) ? we ? l : Te : "en", ye = Sl(Oe), te = (p == null ? void 0 : p.cloneOn) ?? !0, [H, X] = O(0), y = z(te);
|
|
3817
3817
|
Y(() => {
|
|
3818
3818
|
y.current !== te && (y.current = te, X((Q) => Q + 1));
|
|
3819
3819
|
}, [te]);
|
|
3820
|
-
const R = Ml(Oe, Ee || r || F,
|
|
3821
|
-
const Q = Wr(
|
|
3820
|
+
const R = Ml(Oe, Ee || r || F, gl(e) * 1e3 + H, { id: t ?? null, shareCode: a.shareCode ?? null }), ae = Ie(() => ((R == null ? void 0 : R.voices) ?? []).filter((Q) => L || !Q.cloned || Q.speaker != null), [R, L]), G = ae.length > 1, me = Ns(o, Te), V = vi(), Ye = Ie(() => fi(o, "translation"), [o]), [je, Ve] = O(null), [Ae] = O(() => /* @__PURE__ */ new Set()), [Z, se] = O({}), ge = Ie(() => ol(n, e, V.vcUnknownSpk), [n, e, V]), Me = G && ge.filter((Q) => Q.key >= 0).length > 1, ce = je != null && ge.some((Q) => Q.key === je) ? je : ((tn = ge[0]) == null ? void 0 : tn.key) ?? null, ke = Ie(() => {
|
|
3821
|
+
const Q = Wr(ge, ae, te);
|
|
3822
3822
|
for (const [De, $e] of Object.entries(Z[Oe ?? ""] ?? {})) Q.set(Number(De), $e);
|
|
3823
3823
|
return Q;
|
|
3824
|
-
}, [
|
|
3824
|
+
}, [ge, ae, Z, Oe, te]), We = Me && Object.keys(Z[Oe ?? ""] ?? {}).length > 0, xe = Ie(() => m && !We ? Wr(ge, ae, !1) : null, [m, We, ge, ae]), Ce = Ie(() => We ? Hr(ke) || null : xe && Hr(xe) || null, [We, ke, xe]), _ = We ? ke : xe, U = ae.some((Q) => Q.cloned && Q.consent !== "pending"), W = !!Te && !!(o != null && o.voice.includes(Te)), ee = W && !M, fe = Ie(
|
|
3825
3825
|
() => n.filter((Q) => !Q.suppressed && !Q.unclear).map((Q) => Q.sentenceId).filter((Q) => Q != null),
|
|
3826
3826
|
[n]
|
|
3827
|
-
), Ne =
|
|
3827
|
+
), Ne = hl({ recordingId: t, lang: Te, ended: r, cred: a, pickedVoice: Ce ?? P, sentenceIds: r && ee ? fe : void 0 }), ze = ae.find((Q) => Q.id === P) ?? ae.find((Q) => {
|
|
3828
3828
|
var De;
|
|
3829
3829
|
return Q.id === ((De = Ne.track) == null ? void 0 : De.voice);
|
|
3830
3830
|
}) ?? ae.find((Q) => Q.default) ?? ae[0] ?? null, Ue = (ze == null ? void 0 : ze.id) ?? null;
|
|
@@ -3841,7 +3841,7 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3841
3841
|
}, [Se.idx]), Y(() => {
|
|
3842
3842
|
!ve || !Se.has || (Le(!1), Se.playing || Se.toggle());
|
|
3843
3843
|
}, [ve, Se.has]);
|
|
3844
|
-
const st = Ne.rendering, Xe = st ? null : Ne.failed ?? null,
|
|
3844
|
+
const st = Ne.rendering, Xe = st ? null : Ne.failed ?? null, Ot = !1, ut = Ee && ee, Ge = Ee && !we && ee && !(Ne.listed && Ne.listed.lang === Te && Ne.listed.recordingId === t), Qe = {
|
|
3845
3845
|
...Se,
|
|
3846
3846
|
has: Se.has || ut && r,
|
|
3847
3847
|
toggle: () => {
|
|
@@ -3854,53 +3854,53 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3854
3854
|
}, rt = () => B(!0), He = () => {
|
|
3855
3855
|
B(!1), ie(re), le(!1);
|
|
3856
3856
|
}, Lt = (Q) => {
|
|
3857
|
-
if (u(Q), oe(Q), !((
|
|
3857
|
+
if (u(Q), oe(Q), !((h || w) && !re)) {
|
|
3858
3858
|
if (Q != null) {
|
|
3859
3859
|
He();
|
|
3860
3860
|
return;
|
|
3861
3861
|
}
|
|
3862
3862
|
ye.reset(), B(!1), ie(!1), le(!1);
|
|
3863
3863
|
}
|
|
3864
|
-
},
|
|
3864
|
+
}, gt = () => {
|
|
3865
3865
|
ye.reset(), ie(!0);
|
|
3866
3866
|
}, Bt = () => {
|
|
3867
3867
|
ye.reset(), ie(!1);
|
|
3868
|
-
}, ne = ue && !re,
|
|
3868
|
+
}, ne = ue && !re, pt = F || ue && re, D = () => {
|
|
3869
3869
|
if (ne) {
|
|
3870
3870
|
B(!1);
|
|
3871
3871
|
return;
|
|
3872
3872
|
}
|
|
3873
3873
|
ye.reset(), ie(!1), le(!1), B(!0);
|
|
3874
3874
|
}, Xt = () => {
|
|
3875
|
-
if (ye.reset(),
|
|
3875
|
+
if (ye.reset(), pt) {
|
|
3876
3876
|
ie(!1), B(!1), le(!1);
|
|
3877
3877
|
return;
|
|
3878
3878
|
}
|
|
3879
3879
|
B(!1), le(!1), ie(!0);
|
|
3880
|
-
},
|
|
3880
|
+
}, Ct = (Q) => {
|
|
3881
3881
|
if (ye.reset(), ie(Me), (Te !== Oe || we) && u(Oe), Ne.forget(), Le(!0), Me && ce != null && Oe) {
|
|
3882
3882
|
const De = new Map(ke);
|
|
3883
|
-
De.set(ce, Q), se(($e) => ({ ...$e, [Oe]: Object.fromEntries(De) })),
|
|
3883
|
+
De.set(ce, Q), se(($e) => ({ ...$e, [Oe]: Object.fromEntries(De) })), b(null);
|
|
3884
3884
|
return;
|
|
3885
3885
|
}
|
|
3886
|
-
|
|
3887
|
-
}, at = we ? { ...Ns(o, null), flag: /* @__PURE__ */ i(de, { d: q.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : me,
|
|
3886
|
+
b(Q);
|
|
3887
|
+
}, at = we ? { ...Ns(o, null), flag: /* @__PURE__ */ i(de, { d: q.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : me, bt = c ? h ? /* @__PURE__ */ i("span", { className: "barchip", style: ne ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(wn, { flag: at.flag, code: at.code, bordered: !1, onClick: D, style: Fr }) }) : /* @__PURE__ */ i(wn, { flag: at.flag, code: at.code, bordered: !1, onClick: rt, style: Fr }) : null, zn = q.voiceClone, Ht = Ee && (!!Ne.track || st), Ke = Xe ? "var(--conf-low)" : Ht || h && pt ? "var(--brand)" : "var(--ink-55)", ot = st || !!Se.preparing && Ee, Vt = Se.preparing ? `Speaking this line in ${(ze == null ? void 0 : ze.name) ?? "this voice"}…` : st ? `Preparing this recording in ${(ze == null ? void 0 : ze.name) ?? "this voice"} — it will play as soon as it is ready` : Xe ? `This voice could not be prepared: ${Xe}` : W ? G ? "Choose a voice" : ze ? ze.name : V.vcNoVoice + me.label : `${V.vcNoVoice}${me.label}`, ht = /* @__PURE__ */ i(Ba, { open: ue, onClose: He, keepOpen: (!!h || w) && !re, value: we ? null : Te, onSelect: Lt, languages: Ye, title: (h == null ? void 0 : h.title) ?? "SPOKEN LANGUAGE", note: (h == null ? void 0 : h.note) ?? Fl, searchPlaceholder: V.search, none: "Original", pinned: (we ? l : Te) ? [we ? l : Te] : [], recent: E, requireVoice: re, sticky: w, busy: v }), dt = Ie(() => ae.filter((Q) => Q.cloned && !Q.auto), [ae]), _t = (Q) => Q.voiceId ? dt.find((De) => De.id === `clone:${Q.voiceId}`) ?? null : null, lt = Ie(() => ge.filter((Q) => Q.key >= 0), [ge]), Wt = Ie(() => {
|
|
3888
3888
|
const Q = ae.filter(($e) => !$e.cloned);
|
|
3889
3889
|
if (!Me) return [...Q, ...r && lt.length === 1 ? dt.filter(($e) => $e.id === `clone:${lt[0].voiceId}`) : []];
|
|
3890
3890
|
const De = [];
|
|
3891
3891
|
for (const $e of lt) {
|
|
3892
3892
|
if (_t($e)) continue;
|
|
3893
|
-
const
|
|
3894
|
-
!
|
|
3893
|
+
const zt = ae.find((St) => St.cloned && St.auto && St.speaker === $e.key);
|
|
3894
|
+
!zt || zt.ready === !1 || zt.consent === "pending" && !I || De.push({ id: zt.id, name: $e.name, cloned: !0, default: !1, live: !0, auto: !0, gender: $e.sex ?? zt.gender ?? null, speaker: $e.key, consent: zt.consent ?? null });
|
|
3895
3895
|
}
|
|
3896
3896
|
return [...Q, ...dt, ...De];
|
|
3897
3897
|
}, [ae, dt, Me, lt, I, r]), it = Me ? lt.find((Q) => Q.key === ce) ?? null : null, Ft = (Q) => {
|
|
3898
3898
|
var De;
|
|
3899
3899
|
return Q ? ((De = ae.find(($e) => $e.id === Q)) == null ? void 0 : De.gender) ?? null : null;
|
|
3900
|
-
}, kt = it ? it.sex ?? Ft(ke.get(it.key)) : null, Ze = Ie(() => it ? Wt.filter((Q) => Q.cloned ? Q.live ? Q.speaker === it.key : Q.id === `clone:${it.voiceId}` : !0) : Wt, [Wt, it, kt, lt]),
|
|
3900
|
+
}, kt = it ? it.sex ?? Ft(ke.get(it.key)) : null, Ze = Ie(() => it ? Wt.filter((Q) => Q.cloned ? Q.live ? Q.speaker === it.key : Q.id === `clone:${it.voiceId}` : !0) : Wt, [Wt, it, kt, lt]), xt = (Q) => ae.find((De) => De.cloned && De.auto && De.speaker === Q) ?? null, mt = { people: lt, gvList: ae, autoOf: xt, savedFor: _t }, Dt = (S == null ? void 0 : S(mt)) ?? 0, et = j ? lt.map((Q) => j(Q, mt)).filter((Q) => !!Q) : [], en = /* @__PURE__ */ f("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": h ? pt : void 0, title: ot || Xe ? Vt : void 0, style: { cursor: "pointer", background: Ht || ot || h && pt ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: h && pt ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: h ? Xt : gt, children: [
|
|
3901
3901
|
ot ? /* @__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(de, { d: zn, size: 17, sw: 1.6, style: { color: Ke } }),
|
|
3902
|
-
et.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: et.join(" · "), children: "!" }) : !!
|
|
3903
|
-
] }),
|
|
3902
|
+
et.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: et.join(" · "), children: "!" }) : !!Dt && /* @__PURE__ */ i("span", { className: "txvoice__n", title: `${Dt} speaker${Dt === 1 ? "" : "s"} can get a cloned voice`, children: Dt })
|
|
3903
|
+
] }), vt = /* @__PURE__ */ i($t, { open: F, onClose: Bt, title: V.vcSheet, titleNode: $, doneLabel: V.done, children: /* @__PURE__ */ i(
|
|
3904
3904
|
cl,
|
|
3905
3905
|
{
|
|
3906
3906
|
t: V,
|
|
@@ -3908,25 +3908,25 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3908
3908
|
ll,
|
|
3909
3909
|
{
|
|
3910
3910
|
t: V,
|
|
3911
|
-
roster:
|
|
3911
|
+
roster: ge,
|
|
3912
3912
|
selected: ce,
|
|
3913
3913
|
onSelect: (Q) => {
|
|
3914
|
-
ye.reset(), Ve(Q),
|
|
3914
|
+
ye.reset(), Ve(Q), x == null || x(Q);
|
|
3915
3915
|
},
|
|
3916
|
-
noClone: (Q) => !!(J != null && J(Q,
|
|
3917
|
-
short: (Q) => !!(A != null && A(Q,
|
|
3918
|
-
warn: (Q) => (j == null ? void 0 : j(Q,
|
|
3919
|
-
building: (Q) => !_t(Q) && (ae.some((De) => De.cloned && De.speaker === Q.key && De.ready === !1) || !!(K != null && K(Q,
|
|
3916
|
+
noClone: (Q) => !!(J != null && J(Q, mt)),
|
|
3917
|
+
short: (Q) => !!(A != null && A(Q, mt)),
|
|
3918
|
+
warn: (Q) => (j == null ? void 0 : j(Q, mt)) ?? null,
|
|
3919
|
+
building: (Q) => !_t(Q) && (ae.some((De) => De.cloned && De.speaker === Q.key && De.ready === !1) || !!(K != null && K(Q, mt))),
|
|
3920
3920
|
sexOf: (Q) => Q.sex ?? Ft(ke.get(Q.key))
|
|
3921
3921
|
}
|
|
3922
3922
|
),
|
|
3923
3923
|
voices: Ze,
|
|
3924
3924
|
onAdd: (Q) => {
|
|
3925
|
-
ye.reset(),
|
|
3925
|
+
ye.reset(), g == null || g(Q);
|
|
3926
3926
|
},
|
|
3927
|
-
noClone: it && !Ze.some((Q) => Q.cloned) ? (k == null ? void 0 : k(it,
|
|
3927
|
+
noClone: it && !Ze.some((Q) => Q.cloned) ? (k == null ? void 0 : k(it, xt(it.key), mt)) ?? null : null,
|
|
3928
3928
|
usedBy: Me && ce != null ? (Q) => {
|
|
3929
|
-
const De =
|
|
3929
|
+
const De = ge.filter(($e) => $e.key !== ce && ke.get($e.key) === Q.id);
|
|
3930
3930
|
return De.length ? De.map(($e) => $e.name).join(", ") : null;
|
|
3931
3931
|
} : void 0,
|
|
3932
3932
|
foldKey: ce,
|
|
@@ -3946,39 +3946,39 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3946
3946
|
}
|
|
3947
3947
|
ye.arm(Q);
|
|
3948
3948
|
},
|
|
3949
|
-
onUse:
|
|
3949
|
+
onUse: Ct
|
|
3950
3950
|
}
|
|
3951
|
-
) }), In =
|
|
3951
|
+
) }), In = h ? null : /* @__PURE__ */ f(Pe, { children: [
|
|
3952
3952
|
ht,
|
|
3953
|
-
|
|
3954
|
-
] }), On =
|
|
3953
|
+
vt
|
|
3954
|
+
] }), On = h && (ue || F) ? /* @__PURE__ */ i("div", { className: "vs-side", children: ue ? ht : vt }) : null, jt = ut && Xe ? `This voice could not be prepared: ${Xe}` : null, Cn = Ot;
|
|
3955
3955
|
return {
|
|
3956
|
-
barChip: { flag: at.flag, code: at.code, label: at.label, onClick:
|
|
3956
|
+
barChip: { flag: at.flag, code: at.code, label: at.label, onClick: h || w ? D : rt, active: !!((h || w) && ne), can: c },
|
|
3957
3957
|
sheetsOpen: ue || F,
|
|
3958
3958
|
on: ut,
|
|
3959
3959
|
player: Qe,
|
|
3960
|
-
chip:
|
|
3960
|
+
chip: bt,
|
|
3961
3961
|
voiceBtn: en,
|
|
3962
3962
|
sheets: In,
|
|
3963
3963
|
sidePanel: On,
|
|
3964
|
-
voicesMine:
|
|
3964
|
+
voicesMine: pt,
|
|
3965
3965
|
toggleVoices: Xt,
|
|
3966
3966
|
cloningOn: te,
|
|
3967
|
-
playTitle:
|
|
3968
|
-
noVoice:
|
|
3967
|
+
playTitle: jt,
|
|
3968
|
+
noVoice: Ot,
|
|
3969
3969
|
noVoiceNote: Cn,
|
|
3970
3970
|
relang: Ge,
|
|
3971
3971
|
sampling: ye.sampleId != null,
|
|
3972
3972
|
error: ye.error,
|
|
3973
3973
|
clearError: () => ye.clearError(),
|
|
3974
|
-
openVoices:
|
|
3974
|
+
openVoices: gt,
|
|
3975
3975
|
openPicker: rt,
|
|
3976
3976
|
original: we,
|
|
3977
3977
|
reloadVoices: () => X((Q) => Q + 1),
|
|
3978
3978
|
voicesVer: H,
|
|
3979
3979
|
people: lt,
|
|
3980
3980
|
gvList: ae,
|
|
3981
|
-
autoOf:
|
|
3981
|
+
autoOf: xt,
|
|
3982
3982
|
savedFor: _t,
|
|
3983
3983
|
closeVoices: Bt,
|
|
3984
3984
|
setSheet: ie,
|
|
@@ -4001,12 +4001,12 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
4001
4001
|
langList: { value: we ? null : Te, onSelect: Lt, languages: Ye, searchPlaceholder: V.search, none: "Original", pinned: (we ? l : Te) ? [we ? l : Te] : [], recent: E }
|
|
4002
4002
|
};
|
|
4003
4003
|
}
|
|
4004
|
-
function ql({ model: t, rows: e, player: n, fixed: s, applied: r, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: d, marks: u = !0, fixBadges:
|
|
4004
|
+
function ql({ model: t, rows: e, player: n, fixed: s, applied: r, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: d, marks: u = !0, fixBadges: h = !0, tail: M, tailFg: N, running: m, desk: w, feedRef: v, listener: p, showLabels: g, find: C, findOpen: x, lang: k, warm: J, onVisible: A, wordHl: K = !0 }) {
|
|
4005
4005
|
const { playing: j, engaged: S, t: $, idx: L, seekN: I, wordSync: E, clipPos: oe } = n;
|
|
4006
4006
|
kl(!0, v);
|
|
4007
4007
|
const P = z(null);
|
|
4008
4008
|
Ko(v, P);
|
|
4009
|
-
const [
|
|
4009
|
+
const [b, ue] = O(null), B = (C ?? "").trim().toLowerCase(), [F, ie] = O(0), re = z(0), le = z(null), ve = z(L), Le = (H) => {
|
|
4010
4010
|
var X;
|
|
4011
4011
|
return ((X = v.current) == null ? void 0 : X.querySelector(`[data-tx-row="${H}"]`)) ?? null;
|
|
4012
4012
|
}, Te = z("");
|
|
@@ -4050,8 +4050,8 @@ function ql({ model: t, rows: e, player: n, fixed: s, applied: r, onFixOpen: a,
|
|
|
4050
4050
|
return;
|
|
4051
4051
|
}
|
|
4052
4052
|
const Ae = performance.now(), Z = 360, se = () => {
|
|
4053
|
-
const
|
|
4054
|
-
X.scrollTop = me + (Ve - me) * (1 - Math.pow(1 -
|
|
4053
|
+
const ge = Math.min(1, (performance.now() - Ae) / Z);
|
|
4054
|
+
X.scrollTop = me + (Ve - me) * (1 - Math.pow(1 - ge, 3)), le.current = ge < 1 ? requestAnimationFrame(se) : null;
|
|
4055
4055
|
};
|
|
4056
4056
|
le.current = requestAnimationFrame(se);
|
|
4057
4057
|
};
|
|
@@ -4082,28 +4082,28 @@ function ql({ model: t, rows: e, player: n, fixed: s, applied: r, onFixOpen: a,
|
|
|
4082
4082
|
/* @__PURE__ */ i(de, { 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 }),
|
|
4083
4083
|
"Now playing"
|
|
4084
4084
|
] }) });
|
|
4085
|
-
return /* @__PURE__ */ f("div", { ref: v, "data-tx-feed": "1", className: `txfeed${w ? " txfeed--desk" : ""}${
|
|
4085
|
+
return /* @__PURE__ */ f("div", { ref: v, "data-tx-feed": "1", className: `txfeed${w ? " txfeed--desk" : ""}${x && !m ? " is-find" : ""}`, children: [
|
|
4086
4086
|
/* @__PURE__ */ i(Jo, { thumbRef: P }),
|
|
4087
4087
|
j && F === -1 && te("up"),
|
|
4088
4088
|
e.map((H, X) => {
|
|
4089
4089
|
var ce;
|
|
4090
4090
|
const y = j && X === L, R = S && X === L, ae = !!d && d === H.id, G = B && !H.text.toLowerCase().includes(B) && !(k && ((ce = H.translations[k]) != null && ce.toLowerCase().includes(B))) ? 0.22 : !S || X <= L || ae ? 1 : 0.38, me = p ? () => n.playRow(X) : c && l ? () => {
|
|
4091
4091
|
j && !y && n.seekRow(X), l(H);
|
|
4092
|
-
} : j && y ? void 0 : () => n.playRow(X), V = p ? null : tl(H, r, s), Ye = !!V && (V.script > 0 || V.manual), je = w && !!a &&
|
|
4092
|
+
} : j && y ? void 0 : () => n.playRow(X), V = p ? null : tl(H, r, s), Ye = !!V && (V.script > 0 || V.manual), je = w && !!a && b === H.id && !!V && !Ye, Ve = zs(t, H.speaker), Ae = Is(t, H.speaker), Z = Ae.lane, se = k && H.translations[k] && H.language !== k ? H.translations[k] : null, ge = bi(e, X, k), Me = R && !E && oe ? Mi(ge.map((ke) => ({ t: ke.text, sp: " " })), oe) : null;
|
|
4093
4093
|
return /* @__PURE__ */ f("div", { "data-tx-row": X, "data-sentence": H.sentenceId, className: `txline${J ? " txline--warm" : ""}${ae ? " txline--fixing" : ""}`, "aria-current": ae || void 0, style: { opacity: G }, onClick: me, onMouseEnter: w && a ? () => ue(H.id) : void 0, onMouseLeave: w && a ? () => ue(null) : void 0, children: [
|
|
4094
4094
|
/* @__PURE__ */ f("div", { className: "txline__meta", children: [
|
|
4095
4095
|
/* @__PURE__ */ i("span", { className: "txline__at", children: Tt(H.start) }),
|
|
4096
|
-
|
|
4096
|
+
g && H.speaker >= 0 && /* @__PURE__ */ f(Pe, { children: [
|
|
4097
4097
|
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${Z}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: mi(t, H.speaker) }),
|
|
4098
4098
|
/* @__PURE__ */ i("span", { className: `txline__who lane-${Z}`, style: Ae.fg ? { color: Ae.fg } : void 0, children: Ve }),
|
|
4099
4099
|
Ae.hasVoice && /* @__PURE__ */ i(Ii, { color: Ae.fg ?? `var(--lane-${Z})` })
|
|
4100
4100
|
] }),
|
|
4101
|
-
y && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(de, { d: q.headphones, size: w ? 15 : 14, sw: 1.6, stroke:
|
|
4102
|
-
V &&
|
|
4101
|
+
y && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(de, { d: q.headphones, size: w ? 15 : 14, sw: 1.6, stroke: g && H.speaker >= 0 ? Ae.fg ?? `var(--lane-${Z})` : "var(--ink-45)" }) }),
|
|
4102
|
+
V && h && /* @__PURE__ */ i(nl, { f: V, desk: w, onOpen: a ? () => a(H, !0) : void 0 }),
|
|
4103
4103
|
je && /* @__PURE__ */ i(sl, { alone: !0, onOpen: () => a == null ? void 0 : a(H, !1) })
|
|
4104
4104
|
] }),
|
|
4105
|
-
/* @__PURE__ */ i("div", { className: "txline__text", children:
|
|
4106
|
-
const xe = `${ke.seq}:${ke.idx}`, Ce = Lo(ke.prob), _ = R && K, U = _ && (E ? $ >= ke.start && ($ < ke.end || We ===
|
|
4105
|
+
/* @__PURE__ */ i("div", { className: "txline__text", children: ge.map((ke, We) => {
|
|
4106
|
+
const xe = `${ke.seq}:${ke.idx}`, Ce = Lo(ke.prob), _ = R && K, U = _ && (E ? $ >= ke.start && ($ < ke.end || We === ge.length - 1 || $ < ge[We + 1].start) : We === Me), W = _ && !U && (E ? ke.start > $ : Me != null && We > Me), ee = !se && !p && (!!(s != null && s.has(xe)) || !!ke.script), fe = !se && !p && u && !!Ce && !ee, Ne = fe ? Ce === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, ze = ee ? "var(--brand)" : W ? "var(--ink-40)" : Ne ?? "var(--ink-96)";
|
|
4107
4107
|
return /* @__PURE__ */ f("span", { children: [
|
|
4108
4108
|
/* @__PURE__ */ i(
|
|
4109
4109
|
"span",
|
|
@@ -4164,18 +4164,18 @@ function Jl(t, e, n, s, r) {
|
|
|
4164
4164
|
}, [e, d]), Y(() => {
|
|
4165
4165
|
const u = t.current;
|
|
4166
4166
|
if (!u) return;
|
|
4167
|
-
let
|
|
4167
|
+
let h = u.scrollTop, M = 0, N = 0;
|
|
4168
4168
|
const m = () => {
|
|
4169
4169
|
N = Date.now() + 1500;
|
|
4170
4170
|
}, w = (p) => {
|
|
4171
4171
|
p.buttons && m();
|
|
4172
4172
|
}, v = () => {
|
|
4173
|
-
const p = u.scrollTop,
|
|
4174
|
-
if (
|
|
4173
|
+
const p = u.scrollTop, g = p - h;
|
|
4174
|
+
if (h = p, Date.now() > N) {
|
|
4175
4175
|
M = 0;
|
|
4176
4176
|
return;
|
|
4177
4177
|
}
|
|
4178
|
-
M =
|
|
4178
|
+
M = g < 0 == M < 0 ? M + g : g, M < -14 && !a.current ? (M = 0, r(!0)) : M > 56 && a.current && !o.current.trim() && (M = 0, r(!1));
|
|
4179
4179
|
};
|
|
4180
4180
|
return u.addEventListener("wheel", m, { passive: !0 }), u.addEventListener("touchmove", m, { passive: !0 }), u.addEventListener("pointermove", w), u.addEventListener("scroll", v, { passive: !0 }), () => {
|
|
4181
4181
|
u.removeEventListener("wheel", m), u.removeEventListener("touchmove", m), u.removeEventListener("pointermove", w), u.removeEventListener("scroll", v);
|
|
@@ -4239,52 +4239,52 @@ function nc(t) {
|
|
|
4239
4239
|
for (let L = 236; a.length < r; L ^= 253) o(L, 8);
|
|
4240
4240
|
const l = [];
|
|
4241
4241
|
for (let L = 0; L < a.length; L += 8) l.push(a.slice(L, L + 8).reduce((I, E) => I << 1 | E, 0));
|
|
4242
|
-
const c = Jt.blocks[n], d = Jt.perBlock[n], u = Math.floor(xi(n) / 8),
|
|
4242
|
+
const c = Jt.blocks[n], d = Jt.perBlock[n], u = Math.floor(xi(n) / 8), h = c - u % c, M = Math.floor(u / c), N = [], m = Xl(d);
|
|
4243
4243
|
for (let L = 0, I = 0; L < c; L++) {
|
|
4244
|
-
const E = l.slice(I, I + M - d + (L <
|
|
4244
|
+
const E = l.slice(I, I + M - d + (L < h ? 0 : 1));
|
|
4245
4245
|
I += E.length;
|
|
4246
4246
|
const oe = ec(E, m);
|
|
4247
|
-
L <
|
|
4247
|
+
L < h && E.push(0), N.push(E.concat(oe));
|
|
4248
4248
|
}
|
|
4249
4249
|
const w = [];
|
|
4250
4250
|
for (let L = 0; L < N[0].length; L++) N.forEach((I, E) => {
|
|
4251
|
-
(L !== M - d || E >=
|
|
4251
|
+
(L !== M - d || E >= h) && w.push(I[L]);
|
|
4252
4252
|
});
|
|
4253
|
-
const v = Array.from({ length: s }, () => new Array(s).fill(!1)), p = Array.from({ length: s }, () => new Array(s).fill(!1)),
|
|
4253
|
+
const v = Array.from({ length: s }, () => new Array(s).fill(!1)), p = Array.from({ length: s }, () => new Array(s).fill(!1)), g = (L, I, E) => {
|
|
4254
4254
|
v[I][L] = E, p[I][L] = !0;
|
|
4255
4255
|
};
|
|
4256
4256
|
for (let L = 0; L < s; L++)
|
|
4257
|
-
|
|
4257
|
+
g(6, L, L % 2 === 0), g(L, 6, L % 2 === 0);
|
|
4258
4258
|
const C = (L, I) => {
|
|
4259
4259
|
for (let E = -4; E <= 4; E++) for (let oe = -4; oe <= 4; oe++) {
|
|
4260
|
-
const P = Math.max(Math.abs(oe), Math.abs(E)),
|
|
4261
|
-
|
|
4260
|
+
const P = Math.max(Math.abs(oe), Math.abs(E)), b = L + oe, ue = I + E;
|
|
4261
|
+
b >= 0 && b < s && ue >= 0 && ue < s && g(b, ue, P !== 2 && P !== 4);
|
|
4262
4262
|
}
|
|
4263
4263
|
};
|
|
4264
4264
|
C(3, 3), C(s - 4, 3), C(3, s - 4);
|
|
4265
|
-
const
|
|
4266
|
-
for (let L = 0; L <
|
|
4267
|
-
if (!(L === 0 && I === 0 || L === 0 && I ===
|
|
4268
|
-
for (let E = -2; E <= 2; E++) for (let oe = -2; oe <= 2; oe++)
|
|
4265
|
+
const x = tc(n);
|
|
4266
|
+
for (let L = 0; L < x.length; L++) for (let I = 0; I < x.length; I++)
|
|
4267
|
+
if (!(L === 0 && I === 0 || L === 0 && I === x.length - 1 || L === x.length - 1 && I === 0))
|
|
4268
|
+
for (let E = -2; E <= 2; E++) for (let oe = -2; oe <= 2; oe++) g(x[L] + oe, x[I] + E, Math.max(Math.abs(oe), Math.abs(E)) !== 1);
|
|
4269
4269
|
const k = (L) => {
|
|
4270
4270
|
const I = Jt.formatBits << 3 | L;
|
|
4271
4271
|
let E = I;
|
|
4272
|
-
for (let
|
|
4273
|
-
const oe = (I << 10 | E) ^ 21522, P = (
|
|
4274
|
-
for (let
|
|
4275
|
-
|
|
4276
|
-
for (let
|
|
4277
|
-
for (let
|
|
4278
|
-
for (let
|
|
4279
|
-
|
|
4272
|
+
for (let b = 0; b < 10; b++) E = E << 1 ^ (E >>> 9) * 1335;
|
|
4273
|
+
const oe = (I << 10 | E) ^ 21522, P = (b) => (oe >>> b & 1) !== 0;
|
|
4274
|
+
for (let b = 0; b <= 5; b++) g(8, b, P(b));
|
|
4275
|
+
g(8, 7, P(6)), g(8, 8, P(7)), g(7, 8, P(8));
|
|
4276
|
+
for (let b = 9; b < 15; b++) g(14 - b, 8, P(b));
|
|
4277
|
+
for (let b = 0; b < 8; b++) g(s - 1 - b, 8, P(b));
|
|
4278
|
+
for (let b = 8; b < 15; b++) g(8, s - 15 + b, P(b));
|
|
4279
|
+
g(8, s - 8, !0);
|
|
4280
4280
|
};
|
|
4281
4281
|
if (k(0), n >= 7) {
|
|
4282
4282
|
let L = n;
|
|
4283
4283
|
for (let E = 0; E < 12; E++) L = L << 1 ^ (L >>> 11) * 7973;
|
|
4284
4284
|
const I = n << 12 | L;
|
|
4285
4285
|
for (let E = 0; E < 18; E++) {
|
|
4286
|
-
const oe = (I >>> E & 1) !== 0, P = s - 11 + E % 3,
|
|
4287
|
-
|
|
4286
|
+
const oe = (I >>> E & 1) !== 0, P = s - 11 + E % 3, b = Math.floor(E / 3);
|
|
4287
|
+
g(P, b, oe), g(b, P, oe);
|
|
4288
4288
|
}
|
|
4289
4289
|
}
|
|
4290
4290
|
let J = 0;
|
|
@@ -4336,10 +4336,10 @@ function nc(t) {
|
|
|
4336
4336
|
const ie = v[B][F];
|
|
4337
4337
|
ie === v[B][F + 1] && ie === v[B + 1][F] && ie === v[B + 1][F + 1] && (L += 3);
|
|
4338
4338
|
}
|
|
4339
|
-
let
|
|
4340
|
-
for (const B of v) for (const F of B) F &&
|
|
4339
|
+
let b = 0;
|
|
4340
|
+
for (const B of v) for (const F of B) F && b++;
|
|
4341
4341
|
const ue = s * s;
|
|
4342
|
-
return L += (Math.ceil(Math.abs(
|
|
4342
|
+
return L += (Math.ceil(Math.abs(b * 20 - ue * 10) / ue) - 1) * 10, L;
|
|
4343
4343
|
};
|
|
4344
4344
|
let S = 0, $ = 1 / 0;
|
|
4345
4345
|
for (let L = 0; L < 8; L++) {
|
|
@@ -4536,7 +4536,7 @@ function oc({ pos: t, transport: e, chip: n, voices: s, onShare: r, onFull: a, c
|
|
|
4536
4536
|
] });
|
|
4537
4537
|
}
|
|
4538
4538
|
const lc = { color: "rgba(255,255,255,.4)" };
|
|
4539
|
-
function Ai({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos: a, sub: o, wait: l, pct: c, mute: d, cc: u, ad:
|
|
4539
|
+
function Ai({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos: a, sub: o, wait: l, pct: c, mute: d, cc: u, ad: h, chip: M, transport: N, picker: m, sheet: w, voices: v, voicesBtn: p, sheetOpen: g, onShare: C, onSettings: x, paused: k, copied: J, onTouch: A, onClose: K }) {
|
|
4540
4540
|
const [j, S] = O(() => !!rs());
|
|
4541
4541
|
Y(() => {
|
|
4542
4542
|
const Z = () => S(!!rs());
|
|
@@ -4548,18 +4548,18 @@ function Ai({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos:
|
|
|
4548
4548
|
$.current = K;
|
|
4549
4549
|
const L = z(N.playable ? N.onPlay : void 0);
|
|
4550
4550
|
L.current = N.playable ? N.onPlay : void 0;
|
|
4551
|
-
const [I, E] = O(!1), [oe, P] = O(0),
|
|
4551
|
+
const [I, E] = O(!1), [oe, P] = O(0), b = z(!1);
|
|
4552
4552
|
Y(() => () => Tn(!1), []), Y(() => {
|
|
4553
4553
|
if (!e) return;
|
|
4554
4554
|
const Z = [document.documentElement, document.body], se = Z.map((ce) => ce.style.background);
|
|
4555
4555
|
Z.forEach((ce) => {
|
|
4556
4556
|
ce.style.background = "#050507";
|
|
4557
4557
|
});
|
|
4558
|
-
const
|
|
4559
|
-
return
|
|
4558
|
+
const ge = document.querySelector('meta[name="theme-color"]'), Me = ge == null ? void 0 : ge.content;
|
|
4559
|
+
return ge && (ge.content = "#050507"), () => {
|
|
4560
4560
|
Z.forEach((ce, ke) => {
|
|
4561
4561
|
ce.style.background = se[ke];
|
|
4562
|
-
}),
|
|
4562
|
+
}), ge && Me && (ge.content = Me);
|
|
4563
4563
|
};
|
|
4564
4564
|
}, []);
|
|
4565
4565
|
const ue = Ie(() => e && ic(), [e]), [B, F] = O(ue);
|
|
@@ -4572,56 +4572,56 @@ function Ai({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos:
|
|
|
4572
4572
|
}), () => Z.forEach((ce, ke) => {
|
|
4573
4573
|
ce.style.overflow = se[ke][0], ce.style.overscrollBehavior = se[ke][1];
|
|
4574
4574
|
});
|
|
4575
|
-
const
|
|
4576
|
-
|
|
4575
|
+
const ge = document.createElement("div");
|
|
4576
|
+
ge.setAttribute("aria-hidden", "true"), ge.style.cssText = "position:absolute;top:0;left:0;width:1px;height:calc(100lvh + 160px);pointer-events:none", document.body.appendChild(ge), document.documentElement.style.overscrollBehavior = "none";
|
|
4577
4577
|
const Me = () => {
|
|
4578
4578
|
window.scrollY > 24 && F(!1);
|
|
4579
4579
|
};
|
|
4580
4580
|
return window.addEventListener("scroll", Me, { passive: !0 }), () => {
|
|
4581
|
-
window.removeEventListener("scroll", Me),
|
|
4581
|
+
window.removeEventListener("scroll", Me), ge.remove(), document.documentElement.style.overscrollBehavior = se[0][1], window.scrollTo(0, 0);
|
|
4582
4582
|
};
|
|
4583
4583
|
}, [ue, e]);
|
|
4584
|
-
const ie = z(
|
|
4585
|
-
ie.current =
|
|
4584
|
+
const ie = z(g);
|
|
4585
|
+
ie.current = g, Y(() => {
|
|
4586
4586
|
const Z = (Me) => Me instanceof HTMLElement && (Me.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(Me.tagName)), se = (Me) => {
|
|
4587
4587
|
var ce;
|
|
4588
4588
|
Me.key === "Escape" && !ie.current && $.current && (Me.stopPropagation(), $.current()), Me.key === " " && !ie.current && !Z(Me.target) && (Me.preventDefault(), Me.stopPropagation(), Me.repeat || (ce = L.current) == null || ce.call(L)), (Me.key === "f" || Me.key === "F") && !Me.metaKey && !Me.ctrlKey && !Me.altKey && !ie.current && !Z(Me.target) && Jr() && (Me.preventDefault(), Me.repeat || Tn(!rs()));
|
|
4589
|
-
},
|
|
4589
|
+
}, ge = (Me) => {
|
|
4590
4590
|
Me.key === " " && !ie.current && !Z(Me.target) && Me.preventDefault();
|
|
4591
4591
|
};
|
|
4592
|
-
return window.addEventListener("keydown", se, !0), window.addEventListener("keyup",
|
|
4593
|
-
window.removeEventListener("keydown", se, !0), window.removeEventListener("keyup",
|
|
4592
|
+
return window.addEventListener("keydown", se, !0), window.addEventListener("keyup", ge, !0), () => {
|
|
4593
|
+
window.removeEventListener("keydown", se, !0), window.removeEventListener("keyup", ge, !0);
|
|
4594
4594
|
};
|
|
4595
4595
|
}, []);
|
|
4596
4596
|
const re = ac("(orientation: landscape) and (max-height: 540px)"), le = z(null), [ve, Le] = O(null);
|
|
4597
4597
|
Qt(() => {
|
|
4598
4598
|
const Z = le.current;
|
|
4599
4599
|
if (!Z || (Le(Z.getBoundingClientRect().width), typeof ResizeObserver > "u")) return;
|
|
4600
|
-
const se = new ResizeObserver(([
|
|
4600
|
+
const se = new ResizeObserver(([ge]) => Le(ge.contentRect.width));
|
|
4601
4601
|
return se.observe(Z), () => se.disconnect();
|
|
4602
4602
|
}, []);
|
|
4603
4603
|
const Te = r && !re && (ve == null || ve >= 880);
|
|
4604
4604
|
Y(() => {
|
|
4605
|
-
if (E(!1), !N.playing ||
|
|
4605
|
+
if (E(!1), !N.playing || g) return;
|
|
4606
4606
|
const Z = setTimeout(() => E(!0), 3e3);
|
|
4607
4607
|
return () => clearTimeout(Z);
|
|
4608
|
-
}, [N.playing,
|
|
4608
|
+
}, [N.playing, g, oe]);
|
|
4609
4609
|
const we = z(I);
|
|
4610
4610
|
we.current = I;
|
|
4611
4611
|
const Ee = z(0), Be = (Z) => {
|
|
4612
4612
|
if (Z.pointerType !== "mouse") return;
|
|
4613
4613
|
const se = Date.now();
|
|
4614
|
-
!we.current && se - Ee.current < 1e3 || (Ee.current = se, P((
|
|
4614
|
+
!we.current && se - Ee.current < 1e3 || (Ee.current = se, P((ge) => ge + 1));
|
|
4615
4615
|
}, Oe = !Te && re, ye = z(null), te = o ? o.words.map((Z) => Z.dim ? 0 : 1).join("") + o.words.length + ":" + (o.cursor ?? "") : "";
|
|
4616
4616
|
Qt(() => {
|
|
4617
4617
|
const Z = ye.current;
|
|
4618
4618
|
if (!Z) return;
|
|
4619
|
-
const se = !!(o != null && o.words.some((U) => U.dim)) || (o == null ? void 0 : o.cursor) != null,
|
|
4619
|
+
const se = !!(o != null && o.words.some((U) => U.dim)) || (o == null ? void 0 : o.cursor) != null, ge = Z.querySelectorAll((o == null ? void 0 : o.cursor) != null && !o.words.some((U) => U.dim) ? "[data-at]" : "[data-said]"), Me = parseFloat(getComputedStyle(Z).lineHeight) || 24, ce = Math.round(Z.scrollHeight / Me) - Math.round(Z.clientHeight / Me), ke = Math.max(0, ce) * Me;
|
|
4620
4620
|
if (ke <= 0) {
|
|
4621
4621
|
Z.scrollTop && Z.scrollTo({ top: 0 });
|
|
4622
4622
|
return;
|
|
4623
4623
|
}
|
|
4624
|
-
const We = (U) => Math.round((U.getBoundingClientRect().top - Z.getBoundingClientRect().top + Z.scrollTop) / Me), xe = Math.max(1, Math.round(Z.clientHeight / Me)), Ce = se ?
|
|
4624
|
+
const We = (U) => Math.round((U.getBoundingClientRect().top - Z.getBoundingClientRect().top + Z.scrollTop) / Me), xe = Math.max(1, Math.round(Z.clientHeight / Me)), Ce = se ? ge.length ? Math.floor(We(ge[ge.length - 1]) / xe) * xe * Me : 0 : ke, _ = Math.max(0, Math.min(ke, Ce));
|
|
4625
4625
|
Math.abs(_ - Z.scrollTop) > 1 && (Z.scrollTop = _);
|
|
4626
4626
|
}, [te, Oe]);
|
|
4627
4627
|
const [H, X] = O(!0), [y, R] = O(!1), ae = z(void 0);
|
|
@@ -4653,31 +4653,31 @@ function Ai({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos:
|
|
|
4653
4653
|
] })
|
|
4654
4654
|
] })
|
|
4655
4655
|
] })
|
|
4656
|
-
] }), je = (Z, se,
|
|
4656
|
+
] }), je = (Z, se, ge, Me, ce, ke = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: Z, "aria-label": Z, onClick: Me, children: /* @__PURE__ */ i(de, { d: se, size: (Te ? 20 : 18) + ke, sw: ge, style: ce }) }), Ve = /* @__PURE__ */ f("div", { className: "gfull__acts", children: [
|
|
4657
4657
|
p && /* @__PURE__ */ i(Si, { v: p, size: Te ? 20 : 18 }),
|
|
4658
4658
|
C && je("Share", q.share, 1.6, C),
|
|
4659
4659
|
Jr() && !t && je(j ? "Exit full screen" : "Full screen", j ? rc : Di, 1.7, () => Tn(!j)),
|
|
4660
4660
|
K && je("Close player", q.close, 1.7, K)
|
|
4661
|
-
] }), Ae = (d || u ||
|
|
4661
|
+
] }), Ae = (d || u || x) && /* @__PURE__ */ f("div", { className: "gfull__top", children: [
|
|
4662
4662
|
d && je(d.muted ? "Unmute" : "Mute", d.muted ? q.volumeOff : q.volume, 1.6, d.onToggle),
|
|
4663
4663
|
u && je(u.on ? "Hide subtitles" : "Show subtitles", u.on ? q.cc : q.ccOff, 1.7, u.onToggle, void 0, 4),
|
|
4664
|
-
|
|
4664
|
+
x && je("Settings", q.cog, 1.6, x)
|
|
4665
4665
|
] });
|
|
4666
4666
|
return /* @__PURE__ */ f(
|
|
4667
4667
|
"div",
|
|
4668
4668
|
{
|
|
4669
4669
|
ref: le,
|
|
4670
|
-
className: `gfull${Te ? " gfull--desk" : ""}${ue ? " gfull--swipe" : ""}${
|
|
4670
|
+
className: `gfull${Te ? " gfull--desk" : ""}${ue ? " gfull--swipe" : ""}${h ? " gfull--ad" : ""}${I ? " gfull--calm" : ""}`,
|
|
4671
4671
|
"data-theme": "dark",
|
|
4672
4672
|
role: "dialog",
|
|
4673
4673
|
"aria-label": s,
|
|
4674
4674
|
onPointerMove: Be,
|
|
4675
4675
|
onPointerDownCapture: (Z) => {
|
|
4676
|
-
var se,
|
|
4677
|
-
I && (
|
|
4676
|
+
var se, ge;
|
|
4677
|
+
I && (b.current = !0), P((Me) => Me + 1), (ge = (se = Z.target).closest) != null && ge.call(se, '[aria-label="Exit full screen"], [aria-label="Full screen"], [aria-label="Close player"]') || A();
|
|
4678
4678
|
},
|
|
4679
4679
|
onClickCapture: (Z) => {
|
|
4680
|
-
|
|
4680
|
+
b.current && (b.current = !1, Z.stopPropagation(), Z.preventDefault());
|
|
4681
4681
|
},
|
|
4682
4682
|
children: [
|
|
4683
4683
|
ue && B && /* @__PURE__ */ f("div", { className: "gfull__swipe", "aria-live": "polite", children: [
|
|
@@ -4687,7 +4687,7 @@ function Ai({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos:
|
|
|
4687
4687
|
/* @__PURE__ */ f("div", { className: `gfull__frame${Oe ? " gfull__frame--land" : ""}`, children: [
|
|
4688
4688
|
n,
|
|
4689
4689
|
/* @__PURE__ */ i("div", { className: "gfull__shade", "aria-hidden": "true" }),
|
|
4690
|
-
k && !
|
|
4690
|
+
k && !h && /* @__PURE__ */ f("div", { className: `gfull__pausedinfo${N.playing ? "" : " gfull__pausedinfo--on"}`, "aria-hidden": N.playing, children: [
|
|
4691
4691
|
/* @__PURE__ */ f("div", { className: "gfull__pausedtext", children: [
|
|
4692
4692
|
/* @__PURE__ */ i("div", { className: "gfull__pausedtitle", children: k.title }),
|
|
4693
4693
|
k.summary && /* @__PURE__ */ i("div", { className: "gfull__pausedsum", children: k.summary })
|
|
@@ -4774,7 +4774,7 @@ function Mc(t) {
|
|
|
4774
4774
|
const e = t.langName;
|
|
4775
4775
|
return t.translateFailed === t.lang ? { kind: "translateFailed", lang: e } : t.voiceFailed ? { kind: "voiceFailed", lang: e } : t.translating ? { kind: "translating", lang: e } : t.starting != null ? { kind: "starting", lang: e, since: t.starting } : t.relang || t.slowLine ? { kind: "voice", lang: e, since: t.lineSince } : null;
|
|
4776
4776
|
}
|
|
4777
|
-
function
|
|
4777
|
+
function gc(t, e) {
|
|
4778
4778
|
const [n, s] = O(null), [r, a] = O(!1);
|
|
4779
4779
|
return Y(() => {
|
|
4780
4780
|
if (!t) {
|
|
@@ -4787,7 +4787,7 @@ function hc(t, e) {
|
|
|
4787
4787
|
return () => clearTimeout(l);
|
|
4788
4788
|
}, [t, e]), [r, n];
|
|
4789
4789
|
}
|
|
4790
|
-
const
|
|
4790
|
+
const hc = (t) => `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
4791
4791
|
function fc({ state: t, line: e, onRetry: n, onOriginal: s }) {
|
|
4792
4792
|
const [r, a] = O(() => Date.now());
|
|
4793
4793
|
Y(() => {
|
|
@@ -4821,7 +4821,7 @@ function fc({ state: t, line: e, onRetry: n, onOriginal: s }) {
|
|
|
4821
4821
|
/* @__PURE__ */ f("div", { className: "pwait__head", children: [
|
|
4822
4822
|
l ? /* @__PURE__ */ i("div", { className: "pwait__mark", "aria-hidden": "true", children: /* @__PURE__ */ i(de, { d: q.warnCircle, size: 18, sw: 1.8 }) }) : /* @__PURE__ */ i("div", { className: "pwait__spin", "aria-hidden": "true" }),
|
|
4823
4823
|
/* @__PURE__ */ i("div", { className: "pwait__t", children: c }),
|
|
4824
|
-
!l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children:
|
|
4824
|
+
!l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: hc(o) })
|
|
4825
4825
|
] }),
|
|
4826
4826
|
/* @__PURE__ */ i("div", { className: "pwait__note", children: d }),
|
|
4827
4827
|
!l && /* @__PURE__ */ i("div", { className: "pwait__bar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", {}) }),
|
|
@@ -4843,40 +4843,40 @@ function Ei(t, e, n) {
|
|
|
4843
4843
|
const s = new URL(t ?? Ds), r = pc(), a = new URL(Nc, s);
|
|
4844
4844
|
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", r);
|
|
4845
4845
|
const o = 480, l = 640, c = Math.max(0, (window.screenX ?? 0) + ((window.outerWidth ?? o) - o) / 2), d = Math.max(0, (window.screenY ?? 0) + ((window.outerHeight ?? l) - l) / 2), u = window.open(a.toString(), "vocalstack-connect", `popup=yes,width=${o},height=${l},left=${Math.round(c)},top=${Math.round(d)}`);
|
|
4846
|
-
return u ? new Promise((
|
|
4846
|
+
return u ? new Promise((h, M) => {
|
|
4847
4847
|
let N = !1;
|
|
4848
4848
|
const m = (p) => {
|
|
4849
4849
|
N || (N = !0, window.removeEventListener("message", w), clearInterval(v), p());
|
|
4850
4850
|
}, w = (p) => {
|
|
4851
4851
|
if (p.origin !== s.origin || p.source !== u) return;
|
|
4852
|
-
const
|
|
4853
|
-
if (!(!
|
|
4854
|
-
if (
|
|
4852
|
+
const g = p.data;
|
|
4853
|
+
if (!(!g || g.source !== "vocalstack" || g.nonce !== r)) {
|
|
4854
|
+
if (g.type === "vocalstack:hello") {
|
|
4855
4855
|
u.postMessage({ source: "vocalstack", type: "vocalstack:hello-ack", nonce: r }, s.origin);
|
|
4856
4856
|
return;
|
|
4857
4857
|
}
|
|
4858
|
-
if (
|
|
4859
|
-
n == null || n(
|
|
4858
|
+
if (g.type === "vocalstack:status") {
|
|
4859
|
+
n == null || n(g.status);
|
|
4860
4860
|
return;
|
|
4861
4861
|
}
|
|
4862
|
-
if (
|
|
4863
|
-
m(() =>
|
|
4862
|
+
if (g.type === "vocalstack:started" || g.type === "vocalstack:token" || g.type === "vocalstack:found") {
|
|
4863
|
+
m(() => h({ transcriptionId: String(g.transcriptionId), recordingId: String(g.recordingId), token: String(g.token), expiresAt: g.expiresAt ?? null }));
|
|
4864
4864
|
return;
|
|
4865
4865
|
}
|
|
4866
|
-
if (
|
|
4867
|
-
m(() =>
|
|
4866
|
+
if (g.type === "vocalstack:connected") {
|
|
4867
|
+
m(() => h("connected"));
|
|
4868
4868
|
return;
|
|
4869
4869
|
}
|
|
4870
|
-
if (
|
|
4871
|
-
m(() =>
|
|
4870
|
+
if (g.type === "vocalstack:declined") {
|
|
4871
|
+
m(() => h(null));
|
|
4872
4872
|
return;
|
|
4873
4873
|
}
|
|
4874
|
-
|
|
4874
|
+
g.type === "vocalstack:error" && m(() => M(new Error(typeof g.message == "string" && g.message ? g.message : "VocalStack could not start this transcription.")));
|
|
4875
4875
|
}
|
|
4876
4876
|
};
|
|
4877
4877
|
window.addEventListener("message", w);
|
|
4878
4878
|
const v = setInterval(() => {
|
|
4879
|
-
u.closed && m(() =>
|
|
4879
|
+
u.closed && m(() => h(null));
|
|
4880
4880
|
}, 500);
|
|
4881
4881
|
}) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
|
|
4882
4882
|
}
|
|
@@ -4907,7 +4907,7 @@ const wc = {
|
|
|
4907
4907
|
starting: "Starting the transcription…"
|
|
4908
4908
|
}, Lc = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
4909
4909
|
function kc({ options: t, onStarted: e, onReplay: n, onClose: s }) {
|
|
4910
|
-
const [r, a] = O(""), [o, l] = O(!1), [c, d] = O(null), [u,
|
|
4910
|
+
const [r, a] = O(""), [o, l] = O(!1), [c, d] = O(null), [u, h] = O(null);
|
|
4911
4911
|
Y(() => {
|
|
4912
4912
|
const w = (v) => {
|
|
4913
4913
|
v.key === "Escape" && s();
|
|
@@ -4918,12 +4918,12 @@ function kc({ options: t, onStarted: e, onReplay: n, onClose: s }) {
|
|
|
4918
4918
|
if (!(!N || o)) {
|
|
4919
4919
|
l(!0), d(null);
|
|
4920
4920
|
try {
|
|
4921
|
-
const w = await mc(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`,
|
|
4921
|
+
const w = await mc(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, h);
|
|
4922
4922
|
w && e(w);
|
|
4923
4923
|
} catch (w) {
|
|
4924
4924
|
d(w instanceof Error ? w.message : "Something went wrong. Please try again.");
|
|
4925
4925
|
} finally {
|
|
4926
|
-
l(!1),
|
|
4926
|
+
l(!1), h(null);
|
|
4927
4927
|
}
|
|
4928
4928
|
}
|
|
4929
4929
|
};
|
|
@@ -4963,9 +4963,9 @@ function _i(t) {
|
|
|
4963
4963
|
}
|
|
4964
4964
|
const vc = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
|
|
4965
4965
|
function jc(t, e) {
|
|
4966
|
-
const n = Li(), [s, r] =
|
|
4966
|
+
const n = Li(), [s, r] = hi(), [a, o] = O(null), [l, c] = O("main"), d = Ns(n, t.lang), u = Ie(() => fi(n, "translation"), [n]), h = (A) => {
|
|
4967
4967
|
e({ lang: A }), r(A);
|
|
4968
|
-
}, M = vs({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect:
|
|
4968
|
+
}, M = vs({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect: h, languages: u, none: "As spoken", pinned: t.lang ? [t.lang] : [], recent: s, keepOpen: !0 }), N = () => {
|
|
4969
4969
|
o(null), c("main");
|
|
4970
4970
|
}, m = t.lang ? /* @__PURE__ */ i("span", { style: { fontSize: 19, lineHeight: 1 }, children: d.flag }) : /* @__PURE__ */ i(de, { d: q.langAuto, size: 19, sw: 1.7 }), w = /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": `Language: ${t.lang ? d.label : "As spoken"}`, title: t.lang ? d.label : "As spoken", onClick: (A) => {
|
|
4971
4971
|
A.stopPropagation(), c("main"), o((K) => K === "lang" ? null : "lang");
|
|
@@ -4975,24 +4975,24 @@ function jc(t, e) {
|
|
|
4975
4975
|
/* @__PURE__ */ i(de, { d: q.chevronLeft, size: 18, sw: 1.8 }),
|
|
4976
4976
|
"Back"
|
|
4977
4977
|
] })
|
|
4978
|
-
] }),
|
|
4978
|
+
] }), g = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, C = (A, K, j) => /* @__PURE__ */ f("div", { className: "srow", children: [
|
|
4979
4979
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
4980
4980
|
/* @__PURE__ */ i("div", { className: "srow__t", children: A }),
|
|
4981
4981
|
/* @__PURE__ */ i("div", { className: "srow__s", children: K })
|
|
4982
4982
|
] }),
|
|
4983
4983
|
j
|
|
4984
|
-
] }),
|
|
4984
|
+
] }), x = /* @__PURE__ */ f("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
4985
4985
|
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: M.search }),
|
|
4986
4986
|
M.list
|
|
4987
|
-
] }), k = l === "lang" ?
|
|
4988
|
-
C("Show subtitles", "Captions over the video", /* @__PURE__ */ i(
|
|
4989
|
-
C("Show speaker labels", "Who is speaking, before each line", /* @__PURE__ */ i(
|
|
4990
|
-
C("Highlight words", "Follow each word as it is spoken", /* @__PURE__ */ i(
|
|
4991
|
-
] }) : l === "audio" ? /* @__PURE__ */ f("div", { style:
|
|
4992
|
-
C("Translate audio", t.lang ? "Hear the translation read aloud instead of the original speech" : "Pick a language to hear the translation read aloud", /* @__PURE__ */ i(
|
|
4987
|
+
] }), k = l === "lang" ? x : l === "subs" ? /* @__PURE__ */ f("div", { style: g, children: [
|
|
4988
|
+
C("Show subtitles", "Captions over the video", /* @__PURE__ */ i(Nt, { checked: t.subtitles, onChange: (A) => e({ subtitles: A }), label: "Show subtitles" })),
|
|
4989
|
+
C("Show speaker labels", "Who is speaking, before each line", /* @__PURE__ */ i(Nt, { checked: t.speakerLabels, onChange: (A) => e({ speakerLabels: A }), label: "Show speaker labels" })),
|
|
4990
|
+
C("Highlight words", "Follow each word as it is spoken", /* @__PURE__ */ i(Nt, { checked: t.wordHighlight, onChange: (A) => e({ wordHighlight: A }), label: "Highlight words" }))
|
|
4991
|
+
] }) : l === "audio" ? /* @__PURE__ */ f("div", { style: g, children: [
|
|
4992
|
+
C("Translate audio", t.lang ? "Hear the translation read aloud instead of the original speech" : "Pick a language to hear the translation read aloud", /* @__PURE__ */ i(Nt, { checked: t.translateAudio && !!t.lang, onChange: (A) => e({ translateAudio: A }), label: "Translate audio", disabled: !t.lang })),
|
|
4993
4993
|
C("Voices", t.voices === "cloned" ? "Each speaker in their own cloned voice, where they agreed to it" : "Synthetic voices matched to each speaker", /* @__PURE__ */ i(as, { value: t.voices, onChange: (A) => e({ voices: A }), size: "sm", options: [{ value: "synthetic", label: "Synthetic" }, { value: "cloned", label: "Cloned" }] })),
|
|
4994
|
-
C(Ln, "Takes out everything that isn't speech: music, ambience and noise.", /* @__PURE__ */ i(
|
|
4995
|
-
] }) : /* @__PURE__ */ f("div", { style:
|
|
4994
|
+
C(Ln, "Takes out everything that isn't speech: music, ambience and noise.", /* @__PURE__ */ i(Nt, { checked: t.removeBackground, onChange: (A) => e({ removeBackground: A }), label: Ln }))
|
|
4995
|
+
] }) : /* @__PURE__ */ f("div", { style: g, children: [
|
|
4996
4996
|
/* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", onClick: () => c("lang"), children: [
|
|
4997
4997
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
4998
4998
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Language" }),
|
|
@@ -5018,7 +5018,7 @@ function jc(t, e) {
|
|
|
5018
5018
|
v
|
|
5019
5019
|
] })
|
|
5020
5020
|
] }), J = /* @__PURE__ */ f(Pe, { children: [
|
|
5021
|
-
/* @__PURE__ */ i($t, { open: a === "lang", onClose: N, title: "LANGUAGE", kind: "picker", sticky: !0, children: /* @__PURE__ */ i(os, { children:
|
|
5021
|
+
/* @__PURE__ */ i($t, { open: a === "lang", onClose: N, title: "LANGUAGE", kind: "picker", sticky: !0, children: /* @__PURE__ */ i(os, { children: x }) }),
|
|
5022
5022
|
/* @__PURE__ */ i($t, { open: a === "settings", onClose: N, title: { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO" }[l], titleNode: l === "main" ? void 0 : p, kind: l === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(os, { children: k }) })
|
|
5023
5023
|
] });
|
|
5024
5024
|
return {
|
|
@@ -5060,8 +5060,8 @@ function Ic(t, e) {
|
|
|
5060
5060
|
}).catch((w) => l(w instanceof Error ? w.message : "Something went wrong. Please try again.")).finally(() => {
|
|
5061
5061
|
s(!1), a(null);
|
|
5062
5062
|
});
|
|
5063
|
-
}, [t, n, e]),
|
|
5064
|
-
return { busy: n, status: r, err: o, connected: c, connect:
|
|
5063
|
+
}, [t, n, e]), h = qe(() => u({ connect: !0 }), [u]), M = qe((N, m) => u({ url: N, ask: m }), [u]);
|
|
5064
|
+
return { busy: n, status: r, err: o, connected: c, connect: h, start: M };
|
|
5065
5065
|
}
|
|
5066
5066
|
function Oc(t) {
|
|
5067
5067
|
return /\.(mp4|webm|mov|m4v|ogv|mkv)(\?|#|$)/i.test(t);
|
|
@@ -5073,12 +5073,12 @@ function Cc({ poster: t, src: e }) {
|
|
|
5073
5073
|
const bc = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
|
|
5074
5074
|
} };
|
|
5075
5075
|
function Ls({ idle: t, poster: e, src: n, title: s, page: r, onAct: a, children: o }) {
|
|
5076
|
-
const l = jc(t.prefs, t.set), c = _i(), d = z(null), [u,
|
|
5076
|
+
const l = jc(t.prefs, t.set), c = _i(), d = z(null), [u, h] = O(!1);
|
|
5077
5077
|
Qt(() => {
|
|
5078
5078
|
var v;
|
|
5079
5079
|
const N = (v = d.current) == null ? void 0 : v.parentElement;
|
|
5080
5080
|
if (!N) return;
|
|
5081
|
-
const m = () =>
|
|
5081
|
+
const m = () => h(N.getBoundingClientRect().width < 560);
|
|
5082
5082
|
if (m(), typeof ResizeObserver > "u") return;
|
|
5083
5083
|
const w = new ResizeObserver(m);
|
|
5084
5084
|
return w.observe(N), () => w.disconnect();
|
|
@@ -5179,21 +5179,25 @@ const Wc = Na(function(e, n) {
|
|
|
5179
5179
|
var P;
|
|
5180
5180
|
const s = z(null);
|
|
5181
5181
|
pa(n, () => ({
|
|
5182
|
-
seek: (
|
|
5182
|
+
seek: (b) => {
|
|
5183
5183
|
var ue;
|
|
5184
|
-
return (ue = s.current) == null ? void 0 : ue.seek(
|
|
5184
|
+
return (ue = s.current) == null ? void 0 : ue.seek(b);
|
|
5185
5185
|
},
|
|
5186
5186
|
play: () => {
|
|
5187
|
-
var
|
|
5188
|
-
return (
|
|
5187
|
+
var b;
|
|
5188
|
+
return (b = s.current) == null ? void 0 : b.play();
|
|
5189
|
+
},
|
|
5190
|
+
toggleMute: () => {
|
|
5191
|
+
var b;
|
|
5192
|
+
return (b = s.current) == null ? void 0 : b.toggleMute();
|
|
5189
5193
|
},
|
|
5190
5194
|
pause: () => {
|
|
5191
|
-
var
|
|
5192
|
-
return (
|
|
5195
|
+
var b;
|
|
5196
|
+
return (b = s.current) == null ? void 0 : b.pause();
|
|
5193
5197
|
},
|
|
5194
5198
|
toggle: () => {
|
|
5195
|
-
var
|
|
5196
|
-
return (
|
|
5199
|
+
var b;
|
|
5200
|
+
return (b = s.current) == null ? void 0 : b.toggle();
|
|
5197
5201
|
}
|
|
5198
5202
|
}), []);
|
|
5199
5203
|
const [r, a] = O({ id: e.id ?? "", token: e.token });
|
|
@@ -5204,37 +5208,37 @@ const Wc = Na(function(e, n) {
|
|
|
5204
5208
|
Y(() => {
|
|
5205
5209
|
o != null && o.id && a({ id: o.id, token: e.token });
|
|
5206
5210
|
}, [o == null ? void 0 : o.id]);
|
|
5207
|
-
const [l, c] = O(null), [d, u] = O(() => ({ ...vc, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([,
|
|
5208
|
-
u((ue) => ({ ...ue, ...
|
|
5209
|
-
}, shareUrl: (P = e.shareUrl) == null ? void 0 : P.call(e, null) }, { muted: m, ...w } =
|
|
5211
|
+
const [l, c] = O(null), [d, u] = O(() => ({ ...vc, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([, b]) => b !== void 0)) })), [h, M] = O({}), N = { prefs: d, set: (b) => {
|
|
5212
|
+
u((ue) => ({ ...ue, ...b })), M((ue) => ({ ...ue, ...b }));
|
|
5213
|
+
}, shareUrl: (P = e.shareUrl) == null ? void 0 : P.call(e, null) }, { muted: m, ...w } = h;
|
|
5210
5214
|
Y(() => {
|
|
5211
5215
|
c(null);
|
|
5212
5216
|
}, [e.id, e.src]);
|
|
5213
|
-
const v = e.src ?? l, p = !r.id && !!v && (l != null || o !== void 0),
|
|
5217
|
+
const v = e.src ?? l, p = !r.id && !!v && (l != null || o !== void 0), g = !r.id && !e.src && !l, C = wi({ id: r.id, token: r.token, baseUrl: e.baseUrl, listen: r.listen }), { source: x, gone: k, error: J, reload: A } = Eo(C, r.id), K = Yo(C, (x == null ? void 0 : x.recording.id) ?? null), j = Ie(() => So(C, K), [C, K]);
|
|
5214
5218
|
Y(() => {
|
|
5215
|
-
var
|
|
5216
|
-
|
|
5217
|
-
}, [
|
|
5218
|
-
var
|
|
5219
|
-
J && ((
|
|
5219
|
+
var b;
|
|
5220
|
+
x && ((b = e.onSource) == null || b.call(e, x));
|
|
5221
|
+
}, [x]), Y(() => {
|
|
5222
|
+
var b;
|
|
5223
|
+
J && ((b = e.onError) == null || b.call(e, J));
|
|
5220
5224
|
}, [J]);
|
|
5221
|
-
const S = _i(e.compact ? !1 : e.desk), $ = (e.layout ?? "embed") === "embed", L = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), I = qe((
|
|
5222
|
-
return Y(() => (Kr($ ? oe.current : null), () => Kr(null)), [$]), /* @__PURE__ */ i(Co, { value: j, children: /* @__PURE__ */ i("div", { ref: oe, className: `vsp${$ ? " 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:
|
|
5225
|
+
const S = _i(e.compact ? !1 : e.desk), $ = (e.layout ?? "embed") === "embed", L = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), I = qe((b) => a({ id: b.transcriptionId, token: null, listen: { transcriptionId: b.transcriptionId, recordingId: b.recordingId, token: b.token } }), []), E = Ic(L, I), oe = z(null);
|
|
5226
|
+
return Y(() => (Kr($ ? oe.current : null), () => Kr(null)), [$]), /* @__PURE__ */ i(Co, { value: j, children: /* @__PURE__ */ i("div", { ref: oe, className: `vsp${$ ? " 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: g ? /* @__PURE__ */ i(Dc, { idle: N, connect: E, page: !$, poster: e.poster ?? null, onPick: c }) : p ? /* @__PURE__ */ i(xc, { idle: N, src: v, ask: !l, connect: E, page: !$, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : r.id ? /* @__PURE__ */ i(Yc, { ...e, initial: { ...e.initial ?? {}, ...w }, startMuted: m === !0, handle: s, id: r.id, api: j, shared: x, gone: k, loadError: J, reread: A, desk: S, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (b) => a({ id: b.transcriptionId, token: null, listen: { transcriptionId: b.transcriptionId, recordingId: b.recordingId, token: b.token } }) }, r.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
|
|
5223
5227
|
});
|
|
5224
5228
|
function Yc(t) {
|
|
5225
|
-
var cr, ur, dr, Mr,
|
|
5226
|
-
const { api: e, shared: n, gone: s, desk: r, dark: a } = t, o = t.id ?? "", l = Ie(() => Ec(t), []), c = (t.mode ?? "video") === "video", d = ((ur = (cr = n == null ? void 0 : n.job) == null ? void 0 : cr.source) == null ? void 0 : ur.kind) === "url" ? fs(n.job.source.url) : null, u = c && !(n && !d), [
|
|
5229
|
+
var cr, ur, dr, Mr, gr, hr, fr, Nr, pr, mr, yr, Tr, wr, Lr, kr, vr, jr, zr, Ir, Or, Cr, br, xr, Dr;
|
|
5230
|
+
const { api: e, shared: n, gone: s, desk: r, dark: a } = t, o = t.id ?? "", l = Ie(() => Ec(t), []), c = (t.mode ?? "video") === "video", d = ((ur = (cr = n == null ? void 0 : n.job) == null ? void 0 : cr.source) == null ? void 0 : ur.kind) === "url" ? fs(n.job.source.url) : null, u = c && !(n && !d), [h, M] = O(t.loadError);
|
|
5227
5231
|
Y(() => {
|
|
5228
5232
|
t.loadError && M(t.loadError);
|
|
5229
5233
|
}, [t.loadError]);
|
|
5230
|
-
const [N, m] = O("none"), [w, v] = O(!1), [p,
|
|
5234
|
+
const [N, m] = O("none"), [w, v] = O(!1), [p, g] = O(""), [C, x] = Ul(), [k, J] = O(null), [A, K] = O(u ? "listen" : "read"), [j, S] = O(!1), $ = z(null), L = z(/* @__PURE__ */ new Map()), [I, E] = O("main"), oe = (T) => {
|
|
5231
5235
|
const pe = document.querySelector(".vs-sheet--settings"), Re = pe == null ? void 0 : pe.parentElement;
|
|
5232
5236
|
pe && Re && I === "main" && T !== "main" && Re.style.setProperty("--vs-sheet-top", `${Math.round(pe.getBoundingClientRect().top - Re.getBoundingClientRect().top)}px`), E(T);
|
|
5233
5237
|
};
|
|
5234
5238
|
Y(() => {
|
|
5235
5239
|
j || oe("main");
|
|
5236
5240
|
}, [j]);
|
|
5237
|
-
const [P,
|
|
5241
|
+
const [P, b] = O(u), ue = (n == null ? void 0 : n.recording) ?? null, B = (ue == null ? void 0 : ue.id) ?? null, [F, ie] = O(l.lang), re = typeof F == "string" ? F : null, [le, ve] = O(l.labels), [Le, Te] = O(l.words), [we, Ee] = O(l.cc), [Be, Oe] = O(l.translateAudio), [ye, te] = O(l.clonedVoices), [H, X] = O(l.removeBackground), y = t.settings;
|
|
5238
5242
|
Y(() => {
|
|
5239
5243
|
(y == null ? void 0 : y.lang) !== void 0 && ie(y.lang);
|
|
5240
5244
|
}, [y == null ? void 0 : y.lang]), Y(() => {
|
|
@@ -5263,13 +5267,13 @@ function Yc(t) {
|
|
|
5263
5267
|
onFrame: (T) => {
|
|
5264
5268
|
T.type === "job.progress" && J({ state: T.state, processedS: T.processedS ?? 0, totalS: T.totalS ?? null, segmentsDone: T.segmentsDone ?? 0, segmentsTotal: T.segmentsTotal ?? null, pct: T.pct ?? 0, error: T.error ?? null });
|
|
5265
5269
|
}
|
|
5266
|
-
}), se = Ie(() => po(G).filter((T) => !T.suppressed), [G]),
|
|
5270
|
+
}), se = Ie(() => po(G).filter((T) => !T.suppressed), [G]), ge = Qo((n == null ? void 0 : n.job) ?? null), Me = ["done", "failed", "stopped"].includes(ts((ge == null ? void 0 : ge.state) ?? ((dr = n == null ? void 0 : n.job) == null ? void 0 : dr.state))), ce = Me ? ge : k ?? ge, ke = !!k && !["done", "failed", "stopped"].includes(ts(k.state)), We = z(0);
|
|
5267
5271
|
Y(() => {
|
|
5268
5272
|
!Me || !ke || Date.now() - We.current < 1e4 || (We.current = Date.now(), t.reread());
|
|
5269
5273
|
}, [Me, ke, k == null ? void 0 : k.state, k == null ? void 0 : k.processedS, o]);
|
|
5270
|
-
const xe = ts((ce == null ? void 0 : ce.state) ?? ((Mr = n == null ? void 0 : n.job) == null ? void 0 : Mr.state)), Ce = !!B && (xe === "transcribing" || xe === "queued"), _ = u && !s && (!n || (Ce || xe === "cropping") && se.length === 0), U = Ce ? (ce == null ? void 0 : ce.pct) ?? 0 : 100, W = Bo(n == null ? void 0 : n.job, ce) ?? (ue == null ? void 0 : ue.mediaDurationS) ?? null, ee = ((
|
|
5274
|
+
const xe = ts((ce == null ? void 0 : ce.state) ?? ((Mr = n == null ? void 0 : n.job) == null ? void 0 : Mr.state)), Ce = !!B && (xe === "transcribing" || xe === "queued"), _ = u && !s && (!n || (Ce || xe === "cropping") && se.length === 0), U = Ce ? (ce == null ? void 0 : ce.pct) ?? 0 : 100, W = Bo(n == null ? void 0 : n.job, ce) ?? (ue == null ? void 0 : ue.mediaDurationS) ?? null, ee = ((gr = G.segments.values().next().value) == null ? void 0 : gr.language) ?? (ue == null ? void 0 : ue.spokenLanguage) ?? null, fe = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", Ne = ((Nr = (fr = (hr = n == null ? void 0 : n.job) == null ? void 0 : hr.source) == null ? void 0 : fr.name) == null ? void 0 : Nr.trim()) || null, ze = n ? ((pr = n.name) == null ? void 0 : pr.trim()) || Ne : null, Ue = !!((mr = n == null ? void 0 : n.job) != null && mr.hasAudio), be = (yr = n == null ? void 0 : n.job) == null ? void 0 : yr.source, Se = !Ue && !!be && (be.kind !== "url" || be.bytes != null) && (xe === "transcribing" || xe === "queued" || xe === "done"), st = B && (n != null && n.allowDownload) && Ue ? xa(e.origin, B, e.cred) : B && (n != null && n.allowDownload) && Se ? qn(e.origin, B, "source", e.cred) : null, Xe = se[se.length - 1], Ot = Xe ? ((Tr = Xe.words[Xe.words.length - 1]) == null ? void 0 : Tr.end) ?? Xe.start : 0, ut = u && Ce ? Math.max(Ot, (ce == null ? void 0 : ce.processedS) ?? 0) : null, Ge = Hl(st, (Ue || Se) && !!(n != null && n.allowDownload), se, W, Se ? ((Lr = (wr = n == null ? void 0 : n.job) == null ? void 0 : wr.crop) == null ? void 0 : Lr.startS) ?? 0 : 0, ut), Qe = ((vr = (kr = n == null ? void 0 : n.job) == null ? void 0 : kr.source) == null ? void 0 : vr.kind) === "url" ? fs(n.job.source.url) : null, rt = Bl(se, W, ((zr = (jr = n == null ? void 0 : n.job) == null ? void 0 : jr.crop) == null ? void 0 : zr.startS) ?? 0, ut), He = !!Qe, Lt = He ? rt.player : Ge, gt = Li(), Bt = z(null), ne = Zl({ recordingId: B, model: G, rows: se, lenS: W, ended: !!B && !Ce, cred: e.cred, langs: gt, srcLang: ee, canTranslate: !!(n != null && n.allowTranslate), pickedLang: F, setPickedLang: ie, side: r && !P ? Gl : void 0, hearOriginal: ae, timed: !!Qe, stockVoices: u && !ye, stickyPicker: u, pickerBusy: Bt.current }), pt = z(null);
|
|
5271
5275
|
Y(() => {
|
|
5272
|
-
!B ||
|
|
5276
|
+
!B || pt.current === re || (pt.current = re, Ye(re));
|
|
5273
5277
|
}, [re, B]);
|
|
5274
5278
|
const D = He ? rt.player : ne.on ? ne.player : Lt;
|
|
5275
5279
|
Y(() => {
|
|
@@ -5282,41 +5286,41 @@ function Yc(t) {
|
|
|
5282
5286
|
const Xt = Ie(() => se.filter((T) => T.sentenceId != null).map((T, pe, Re) => {
|
|
5283
5287
|
var Fe;
|
|
5284
5288
|
return { sid: T.sentenceId, start: T.start, end: ((Fe = Re[pe + 1]) == null ? void 0 : Fe.start) ?? Et(T, T.start, T.start + 4) };
|
|
5285
|
-
}), [se]),
|
|
5289
|
+
}), [se]), Ct = co({ on: He && ne.on, lines: Xt, clips: ne.clips, t: D.t, playing: D.playing, muted: D.muted }), at = !!re && (Ve || ne.relang || ne.on && Ct.missing != null);
|
|
5286
5290
|
Bt.current = at ? re : null, Y(() => {
|
|
5287
|
-
He && ne.on &&
|
|
5288
|
-
}, [
|
|
5289
|
-
const
|
|
5291
|
+
He && ne.on && Ct.sid != null && ne.setNear(Ct.sid);
|
|
5292
|
+
}, [Ct.sid, He, ne.on]), $l([Lt, ne.player], ne.sampling);
|
|
5293
|
+
const bt = z(null);
|
|
5290
5294
|
Y(() => {
|
|
5291
|
-
Ce && !D.playing &&
|
|
5295
|
+
Ce && !D.playing && bt.current && (bt.current.scrollTop = bt.current.scrollHeight);
|
|
5292
5296
|
}, [Ce, se.length]);
|
|
5293
|
-
const zn = Jl(
|
|
5297
|
+
const zn = Jl(bt, se, w, p, v), Ht = /* @__PURE__ */ i(Kl, { open: w, q: p, onQ: g, onClose: () => v(!1), hits: zn, desk: r, inline: r }), Ke = (n == null ? void 0 : n.name) || t.src || o, ot = !!(n != null && n.allowDownload), Vt = !!(n != null && n.allowExport), ht = ne.readLang, dt = ht ? ((Ir = gt == null ? void 0 : gt.languages.find((T) => T.code === ht)) == null ? void 0 : Ir.name) ?? ht.toUpperCase() : null, _t = async () => {
|
|
5294
5298
|
if (B)
|
|
5295
5299
|
try {
|
|
5296
5300
|
if (ht && ne.canSpeak) {
|
|
5297
|
-
|
|
5301
|
+
x(`Preparing ${Ke} in ${dt}${ne.readVoiceName ? `, read by ${ne.readVoiceName}` : ""} — the download starts when it is ready.`), await Wo(e, { recordingId: B, lang: ht, voiceKey: ne.readVoiceKey, cred: e.cred, request: ne.requestTrack }), x(`Downloading ${Ke} in ${dt}.`);
|
|
5298
5302
|
return;
|
|
5299
5303
|
}
|
|
5300
5304
|
if (Ue) {
|
|
5301
|
-
|
|
5305
|
+
x(`Preparing ${Ke} as MP3 — the download starts when it is ready.`), await Ho(qn(e.origin, B, "delivery", e.cred)), x(`Downloading ${Ke}.`);
|
|
5302
5306
|
return;
|
|
5303
5307
|
}
|
|
5304
|
-
Cs(qn(e.origin, B, "source", e.cred)),
|
|
5308
|
+
Cs(qn(e.origin, B, "source", e.cred)), x(`Downloading ${Ke} — the full audio, since the transcript is still being written.`);
|
|
5305
5309
|
} catch (T) {
|
|
5306
5310
|
throw M(wt(T)), T;
|
|
5307
5311
|
}
|
|
5308
5312
|
}, lt = (T) => {
|
|
5309
5313
|
if (!B) return;
|
|
5310
|
-
const pe =
|
|
5311
|
-
return Vo(e, B, T, { lang: ht }).then(() =>
|
|
5314
|
+
const pe = hs.find((Fe) => Fe.key === T).name, Re = dt ? ` in ${dt}` : "";
|
|
5315
|
+
return Vo(e, B, T, { lang: ht }).then(() => x(Ce ? `${pe} exported${Re} for the first ${se.length} segments — the rest is still transcribing.` : `${pe} exported${Re}.`)).catch((Fe) => {
|
|
5312
5316
|
throw M(wt(Fe)), Fe;
|
|
5313
5317
|
});
|
|
5314
5318
|
}, Wt = Ce ? "MORE TO COME…" : "END OF TRANSCRIPT", it = Ce ? "var(--brand)" : "var(--ink-28)", Ft = $o(ce, se.length), kt = D.has && (!ne.relang || !!Qe), Ze = z(D);
|
|
5315
5319
|
Ze.current = D;
|
|
5316
|
-
const
|
|
5320
|
+
const xt = `${re ?? ""}|${ne.on ? "voice" : "source"}`, mt = z({ key: xt, idx: 0, t: 0, playing: !1, until: 0 });
|
|
5317
5321
|
Y(() => {
|
|
5318
|
-
const T =
|
|
5319
|
-
if (T.key !==
|
|
5322
|
+
const T = mt.current;
|
|
5323
|
+
if (T.key !== xt && (T.key = xt, T.until = Date.now() + 15e3), !He) {
|
|
5320
5324
|
if (!T.until) {
|
|
5321
5325
|
T.idx = D.idx, T.t = D.t, T.playing = D.playing;
|
|
5322
5326
|
return;
|
|
@@ -5328,38 +5332,38 @@ function Yc(t) {
|
|
|
5328
5332
|
!D.has || ne.relang || (T.until = 0, Math.abs(D.t - T.t) > 0.5 && (D.seekFrac && D.dur > 0 ? D.seekFrac(T.t / D.dur) : D.seekRow(T.idx)), T.playing && !D.playing && (et.current = !0, D.toggle()));
|
|
5329
5333
|
}
|
|
5330
5334
|
});
|
|
5331
|
-
const
|
|
5335
|
+
const Dt = z(!1), et = z(!1);
|
|
5332
5336
|
u && (li.video = !0);
|
|
5333
|
-
const [en,
|
|
5337
|
+
const [en, vt] = O(!1), [In, On] = O(!1);
|
|
5334
5338
|
Y(() => {
|
|
5335
|
-
if (!u ||
|
|
5336
|
-
|
|
5339
|
+
if (!u || Dt.current || !kt || !P || _ || t.autoplay === !1) return;
|
|
5340
|
+
Dt.current = !0;
|
|
5337
5341
|
const T = (Fe) => {
|
|
5338
5342
|
Ze.current.playing || et.current || (Ze.current.toggle(), Fe > 0 && setTimeout(() => T(Fe - 1), 1500));
|
|
5339
5343
|
}, pe = () => {
|
|
5340
|
-
Ze.current.muted || Ze.current.toggleMute(),
|
|
5344
|
+
Ze.current.muted || Ze.current.toggleMute(), vt(!0), T(3);
|
|
5341
5345
|
}, Re = Ze.current;
|
|
5342
5346
|
if (!Re.autoplay || t.startMuted) {
|
|
5343
5347
|
pe();
|
|
5344
5348
|
return;
|
|
5345
5349
|
}
|
|
5346
5350
|
Re.autoplay().then((Fe) => {
|
|
5347
|
-
Fe === !1 ?
|
|
5351
|
+
Fe === !1 ? vt(!0) : Fe == null && !et.current && pe();
|
|
5348
5352
|
});
|
|
5349
5353
|
}, [u, kt, P, _]);
|
|
5350
|
-
const
|
|
5351
|
-
en && (
|
|
5352
|
-
|
|
5354
|
+
const jt = z(!1), Cn = () => {
|
|
5355
|
+
en && (vt(!1), jt.current = !0, setTimeout(() => {
|
|
5356
|
+
jt.current = !1;
|
|
5353
5357
|
}, 500), Ze.current.muted && Ze.current.toggleMute());
|
|
5354
5358
|
}, tn = () => {
|
|
5355
|
-
if (
|
|
5356
|
-
|
|
5359
|
+
if (jt.current) {
|
|
5360
|
+
jt.current = !1;
|
|
5357
5361
|
return;
|
|
5358
5362
|
}
|
|
5359
|
-
|
|
5363
|
+
vt(!1), Ze.current.toggleMute();
|
|
5360
5364
|
}, nn = () => {
|
|
5361
|
-
if (
|
|
5362
|
-
|
|
5365
|
+
if (jt.current) {
|
|
5366
|
+
jt.current = !1;
|
|
5363
5367
|
return;
|
|
5364
5368
|
}
|
|
5365
5369
|
et.current = !0, Ze.current.toggle();
|
|
@@ -5372,8 +5376,8 @@ function Yc(t) {
|
|
|
5372
5376
|
const T = setTimeout(() => De(!0), 180);
|
|
5373
5377
|
return () => clearTimeout(T);
|
|
5374
5378
|
}, [Ve]);
|
|
5375
|
-
const $e = Q ? Z : re,
|
|
5376
|
-
Lt.pause(), ne.player.pause(), K(T), T === "read" && P && (qt(!1),
|
|
5379
|
+
const $e = Q ? Z : re, zt = rl(B, re, se, je), St = yl(Tl(ue), B, ne.readLang), Pi = ot || Vt, Qi = (((Cr = (Or = n == null ? void 0 : n.job) == null ? void 0 : Or.crop) == null ? void 0 : Cr.startS) ?? 0) + ss(D, se), bn = A === "listen", At = bn && !!Qe, $i = (T) => {
|
|
5380
|
+
Lt.pause(), ne.player.pause(), K(T), T === "read" && P && (qt(!1), b(!1));
|
|
5377
5381
|
}, _e = ne.barChip, Ut = vi(_e.label), Ss = /* @__PURE__ */ i(as, { value: A, onChange: $i, bordered: !1, options: dc(Ut, !!Qe) }), Rt = [...Gt ? [{ key: "summary", label: "Summary" }] : [], ...Pi ? [{ key: "export", label: "Export" }] : []], As = (T) => /* @__PURE__ */ f(Pe, { children: [
|
|
5378
5382
|
T === "summary" && Gt && /* @__PURE__ */ i(wl, { s: St }),
|
|
5379
5383
|
T === "export" && /* @__PURE__ */ i(ml, { audio: ot ? { name: Ke, meta: ht && ne.canSpeak || Ue ? `MP3${W ? ` · ${Tt(W)}` : ""}` : "ORIGINAL AUDIO", onClick: _t } : null, formats: Vt, onExport: lt })
|
|
@@ -5390,7 +5394,7 @@ function Yc(t) {
|
|
|
5390
5394
|
var pe;
|
|
5391
5395
|
ne.relang || (pe = D.seekFrac) == null || pe.call(D, T);
|
|
5392
5396
|
}
|
|
5393
|
-
}, [Hi, Vi] =
|
|
5397
|
+
}, [Hi, Vi] = gc(ne.on && !!D.preparing && D.playing, 1500), xn = ne.on && ((br = D.error) == null ? void 0 : br.code) === "voice_not_started", Dn = ne.canSpeak && !ne.error && !xn, rn = re ? ((xr = gt == null ? void 0 : gt.languages.find((T) => T.code === re)) == null ? void 0 : xr.name) ?? _e.label : "", tt = P ? Mc({ lang: re, langName: rn, translating: Ve && !!re, translateFailed: Ae, voiceFailed: xn, relang: ne.relang, starting: ne.on ? D.starting : null, slowLine: Hi, lineSince: Vi }) : null, Sn = !!Qe && !!tt && (tt.kind === "translating" || tt.kind === "voice" && ne.relang), Ys = !Sn || !tt ? null : tt.kind === "translating" ? `Translating into ${rn || "the new language"}…` : `Preparing the ${rn || "translated"} voice…`, an = !Sn && ((tt == null ? void 0 : tt.kind) === "voice" || (tt == null ? void 0 : tt.kind) === "starting"), _s = vs({ ...ne.langList, keepOpen: !0, open: I === "lang", onClose: () => oe("main") }), Us = Ga(H, ne.on), Wi = u && Us.bed && ot && B && (!Ce || st) ? Ar(e.origin, B, e.cred) : null, Rs = so(Wi, { t: ss(D, se), playing: D.playing && !an && !(D.timed && D.preparing), muted: D.muted }), Fi = u && Us.speech && ot && B && (!Ce || st) ? Ar(e.origin, B, e.cred, "speech") : null, An = Ni(Fi, { t: ss(D, se), playing: !ne.on && D.playing, muted: D.muted }), En = !ne.on && An.on;
|
|
5394
5398
|
Y(() => {
|
|
5395
5399
|
var T;
|
|
5396
5400
|
rt.setVideoSound(!(He && (ne.on || En))), (T = Ge.silence) == null || T.call(Ge, !He && En);
|
|
@@ -5407,7 +5411,7 @@ function Yc(t) {
|
|
|
5407
5411
|
}, Ps = { prevOn: D.idx > 0, nextOn: D.idx < se.length - 1, onPrev: D.prev, onNext: D.next, playing: D.playing, playable: kt, playTitle: ne.playTitle ?? (D.playing ? "Pause" : "Play"), onPlay: () => {
|
|
5408
5412
|
et.current = !0, D.toggle();
|
|
5409
5413
|
}, busy: ne.relang && !Qe || an };
|
|
5410
|
-
|
|
5414
|
+
go(kt ? { playing: D.playing, toggle: () => {
|
|
5411
5415
|
et.current = !0, D.toggle();
|
|
5412
5416
|
}, next: D.next, prev: D.prev } : null, ze);
|
|
5413
5417
|
const Un = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, Rn = (T, pe) => !_e.can || !R.language ? null : u ? /* @__PURE__ */ f("button", { type: "button", className: "gfull__btn", title: at ? `${_e.label ?? _e.code}: still being prepared` : _e.label ?? _e.code, "aria-label": `Language: ${_e.label ?? _e.code}`, "aria-busy": at || void 0, onClick: () => {
|
|
@@ -5427,12 +5431,12 @@ function Yc(t) {
|
|
|
5427
5431
|
}, onToggle: D.has ? nn : void 0, onAd: On, lead: He ? rt.lead : void 0 }),
|
|
5428
5432
|
/* @__PURE__ */ i("div", { className: "vsp-poster", "aria-hidden": "true", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Qe}/hqdefault.jpg)`, opacity: Ki ? 0 : 1 }, children: !D.playing && /* @__PURE__ */ i("span", { className: "vsp-poster__play", children: /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: "42%", height: "42%", fill: "currentColor", style: { marginLeft: "6%" }, children: Zr }) }) })
|
|
5429
5433
|
] }), Bs = At && Qe && !P ? /* @__PURE__ */ i(Ll, { ytId: Qe, title: Ke, radius: 14, large: !0, style: r ? void 0 : { margin: "8px 20px 2px" }, picture: $s, children: /* @__PURE__ */ i(oc, { pos: Es, transport: Ps, chip: Rn({ ...Un, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: Qs, onFull: () => {
|
|
5430
|
-
qt(!0),
|
|
5434
|
+
qt(!0), b(!0);
|
|
5431
5435
|
}, copied: null }) }) : null, Je = D.wordSync ? Zo(se, D.idx, D.t) ? se[D.idx] : void 0 : se[D.idx];
|
|
5432
5436
|
for (const T of se) for (const [pe, Re] of Object.entries(T.translations)) Re && L.current.set(`${T.sentenceId ?? T.start}|${pe}`, Re);
|
|
5433
|
-
const Hs = (T, pe) => T.translations[pe] || L.current.get(`${T.sentenceId ?? T.start}|${pe}`) || null, Pn = (T, pe) => !T || !pe || T.language === pe || !!Hs(T, pe),
|
|
5434
|
-
Je && Pn(Je,
|
|
5435
|
-
const Vs = Je &&
|
|
5437
|
+
const Hs = (T, pe) => T.translations[pe] || L.current.get(`${T.sentenceId ?? T.start}|${pe}`) || null, Pn = (T, pe) => !T || !pe || T.language === pe || !!Hs(T, pe), yt = Pn(Je, re) ? re : Pn(Je, $.current) ? $.current : re;
|
|
5438
|
+
Je && Pn(Je, yt) && ($.current = yt);
|
|
5439
|
+
const Vs = Je && yt && Je.language !== yt ? Hs(Je, yt) : null, Xi = Je && Vs && yt && !Je.translations[yt] ? Object.assign([...se], { [D.idx]: { ...Je, translations: { ...Je.translations, [yt]: Vs } } }) : se, on = Je ? bi(Xi, D.idx, yt) : [], ln = Le ? Le === "on" : !u || ne.on || !$e || $e === ee, Ws = ln ? Gr(D, D.idx, on) : null, Fs = on.map((T, pe) => ({ t: T.text, sp: pe < on.length - 1 ? " " : "", dim: Ws != null && pe > Ws })), cn = le ? le === "on" : u ? !1 : Io(G, se, ue == null ? void 0 : ue.settings), Gs = { lang: re, subtitles: we, speakerLabels: cn, wordHighlight: ln, translateAudio: Be, voices: ye ? "cloned" : "synthetic", removeBackground: H }, ea = JSON.stringify(Gs), un = z(t.onSettingsChange);
|
|
5436
5440
|
un.current = t.onSettingsChange, Y(() => {
|
|
5437
5441
|
var T;
|
|
5438
5442
|
(T = un.current) == null || T.call(un, Gs);
|
|
@@ -5474,6 +5478,9 @@ function Yc(t) {
|
|
|
5474
5478
|
},
|
|
5475
5479
|
toggle: () => {
|
|
5476
5480
|
et.current = !0, Ze.current.toggle();
|
|
5481
|
+
},
|
|
5482
|
+
toggleMute: () => {
|
|
5483
|
+
vt(!1), Ze.current.toggleMute();
|
|
5477
5484
|
}
|
|
5478
5485
|
}, Y(() => () => {
|
|
5479
5486
|
t.handle.current = null;
|
|
@@ -5486,8 +5493,8 @@ function Yc(t) {
|
|
|
5486
5493
|
const pe = () => {
|
|
5487
5494
|
const Fe = er.current;
|
|
5488
5495
|
if (!Fe) return;
|
|
5489
|
-
const
|
|
5490
|
-
Nn !== T && (T = Nn, Fe(
|
|
5496
|
+
const ft = Ze.current, Mt = { t: ft.t, dur: ft.dur, playing: ft.playing, idx: ft.idx, seekN: ft.seekN, lang: tr.current, muted: ft.muted }, Nn = `${Mt.t.toFixed(2)}|${Mt.dur}|${Mt.playing}|${Mt.idx}|${Mt.seekN}|${Mt.lang}|${Mt.muted}`;
|
|
5497
|
+
Nn !== T && (T = Nn, Fe(Mt));
|
|
5491
5498
|
};
|
|
5492
5499
|
pe();
|
|
5493
5500
|
const Re = window.setInterval(pe, Ac);
|
|
@@ -5496,19 +5503,19 @@ function Yc(t) {
|
|
|
5496
5503
|
const ra = () => bs(Js(null), Ke, () => {
|
|
5497
5504
|
window.clearTimeout(Bn.current), Zs(!0), Bn.current = window.setTimeout(() => Zs(!1), 2200);
|
|
5498
5505
|
}), nr = (T, pe, Re) => {
|
|
5499
|
-
const Fe =
|
|
5500
|
-
return /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", "aria-busy":
|
|
5506
|
+
const Fe = hs.find((Nn) => Nn.key === T), ft = Qn === T, Mt = na === T;
|
|
5507
|
+
return /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", "aria-busy": ft || void 0, style: Qn && !ft ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
|
|
5501
5508
|
Qn || (qs(T), Promise.resolve().then(() => lt(T)).then(() => {
|
|
5502
5509
|
Ks(T), window.clearTimeout($n.current), $n.current = window.setTimeout(() => Ks(null), 1600);
|
|
5503
5510
|
}).catch(() => {
|
|
5504
5511
|
}).finally(() => qs(null)));
|
|
5505
5512
|
}, children: [
|
|
5506
|
-
|
|
5513
|
+
ft ? /* @__PURE__ */ i(ct, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(de, { d: Fe.icon, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
|
|
5507
5514
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5508
5515
|
/* @__PURE__ */ i("div", { className: "srow__t", children: pe }),
|
|
5509
5516
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Re })
|
|
5510
5517
|
] }),
|
|
5511
|
-
/* @__PURE__ */ i(de, { d:
|
|
5518
|
+
/* @__PURE__ */ i(de, { d: Mt ? q.check : q.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: Mt ? "var(--brand)" : "var(--ink-62)" } })
|
|
5512
5519
|
] });
|
|
5513
5520
|
}, ia = /* @__PURE__ */ f("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
5514
5521
|
" ",
|
|
@@ -5516,38 +5523,38 @@ function Yc(t) {
|
|
|
5516
5523
|
/* @__PURE__ */ i(de, { d: q.chevronLeft, size: 18, sw: 1.8 }),
|
|
5517
5524
|
"Back"
|
|
5518
5525
|
] })
|
|
5519
|
-
] }),
|
|
5526
|
+
] }), gn = /* @__PURE__ */ i(de, { d: q.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), aa = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[I], hn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, Vn = u ? /* @__PURE__ */ i($t, { open: j, onClose: () => S(!1), title: aa, titleNode: I === "main" ? void 0 : ia, doneLabel: Ut.done, kind: I === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(os, { children: I === "lang" ? /* @__PURE__ */ f("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
5520
5527
|
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: _s.search }),
|
|
5521
5528
|
_s.list
|
|
5522
|
-
] }) : I === "subs" ? /* @__PURE__ */ f("div", { style:
|
|
5529
|
+
] }) : I === "subs" ? /* @__PURE__ */ f("div", { style: hn, children: [
|
|
5523
5530
|
/* @__PURE__ */ f("div", { className: "srow", children: [
|
|
5524
5531
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5525
5532
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Show subtitles" }),
|
|
5526
5533
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Captions over the video" })
|
|
5527
5534
|
] }),
|
|
5528
|
-
/* @__PURE__ */ i(
|
|
5535
|
+
/* @__PURE__ */ i(Nt, { checked: we, onChange: Ee, label: "Show subtitles" })
|
|
5529
5536
|
] }),
|
|
5530
5537
|
/* @__PURE__ */ f("div", { className: "srow", children: [
|
|
5531
5538
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5532
5539
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Show speaker labels" }),
|
|
5533
5540
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Who is speaking, before each line" })
|
|
5534
5541
|
] }),
|
|
5535
|
-
/* @__PURE__ */ i(
|
|
5542
|
+
/* @__PURE__ */ i(Nt, { checked: cn, onChange: (T) => ve(T ? "on" : "off"), label: "Show speaker labels" })
|
|
5536
5543
|
] }),
|
|
5537
5544
|
/* @__PURE__ */ f("div", { className: "srow", children: [
|
|
5538
5545
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5539
5546
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Highlight words" }),
|
|
5540
5547
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Follow each word as it is spoken" })
|
|
5541
5548
|
] }),
|
|
5542
|
-
/* @__PURE__ */ i(
|
|
5549
|
+
/* @__PURE__ */ i(Nt, { checked: ln, onChange: (T) => Te(T ? "on" : "off"), label: "Highlight words" })
|
|
5543
5550
|
] })
|
|
5544
|
-
] }) : I === "audio" ? /* @__PURE__ */ f("div", { style:
|
|
5551
|
+
] }) : I === "audio" ? /* @__PURE__ */ f("div", { style: hn, children: [
|
|
5545
5552
|
/* @__PURE__ */ f("div", { className: "srow", children: [
|
|
5546
5553
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5547
5554
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Translate audio" }),
|
|
5548
5555
|
/* @__PURE__ */ i("div", { className: "srow__s", children: re ? Dn ? "Hear the translation read aloud instead of the original speech" : ne.canSpeak ? "Not available right now" : "Not available in this language" : "Pick a language to hear the translation read aloud" })
|
|
5549
5556
|
] }),
|
|
5550
|
-
/* @__PURE__ */ i(
|
|
5557
|
+
/* @__PURE__ */ i(Nt, { checked: _n, onChange: Oe, label: "Translate audio", disabled: !Dn || !re })
|
|
5551
5558
|
] }),
|
|
5552
5559
|
_n && ne.hasClone && /* @__PURE__ */ f("div", { className: "srow", children: [
|
|
5553
5560
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5561,33 +5568,33 @@ function Yc(t) {
|
|
|
5561
5568
|
/* @__PURE__ */ i("div", { className: "srow__t", children: Ln }),
|
|
5562
5569
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Fa(H, Yn, "video", ne.on ? 0 : An.untilS) })
|
|
5563
5570
|
] }),
|
|
5564
|
-
/* @__PURE__ */ i(
|
|
5571
|
+
/* @__PURE__ */ i(Nt, { checked: H && ot, onChange: X, label: Ln, disabled: !ot || Yn === "unavailable" && !H })
|
|
5565
5572
|
] })
|
|
5566
|
-
] }) : I === "export" ? /* @__PURE__ */ f("div", { style:
|
|
5573
|
+
] }) : I === "export" ? /* @__PURE__ */ f("div", { style: hn, children: [
|
|
5567
5574
|
nr("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
|
|
5568
5575
|
nr("pdf", "PDF", "Formatted transcript in paragraphs, with timestamps and speaker labels")
|
|
5569
|
-
] }) : /* @__PURE__ */ i("div", { style:
|
|
5576
|
+
] }) : /* @__PURE__ */ i("div", { style: hn, children: [
|
|
5570
5577
|
_e.can && R.language && /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", onClick: () => oe("lang"), children: [
|
|
5571
5578
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5572
5579
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Language" }),
|
|
5573
5580
|
/* @__PURE__ */ i("div", { className: "srow__s", children: re ? `Translated to ${_e.label ?? re.toUpperCase()}` : "Original language" })
|
|
5574
5581
|
] }),
|
|
5575
5582
|
/* @__PURE__ */ i("span", { style: { fontSize: 18, lineHeight: 1 }, children: _e.flag }),
|
|
5576
|
-
|
|
5583
|
+
gn
|
|
5577
5584
|
] }, "lang"),
|
|
5578
5585
|
R.subtitles && /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", onClick: () => oe("subs"), children: [
|
|
5579
5586
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5580
5587
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Subtitles" }),
|
|
5581
5588
|
/* @__PURE__ */ i("div", { className: "srow__s", children: we ? "On · speaker labels and word highlighting" : "Off" })
|
|
5582
5589
|
] }),
|
|
5583
|
-
|
|
5590
|
+
gn
|
|
5584
5591
|
] }, "subs"),
|
|
5585
5592
|
R.audio && /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", onClick: () => oe("audio"), children: [
|
|
5586
5593
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5587
5594
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Audio" }),
|
|
5588
5595
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Gi })
|
|
5589
5596
|
] }),
|
|
5590
|
-
|
|
5597
|
+
gn
|
|
5591
5598
|
] }, "audio"),
|
|
5592
5599
|
R.export && Vt && !!B && /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", onClick: () => oe("export"), children: [
|
|
5593
5600
|
/* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5597,7 +5604,7 @@ function Yc(t) {
|
|
|
5597
5604
|
] }),
|
|
5598
5605
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Subtitles (SRT / VTT) or a PDF of the transcript" })
|
|
5599
5606
|
] }),
|
|
5600
|
-
|
|
5607
|
+
gn
|
|
5601
5608
|
] }, "export")
|
|
5602
5609
|
].filter(Boolean).flatMap((T, pe) => pe ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${pe}`), T] : [T]) }) }) }) : /* @__PURE__ */ i($t, { open: j, onClose: () => S(!1), title: Ut.settings, doneLabel: Ut.done, drawer: r, children: /* @__PURE__ */ f("div", { style: { display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
5603
5610
|
_e.can && /* @__PURE__ */ f(Pe, { children: [
|
|
@@ -5615,7 +5622,7 @@ function Yc(t) {
|
|
|
5615
5622
|
/* @__PURE__ */ i("div", { className: "sdiv" })
|
|
5616
5623
|
] }),
|
|
5617
5624
|
t.settingsExtra
|
|
5618
|
-
] }) }),
|
|
5625
|
+
] }) }), It = P && At && Qe && /* @__PURE__ */ i(
|
|
5619
5626
|
Ai,
|
|
5620
5627
|
{
|
|
5621
5628
|
page: (t.layout ?? "embed") === "page",
|
|
@@ -5651,7 +5658,7 @@ function Yc(t) {
|
|
|
5651
5658
|
] }) : Ys ? /* @__PURE__ */ f("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5652
5659
|
/* @__PURE__ */ i(ct, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
5653
5660
|
Ys
|
|
5654
|
-
] }) : ne.on && (He ?
|
|
5661
|
+
] }) : ne.on && (He ? Ct.missing != null : D.silent) ? /* @__PURE__ */ f("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5655
5662
|
/* @__PURE__ */ i(ct, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
5656
5663
|
`${rn || "Translated"} voice is still being prepared · playing with subtitles`
|
|
5657
5664
|
] }) : null,
|
|
@@ -5659,12 +5666,12 @@ function Yc(t) {
|
|
|
5659
5666
|
qt(!0), Cn();
|
|
5660
5667
|
},
|
|
5661
5668
|
onClose: u ? void 0 : () => {
|
|
5662
|
-
qt(!1),
|
|
5669
|
+
qt(!1), b(!1);
|
|
5663
5670
|
}
|
|
5664
5671
|
}
|
|
5665
5672
|
);
|
|
5666
5673
|
Y(() => {
|
|
5667
|
-
!u && P && !At && (qt(!1),
|
|
5674
|
+
!u && P && !At && (qt(!1), b(!1));
|
|
5668
5675
|
}, [u, P, At]);
|
|
5669
5676
|
const sr = Ce && /* @__PURE__ */ f("div", { className: `pubprog${r ? " pubprog--desk" : ""}${w ? " pubprog--find" : ""}`, children: [
|
|
5670
5677
|
/* @__PURE__ */ f("div", { className: "pubprog__row", children: [
|
|
@@ -5674,7 +5681,7 @@ function Yc(t) {
|
|
|
5674
5681
|
/* @__PURE__ */ i("span", { className: "s", children: Ft })
|
|
5675
5682
|
] }),
|
|
5676
5683
|
!r && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) })
|
|
5677
|
-
] }), Wn = s && /* @__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." }), rr = /* @__PURE__ */ i(ql, { model: G, rows: se, player: D, tail: Wt, tailFg: it, running: Ce, desk: r, feedRef:
|
|
5684
|
+
] }), Wn = s && /* @__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." }), rr = /* @__PURE__ */ i(ql, { model: G, rows: se, player: D, tail: Wt, tailFg: it, running: Ce, desk: r, feedRef: bt, listener: !0, showLabels: cn, find: p, findOpen: !r && w, lang: $e, warm: Q, onVisible: zt, wordHl: ln }), Fn = /* @__PURE__ */ i(Xo, { error: h ?? me ?? (xn && P ? null : D.error) ?? ne.error, onClose: () => {
|
|
5678
5685
|
M(null), V(), D.clearError(), ne.clearError();
|
|
5679
5686
|
} }), ir = [W ? Tt(W) : null, ee ? ee.toUpperCase() : null, fe || "Read-only copy"].filter(Boolean).join(" · "), ar = (T) => /* @__PURE__ */ i("div", { className: "ctrans", children: ne.noVoice ? ne.noVoiceNote : /* @__PURE__ */ f(Pe, { children: [
|
|
5680
5687
|
/* @__PURE__ */ f("div", { className: "ctrans__row", children: [
|
|
@@ -5704,7 +5711,7 @@ function Yc(t) {
|
|
|
5704
5711
|
var T;
|
|
5705
5712
|
(T = fn.current) == null || T.call(fn, lr);
|
|
5706
5713
|
}, [lr]);
|
|
5707
|
-
const [ca, Gn] = O(!1), Zn = !!
|
|
5714
|
+
const [ca, Gn] = O(!1), Zn = !!It && !_ && (He ? !!D.ended : !D.playing && D.dur > 0 && D.t >= D.dur - 0.5);
|
|
5708
5715
|
Y(() => {
|
|
5709
5716
|
Zn || Gn(!1);
|
|
5710
5717
|
}, [Zn]);
|
|
@@ -5712,7 +5719,7 @@ function Yc(t) {
|
|
|
5712
5719
|
Gn(!0), et.current = !0, D.seekFrac ? D.seekFrac(0) : D.seekRow(0), D.playing || D.toggle();
|
|
5713
5720
|
} });
|
|
5714
5721
|
if (u) return /* @__PURE__ */ f(Pe, { children: [
|
|
5715
|
-
s ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: Wn }) : la ||
|
|
5722
|
+
s ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: Wn }) : la || It || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
|
|
5716
5723
|
ua,
|
|
5717
5724
|
Fn
|
|
5718
5725
|
] });
|
|
@@ -5748,9 +5755,9 @@ function Yc(t) {
|
|
|
5748
5755
|
ne.sidePanel
|
|
5749
5756
|
] })
|
|
5750
5757
|
] }),
|
|
5751
|
-
!
|
|
5752
|
-
!(u &&
|
|
5753
|
-
|
|
5758
|
+
!It && ne.sheets,
|
|
5759
|
+
!(u && It) && Vn,
|
|
5760
|
+
It,
|
|
5754
5761
|
Fn
|
|
5755
5762
|
] });
|
|
5756
5763
|
}
|
|
@@ -5776,9 +5783,9 @@ function Yc(t) {
|
|
|
5776
5783
|
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children: Ss })
|
|
5777
5784
|
] })
|
|
5778
5785
|
] }),
|
|
5779
|
-
!
|
|
5780
|
-
!(u &&
|
|
5781
|
-
|
|
5786
|
+
!It && ne.sheets,
|
|
5787
|
+
!(u && It) && Vn,
|
|
5788
|
+
It,
|
|
5782
5789
|
Fn
|
|
5783
5790
|
] });
|
|
5784
5791
|
}
|
|
@@ -5817,7 +5824,7 @@ export {
|
|
|
5817
5824
|
Gr as spokenWordOf,
|
|
5818
5825
|
Ga as trackPlan,
|
|
5819
5826
|
wi as useApi,
|
|
5820
|
-
|
|
5827
|
+
hl as useArchiveVoice,
|
|
5821
5828
|
so as useBackgroundBed,
|
|
5822
5829
|
$l as useDuck,
|
|
5823
5830
|
Jl as useFindPull,
|