@vocalstack/player 0.1.0-alpha.13 → 0.1.0-alpha.14
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 +822 -819
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var Me = (t, e, n) =>
|
|
4
|
-
import { jsx as i, jsxs as
|
|
5
|
-
import { useState as O, useRef as j, useEffect as _, useLayoutEffect as Qt, createContext as ti, useMemo as je, useContext as
|
|
6
|
-
import { createPortal as
|
|
1
|
+
var da = Object.defineProperty;
|
|
2
|
+
var Ma = (t, e, n) => e in t ? da(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
|
+
var Me = (t, e, n) => Ma(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
|
+
import { jsx as i, jsxs as h, Fragment as Re } from "react/jsx-runtime";
|
|
5
|
+
import { useState as O, useRef as j, useEffect as _, useLayoutEffect as Qt, createContext as ti, useMemo as je, useContext as ga, useCallback as Xe, Fragment as ha, forwardRef as fa, useImperativeHandle as Na } from "react";
|
|
6
|
+
import { createPortal as pa } from "react-dom";
|
|
7
7
|
import { VocalStackError as ni, VocalStack as si } from "@vocalstack/js-sdk";
|
|
8
|
-
const ri = "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==";
|
|
9
|
-
function
|
|
8
|
+
const ri = "https://vocalstack.com", ma = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ya = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", Ta = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", wa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
9
|
+
function La({ size: t = 16, sw: e = 1.5, children: n, style: s, ...r }) {
|
|
10
10
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "none", stroke: "currentColor", strokeWidth: e, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", style: { flex: "none", ...s }, ...r, children: n });
|
|
11
11
|
}
|
|
12
12
|
const q = {
|
|
@@ -53,12 +53,12 @@ const q = {
|
|
|
53
53
|
video: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"
|
|
54
54
|
};
|
|
55
55
|
function ce({ d: t, ...e }) {
|
|
56
|
-
return /* @__PURE__ */ i(
|
|
56
|
+
return /* @__PURE__ */ i(La, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ i("path", { d: n }, n)) });
|
|
57
57
|
}
|
|
58
|
-
function
|
|
58
|
+
function ka({ size: t = 15 }) {
|
|
59
59
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ i("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2.5" }) });
|
|
60
60
|
}
|
|
61
|
-
function
|
|
61
|
+
function vs({ size: t = 13 }) {
|
|
62
62
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", style: { marginLeft: 2 }, "aria-hidden": "true", children: /* @__PURE__ */ i("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" }) });
|
|
63
63
|
}
|
|
64
64
|
function at({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,127,.35)", sw: s }) {
|
|
@@ -80,20 +80,20 @@ function at({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,
|
|
|
80
80
|
}
|
|
81
81
|
);
|
|
82
82
|
}
|
|
83
|
-
function
|
|
84
|
-
return /* @__PURE__ */
|
|
83
|
+
function va({ size: t = 12 }) {
|
|
84
|
+
return /* @__PURE__ */ h("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", "aria-hidden": "true", children: [
|
|
85
85
|
/* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
|
|
86
86
|
/* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
87
87
|
] });
|
|
88
88
|
}
|
|
89
89
|
function jn({ dark: t, height: e = 20, link: n = !0 }) {
|
|
90
|
-
const s = /* @__PURE__ */ i("img", { src: t ?
|
|
90
|
+
const s = /* @__PURE__ */ i("img", { src: t ? ma : ya, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
|
|
91
91
|
return n ? /* @__PURE__ */ i("a", { href: ri, style: { display: "block" }, children: s }) : s;
|
|
92
92
|
}
|
|
93
|
-
function
|
|
94
|
-
return /* @__PURE__ */ i("img", { src: t ?
|
|
93
|
+
function ii({ dark: t, size: e = 30 }) {
|
|
94
|
+
return /* @__PURE__ */ i("img", { src: t ? Ta : wa, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function Er({ 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
99
|
function pt({ checked: t, onChange: e, label: n, disabled: s }) {
|
|
@@ -104,43 +104,43 @@ function os({ 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 f = u.querySelectorAll(".vs-switch__opt")[d];
|
|
108
|
+
f && c({ left: f.offsetLeft, width: f.offsetWidth });
|
|
109
109
|
}, [d, n.length]), _(() => {
|
|
110
110
|
const u = o.current;
|
|
111
111
|
if (!u || typeof ResizeObserver > "u") return;
|
|
112
|
-
const
|
|
112
|
+
const f = 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
|
|
117
|
-
}, [d]), /* @__PURE__ */
|
|
116
|
+
return f.observe(u), () => f.disconnect();
|
|
117
|
+
}, [d]), /* @__PURE__ */ h("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
|
-
n.map((u) => /* @__PURE__ */
|
|
119
|
+
n.map((u) => /* @__PURE__ */ h("button", { type: "button", role: "tab", "aria-selected": u.value === t, className: "vs-switch__opt", onClick: () => e(u.value), children: [
|
|
120
120
|
u.icon,
|
|
121
121
|
u.label
|
|
122
122
|
] }, u.value))
|
|
123
123
|
] });
|
|
124
124
|
}
|
|
125
|
-
function
|
|
125
|
+
function ja({ children: t, onClick: e, label: n, size: s, variant: r, bordered: a = !0, active: o, title: l }) {
|
|
126
126
|
return /* @__PURE__ */ i("button", { type: "button", className: `vs-icon-btn${s === "sm" ? " vs-icon-btn--sm" : ""}${r === "primary" ? " vs-icon-btn--primary" : ""}${o ? " vs-icon-btn--primary" : ""}${a ? "" : " vs-icon-btn--borderless"}`, onClick: e, "aria-label": n, title: l ?? n, children: t });
|
|
127
127
|
}
|
|
128
128
|
function Ln({ flag: t, code: e, label: n, onClick: s, variant: r, block: a, bordered: o = !0, size: l, style: c }) {
|
|
129
129
|
const d = a && !!e;
|
|
130
|
-
return /* @__PURE__ */
|
|
130
|
+
return /* @__PURE__ */ h("button", { type: "button", className: `vs-lang-chip${r ? ` vs-lang-chip--${r}` : ""}${a ? " vs-lang-chip--block" : ""}${a && !d ? " vs-lang-chip--bare" : ""}${o ? "" : " vs-lang-chip--borderless"}${l === "sm" ? " vs-lang-chip--sm" : ""}`, onClick: s, "aria-label": n ? e ? `${n} (${e})` : n : e, style: c, children: [
|
|
131
131
|
t ? /* @__PURE__ */ i("span", { className: "vs-lang-chip__flag", children: t }) : null,
|
|
132
132
|
d ? /* @__PURE__ */ i("span", { className: "vs-lang-chip__name", children: n ?? e }) : a ? null : /* @__PURE__ */ i("span", { className: "vs-lang-chip__code", children: e }),
|
|
133
133
|
/* @__PURE__ */ i(ce, { d: q.chevronDown, size: 13, className: "vs-lang-chip__chevron", style: { color: r === "primary" ? "currentColor" : "var(--vs-text-muted)" } })
|
|
134
134
|
] });
|
|
135
135
|
}
|
|
136
|
-
function
|
|
136
|
+
function za({ value: t, label: e = "Copy", onCopied: n }) {
|
|
137
137
|
const [s, r] = O(!1), a = async () => {
|
|
138
138
|
try {
|
|
139
139
|
await navigator.clipboard.writeText(t), r(!0), n == null || n(), setTimeout(() => r(!1), 1400);
|
|
140
140
|
} catch {
|
|
141
141
|
}
|
|
142
142
|
};
|
|
143
|
-
return /* @__PURE__ */
|
|
143
|
+
return /* @__PURE__ */ h(
|
|
144
144
|
"button",
|
|
145
145
|
{
|
|
146
146
|
type: "button",
|
|
@@ -158,7 +158,7 @@ function Ia({ value: t, label: e = "Copy", onCopied: n }) {
|
|
|
158
158
|
}
|
|
159
159
|
);
|
|
160
160
|
}
|
|
161
|
-
function
|
|
161
|
+
function Ia(t, e) {
|
|
162
162
|
Qt(() => {
|
|
163
163
|
const n = t.current, s = window.visualViewport;
|
|
164
164
|
if (!e || !n || !s) return;
|
|
@@ -189,23 +189,23 @@ function ls({ 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 f = new ResizeObserver(u);
|
|
193
|
+
return f.observe(o), () => {
|
|
194
|
+
f.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
|
|
199
|
+
const f = j(null);
|
|
200
|
+
return Ia(f, t), _(() => {
|
|
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: f, className: `vs-sheet-scrim${l ? " drawer" : ""}${u ? " vs-sheet-scrim--sticky" : ""}`, onClick: u ? void 0 : e, children: /* @__PURE__ */ h("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
|
-
/* @__PURE__ */
|
|
208
|
+
/* @__PURE__ */ h("div", { className: "vs-sheet__head", children: [
|
|
209
209
|
s ?? /* @__PURE__ */ i("span", { className: "vs-sheet__title", children: n }),
|
|
210
210
|
/* @__PURE__ */ i("button", { type: "button", className: "vs-sheet__done", onClick: e, children: a })
|
|
211
211
|
] }),
|
|
@@ -222,7 +222,7 @@ let yn = null;
|
|
|
222
222
|
function Bc(t) {
|
|
223
223
|
yn = t;
|
|
224
224
|
}
|
|
225
|
-
function
|
|
225
|
+
function ai(t) {
|
|
226
226
|
yn == null || yn(t);
|
|
227
227
|
}
|
|
228
228
|
function zn() {
|
|
@@ -232,11 +232,11 @@ function zn() {
|
|
|
232
232
|
return "ogg";
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
|
-
function
|
|
235
|
+
function Oa(t = {}) {
|
|
236
236
|
const e = new URLSearchParams();
|
|
237
237
|
return t.media ? e.set("media", t.media) : t.accessToken && e.set("access_token", t.accessToken), t.listenerToken && e.set("listenerToken", t.listenerToken), t.shareCode && e.set("shareCode", t.shareCode), e.toString();
|
|
238
238
|
}
|
|
239
|
-
async function
|
|
239
|
+
async function Ca(t) {
|
|
240
240
|
try {
|
|
241
241
|
const e = await fetch(t, { redirect: "manual", headers: { accept: "application/json" } });
|
|
242
242
|
if (e.type === "opaqueredirect" || e.ok || e.status >= 300 && e.status < 400) return null;
|
|
@@ -251,11 +251,11 @@ async function ba(t) {
|
|
|
251
251
|
return null;
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
|
-
function
|
|
254
|
+
function ba(t, e, n = {}) {
|
|
255
255
|
const s = new URLSearchParams({ kind: "delivery", format: zn() });
|
|
256
256
|
return n.accessToken && s.set("access_token", n.accessToken), n.listenerToken && s.set("listenerToken", n.listenerToken), n.shareCode && s.set("shareCode", n.shareCode), `${t}/v1/recordings/${e}/audio?${s}`;
|
|
257
257
|
}
|
|
258
|
-
function
|
|
258
|
+
function Yr(t, e, n = {}, s = "background") {
|
|
259
259
|
const r = new URLSearchParams({ kind: s, format: zn() });
|
|
260
260
|
return n.accessToken && r.set("access_token", n.accessToken), n.listenerToken && r.set("listenerToken", n.listenerToken), n.shareCode && r.set("shareCode", n.shareCode), `${t}/v1/recordings/${e}/audio?${r}`;
|
|
261
261
|
}
|
|
@@ -263,30 +263,30 @@ function Kn(t, e, n, s = {}) {
|
|
|
263
263
|
const r = new URLSearchParams({ kind: n });
|
|
264
264
|
return n === "delivery" && r.set("format", "mp3"), s.accessToken && r.set("access_token", s.accessToken), s.listenerToken && r.set("listenerToken", s.listenerToken), s.shareCode && r.set("shareCode", s.shareCode), `${t}/v1/recordings/${e}/audio?${r}`;
|
|
265
265
|
}
|
|
266
|
-
function
|
|
267
|
-
return
|
|
266
|
+
function xa(t, e, n, s, r = {}) {
|
|
267
|
+
return Da(t, e, n, s, "mp3", r);
|
|
268
268
|
}
|
|
269
|
-
function
|
|
269
|
+
function Da(t, e, n, s, r, a) {
|
|
270
270
|
const o = new URLSearchParams({ kind: "voice", lang: n, format: r });
|
|
271
271
|
return s && o.set("voice", s), a.accessToken && o.set("access_token", a.accessToken), a.listenerToken && o.set("listenerToken", a.listenerToken), a.shareCode && o.set("shareCode", a.shareCode), `${t}/v1/recordings/${e}/audio?${o}`;
|
|
272
272
|
}
|
|
273
|
-
function
|
|
273
|
+
function Sa(t, e = !0) {
|
|
274
274
|
const n = (t == null ? void 0 : t.code) ?? 0, s = n === 2 ? "the download failed" : n === 3 ? "this browser could not decode it" : n === 4 ? "the file is not available, or this browser cannot play it" : n === 1 ? "the load was stopped" : "something went wrong";
|
|
275
|
-
return e &&
|
|
275
|
+
return e && oi(t), `The audio could not be played: ${s}.`;
|
|
276
276
|
}
|
|
277
|
-
function
|
|
277
|
+
function oi(t) {
|
|
278
278
|
const e = (t == null ? void 0 : t.code) ?? 0;
|
|
279
|
-
e !== 1 &&
|
|
279
|
+
e !== 1 && ai(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
|
|
280
280
|
}
|
|
281
|
-
const
|
|
282
|
-
function
|
|
281
|
+
const Aa = 3e3;
|
|
282
|
+
function Ea(t, e, n) {
|
|
283
283
|
if (t !== 503) return null;
|
|
284
284
|
const s = e == null || e.trim() === "" ? NaN : Number(e);
|
|
285
285
|
if (Number.isFinite(s)) return Math.min(15e3, Math.max(1e3, s * 1e3));
|
|
286
286
|
const r = n;
|
|
287
|
-
return r && (r.retryable === !0 || r.code === "engine_unavailable") ?
|
|
287
|
+
return r && (r.retryable === !0 || r.code === "engine_unavailable") ? Aa : null;
|
|
288
288
|
}
|
|
289
|
-
class
|
|
289
|
+
class Ya {
|
|
290
290
|
constructor(e = {}) {
|
|
291
291
|
Me(this, "entries", /* @__PURE__ */ new Map());
|
|
292
292
|
Me(this, "wanted", []);
|
|
@@ -379,13 +379,13 @@ class _a {
|
|
|
379
379
|
}).catch(() => s(n.signal.aborted ? null : { state: "failed", at: this.now() }));
|
|
380
380
|
}
|
|
381
381
|
}
|
|
382
|
-
const
|
|
383
|
-
function
|
|
384
|
-
if (!
|
|
382
|
+
const li = { video: !1 };
|
|
383
|
+
function ci(t) {
|
|
384
|
+
if (!li.video) return new Audio(t);
|
|
385
385
|
const e = document.createElement("video");
|
|
386
386
|
return e.playsInline = !0, t && (e.src = t), e;
|
|
387
387
|
}
|
|
388
|
-
class
|
|
388
|
+
class ui extends Error {
|
|
389
389
|
constructor() {
|
|
390
390
|
super("The voice did not start in time."), this.name = "VoiceNotStarted";
|
|
391
391
|
}
|
|
@@ -431,7 +431,7 @@ const nt = class nt {
|
|
|
431
431
|
Me(this, "loading", null);
|
|
432
432
|
Me(this, "readAhead", 0);
|
|
433
433
|
Me(this, "readAheadS", 0);
|
|
434
|
-
Me(this, "prefetch", new
|
|
434
|
+
Me(this, "prefetch", new Ya());
|
|
435
435
|
Me(this, "warmed", /* @__PURE__ */ new Set());
|
|
436
436
|
Me(this, "startingSince", /* @__PURE__ */ new Map());
|
|
437
437
|
Me(this, "retries", /* @__PURE__ */ new Map());
|
|
@@ -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, f) => {
|
|
699
699
|
var M;
|
|
700
|
-
return ((M = s.got.get(
|
|
701
|
-
}), d = c.reduce((u,
|
|
700
|
+
return ((M = s.got.get(f)) == null ? void 0 : M.durationS) ?? 0;
|
|
701
|
+
}), d = c.reduce((u, f) => u + f, 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 f = 0, M = 0;
|
|
705
|
+
for (; f < c.length - 1 && M + c[f] <= u; ) M += c[f++];
|
|
706
|
+
if (o = -(u - M), f !== n) {
|
|
707
|
+
this.partBase = M, this.startPartAt(e, f, 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((f, M) => f - M)) {
|
|
741
|
+
const f = d.got.get(u);
|
|
742
|
+
s.push(f), r += f.durationS || 0;
|
|
743
743
|
}
|
|
744
744
|
}
|
|
745
745
|
return s;
|
|
@@ -767,7 +767,7 @@ const nt = class nt {
|
|
|
767
767
|
const l = await fetch(n, { method: "GET" });
|
|
768
768
|
r = l.ok, s = l.status === 202 || l.status === 503 || l.status === 429;
|
|
769
769
|
const c = l.status === 503 ? await l.json().catch(() => null) : null;
|
|
770
|
-
a =
|
|
770
|
+
a = Ea(l.status, l.headers.get("Retry-After"), c);
|
|
771
771
|
} catch {
|
|
772
772
|
s = !0;
|
|
773
773
|
}
|
|
@@ -788,7 +788,7 @@ const nt = class nt {
|
|
|
788
788
|
}, a);
|
|
789
789
|
return;
|
|
790
790
|
}
|
|
791
|
-
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new
|
|
791
|
+
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new ui()), this.onSentence(e);
|
|
792
792
|
return;
|
|
793
793
|
}
|
|
794
794
|
const o = (this.retries.get(e) ?? 0) + 1;
|
|
@@ -816,7 +816,7 @@ const nt = class nt {
|
|
|
816
816
|
}
|
|
817
817
|
element() {
|
|
818
818
|
if (this.el) return this.el;
|
|
819
|
-
const e =
|
|
819
|
+
const e = ci();
|
|
820
820
|
e.preload = "auto";
|
|
821
821
|
const n = e;
|
|
822
822
|
return n.dataset && (n.dataset.vsVoice = "1"), e.playsInline = !0, e.onplaying = () => {
|
|
@@ -870,42 +870,42 @@ const nt = class nt {
|
|
|
870
870
|
};
|
|
871
871
|
Me(nt, "WAIT_MS", 15e3), Me(nt, "START_WAIT_MS", 4e3), Me(nt, "COMING_MS", 12e4), Me(nt, "SKEW_LINES", 3), Me(nt, "RETRIES", 4), Me(nt, "RETRY_MS", 1200), Me(nt, "STARTING_MS", 3e5);
|
|
872
872
|
let us = nt;
|
|
873
|
-
function
|
|
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;
|
|
875
875
|
}
|
|
876
|
-
function
|
|
876
|
+
function _a(t, e, n, s = {}, r) {
|
|
877
877
|
if (!t) return [];
|
|
878
878
|
const a = r != null && r.length ? r : t.clips;
|
|
879
879
|
if (!(a != null && a.length)) return [];
|
|
880
|
-
const o =
|
|
880
|
+
const o = Oa(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)], f = Math.max(1, ((N = t.clipParts) == null ? void 0 : N[String(d)]) ?? 1);
|
|
884
|
+
return Array.from({ length: f }, (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=${zn()}${w > 0 ? `&part=${w}` : ""}${u ? `&v=${encodeURIComponent(u)}` : ""}${l}`,
|
|
890
|
-
durationS:
|
|
890
|
+
durationS: f === 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: f
|
|
895
895
|
};
|
|
896
896
|
});
|
|
897
897
|
});
|
|
898
898
|
}
|
|
899
|
-
function
|
|
899
|
+
function Mi(t, e) {
|
|
900
900
|
const n = e.words;
|
|
901
901
|
if (n && n.length === t.length && t.length > 0) {
|
|
902
902
|
let s = 0;
|
|
903
903
|
for (let r = 0; r < n.length && e.t >= n[r][0]; r++) s = r;
|
|
904
904
|
return s;
|
|
905
905
|
}
|
|
906
|
-
return e.dur > 0 ?
|
|
906
|
+
return e.dur > 0 ? Ua(t, e.t, e.dur) : null;
|
|
907
907
|
}
|
|
908
|
-
function
|
|
908
|
+
function Ua(t, e, n) {
|
|
909
909
|
if (t.length <= 1 || !(n > 0)) return 0;
|
|
910
910
|
const s = t.map((l) => l.t.length + 1.6), r = s.reduce((l, c) => l + c, 0);
|
|
911
911
|
let a = 0;
|
|
@@ -923,14 +923,14 @@ function gs(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 {
|
|
930
930
|
}
|
|
931
931
|
for (const n of Ms) n();
|
|
932
932
|
}
|
|
933
|
-
function
|
|
933
|
+
function js(t, e) {
|
|
934
934
|
const [n, s] = O(() => gs(t, e));
|
|
935
935
|
return _(() => {
|
|
936
936
|
const r = () => s(gs(t, e));
|
|
@@ -938,34 +938,34 @@ function vs(t, e) {
|
|
|
938
938
|
Ms.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
|
-
function
|
|
944
|
+
function _r(t) {
|
|
945
945
|
const e = gs(ds, []);
|
|
946
|
-
|
|
946
|
+
gi(ds, Array.isArray(e) ? e.filter((n) => n !== t) : []);
|
|
947
947
|
}
|
|
948
|
-
function
|
|
949
|
-
const [t, e] =
|
|
948
|
+
function hi() {
|
|
949
|
+
const [t, e] = js(ds, []), n = Array.isArray(t) ? t : [];
|
|
950
950
|
return [n, (s) => {
|
|
951
951
|
s && e([s, ...n.filter((r) => r !== s)].slice(0, 3));
|
|
952
952
|
}];
|
|
953
953
|
}
|
|
954
|
-
function
|
|
954
|
+
function fi(t, e) {
|
|
955
955
|
if (!t) return [];
|
|
956
956
|
const n = new Set(t[e]);
|
|
957
957
|
return t.languages.filter((s) => n.has(s.code)).map((s) => ({ code: s.code, label: s.name, native: s.native, flag: s.flag ?? "🌐", voice: !!s.voice }));
|
|
958
958
|
}
|
|
959
|
-
function
|
|
960
|
-
const [e, n] =
|
|
959
|
+
function Ra(t) {
|
|
960
|
+
const [e, n] = js(`vs.pins.${t}`, null);
|
|
961
961
|
return [Array.isArray(e) ? e : [], n];
|
|
962
962
|
}
|
|
963
|
-
const
|
|
964
|
-
function
|
|
965
|
-
const [e, n] =
|
|
966
|
-
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 :
|
|
963
|
+
const Pa = 352;
|
|
964
|
+
function Qa(t) {
|
|
965
|
+
const [e, n] = js(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
|
|
966
|
+
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : Pa, n];
|
|
967
967
|
}
|
|
968
|
-
function
|
|
968
|
+
function zs({ 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: f }) {
|
|
969
969
|
const [M, N] = O(""), [m, w] = O(!1), [v, p] = O(null);
|
|
970
970
|
_(() => {
|
|
971
971
|
t && (N(""), w(!1), p(null));
|
|
@@ -981,7 +981,7 @@ function js({ open: t, onClose: e, value: n, onSelect: s, languages: r, searchPl
|
|
|
981
981
|
[c, g, M]
|
|
982
982
|
), D = je(() => b.length ? g.filter((S) => !b.some((Q) => Q.code === S.code)) : g, [g, b]), k = m || M ? D : D.slice(0, 12), X = D.length - k.length, A = (S, Q = !1) => {
|
|
983
983
|
const L = !!d && !S.voice;
|
|
984
|
-
return /* @__PURE__ */
|
|
984
|
+
return /* @__PURE__ */ h(
|
|
985
985
|
"button",
|
|
986
986
|
{
|
|
987
987
|
type: "button",
|
|
@@ -996,30 +996,30 @@ function js({ open: t, onClose: e, value: n, onSelect: s, languages: r, searchPl
|
|
|
996
996
|
},
|
|
997
997
|
children: [
|
|
998
998
|
/* @__PURE__ */ i("span", { className: "vs-picker__flag", children: S.flag }),
|
|
999
|
-
/* @__PURE__ */
|
|
999
|
+
/* @__PURE__ */ h("span", { style: { flex: 1, minWidth: 0 }, children: [
|
|
1000
1000
|
/* @__PURE__ */ i("div", { className: "vs-picker__label", children: S.label }),
|
|
1001
1001
|
/* @__PURE__ */ i("div", { className: "vs-picker__native", children: S.native })
|
|
1002
1002
|
] }),
|
|
1003
1003
|
/* @__PURE__ */ i("span", { className: "vs-picker__slot", children: Q && /* @__PURE__ */ i("span", { className: "vs-picker__forget", role: "button", tabIndex: 0, title: `Remove ${S.label} from recent`, "aria-label": `Remove ${S.label} from recent`, onClick: (I) => {
|
|
1004
|
-
I.stopPropagation(),
|
|
1004
|
+
I.stopPropagation(), _r(S.code);
|
|
1005
1005
|
}, onKeyDown: (I) => {
|
|
1006
|
-
(I.key === "Enter" || I.key === " ") && (I.preventDefault(), I.stopPropagation(),
|
|
1006
|
+
(I.key === "Enter" || I.key === " ") && (I.preventDefault(), I.stopPropagation(), _r(S.code));
|
|
1007
1007
|
}, children: /* @__PURE__ */ i(ce, { 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(ce, { 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 && (f === S.code ? /* @__PURE__ */ i(at, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ i(ce, { d: q.check, size: 16, sw: 2.2 })) })
|
|
1010
1010
|
]
|
|
1011
1011
|
},
|
|
1012
1012
|
S.code
|
|
1013
1013
|
);
|
|
1014
|
-
}, K = /* @__PURE__ */
|
|
1014
|
+
}, K = /* @__PURE__ */ h("div", { className: "vs-picker__search", children: [
|
|
1015
1015
|
/* @__PURE__ */ i(ce, { d: q.search, size: 16, sw: 1.7, style: { color: "var(--vs-text-muted)" } }),
|
|
1016
1016
|
/* @__PURE__ */ i("input", { value: M, onChange: (S) => N(S.target.value), placeholder: a, "aria-label": a })
|
|
1017
|
-
] }), z = /* @__PURE__ */
|
|
1018
|
-
o && !M && /* @__PURE__ */
|
|
1017
|
+
] }), z = /* @__PURE__ */ h("div", { className: "vs-picker__list", children: [
|
|
1018
|
+
o && !M && /* @__PURE__ */ h("button", { type: "button", className: "vs-picker__row", "data-vs-original": "", "aria-selected": n === null, onClick: () => {
|
|
1019
1019
|
s(null), u || e();
|
|
1020
1020
|
}, children: [
|
|
1021
1021
|
/* @__PURE__ */ i("span", { className: "vs-picker__flag", children: /* @__PURE__ */ i(ce, { d: q.mic, size: 19, sw: 1.6, style: { color: "var(--vs-text-muted)" } }) }),
|
|
1022
|
-
/* @__PURE__ */
|
|
1022
|
+
/* @__PURE__ */ h("span", { style: { flex: 1, minWidth: 0 }, children: [
|
|
1023
1023
|
/* @__PURE__ */ i("div", { className: "vs-picker__label", children: o }),
|
|
1024
1024
|
/* @__PURE__ */ i("div", { className: "vs-picker__native", children: "As spoken · no translation" })
|
|
1025
1025
|
] }),
|
|
@@ -1027,18 +1027,18 @@ function js({ open: t, onClose: e, value: n, onSelect: s, languages: r, searchPl
|
|
|
1027
1027
|
/* @__PURE__ */ i("span", { className: "vs-picker__slot" }),
|
|
1028
1028
|
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === null && /* @__PURE__ */ i(ce, { d: q.check, size: 16, sw: 2.2 }) })
|
|
1029
1029
|
] }),
|
|
1030
|
-
b.length > 0 && /* @__PURE__ */
|
|
1030
|
+
b.length > 0 && /* @__PURE__ */ h(Re, { children: [
|
|
1031
1031
|
/* @__PURE__ */ i("div", { className: "vs-picker__head", children: "RECENT" }),
|
|
1032
1032
|
b.map((S) => A(S, !0)),
|
|
1033
1033
|
/* @__PURE__ */ i("div", { className: "vs-picker__rule" })
|
|
1034
1034
|
] }),
|
|
1035
1035
|
k.map((S) => A(S)),
|
|
1036
|
-
X > 0 && /* @__PURE__ */
|
|
1036
|
+
X > 0 && /* @__PURE__ */ h("button", { type: "button", className: "vs-picker__more", style: { background: "none", border: 0, cursor: "pointer", width: "100%", textAlign: "left" }, onClick: () => w(!0), children: [
|
|
1037
1037
|
"+ ",
|
|
1038
1038
|
X,
|
|
1039
1039
|
" MORE LANGUAGES"
|
|
1040
1040
|
] }),
|
|
1041
|
-
g.length === 0 && /* @__PURE__ */
|
|
1041
|
+
g.length === 0 && /* @__PURE__ */ h("div", { className: "vs-picker__more", children: [
|
|
1042
1042
|
"No match for “",
|
|
1043
1043
|
M,
|
|
1044
1044
|
"”"
|
|
@@ -1046,41 +1046,41 @@ function js({ open: t, onClose: e, value: n, onSelect: s, languages: r, searchPl
|
|
|
1046
1046
|
] });
|
|
1047
1047
|
return { search: K, list: z };
|
|
1048
1048
|
}
|
|
1049
|
-
function
|
|
1050
|
-
const { search: o, list: l } =
|
|
1049
|
+
function $a({ open: t, onClose: e, title: n, note: s, sticky: r, ...a }) {
|
|
1050
|
+
const { search: o, list: l } = zs({ ...a, open: t, onClose: e });
|
|
1051
1051
|
return /* @__PURE__ */ i($t, { open: t, onClose: e, title: n, note: s, drawer: !1, sticky: r, kind: "picker", header: o, children: l });
|
|
1052
1052
|
}
|
|
1053
|
-
const
|
|
1054
|
-
function
|
|
1055
|
-
t.muted = e.muted, Math.abs(t.currentTime - e.t) >
|
|
1053
|
+
const Ba = 0.3;
|
|
1054
|
+
function Ur(t, e) {
|
|
1055
|
+
t.muted = e.muted, Math.abs(t.currentTime - e.t) > Ba && (t.currentTime = Math.max(0, e.t)), e.playing ? t.paused && Promise.resolve(t.play()).catch(() => {
|
|
1056
1056
|
}) : t.paused || t.pause();
|
|
1057
1057
|
}
|
|
1058
|
-
const kn = "Remove background sound",
|
|
1059
|
-
function
|
|
1058
|
+
const kn = "Remove background sound", Ha = "Takes out everything that isn't speech: music, ambience and noise.";
|
|
1059
|
+
function Va(t) {
|
|
1060
1060
|
const e = Math.max(0, Math.floor(t)), n = Math.floor(e / 3600), s = Math.floor(e % 3600 / 60), r = String(e % 60).padStart(2, "0");
|
|
1061
1061
|
return n ? `${n}:${String(s).padStart(2, "0")}:${r}` : `${s}:${r}`;
|
|
1062
1062
|
}
|
|
1063
|
-
function
|
|
1064
|
-
return e === "unavailable" ? `Not available for this ${n}` : e === "making" ? s > 0 ? `Separating the speech from the background… ready up to ${
|
|
1063
|
+
function Wa(t, e, n = "transcription", s = 0) {
|
|
1064
|
+
return e === "unavailable" ? `Not available for this ${n}` : e === "making" ? s > 0 ? `Separating the speech from the background… ready up to ${Va(s)}` : "Separating the speech from the background…" : Ha;
|
|
1065
1065
|
}
|
|
1066
|
-
function
|
|
1066
|
+
function Fa(t, e) {
|
|
1067
1067
|
return { bed: e && !t, speech: !e && t };
|
|
1068
1068
|
}
|
|
1069
|
-
function
|
|
1069
|
+
function Ga(t) {
|
|
1070
1070
|
const e = t.get("bg");
|
|
1071
1071
|
return e === "off" || e === "remove";
|
|
1072
1072
|
}
|
|
1073
|
-
function
|
|
1073
|
+
function Za(t, e) {
|
|
1074
1074
|
e ? t.searchParams.set("bg", "remove") : t.searchParams.delete("bg");
|
|
1075
1075
|
}
|
|
1076
|
-
function
|
|
1076
|
+
function qa(t, e) {
|
|
1077
1077
|
var s, r;
|
|
1078
1078
|
if (t !== 503) return null;
|
|
1079
1079
|
const n = (r = (s = e == null ? void 0 : e.data) == null ? void 0 : s.details) == null ? void 0 : r.retryAfterS;
|
|
1080
1080
|
return typeof n == "number" && n > 0 ? Math.max(2, n) : 3;
|
|
1081
1081
|
}
|
|
1082
|
-
const
|
|
1083
|
-
function
|
|
1082
|
+
const Ka = 0.05;
|
|
1083
|
+
function Ja(t) {
|
|
1084
1084
|
var s, r;
|
|
1085
1085
|
const e = (r = (s = t == null ? void 0 : t.data) == null ? void 0 : s.details) == null ? void 0 : r.parts, n = [];
|
|
1086
1086
|
if (Array.isArray(e))
|
|
@@ -1092,8 +1092,8 @@ function Xa(t) {
|
|
|
1092
1092
|
}
|
|
1093
1093
|
return { untilS: n.length ? n[n.length - 1].endS : 0, parts: n };
|
|
1094
1094
|
}
|
|
1095
|
-
function
|
|
1096
|
-
if (!t.length || e < 0 || e >= t[t.length - 1].endS -
|
|
1095
|
+
function Xa(t, e) {
|
|
1096
|
+
if (!t.length || e < 0 || e >= t[t.length - 1].endS - Ka) return -1;
|
|
1097
1097
|
let n = 0, s = t.length - 1;
|
|
1098
1098
|
for (; n < s; ) {
|
|
1099
1099
|
const r = n + s + 1 >> 1;
|
|
@@ -1101,23 +1101,23 @@ function eo(t, e) {
|
|
|
1101
1101
|
}
|
|
1102
1102
|
return n;
|
|
1103
1103
|
}
|
|
1104
|
-
function
|
|
1104
|
+
function eo(t, e, n, s) {
|
|
1105
1105
|
const r = t[e].startS, a = n[s] === r ? s : n[1 - s] === r ? 1 - s : s, o = [];
|
|
1106
1106
|
n[a] !== r && o.push([a, e]);
|
|
1107
1107
|
const l = 1 - a;
|
|
1108
1108
|
return e + 1 < t.length && n[l] !== t[e + 1].startS && o.push([l, e + 1]), { play: a, load: o };
|
|
1109
1109
|
}
|
|
1110
|
-
async function
|
|
1110
|
+
async function to(t) {
|
|
1111
1111
|
const e = await fetch(t, { redirect: "manual", credentials: "omit" });
|
|
1112
1112
|
if (e.type === "opaqueredirect" || e.status >= 300 && e.status < 400 || e.ok) return { ready: !0 };
|
|
1113
1113
|
const n = await e.json().catch(() => null);
|
|
1114
|
-
return { ready: !1, retryS:
|
|
1114
|
+
return { ready: !1, retryS: qa(e.status, n), ...Ja(n) };
|
|
1115
1115
|
}
|
|
1116
1116
|
function Jn(t) {
|
|
1117
1117
|
t && (t.pause(), t.removeAttribute("src"), t.load());
|
|
1118
1118
|
}
|
|
1119
|
-
function
|
|
1120
|
-
const [n, s] = O("off"), [r, a] = O([]), [o, l] = O(!1), c = j(null), d = j([null, null]), u = j([NaN, NaN]),
|
|
1119
|
+
function Ni(t, e) {
|
|
1120
|
+
const [n, s] = O("off"), [r, a] = O([]), [o, l] = O(!1), c = j(null), d = j([null, null]), u = j([NaN, NaN]), f = j(0);
|
|
1121
1121
|
return _(() => {
|
|
1122
1122
|
if (a([]), l(!1), !t) {
|
|
1123
1123
|
s("off");
|
|
@@ -1126,7 +1126,7 @@ function pi(t, e) {
|
|
|
1126
1126
|
let M = !1, N;
|
|
1127
1127
|
s("making");
|
|
1128
1128
|
const m = () => {
|
|
1129
|
-
|
|
1129
|
+
to(t).then((w) => {
|
|
1130
1130
|
if (!M) {
|
|
1131
1131
|
if (w.ready) {
|
|
1132
1132
|
const v = new Audio();
|
|
@@ -1155,35 +1155,35 @@ function pi(t, e) {
|
|
|
1155
1155
|
for (const p of d.current) p && !p.paused && p.pause();
|
|
1156
1156
|
};
|
|
1157
1157
|
if (n === "ready" && c.current) {
|
|
1158
|
-
M(),
|
|
1158
|
+
M(), Ur(c.current, e), l(!0);
|
|
1159
1159
|
return;
|
|
1160
1160
|
}
|
|
1161
|
-
const N = n === "making" ?
|
|
1161
|
+
const N = n === "making" ? Xa(r, e.t) : -1;
|
|
1162
1162
|
if (N < 0) {
|
|
1163
1163
|
M(), l(!1);
|
|
1164
1164
|
return;
|
|
1165
1165
|
}
|
|
1166
|
-
const m =
|
|
1166
|
+
const m = eo(r, N, u.current, f.current);
|
|
1167
1167
|
for (const [p, g] of m.load) {
|
|
1168
1168
|
let b = d.current[p];
|
|
1169
1169
|
b || (b = new Audio(), b.preload = "auto", d.current[p] = b), b.pause(), b.src = r[g].url, u.current[p] = r[g].startS;
|
|
1170
1170
|
}
|
|
1171
|
-
|
|
1171
|
+
f.current = m.play;
|
|
1172
1172
|
const w = d.current[m.play], v = d.current[1 - m.play];
|
|
1173
|
-
v && !v.paused && v.pause(),
|
|
1173
|
+
v && !v.paused && v.pause(), Ur(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 };
|
|
1175
1175
|
}
|
|
1176
|
-
function
|
|
1177
|
-
return
|
|
1176
|
+
function no(t, e) {
|
|
1177
|
+
return Ni(t, e).state;
|
|
1178
1178
|
}
|
|
1179
|
-
const
|
|
1180
|
-
function
|
|
1179
|
+
const so = 0.5, ro = 3;
|
|
1180
|
+
function Is(t, e) {
|
|
1181
1181
|
let n = -1;
|
|
1182
1182
|
for (let s = 0; s < t.length && t[s].start <= e + 0.02; s++) n = s;
|
|
1183
1183
|
return n;
|
|
1184
1184
|
}
|
|
1185
|
-
function
|
|
1186
|
-
const s =
|
|
1185
|
+
function io(t, e, n) {
|
|
1186
|
+
const s = Is(t, n);
|
|
1187
1187
|
if (s < 0) return { kind: "none" };
|
|
1188
1188
|
const r = t[s];
|
|
1189
1189
|
if (n >= r.end) return { kind: "none" };
|
|
@@ -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((f) => f.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 };
|
|
@@ -1200,22 +1200,22 @@ function ao(t, e, n) {
|
|
|
1200
1200
|
}
|
|
1201
1201
|
return { kind: "done", sid: r.sid };
|
|
1202
1202
|
}
|
|
1203
|
-
function
|
|
1203
|
+
function ao(t, e, n) {
|
|
1204
1204
|
if (n == null) return !1;
|
|
1205
|
-
const s =
|
|
1205
|
+
const s = Is(t, e);
|
|
1206
1206
|
if (s < 0) return !1;
|
|
1207
1207
|
const r = t[s];
|
|
1208
1208
|
return e >= r.end ? r.sid === n : s > 0 && t[s - 1].sid === n && e - r.start < 1.5;
|
|
1209
1209
|
}
|
|
1210
|
-
function
|
|
1211
|
-
const r = Math.max(0,
|
|
1210
|
+
function oo(t, e, n, s = ro) {
|
|
1211
|
+
const r = Math.max(0, Is(t, n)), a = [];
|
|
1212
1212
|
for (let o = r; o < t.length && o <= r + s; o++) {
|
|
1213
1213
|
const l = (e.get(t[o].sid) ?? []).find((c) => c.part === 0);
|
|
1214
1214
|
l && a.push(l.src);
|
|
1215
1215
|
}
|
|
1216
1216
|
return a;
|
|
1217
1217
|
}
|
|
1218
|
-
function
|
|
1218
|
+
function lo(t) {
|
|
1219
1219
|
const e = je(() => {
|
|
1220
1220
|
const c = /* @__PURE__ */ new Map();
|
|
1221
1221
|
for (const d of t.clips) c.set(d.sentenceId, [...c.get(d.sentenceId) ?? [], d]);
|
|
@@ -1236,24 +1236,24 @@ function co(t) {
|
|
|
1236
1236
|
l(), a((m) => m.missing == null && m.sid == null ? m : { missing: null, sid: null });
|
|
1237
1237
|
return;
|
|
1238
1238
|
}
|
|
1239
|
-
const c =
|
|
1239
|
+
const c = io(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 f = new Set(oo(t.lines, e, t.t));
|
|
1242
|
+
for (const m of f) o(m);
|
|
1243
1243
|
const M = s.current;
|
|
1244
|
-
M &&
|
|
1245
|
-
for (const [m, w] of n.current) !
|
|
1244
|
+
M && f.add(M.src);
|
|
1245
|
+
for (const [m, w] of n.current) !f.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;
|
|
1249
1249
|
}
|
|
1250
1250
|
if (c.kind !== "play") {
|
|
1251
|
-
if (M && !M.el.paused && !M.el.ended &&
|
|
1251
|
+
if (M && !M.el.paused && !M.el.ended && ao(t.lines, t.t, M.sid)) return;
|
|
1252
1252
|
M && M.el.pause(), s.current = null;
|
|
1253
1253
|
return;
|
|
1254
1254
|
}
|
|
1255
1255
|
if (M && M.src === c.src) {
|
|
1256
|
-
if (M.el.muted = t.muted, !M.el.ended && Math.abs(M.el.currentTime - c.offset) >
|
|
1256
|
+
if (M.el.muted = t.muted, !M.el.ended && Math.abs(M.el.currentTime - c.offset) > so)
|
|
1257
1257
|
try {
|
|
1258
1258
|
M.el.currentTime = c.offset;
|
|
1259
1259
|
} catch {
|
|
@@ -1273,8 +1273,8 @@ function co(t) {
|
|
|
1273
1273
|
});
|
|
1274
1274
|
}, [t.on, t.t, t.playing, t.muted, t.lines, e]), r;
|
|
1275
1275
|
}
|
|
1276
|
-
const
|
|
1277
|
-
function
|
|
1276
|
+
const Rr = ["play", "pause", "stop", "nexttrack", "previoustrack"];
|
|
1277
|
+
function co(t, e) {
|
|
1278
1278
|
var n, s;
|
|
1279
1279
|
if (t === "play") {
|
|
1280
1280
|
e.playing || e.toggle();
|
|
@@ -1290,31 +1290,31 @@ function uo(t, e) {
|
|
|
1290
1290
|
}
|
|
1291
1291
|
(s = e.prev) == null || s.call(e);
|
|
1292
1292
|
}
|
|
1293
|
-
function
|
|
1294
|
-
for (const n of
|
|
1293
|
+
function uo(t, e) {
|
|
1294
|
+
for (const n of Rr)
|
|
1295
1295
|
try {
|
|
1296
1296
|
t.setActionHandler(n, () => {
|
|
1297
1297
|
const s = e();
|
|
1298
|
-
s &&
|
|
1298
|
+
s && co(n, s);
|
|
1299
1299
|
});
|
|
1300
1300
|
} catch {
|
|
1301
1301
|
}
|
|
1302
1302
|
return () => {
|
|
1303
|
-
for (const n of
|
|
1303
|
+
for (const n of Rr)
|
|
1304
1304
|
try {
|
|
1305
1305
|
t.setActionHandler(n, null);
|
|
1306
1306
|
} catch {
|
|
1307
1307
|
}
|
|
1308
1308
|
};
|
|
1309
1309
|
}
|
|
1310
|
-
function
|
|
1310
|
+
function Mo(t, e) {
|
|
1311
1311
|
const n = j(t);
|
|
1312
1312
|
n.current = t;
|
|
1313
1313
|
const s = !!t;
|
|
1314
1314
|
_(() => {
|
|
1315
1315
|
const a = typeof navigator < "u" ? navigator.mediaSession : void 0;
|
|
1316
1316
|
if (!(!a || !s))
|
|
1317
|
-
return
|
|
1317
|
+
return uo(a, () => n.current);
|
|
1318
1318
|
}, [s]);
|
|
1319
1319
|
const r = !!(t != null && t.playing);
|
|
1320
1320
|
_(() => {
|
|
@@ -1346,7 +1346,7 @@ function Pt() {
|
|
|
1346
1346
|
spans: []
|
|
1347
1347
|
};
|
|
1348
1348
|
}
|
|
1349
|
-
function
|
|
1349
|
+
function go(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);
|
|
@@ -1419,11 +1419,11 @@ function Xn(t, e) {
|
|
|
1419
1419
|
])
|
|
1420
1420
|
), n;
|
|
1421
1421
|
}
|
|
1422
|
-
function
|
|
1422
|
+
function Pr(t, e) {
|
|
1423
1423
|
const n = e ?? {};
|
|
1424
1424
|
return !t || !Object.keys(t).length ? n : Object.keys(n).length ? { ...t, ...n } : t;
|
|
1425
1425
|
}
|
|
1426
|
-
function
|
|
1426
|
+
function ho(t, e) {
|
|
1427
1427
|
const n = e.tail;
|
|
1428
1428
|
if (!n || !Array.isArray(n.words) || n.replaced !== t.length || n.words.length !== t.length) return !1;
|
|
1429
1429
|
let s = !1;
|
|
@@ -1440,7 +1440,7 @@ function fo(t, e) {
|
|
|
1440
1440
|
}
|
|
1441
1441
|
return s;
|
|
1442
1442
|
}
|
|
1443
|
-
function
|
|
1443
|
+
function fo(t, e) {
|
|
1444
1444
|
var n;
|
|
1445
1445
|
switch (delete t.numbers, e.type) {
|
|
1446
1446
|
case "transcript.committed": {
|
|
@@ -1460,7 +1460,7 @@ function No(t, e) {
|
|
|
1460
1460
|
confidence: s.confidence ?? (r == null ? void 0 : r.confidence),
|
|
1461
1461
|
latencyS: s.latencyS,
|
|
1462
1462
|
language: s.language,
|
|
1463
|
-
translations:
|
|
1463
|
+
translations: Pr(r == null ? void 0 : r.translations, s.translations),
|
|
1464
1464
|
scriptPos: s.scriptPos ?? (r == null ? void 0 : r.scriptPos),
|
|
1465
1465
|
scriptFrom: s.scriptPos != null ? s.scriptFrom ?? void 0 : r == null ? void 0 : r.scriptFrom
|
|
1466
1466
|
}), s.speakerName && (t.speakers[s.speaker] = s.speakerName);
|
|
@@ -1481,7 +1481,7 @@ function No(t, e) {
|
|
|
1481
1481
|
}
|
|
1482
1482
|
case "transcript.amended": {
|
|
1483
1483
|
const s = t.segments.get(e.seq);
|
|
1484
|
-
if (s && s.corrected &&
|
|
1484
|
+
if (s && s.corrected && ho(s.words, e)) {
|
|
1485
1485
|
s.text = e.text, s.words = Jt(e.seq, e.tail.words);
|
|
1486
1486
|
break;
|
|
1487
1487
|
}
|
|
@@ -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((f) => String(f.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: go(t, s.start),
|
|
1533
1533
|
text: a ? r.text : s.text,
|
|
1534
1534
|
status: s.status === "open" ? "open" : "closed",
|
|
1535
1535
|
settled: !!s.settled,
|
|
@@ -1538,7 +1538,7 @@ function No(t, e) {
|
|
|
1538
1538
|
suppressed: !!s.suppressed,
|
|
1539
1539
|
unclear: !!s.unclear,
|
|
1540
1540
|
language: s.language,
|
|
1541
|
-
translations: a ? r.translations :
|
|
1541
|
+
translations: a ? r.translations : Pr(r == null ? void 0 : r.translations, s.translations),
|
|
1542
1542
|
provisional: !!s.provisional,
|
|
1543
1543
|
translationLatencyS: s.translationLatencyS
|
|
1544
1544
|
}), s.speakerName && (t.speakers[s.speaker] = s.speakerName), s.settled) for (const o of s.seqs) {
|
|
@@ -1581,7 +1581,7 @@ function No(t, e) {
|
|
|
1581
1581
|
}
|
|
1582
1582
|
return typeof e.seq == "number" && (t.lastSeq = Math.max(t.lastSeq, e.seq)), t;
|
|
1583
1583
|
}
|
|
1584
|
-
function
|
|
1584
|
+
function No(t) {
|
|
1585
1585
|
const e = [], n = [...t.sentences.values()].sort((s, r) => s.start - r.start || (s.sentenceId ?? 0) - (r.sentenceId ?? 0));
|
|
1586
1586
|
for (const s of n) {
|
|
1587
1587
|
const r = s.seqs.map((l) => t.segments.get(l)).filter(Boolean), a = r.length === s.seqs.length || !s.text ? r.flatMap((l) => l.words) : [], o = r[r.length - 1];
|
|
@@ -1594,16 +1594,16 @@ function po(t) {
|
|
|
1594
1594
|
catchup: r.some((l) => l.catchup),
|
|
1595
1595
|
suppressed: s.suppressed || r.length > 0 && r.every((l) => l.suppressed),
|
|
1596
1596
|
unclear: s.unclear || r.length > 0 && r.every((l) => l.unclear),
|
|
1597
|
-
confidence:
|
|
1597
|
+
confidence: po(r),
|
|
1598
1598
|
latencyS: o == null ? void 0 : o.latencyS,
|
|
1599
1599
|
settled: s.settled || r.length > 0 && r.every((l) => l.settled),
|
|
1600
|
-
translations: Object.keys(s.translations).length ? s.translations :
|
|
1600
|
+
translations: Object.keys(s.translations).length ? s.translations : mo(r),
|
|
1601
1601
|
speaker: s.speaker >= 0 ? s.speaker : (o == null ? void 0 : o.speaker) ?? -1
|
|
1602
1602
|
});
|
|
1603
1603
|
}
|
|
1604
1604
|
return e.sort((s, r) => s.start - r.start), e;
|
|
1605
1605
|
}
|
|
1606
|
-
function
|
|
1606
|
+
function po(t) {
|
|
1607
1607
|
let e = 0, n = 0;
|
|
1608
1608
|
for (const s of t) {
|
|
1609
1609
|
if (s.confidence == null) continue;
|
|
@@ -1612,20 +1612,20 @@ function mo(t) {
|
|
|
1612
1612
|
}
|
|
1613
1613
|
return n ? e / n : void 0;
|
|
1614
1614
|
}
|
|
1615
|
-
function
|
|
1615
|
+
function mo(t) {
|
|
1616
1616
|
const e = {};
|
|
1617
1617
|
for (const n of t) for (const [s, r] of Object.entries(n.translations)) e[s] = e[s] ? `${e[s]} ${r}` : r;
|
|
1618
1618
|
return e;
|
|
1619
1619
|
}
|
|
1620
|
-
const
|
|
1621
|
-
function
|
|
1622
|
-
return t == null ? "" : t <
|
|
1620
|
+
const yo = 0.85, To = 0.75;
|
|
1621
|
+
function wo(t) {
|
|
1622
|
+
return t == null ? "" : t < To ? "low" : t < yo ? "mid" : "";
|
|
1623
1623
|
}
|
|
1624
1624
|
const mn = ["a", "b", "c", "d", "e", "f", "g", "h"];
|
|
1625
|
-
function
|
|
1625
|
+
function Lo(t) {
|
|
1626
1626
|
return mn[(t % mn.length + mn.length) % mn.length];
|
|
1627
1627
|
}
|
|
1628
|
-
function
|
|
1628
|
+
function ko(t) {
|
|
1629
1629
|
if (t.numbers) return t.numbers;
|
|
1630
1630
|
const e = /* @__PURE__ */ new Map(), n = (a, o) => {
|
|
1631
1631
|
if (a < 0) return;
|
|
@@ -1641,26 +1641,26 @@ function vo(t) {
|
|
|
1641
1641
|
}
|
|
1642
1642
|
function vn(t, e) {
|
|
1643
1643
|
if (e < 0) return 0;
|
|
1644
|
-
const n =
|
|
1644
|
+
const n = ko(t);
|
|
1645
1645
|
return n.get(e) ?? n.size + 1 + e;
|
|
1646
1646
|
}
|
|
1647
|
-
const
|
|
1648
|
-
function
|
|
1649
|
-
return t && t.trim() && !
|
|
1647
|
+
const vo = /^\s*speaker\s+\d+\s*$/i;
|
|
1648
|
+
function Qr(t) {
|
|
1649
|
+
return t && t.trim() && !vo.test(t) ? t : void 0;
|
|
1650
1650
|
}
|
|
1651
|
-
function
|
|
1651
|
+
function pi(t, e) {
|
|
1652
1652
|
var n;
|
|
1653
|
-
return
|
|
1653
|
+
return Qr(t.speakers[e]) ?? Qr((n = t.speakerIds[e]) == null ? void 0 : n.name);
|
|
1654
1654
|
}
|
|
1655
|
-
function
|
|
1656
|
-
return e < 0 ? "" :
|
|
1655
|
+
function Os(t, e) {
|
|
1656
|
+
return e < 0 ? "" : pi(t, e) ?? `Speaker ${vn(t, e)}`;
|
|
1657
1657
|
}
|
|
1658
|
-
function
|
|
1658
|
+
function mi(t, e) {
|
|
1659
1659
|
if (e < 0) return "?";
|
|
1660
|
-
const n =
|
|
1660
|
+
const n = pi(t, e);
|
|
1661
1661
|
return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((r) => r[0]).join("") || `S${vn(t, e)}`).toUpperCase() : `S${vn(t, e)}`;
|
|
1662
1662
|
}
|
|
1663
|
-
function
|
|
1663
|
+
function jo(t) {
|
|
1664
1664
|
if (t) {
|
|
1665
1665
|
if (t.startsWith("#"))
|
|
1666
1666
|
return { fg: t, soft: `color-mix(in srgb, ${t} 16%, transparent)` };
|
|
@@ -1668,11 +1668,11 @@ function zo(t) {
|
|
|
1668
1668
|
return { fg: `var(--vx-${t})`, soft: `var(--vx-${t}-soft)` };
|
|
1669
1669
|
}
|
|
1670
1670
|
}
|
|
1671
|
-
function
|
|
1672
|
-
const n = t.speakerIds[e], s =
|
|
1673
|
-
return { fg: s == null ? void 0 : s.fg, soft: s == null ? void 0 : s.soft, lane:
|
|
1671
|
+
function Cs(t, e) {
|
|
1672
|
+
const n = t.speakerIds[e], s = jo(n == null ? void 0 : n.color);
|
|
1673
|
+
return { fg: s == null ? void 0 : s.fg, soft: s == null ? void 0 : s.soft, lane: Lo(vn(t, e) - 1), hasVoice: !!n };
|
|
1674
1674
|
}
|
|
1675
|
-
function
|
|
1675
|
+
function zo(t, e, n, s = !1) {
|
|
1676
1676
|
const r = n ? n.speakerLabels ?? "auto" : null, a = (s ? r : null) ?? t.labels ?? r ?? "on";
|
|
1677
1677
|
if (a !== "auto") return a === "on";
|
|
1678
1678
|
const o = /* @__PURE__ */ new Set();
|
|
@@ -1680,7 +1680,7 @@ function Io(t, e, n, s = !1) {
|
|
|
1680
1680
|
return !0;
|
|
1681
1681
|
return !1;
|
|
1682
1682
|
}
|
|
1683
|
-
const
|
|
1683
|
+
const Io = /* @__PURE__ */ new Set([
|
|
1684
1684
|
"invalid_audio",
|
|
1685
1685
|
"invalid_options",
|
|
1686
1686
|
"invalid_token",
|
|
@@ -1705,14 +1705,14 @@ const Oo = /* @__PURE__ */ new Set([
|
|
|
1705
1705
|
"invalid_request",
|
|
1706
1706
|
"aborted",
|
|
1707
1707
|
"unauthorized"
|
|
1708
|
-
]),
|
|
1708
|
+
]), yi = {
|
|
1709
1709
|
internal: "Something went wrong on our side. Please try again.",
|
|
1710
1710
|
unavailable: "VocalStack is briefly unavailable. Please try again in a moment.",
|
|
1711
1711
|
engine_unavailable: "No transcription engine is available right now. Please try again in a moment.",
|
|
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
|
-
}, hs =
|
|
1715
|
+
}, hs = yi.internal, es = "Can't reach VocalStack. Check your connection.", $r = {
|
|
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,29 +1720,29 @@ const Oo = /* @__PURE__ */ new Set([
|
|
|
1720
1720
|
function kt(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 &&
|
|
1723
|
+
return n && Io.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: es, code: n, details: r } : s === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : es, code: n, status: s, details: r } : { message: n && yi[n] || hs, 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 &&
|
|
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: es }) : $r[a] ? { message: $r[a] } : t instanceof Error && a === "Error" && !(t instanceof ni) ? { message: t.message } : { message: hs };
|
|
1726
1726
|
}
|
|
1727
|
-
const
|
|
1727
|
+
const Ti = "https://api.vocalstack.com", bs = ti(null);
|
|
1728
1728
|
function At() {
|
|
1729
|
-
const t =
|
|
1729
|
+
const t = ga(bs);
|
|
1730
1730
|
if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
|
|
1731
1731
|
return t;
|
|
1732
1732
|
}
|
|
1733
|
-
function
|
|
1734
|
-
return t.value ? /* @__PURE__ */ i(
|
|
1733
|
+
function Oo(t) {
|
|
1734
|
+
return t.value ? /* @__PURE__ */ i(bs.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ i(Co, { ...t });
|
|
1735
1735
|
}
|
|
1736
|
-
function
|
|
1737
|
-
const n =
|
|
1738
|
-
return /* @__PURE__ */ i(
|
|
1736
|
+
function Co({ children: t, ...e }) {
|
|
1737
|
+
const n = wi(e);
|
|
1738
|
+
return /* @__PURE__ */ i(bs.Provider, { value: n, children: t });
|
|
1739
1739
|
}
|
|
1740
|
-
const
|
|
1741
|
-
function
|
|
1742
|
-
return
|
|
1740
|
+
const bo = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
1741
|
+
function xo(t) {
|
|
1742
|
+
return bo.test(t);
|
|
1743
1743
|
}
|
|
1744
|
-
function
|
|
1745
|
-
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, s = !e && !n && !!t.token && (!t.id ||
|
|
1744
|
+
function wi(t) {
|
|
1745
|
+
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, s = !e && !n && !!t.token && (!t.id || xo(t.id)), r = (t.baseUrl ?? Ti).replace(/\/$/, ""), a = j(t.token);
|
|
1746
1746
|
a.current = t.token;
|
|
1747
1747
|
const o = !!t.token, l = je(() => async () => {
|
|
1748
1748
|
const u = a.current;
|
|
@@ -1755,10 +1755,10 @@ function Li(t) {
|
|
|
1755
1755
|
return { client: d, origin: r, owner: s, shareCode: u, listen: null, bearer: l, cred: { shareCode: u }, readAs: u ? { shareCode: u } : {} };
|
|
1756
1756
|
}, [d, r, s, t.id, l, e, n]);
|
|
1757
1757
|
}
|
|
1758
|
-
function
|
|
1758
|
+
function Do(t, e) {
|
|
1759
1759
|
return e ? { ...t, cred: { media: e } } : t;
|
|
1760
1760
|
}
|
|
1761
|
-
async function
|
|
1761
|
+
async function So(t, e) {
|
|
1762
1762
|
if (t.listen) {
|
|
1763
1763
|
const s = await t.client.recordings.get(t.listen.recordingId, t.readAs), r = s;
|
|
1764
1764
|
return { key: e, code: null, transcriptionId: t.listen.transcriptionId, name: r.name ?? r.title ?? "", recording: s, job: r.job ?? null, allowDownload: !0, allowExport: !0, allowTranslate: !0, sharedBy: null };
|
|
@@ -1783,22 +1783,22 @@ async function Ao(t, e) {
|
|
|
1783
1783
|
sharedBy: n.sharedBy ?? null
|
|
1784
1784
|
};
|
|
1785
1785
|
}
|
|
1786
|
-
function
|
|
1786
|
+
function Ao(t, e) {
|
|
1787
1787
|
const [n, s] = O(null), [r, a] = O(!1), [o, l] = O(null), [c, d] = O(0);
|
|
1788
1788
|
return _(() => {
|
|
1789
1789
|
let u = !0;
|
|
1790
|
-
return
|
|
1791
|
-
u && (s(
|
|
1792
|
-
}).catch((
|
|
1790
|
+
return So(t, e).then((f) => {
|
|
1791
|
+
u && (s(f), a(!1), l(null));
|
|
1792
|
+
}).catch((f) => {
|
|
1793
1793
|
if (!u) return;
|
|
1794
|
-
const M = kt(
|
|
1794
|
+
const M = kt(f);
|
|
1795
1795
|
M.code === "not_found" || M.status === 404 ? a(!0) : l(M);
|
|
1796
1796
|
}), () => {
|
|
1797
1797
|
u = !1;
|
|
1798
1798
|
};
|
|
1799
1799
|
}, [t, e, c]), { source: n, gone: r, error: o, reload: () => d((u) => u + 1) };
|
|
1800
1800
|
}
|
|
1801
|
-
function
|
|
1801
|
+
function Eo(t, e) {
|
|
1802
1802
|
const [n, s] = O(null);
|
|
1803
1803
|
return _(() => {
|
|
1804
1804
|
if (!t.owner || !e) {
|
|
@@ -1819,7 +1819,7 @@ function Yo(t, e) {
|
|
|
1819
1819
|
};
|
|
1820
1820
|
}, [t, e]), n;
|
|
1821
1821
|
}
|
|
1822
|
-
async function
|
|
1822
|
+
async function Br(t, e, n = {}) {
|
|
1823
1823
|
const s = new URLSearchParams();
|
|
1824
1824
|
for (const [o, l] of Object.entries(n.query ?? {})) l != null && s.set(o, l);
|
|
1825
1825
|
t.shareCode && s.set("shareCode", t.shareCode), t.listen && s.set("listenerToken", t.listen.token);
|
|
@@ -1832,7 +1832,7 @@ async function $r(t, e, n = {}) {
|
|
|
1832
1832
|
return fetch(`${t.origin}${e}${a ? `${e.includes("?") ? "&" : "?"}${a}` : ""}`, { method: n.method ?? "GET", headers: r, body: n.body === void 0 ? void 0 : JSON.stringify(n.body) });
|
|
1833
1833
|
}
|
|
1834
1834
|
const ts = /* @__PURE__ */ new Map();
|
|
1835
|
-
function
|
|
1835
|
+
function Li() {
|
|
1836
1836
|
const t = At(), [e, n] = O(ts.get(t.origin) ?? null);
|
|
1837
1837
|
return _(() => {
|
|
1838
1838
|
ts.has(t.origin) || t.client.languages.list().then((s) => {
|
|
@@ -1841,7 +1841,7 @@ function ki() {
|
|
|
1841
1841
|
});
|
|
1842
1842
|
}, [t]), e;
|
|
1843
1843
|
}
|
|
1844
|
-
function
|
|
1844
|
+
function ki(t, e) {
|
|
1845
1845
|
const [n, s] = O(null), [r, a] = O(null), [o, l] = O(0);
|
|
1846
1846
|
return _(() => {
|
|
1847
1847
|
let c = !0;
|
|
@@ -1850,11 +1850,11 @@ function vi(t, e) {
|
|
|
1850
1850
|
};
|
|
1851
1851
|
}, [...e, o]), { data: n, error: r, reload: () => l((c) => c + 1) };
|
|
1852
1852
|
}
|
|
1853
|
-
const
|
|
1854
|
-
function
|
|
1853
|
+
const Yo = (t) => new Promise((e) => setTimeout(e, t)), _o = 2500, Uo = 72;
|
|
1854
|
+
function Ro(t, e) {
|
|
1855
1855
|
const n = At(), s = j(n);
|
|
1856
1856
|
s.current = n;
|
|
1857
|
-
const [r, a] = O(Pt), o = j(Pt()), l = j(null), c = j(e.lang ?? null), [d, u] = O(!1), [
|
|
1857
|
+
const [r, a] = O(Pt), o = j(Pt()), l = j(null), c = j(e.lang ?? null), [d, u] = O(!1), [f, M] = O(null), [N, m] = O(!1), w = Xe(() => {
|
|
1858
1858
|
const Q = o.current;
|
|
1859
1859
|
a({ ...Q });
|
|
1860
1860
|
}, []), v = j(e);
|
|
@@ -1885,7 +1885,7 @@ function Po(t, e) {
|
|
|
1885
1885
|
if (ae.type === "snapshot")
|
|
1886
1886
|
o.current = Xn(ae.snapshot, ae.reason === "gap" ? o.current : Pt()), w(), ie();
|
|
1887
1887
|
else if (ae.type === "frame") {
|
|
1888
|
-
|
|
1888
|
+
fo(o.current, ae.frame);
|
|
1889
1889
|
const Te = ae.frame;
|
|
1890
1890
|
Te.type === "recording.state" && (E = o.current.state, (C = (V = v.current).onState) == null || C.call(V, Te.state, Te.reason)), (H = (de = v.current).onFrame) == null || H.call(de, Te), w();
|
|
1891
1891
|
} else ae.type === "closed" && u(!1);
|
|
@@ -1920,7 +1920,7 @@ function Po(t, e) {
|
|
|
1920
1920
|
}
|
|
1921
1921
|
const oe = o.current.state;
|
|
1922
1922
|
if (!Q || oe === "ended" || oe === "finalized" || oe === "processing") return;
|
|
1923
|
-
L += 1, await
|
|
1923
|
+
L += 1, await Yo(Math.min(15e3, 1e3 * 2 ** Math.min(L, 4)));
|
|
1924
1924
|
}
|
|
1925
1925
|
})(), () => {
|
|
1926
1926
|
var V;
|
|
@@ -1936,9 +1936,9 @@ function Po(t, e) {
|
|
|
1936
1936
|
I === k.current && (o.current = Xn(C, o.current), A(Q), w(), C.translationPending && V > 0 && window.setTimeout(() => {
|
|
1937
1937
|
I === k.current && E(V - 1).catch(() => {
|
|
1938
1938
|
});
|
|
1939
|
-
},
|
|
1939
|
+
}, _o));
|
|
1940
1940
|
});
|
|
1941
|
-
E(
|
|
1941
|
+
E(Uo).catch(() => {
|
|
1942
1942
|
I === k.current && Q && D(Q);
|
|
1943
1943
|
}).finally(() => {
|
|
1944
1944
|
I === k.current && g(!1);
|
|
@@ -1952,9 +1952,9 @@ function Po(t, e) {
|
|
|
1952
1952
|
}
|
|
1953
1953
|
E && w();
|
|
1954
1954
|
}, [w]), S = Xe(() => M(null), []);
|
|
1955
|
-
return { model: r, connected: d, error:
|
|
1955
|
+
return { model: r, connected: d, error: f, notFound: N, clearError: S, setLanguage: K, mergeTranslations: z, translating: p, translateFailed: b, shownLang: X };
|
|
1956
1956
|
}
|
|
1957
|
-
const
|
|
1957
|
+
const Hr = {
|
|
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" },
|
|
1959
1959
|
Spanish: { vcFor: "Voz de", vcMute: "Silenciar", vcUnmute: "Activar", vcMuted: "SILENCIADO", vcShared: "También la usa", vcUsedBy: "La usa", vcUnknownSpk: "Desconocido", vcUse: "Usar esta voz", vcGetting: "Descargando…", vcSample: "Así suena esta voz.", vcPreview: "MUESTRA", vcMale: "Hombre", vcFemale: "Mujer", vcSynth: "SINTÉTICA", origAudio: "AUDIO ORIGINAL", vcCloned: "VOCES", vcBadge: "CLONADA", vcNone: "SOLO TEXTO", vcNoVoice: "Sin voz para ", vcSheet: "VOZ", vcNeutral: "VOZ SINTÉTICA", vcWarm: "VOZ SINTÉTICA", searchPlaceholder: "Buscar en esta emisión", noise: "Audio poco claro", newLines: "nuevas", live: "EN VIVO", ended: "FINALIZADA", waiting: "EN ESPERA", corrected: "CORREGIDO", hostLine: "Presenta Marcus Reed · 4 hablantes", langLabel: "IDIOMA", langCount: "100+ idiomas", read: "Leer", listen: "Escuchar", watch: "Ver", waitTitle: "La emisión aún no ha comenzado", waitBody: "La transcripción aparecerá aquí en cuanto el anfitrión empiece a hablar.", english: "INGLÉS", playing: "Reproduciendo la traducción al español", ready: "Toca para iniciar el audio", readyNote: "Ajusta el volumen primero", voiceMeta: "VOZ NEUTRA", voice: "Voz", sheetTitle: "IDIOMA DE LA APP", done: "Listo", search: "Buscar entre 100+ idiomas", sheetNote: "Sigue la emisión en tu idioma.", moreLangs: "más", confTitle: "Algunas palabras no se oyeron bien", confBody: "La transcripción marca las palabras dudosas con un subrayado discontinuo. Las palabras conservan su color, así que solo el subrayado te indica dónde mirar.", confMid: "Poca duda: probablemente correcta", confHigh: "Baja confianza: puede estar mal", settings: "EMISIÓN", setOrig: "Mostrar idioma original", setTheme: "Apariencia", light: "Claro", dark: "Oscuro", setConf: "Mostrar palabras dudosas", setConfHint1: "Colorea las palabras dudosas: ", setConfMid: "ámbar", setConfSep: " o ", setConfLow: "rojo", setConfHint2: "", behindLive: "LATENCIA DE TRADUCCIÓN", behindNote: "Cuánto se retrasa la traducción respecto a quien habla.", shareLabel: "ENLACE PARA SEGUIR", copy: "Copiar", copied: "Copiado" },
|
|
1960
1960
|
French: { vcFor: "Voix de", vcMute: "Couper", vcUnmute: "Réactiver", vcMuted: "COUPÉ", vcShared: "Aussi utilisée par", vcUsedBy: "Utilisée par", vcUnknownSpk: "Inconnu", vcUse: "Utiliser cette voix", vcGetting: "Téléchargement…", vcSample: "Voici le rendu.", vcPreview: "APERÇU", vcMale: "Homme", vcFemale: "Femme", vcSynth: "SYNTHÉTIQUE", origAudio: "AUDIO ORIGINAL", vcCloned: "VOIX", vcBadge: "CLONÉE", vcNone: "TEXTE SEUL", vcNoVoice: "Aucune voix pour ", vcSheet: "VOIX", vcNeutral: "VOIX SYNTHÉTIQUE", vcWarm: "VOIX SYNTHÉTIQUE", searchPlaceholder: "Rechercher dans la diffusion", noise: "Audio peu clair", newLines: "nouvelles", live: "EN DIRECT", ended: "TERMINÉ", waiting: "EN ATTENTE", corrected: "CORRIGÉ", hostLine: "Animé par Marcus Reed · 4 intervenants", langLabel: "LANGUE", langCount: "100+ langues", read: "Lire", listen: "Écouter", watch: "Regarder", waitTitle: "La diffusion n’a pas encore commencé", waitBody: "La transcription s’affichera ici dès que l’animateur prendra la parole.", english: "ANGLAIS", playing: "Lecture de la traduction française", ready: "Touchez pour lancer l'audio", readyNote: "Réglez le volume d'abord", voiceMeta: "VOIX NEUTRE", voice: "Voix", sheetTitle: "LANGUE DE L'APP", done: "Terminé", search: "Rechercher parmi 100+ langues", sheetNote: "Suivez la diffusion dans votre langue.", moreLangs: "autres", confTitle: "Certains mots n'ont pas été bien entendus", confBody: "La transcription marque les mots incertains d'un soulignement en pointillés. Les mots gardent leur couleur : seul le soulignement attire l'attention.", confMid: "Léger doute — probablement juste", confHigh: "Faible confiance — peut être faux", settings: "DIFFUSION", setOrig: "Afficher la langue d'origine", setTheme: "Apparence", light: "Clair", dark: "Sombre", setConf: "Afficher les mots incertains", setConfHint1: "Colore les mots incertains — ", setConfMid: "ambre", setConfSep: " ou ", setConfLow: "rouge", setConfHint2: "", behindLive: "LATENCE DE TRADUCTION", behindNote: "De combien la traduction suit le locuteur en ce moment.", shareLabel: "LIEN DE SUIVI", copy: "Copier", copied: "Copié" },
|
|
@@ -1962,10 +1962,10 @@ const Br = {
|
|
|
1962
1962
|
Romanian: { vcFor: "Vocea pentru", vcMute: "Oprește", vcUnmute: "Pornește", vcMuted: "OPRIT", vcShared: "Folosită și de", vcUsedBy: "Folosită de", vcUnknownSpk: "Necunoscut", vcUse: "Folosește această voce", vcGetting: "Se descarcă…", vcSample: "Așa sună această voce.", vcPreview: "MOSTRĂ", vcMale: "Bărbat", vcFemale: "Femeie", vcSynth: "SINTETICĂ", origAudio: "AUDIO ORIGINAL", vcCloned: "VOCI", vcBadge: "CLONATĂ", vcNone: "DOAR TEXT", vcNoVoice: "Nicio voce pentru ", vcSheet: "VOCE", vcNeutral: "VOCE SINTETICĂ", vcWarm: "VOCE SINTETICĂ", searchPlaceholder: "Caută în transmisiune", noise: "Sunet neclar", newLines: "noi", live: "ÎN DIRECT", ended: "ÎNCHEIAT", waiting: "ÎN AȘTEPTARE", corrected: "CORECTAT", hostLine: "Prezentat de Marcus Reed · 4 vorbitori", langLabel: "LIMBĂ", langCount: "100+ de limbi", read: "Citește", listen: "Ascultă", watch: "Vizionează", waitTitle: "Transmisiunea nu a început încă", waitBody: "Transcrierea va apărea aici imediat ce gazda începe să vorbească.", english: "ENGLEZĂ", playing: "Se redă traducerea în română", ready: "Atinge pentru a porni audio", readyNote: "Reglează întâi volumul", voiceMeta: "VOCE NEUTRĂ", voice: "Voce", sheetTitle: "LIMBA APLICAȚIEI", done: "Gata", search: "Caută printre 100+ de limbi", sheetNote: "Urmărește transmisiunea în limba ta.", moreLangs: "în plus", confTitle: "Unele cuvinte nu s-au auzit clar", confBody: "Transcrierea marchează cuvintele incerte cu o subliniere întreruptă. Cuvintele își păstrează culoarea, doar sublinierea îți arată unde să te uiți.", confMid: "Ușoară nesiguranță — probabil corect", confHigh: "Încredere scăzută — poate fi greșit", settings: "TRANSMISIUNE", setOrig: "Arată limba originală", setTheme: "Aspect", light: "Luminos", dark: "Întunecat", setConf: "Arată cuvintele incerte", setConfHint1: "Colorează cuvintele incerte — ", setConfMid: "galben", setConfSep: " sau ", setConfLow: "roșu", setConfHint2: "", behindLive: "LATENȚA TRADUCERII", behindNote: "Cu cât urmează traducerea vorbitorul în acest moment.", shareLabel: "LINK DE URMĂRIRE", copy: "Copiază", copied: "Copiat" },
|
|
1963
1963
|
Portuguese: { vcFor: "Voz de", vcMute: "Silenciar", vcUnmute: "Ativar", vcMuted: "SILENCIADO", vcShared: "Também usada por", vcUsedBy: "Usada por", vcUnknownSpk: "Desconhecido", vcUse: "Usar esta voz", vcGetting: "Baixando…", vcSample: "É assim que soa.", vcPreview: "AMOSTRA", vcMale: "Homem", vcFemale: "Mulher", vcSynth: "SINTÉTICA", origAudio: "ÁUDIO ORIGINAL", vcCloned: "VOZES", vcBadge: "CLONADA", vcNone: "SÓ TEXTO", vcNoVoice: "Sem voz para ", vcSheet: "VOZ", vcNeutral: "VOZ SINTÉTICA", vcWarm: "VOZ SINTÉTICA", searchPlaceholder: "Pesquisar nesta transmissão", noise: "Áudio pouco claro", newLines: "novas", live: "AO VIVO", ended: "ENCERRADA", waiting: "AGUARDANDO", corrected: "CORRIGIDO", hostLine: "Apresentado por Marcus Reed · 4 falantes", langLabel: "IDIOMA", langCount: "100+ idiomas", read: "Ler", listen: "Ouvir", watch: "Assistir", waitTitle: "A transmissão ainda não começou", waitBody: "A transcrição aparece aqui assim que o apresentador começar a falar.", english: "INGLÊS", playing: "Reproduzindo a tradução em português", ready: "Toque para iniciar o áudio", readyNote: "Ajuste o volume primeiro", voiceMeta: "VOZ NEUTRA", voice: "Voz", sheetTitle: "IDIOMA DO APP", done: "Concluído", search: "Pesquisar entre 100+ idiomas", sheetNote: "Acompanhe a transmissão no seu idioma.", moreLangs: "mais", confTitle: "Algumas palavras não foram bem ouvidas", confBody: "A transcrição marca as palavras duvidosas com um sublinhado tracejado. As palavras mantêm a sua cor, por isso só o sublinhado indica onde olhar.", confMid: "Pouca dúvida — provavelmente certa", confHigh: "Baixa confiança — pode estar errada", settings: "TRANSMISSÃO", setOrig: "Mostrar idioma original", setTheme: "Aparência", light: "Claro", dark: "Escuro", setConf: "Mostrar palavras duvidosas", setConfHint1: "Colore as palavras duvidosas: ", setConfMid: "âmbar", setConfSep: " ou ", setConfLow: "vermelho", setConfHint2: "", behindLive: "LATÊNCIA DE TRADUÇÃO", behindNote: "Quanto a tradução está atrás de quem fala agora.", shareLabel: "LINK PARA ACOMPANHAR", copy: "Copiar", copied: "Copiado" }
|
|
1964
1964
|
};
|
|
1965
|
-
function
|
|
1966
|
-
return t &&
|
|
1965
|
+
function vi(t) {
|
|
1966
|
+
return t && Hr[t] || Hr.English;
|
|
1967
1967
|
}
|
|
1968
|
-
async function
|
|
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
1971
|
return new ni(typeof n == "string" ? n : "internal", typeof s == "string" ? s : hs, { 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) });
|
|
@@ -1986,14 +1986,14 @@ function ns(t) {
|
|
|
1986
1986
|
return "queued";
|
|
1987
1987
|
}
|
|
1988
1988
|
}
|
|
1989
|
-
function
|
|
1989
|
+
function Po(t) {
|
|
1990
1990
|
return t ? { state: t.state, processedS: t.progress.processedS, totalS: t.progress.totalS ?? null, segmentsDone: t.progress.segmentsDone, segmentsTotal: t.progress.segmentsTotal ?? null, pct: t.progress.pct, error: t.error ?? null } : null;
|
|
1991
1991
|
}
|
|
1992
|
-
const
|
|
1992
|
+
const Qo = (t, e) => {
|
|
1993
1993
|
const n = (t == null ? void 0 : t.segmentsDone) ?? e, s = Math.max(n, (t == null ? void 0 : t.segmentsTotal) ?? n);
|
|
1994
1994
|
return `${n} / ${s} SEGMENTS`;
|
|
1995
1995
|
};
|
|
1996
|
-
function
|
|
1996
|
+
function $o(t, e) {
|
|
1997
1997
|
var r;
|
|
1998
1998
|
const n = ((r = t == null ? void 0 : t.source) == null ? void 0 : r.durationS) ?? (e == null ? void 0 : e.totalS) ?? null, s = t == null ? void 0 : t.crop;
|
|
1999
1999
|
if (s && (s.startS != null || s.endS != null)) {
|
|
@@ -2008,24 +2008,24 @@ const fs = [
|
|
|
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" },
|
|
2009
2009
|
{ key: "json", name: "JSON", ext: "JSON", note: "Word-level timings, confidence scores and speaker turns.", icon: "M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5" }
|
|
2010
2010
|
];
|
|
2011
|
-
function
|
|
2011
|
+
function xs(t) {
|
|
2012
2012
|
const e = document.createElement("a");
|
|
2013
2013
|
e.href = t, e.style.display = "none", document.body.appendChild(e), e.click(), e.remove();
|
|
2014
2014
|
}
|
|
2015
|
-
async function
|
|
2015
|
+
async function Bo(t) {
|
|
2016
2016
|
const e = await fetch(t, { redirect: "manual" });
|
|
2017
|
-
if (e.type !== "opaqueredirect" && !e.ok) throw await
|
|
2018
|
-
|
|
2017
|
+
if (e.type !== "opaqueredirect" && !e.ok) throw await ji(e);
|
|
2018
|
+
xs(t);
|
|
2019
2019
|
}
|
|
2020
|
-
async function
|
|
2020
|
+
async function Ho(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
|
-
if (!r.ok) throw await
|
|
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
|
-
|
|
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), f = document.createElement("a");
|
|
2025
|
+
f.href = u, f.download = d, f.style.display = "none", document.body.appendChild(f), f.click(), f.remove(), window.setTimeout(() => URL.revokeObjectURL(u), 6e4);
|
|
2026
2026
|
}
|
|
2027
|
-
async function
|
|
2028
|
-
const { recordingId: n, lang: s, voiceKey: r, cred: a } = e, o = async () => (await t.client.recordings.voice(n, s, t.readAs)).filter((
|
|
2027
|
+
async function Vo(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((f) => f.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);
|
|
@@ -2034,25 +2034,25 @@ async function Wo(t, e) {
|
|
|
2034
2034
|
if (Date.now() > d) throw new Error("The spoken track is taking too long; try again in a moment.");
|
|
2035
2035
|
await new Promise((u) => setTimeout(u, 4e3)), c = l(await o());
|
|
2036
2036
|
}
|
|
2037
|
-
|
|
2037
|
+
xs(xa(t.origin, n, s, c.voiceKey, a));
|
|
2038
2038
|
}
|
|
2039
2039
|
const Ns = (t) => {
|
|
2040
2040
|
var e;
|
|
2041
2041
|
return ((e = t == null ? void 0 : t.match(/(?:youtu\.be\/|[?&]v=|\/shorts\/|\/embed\/|\/live\/)([\w-]{11})/)) == null ? void 0 : e[1]) ?? null;
|
|
2042
|
-
},
|
|
2043
|
-
function
|
|
2042
|
+
}, Wo = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, Vr = 0.3, Fo = 1.5;
|
|
2043
|
+
function zi(t, e, n) {
|
|
2044
2044
|
var r;
|
|
2045
2045
|
const s = (r = t.words[t.words.length - 1]) == null ? void 0 : r.end;
|
|
2046
2046
|
return s != null && s > t.start ? s : t.end != null && t.end > t.start ? t.end : (e == null ? void 0 : e.start) ?? n;
|
|
2047
2047
|
}
|
|
2048
|
-
function
|
|
2048
|
+
function Go(t, e, n) {
|
|
2049
2049
|
var c, d;
|
|
2050
2050
|
const s = t[e];
|
|
2051
2051
|
if (!s) return !1;
|
|
2052
|
-
const r = (((c = s.words[0]) == null ? void 0 : c.start) ?? s.start) -
|
|
2052
|
+
const r = (((c = s.words[0]) == null ? void 0 : c.start) ?? s.start) - Vr, a = t[e + 1], o = zi(s, a, s.start + 4) + Fo, l = a ? Math.min(o, (((d = a.words[0]) == null ? void 0 : d.start) ?? a.start) - Vr) : o;
|
|
2053
2053
|
return n >= r && n < Math.max(l, r + 0.5);
|
|
2054
2054
|
}
|
|
2055
|
-
function
|
|
2055
|
+
function Zo(t, e, n) {
|
|
2056
2056
|
const s = Math.max(0, n - e), r = t.map((l) => Math.max(1, [...l.replace(/[^\p{L}\p{N}]/gu, "")].length)), a = r.reduce((l, c) => l + c, 0) || 1;
|
|
2057
2057
|
let o = e;
|
|
2058
2058
|
return t.map((l, c) => {
|
|
@@ -2067,7 +2067,7 @@ function ss(t) {
|
|
|
2067
2067
|
bottom: Math.min(parseFloat(e.paddingBottom) || 0, n)
|
|
2068
2068
|
};
|
|
2069
2069
|
}
|
|
2070
|
-
function
|
|
2070
|
+
function qo(t, e, n = 0) {
|
|
2071
2071
|
const s = j(() => {
|
|
2072
2072
|
});
|
|
2073
2073
|
_(() => {
|
|
@@ -2087,7 +2087,7 @@ function Ko(t, e, n = 0) {
|
|
|
2087
2087
|
const A = o(), K = A ? A.offsetHeight : 0, z = r.clientHeight - K - 36, S = r.scrollHeight - r.clientHeight, Q = z > 0 ? Math.max(30, Math.round(z * (r.clientHeight - K) / r.scrollHeight)) : 0;
|
|
2088
2088
|
return { vis: z, max: S, size: Q };
|
|
2089
2089
|
};
|
|
2090
|
-
let c = -1, d = null, u = !1,
|
|
2090
|
+
let c = -1, d = null, u = !1, f = 0, M = 0;
|
|
2091
2091
|
const N = () => {
|
|
2092
2092
|
const A = o();
|
|
2093
2093
|
if (!A) return;
|
|
@@ -2116,11 +2116,11 @@ function Ko(t, e, n = 0) {
|
|
|
2116
2116
|
a.style.right = (g >= 12 ? -(g - 6) : 2) + "px";
|
|
2117
2117
|
const b = () => p(!0), D = (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, f = 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 - f) / (K.vis - K.size) * K.max, m();
|
|
2124
2124
|
}, X = () => {
|
|
2125
2125
|
u && (u = !1, a.style.cursor = "grab", m());
|
|
2126
2126
|
};
|
|
@@ -2130,10 +2130,10 @@ function Ko(t, e, n = 0) {
|
|
|
2130
2130
|
};
|
|
2131
2131
|
}, []);
|
|
2132
2132
|
}
|
|
2133
|
-
function
|
|
2133
|
+
function Ko({ thumbRef: t }) {
|
|
2134
2134
|
return /* @__PURE__ */ i("div", { className: "feedbar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", { ref: t, className: "feedbar__thumb" }) });
|
|
2135
2135
|
}
|
|
2136
|
-
function
|
|
2136
|
+
function Jo({ error: t, onClose: e }) {
|
|
2137
2137
|
const n = j(e);
|
|
2138
2138
|
if (n.current = e, _(() => {
|
|
2139
2139
|
if (!t) return;
|
|
@@ -2141,11 +2141,11 @@ function Xo({ error: t, onClose: e }) {
|
|
|
2141
2141
|
return () => clearTimeout(r);
|
|
2142
2142
|
}, [t]), !t) return null;
|
|
2143
2143
|
const s = t.code === "insufficient_credit" || t.code === "quota_exceeded" || t.status === 402;
|
|
2144
|
-
return /* @__PURE__ */
|
|
2144
|
+
return /* @__PURE__ */ h("div", { className: "toast", role: "alert", children: [
|
|
2145
2145
|
/* @__PURE__ */ i(ce, { d: q.warn, size: 16, style: { color: "var(--conf-low)", flex: "none" } }),
|
|
2146
|
-
/* @__PURE__ */
|
|
2146
|
+
/* @__PURE__ */ h("span", { style: { flex: 1 }, children: [
|
|
2147
2147
|
t.message,
|
|
2148
|
-
s && /* @__PURE__ */
|
|
2148
|
+
s && /* @__PURE__ */ h(Re, { children: [
|
|
2149
2149
|
" ",
|
|
2150
2150
|
/* @__PURE__ */ i("a", { href: "https://app.vocalstack.com/billing", target: "_blank", rel: "noopener", className: "dev-link", style: { fontSize: "inherit", fontWeight: 600, whiteSpace: "nowrap" }, children: "Add credit" })
|
|
2151
2151
|
] })
|
|
@@ -2153,30 +2153,30 @@ function Xo({ error: t, onClose: e }) {
|
|
|
2153
2153
|
/* @__PURE__ */ i("button", { type: "button", onClick: e, "aria-label": "Dismiss", children: /* @__PURE__ */ i(ce, { d: q.close, size: 14 }) })
|
|
2154
2154
|
] });
|
|
2155
2155
|
}
|
|
2156
|
-
function
|
|
2156
|
+
function Ii({ color: t }) {
|
|
2157
2157
|
return /* @__PURE__ */ i("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ i(ce, { d: q.voiceClone, size: 13, sw: 1.7, stroke: t }) });
|
|
2158
2158
|
}
|
|
2159
2159
|
function Hc({ chip: t, note: e, scrub: n, mute: s, voice: r, prev: a, play: o, next: l }) {
|
|
2160
|
-
return /* @__PURE__ */
|
|
2161
|
-
/* @__PURE__ */
|
|
2160
|
+
return /* @__PURE__ */ h("div", { className: "vs-tt", children: [
|
|
2161
|
+
/* @__PURE__ */ h("div", { className: "vs-tt__r1", children: [
|
|
2162
2162
|
/* @__PURE__ */ i("div", { className: "vs-tt__chip", children: t }),
|
|
2163
|
-
e ? /* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: e }) : /* @__PURE__ */
|
|
2163
|
+
e ? /* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: e }) : /* @__PURE__ */ h(Re, { children: [
|
|
2164
2164
|
/* @__PURE__ */ i("div", { className: "vs-tt__scrub", children: n }),
|
|
2165
2165
|
/* @__PURE__ */ i("div", { className: "vs-tt__spk", children: s }),
|
|
2166
2166
|
/* @__PURE__ */ i("div", { className: "vs-tt__voice", children: r })
|
|
2167
2167
|
] })
|
|
2168
2168
|
] }),
|
|
2169
|
-
!e && /* @__PURE__ */
|
|
2169
|
+
!e && /* @__PURE__ */ h("div", { className: "vs-tt__r2", children: [
|
|
2170
2170
|
/* @__PURE__ */ i("div", { className: "vs-tt__side", style: { justifyContent: "flex-end" }, children: /* @__PURE__ */ i("div", { className: "vs-tt__prev", children: a }) }),
|
|
2171
2171
|
/* @__PURE__ */ i("div", { className: "vs-tt__play", children: o }),
|
|
2172
2172
|
/* @__PURE__ */ i("div", { className: "vs-tt__side", style: { justifyContent: "flex-start" }, children: /* @__PURE__ */ i("div", { className: "vs-tt__next", children: l }) })
|
|
2173
2173
|
] })
|
|
2174
2174
|
] });
|
|
2175
2175
|
}
|
|
2176
|
-
function
|
|
2177
|
-
const
|
|
2176
|
+
function Xo({ 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 f = j(null), M = j(!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", b = (k) => {
|
|
2178
2178
|
var z;
|
|
2179
|
-
const X = (z =
|
|
2179
|
+
const X = (z = f.current) == null ? void 0 : z.getBoundingClientRect();
|
|
2180
2180
|
if (!X) return;
|
|
2181
2181
|
const A = Math.min(1, Math.max(0, (k.clientX - X.left) / Math.max(1, X.width)));
|
|
2182
2182
|
if (o) {
|
|
@@ -2188,15 +2188,15 @@ function el({ index: t, total: e, atLabel: n, durLabel: s, stepLabel: r, onSeek:
|
|
|
2188
2188
|
}, D = () => {
|
|
2189
2189
|
M.current && (M.current = !1, m(null), c == null || c());
|
|
2190
2190
|
};
|
|
2191
|
-
return /* @__PURE__ */
|
|
2192
|
-
/* @__PURE__ */
|
|
2191
|
+
return /* @__PURE__ */ h("div", { className: "rscrub", children: [
|
|
2192
|
+
/* @__PURE__ */ h(
|
|
2193
2193
|
"div",
|
|
2194
2194
|
{
|
|
2195
|
-
ref:
|
|
2195
|
+
ref: f,
|
|
2196
2196
|
className: "rscrub__track",
|
|
2197
2197
|
onPointerDown: (k) => {
|
|
2198
2198
|
var X;
|
|
2199
|
-
M.current = !0, (X =
|
|
2199
|
+
M.current = !0, (X = f.current) == null || X.setPointerCapture(k.pointerId), l == null || l(), b(k), k.preventDefault();
|
|
2200
2200
|
},
|
|
2201
2201
|
onPointerMove: (k) => {
|
|
2202
2202
|
M.current && b(k);
|
|
@@ -2210,14 +2210,14 @@ function el({ index: t, total: e, atLabel: n, durLabel: s, stepLabel: r, onSeek:
|
|
|
2210
2210
|
]
|
|
2211
2211
|
}
|
|
2212
2212
|
),
|
|
2213
|
-
/* @__PURE__ */
|
|
2213
|
+
/* @__PURE__ */ h("div", { className: "rscrub__labels", children: [
|
|
2214
2214
|
/* @__PURE__ */ i("span", { className: "at", children: n }),
|
|
2215
2215
|
/* @__PURE__ */ i("span", { className: "step", children: r }),
|
|
2216
2216
|
/* @__PURE__ */ i("span", { className: "dur", children: s })
|
|
2217
2217
|
] })
|
|
2218
2218
|
] });
|
|
2219
2219
|
}
|
|
2220
|
-
function
|
|
2220
|
+
function el(t, e, n) {
|
|
2221
2221
|
const s = new Set(t.seqs ?? t.words.map((l) => l.seq)), r = (e ?? []).filter((l) => !l.revertedAt && l.seq != null && s.has(l.seq) && (l.kind === "word" || l.kind === "line")), a = r.some((l) => l.kind === "line"), o = (l) => !!(n != null && n.has(`${l.seq}:${l.idx}`));
|
|
2222
2222
|
return {
|
|
2223
2223
|
script: a ? 0 : t.words.filter((l) => l.script && !o(l)).length,
|
|
@@ -2225,30 +2225,30 @@ function tl(t, e, n) {
|
|
|
2225
2225
|
manualCount: a ? 0 : r.filter((l) => l.kind === "word").length
|
|
2226
2226
|
};
|
|
2227
2227
|
}
|
|
2228
|
-
function
|
|
2229
|
-
const s = (r, a, o) => /* @__PURE__ */
|
|
2228
|
+
function tl({ f: t, desk: e, onOpen: n }) {
|
|
2229
|
+
const s = (r, a, o) => /* @__PURE__ */ h("span", { role: "button", title: "Open this line in Fix", className: "badge badge--fix", style: { marginLeft: o ? "auto" : 0 }, onClick: (l) => {
|
|
2230
2230
|
l.stopPropagation(), n == null || n();
|
|
2231
2231
|
}, children: [
|
|
2232
2232
|
/* @__PURE__ */ i(ce, { d: q.pencilFix, size: e ? 10 : 9, sw: 2 }),
|
|
2233
2233
|
r,
|
|
2234
2234
|
a > 0 && /* @__PURE__ */ i("span", { className: "badge__n", children: a })
|
|
2235
2235
|
] }, r);
|
|
2236
|
-
return /* @__PURE__ */
|
|
2236
|
+
return /* @__PURE__ */ h(Re, { children: [
|
|
2237
2237
|
t.script > 0 && s(e ? "SCRIPT FIX" : "SCRIPT", t.script, !0),
|
|
2238
2238
|
t.manual && s(e ? "MANUAL FIX" : "MANUAL", t.manualCount, t.script === 0)
|
|
2239
2239
|
] });
|
|
2240
2240
|
}
|
|
2241
|
-
function
|
|
2241
|
+
function nl({ onOpen: t, alone: e }) {
|
|
2242
2242
|
const [n, s] = O(!1);
|
|
2243
|
-
return /* @__PURE__ */
|
|
2243
|
+
return /* @__PURE__ */ h("span", { role: "button", title: "Fix this line", className: `badge badge--pen${n ? " is-over" : ""}`, style: { marginLeft: e ? "auto" : 0 }, onMouseEnter: () => s(!0), onMouseLeave: () => s(!1), onClick: (r) => {
|
|
2244
2244
|
r.stopPropagation(), t();
|
|
2245
2245
|
}, children: [
|
|
2246
2246
|
/* @__PURE__ */ i(ce, { d: q.pencilFix, size: 11, sw: 2 }),
|
|
2247
2247
|
n && "FIX"
|
|
2248
2248
|
] });
|
|
2249
2249
|
}
|
|
2250
|
-
function
|
|
2251
|
-
const r = At(), [a, o] = O([]), [l, c] = O(0), d = j(/* @__PURE__ */ new Set()), u = j(!1),
|
|
2250
|
+
function sl(t, e, n, s) {
|
|
2251
|
+
const r = At(), [a, o] = O([]), [l, c] = O(0), d = j(/* @__PURE__ */ new Set()), u = j(!1), f = je(() => new Map(n.filter((N) => N.sentenceId != null).map((N) => [N.sentenceId, N])), [n]);
|
|
2252
2252
|
_(() => {
|
|
2253
2253
|
d.current = /* @__PURE__ */ new Set();
|
|
2254
2254
|
}, [t, e]);
|
|
@@ -2256,7 +2256,7 @@ function rl(t, e, n, s) {
|
|
|
2256
2256
|
return _(() => {
|
|
2257
2257
|
if (!t || !e || !a.length || u.current) return;
|
|
2258
2258
|
const N = a.filter((m) => {
|
|
2259
|
-
const w =
|
|
2259
|
+
const w = f.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,15 +2272,15 @@ 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, f, s]), M;
|
|
2276
2276
|
}
|
|
2277
|
-
function
|
|
2277
|
+
function rl(t) {
|
|
2278
2278
|
return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
|
|
2279
2279
|
}
|
|
2280
2280
|
function qt(t, e) {
|
|
2281
2281
|
return t.cloned ? { rank: 0, head: e.vcSheet } : t.gender === "male" ? { rank: 1, head: e.vcMale.toUpperCase() } : t.gender === "female" ? { rank: 2, head: e.vcFemale.toUpperCase() } : { rank: 3, head: e.vcSynth };
|
|
2282
2282
|
}
|
|
2283
|
-
function
|
|
2283
|
+
function il(t, e) {
|
|
2284
2284
|
const n = t.slice().sort((r, a) => qt(r, e).rank - qt(a, e).rank || r.name.localeCompare(a.name, void 0, { numeric: !0 })), s = {};
|
|
2285
2285
|
for (const r of n) {
|
|
2286
2286
|
const a = qt(r, e).head;
|
|
@@ -2291,18 +2291,18 @@ function al(t, e) {
|
|
|
2291
2291
|
return { v: r, headOn: l, head: o, headCount: s[o], rule: l ? "0" : "1px solid var(--hair)" };
|
|
2292
2292
|
});
|
|
2293
2293
|
}
|
|
2294
|
-
function
|
|
2294
|
+
function al(t, e, n) {
|
|
2295
2295
|
const s = /* @__PURE__ */ new Set();
|
|
2296
2296
|
let r = !1;
|
|
2297
2297
|
for (const o of t)
|
|
2298
2298
|
o.speaker < 0 ? r = !0 : s.add(o.speaker);
|
|
2299
2299
|
const a = [...s].sort((o, l) => o - l).map((o) => {
|
|
2300
2300
|
var c;
|
|
2301
|
-
const l =
|
|
2301
|
+
const l = Cs(e, o);
|
|
2302
2302
|
return {
|
|
2303
2303
|
key: o,
|
|
2304
|
-
name:
|
|
2305
|
-
initial:
|
|
2304
|
+
name: Os(e, o),
|
|
2305
|
+
initial: mi(e, o),
|
|
2306
2306
|
lane: l.lane,
|
|
2307
2307
|
sex: e.speakerSex[o] ?? null,
|
|
2308
2308
|
voiceId: ((c = e.speakerIds[o]) == null ? void 0 : c.voiceId) ?? null,
|
|
@@ -2313,11 +2313,11 @@ function ol(t, e, n) {
|
|
|
2313
2313
|
});
|
|
2314
2314
|
return r && a.push({ key: -1, name: n, initial: "?", lane: null, sex: null }), a;
|
|
2315
2315
|
}
|
|
2316
|
-
function
|
|
2316
|
+
function Wr(t) {
|
|
2317
2317
|
const e = [...t.entries()].filter(([, n]) => n.trim()).sort((n, s) => n[0] - s[0]).map(([n, s]) => `${n}=${s.trim()}`).join(";");
|
|
2318
2318
|
return e ? `cast:${e}` : "";
|
|
2319
2319
|
}
|
|
2320
|
-
function
|
|
2320
|
+
function Fr(t) {
|
|
2321
2321
|
if (!t || !t.startsWith("cast:")) return null;
|
|
2322
2322
|
const e = /* @__PURE__ */ new Map();
|
|
2323
2323
|
for (const n of t.slice(5).split(";")) {
|
|
@@ -2328,7 +2328,7 @@ function Wr(t) {
|
|
|
2328
2328
|
}
|
|
2329
2329
|
return e.size ? e : null;
|
|
2330
2330
|
}
|
|
2331
|
-
function
|
|
2331
|
+
function Gr(t, e, n = !0) {
|
|
2332
2332
|
const s = e.filter((o) => !o.cloned), r = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
|
|
2333
2333
|
for (const o of t) {
|
|
2334
2334
|
const c = (o.voiceId ? e.find((M) => M.cloned && !M.auto && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (n ? (o.voiceId ? e.find((M) => M.cloned && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (o.key >= 0 ? e.find((M) => M.cloned && M.auto && M.consent !== "pending" && M.speaker === o.key) : void 0) : void 0);
|
|
@@ -2336,23 +2336,23 @@ function Fr(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)), f = (o.sex ? d.filter((M) => M.gender === o.sex) : [])[0] ?? d[0] ?? s[0];
|
|
2340
|
+
f && (a.set(o.key, f.id), r.add(f.id));
|
|
2341
2341
|
}
|
|
2342
2342
|
return a;
|
|
2343
2343
|
}
|
|
2344
|
-
function
|
|
2344
|
+
function ol({ 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
|
|
2348
|
-
return /* @__PURE__ */
|
|
2347
|
+
const f = 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
|
+
return /* @__PURE__ */ h(
|
|
2349
2349
|
"button",
|
|
2350
2350
|
{
|
|
2351
2351
|
type: "button",
|
|
2352
|
-
"aria-selected":
|
|
2352
|
+
"aria-selected": f,
|
|
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: f ? "var(--brand-tint)" : "var(--fill-05)", border: `1px solid ${f ? "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(
|
|
2365
|
+
/* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color: f ? "var(--ink-96)" : "var(--ink-62)", whiteSpace: "nowrap" }, children: u.name }),
|
|
2366
|
+
u.hasVoice && !M && /* @__PURE__ */ i(Ii, { color: u.fg ?? (f ? "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: f ? "var(--ink-45)" : "var(--ink-35)" }, children: /* @__PURE__ */ i(ce, { 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(at, { size: 10, color: "var(--brand)", track: "var(--fill-10)", sw: 1.6 }) : /* @__PURE__ */ i("span", { style: { width: 7, height: 7, borderRadius: "50%", background: "var(--brand)" } }) })
|
|
2370
2370
|
]
|
|
2371
2371
|
},
|
|
@@ -2373,40 +2373,40 @@ function ll({ roster: t, selected: e, onSelect: n, noClone: s, building: r, shor
|
|
|
2373
2373
|
);
|
|
2374
2374
|
}) }) : null;
|
|
2375
2375
|
}
|
|
2376
|
-
function
|
|
2377
|
-
const w = je(() =>
|
|
2376
|
+
function ll({ 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: f = null, problem: M, noClone: N = null, t: m }) {
|
|
2377
|
+
const w = je(() => il(e, m), [e, m]), [v, p] = O({});
|
|
2378
2378
|
_(() => {
|
|
2379
2379
|
p({});
|
|
2380
|
-
}, [u,
|
|
2380
|
+
}, [u, f]);
|
|
2381
2381
|
const g = (k) => k === m.vcMale.toUpperCase() || k === m.vcFemale.toUpperCase(), b = (k) => {
|
|
2382
2382
|
if (k === m.vcSheet) return !0;
|
|
2383
2383
|
const X = v[k];
|
|
2384
|
-
return X != null ? !X : !
|
|
2384
|
+
return X != null ? !X : !f || !g(k) ? !0 : k === (f === "female" ? m.vcFemale : m.vcMale).toUpperCase();
|
|
2385
2385
|
}, D = !!s && s !== n;
|
|
2386
|
-
return /* @__PURE__ */
|
|
2387
|
-
M && /* @__PURE__ */
|
|
2386
|
+
return /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
2387
|
+
M && /* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "flex-start", gap: 9, padding: "10px 11px", marginBottom: 10, borderRadius: 11, background: "var(--conf-low-soft)" }, children: [
|
|
2388
2388
|
/* @__PURE__ */ i(ce, { d: q.warnTri, size: 15, sw: 1.7, style: { flex: "none", marginTop: 1, color: "var(--conf-low)" } }),
|
|
2389
2389
|
/* @__PURE__ */ i("span", { style: { flex: 1, minWidth: 0, fontSize: 12.5, fontWeight: 300, lineHeight: 1.45, color: "var(--ink-80)", textWrap: "pretty" }, children: M }),
|
|
2390
|
-
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(
|
|
2390
|
+
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(za, { value: M, label: "Copy this error" }) })
|
|
2391
2391
|
] }),
|
|
2392
2392
|
t,
|
|
2393
|
-
N && /* @__PURE__ */
|
|
2393
|
+
N && /* @__PURE__ */ h(Re, { children: [
|
|
2394
2394
|
/* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, padding: "14px 2px 6px", userSelect: "none" }, children: /* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: m.vcSheet }) }),
|
|
2395
|
-
/* @__PURE__ */
|
|
2395
|
+
/* @__PURE__ */ h("div", { role: N.action ? "button" : "status", tabIndex: N.action ? 0 : void 0, title: N.tip, onClick: N.action, onKeyDown: N.action ? (k) => {
|
|
2396
2396
|
(k.key === "Enter" || k.key === " ") && (k.preventDefault(), N.action());
|
|
2397
2397
|
} : void 0, style: { display: "flex", alignItems: "center", gap: 11, padding: "11px 8px", margin: "0 -6px", borderRadius: 10, cursor: N.action ? "pointer" : "default" }, children: [
|
|
2398
2398
|
/* @__PURE__ */ i("span", { style: { flex: "none", width: 32, height: 32, boxSizing: "border-box", borderRadius: "50%", border: N.busy ? 0 : N.action ? "1.5px solid var(--brand)" : "1.5px dashed var(--fill-20)", display: "flex", alignItems: "center", justifyContent: "center" }, children: N.busy ? /* @__PURE__ */ i("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : /* @__PURE__ */ i(ce, { d: N.action ? q.plus : q.mic, size: 15, sw: N.action ? 2 : 1.6, style: { color: N.action ? "var(--brand)" : "var(--ink-45)" } }) }),
|
|
2399
|
-
/* @__PURE__ */
|
|
2399
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
2400
2400
|
/* @__PURE__ */ i("div", { style: { fontSize: 14.5, fontWeight: N.action ? 500 : 400, color: N.action ? "var(--brand)" : "var(--ink-62)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: N.title }),
|
|
2401
2401
|
/* @__PURE__ */ i("div", { style: { fontSize: 12, fontWeight: 300, color: "var(--ink-62)", marginTop: 2, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: N.sub })
|
|
2402
2402
|
] })
|
|
2403
2403
|
] })
|
|
2404
2404
|
] }),
|
|
2405
2405
|
w.map(({ v: k, headOn: X, head: A, headCount: K, rule: z }, S) => {
|
|
2406
|
-
const Q =
|
|
2407
|
-
return /* @__PURE__ */
|
|
2406
|
+
const Q = rl(k), L = a === k.id, I = b(A), E = (d == null ? void 0 : d(k)) ?? null;
|
|
2407
|
+
return /* @__PURE__ */ h(ha, { children: [
|
|
2408
2408
|
X && A === m.vcSheet && /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", padding: "14px 2px 6px", borderTop: S === 0 && !N ? "0" : "1px solid var(--hair)", userSelect: "none" }, children: /* @__PURE__ */ i("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: A }) }),
|
|
2409
|
-
X && A !== m.vcSheet && /* @__PURE__ */
|
|
2409
|
+
X && A !== m.vcSheet && /* @__PURE__ */ h(
|
|
2410
2410
|
"button",
|
|
2411
2411
|
{
|
|
2412
2412
|
type: "button",
|
|
@@ -2423,7 +2423,7 @@ function cl({ cast: t, voices: e, currentId: n, armedId: s = null, sampleId: r =
|
|
|
2423
2423
|
]
|
|
2424
2424
|
}
|
|
2425
2425
|
),
|
|
2426
|
-
/* @__PURE__ */
|
|
2426
|
+
/* @__PURE__ */ h(
|
|
2427
2427
|
"button",
|
|
2428
2428
|
{
|
|
2429
2429
|
type: "button",
|
|
@@ -2433,23 +2433,23 @@ function cl({ cast: t, voices: e, currentId: n, armedId: s = null, sampleId: r =
|
|
|
2433
2433
|
onClick: () => o(k),
|
|
2434
2434
|
style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: I ? z : "0", display: "flex", alignItems: "center", gap: 11, padding: I ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: s === k.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: I ? 1 : 0, maxHeight: I ? 120 : 0, overflow: "hidden", transition: "max-height 280ms cubic-bezier(.32,.72,0,1),padding 280ms cubic-bezier(.32,.72,0,1),opacity 200ms ease" },
|
|
2435
2435
|
children: [
|
|
2436
|
-
/* @__PURE__ */ i("span", { title: L ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: L ? "transparent" : k.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: L ? /* @__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" } }) : r === k.id ? /* @__PURE__ */
|
|
2437
|
-
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(
|
|
2438
|
-
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(
|
|
2436
|
+
/* @__PURE__ */ i("span", { title: L ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: L ? "transparent" : k.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: L ? /* @__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" } }) : r === k.id ? /* @__PURE__ */ h("span", { className: "vcplay", children: [
|
|
2437
|
+
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(cl, { height: 13, width: 2.5 }) }),
|
|
2438
|
+
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(ka, { size: 11 }) })
|
|
2439
2439
|
] }) : /* @__PURE__ */ i(ce, { d: k.cloned ? q.voiceClone : k.gender === "female" ? q.venus : k.gender === "male" ? q.mars : q.mic, size: 15, sw: 1.6, style: { color: k.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
|
|
2440
|
-
/* @__PURE__ */
|
|
2440
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
2441
2441
|
/* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, minWidth: 0 }, children: /* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 14.5, fontWeight: k.id === n ? 600 : 400, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: k.name }) }),
|
|
2442
2442
|
Q && /* @__PURE__ */ i("div", { style: { fontSize: 12, fontWeight: 300, color: "var(--ink-62)", marginTop: 2, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: Q }),
|
|
2443
|
-
E && (k.id === n ? /* @__PURE__ */
|
|
2443
|
+
E && (k.id === n ? /* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "center", gap: 5, marginTop: 3, minWidth: 0 }, children: [
|
|
2444
2444
|
/* @__PURE__ */ i(ce, { d: q.notice, size: 12, sw: 1.7, style: { flex: "none", color: "var(--conf-mid)" } }),
|
|
2445
2445
|
/* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 11, fontWeight: 300, color: "var(--conf-mid)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: `${m.vcShared} ${E}` })
|
|
2446
2446
|
] }) : /* @__PURE__ */ i("div", { style: { marginTop: 2, minWidth: 0, fontSize: 12, fontWeight: 300, color: "var(--ink-50)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: `${m.vcUsedBy} ${E}` }))
|
|
2447
2447
|
] }),
|
|
2448
|
-
/* @__PURE__ */
|
|
2448
|
+
/* @__PURE__ */ h("div", { style: { flex: "none", width: k.live ? k.id === n ? 18 : 0 : 42, overflow: "hidden", display: "flex", alignItems: "center", justifyContent: "flex-end", gap: 6 }, children: [
|
|
2449
2449
|
/* @__PURE__ */ i("span", { style: { flex: "none", width: 18, height: 18 } }),
|
|
2450
2450
|
/* @__PURE__ */ i("span", { style: { flex: "none", width: 18, height: 18, display: "flex", alignItems: "center", justifyContent: "center" }, children: k.id === n && /* @__PURE__ */ i(ce, { d: q.check, size: 17, sw: 2.2, style: { flex: "none", color: "var(--brand)" } }) })
|
|
2451
2451
|
] }),
|
|
2452
|
-
(k.live || k.cloned && k.library === !1 && !k.auto && !!l) && /* @__PURE__ */
|
|
2452
|
+
(k.live || k.cloned && k.library === !1 && !k.auto && !!l) && /* @__PURE__ */ h("span", { className: "gvadd", role: "button", title: k.live ? `Save ${k.name}’s voice from this session` : `Add ${k.name} to My voices`, onClick: l ? (ie) => {
|
|
2453
2453
|
ie.stopPropagation(), l(k);
|
|
2454
2454
|
} : void 0, children: [
|
|
2455
2455
|
/* @__PURE__ */ i(ce, { d: q.plus, size: 14, sw: 2 }),
|
|
@@ -2463,25 +2463,25 @@ function cl({ cast: t, voices: e, currentId: n, armedId: s = null, sampleId: r =
|
|
|
2463
2463
|
D && /* @__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
|
-
function
|
|
2466
|
+
function cl({ height: t, width: e = 2 }) {
|
|
2467
2467
|
const n = { width: e, height: "100%", borderRadius: 1, background: "var(--brand)" };
|
|
2468
|
-
return /* @__PURE__ */
|
|
2468
|
+
return /* @__PURE__ */ h("span", { style: { flex: "none", display: "flex", alignItems: "flex-end", gap: 2, height: t }, children: [
|
|
2469
2469
|
/* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out infinite" } }),
|
|
2470
2470
|
/* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out .2s infinite" } }),
|
|
2471
2471
|
/* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out .38s infinite" } })
|
|
2472
2472
|
] });
|
|
2473
2473
|
}
|
|
2474
|
-
const
|
|
2474
|
+
const ul = /* @__PURE__ */ h("span", { style: { display: "inline-flex", alignItems: "center", gap: 3 }, children: [
|
|
2475
2475
|
/* @__PURE__ */ i(ce, { d: q.langAuto, size: 19, sw: 1.7, style: { color: "var(--ink-62)", display: "block" } }),
|
|
2476
2476
|
/* @__PURE__ */ i(ce, { d: q.globe, size: 18, sw: 1.6, style: { color: "var(--ink-62)", display: "block" } })
|
|
2477
2477
|
] });
|
|
2478
2478
|
function ps(t, e) {
|
|
2479
2479
|
const n = e ? t == null ? void 0 : t.languages.find((s) => s.code === e) : null;
|
|
2480
|
-
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" :
|
|
2480
|
+
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : ul, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
|
|
2481
2481
|
}
|
|
2482
|
-
const
|
|
2483
|
-
function
|
|
2484
|
-
const r = (s == null ? void 0 : s.id) ?? null, a = (s == null ? void 0 : s.token) ?? null, o = (s == null ? void 0 : s.shareCode) ?? null, l = At(), { data: c } =
|
|
2482
|
+
const Zr = { minHeight: 36, height: 36, padding: "0 11px", background: "var(--fill-06)" };
|
|
2483
|
+
function dl(t, e, n = 0, s) {
|
|
2484
|
+
const r = (s == null ? void 0 : s.id) ?? null, a = (s == null ? void 0 : s.token) ?? null, o = (s == null ? void 0 : s.shareCode) ?? null, l = At(), { data: c } = ki(async () => {
|
|
2485
2485
|
if (!t || !e) return null;
|
|
2486
2486
|
try {
|
|
2487
2487
|
return await l.client.voices.available(t, { recording: r ?? void 0, shareCode: r ? o ?? void 0 : void 0, asOwner: l.owner });
|
|
@@ -2491,25 +2491,25 @@ 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 Ml(t) {
|
|
2495
2495
|
return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
|
|
2496
2496
|
}
|
|
2497
|
-
function
|
|
2498
|
-
const o = At(), { data: l, reload: c } =
|
|
2497
|
+
function gl({ recordingId: t, lang: e, ended: n, cred: s, pickedVoice: r, sentenceIds: a }) {
|
|
2498
|
+
const o = At(), { data: l, reload: c } = ki(async () => {
|
|
2499
2499
|
if (!t || !e) return null;
|
|
2500
2500
|
const V = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
|
|
2501
2501
|
return { recordingId: t, lang: e, rows: V.filter((C) => C.lang === e) };
|
|
2502
2502
|
}, [t, e, o, n]), d = je(
|
|
2503
2503
|
() => l && l.lang === e && l.recordingId === t ? l.rows : [],
|
|
2504
2504
|
[l, e, t]
|
|
2505
|
-
), u = je(() =>
|
|
2505
|
+
), u = je(() => di(d, r), [d, r]), f = u ? u.voiceKey || null : r, [M, N] = O(null), [m, w] = O(null), v = j(/* @__PURE__ */ new Set()), p = `${t ?? ""}|${e ?? ""}|${f ?? ""}`, g = Xe(async (V, C) => {
|
|
2506
2506
|
if (!t || !e || !n) return;
|
|
2507
|
-
const de = C != null && C.size ? null :
|
|
2507
|
+
const de = C != null && C.size ? null : Fr(V), H = C != null && C.size ? C : de, G = H && H.size ? Object.fromEntries([...H].map(([Te, Le]) => [String(Te), Le])) : null, oe = `${t}|${e}|${G ? JSON.stringify(G) : V ?? ""}`;
|
|
2508
2508
|
if (v.current.has(oe)) return;
|
|
2509
2509
|
v.current.add(oe), N(oe), w(null);
|
|
2510
2510
|
const ne = { langs: [e] };
|
|
2511
2511
|
G ? ne.voiceBySpeaker = G : V && (ne.voice = V);
|
|
2512
|
-
const ae = await
|
|
2512
|
+
const ae = await Br(o, `/v1/recordings/${t}/voice`, { method: "POST", body: ne }).catch(() => null);
|
|
2513
2513
|
if (N((Te) => Te === oe ? null : Te), !(ae != null && ae.ok)) {
|
|
2514
2514
|
v.current.delete(oe);
|
|
2515
2515
|
const Te = ae ? await ae.json().catch(() => null) : null;
|
|
@@ -2524,16 +2524,16 @@ function hl({ recordingId: t, lang: e, ended: n, cred: s, pickedVoice: r, senten
|
|
|
2524
2524
|
}, [t, e]), D = !!u && (u.state === "queued" || u.state === "running") || M === p, k = (u == null ? void 0 : u.state) === "failed" ? u.error || "the render failed" : m, X = (a == null ? void 0 : a.join(",")) ?? "", [A, K] = O(null), z = je(() => new Set((u == null ? void 0 : u.clips) ?? []), [u]), S = je(() => n && X ? X.split(",").map(Number).filter((V) => !z.has(V)) : [], [n, X, z]), Q = j(null);
|
|
2525
2525
|
_(() => {
|
|
2526
2526
|
if (!n || !t || !e || !S.length) return;
|
|
2527
|
-
const V = A ?? S[0], C = S.find((ne) => ne >= V) ?? S[0], de = `${t}|${e}|${
|
|
2527
|
+
const V = A ?? S[0], C = S.find((ne) => ne >= V) ?? S[0], de = `${t}|${e}|${f ?? ""}`, H = Q.current;
|
|
2528
2528
|
if (H && H.key === de && Math.abs(H.near - C) < 12 && Date.now() - H.at < 6e4) return;
|
|
2529
2529
|
Q.current = { key: de, near: C, at: Date.now() };
|
|
2530
|
-
const G =
|
|
2531
|
-
G && G.size ? oe.voiceBySpeaker = Object.fromEntries([...G].map(([ne, ae]) => [String(ne), ae])) :
|
|
2530
|
+
const G = Fr(f), oe = { langs: [e], near: C };
|
|
2531
|
+
G && G.size ? oe.voiceBySpeaker = Object.fromEntries([...G].map(([ne, ae]) => [String(ne), ae])) : f && (oe.voice = f), Br(o, `/v1/recordings/${t}/voice`, { method: "POST", body: oe }).then((ne) => {
|
|
2532
2532
|
ne.ok || (Q.current = null);
|
|
2533
2533
|
}).catch(() => {
|
|
2534
2534
|
Q.current = null;
|
|
2535
2535
|
});
|
|
2536
|
-
}, [n, t, e,
|
|
2536
|
+
}, [n, t, e, f, A, S, o]);
|
|
2537
2537
|
const L = S.length > 0, I = j({ n: -1, at: 0 });
|
|
2538
2538
|
_(() => {
|
|
2539
2539
|
if (!L) return;
|
|
@@ -2546,13 +2546,13 @@ function hl({ recordingId: t, lang: e, ended: n, cred: s, pickedVoice: r, senten
|
|
|
2546
2546
|
const E = je(() => {
|
|
2547
2547
|
if (!t) return [];
|
|
2548
2548
|
const V = X ? X.split(",").map(Number).filter((de) => !n || z.has(de)) : void 0, C = u ?? (V != null && V.length && e ? { lang: e, voiceKey: r ?? "", clips: [], voice: null } : null);
|
|
2549
|
-
return
|
|
2549
|
+
return _a(C, t, o.origin, s, V);
|
|
2550
2550
|
}, [u, t, o, s, X, e, r, n, z]), ie = je(() => new Set(S), [S]);
|
|
2551
|
-
return { listed: l, rows: d, track: u, renderVoiceId:
|
|
2551
|
+
return { listed: l, rows: d, track: u, renderVoiceId: f, rendering: D, failed: k, clips: E, requestRender: g, forget: b, reload: c, setNear: K, missing: S.length, coming: ie };
|
|
2552
2552
|
}
|
|
2553
|
-
const
|
|
2554
|
-
function
|
|
2555
|
-
const o = r && t.length <= 3, l = t.some((v) => v.key === e), [c, d] = O(null), u = j(null), [
|
|
2553
|
+
const hl = { 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
|
+
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 = j(null), [f, M] = O(0);
|
|
2556
2556
|
_(() => {
|
|
2557
2557
|
u.current && M(u.current.offsetWidth);
|
|
2558
2558
|
}, [c == null ? void 0 : c.k]);
|
|
@@ -2568,24 +2568,24 @@ function Ci({ tabs: t, current: e, onPick: n, gap: s, fold: r = !0, side: a = !r
|
|
|
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 =
|
|
2572
|
-
w =
|
|
2573
|
-
/* @__PURE__ */ i("div", { className: "vsp vsp-portal", "data-theme": "dark", children: /* @__PURE__ */
|
|
2571
|
+
const v = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, p = f || 80, g = Math.max(v.l + 8, Math.min(v.r - p - 8, c.x - p / 2));
|
|
2572
|
+
w = pa(
|
|
2573
|
+
/* @__PURE__ */ i("div", { className: "vsp vsp-portal", "data-theme": "dark", children: /* @__PURE__ */ h("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
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
|
-
return /* @__PURE__ */
|
|
2580
|
+
return /* @__PURE__ */ h("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, g = o || p, b = o ? "1 1 0" : p ? "1 1 auto" : r && !l ? "1 1 0" : "0 0 auto", D = v.icon ??
|
|
2582
|
+
const p = e === v.key, g = o || p, b = o ? "1 1 0" : p ? "1 1 auto" : r && !l ? "1 1 0" : "0 0 auto", D = v.icon ?? hl[v.key], k = () => {
|
|
2583
2583
|
m(), n(r && p ? "none" : v.key);
|
|
2584
2584
|
};
|
|
2585
|
-
return r ? /* @__PURE__ */
|
|
2585
|
+
return r ? /* @__PURE__ */ h("button", { type: "button", role: "tab", "aria-selected": p, title: v.label, className: `tabbar__tab${p ? " is-on" : ""}`, style: { flex: b }, onClick: k, children: [
|
|
2586
2586
|
D && /* @__PURE__ */ i(ce, { d: D, size: 15, sw: v.sw ?? 2, style: { flex: "none" } }),
|
|
2587
2587
|
g && /* @__PURE__ */ i("span", { className: "tabbar__label", children: v.label })
|
|
2588
|
-
] }, v.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex: b }, onMouseEnter: (X) => N(X, v), onMouseMove: (X) => N(X, v), onClick: k, children: /* @__PURE__ */
|
|
2588
|
+
] }, v.key) : /* @__PURE__ */ i("div", { className: "tabbar__slot", "data-tab-cell": "", style: { flex: b }, onMouseEnter: (X) => N(X, v), onMouseMove: (X) => N(X, v), onClick: k, children: /* @__PURE__ */ h("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
2589
|
D && /* @__PURE__ */ i(ce, { d: D, size: 15, sw: v.sw ?? 2, className: "tabbar__icon", style: { flex: "none", transform: p && !o ? "scale(1.12)" : "none" } }),
|
|
2590
2590
|
/* @__PURE__ */ i("span", { className: "tabbar__grow", "data-tab-lw": "", style: { gridTemplateColumns: g ? "1fr" : "0fr", marginLeft: g && D ? 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);
|
|
@@ -2593,15 +2593,15 @@ function Ci({ tabs: t, current: e, onPick: n, gap: s, fold: r = !0, side: a = !r
|
|
|
2593
2593
|
w
|
|
2594
2594
|
] });
|
|
2595
2595
|
}
|
|
2596
|
-
const
|
|
2597
|
-
function
|
|
2596
|
+
const fl = "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3", Nl = "m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z";
|
|
2597
|
+
function pl({ audio: t, video: e, formats: n, onExport: s }) {
|
|
2598
2598
|
const [r, a] = O(null), [o, l] = O(null), c = j(void 0), d = j(!0);
|
|
2599
2599
|
_(() => (d.current = !0, () => {
|
|
2600
2600
|
d.current = !1, window.clearTimeout(c.current);
|
|
2601
2601
|
}), []);
|
|
2602
2602
|
const u = (m) => {
|
|
2603
2603
|
window.clearTimeout(c.current), a(m), c.current = window.setTimeout(() => a(null), 1600);
|
|
2604
|
-
},
|
|
2604
|
+
}, f = (m) => {
|
|
2605
2605
|
o || (l(m), Promise.resolve().then(() => s(m)).then(() => {
|
|
2606
2606
|
d.current && u(m);
|
|
2607
2607
|
}).catch(() => {
|
|
@@ -2615,30 +2615,30 @@ function ml({ audio: t, video: e, formats: n, onExport: s }) {
|
|
|
2615
2615
|
}).finally(() => {
|
|
2616
2616
|
d.current && l(null);
|
|
2617
2617
|
}));
|
|
2618
|
-
}, N = (m, w, v, p) => /* @__PURE__ */
|
|
2618
|
+
}, N = (m, w, v, p) => /* @__PURE__ */ h(Re, { children: [
|
|
2619
2619
|
/* @__PURE__ */ i(cs, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: p }),
|
|
2620
|
-
/* @__PURE__ */
|
|
2620
|
+
/* @__PURE__ */ h("button", { type: "button", className: "dlrow", disabled: o != null, "aria-busy": o === m || void 0, onClick: () => M(m, w), style: o && o !== m ? { opacity: 0.45 } : void 0, children: [
|
|
2621
2621
|
o === m ? /* @__PURE__ */ i(at, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(ce, { d: v, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
|
|
2622
|
-
/* @__PURE__ */
|
|
2622
|
+
/* @__PURE__ */ h("span", { style: { flex: 1, minWidth: 0, display: "flex", flexDirection: "column", gap: 1, textAlign: "left" }, children: [
|
|
2623
2623
|
/* @__PURE__ */ i("span", { style: { fontSize: 13, fontWeight: 500, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: w.name }),
|
|
2624
2624
|
/* @__PURE__ */ i("span", { style: { font: "500 9.5px var(--vs-font-mono)", color: "var(--ink-40)", letterSpacing: ".04em" }, children: w.meta })
|
|
2625
2625
|
] }),
|
|
2626
|
-
/* @__PURE__ */ i(ce, { d: r === m ? q.check :
|
|
2626
|
+
/* @__PURE__ */ i(ce, { d: r === m ? q.check : fl, size: 17, sw: 1.6, style: { flex: "none", color: r === m ? "var(--brand)" : "var(--ink-62)" } })
|
|
2627
2627
|
] })
|
|
2628
2628
|
] });
|
|
2629
|
-
return /* @__PURE__ */
|
|
2630
|
-
t && N("audio", t,
|
|
2629
|
+
return /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
|
|
2630
|
+
t && N("audio", t, Nl, "DOWNLOAD AUDIO"),
|
|
2631
2631
|
e && N("video", e, q.video, "DOWNLOAD VIDEO"),
|
|
2632
|
-
n !== !1 && /* @__PURE__ */
|
|
2632
|
+
n !== !1 && /* @__PURE__ */ h(Re, { children: [
|
|
2633
2633
|
/* @__PURE__ */ i(cs, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
|
|
2634
|
-
/* @__PURE__ */ i("div", { className: "fmtgrid", children: fs.map((m) => /* @__PURE__ */
|
|
2634
|
+
/* @__PURE__ */ i("div", { className: "fmtgrid", children: fs.map((m) => /* @__PURE__ */ h("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: () => f(m.key), style: o && o !== m.key ? { opacity: 0.45 } : void 0, children: [
|
|
2635
2635
|
o === m.key ? /* @__PURE__ */ i(at, { size: 16, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(ce, { 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)) })
|
|
2638
2638
|
] })
|
|
2639
2639
|
] });
|
|
2640
2640
|
}
|
|
2641
|
-
function
|
|
2641
|
+
function Ds(t, e, n) {
|
|
2642
2642
|
const s = () => {
|
|
2643
2643
|
var r;
|
|
2644
2644
|
(r = navigator.clipboard) == null || r.writeText(t).then(() => n == null ? void 0 : n(), () => {
|
|
@@ -2652,7 +2652,7 @@ function xs(t, e, n) {
|
|
|
2652
2652
|
}
|
|
2653
2653
|
s();
|
|
2654
2654
|
}
|
|
2655
|
-
function
|
|
2655
|
+
function ml(t, e, n) {
|
|
2656
2656
|
const [s, r] = O(null), a = t.state === "ready", o = `${e ?? ""}|${n ?? ""}|${a ? `${t.title}
|
|
2657
2657
|
${t.summary}` : ""}`, l = At();
|
|
2658
2658
|
return _(() => {
|
|
@@ -2669,12 +2669,12 @@ ${t.summary}` : ""}`, l = At();
|
|
|
2669
2669
|
};
|
|
2670
2670
|
}, [o, l]), !n || !a ? t : (s == null ? void 0 : s.key) === o ? s.s : { state: "pending", retry: t.retry };
|
|
2671
2671
|
}
|
|
2672
|
-
function
|
|
2672
|
+
function yl(t) {
|
|
2673
2673
|
return t != null && t.title && (t != null && t.summary) ? { state: "ready", title: t.title, summary: t.summary, retry: () => {
|
|
2674
2674
|
} } : { state: "unavailable", retry: () => {
|
|
2675
2675
|
} };
|
|
2676
2676
|
}
|
|
2677
|
-
function
|
|
2677
|
+
function Tl({ s: t }) {
|
|
2678
2678
|
const [e, n] = O(!1), s = j(void 0);
|
|
2679
2679
|
_(() => () => window.clearTimeout(s.current), []);
|
|
2680
2680
|
const r = t.title ?? "", a = t.summary ?? "", o = () => {
|
|
@@ -2683,48 +2683,48 @@ function wl({ s: t }) {
|
|
|
2683
2683
|
|
|
2684
2684
|
${a}`).catch(() => {
|
|
2685
2685
|
}), window.clearTimeout(s.current), n(!0), s.current = window.setTimeout(() => n(!1), 1600);
|
|
2686
|
-
}, l = (c, d) => /* @__PURE__ */
|
|
2686
|
+
}, l = (c, d) => /* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "center", gap: 10, fontSize: 13, fontWeight: 300, lineHeight: 1.45, color: "var(--ink-45)" }, children: [
|
|
2687
2687
|
/* @__PURE__ */ i("span", { style: { flex: 1 }, children: c }),
|
|
2688
2688
|
d && /* @__PURE__ */ i("button", { type: "button", className: "txlinks__manage", onClick: d.onClick, children: d.label })
|
|
2689
2689
|
] });
|
|
2690
|
-
return /* @__PURE__ */
|
|
2691
|
-
/* @__PURE__ */
|
|
2690
|
+
return /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: [
|
|
2691
|
+
/* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 8, minHeight: 24 }, children: [
|
|
2692
2692
|
/* @__PURE__ */ i(cs, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "SUMMARY" }),
|
|
2693
|
-
t.state === "ready" && /* @__PURE__ */
|
|
2694
|
-
/* @__PURE__ */ i(ce, { d: e ? q.check :
|
|
2693
|
+
t.state === "ready" && /* @__PURE__ */ h("button", { type: "button", className: "sumcopy", title: "Copy title and summary", style: { color: e ? "var(--brand)" : "var(--ink-70)" }, onClick: o, children: [
|
|
2694
|
+
/* @__PURE__ */ i(ce, { d: e ? q.check : kl, size: 13, sw: 1.6 }),
|
|
2695
2695
|
e ? "Copied" : "Copy"
|
|
2696
2696
|
] })
|
|
2697
2697
|
] }),
|
|
2698
|
-
t.state === "ready" ? /* @__PURE__ */
|
|
2698
|
+
t.state === "ready" ? /* @__PURE__ */ h(Re, { children: [
|
|
2699
2699
|
/* @__PURE__ */ i("div", { style: { fontSize: 15, fontWeight: 600, lineHeight: 1.3, letterSpacing: "-.15px", color: "var(--ink-96)", textWrap: "pretty" }, children: r }),
|
|
2700
2700
|
/* @__PURE__ */ i("div", { style: { fontSize: 13, fontWeight: 300, lineHeight: 1.55, color: "var(--ink-80)", textWrap: "pretty", whiteSpace: "pre-line" }, children: a })
|
|
2701
|
-
] }) : t.state === "unavailable" ? l("No summary for this recording.") : t.state === "not_requested" ? t.request ? l("This recording was made without a summary.", { label: "Summarize", onClick: t.request }) : l("Recordings under a minute and files of a batch are not summarised.") : /* @__PURE__ */
|
|
2701
|
+
] }) : t.state === "unavailable" ? l("No summary for this recording.") : t.state === "not_requested" ? t.request ? l("This recording was made without a summary.", { label: "Summarize", onClick: t.request }) : l("Recordings under a minute and files of a batch are not summarised.") : /* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "center", gap: 10, fontSize: 13, fontWeight: 300, color: "var(--ink-45)" }, children: [
|
|
2702
2702
|
/* @__PURE__ */ i(at, { size: 14, color: "var(--brand)", track: "var(--fill-12)" }),
|
|
2703
2703
|
t.slow ? "Still writing the summary…" : "Writing the summary…"
|
|
2704
2704
|
] })
|
|
2705
2705
|
] });
|
|
2706
2706
|
}
|
|
2707
|
-
function
|
|
2708
|
-
return /* @__PURE__ */
|
|
2707
|
+
function wl({ ytId: t, title: e, timeLabel: n, radius: s, style: r, large: a, children: o, picture: l }) {
|
|
2708
|
+
return /* @__PURE__ */ h("div", { className: "livevid", style: { ...s != null ? { borderRadius: s } : null, ...r }, children: [
|
|
2709
2709
|
/* @__PURE__ */ i(ce, { d: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", size: a ? 34 : 30, sw: 1.2 }),
|
|
2710
|
-
l ?? /* @__PURE__ */ i("iframe", { src:
|
|
2710
|
+
l ?? /* @__PURE__ */ i("iframe", { src: Wo(t), title: e, referrerPolicy: "strict-origin-when-cross-origin", allow: "autoplay; encrypted-media; picture-in-picture" }),
|
|
2711
2711
|
n && /* @__PURE__ */ i("span", { className: "livevid__t", style: a ? { bottom: 10, right: 10 } : void 0, children: n }),
|
|
2712
2712
|
o
|
|
2713
2713
|
] });
|
|
2714
2714
|
}
|
|
2715
|
-
function
|
|
2715
|
+
function Ll(t = !0, e) {
|
|
2716
2716
|
const n = j(null), s = e ?? n;
|
|
2717
2717
|
return _(() => {
|
|
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 = (f) => {
|
|
2722
|
+
f.button !== 0 || f.target.closest("button,a,input,textarea,select") || (l = !0, a = f.clientY, o = r.scrollTop, r.classList.add("is-dragging"));
|
|
2723
|
+
}, d = (f) => {
|
|
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 = f.clientY - a;
|
|
2727
|
+
Math.abs(M) > 2 && ((N = r.setPointerCapture) == null || N.call(r, f.pointerId)), r.scrollTop = o - M;
|
|
2728
2728
|
}, u = () => {
|
|
2729
2729
|
l = !1, r.classList.remove("is-dragging");
|
|
2730
2730
|
};
|
|
@@ -2733,9 +2733,9 @@ function kl(t = !0, e) {
|
|
|
2733
2733
|
};
|
|
2734
2734
|
}, [t]), s;
|
|
2735
2735
|
}
|
|
2736
|
-
const
|
|
2737
|
-
function
|
|
2738
|
-
const [n, s] =
|
|
2736
|
+
const kl = "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
|
+
function vl(t, e) {
|
|
2738
|
+
const [n, s] = Ra(t), r = e.tabs.map((g) => g.key), a = e.tabbed !== !1, o = e.pinnable ?? r;
|
|
2739
2739
|
let l = n;
|
|
2740
2740
|
[...e.autoPin ?? []].reverse().forEach((g) => {
|
|
2741
2741
|
r.includes(g) && !l.includes(g) && !l.includes(`!${g}`) && (l = [g, ...l]);
|
|
@@ -2744,9 +2744,9 @@ function jl(t, e) {
|
|
|
2744
2744
|
(e.forcePin ?? []).forEach((g) => {
|
|
2745
2745
|
l = l.filter((b) => b !== `!${g}`), r.includes(g) && !l.includes(g) && (l = [g, ...l]);
|
|
2746
2746
|
});
|
|
2747
|
-
const d = (g) => (e.forcePin ?? []).includes(g) && !c.includes(g), u = a ? l.filter((g) => r.includes(g) && o.includes(g)) : [],
|
|
2748
|
-
const b =
|
|
2749
|
-
return b[
|
|
2747
|
+
const d = (g) => (e.forcePin ?? []).includes(g) && !c.includes(g), u = a ? l.filter((g) => r.includes(g) && o.includes(g)) : [], f = r.filter((g) => !u.includes(g)), M = e.cur && e.cur !== "none" && f.includes(e.cur) ? e.cur : e.pref && f.includes(e.pref) ? e.pref : f[0] ?? null, N = (g) => {
|
|
2748
|
+
const b = f.filter((D) => D !== g);
|
|
2749
|
+
return b[f.indexOf(g)] ?? b[b.length - 1] ?? null;
|
|
2750
2750
|
}, m = (g, b) => {
|
|
2751
2751
|
if (!o.includes(g)) return;
|
|
2752
2752
|
const D = u.filter((k) => k !== g);
|
|
@@ -2766,31 +2766,31 @@ function jl(t, e) {
|
|
|
2766
2766
|
show: D && (!a || b || M === g),
|
|
2767
2767
|
pinned: b,
|
|
2768
2768
|
order: b ? u.indexOf(g) + 1 : 1e3,
|
|
2769
|
-
pill: a && D && o.includes(g) &&
|
|
2769
|
+
pill: a && D && o.includes(g) && f.length > 0 && (b || f.length > 1),
|
|
2770
2770
|
title: b ? `Unpin — return ${v(g)} to the tabs` : `Pin ${v(g)} open above the tabs`,
|
|
2771
2771
|
toggle: () => b ? w(g) : m(g)
|
|
2772
2772
|
};
|
|
2773
2773
|
};
|
|
2774
|
-
return { id: t, tabbed: a &&
|
|
2774
|
+
return { id: t, tabbed: a && f.length > 1, cur: M, seq: u, pinnable: o, tabKeys: f, stripTabs: e.tabs.filter((g) => f.includes(g.key)), panel: p, pin: m, unpin: w };
|
|
2775
2775
|
}
|
|
2776
|
-
function
|
|
2777
|
-
return
|
|
2776
|
+
function jl({ col: t, order: e, render: n, grip: s, onPick: r, wrapClass: a }) {
|
|
2777
|
+
return zl(t), /* @__PURE__ */ h(Re, { children: [
|
|
2778
2778
|
e.map((o) => {
|
|
2779
2779
|
const l = t.panel(o);
|
|
2780
2780
|
if (!l.show) return null;
|
|
2781
2781
|
const c = n(o);
|
|
2782
|
-
return c ? /* @__PURE__ */
|
|
2782
|
+
return c ? /* @__PURE__ */ h("div", { "data-panel-key": o, "data-pinned": l.pinned ? "true" : "false", className: `pinwrap sidepanel ${(a == null ? void 0 : a(o, l.pinned)) ?? ""}`, style: { order: l.order, "--grip-h": `${(s == null ? void 0 : s[o]) ?? 30}px` }, children: [
|
|
2783
2783
|
c,
|
|
2784
2784
|
l.pill && /* @__PURE__ */ i("button", { type: "button", "data-pin-pill": "", className: `pinpill${l.pinned ? " is-on" : ""}`, title: l.title, "aria-label": l.title, "aria-pressed": l.pinned, onClick: l.toggle, children: /* @__PURE__ */ i(ce, { d: q.pin, size: 12, sw: 2 }) })
|
|
2785
2785
|
] }, o) : null;
|
|
2786
2786
|
}),
|
|
2787
|
-
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(
|
|
2787
|
+
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(Oi, { tabs: t.stripTabs, current: t.cur, onPick: (o) => {
|
|
2788
2788
|
o !== "none" && (r ?? (() => {
|
|
2789
2789
|
}))(o);
|
|
2790
2790
|
}, fold: !1 }) })
|
|
2791
2791
|
] });
|
|
2792
2792
|
}
|
|
2793
|
-
function
|
|
2793
|
+
function zl(t) {
|
|
2794
2794
|
const e = j(t);
|
|
2795
2795
|
e.current = t;
|
|
2796
2796
|
const n = t.id;
|
|
@@ -2858,7 +2858,7 @@ function Il(t) {
|
|
|
2858
2858
|
}, u = (p) => {
|
|
2859
2859
|
const g = p instanceof Element ? p.closest("[data-tab-col]") : null;
|
|
2860
2860
|
return g && g.getAttribute("data-tab-col") === n ? g : null;
|
|
2861
|
-
},
|
|
2861
|
+
}, f = (p) => {
|
|
2862
2862
|
var A;
|
|
2863
2863
|
if (r) {
|
|
2864
2864
|
if (!r.on) {
|
|
@@ -2886,14 +2886,14 @@ function Il(t) {
|
|
|
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", f, !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", f, !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
|
}
|
|
2894
|
-
function
|
|
2895
|
-
const [o, l] =
|
|
2896
|
-
|
|
2894
|
+
function Il({ id: t, className: e, gap: n, hidden: s, plain: r, children: a }) {
|
|
2895
|
+
const [o, l] = Qa(t), c = j(null), d = j(null);
|
|
2896
|
+
Ol(d), _(() => {
|
|
2897
2897
|
document.documentElement.style.setProperty("--colw", `${o}px`);
|
|
2898
2898
|
}, [o]);
|
|
2899
2899
|
const u = (M) => {
|
|
@@ -2911,13 +2911,13 @@ function Ol({ id: t, className: e, gap: n, hidden: s, plain: r, children: a }) {
|
|
|
2911
2911
|
window.removeEventListener("pointermove", z), 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", z), window.addEventListener("pointerup", S), window.addEventListener("pointercancel", S);
|
|
2914
|
-
},
|
|
2915
|
-
return /* @__PURE__ */
|
|
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`, ...
|
|
2914
|
+
}, f = s ? { display: "none" } : void 0;
|
|
2915
|
+
return /* @__PURE__ */ h(Re, { children: [
|
|
2916
|
+
/* @__PURE__ */ i("div", { "aria-hidden": "true", className: "colgrip", style: { marginRight: -n, ...f }, 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`, ...f }, children: r ? a : /* @__PURE__ */ i("div", { ref: d, "data-panel-grid": "", className: "panelgrid", children: a }) })
|
|
2918
2918
|
] });
|
|
2919
2919
|
}
|
|
2920
|
-
function
|
|
2920
|
+
function Ol(t) {
|
|
2921
2921
|
_(() => {
|
|
2922
2922
|
const e = t.current;
|
|
2923
2923
|
if (!e) return;
|
|
@@ -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 f = u;
|
|
2931
2931
|
if (!d) {
|
|
2932
|
-
|
|
2932
|
+
f.style.gridRowEnd && (f.style.gridRowEnd = "");
|
|
2933
2933
|
return;
|
|
2934
2934
|
}
|
|
2935
|
-
const M =
|
|
2936
|
-
|
|
2935
|
+
const M = f.getBoundingClientRect().height, N = M > 0 ? `span ${Math.ceil(M + n)}` : "span 1";
|
|
2936
|
+
f.style.gridRowEnd !== N && (f.style.gridRowEnd = N);
|
|
2937
2937
|
});
|
|
2938
2938
|
}, a = () => {
|
|
2939
2939
|
s || (s = requestAnimationFrame(r));
|
|
@@ -2945,13 +2945,13 @@ function Cl(t) {
|
|
|
2945
2945
|
};
|
|
2946
2946
|
}, [t]);
|
|
2947
2947
|
}
|
|
2948
|
-
function
|
|
2948
|
+
function Cl(t) {
|
|
2949
2949
|
return /\bwas not captured\b/i.test(t ?? "");
|
|
2950
2950
|
}
|
|
2951
|
-
const
|
|
2952
|
-
function
|
|
2953
|
-
const e = At(), [n, s] = O(null), [r, a] = O(null), [o, l] = O(null), [c, d] = O(null), u = j(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),
|
|
2951
|
+
const bl = 1500, xl = 3e5;
|
|
2952
|
+
function Dl(t) {
|
|
2953
|
+
const e = At(), [n, s] = O(null), [r, a] = O(null), [o, l] = O(null), [c, d] = O(null), u = j(null), f = j(null), M = j(null), N = j(0), m = Xe(() => {
|
|
2954
|
+
M.current && (clearTimeout(M.current), M.current = null), u.current && (u.current.pause(), u.current.removeAttribute("src"), u.current.load(), u.current = null), f.current && (URL.revokeObjectURL(f.current), f.current = null);
|
|
2955
2955
|
}, []), w = Xe(() => {
|
|
2956
2956
|
N.current += 1, m(), a(null), l(null);
|
|
2957
2957
|
}, [m]), v = Xe(() => {
|
|
@@ -2981,13 +2981,13 @@ function Sl(t) {
|
|
|
2981
2981
|
}
|
|
2982
2982
|
if (N.current !== b) return;
|
|
2983
2983
|
if (A.status === 202 || A.status === 503) {
|
|
2984
|
-
if (Date.now() - k >
|
|
2984
|
+
if (Date.now() - k > xl) {
|
|
2985
2985
|
l(null), d({ message: "This voice is still being fetched. Try it again in a moment." });
|
|
2986
2986
|
return;
|
|
2987
2987
|
}
|
|
2988
2988
|
l(g.id), M.current = setTimeout(() => {
|
|
2989
2989
|
X();
|
|
2990
|
-
},
|
|
2990
|
+
}, bl);
|
|
2991
2991
|
return;
|
|
2992
2992
|
}
|
|
2993
2993
|
if (!A.ok) {
|
|
@@ -2998,8 +2998,8 @@ function Sl(t) {
|
|
|
2998
2998
|
}
|
|
2999
2999
|
const K = await A.blob();
|
|
3000
3000
|
if (N.current !== b) return;
|
|
3001
|
-
l(null),
|
|
3002
|
-
const z = new Audio(
|
|
3001
|
+
l(null), f.current = URL.createObjectURL(K);
|
|
3002
|
+
const z = new Audio(f.current);
|
|
3003
3003
|
z.playsInline = !0;
|
|
3004
3004
|
const S = () => {
|
|
3005
3005
|
N.current === b && (m(), a(null));
|
|
@@ -3012,13 +3012,13 @@ function Sl(t) {
|
|
|
3012
3012
|
}, [t, m, e]);
|
|
3013
3013
|
return { armId: n, sampleId: r, dlId: o, error: c, clearError: () => d(null), arm: p, stop: w, reset: v };
|
|
3014
3014
|
}
|
|
3015
|
-
const ms = 0.05,
|
|
3015
|
+
const ms = 0.05, Ci = (t, e) => {
|
|
3016
3016
|
let n = 0;
|
|
3017
3017
|
for (let s = 0; s < t.length; s++) t[s].start <= e + 1e-6 && (n = s);
|
|
3018
3018
|
return n;
|
|
3019
3019
|
};
|
|
3020
|
-
function
|
|
3021
|
-
const r = Math.max(0, e), a = s > 0 && r >= s - ms, o = t.length && t[0].start <= r + 1e-6 ?
|
|
3020
|
+
function Sl(t, e, n, s) {
|
|
3021
|
+
const r = Math.max(0, e), a = s > 0 && r >= s - ms, o = t.length && t[0].start <= r + 1e-6 ? Ci(t, r) : -1;
|
|
3022
3022
|
return o < 0 ? { t: r, playing: n && !a, sentenceId: null, offset: 0, ended: a } : { t: r, playing: n && !a, sentenceId: t[o].sentenceId ?? null, offset: Math.max(0, r - t[o].start), ended: a };
|
|
3023
3023
|
}
|
|
3024
3024
|
function Tn(t, e, n) {
|
|
@@ -3033,18 +3033,18 @@ function Tn(t, e, n) {
|
|
|
3033
3033
|
}
|
|
3034
3034
|
a = Math.max(0, Math.min(s, a));
|
|
3035
3035
|
const o = s > 0 && a >= s - ms && r < 0;
|
|
3036
|
-
return { t: a, playing: t.playing && !o, index: r >= 0 ? r :
|
|
3036
|
+
return { t: a, playing: t.playing && !o, index: r >= 0 ? r : Ci(e, a) };
|
|
3037
3037
|
}
|
|
3038
|
-
function
|
|
3038
|
+
function bi(t, e, n) {
|
|
3039
3039
|
var c;
|
|
3040
3040
|
const s = t[e], r = n && s.translations[n] && s.language !== n ? s.translations[n] : null;
|
|
3041
3041
|
if (!r && s.words.length) return s.words;
|
|
3042
|
-
const a = (r ?? s.text).split(/\s+/).filter(Boolean), o = ((c = s.words[0]) == null ? void 0 : c.start) ?? s.start, l =
|
|
3043
|
-
return
|
|
3042
|
+
const a = (r ?? s.text).split(/\s+/).filter(Boolean), o = ((c = s.words[0]) == null ? void 0 : c.start) ?? s.start, l = zi(s, t[e + 1], s.start + Math.max(2, a.length * 0.4));
|
|
3043
|
+
return Zo(a, o, l).map((d, u) => ({ ...d, seq: s.seqs[0] ?? 0, idx: u }));
|
|
3044
3044
|
}
|
|
3045
|
-
function
|
|
3045
|
+
function qr(t, e, n) {
|
|
3046
3046
|
if (!t.engaged || e !== t.idx || !n.length) return null;
|
|
3047
|
-
if (!t.wordSync) return t.clipPos ?
|
|
3047
|
+
if (!t.wordSync) return t.clipPos ? Mi(n.map((a) => ({ t: a.text, sp: " " })), t.clipPos) : null;
|
|
3048
3048
|
const s = t.t;
|
|
3049
3049
|
let r = -1;
|
|
3050
3050
|
for (let a = 0; a < n.length && n[a].start <= s; a++) r = a;
|
|
@@ -3062,7 +3062,7 @@ function St(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
|
|
3065
|
+
function Al({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: d, lead: u, onTime: f, waiting: M = !1 }) {
|
|
3066
3066
|
const N = j(null), [m, w] = O(!1);
|
|
3067
3067
|
_(() => {
|
|
3068
3068
|
if (!M) {
|
|
@@ -3095,9 +3095,9 @@ function El({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd:
|
|
|
3095
3095
|
} else L.current && !S.current && (L.current = !1, Ie.current || (Z = z.current) == null || Z.call(z));
|
|
3096
3096
|
}, E = j(n);
|
|
3097
3097
|
E.current = n;
|
|
3098
|
-
const ie = j(
|
|
3099
|
-
ie.current =
|
|
3100
|
-
const V = j(null), C = j(null), [de, H] = O(!
|
|
3098
|
+
const ie = j(f);
|
|
3099
|
+
ie.current = f;
|
|
3100
|
+
const V = j(null), C = j(null), [de, H] = O(!0), [G, oe] = O(!1), ne = () => {
|
|
3101
3101
|
D("unloadModule", ["captions"]), D("unloadModule", ["cc"]);
|
|
3102
3102
|
}, ae = j([]), Te = () => {
|
|
3103
3103
|
ne(), ae.current.forEach(clearTimeout), ae.current = [400, 1200, 2500, 5e3].map((P) => window.setTimeout(ne, P));
|
|
@@ -3140,7 +3140,7 @@ function El({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd:
|
|
|
3140
3140
|
}
|
|
3141
3141
|
(J = (Ee = Z == null ? void 0 : Z.info) == null ? void 0 : Ee.videoData) != null && J.isLive && (X.current = !0);
|
|
3142
3142
|
const ze = (se = Z == null ? void 0 : Z.info) == null ? void 0 : se.duration;
|
|
3143
|
-
typeof ze == "number" && ze > 0 && !X.current && (k.current == null ? k.current = ze : (A.current = Math.abs(ze - k.current) > 1.5, I())), (Z == null ? void 0 : Z.event) === "onReady" && ((!S.current || S.current.muted) && D("mute"), Te(), (fe = S.current) == null || fe.onInfo({ ready: !0 })), typeof ((ue = Z == null ? void 0 : Z.info) == null ? void 0 : ue.playerState) == "number" && (Z.info.playerState !== C.current && (Z.info.playerState === 1 || Z.info.playerState === 2) && Te(), C.current = Z.info.playerState, H(Z.info.playerState
|
|
3143
|
+
typeof ze == "number" && ze > 0 && !X.current && (k.current == null ? k.current = ze : (A.current = Math.abs(ze - k.current) > 1.5, I())), (Z == null ? void 0 : Z.event) === "onReady" && ((!S.current || S.current.muted) && D("mute"), Te(), (fe = S.current) == null || fe.onInfo({ ready: !0 })), typeof ((ue = Z == null ? void 0 : Z.info) == null ? void 0 : ue.playerState) == "number" && (Z.info.playerState !== C.current && (Z.info.playerState === 1 || Z.info.playerState === 2) && Te(), C.current = Z.info.playerState, H(Z.info.playerState !== 1 && Z.info.playerState !== 3), (le = S.current) == null || le.onInfo({ state: Z.info.playerState }));
|
|
3144
3144
|
const ve = (we = Z == null ? void 0 : Z.info) == null ? void 0 : we.progressState;
|
|
3145
3145
|
if (ve && typeof ve.seekableStart == "number" && typeof ve.seekableEnd == "number" && ve.seekableEnd > ve.seekableStart) {
|
|
3146
3146
|
const be = Ae.current == null;
|
|
@@ -3179,21 +3179,21 @@ function El({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd:
|
|
|
3179
3179
|
ve !== K.current && (K.current = ve, I());
|
|
3180
3180
|
}, 1e3);
|
|
3181
3181
|
return () => clearInterval(Z);
|
|
3182
|
-
}, [G]), /* @__PURE__ */
|
|
3182
|
+
}, [G]), /* @__PURE__ */ h("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
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${de && !g && !B ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(
|
|
3185
|
+
/* @__PURE__ */ i("div", { className: `txyt__paused${de && !g && !B ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(vs, { size: 44 }) }) }),
|
|
3186
3186
|
g && /* @__PURE__ */ i("div", { className: "txyt__ad", "aria-live": "polite", children: "Ad on YouTube · the transcript carries on after it" }),
|
|
3187
|
-
B && /* @__PURE__ */
|
|
3187
|
+
B && /* @__PURE__ */ h("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" })
|
|
3190
3190
|
] })
|
|
3191
3191
|
] });
|
|
3192
3192
|
}
|
|
3193
|
-
const
|
|
3193
|
+
const El = /* @__PURE__ */ h(Re, { children: [
|
|
3194
3194
|
/* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
|
|
3195
3195
|
/* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
3196
|
-
] }),
|
|
3196
|
+
] }), Yl = /* @__PURE__ */ i("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" });
|
|
3197
3197
|
function _l({ player: t, size: e }) {
|
|
3198
3198
|
const n = t.muted ? "Unmute" : "Mute";
|
|
3199
3199
|
return /* @__PURE__ */ i("button", { type: "button", className: `mutebtn${e < 36 ? " mutebtn--sm" : e > 36 ? " mutebtn--lg" : ""}`, "aria-label": n, title: n, "aria-pressed": t.muted, onClick: t.toggleMute, children: /* @__PURE__ */ i(ce, { d: t.muted ? q.volumeOff : q.volume, size: 17, sw: 1.6, style: { color: t.muted ? "var(--ink-38)" : "var(--ink-70)" } }) });
|
|
@@ -3211,10 +3211,10 @@ function $l(t, e) {
|
|
|
3211
3211
|
const s = j(0), r = j(1), a = Xe((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 f = l > 0 ? Math.min(1, (performance.now() - d) / l) : 1;
|
|
3215
|
+
r.current = c + (o - c) * f;
|
|
3216
3216
|
for (const M of n.current) M.setVolume(r.current);
|
|
3217
|
-
|
|
3217
|
+
f < 1 && (s.current = requestAnimationFrame(u));
|
|
3218
3218
|
};
|
|
3219
3219
|
u();
|
|
3220
3220
|
}, []);
|
|
@@ -3227,7 +3227,7 @@ function $l(t, e) {
|
|
|
3227
3227
|
}
|
|
3228
3228
|
function Bl(t, e, n, s) {
|
|
3229
3229
|
var Oe;
|
|
3230
|
-
const r = j(null), a = j(!1), o = j(!1), [l, c] = O(null), [d, u] = O(!0),
|
|
3230
|
+
const r = j(null), a = j(!1), o = j(!1), [l, c] = O(null), [d, u] = O(!0), f = j(!0), M = j(!1), [N, m] = O(0), w = j(0);
|
|
3231
3231
|
w.current = N;
|
|
3232
3232
|
const v = j({ t: 0, at: 0 }), p = j(n);
|
|
3233
3233
|
p.current = n;
|
|
@@ -3250,7 +3250,7 @@ function Bl(t, e, n, s) {
|
|
|
3250
3250
|
}
|
|
3251
3251
|
}
|
|
3252
3252
|
}), []);
|
|
3253
|
-
Q.muted =
|
|
3253
|
+
Q.muted = f.current || M.current, _(() => {
|
|
3254
3254
|
if (l !== 1) return;
|
|
3255
3255
|
let W = 0;
|
|
3256
3256
|
const B = () => {
|
|
@@ -3307,10 +3307,10 @@ function Bl(t, e, n, s) {
|
|
|
3307
3307
|
const B = t[Math.max(0, Math.min(t.length - 1, W))];
|
|
3308
3308
|
B && C(B.start);
|
|
3309
3309
|
}, Le = j(!1), Ae = () => {
|
|
3310
|
-
const W =
|
|
3310
|
+
const W = f.current || M.current;
|
|
3311
3311
|
Q.muted = W, A(W ? "mute" : "unMute");
|
|
3312
3312
|
}, me = (W) => {
|
|
3313
|
-
|
|
3313
|
+
f.current = W, u(W), Ae();
|
|
3314
3314
|
}, Ie = (W) => {
|
|
3315
3315
|
M.current !== !W && (M.current = !W, Ae());
|
|
3316
3316
|
};
|
|
@@ -3336,9 +3336,9 @@ function Bl(t, e, n, s) {
|
|
|
3336
3336
|
toggle: ae,
|
|
3337
3337
|
seekRow: Te,
|
|
3338
3338
|
toggleMute: () => {
|
|
3339
|
-
const W = !
|
|
3339
|
+
const W = !f.current;
|
|
3340
3340
|
me(W), !W && !M.current && z.current === 1 && setTimeout(() => {
|
|
3341
|
-
z.current === 2 && !
|
|
3341
|
+
z.current === 2 && !f.current && (me(!0), A("playVideo"));
|
|
3342
3342
|
}, 900);
|
|
3343
3343
|
},
|
|
3344
3344
|
seekFrac: (W) => C(Math.max(0, Math.min(1, W)) * I),
|
|
@@ -3370,8 +3370,8 @@ function Bl(t, e, n, s) {
|
|
|
3370
3370
|
}
|
|
3371
3371
|
function Hl(t, e, n, s, r = 0, a = null) {
|
|
3372
3372
|
var ee;
|
|
3373
|
-
const o = j(null), [l, c] = O(!1), [d, u] = O(0), [
|
|
3374
|
-
N.current =
|
|
3373
|
+
const o = j(null), [l, c] = O(!1), [d, u] = O(0), [f, M] = O(!1), N = j(f);
|
|
3374
|
+
N.current = f;
|
|
3375
3375
|
const m = j(!1), [w, v] = O(null), [p, g] = O(!1), b = j(r);
|
|
3376
3376
|
b.current = r;
|
|
3377
3377
|
const D = j(null), [k, X] = O(0);
|
|
@@ -3382,16 +3382,16 @@ function Hl(t, e, n, s, r = 0, a = null) {
|
|
|
3382
3382
|
c(!1), o.current = null;
|
|
3383
3383
|
return;
|
|
3384
3384
|
}
|
|
3385
|
-
const R =
|
|
3385
|
+
const R = ci(t), ge = b.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) + ge, y != null && y.playing && R.play().catch((P) => {
|
|
3388
3388
|
y.asked && (P == null ? void 0 : P.name) === "NotAllowedError" || v(kt(P));
|
|
3389
3389
|
});
|
|
3390
3390
|
}, R.onerror = () => {
|
|
3391
3391
|
c(!1);
|
|
3392
|
-
const P = R.error, pe =
|
|
3393
|
-
|
|
3394
|
-
|
|
3392
|
+
const P = R.error, pe = Sa(P, !1);
|
|
3393
|
+
Ca(t).then((Z) => {
|
|
3394
|
+
Cl(Z == null ? void 0 : Z.message) || oi(P), o.current === R && (v({ message: (Z == null ? void 0 : Z.message) ?? pe }), Z != null && Z.permanent || (o.current = null));
|
|
3395
3395
|
});
|
|
3396
3396
|
}, o.current = R, () => {
|
|
3397
3397
|
D.current = { t: Math.max(0, R.currentTime - ge), playing: !R.paused && !R.ended }, R.pause(), R.onplay = R.onpause = R.onended = R.onloadedmetadata = R.onerror = null, o.current = null;
|
|
@@ -3516,7 +3516,7 @@ function Hl(t, e, n, s, r = 0, a = null) {
|
|
|
3516
3516
|
t: d,
|
|
3517
3517
|
idx: C,
|
|
3518
3518
|
dur: z,
|
|
3519
|
-
muted:
|
|
3519
|
+
muted: f,
|
|
3520
3520
|
toggleMute: () => {
|
|
3521
3521
|
const y = !N.current;
|
|
3522
3522
|
N.current = y, o.current && (o.current.muted = y || m.current), M(y);
|
|
@@ -3563,7 +3563,7 @@ 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 = j(/* @__PURE__ */ new Set());
|
|
3565
3565
|
c.current = l ?? c.current;
|
|
3566
|
-
const d = j(null), [u,
|
|
3566
|
+
const d = j(null), [u, f] = O(!1), [M, N] = O(0), [m, w] = O(0), [v, p] = O(!1), g = j(v);
|
|
3567
3567
|
g.current = v;
|
|
3568
3568
|
const [b, D] = O(null), [k, X] = O(null), [A, K] = O(null), [z, S] = O(null), Q = j(z);
|
|
3569
3569
|
Q.current = z;
|
|
@@ -3577,11 +3577,11 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3577
3577
|
Le.current = a;
|
|
3578
3578
|
const Ae = Xe((Y) => {
|
|
3579
3579
|
Y.finite = !0, Y.coming = (U) => c.current.has(U), Y.readAhead = 6, Y.readAheadS = 45, Y.onWaiting = (U) => X(U), Y.onStarting = (U) => K(U), Y.onSentence = (U) => {
|
|
3580
|
-
if (
|
|
3580
|
+
if (f(Y.playing), U == null) return;
|
|
3581
3581
|
const F = G.current.findIndex((te) => te.sentenceId === U);
|
|
3582
3582
|
F >= 0 && N(F);
|
|
3583
3583
|
}, Y.onError = (U) => {
|
|
3584
|
-
|
|
3584
|
+
f(Y.playing), D(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
|
}, Y.gapBefore = (U, F) => {
|
|
3586
3586
|
if (!oe.current) return 0;
|
|
3587
3587
|
const te = G.current, he = te.find((xe) => xe.sentenceId === U), be = te.find((xe) => xe.sentenceId === F);
|
|
@@ -3614,7 +3614,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3614
3614
|
var F;
|
|
3615
3615
|
if (me.current !== s) {
|
|
3616
3616
|
const te = me.current != null ? Ie.current : null;
|
|
3617
|
-
me.current = s, (F = d.current) == null || F.stop(), d.current = new us(), Ae(d.current), d.current.setSequence(ne.current),
|
|
3617
|
+
me.current = s, (F = d.current) == null || F.stop(), d.current = new us(), Ae(d.current), d.current.setSequence(ne.current), f(!1), N(0), D(null), K(null), S(null), B(te && (te.playing || te.t > 0) ? te : null);
|
|
3618
3618
|
}
|
|
3619
3619
|
const Y = d.current;
|
|
3620
3620
|
Y.setMuted(g.current);
|
|
@@ -3660,11 +3660,11 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3660
3660
|
Ee.current = M;
|
|
3661
3661
|
const J = (Y) => {
|
|
3662
3662
|
var U, F, te;
|
|
3663
|
-
(F = d.current) == null || F.play(((U = e[Y]) == null ? void 0 : U.sentenceId) ?? null),
|
|
3663
|
+
(F = d.current) == null || F.play(((U = e[Y]) == null ? void 0 : U.sentenceId) ?? null), f(!!((te = d.current) != null && te.playing));
|
|
3664
3664
|
}, se = (Y) => {
|
|
3665
3665
|
var F, te, he;
|
|
3666
3666
|
const U = Math.max(0, Math.min(Math.max(0, e.length - 1), Y));
|
|
3667
|
-
N(U), Ee.current = U, w((be) => be + 1), (te = d.current) == null || te.seek(((F = e[U]) == null ? void 0 : F.sentenceId) ?? null),
|
|
3667
|
+
N(U), Ee.current = U, w((be) => be + 1), (te = d.current) == null || te.seek(((F = e[U]) == null ? void 0 : F.sentenceId) ?? null), f(!!((he = d.current) != null && he.playing));
|
|
3668
3668
|
}, fe = (Y) => {
|
|
3669
3669
|
var U;
|
|
3670
3670
|
ee(), S(null), (U = d.current) == null || U.startWithin(-1, 0), se(Y);
|
|
@@ -3674,7 +3674,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3674
3674
|
return { from: F, span: Math.max(0, te - F) };
|
|
3675
3675
|
}, le = ue(Z), we = Math.max(0, Math.min(le.span, St(e[Z], le.from, le.from + 4) - le.from)), Pe = z ? z.t : o ? E != null && de ? le.from + Math.min(le.span, E) : E != null ? V != null ? Math.min(le.from, V + E) : le.from + Math.min(le.span, we + E) : L && L.dur > 0 ? le.from + Math.min(we, L.t / L.dur * we) : le.from : L && L.dur > 0 ? le.from + Math.min(le.span, L.t / L.dur * le.span) : le.from;
|
|
3676
3676
|
_(() => {
|
|
3677
|
-
Ie.current = _e.current ??
|
|
3677
|
+
Ie.current = _e.current ?? Sl(e, Pe, u, ve);
|
|
3678
3678
|
});
|
|
3679
3679
|
const Ce = {
|
|
3680
3680
|
playing: u || He,
|
|
@@ -3707,24 +3707,24 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3707
3707
|
return;
|
|
3708
3708
|
}
|
|
3709
3709
|
if (ee(), u) {
|
|
3710
|
-
(U = d.current) == null || U.pause(),
|
|
3710
|
+
(U = d.current) == null || U.pause(), f(!1);
|
|
3711
3711
|
return;
|
|
3712
3712
|
}
|
|
3713
3713
|
D(null);
|
|
3714
3714
|
const Y = Ee.current;
|
|
3715
3715
|
if (!Q.current && ((te = d.current) != null && te.resume(((F = e[Y]) == null ? void 0 : F.sentenceId) ?? null))) {
|
|
3716
|
-
|
|
3716
|
+
f(!0);
|
|
3717
3717
|
return;
|
|
3718
3718
|
}
|
|
3719
3719
|
J(Y);
|
|
3720
3720
|
},
|
|
3721
3721
|
pause: () => {
|
|
3722
3722
|
var Y;
|
|
3723
|
-
ee(), (Y = d.current) == null || Y.pause(),
|
|
3723
|
+
ee(), (Y = d.current) == null || Y.pause(), f(!1);
|
|
3724
3724
|
},
|
|
3725
3725
|
stop: () => {
|
|
3726
3726
|
var Y, U, F;
|
|
3727
|
-
ee(), (Y = d.current) == null || Y.pause(),
|
|
3727
|
+
ee(), (Y = d.current) == null || Y.pause(), f(!1), N(0), I(null), (F = d.current) == null || F.seek(((U = e[0]) == null ? void 0 : U.sentenceId) ?? null);
|
|
3728
3728
|
},
|
|
3729
3729
|
seekRow: fe,
|
|
3730
3730
|
resumeAt: (Y) => {
|
|
@@ -3795,7 +3795,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3795
3795
|
if (U == null) return;
|
|
3796
3796
|
N(Y), Ee.current = Y, S(null), Q.current = null, (he = d.current) == null || he.joinSilently(U);
|
|
3797
3797
|
const F = ((be = d.current) == null ? void 0 : be.resting()) ?? null;
|
|
3798
|
-
ie((F == null ? void 0 : F.s) ?? null), H(!!(F != null && F.silent)),
|
|
3798
|
+
ie((F == null ? void 0 : F.s) ?? null), H(!!(F != null && F.silent)), f(!!((ye = d.current) != null && ye.playing));
|
|
3799
3799
|
}
|
|
3800
3800
|
return Ce.joinAt = o ? (Y) => {
|
|
3801
3801
|
ee(), Se(Tn({ t: Y, playing: !0, sentenceId: null, offset: 0, ended: !1 }, e, ve).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: f, hearOriginal: M = !1, timed: N = !1, stockVoices: m = !1, stickyPicker: w = !1, pickerBusy: v = null, voiceSheet: p, forcedVoice: g = null }) {
|
|
3815
3815
|
var sn, rn, Ft, Gt;
|
|
3816
|
-
const { onAddVoice: b, onPickVoice: D, onSelectSpeaker: k, noCloneFor: X, castNoClone: A, castShort: K, castBuilding: z, castWarn: S, badge: Q, titleNode: L } = p ?? {}, I = !!p, E = !!(p != null && p.pendingClones), [ie, V] =
|
|
3816
|
+
const { onAddVoice: b, onPickVoice: D, onSelectSpeaker: k, noCloneFor: X, castNoClone: A, castShort: K, castBuilding: z, castWarn: S, badge: Q, titleNode: L } = p ?? {}, I = !!p, E = !!(p != null && p.pendingClones), [ie, V] = hi(), [C, de] = O(null), [H, G] = O(!1), [oe, ne] = O(!1), [ae, Te] = O(!1), [Le, Ae] = O(!1), me = d ?? l, Ie = d === null, _e = d != null || C != null, Oe = (($) => !!$ && !!(o != null && o.voice.includes($)))(Ie ? l : me) ? Ie ? l : me : "en", W = Dl(Oe), B = (p == null ? void 0 : p.cloneOn) ?? !0, [ee, y] = O(0), R = j(B);
|
|
3817
3817
|
_(() => {
|
|
3818
3818
|
R.current !== B && (R.current = B, y(($) => $ + 1));
|
|
3819
3819
|
}, [B]);
|
|
3820
|
-
const ge =
|
|
3821
|
-
const $ =
|
|
3820
|
+
const ge = dl(Oe, _e || r || oe, Ml(e) * 1e3 + ee, { id: t ?? null, shareCode: a.shareCode ?? null }), P = je(() => ((ge == null ? void 0 : ge.voices) ?? []).filter(($) => I || !$.cloned || $.speaker != null), [ge, I]), pe = P.length > 1, Z = ps(o, me), ze = vi(), ve = je(() => fi(o, "translation"), [o]), [$e, Ee] = O(null), [J] = O(() => /* @__PURE__ */ new Set()), [se, fe] = O({}), ue = je(() => al(n, e, ze.vcUnknownSpk), [n, e, ze]), le = pe && ue.filter(($) => $.key >= 0).length > 1, we = $e != null && ue.some(($) => $.key === $e) ? $e : ((sn = ue[0]) == null ? void 0 : sn.key) ?? null, Pe = je(() => {
|
|
3821
|
+
const $ = Gr(ue, P, B);
|
|
3822
3822
|
for (const [De, Fe] of Object.entries(se[Oe ?? ""] ?? {})) $.set(Number(De), Fe);
|
|
3823
3823
|
return $;
|
|
3824
|
-
}, [ue, P, se, Oe, B]), Ce = le && Object.keys(se[Oe ?? ""] ?? {}).length > 0, Se = je(() => m && !Ce ?
|
|
3824
|
+
}, [ue, P, se, Oe, B]), Ce = le && Object.keys(se[Oe ?? ""] ?? {}).length > 0, Se = je(() => m && !Ce ? Gr(ue, P, !1) : null, [m, Ce, ue, P]), Y = je(() => Ce ? Wr(Pe) || null : Se && Wr(Se) || null, [Ce, Pe, Se]), U = Ce ? Pe : Se, F = P.some(($) => $.cloned && $.consent !== "pending"), te = !!me && !!(o != null && o.voice.includes(me)), he = te && !M, be = je(
|
|
3825
3825
|
() => n.filter(($) => !$.suppressed && !$.unclear).map(($) => $.sentenceId).filter(($) => $ != null),
|
|
3826
3826
|
[n]
|
|
3827
|
-
), ye =
|
|
3827
|
+
), ye = gl({ recordingId: t, lang: me, ended: r, cred: a, pickedVoice: g || (Y ?? C), sentenceIds: r && he ? be : void 0 }), ke = P.find(($) => $.id === C) ?? P.find(($) => {
|
|
3828
3828
|
var De;
|
|
3829
3829
|
return $.id === ((De = ye.track) == null ? void 0 : De.voice);
|
|
3830
3830
|
}) ?? P.find(($) => $.default) ?? P[0] ?? null, xe = (ke == null ? void 0 : ke.id) ?? null;
|
|
@@ -3854,7 +3854,7 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3854
3854
|
}, Ve = () => G(!0), mt = () => {
|
|
3855
3855
|
G(!1), ne(ae), Te(!1);
|
|
3856
3856
|
}, Mt = ($) => {
|
|
3857
|
-
if (u($), V($), !((
|
|
3857
|
+
if (u($), V($), !((f || w) && !ae)) {
|
|
3858
3858
|
if ($ != null) {
|
|
3859
3859
|
mt();
|
|
3860
3860
|
return;
|
|
@@ -3884,7 +3884,7 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3884
3884
|
return;
|
|
3885
3885
|
}
|
|
3886
3886
|
de($);
|
|
3887
|
-
}, it = Ie ? { ...ps(o, null), flag: /* @__PURE__ */ i(ce, { d: q.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : Z, In = c ?
|
|
3887
|
+
}, it = Ie ? { ...ps(o, null), flag: /* @__PURE__ */ i(ce, { d: q.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : Z, In = c ? f ? /* @__PURE__ */ i("span", { className: "barchip", style: Ot ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(Ln, { flag: it.flag, code: it.code, bordered: !1, onClick: en, style: Zr }) }) : /* @__PURE__ */ i(Ln, { flag: it.flag, code: it.code, bordered: !1, onClick: Ve, style: Zr }) : null, tn = q.voiceClone, Ke = _e && (!!ye.track || st), gt = ot ? "var(--conf-low)" : Ke || f && x ? "var(--brand)" : "var(--ink-55)", Ct = st || !!Be.preparing && _e, yt = Be.preparing ? `Speaking this line in ${(ke == null ? void 0 : ke.name) ?? "this voice"}…` : st ? `Preparing this recording in ${(ke == null ? void 0 : ke.name) ?? "this voice"} — it will play as soon as it is ready` : ot ? `This voice could not be prepared: ${ot}` : te ? pe ? "Choose a voice" : ke ? ke.name : ze.vcNoVoice + Z.label : `${ze.vcNoVoice}${Z.label}`, Tt = /* @__PURE__ */ i($a, { open: H, onClose: mt, keepOpen: (!!f || w) && !ae, value: Ie ? null : me, onSelect: Mt, languages: ve, title: (f == null ? void 0 : f.title) ?? "SPOKEN LANGUAGE", note: (f == null ? void 0 : f.note) ?? Fl, searchPlaceholder: ze.search, none: "Original", pinned: (Ie ? l : me) ? [Ie ? l : me] : [], recent: ie, requireVoice: ae, sticky: w, busy: v }), Yt = je(() => P.filter(($) => $.cloned && !$.auto), [P]), bt = ($) => $.voiceId ? Yt.find((De) => De.id === `clone:${$.voiceId}`) ?? null : null, ct = je(() => ue.filter(($) => $.key >= 0), [ue]), Ht = je(() => {
|
|
3888
3888
|
const $ = P.filter((Fe) => !Fe.cloned);
|
|
3889
3889
|
if (!le) return [...$, ...r && ct.length === 1 ? Yt.filter((Fe) => Fe.id === `clone:${ct[0].voiceId}`) : []];
|
|
3890
3890
|
const De = [];
|
|
@@ -3897,15 +3897,15 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3897
3897
|
}, [P, Yt, le, ct, E, r]), rt = le ? ct.find(($) => $.key === we) ?? null : null, jt = ($) => {
|
|
3898
3898
|
var De;
|
|
3899
3899
|
return $ ? ((De = P.find((Fe) => Fe.id === $)) == null ? void 0 : De.gender) ?? null : null;
|
|
3900
|
-
}, qe = rt ? rt.sex ?? jt(Pe.get(rt.key)) : null, _t = je(() => rt ? Ht.filter(($) => $.cloned ? $.live ? $.speaker === rt.key : $.id === `clone:${rt.voiceId}` : !0) : Ht, [Ht, rt, qe, ct]), Vt = ($) => P.find((De) => De.cloned && De.auto && De.speaker === $) ?? null, ht = { people: ct, gvList: P, autoOf: Vt, savedFor: bt }, Je = (Q == null ? void 0 : Q(ht)) ?? 0, Wt = S ? ct.map(($) => S($, ht)).filter(($) => !!$) : [], xt = /* @__PURE__ */
|
|
3900
|
+
}, qe = rt ? rt.sex ?? jt(Pe.get(rt.key)) : null, _t = je(() => rt ? Ht.filter(($) => $.cloned ? $.live ? $.speaker === rt.key : $.id === `clone:${rt.voiceId}` : !0) : Ht, [Ht, rt, qe, ct]), Vt = ($) => P.find((De) => De.cloned && De.auto && De.speaker === $) ?? null, ht = { people: ct, gvList: P, autoOf: Vt, savedFor: bt }, Je = (Q == null ? void 0 : Q(ht)) ?? 0, Wt = S ? ct.map(($) => S($, ht)).filter(($) => !!$) : [], xt = /* @__PURE__ */ h("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": f ? x : void 0, title: Ct || ot ? yt : void 0, style: { cursor: "pointer", background: Ke || Ct || f && x ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: f && x ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: f ? vt : Bt, children: [
|
|
3901
3901
|
Ct ? /* @__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(ce, { d: tn, size: 17, sw: 1.6, style: { color: gt } }),
|
|
3902
3902
|
Wt.length > 0 ? /* @__PURE__ */ i("span", { className: "txvoice__warn", title: Wt.join(" · "), children: "!" }) : !!Je && /* @__PURE__ */ i("span", { className: "txvoice__n", title: `${Je} speaker${Je === 1 ? "" : "s"} can get a cloned voice`, children: Je })
|
|
3903
3903
|
] }), nn = /* @__PURE__ */ i($t, { open: oe, onClose: re, title: ze.vcSheet, titleNode: L, doneLabel: ze.done, children: /* @__PURE__ */ i(
|
|
3904
|
-
|
|
3904
|
+
ll,
|
|
3905
3905
|
{
|
|
3906
3906
|
t: ze,
|
|
3907
3907
|
cast: le && /* @__PURE__ */ i(
|
|
3908
|
-
|
|
3908
|
+
ol,
|
|
3909
3909
|
{
|
|
3910
3910
|
t: ze,
|
|
3911
3911
|
roster: ue,
|
|
@@ -3948,12 +3948,12 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3948
3948
|
},
|
|
3949
3949
|
onUse: Et
|
|
3950
3950
|
}
|
|
3951
|
-
) }), On =
|
|
3951
|
+
) }), On = f ? null : /* @__PURE__ */ h(Re, { children: [
|
|
3952
3952
|
Tt,
|
|
3953
3953
|
nn
|
|
3954
|
-
] }), zt =
|
|
3954
|
+
] }), zt = f && (H || oe) ? /* @__PURE__ */ i("div", { className: "vs-side", children: H ? Tt : nn }) : null, Cn = We && ot ? `This voice could not be prepared: ${ot}` : null, bn = dt;
|
|
3955
3955
|
return {
|
|
3956
|
-
barChip: { flag: it.flag, code: it.code, label: it.label, onClick:
|
|
3956
|
+
barChip: { flag: it.flag, code: it.code, label: it.label, onClick: f || w ? en : Ve, active: !!((f || w) && Ot), can: c },
|
|
3957
3957
|
sheetsOpen: H || oe,
|
|
3958
3958
|
on: We,
|
|
3959
3959
|
player: lt,
|
|
@@ -4002,11 +4002,11 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
4002
4002
|
langList: { value: Ie ? null : me, onSelect: Mt, languages: ve, searchPlaceholder: ze.search, none: "Original", pinned: (Ie ? l : me) ? [Ie ? l : me] : [], recent: ie }
|
|
4003
4003
|
};
|
|
4004
4004
|
}
|
|
4005
|
-
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:
|
|
4005
|
+
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: f = !0, tail: M, tailFg: N, running: m, desk: w, feedRef: v, listener: p, showLabels: g, find: b, findOpen: D, lang: k, warm: X, onVisible: A, wordHl: K = !0 }) {
|
|
4006
4006
|
const { playing: z, engaged: S, t: Q, idx: L, seekN: I, wordSync: E, clipPos: ie } = n;
|
|
4007
|
-
|
|
4007
|
+
Ll(!0, v);
|
|
4008
4008
|
const V = j(null);
|
|
4009
|
-
|
|
4009
|
+
qo(v, V);
|
|
4010
4010
|
const [C, de] = O(null), H = (b ?? "").trim().toLowerCase(), [G, oe] = O(0), ne = j(0), ae = j(null), Te = j(L), Le = (B) => {
|
|
4011
4011
|
var ee;
|
|
4012
4012
|
return ((ee = v.current) == null ? void 0 : ee.querySelector(`[data-tx-row="${B}"]`)) ?? null;
|
|
@@ -4079,33 +4079,33 @@ function ql({ model: t, rows: e, player: n, fixed: s, applied: r, onFixOpen: a,
|
|
|
4079
4079
|
}, [I]);
|
|
4080
4080
|
const Oe = () => {
|
|
4081
4081
|
_e(L), He.current = 0, oe(0);
|
|
4082
|
-
}, W = (B) => /* @__PURE__ */ i("div", { className: `txfollow txfollow--${B}`, children: /* @__PURE__ */
|
|
4082
|
+
}, W = (B) => /* @__PURE__ */ i("div", { className: `txfollow txfollow--${B}`, children: /* @__PURE__ */ h("button", { type: "button", className: "txfollow__pill", title: "Jump to the line playing now", onClick: Oe, children: [
|
|
4083
4083
|
/* @__PURE__ */ i(ce, { d: B === "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 }),
|
|
4084
4084
|
"Now playing"
|
|
4085
4085
|
] }) });
|
|
4086
|
-
return /* @__PURE__ */
|
|
4087
|
-
/* @__PURE__ */ i(
|
|
4086
|
+
return /* @__PURE__ */ h("div", { ref: v, "data-tx-feed": "1", className: `txfeed${w ? " txfeed--desk" : ""}${D && !m ? " is-find" : ""}`, children: [
|
|
4087
|
+
/* @__PURE__ */ i(Ko, { thumbRef: V }),
|
|
4088
4088
|
z && G === -1 && W("up"),
|
|
4089
4089
|
e.map((B, ee) => {
|
|
4090
4090
|
var le;
|
|
4091
4091
|
const y = z && ee === L, R = S && ee === L, ge = !!d && d === B.id, P = H && !B.text.toLowerCase().includes(H) && !(k && ((le = B.translations[k]) != null && le.toLowerCase().includes(H))) ? 0.22 : !S || ee <= L || ge ? 1 : 0.38, pe = p ? () => n.playRow(ee) : c && l ? () => {
|
|
4092
4092
|
z && !y && n.seekRow(ee), l(B);
|
|
4093
|
-
} : z && y ? void 0 : () => n.playRow(ee), Z = p ? null :
|
|
4094
|
-
return /* @__PURE__ */
|
|
4095
|
-
/* @__PURE__ */
|
|
4093
|
+
} : z && y ? void 0 : () => n.playRow(ee), Z = p ? null : el(B, r, s), ze = !!Z && (Z.script > 0 || Z.manual), ve = w && !!a && C === B.id && !!Z && !ze, $e = Os(t, B.speaker), Ee = Cs(t, B.speaker), J = Ee.lane, se = k && B.translations[k] && B.language !== k ? B.translations[k] : null, fe = bi(e, ee, k), ue = R && !E && ie ? Mi(fe.map((we) => ({ t: we.text, sp: " " })), ie) : null;
|
|
4094
|
+
return /* @__PURE__ */ h("div", { "data-tx-row": ee, "data-sentence": B.sentenceId, className: `txline${X ? " txline--warm" : ""}${ge ? " txline--fixing" : ""}`, "aria-current": ge || void 0, style: { opacity: P }, onClick: pe, onMouseEnter: w && a ? () => de(B.id) : void 0, onMouseLeave: w && a ? () => de(null) : void 0, children: [
|
|
4095
|
+
/* @__PURE__ */ h("div", { className: "txline__meta", children: [
|
|
4096
4096
|
/* @__PURE__ */ i("span", { className: "txline__at", children: Lt(B.start) }),
|
|
4097
|
-
g && B.speaker >= 0 && /* @__PURE__ */
|
|
4098
|
-
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${J}`, style: Ee.soft ? { background: Ee.soft, color: Ee.fg } : void 0, children:
|
|
4097
|
+
g && B.speaker >= 0 && /* @__PURE__ */ h(Re, { children: [
|
|
4098
|
+
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${J}`, style: Ee.soft ? { background: Ee.soft, color: Ee.fg } : void 0, children: mi(t, B.speaker) }),
|
|
4099
4099
|
/* @__PURE__ */ i("span", { className: `txline__who lane-${J}`, style: Ee.fg ? { color: Ee.fg } : void 0, children: $e }),
|
|
4100
|
-
Ee.hasVoice && /* @__PURE__ */ i(
|
|
4100
|
+
Ee.hasVoice && /* @__PURE__ */ i(Ii, { color: Ee.fg ?? `var(--lane-${J})` })
|
|
4101
4101
|
] }),
|
|
4102
4102
|
y && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(ce, { d: q.headphones, size: w ? 15 : 14, sw: 1.6, stroke: g && B.speaker >= 0 ? Ee.fg ?? `var(--lane-${J})` : "var(--ink-45)" }) }),
|
|
4103
|
-
Z &&
|
|
4104
|
-
ve && /* @__PURE__ */ i(
|
|
4103
|
+
Z && f && /* @__PURE__ */ i(tl, { f: Z, desk: w, onOpen: a ? () => a(B, !0) : void 0 }),
|
|
4104
|
+
ve && /* @__PURE__ */ i(nl, { alone: !0, onOpen: () => a == null ? void 0 : a(B, !1) })
|
|
4105
4105
|
] }),
|
|
4106
4106
|
/* @__PURE__ */ i("div", { className: "txline__text", children: fe.map((we, Pe) => {
|
|
4107
|
-
const Ce = `${we.seq}:${we.idx}`, Se =
|
|
4108
|
-
return /* @__PURE__ */
|
|
4107
|
+
const Ce = `${we.seq}:${we.idx}`, Se = wo(we.prob), Y = R && K, U = Y && (E ? Q >= we.start && (Q < we.end || Pe === fe.length - 1 || Q < fe[Pe + 1].start) : Pe === ue), F = Y && !U && (E ? we.start > Q : ue != null && Pe > ue), te = !se && !p && (!!(s != null && s.has(Ce)) || !!we.script), he = !se && !p && u && !!Se && !te, be = he ? Se === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, ye = te ? "var(--brand)" : F ? "var(--ink-40)" : be ?? "var(--ink-96)";
|
|
4108
|
+
return /* @__PURE__ */ h("span", { children: [
|
|
4109
4109
|
/* @__PURE__ */ i(
|
|
4110
4110
|
"span",
|
|
4111
4111
|
{
|
|
@@ -4132,7 +4132,7 @@ function ql({ model: t, rows: e, player: n, fixed: s, applied: r, onFixOpen: a,
|
|
|
4132
4132
|
}) })
|
|
4133
4133
|
] }, B.id);
|
|
4134
4134
|
}),
|
|
4135
|
-
m ? /* @__PURE__ */ i("div", { className: "txtail txtail--wave", title: "Still transcribing", children: /* @__PURE__ */
|
|
4135
|
+
m ? /* @__PURE__ */ i("div", { className: "txtail txtail--wave", title: "Still transcribing", children: /* @__PURE__ */ h("span", { className: "eq3", "aria-hidden": "true", children: [
|
|
4136
4136
|
/* @__PURE__ */ i("span", {}),
|
|
4137
4137
|
/* @__PURE__ */ i("span", {}),
|
|
4138
4138
|
/* @__PURE__ */ i("span", {})
|
|
@@ -4141,13 +4141,13 @@ function ql({ model: t, rows: e, player: n, fixed: s, applied: r, onFixOpen: a,
|
|
|
4141
4141
|
] });
|
|
4142
4142
|
}
|
|
4143
4143
|
function Kl({ open: t, q: e, onQ: n, onClose: s, hits: r, desk: a, inline: o, flash: l }) {
|
|
4144
|
-
return /* @__PURE__ */ i("div", { className: o ? "searchbar searchbar--inline" : `searchbar searchbar--float${a ? " searchbar--desk" : ""}${t ? "" : " is-hidden"}`, children: /* @__PURE__ */
|
|
4144
|
+
return /* @__PURE__ */ i("div", { className: o ? "searchbar searchbar--inline" : `searchbar searchbar--float${a ? " searchbar--desk" : ""}${t ? "" : " is-hidden"}`, children: /* @__PURE__ */ h("div", { children: [
|
|
4145
4145
|
/* @__PURE__ */ i(ce, { d: q.search, size: 16, sw: 1.7, style: { color: "var(--ink-45)", flex: "none" } }),
|
|
4146
4146
|
/* @__PURE__ */ i("input", { value: e, onChange: (c) => n(c.target.value), onKeyDown: (c) => {
|
|
4147
4147
|
c.key === "Escape" && (c.stopPropagation(), e ? n("") : s());
|
|
4148
4148
|
}, placeholder: "Search this transcript" }),
|
|
4149
4149
|
o && l && /* @__PURE__ */ i("span", { className: "searchbar__flash", children: l }),
|
|
4150
|
-
e.trim() && /* @__PURE__ */
|
|
4150
|
+
e.trim() && /* @__PURE__ */ h("span", { className: "count", children: [
|
|
4151
4151
|
r,
|
|
4152
4152
|
" found"
|
|
4153
4153
|
] }),
|
|
@@ -4165,14 +4165,14 @@ function Jl(t, e, n, s, r) {
|
|
|
4165
4165
|
}, [e, d]), _(() => {
|
|
4166
4166
|
const u = t.current;
|
|
4167
4167
|
if (!u) return;
|
|
4168
|
-
let
|
|
4168
|
+
let f = u.scrollTop, M = 0, N = 0;
|
|
4169
4169
|
const m = () => {
|
|
4170
4170
|
N = Date.now() + 1500;
|
|
4171
4171
|
}, w = (p) => {
|
|
4172
4172
|
p.buttons && m();
|
|
4173
4173
|
}, v = () => {
|
|
4174
|
-
const p = u.scrollTop, g = p -
|
|
4175
|
-
if (
|
|
4174
|
+
const p = u.scrollTop, g = p - f;
|
|
4175
|
+
if (f = p, Date.now() > N) {
|
|
4176
4176
|
M = 0;
|
|
4177
4177
|
return;
|
|
4178
4178
|
}
|
|
@@ -4184,7 +4184,7 @@ function Jl(t, e, n, s, r) {
|
|
|
4184
4184
|
}, []), l;
|
|
4185
4185
|
}
|
|
4186
4186
|
const Xt = { formatBits: 0, perBlock: [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28], blocks: [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49] };
|
|
4187
|
-
function
|
|
4187
|
+
function xi(t) {
|
|
4188
4188
|
let e = (16 * t + 128) * t + 64;
|
|
4189
4189
|
if (t >= 2) {
|
|
4190
4190
|
const n = Math.floor(t / 7) + 2;
|
|
@@ -4192,7 +4192,7 @@ function Di(t) {
|
|
|
4192
4192
|
}
|
|
4193
4193
|
return e;
|
|
4194
4194
|
}
|
|
4195
|
-
const Kr = (t) => Math.floor(
|
|
4195
|
+
const Kr = (t) => Math.floor(xi(t) / 8) - Xt.perBlock[t] * Xt.blocks[t];
|
|
4196
4196
|
function ys(t, e) {
|
|
4197
4197
|
let n = 0;
|
|
4198
4198
|
for (let s = 7; s >= 0; s--)
|
|
@@ -4240,16 +4240,16 @@ function nc(t) {
|
|
|
4240
4240
|
for (let L = 236; a.length < r; L ^= 253) o(L, 8);
|
|
4241
4241
|
const l = [];
|
|
4242
4242
|
for (let L = 0; L < a.length; L += 8) l.push(a.slice(L, L + 8).reduce((I, E) => I << 1 | E, 0));
|
|
4243
|
-
const c = Xt.blocks[n], d = Xt.perBlock[n], u = Math.floor(
|
|
4243
|
+
const c = Xt.blocks[n], d = Xt.perBlock[n], u = Math.floor(xi(n) / 8), f = c - u % c, M = Math.floor(u / c), N = [], m = Xl(d);
|
|
4244
4244
|
for (let L = 0, I = 0; L < c; L++) {
|
|
4245
|
-
const E = l.slice(I, I + M - d + (L <
|
|
4245
|
+
const E = l.slice(I, I + M - d + (L < f ? 0 : 1));
|
|
4246
4246
|
I += E.length;
|
|
4247
4247
|
const ie = ec(E, m);
|
|
4248
|
-
L <
|
|
4248
|
+
L < f && E.push(0), N.push(E.concat(ie));
|
|
4249
4249
|
}
|
|
4250
4250
|
const w = [];
|
|
4251
4251
|
for (let L = 0; L < N[0].length; L++) N.forEach((I, E) => {
|
|
4252
|
-
(L !== M - d || E >=
|
|
4252
|
+
(L !== M - d || E >= f) && w.push(I[L]);
|
|
4253
4253
|
});
|
|
4254
4254
|
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) => {
|
|
4255
4255
|
v[I][L] = E, p[I][L] = !0;
|
|
@@ -4357,14 +4357,14 @@ function sc(t) {
|
|
|
4357
4357
|
const a = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${-s} ${-s} ${n + s * 2} ${n + s * 2}" shape-rendering="crispEdges"><rect x="${-s}" y="${-s}" width="${n + s * 2}" height="${n + s * 2}" fill="#fff"/><path fill="#111" d="${r}"/></svg>`;
|
|
4358
4358
|
return `data:image/svg+xml,${encodeURIComponent(a)}`;
|
|
4359
4359
|
}
|
|
4360
|
-
const
|
|
4360
|
+
const Di = "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15", rc = "M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25";
|
|
4361
4361
|
function is() {
|
|
4362
4362
|
const t = document;
|
|
4363
4363
|
return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
|
|
4364
4364
|
}
|
|
4365
|
-
let
|
|
4365
|
+
let Ss = null;
|
|
4366
4366
|
function Jr(t) {
|
|
4367
|
-
|
|
4367
|
+
Ss = t;
|
|
4368
4368
|
}
|
|
4369
4369
|
function Xr() {
|
|
4370
4370
|
const t = document;
|
|
@@ -4373,7 +4373,7 @@ function Xr() {
|
|
|
4373
4373
|
function ic() {
|
|
4374
4374
|
var e;
|
|
4375
4375
|
if (typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches)) return !1;
|
|
4376
|
-
const t =
|
|
4376
|
+
const t = Ss ?? document.documentElement;
|
|
4377
4377
|
return !t.requestFullscreen && !t.webkitRequestFullscreen;
|
|
4378
4378
|
}
|
|
4379
4379
|
function Kt(t) {
|
|
@@ -4383,7 +4383,7 @@ function Kt(t) {
|
|
|
4383
4383
|
function wn(t) {
|
|
4384
4384
|
var r, a, o, l;
|
|
4385
4385
|
if (typeof document > "u") return;
|
|
4386
|
-
const e = document, n =
|
|
4386
|
+
const e = document, n = Ss ?? document.documentElement, s = e.fullscreenElement ?? e.webkitFullscreenElement;
|
|
4387
4387
|
try {
|
|
4388
4388
|
t && !s && ((a = (r = n.requestFullscreen ?? n.webkitRequestFullscreen) == null ? void 0 : r.call(n, { navigationUI: "hide" })) == null || a.catch(() => {
|
|
4389
4389
|
})), !t && s && ((l = (o = e.exitFullscreen ?? e.webkitExitFullscreen) == null ? void 0 : o.call(e)) == null || l.catch(() => {
|
|
@@ -4413,7 +4413,7 @@ function Ts({ pos: t, interactive: e, axis: n = "x" }) {
|
|
|
4413
4413
|
const d = a(c);
|
|
4414
4414
|
r(null), t.onSeek(d);
|
|
4415
4415
|
}, l = s != null ? s * 100 : t.pct;
|
|
4416
|
-
return /* @__PURE__ */
|
|
4416
|
+
return /* @__PURE__ */ h(Re, { children: [
|
|
4417
4417
|
/* @__PURE__ */ i("span", { className: `gfull__t${e ? " gfull__t--at" : ""}`, children: s != null ? t.labelAt(s) : t.atLabel }),
|
|
4418
4418
|
/* @__PURE__ */ i(
|
|
4419
4419
|
"div",
|
|
@@ -4433,7 +4433,7 @@ function Ts({ pos: t, interactive: e, axis: n = "x" }) {
|
|
|
4433
4433
|
} : void 0,
|
|
4434
4434
|
onPointerUp: e ? o : void 0,
|
|
4435
4435
|
onPointerCancel: e ? () => r(null) : void 0,
|
|
4436
|
-
children: /* @__PURE__ */
|
|
4436
|
+
children: /* @__PURE__ */ h("div", { className: `gfull__track${t.readyFrac != null ? " gfull__track--part" : ""}`, children: [
|
|
4437
4437
|
t.readyFrac != null && /* @__PURE__ */ i("div", { className: "gfull__ready", style: { width: `${Math.min(100, t.readyFrac * 100)}%` } }),
|
|
4438
4438
|
/* @__PURE__ */ i("div", { style: { width: `${l}%`, background: (s == null ? t.atEdge : t.edgeFrac != null && s >= t.edgeFrac) ? "#ec634d" : "#55abe5", transition: s != null ? "none" : void 0 } }),
|
|
4439
4439
|
/* @__PURE__ */ i("i", { style: { left: `${l}%`, transition: s != null ? "none" : void 0 } })
|
|
@@ -4452,8 +4452,8 @@ function Vc({ pos: t }) {
|
|
|
4452
4452
|
const c = s(l);
|
|
4453
4453
|
n(null), t.onSeek(c);
|
|
4454
4454
|
}, a = e != null ? e * 100 : t.pct, o = e != null ? "none" : void 0;
|
|
4455
|
-
return /* @__PURE__ */
|
|
4456
|
-
/* @__PURE__ */
|
|
4455
|
+
return /* @__PURE__ */ h("div", { className: "gaseek", children: [
|
|
4456
|
+
/* @__PURE__ */ h(
|
|
4457
4457
|
"div",
|
|
4458
4458
|
{
|
|
4459
4459
|
className: "gaseek__bar",
|
|
@@ -4478,14 +4478,14 @@ function Vc({ pos: t }) {
|
|
|
4478
4478
|
]
|
|
4479
4479
|
}
|
|
4480
4480
|
),
|
|
4481
|
-
/* @__PURE__ */
|
|
4481
|
+
/* @__PURE__ */ h("div", { className: "gaseek__labels", children: [
|
|
4482
4482
|
/* @__PURE__ */ i("span", { className: "gaseek__t", children: e != null ? t.labelAt(e) : t.atLabel }),
|
|
4483
4483
|
/* @__PURE__ */ i("span", { className: "gaseek__t gaseek__end", children: t.endLabel })
|
|
4484
4484
|
] })
|
|
4485
4485
|
] });
|
|
4486
4486
|
}
|
|
4487
4487
|
function ws({ t, mini: e }) {
|
|
4488
|
-
return /* @__PURE__ */
|
|
4488
|
+
return /* @__PURE__ */ h("div", { className: "gfull__transport", children: [
|
|
4489
4489
|
/* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Previous line", title: "Previous line", style: { opacity: t.prevOn ? 1 : 0.3 }, onClick: t.onPrev, children: /* @__PURE__ */ i(ce, { d: q.chevronLeft, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) }),
|
|
4490
4490
|
/* @__PURE__ */ i(
|
|
4491
4491
|
"button",
|
|
@@ -4497,47 +4497,47 @@ function ws({ t, mini: e }) {
|
|
|
4497
4497
|
disabled: !t.playable,
|
|
4498
4498
|
style: { background: t.playable ? t.playing ? "rgba(238,240,248,.92)" : "var(--brand)" : "rgba(5,6,21,.42)", color: t.playable ? t.playing ? "#131326" : "var(--brand-ink)" : "rgba(234,236,250,.5)", cursor: t.playable ? "pointer" : "default" },
|
|
4499
4499
|
onClick: t.onPlay,
|
|
4500
|
-
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(
|
|
4500
|
+
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(va, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(vs, { size: e ? 15 : 19 })
|
|
4501
4501
|
}
|
|
4502
4502
|
),
|
|
4503
4503
|
/* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Next line", title: "Next line", style: { opacity: t.nextOn ? 1 : 0.3 }, onClick: t.onNext, children: /* @__PURE__ */ i(ce, { d: q.chevronRight, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) })
|
|
4504
4504
|
] });
|
|
4505
4505
|
}
|
|
4506
4506
|
function Ls({ live: t, mini: e, desk: n, pct: s, mark: r }) {
|
|
4507
|
-
return /* @__PURE__ */
|
|
4508
|
-
/* @__PURE__ */ i("a", { href: ri, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: r ? /* @__PURE__ */ i(
|
|
4509
|
-
t && /* @__PURE__ */
|
|
4507
|
+
return /* @__PURE__ */ h("div", { className: `gfull__brand${r ? " gfull__brand--mark" : ""}`, children: [
|
|
4508
|
+
/* @__PURE__ */ i("a", { href: ri, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: r ? /* @__PURE__ */ i(ii, { dark: !0, size: 22 }) : /* @__PURE__ */ i(jn, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
|
|
4509
|
+
t && /* @__PURE__ */ h("span", { className: "gfull__live", children: [
|
|
4510
4510
|
/* @__PURE__ */ i("i", {}),
|
|
4511
4511
|
"LIVE"
|
|
4512
4512
|
] }),
|
|
4513
4513
|
s != null && /* @__PURE__ */ i("span", { className: "gfull__txpct", title: "Still being transcribed: it plays as far as it is written", children: `TRANSCRIBING ${s}%` })
|
|
4514
4514
|
] });
|
|
4515
4515
|
}
|
|
4516
|
-
function
|
|
4516
|
+
function Si({ v: t, size: e }) {
|
|
4517
4517
|
return /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Voices", title: t.title, disabled: !t.on, style: { opacity: t.on ? 1 : 0.45, cursor: t.on ? "pointer" : "default" }, onClick: t.on ? t.onClick : void 0, children: /* @__PURE__ */ i(ce, { d: q.headphones, size: e, sw: 1.6 }) });
|
|
4518
4518
|
}
|
|
4519
4519
|
function oc({ pos: t, transport: e, chip: n, voices: s, onShare: r, onFull: a, copied: o }) {
|
|
4520
|
-
return /* @__PURE__ */
|
|
4520
|
+
return /* @__PURE__ */ h("div", { className: "gmini", "data-theme": "dark", children: [
|
|
4521
4521
|
/* @__PURE__ */ i("div", { className: "gmini__shade", "aria-hidden": "true" }),
|
|
4522
4522
|
/* @__PURE__ */ i("div", { className: "gmini__top", children: /* @__PURE__ */ i(Ls, { live: t.live, mini: !0 }) }),
|
|
4523
|
-
/* @__PURE__ */
|
|
4523
|
+
/* @__PURE__ */ h("div", { className: "gmini__foot", children: [
|
|
4524
4524
|
/* @__PURE__ */ i("div", { className: "gmini__row", children: /* @__PURE__ */ i(Ts, { pos: t, interactive: !0 }) }),
|
|
4525
|
-
/* @__PURE__ */
|
|
4525
|
+
/* @__PURE__ */ h("div", { className: "gmini__row gmini__row--ctl", children: [
|
|
4526
4526
|
/* @__PURE__ */ i(ws, { t: e, mini: !0 }),
|
|
4527
4527
|
/* @__PURE__ */ i("span", { style: { flex: 1 } }),
|
|
4528
4528
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: n }),
|
|
4529
|
-
/* @__PURE__ */ i(
|
|
4529
|
+
/* @__PURE__ */ i(Si, { v: s, size: 14 }),
|
|
4530
4530
|
r && /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Share", title: "Share", onClick: (l) => {
|
|
4531
4531
|
l.stopPropagation(), r();
|
|
4532
4532
|
}, children: /* @__PURE__ */ i(ce, { d: q.share, size: 13, sw: 1.8 }) }),
|
|
4533
|
-
/* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(ce, { d:
|
|
4533
|
+
/* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(ce, { d: Di, size: 14, sw: 1.8 }) })
|
|
4534
4534
|
] })
|
|
4535
4535
|
] }),
|
|
4536
4536
|
o
|
|
4537
4537
|
] });
|
|
4538
4538
|
}
|
|
4539
4539
|
const lc = { color: "rgba(255,255,255,.4)" };
|
|
4540
|
-
function
|
|
4540
|
+
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: f, chip: M, transport: N, picker: m, sheet: w, voices: v, voicesBtn: p, sheetOpen: g, onShare: b, onSettings: D, paused: k, copied: X, onTouch: A, onClose: K }) {
|
|
4541
4541
|
const [z, S] = O(() => !!is());
|
|
4542
4542
|
_(() => {
|
|
4543
4543
|
const J = () => S(!!is());
|
|
@@ -4633,42 +4633,42 @@ function Ei({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos:
|
|
|
4633
4633
|
R(!0), window.clearTimeout(ge.current), ge.current = window.setTimeout(() => R(!1), 1800);
|
|
4634
4634
|
}, () => {
|
|
4635
4635
|
});
|
|
4636
|
-
}, ze = Ae && (k == null ? void 0 : k.share) && /* @__PURE__ */
|
|
4636
|
+
}, ze = Ae && (k == null ? void 0 : k.share) && /* @__PURE__ */ h("div", { className: "gfull__sharecard", onPointerDown: (J) => J.stopPropagation(), onClick: (J) => J.stopPropagation(), children: [
|
|
4637
4637
|
pe && /* @__PURE__ */ i("div", { className: "gfull__shareqr", role: "img", "aria-label": "QR code for this link", style: { backgroundImage: `url("${pe}")` } }),
|
|
4638
|
-
/* @__PURE__ */
|
|
4638
|
+
/* @__PURE__ */ h("div", { className: "gfull__sharebody", children: [
|
|
4639
4639
|
/* @__PURE__ */ i("div", { className: "gfull__shareeyebrow", children: "SHARE THIS MOMENT" }),
|
|
4640
|
-
/* @__PURE__ */
|
|
4640
|
+
/* @__PURE__ */ h("label", { className: "gfull__shareat", children: [
|
|
4641
4641
|
/* @__PURE__ */ i("input", { type: "checkbox", checked: B, onChange: (J) => ee(J.target.checked), disabled: k.share.at < 1 }),
|
|
4642
4642
|
"Start at ",
|
|
4643
4643
|
Lt(Math.floor(k.share.at))
|
|
4644
4644
|
] }),
|
|
4645
4645
|
/* @__PURE__ */ i("div", { className: "gfull__shareurl", children: /* @__PURE__ */ i("span", { children: P.replace(/^https?:\/\//, "") }) }),
|
|
4646
|
-
/* @__PURE__ */
|
|
4647
|
-
/* @__PURE__ */
|
|
4646
|
+
/* @__PURE__ */ h("div", { className: "gfull__shareacts", children: [
|
|
4647
|
+
/* @__PURE__ */ h("button", { type: "button", className: "gfull__sharebtn gfull__sharebtn--main", onClick: Z, children: [
|
|
4648
4648
|
/* @__PURE__ */ i(ce, { d: y ? q.check : q.copy, size: 14, sw: 1.8 }),
|
|
4649
4649
|
y ? "Copied" : "Copy link"
|
|
4650
4650
|
] }),
|
|
4651
|
-
/* @__PURE__ */
|
|
4651
|
+
/* @__PURE__ */ h("button", { type: "button", className: "gfull__sharebtn", onClick: () => Ds(P, s), children: [
|
|
4652
4652
|
/* @__PURE__ */ i(ce, { d: q.share, size: 14, sw: 1.6 }),
|
|
4653
4653
|
"Share"
|
|
4654
4654
|
] })
|
|
4655
4655
|
] })
|
|
4656
4656
|
] })
|
|
4657
|
-
] }), ve = (J, se, fe, ue, le, we = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: J, "aria-label": J, onClick: ue, children: /* @__PURE__ */ i(ce, { d: se, size: (Ae ? 20 : 18) + we, sw: fe, style: le }) }), $e = /* @__PURE__ */
|
|
4658
|
-
p && /* @__PURE__ */ i(
|
|
4657
|
+
] }), ve = (J, se, fe, ue, le, we = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: J, "aria-label": J, onClick: ue, children: /* @__PURE__ */ i(ce, { d: se, size: (Ae ? 20 : 18) + we, sw: fe, style: le }) }), $e = /* @__PURE__ */ h("div", { className: "gfull__acts", children: [
|
|
4658
|
+
p && /* @__PURE__ */ i(Si, { v: p, size: Ae ? 20 : 18 }),
|
|
4659
4659
|
b && ve("Share", q.share, 1.6, b),
|
|
4660
|
-
Xr() && !t && ve(z ? "Exit full screen" : "Full screen", z ? rc :
|
|
4660
|
+
Xr() && !t && ve(z ? "Exit full screen" : "Full screen", z ? rc : Di, 1.7, () => wn(!z)),
|
|
4661
4661
|
K && ve("Close player", q.close, 1.7, K)
|
|
4662
|
-
] }), Ee = (d || u || D) && /* @__PURE__ */
|
|
4662
|
+
] }), Ee = (d || u || D) && /* @__PURE__ */ h("div", { className: "gfull__top", children: [
|
|
4663
4663
|
d && ve(d.muted ? "Unmute" : "Mute", d.muted ? q.volumeOff : q.volume, 1.6, d.onToggle),
|
|
4664
4664
|
u && ve(u.on ? "Hide subtitles" : "Show subtitles", u.on ? q.cc : q.ccOff, 1.7, u.onToggle, void 0, 4),
|
|
4665
4665
|
D && ve("Settings", q.cog, 1.6, D)
|
|
4666
4666
|
] });
|
|
4667
|
-
return /* @__PURE__ */
|
|
4667
|
+
return /* @__PURE__ */ h(
|
|
4668
4668
|
"div",
|
|
4669
4669
|
{
|
|
4670
4670
|
ref: ae,
|
|
4671
|
-
className: `gfull${Ae ? " gfull--desk" : ""}${de ? " gfull--swipe" : ""}${
|
|
4671
|
+
className: `gfull${Ae ? " gfull--desk" : ""}${de ? " gfull--swipe" : ""}${f ? " gfull--ad" : ""}${I ? " gfull--calm" : ""}`,
|
|
4672
4672
|
"data-theme": "dark",
|
|
4673
4673
|
role: "dialog",
|
|
4674
4674
|
"aria-label": s,
|
|
@@ -4681,15 +4681,15 @@ function Ei({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos:
|
|
|
4681
4681
|
C.current && (C.current = !1, J.stopPropagation(), J.preventDefault());
|
|
4682
4682
|
},
|
|
4683
4683
|
children: [
|
|
4684
|
-
de && H && /* @__PURE__ */
|
|
4684
|
+
de && H && /* @__PURE__ */ h("div", { className: "gfull__swipe", "aria-live": "polite", children: [
|
|
4685
4685
|
/* @__PURE__ */ i(ce, { d: "m4.5 15.75 7.5-7.5 7.5 7.5", size: 14, sw: 2 }),
|
|
4686
4686
|
"Swipe up for full screen"
|
|
4687
4687
|
] }),
|
|
4688
|
-
/* @__PURE__ */
|
|
4688
|
+
/* @__PURE__ */ h("div", { className: `gfull__frame${He ? " gfull__frame--land" : ""}`, children: [
|
|
4689
4689
|
n,
|
|
4690
4690
|
/* @__PURE__ */ i("div", { className: "gfull__shade", "aria-hidden": "true" }),
|
|
4691
|
-
k && !
|
|
4692
|
-
/* @__PURE__ */
|
|
4691
|
+
k && !f && /* @__PURE__ */ h("div", { className: `gfull__pausedinfo${N.playing ? "" : " gfull__pausedinfo--on"}`, "aria-hidden": N.playing, children: [
|
|
4692
|
+
/* @__PURE__ */ h("div", { className: "gfull__pausedtext", children: [
|
|
4693
4693
|
/* @__PURE__ */ i("div", { className: "gfull__pausedtitle", children: k.title }),
|
|
4694
4694
|
k.summary && /* @__PURE__ */ i("div", { className: "gfull__pausedsum", children: k.summary })
|
|
4695
4695
|
] }),
|
|
@@ -4697,13 +4697,13 @@ function Ei({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos:
|
|
|
4697
4697
|
] }),
|
|
4698
4698
|
Ee,
|
|
4699
4699
|
X,
|
|
4700
|
-
l ? typeof l == "string" ? /* @__PURE__ */ i("div", { className: "gfull__sub", "aria-live": "polite", children: /* @__PURE__ */
|
|
4700
|
+
l ? typeof l == "string" ? /* @__PURE__ */ i("div", { className: "gfull__sub", "aria-live": "polite", children: /* @__PURE__ */ h("div", { className: "gfull__wait", children: [
|
|
4701
4701
|
/* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }),
|
|
4702
4702
|
l
|
|
4703
|
-
] }) }) : /* @__PURE__ */ i("div", { className: "gfull__sub", children: l }) : o && /* @__PURE__ */ i("div", { className: "gfull__sub", children: /* @__PURE__ */
|
|
4704
|
-
/* @__PURE__ */ i("div", { className: "gfull__subback", "aria-hidden": "true", children: /* @__PURE__ */
|
|
4705
|
-
o.who && /* @__PURE__ */
|
|
4706
|
-
/* @__PURE__ */
|
|
4703
|
+
] }) }) : /* @__PURE__ */ i("div", { className: "gfull__sub", children: l }) : o && /* @__PURE__ */ i("div", { className: "gfull__sub", children: /* @__PURE__ */ h("div", { ref: Oe, children: [
|
|
4704
|
+
/* @__PURE__ */ i("div", { className: "gfull__subback", "aria-hidden": "true", children: /* @__PURE__ */ h("span", { children: [
|
|
4705
|
+
o.who && /* @__PURE__ */ h(Re, { children: [
|
|
4706
|
+
/* @__PURE__ */ h("b", { children: [
|
|
4707
4707
|
o.who,
|
|
4708
4708
|
":"
|
|
4709
4709
|
] }),
|
|
@@ -4711,32 +4711,32 @@ function Ei({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos:
|
|
|
4711
4711
|
] }),
|
|
4712
4712
|
o.words.map((J) => J.t + J.sp).join("")
|
|
4713
4713
|
] }) }),
|
|
4714
|
-
/* @__PURE__ */
|
|
4715
|
-
o.who && /* @__PURE__ */
|
|
4716
|
-
/* @__PURE__ */
|
|
4714
|
+
/* @__PURE__ */ h("span", { children: [
|
|
4715
|
+
o.who && /* @__PURE__ */ h(Re, { children: [
|
|
4716
|
+
/* @__PURE__ */ h("b", { style: { color: o.color }, children: [
|
|
4717
4717
|
o.who,
|
|
4718
4718
|
":"
|
|
4719
4719
|
] }),
|
|
4720
4720
|
" "
|
|
4721
4721
|
] }),
|
|
4722
|
-
o.words.map((J, se) => /* @__PURE__ */
|
|
4722
|
+
o.words.map((J, se) => /* @__PURE__ */ h("span", { "data-said": J.dim ? void 0 : "", "data-at": o.cursor != null && se <= o.cursor ? "" : void 0, style: J.dim ? lc : void 0, children: [
|
|
4723
4723
|
J.t,
|
|
4724
4724
|
J.sp
|
|
4725
4725
|
] }, se))
|
|
4726
4726
|
] })
|
|
4727
4727
|
] }) }),
|
|
4728
|
-
/* @__PURE__ */ i("div", { className: `gfull__prog${Ae ? "" : " gfull__prog--two"}`, children: Ae ? /* @__PURE__ */
|
|
4728
|
+
/* @__PURE__ */ i("div", { className: `gfull__prog${Ae ? "" : " gfull__prog--two"}`, children: Ae ? /* @__PURE__ */ h(Re, { children: [
|
|
4729
4729
|
/* @__PURE__ */ i(Ls, { live: a.live, desk: !0, pct: c }),
|
|
4730
4730
|
/* @__PURE__ */ i(ws, { t: N }),
|
|
4731
4731
|
/* @__PURE__ */ i(Ts, { pos: a, interactive: !0 }),
|
|
4732
4732
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: M }),
|
|
4733
4733
|
$e
|
|
4734
|
-
] }) : /* @__PURE__ */
|
|
4735
|
-
/* @__PURE__ */
|
|
4734
|
+
] }) : /* @__PURE__ */ h(Re, { children: [
|
|
4735
|
+
/* @__PURE__ */ h("div", { className: "gfull__row", children: [
|
|
4736
4736
|
/* @__PURE__ */ i(Ls, { live: a.live, pct: c, mark: !0 }),
|
|
4737
4737
|
/* @__PURE__ */ i(Ts, { pos: a, interactive: !0 })
|
|
4738
4738
|
] }),
|
|
4739
|
-
/* @__PURE__ */
|
|
4739
|
+
/* @__PURE__ */ h("div", { className: "gfull__row", children: [
|
|
4740
4740
|
/* @__PURE__ */ i(ws, { t: N }),
|
|
4741
4741
|
/* @__PURE__ */ i("span", { style: { flex: 1 } }),
|
|
4742
4742
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: M }),
|
|
@@ -4752,17 +4752,17 @@ function Ei({ noFull: t = !1, page: e = !0, picture: n, title: s, desk: r, pos:
|
|
|
4752
4752
|
);
|
|
4753
4753
|
}
|
|
4754
4754
|
function cc({ dark: t, back: e, home: n, live: s, title: r, badge: a, subline: o, onOptions: l, optionsActive: c }) {
|
|
4755
|
-
return /* @__PURE__ */
|
|
4755
|
+
return /* @__PURE__ */ h("div", { className: "ghead", children: [
|
|
4756
4756
|
e && /* @__PURE__ */ i("button", { type: "button", className: "ghead__back", "aria-label": "Back", title: "Back", onClick: e, children: /* @__PURE__ */ i(ce, { d: q.chevronLeft, size: 19, sw: 1.7 }) }),
|
|
4757
|
-
s && /* @__PURE__ */ i("span", { className: "mark", children: /* @__PURE__ */ i(
|
|
4758
|
-
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ i("div", { className: "ghead__logo", children: /* @__PURE__ */ i(jn, { dark: t, height: 22 }) }) : /* @__PURE__ */
|
|
4759
|
-
/* @__PURE__ */
|
|
4757
|
+
s && /* @__PURE__ */ i("span", { className: "mark", children: /* @__PURE__ */ i(ii, { dark: t, size: 30 }) }),
|
|
4758
|
+
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ i("div", { className: "ghead__logo", children: /* @__PURE__ */ i(jn, { dark: t, height: 22 }) }) : /* @__PURE__ */ h("div", { className: "ghead__title", onClick: e, title: e ? "Back" : void 0, style: { cursor: e ? "pointer" : "default" }, children: [
|
|
4759
|
+
/* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
4760
4760
|
/* @__PURE__ */ i("span", { className: "ghead__name", children: r }),
|
|
4761
4761
|
a
|
|
4762
4762
|
] }),
|
|
4763
4763
|
o && /* @__PURE__ */ i("div", { className: "ghead__sub", children: o })
|
|
4764
4764
|
] }) }),
|
|
4765
|
-
/* @__PURE__ */ i(
|
|
4765
|
+
/* @__PURE__ */ i(ja, { size: "sm", bordered: !1, variant: c ? "primary" : void 0, onClick: l, label: "Options", children: /* @__PURE__ */ h("svg", { viewBox: "0 0 24 24", width: "19", height: "19", fill: "currentColor", "aria-hidden": "true", children: [
|
|
4766
4766
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "5.5", r: "1.85" }),
|
|
4767
4767
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "12", r: "1.85" }),
|
|
4768
4768
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "18.5", r: "1.85" })
|
|
@@ -4809,7 +4809,7 @@ function fc({ state: t, line: e, onRetry: n, onOriginal: s }) {
|
|
|
4809
4809
|
translateFailed: "Something went wrong on our side. Try again, or watch with the original sound.",
|
|
4810
4810
|
voiceFailed: "It took too long to start. Try again, or watch with the original sound."
|
|
4811
4811
|
}[t.kind];
|
|
4812
|
-
return /* @__PURE__ */
|
|
4812
|
+
return /* @__PURE__ */ h(
|
|
4813
4813
|
"div",
|
|
4814
4814
|
{
|
|
4815
4815
|
className: `pwait${l ? " pwait--failed" : ""}`,
|
|
@@ -4819,14 +4819,14 @@ function fc({ state: t, line: e, onRetry: n, onOriginal: s }) {
|
|
|
4819
4819
|
onClick: (u) => u.stopPropagation(),
|
|
4820
4820
|
onPointerDown: (u) => u.stopPropagation(),
|
|
4821
4821
|
children: [
|
|
4822
|
-
/* @__PURE__ */
|
|
4822
|
+
/* @__PURE__ */ h("div", { className: "pwait__head", children: [
|
|
4823
4823
|
l ? /* @__PURE__ */ i("div", { className: "pwait__mark", "aria-hidden": "true", children: /* @__PURE__ */ i(ce, { d: q.warnCircle, size: 18, sw: 1.8 }) }) : /* @__PURE__ */ i("div", { className: "pwait__spin", "aria-hidden": "true" }),
|
|
4824
4824
|
/* @__PURE__ */ i("div", { className: "pwait__t", children: c }),
|
|
4825
4825
|
!l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: hc(o) })
|
|
4826
4826
|
] }),
|
|
4827
4827
|
/* @__PURE__ */ i("div", { className: "pwait__note", children: d }),
|
|
4828
4828
|
!l && /* @__PURE__ */ i("div", { className: "pwait__bar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", {}) }),
|
|
4829
|
-
l && /* @__PURE__ */
|
|
4829
|
+
l && /* @__PURE__ */ h("div", { className: "pwait__acts", children: [
|
|
4830
4830
|
/* @__PURE__ */ i("button", { type: "button", className: "vs-btn vs-btn--primary vs-btn--sm", onClick: n, children: "Try again" }),
|
|
4831
4831
|
/* @__PURE__ */ i("button", { type: "button", className: "vs-btn vs-btn--ghost vs-btn--sm", onClick: s, children: "Watch in the original" })
|
|
4832
4832
|
] }),
|
|
@@ -4835,16 +4835,16 @@ function fc({ state: t, line: e, onRetry: n, onOriginal: s }) {
|
|
|
4835
4835
|
}
|
|
4836
4836
|
);
|
|
4837
4837
|
}
|
|
4838
|
-
const
|
|
4838
|
+
const As = "https://app.vocalstack.com", Nc = "/connect/transcribe";
|
|
4839
4839
|
function pc() {
|
|
4840
4840
|
const t = new Uint8Array(24);
|
|
4841
4841
|
return crypto.getRandomValues(t), btoa(String.fromCharCode(...t)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
4842
4842
|
}
|
|
4843
|
-
function
|
|
4844
|
-
const s = new URL(t ??
|
|
4843
|
+
function Ei(t, e, n) {
|
|
4844
|
+
const s = new URL(t ?? As), r = pc(), a = new URL(Nc, s);
|
|
4845
4845
|
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);
|
|
4846
4846
|
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)}`);
|
|
4847
|
-
return u ? new Promise((
|
|
4847
|
+
return u ? new Promise((f, M) => {
|
|
4848
4848
|
let N = !1;
|
|
4849
4849
|
const m = (p) => {
|
|
4850
4850
|
N || (N = !0, window.removeEventListener("message", w), clearInterval(v), p());
|
|
@@ -4861,15 +4861,15 @@ function Yi(t, e, n) {
|
|
|
4861
4861
|
return;
|
|
4862
4862
|
}
|
|
4863
4863
|
if (g.type === "vocalstack:started" || g.type === "vocalstack:token" || g.type === "vocalstack:found") {
|
|
4864
|
-
m(() =>
|
|
4864
|
+
m(() => f({ transcriptionId: String(g.transcriptionId), recordingId: String(g.recordingId), token: String(g.token), expiresAt: g.expiresAt ?? null }));
|
|
4865
4865
|
return;
|
|
4866
4866
|
}
|
|
4867
4867
|
if (g.type === "vocalstack:connected") {
|
|
4868
|
-
m(() =>
|
|
4868
|
+
m(() => f("connected"));
|
|
4869
4869
|
return;
|
|
4870
4870
|
}
|
|
4871
4871
|
if (g.type === "vocalstack:declined") {
|
|
4872
|
-
m(() =>
|
|
4872
|
+
m(() => f(null));
|
|
4873
4873
|
return;
|
|
4874
4874
|
}
|
|
4875
4875
|
g.type === "vocalstack:error" && m(() => M(new Error(typeof g.message == "string" && g.message ? g.message : "VocalStack could not start this transcription.")));
|
|
@@ -4877,25 +4877,25 @@ function Yi(t, e, n) {
|
|
|
4877
4877
|
};
|
|
4878
4878
|
window.addEventListener("message", w);
|
|
4879
4879
|
const v = setInterval(() => {
|
|
4880
|
-
u.closed && m(() =>
|
|
4880
|
+
u.closed && m(() => f(null));
|
|
4881
4881
|
}, 500);
|
|
4882
4882
|
}) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
|
|
4883
4883
|
}
|
|
4884
4884
|
async function mc(t, e, n) {
|
|
4885
|
-
const s = await
|
|
4885
|
+
const s = await Ei(t, { url: e }, n);
|
|
4886
4886
|
return s === "connected" ? null : s;
|
|
4887
4887
|
}
|
|
4888
|
-
const
|
|
4888
|
+
const Yi = "vsp.connected";
|
|
4889
4889
|
function yc(t) {
|
|
4890
4890
|
try {
|
|
4891
|
-
return localStorage.getItem(
|
|
4891
|
+
return localStorage.getItem(Yi) === new URL(t ?? As).origin;
|
|
4892
4892
|
} catch {
|
|
4893
4893
|
return !1;
|
|
4894
4894
|
}
|
|
4895
4895
|
}
|
|
4896
4896
|
function Tc(t) {
|
|
4897
4897
|
try {
|
|
4898
|
-
localStorage.setItem(
|
|
4898
|
+
localStorage.setItem(Yi, new URL(t ?? As).origin);
|
|
4899
4899
|
} catch {
|
|
4900
4900
|
}
|
|
4901
4901
|
}
|
|
@@ -4908,7 +4908,7 @@ const wc = {
|
|
|
4908
4908
|
starting: "Starting the transcription…"
|
|
4909
4909
|
}, Lc = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
4910
4910
|
function kc({ options: t, onStarted: e, onReplay: n, onClose: s }) {
|
|
4911
|
-
const [r, a] = O(""), [o, l] = O(!1), [c, d] = O(null), [u,
|
|
4911
|
+
const [r, a] = O(""), [o, l] = O(!1), [c, d] = O(null), [u, f] = O(null);
|
|
4912
4912
|
_(() => {
|
|
4913
4913
|
const w = (v) => {
|
|
4914
4914
|
v.key === "Escape" && s();
|
|
@@ -4919,23 +4919,23 @@ function kc({ options: t, onStarted: e, onReplay: n, onClose: s }) {
|
|
|
4919
4919
|
if (!(!N || o)) {
|
|
4920
4920
|
l(!0), d(null);
|
|
4921
4921
|
try {
|
|
4922
|
-
const w = await mc(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`,
|
|
4922
|
+
const w = await mc(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, f);
|
|
4923
4923
|
w && e(w);
|
|
4924
4924
|
} catch (w) {
|
|
4925
4925
|
d(w instanceof Error ? w.message : "Something went wrong. Please try again.");
|
|
4926
4926
|
} finally {
|
|
4927
|
-
l(!1),
|
|
4927
|
+
l(!1), f(null);
|
|
4928
4928
|
}
|
|
4929
4929
|
}
|
|
4930
4930
|
};
|
|
4931
4931
|
return /* @__PURE__ */ i("div", { className: "vsp-end", role: "dialog", "aria-label": "Transcribe another video", onPointerDown: (w) => w.stopPropagation(), onClick: (w) => {
|
|
4932
4932
|
w.stopPropagation(), w.target === w.currentTarget && s();
|
|
4933
|
-
}, children: /* @__PURE__ */
|
|
4933
|
+
}, children: /* @__PURE__ */ h("div", { className: "vsp-end__card", children: [
|
|
4934
4934
|
/* @__PURE__ */ i("button", { type: "button", className: "vsp-end__close", "aria-label": "Close", title: "Close", onClick: s, children: /* @__PURE__ */ i(ce, { d: q.close, size: 16, sw: 1.8 }) }),
|
|
4935
4935
|
/* @__PURE__ */ i("div", { className: "vsp-end__brand", children: /* @__PURE__ */ i(jn, { dark: !0, link: !1, height: 16 }) }),
|
|
4936
4936
|
/* @__PURE__ */ i("div", { className: "vsp-end__title", children: t.title ?? "Transcribe and translate any video" }),
|
|
4937
4937
|
/* @__PURE__ */ i("div", { className: "vsp-end__note", children: t.note ?? "Paste a link from YouTube, Vimeo or any page with a video. It plays right here with subtitles and spoken translations." }),
|
|
4938
|
-
/* @__PURE__ */
|
|
4938
|
+
/* @__PURE__ */ h("form", { className: "vsp-end__row", onSubmit: (w) => {
|
|
4939
4939
|
w.preventDefault(), m();
|
|
4940
4940
|
}, children: [
|
|
4941
4941
|
/* @__PURE__ */ i("input", { className: "vsp-end__input", type: "url", inputMode: "url", autoComplete: "off", spellCheck: !1, placeholder: "https://youtube.com/watch?v=…", value: r, onChange: (w) => {
|
|
@@ -4945,16 +4945,16 @@ function kc({ options: t, onStarted: e, onReplay: n, onClose: s }) {
|
|
|
4945
4945
|
] }),
|
|
4946
4946
|
o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children: wc[u ?? "checking"] }),
|
|
4947
4947
|
c && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: c }),
|
|
4948
|
-
/* @__PURE__ */
|
|
4948
|
+
/* @__PURE__ */ h("div", { className: "vsp-end__foot", children: [
|
|
4949
4949
|
/* @__PURE__ */ i("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }),
|
|
4950
|
-
/* @__PURE__ */
|
|
4950
|
+
/* @__PURE__ */ h("button", { type: "button", className: "vsp-end__replay", onClick: n, children: [
|
|
4951
4951
|
/* @__PURE__ */ i(ce, { d: q.uturn, size: 14, sw: 1.8 }),
|
|
4952
4952
|
"Replay"
|
|
4953
4953
|
] })
|
|
4954
4954
|
] })
|
|
4955
4955
|
] }) });
|
|
4956
4956
|
}
|
|
4957
|
-
function
|
|
4957
|
+
function _i(t) {
|
|
4958
4958
|
const [e, n] = O(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
|
|
4959
4959
|
return _(() => {
|
|
4960
4960
|
if (t != null) return;
|
|
@@ -4964,38 +4964,38 @@ function Ui(t) {
|
|
|
4964
4964
|
}
|
|
4965
4965
|
const vc = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
|
|
4966
4966
|
function jc(t, e) {
|
|
4967
|
-
const n =
|
|
4967
|
+
const n = Li(), [s, r] = hi(), [a, o] = O(null), [l, c] = O("main"), d = ps(n, t.lang), u = je(() => fi(n, "translation"), [n]), f = (A) => {
|
|
4968
4968
|
e({ lang: A }), r(A);
|
|
4969
|
-
}, M =
|
|
4969
|
+
}, M = zs({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect: f, languages: u, none: "As spoken", pinned: t.lang ? [t.lang] : [], recent: s, keepOpen: !0 }), N = () => {
|
|
4970
4970
|
o(null), c("main");
|
|
4971
4971
|
}, m = t.lang ? /* @__PURE__ */ i("span", { style: { fontSize: 19, lineHeight: 1 }, children: d.flag }) : /* @__PURE__ */ i(ce, { 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) => {
|
|
4972
4972
|
A.stopPropagation(), c("main"), o((K) => K === "lang" ? null : "lang");
|
|
4973
|
-
}, children: m }), v = /* @__PURE__ */ i(ce, { d: q.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), p = /* @__PURE__ */
|
|
4973
|
+
}, children: m }), v = /* @__PURE__ */ i(ce, { d: q.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), p = /* @__PURE__ */ h("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
4974
4974
|
" ",
|
|
4975
|
-
/* @__PURE__ */
|
|
4975
|
+
/* @__PURE__ */ h("button", { type: "button", onClick: () => c("main"), "aria-label": "Back", className: "vsp-idlesheet__back", children: [
|
|
4976
4976
|
/* @__PURE__ */ i(ce, { d: q.chevronLeft, size: 18, sw: 1.8 }),
|
|
4977
4977
|
"Back"
|
|
4978
4978
|
] })
|
|
4979
|
-
] }), g = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, b = (A, K, z) => /* @__PURE__ */
|
|
4980
|
-
/* @__PURE__ */
|
|
4979
|
+
] }), g = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, b = (A, K, z) => /* @__PURE__ */ h("div", { className: "srow", children: [
|
|
4980
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
4981
4981
|
/* @__PURE__ */ i("div", { className: "srow__t", children: A }),
|
|
4982
4982
|
/* @__PURE__ */ i("div", { className: "srow__s", children: K })
|
|
4983
4983
|
] }),
|
|
4984
4984
|
z
|
|
4985
|
-
] }), D = /* @__PURE__ */
|
|
4985
|
+
] }), D = /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
4986
4986
|
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: M.search }),
|
|
4987
4987
|
M.list
|
|
4988
|
-
] }), k = l === "lang" ? D : l === "subs" ? /* @__PURE__ */
|
|
4988
|
+
] }), k = l === "lang" ? D : l === "subs" ? /* @__PURE__ */ h("div", { style: g, children: [
|
|
4989
4989
|
b("Show subtitles", "Captions over the video", /* @__PURE__ */ i(pt, { checked: t.subtitles, onChange: (A) => e({ subtitles: A }), label: "Show subtitles" })),
|
|
4990
4990
|
b("Show speaker labels", "Who is speaking, before each line", /* @__PURE__ */ i(pt, { checked: t.speakerLabels, onChange: (A) => e({ speakerLabels: A }), label: "Show speaker labels" })),
|
|
4991
4991
|
b("Highlight words", "Follow each word as it is spoken", /* @__PURE__ */ i(pt, { checked: t.wordHighlight, onChange: (A) => e({ wordHighlight: A }), label: "Highlight words" }))
|
|
4992
|
-
] }) : l === "audio" ? /* @__PURE__ */
|
|
4992
|
+
] }) : l === "audio" ? /* @__PURE__ */ h("div", { style: g, children: [
|
|
4993
4993
|
b("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(pt, { checked: t.translateAudio && !!t.lang, onChange: (A) => e({ translateAudio: A }), label: "Translate audio", disabled: !t.lang })),
|
|
4994
4994
|
b("Voices", t.voices === "cloned" ? "Each speaker in their own cloned voice, where they agreed to it" : "Synthetic voices matched to each speaker", /* @__PURE__ */ i(os, { value: t.voices, onChange: (A) => e({ voices: A }), size: "sm", options: [{ value: "synthetic", label: "Synthetic" }, { value: "cloned", label: "Cloned" }] })),
|
|
4995
4995
|
b(kn, "Takes out everything that isn't speech: music, ambience and noise.", /* @__PURE__ */ i(pt, { checked: t.removeBackground, onChange: (A) => e({ removeBackground: A }), label: kn }))
|
|
4996
|
-
] }) : /* @__PURE__ */
|
|
4997
|
-
/* @__PURE__ */
|
|
4998
|
-
/* @__PURE__ */
|
|
4996
|
+
] }) : /* @__PURE__ */ h("div", { style: g, children: [
|
|
4997
|
+
/* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => c("lang"), children: [
|
|
4998
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
4999
4999
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Language" }),
|
|
5000
5000
|
/* @__PURE__ */ i("div", { className: "srow__s", children: t.lang ? `Translated to ${d.label}` : "Original language" })
|
|
5001
5001
|
] }),
|
|
@@ -5003,22 +5003,22 @@ function jc(t, e) {
|
|
|
5003
5003
|
v
|
|
5004
5004
|
] }),
|
|
5005
5005
|
/* @__PURE__ */ i("div", { className: "sdiv" }),
|
|
5006
|
-
/* @__PURE__ */
|
|
5007
|
-
/* @__PURE__ */
|
|
5006
|
+
/* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => c("subs"), children: [
|
|
5007
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5008
5008
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Subtitles" }),
|
|
5009
5009
|
/* @__PURE__ */ i("div", { className: "srow__s", children: t.subtitles ? "On · speaker labels and word highlighting" : "Off" })
|
|
5010
5010
|
] }),
|
|
5011
5011
|
v
|
|
5012
5012
|
] }),
|
|
5013
5013
|
/* @__PURE__ */ i("div", { className: "sdiv" }),
|
|
5014
|
-
/* @__PURE__ */
|
|
5015
|
-
/* @__PURE__ */
|
|
5014
|
+
/* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => c("audio"), children: [
|
|
5015
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5016
5016
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Audio" }),
|
|
5017
5017
|
/* @__PURE__ */ i("div", { className: "srow__s", children: t.lang && t.translateAudio ? `Translated, ${t.voices === "cloned" ? "cloned voices" : "synthetic voices"}` : t.removeBackground ? "Original speech, background removed" : "Original sound" })
|
|
5018
5018
|
] }),
|
|
5019
5019
|
v
|
|
5020
5020
|
] })
|
|
5021
|
-
] }), X = /* @__PURE__ */
|
|
5021
|
+
] }), X = /* @__PURE__ */ h(Re, { children: [
|
|
5022
5022
|
/* @__PURE__ */ i($t, { open: a === "lang", onClose: N, title: "LANGUAGE", kind: "picker", sticky: !0, children: /* @__PURE__ */ i(ls, { children: D }) }),
|
|
5023
5023
|
/* @__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(ls, { children: k }) })
|
|
5024
5024
|
] });
|
|
@@ -5031,7 +5031,7 @@ function jc(t, e) {
|
|
|
5031
5031
|
}
|
|
5032
5032
|
};
|
|
5033
5033
|
}
|
|
5034
|
-
const
|
|
5034
|
+
const Ui = {
|
|
5035
5035
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
5036
5036
|
consent: "Confirm in the VocalStack window…",
|
|
5037
5037
|
looking: "Looking for your transcription of this video…",
|
|
@@ -5052,7 +5052,7 @@ function Ic(t, e) {
|
|
|
5052
5052
|
s(!0), l(null);
|
|
5053
5053
|
let m;
|
|
5054
5054
|
try {
|
|
5055
|
-
m =
|
|
5055
|
+
m = Ei(t, N, a);
|
|
5056
5056
|
} catch (w) {
|
|
5057
5057
|
m = Promise.reject(w);
|
|
5058
5058
|
}
|
|
@@ -5061,8 +5061,8 @@ function Ic(t, e) {
|
|
|
5061
5061
|
}).catch((w) => l(w instanceof Error ? w.message : "Something went wrong. Please try again.")).finally(() => {
|
|
5062
5062
|
s(!1), a(null);
|
|
5063
5063
|
});
|
|
5064
|
-
}, [t, n, e]),
|
|
5065
|
-
return { busy: n, status: r, err: o, connected: c, connect:
|
|
5064
|
+
}, [t, n, e]), f = Xe(() => u({ connect: !0 }), [u]), M = Xe((N, m) => u({ url: N, ask: m }), [u]);
|
|
5065
|
+
return { busy: n, status: r, err: o, connected: c, connect: f, start: M };
|
|
5066
5066
|
}
|
|
5067
5067
|
function Oc(t) {
|
|
5068
5068
|
return /\.(mp4|webm|mov|m4v|ogv|mkv)(\?|#|$)/i.test(t);
|
|
@@ -5074,12 +5074,12 @@ function Cc({ poster: t, src: e }) {
|
|
|
5074
5074
|
const bc = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
|
|
5075
5075
|
} };
|
|
5076
5076
|
function ks({ idle: t, poster: e, src: n, title: s, page: r, onAct: a, children: o }) {
|
|
5077
|
-
const l = jc(t.prefs, t.set), c =
|
|
5077
|
+
const l = jc(t.prefs, t.set), c = _i(), d = j(null), [u, f] = O(!1);
|
|
5078
5078
|
Qt(() => {
|
|
5079
5079
|
var v;
|
|
5080
5080
|
const N = (v = d.current) == null ? void 0 : v.parentElement;
|
|
5081
5081
|
if (!N) return;
|
|
5082
|
-
const m = () =>
|
|
5082
|
+
const m = () => f(N.getBoundingClientRect().width < 560);
|
|
5083
5083
|
if (m(), typeof ResizeObserver > "u") return;
|
|
5084
5084
|
const w = new ResizeObserver(m);
|
|
5085
5085
|
return w.observe(N), () => w.disconnect();
|
|
@@ -5087,26 +5087,26 @@ function ks({ idle: t, poster: e, src: n, title: s, page: r, onAct: a, children:
|
|
|
5087
5087
|
const M = { prevOn: !1, nextOn: !1, onPrev: () => {
|
|
5088
5088
|
}, onNext: () => {
|
|
5089
5089
|
}, playing: !1, playable: !0, playTitle: "Connect to play", onPlay: a };
|
|
5090
|
-
return /* @__PURE__ */
|
|
5091
|
-
/* @__PURE__ */ i(
|
|
5090
|
+
return /* @__PURE__ */ h("div", { ref: d, className: `vsp-idleroot${u ? " vsp-idleroot--small" : ""}`, children: [
|
|
5091
|
+
/* @__PURE__ */ i(Ai, { page: r, picture: /* @__PURE__ */ i(Cc, { poster: e, src: n }), title: s, desk: c, pos: bc, sub: null, mute: { muted: t.prefs.muted, onToggle: () => t.set({ muted: !t.prefs.muted }) }, cc: { on: t.prefs.subtitles, onToggle: () => t.set({ subtitles: !t.prefs.subtitles }) }, chip: l.chip, transport: M, picker: l.sheets, sheet: null, voices: null, voicesBtn: null, sheetOpen: l.sheetOpen, onSettings: l.openSettings, onShare: () => Ds(t.shareUrl ?? window.location.href, s), copied: null, onTouch: () => {
|
|
5092
5092
|
} }),
|
|
5093
5093
|
!l.sheetOpen && /* @__PURE__ */ i("div", { className: "vsp-idle", "data-theme": "dark", children: /* @__PURE__ */ i("div", { className: "vsp-idle__box", children: o }) })
|
|
5094
5094
|
] });
|
|
5095
5095
|
}
|
|
5096
|
-
function
|
|
5097
|
-
return /* @__PURE__ */
|
|
5098
|
-
/* @__PURE__ */
|
|
5096
|
+
function Ri({ connect: t, onClick: e, label: n }) {
|
|
5097
|
+
return /* @__PURE__ */ h(Re, { children: [
|
|
5098
|
+
/* @__PURE__ */ h("button", { type: "button", className: "vsp-idle__connect", onClick: e, disabled: t.busy, children: [
|
|
5099
5099
|
t.busy ? /* @__PURE__ */ i(at, { size: 18, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ i(ce, { d: q.link, size: 18, sw: 1.8 }),
|
|
5100
5100
|
/* @__PURE__ */ i("span", { children: t.busy ? "Waiting for VocalStack…" : n })
|
|
5101
5101
|
] }),
|
|
5102
|
-
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children:
|
|
5102
|
+
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: Ui[t.status ?? "checking"] }),
|
|
5103
5103
|
t.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: t.err })
|
|
5104
5104
|
] });
|
|
5105
5105
|
}
|
|
5106
5106
|
function xc({ idle: t, src: e, ask: n, connect: s, page: r, poster: a = null, onClear: o }) {
|
|
5107
5107
|
const l = () => s.start(e, n);
|
|
5108
|
-
return /* @__PURE__ */
|
|
5109
|
-
/* @__PURE__ */ i(
|
|
5108
|
+
return /* @__PURE__ */ h(ks, { idle: t, poster: a, src: e, title: as(e), page: r, onAct: l, children: [
|
|
5109
|
+
/* @__PURE__ */ i(Ri, { connect: s, onClick: l, label: s.connected ? "Play with VocalStack" : "Connect to VocalStack" }),
|
|
5110
5110
|
!s.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: s.connected ? `Plays ${as(e)} with subtitles and spoken translations.` : `Connect to play ${as(e)} with subtitles and spoken translations.` }),
|
|
5111
5111
|
o && !s.busy && /* @__PURE__ */ i("button", { type: "button", className: "vsp-idle__other", onClick: o, children: "Choose another video" })
|
|
5112
5112
|
] });
|
|
@@ -5117,21 +5117,21 @@ function Dc({ idle: t, connect: e, page: n, poster: s = null, onPick: r }) {
|
|
|
5117
5117
|
const M = /^https?:\/\//i.test(c) ? c : `https://${c}`;
|
|
5118
5118
|
r(M), e.start(M, !1);
|
|
5119
5119
|
};
|
|
5120
|
-
return e.connected ? /* @__PURE__ */
|
|
5120
|
+
return e.connected ? /* @__PURE__ */ h(ks, { idle: t, poster: s, src: null, title: "VocalStack", page: n, onAct: () => {
|
|
5121
5121
|
var M;
|
|
5122
5122
|
d ? u() : (M = l.current) == null || M.focus();
|
|
5123
5123
|
}, children: [
|
|
5124
5124
|
/* @__PURE__ */ i("form", { className: "vsp-idle__form", onSubmit: (M) => {
|
|
5125
5125
|
M.preventDefault(), u();
|
|
5126
|
-
}, children: /* @__PURE__ */
|
|
5126
|
+
}, children: /* @__PURE__ */ h("span", { className: "vsp-idle__field", children: [
|
|
5127
5127
|
/* @__PURE__ */ i(ce, { d: q.link, size: 16, sw: 1.8 }),
|
|
5128
5128
|
/* @__PURE__ */ i("input", { ref: l, className: "vsp-idle__input", type: "url", inputMode: "url", enterKeyHint: "go", autoComplete: "off", spellCheck: !1, placeholder: "Paste a video link", value: a, onChange: (M) => o(M.target.value), "aria-label": "Video link", autoFocus: !0 }),
|
|
5129
5129
|
e.busy && /* @__PURE__ */ i(at, { size: 15, color: "#eef0f8", track: "rgba(255,255,255,.2)" })
|
|
5130
5130
|
] }) }),
|
|
5131
|
-
e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children:
|
|
5131
|
+
e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: Ui[e.status ?? "checking"] }) : /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "YouTube, Vimeo, an mp3 or any video link. Press Enter or ▶ to play it here with subtitles and spoken translations." }),
|
|
5132
5132
|
e.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: e.err })
|
|
5133
|
-
] }) : /* @__PURE__ */
|
|
5134
|
-
/* @__PURE__ */ i(
|
|
5133
|
+
] }) : /* @__PURE__ */ h(ks, { idle: t, poster: s, src: null, title: "VocalStack", page: n, onAct: e.connect, children: [
|
|
5134
|
+
/* @__PURE__ */ i(Ri, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
|
|
5135
5135
|
!e.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "Connect your VocalStack account to watch any video with subtitles and spoken translations." })
|
|
5136
5136
|
] });
|
|
5137
5137
|
}
|
|
@@ -5148,7 +5148,7 @@ function Sc(t, e, n) {
|
|
|
5148
5148
|
}
|
|
5149
5149
|
let a = !0;
|
|
5150
5150
|
r(void 0);
|
|
5151
|
-
const o = new si({ baseUrl: (n ??
|
|
5151
|
+
const o = new si({ baseUrl: (n ?? Ti).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
|
|
5152
5152
|
if (!l) {
|
|
5153
5153
|
r(null);
|
|
5154
5154
|
return;
|
|
@@ -5172,14 +5172,14 @@ function Ec(t) {
|
|
|
5172
5172
|
cc: e != null && e.get("cc") ? e.get("cc") !== "off" : n.subtitles ?? !0,
|
|
5173
5173
|
translateAudio: e != null && e.get("audio") ? e.get("audio") !== "original" : n.translateAudio ?? !0,
|
|
5174
5174
|
clonedVoices: e != null && e.get("voices") ? e.get("voices") !== "stock" : (n.voices ?? "cloned") === "cloned",
|
|
5175
|
-
removeBackground: e && e.get("bg") ?
|
|
5175
|
+
removeBackground: e && e.get("bg") ? Ga(e) : n.removeBackground ?? !1,
|
|
5176
5176
|
startAt: Number.isFinite(r) && r > 0 ? r : t.startAt ?? null
|
|
5177
5177
|
};
|
|
5178
5178
|
}
|
|
5179
|
-
const Wc =
|
|
5179
|
+
const Wc = fa(function(e, n) {
|
|
5180
5180
|
var V;
|
|
5181
5181
|
const s = j(null);
|
|
5182
|
-
|
|
5182
|
+
Na(n, () => ({
|
|
5183
5183
|
seek: (C) => {
|
|
5184
5184
|
var de;
|
|
5185
5185
|
return (de = s.current) == null ? void 0 : de.seek(C);
|
|
@@ -5209,13 +5209,13 @@ const Wc = Na(function(e, n) {
|
|
|
5209
5209
|
_(() => {
|
|
5210
5210
|
o != null && o.id && a({ id: o.id, token: e.token });
|
|
5211
5211
|
}, [o == null ? void 0 : o.id]);
|
|
5212
|
-
const [l, c] = O(null), [d, u] = O(() => ({ ...vc, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([, C]) => C !== void 0)) })), [
|
|
5212
|
+
const [l, c] = O(null), [d, u] = O(() => ({ ...vc, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([, C]) => C !== void 0)) })), [f, M] = O({}), N = { prefs: d, set: (C) => {
|
|
5213
5213
|
u((de) => ({ ...de, ...C })), M((de) => ({ ...de, ...C }));
|
|
5214
|
-
}, shareUrl: (V = e.shareUrl) == null ? void 0 : V.call(e, null) }, { muted: m, ...w } =
|
|
5214
|
+
}, shareUrl: (V = e.shareUrl) == null ? void 0 : V.call(e, null) }, { muted: m, ...w } = f;
|
|
5215
5215
|
_(() => {
|
|
5216
5216
|
c(null);
|
|
5217
5217
|
}, [e.id, e.src]);
|
|
5218
|
-
const v = e.src ?? l, p = !r.id && !!v && (l != null || o !== void 0), g = !r.id && !e.src && !l, b =
|
|
5218
|
+
const v = e.src ?? l, p = !r.id && !!v && (l != null || o !== void 0), g = !r.id && !e.src && !l, b = wi({ id: r.id, token: r.token, baseUrl: e.baseUrl, listen: r.listen }), { source: D, gone: k, error: X, reload: A } = Ao(b, r.id), K = Eo(b, (D == null ? void 0 : D.recording.id) ?? null), z = je(() => Do(b, K), [b, K]);
|
|
5219
5219
|
_(() => {
|
|
5220
5220
|
var C;
|
|
5221
5221
|
D && ((C = e.onSource) == null || C.call(e, D));
|
|
@@ -5223,12 +5223,12 @@ const Wc = Na(function(e, n) {
|
|
|
5223
5223
|
var C;
|
|
5224
5224
|
X && ((C = e.onError) == null || C.call(e, X));
|
|
5225
5225
|
}, [X]);
|
|
5226
|
-
const S =
|
|
5227
|
-
return _(() => (Jr(Q ? ie.current : null), () => Jr(null)), [Q]), /* @__PURE__ */ i(
|
|
5226
|
+
const S = _i(e.compact ? !1 : e.desk), Q = (e.layout ?? "embed") === "embed", L = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), I = Xe((C) => a({ id: C.transcriptionId, token: null, listen: { transcriptionId: C.transcriptionId, recordingId: C.recordingId, token: C.token } }), []), E = Ic(L, I), ie = j(null);
|
|
5227
|
+
return _(() => (Jr(Q ? ie.current : null), () => Jr(null)), [Q]), /* @__PURE__ */ i(Oo, { value: z, children: /* @__PURE__ */ i("div", { ref: ie, className: `vsp${Q ? " 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: !Q, poster: e.poster ?? null, onPick: c }) : p ? /* @__PURE__ */ i(xc, { idle: N, src: v, ask: !l, connect: E, page: !Q, 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: z, shared: D, gone: k, loadError: X, reread: A, desk: S, dark: (e.mode ?? "video") === "video" || !!e.dark, onStarted: (C) => a({ id: C.transcriptionId, token: null, listen: { transcriptionId: C.transcriptionId, recordingId: C.recordingId, token: C.token } }) }, r.id) : /* @__PURE__ */ i("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
|
|
5228
5228
|
});
|
|
5229
5229
|
function Yc(t) {
|
|
5230
|
-
var
|
|
5231
|
-
const { api: e, shared: n, gone: s, desk: r, dark: a } = t, o = t.id ?? "", l = je(() => Ec(t), []), c = (t.mode ?? "video") === "video", d = ((
|
|
5230
|
+
var dr, Mr, gr, hr, fr, Nr, pr, mr, yr, Tr, wr, Lr, kr, vr, jr, zr, Ir, Or, Cr, br, xr, Dr, Sr, Ar;
|
|
5231
|
+
const { api: e, shared: n, gone: s, desk: r, dark: a } = t, o = t.id ?? "", l = je(() => Ec(t), []), c = (t.mode ?? "video") === "video", d = ((Mr = (dr = n == null ? void 0 : n.job) == null ? void 0 : dr.source) == null ? void 0 : Mr.kind) === "url" ? Ns(n.job.source.url) : null, u = c && !(n && !d), [f, M] = O(t.loadError);
|
|
5232
5232
|
_(() => {
|
|
5233
5233
|
t.loadError && M(t.loadError);
|
|
5234
5234
|
}, [t.loadError]);
|
|
@@ -5259,20 +5259,20 @@ function Yc(t) {
|
|
|
5259
5259
|
_(() => {
|
|
5260
5260
|
if (!t.syncUrl) return;
|
|
5261
5261
|
const T = new URL(window.location.href);
|
|
5262
|
-
ne ? T.searchParams.set("lang", ne) : T.searchParams.delete("lang"), ae ? T.searchParams.set("labels", ae) : T.searchParams.delete("labels"), Le ? T.searchParams.set("words", Le) : T.searchParams.delete("words"), me ? T.searchParams.delete("cc") : T.searchParams.set("cc", "off"), _e ? T.searchParams.delete("audio") : T.searchParams.set("audio", "original"), Oe ? T.searchParams.delete("voices") : T.searchParams.set("voices", "stock"),
|
|
5262
|
+
ne ? T.searchParams.set("lang", ne) : T.searchParams.delete("lang"), ae ? T.searchParams.set("labels", ae) : T.searchParams.delete("labels"), Le ? T.searchParams.set("words", Le) : T.searchParams.delete("words"), me ? T.searchParams.delete("cc") : T.searchParams.set("cc", "off"), _e ? T.searchParams.delete("audio") : T.searchParams.set("audio", "original"), Oe ? T.searchParams.delete("voices") : T.searchParams.set("voices", "stock"), Za(T, B), T.href !== window.location.href && window.history.replaceState(window.history.state, "", T);
|
|
5263
5263
|
}, [ne, ae, Le, me, _e, Oe, B]), _(() => {
|
|
5264
5264
|
n && !n.allowTranslate && ne && oe(null);
|
|
5265
5265
|
}, [n, ne]);
|
|
5266
|
-
const { model: P, error: pe, clearError: Z, setLanguage: ze, mergeTranslations: ve, translating: $e, translateFailed: Ee, shownLang: J } =
|
|
5266
|
+
const { model: P, error: pe, clearError: Z, setLanguage: ze, mergeTranslations: ve, translating: $e, translateFailed: Ee, shownLang: J } = Ro(H, {
|
|
5267
5267
|
lang: null,
|
|
5268
5268
|
onFrame: (T) => {
|
|
5269
5269
|
T.type === "job.progress" && X({ 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 });
|
|
5270
5270
|
}
|
|
5271
|
-
}), se = je(() =>
|
|
5271
|
+
}), se = je(() => No(P).filter((T) => !T.suppressed), [P]), fe = Po((n == null ? void 0 : n.job) ?? null), ue = ["done", "failed", "stopped"].includes(ns((fe == null ? void 0 : fe.state) ?? ((gr = n == null ? void 0 : n.job) == null ? void 0 : gr.state))), le = ue ? fe : k ?? fe, we = !!k && !["done", "failed", "stopped"].includes(ns(k.state)), Pe = j(0);
|
|
5272
5272
|
_(() => {
|
|
5273
5273
|
!ue || !we || Date.now() - Pe.current < 1e4 || (Pe.current = Date.now(), t.reread());
|
|
5274
5274
|
}, [ue, we, k == null ? void 0 : k.state, k == null ? void 0 : k.processedS, o]);
|
|
5275
|
-
const Ce = ns((le == null ? void 0 : le.state) ?? ((
|
|
5275
|
+
const Ce = ns((le == null ? void 0 : le.state) ?? ((hr = n == null ? void 0 : n.job) == null ? void 0 : hr.state)), Se = !!H && (Ce === "transcribing" || Ce === "queued"), Y = u && !s && (!n || (Se || Ce === "cropping") && se.length === 0), U = Se ? (le == null ? void 0 : le.pct) ?? 0 : 100, F = $o(n == null ? void 0 : n.job, le) ?? (de == null ? void 0 : de.mediaDurationS) ?? null, te = ((fr = P.segments.values().next().value) == null ? void 0 : fr.language) ?? (de == null ? void 0 : de.spokenLanguage) ?? null, he = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", be = ((mr = (pr = (Nr = n == null ? void 0 : n.job) == null ? void 0 : Nr.source) == null ? void 0 : pr.name) == null ? void 0 : mr.trim()) || null, ye = n ? ((yr = n.name) == null ? void 0 : yr.trim()) || be : null, ke = !!((Tr = n == null ? void 0 : n.job) != null && Tr.hasAudio), xe = (wr = n == null ? void 0 : n.job) == null ? void 0 : wr.source, Ze = !ke && !!xe && (xe.kind !== "url" || xe.bytes != null) && (Ce === "transcribing" || Ce === "queued" || Ce === "done"), Be = H && (n != null && n.allowDownload) && ke ? ba(e.origin, H, e.cred) : H && (n != null && n.allowDownload) && Ze ? Kn(e.origin, H, "source", e.cred) : null, st = se[se.length - 1], ot = st ? ((Lr = st.words[st.words.length - 1]) == null ? void 0 : Lr.end) ?? st.start : 0, dt = u && Se ? Math.max(ot, (le == null ? void 0 : le.processedS) ?? 0) : null, We = Hl(Be, (ke || Ze) && !!(n != null && n.allowDownload), se, F, Ze ? ((vr = (kr = n == null ? void 0 : n.job) == null ? void 0 : kr.crop) == null ? void 0 : vr.startS) ?? 0 : 0, dt), Qe = ((zr = (jr = n == null ? void 0 : n.job) == null ? void 0 : jr.source) == null ? void 0 : zr.kind) === "url" ? Ns(n.job.source.url) : null, lt = Bl(se, F, ((Or = (Ir = n == null ? void 0 : n.job) == null ? void 0 : Ir.crop) == null ? void 0 : Or.startS) ?? 0, dt), Ve = !!Qe, mt = Ve ? lt.player : We, Mt = Li(), Bt = j(null), re = Zl({ forcedVoice: t.voice ?? null, recordingId: H, model: P, rows: se, lenS: F, ended: !!H && !Se, cred: e.cred, langs: Mt, srcLang: te, canTranslate: !!(n != null && n.allowTranslate), pickedLang: G, setPickedLang: oe, side: r && !V ? Gl : void 0, hearOriginal: ge, timed: !!Qe, stockVoices: u && !Oe, stickyPicker: u, pickerBusy: Bt.current }), Ot = j(null);
|
|
5276
5276
|
_(() => {
|
|
5277
5277
|
!H || Ot.current === ne || (Ot.current = ne, ze(ne));
|
|
5278
5278
|
}, [ne, H]);
|
|
@@ -5287,7 +5287,7 @@ function Yc(t) {
|
|
|
5287
5287
|
const en = je(() => se.filter((T) => T.sentenceId != null).map((T, Ne, Ue) => {
|
|
5288
5288
|
var Ge;
|
|
5289
5289
|
return { sid: T.sentenceId, start: T.start, end: ((Ge = Ue[Ne + 1]) == null ? void 0 : Ge.start) ?? St(T, T.start, T.start + 4) };
|
|
5290
|
-
}), [se]), vt =
|
|
5290
|
+
}), [se]), vt = lo({ on: Ve && re.on, lines: en, clips: re.clips, t: x.t, playing: x.playing, muted: x.muted }), Et = !!ne && ($e || re.relang || re.on && vt.missing != null);
|
|
5291
5291
|
Bt.current = Et ? ne : null, _(() => {
|
|
5292
5292
|
Ve && re.on && vt.sid != null && re.setNear(vt.sid);
|
|
5293
5293
|
}, [vt.sid, Ve, re.on]), $l([mt, re.player], re.sampling);
|
|
@@ -5295,28 +5295,28 @@ function Yc(t) {
|
|
|
5295
5295
|
_(() => {
|
|
5296
5296
|
Se && !x.playing && it.current && (it.current.scrollTop = it.current.scrollHeight);
|
|
5297
5297
|
}, [Se, se.length]);
|
|
5298
|
-
const In = Jl(it, se, w, p, v), tn = /* @__PURE__ */ i(Kl, { open: w, q: p, onQ: g, onClose: () => v(!1), hits: In, desk: r, inline: r }), Ke = (n == null ? void 0 : n.name) || t.src || o, gt = !!(n != null && n.allowDownload), Ct = !!(n != null && n.allowExport), yt = re.readLang, Tt = yt ? ((
|
|
5298
|
+
const In = Jl(it, se, w, p, v), tn = /* @__PURE__ */ i(Kl, { open: w, q: p, onQ: g, onClose: () => v(!1), hits: In, desk: r, inline: r }), Ke = (n == null ? void 0 : n.name) || t.src || o, gt = !!(n != null && n.allowDownload), Ct = !!(n != null && n.allowExport), yt = re.readLang, Tt = yt ? ((Cr = Mt == null ? void 0 : Mt.languages.find((T) => T.code === yt)) == null ? void 0 : Cr.name) ?? yt.toUpperCase() : null, Yt = async () => {
|
|
5299
5299
|
if (H)
|
|
5300
5300
|
try {
|
|
5301
5301
|
if (yt && re.canSpeak) {
|
|
5302
|
-
D(`Preparing ${Ke} in ${Tt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await
|
|
5302
|
+
D(`Preparing ${Ke} in ${Tt}${re.readVoiceName ? `, read by ${re.readVoiceName}` : ""} — the download starts when it is ready.`), await Vo(e, { recordingId: H, lang: yt, voiceKey: re.readVoiceKey, cred: e.cred, request: re.requestTrack }), D(`Downloading ${Ke} in ${Tt}.`);
|
|
5303
5303
|
return;
|
|
5304
5304
|
}
|
|
5305
5305
|
if (ke) {
|
|
5306
|
-
D(`Preparing ${Ke} as MP3 — the download starts when it is ready.`), await
|
|
5306
|
+
D(`Preparing ${Ke} as MP3 — the download starts when it is ready.`), await Bo(Kn(e.origin, H, "delivery", e.cred)), D(`Downloading ${Ke}.`);
|
|
5307
5307
|
return;
|
|
5308
5308
|
}
|
|
5309
|
-
|
|
5309
|
+
xs(Kn(e.origin, H, "source", e.cred)), D(`Downloading ${Ke} — the full audio, since the transcript is still being written.`);
|
|
5310
5310
|
} catch (T) {
|
|
5311
5311
|
throw M(kt(T)), T;
|
|
5312
5312
|
}
|
|
5313
5313
|
}, bt = (T) => {
|
|
5314
5314
|
if (!H) return;
|
|
5315
5315
|
const Ne = fs.find((Ge) => Ge.key === T).name, Ue = Tt ? ` in ${Tt}` : "";
|
|
5316
|
-
return
|
|
5316
|
+
return Ho(e, H, T, { lang: yt }).then(() => D(Se ? `${Ne} exported${Ue} for the first ${se.length} segments — the rest is still transcribing.` : `${Ne} exported${Ue}.`)).catch((Ge) => {
|
|
5317
5317
|
throw M(kt(Ge)), Ge;
|
|
5318
5318
|
});
|
|
5319
|
-
}, ct = Se ? "MORE TO COME…" : "END OF TRANSCRIPT", Ht = Se ? "var(--brand)" : "var(--ink-28)", rt =
|
|
5319
|
+
}, ct = Se ? "MORE TO COME…" : "END OF TRANSCRIPT", Ht = Se ? "var(--brand)" : "var(--ink-28)", rt = Qo(le, se.length), jt = x.has && (!re.relang || !!Qe), qe = j(x);
|
|
5320
5320
|
qe.current = x;
|
|
5321
5321
|
const _t = `${ne ?? ""}|${re.on ? "voice" : "source"}`, Vt = j({ key: _t, idx: 0, t: 0, playing: !1, until: 0 });
|
|
5322
5322
|
_(() => {
|
|
@@ -5334,7 +5334,7 @@ function Yc(t) {
|
|
|
5334
5334
|
}
|
|
5335
5335
|
});
|
|
5336
5336
|
const ht = j(!1), Je = j(!1);
|
|
5337
|
-
u && (
|
|
5337
|
+
u && (li.video = !0);
|
|
5338
5338
|
const [Wt, xt] = O(!1), [nn, On] = O(!1);
|
|
5339
5339
|
_(() => {
|
|
5340
5340
|
if (!u || ht.current || !jt || !V || Y || t.autoplay === !1) return;
|
|
@@ -5377,12 +5377,12 @@ function Yc(t) {
|
|
|
5377
5377
|
const T = setTimeout(() => $(!0), 180);
|
|
5378
5378
|
return () => clearTimeout(T);
|
|
5379
5379
|
}, [$e]);
|
|
5380
|
-
const De = Gt ? J : ne, Fe =
|
|
5380
|
+
const De = Gt ? J : ne, Fe = sl(H, ne, se, ve), ft = ml(yl(de), H, re.readLang), Zt = gt || Ct, Pi = (((xr = (br = n == null ? void 0 : n.job) == null ? void 0 : br.crop) == null ? void 0 : xr.startS) ?? 0) + rs(x, se), xn = A === "listen", Dt = xn && !!Qe, Qi = (T) => {
|
|
5381
5381
|
mt.pause(), re.player.pause(), K(T), T === "read" && V && (Kt(!1), C(!1));
|
|
5382
|
-
}, Ye = re.barChip, Ut =
|
|
5383
|
-
T === "summary" && Ft && /* @__PURE__ */ i(
|
|
5384
|
-
T === "export" && /* @__PURE__ */ i(
|
|
5385
|
-
] }),
|
|
5382
|
+
}, Ye = re.barChip, Ut = vi(Ye.label), Es = /* @__PURE__ */ i(os, { value: A, onChange: Qi, bordered: !1, options: dc(Ut, !!Qe) }), Rt = [...Ft ? [{ key: "summary", label: "Summary" }] : [], ...Zt ? [{ key: "export", label: "Export" }] : []], Ys = (T) => /* @__PURE__ */ h(Re, { children: [
|
|
5383
|
+
T === "summary" && Ft && /* @__PURE__ */ i(Tl, { s: ft }),
|
|
5384
|
+
T === "export" && /* @__PURE__ */ i(pl, { audio: gt ? { name: Ke, meta: yt && re.canSpeak || ke ? `MP3${F ? ` · ${Lt(F)}` : ""}` : "ORIGINAL AUDIO", onClick: Yt } : null, formats: Ct, onExport: bt })
|
|
5385
|
+
] }), $i = (T) => /* @__PURE__ */ i(Xo, { index: x.idx, total: Math.max(1, se.length), frac: x.dur > 0 ? Math.min(1, x.t / x.dur) : 0, glideMs: x.wordSync ? 0 : 220, atLabel: Lt(x.t), durLabel: Lt(x.dur), stepLabel: T ? `${x.idx + 1} / ${se.length}` : "", onSeek: re.relang ? Wl : x.seekRow, onSeekFrac: re.relang ? void 0 : x.seekFrac, onScrubStart: x.hold, onScrubEnd: x.release }), _s = {
|
|
5386
5386
|
live: !1,
|
|
5387
5387
|
atEdge: !1,
|
|
5388
5388
|
edgeFrac: null,
|
|
@@ -5395,58 +5395,61 @@ function Yc(t) {
|
|
|
5395
5395
|
var Ne;
|
|
5396
5396
|
re.relang || (Ne = x.seekFrac) == null || Ne.call(x, T);
|
|
5397
5397
|
}
|
|
5398
|
-
}, [
|
|
5398
|
+
}, [Bi, Hi] = gc(re.on && !!x.preparing && x.playing, 1500), Dn = re.on && ((Dr = x.error) == null ? void 0 : Dr.code) === "voice_not_started", Sn = re.canSpeak && !re.error && !Dn, an = ne ? ((Sr = Mt == null ? void 0 : Mt.languages.find((T) => T.code === ne)) == null ? void 0 : Sr.name) ?? Ye.label : "", tt = V ? Mc({ lang: ne, langName: an, translating: $e && !!ne, translateFailed: Ee, voiceFailed: Dn, relang: re.relang, starting: re.on ? x.starting : null, slowLine: Bi, lineSince: Hi }) : null, An = !!Qe && !!tt && (tt.kind === "translating" || tt.kind === "voice" && re.relang), Us = !An || !tt ? null : tt.kind === "translating" ? `Translating into ${an || "the new language"}…` : `Preparing the ${an || "translated"} voice…`, on = !An && ((tt == null ? void 0 : tt.kind) === "voice" || (tt == null ? void 0 : tt.kind) === "starting"), Rs = zs({ ...re.langList, keepOpen: !0, open: I === "lang", onClose: () => ie("main") }), Ps = Fa(B, re.on), Vi = u && Ps.bed && gt && H && (!Se || Be) ? Yr(e.origin, H, e.cred) : null, Qs = no(Vi, { t: rs(x, se), playing: x.playing && !on && !(x.timed && x.preparing), muted: x.muted }), Wi = u && Ps.speech && gt && H && (!Se || Be) ? Yr(e.origin, H, e.cred, "speech") : null, En = Ni(Wi, { t: rs(x, se), playing: !re.on && x.playing, muted: x.muted }), Yn = !re.on && En.on;
|
|
5399
5399
|
_(() => {
|
|
5400
5400
|
var T;
|
|
5401
5401
|
lt.setVideoSound(!(Ve && (re.on || Yn))), (T = We.silence) == null || T.call(We, !Ve && Yn);
|
|
5402
5402
|
}, [Ve, re.on, Yn, Be]);
|
|
5403
|
-
const _n = gt ? re.on ?
|
|
5403
|
+
const _n = gt ? re.on ? Qs : En.state : "unavailable", Un = _e && Sn && !!ne, Fi = Un ? [`Translated${re.hasClone ? Oe ? ", cloned voices" : ", synthetic voices" : ""}`, !B && gt && Qs !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : B && _n !== "unavailable" ? "Original speech, background removed" : "Original sound", Gi = () => {
|
|
5404
5404
|
if ((tt == null ? void 0 : tt.kind) === "translateFailed") {
|
|
5405
5405
|
ze(ne);
|
|
5406
5406
|
return;
|
|
5407
5407
|
}
|
|
5408
5408
|
Je.current = !0, x.toggle();
|
|
5409
|
-
},
|
|
5409
|
+
}, Zi = () => {
|
|
5410
5410
|
const T = x.idx;
|
|
5411
5411
|
x.pause(), oe(null), Je.current = !0, mt.playRow(T);
|
|
5412
|
-
},
|
|
5412
|
+
}, $s = { prevOn: x.idx > 0, nextOn: x.idx < se.length - 1, onPrev: x.prev, onNext: x.next, playing: x.playing, playable: jt, playTitle: re.playTitle ?? (x.playing ? "Pause" : "Play"), onPlay: () => {
|
|
5413
5413
|
Je.current = !0, x.toggle();
|
|
5414
5414
|
}, busy: re.relang && !Qe || on };
|
|
5415
|
-
|
|
5415
|
+
Mo(jt ? { playing: x.playing, toggle: () => {
|
|
5416
5416
|
Je.current = !0, x.toggle();
|
|
5417
5417
|
}, next: x.next, prev: x.prev } : null, ye);
|
|
5418
|
-
const Rn = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, Pn = (T, Ne) => !Ye.can || !R.language ? null : u ? /* @__PURE__ */
|
|
5418
|
+
const Rn = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, Pn = (T, Ne) => !Ye.can || !R.language ? null : u ? /* @__PURE__ */ h("button", { type: "button", className: "gfull__btn", title: Et ? `${Ye.label ?? Ye.code}: still being prepared` : Ye.label ?? Ye.code, "aria-label": `Language: ${Ye.label ?? Ye.code}`, "aria-busy": Et || void 0, onClick: () => {
|
|
5419
5419
|
S(!1), Ye.onClick();
|
|
5420
5420
|
}, style: { position: "relative" }, children: [
|
|
5421
5421
|
/* @__PURE__ */ i("span", { style: { fontSize: Ne === "sm" ? 17 : 21, lineHeight: 1 }, children: Ye.flag }),
|
|
5422
5422
|
Et && /* @__PURE__ */ i("span", { style: { position: "absolute", right: 2, bottom: 2, display: "flex", borderRadius: 999, background: "rgba(5,6,21,.7)", padding: 1 }, children: /* @__PURE__ */ i(at, { size: 11, color: "#eef0f8", track: "rgba(255,255,255,.25)" }) })
|
|
5423
|
-
] }) : /* @__PURE__ */ i(Ln, { flag: Ye.flag, code: Ye.code, label: Ye.label, bordered: !1, size: Ne, onClick: Ye.onClick, style: T }),
|
|
5424
|
-
} }, [
|
|
5423
|
+
] }) : /* @__PURE__ */ i(Ln, { flag: Ye.flag, code: Ye.code, label: Ye.label, bordered: !1, size: Ne, onClick: Ye.onClick, style: T }), Bs = { on: !1, title: "Voices", onClick: () => {
|
|
5424
|
+
} }, [qi, Ki] = O(!1);
|
|
5425
5425
|
_(() => {
|
|
5426
|
-
x.t > 0.3 &&
|
|
5426
|
+
x.t > 0.3 && Ki(!0);
|
|
5427
5427
|
}, [x.t]);
|
|
5428
|
-
const
|
|
5429
|
-
/* @__PURE__ */ i(
|
|
5428
|
+
const Hs = Qe && /* @__PURE__ */ h(Re, { children: [
|
|
5429
|
+
/* @__PURE__ */ i(Al, { ytId: Qe, title: Ke, t: Pi, playing: x.playing && !on, waiting: re.on && !!x.timed && !!x.preparing, seekN: x.seekN, onTime: (T) => {
|
|
5430
5430
|
var Ne, Ue, Ge;
|
|
5431
5431
|
return (Ge = x.videoAt) == null ? void 0 : Ge.call(x, T - (((Ue = (Ne = n == null ? void 0 : n.job) == null ? void 0 : Ne.crop) == null ? void 0 : Ue.startS) ?? 0));
|
|
5432
5432
|
}, onToggle: x.has ? sn : void 0, onAd: On, lead: Ve ? lt.lead : void 0 }),
|
|
5433
|
-
/* @__PURE__ */
|
|
5434
|
-
|
|
5433
|
+
/* @__PURE__ */ h("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity: qi ? 0 : 1 }, children: [
|
|
5434
|
+
/* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Qe}/hqdefault.jpg)` } }),
|
|
5435
|
+
/* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(vs, { size: 44 }) })
|
|
5436
|
+
] })
|
|
5437
|
+
] }), Vs = Dt && Qe && !V ? /* @__PURE__ */ i(wl, { ytId: Qe, title: Ke, radius: 14, large: !0, style: r ? void 0 : { margin: "8px 20px 2px" }, picture: Hs, children: /* @__PURE__ */ i(oc, { pos: _s, transport: $s, chip: Pn({ ...Rn, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: Bs, onFull: () => {
|
|
5435
5438
|
Kt(!0), C(!0);
|
|
5436
|
-
}, copied: null }) }) : null, et = x.wordSync ?
|
|
5439
|
+
}, copied: null }) }) : null, et = x.wordSync ? Go(se, x.idx, x.t) ? se[x.idx] : void 0 : se[x.idx];
|
|
5437
5440
|
for (const T of se) for (const [Ne, Ue] of Object.entries(T.translations)) Ue && L.current.set(`${T.sentenceId ?? T.start}|${Ne}`, Ue);
|
|
5438
|
-
const
|
|
5441
|
+
const Ws = (T, Ne) => T.translations[Ne] || L.current.get(`${T.sentenceId ?? T.start}|${Ne}`) || null, Qn = (T, Ne) => !T || !Ne || T.language === Ne || !!Ws(T, Ne), wt = Qn(et, ne) ? ne : Qn(et, Q.current) ? Q.current : ne;
|
|
5439
5442
|
et && Qn(et, wt) && (Q.current = wt);
|
|
5440
|
-
const
|
|
5443
|
+
const Fs = et && wt && et.language !== wt ? Ws(et, wt) : null, Ji = et && Fs && wt && !et.translations[wt] ? Object.assign([...se], { [x.idx]: { ...et, translations: { ...et.translations, [wt]: Fs } } }) : se, ln = et ? bi(Ji, x.idx, wt) : [], cn = Le ? Le === "on" : !u || re.on || !De || De === te, Gs = cn ? qr(x, x.idx, ln) : null, Zs = ln.map((T, Ne) => ({ t: T.text, sp: Ne < ln.length - 1 ? " " : "", dim: Gs != null && Ne > Gs })), un = ae ? ae === "on" : u ? !1 : zo(P, se, de == null ? void 0 : de.settings), qs = { lang: ne, subtitles: me, speakerLabels: un, wordHighlight: cn, translateAudio: _e, voices: Oe ? "cloned" : "synthetic", removeBackground: B }, Xi = JSON.stringify(qs), dn = j(t.onSettingsChange);
|
|
5441
5444
|
dn.current = t.onSettingsChange, _(() => {
|
|
5442
5445
|
var T;
|
|
5443
|
-
(T = dn.current) == null || T.call(dn,
|
|
5444
|
-
}, [
|
|
5445
|
-
const Mn = et && et.speaker >= 0 && un ?
|
|
5446
|
+
(T = dn.current) == null || T.call(dn, qs);
|
|
5447
|
+
}, [Xi]);
|
|
5448
|
+
const Mn = et && et.speaker >= 0 && un ? Cs(P, et.speaker) : null, [ea, Ks] = O(!1), [$n, Js] = O(null), [ta, Xs] = O(null), Bn = j(void 0);
|
|
5446
5449
|
_(() => () => window.clearTimeout(Bn.current), []);
|
|
5447
5450
|
const Hn = j(void 0);
|
|
5448
5451
|
_(() => () => window.clearTimeout(Hn.current), []);
|
|
5449
|
-
const
|
|
5452
|
+
const er = (T) => {
|
|
5450
5453
|
if (t.shareUrl) return t.shareUrl(T);
|
|
5451
5454
|
const Ne = new URL(window.location.href);
|
|
5452
5455
|
return T != null && T > 0 ? Ne.searchParams.set("t", String(T)) : Ne.searchParams.delete("t"), Ne.href;
|
|
@@ -5458,19 +5461,19 @@ function Yc(t) {
|
|
|
5458
5461
|
let Ne = 0;
|
|
5459
5462
|
for (let Ue = 0; Ue < se.length; Ue++) se[Ue].start <= T && (Ne = Ue);
|
|
5460
5463
|
x.seekRow(Ne);
|
|
5461
|
-
},
|
|
5464
|
+
}, tr = j(!1);
|
|
5462
5465
|
_(() => {
|
|
5463
5466
|
const T = gn.current;
|
|
5464
|
-
T == null ||
|
|
5467
|
+
T == null || tr.current || !x.has || se.length === 0 || (tr.current = !0, Vn(T));
|
|
5465
5468
|
}, [x.has, se.length]), _(() => {
|
|
5466
5469
|
const T = gn.current;
|
|
5467
5470
|
T == null || !x.playing || (gn.current = null, Math.abs(x.t - T) > 2 && Vn(T));
|
|
5468
5471
|
}, [x.playing]);
|
|
5469
|
-
const
|
|
5472
|
+
const na = (T) => {
|
|
5470
5473
|
Je.current = !0, gn.current = null, Vn(Math.max(0, T));
|
|
5471
5474
|
};
|
|
5472
5475
|
t.handle.current = {
|
|
5473
|
-
seek: (T) =>
|
|
5476
|
+
seek: (T) => na(T),
|
|
5474
5477
|
play: () => {
|
|
5475
5478
|
Je.current = !0, qe.current.playing || qe.current.toggle();
|
|
5476
5479
|
},
|
|
@@ -5486,120 +5489,120 @@ function Yc(t) {
|
|
|
5486
5489
|
}, _(() => () => {
|
|
5487
5490
|
t.handle.current = null;
|
|
5488
5491
|
}, []);
|
|
5489
|
-
const
|
|
5490
|
-
|
|
5491
|
-
const
|
|
5492
|
-
|
|
5492
|
+
const nr = j(t.onPlayback);
|
|
5493
|
+
nr.current = t.onPlayback;
|
|
5494
|
+
const sr = j(ne);
|
|
5495
|
+
sr.current = ne, _(() => {
|
|
5493
5496
|
let T = "";
|
|
5494
5497
|
const Ne = () => {
|
|
5495
|
-
const Ge =
|
|
5498
|
+
const Ge = nr.current;
|
|
5496
5499
|
if (!Ge) return;
|
|
5497
|
-
const Nt = qe.current, ut = { t: Nt.t, dur: Nt.dur, playing: Nt.playing, idx: Nt.idx, seekN: Nt.seekN, lang:
|
|
5500
|
+
const Nt = qe.current, ut = { t: Nt.t, dur: Nt.dur, playing: Nt.playing, idx: Nt.idx, seekN: Nt.seekN, lang: sr.current, muted: Nt.muted }, pn = `${ut.t.toFixed(2)}|${ut.dur}|${ut.playing}|${ut.idx}|${ut.seekN}|${ut.lang}|${ut.muted}`;
|
|
5498
5501
|
pn !== T && (T = pn, Ge(ut));
|
|
5499
5502
|
};
|
|
5500
5503
|
Ne();
|
|
5501
5504
|
const Ue = window.setInterval(Ne, Ac);
|
|
5502
5505
|
return () => window.clearInterval(Ue);
|
|
5503
5506
|
}, []);
|
|
5504
|
-
const
|
|
5505
|
-
window.clearTimeout(Hn.current),
|
|
5506
|
-
}),
|
|
5507
|
-
const Ge = fs.find((pn) => pn.key === T), Nt = $n === T, ut =
|
|
5508
|
-
return /* @__PURE__ */
|
|
5509
|
-
$n || (
|
|
5510
|
-
|
|
5507
|
+
const sa = () => Ds(er(null), Ke, () => {
|
|
5508
|
+
window.clearTimeout(Hn.current), Ks(!0), Hn.current = window.setTimeout(() => Ks(!1), 2200);
|
|
5509
|
+
}), rr = (T, Ne, Ue) => {
|
|
5510
|
+
const Ge = fs.find((pn) => pn.key === T), Nt = $n === T, ut = ta === T;
|
|
5511
|
+
return /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", "aria-busy": Nt || void 0, style: $n && !Nt ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
|
|
5512
|
+
$n || (Js(T), Promise.resolve().then(() => bt(T)).then(() => {
|
|
5513
|
+
Xs(T), window.clearTimeout(Bn.current), Bn.current = window.setTimeout(() => Xs(null), 1600);
|
|
5511
5514
|
}).catch(() => {
|
|
5512
|
-
}).finally(() =>
|
|
5515
|
+
}).finally(() => Js(null)));
|
|
5513
5516
|
}, children: [
|
|
5514
5517
|
Nt ? /* @__PURE__ */ i(at, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(ce, { d: Ge.icon, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
|
|
5515
|
-
/* @__PURE__ */
|
|
5518
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5516
5519
|
/* @__PURE__ */ i("div", { className: "srow__t", children: Ne }),
|
|
5517
5520
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Ue })
|
|
5518
5521
|
] }),
|
|
5519
5522
|
/* @__PURE__ */ i(ce, { d: ut ? q.check : q.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: ut ? "var(--brand)" : "var(--ink-62)" } })
|
|
5520
5523
|
] });
|
|
5521
|
-
},
|
|
5524
|
+
}, ra = /* @__PURE__ */ h("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
5522
5525
|
" ",
|
|
5523
|
-
/* @__PURE__ */
|
|
5526
|
+
/* @__PURE__ */ h("button", { type: "button", onClick: () => ie("main"), "aria-label": "Back", style: { position: "absolute", left: -6, top: "50%", transform: "translateY(-50%)", display: "inline-flex", alignItems: "center", gap: 2, padding: "4px 6px 4px 0", border: 0, background: "none", color: "var(--ink-96)", fontFamily: "var(--vs-font-sans)", fontSize: 15, fontWeight: 600, letterSpacing: 0, lineHeight: 1, whiteSpace: "nowrap", cursor: "pointer" }, children: [
|
|
5524
5527
|
/* @__PURE__ */ i(ce, { d: q.chevronLeft, size: 18, sw: 1.8 }),
|
|
5525
5528
|
"Back"
|
|
5526
5529
|
] })
|
|
5527
|
-
] }), hn = /* @__PURE__ */ i(ce, { d: q.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }),
|
|
5528
|
-
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children:
|
|
5529
|
-
|
|
5530
|
-
] }) : I === "subs" ? /* @__PURE__ */
|
|
5531
|
-
/* @__PURE__ */
|
|
5532
|
-
/* @__PURE__ */
|
|
5530
|
+
] }), hn = /* @__PURE__ */ i(ce, { d: q.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), ia = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[I], fn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, Wn = u ? /* @__PURE__ */ i($t, { open: z, onClose: () => S(!1), title: ia, titleNode: I === "main" ? void 0 : ra, doneLabel: Ut.done, kind: I === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(ls, { children: I === "lang" ? /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
5531
|
+
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: Rs.search }),
|
|
5532
|
+
Rs.list
|
|
5533
|
+
] }) : I === "subs" ? /* @__PURE__ */ h("div", { style: fn, children: [
|
|
5534
|
+
/* @__PURE__ */ h("div", { className: "srow", children: [
|
|
5535
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5533
5536
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Show subtitles" }),
|
|
5534
5537
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Captions over the video" })
|
|
5535
5538
|
] }),
|
|
5536
5539
|
/* @__PURE__ */ i(pt, { checked: me, onChange: Ie, label: "Show subtitles" })
|
|
5537
5540
|
] }),
|
|
5538
|
-
/* @__PURE__ */
|
|
5539
|
-
/* @__PURE__ */
|
|
5541
|
+
/* @__PURE__ */ h("div", { className: "srow", children: [
|
|
5542
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5540
5543
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Show speaker labels" }),
|
|
5541
5544
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Who is speaking, before each line" })
|
|
5542
5545
|
] }),
|
|
5543
5546
|
/* @__PURE__ */ i(pt, { checked: un, onChange: (T) => Te(T ? "on" : "off"), label: "Show speaker labels" })
|
|
5544
5547
|
] }),
|
|
5545
|
-
/* @__PURE__ */
|
|
5546
|
-
/* @__PURE__ */
|
|
5548
|
+
/* @__PURE__ */ h("div", { className: "srow", children: [
|
|
5549
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5547
5550
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Highlight words" }),
|
|
5548
5551
|
/* @__PURE__ */ i("div", { className: "srow__s", children: "Follow each word as it is spoken" })
|
|
5549
5552
|
] }),
|
|
5550
5553
|
/* @__PURE__ */ i(pt, { checked: cn, onChange: (T) => Ae(T ? "on" : "off"), label: "Highlight words" })
|
|
5551
5554
|
] })
|
|
5552
|
-
] }) : I === "audio" ? /* @__PURE__ */
|
|
5553
|
-
/* @__PURE__ */
|
|
5554
|
-
/* @__PURE__ */
|
|
5555
|
+
] }) : I === "audio" ? /* @__PURE__ */ h("div", { style: fn, children: [
|
|
5556
|
+
/* @__PURE__ */ h("div", { className: "srow", children: [
|
|
5557
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5555
5558
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Translate audio" }),
|
|
5556
5559
|
/* @__PURE__ */ i("div", { className: "srow__s", children: ne ? Sn ? "Hear the translation read aloud instead of the original speech" : re.canSpeak ? "Not available right now" : "Not available in this language" : "Pick a language to hear the translation read aloud" })
|
|
5557
5560
|
] }),
|
|
5558
5561
|
/* @__PURE__ */ i(pt, { checked: Un, onChange: He, label: "Translate audio", disabled: !Sn || !ne })
|
|
5559
5562
|
] }),
|
|
5560
|
-
Un && re.hasClone && /* @__PURE__ */
|
|
5561
|
-
/* @__PURE__ */
|
|
5563
|
+
Un && re.hasClone && /* @__PURE__ */ h("div", { className: "srow", children: [
|
|
5564
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5562
5565
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Voices" }),
|
|
5563
5566
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Oe ? "Each speaker in their own cloned voice" : "Synthetic voices matched to each speaker" })
|
|
5564
5567
|
] }),
|
|
5565
5568
|
/* @__PURE__ */ i(os, { value: Oe ? "clone" : "stock", onChange: (T) => W(T === "clone"), size: "sm", options: [{ value: "stock", label: "Synthetic" }, { value: "clone", label: "Cloned" }] })
|
|
5566
5569
|
] }),
|
|
5567
|
-
/* @__PURE__ */
|
|
5568
|
-
/* @__PURE__ */
|
|
5570
|
+
/* @__PURE__ */ h("div", { className: "srow", children: [
|
|
5571
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5569
5572
|
/* @__PURE__ */ i("div", { className: "srow__t", children: kn }),
|
|
5570
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
5573
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: Wa(B, _n, "video", re.on ? 0 : En.untilS) })
|
|
5571
5574
|
] }),
|
|
5572
5575
|
/* @__PURE__ */ i(pt, { checked: B && gt, onChange: ee, label: kn, disabled: !gt || _n === "unavailable" && !B })
|
|
5573
5576
|
] })
|
|
5574
|
-
] }) : I === "export" ? /* @__PURE__ */
|
|
5575
|
-
|
|
5576
|
-
|
|
5577
|
+
] }) : I === "export" ? /* @__PURE__ */ h("div", { style: fn, children: [
|
|
5578
|
+
rr("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
|
|
5579
|
+
rr("pdf", "PDF", "Formatted transcript in paragraphs, with timestamps and speaker labels")
|
|
5577
5580
|
] }) : /* @__PURE__ */ i("div", { style: fn, children: [
|
|
5578
|
-
Ye.can && R.language && /* @__PURE__ */
|
|
5579
|
-
/* @__PURE__ */
|
|
5581
|
+
Ye.can && R.language && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => ie("lang"), children: [
|
|
5582
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5580
5583
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Language" }),
|
|
5581
5584
|
/* @__PURE__ */ i("div", { className: "srow__s", children: ne ? `Translated to ${Ye.label ?? ne.toUpperCase()}` : "Original language" })
|
|
5582
5585
|
] }),
|
|
5583
5586
|
/* @__PURE__ */ i("span", { style: { fontSize: 18, lineHeight: 1 }, children: Ye.flag }),
|
|
5584
5587
|
hn
|
|
5585
5588
|
] }, "lang"),
|
|
5586
|
-
R.subtitles && /* @__PURE__ */
|
|
5587
|
-
/* @__PURE__ */
|
|
5589
|
+
R.subtitles && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => ie("subs"), children: [
|
|
5590
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5588
5591
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Subtitles" }),
|
|
5589
5592
|
/* @__PURE__ */ i("div", { className: "srow__s", children: me ? "On · speaker labels and word highlighting" : "Off" })
|
|
5590
5593
|
] }),
|
|
5591
5594
|
hn
|
|
5592
5595
|
] }, "subs"),
|
|
5593
|
-
R.audio && /* @__PURE__ */
|
|
5594
|
-
/* @__PURE__ */
|
|
5596
|
+
R.audio && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => ie("audio"), children: [
|
|
5597
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5595
5598
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Audio" }),
|
|
5596
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
5599
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: Fi })
|
|
5597
5600
|
] }),
|
|
5598
5601
|
hn
|
|
5599
5602
|
] }, "audio"),
|
|
5600
|
-
R.export && Ct && !!H && /* @__PURE__ */
|
|
5601
|
-
/* @__PURE__ */
|
|
5602
|
-
/* @__PURE__ */
|
|
5603
|
+
R.export && Ct && !!H && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => ie("export"), children: [
|
|
5604
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5605
|
+
/* @__PURE__ */ h("div", { className: "srow__t", children: [
|
|
5603
5606
|
"Export",
|
|
5604
5607
|
Tt ? ` in ${Tt}` : ""
|
|
5605
5608
|
] }),
|
|
@@ -5607,12 +5610,12 @@ function Yc(t) {
|
|
|
5607
5610
|
] }),
|
|
5608
5611
|
hn
|
|
5609
5612
|
] }, "export")
|
|
5610
|
-
].filter(Boolean).flatMap((T, Ne) => Ne ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${Ne}`), T] : [T]) }) }) }) : /* @__PURE__ */ i($t, { open: z, onClose: () => S(!1), title: Ut.settings, doneLabel: Ut.done, drawer: r, children: /* @__PURE__ */
|
|
5611
|
-
Ye.can && /* @__PURE__ */
|
|
5612
|
-
/* @__PURE__ */
|
|
5613
|
+
].filter(Boolean).flatMap((T, Ne) => Ne ? [/* @__PURE__ */ i("div", { className: "sdiv" }, `d${Ne}`), T] : [T]) }) }) }) : /* @__PURE__ */ i($t, { open: z, onClose: () => S(!1), title: Ut.settings, doneLabel: Ut.done, drawer: r, children: /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
5614
|
+
Ye.can && /* @__PURE__ */ h(Re, { children: [
|
|
5615
|
+
/* @__PURE__ */ h("div", { className: "srow srow--tap", onClick: () => {
|
|
5613
5616
|
S(!1), Ye.onClick();
|
|
5614
5617
|
}, children: [
|
|
5615
|
-
/* @__PURE__ */
|
|
5618
|
+
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5616
5619
|
/* @__PURE__ */ i("div", { className: "srow__t", children: Ut.langLabel }),
|
|
5617
5620
|
/* @__PURE__ */ i("div", { className: "srow__s", children: Ut.langCount })
|
|
5618
5621
|
] }),
|
|
@@ -5624,42 +5627,42 @@ function Yc(t) {
|
|
|
5624
5627
|
] }),
|
|
5625
5628
|
t.settingsExtra
|
|
5626
5629
|
] }) }), It = V && Dt && Qe && /* @__PURE__ */ i(
|
|
5627
|
-
|
|
5630
|
+
Ai,
|
|
5628
5631
|
{
|
|
5629
5632
|
page: (t.layout ?? "embed") === "page",
|
|
5630
|
-
picture:
|
|
5633
|
+
picture: Hs,
|
|
5631
5634
|
title: Ke,
|
|
5632
5635
|
desk: r,
|
|
5633
|
-
pos:
|
|
5636
|
+
pos: _s,
|
|
5634
5637
|
mute: { muted: x.muted, onToggle: bn },
|
|
5635
5638
|
cc: R.subtitles ? { on: me, onToggle: () => Ie((T) => !T) } : void 0,
|
|
5636
5639
|
noFull: !R.fullscreen,
|
|
5637
5640
|
ad: nn,
|
|
5638
|
-
wait: tt && !An ? /* @__PURE__ */ i(fc, { state: tt, line: on ?
|
|
5641
|
+
wait: tt && !An ? /* @__PURE__ */ i(fc, { state: tt, line: on ? Zs.map((T) => T.t + T.sp).join("") : null, onRetry: Gi, onOriginal: Zi }) : x.edgeWait ? `Transcribing ${Math.round(U)}% — it plays on as more is written` : null,
|
|
5639
5642
|
pct: Se ? Math.round(U) : null,
|
|
5640
|
-
sub: me && et ? { who: Mn ?
|
|
5643
|
+
sub: me && et ? { who: Mn ? Os(P, et.speaker) : null, color: Mn ? Mn.fg ?? `var(--lane-${Mn.lane})` : "#fff", words: Zs, cursor: qr(x, x.idx, ln) } : null,
|
|
5641
5644
|
chip: Pn(r ? Rn : { ...Rn, width: 64, padding: "0 6px" }, r ? void 0 : "sm"),
|
|
5642
|
-
transport:
|
|
5645
|
+
transport: $s,
|
|
5643
5646
|
picker: re.sheets,
|
|
5644
5647
|
sheet: u ? Wn : null,
|
|
5645
5648
|
voices: null,
|
|
5646
|
-
voicesBtn: u ? null :
|
|
5649
|
+
voicesBtn: u ? null : Bs,
|
|
5647
5650
|
sheetOpen: re.sheetsOpen || z,
|
|
5648
|
-
onShare: u && R.share ?
|
|
5651
|
+
onShare: u && R.share ? sa : void 0,
|
|
5649
5652
|
onSettings: u && R.settings ? () => {
|
|
5650
5653
|
re.closePicker(), S((T) => !T);
|
|
5651
5654
|
} : void 0,
|
|
5652
|
-
paused: t.compact ? null : { title: Ke, summary: ft.state === "ready" ? ft.summary ?? null : null, share: R.share ? { url:
|
|
5653
|
-
copied:
|
|
5655
|
+
paused: t.compact ? null : { title: Ke, summary: ft.state === "ready" ? ft.summary ?? null : null, share: R.share ? { url: er, at: x.t } : null },
|
|
5656
|
+
copied: ea ? /* @__PURE__ */ h("div", { className: "gfull__toast", "aria-live": "polite", children: [
|
|
5654
5657
|
/* @__PURE__ */ i(ce, { d: q.check, size: 13, sw: 2 }),
|
|
5655
5658
|
"Link copied"
|
|
5656
|
-
] }) : Wt ? /* @__PURE__ */
|
|
5659
|
+
] }) : Wt ? /* @__PURE__ */ h("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
|
|
5657
5660
|
/* @__PURE__ */ i(ce, { d: q.volumeOff, size: 14, sw: 1.8 }),
|
|
5658
5661
|
"Tap for sound"
|
|
5659
|
-
] }) :
|
|
5662
|
+
] }) : Us ? /* @__PURE__ */ h("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5660
5663
|
/* @__PURE__ */ i(at, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
5661
|
-
|
|
5662
|
-
] }) : re.on && (Ve ? vt.missing != null : x.silent) ? /* @__PURE__ */
|
|
5664
|
+
Us
|
|
5665
|
+
] }) : re.on && (Ve ? vt.missing != null : x.silent) ? /* @__PURE__ */ h("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5663
5666
|
/* @__PURE__ */ i(at, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
5664
5667
|
`${an || "Translated"} voice is still being prepared · playing with subtitles`
|
|
5665
5668
|
] }) : null,
|
|
@@ -5674,85 +5677,85 @@ function Yc(t) {
|
|
|
5674
5677
|
_(() => {
|
|
5675
5678
|
!u && V && !Dt && (Kt(!1), C(!1));
|
|
5676
5679
|
}, [u, V, Dt]);
|
|
5677
|
-
const
|
|
5678
|
-
/* @__PURE__ */
|
|
5680
|
+
const ir = Se && /* @__PURE__ */ h("div", { className: `pubprog${r ? " pubprog--desk" : ""}${w ? " pubprog--find" : ""}`, children: [
|
|
5681
|
+
/* @__PURE__ */ h("div", { className: "pubprog__row", children: [
|
|
5679
5682
|
/* @__PURE__ */ i("span", { className: "l", children: `TRANSCRIBING ${U}%` }),
|
|
5680
5683
|
!r && /* @__PURE__ */ i("div", { style: { flex: 1 } }),
|
|
5681
5684
|
r && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { flex: 1 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) }),
|
|
5682
5685
|
/* @__PURE__ */ i("span", { className: "s", children: rt })
|
|
5683
5686
|
] }),
|
|
5684
5687
|
!r && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) })
|
|
5685
|
-
] }), Fn = 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." }),
|
|
5688
|
+
] }), Fn = 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." }), ar = /* @__PURE__ */ i(ql, { model: P, rows: se, player: x, tail: ct, tailFg: Ht, running: Se, desk: r, feedRef: it, listener: !0, showLabels: un, find: p, findOpen: !r && w, lang: De, warm: Gt, onVisible: Fe, wordHl: cn }), Gn = /* @__PURE__ */ i(Jo, { error: f ?? pe ?? (Dn && V ? null : x.error) ?? re.error, onClose: () => {
|
|
5686
5689
|
M(null), Z(), x.clearError(), re.clearError();
|
|
5687
|
-
} }),
|
|
5688
|
-
/* @__PURE__ */
|
|
5690
|
+
} }), or = [F ? Lt(F) : null, te ? te.toUpperCase() : null, he || "Read-only copy"].filter(Boolean).join(" · "), lr = (T) => /* @__PURE__ */ i("div", { className: "ctrans", children: re.noVoice ? re.noVoiceNote : /* @__PURE__ */ h(Re, { children: [
|
|
5691
|
+
/* @__PURE__ */ h("div", { className: "ctrans__row", children: [
|
|
5689
5692
|
/* @__PURE__ */ i("span", { className: "ctrans__sp", "aria-hidden": "true" }),
|
|
5690
|
-
/* @__PURE__ */
|
|
5693
|
+
/* @__PURE__ */ h("div", { className: "ctrans__mid", children: [
|
|
5691
5694
|
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: x.idx <= 0 ? 0.3 : 1 }, onClick: x.prev, children: /* @__PURE__ */ i(ce, { d: q.chevronLeft, size: 16, sw: 1.8 }) }),
|
|
5692
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : x.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (x.playing ? "Pause" : "Play"), disabled: !jt, onClick: x.toggle, children: re.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: x.playing ? void 0 : { marginLeft: 2 }, children: x.playing ?
|
|
5695
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": re.relang ? "Preparing audio" : x.playing ? "Pause" : "Play", title: re.relang ? "Preparing audio…" : re.playTitle ?? (x.playing ? "Pause" : "Play"), disabled: !jt, onClick: x.toggle, children: re.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: x.playing ? void 0 : { marginLeft: 2 }, children: x.playing ? El : Yl }) }),
|
|
5693
5696
|
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: x.idx >= se.length - 1 ? 0.3 : 1 }, onClick: x.next, children: /* @__PURE__ */ i(ce, { d: q.chevronRight, size: 16, sw: 1.8 }) })
|
|
5694
5697
|
] }),
|
|
5695
5698
|
/* @__PURE__ */ i("span", { className: "ctrans__mute", children: rn(36) })
|
|
5696
5699
|
] }),
|
|
5697
|
-
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children:
|
|
5698
|
-
] }) }),
|
|
5700
|
+
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children: $i(T) })
|
|
5701
|
+
] }) }), aa = vl("ga", { tabs: Rt, cur: N, pref: (Ar = Rt[0]) == null ? void 0 : Ar.key, onPick: m }), cr = Math.max(0, Math.min(100, Math.round(U))), oa = Y && /* @__PURE__ */ h("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
|
|
5699
5702
|
Qe && /* @__PURE__ */ i("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Qe}/hqdefault.jpg)` } }),
|
|
5700
|
-
/* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */
|
|
5703
|
+
/* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ h(Re, { children: [
|
|
5701
5704
|
Ke && /* @__PURE__ */ i("div", { className: "gfull__holdt", children: Ke }),
|
|
5702
|
-
/* @__PURE__ */ i("div", { className: "gfull__holdpct", children: Ce === "transcribing" ? `${
|
|
5703
|
-
/* @__PURE__ */ i("div", { className: "gfull__holdbar", children: /* @__PURE__ */ i("div", { style: { width: `${Ce === "transcribing" ?
|
|
5704
|
-
/* @__PURE__ */
|
|
5705
|
+
/* @__PURE__ */ i("div", { className: "gfull__holdpct", children: Ce === "transcribing" ? `${cr}%` : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin" }) }),
|
|
5706
|
+
/* @__PURE__ */ i("div", { className: "gfull__holdbar", children: /* @__PURE__ */ i("div", { style: { width: `${Ce === "transcribing" ? cr : 0}%` } }) }),
|
|
5707
|
+
/* @__PURE__ */ h("div", { className: "gfull__holds", children: [
|
|
5705
5708
|
Ce === "transcribing" ? "Transcribing" : Ce === "cropping" ? "Preparing the video" : "Waiting to start",
|
|
5706
5709
|
Ce === "transcribing" && (le != null && le.segmentsDone) ? ` · ${rt.toLowerCase()}` : ""
|
|
5707
5710
|
] }),
|
|
5708
5711
|
/* @__PURE__ */ i("div", { className: "gfull__holdn", children: "The video starts as soon as the first lines are transcribed." })
|
|
5709
5712
|
] }) : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
|
|
5710
|
-
] }),
|
|
5713
|
+
] }), ur = u && n && (Se || Ce === "cropping") ? Math.max(0, Math.min(100, Math.round(U))) : null, Nn = j(t.onProgress);
|
|
5711
5714
|
Nn.current = t.onProgress, _(() => {
|
|
5712
5715
|
var T;
|
|
5713
|
-
(T = Nn.current) == null || T.call(Nn,
|
|
5714
|
-
}, [
|
|
5715
|
-
const [
|
|
5716
|
+
(T = Nn.current) == null || T.call(Nn, ur);
|
|
5717
|
+
}, [ur]);
|
|
5718
|
+
const [la, Zn] = O(!1), qn = !!It && !Y && (Ve ? !!x.ended : !x.playing && x.dur > 0 && x.t >= x.dur - 0.5);
|
|
5716
5719
|
_(() => {
|
|
5717
5720
|
qn || Zn(!1);
|
|
5718
5721
|
}, [qn]);
|
|
5719
|
-
const
|
|
5722
|
+
const ca = t.endCard !== !1 && qn && !la && /* @__PURE__ */ i(kc, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => Zn(!0), onReplay: () => {
|
|
5720
5723
|
Zn(!0), Je.current = !0, x.seekFrac ? x.seekFrac(0) : x.seekRow(0), x.playing || x.toggle();
|
|
5721
5724
|
} });
|
|
5722
|
-
if (u) return /* @__PURE__ */
|
|
5723
|
-
s ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: Fn }) :
|
|
5724
|
-
|
|
5725
|
+
if (u) return /* @__PURE__ */ h(Re, { children: [
|
|
5726
|
+
s ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: Fn }) : oa || It || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
|
|
5727
|
+
ca,
|
|
5725
5728
|
Gn
|
|
5726
5729
|
] });
|
|
5727
5730
|
if (r) {
|
|
5728
|
-
const T = xn && !Dt && !s && /* @__PURE__ */ i("div", { className: "pubdeskctl", children:
|
|
5729
|
-
return /* @__PURE__ */
|
|
5730
|
-
/* @__PURE__ */ i("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */
|
|
5731
|
-
/* @__PURE__ */ i("div", { className: "gcolhead__main", children: /* @__PURE__ */
|
|
5731
|
+
const T = xn && !Dt && !s && /* @__PURE__ */ i("div", { className: "pubdeskctl", children: lr(!0) }), Ne = !s && (Rt.length > 0 || Dt || !!re.sidePanel || !!T);
|
|
5732
|
+
return /* @__PURE__ */ h(Re, { children: [
|
|
5733
|
+
/* @__PURE__ */ i("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ h("div", { className: "gcolhead", children: [
|
|
5734
|
+
/* @__PURE__ */ i("div", { className: "gcolhead__main", children: /* @__PURE__ */ h("div", { className: "gcolhead__col", children: [
|
|
5732
5735
|
/* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i(jn, { dark: a, height: 20.38 }) }),
|
|
5733
|
-
!s && /* @__PURE__ */
|
|
5736
|
+
!s && /* @__PURE__ */ h("div", { className: "dhead__session", children: [
|
|
5734
5737
|
/* @__PURE__ */ i("span", { className: "t", children: n ? Ke : "" }),
|
|
5735
|
-
/* @__PURE__ */ i("span", { className: "s", children: n ?
|
|
5738
|
+
/* @__PURE__ */ i("span", { className: "s", children: n ? or : "" })
|
|
5736
5739
|
] })
|
|
5737
5740
|
] }) }),
|
|
5738
5741
|
Ne && /* @__PURE__ */ i("div", { className: "gcolhead__side" })
|
|
5739
5742
|
] }) }),
|
|
5740
|
-
/* @__PURE__ */
|
|
5741
|
-
/* @__PURE__ */
|
|
5743
|
+
/* @__PURE__ */ h("div", { className: "listenerlive listenerlive--cols listenerlive--pub", children: [
|
|
5744
|
+
/* @__PURE__ */ h("div", { className: "listenerlive__main", children: [
|
|
5742
5745
|
Fn,
|
|
5743
5746
|
!s && tn,
|
|
5744
|
-
|
|
5747
|
+
ir,
|
|
5745
5748
|
b && /* @__PURE__ */ i("div", { className: "pubflash", children: b }),
|
|
5746
|
-
!s && /* @__PURE__ */ i("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children:
|
|
5747
|
-
!s && /* @__PURE__ */
|
|
5749
|
+
!s && /* @__PURE__ */ i("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children: ar }),
|
|
5750
|
+
!s && /* @__PURE__ */ h("div", { className: "listenerlive__inner gdeskbar", "data-transport": "1", children: [
|
|
5748
5751
|
Ye.can && /* @__PURE__ */ i("span", { className: "barchip", style: Ye.active ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)", borderRadius: 12 } : void 0, children: /* @__PURE__ */ i(Ln, { flag: Ye.flag, code: Ye.code, label: Ye.label, bordered: !1, onClick: Ye.onClick }) }),
|
|
5749
|
-
|
|
5752
|
+
Es
|
|
5750
5753
|
] })
|
|
5751
5754
|
] }),
|
|
5752
|
-
Ne && /* @__PURE__ */
|
|
5755
|
+
Ne && /* @__PURE__ */ h(Il, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
|
|
5753
5756
|
!re.sidePanel && T,
|
|
5754
|
-
!re.sidePanel &&
|
|
5755
|
-
!re.sidePanel && Rt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(
|
|
5757
|
+
!re.sidePanel && Vs,
|
|
5758
|
+
!re.sidePanel && Rt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(jl, { col: aa, order: ["summary", "export"], onPick: m, grip: { summary: 40, export: 28 }, render: (Ue) => /* @__PURE__ */ i(Er, { panel: !0, children: Ys(Ue) }) }) }),
|
|
5756
5759
|
re.sidePanel
|
|
5757
5760
|
] })
|
|
5758
5761
|
] }),
|
|
@@ -5762,26 +5765,26 @@ function Yc(t) {
|
|
|
5762
5765
|
Gn
|
|
5763
5766
|
] });
|
|
5764
5767
|
}
|
|
5765
|
-
const
|
|
5766
|
-
/* @__PURE__ */ i(
|
|
5767
|
-
N !== "none" &&
|
|
5768
|
+
const ua = Rt.length > 0 && !w && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ h(Er, { panel: !0, children: [
|
|
5769
|
+
/* @__PURE__ */ i(Oi, { tabs: Rt, current: N, onPick: m, gap: N !== "none" }),
|
|
5770
|
+
N !== "none" && Ys(N)
|
|
5768
5771
|
] }) });
|
|
5769
|
-
return /* @__PURE__ */
|
|
5770
|
-
/* @__PURE__ */ i(cc, { dark: a, title: n ? Ke : "", subline: n ?
|
|
5772
|
+
return /* @__PURE__ */ h(Re, { children: [
|
|
5773
|
+
/* @__PURE__ */ i(cc, { dark: a, title: n ? Ke : "", subline: n ? or : "", onOptions: () => S(!0), optionsActive: z }),
|
|
5771
5774
|
Fn,
|
|
5772
|
-
|
|
5773
|
-
!s &&
|
|
5774
|
-
!s &&
|
|
5775
|
-
!s && /* @__PURE__ */
|
|
5775
|
+
ir,
|
|
5776
|
+
!s && ua,
|
|
5777
|
+
!s && Vs,
|
|
5778
|
+
!s && /* @__PURE__ */ h("div", { style: { position: "relative", flex: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
|
|
5776
5779
|
tn,
|
|
5777
|
-
|
|
5780
|
+
ar,
|
|
5778
5781
|
b && /* @__PURE__ */ i("div", { className: "txflash", children: b })
|
|
5779
5782
|
] }),
|
|
5780
|
-
!s && /* @__PURE__ */
|
|
5781
|
-
xn && !Dt && /* @__PURE__ */ i("div", { className: "pubctl", children:
|
|
5782
|
-
/* @__PURE__ */
|
|
5783
|
+
!s && /* @__PURE__ */ h("div", { className: "gbottom", "data-transport": "1", children: [
|
|
5784
|
+
xn && !Dt && /* @__PURE__ */ i("div", { className: "pubctl", children: lr(!1) }),
|
|
5785
|
+
/* @__PURE__ */ h("div", { className: "gbottom__bar", children: [
|
|
5783
5786
|
Ye.can && /* @__PURE__ */ i("div", { style: { flex: "none" }, children: Pn({ width: 87 }, void 0) }),
|
|
5784
|
-
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children:
|
|
5787
|
+
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children: Es })
|
|
5785
5788
|
] })
|
|
5786
5789
|
] }),
|
|
5787
5790
|
!It && re.sheets,
|
|
@@ -5791,53 +5794,53 @@ function Yc(t) {
|
|
|
5791
5794
|
] });
|
|
5792
5795
|
}
|
|
5793
5796
|
export {
|
|
5794
|
-
|
|
5795
|
-
|
|
5797
|
+
pl as ExportPanel,
|
|
5798
|
+
Ai as FullVideo,
|
|
5796
5799
|
oc as MiniPlayer,
|
|
5797
5800
|
_l as MuteButton,
|
|
5798
5801
|
Wl as NO_SEEK,
|
|
5799
|
-
|
|
5800
|
-
|
|
5802
|
+
El as PAUSE_D,
|
|
5803
|
+
Yl as PLAY_D,
|
|
5801
5804
|
Gl as PUB_SIDE,
|
|
5802
5805
|
Vc as PanelSeek,
|
|
5803
|
-
|
|
5806
|
+
Oo as PlayerApiProvider,
|
|
5804
5807
|
kn as REMOVE_BG_LABEL,
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
|
|
5808
|
+
Ha as REMOVE_BG_NOTE,
|
|
5809
|
+
Xo as ReplayScrub,
|
|
5810
|
+
ol as SpeakerCast,
|
|
5811
|
+
Tl as SummaryPanel,
|
|
5809
5812
|
Hc as Transport,
|
|
5810
5813
|
Kl as TxFind,
|
|
5811
5814
|
ql as TxLines,
|
|
5812
5815
|
Wc as VocalStackPlayer,
|
|
5813
|
-
|
|
5814
|
-
|
|
5815
|
-
|
|
5816
|
+
ll as VoiceSheetBody,
|
|
5817
|
+
Al as YtFollow,
|
|
5818
|
+
Wa as bedNote,
|
|
5816
5819
|
Kt as browserFull,
|
|
5817
5820
|
St as lineEnd,
|
|
5818
|
-
|
|
5821
|
+
bi as lineWords,
|
|
5819
5822
|
rs as pictureT,
|
|
5820
5823
|
Tn as placePosition,
|
|
5821
5824
|
wn as realFull,
|
|
5822
5825
|
Bc as setErrorReporter,
|
|
5823
5826
|
Jr as setFullTarget,
|
|
5824
|
-
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5827
|
+
Sl as snapPosition,
|
|
5828
|
+
qr as spokenWordOf,
|
|
5829
|
+
Fa as trackPlan,
|
|
5830
|
+
wi as useApi,
|
|
5831
|
+
gl as useArchiveVoice,
|
|
5832
|
+
no as useBackgroundBed,
|
|
5830
5833
|
$l as useDuck,
|
|
5831
5834
|
Jl as useFindPull,
|
|
5832
5835
|
Ul as useFlash,
|
|
5833
5836
|
At as usePlayerApi,
|
|
5834
|
-
|
|
5835
|
-
|
|
5836
|
-
|
|
5837
|
+
Ni as useSeparatedTrack,
|
|
5838
|
+
ml as useSummaryIn,
|
|
5839
|
+
Ro as useTranscript,
|
|
5837
5840
|
Hl as useTxPlayer,
|
|
5838
5841
|
Zl as useTxVoice,
|
|
5839
|
-
|
|
5840
|
-
|
|
5842
|
+
sl as useViewportTranslation,
|
|
5843
|
+
dl as useVoiceCatalogue,
|
|
5841
5844
|
Bl as useYtLead
|
|
5842
5845
|
};
|
|
5843
5846
|
//# sourceMappingURL=index.js.map
|