@vocalstack/player 0.1.0-alpha.19 → 0.1.0-alpha.20
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/ds/Controls.d.ts +2 -1
- package/dist/index.js +595 -591
- 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 ge = (t, e, n) =>
|
|
1
|
+
var ua = Object.defineProperty;
|
|
2
|
+
var da = (t, e, n) => e in t ? ua(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
|
+
var ge = (t, e, n) => da(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
4
|
import { jsx as i, jsxs as h, Fragment as _e } from "react/jsx-runtime";
|
|
5
|
-
import { useState as I, useRef as v, useEffect as _, useLayoutEffect as Qt, createContext as ti, useMemo as Ie, useContext as
|
|
6
|
-
import { createPortal as
|
|
5
|
+
import { useState as I, useRef as v, useEffect as _, useLayoutEffect as Qt, createContext as ti, useMemo as Ie, useContext as Ma, useCallback as Xe, Fragment as ga, forwardRef as ha, useImperativeHandle as fa } from "react";
|
|
6
|
+
import { createPortal as Na } from "react-dom";
|
|
7
7
|
import { VocalStackError as ni, VocalStack as si } from "@vocalstack/js-sdk";
|
|
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
|
|
8
|
+
const ri = "https://vocalstack.com", pa = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ma = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ya = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", Ta = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
9
|
+
function wa({ 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 J = {
|
|
@@ -53,9 +53,9 @@ const J = {
|
|
|
53
53
|
video: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"
|
|
54
54
|
};
|
|
55
55
|
function oe({ d: t, ...e }) {
|
|
56
|
-
return /* @__PURE__ */ i(
|
|
56
|
+
return /* @__PURE__ */ i(wa, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ i("path", { d: n }, n)) });
|
|
57
57
|
}
|
|
58
|
-
function
|
|
58
|
+
function La({ size: t = 15 }) {
|
|
59
59
|
return /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ i("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2.5" }) });
|
|
60
60
|
}
|
|
61
61
|
function vs({ size: t = 13 }) {
|
|
@@ -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
|
|
83
|
+
function ka({ size: t = 12 }) {
|
|
84
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 In({ dark: t, height: e = 20, link: n = !0 }) {
|
|
90
|
-
const s = /* @__PURE__ */ i("img", { src: t ?
|
|
90
|
+
const s = /* @__PURE__ */ i("img", { src: t ? pa : ma, 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 js({ dark: t, size: e = 30 }) {
|
|
94
|
+
return /* @__PURE__ */ i("img", { src: t ? ya : Ta, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function Yr({ 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 }) {
|
|
@@ -122,18 +122,20 @@ function cs({ value: t, onChange: e, options: n, size: s, bordered: r = !0, fill
|
|
|
122
122
|
] }, u.value))
|
|
123
123
|
] });
|
|
124
124
|
}
|
|
125
|
-
function
|
|
125
|
+
function va({ 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
|
-
function vn({ flag: t, code: e, label: n, onClick: s, variant: r, block: a, bordered: o = !0, size: l, style: c }) {
|
|
129
|
-
|
|
130
|
-
|
|
128
|
+
function vn({ flag: t, code: e, label: n, onClick: s, variant: r, block: a, bordered: o = !0, size: l, style: c, flagOnly: d }) {
|
|
129
|
+
if (d)
|
|
130
|
+
return /* @__PURE__ */ i("button", { type: "button", className: "vs-lang-chip vs-lang-chip--flag", onClick: s, "aria-label": n ? e ? `${n} (${e})` : n : e || "Language", title: n ?? e, style: c, children: /* @__PURE__ */ i("span", { className: "vs-lang-chip__flag", children: t }) });
|
|
131
|
+
const u = a && !!e;
|
|
132
|
+
return /* @__PURE__ */ h("button", { type: "button", className: `vs-lang-chip${r ? ` vs-lang-chip--${r}` : ""}${a ? " vs-lang-chip--block" : ""}${a && !u ? " 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
133
|
t ? /* @__PURE__ */ i("span", { className: "vs-lang-chip__flag", children: t }) : null,
|
|
132
|
-
|
|
134
|
+
u ? /* @__PURE__ */ i("span", { className: "vs-lang-chip__name", children: n ?? e }) : a ? null : /* @__PURE__ */ i("span", { className: "vs-lang-chip__code", children: e }),
|
|
133
135
|
/* @__PURE__ */ i(oe, { d: J.chevronDown, size: 13, className: "vs-lang-chip__chevron", style: { color: r === "primary" ? "currentColor" : "var(--vs-text-muted)" } })
|
|
134
136
|
] });
|
|
135
137
|
}
|
|
136
|
-
function
|
|
138
|
+
function ja({ value: t, label: e = "Copy", onCopied: n }) {
|
|
137
139
|
const [s, r] = I(!1), a = async () => {
|
|
138
140
|
try {
|
|
139
141
|
await navigator.clipboard.writeText(t), r(!0), n == null || n(), setTimeout(() => r(!1), 1400);
|
|
@@ -158,7 +160,7 @@ function za({ value: t, label: e = "Copy", onCopied: n }) {
|
|
|
158
160
|
}
|
|
159
161
|
);
|
|
160
162
|
}
|
|
161
|
-
function
|
|
163
|
+
function za(t, e) {
|
|
162
164
|
Qt(() => {
|
|
163
165
|
const n = t.current, s = window.visualViewport;
|
|
164
166
|
if (!e || !n || !s) return;
|
|
@@ -197,7 +199,7 @@ function us({ children: t, ms: e = 220 }) {
|
|
|
197
199
|
}
|
|
198
200
|
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
201
|
const g = v(null);
|
|
200
|
-
return
|
|
202
|
+
return za(g, t), _(() => {
|
|
201
203
|
if (!t) return;
|
|
202
204
|
const M = (p) => {
|
|
203
205
|
p.key === "Escape" && e();
|
|
@@ -219,10 +221,10 @@ function ds({ children: t, style: e, className: n }) {
|
|
|
219
221
|
return /* @__PURE__ */ i("div", { className: n ? `eyebrow ${n}` : "eyebrow", style: e, children: t });
|
|
220
222
|
}
|
|
221
223
|
let yn = null;
|
|
222
|
-
function
|
|
224
|
+
function $c(t) {
|
|
223
225
|
yn = t;
|
|
224
226
|
}
|
|
225
|
-
function
|
|
227
|
+
function ii(t) {
|
|
226
228
|
yn == null || yn(t);
|
|
227
229
|
}
|
|
228
230
|
function On() {
|
|
@@ -232,11 +234,11 @@ function On() {
|
|
|
232
234
|
return "ogg";
|
|
233
235
|
}
|
|
234
236
|
}
|
|
235
|
-
function
|
|
237
|
+
function Ia(t = {}) {
|
|
236
238
|
const e = new URLSearchParams();
|
|
237
239
|
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
240
|
}
|
|
239
|
-
async function
|
|
241
|
+
async function Oa(t) {
|
|
240
242
|
try {
|
|
241
243
|
const e = await fetch(t, { redirect: "manual", headers: { accept: "application/json" } });
|
|
242
244
|
if (e.type === "opaqueredirect" || e.ok || e.status >= 300 && e.status < 400) return null;
|
|
@@ -251,11 +253,11 @@ async function Ca(t) {
|
|
|
251
253
|
return null;
|
|
252
254
|
}
|
|
253
255
|
}
|
|
254
|
-
function
|
|
256
|
+
function Ca(t, e, n = {}) {
|
|
255
257
|
const s = new URLSearchParams({ kind: "delivery", format: On() });
|
|
256
258
|
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
259
|
}
|
|
258
|
-
function
|
|
260
|
+
function _r(t, e, n = {}, s = "background") {
|
|
259
261
|
const r = new URLSearchParams({ kind: s, format: On() });
|
|
260
262
|
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
263
|
}
|
|
@@ -263,30 +265,30 @@ function Xn(t, e, n, s = {}) {
|
|
|
263
265
|
const r = new URLSearchParams({ kind: n });
|
|
264
266
|
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
267
|
}
|
|
266
|
-
function
|
|
267
|
-
return
|
|
268
|
+
function ba(t, e, n, s, r = {}) {
|
|
269
|
+
return xa(t, e, n, s, "mp3", r);
|
|
268
270
|
}
|
|
269
|
-
function
|
|
271
|
+
function xa(t, e, n, s, r, a) {
|
|
270
272
|
const o = new URLSearchParams({ kind: "voice", lang: n, format: r });
|
|
271
273
|
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
274
|
}
|
|
273
|
-
function
|
|
275
|
+
function Da(t, e = !0) {
|
|
274
276
|
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 &&
|
|
277
|
+
return e && ai(t), `The audio could not be played: ${s}.`;
|
|
276
278
|
}
|
|
277
|
-
function
|
|
279
|
+
function ai(t) {
|
|
278
280
|
const e = (t == null ? void 0 : t.code) ?? 0;
|
|
279
|
-
e !== 1 &&
|
|
281
|
+
e !== 1 && ii(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
|
|
280
282
|
}
|
|
281
|
-
const
|
|
282
|
-
function
|
|
283
|
+
const Sa = 3e3;
|
|
284
|
+
function Aa(t, e, n) {
|
|
283
285
|
if (t !== 503) return null;
|
|
284
286
|
const s = e == null || e.trim() === "" ? NaN : Number(e);
|
|
285
287
|
if (Number.isFinite(s)) return Math.min(15e3, Math.max(1e3, s * 1e3));
|
|
286
288
|
const r = n;
|
|
287
|
-
return r && (r.retryable === !0 || r.code === "engine_unavailable") ?
|
|
289
|
+
return r && (r.retryable === !0 || r.code === "engine_unavailable") ? Sa : null;
|
|
288
290
|
}
|
|
289
|
-
class
|
|
291
|
+
class Ea {
|
|
290
292
|
constructor(e = {}) {
|
|
291
293
|
ge(this, "entries", /* @__PURE__ */ new Map());
|
|
292
294
|
ge(this, "wanted", []);
|
|
@@ -379,13 +381,13 @@ class Ya {
|
|
|
379
381
|
}).catch(() => s(n.signal.aborted ? null : { state: "failed", at: this.now() }));
|
|
380
382
|
}
|
|
381
383
|
}
|
|
382
|
-
const
|
|
383
|
-
function
|
|
384
|
-
if (!
|
|
384
|
+
const oi = { video: !1 };
|
|
385
|
+
function li(t) {
|
|
386
|
+
if (!oi.video) return new Audio(t);
|
|
385
387
|
const e = document.createElement("video");
|
|
386
388
|
return e.playsInline = !0, t && (e.src = t), e;
|
|
387
389
|
}
|
|
388
|
-
class
|
|
390
|
+
class ci extends Error {
|
|
389
391
|
constructor() {
|
|
390
392
|
super("The voice did not start in time."), this.name = "VoiceNotStarted";
|
|
391
393
|
}
|
|
@@ -431,7 +433,7 @@ const nt = class nt {
|
|
|
431
433
|
ge(this, "loading", null);
|
|
432
434
|
ge(this, "readAhead", 0);
|
|
433
435
|
ge(this, "readAheadS", 0);
|
|
434
|
-
ge(this, "prefetch", new
|
|
436
|
+
ge(this, "prefetch", new Ea());
|
|
435
437
|
ge(this, "warmed", /* @__PURE__ */ new Set());
|
|
436
438
|
ge(this, "startingSince", /* @__PURE__ */ new Map());
|
|
437
439
|
ge(this, "retries", /* @__PURE__ */ new Map());
|
|
@@ -767,7 +769,7 @@ const nt = class nt {
|
|
|
767
769
|
const l = await fetch(n, { method: "GET" });
|
|
768
770
|
r = l.ok, s = l.status === 202 || l.status === 503 || l.status === 429;
|
|
769
771
|
const c = l.status === 503 ? await l.json().catch(() => null) : null;
|
|
770
|
-
a =
|
|
772
|
+
a = Aa(l.status, l.headers.get("Retry-After"), c);
|
|
771
773
|
} catch {
|
|
772
774
|
s = !0;
|
|
773
775
|
}
|
|
@@ -788,7 +790,7 @@ const nt = class nt {
|
|
|
788
790
|
}, a);
|
|
789
791
|
return;
|
|
790
792
|
}
|
|
791
|
-
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new
|
|
793
|
+
this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new ci()), this.onSentence(e);
|
|
792
794
|
return;
|
|
793
795
|
}
|
|
794
796
|
const o = (this.retries.get(e) ?? 0) + 1;
|
|
@@ -816,7 +818,7 @@ const nt = class nt {
|
|
|
816
818
|
}
|
|
817
819
|
element() {
|
|
818
820
|
if (this.el) return this.el;
|
|
819
|
-
const e =
|
|
821
|
+
const e = li();
|
|
820
822
|
e.preload = "auto";
|
|
821
823
|
const n = e;
|
|
822
824
|
return n.dataset && (n.dataset.vsVoice = "1"), e.playsInline = !0, e.onplaying = () => {
|
|
@@ -870,14 +872,14 @@ const nt = class nt {
|
|
|
870
872
|
};
|
|
871
873
|
ge(nt, "WAIT_MS", 15e3), ge(nt, "START_WAIT_MS", 4e3), ge(nt, "COMING_MS", 12e4), ge(nt, "SKEW_LINES", 3), ge(nt, "RETRIES", 4), ge(nt, "RETRY_MS", 1200), ge(nt, "STARTING_MS", 3e5);
|
|
872
874
|
let Ms = nt;
|
|
873
|
-
function
|
|
875
|
+
function ui(t, e) {
|
|
874
876
|
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
877
|
}
|
|
876
|
-
function
|
|
878
|
+
function Ya(t, e, n, s = {}, r) {
|
|
877
879
|
if (!t) return [];
|
|
878
880
|
const a = r != null && r.length ? r : t.clips;
|
|
879
881
|
if (!(a != null && a.length)) return [];
|
|
880
|
-
const o =
|
|
882
|
+
const o = Ia(s), l = o ? `&${o}` : "", c = t.voiceKey ? `&voice=${encodeURIComponent(t.voiceKey)}` : "";
|
|
881
883
|
return a.flatMap((d) => {
|
|
882
884
|
var M, p;
|
|
883
885
|
const u = (M = t.clipRev) == null ? void 0 : M[String(d)], g = Math.max(1, ((p = t.clipParts) == null ? void 0 : p[String(d)]) ?? 1);
|
|
@@ -896,16 +898,16 @@ function _a(t, e, n, s = {}, r) {
|
|
|
896
898
|
});
|
|
897
899
|
});
|
|
898
900
|
}
|
|
899
|
-
function
|
|
901
|
+
function di(t, e) {
|
|
900
902
|
const n = e.words;
|
|
901
903
|
if (n && n.length === t.length && t.length > 0) {
|
|
902
904
|
let s = 0;
|
|
903
905
|
for (let r = 0; r < n.length && e.t >= n[r][0]; r++) s = r;
|
|
904
906
|
return s;
|
|
905
907
|
}
|
|
906
|
-
return e.dur > 0 ?
|
|
908
|
+
return e.dur > 0 ? _a(t, e.t, e.dur) : null;
|
|
907
909
|
}
|
|
908
|
-
function
|
|
910
|
+
function _a(t, e, n) {
|
|
909
911
|
if (t.length <= 1 || !(n > 0)) return 0;
|
|
910
912
|
const s = t.map((l) => l.t.length + 1.6), r = s.reduce((l, c) => l + c, 0);
|
|
911
913
|
let a = 0;
|
|
@@ -923,14 +925,14 @@ function fs(t, e) {
|
|
|
923
925
|
return e;
|
|
924
926
|
}
|
|
925
927
|
}
|
|
926
|
-
function
|
|
928
|
+
function Mi(t, e) {
|
|
927
929
|
try {
|
|
928
930
|
e == null ? localStorage.removeItem(t) : localStorage.setItem(t, JSON.stringify(e));
|
|
929
931
|
} catch {
|
|
930
932
|
}
|
|
931
933
|
for (const n of hs) n();
|
|
932
934
|
}
|
|
933
|
-
function
|
|
935
|
+
function zs(t, e) {
|
|
934
936
|
const [n, s] = I(() => fs(t, e));
|
|
935
937
|
return _(() => {
|
|
936
938
|
const r = () => s(fs(t, e));
|
|
@@ -938,34 +940,34 @@ function js(t, e) {
|
|
|
938
940
|
hs.delete(r), window.removeEventListener("storage", r);
|
|
939
941
|
};
|
|
940
942
|
}, [t]), [n, (r) => {
|
|
941
|
-
s(r),
|
|
943
|
+
s(r), Mi(t, r);
|
|
942
944
|
}];
|
|
943
945
|
}
|
|
944
|
-
function
|
|
946
|
+
function Ur(t) {
|
|
945
947
|
const e = fs(gs, []);
|
|
946
|
-
|
|
948
|
+
Mi(gs, Array.isArray(e) ? e.filter((n) => n !== t) : []);
|
|
947
949
|
}
|
|
948
|
-
function
|
|
949
|
-
const [t, e] =
|
|
950
|
+
function gi() {
|
|
951
|
+
const [t, e] = zs(gs, []), n = Array.isArray(t) ? t : [];
|
|
950
952
|
return [n, (s) => {
|
|
951
953
|
s && e([s, ...n.filter((r) => r !== s)].slice(0, 3));
|
|
952
954
|
}];
|
|
953
955
|
}
|
|
954
|
-
function
|
|
956
|
+
function hi(t, e) {
|
|
955
957
|
if (!t) return [];
|
|
956
958
|
const n = new Set(t[e]);
|
|
957
959
|
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
960
|
}
|
|
959
|
-
function
|
|
960
|
-
const [e, n] =
|
|
961
|
+
function Ua(t) {
|
|
962
|
+
const [e, n] = zs(`vs.pins.${t}`, null);
|
|
961
963
|
return [Array.isArray(e) ? e : [], n];
|
|
962
964
|
}
|
|
963
|
-
const
|
|
964
|
-
function
|
|
965
|
-
const [e, n] =
|
|
966
|
-
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 :
|
|
965
|
+
const Ra = 352;
|
|
966
|
+
function Pa(t) {
|
|
967
|
+
const [e, n] = zs(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
|
|
968
|
+
return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : Ra, n];
|
|
967
969
|
}
|
|
968
|
-
function
|
|
970
|
+
function Is({ 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: g }) {
|
|
969
971
|
const [M, p] = I(""), [N, w] = I(!1), [k, m] = I(null);
|
|
970
972
|
_(() => {
|
|
971
973
|
t && (p(""), w(!1), m(null));
|
|
@@ -1001,9 +1003,9 @@ function zs({ open: t, onClose: e, value: n, onSelect: s, languages: r, searchPl
|
|
|
1001
1003
|
/* @__PURE__ */ i("div", { className: "vs-picker__native", children: S.native })
|
|
1002
1004
|
] }),
|
|
1003
1005
|
/* @__PURE__ */ i("span", { className: "vs-picker__slot", children: $ && /* @__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: (z) => {
|
|
1004
|
-
z.stopPropagation(),
|
|
1006
|
+
z.stopPropagation(), Ur(S.code);
|
|
1005
1007
|
}, onKeyDown: (z) => {
|
|
1006
|
-
(z.key === "Enter" || z.key === " ") && (z.preventDefault(), z.stopPropagation(),
|
|
1008
|
+
(z.key === "Enter" || z.key === " ") && (z.preventDefault(), z.stopPropagation(), Ur(S.code));
|
|
1007
1009
|
}, children: /* @__PURE__ */ i(oe, { d: J.close, size: 16 }) }) }),
|
|
1008
1010
|
/* @__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 ? k === S.code && /* @__PURE__ */ i("span", { className: "vs-picker__off", children: "UNAVAILABLE" }) : S.voice && /* @__PURE__ */ i(oe, { d: J.headphones, size: 16 }) }),
|
|
1009
1011
|
/* @__PURE__ */ i("span", { className: "vs-picker__check", children: n === S.code && (g === S.code ? /* @__PURE__ */ i(at, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ i(oe, { d: J.check, size: 16, sw: 2.2 })) })
|
|
@@ -1046,41 +1048,41 @@ function zs({ open: t, onClose: e, value: n, onSelect: s, languages: r, searchPl
|
|
|
1046
1048
|
] });
|
|
1047
1049
|
return { search: te, list: j };
|
|
1048
1050
|
}
|
|
1049
|
-
function
|
|
1050
|
-
const { search: o, list: l } =
|
|
1051
|
+
function Qa({ open: t, onClose: e, title: n, note: s, sticky: r, ...a }) {
|
|
1052
|
+
const { search: o, list: l } = Is({ ...a, open: t, onClose: e });
|
|
1051
1053
|
return /* @__PURE__ */ i($t, { open: t, onClose: e, title: n, note: s, drawer: !1, sticky: r, kind: "picker", header: o, children: l });
|
|
1052
1054
|
}
|
|
1053
|
-
const
|
|
1054
|
-
function
|
|
1055
|
-
t.muted = e.muted, Math.abs(t.currentTime - e.t) >
|
|
1055
|
+
const $a = 0.3;
|
|
1056
|
+
function Rr(t, e) {
|
|
1057
|
+
t.muted = e.muted, Math.abs(t.currentTime - e.t) > $a && (t.currentTime = Math.max(0, e.t)), e.playing ? t.paused && Promise.resolve(t.play()).catch(() => {
|
|
1056
1058
|
}) : t.paused || t.pause();
|
|
1057
1059
|
}
|
|
1058
|
-
const jn = "Remove background sound",
|
|
1059
|
-
function
|
|
1060
|
+
const jn = "Remove background sound", Ba = "Takes out everything that isn't speech: music, ambience and noise.";
|
|
1061
|
+
function Ha(t) {
|
|
1060
1062
|
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
1063
|
return n ? `${n}:${String(s).padStart(2, "0")}:${r}` : `${s}:${r}`;
|
|
1062
1064
|
}
|
|
1063
|
-
function
|
|
1064
|
-
return e === "unavailable" ? `Not available for this ${n}` : e === "making" ? s > 0 ? `Separating the speech from the background… ready up to ${
|
|
1065
|
+
function Va(t, e, n = "transcription", s = 0) {
|
|
1066
|
+
return e === "unavailable" ? `Not available for this ${n}` : e === "making" ? s > 0 ? `Separating the speech from the background… ready up to ${Ha(s)}` : "Separating the speech from the background…" : Ba;
|
|
1065
1067
|
}
|
|
1066
|
-
function
|
|
1068
|
+
function Wa(t, e) {
|
|
1067
1069
|
return { bed: e && !t, speech: !e && t };
|
|
1068
1070
|
}
|
|
1069
|
-
function
|
|
1071
|
+
function Fa(t) {
|
|
1070
1072
|
const e = t.get("bg");
|
|
1071
1073
|
return e === "off" || e === "remove";
|
|
1072
1074
|
}
|
|
1073
|
-
function
|
|
1075
|
+
function Ga(t, e) {
|
|
1074
1076
|
e ? t.searchParams.set("bg", "remove") : t.searchParams.delete("bg");
|
|
1075
1077
|
}
|
|
1076
|
-
function
|
|
1078
|
+
function Za(t, e) {
|
|
1077
1079
|
var s, r;
|
|
1078
1080
|
if (t !== 503) return null;
|
|
1079
1081
|
const n = (r = (s = e == null ? void 0 : e.data) == null ? void 0 : s.details) == null ? void 0 : r.retryAfterS;
|
|
1080
1082
|
return typeof n == "number" && n > 0 ? Math.max(2, n) : 3;
|
|
1081
1083
|
}
|
|
1082
|
-
const
|
|
1083
|
-
function
|
|
1084
|
+
const qa = 0.05;
|
|
1085
|
+
function Ka(t) {
|
|
1084
1086
|
var s, r;
|
|
1085
1087
|
const e = (r = (s = t == null ? void 0 : t.data) == null ? void 0 : s.details) == null ? void 0 : r.parts, n = [];
|
|
1086
1088
|
if (Array.isArray(e))
|
|
@@ -1092,8 +1094,8 @@ function Ja(t) {
|
|
|
1092
1094
|
}
|
|
1093
1095
|
return { untilS: n.length ? n[n.length - 1].endS : 0, parts: n };
|
|
1094
1096
|
}
|
|
1095
|
-
function
|
|
1096
|
-
if (!t.length || e < 0 || e >= t[t.length - 1].endS -
|
|
1097
|
+
function Ja(t, e) {
|
|
1098
|
+
if (!t.length || e < 0 || e >= t[t.length - 1].endS - qa) return -1;
|
|
1097
1099
|
let n = 0, s = t.length - 1;
|
|
1098
1100
|
for (; n < s; ) {
|
|
1099
1101
|
const r = n + s + 1 >> 1;
|
|
@@ -1101,22 +1103,22 @@ function Xa(t, e) {
|
|
|
1101
1103
|
}
|
|
1102
1104
|
return n;
|
|
1103
1105
|
}
|
|
1104
|
-
function
|
|
1106
|
+
function Xa(t, e, n, s) {
|
|
1105
1107
|
const r = t[e].startS, a = n[s] === r ? s : n[1 - s] === r ? 1 - s : s, o = [];
|
|
1106
1108
|
n[a] !== r && o.push([a, e]);
|
|
1107
1109
|
const l = 1 - a;
|
|
1108
1110
|
return e + 1 < t.length && n[l] !== t[e + 1].startS && o.push([l, e + 1]), { play: a, load: o };
|
|
1109
1111
|
}
|
|
1110
|
-
async function
|
|
1112
|
+
async function eo(t) {
|
|
1111
1113
|
const e = await fetch(t, { redirect: "manual", credentials: "omit" });
|
|
1112
1114
|
if (e.type === "opaqueredirect" || e.status >= 300 && e.status < 400 || e.ok) return { ready: !0 };
|
|
1113
1115
|
const n = await e.json().catch(() => null);
|
|
1114
|
-
return { ready: !1, retryS:
|
|
1116
|
+
return { ready: !1, retryS: Za(e.status, n), ...Ka(n) };
|
|
1115
1117
|
}
|
|
1116
1118
|
function es(t) {
|
|
1117
1119
|
t && (t.pause(), t.removeAttribute("src"), t.load());
|
|
1118
1120
|
}
|
|
1119
|
-
function
|
|
1121
|
+
function fi(t, e) {
|
|
1120
1122
|
const [n, s] = I("off"), [r, a] = I([]), [o, l] = I(!1), c = v(null), d = v([null, null]), u = v([NaN, NaN]), g = v(0);
|
|
1121
1123
|
return _(() => {
|
|
1122
1124
|
if (a([]), l(!1), !t) {
|
|
@@ -1126,7 +1128,7 @@ function Ni(t, e) {
|
|
|
1126
1128
|
let M = !1, p;
|
|
1127
1129
|
s("making");
|
|
1128
1130
|
const N = () => {
|
|
1129
|
-
|
|
1131
|
+
eo(t).then((w) => {
|
|
1130
1132
|
if (!M) {
|
|
1131
1133
|
if (w.ready) {
|
|
1132
1134
|
const k = new Audio();
|
|
@@ -1155,35 +1157,35 @@ function Ni(t, e) {
|
|
|
1155
1157
|
for (const m of d.current) m && !m.paused && m.pause();
|
|
1156
1158
|
};
|
|
1157
1159
|
if (n === "ready" && c.current) {
|
|
1158
|
-
M(),
|
|
1160
|
+
M(), Rr(c.current, e), l(!0);
|
|
1159
1161
|
return;
|
|
1160
1162
|
}
|
|
1161
|
-
const p = n === "making" ?
|
|
1163
|
+
const p = n === "making" ? Ja(r, e.t) : -1;
|
|
1162
1164
|
if (p < 0) {
|
|
1163
1165
|
M(), l(!1);
|
|
1164
1166
|
return;
|
|
1165
1167
|
}
|
|
1166
|
-
const N =
|
|
1168
|
+
const N = Xa(r, p, u.current, g.current);
|
|
1167
1169
|
for (const [m, f] of N.load) {
|
|
1168
1170
|
let O = d.current[m];
|
|
1169
1171
|
O || (O = new Audio(), O.preload = "auto", d.current[m] = O), O.pause(), O.src = r[f].url, u.current[m] = r[f].startS;
|
|
1170
1172
|
}
|
|
1171
1173
|
g.current = N.play;
|
|
1172
1174
|
const w = d.current[N.play], k = d.current[1 - N.play];
|
|
1173
|
-
k && !k.paused && k.pause(),
|
|
1175
|
+
k && !k.paused && k.pause(), Rr(w, { ...e, t: e.t - r[p].startS }), l(!e.playing || w.readyState >= 3);
|
|
1174
1176
|
}, [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
1177
|
}
|
|
1176
|
-
function
|
|
1177
|
-
return
|
|
1178
|
+
function to(t, e) {
|
|
1179
|
+
return fi(t, e).state;
|
|
1178
1180
|
}
|
|
1179
|
-
const
|
|
1180
|
-
function
|
|
1181
|
+
const no = 0.5, so = 3;
|
|
1182
|
+
function Os(t, e) {
|
|
1181
1183
|
let n = -1;
|
|
1182
1184
|
for (let s = 0; s < t.length && t[s].start <= e + 0.02; s++) n = s;
|
|
1183
1185
|
return n;
|
|
1184
1186
|
}
|
|
1185
|
-
function
|
|
1186
|
-
const s =
|
|
1187
|
+
function ro(t, e, n) {
|
|
1188
|
+
const s = Os(t, n);
|
|
1187
1189
|
if (s < 0) return { kind: "none" };
|
|
1188
1190
|
const r = t[s];
|
|
1189
1191
|
if (n >= r.end) return { kind: "none" };
|
|
@@ -1200,22 +1202,22 @@ function io(t, e, n) {
|
|
|
1200
1202
|
}
|
|
1201
1203
|
return { kind: "done", sid: r.sid };
|
|
1202
1204
|
}
|
|
1203
|
-
function
|
|
1205
|
+
function io(t, e, n) {
|
|
1204
1206
|
if (n == null) return !1;
|
|
1205
|
-
const s =
|
|
1207
|
+
const s = Os(t, e);
|
|
1206
1208
|
if (s < 0) return !1;
|
|
1207
1209
|
const r = t[s];
|
|
1208
1210
|
return e >= r.end ? r.sid === n : s > 0 && t[s - 1].sid === n && e - r.start < 1.5;
|
|
1209
1211
|
}
|
|
1210
|
-
function
|
|
1211
|
-
const r = Math.max(0,
|
|
1212
|
+
function ao(t, e, n, s = so) {
|
|
1213
|
+
const r = Math.max(0, Os(t, n)), a = [];
|
|
1212
1214
|
for (let o = r; o < t.length && o <= r + s; o++) {
|
|
1213
1215
|
const l = (e.get(t[o].sid) ?? []).find((c) => c.part === 0);
|
|
1214
1216
|
l && a.push(l.src);
|
|
1215
1217
|
}
|
|
1216
1218
|
return a;
|
|
1217
1219
|
}
|
|
1218
|
-
function
|
|
1220
|
+
function oo(t) {
|
|
1219
1221
|
const e = Ie(() => {
|
|
1220
1222
|
const c = /* @__PURE__ */ new Map();
|
|
1221
1223
|
for (const d of t.clips) c.set(d.sentenceId, [...c.get(d.sentenceId) ?? [], d]);
|
|
@@ -1236,9 +1238,9 @@ function lo(t) {
|
|
|
1236
1238
|
l(), a((N) => N.missing == null && N.sid == null ? N : { missing: null, sid: null });
|
|
1237
1239
|
return;
|
|
1238
1240
|
}
|
|
1239
|
-
const c =
|
|
1241
|
+
const c = ro(t.lines, e, t.t), d = c.kind === "missing" ? c.sid : null, u = c.kind === "none" ? null : c.sid;
|
|
1240
1242
|
a((N) => N.missing === d && N.sid === u ? N : { missing: d, sid: u });
|
|
1241
|
-
const g = new Set(
|
|
1243
|
+
const g = new Set(ao(t.lines, e, t.t));
|
|
1242
1244
|
for (const N of g) o(N);
|
|
1243
1245
|
const M = s.current;
|
|
1244
1246
|
M && g.add(M.src);
|
|
@@ -1248,12 +1250,12 @@ function lo(t) {
|
|
|
1248
1250
|
return;
|
|
1249
1251
|
}
|
|
1250
1252
|
if (c.kind !== "play") {
|
|
1251
|
-
if (M && !M.el.paused && !M.el.ended &&
|
|
1253
|
+
if (M && !M.el.paused && !M.el.ended && io(t.lines, t.t, M.sid)) return;
|
|
1252
1254
|
M && M.el.pause(), s.current = null;
|
|
1253
1255
|
return;
|
|
1254
1256
|
}
|
|
1255
1257
|
if (M && M.src === c.src) {
|
|
1256
|
-
if (M.el.muted = t.muted, !M.el.ended && Math.abs(M.el.currentTime - c.offset) >
|
|
1258
|
+
if (M.el.muted = t.muted, !M.el.ended && Math.abs(M.el.currentTime - c.offset) > no)
|
|
1257
1259
|
try {
|
|
1258
1260
|
M.el.currentTime = c.offset;
|
|
1259
1261
|
} catch {
|
|
@@ -1273,8 +1275,8 @@ function lo(t) {
|
|
|
1273
1275
|
});
|
|
1274
1276
|
}, [t.on, t.t, t.playing, t.muted, t.lines, e]), r;
|
|
1275
1277
|
}
|
|
1276
|
-
const
|
|
1277
|
-
function
|
|
1278
|
+
const Pr = ["play", "pause", "stop", "nexttrack", "previoustrack"];
|
|
1279
|
+
function lo(t, e) {
|
|
1278
1280
|
var n, s;
|
|
1279
1281
|
if (t === "play") {
|
|
1280
1282
|
e.playing || e.toggle();
|
|
@@ -1290,31 +1292,31 @@ function co(t, e) {
|
|
|
1290
1292
|
}
|
|
1291
1293
|
(s = e.prev) == null || s.call(e);
|
|
1292
1294
|
}
|
|
1293
|
-
function
|
|
1294
|
-
for (const n of
|
|
1295
|
+
function co(t, e) {
|
|
1296
|
+
for (const n of Pr)
|
|
1295
1297
|
try {
|
|
1296
1298
|
t.setActionHandler(n, () => {
|
|
1297
1299
|
const s = e();
|
|
1298
|
-
s &&
|
|
1300
|
+
s && lo(n, s);
|
|
1299
1301
|
});
|
|
1300
1302
|
} catch {
|
|
1301
1303
|
}
|
|
1302
1304
|
return () => {
|
|
1303
|
-
for (const n of
|
|
1305
|
+
for (const n of Pr)
|
|
1304
1306
|
try {
|
|
1305
1307
|
t.setActionHandler(n, null);
|
|
1306
1308
|
} catch {
|
|
1307
1309
|
}
|
|
1308
1310
|
};
|
|
1309
1311
|
}
|
|
1310
|
-
function
|
|
1312
|
+
function uo(t, e) {
|
|
1311
1313
|
const n = v(t);
|
|
1312
1314
|
n.current = t;
|
|
1313
1315
|
const s = !!t;
|
|
1314
1316
|
_(() => {
|
|
1315
1317
|
const a = typeof navigator < "u" ? navigator.mediaSession : void 0;
|
|
1316
1318
|
if (!(!a || !s))
|
|
1317
|
-
return
|
|
1319
|
+
return co(a, () => n.current);
|
|
1318
1320
|
}, [s]);
|
|
1319
1321
|
const r = !!(t != null && t.playing);
|
|
1320
1322
|
_(() => {
|
|
@@ -1346,7 +1348,7 @@ function Pt() {
|
|
|
1346
1348
|
spans: []
|
|
1347
1349
|
};
|
|
1348
1350
|
}
|
|
1349
|
-
function
|
|
1351
|
+
function Mo(t, e) {
|
|
1350
1352
|
for (const s of t.spans) {
|
|
1351
1353
|
const r = s.mediaEnd ?? 1 / 0;
|
|
1352
1354
|
if (e < r || s.mediaEnd == null) return s.wallStart + Math.max(0, e - s.mediaStart);
|
|
@@ -1419,11 +1421,11 @@ function ts(t, e) {
|
|
|
1419
1421
|
])
|
|
1420
1422
|
), n;
|
|
1421
1423
|
}
|
|
1422
|
-
function
|
|
1424
|
+
function Qr(t, e) {
|
|
1423
1425
|
const n = e ?? {};
|
|
1424
1426
|
return !t || !Object.keys(t).length ? n : Object.keys(n).length ? { ...t, ...n } : t;
|
|
1425
1427
|
}
|
|
1426
|
-
function
|
|
1428
|
+
function go(t, e) {
|
|
1427
1429
|
const n = e.tail;
|
|
1428
1430
|
if (!n || !Array.isArray(n.words) || n.replaced !== t.length || n.words.length !== t.length) return !1;
|
|
1429
1431
|
let s = !1;
|
|
@@ -1440,7 +1442,7 @@ function ho(t, e) {
|
|
|
1440
1442
|
}
|
|
1441
1443
|
return s;
|
|
1442
1444
|
}
|
|
1443
|
-
function
|
|
1445
|
+
function ho(t, e) {
|
|
1444
1446
|
var n;
|
|
1445
1447
|
switch (delete t.numbers, e.type) {
|
|
1446
1448
|
case "transcript.committed": {
|
|
@@ -1460,7 +1462,7 @@ function fo(t, e) {
|
|
|
1460
1462
|
confidence: s.confidence ?? (r == null ? void 0 : r.confidence),
|
|
1461
1463
|
latencyS: s.latencyS,
|
|
1462
1464
|
language: s.language,
|
|
1463
|
-
translations:
|
|
1465
|
+
translations: Qr(r == null ? void 0 : r.translations, s.translations),
|
|
1464
1466
|
scriptPos: s.scriptPos ?? (r == null ? void 0 : r.scriptPos),
|
|
1465
1467
|
scriptFrom: s.scriptPos != null ? s.scriptFrom ?? void 0 : r == null ? void 0 : r.scriptFrom
|
|
1466
1468
|
}), s.speakerName && (t.speakers[s.speaker] = s.speakerName);
|
|
@@ -1481,7 +1483,7 @@ function fo(t, e) {
|
|
|
1481
1483
|
}
|
|
1482
1484
|
case "transcript.amended": {
|
|
1483
1485
|
const s = t.segments.get(e.seq);
|
|
1484
|
-
if (s && s.corrected &&
|
|
1486
|
+
if (s && s.corrected && go(s.words, e)) {
|
|
1485
1487
|
s.text = e.text, s.words = Jt(e.seq, e.tail.words);
|
|
1486
1488
|
break;
|
|
1487
1489
|
}
|
|
@@ -1529,7 +1531,7 @@ function fo(t, e) {
|
|
|
1529
1531
|
seqs: s.seqs,
|
|
1530
1532
|
speaker: s.speaker,
|
|
1531
1533
|
start: s.start,
|
|
1532
|
-
wallStart:
|
|
1534
|
+
wallStart: Mo(t, s.start),
|
|
1533
1535
|
text: a ? r.text : s.text,
|
|
1534
1536
|
status: s.status === "open" ? "open" : "closed",
|
|
1535
1537
|
settled: !!s.settled,
|
|
@@ -1538,7 +1540,7 @@ function fo(t, e) {
|
|
|
1538
1540
|
suppressed: !!s.suppressed,
|
|
1539
1541
|
unclear: !!s.unclear,
|
|
1540
1542
|
language: s.language,
|
|
1541
|
-
translations: a ? r.translations :
|
|
1543
|
+
translations: a ? r.translations : Qr(r == null ? void 0 : r.translations, s.translations),
|
|
1542
1544
|
provisional: !!s.provisional,
|
|
1543
1545
|
translationLatencyS: s.translationLatencyS
|
|
1544
1546
|
}), s.speakerName && (t.speakers[s.speaker] = s.speakerName), s.settled) for (const o of s.seqs) {
|
|
@@ -1581,7 +1583,7 @@ function fo(t, e) {
|
|
|
1581
1583
|
}
|
|
1582
1584
|
return typeof e.seq == "number" && (t.lastSeq = Math.max(t.lastSeq, e.seq)), t;
|
|
1583
1585
|
}
|
|
1584
|
-
function
|
|
1586
|
+
function fo(t) {
|
|
1585
1587
|
const e = [], n = [...t.sentences.values()].sort((s, r) => s.start - r.start || (s.sentenceId ?? 0) - (r.sentenceId ?? 0));
|
|
1586
1588
|
for (const s of n) {
|
|
1587
1589
|
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 +1596,16 @@ function No(t) {
|
|
|
1594
1596
|
catchup: r.some((l) => l.catchup),
|
|
1595
1597
|
suppressed: s.suppressed || r.length > 0 && r.every((l) => l.suppressed),
|
|
1596
1598
|
unclear: s.unclear || r.length > 0 && r.every((l) => l.unclear),
|
|
1597
|
-
confidence:
|
|
1599
|
+
confidence: No(r),
|
|
1598
1600
|
latencyS: o == null ? void 0 : o.latencyS,
|
|
1599
1601
|
settled: s.settled || r.length > 0 && r.every((l) => l.settled),
|
|
1600
|
-
translations: Object.keys(s.translations).length ? s.translations :
|
|
1602
|
+
translations: Object.keys(s.translations).length ? s.translations : po(r),
|
|
1601
1603
|
speaker: s.speaker >= 0 ? s.speaker : (o == null ? void 0 : o.speaker) ?? -1
|
|
1602
1604
|
});
|
|
1603
1605
|
}
|
|
1604
1606
|
return e.sort((s, r) => s.start - r.start), e;
|
|
1605
1607
|
}
|
|
1606
|
-
function
|
|
1608
|
+
function No(t) {
|
|
1607
1609
|
let e = 0, n = 0;
|
|
1608
1610
|
for (const s of t) {
|
|
1609
1611
|
if (s.confidence == null) continue;
|
|
@@ -1612,20 +1614,20 @@ function po(t) {
|
|
|
1612
1614
|
}
|
|
1613
1615
|
return n ? e / n : void 0;
|
|
1614
1616
|
}
|
|
1615
|
-
function
|
|
1617
|
+
function po(t) {
|
|
1616
1618
|
const e = {};
|
|
1617
1619
|
for (const n of t) for (const [s, r] of Object.entries(n.translations)) e[s] = e[s] ? `${e[s]} ${r}` : r;
|
|
1618
1620
|
return e;
|
|
1619
1621
|
}
|
|
1620
|
-
const
|
|
1621
|
-
function
|
|
1622
|
-
return t == null ? "" : t <
|
|
1622
|
+
const mo = 0.85, yo = 0.75;
|
|
1623
|
+
function To(t) {
|
|
1624
|
+
return t == null ? "" : t < yo ? "low" : t < mo ? "mid" : "";
|
|
1623
1625
|
}
|
|
1624
1626
|
const mn = ["a", "b", "c", "d", "e", "f", "g", "h"];
|
|
1625
|
-
function
|
|
1627
|
+
function wo(t) {
|
|
1626
1628
|
return mn[(t % mn.length + mn.length) % mn.length];
|
|
1627
1629
|
}
|
|
1628
|
-
function
|
|
1630
|
+
function Lo(t) {
|
|
1629
1631
|
if (t.numbers) return t.numbers;
|
|
1630
1632
|
const e = /* @__PURE__ */ new Map(), n = (a, o) => {
|
|
1631
1633
|
if (a < 0) return;
|
|
@@ -1641,26 +1643,26 @@ function ko(t) {
|
|
|
1641
1643
|
}
|
|
1642
1644
|
function zn(t, e) {
|
|
1643
1645
|
if (e < 0) return 0;
|
|
1644
|
-
const n =
|
|
1646
|
+
const n = Lo(t);
|
|
1645
1647
|
return n.get(e) ?? n.size + 1 + e;
|
|
1646
1648
|
}
|
|
1647
|
-
const
|
|
1648
|
-
function
|
|
1649
|
-
return t && t.trim() && !
|
|
1649
|
+
const ko = /^\s*speaker\s+\d+\s*$/i;
|
|
1650
|
+
function $r(t) {
|
|
1651
|
+
return t && t.trim() && !ko.test(t) ? t : void 0;
|
|
1650
1652
|
}
|
|
1651
|
-
function
|
|
1653
|
+
function Ni(t, e) {
|
|
1652
1654
|
var n;
|
|
1653
|
-
return
|
|
1655
|
+
return $r(t.speakers[e]) ?? $r((n = t.speakerIds[e]) == null ? void 0 : n.name);
|
|
1654
1656
|
}
|
|
1655
|
-
function
|
|
1656
|
-
return e < 0 ? "" :
|
|
1657
|
+
function Cs(t, e) {
|
|
1658
|
+
return e < 0 ? "" : Ni(t, e) ?? `Speaker ${zn(t, e)}`;
|
|
1657
1659
|
}
|
|
1658
|
-
function
|
|
1660
|
+
function pi(t, e) {
|
|
1659
1661
|
if (e < 0) return "?";
|
|
1660
|
-
const n =
|
|
1662
|
+
const n = Ni(t, e);
|
|
1661
1663
|
return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((r) => r[0]).join("") || `S${zn(t, e)}`).toUpperCase() : `S${zn(t, e)}`;
|
|
1662
1664
|
}
|
|
1663
|
-
function
|
|
1665
|
+
function vo(t) {
|
|
1664
1666
|
if (t) {
|
|
1665
1667
|
if (t.startsWith("#"))
|
|
1666
1668
|
return { fg: t, soft: `color-mix(in srgb, ${t} 16%, transparent)` };
|
|
@@ -1668,11 +1670,11 @@ function jo(t) {
|
|
|
1668
1670
|
return { fg: `var(--vx-${t})`, soft: `var(--vx-${t}-soft)` };
|
|
1669
1671
|
}
|
|
1670
1672
|
}
|
|
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:
|
|
1673
|
+
function bs(t, e) {
|
|
1674
|
+
const n = t.speakerIds[e], s = vo(n == null ? void 0 : n.color);
|
|
1675
|
+
return { fg: s == null ? void 0 : s.fg, soft: s == null ? void 0 : s.soft, lane: wo(zn(t, e) - 1), hasVoice: !!n };
|
|
1674
1676
|
}
|
|
1675
|
-
function
|
|
1677
|
+
function jo(t, e, n, s = !1) {
|
|
1676
1678
|
const r = n ? n.speakerLabels ?? "auto" : null, a = (s ? r : null) ?? t.labels ?? r ?? "on";
|
|
1677
1679
|
if (a !== "auto") return a === "on";
|
|
1678
1680
|
const o = /* @__PURE__ */ new Set();
|
|
@@ -1680,7 +1682,7 @@ function zo(t, e, n, s = !1) {
|
|
|
1680
1682
|
return !0;
|
|
1681
1683
|
return !1;
|
|
1682
1684
|
}
|
|
1683
|
-
const
|
|
1685
|
+
const zo = /* @__PURE__ */ new Set([
|
|
1684
1686
|
"invalid_audio",
|
|
1685
1687
|
"invalid_options",
|
|
1686
1688
|
"invalid_token",
|
|
@@ -1705,14 +1707,14 @@ const Io = /* @__PURE__ */ new Set([
|
|
|
1705
1707
|
"invalid_request",
|
|
1706
1708
|
"aborted",
|
|
1707
1709
|
"unauthorized"
|
|
1708
|
-
]),
|
|
1710
|
+
]), mi = {
|
|
1709
1711
|
internal: "Something went wrong on our side. Please try again.",
|
|
1710
1712
|
unavailable: "VocalStack is briefly unavailable. Please try again in a moment.",
|
|
1711
1713
|
engine_unavailable: "No transcription engine is available right now. Please try again in a moment.",
|
|
1712
1714
|
engine_lost: "The transcription engine stopped. Please try again.",
|
|
1713
1715
|
capacity_exceeded: "Every transcription engine is busy right now. Please try again in a moment.",
|
|
1714
1716
|
timeout: "That took too long. Please try again."
|
|
1715
|
-
}, Ns =
|
|
1717
|
+
}, Ns = mi.internal, ns = "Can't reach VocalStack. Check your connection.", Br = {
|
|
1716
1718
|
NotAllowedError: "The browser blocked this. Allow it for this site, then try again.",
|
|
1717
1719
|
NotSupportedError: "This browser cannot play this.",
|
|
1718
1720
|
AbortError: "It was cancelled."
|
|
@@ -1720,29 +1722,29 @@ const Io = /* @__PURE__ */ new Set([
|
|
|
1720
1722
|
function kt(t) {
|
|
1721
1723
|
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
1724
|
if (n || s && s >= 400)
|
|
1723
|
-
return n &&
|
|
1725
|
+
return n && zo.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: ns, code: n, details: r } : s === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : ns, code: n, status: s, details: r } : { message: n && mi[n] || Ns, code: n, status: s, details: r };
|
|
1724
1726
|
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 &&
|
|
1727
|
+
return a === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && ii(t instanceof Error ? t : new Error(String(t))), { message: ns }) : Br[a] ? { message: Br[a] } : t instanceof Error && a === "Error" && !(t instanceof ni) ? { message: t.message } : { message: Ns };
|
|
1726
1728
|
}
|
|
1727
|
-
const
|
|
1729
|
+
const yi = "https://api.vocalstack.com", xs = ti(null);
|
|
1728
1730
|
function At() {
|
|
1729
|
-
const t =
|
|
1731
|
+
const t = Ma(xs);
|
|
1730
1732
|
if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
|
|
1731
1733
|
return t;
|
|
1732
1734
|
}
|
|
1733
|
-
function
|
|
1734
|
-
return t.value ? /* @__PURE__ */ i(
|
|
1735
|
+
function Io(t) {
|
|
1736
|
+
return t.value ? /* @__PURE__ */ i(xs.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ i(Oo, { ...t });
|
|
1735
1737
|
}
|
|
1736
|
-
function
|
|
1737
|
-
const n =
|
|
1738
|
-
return /* @__PURE__ */ i(
|
|
1738
|
+
function Oo({ children: t, ...e }) {
|
|
1739
|
+
const n = Ti(e);
|
|
1740
|
+
return /* @__PURE__ */ i(xs.Provider, { value: n, children: t });
|
|
1739
1741
|
}
|
|
1740
|
-
const
|
|
1741
|
-
function
|
|
1742
|
-
return
|
|
1742
|
+
const Co = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
1743
|
+
function bo(t) {
|
|
1744
|
+
return Co.test(t);
|
|
1743
1745
|
}
|
|
1744
|
-
function
|
|
1745
|
-
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, s = !e && !n && !!t.token && (!t.id ||
|
|
1746
|
+
function Ti(t) {
|
|
1747
|
+
const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, s = !e && !n && !!t.token && (!t.id || bo(t.id)), r = (t.baseUrl ?? yi).replace(/\/$/, ""), a = v(t.token);
|
|
1746
1748
|
a.current = t.token;
|
|
1747
1749
|
const o = !!t.token, l = Ie(() => async () => {
|
|
1748
1750
|
const u = a.current;
|
|
@@ -1755,10 +1757,10 @@ function wi(t) {
|
|
|
1755
1757
|
return { client: d, origin: r, owner: s, shareCode: u, listen: null, bearer: l, cred: { shareCode: u }, readAs: u ? { shareCode: u } : {} };
|
|
1756
1758
|
}, [d, r, s, t.id, l, e, n]);
|
|
1757
1759
|
}
|
|
1758
|
-
function
|
|
1760
|
+
function xo(t, e) {
|
|
1759
1761
|
return e ? { ...t, cred: { media: e } } : t;
|
|
1760
1762
|
}
|
|
1761
|
-
async function
|
|
1763
|
+
async function Do(t, e) {
|
|
1762
1764
|
if (t.listen) {
|
|
1763
1765
|
const s = await t.client.recordings.get(t.listen.recordingId, t.readAs), r = s;
|
|
1764
1766
|
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,11 +1785,11 @@ async function So(t, e) {
|
|
|
1783
1785
|
sharedBy: n.sharedBy ?? null
|
|
1784
1786
|
};
|
|
1785
1787
|
}
|
|
1786
|
-
function
|
|
1788
|
+
function So(t, e) {
|
|
1787
1789
|
const [n, s] = I(null), [r, a] = I(!1), [o, l] = I(null), [c, d] = I(0);
|
|
1788
1790
|
return _(() => {
|
|
1789
1791
|
let u = !0;
|
|
1790
|
-
return
|
|
1792
|
+
return Do(t, e).then((g) => {
|
|
1791
1793
|
u && (s(g), a(!1), l(null));
|
|
1792
1794
|
}).catch((g) => {
|
|
1793
1795
|
if (!u) return;
|
|
@@ -1798,7 +1800,7 @@ function Ao(t, e) {
|
|
|
1798
1800
|
};
|
|
1799
1801
|
}, [t, e, c]), { source: n, gone: r, error: o, reload: () => d((u) => u + 1) };
|
|
1800
1802
|
}
|
|
1801
|
-
function
|
|
1803
|
+
function Ao(t, e) {
|
|
1802
1804
|
const [n, s] = I(null);
|
|
1803
1805
|
return _(() => {
|
|
1804
1806
|
if (!t.owner || !e) {
|
|
@@ -1819,7 +1821,7 @@ function Eo(t, e) {
|
|
|
1819
1821
|
};
|
|
1820
1822
|
}, [t, e]), n;
|
|
1821
1823
|
}
|
|
1822
|
-
async function
|
|
1824
|
+
async function Hr(t, e, n = {}) {
|
|
1823
1825
|
const s = new URLSearchParams();
|
|
1824
1826
|
for (const [o, l] of Object.entries(n.query ?? {})) l != null && s.set(o, l);
|
|
1825
1827
|
t.shareCode && s.set("shareCode", t.shareCode), t.listen && s.set("listenerToken", t.listen.token);
|
|
@@ -1832,7 +1834,7 @@ async function Br(t, e, n = {}) {
|
|
|
1832
1834
|
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
1835
|
}
|
|
1834
1836
|
const ss = /* @__PURE__ */ new Map();
|
|
1835
|
-
function
|
|
1837
|
+
function wi() {
|
|
1836
1838
|
const t = At(), [e, n] = I(ss.get(t.origin) ?? null);
|
|
1837
1839
|
return _(() => {
|
|
1838
1840
|
ss.has(t.origin) || t.client.languages.list().then((s) => {
|
|
@@ -1841,7 +1843,7 @@ function Li() {
|
|
|
1841
1843
|
});
|
|
1842
1844
|
}, [t]), e;
|
|
1843
1845
|
}
|
|
1844
|
-
function
|
|
1846
|
+
function Li(t, e) {
|
|
1845
1847
|
const [n, s] = I(null), [r, a] = I(null), [o, l] = I(0);
|
|
1846
1848
|
return _(() => {
|
|
1847
1849
|
let c = !0;
|
|
@@ -1850,8 +1852,8 @@ function ki(t, e) {
|
|
|
1850
1852
|
};
|
|
1851
1853
|
}, [...e, o]), { data: n, error: r, reload: () => l((c) => c + 1) };
|
|
1852
1854
|
}
|
|
1853
|
-
const
|
|
1854
|
-
function
|
|
1855
|
+
const Eo = (t) => new Promise((e) => setTimeout(e, t)), Yo = 2500, _o = 72;
|
|
1856
|
+
function Uo(t, e) {
|
|
1855
1857
|
const n = At(), s = v(n);
|
|
1856
1858
|
s.current = n;
|
|
1857
1859
|
const [r, a] = I(Pt), o = v(Pt()), l = v(null), c = v(e.lang ?? null), [d, u] = I(!1), [g, M] = I(null), [p, N] = I(!1), w = Xe(() => {
|
|
@@ -1885,7 +1887,7 @@ function Ro(t, e) {
|
|
|
1885
1887
|
if (ae.type === "snapshot")
|
|
1886
1888
|
o.current = ts(ae.snapshot, ae.reason === "gap" ? o.current : Pt()), w(), re();
|
|
1887
1889
|
else if (ae.type === "frame") {
|
|
1888
|
-
|
|
1890
|
+
ho(o.current, ae.frame);
|
|
1889
1891
|
const we = ae.frame;
|
|
1890
1892
|
we.type === "recording.state" && (E = o.current.state, (C = (V = k.current).onState) == null || C.call(V, we.state, we.reason)), (P = (ue = k.current).onFrame) == null || P.call(ue, we), w();
|
|
1891
1893
|
} else ae.type === "closed" && u(!1);
|
|
@@ -1920,7 +1922,7 @@ function Ro(t, e) {
|
|
|
1920
1922
|
}
|
|
1921
1923
|
const le = o.current.state;
|
|
1922
1924
|
if (!$ || le === "ended" || le === "finalized" || le === "processing") return;
|
|
1923
|
-
L += 1, await
|
|
1925
|
+
L += 1, await Eo(Math.min(15e3, 1e3 * 2 ** Math.min(L, 4)));
|
|
1924
1926
|
}
|
|
1925
1927
|
})(), () => {
|
|
1926
1928
|
var V;
|
|
@@ -1936,9 +1938,9 @@ function Ro(t, e) {
|
|
|
1936
1938
|
z === b.current && (o.current = ts(C, o.current), A($), w(), C.translationPending && V > 0 && window.setTimeout(() => {
|
|
1937
1939
|
z === b.current && E(V - 1).catch(() => {
|
|
1938
1940
|
});
|
|
1939
|
-
},
|
|
1941
|
+
}, Yo));
|
|
1940
1942
|
});
|
|
1941
|
-
E(
|
|
1943
|
+
E(_o).catch(() => {
|
|
1942
1944
|
z === b.current && $ && D($);
|
|
1943
1945
|
}).finally(() => {
|
|
1944
1946
|
z === b.current && f(!1);
|
|
@@ -1954,7 +1956,7 @@ function Ro(t, e) {
|
|
|
1954
1956
|
}, [w]), S = Xe(() => M(null), []);
|
|
1955
1957
|
return { model: r, connected: d, error: g, notFound: p, clearError: S, setLanguage: te, mergeTranslations: j, translating: m, translateFailed: O, shownLang: W };
|
|
1956
1958
|
}
|
|
1957
|
-
const
|
|
1959
|
+
const Vr = {
|
|
1958
1960
|
English: { vcFor: "Voice for", vcMute: "Mute", vcUnmute: "Unmute", vcMuted: "MUTED", vcShared: "Also used by", vcUsedBy: "Used by", vcUnknownSpk: "Unknown", vcUse: "Use this voice", vcGetting: "Downloading…", vcSample: "Here’s how it sounds.", vcPreview: "PREVIEW", vcMale: "Male", vcFemale: "Female", vcSynth: "SYNTHETIC", origAudio: "ORIGINAL AUDIO", vcCloned: "VOICES", vcBadge: "CLONED", vcNone: "TEXT ONLY", vcNoVoice: "No voice for ", vcSheet: "VOICE", vcNeutral: "SYNTHETIC VOICE", vcWarm: "SYNTHETIC VOICE", searchPlaceholder: "Search this broadcast", noise: "Audio unclear", newLines: "new", live: "LIVE", ended: "ENDED", waiting: "WAITING", corrected: "CORRECTED", hostLine: "Hosted by Marcus Reed · 4 speakers", langLabel: "LANGUAGE", langCount: "100+ languages", read: "Read", listen: "Listen", watch: "Watch", waitTitle: "The broadcast hasn’t started yet", waitBody: "The transcript appears here as soon as the host starts speaking.", english: "ENGLISH", playing: "Playing the live audio", ready: "Tap to start audio", readyNote: "Set your volume first", voiceMeta: "ORIGINAL AUDIO", voice: "Voice", sheetTitle: "APP LANGUAGE", done: "Done", search: "Search 100+ languages", sheetNote: "Follow along in your language.", moreLangs: "more", confTitle: "Some words weren't heard clearly", confBody: "The transcript marks words the model is unsure about with a dashed underline. The words keep their colour, so only the underline tells you where to look.", confMid: "Slightly unsure — probably right", confHigh: "Low confidence — may be wrong", settings: "BROADCAST", setOrig: "Show original language", setTheme: "Appearance", light: "Light", dark: "Dark", setConf: "Show uncertain words", setConfHint1: "Colours words the model is unsure about — ", setConfMid: "amber", setConfSep: " or ", setConfLow: "red", setConfHint2: "", behindLive: "TRANSLATION LATENCY", behindNote: "How far the translation trails the speaker right now.", shareLabel: "LIVE TRANSLATION LINK", copy: "Copy", copied: "Copied" },
|
|
1959
1961
|
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
1962
|
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 +1964,10 @@ const Hr = {
|
|
|
1962
1964
|
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
1965
|
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
1966
|
};
|
|
1965
|
-
function
|
|
1966
|
-
return t &&
|
|
1967
|
+
function ki(t) {
|
|
1968
|
+
return t && Vr[t] || Vr.English;
|
|
1967
1969
|
}
|
|
1968
|
-
async function
|
|
1970
|
+
async function vi(t) {
|
|
1969
1971
|
var r, a, o, l, c;
|
|
1970
1972
|
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
1973
|
return new ni(typeof n == "string" ? n : "internal", typeof s == "string" ? s : Ns, { 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 +1988,14 @@ function rs(t) {
|
|
|
1986
1988
|
return "queued";
|
|
1987
1989
|
}
|
|
1988
1990
|
}
|
|
1989
|
-
function
|
|
1991
|
+
function Ro(t) {
|
|
1990
1992
|
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
1993
|
}
|
|
1992
|
-
const
|
|
1994
|
+
const Po = (t, e) => {
|
|
1993
1995
|
const n = (t == null ? void 0 : t.segmentsDone) ?? e, s = Math.max(n, (t == null ? void 0 : t.segmentsTotal) ?? n);
|
|
1994
1996
|
return `${n} / ${s} SEGMENTS`;
|
|
1995
1997
|
};
|
|
1996
|
-
function
|
|
1998
|
+
function Qo(t, e) {
|
|
1997
1999
|
var r;
|
|
1998
2000
|
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
2001
|
if (s && (s.startS != null || s.endS != null)) {
|
|
@@ -2008,24 +2010,24 @@ const ps = [
|
|
|
2008
2010
|
{ 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
2011
|
{ 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
2012
|
];
|
|
2011
|
-
function
|
|
2013
|
+
function Ds(t) {
|
|
2012
2014
|
const e = document.createElement("a");
|
|
2013
2015
|
e.href = t, e.style.display = "none", document.body.appendChild(e), e.click(), e.remove();
|
|
2014
2016
|
}
|
|
2015
|
-
async function
|
|
2017
|
+
async function $o(t) {
|
|
2016
2018
|
const e = await fetch(t, { redirect: "manual" });
|
|
2017
|
-
if (e.type !== "opaqueredirect" && !e.ok) throw await
|
|
2018
|
-
|
|
2019
|
+
if (e.type !== "opaqueredirect" && !e.ok) throw await vi(e);
|
|
2020
|
+
Ds(t);
|
|
2019
2021
|
}
|
|
2020
|
-
async function
|
|
2022
|
+
async function Bo(t, e, n, s = {}) {
|
|
2021
2023
|
var M, p;
|
|
2022
2024
|
const r = await t.client.recordings.export(e, n, { lang: s.lang ?? void 0, ...t.readAs });
|
|
2023
|
-
if (!r.ok) throw await
|
|
2025
|
+
if (!r.ok) throw await vi(r);
|
|
2024
2026
|
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 = (p = /filename="([^"]+)"/i.exec(o)) == null ? void 0 : p[1], d = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, u = URL.createObjectURL(a), g = document.createElement("a");
|
|
2025
2027
|
g.href = u, g.download = d, g.style.display = "none", document.body.appendChild(g), g.click(), g.remove(), window.setTimeout(() => URL.revokeObjectURL(u), 6e4);
|
|
2026
2028
|
}
|
|
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((g) => g.lang === s), l = (u) =>
|
|
2029
|
+
async function Ho(t, e) {
|
|
2030
|
+
const { recordingId: n, lang: s, voiceKey: r, cred: a } = e, o = async () => (await t.client.recordings.voice(n, s, t.readAs)).filter((g) => g.lang === s), l = (u) => ui(u, r);
|
|
2029
2031
|
let c = l(await o());
|
|
2030
2032
|
(!c || c.state === "clips" || c.state === "failed") && await e.request();
|
|
2031
2033
|
const d = Date.now() + (e.timeoutMs ?? 10 * 6e4);
|
|
@@ -2034,25 +2036,25 @@ async function Vo(t, e) {
|
|
|
2034
2036
|
if (Date.now() > d) throw new Error("The spoken track is taking too long; try again in a moment.");
|
|
2035
2037
|
await new Promise((u) => setTimeout(u, 4e3)), c = l(await o());
|
|
2036
2038
|
}
|
|
2037
|
-
|
|
2039
|
+
Ds(ba(t.origin, n, s, c.voiceKey, a));
|
|
2038
2040
|
}
|
|
2039
2041
|
const ms = (t) => {
|
|
2040
2042
|
var e;
|
|
2041
2043
|
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
|
|
2044
|
+
}, Vo = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, Wr = 0.3, Wo = 1.5;
|
|
2045
|
+
function ji(t, e, n) {
|
|
2044
2046
|
var r;
|
|
2045
2047
|
const s = (r = t.words[t.words.length - 1]) == null ? void 0 : r.end;
|
|
2046
2048
|
return s != null && s > t.start ? s : t.end != null && t.end > t.start ? t.end : (e == null ? void 0 : e.start) ?? n;
|
|
2047
2049
|
}
|
|
2048
|
-
function
|
|
2050
|
+
function Fo(t, e, n) {
|
|
2049
2051
|
var c, d;
|
|
2050
2052
|
const s = t[e];
|
|
2051
2053
|
if (!s) return !1;
|
|
2052
|
-
const r = (((c = s.words[0]) == null ? void 0 : c.start) ?? s.start) -
|
|
2054
|
+
const r = (((c = s.words[0]) == null ? void 0 : c.start) ?? s.start) - Wr, a = t[e + 1], o = ji(s, a, s.start + 4) + Wo, l = a ? Math.min(o, (((d = a.words[0]) == null ? void 0 : d.start) ?? a.start) - Wr) : o;
|
|
2053
2055
|
return n >= r && n < Math.max(l, r + 0.5);
|
|
2054
2056
|
}
|
|
2055
|
-
function
|
|
2057
|
+
function Go(t, e, n) {
|
|
2056
2058
|
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
2059
|
let o = e;
|
|
2058
2060
|
return t.map((l, c) => {
|
|
@@ -2067,7 +2069,7 @@ function is(t) {
|
|
|
2067
2069
|
bottom: Math.min(parseFloat(e.paddingBottom) || 0, n)
|
|
2068
2070
|
};
|
|
2069
2071
|
}
|
|
2070
|
-
function
|
|
2072
|
+
function Zo(t, e, n = 0) {
|
|
2071
2073
|
const s = v(() => {
|
|
2072
2074
|
});
|
|
2073
2075
|
_(() => {
|
|
@@ -2130,10 +2132,10 @@ function qo(t, e, n = 0) {
|
|
|
2130
2132
|
};
|
|
2131
2133
|
}, []);
|
|
2132
2134
|
}
|
|
2133
|
-
function
|
|
2135
|
+
function qo({ thumbRef: t }) {
|
|
2134
2136
|
return /* @__PURE__ */ i("div", { className: "feedbar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", { ref: t, className: "feedbar__thumb" }) });
|
|
2135
2137
|
}
|
|
2136
|
-
function
|
|
2138
|
+
function Ko({ error: t, onClose: e }) {
|
|
2137
2139
|
const n = v(e);
|
|
2138
2140
|
if (n.current = e, _(() => {
|
|
2139
2141
|
if (!t) return;
|
|
@@ -2153,10 +2155,10 @@ function Jo({ error: t, onClose: e }) {
|
|
|
2153
2155
|
/* @__PURE__ */ i("button", { type: "button", onClick: e, "aria-label": "Dismiss", children: /* @__PURE__ */ i(oe, { d: J.close, size: 14 }) })
|
|
2154
2156
|
] });
|
|
2155
2157
|
}
|
|
2156
|
-
function
|
|
2158
|
+
function zi({ color: t }) {
|
|
2157
2159
|
return /* @__PURE__ */ i("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ i(oe, { d: J.voiceClone, size: 13, sw: 1.7, stroke: t }) });
|
|
2158
2160
|
}
|
|
2159
|
-
function
|
|
2161
|
+
function Bc({ chip: t, note: e, scrub: n, mute: s, voice: r, prev: a, play: o, next: l }) {
|
|
2160
2162
|
return /* @__PURE__ */ h("div", { className: "vs-tt", children: [
|
|
2161
2163
|
/* @__PURE__ */ h("div", { className: "vs-tt__r1", children: [
|
|
2162
2164
|
/* @__PURE__ */ i("div", { className: "vs-tt__chip", children: t }),
|
|
@@ -2173,7 +2175,7 @@ function Hc({ chip: t, note: e, scrub: n, mute: s, voice: r, prev: a, play: o, n
|
|
|
2173
2175
|
] })
|
|
2174
2176
|
] });
|
|
2175
2177
|
}
|
|
2176
|
-
function
|
|
2178
|
+
function Jo({ index: t, total: e, atLabel: n, durLabel: s, stepLabel: r, onSeek: a, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: d, glideMs: u = 260 }) {
|
|
2177
2179
|
const g = v(null), M = v(!1), [p, N] = I(null), w = Math.max(1, e), k = p ?? d, m = k != null ? Math.min(100, Math.max(0, k * 100)) : t / Math.max(1, w - 1) * 100, f = d != null && u > 0 && p == null ? `width ${u}ms linear, left ${u}ms linear` : "none", O = (b) => {
|
|
2178
2180
|
var j;
|
|
2179
2181
|
const W = (j = g.current) == null ? void 0 : j.getBoundingClientRect();
|
|
@@ -2217,7 +2219,7 @@ function Xo({ index: t, total: e, atLabel: n, durLabel: s, stepLabel: r, onSeek:
|
|
|
2217
2219
|
] })
|
|
2218
2220
|
] });
|
|
2219
2221
|
}
|
|
2220
|
-
function
|
|
2222
|
+
function Xo(t, e, n) {
|
|
2221
2223
|
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
2224
|
return {
|
|
2223
2225
|
script: a ? 0 : t.words.filter((l) => l.script && !o(l)).length,
|
|
@@ -2225,7 +2227,7 @@ function el(t, e, n) {
|
|
|
2225
2227
|
manualCount: a ? 0 : r.filter((l) => l.kind === "word").length
|
|
2226
2228
|
};
|
|
2227
2229
|
}
|
|
2228
|
-
function
|
|
2230
|
+
function el({ f: t, desk: e, onOpen: n }) {
|
|
2229
2231
|
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
2232
|
l.stopPropagation(), n == null || n();
|
|
2231
2233
|
}, children: [
|
|
@@ -2238,7 +2240,7 @@ function tl({ f: t, desk: e, onOpen: n }) {
|
|
|
2238
2240
|
t.manual && s(e ? "MANUAL FIX" : "MANUAL", t.manualCount, t.script === 0)
|
|
2239
2241
|
] });
|
|
2240
2242
|
}
|
|
2241
|
-
function
|
|
2243
|
+
function tl({ onOpen: t, alone: e }) {
|
|
2242
2244
|
const [n, s] = I(!1);
|
|
2243
2245
|
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
2246
|
r.stopPropagation(), t();
|
|
@@ -2247,7 +2249,7 @@ function nl({ onOpen: t, alone: e }) {
|
|
|
2247
2249
|
n && "FIX"
|
|
2248
2250
|
] });
|
|
2249
2251
|
}
|
|
2250
|
-
function
|
|
2252
|
+
function nl(t, e, n, s) {
|
|
2251
2253
|
const r = At(), [a, o] = I([]), [l, c] = I(0), d = v(/* @__PURE__ */ new Set()), u = v(!1), g = Ie(() => new Map(n.filter((p) => p.sentenceId != null).map((p) => [p.sentenceId, p])), [n]);
|
|
2252
2254
|
_(() => {
|
|
2253
2255
|
d.current = /* @__PURE__ */ new Set();
|
|
@@ -2274,13 +2276,13 @@ function sl(t, e, n, s) {
|
|
|
2274
2276
|
}
|
|
2275
2277
|
}, [t, e, a, l, g, s]), M;
|
|
2276
2278
|
}
|
|
2277
|
-
function
|
|
2279
|
+
function sl(t) {
|
|
2278
2280
|
return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
|
|
2279
2281
|
}
|
|
2280
2282
|
function qt(t, e) {
|
|
2281
2283
|
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
2284
|
}
|
|
2283
|
-
function
|
|
2285
|
+
function rl(t, e) {
|
|
2284
2286
|
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
2287
|
for (const r of n) {
|
|
2286
2288
|
const a = qt(r, e).head;
|
|
@@ -2291,18 +2293,18 @@ function il(t, e) {
|
|
|
2291
2293
|
return { v: r, headOn: l, head: o, headCount: s[o], rule: l ? "0" : "1px solid var(--hair)" };
|
|
2292
2294
|
});
|
|
2293
2295
|
}
|
|
2294
|
-
function
|
|
2296
|
+
function il(t, e, n) {
|
|
2295
2297
|
const s = /* @__PURE__ */ new Set();
|
|
2296
2298
|
let r = !1;
|
|
2297
2299
|
for (const o of t)
|
|
2298
2300
|
o.speaker < 0 ? r = !0 : s.add(o.speaker);
|
|
2299
2301
|
const a = [...s].sort((o, l) => o - l).map((o) => {
|
|
2300
2302
|
var c;
|
|
2301
|
-
const l =
|
|
2303
|
+
const l = bs(e, o);
|
|
2302
2304
|
return {
|
|
2303
2305
|
key: o,
|
|
2304
|
-
name:
|
|
2305
|
-
initial:
|
|
2306
|
+
name: Cs(e, o),
|
|
2307
|
+
initial: pi(e, o),
|
|
2306
2308
|
lane: l.lane,
|
|
2307
2309
|
sex: e.speakerSex[o] ?? null,
|
|
2308
2310
|
voiceId: ((c = e.speakerIds[o]) == null ? void 0 : c.voiceId) ?? null,
|
|
@@ -2313,11 +2315,11 @@ function al(t, e, n) {
|
|
|
2313
2315
|
});
|
|
2314
2316
|
return r && a.push({ key: -1, name: n, initial: "?", lane: null, sex: null }), a;
|
|
2315
2317
|
}
|
|
2316
|
-
function
|
|
2318
|
+
function Fr(t) {
|
|
2317
2319
|
const e = [...t.entries()].filter(([, n]) => n.trim()).sort((n, s) => n[0] - s[0]).map(([n, s]) => `${n}=${s.trim()}`).join(";");
|
|
2318
2320
|
return e ? `cast:${e}` : "";
|
|
2319
2321
|
}
|
|
2320
|
-
function
|
|
2322
|
+
function Gr(t) {
|
|
2321
2323
|
if (!t || !t.startsWith("cast:")) return null;
|
|
2322
2324
|
const e = /* @__PURE__ */ new Map();
|
|
2323
2325
|
for (const n of t.slice(5).split(";")) {
|
|
@@ -2328,7 +2330,7 @@ function Fr(t) {
|
|
|
2328
2330
|
}
|
|
2329
2331
|
return e.size ? e : null;
|
|
2330
2332
|
}
|
|
2331
|
-
function
|
|
2333
|
+
function Zr(t, e, n = !0) {
|
|
2332
2334
|
const s = e.filter((o) => !o.cloned), r = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
|
|
2333
2335
|
for (const o of t) {
|
|
2334
2336
|
const c = (o.voiceId ? e.find((M) => M.cloned && !M.auto && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (n ? (o.voiceId ? e.find((M) => M.cloned && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (o.key >= 0 ? e.find((M) => M.cloned && M.auto && M.consent !== "pending" && M.speaker === o.key) : void 0) : void 0);
|
|
@@ -2341,7 +2343,7 @@ function Gr(t, e, n = !0) {
|
|
|
2341
2343
|
}
|
|
2342
2344
|
return a;
|
|
2343
2345
|
}
|
|
2344
|
-
function
|
|
2346
|
+
function al({ roster: t, selected: e, onSelect: n, noClone: s, building: r, short: a, warn: o, sexOf: l, t: c }) {
|
|
2345
2347
|
const d = t.find((u) => u.key === e) ?? t[0] ?? null;
|
|
2346
2348
|
return d ? /* @__PURE__ */ i("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, padding: "0 2px 9px", margin: "0 -2px" }, children: t.map((u) => {
|
|
2347
2349
|
const g = u.key === d.key, M = u.key >= 0 ? (o == null ? void 0 : o(u)) ?? null : null, p = u.key >= 0 && !M && !!(r != null && r(u)), N = u.key >= 0 && !M && !p && s(u), w = u.key >= 0 && !M && !p && !N && !u.hasVoice && !!(a != null && a(u));
|
|
@@ -2363,7 +2365,7 @@ function ol({ roster: t, selected: e, onSelect: n, noClone: s, building: r, shor
|
|
|
2363
2365
|
}
|
|
2364
2366
|
),
|
|
2365
2367
|
/* @__PURE__ */ i("span", { style: { fontSize: 12.5, fontWeight: 500, color: g ? "var(--ink-96)" : "var(--ink-62)", whiteSpace: "nowrap" }, children: u.name }),
|
|
2366
|
-
u.hasVoice && !M && /* @__PURE__ */ i(
|
|
2368
|
+
u.hasVoice && !M && /* @__PURE__ */ i(zi, { color: u.fg ?? (g ? "var(--ink-62)" : "var(--ink-45)") }),
|
|
2367
2369
|
M && /* @__PURE__ */ i("span", { title: M, "aria-label": M, style: { flex: "none", width: 15, height: 15, marginRight: -2, borderRadius: "50%", background: "#c27c00", color: "#fff", font: "900 10.5px/1 system-ui, sans-serif", display: "flex", alignItems: "center", justifyContent: "center" }, children: "!" }),
|
|
2368
2370
|
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: g ? "var(--ink-45)" : "var(--ink-35)" }, children: /* @__PURE__ */ i(oe, { d: J.micOff, size: 13, sw: 1.7 }) }),
|
|
2369
2371
|
(N || p) && /* @__PURE__ */ i("span", { title: p ? "Cloning this voice…" : "No voice clone yet", "aria-label": p ? "Cloning this voice" : "No voice clone yet", style: { flex: "none", width: 10, height: 10, marginRight: -2, display: "flex", alignItems: "center", justifyContent: "center" }, children: p ? /* @__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)" } }) })
|
|
@@ -2373,8 +2375,8 @@ function ol({ roster: t, selected: e, onSelect: n, noClone: s, building: r, shor
|
|
|
2373
2375
|
);
|
|
2374
2376
|
}) }) : null;
|
|
2375
2377
|
}
|
|
2376
|
-
function
|
|
2377
|
-
const w = Ie(() =>
|
|
2378
|
+
function ol({ 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: g = null, problem: M, noClone: p = null, t: N }) {
|
|
2379
|
+
const w = Ie(() => rl(e, N), [e, N]), [k, m] = I({});
|
|
2378
2380
|
_(() => {
|
|
2379
2381
|
m({});
|
|
2380
2382
|
}, [u, g]);
|
|
@@ -2387,7 +2389,7 @@ function ll({ cast: t, voices: e, currentId: n, armedId: s = null, sampleId: r =
|
|
|
2387
2389
|
M && /* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "flex-start", gap: 9, padding: "10px 11px", marginBottom: 10, borderRadius: 11, background: "var(--conf-low-soft)" }, children: [
|
|
2388
2390
|
/* @__PURE__ */ i(oe, { d: J.warnTri, size: 15, sw: 1.7, style: { flex: "none", marginTop: 1, color: "var(--conf-low)" } }),
|
|
2389
2391
|
/* @__PURE__ */ i("span", { style: { flex: 1, minWidth: 0, fontSize: 12.5, fontWeight: 300, lineHeight: 1.45, color: "var(--ink-80)", textWrap: "pretty" }, children: M }),
|
|
2390
|
-
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(
|
|
2392
|
+
/* @__PURE__ */ i("span", { style: { flex: "none", marginTop: -1 }, children: /* @__PURE__ */ i(ja, { value: M, label: "Copy this error" }) })
|
|
2391
2393
|
] }),
|
|
2392
2394
|
t,
|
|
2393
2395
|
p && /* @__PURE__ */ h(_e, { children: [
|
|
@@ -2403,8 +2405,8 @@ function ll({ cast: t, voices: e, currentId: n, armedId: s = null, sampleId: r =
|
|
|
2403
2405
|
] })
|
|
2404
2406
|
] }),
|
|
2405
2407
|
w.map(({ v: b, headOn: W, head: A, headCount: te, rule: j }, S) => {
|
|
2406
|
-
const $ =
|
|
2407
|
-
return /* @__PURE__ */ h(
|
|
2408
|
+
const $ = sl(b), L = a === b.id, z = O(A), E = (d == null ? void 0 : d(b)) ?? null;
|
|
2409
|
+
return /* @__PURE__ */ h(ga, { children: [
|
|
2408
2410
|
W && A === N.vcSheet && /* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", padding: "14px 2px 6px", borderTop: S === 0 && !p ? "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
2411
|
W && A !== N.vcSheet && /* @__PURE__ */ h(
|
|
2410
2412
|
"button",
|
|
@@ -2434,8 +2436,8 @@ function ll({ cast: t, voices: e, currentId: n, armedId: s = null, sampleId: r =
|
|
|
2434
2436
|
style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: z ? j : "0", display: "flex", alignItems: "center", gap: 11, padding: z ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: s === b.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: z ? 1 : 0, maxHeight: z ? 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
2437
|
children: [
|
|
2436
2438
|
/* @__PURE__ */ i("span", { title: L ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: L ? "transparent" : b.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 === b.id ? /* @__PURE__ */ h("span", { className: "vcplay", children: [
|
|
2437
|
-
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(
|
|
2438
|
-
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(
|
|
2439
|
+
/* @__PURE__ */ i("span", { className: "vcplay__eq", children: /* @__PURE__ */ i(ll, { height: 13, width: 2.5 }) }),
|
|
2440
|
+
/* @__PURE__ */ i("span", { className: "vcplay__stop", children: /* @__PURE__ */ i(La, { size: 11 }) })
|
|
2439
2441
|
] }) : /* @__PURE__ */ i(oe, { d: b.cloned ? J.voiceClone : b.gender === "female" ? J.venus : b.gender === "male" ? J.mars : J.mic, size: 15, sw: 1.6, style: { color: b.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
|
|
2440
2442
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
2441
2443
|
/* @__PURE__ */ i("div", { style: { display: "flex", alignItems: "center", gap: 7, minWidth: 0 }, children: /* @__PURE__ */ i("span", { style: { minWidth: 0, fontSize: 14.5, fontWeight: b.id === n ? 600 : 400, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: b.name }) }),
|
|
@@ -2463,7 +2465,7 @@ function ll({ cast: t, voices: e, currentId: n, armedId: s = null, sampleId: r =
|
|
|
2463
2465
|
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: N.vcUse }) }) })
|
|
2464
2466
|
] });
|
|
2465
2467
|
}
|
|
2466
|
-
function
|
|
2468
|
+
function ll({ height: t, width: e = 2 }) {
|
|
2467
2469
|
const n = { width: e, height: "100%", borderRadius: 1, background: "var(--brand)" };
|
|
2468
2470
|
return /* @__PURE__ */ h("span", { style: { flex: "none", display: "flex", alignItems: "flex-end", gap: 2, height: t }, children: [
|
|
2469
2471
|
/* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out infinite" } }),
|
|
@@ -2471,17 +2473,16 @@ function cl({ height: t, width: e = 2 }) {
|
|
|
2471
2473
|
/* @__PURE__ */ i("span", { style: { ...n, animation: "vs-eq .62s ease-in-out .38s infinite" } })
|
|
2472
2474
|
] });
|
|
2473
2475
|
}
|
|
2474
|
-
const
|
|
2476
|
+
const cl = /* @__PURE__ */ h("span", { style: { display: "inline-flex", alignItems: "center", gap: 3 }, children: [
|
|
2475
2477
|
/* @__PURE__ */ i(oe, { d: J.langAuto, size: 19, sw: 1.7, style: { color: "var(--ink-62)", display: "block" } }),
|
|
2476
2478
|
/* @__PURE__ */ i(oe, { d: J.globe, size: 18, sw: 1.6, style: { color: "var(--ink-62)", display: "block" } })
|
|
2477
2479
|
] });
|
|
2478
2480
|
function ys(t, e) {
|
|
2479
2481
|
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) ?? "🌐" :
|
|
2482
|
+
return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : cl, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
|
|
2481
2483
|
}
|
|
2482
|
-
|
|
2483
|
-
|
|
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 () => {
|
|
2484
|
+
function ul(t, e, n = 0, s) {
|
|
2485
|
+
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 } = Li(async () => {
|
|
2485
2486
|
if (!t || !e) return null;
|
|
2486
2487
|
try {
|
|
2487
2488
|
return await l.client.voices.available(t, { recording: r ?? void 0, shareCode: r ? o ?? void 0 : void 0, asOwner: l.owner });
|
|
@@ -2491,25 +2492,25 @@ function dl(t, e, n = 0, s) {
|
|
|
2491
2492
|
}, [t, e, n, r, a, o]);
|
|
2492
2493
|
return c;
|
|
2493
2494
|
}
|
|
2494
|
-
function
|
|
2495
|
+
function dl(t) {
|
|
2495
2496
|
return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
|
|
2496
2497
|
}
|
|
2497
|
-
function
|
|
2498
|
-
const o = At(), { data: l, reload: c } =
|
|
2498
|
+
function Ml({ recordingId: t, lang: e, ended: n, cred: s, pickedVoice: r, sentenceIds: a }) {
|
|
2499
|
+
const o = At(), { data: l, reload: c } = Li(async () => {
|
|
2499
2500
|
if (!t || !e) return null;
|
|
2500
2501
|
const V = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
|
|
2501
2502
|
return { recordingId: t, lang: e, rows: V.filter((C) => C.lang === e) };
|
|
2502
2503
|
}, [t, e, o, n]), d = Ie(
|
|
2503
2504
|
() => l && l.lang === e && l.recordingId === t ? l.rows : [],
|
|
2504
2505
|
[l, e, t]
|
|
2505
|
-
), u = Ie(() =>
|
|
2506
|
+
), u = Ie(() => ui(d, r), [d, r]), g = u ? u.voiceKey || null : r, [M, p] = I(null), [N, w] = I(null), k = v(/* @__PURE__ */ new Set()), m = `${t ?? ""}|${e ?? ""}|${g ?? ""}`, f = Xe(async (V, C) => {
|
|
2506
2507
|
if (!t || !e || !n) return;
|
|
2507
|
-
const ue = C != null && C.size ? null :
|
|
2508
|
+
const ue = C != null && C.size ? null : Gr(V), P = C != null && C.size ? C : ue, Z = P && P.size ? Object.fromEntries([...P].map(([we, ke]) => [String(we), ke])) : null, le = `${t}|${e}|${Z ? JSON.stringify(Z) : V ?? ""}`;
|
|
2508
2509
|
if (k.current.has(le)) return;
|
|
2509
2510
|
k.current.add(le), p(le), w(null);
|
|
2510
2511
|
const ne = { langs: [e] };
|
|
2511
2512
|
Z ? ne.voiceBySpeaker = Z : V && (ne.voice = V);
|
|
2512
|
-
const ae = await
|
|
2513
|
+
const ae = await Hr(o, `/v1/recordings/${t}/voice`, { method: "POST", body: ne }).catch(() => null);
|
|
2513
2514
|
if (p((we) => we === le ? null : we), !(ae != null && ae.ok)) {
|
|
2514
2515
|
k.current.delete(le);
|
|
2515
2516
|
const we = ae ? await ae.json().catch(() => null) : null;
|
|
@@ -2527,8 +2528,8 @@ function gl({ recordingId: t, lang: e, ended: n, cred: s, pickedVoice: r, senten
|
|
|
2527
2528
|
const V = A ?? S[0], C = S.find((ne) => ne >= V) ?? S[0], ue = `${t}|${e}|${g ?? ""}`, P = $.current;
|
|
2528
2529
|
if (P && P.key === ue && Math.abs(P.near - C) < 12 && Date.now() - P.at < 6e4) return;
|
|
2529
2530
|
$.current = { key: ue, near: C, at: Date.now() };
|
|
2530
|
-
const Z =
|
|
2531
|
-
Z && Z.size ? le.voiceBySpeaker = Object.fromEntries([...Z].map(([ne, ae]) => [String(ne), ae])) : g && (le.voice = g),
|
|
2531
|
+
const Z = Gr(g), le = { langs: [e], near: C };
|
|
2532
|
+
Z && Z.size ? le.voiceBySpeaker = Object.fromEntries([...Z].map(([ne, ae]) => [String(ne), ae])) : g && (le.voice = g), Hr(o, `/v1/recordings/${t}/voice`, { method: "POST", body: le }).then((ne) => {
|
|
2532
2533
|
ne.ok || ($.current = null);
|
|
2533
2534
|
}).catch(() => {
|
|
2534
2535
|
$.current = null;
|
|
@@ -2546,12 +2547,12 @@ function gl({ recordingId: t, lang: e, ended: n, cred: s, pickedVoice: r, senten
|
|
|
2546
2547
|
const E = Ie(() => {
|
|
2547
2548
|
if (!t) return [];
|
|
2548
2549
|
const V = W ? W.split(",").map(Number).filter((ue) => !n || j.has(ue)) : void 0, C = u ?? (V != null && V.length && e ? { lang: e, voiceKey: r ?? "", clips: [], voice: null } : null);
|
|
2549
|
-
return
|
|
2550
|
+
return Ya(C, t, o.origin, s, V);
|
|
2550
2551
|
}, [u, t, o, s, W, e, r, n, j]), re = Ie(() => new Set(S), [S]);
|
|
2551
2552
|
return { listed: l, rows: d, track: u, renderVoiceId: g, rendering: D, failed: b, clips: E, requestRender: f, forget: O, reload: c, setNear: te, missing: S.length, coming: re };
|
|
2552
2553
|
}
|
|
2553
|
-
const
|
|
2554
|
-
function
|
|
2554
|
+
const gl = { share: J.share, delay: J.tabGauge, video: J.video, source: J.tabSources, script: J.tabScript, fix: J.tabFix, ending: J.tabEnding, summary: J.tabSummary, export: J.tabExport, settings: J.tabSettings, sources: J.tabSources, recs: J.mic };
|
|
2555
|
+
function Ii({ tabs: t, current: e, onPick: n, gap: s, fold: r = !0, side: a = !r }) {
|
|
2555
2556
|
const o = r && t.length <= 3, l = t.some((k) => k.key === e), [c, d] = I(null), u = v(null), [g, M] = I(0);
|
|
2556
2557
|
_(() => {
|
|
2557
2558
|
u.current && M(u.current.offsetWidth);
|
|
@@ -2569,7 +2570,7 @@ function Oi({ tabs: t, current: e, onPick: n, gap: s, fold: r = !0, side: a = !r
|
|
|
2569
2570
|
let w = null;
|
|
2570
2571
|
if (c) {
|
|
2571
2572
|
const k = { l: 0, r: typeof window < "u" ? window.innerWidth : 0 }, m = g || 80, f = Math.max(k.l + 8, Math.min(k.r - m - 8, c.x - m / 2));
|
|
2572
|
-
w =
|
|
2573
|
+
w = Na(
|
|
2573
2574
|
/* @__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: f, top: c.y - 8, bottom: "auto", width: "auto", whiteSpace: "nowrap", transform: "translateY(-100%)", zIndex: 2147483e3, pointerEvents: "none" }, children: [
|
|
2574
2575
|
/* @__PURE__ */ i("span", { className: "vs-tip__row", children: /* @__PURE__ */ i("span", { className: "vs-tip__copy", children: c.label }) }),
|
|
2575
2576
|
/* @__PURE__ */ i("span", { className: "vs-tip__arrow", style: { left: Math.round(Math.max(8, Math.min(m - 19, c.x - f - 5.5))) } })
|
|
@@ -2579,7 +2580,7 @@ function Oi({ tabs: t, current: e, onPick: n, gap: s, fold: r = !0, side: a = !r
|
|
|
2579
2580
|
}
|
|
2580
2581
|
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: N, children: [
|
|
2581
2582
|
t.map((k) => {
|
|
2582
|
-
const m = e === k.key, f = o || m, O = o ? "1 1 0" : m ? "1 1 auto" : r && !l ? "1 1 0" : "0 0 auto", D = k.icon ??
|
|
2583
|
+
const m = e === k.key, f = o || m, O = o ? "1 1 0" : m ? "1 1 auto" : r && !l ? "1 1 0" : "0 0 auto", D = k.icon ?? gl[k.key], b = () => {
|
|
2583
2584
|
N(), n(r && m ? "none" : k.key);
|
|
2584
2585
|
};
|
|
2585
2586
|
return r ? /* @__PURE__ */ h("button", { type: "button", role: "tab", "aria-selected": m, title: k.label, className: `tabbar__tab${m ? " is-on" : ""}`, style: { flex: O }, onClick: b, children: [
|
|
@@ -2593,8 +2594,8 @@ function Oi({ tabs: t, current: e, onPick: n, gap: s, fold: r = !0, side: a = !r
|
|
|
2593
2594
|
w
|
|
2594
2595
|
] });
|
|
2595
2596
|
}
|
|
2596
|
-
const
|
|
2597
|
-
function
|
|
2597
|
+
const hl = "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", fl = "m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z";
|
|
2598
|
+
function Nl({ audio: t, video: e, formats: n, onExport: s }) {
|
|
2598
2599
|
const [r, a] = I(null), [o, l] = I(null), c = v(void 0), d = v(!0);
|
|
2599
2600
|
_(() => (d.current = !0, () => {
|
|
2600
2601
|
d.current = !1, window.clearTimeout(c.current);
|
|
@@ -2623,11 +2624,11 @@ function pl({ audio: t, video: e, formats: n, onExport: s }) {
|
|
|
2623
2624
|
/* @__PURE__ */ i("span", { style: { fontSize: 13, fontWeight: 500, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: w.name }),
|
|
2624
2625
|
/* @__PURE__ */ i("span", { style: { font: "500 9.5px var(--vs-font-mono)", color: "var(--ink-40)", letterSpacing: ".04em" }, children: w.meta })
|
|
2625
2626
|
] }),
|
|
2626
|
-
/* @__PURE__ */ i(oe, { d: r === N ? J.check :
|
|
2627
|
+
/* @__PURE__ */ i(oe, { d: r === N ? J.check : hl, size: 17, sw: 1.6, style: { flex: "none", color: r === N ? "var(--brand)" : "var(--ink-62)" } })
|
|
2627
2628
|
] })
|
|
2628
2629
|
] });
|
|
2629
2630
|
return /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
|
|
2630
|
-
t && p("audio", t,
|
|
2631
|
+
t && p("audio", t, fl, "DOWNLOAD AUDIO"),
|
|
2631
2632
|
e && p("video", e, J.video, "DOWNLOAD VIDEO"),
|
|
2632
2633
|
n !== !1 && /* @__PURE__ */ h(_e, { children: [
|
|
2633
2634
|
/* @__PURE__ */ i(ds, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
|
|
@@ -2638,7 +2639,7 @@ function pl({ audio: t, video: e, formats: n, onExport: s }) {
|
|
|
2638
2639
|
] })
|
|
2639
2640
|
] });
|
|
2640
2641
|
}
|
|
2641
|
-
function
|
|
2642
|
+
function Ss(t, e, n) {
|
|
2642
2643
|
const s = () => {
|
|
2643
2644
|
var r;
|
|
2644
2645
|
(r = navigator.clipboard) == null || r.writeText(t).then(() => n == null ? void 0 : n(), () => {
|
|
@@ -2652,7 +2653,7 @@ function Ds(t, e, n) {
|
|
|
2652
2653
|
}
|
|
2653
2654
|
s();
|
|
2654
2655
|
}
|
|
2655
|
-
function
|
|
2656
|
+
function pl(t, e, n) {
|
|
2656
2657
|
const [s, r] = I(null), a = t.state === "ready", o = `${e ?? ""}|${n ?? ""}|${a ? `${t.title}
|
|
2657
2658
|
${t.summary}` : ""}`, l = At();
|
|
2658
2659
|
return _(() => {
|
|
@@ -2669,12 +2670,12 @@ ${t.summary}` : ""}`, l = At();
|
|
|
2669
2670
|
};
|
|
2670
2671
|
}, [o, l]), !n || !a ? t : (s == null ? void 0 : s.key) === o ? s.s : { state: "pending", retry: t.retry };
|
|
2671
2672
|
}
|
|
2672
|
-
function
|
|
2673
|
+
function ml(t) {
|
|
2673
2674
|
return t != null && t.title && (t != null && t.summary) ? { state: "ready", title: t.title, summary: t.summary, retry: () => {
|
|
2674
2675
|
} } : { state: "unavailable", retry: () => {
|
|
2675
2676
|
} };
|
|
2676
2677
|
}
|
|
2677
|
-
function
|
|
2678
|
+
function yl({ s: t }) {
|
|
2678
2679
|
const [e, n] = I(!1), s = v(void 0);
|
|
2679
2680
|
_(() => () => window.clearTimeout(s.current), []);
|
|
2680
2681
|
const r = t.title ?? "", a = t.summary ?? "", o = () => {
|
|
@@ -2691,7 +2692,7 @@ ${a}`).catch(() => {
|
|
|
2691
2692
|
/* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 8, minHeight: 24 }, children: [
|
|
2692
2693
|
/* @__PURE__ */ i(ds, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "SUMMARY" }),
|
|
2693
2694
|
t.state === "ready" && /* @__PURE__ */ h("button", { type: "button", className: "sumcopy", title: "Copy title and summary", style: { color: e ? "var(--brand)" : "var(--ink-70)" }, onClick: o, children: [
|
|
2694
|
-
/* @__PURE__ */ i(oe, { d: e ? J.check :
|
|
2695
|
+
/* @__PURE__ */ i(oe, { d: e ? J.check : Ll, size: 13, sw: 1.6 }),
|
|
2695
2696
|
e ? "Copied" : "Copy"
|
|
2696
2697
|
] })
|
|
2697
2698
|
] }),
|
|
@@ -2704,15 +2705,15 @@ ${a}`).catch(() => {
|
|
|
2704
2705
|
] })
|
|
2705
2706
|
] });
|
|
2706
2707
|
}
|
|
2707
|
-
function
|
|
2708
|
+
function Tl({ ytId: t, title: e, timeLabel: n, radius: s, style: r, large: a, children: o, picture: l }) {
|
|
2708
2709
|
return /* @__PURE__ */ h("div", { className: "livevid", style: { ...s != null ? { borderRadius: s } : null, ...r }, children: [
|
|
2709
2710
|
/* @__PURE__ */ i(oe, { d: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", size: a ? 34 : 30, sw: 1.2 }),
|
|
2710
|
-
l ?? /* @__PURE__ */ i("iframe", { src:
|
|
2711
|
+
l ?? /* @__PURE__ */ i("iframe", { src: Vo(t), title: e, referrerPolicy: "strict-origin-when-cross-origin", allow: "autoplay; encrypted-media; picture-in-picture" }),
|
|
2711
2712
|
n && /* @__PURE__ */ i("span", { className: "livevid__t", style: a ? { bottom: 10, right: 10 } : void 0, children: n }),
|
|
2712
2713
|
o
|
|
2713
2714
|
] });
|
|
2714
2715
|
}
|
|
2715
|
-
function
|
|
2716
|
+
function wl(t = !0, e) {
|
|
2716
2717
|
const n = v(null), s = e ?? n;
|
|
2717
2718
|
return _(() => {
|
|
2718
2719
|
const r = s.current;
|
|
@@ -2733,9 +2734,9 @@ function Ll(t = !0, e) {
|
|
|
2733
2734
|
};
|
|
2734
2735
|
}, [t]), s;
|
|
2735
2736
|
}
|
|
2736
|
-
const
|
|
2737
|
-
function
|
|
2738
|
-
const [n, s] =
|
|
2737
|
+
const Ll = "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";
|
|
2738
|
+
function kl(t, e) {
|
|
2739
|
+
const [n, s] = Ua(t), r = e.tabs.map((f) => f.key), a = e.tabbed !== !1, o = e.pinnable ?? r;
|
|
2739
2740
|
let l = n;
|
|
2740
2741
|
[...e.autoPin ?? []].reverse().forEach((f) => {
|
|
2741
2742
|
r.includes(f) && !l.includes(f) && !l.includes(`!${f}`) && (l = [f, ...l]);
|
|
@@ -2773,8 +2774,8 @@ function vl(t, e) {
|
|
|
2773
2774
|
};
|
|
2774
2775
|
return { id: t, tabbed: a && g.length > 1, cur: M, seq: u, pinnable: o, tabKeys: g, stripTabs: e.tabs.filter((f) => g.includes(f.key)), panel: m, pin: N, unpin: w };
|
|
2775
2776
|
}
|
|
2776
|
-
function
|
|
2777
|
-
return
|
|
2777
|
+
function vl({ col: t, order: e, render: n, grip: s, onPick: r, wrapClass: a }) {
|
|
2778
|
+
return jl(t), /* @__PURE__ */ h(_e, { children: [
|
|
2778
2779
|
e.map((o) => {
|
|
2779
2780
|
const l = t.panel(o);
|
|
2780
2781
|
if (!l.show) return null;
|
|
@@ -2784,13 +2785,13 @@ function jl({ col: t, order: e, render: n, grip: s, onPick: r, wrapClass: a }) {
|
|
|
2784
2785
|
l.pill && /* @__PURE__ */ i("button", { type: "button", "data-pin-pill": "", className: `pinpill${l.pinned ? " is-on" : ""}`, title: l.title, "aria-label": l.title, "aria-pressed": l.pinned, onClick: l.toggle, children: /* @__PURE__ */ i(oe, { d: J.pin, size: 12, sw: 2 }) })
|
|
2785
2786
|
] }, o) : null;
|
|
2786
2787
|
}),
|
|
2787
|
-
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(
|
|
2788
|
+
t.tabbed && t.cur && /* @__PURE__ */ i("div", { className: "deskstrip", style: { order: 999 }, children: /* @__PURE__ */ i(Ii, { tabs: t.stripTabs, current: t.cur, onPick: (o) => {
|
|
2788
2789
|
o !== "none" && (r ?? (() => {
|
|
2789
2790
|
}))(o);
|
|
2790
2791
|
}, fold: !1 }) })
|
|
2791
2792
|
] });
|
|
2792
2793
|
}
|
|
2793
|
-
function
|
|
2794
|
+
function jl(t) {
|
|
2794
2795
|
const e = v(t);
|
|
2795
2796
|
e.current = t;
|
|
2796
2797
|
const n = t.id;
|
|
@@ -2891,9 +2892,9 @@ function zl(t) {
|
|
|
2891
2892
|
};
|
|
2892
2893
|
}, [n]);
|
|
2893
2894
|
}
|
|
2894
|
-
function
|
|
2895
|
-
const [o, l] =
|
|
2896
|
-
|
|
2895
|
+
function zl({ id: t, className: e, gap: n, hidden: s, plain: r, children: a }) {
|
|
2896
|
+
const [o, l] = Pa(t), c = v(null), d = v(null);
|
|
2897
|
+
Il(d), _(() => {
|
|
2897
2898
|
document.documentElement.style.setProperty("--colw", `${o}px`);
|
|
2898
2899
|
}, [o]);
|
|
2899
2900
|
const u = (M) => {
|
|
@@ -2917,7 +2918,7 @@ function Il({ id: t, className: e, gap: n, hidden: s, plain: r, children: a }) {
|
|
|
2917
2918
|
/* @__PURE__ */ i("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...g }, children: r ? a : /* @__PURE__ */ i("div", { ref: d, "data-panel-grid": "", className: "panelgrid", children: a }) })
|
|
2918
2919
|
] });
|
|
2919
2920
|
}
|
|
2920
|
-
function
|
|
2921
|
+
function Il(t) {
|
|
2921
2922
|
_(() => {
|
|
2922
2923
|
const e = t.current;
|
|
2923
2924
|
if (!e) return;
|
|
@@ -2945,11 +2946,11 @@ function Ol(t) {
|
|
|
2945
2946
|
};
|
|
2946
2947
|
}, [t]);
|
|
2947
2948
|
}
|
|
2948
|
-
function
|
|
2949
|
+
function Ol(t) {
|
|
2949
2950
|
return /\bwas not captured\b/i.test(t ?? "");
|
|
2950
2951
|
}
|
|
2951
|
-
const
|
|
2952
|
-
function
|
|
2952
|
+
const Cl = 1500, bl = 3e5;
|
|
2953
|
+
function xl(t) {
|
|
2953
2954
|
const e = At(), [n, s] = I(null), [r, a] = I(null), [o, l] = I(null), [c, d] = I(null), u = v(null), g = v(null), M = v(null), p = v(0), N = Xe(() => {
|
|
2954
2955
|
M.current && (clearTimeout(M.current), M.current = null), u.current && (u.current.pause(), u.current.removeAttribute("src"), u.current.load(), u.current = null), g.current && (URL.revokeObjectURL(g.current), g.current = null);
|
|
2955
2956
|
}, []), w = Xe(() => {
|
|
@@ -2981,13 +2982,13 @@ function Dl(t) {
|
|
|
2981
2982
|
}
|
|
2982
2983
|
if (p.current !== O) return;
|
|
2983
2984
|
if (A.status === 202 || A.status === 503) {
|
|
2984
|
-
if (Date.now() - b >
|
|
2985
|
+
if (Date.now() - b > bl) {
|
|
2985
2986
|
l(null), d({ message: "This voice is still being fetched. Try it again in a moment." });
|
|
2986
2987
|
return;
|
|
2987
2988
|
}
|
|
2988
2989
|
l(f.id), M.current = setTimeout(() => {
|
|
2989
2990
|
W();
|
|
2990
|
-
},
|
|
2991
|
+
}, Cl);
|
|
2991
2992
|
return;
|
|
2992
2993
|
}
|
|
2993
2994
|
if (!A.ok) {
|
|
@@ -3012,13 +3013,13 @@ function Dl(t) {
|
|
|
3012
3013
|
}, [t, N, e]);
|
|
3013
3014
|
return { armId: n, sampleId: r, dlId: o, error: c, clearError: () => d(null), arm: m, stop: w, reset: k };
|
|
3014
3015
|
}
|
|
3015
|
-
const Ts = 0.05,
|
|
3016
|
+
const Ts = 0.05, Oi = (t, e) => {
|
|
3016
3017
|
let n = 0;
|
|
3017
3018
|
for (let s = 0; s < t.length; s++) t[s].start <= e + 1e-6 && (n = s);
|
|
3018
3019
|
return n;
|
|
3019
3020
|
};
|
|
3020
|
-
function
|
|
3021
|
-
const r = Math.max(0, e), a = s > 0 && r >= s - Ts, o = t.length && t[0].start <= r + 1e-6 ?
|
|
3021
|
+
function Dl(t, e, n, s) {
|
|
3022
|
+
const r = Math.max(0, e), a = s > 0 && r >= s - Ts, o = t.length && t[0].start <= r + 1e-6 ? Oi(t, r) : -1;
|
|
3022
3023
|
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
3024
|
}
|
|
3024
3025
|
function Tn(t, e, n) {
|
|
@@ -3033,18 +3034,18 @@ function Tn(t, e, n) {
|
|
|
3033
3034
|
}
|
|
3034
3035
|
a = Math.max(0, Math.min(s, a));
|
|
3035
3036
|
const o = s > 0 && a >= s - Ts && r < 0;
|
|
3036
|
-
return { t: a, playing: t.playing && !o, index: r >= 0 ? r :
|
|
3037
|
+
return { t: a, playing: t.playing && !o, index: r >= 0 ? r : Oi(e, a) };
|
|
3037
3038
|
}
|
|
3038
|
-
function
|
|
3039
|
+
function Ci(t, e, n) {
|
|
3039
3040
|
var c;
|
|
3040
3041
|
const s = t[e], r = n && s.translations[n] && s.language !== n ? s.translations[n] : null;
|
|
3041
3042
|
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
|
|
3043
|
+
const a = (r ?? s.text).split(/\s+/).filter(Boolean), o = ((c = s.words[0]) == null ? void 0 : c.start) ?? s.start, l = ji(s, t[e + 1], s.start + Math.max(2, a.length * 0.4));
|
|
3044
|
+
return Go(a, o, l).map((d, u) => ({ ...d, seq: s.seqs[0] ?? 0, idx: u }));
|
|
3044
3045
|
}
|
|
3045
3046
|
function qr(t, e, n) {
|
|
3046
3047
|
if (!t.engaged || e !== t.idx || !n.length) return null;
|
|
3047
|
-
if (!t.wordSync) return t.clipPos ?
|
|
3048
|
+
if (!t.wordSync) return t.clipPos ? di(n.map((a) => ({ t: a.text, sp: " " })), t.clipPos) : null;
|
|
3048
3049
|
const s = t.t;
|
|
3049
3050
|
let r = -1;
|
|
3050
3051
|
for (let a = 0; a < n.length && n[a].start <= s; a++) r = a;
|
|
@@ -3062,7 +3063,7 @@ function St(t, e, n) {
|
|
|
3062
3063
|
const s = (r = t == null ? void 0 : t.words[t.words.length - 1]) == null ? void 0 : r.end;
|
|
3063
3064
|
return s != null && s > e ? s : (t == null ? void 0 : t.end) != null && t.end > e ? t.end : n > e ? n : e + 4;
|
|
3064
3065
|
}
|
|
3065
|
-
function
|
|
3066
|
+
function Sl({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd: o, endT: l, onGone: c, onKnown: d, lead: u, onTime: g, waiting: M = !1 }) {
|
|
3066
3067
|
const p = v(null), [N, w] = I(!1);
|
|
3067
3068
|
_(() => {
|
|
3068
3069
|
if (!M) {
|
|
@@ -3190,22 +3191,22 @@ function Al({ ytId: t, title: e, t: n, playing: s, seekN: r, onToggle: a, onAd:
|
|
|
3190
3191
|
] })
|
|
3191
3192
|
] });
|
|
3192
3193
|
}
|
|
3193
|
-
const
|
|
3194
|
+
const Al = /* @__PURE__ */ h(_e, { children: [
|
|
3194
3195
|
/* @__PURE__ */ i("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
|
|
3195
3196
|
/* @__PURE__ */ i("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
|
|
3196
|
-
] }),
|
|
3197
|
-
function
|
|
3197
|
+
] }), El = /* @__PURE__ */ i("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" });
|
|
3198
|
+
function Yl({ player: t, size: e }) {
|
|
3198
3199
|
const n = t.muted ? "Unmute" : "Mute";
|
|
3199
3200
|
return /* @__PURE__ */ i("button", { type: "button", className: `mutebtn${e < 36 ? " mutebtn--sm" : e > 36 ? " mutebtn--lg" : ""}`, "aria-label": n, title: n, "aria-pressed": t.muted, onClick: t.toggleMute, children: /* @__PURE__ */ i(oe, { d: t.muted ? J.volumeOff : J.volume, size: 17, sw: 1.6, style: { color: t.muted ? "var(--ink-38)" : "var(--ink-70)" } }) });
|
|
3200
3201
|
}
|
|
3201
|
-
function
|
|
3202
|
+
function _l() {
|
|
3202
3203
|
const [t, e] = I(""), n = v(null), s = Xe((r) => {
|
|
3203
3204
|
clearTimeout(n.current), e(r), n.current = setTimeout(() => e(""), 3e3);
|
|
3204
3205
|
}, []);
|
|
3205
3206
|
return _(() => () => clearTimeout(n.current), []), [t, s];
|
|
3206
3207
|
}
|
|
3207
|
-
const
|
|
3208
|
-
function
|
|
3208
|
+
const Ul = 0.2, Rl = 140, Pl = 320;
|
|
3209
|
+
function Ql(t, e) {
|
|
3209
3210
|
const n = v(t);
|
|
3210
3211
|
n.current = t;
|
|
3211
3212
|
const s = v(0), r = v(1), a = Xe((o, l) => {
|
|
@@ -3219,13 +3220,13 @@ function $l(t, e) {
|
|
|
3219
3220
|
u();
|
|
3220
3221
|
}, []);
|
|
3221
3222
|
_(() => {
|
|
3222
|
-
a(e ?
|
|
3223
|
+
a(e ? Ul : 1, e ? Rl : Pl);
|
|
3223
3224
|
}, [e, a]), _(() => () => {
|
|
3224
3225
|
cancelAnimationFrame(s.current), r.current = 1;
|
|
3225
3226
|
for (const o of n.current) o.setVolume(1);
|
|
3226
3227
|
}, []);
|
|
3227
3228
|
}
|
|
3228
|
-
function
|
|
3229
|
+
function $l(t, e, n, s) {
|
|
3229
3230
|
var Oe;
|
|
3230
3231
|
const r = v(null), a = v(!1), o = v(!1), [l, c] = I(null), [d, u] = I(!0), g = v(!0), M = v(!1), [p, N] = I(0), w = v(0);
|
|
3231
3232
|
w.current = p;
|
|
@@ -3368,7 +3369,7 @@ function Bl(t, e, n, s) {
|
|
|
3368
3369
|
setVolume: (G) => A("setVolume", [Math.round(G * 100)])
|
|
3369
3370
|
}, lead: $, setVideoSound: Le };
|
|
3370
3371
|
}
|
|
3371
|
-
function
|
|
3372
|
+
function Bl(t, e, n, s, r = 0, a = null) {
|
|
3372
3373
|
var X;
|
|
3373
3374
|
const o = v(null), [l, c] = I(!1), [d, u] = I(0), [g, M] = I(!1), p = v(g);
|
|
3374
3375
|
p.current = g;
|
|
@@ -3382,16 +3383,16 @@ function Hl(t, e, n, s, r = 0, a = null) {
|
|
|
3382
3383
|
c(!1), o.current = null;
|
|
3383
3384
|
return;
|
|
3384
3385
|
}
|
|
3385
|
-
const R =
|
|
3386
|
+
const R = li(t), fe = O.current;
|
|
3386
3387
|
return R.preload = "metadata", R.muted = p.current || N.current, R.onplay = () => c(!0), R.onpause = () => c(!1), R.onended = () => c(!1), R.onloadedmetadata = () => {
|
|
3387
3388
|
f(!0), R.currentTime = ((y == null ? void 0 : y.t) ?? 0) + fe, y != null && y.playing && R.play().catch((H) => {
|
|
3388
3389
|
y.asked && (H == null ? void 0 : H.name) === "NotAllowedError" || k(kt(H));
|
|
3389
3390
|
});
|
|
3390
3391
|
}, R.onerror = () => {
|
|
3391
3392
|
c(!1);
|
|
3392
|
-
const H = R.error, me =
|
|
3393
|
-
|
|
3394
|
-
|
|
3393
|
+
const H = R.error, me = Da(H, !1);
|
|
3394
|
+
Oa(t).then((q) => {
|
|
3395
|
+
Ol(q == null ? void 0 : q.message) || ai(H), o.current === R && (k({ message: (q == null ? void 0 : q.message) ?? me }), q != null && q.permanent || (o.current = null));
|
|
3395
3396
|
});
|
|
3396
3397
|
}, o.current = R, () => {
|
|
3397
3398
|
D.current = { t: Math.max(0, R.currentTime - fe), playing: !R.paused && !R.ended }, R.pause(), R.onplay = R.onpause = R.onended = R.onloadedmetadata = R.onerror = null, o.current = null;
|
|
@@ -3560,7 +3561,7 @@ function Hl(t, e, n, s, r = 0, a = null) {
|
|
|
3560
3561
|
}
|
|
3561
3562
|
};
|
|
3562
3563
|
}
|
|
3563
|
-
function
|
|
3564
|
+
function Hl(t, e, n, s, r, a, o = !1, l) {
|
|
3564
3565
|
const c = v(/* @__PURE__ */ new Set());
|
|
3565
3566
|
c.current = l ?? c.current;
|
|
3566
3567
|
const d = v(null), [u, g] = I(!1), [M, p] = I(0), [N, w] = I(0), [k, m] = I(!1), f = v(k);
|
|
@@ -3581,7 +3582,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3581
3582
|
const F = Z.current.findIndex((ee) => ee.sentenceId === U);
|
|
3582
3583
|
F >= 0 && p(F);
|
|
3583
3584
|
}, Y.onError = (U) => {
|
|
3584
|
-
g(Y.playing), D(U instanceof
|
|
3585
|
+
g(Y.playing), D(U instanceof ci ? { 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
3586
|
}, Y.gapBefore = (U, F) => {
|
|
3586
3587
|
if (!le.current) return 0;
|
|
3587
3588
|
const ee = Z.current, Me = ee.find((xe) => xe.sentenceId === U), be = ee.find((xe) => xe.sentenceId === F);
|
|
@@ -3592,7 +3593,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3592
3593
|
return ze && Date.now() - ze.at < 2e3 ? Math.max(0, be.start - (ze.t + (Date.now() - ze.at) / 1e3 * Y.rate)) : !Me || be.start <= Me.start ? 0 : Math.max(0, be.start - St(Me, Me.start, Me.start + 4));
|
|
3593
3594
|
}, Y.flow = le.current, Y.silentSpan = (U) => {
|
|
3594
3595
|
var $e;
|
|
3595
|
-
const F = Z.current, ee = F.findIndex((
|
|
3596
|
+
const F = Z.current, ee = F.findIndex((rt) => rt.sentenceId === U), Me = F[ee];
|
|
3596
3597
|
if (!Me) return null;
|
|
3597
3598
|
const be = (($e = F[ee + 1]) == null ? void 0 : $e.start) ?? St(Me, Me.start, Me.start + 4), Te = Math.max(0, be - Me.start), ze = ae.current, xe = ze && Date.now() - ze.at < 2e3 ? ze.t + (Date.now() - ze.at) / 1e3 * (Y.rate || 1) : Me.start, Ze = Math.max(0, Math.min(Te, xe - Me.start));
|
|
3598
3599
|
return { fromS: Ze, ms: (Te - Ze) * 1e3 / (Y.rate || 1) };
|
|
@@ -3674,7 +3675,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3674
3675
|
return { from: F, span: Math.max(0, ee - F) };
|
|
3675
3676
|
}, ie = K(q), de = Math.max(0, Math.min(ie.span, St(e[q], ie.from, ie.from + 4) - ie.from)), ce = j ? j.t : o ? E != null && ue ? ie.from + Math.min(ie.span, E) : E != null ? V != null ? Math.min(ie.from, V + E) : ie.from + Math.min(ie.span, de + E) : L && L.dur > 0 ? ie.from + Math.min(de, L.t / L.dur * de) : ie.from : L && L.dur > 0 ? ie.from + Math.min(ie.span, L.t / L.dur * ie.span) : ie.from;
|
|
3676
3677
|
_(() => {
|
|
3677
|
-
Le.current = Se.current ??
|
|
3678
|
+
Le.current = Se.current ?? Dl(e, ce, u, Ce);
|
|
3678
3679
|
});
|
|
3679
3680
|
const Ne = {
|
|
3680
3681
|
playing: u || Be,
|
|
@@ -3731,7 +3732,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3731
3732
|
B(Y), t.some((U) => U.sentenceId >= (Y.sentenceId ?? 0)) && (B(null), G.current(Y));
|
|
3732
3733
|
},
|
|
3733
3734
|
seekFrac: (Y) => {
|
|
3734
|
-
var
|
|
3735
|
+
var rt, ot, dt;
|
|
3735
3736
|
X();
|
|
3736
3737
|
const U = Math.max(0, Math.min(1, Y)) * Ce;
|
|
3737
3738
|
let F = 0;
|
|
@@ -3739,7 +3740,7 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3739
3740
|
const ee = e[F], Me = o && ee && U < ee.start - 0.05;
|
|
3740
3741
|
if (o && ee && (Me || e[F + 1] && U >= St(ee, ee.start, ee.start + 4))) {
|
|
3741
3742
|
const We = Me ? F : F + 1, Pe = e[We];
|
|
3742
|
-
(
|
|
3743
|
+
(rt = d.current) == null || rt.startWithin(-1, 0);
|
|
3743
3744
|
const lt = { t: U, sid: Pe.sentenceId ?? null };
|
|
3744
3745
|
$.current = lt, S(lt), he(We);
|
|
3745
3746
|
return;
|
|
@@ -3809,22 +3810,22 @@ function Vl(t, e, n, s, r, a, o = !1, l) {
|
|
|
3809
3810
|
(F = Ne.seekFrac) == null || F.call(Ne, U.t / Ce), U.playing && Ue(Ae.current);
|
|
3810
3811
|
}, Ne;
|
|
3811
3812
|
}
|
|
3812
|
-
const
|
|
3813
|
-
},
|
|
3814
|
-
function
|
|
3813
|
+
const Vl = () => {
|
|
3814
|
+
}, Wl = "The language this recording is read aloud in.", Fl = { title: "READ IN", note: "The transcript and its voice switch to this language." };
|
|
3815
|
+
function Gl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, langs: o, srcLang: l, canTranslate: c, pickedLang: d, setPickedLang: u, side: g, hearOriginal: M = !1, timed: p = !1, stockVoices: N = !1, stickyPicker: w = !1, pickerBusy: k = null, voiceSheet: m, forcedVoice: f = null }) {
|
|
3815
3816
|
var sn, rn, Ft, Gt;
|
|
3816
|
-
const { onAddVoice: O, onPickVoice: D, onSelectSpeaker: b, noCloneFor: W, castNoClone: A, castShort: te, castBuilding: j, castWarn: S, badge: $, titleNode: L } = m ?? {}, z = !!m, E = !!(m != null && m.pendingClones), [re, V] =
|
|
3817
|
+
const { onAddVoice: O, onPickVoice: D, onSelectSpeaker: b, noCloneFor: W, castNoClone: A, castShort: te, castBuilding: j, castWarn: S, badge: $, titleNode: L } = m ?? {}, z = !!m, E = !!(m != null && m.pendingClones), [re, V] = gi(), [C, ue] = I(null), [P, Z] = I(!1), [le, ne] = I(!1), [ae, we] = I(!1), [ke, Qe] = I(!1), ye = d ?? l, Le = d === null, Se = d != null || C != null, Oe = ((Q) => !!Q && !!(o != null && o.voice.includes(Q)))(Le ? l : ye) ? Le ? l : ye : "en", G = xl(Oe), B = (m == null ? void 0 : m.cloneOn) ?? !0, [X, y] = I(0), R = v(B);
|
|
3817
3818
|
_(() => {
|
|
3818
3819
|
R.current !== B && (R.current = B, y((Q) => Q + 1));
|
|
3819
3820
|
}, [B]);
|
|
3820
|
-
const fe =
|
|
3821
|
-
const Q =
|
|
3821
|
+
const fe = ul(Oe, Se || r || le, dl(e) * 1e3 + X, { id: t ?? null, shareCode: a.shareCode ?? null }), H = Ie(() => ((fe == null ? void 0 : fe.voices) ?? []).filter((Q) => z || !Q.cloned || Q.speaker != null), [fe, z]), me = H.length > 1, q = ys(o, ye), ve = ki(), Ce = Ie(() => hi(o, "translation"), [o]), [He, Ae] = I(null), [Ue] = I(() => /* @__PURE__ */ new Set()), [he, Re] = I({}), K = Ie(() => il(n, e, ve.vcUnknownSpk), [n, e, ve]), ie = me && K.filter((Q) => Q.key >= 0).length > 1, de = He != null && K.some((Q) => Q.key === He) ? He : ((sn = K[0]) == null ? void 0 : sn.key) ?? null, ce = Ie(() => {
|
|
3822
|
+
const Q = Zr(K, H, B);
|
|
3822
3823
|
for (const [De, Fe] of Object.entries(he[Oe ?? ""] ?? {})) Q.set(Number(De), Fe);
|
|
3823
3824
|
return Q;
|
|
3824
|
-
}, [K, H, he, Oe, B]), Ne = ie && Object.keys(he[Oe ?? ""] ?? {}).length > 0, je = Ie(() => N && !Ne ?
|
|
3825
|
+
}, [K, H, he, Oe, B]), Ne = ie && Object.keys(he[Oe ?? ""] ?? {}).length > 0, je = Ie(() => N && !Ne ? Zr(K, H, !1) : null, [N, Ne, K, H]), Y = Ie(() => Ne ? Fr(ce) || null : je && Fr(je) || null, [Ne, ce, je]), U = Ne ? ce : je, F = H.some((Q) => Q.cloned && Q.consent !== "pending"), ee = !!ye && !!(o != null && o.voice.includes(ye)), Me = ee && !M, be = Ie(
|
|
3825
3826
|
() => n.filter((Q) => !Q.suppressed && !Q.unclear).map((Q) => Q.sentenceId).filter((Q) => Q != null),
|
|
3826
3827
|
[n]
|
|
3827
|
-
), Te =
|
|
3828
|
+
), Te = Ml({ recordingId: t, lang: ye, ended: r, cred: a, pickedVoice: f || (Y ?? C), sentenceIds: r && Me ? be : void 0 }), ze = H.find((Q) => Q.id === C) ?? H.find((Q) => {
|
|
3828
3829
|
var De;
|
|
3829
3830
|
return Q.id === ((De = Te.track) == null ? void 0 : De.voice);
|
|
3830
3831
|
}) ?? H.find((Q) => Q.default) ?? H[0] ?? null, xe = (ze == null ? void 0 : ze.id) ?? null;
|
|
@@ -3833,7 +3834,7 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3833
3834
|
const Q = setInterval(Te.reload, 4e3);
|
|
3834
3835
|
return () => clearInterval(Q);
|
|
3835
3836
|
}, [Te.rendering, Te.reload]);
|
|
3836
|
-
const Ze = `${t ?? ""}|${ye ?? ""}|${f || (Y ?? C ?? ((rn = Te.track) == null ? void 0 : rn.voiceKey) ?? "default")}`, $e =
|
|
3837
|
+
const Ze = `${t ?? ""}|${ye ?? ""}|${f || (Y ?? C ?? ((rn = Te.track) == null ? void 0 : rn.voiceKey) ?? "default")}`, $e = Hl(Te.clips, n, s, Ze, Ue, (Ft = Te.track) == null ? void 0 : Ft.wordTimes, p, Te.coming);
|
|
3837
3838
|
_(() => {
|
|
3838
3839
|
var De;
|
|
3839
3840
|
const Q = (De = n[$e.idx]) == null ? void 0 : De.sentenceId;
|
|
@@ -3841,7 +3842,7 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3841
3842
|
}, [$e.idx]), _(() => {
|
|
3842
3843
|
!ke || !$e.has || (Qe(!1), $e.playing || $e.toggle());
|
|
3843
3844
|
}, [ke, $e.has]);
|
|
3844
|
-
const
|
|
3845
|
+
const rt = Te.rendering, ot = rt ? null : Te.failed ?? null, dt = !1, We = Se && Me, Pe = Se && !Le && Me && !(Te.listed && Te.listed.lang === ye && Te.listed.recordingId === t), lt = {
|
|
3845
3846
|
...$e,
|
|
3846
3847
|
has: $e.has || We && r,
|
|
3847
3848
|
toggle: () => {
|
|
@@ -3884,7 +3885,7 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3884
3885
|
return;
|
|
3885
3886
|
}
|
|
3886
3887
|
ue(Q);
|
|
3887
|
-
},
|
|
3888
|
+
}, st = Le ? { ...ys(o, null), flag: /* @__PURE__ */ i(oe, { d: J.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : q, Cn = c ? g ? /* @__PURE__ */ i("span", { className: "barchip", style: Ot ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ i(vn, { flag: st.flag, code: st.code, bordered: !1, onClick: en, flagOnly: !0, label: st.label }) }) : /* @__PURE__ */ i(vn, { flag: st.flag, code: st.code, bordered: !1, onClick: Ve, flagOnly: !0, label: st.label }) : null, tn = J.voiceClone, Ke = Se && (!!Te.track || rt), gt = ot ? "var(--conf-low)" : Ke || g && x ? "var(--brand)" : "var(--ink-55)", Ct = rt || !!$e.preparing && Se, yt = $e.preparing ? `Speaking this line in ${(ze == null ? void 0 : ze.name) ?? "this voice"}…` : rt ? `Preparing this recording in ${(ze == null ? void 0 : ze.name) ?? "this voice"} — it will play as soon as it is ready` : ot ? `This voice could not be prepared: ${ot}` : ee ? me ? "Choose a voice" : ze ? ze.name : ve.vcNoVoice + q.label : `${ve.vcNoVoice}${q.label}`, Tt = /* @__PURE__ */ i(Qa, { open: P, onClose: mt, keepOpen: (!!g || w) && !ae, value: Le ? null : ye, onSelect: Mt, languages: Ce, title: (g == null ? void 0 : g.title) ?? "SPOKEN LANGUAGE", note: (g == null ? void 0 : g.note) ?? Wl, searchPlaceholder: ve.search, none: "Original", pinned: (Le ? l : ye) ? [Le ? l : ye] : [], recent: re, requireVoice: ae, sticky: w, busy: k }), Yt = Ie(() => H.filter((Q) => Q.cloned && !Q.auto), [H]), bt = (Q) => Q.voiceId ? Yt.find((De) => De.id === `clone:${Q.voiceId}`) ?? null : null, ct = Ie(() => K.filter((Q) => Q.key >= 0), [K]), Ht = Ie(() => {
|
|
3888
3889
|
const Q = H.filter((Fe) => !Fe.cloned);
|
|
3889
3890
|
if (!ie) return [...Q, ...r && ct.length === 1 ? Yt.filter((Fe) => Fe.id === `clone:${ct[0].voiceId}`) : []];
|
|
3890
3891
|
const De = [];
|
|
@@ -3894,18 +3895,18 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3894
3895
|
!ft || ft.ready === !1 || ft.consent === "pending" && !E || De.push({ id: ft.id, name: Fe.name, cloned: !0, default: !1, live: !0, auto: !0, gender: Fe.sex ?? ft.gender ?? null, speaker: Fe.key, consent: ft.consent ?? null });
|
|
3895
3896
|
}
|
|
3896
3897
|
return [...Q, ...Yt, ...De];
|
|
3897
|
-
}, [H, Yt, ie, ct, E, r]),
|
|
3898
|
+
}, [H, Yt, ie, ct, E, r]), it = ie ? ct.find((Q) => Q.key === de) ?? null : null, jt = (Q) => {
|
|
3898
3899
|
var De;
|
|
3899
3900
|
return Q ? ((De = H.find((Fe) => Fe.id === Q)) == null ? void 0 : De.gender) ?? null : null;
|
|
3900
|
-
}, qe =
|
|
3901
|
+
}, qe = it ? it.sex ?? jt(ce.get(it.key)) : null, _t = Ie(() => it ? Ht.filter((Q) => Q.cloned ? Q.live ? Q.speaker === it.key : Q.id === `clone:${it.voiceId}` : !0) : Ht, [Ht, it, qe, ct]), Vt = (Q) => H.find((De) => De.cloned && De.auto && De.speaker === Q) ?? null, ht = { people: ct, gvList: H, autoOf: Vt, savedFor: bt }, Je = ($ == null ? void 0 : $(ht)) ?? 0, Wt = S ? ct.map((Q) => S(Q, ht)).filter((Q) => !!Q) : [], xt = /* @__PURE__ */ h("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": g ? x : void 0, title: Ct || ot ? yt : void 0, style: { cursor: "pointer", background: Ke || Ct || g && x ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: g && x ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: g ? vt : Bt, children: [
|
|
3901
3902
|
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(oe, { d: tn, size: 17, sw: 1.6, style: { color: gt } }),
|
|
3902
3903
|
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
3904
|
] }), nn = /* @__PURE__ */ i($t, { open: le, onClose: se, title: ve.vcSheet, titleNode: L, doneLabel: ve.done, children: /* @__PURE__ */ i(
|
|
3904
|
-
|
|
3905
|
+
ol,
|
|
3905
3906
|
{
|
|
3906
3907
|
t: ve,
|
|
3907
3908
|
cast: ie && /* @__PURE__ */ i(
|
|
3908
|
-
|
|
3909
|
+
al,
|
|
3909
3910
|
{
|
|
3910
3911
|
t: ve,
|
|
3911
3912
|
roster: K,
|
|
@@ -3924,7 +3925,7 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3924
3925
|
onAdd: (Q) => {
|
|
3925
3926
|
G.reset(), O == null || O(Q);
|
|
3926
3927
|
},
|
|
3927
|
-
noClone:
|
|
3928
|
+
noClone: it && !_t.some((Q) => Q.cloned) ? (W == null ? void 0 : W(it, Vt(it.key), ht)) ?? null : null,
|
|
3928
3929
|
usedBy: ie && de != null ? (Q) => {
|
|
3929
3930
|
const De = K.filter((Fe) => Fe.key !== de && ce.get(Fe.key) === Q.id);
|
|
3930
3931
|
return De.length ? De.map((Fe) => Fe.name).join(", ") : null;
|
|
@@ -3953,7 +3954,7 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3953
3954
|
nn
|
|
3954
3955
|
] }), zt = g && (P || le) ? /* @__PURE__ */ i("div", { className: "vs-side", children: P ? Tt : nn }) : null, xn = We && ot ? `This voice could not be prepared: ${ot}` : null, Dn = dt;
|
|
3955
3956
|
return {
|
|
3956
|
-
barChip: { flag:
|
|
3957
|
+
barChip: { flag: st.flag, code: st.code, label: st.label, onClick: g || w ? en : Ve, active: !!((g || w) && Ot), can: c },
|
|
3957
3958
|
sheetsOpen: P || le,
|
|
3958
3959
|
on: We,
|
|
3959
3960
|
player: lt,
|
|
@@ -3982,7 +3983,7 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
3982
3983
|
savedFor: bt,
|
|
3983
3984
|
closeVoices: se,
|
|
3984
3985
|
setSheet: ne,
|
|
3985
|
-
selectedSpeaker:
|
|
3986
|
+
selectedSpeaker: it,
|
|
3986
3987
|
armVoice: G.arm,
|
|
3987
3988
|
resetPreview: G.reset,
|
|
3988
3989
|
armedId: G.armId,
|
|
@@ -4002,11 +4003,11 @@ function Zl({ recordingId: t, model: e, rows: n, lenS: s, ended: r, cred: a, lan
|
|
|
4002
4003
|
langList: { value: Le ? null : ye, onSelect: Mt, languages: Ce, searchPlaceholder: ve.search, none: "Original", pinned: (Le ? l : ye) ? [Le ? l : ye] : [], recent: re }
|
|
4003
4004
|
};
|
|
4004
4005
|
}
|
|
4005
|
-
function
|
|
4006
|
+
function Zl({ model: t, rows: e, player: n, fixed: s, applied: r, onFixOpen: a, onWord: o, onFix: l, fixMode: c, fixingId: d, marks: u = !0, fixBadges: g = !0, tail: M, tailFg: p, running: N, desk: w, feedRef: k, listener: m, showLabels: f, find: O, findOpen: D, lang: b, warm: W, onVisible: A, wordHl: te = !0 }) {
|
|
4006
4007
|
const { playing: j, engaged: S, t: $, idx: L, seekN: z, wordSync: E, clipPos: re } = n;
|
|
4007
|
-
|
|
4008
|
+
wl(!0, k);
|
|
4008
4009
|
const V = v(null);
|
|
4009
|
-
|
|
4010
|
+
Zo(k, V);
|
|
4010
4011
|
const [C, ue] = I(null), P = (O ?? "").trim().toLowerCase(), [Z, le] = I(0), ne = v(0), ae = v(null), we = v(L), ke = (B) => {
|
|
4011
4012
|
var X;
|
|
4012
4013
|
return ((X = k.current) == null ? void 0 : X.querySelector(`[data-tx-row="${B}"]`)) ?? null;
|
|
@@ -4084,27 +4085,27 @@ function ql({ model: t, rows: e, player: n, fixed: s, applied: r, onFixOpen: a,
|
|
|
4084
4085
|
"Now playing"
|
|
4085
4086
|
] }) });
|
|
4086
4087
|
return /* @__PURE__ */ h("div", { ref: k, "data-tx-feed": "1", className: `txfeed${w ? " txfeed--desk" : ""}${D && !N ? " is-find" : ""}`, children: [
|
|
4087
|
-
/* @__PURE__ */ i(
|
|
4088
|
+
/* @__PURE__ */ i(qo, { thumbRef: V }),
|
|
4088
4089
|
j && Z === -1 && G("up"),
|
|
4089
4090
|
e.map((B, X) => {
|
|
4090
4091
|
var ie;
|
|
4091
4092
|
const y = j && X === L, R = S && X === L, fe = !!d && d === B.id, H = P && !B.text.toLowerCase().includes(P) && !(b && ((ie = B.translations[b]) != null && ie.toLowerCase().includes(P))) ? 0.22 : !S || X <= L || fe ? 1 : 0.38, me = m ? () => n.playRow(X) : c && l ? () => {
|
|
4092
4093
|
j && !y && n.seekRow(X), l(B);
|
|
4093
|
-
} : j && y ? void 0 : () => n.playRow(X), q = m ? null :
|
|
4094
|
+
} : j && y ? void 0 : () => n.playRow(X), q = m ? null : Xo(B, r, s), ve = !!q && (q.script > 0 || q.manual), Ce = w && !!a && C === B.id && !!q && !ve, He = Cs(t, B.speaker), Ae = bs(t, B.speaker), Ue = Ae.lane, he = b && B.translations[b] && B.language !== b ? B.translations[b] : null, Re = Ci(e, X, b), K = R && !E && re ? di(Re.map((de) => ({ t: de.text, sp: " " })), re) : null;
|
|
4094
4095
|
return /* @__PURE__ */ h("div", { "data-tx-row": X, "data-sentence": B.sentenceId, className: `txline${W ? " txline--warm" : ""}${fe ? " txline--fixing" : ""}`, "aria-current": fe || void 0, style: { opacity: H }, onClick: me, onMouseEnter: w && a ? () => ue(B.id) : void 0, onMouseLeave: w && a ? () => ue(null) : void 0, children: [
|
|
4095
4096
|
/* @__PURE__ */ h("div", { className: "txline__meta", children: [
|
|
4096
4097
|
/* @__PURE__ */ i("span", { className: "txline__at", children: Lt(B.start) }),
|
|
4097
4098
|
f && B.speaker >= 0 && /* @__PURE__ */ h(_e, { children: [
|
|
4098
|
-
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${Ue}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children:
|
|
4099
|
+
/* @__PURE__ */ i("div", { className: `lanechip bg-lane-${Ue}`, style: Ae.soft ? { background: Ae.soft, color: Ae.fg } : void 0, children: pi(t, B.speaker) }),
|
|
4099
4100
|
/* @__PURE__ */ i("span", { className: `txline__who lane-${Ue}`, style: Ae.fg ? { color: Ae.fg } : void 0, children: He }),
|
|
4100
|
-
Ae.hasVoice && /* @__PURE__ */ i(
|
|
4101
|
+
Ae.hasVoice && /* @__PURE__ */ i(zi, { color: Ae.fg ?? `var(--lane-${Ue})` })
|
|
4101
4102
|
] }),
|
|
4102
4103
|
y && /* @__PURE__ */ i("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ i(oe, { d: J.headphones, size: w ? 15 : 14, sw: 1.6, stroke: f && B.speaker >= 0 ? Ae.fg ?? `var(--lane-${Ue})` : "var(--ink-45)" }) }),
|
|
4103
|
-
q && g && /* @__PURE__ */ i(
|
|
4104
|
-
Ce && /* @__PURE__ */ i(
|
|
4104
|
+
q && g && /* @__PURE__ */ i(el, { f: q, desk: w, onOpen: a ? () => a(B, !0) : void 0 }),
|
|
4105
|
+
Ce && /* @__PURE__ */ i(tl, { alone: !0, onOpen: () => a == null ? void 0 : a(B, !1) })
|
|
4105
4106
|
] }),
|
|
4106
4107
|
/* @__PURE__ */ i("div", { className: "txline__text", children: Re.map((de, ce) => {
|
|
4107
|
-
const Ne = `${de.seq}:${de.idx}`, je =
|
|
4108
|
+
const Ne = `${de.seq}:${de.idx}`, je = To(de.prob), Y = R && te, U = Y && (E ? $ >= de.start && ($ < de.end || ce === Re.length - 1 || $ < Re[ce + 1].start) : ce === K), F = Y && !U && (E ? de.start > $ : K != null && ce > K), ee = !he && !m && (!!(s != null && s.has(Ne)) || !!de.script), Me = !he && !m && u && !!je && !ee, be = Me ? je === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, Te = ee ? "var(--brand)" : F ? "var(--ink-40)" : be ?? "var(--ink-96)";
|
|
4108
4109
|
return /* @__PURE__ */ h("span", { children: [
|
|
4109
4110
|
/* @__PURE__ */ i(
|
|
4110
4111
|
"span",
|
|
@@ -4140,7 +4141,7 @@ function ql({ model: t, rows: e, player: n, fixed: s, applied: r, onFixOpen: a,
|
|
|
4140
4141
|
j && Z === 1 && G("down")
|
|
4141
4142
|
] });
|
|
4142
4143
|
}
|
|
4143
|
-
function
|
|
4144
|
+
function ql({ open: t, q: e, onQ: n, onClose: s, hits: r, desk: a, inline: o, flash: l }) {
|
|
4144
4145
|
return /* @__PURE__ */ i("div", { className: o ? "searchbar searchbar--inline" : `searchbar searchbar--float${a ? " searchbar--desk" : ""}${t ? "" : " is-hidden"}`, children: /* @__PURE__ */ h("div", { children: [
|
|
4145
4146
|
/* @__PURE__ */ i(oe, { d: J.search, size: 16, sw: 1.7, style: { color: "var(--ink-45)", flex: "none" } }),
|
|
4146
4147
|
/* @__PURE__ */ i("input", { value: e, onChange: (c) => n(c.target.value), onKeyDown: (c) => {
|
|
@@ -4154,7 +4155,7 @@ function Kl({ open: t, q: e, onQ: n, onClose: s, hits: r, desk: a, inline: o, fl
|
|
|
4154
4155
|
e.trim() && /* @__PURE__ */ i("button", { type: "button", className: "searchbar__x", onClick: () => n(""), "aria-label": "Clear", title: "Clear", children: /* @__PURE__ */ i(oe, { d: J.close, size: 15, sw: 1.7 }) })
|
|
4155
4156
|
] }) });
|
|
4156
4157
|
}
|
|
4157
|
-
function
|
|
4158
|
+
function Kl(t, e, n, s, r) {
|
|
4158
4159
|
const a = v(n);
|
|
4159
4160
|
a.current = n;
|
|
4160
4161
|
const o = v(s);
|
|
@@ -4184,7 +4185,7 @@ function Jl(t, e, n, s, r) {
|
|
|
4184
4185
|
}, []), l;
|
|
4185
4186
|
}
|
|
4186
4187
|
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
|
|
4188
|
+
function bi(t) {
|
|
4188
4189
|
let e = (16 * t + 128) * t + 64;
|
|
4189
4190
|
if (t >= 2) {
|
|
4190
4191
|
const n = Math.floor(t / 7) + 2;
|
|
@@ -4192,14 +4193,14 @@ function xi(t) {
|
|
|
4192
4193
|
}
|
|
4193
4194
|
return e;
|
|
4194
4195
|
}
|
|
4195
|
-
const Kr = (t) => Math.floor(
|
|
4196
|
+
const Kr = (t) => Math.floor(bi(t) / 8) - Xt.perBlock[t] * Xt.blocks[t];
|
|
4196
4197
|
function ws(t, e) {
|
|
4197
4198
|
let n = 0;
|
|
4198
4199
|
for (let s = 7; s >= 0; s--)
|
|
4199
4200
|
n = n << 1 ^ (n >>> 7) * 285, n ^= (e >>> s & 1) * t;
|
|
4200
4201
|
return n;
|
|
4201
4202
|
}
|
|
4202
|
-
function
|
|
4203
|
+
function Jl(t) {
|
|
4203
4204
|
const e = new Array(t).fill(0);
|
|
4204
4205
|
e[t - 1] = 1;
|
|
4205
4206
|
let n = 1;
|
|
@@ -4209,7 +4210,7 @@ function Xl(t) {
|
|
|
4209
4210
|
}
|
|
4210
4211
|
return e;
|
|
4211
4212
|
}
|
|
4212
|
-
function
|
|
4213
|
+
function Xl(t, e) {
|
|
4213
4214
|
const n = new Array(e.length).fill(0);
|
|
4214
4215
|
for (const s of t) {
|
|
4215
4216
|
const r = s ^ n.shift();
|
|
@@ -4219,13 +4220,13 @@ function ec(t, e) {
|
|
|
4219
4220
|
}
|
|
4220
4221
|
return n;
|
|
4221
4222
|
}
|
|
4222
|
-
function
|
|
4223
|
+
function ec(t) {
|
|
4223
4224
|
if (t === 1) return [];
|
|
4224
4225
|
const e = Math.floor(t / 7) + 2, n = t * 4 + 17, s = t === 32 ? 26 : Math.ceil((t * 4 + 4) / (e * 2 - 2)) * 2, r = [6];
|
|
4225
4226
|
for (let a = n - 7; r.length < e; a -= s) r.splice(1, 0, a);
|
|
4226
4227
|
return r;
|
|
4227
4228
|
}
|
|
4228
|
-
function
|
|
4229
|
+
function tc(t) {
|
|
4229
4230
|
const e = Array.from(new TextEncoder().encode(t));
|
|
4230
4231
|
let n = 1;
|
|
4231
4232
|
for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= Kr(n) * 8); n++)
|
|
@@ -4240,11 +4241,11 @@ function nc(t) {
|
|
|
4240
4241
|
for (let L = 236; a.length < r; L ^= 253) o(L, 8);
|
|
4241
4242
|
const l = [];
|
|
4242
4243
|
for (let L = 0; L < a.length; L += 8) l.push(a.slice(L, L + 8).reduce((z, E) => z << 1 | E, 0));
|
|
4243
|
-
const c = Xt.blocks[n], d = Xt.perBlock[n], u = Math.floor(
|
|
4244
|
+
const c = Xt.blocks[n], d = Xt.perBlock[n], u = Math.floor(bi(n) / 8), g = c - u % c, M = Math.floor(u / c), p = [], N = Jl(d);
|
|
4244
4245
|
for (let L = 0, z = 0; L < c; L++) {
|
|
4245
4246
|
const E = l.slice(z, z + M - d + (L < g ? 0 : 1));
|
|
4246
4247
|
z += E.length;
|
|
4247
|
-
const re =
|
|
4248
|
+
const re = Xl(E, N);
|
|
4248
4249
|
L < g && E.push(0), p.push(E.concat(re));
|
|
4249
4250
|
}
|
|
4250
4251
|
const w = [];
|
|
@@ -4263,7 +4264,7 @@ function nc(t) {
|
|
|
4263
4264
|
}
|
|
4264
4265
|
};
|
|
4265
4266
|
O(3, 3), O(s - 4, 3), O(3, s - 4);
|
|
4266
|
-
const D =
|
|
4267
|
+
const D = ec(n);
|
|
4267
4268
|
for (let L = 0; L < D.length; L++) for (let z = 0; z < D.length; z++)
|
|
4268
4269
|
if (!(L === 0 && z === 0 || L === 0 && z === D.length - 1 || L === D.length - 1 && z === 0))
|
|
4269
4270
|
for (let E = -2; E <= 2; E++) for (let re = -2; re <= 2; re++) f(D[L] + re, D[z] + E, Math.max(Math.abs(re), Math.abs(E)) !== 1);
|
|
@@ -4350,30 +4351,30 @@ function nc(t) {
|
|
|
4350
4351
|
}
|
|
4351
4352
|
return te(S), b(S), k;
|
|
4352
4353
|
}
|
|
4353
|
-
function
|
|
4354
|
-
const e =
|
|
4354
|
+
function nc(t) {
|
|
4355
|
+
const e = tc(t), n = e.length, s = 2;
|
|
4355
4356
|
let r = "";
|
|
4356
4357
|
for (let o = 0; o < n; o++) for (let l = 0; l < n; l++) e[o][l] && (r += `M${l} ${o}h1v1h-1z`);
|
|
4357
4358
|
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
4359
|
return `data:image/svg+xml,${encodeURIComponent(a)}`;
|
|
4359
4360
|
}
|
|
4360
|
-
const
|
|
4361
|
+
const xi = "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", sc = "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
4362
|
function os() {
|
|
4362
4363
|
const t = document;
|
|
4363
4364
|
return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
|
|
4364
4365
|
}
|
|
4365
|
-
let
|
|
4366
|
+
let As = null;
|
|
4366
4367
|
function Jr(t) {
|
|
4367
|
-
|
|
4368
|
+
As = t;
|
|
4368
4369
|
}
|
|
4369
4370
|
function Xr() {
|
|
4370
4371
|
const t = document;
|
|
4371
4372
|
return !!(t.fullscreenEnabled || t.webkitFullscreenEnabled);
|
|
4372
4373
|
}
|
|
4373
|
-
function
|
|
4374
|
+
function rc() {
|
|
4374
4375
|
var e;
|
|
4375
4376
|
if (typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches)) return !1;
|
|
4376
|
-
const t =
|
|
4377
|
+
const t = As ?? document.documentElement;
|
|
4377
4378
|
return !t.requestFullscreen && !t.webkitRequestFullscreen;
|
|
4378
4379
|
}
|
|
4379
4380
|
function Kt(t) {
|
|
@@ -4383,7 +4384,7 @@ function Kt(t) {
|
|
|
4383
4384
|
function wn(t) {
|
|
4384
4385
|
var r, a, o, l;
|
|
4385
4386
|
if (typeof document > "u") return;
|
|
4386
|
-
const e = document, n =
|
|
4387
|
+
const e = document, n = As ?? document.documentElement, s = e.fullscreenElement ?? e.webkitFullscreenElement;
|
|
4387
4388
|
try {
|
|
4388
4389
|
t && !s && ((a = (r = n.requestFullscreen ?? n.webkitRequestFullscreen) == null ? void 0 : r.call(n, { navigationUI: "hide" })) == null || a.catch(() => {
|
|
4389
4390
|
})), !t && s && ((l = (o = e.exitFullscreen ?? e.webkitExitFullscreen) == null ? void 0 : o.call(e)) == null || l.catch(() => {
|
|
@@ -4391,7 +4392,7 @@ function wn(t) {
|
|
|
4391
4392
|
} catch {
|
|
4392
4393
|
}
|
|
4393
4394
|
}
|
|
4394
|
-
function
|
|
4395
|
+
function ic(t) {
|
|
4395
4396
|
const [e, n] = I(() => {
|
|
4396
4397
|
var s;
|
|
4397
4398
|
return typeof window < "u" && !!((s = window.matchMedia) != null && s.call(window, t).matches);
|
|
@@ -4443,7 +4444,7 @@ function Ln({ pos: t, interactive: e, axis: n = "x" }) {
|
|
|
4443
4444
|
/* @__PURE__ */ i("span", { className: "gfull__t gfull__end", style: { color: t.live ? "#ec634d" : "rgba(234,236,250,.6)" }, children: t.endLabel })
|
|
4444
4445
|
] });
|
|
4445
4446
|
}
|
|
4446
|
-
function
|
|
4447
|
+
function Hc({ pos: t }) {
|
|
4447
4448
|
const [e, n] = I(null), s = (l) => {
|
|
4448
4449
|
const c = l.currentTarget.getBoundingClientRect();
|
|
4449
4450
|
return Math.min(1, Math.max(0, (l.clientX - c.left) / Math.max(1, c.width)));
|
|
@@ -4497,7 +4498,7 @@ function kn({ t, mini: e }) {
|
|
|
4497
4498
|
disabled: !t.playable,
|
|
4498
4499
|
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
4500
|
onClick: t.onPlay,
|
|
4500
|
-
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(
|
|
4501
|
+
children: t.busy ? /* @__PURE__ */ i("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ i(ka, { size: e ? 14 : 18 }) : /* @__PURE__ */ i(vs, { size: e ? 15 : 19 })
|
|
4501
4502
|
}
|
|
4502
4503
|
),
|
|
4503
4504
|
/* @__PURE__ */ i("button", { type: "button", className: "gfull__step", "aria-label": "Next line", title: "Next line", style: { opacity: t.nextOn ? 1 : 0.3 }, onClick: t.onNext, children: /* @__PURE__ */ i(oe, { d: J.chevronRight, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) })
|
|
@@ -4505,7 +4506,7 @@ function kn({ t, mini: e }) {
|
|
|
4505
4506
|
}
|
|
4506
4507
|
function Ls({ live: t, mini: e, desk: n, pct: s, mark: r }) {
|
|
4507
4508
|
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(
|
|
4509
|
+
/* @__PURE__ */ i("a", { href: ri, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: r ? /* @__PURE__ */ i(js, { dark: !0, size: 22 }) : /* @__PURE__ */ i(In, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
|
|
4509
4510
|
t && /* @__PURE__ */ h("span", { className: "gfull__live", children: [
|
|
4510
4511
|
/* @__PURE__ */ i("i", {}),
|
|
4511
4512
|
"LIVE"
|
|
@@ -4513,10 +4514,10 @@ function Ls({ live: t, mini: e, desk: n, pct: s, mark: r }) {
|
|
|
4513
4514
|
s != null && /* @__PURE__ */ i("span", { className: "gfull__txpct", title: "Still being transcribed: it plays as far as it is written", children: `TRANSCRIBING ${s}%` })
|
|
4514
4515
|
] });
|
|
4515
4516
|
}
|
|
4516
|
-
function
|
|
4517
|
+
function Di({ v: t, size: e }) {
|
|
4517
4518
|
return /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Voices", title: t.title, disabled: !t.on, style: { opacity: t.on ? 1 : 0.45, cursor: t.on ? "pointer" : "default" }, onClick: t.on ? t.onClick : void 0, children: /* @__PURE__ */ i(oe, { d: J.headphones, size: e, sw: 1.6 }) });
|
|
4518
4519
|
}
|
|
4519
|
-
function
|
|
4520
|
+
function ac({ pos: t, transport: e, chip: n, voices: s, onShare: r, onFull: a, copied: o }) {
|
|
4520
4521
|
return /* @__PURE__ */ h("div", { className: "gmini", "data-theme": "dark", children: [
|
|
4521
4522
|
/* @__PURE__ */ i("div", { className: "gmini__shade", "aria-hidden": "true" }),
|
|
4522
4523
|
/* @__PURE__ */ i("div", { className: "gmini__top", children: /* @__PURE__ */ i(Ls, { live: t.live, mini: !0 }) }),
|
|
@@ -4526,18 +4527,18 @@ function oc({ pos: t, transport: e, chip: n, voices: s, onShare: r, onFull: a, c
|
|
|
4526
4527
|
/* @__PURE__ */ i(kn, { t: e, mini: !0 }),
|
|
4527
4528
|
/* @__PURE__ */ i("span", { style: { flex: 1 } }),
|
|
4528
4529
|
/* @__PURE__ */ i("div", { className: "gfull__chip", children: n }),
|
|
4529
|
-
/* @__PURE__ */ i(
|
|
4530
|
+
/* @__PURE__ */ i(Di, { v: s, size: 14 }),
|
|
4530
4531
|
r && /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Share", title: "Share", onClick: (l) => {
|
|
4531
4532
|
l.stopPropagation(), r();
|
|
4532
4533
|
}, children: /* @__PURE__ */ i(oe, { d: J.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(oe, { d:
|
|
4534
|
+
/* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", "aria-label": "Full screen", title: "Full screen", onClick: a, children: /* @__PURE__ */ i(oe, { d: xi, size: 14, sw: 1.8 }) })
|
|
4534
4535
|
] })
|
|
4535
4536
|
] }),
|
|
4536
4537
|
o
|
|
4537
4538
|
] });
|
|
4538
4539
|
}
|
|
4539
|
-
const
|
|
4540
|
-
function
|
|
4540
|
+
const oc = { color: "rgba(255,255,255,.4)" };
|
|
4541
|
+
function Si({ compact: t = !1, noFull: e = !1, page: n = !0, picture: s, title: r, desk: a, pos: o, sub: l, wait: c, pct: d, mute: u, cc: g, ad: M, chip: p, transport: N, picker: w, sheet: k, voices: m, voicesBtn: f, sheetOpen: O, onShare: D, onSettings: b, paused: W, copied: A, onTouch: te, onClose: j }) {
|
|
4541
4542
|
const [S, $] = I(() => !!os());
|
|
4542
4543
|
_(() => {
|
|
4543
4544
|
const K = () => $(!!os());
|
|
@@ -4563,7 +4564,7 @@ function Ai({ compact: t = !1, noFull: e = !1, page: n = !0, picture: s, title:
|
|
|
4563
4564
|
}), de && ce && (de.content = ce);
|
|
4564
4565
|
};
|
|
4565
4566
|
}, []);
|
|
4566
|
-
const P = Ie(() => n &&
|
|
4567
|
+
const P = Ie(() => n && rc(), [n]), [Z, le] = I(P);
|
|
4567
4568
|
_(() => {
|
|
4568
4569
|
if (!n) return;
|
|
4569
4570
|
const K = [document.documentElement, document.body], ie = K.map((Ne) => [Ne.style.overflow, Ne.style.overscrollBehavior]);
|
|
@@ -4594,7 +4595,7 @@ function Ai({ compact: t = !1, noFull: e = !1, page: n = !0, picture: s, title:
|
|
|
4594
4595
|
window.removeEventListener("keydown", ie, !0), window.removeEventListener("keyup", de, !0);
|
|
4595
4596
|
};
|
|
4596
4597
|
}, []);
|
|
4597
|
-
const ae =
|
|
4598
|
+
const ae = ic("(orientation: landscape) and (max-height: 540px)"), we = v(null), [ke, Qe] = I(null);
|
|
4598
4599
|
Qt(() => {
|
|
4599
4600
|
const K = we.current;
|
|
4600
4601
|
if (!K || (Qe(K.getBoundingClientRect().width), typeof ResizeObserver > "u")) return;
|
|
@@ -4627,7 +4628,7 @@ function Ai({ compact: t = !1, noFull: e = !1, page: n = !0, picture: s, title:
|
|
|
4627
4628
|
}, [y, B]);
|
|
4628
4629
|
const [R, fe] = I(!0), [H, me] = I(!1), q = v(void 0);
|
|
4629
4630
|
_(() => () => window.clearTimeout(q.current), []);
|
|
4630
|
-
const ve = W != null && W.share ? W.share.url(R && W.share.at >= 1 ? Math.floor(W.share.at) : null) : "", Ce = Ie(() => Le && ve && !N.playing ?
|
|
4631
|
+
const ve = W != null && W.share ? W.share.url(R && W.share.at >= 1 ? Math.floor(W.share.at) : null) : "", Ce = Ie(() => Le && ve && !N.playing ? nc(ve) : "", [Le, ve, N.playing]), He = () => {
|
|
4631
4632
|
var K;
|
|
4632
4633
|
(K = navigator.clipboard) == null || K.writeText(ve).then(() => {
|
|
4633
4634
|
me(!0), window.clearTimeout(q.current), q.current = window.setTimeout(() => me(!1), 1800);
|
|
@@ -4648,16 +4649,16 @@ function Ai({ compact: t = !1, noFull: e = !1, page: n = !0, picture: s, title:
|
|
|
4648
4649
|
/* @__PURE__ */ i(oe, { d: H ? J.check : J.copy, size: 14, sw: 1.8 }),
|
|
4649
4650
|
H ? "Copied" : "Copy link"
|
|
4650
4651
|
] }),
|
|
4651
|
-
/* @__PURE__ */ h("button", { type: "button", className: "gfull__sharebtn", onClick: () =>
|
|
4652
|
+
/* @__PURE__ */ h("button", { type: "button", className: "gfull__sharebtn", onClick: () => Ss(ve, r), children: [
|
|
4652
4653
|
/* @__PURE__ */ i(oe, { d: J.share, size: 14, sw: 1.6 }),
|
|
4653
4654
|
"Share"
|
|
4654
4655
|
] })
|
|
4655
4656
|
] })
|
|
4656
4657
|
] })
|
|
4657
4658
|
] }), Ue = (K, ie, de, ce, Ne, je = 0) => /* @__PURE__ */ i("button", { type: "button", className: "gfull__btn", title: K, "aria-label": K, onClick: ce, children: /* @__PURE__ */ i(oe, { d: ie, size: (Le ? 20 : Se ? 15 : 18) + je, sw: de, style: Ne }) }), he = /* @__PURE__ */ h("div", { className: "gfull__acts", children: [
|
|
4658
|
-
f && /* @__PURE__ */ i(
|
|
4659
|
+
f && /* @__PURE__ */ i(Di, { v: f, size: Le ? 20 : Se ? 15 : 18 }),
|
|
4659
4660
|
D && Ue("Share", J.share, 1.6, D),
|
|
4660
|
-
Xr() && !e && Ue(S ? "Exit full screen" : "Full screen", S ?
|
|
4661
|
+
Xr() && !e && Ue(S ? "Exit full screen" : "Full screen", S ? sc : xi, 1.7, () => wn(!S)),
|
|
4661
4662
|
j && Ue("Close player", J.close, 1.7, j)
|
|
4662
4663
|
] }), Re = (u || g || b) && /* @__PURE__ */ h("div", { className: "gfull__top", children: [
|
|
4663
4664
|
u && Ue(u.muted ? "Unmute" : "Mute", u.muted ? J.volumeOff : J.volume, 1.6, u.onToggle),
|
|
@@ -4690,7 +4691,10 @@ function Ai({ compact: t = !1, noFull: e = !1, page: n = !0, picture: s, title:
|
|
|
4690
4691
|
/* @__PURE__ */ i("div", { className: "gfull__shade", "aria-hidden": "true" }),
|
|
4691
4692
|
W && !M && /* @__PURE__ */ h("div", { className: `gfull__pausedinfo${N.playing ? "" : " gfull__pausedinfo--on"}`, "aria-hidden": N.playing, children: [
|
|
4692
4693
|
/* @__PURE__ */ h("div", { className: "gfull__pausedtext", children: [
|
|
4693
|
-
/* @__PURE__ */
|
|
4694
|
+
/* @__PURE__ */ h("div", { className: "gfull__pausedhead", children: [
|
|
4695
|
+
(Se || ye) && /* @__PURE__ */ i("span", { className: "gfull__pausedmark", "aria-hidden": "true", children: /* @__PURE__ */ i(js, { dark: !0, size: 20 }) }),
|
|
4696
|
+
/* @__PURE__ */ i("div", { className: "gfull__pausedtitle", children: W.title })
|
|
4697
|
+
] }),
|
|
4694
4698
|
W.summary && /* @__PURE__ */ i("div", { className: "gfull__pausedsum", children: W.summary })
|
|
4695
4699
|
] }),
|
|
4696
4700
|
Ae
|
|
@@ -4719,7 +4723,7 @@ function Ai({ compact: t = !1, noFull: e = !1, page: n = !0, picture: s, title:
|
|
|
4719
4723
|
] }),
|
|
4720
4724
|
" "
|
|
4721
4725
|
] }),
|
|
4722
|
-
l.words.map((K, ie) => /* @__PURE__ */ h("span", { "data-said": K.dim ? void 0 : "", "data-at": l.cursor != null && ie <= l.cursor ? "" : void 0, style: K.dim ?
|
|
4726
|
+
l.words.map((K, ie) => /* @__PURE__ */ h("span", { "data-said": K.dim ? void 0 : "", "data-at": l.cursor != null && ie <= l.cursor ? "" : void 0, style: K.dim ? oc : void 0, children: [
|
|
4723
4727
|
K.t,
|
|
4724
4728
|
K.sp
|
|
4725
4729
|
] }, ie))
|
|
@@ -4756,10 +4760,10 @@ function Ai({ compact: t = !1, noFull: e = !1, page: n = !0, picture: s, title:
|
|
|
4756
4760
|
}
|
|
4757
4761
|
);
|
|
4758
4762
|
}
|
|
4759
|
-
function
|
|
4763
|
+
function lc({ dark: t, back: e, home: n, live: s, title: r, badge: a, subline: o, onOptions: l, optionsActive: c }) {
|
|
4760
4764
|
return /* @__PURE__ */ h("div", { className: "ghead", children: [
|
|
4761
4765
|
e && /* @__PURE__ */ i("button", { type: "button", className: "ghead__back", "aria-label": "Back", title: "Back", onClick: e, children: /* @__PURE__ */ i(oe, { d: J.chevronLeft, size: 19, sw: 1.7 }) }),
|
|
4762
|
-
s && /* @__PURE__ */ i("span", { className: "mark", children: /* @__PURE__ */ i(
|
|
4766
|
+
s && /* @__PURE__ */ i("span", { className: "mark", children: /* @__PURE__ */ i(js, { dark: t, size: 30 }) }),
|
|
4763
4767
|
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ i("div", { className: "ghead__logo", children: /* @__PURE__ */ i(In, { dark: t, height: 22 }) }) : /* @__PURE__ */ h("div", { className: "ghead__title", onClick: e, title: e ? "Back" : void 0, style: { cursor: e ? "pointer" : "default" }, children: [
|
|
4764
4768
|
/* @__PURE__ */ h("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
|
|
4765
4769
|
/* @__PURE__ */ i("span", { className: "ghead__name", children: r }),
|
|
@@ -4767,20 +4771,20 @@ function cc({ dark: t, back: e, home: n, live: s, title: r, badge: a, subline: o
|
|
|
4767
4771
|
] }),
|
|
4768
4772
|
o && /* @__PURE__ */ i("div", { className: "ghead__sub", children: o })
|
|
4769
4773
|
] }) }),
|
|
4770
|
-
/* @__PURE__ */ i(
|
|
4774
|
+
/* @__PURE__ */ i(va, { 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: [
|
|
4771
4775
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "5.5", r: "1.85" }),
|
|
4772
4776
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "12", r: "1.85" }),
|
|
4773
4777
|
/* @__PURE__ */ i("circle", { cx: "12", cy: "18.5", r: "1.85" })
|
|
4774
4778
|
] }) })
|
|
4775
4779
|
] });
|
|
4776
4780
|
}
|
|
4777
|
-
const
|
|
4778
|
-
function
|
|
4781
|
+
const cc = "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", uc = (t, e = !1) => [{ value: "read", label: t.read, icon: /* @__PURE__ */ i(oe, { d: J.book, size: 17 }) }, { value: "listen", label: /* @__PURE__ */ i("span", { style: { display: "inline-block", minWidth: 52, textAlign: "center" }, children: e ? t.watch : t.listen }), icon: /* @__PURE__ */ i(oe, { d: e ? cc : J.headphones, size: 19, sw: 1.5 }) }];
|
|
4782
|
+
function dc(t) {
|
|
4779
4783
|
if (!t.lang) return null;
|
|
4780
4784
|
const e = t.langName;
|
|
4781
4785
|
return t.translateFailed === t.lang ? { kind: "translateFailed", lang: e } : t.voiceFailed ? { kind: "voiceFailed", lang: e } : t.translating ? { kind: "translating", lang: e } : t.starting != null ? { kind: "starting", lang: e, since: t.starting } : t.relang || t.slowLine ? { kind: "voice", lang: e, since: t.lineSince } : null;
|
|
4782
4786
|
}
|
|
4783
|
-
function
|
|
4787
|
+
function Mc(t, e) {
|
|
4784
4788
|
const [n, s] = I(null), [r, a] = I(!1);
|
|
4785
4789
|
return _(() => {
|
|
4786
4790
|
if (!t) {
|
|
@@ -4793,8 +4797,8 @@ function gc(t, e) {
|
|
|
4793
4797
|
return () => clearTimeout(l);
|
|
4794
4798
|
}, [t, e]), [r, n];
|
|
4795
4799
|
}
|
|
4796
|
-
const
|
|
4797
|
-
function
|
|
4800
|
+
const gc = (t) => `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
4801
|
+
function hc({ state: t, line: e, onRetry: n, onOriginal: s }) {
|
|
4798
4802
|
const [r, a] = I(() => Date.now());
|
|
4799
4803
|
_(() => {
|
|
4800
4804
|
if (t.since == null) return;
|
|
@@ -4827,7 +4831,7 @@ function fc({ state: t, line: e, onRetry: n, onOriginal: s }) {
|
|
|
4827
4831
|
/* @__PURE__ */ h("div", { className: "pwait__head", children: [
|
|
4828
4832
|
l ? /* @__PURE__ */ i("div", { className: "pwait__mark", "aria-hidden": "true", children: /* @__PURE__ */ i(oe, { d: J.warnCircle, size: 18, sw: 1.8 }) }) : /* @__PURE__ */ i("div", { className: "pwait__spin", "aria-hidden": "true" }),
|
|
4829
4833
|
/* @__PURE__ */ i("div", { className: "pwait__t", children: c }),
|
|
4830
|
-
!l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children:
|
|
4834
|
+
!l && o != null && o >= 3 && /* @__PURE__ */ i("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: gc(o) })
|
|
4831
4835
|
] }),
|
|
4832
4836
|
/* @__PURE__ */ i("div", { className: "pwait__note", children: d }),
|
|
4833
4837
|
!l && /* @__PURE__ */ i("div", { className: "pwait__bar", "aria-hidden": "true", children: /* @__PURE__ */ i("div", {}) }),
|
|
@@ -4840,13 +4844,13 @@ function fc({ state: t, line: e, onRetry: n, onOriginal: s }) {
|
|
|
4840
4844
|
}
|
|
4841
4845
|
);
|
|
4842
4846
|
}
|
|
4843
|
-
const
|
|
4844
|
-
function
|
|
4847
|
+
const Es = "https://app.vocalstack.com", fc = "/connect/transcribe";
|
|
4848
|
+
function Nc() {
|
|
4845
4849
|
const t = new Uint8Array(24);
|
|
4846
4850
|
return crypto.getRandomValues(t), btoa(String.fromCharCode(...t)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
4847
4851
|
}
|
|
4848
|
-
function
|
|
4849
|
-
const s = new URL(t ??
|
|
4852
|
+
function Ai(t, e, n) {
|
|
4853
|
+
const s = new URL(t ?? Es), r = Nc(), a = new URL(fc, s);
|
|
4850
4854
|
e.url && a.searchParams.set("url", e.url), e.transcription && a.searchParams.set("transcription", e.transcription), e.ask && a.searchParams.set("ask", "1"), e.connect && a.searchParams.set("connect", "1"), a.searchParams.set("origin", window.location.origin), a.searchParams.set("nonce", r);
|
|
4851
4855
|
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)}`);
|
|
4852
4856
|
return u ? new Promise((g, M) => {
|
|
@@ -4886,33 +4890,33 @@ function Ei(t, e, n) {
|
|
|
4886
4890
|
}, 500);
|
|
4887
4891
|
}) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
|
|
4888
4892
|
}
|
|
4889
|
-
async function
|
|
4890
|
-
const s = await
|
|
4893
|
+
async function pc(t, e, n) {
|
|
4894
|
+
const s = await Ai(t, { url: e }, n);
|
|
4891
4895
|
return s === "connected" ? null : s;
|
|
4892
4896
|
}
|
|
4893
|
-
const
|
|
4894
|
-
function
|
|
4897
|
+
const Ei = "vsp.connected";
|
|
4898
|
+
function mc(t) {
|
|
4895
4899
|
try {
|
|
4896
|
-
return localStorage.getItem(
|
|
4900
|
+
return localStorage.getItem(Ei) === new URL(t ?? Es).origin;
|
|
4897
4901
|
} catch {
|
|
4898
4902
|
return !1;
|
|
4899
4903
|
}
|
|
4900
4904
|
}
|
|
4901
|
-
function
|
|
4905
|
+
function yc(t) {
|
|
4902
4906
|
try {
|
|
4903
|
-
localStorage.setItem(
|
|
4907
|
+
localStorage.setItem(Ei, new URL(t ?? Es).origin);
|
|
4904
4908
|
} catch {
|
|
4905
4909
|
}
|
|
4906
4910
|
}
|
|
4907
|
-
const
|
|
4911
|
+
const Tc = {
|
|
4908
4912
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
4909
4913
|
consent: "Confirm in the VocalStack window…",
|
|
4910
4914
|
looking: "Looking for your transcription of this video…",
|
|
4911
4915
|
confirm: "Confirm in the VocalStack window…",
|
|
4912
4916
|
checking: "Checking the link…",
|
|
4913
4917
|
starting: "Starting the transcription…"
|
|
4914
|
-
},
|
|
4915
|
-
function
|
|
4918
|
+
}, wc = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
4919
|
+
function Lc({ options: t, onStarted: e, onReplay: n, onClose: s }) {
|
|
4916
4920
|
const [r, a] = I(""), [o, l] = I(!1), [c, d] = I(null), [u, g] = I(null);
|
|
4917
4921
|
_(() => {
|
|
4918
4922
|
const w = (k) => {
|
|
@@ -4920,11 +4924,11 @@ function kc({ options: t, onStarted: e, onReplay: n, onClose: s }) {
|
|
|
4920
4924
|
};
|
|
4921
4925
|
return window.addEventListener("keydown", w), () => window.removeEventListener("keydown", w);
|
|
4922
4926
|
}, [s]);
|
|
4923
|
-
const M = r.trim(), p =
|
|
4927
|
+
const M = r.trim(), p = wc.test(M), N = async () => {
|
|
4924
4928
|
if (!(!p || o)) {
|
|
4925
4929
|
l(!0), d(null);
|
|
4926
4930
|
try {
|
|
4927
|
-
const w = await
|
|
4931
|
+
const w = await pc(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, g);
|
|
4928
4932
|
w && e(w);
|
|
4929
4933
|
} catch (w) {
|
|
4930
4934
|
d(w instanceof Error ? w.message : "Something went wrong. Please try again.");
|
|
@@ -4948,7 +4952,7 @@ function kc({ options: t, onStarted: e, onReplay: n, onClose: s }) {
|
|
|
4948
4952
|
}, "aria-label": "Video link" }),
|
|
4949
4953
|
/* @__PURE__ */ i("button", { type: "submit", className: "vsp-end__go", disabled: !p || o, children: o ? /* @__PURE__ */ i(at, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : "Transcribe" })
|
|
4950
4954
|
] }),
|
|
4951
|
-
o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children:
|
|
4955
|
+
o && /* @__PURE__ */ i("div", { className: "vsp-end__note", role: "status", children: Tc[u ?? "checking"] }),
|
|
4952
4956
|
c && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: c }),
|
|
4953
4957
|
/* @__PURE__ */ h("div", { className: "vsp-end__foot", children: [
|
|
4954
4958
|
/* @__PURE__ */ i("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }),
|
|
@@ -4959,7 +4963,7 @@ function kc({ options: t, onStarted: e, onReplay: n, onClose: s }) {
|
|
|
4959
4963
|
] })
|
|
4960
4964
|
] }) });
|
|
4961
4965
|
}
|
|
4962
|
-
function
|
|
4966
|
+
function Yi(t) {
|
|
4963
4967
|
const [e, n] = I(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
|
|
4964
4968
|
return _(() => {
|
|
4965
4969
|
if (t != null) return;
|
|
@@ -4967,11 +4971,11 @@ function _i(t) {
|
|
|
4967
4971
|
return window.addEventListener("resize", s), () => window.removeEventListener("resize", s);
|
|
4968
4972
|
}, [t]), t ?? e;
|
|
4969
4973
|
}
|
|
4970
|
-
const
|
|
4971
|
-
function
|
|
4972
|
-
const n =
|
|
4974
|
+
const kc = { lang: null, subtitles: !0, speakerLabels: !1, wordHighlight: !0, translateAudio: !0, voices: "cloned", removeBackground: !1, muted: !1 };
|
|
4975
|
+
function vc(t, e) {
|
|
4976
|
+
const n = wi(), [s, r] = gi(), [a, o] = I(null), [l, c] = I("main"), d = ys(n, t.lang), u = Ie(() => hi(n, "translation"), [n]), g = (A) => {
|
|
4973
4977
|
e({ lang: A }), r(A);
|
|
4974
|
-
}, M =
|
|
4978
|
+
}, M = Is({ open: a === "lang" || a === "settings" && l === "lang", onClose: () => a === "lang" ? o(null) : c("main"), value: t.lang, onSelect: g, languages: u, none: "As spoken", pinned: t.lang ? [t.lang] : [], recent: s, keepOpen: !0 }), p = () => {
|
|
4975
4979
|
o(null), c("main");
|
|
4976
4980
|
}, N = t.lang ? /* @__PURE__ */ i("span", { style: { fontSize: 19, lineHeight: 1 }, children: d.flag }) : /* @__PURE__ */ i(oe, { d: J.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) => {
|
|
4977
4981
|
A.stopPropagation(), c("main"), o((te) => te === "lang" ? null : "lang");
|
|
@@ -5036,14 +5040,14 @@ function jc(t, e) {
|
|
|
5036
5040
|
}
|
|
5037
5041
|
};
|
|
5038
5042
|
}
|
|
5039
|
-
const
|
|
5043
|
+
const _i = {
|
|
5040
5044
|
"signing-in": "Sign in to VocalStack in the window that opened…",
|
|
5041
5045
|
consent: "Confirm in the VocalStack window…",
|
|
5042
5046
|
looking: "Looking for your transcription of this video…",
|
|
5043
5047
|
confirm: "Confirm in the VocalStack window…",
|
|
5044
5048
|
checking: "Checking the link…",
|
|
5045
5049
|
starting: "Starting the transcription…"
|
|
5046
|
-
},
|
|
5050
|
+
}, jc = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
|
|
5047
5051
|
function ls(t) {
|
|
5048
5052
|
try {
|
|
5049
5053
|
return new URL(t).hostname.replace(/^www\./, "");
|
|
@@ -5051,35 +5055,35 @@ function ls(t) {
|
|
|
5051
5055
|
return t;
|
|
5052
5056
|
}
|
|
5053
5057
|
}
|
|
5054
|
-
function
|
|
5055
|
-
const [n, s] = I(!1), [r, a] = I(null), [o, l] = I(null), [c, d] = I(() =>
|
|
5058
|
+
function zc(t, e) {
|
|
5059
|
+
const [n, s] = I(!1), [r, a] = I(null), [o, l] = I(null), [c, d] = I(() => mc(t)), u = Xe((p) => {
|
|
5056
5060
|
if (n) return;
|
|
5057
5061
|
s(!0), l(null);
|
|
5058
5062
|
let N;
|
|
5059
5063
|
try {
|
|
5060
|
-
N =
|
|
5064
|
+
N = Ai(t, p, a);
|
|
5061
5065
|
} catch (w) {
|
|
5062
5066
|
N = Promise.reject(w);
|
|
5063
5067
|
}
|
|
5064
5068
|
N.then((w) => {
|
|
5065
|
-
w && (
|
|
5069
|
+
w && (yc(t), d(!0), w !== "connected" && e(w));
|
|
5066
5070
|
}).catch((w) => l(w instanceof Error ? w.message : "Something went wrong. Please try again.")).finally(() => {
|
|
5067
5071
|
s(!1), a(null);
|
|
5068
5072
|
});
|
|
5069
5073
|
}, [t, n, e]), g = Xe(() => u({ connect: !0 }), [u]), M = Xe((p, N) => u({ url: p, ask: N }), [u]);
|
|
5070
5074
|
return { busy: n, status: r, err: o, connected: c, connect: g, start: M };
|
|
5071
5075
|
}
|
|
5072
|
-
function
|
|
5076
|
+
function Ic(t) {
|
|
5073
5077
|
return /\.(mp4|webm|mov|m4v|ogv|mkv)(\?|#|$)/i.test(t);
|
|
5074
5078
|
}
|
|
5075
|
-
function
|
|
5079
|
+
function Oc({ poster: t, src: e }) {
|
|
5076
5080
|
const n = e ? ms(e) : null, s = t ?? (n ? `https://i.ytimg.com/vi/${n}/hqdefault.jpg` : null);
|
|
5077
|
-
return s ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${s})` } }) : e &&
|
|
5081
|
+
return s ? /* @__PURE__ */ i("div", { className: "vsp-idle__pic", style: { backgroundImage: `url(${s})` } }) : e && Ic(e) ? /* @__PURE__ */ i("video", { className: "vsp-idle__pic vsp-idle__frame", src: `${e}#t=1`, muted: !0, playsInline: !0, preload: "metadata", "aria-hidden": "true" }) : /* @__PURE__ */ i("div", { className: "vsp-idle__pic vsp-idle__pic--brand" });
|
|
5078
5082
|
}
|
|
5079
|
-
const
|
|
5083
|
+
const Cc = { live: !1, atEdge: !1, edgeFrac: null, pct: 0, atLabel: "0:00", labelAt: () => "0:00", endLabel: "0:00", onSeek: () => {
|
|
5080
5084
|
} };
|
|
5081
5085
|
function ks({ idle: t, poster: e, src: n, title: s, page: r, onAct: a, children: o }) {
|
|
5082
|
-
const l =
|
|
5086
|
+
const l = vc(t.prefs, t.set), c = Yi(), d = v(null), [u, g] = I(!1);
|
|
5083
5087
|
Qt(() => {
|
|
5084
5088
|
var k;
|
|
5085
5089
|
const p = (k = d.current) == null ? void 0 : k.parentElement;
|
|
@@ -5093,31 +5097,31 @@ function ks({ idle: t, poster: e, src: n, title: s, page: r, onAct: a, children:
|
|
|
5093
5097
|
}, onNext: () => {
|
|
5094
5098
|
}, playing: !1, playable: !0, playTitle: "Connect to play", onPlay: a };
|
|
5095
5099
|
return /* @__PURE__ */ h("div", { ref: d, className: `vsp-idleroot${u ? " vsp-idleroot--small" : ""}`, children: [
|
|
5096
|
-
/* @__PURE__ */ i(
|
|
5100
|
+
/* @__PURE__ */ i(Si, { page: r, picture: /* @__PURE__ */ i(Oc, { poster: e, src: n }), title: s, desk: c, pos: Cc, 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: () => Ss(t.shareUrl ?? window.location.href, s), copied: null, onTouch: () => {
|
|
5097
5101
|
} }),
|
|
5098
5102
|
!l.sheetOpen && /* @__PURE__ */ i("div", { className: "vsp-idle", "data-theme": "dark", children: /* @__PURE__ */ i("div", { className: "vsp-idle__box", children: o }) })
|
|
5099
5103
|
] });
|
|
5100
5104
|
}
|
|
5101
|
-
function
|
|
5105
|
+
function Ui({ connect: t, onClick: e, label: n }) {
|
|
5102
5106
|
return /* @__PURE__ */ h(_e, { children: [
|
|
5103
5107
|
/* @__PURE__ */ h("button", { type: "button", className: "vsp-idle__connect", onClick: e, disabled: t.busy, children: [
|
|
5104
5108
|
t.busy ? /* @__PURE__ */ i(at, { size: 18, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ i(oe, { d: J.link, size: 18, sw: 1.8 }),
|
|
5105
5109
|
/* @__PURE__ */ i("span", { children: t.busy ? "Waiting for VocalStack…" : n })
|
|
5106
5110
|
] }),
|
|
5107
|
-
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children:
|
|
5111
|
+
t.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: _i[t.status ?? "checking"] }),
|
|
5108
5112
|
t.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: t.err })
|
|
5109
5113
|
] });
|
|
5110
5114
|
}
|
|
5111
|
-
function
|
|
5115
|
+
function bc({ idle: t, src: e, ask: n, connect: s, page: r, poster: a = null, onClear: o }) {
|
|
5112
5116
|
const l = () => s.start(e, n);
|
|
5113
5117
|
return /* @__PURE__ */ h(ks, { idle: t, poster: a, src: e, title: ls(e), page: r, onAct: l, children: [
|
|
5114
|
-
/* @__PURE__ */ i(
|
|
5118
|
+
/* @__PURE__ */ i(Ui, { connect: s, onClick: l, label: s.connected ? "Play with VocalStack" : "Connect to VocalStack" }),
|
|
5115
5119
|
!s.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: s.connected ? `Plays ${ls(e)} with subtitles and spoken translations.` : `Connect to play ${ls(e)} with subtitles and spoken translations.` }),
|
|
5116
5120
|
o && !s.busy && /* @__PURE__ */ i("button", { type: "button", className: "vsp-idle__other", onClick: o, children: "Choose another video" })
|
|
5117
5121
|
] });
|
|
5118
5122
|
}
|
|
5119
|
-
function
|
|
5120
|
-
const [a, o] = I(""), l = v(null), c = a.trim(), d =
|
|
5123
|
+
function xc({ idle: t, connect: e, page: n, poster: s = null, onPick: r }) {
|
|
5124
|
+
const [a, o] = I(""), l = v(null), c = a.trim(), d = jc.test(c), u = () => {
|
|
5121
5125
|
if (!d || e.busy) return;
|
|
5122
5126
|
const M = /^https?:\/\//i.test(c) ? c : `https://${c}`;
|
|
5123
5127
|
r(M), e.start(M, !1);
|
|
@@ -5133,14 +5137,14 @@ function Dc({ idle: t, connect: e, page: n, poster: s = null, onPick: r }) {
|
|
|
5133
5137
|
/* @__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 }),
|
|
5134
5138
|
e.busy && /* @__PURE__ */ i(at, { size: 15, color: "#eef0f8", track: "rgba(255,255,255,.2)" })
|
|
5135
5139
|
] }) }),
|
|
5136
|
-
e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children:
|
|
5140
|
+
e.busy ? /* @__PURE__ */ i("div", { className: "vsp-idle__note", role: "status", children: _i[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." }),
|
|
5137
5141
|
e.err && /* @__PURE__ */ i("div", { className: "vsp-end__err", role: "alert", children: e.err })
|
|
5138
5142
|
] }) : /* @__PURE__ */ h(ks, { idle: t, poster: s, src: null, title: "VocalStack", page: n, onAct: e.connect, children: [
|
|
5139
|
-
/* @__PURE__ */ i(
|
|
5143
|
+
/* @__PURE__ */ i(Ui, { connect: e, onClick: e.connect, label: "Connect to VocalStack" }),
|
|
5140
5144
|
!e.busy && /* @__PURE__ */ i("div", { className: "vsp-idle__note", children: "Connect your VocalStack account to watch any video with subtitles and spoken translations." })
|
|
5141
5145
|
] });
|
|
5142
5146
|
}
|
|
5143
|
-
function
|
|
5147
|
+
function Dc(t, e, n) {
|
|
5144
5148
|
const [s, r] = I(t && e ? void 0 : null);
|
|
5145
5149
|
return _(() => {
|
|
5146
5150
|
if (!t) {
|
|
@@ -5153,7 +5157,7 @@ function Sc(t, e, n) {
|
|
|
5153
5157
|
}
|
|
5154
5158
|
let a = !0;
|
|
5155
5159
|
r(void 0);
|
|
5156
|
-
const o = new si({ baseUrl: (n ??
|
|
5160
|
+
const o = new si({ baseUrl: (n ?? yi).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
|
|
5157
5161
|
if (!l) {
|
|
5158
5162
|
r(null);
|
|
5159
5163
|
return;
|
|
@@ -5167,8 +5171,8 @@ function Sc(t, e, n) {
|
|
|
5167
5171
|
};
|
|
5168
5172
|
}, [t, e, n]), s;
|
|
5169
5173
|
}
|
|
5170
|
-
const
|
|
5171
|
-
function
|
|
5174
|
+
const Sc = 100, ei = (t) => t == null ? null : t ? "on" : "off";
|
|
5175
|
+
function Ac(t) {
|
|
5172
5176
|
const e = t.syncUrl && typeof window < "u" ? new URLSearchParams(window.location.search) : null, n = { ...t.initial ?? {}, ...t.settings ?? {} }, s = (a) => a === "on" || a === "off" ? a : null, r = Number(e == null ? void 0 : e.get("t"));
|
|
5173
5177
|
return {
|
|
5174
5178
|
lang: (e == null ? void 0 : e.get("lang")) || n.lang || null,
|
|
@@ -5177,14 +5181,14 @@ function Ec(t) {
|
|
|
5177
5181
|
cc: e != null && e.get("cc") ? e.get("cc") !== "off" : n.subtitles ?? !0,
|
|
5178
5182
|
translateAudio: e != null && e.get("audio") ? e.get("audio") !== "original" : n.translateAudio ?? !0,
|
|
5179
5183
|
clonedVoices: e != null && e.get("voices") ? e.get("voices") !== "stock" : (n.voices ?? "cloned") === "cloned",
|
|
5180
|
-
removeBackground: e && e.get("bg") ?
|
|
5184
|
+
removeBackground: e && e.get("bg") ? Fa(e) : n.removeBackground ?? !1,
|
|
5181
5185
|
startAt: Number.isFinite(r) && r > 0 ? r : t.startAt ?? null
|
|
5182
5186
|
};
|
|
5183
5187
|
}
|
|
5184
|
-
const
|
|
5188
|
+
const Vc = ha(function(e, n) {
|
|
5185
5189
|
var V;
|
|
5186
5190
|
const s = v(null);
|
|
5187
|
-
|
|
5191
|
+
fa(n, () => ({
|
|
5188
5192
|
seek: (C) => {
|
|
5189
5193
|
var ue;
|
|
5190
5194
|
return (ue = s.current) == null ? void 0 : ue.seek(C);
|
|
@@ -5210,17 +5214,17 @@ const Wc = fa(function(e, n) {
|
|
|
5210
5214
|
_(() => {
|
|
5211
5215
|
a({ id: e.id ?? "", token: e.token });
|
|
5212
5216
|
}, [e.id, e.token, e.src]);
|
|
5213
|
-
const o =
|
|
5217
|
+
const o = Dc(e.src ?? null, e.token ?? null, e.baseUrl ?? null);
|
|
5214
5218
|
_(() => {
|
|
5215
5219
|
o != null && o.id && a({ id: o.id, token: e.token });
|
|
5216
5220
|
}, [o == null ? void 0 : o.id]);
|
|
5217
|
-
const [l, c] = I(null), [d, u] = I(() => ({ ...
|
|
5221
|
+
const [l, c] = I(null), [d, u] = I(() => ({ ...kc, ...Object.fromEntries(Object.entries({ ...e.initial ?? {}, ...e.settings ?? {} }).filter(([, C]) => C !== void 0)) })), [g, M] = I({}), p = { prefs: d, set: (C) => {
|
|
5218
5222
|
u((ue) => ({ ...ue, ...C })), M((ue) => ({ ...ue, ...C }));
|
|
5219
5223
|
}, shareUrl: (V = e.shareUrl) == null ? void 0 : V.call(e, null) }, { muted: N, ...w } = g;
|
|
5220
5224
|
_(() => {
|
|
5221
5225
|
c(null);
|
|
5222
5226
|
}, [e.id, e.src]);
|
|
5223
|
-
const k = e.src ?? l, m = !r.id && !!k && (l != null || o !== void 0), f = !r.id && !e.src && !l, O =
|
|
5227
|
+
const k = e.src ?? l, m = !r.id && !!k && (l != null || o !== void 0), f = !r.id && !e.src && !l, O = Ti({ id: r.id, token: r.token, baseUrl: e.baseUrl, listen: r.listen }), { source: D, gone: b, error: W, reload: A } = So(O, r.id), te = Ao(O, (D == null ? void 0 : D.recording.id) ?? null), j = Ie(() => xo(O, te), [O, te]);
|
|
5224
5228
|
_(() => {
|
|
5225
5229
|
var C;
|
|
5226
5230
|
D && ((C = e.onSource) == null || C.call(e, D));
|
|
@@ -5228,16 +5232,16 @@ const Wc = fa(function(e, n) {
|
|
|
5228
5232
|
var C;
|
|
5229
5233
|
W && ((C = e.onError) == null || C.call(e, W));
|
|
5230
5234
|
}, [W]);
|
|
5231
|
-
const S =
|
|
5232
|
-
return _(() => (Jr($ ? re.current : null), () => Jr(null)), [$]), /* @__PURE__ */ i(
|
|
5235
|
+
const S = Yi(e.desk), $ = (e.layout ?? "embed") === "embed", L = e.appUrl ?? (e.endCard ? e.endCard.appUrl : void 0), z = Xe((C) => a({ id: C.transcriptionId, token: null, listen: { transcriptionId: C.transcriptionId, recordingId: C.recordingId, token: C.token } }), []), E = zc(L, z), re = v(null);
|
|
5236
|
+
return _(() => (Jr($ ? re.current : null), () => Jr(null)), [$]), /* @__PURE__ */ i(Io, { value: j, children: /* @__PURE__ */ i("div", { ref: re, className: `vsp${$ ? " vsp--embed" : ""}${e.className ? ` ${e.className}` : ""}`, "data-theme": (e.mode ?? "video") === "video" || e.dark ? "dark" : "light", "data-mode": (e.mode ?? "video") === "video" ? "video" : "transcript", children: f ? /* @__PURE__ */ i(xc, { idle: p, connect: E, page: !$, poster: e.poster ?? null, onPick: c }) : m ? /* @__PURE__ */ i(bc, { idle: p, src: k, ask: !l, connect: E, page: !$, poster: e.poster ?? null, onClear: l ? () => c(null) : void 0 }) : r.id ? /* @__PURE__ */ i(Ec, { ...e, initial: { ...e.initial ?? {}, ...w }, startMuted: N === !0, handle: s, id: r.id, api: j, shared: D, gone: b, loadError: W, 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" }) }) }) });
|
|
5233
5237
|
});
|
|
5234
|
-
function
|
|
5235
|
-
var
|
|
5236
|
-
const { api: e, shared: n, gone: s, desk: r, dark: a } = t, o = t.id ?? "", l = Ie(() =>
|
|
5238
|
+
function Ec(t) {
|
|
5239
|
+
var Mr, gr, hr, fr, Nr, pr, mr, yr, Tr, wr, Lr, kr, vr, jr, zr, Ir, Or, Cr, br, xr, Dr, Sr, Ar, Er;
|
|
5240
|
+
const { api: e, shared: n, gone: s, desk: r, dark: a } = t, o = t.id ?? "", l = Ie(() => Ac(t), []), c = (t.mode ?? "video") === "video", d = ((gr = (Mr = n == null ? void 0 : n.job) == null ? void 0 : Mr.source) == null ? void 0 : gr.kind) === "url" ? ms(n.job.source.url) : null, u = c && !(n && !d), [g, M] = I(t.loadError);
|
|
5237
5241
|
_(() => {
|
|
5238
5242
|
t.loadError && M(t.loadError);
|
|
5239
5243
|
}, [t.loadError]);
|
|
5240
|
-
const [p, N] = I("none"), [w, k] = I(!1), [m, f] = I(""), [O, D] =
|
|
5244
|
+
const [p, N] = I("none"), [w, k] = I(!1), [m, f] = I(""), [O, D] = _l(), [b, W] = I(null), [A, te] = I(u ? "listen" : "read"), [j, S] = I(!1), $ = v(null), L = v(/* @__PURE__ */ new Map()), [z, E] = I("main"), re = (T) => {
|
|
5241
5245
|
const pe = document.querySelector(".vs-sheet--settings"), Ye = pe == null ? void 0 : pe.parentElement;
|
|
5242
5246
|
pe && Ye && z === "main" && T !== "main" && Ye.style.setProperty("--vs-sheet-top", `${Math.round(pe.getBoundingClientRect().top - Ye.getBoundingClientRect().top)}px`), E(T);
|
|
5243
5247
|
};
|
|
@@ -5264,20 +5268,20 @@ function Yc(t) {
|
|
|
5264
5268
|
_(() => {
|
|
5265
5269
|
if (!t.syncUrl) return;
|
|
5266
5270
|
const T = new URL(window.location.href);
|
|
5267
|
-
ne ? T.searchParams.set("lang", ne) : T.searchParams.delete("lang"), ae ? T.searchParams.set("labels", ae) : T.searchParams.delete("labels"), ke ? T.searchParams.set("words", ke) : T.searchParams.delete("words"), ye ? T.searchParams.delete("cc") : T.searchParams.set("cc", "off"), Se ? T.searchParams.delete("audio") : T.searchParams.set("audio", "original"), Oe ? T.searchParams.delete("voices") : T.searchParams.set("voices", "stock"),
|
|
5271
|
+
ne ? T.searchParams.set("lang", ne) : T.searchParams.delete("lang"), ae ? T.searchParams.set("labels", ae) : T.searchParams.delete("labels"), ke ? T.searchParams.set("words", ke) : T.searchParams.delete("words"), ye ? T.searchParams.delete("cc") : T.searchParams.set("cc", "off"), Se ? T.searchParams.delete("audio") : T.searchParams.set("audio", "original"), Oe ? T.searchParams.delete("voices") : T.searchParams.set("voices", "stock"), Ga(T, B), T.href !== window.location.href && window.history.replaceState(window.history.state, "", T);
|
|
5268
5272
|
}, [ne, ae, ke, ye, Se, Oe, B]), _(() => {
|
|
5269
5273
|
n && !n.allowTranslate && ne && le(null);
|
|
5270
5274
|
}, [n, ne]);
|
|
5271
|
-
const { model: H, error: me, clearError: q, setLanguage: ve, mergeTranslations: Ce, translating: He, translateFailed: Ae, shownLang: Ue } =
|
|
5275
|
+
const { model: H, error: me, clearError: q, setLanguage: ve, mergeTranslations: Ce, translating: He, translateFailed: Ae, shownLang: Ue } = Uo(P, {
|
|
5272
5276
|
lang: null,
|
|
5273
5277
|
onFrame: (T) => {
|
|
5274
5278
|
T.type === "job.progress" && W({ 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 });
|
|
5275
5279
|
}
|
|
5276
|
-
}), he = Ie(() =>
|
|
5280
|
+
}), he = Ie(() => fo(H).filter((T) => !T.suppressed), [H]), Re = Ro((n == null ? void 0 : n.job) ?? null), K = ["done", "failed", "stopped"].includes(rs((Re == null ? void 0 : Re.state) ?? ((hr = n == null ? void 0 : n.job) == null ? void 0 : hr.state))), ie = K ? Re : b ?? Re, de = !!b && !["done", "failed", "stopped"].includes(rs(b.state)), ce = v(0);
|
|
5277
5281
|
_(() => {
|
|
5278
5282
|
!K || !de || Date.now() - ce.current < 1e4 || (ce.current = Date.now(), t.reread());
|
|
5279
5283
|
}, [K, de, b == null ? void 0 : b.state, b == null ? void 0 : b.processedS, o]);
|
|
5280
|
-
const Ne = rs((ie == null ? void 0 : ie.state) ?? ((
|
|
5284
|
+
const Ne = rs((ie == null ? void 0 : ie.state) ?? ((fr = n == null ? void 0 : n.job) == null ? void 0 : fr.state)), je = !!P && (Ne === "transcribing" || Ne === "queued"), Y = u && !s && (!n || (je || Ne === "cropping") && he.length === 0), U = je ? (ie == null ? void 0 : ie.pct) ?? 0 : 100, F = Qo(n == null ? void 0 : n.job, ie) ?? (ue == null ? void 0 : ue.mediaDurationS) ?? null, ee = ((Nr = H.segments.values().next().value) == null ? void 0 : Nr.language) ?? (ue == null ? void 0 : ue.spokenLanguage) ?? null, Me = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", be = ((yr = (mr = (pr = n == null ? void 0 : n.job) == null ? void 0 : pr.source) == null ? void 0 : mr.name) == null ? void 0 : yr.trim()) || null, Te = n ? ((Tr = n.name) == null ? void 0 : Tr.trim()) || be : null, ze = !!((wr = n == null ? void 0 : n.job) != null && wr.hasAudio), xe = (Lr = n == null ? void 0 : n.job) == null ? void 0 : Lr.source, Ze = !ze && !!xe && (xe.kind !== "url" || xe.bytes != null) && (Ne === "transcribing" || Ne === "queued" || Ne === "done"), $e = P && (n != null && n.allowDownload) && ze ? Ca(e.origin, P, e.cred) : P && (n != null && n.allowDownload) && Ze ? Xn(e.origin, P, "source", e.cred) : null, rt = he[he.length - 1], ot = rt ? ((kr = rt.words[rt.words.length - 1]) == null ? void 0 : kr.end) ?? rt.start : 0, dt = u && je ? Math.max(ot, (ie == null ? void 0 : ie.processedS) ?? 0) : null, We = Bl($e, (ze || Ze) && !!(n != null && n.allowDownload), he, F, Ze ? ((jr = (vr = n == null ? void 0 : n.job) == null ? void 0 : vr.crop) == null ? void 0 : jr.startS) ?? 0 : 0, dt), Pe = ((Ir = (zr = n == null ? void 0 : n.job) == null ? void 0 : zr.source) == null ? void 0 : Ir.kind) === "url" ? ms(n.job.source.url) : null, lt = $l(he, F, ((Cr = (Or = n == null ? void 0 : n.job) == null ? void 0 : Or.crop) == null ? void 0 : Cr.startS) ?? 0, dt), Ve = !!Pe, mt = Ve ? lt.player : We, Mt = wi(), Bt = v(null), se = Gl({ forcedVoice: t.voice ?? null, recordingId: P, model: H, rows: he, lenS: F, ended: !!P && !je, cred: e.cred, langs: Mt, srcLang: ee, canTranslate: !!(n != null && n.allowTranslate), pickedLang: Z, setPickedLang: le, side: r && !V ? Fl : void 0, hearOriginal: fe, timed: !!Pe, stockVoices: u && !Oe, stickyPicker: u, pickerBusy: Bt.current }), Ot = v(null);
|
|
5281
5285
|
_(() => {
|
|
5282
5286
|
!P || Ot.current === ne || (Ot.current = ne, ve(ne));
|
|
5283
5287
|
}, [ne, P]);
|
|
@@ -5292,36 +5296,36 @@ function Yc(t) {
|
|
|
5292
5296
|
const en = Ie(() => he.filter((T) => T.sentenceId != null).map((T, pe, Ye) => {
|
|
5293
5297
|
var Ge;
|
|
5294
5298
|
return { sid: T.sentenceId, start: T.start, end: ((Ge = Ye[pe + 1]) == null ? void 0 : Ge.start) ?? St(T, T.start, T.start + 4) };
|
|
5295
|
-
}), [he]), vt =
|
|
5299
|
+
}), [he]), vt = oo({ on: Ve && se.on, lines: en, clips: se.clips, t: x.t, playing: x.playing, muted: x.muted }), Et = !!ne && (He || se.relang || se.on && vt.missing != null);
|
|
5296
5300
|
Bt.current = Et ? ne : null, _(() => {
|
|
5297
5301
|
Ve && se.on && vt.sid != null && se.setNear(vt.sid);
|
|
5298
|
-
}, [vt.sid, Ve, se.on]),
|
|
5299
|
-
const
|
|
5302
|
+
}, [vt.sid, Ve, se.on]), Ql([mt, se.player], se.sampling);
|
|
5303
|
+
const st = v(null);
|
|
5300
5304
|
_(() => {
|
|
5301
|
-
je && !x.playing &&
|
|
5305
|
+
je && !x.playing && st.current && (st.current.scrollTop = st.current.scrollHeight);
|
|
5302
5306
|
}, [je, he.length]);
|
|
5303
|
-
const Cn =
|
|
5307
|
+
const Cn = Kl(st, he, w, m, k), tn = /* @__PURE__ */ i(ql, { open: w, q: m, onQ: f, onClose: () => k(!1), hits: Cn, 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 = se.readLang, Tt = yt ? ((br = Mt == null ? void 0 : Mt.languages.find((T) => T.code === yt)) == null ? void 0 : br.name) ?? yt.toUpperCase() : null, Yt = async () => {
|
|
5304
5308
|
if (P)
|
|
5305
5309
|
try {
|
|
5306
5310
|
if (yt && se.canSpeak) {
|
|
5307
|
-
D(`Preparing ${Ke} in ${Tt}${se.readVoiceName ? `, read by ${se.readVoiceName}` : ""} — the download starts when it is ready.`), await
|
|
5311
|
+
D(`Preparing ${Ke} in ${Tt}${se.readVoiceName ? `, read by ${se.readVoiceName}` : ""} — the download starts when it is ready.`), await Ho(e, { recordingId: P, lang: yt, voiceKey: se.readVoiceKey, cred: e.cred, request: se.requestTrack }), D(`Downloading ${Ke} in ${Tt}.`);
|
|
5308
5312
|
return;
|
|
5309
5313
|
}
|
|
5310
5314
|
if (ze) {
|
|
5311
|
-
D(`Preparing ${Ke} as MP3 — the download starts when it is ready.`), await
|
|
5315
|
+
D(`Preparing ${Ke} as MP3 — the download starts when it is ready.`), await $o(Xn(e.origin, P, "delivery", e.cred)), D(`Downloading ${Ke}.`);
|
|
5312
5316
|
return;
|
|
5313
5317
|
}
|
|
5314
|
-
|
|
5318
|
+
Ds(Xn(e.origin, P, "source", e.cred)), D(`Downloading ${Ke} — the full audio, since the transcript is still being written.`);
|
|
5315
5319
|
} catch (T) {
|
|
5316
5320
|
throw M(kt(T)), T;
|
|
5317
5321
|
}
|
|
5318
5322
|
}, bt = (T) => {
|
|
5319
5323
|
if (!P) return;
|
|
5320
5324
|
const pe = ps.find((Ge) => Ge.key === T).name, Ye = Tt ? ` in ${Tt}` : "";
|
|
5321
|
-
return
|
|
5325
|
+
return Bo(e, P, T, { lang: yt }).then(() => D(je ? `${pe} exported${Ye} for the first ${he.length} segments — the rest is still transcribing.` : `${pe} exported${Ye}.`)).catch((Ge) => {
|
|
5322
5326
|
throw M(kt(Ge)), Ge;
|
|
5323
5327
|
});
|
|
5324
|
-
}, ct = je ? "MORE TO COME…" : "END OF TRANSCRIPT", Ht = je ? "var(--brand)" : "var(--ink-28)",
|
|
5328
|
+
}, ct = je ? "MORE TO COME…" : "END OF TRANSCRIPT", Ht = je ? "var(--brand)" : "var(--ink-28)", it = Po(ie, he.length), jt = x.has && (!se.relang || !!Pe), qe = v(x);
|
|
5325
5329
|
qe.current = x;
|
|
5326
5330
|
const _t = `${ne ?? ""}|${se.on ? "voice" : "source"}`, Vt = v({ key: _t, idx: 0, t: 0, playing: !1, until: 0 });
|
|
5327
5331
|
_(() => {
|
|
@@ -5339,7 +5343,7 @@ function Yc(t) {
|
|
|
5339
5343
|
}
|
|
5340
5344
|
});
|
|
5341
5345
|
const ht = v(!1), Je = v(!1);
|
|
5342
|
-
u && (
|
|
5346
|
+
u && (oi.video = !0);
|
|
5343
5347
|
const [Wt, xt] = I(!1), [nn, bn] = I(!1);
|
|
5344
5348
|
_(() => {
|
|
5345
5349
|
if (!u || ht.current || !jt || !V || Y || t.autoplay === !1) return;
|
|
@@ -5373,7 +5377,7 @@ function Yc(t) {
|
|
|
5373
5377
|
return;
|
|
5374
5378
|
}
|
|
5375
5379
|
Je.current = !0, qe.current.toggle();
|
|
5376
|
-
}, rn = (T) => /* @__PURE__ */ i(
|
|
5380
|
+
}, rn = (T) => /* @__PURE__ */ i(Yl, { player: x, size: T }), Ft = !!P && !je, [Gt, Q] = I(!1);
|
|
5377
5381
|
_(() => {
|
|
5378
5382
|
if (!He) {
|
|
5379
5383
|
Q(!1);
|
|
@@ -5382,12 +5386,12 @@ function Yc(t) {
|
|
|
5382
5386
|
const T = setTimeout(() => Q(!0), 180);
|
|
5383
5387
|
return () => clearTimeout(T);
|
|
5384
5388
|
}, [He]);
|
|
5385
|
-
const De = Gt ? Ue : ne, Fe =
|
|
5389
|
+
const De = Gt ? Ue : ne, Fe = nl(P, ne, he, Ce), ft = pl(ml(ue), P, se.readLang), Zt = gt || Ct, Ri = (((Dr = (xr = n == null ? void 0 : n.job) == null ? void 0 : xr.crop) == null ? void 0 : Dr.startS) ?? 0) + as(x, he), Sn = A === "listen", Dt = Sn && !!Pe, Pi = (T) => {
|
|
5386
5390
|
mt.pause(), se.player.pause(), te(T), T === "read" && V && (Kt(!1), C(!1));
|
|
5387
|
-
}, Ee = se.barChip, Ut =
|
|
5388
|
-
T === "summary" && Ft && /* @__PURE__ */ i(
|
|
5389
|
-
T === "export" && /* @__PURE__ */ i(
|
|
5390
|
-
] }),
|
|
5391
|
+
}, Ee = se.barChip, Ut = ki(Ee.label), Ys = /* @__PURE__ */ i(cs, { value: A, onChange: Pi, bordered: !1, options: uc(Ut, !!Pe) }), Rt = [...Ft ? [{ key: "summary", label: "Summary" }] : [], ...Zt ? [{ key: "export", label: "Export" }] : []], _s = (T) => /* @__PURE__ */ h(_e, { children: [
|
|
5392
|
+
T === "summary" && Ft && /* @__PURE__ */ i(yl, { s: ft }),
|
|
5393
|
+
T === "export" && /* @__PURE__ */ i(Nl, { audio: gt ? { name: Ke, meta: yt && se.canSpeak || ze ? `MP3${F ? ` · ${Lt(F)}` : ""}` : "ORIGINAL AUDIO", onClick: Yt } : null, formats: Ct, onExport: bt })
|
|
5394
|
+
] }), Qi = (T) => /* @__PURE__ */ i(Jo, { index: x.idx, total: Math.max(1, he.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} / ${he.length}` : "", onSeek: se.relang ? Vl : x.seekRow, onSeekFrac: se.relang ? void 0 : x.seekFrac, onScrubStart: x.hold, onScrubEnd: x.release }), Us = {
|
|
5391
5395
|
live: !1,
|
|
5392
5396
|
atEdge: !1,
|
|
5393
5397
|
edgeFrac: null,
|
|
@@ -5400,24 +5404,24 @@ function Yc(t) {
|
|
|
5400
5404
|
var pe;
|
|
5401
5405
|
se.relang || (pe = x.seekFrac) == null || pe.call(x, T);
|
|
5402
5406
|
}
|
|
5403
|
-
}, [
|
|
5407
|
+
}, [$i, Bi] = Mc(se.on && !!x.preparing && x.playing, 1500), An = se.on && ((Sr = x.error) == null ? void 0 : Sr.code) === "voice_not_started", En = se.canSpeak && !se.error && !An, an = ne ? ((Ar = Mt == null ? void 0 : Mt.languages.find((T) => T.code === ne)) == null ? void 0 : Ar.name) ?? Ee.label : "", tt = V ? dc({ lang: ne, langName: an, translating: He && !!ne, translateFailed: Ae, voiceFailed: An, relang: se.relang, starting: se.on ? x.starting : null, slowLine: $i, lineSince: Bi }) : null, Yn = !!Pe && !!tt && (tt.kind === "translating" || tt.kind === "voice" && se.relang), Rs = !Yn || !tt ? null : tt.kind === "translating" ? `Translating into ${an || "the new language"}…` : `Preparing the ${an || "translated"} voice…`, on = !Yn && ((tt == null ? void 0 : tt.kind) === "voice" || (tt == null ? void 0 : tt.kind) === "starting"), Ps = Is({ ...se.langList, keepOpen: !0, open: z === "lang", onClose: () => re("main") }), Qs = Wa(B, se.on), Hi = u && Qs.bed && gt && P && (!je || $e) ? _r(e.origin, P, e.cred) : null, $s = to(Hi, { t: as(x, he), playing: x.playing && !on && !(x.timed && x.preparing), muted: x.muted }), Vi = u && Qs.speech && gt && P && (!je || $e) ? _r(e.origin, P, e.cred, "speech") : null, _n = fi(Vi, { t: as(x, he), playing: !se.on && x.playing, muted: x.muted }), Un = !se.on && _n.on;
|
|
5404
5408
|
_(() => {
|
|
5405
5409
|
var T;
|
|
5406
5410
|
lt.setVideoSound(!(Ve && (se.on || Un))), (T = We.silence) == null || T.call(We, !Ve && Un);
|
|
5407
5411
|
}, [Ve, se.on, Un, $e]);
|
|
5408
|
-
const Rn = gt ? se.on ?
|
|
5412
|
+
const Rn = gt ? se.on ? $s : _n.state : "unavailable", Pn = Se && En && !!ne, Wi = Pn ? [`Translated${se.hasClone ? Oe ? ", cloned voices" : ", synthetic voices" : ""}`, !B && gt && $s !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : B && Rn !== "unavailable" ? "Original speech, background removed" : "Original sound", Fi = () => {
|
|
5409
5413
|
if ((tt == null ? void 0 : tt.kind) === "translateFailed") {
|
|
5410
5414
|
ve(ne);
|
|
5411
5415
|
return;
|
|
5412
5416
|
}
|
|
5413
5417
|
Je.current = !0, x.toggle();
|
|
5414
|
-
},
|
|
5418
|
+
}, Gi = () => {
|
|
5415
5419
|
const T = x.idx;
|
|
5416
5420
|
x.pause(), le(null), Je.current = !0, mt.playRow(T);
|
|
5417
|
-
},
|
|
5421
|
+
}, Bs = { prevOn: x.idx > 0, nextOn: x.idx < he.length - 1, onPrev: x.prev, onNext: x.next, playing: x.playing, playable: jt, playTitle: se.playTitle ?? (x.playing ? "Pause" : "Play"), onPlay: () => {
|
|
5418
5422
|
Je.current = !0, x.toggle();
|
|
5419
5423
|
}, busy: se.relang && !Pe || on };
|
|
5420
|
-
|
|
5424
|
+
uo(jt ? { playing: x.playing, toggle: () => {
|
|
5421
5425
|
Je.current = !0, x.toggle();
|
|
5422
5426
|
}, next: x.next, prev: x.prev } : null, Te);
|
|
5423
5427
|
const Qn = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, $n = (T, pe) => !Ee.can || !R.language ? null : u ? /* @__PURE__ */ h("button", { type: "button", className: "gfull__btn", title: Et ? `${Ee.label ?? Ee.code}: still being prepared` : Ee.label ?? Ee.code, "aria-label": `Language: ${Ee.label ?? Ee.code}`, "aria-busy": Et || void 0, onClick: () => {
|
|
@@ -5425,36 +5429,36 @@ function Yc(t) {
|
|
|
5425
5429
|
}, style: { position: "relative" }, children: [
|
|
5426
5430
|
/* @__PURE__ */ i("span", { style: { fontSize: pe === "sm" ? 17 : 21, lineHeight: 1 }, children: Ee.flag }),
|
|
5427
5431
|
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)" }) })
|
|
5428
|
-
] }) : /* @__PURE__ */ i(vn, { flag: Ee.flag, code: Ee.code, label: Ee.label, bordered: !1, size: pe, onClick: Ee.onClick, style: T }),
|
|
5429
|
-
} }, [
|
|
5432
|
+
] }) : /* @__PURE__ */ i(vn, { flag: Ee.flag, code: Ee.code, label: Ee.label, bordered: !1, size: pe, onClick: Ee.onClick, style: T }), Hs = { on: !1, title: "Voices", onClick: () => {
|
|
5433
|
+
} }, [Zi, qi] = I(!1);
|
|
5430
5434
|
_(() => {
|
|
5431
|
-
x.t > 0.3 &&
|
|
5435
|
+
x.t > 0.3 && qi(!0);
|
|
5432
5436
|
}, [x.t]);
|
|
5433
|
-
const
|
|
5434
|
-
/* @__PURE__ */ i(
|
|
5437
|
+
const Vs = Pe && /* @__PURE__ */ h(_e, { children: [
|
|
5438
|
+
/* @__PURE__ */ i(Sl, { ytId: Pe, title: Ke, t: Ri, playing: x.playing && !on, waiting: se.on && !!x.timed && !!x.preparing, seekN: x.seekN, onTime: (T) => {
|
|
5435
5439
|
var pe, Ye, Ge;
|
|
5436
5440
|
return (Ge = x.videoAt) == null ? void 0 : Ge.call(x, T - (((Ye = (pe = n == null ? void 0 : n.job) == null ? void 0 : pe.crop) == null ? void 0 : Ye.startS) ?? 0));
|
|
5437
5441
|
}, onToggle: x.has ? sn : void 0, onAd: bn, lead: Ve ? lt.lead : void 0 }),
|
|
5438
|
-
/* @__PURE__ */ h("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity:
|
|
5442
|
+
/* @__PURE__ */ h("div", { className: "vsp-poster", "aria-hidden": "true", style: { opacity: Zi ? 0 : 1 }, children: [
|
|
5439
5443
|
/* @__PURE__ */ i("div", { className: "vsp-poster__img", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Pe}/hqdefault.jpg)` } }),
|
|
5440
5444
|
/* @__PURE__ */ i("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ i(vs, { size: 44 }) })
|
|
5441
5445
|
] })
|
|
5442
|
-
] }),
|
|
5446
|
+
] }), Ws = Dt && Pe && !V ? /* @__PURE__ */ i(Tl, { ytId: Pe, title: Ke, radius: 14, large: !0, style: r ? void 0 : { margin: "8px 20px 2px" }, picture: Vs, children: /* @__PURE__ */ i(ac, { pos: Us, transport: Bs, chip: $n({ ...Qn, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: Hs, onFull: () => {
|
|
5443
5447
|
Kt(!0), C(!0);
|
|
5444
|
-
}, copied: null }) }) : null, et = x.wordSync ?
|
|
5448
|
+
}, copied: null }) }) : null, et = x.wordSync ? Fo(he, x.idx, x.t) ? he[x.idx] : void 0 : he[x.idx];
|
|
5445
5449
|
for (const T of he) for (const [pe, Ye] of Object.entries(T.translations)) Ye && L.current.set(`${T.sentenceId ?? T.start}|${pe}`, Ye);
|
|
5446
|
-
const
|
|
5450
|
+
const Fs = (T, pe) => T.translations[pe] || L.current.get(`${T.sentenceId ?? T.start}|${pe}`) || null, Bn = (T, pe) => !T || !pe || T.language === pe || !!Fs(T, pe), wt = Bn(et, ne) ? ne : Bn(et, $.current) ? $.current : ne;
|
|
5447
5451
|
et && Bn(et, wt) && ($.current = wt);
|
|
5448
|
-
const
|
|
5452
|
+
const Gs = et && wt && et.language !== wt ? Fs(et, wt) : null, Ki = et && Gs && wt && !et.translations[wt] ? Object.assign([...he], { [x.idx]: { ...et, translations: { ...et.translations, [wt]: Gs } } }) : he, ln = et ? Ci(Ki, x.idx, wt) : [], cn = ke ? ke === "on" : !u || se.on || !De || De === ee, Zs = cn ? qr(x, x.idx, ln) : null, qs = ln.map((T, pe) => ({ t: T.text, sp: pe < ln.length - 1 ? " " : "", dim: Zs != null && pe > Zs })), un = ae ? ae === "on" : u ? !1 : jo(H, he, ue == null ? void 0 : ue.settings), Ks = { lang: ne, subtitles: ye, speakerLabels: un, wordHighlight: cn, translateAudio: Se, voices: Oe ? "cloned" : "synthetic", removeBackground: B }, Ji = JSON.stringify(Ks), dn = v(t.onSettingsChange);
|
|
5449
5453
|
dn.current = t.onSettingsChange, _(() => {
|
|
5450
5454
|
var T;
|
|
5451
|
-
(T = dn.current) == null || T.call(dn,
|
|
5452
|
-
}, [
|
|
5453
|
-
const Mn = et && et.speaker >= 0 && un ?
|
|
5455
|
+
(T = dn.current) == null || T.call(dn, Ks);
|
|
5456
|
+
}, [Ji]);
|
|
5457
|
+
const Mn = et && et.speaker >= 0 && un ? bs(H, et.speaker) : null, [Xi, Js] = I(!1), [Hn, Xs] = I(null), [ea, er] = I(null), Vn = v(void 0);
|
|
5454
5458
|
_(() => () => window.clearTimeout(Vn.current), []);
|
|
5455
5459
|
const Wn = v(void 0);
|
|
5456
5460
|
_(() => () => window.clearTimeout(Wn.current), []);
|
|
5457
|
-
const
|
|
5461
|
+
const tr = (T) => {
|
|
5458
5462
|
if (t.shareUrl) return t.shareUrl(T);
|
|
5459
5463
|
const pe = new URL(window.location.href);
|
|
5460
5464
|
return T != null && T > 0 ? pe.searchParams.set("t", String(T)) : pe.searchParams.delete("t"), pe.href;
|
|
@@ -5466,19 +5470,19 @@ function Yc(t) {
|
|
|
5466
5470
|
let pe = 0;
|
|
5467
5471
|
for (let Ye = 0; Ye < he.length; Ye++) he[Ye].start <= T && (pe = Ye);
|
|
5468
5472
|
x.seekRow(pe);
|
|
5469
|
-
},
|
|
5473
|
+
}, nr = v(!1);
|
|
5470
5474
|
_(() => {
|
|
5471
5475
|
const T = gn.current;
|
|
5472
|
-
T == null ||
|
|
5476
|
+
T == null || nr.current || !x.has || he.length === 0 || (nr.current = !0, Fn(T));
|
|
5473
5477
|
}, [x.has, he.length]), _(() => {
|
|
5474
5478
|
const T = gn.current;
|
|
5475
5479
|
T == null || !x.playing || (gn.current = null, Math.abs(x.t - T) > 2 && Fn(T));
|
|
5476
5480
|
}, [x.playing]);
|
|
5477
|
-
const
|
|
5481
|
+
const ta = (T) => {
|
|
5478
5482
|
Je.current = !0, gn.current = null, Fn(Math.max(0, T));
|
|
5479
5483
|
};
|
|
5480
5484
|
t.handle.current = {
|
|
5481
|
-
seek: (T) =>
|
|
5485
|
+
seek: (T) => ta(T),
|
|
5482
5486
|
play: () => {
|
|
5483
5487
|
Je.current = !0, qe.current.playing || qe.current.toggle();
|
|
5484
5488
|
},
|
|
@@ -5494,30 +5498,30 @@ function Yc(t) {
|
|
|
5494
5498
|
}, _(() => () => {
|
|
5495
5499
|
t.handle.current = null;
|
|
5496
5500
|
}, []);
|
|
5497
|
-
const
|
|
5498
|
-
|
|
5499
|
-
const
|
|
5500
|
-
|
|
5501
|
+
const sr = v(t.onPlayback);
|
|
5502
|
+
sr.current = t.onPlayback;
|
|
5503
|
+
const rr = v(ne);
|
|
5504
|
+
rr.current = ne, _(() => {
|
|
5501
5505
|
let T = "";
|
|
5502
5506
|
const pe = () => {
|
|
5503
|
-
const Ge =
|
|
5507
|
+
const Ge = sr.current;
|
|
5504
5508
|
if (!Ge) return;
|
|
5505
|
-
const Nt = qe.current, ut = { t: Nt.t, dur: Nt.dur, playing: Nt.playing, idx: Nt.idx, seekN: Nt.seekN, lang:
|
|
5509
|
+
const Nt = qe.current, ut = { t: Nt.t, dur: Nt.dur, playing: Nt.playing, idx: Nt.idx, seekN: Nt.seekN, lang: rr.current, muted: Nt.muted }, pn = `${ut.t.toFixed(2)}|${ut.dur}|${ut.playing}|${ut.idx}|${ut.seekN}|${ut.lang}|${ut.muted}`;
|
|
5506
5510
|
pn !== T && (T = pn, Ge(ut));
|
|
5507
5511
|
};
|
|
5508
5512
|
pe();
|
|
5509
|
-
const Ye = window.setInterval(pe,
|
|
5513
|
+
const Ye = window.setInterval(pe, Sc);
|
|
5510
5514
|
return () => window.clearInterval(Ye);
|
|
5511
5515
|
}, []);
|
|
5512
|
-
const
|
|
5513
|
-
window.clearTimeout(Wn.current),
|
|
5514
|
-
}),
|
|
5515
|
-
const Ge = ps.find((pn) => pn.key === T), Nt = Hn === T, ut =
|
|
5516
|
+
const na = () => t.onShare ? t.onShare() : Ss(tr(null), Ke, () => {
|
|
5517
|
+
window.clearTimeout(Wn.current), Js(!0), Wn.current = window.setTimeout(() => Js(!1), 2200);
|
|
5518
|
+
}), ir = (T, pe, Ye) => {
|
|
5519
|
+
const Ge = ps.find((pn) => pn.key === T), Nt = Hn === T, ut = ea === T;
|
|
5516
5520
|
return /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", "aria-busy": Nt || void 0, style: Hn && !Nt ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
|
|
5517
|
-
Hn || (
|
|
5518
|
-
|
|
5521
|
+
Hn || (Xs(T), Promise.resolve().then(() => bt(T)).then(() => {
|
|
5522
|
+
er(T), window.clearTimeout(Vn.current), Vn.current = window.setTimeout(() => er(null), 1600);
|
|
5519
5523
|
}).catch(() => {
|
|
5520
|
-
}).finally(() =>
|
|
5524
|
+
}).finally(() => Xs(null)));
|
|
5521
5525
|
}, children: [
|
|
5522
5526
|
Nt ? /* @__PURE__ */ i(at, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ i(oe, { d: Ge.icon, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
|
|
5523
5527
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5526,15 +5530,15 @@ function Yc(t) {
|
|
|
5526
5530
|
] }),
|
|
5527
5531
|
/* @__PURE__ */ i(oe, { d: ut ? J.check : J.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: ut ? "var(--brand)" : "var(--ink-62)" } })
|
|
5528
5532
|
] });
|
|
5529
|
-
},
|
|
5533
|
+
}, sa = /* @__PURE__ */ h("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
|
|
5530
5534
|
" ",
|
|
5531
5535
|
/* @__PURE__ */ h("button", { type: "button", onClick: () => re("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: [
|
|
5532
5536
|
/* @__PURE__ */ i(oe, { d: J.chevronLeft, size: 18, sw: 1.8 }),
|
|
5533
5537
|
"Back"
|
|
5534
5538
|
] })
|
|
5535
|
-
] }), hn = /* @__PURE__ */ i(oe, { d: J.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }),
|
|
5536
|
-
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children:
|
|
5537
|
-
|
|
5539
|
+
] }), hn = /* @__PURE__ */ i(oe, { d: J.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), ra = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[z], fn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, Gn = u ? /* @__PURE__ */ i($t, { open: j, onClose: () => S(!1), title: ra, titleNode: z === "main" ? void 0 : sa, doneLabel: Ut.done, kind: z === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ i(us, { children: z === "lang" ? /* @__PURE__ */ h("div", { style: { display: "flex", flexDirection: "column" }, children: [
|
|
5540
|
+
/* @__PURE__ */ i("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: Ps.search }),
|
|
5541
|
+
Ps.list
|
|
5538
5542
|
] }) : z === "subs" ? /* @__PURE__ */ h("div", { style: fn, children: [
|
|
5539
5543
|
/* @__PURE__ */ h("div", { className: "srow", children: [
|
|
5540
5544
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5575,13 +5579,13 @@ function Yc(t) {
|
|
|
5575
5579
|
/* @__PURE__ */ h("div", { className: "srow", children: [
|
|
5576
5580
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5577
5581
|
/* @__PURE__ */ i("div", { className: "srow__t", children: jn }),
|
|
5578
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
5582
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: Va(B, Rn, "video", se.on ? 0 : _n.untilS) })
|
|
5579
5583
|
] }),
|
|
5580
5584
|
/* @__PURE__ */ i(pt, { checked: B && gt, onChange: X, label: jn, disabled: !gt || Rn === "unavailable" && !B })
|
|
5581
5585
|
] })
|
|
5582
5586
|
] }) : z === "export" ? /* @__PURE__ */ h("div", { style: fn, children: [
|
|
5583
|
-
|
|
5584
|
-
|
|
5587
|
+
ir("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
|
|
5588
|
+
ir("pdf", "PDF", "Formatted transcript in paragraphs, with timestamps and speaker labels")
|
|
5585
5589
|
] }) : /* @__PURE__ */ i("div", { style: fn, children: [
|
|
5586
5590
|
Ee.can && R.language && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => re("lang"), children: [
|
|
5587
5591
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -5601,7 +5605,7 @@ function Yc(t) {
|
|
|
5601
5605
|
R.audio && /* @__PURE__ */ h("div", { className: "srow srow--tap", role: "button", onClick: () => re("audio"), children: [
|
|
5602
5606
|
/* @__PURE__ */ h("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
5603
5607
|
/* @__PURE__ */ i("div", { className: "srow__t", children: "Audio" }),
|
|
5604
|
-
/* @__PURE__ */ i("div", { className: "srow__s", children:
|
|
5608
|
+
/* @__PURE__ */ i("div", { className: "srow__s", children: Wi })
|
|
5605
5609
|
] }),
|
|
5606
5610
|
hn
|
|
5607
5611
|
] }, "audio"),
|
|
@@ -5632,42 +5636,42 @@ function Yc(t) {
|
|
|
5632
5636
|
] }),
|
|
5633
5637
|
t.settingsExtra
|
|
5634
5638
|
] }) }), It = V && Dt && Pe && /* @__PURE__ */ i(
|
|
5635
|
-
|
|
5639
|
+
Si,
|
|
5636
5640
|
{
|
|
5637
5641
|
page: (t.layout ?? "embed") === "page",
|
|
5638
|
-
picture:
|
|
5642
|
+
picture: Vs,
|
|
5639
5643
|
title: Ke,
|
|
5640
5644
|
desk: r,
|
|
5641
|
-
pos:
|
|
5645
|
+
pos: Us,
|
|
5642
5646
|
mute: { muted: x.muted, onToggle: Dn },
|
|
5643
5647
|
cc: R.subtitles ? { on: ye, onToggle: () => Le((T) => !T) } : void 0,
|
|
5644
5648
|
noFull: !R.fullscreen,
|
|
5645
5649
|
ad: nn,
|
|
5646
|
-
wait: tt && !Yn ? /* @__PURE__ */ i(
|
|
5650
|
+
wait: tt && !Yn ? /* @__PURE__ */ i(hc, { state: tt, line: on ? qs.map((T) => T.t + T.sp).join("") : null, onRetry: Fi, onOriginal: Gi }) : x.edgeWait ? `Transcribing ${Math.round(U)}% — it plays on as more is written` : null,
|
|
5647
5651
|
pct: je ? Math.round(U) : null,
|
|
5648
|
-
sub: ye && et ? { who: Mn ?
|
|
5652
|
+
sub: ye && et ? { who: Mn ? Cs(H, et.speaker) : null, color: Mn ? Mn.fg ?? `var(--lane-${Mn.lane})` : "#fff", words: qs, cursor: qr(x, x.idx, ln) } : null,
|
|
5649
5653
|
chip: $n(r ? Qn : { ...Qn, width: 64, padding: "0 6px" }, r ? void 0 : "sm"),
|
|
5650
|
-
transport:
|
|
5654
|
+
transport: Bs,
|
|
5651
5655
|
picker: se.sheets,
|
|
5652
5656
|
sheet: u ? Gn : null,
|
|
5653
5657
|
voices: null,
|
|
5654
|
-
voicesBtn: u ? null :
|
|
5658
|
+
voicesBtn: u ? null : Hs,
|
|
5655
5659
|
sheetOpen: se.sheetsOpen || j,
|
|
5656
|
-
onShare: u && R.share ?
|
|
5660
|
+
onShare: u && R.share ? na : void 0,
|
|
5657
5661
|
onSettings: u && R.settings ? () => {
|
|
5658
5662
|
se.closePicker(), S((T) => !T);
|
|
5659
5663
|
} : void 0,
|
|
5660
5664
|
compact: !!t.compact,
|
|
5661
|
-
paused: { title: Ke, summary: ft.state === "ready" ? ft.summary ?? null : null, share: R.share && (t.shareUrl || !t.onShare) ? { url:
|
|
5662
|
-
copied:
|
|
5665
|
+
paused: { title: Ke, summary: ft.state === "ready" ? ft.summary ?? null : null, share: R.share && (t.shareUrl || !t.onShare) ? { url: tr, at: x.t } : null },
|
|
5666
|
+
copied: Xi ? /* @__PURE__ */ h("div", { className: "gfull__toast", "aria-live": "polite", children: [
|
|
5663
5667
|
/* @__PURE__ */ i(oe, { d: J.check, size: 13, sw: 2 }),
|
|
5664
5668
|
"Link copied"
|
|
5665
5669
|
] }) : Wt ? /* @__PURE__ */ h("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
|
|
5666
5670
|
/* @__PURE__ */ i(oe, { d: J.volumeOff, size: 14, sw: 1.8 }),
|
|
5667
5671
|
"Tap for sound"
|
|
5668
|
-
] }) :
|
|
5672
|
+
] }) : Rs ? /* @__PURE__ */ h("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5669
5673
|
/* @__PURE__ */ i(at, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
5670
|
-
|
|
5674
|
+
Rs
|
|
5671
5675
|
] }) : se.on && (Ve ? vt.missing != null : x.silent) ? /* @__PURE__ */ h("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
|
|
5672
5676
|
/* @__PURE__ */ i(at, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
|
|
5673
5677
|
`${an || "Translated"} voice is still being prepared · playing with subtitles`
|
|
@@ -5683,65 +5687,65 @@ function Yc(t) {
|
|
|
5683
5687
|
_(() => {
|
|
5684
5688
|
!u && V && !Dt && (Kt(!1), C(!1));
|
|
5685
5689
|
}, [u, V, Dt]);
|
|
5686
|
-
const
|
|
5690
|
+
const ar = je && /* @__PURE__ */ h("div", { className: `pubprog${r ? " pubprog--desk" : ""}${w ? " pubprog--find" : ""}`, children: [
|
|
5687
5691
|
/* @__PURE__ */ h("div", { className: "pubprog__row", children: [
|
|
5688
5692
|
/* @__PURE__ */ i("span", { className: "l", children: `TRANSCRIBING ${U}%` }),
|
|
5689
5693
|
!r && /* @__PURE__ */ i("div", { style: { flex: 1 } }),
|
|
5690
5694
|
r && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { flex: 1 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) }),
|
|
5691
|
-
/* @__PURE__ */ i("span", { className: "s", children:
|
|
5695
|
+
/* @__PURE__ */ i("span", { className: "s", children: it })
|
|
5692
5696
|
] }),
|
|
5693
5697
|
!r && /* @__PURE__ */ i("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ i("div", { style: { width: `${U}%` } }) })
|
|
5694
|
-
] }), Zn = 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." }),
|
|
5698
|
+
] }), Zn = 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." }), or = /* @__PURE__ */ i(Zl, { model: H, rows: he, player: x, tail: ct, tailFg: Ht, running: je, desk: r, feedRef: st, listener: !0, showLabels: un, find: m, findOpen: !r && w, lang: De, warm: Gt, onVisible: Fe, wordHl: cn }), qn = /* @__PURE__ */ i(Ko, { error: g ?? me ?? (An && V ? null : x.error) ?? se.error, onClose: () => {
|
|
5695
5699
|
M(null), q(), x.clearError(), se.clearError();
|
|
5696
|
-
} }),
|
|
5700
|
+
} }), lr = [F ? Lt(F) : null, ee ? ee.toUpperCase() : null, Me || "Read-only copy"].filter(Boolean).join(" · "), cr = (T) => /* @__PURE__ */ i("div", { className: "ctrans", children: se.noVoice ? se.noVoiceNote : /* @__PURE__ */ h(_e, { children: [
|
|
5697
5701
|
/* @__PURE__ */ h("div", { className: "ctrans__row", children: [
|
|
5698
5702
|
/* @__PURE__ */ i("span", { className: "ctrans__sp", "aria-hidden": "true" }),
|
|
5699
5703
|
/* @__PURE__ */ h("div", { className: "ctrans__mid", children: [
|
|
5700
5704
|
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: x.idx <= 0 ? 0.3 : 1 }, onClick: x.prev, children: /* @__PURE__ */ i(oe, { d: J.chevronLeft, size: 16, sw: 1.8 }) }),
|
|
5701
|
-
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": se.relang ? "Preparing audio" : x.playing ? "Pause" : "Play", title: se.relang ? "Preparing audio…" : se.playTitle ?? (x.playing ? "Pause" : "Play"), disabled: !jt, onClick: x.toggle, children: se.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: x.playing ? void 0 : { marginLeft: 2 }, children: x.playing ?
|
|
5705
|
+
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__play", "aria-label": se.relang ? "Preparing audio" : x.playing ? "Pause" : "Play", title: se.relang ? "Preparing audio…" : se.playTitle ?? (x.playing ? "Pause" : "Play"), disabled: !jt, onClick: x.toggle, children: se.relang ? /* @__PURE__ */ i("span", { className: "ctrans__spin" }) : /* @__PURE__ */ i("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: x.playing ? void 0 : { marginLeft: 2 }, children: x.playing ? Al : El }) }),
|
|
5702
5706
|
/* @__PURE__ */ i("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: x.idx >= he.length - 1 ? 0.3 : 1 }, onClick: x.next, children: /* @__PURE__ */ i(oe, { d: J.chevronRight, size: 16, sw: 1.8 }) })
|
|
5703
5707
|
] }),
|
|
5704
5708
|
/* @__PURE__ */ i("span", { className: "ctrans__mute", children: rn(36) })
|
|
5705
5709
|
] }),
|
|
5706
|
-
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children:
|
|
5707
|
-
] }) }),
|
|
5710
|
+
/* @__PURE__ */ i("div", { className: "ctrans__scrub", children: Qi(T) })
|
|
5711
|
+
] }) }), ia = kl("ga", { tabs: Rt, cur: p, pref: (Er = Rt[0]) == null ? void 0 : Er.key, onPick: N }), ur = Math.max(0, Math.min(100, Math.round(U))), aa = Y && /* @__PURE__ */ h("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
|
|
5708
5712
|
Pe && /* @__PURE__ */ i("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Pe}/hqdefault.jpg)` } }),
|
|
5709
5713
|
/* @__PURE__ */ i("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ h(_e, { children: [
|
|
5710
5714
|
Ke && /* @__PURE__ */ i("div", { className: "gfull__holdt", children: Ke }),
|
|
5711
|
-
/* @__PURE__ */ i("div", { className: "gfull__holdpct", children: Ne === "transcribing" ? `${
|
|
5712
|
-
/* @__PURE__ */ i("div", { className: "gfull__holdbar", children: /* @__PURE__ */ i("div", { style: { width: `${Ne === "transcribing" ?
|
|
5715
|
+
/* @__PURE__ */ i("div", { className: "gfull__holdpct", children: Ne === "transcribing" ? `${ur}%` : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin" }) }),
|
|
5716
|
+
/* @__PURE__ */ i("div", { className: "gfull__holdbar", children: /* @__PURE__ */ i("div", { style: { width: `${Ne === "transcribing" ? ur : 0}%` } }) }),
|
|
5713
5717
|
/* @__PURE__ */ h("div", { className: "gfull__holds", children: [
|
|
5714
5718
|
Ne === "transcribing" ? "Transcribing" : Ne === "cropping" ? "Preparing the video" : "Waiting to start",
|
|
5715
|
-
Ne === "transcribing" && (ie != null && ie.segmentsDone) ? ` · ${
|
|
5719
|
+
Ne === "transcribing" && (ie != null && ie.segmentsDone) ? ` · ${it.toLowerCase()}` : ""
|
|
5716
5720
|
] }),
|
|
5717
5721
|
/* @__PURE__ */ i("div", { className: "gfull__holdn", children: "The video starts as soon as the first lines are transcribed." })
|
|
5718
5722
|
] }) : /* @__PURE__ */ i("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
|
|
5719
|
-
] }),
|
|
5723
|
+
] }), dr = u && n && (je || Ne === "cropping") ? Math.max(0, Math.min(100, Math.round(U))) : null, Nn = v(t.onProgress);
|
|
5720
5724
|
Nn.current = t.onProgress, _(() => {
|
|
5721
5725
|
var T;
|
|
5722
|
-
(T = Nn.current) == null || T.call(Nn,
|
|
5723
|
-
}, [
|
|
5724
|
-
const [
|
|
5726
|
+
(T = Nn.current) == null || T.call(Nn, dr);
|
|
5727
|
+
}, [dr]);
|
|
5728
|
+
const [oa, Kn] = I(!1), Jn = !!It && !Y && (Ve ? !!x.ended : !x.playing && x.dur > 0 && x.t >= x.dur - 0.5);
|
|
5725
5729
|
_(() => {
|
|
5726
5730
|
Jn || Kn(!1);
|
|
5727
5731
|
}, [Jn]);
|
|
5728
|
-
const
|
|
5732
|
+
const la = t.endCard !== !1 && Jn && !oa && /* @__PURE__ */ i(Lc, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => Kn(!0), onReplay: () => {
|
|
5729
5733
|
Kn(!0), Je.current = !0, x.seekFrac ? x.seekFrac(0) : x.seekRow(0), x.playing || x.toggle();
|
|
5730
5734
|
} });
|
|
5731
5735
|
if (u) return /* @__PURE__ */ h(_e, { children: [
|
|
5732
|
-
s ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: Zn }) :
|
|
5733
|
-
|
|
5736
|
+
s ? /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark", children: Zn }) : aa || It || /* @__PURE__ */ i("div", { className: "gfull", "data-theme": "dark" }),
|
|
5737
|
+
la,
|
|
5734
5738
|
qn
|
|
5735
5739
|
] });
|
|
5736
5740
|
if (r) {
|
|
5737
|
-
const T = Sn && !Dt && !s && /* @__PURE__ */ i("div", { className: "pubdeskctl", children:
|
|
5741
|
+
const T = Sn && !Dt && !s && /* @__PURE__ */ i("div", { className: "pubdeskctl", children: cr(!0) }), pe = !s && (Rt.length > 0 || Dt || !!se.sidePanel || !!T);
|
|
5738
5742
|
return /* @__PURE__ */ h(_e, { children: [
|
|
5739
5743
|
/* @__PURE__ */ i("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ h("div", { className: "gcolhead", children: [
|
|
5740
5744
|
/* @__PURE__ */ i("div", { className: "gcolhead__main", children: /* @__PURE__ */ h("div", { className: "gcolhead__col", children: [
|
|
5741
5745
|
/* @__PURE__ */ i("div", { style: { flex: "none" }, children: /* @__PURE__ */ i(In, { dark: a, height: 20.38 }) }),
|
|
5742
5746
|
!s && /* @__PURE__ */ h("div", { className: "dhead__session", children: [
|
|
5743
5747
|
/* @__PURE__ */ i("span", { className: "t", children: n ? Ke : "" }),
|
|
5744
|
-
/* @__PURE__ */ i("span", { className: "s", children: n ?
|
|
5748
|
+
/* @__PURE__ */ i("span", { className: "s", children: n ? lr : "" })
|
|
5745
5749
|
] })
|
|
5746
5750
|
] }) }),
|
|
5747
5751
|
pe && /* @__PURE__ */ i("div", { className: "gcolhead__side" })
|
|
@@ -5750,18 +5754,18 @@ function Yc(t) {
|
|
|
5750
5754
|
/* @__PURE__ */ h("div", { className: "listenerlive__main", children: [
|
|
5751
5755
|
Zn,
|
|
5752
5756
|
!s && tn,
|
|
5753
|
-
|
|
5757
|
+
ar,
|
|
5754
5758
|
O && /* @__PURE__ */ i("div", { className: "pubflash", children: O }),
|
|
5755
|
-
!s && /* @__PURE__ */ i("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children:
|
|
5759
|
+
!s && /* @__PURE__ */ i("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children: or }),
|
|
5756
5760
|
!s && /* @__PURE__ */ h("div", { className: "listenerlive__inner gdeskbar", "data-transport": "1", children: [
|
|
5757
5761
|
Ee.can && /* @__PURE__ */ i("span", { className: "barchip", style: Ee.active ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)", borderRadius: 12 } : void 0, children: /* @__PURE__ */ i(vn, { flag: Ee.flag, code: Ee.code, label: Ee.label, bordered: !1, onClick: Ee.onClick }) }),
|
|
5758
|
-
|
|
5762
|
+
Ys
|
|
5759
5763
|
] })
|
|
5760
5764
|
] }),
|
|
5761
|
-
pe && /* @__PURE__ */ h(
|
|
5765
|
+
pe && /* @__PURE__ */ h(zl, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
|
|
5762
5766
|
!se.sidePanel && T,
|
|
5763
|
-
!se.sidePanel &&
|
|
5764
|
-
!se.sidePanel && Rt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(
|
|
5767
|
+
!se.sidePanel && Ws,
|
|
5768
|
+
!se.sidePanel && Rt.length > 0 && /* @__PURE__ */ i("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ i(vl, { col: ia, order: ["summary", "export"], onPick: N, grip: { summary: 40, export: 28 }, render: (Ye) => /* @__PURE__ */ i(Yr, { panel: !0, children: _s(Ye) }) }) }),
|
|
5765
5769
|
se.sidePanel
|
|
5766
5770
|
] })
|
|
5767
5771
|
] }),
|
|
@@ -5771,26 +5775,26 @@ function Yc(t) {
|
|
|
5771
5775
|
qn
|
|
5772
5776
|
] });
|
|
5773
5777
|
}
|
|
5774
|
-
const
|
|
5775
|
-
/* @__PURE__ */ i(
|
|
5776
|
-
p !== "none" &&
|
|
5778
|
+
const ca = Rt.length > 0 && !w && /* @__PURE__ */ i("div", { className: "txwidget", children: /* @__PURE__ */ h(Yr, { panel: !0, children: [
|
|
5779
|
+
/* @__PURE__ */ i(Ii, { tabs: Rt, current: p, onPick: N, gap: p !== "none" }),
|
|
5780
|
+
p !== "none" && _s(p)
|
|
5777
5781
|
] }) });
|
|
5778
5782
|
return /* @__PURE__ */ h(_e, { children: [
|
|
5779
|
-
/* @__PURE__ */ i(
|
|
5783
|
+
/* @__PURE__ */ i(lc, { dark: a, title: n ? Ke : "", subline: n ? lr : "", onOptions: () => S(!0), optionsActive: j }),
|
|
5780
5784
|
Zn,
|
|
5781
|
-
|
|
5782
|
-
!s &&
|
|
5783
|
-
!s &&
|
|
5785
|
+
ar,
|
|
5786
|
+
!s && ca,
|
|
5787
|
+
!s && Ws,
|
|
5784
5788
|
!s && /* @__PURE__ */ h("div", { style: { position: "relative", flex: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
|
|
5785
5789
|
tn,
|
|
5786
|
-
|
|
5790
|
+
or,
|
|
5787
5791
|
O && /* @__PURE__ */ i("div", { className: "txflash", children: O })
|
|
5788
5792
|
] }),
|
|
5789
5793
|
!s && /* @__PURE__ */ h("div", { className: "gbottom", "data-transport": "1", children: [
|
|
5790
|
-
Sn && !Dt && /* @__PURE__ */ i("div", { className: "pubctl", children:
|
|
5794
|
+
Sn && !Dt && /* @__PURE__ */ i("div", { className: "pubctl", children: cr(!1) }),
|
|
5791
5795
|
/* @__PURE__ */ h("div", { className: "gbottom__bar", children: [
|
|
5792
5796
|
Ee.can && /* @__PURE__ */ i("div", { style: { flex: "none" }, children: $n({ width: 87 }, void 0) }),
|
|
5793
|
-
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children:
|
|
5797
|
+
/* @__PURE__ */ i("div", { style: { flex: 1, minWidth: 0 }, children: Ys })
|
|
5794
5798
|
] })
|
|
5795
5799
|
] }),
|
|
5796
5800
|
!It && se.sheets,
|
|
@@ -5800,53 +5804,53 @@ function Yc(t) {
|
|
|
5800
5804
|
] });
|
|
5801
5805
|
}
|
|
5802
5806
|
export {
|
|
5803
|
-
|
|
5804
|
-
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
|
|
5811
|
-
|
|
5812
|
-
|
|
5807
|
+
Nl as ExportPanel,
|
|
5808
|
+
Si as FullVideo,
|
|
5809
|
+
ac as MiniPlayer,
|
|
5810
|
+
Yl as MuteButton,
|
|
5811
|
+
Vl as NO_SEEK,
|
|
5812
|
+
Al as PAUSE_D,
|
|
5813
|
+
El as PLAY_D,
|
|
5814
|
+
Fl as PUB_SIDE,
|
|
5815
|
+
Hc as PanelSeek,
|
|
5816
|
+
Io as PlayerApiProvider,
|
|
5813
5817
|
jn as REMOVE_BG_LABEL,
|
|
5814
|
-
|
|
5815
|
-
|
|
5816
|
-
|
|
5817
|
-
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
5818
|
+
Ba as REMOVE_BG_NOTE,
|
|
5819
|
+
Jo as ReplayScrub,
|
|
5820
|
+
al as SpeakerCast,
|
|
5821
|
+
yl as SummaryPanel,
|
|
5822
|
+
Bc as Transport,
|
|
5823
|
+
ql as TxFind,
|
|
5824
|
+
Zl as TxLines,
|
|
5825
|
+
Vc as VocalStackPlayer,
|
|
5826
|
+
ol as VoiceSheetBody,
|
|
5827
|
+
Sl as YtFollow,
|
|
5828
|
+
Va as bedNote,
|
|
5825
5829
|
Kt as browserFull,
|
|
5826
5830
|
St as lineEnd,
|
|
5827
|
-
|
|
5831
|
+
Ci as lineWords,
|
|
5828
5832
|
as as pictureT,
|
|
5829
5833
|
Tn as placePosition,
|
|
5830
5834
|
wn as realFull,
|
|
5831
|
-
|
|
5835
|
+
$c as setErrorReporter,
|
|
5832
5836
|
Jr as setFullTarget,
|
|
5833
|
-
|
|
5837
|
+
Dl as snapPosition,
|
|
5834
5838
|
qr as spokenWordOf,
|
|
5835
|
-
|
|
5836
|
-
|
|
5837
|
-
|
|
5838
|
-
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
|
|
5839
|
+
Wa as trackPlan,
|
|
5840
|
+
Ti as useApi,
|
|
5841
|
+
Ml as useArchiveVoice,
|
|
5842
|
+
to as useBackgroundBed,
|
|
5843
|
+
Ql as useDuck,
|
|
5844
|
+
Kl as useFindPull,
|
|
5845
|
+
_l as useFlash,
|
|
5842
5846
|
At as usePlayerApi,
|
|
5843
|
-
|
|
5844
|
-
|
|
5845
|
-
|
|
5846
|
-
|
|
5847
|
-
|
|
5848
|
-
|
|
5849
|
-
|
|
5850
|
-
|
|
5847
|
+
fi as useSeparatedTrack,
|
|
5848
|
+
pl as useSummaryIn,
|
|
5849
|
+
Uo as useTranscript,
|
|
5850
|
+
Bl as useTxPlayer,
|
|
5851
|
+
Gl as useTxVoice,
|
|
5852
|
+
nl as useViewportTranslation,
|
|
5853
|
+
ul as useVoiceCatalogue,
|
|
5854
|
+
$l as useYtLead
|
|
5851
5855
|
};
|
|
5852
5856
|
//# sourceMappingURL=index.js.map
|